/**** (c) Valve Corporation. Use is governed by the terms of the Steam Subscriber Agreement http://store.steampowered.com/subscriber_agreement/.
 ****/
(self.webpackChunkappmgmt_storeadmin =
  self.webpackChunkappmgmt_storeadmin || []).push([
  [2455],
  {
    40801: (e) => {
      e.exports = {
        PriceGuidelinesPicker: "_4Xo2kBxLD3UDeZmmJU0r-",
        GuidelinesPanel: "_1vwM_zfUBQB5iGczHvjbUv",
        GuidelinesDescription: "_1tfKPTE7T78mXY5NZSQPQK",
        GuidelinesGrid: "_3fwDv3EkXmKGmgu15LfFgo",
        GridElement: "_2x-S8tOIgpJaC4ZsFg1g8d",
        CurrentPrice: "_2AddnZ15YltINVvHy_b_Jm",
      };
    },
    85274: (e) => {
      e.exports = { MoreDots: "_2YpW8SafRsHDfQIUT2DzUP" };
    },
    96434: (e) => {
      e.exports = {
        PriceCell: "_1sKIcxV1HaEWCa1x_sSuVT",
        PricePrefix: "gPcNwuh4LJPmwRZrAbrA5",
        PriceSuffix: "_3AEJb3AH01qQaG89JOYAh4",
        EditablePrice: "pm5xM6Dyy-9XY0g9TpjX1",
        PriceInput: "_1PcwXjG-2t5JOJuL7yhOYG",
        USD: "_1C7qRJ6YdGWEwEK4QsMRUX",
        ProposedPrice: "rVkmDwpTOXR4DqdBdbiPf",
        ApprovedCanPublish: "_1JBd8mxmIpyOChqhkSKSUg",
        ChangedLocally: "_5mvGWs3IDSRLfxvHx8wig",
        WarningPrice: "_1Qd5uW_BK8PBDJiDBjDCPN",
        SevereWarningPrice: "_1o6zP8gegcka6hdQA2lJjv",
        BadPrice: "_18aiu0HZznAMnGQfWExtTm",
        PriceChange: "w-K7qF60ELXWtEjymcY68",
        NewPrice: "_3sgbtvMYimrD0kSs3VCoPx",
        PriceAlert: "_2eadUvk4zK7FL9FFvy3Gd2",
        PriceChangeArrow: "_1z0l2rhYAxXf6M_tgnczgZ",
        PriceIncrease: "_2jQyP7o7hbWM4EhAkKLAks",
        PricePopout: "_1AoyzK2lSPVwQJoIYEjFbR",
        DetailRow: "_3P_fJH02fBcdGM2etenWu7",
        DetailLabel: "_3RXb3FOdpsOt-aVMvfnb6W",
        DetailPrice: "_2k3CVLd6A1QAixKOkfGx6P",
        DetailButton: "_3ILP7OdXtGjDaSvJqI81RV",
        Disabled: "_3mZHsQVQB8w84OblleAq68",
        HoverToolTip: "_36qS74l1tXSXwGdyfIFQ-G",
      };
    },
    94794: (e) => {
      e.exports = {
        Header: "_1bQX7P2Y0-P0L76HpRs8ja",
        DocumentationLink: "_1woLr1WtyhzQmCx76wefyd",
        ButtonRow: "hhKiVETpovtogU809-7KR",
        ButtonDemoWishlistEmails: "_3q_S6jZ-Blwza3dpSF9Acm",
        InProgressThrobber: "_2fDnYT0wJJb7Uhm8it2-3C",
        DemoWishlistSendSucceeded: "_2PuyJjgB2xDwKmMSsxRvu3",
        DemoWishlistSendFailed: "_1hR0C89XjqtEH35k45Hk3K",
        DemoWishlistCtn: "_3Ax_mRIzuRGqX9tC3_bj2O",
        SubTitle: "_3XtsyeY-yvsZzbeFM8W6he",
        Description: "_2ZnWqKQhBNy4WJOdh_koKE",
        Notice: "_3BXZcqko8cynfMLmKmVZnE",
        BothSeparator: "_1dKVa7D8UQ_ZCYd15ytJCs",
        Warning: "_2her9TWgTSxd1_dkifBNzQ",
        Critical: "Cg12GJi8oD1m6alI4x0WL",
      };
    },
    31623: (e) => {
      e.exports = {
        "duration-app-launch": "800ms",
        ControllerWizardModal: "_2M4zwA7Ac68En7AUUHEpuK",
        GameName: "_1wayRCM9VO944GbqtTisWi",
        WizardContainer: "_1j_e5epqt09WxhZOjyi9D1",
        WizardBody: "_2Agdmn90d9rLK0COHBJ9Ya",
        Column: "_35X7XjU8DZ2H27V0SBSAoo",
        ColumnLabel: "_3xAxLUcHgDWrN3L54mLJYv",
        ReleaseColumnFooter: "_3qIJUe57BhaB_-fSLUg9Hx",
        ColumnContent: "upSjacqUkxiBsrt6N42gC",
        BlueNote: "_3FlXrEk2woo6dOboR90dCn",
        PublishNowWarning: "GSVWx_w2LMo3SAhwSgY-n",
        ErrorBox: "_1h88U0C26maKtvTHQw0f4Z",
        HTMLErrorBoxAppear: "XREUsZ2A3RyF2E-vQKQwp",
        CloudConflictModalContent: "Qq753teqS-0zB67wi3MP5",
        DialogChoiceDescription: "_37mGYoLJCV-kP2sFOgvZhh",
        RadioButton: "_1Cqgv4c_2wNORC7k0gp6O0",
        Selected: "_1iGfirXEzQZDHkJVHJCe25",
        OptionLabel: "_1CKHmXyuOvgsgsfZWRwdkk",
        ProgressBar: "_2FcBzeH5LVz2CQQWk-coqU",
        ProgressBarComplete: "_231x-l7fB13puyRZJDW46L",
        ProgressBarFillComponent: "a63k2U08nK9HrNLtO-4xe",
        WizardTitle: "_3acfYDihepdLalPwwfH_1O",
        StepRow: "_4NsQgqhsg7-hwuKwFSkt1",
        StepLabel: "_3Q7KPqZcxMH4I4NbiI4ZLQ",
        StepImgContainer: "_27_A1alE6d3sduux3CAyY_",
        StepInstruction: "T9eBinyQ2hCY8oy4WO8g9",
        ControlsQuestion: "_86lVB7cXYqg7s4LChbRyM",
      };
    },
    93763: (e) => {
      e.exports = {
        ReleaseDateInfoCtn: "_2ocuoWlOpeAh97xq7WrkIM",
        GameEditCtn: "_2o3d5bRhxhkhFeFhW8godg",
        ReleaseDateContent: "_14jgI2A7iky0kJHGTv5bRH",
        EditButton: "_1FeuJt2eGQs_Rst-XDLFm4",
        Spacer: "_1kzzU_wSbmdyI7oLSsyg-u",
        Top: "_3M26MlsJeORKy1BwxAXZum",
        Bottom: "_1qVhcuP_Q7ETKhqOIF-6nf",
        EditButtonIcon: "_1EzMvfRFX_4r0BoWZP0nDJ",
        LabelField: "_15-FOPma_SgLfRiaMDz00K",
        Label: "TlwzuMCaMLu_NamMk-aqI",
        BigField: "_1q70c9TQOGTE8nIj0PZzFs",
        Set: "_462we5kglLCfOmKOQ-yFJ",
        DescText: "_1DrWiEkEcbt3HstR0OiF2H",
        StatusText: "_3j0F2jA1hGH2uFa5CQJUU1",
        StartWizardButton: "_3aJmqkMNOKlgJpR8MjiixB",
        ControllerSupportLevelString: "_29_hhzfHe7mcOGymGIBMk8",
        InfoRow: "_2EuSdla3Jwg3xI_Dgo_qHu",
        LocSection: "glzO-PzgvCa6Skefap3ex",
        HighlightRow: "_1o45fKVcOJe0ZqBEGcY7iq",
        HighlightRowRed: "_1hL1r05CyflWZetU6qrC1c",
        LocString: "_29T_Phs4gpEQr5w3liXu9f",
        HighlightText: "_3r2CUk5i9BqNQMQQQUrr0D",
        ImgSection: "_2iy3BWZdA1i5GxeKdEXw5h",
        ImgContainer: "_3fVMxj4lcjRb2Ig3TUcYBP",
        PreviewContainer: "_1WiJc86Iy8Vg1PQk6AofW4",
      };
    },
    19042: (e) => {
      e.exports = {
        CapsuleCtn: "c-RZpHTXb06OJeUNz4WEW",
        MissingCapsuleCtn: "_364X0fngRQGCfxG4VyRk_D",
        AppRowCtn: "_2VXPIaz6YEo5TPJqSn_yE5",
        PageSelect: "_12MnhNSqHX_n83jqCGQrF-",
        ManualFeatures: "_1WxdPIk2Wp9e2_EPCvDXs0",
        SortOptionsCtn: "_1sM7lJwWxP9zl748WJgn_8",
        CreatorHomeCtn: "d77JrwhwWgQ2752O6hs9q",
        FeatureSelectItemCtn: "_3gmDKxSYF9DEWwP-L7l_W6",
      };
    },
    69515: (e) => {
      e.exports = {
        SelectorRow: "_2gPHlYO9IsXSVwCXObPaQe",
        RelationshipType: "_2Rm9HP6ML30Cji08Vj2td2",
      };
    },
    71714: (e) => {
      e.exports = {
        DLCItem: "_1sgY-MVMUccmrZgX7D5bAw",
        Highlight: "tsusJIGDyi0szvTLG_58g",
        DeleteDLCItem: "_3W4Twu_YWCADotnJq1XNad",
        HighlightDropDownLabel: "_1ydvIIXwFV5dgYKnwBTgR4",
        HighlightDropDown: "_1ipl4yg58fGYR0_j3G2nLH",
        DLCItemDeleted: "_3NI0dNLBy2votX-G41EHUK",
        DLCItemNotHighlightEligible: "_2tZBwJXOOBOJ0g1pDXTXcg",
        LabelNotHighlightEligible: "_1mAhoxKDY4ru5NgKwHsibi",
        AddDLCDialog: "_3QmO_KfxjsLCYJ3Km0vtXg",
        AddDLCFooter: "_20wuD-AQWC90hxbP9iGsQu",
        AppSelectCtn: "_32YZCQQ7Pe-_dwX6LIf3pl",
        DLCDisplayContainer: "_3cg2WBZbQuwOGVBJr4DDWz",
        AddDLCButton: "_2p7IttiJElSQxs_diHKzci",
      };
    },
    93542: (e) => {
      e.exports = {
        EditionPickerHr: "_2N7bWzRE2_6yMlW8HoWwKL",
        NeedToPublishNotification: "_1YyjMfNhBo6lWsvunbhkmG",
        EditionsEditorRow: "_1kVAFKlQN-iaGJNQM64lbU",
        PublishReminder: "_2bw5Zr8a6ik4-NIjVgcZSn",
        EditionsEditorContents: "WKVcCeIwShQXxr0XjInT9",
        ErrorList: "_34AP-LqjTCmVO7oQmBRksn",
        ErrorListItems: "_3OPqG7OUgCU252R-DdB0Qj",
        EditionsEditorDialogButtons: "zHZhZ_cYU43MhqpRkvAuR",
        EditionPicker: "N1f8Ye9Eude7K2vJSL7AZ",
        EditionPickerFilterBox: "WLQyL6JRweNM6PHgWKRaB",
        HiddenColor: "_1YtkUWpJ0G7lnnX5bj8X7_",
        ReleasedColor: "_1_2YmmBAHhhpvApS2NQe-r",
        PrepurchaseColor: "_2o-Djga-h_lkGoTFS-PjlF",
        BetaColor: "_29O7AlK2wwhmKjrCxAPIRk",
        EditionsEditorSaveStatus: "_21ABdLhAaZ1KIV7osV-RYV",
        LocalizedImageSelector: "_1K9mhqXjo6xi6qVHMBwcTQ",
        Header: "_3oC7Qb8-E-MF_hxZKzOPyQ",
        UploadedImageOption: "_2F05QhQ_9_rf7qryFDLsh6",
        ExistsImageOption: "_2DTeKovr7g8Z4rrBjVNTZb",
        MissingImageOption: "_29pcde0Q7kd7ClgWo9w5NB",
        ImageDropPane: "_1RWj0soRG2Y-mtoq_nOEe3",
        DragAndDropDescriptionWithImage: "_3-2d6qJPYFImAjNB825gPq",
        DragAndDropDescriptionWithoutImage: "_2FAmjUnpcILnVdO29vdLn6",
        DeleteLink: "D_kqKamsBe39qbMqcuino",
        ErrorBox: "_20-2lEQLGnc64V46i5khL-",
      };
    },
    43104: (e) => {
      e.exports = {
        ExtraAssetImgTag: "_2JQ4QGd4mIBR58A-9bDHdq",
        ExtraAssetError: "_4aB4b9buM8DFxojRymZ_5",
        ExtraAssetImg: "_1W2-3_i4cuGzBmocT-ZAk5",
        InDeprecatedLink: "sakeS4kMEd2FGp4Da4Xrt",
        ExtraAssetControlsContainer: "_3-tWPanUj6QJND7dPTlrgc",
        ExtraAssetControls: "_3LTnCSzSad_SJbC1nruDT8",
        ImageLinkDisabledWarning: "_2oUv4hHSs2-8LXtBPcyRRy",
        TopBar: "_1WOD0JTMh8GPXMSA_p8BNb",
        TopBarContent: "_1nOxfVQISFWWwmO7v_u77O",
        Hovered: "_2h_sqCtLa_VIfPxPT1ojpD",
        ExtraAssetDialogContent: "_2zFGXU_GHLOWey5_sOi8kq",
        ExtraAssetsDialogDescription: "_11Ohp1dBE7FzghG4yzgqoA",
        UploadButtonContainer: "_31BKf0Ts8oSM_mv61BOp2G",
        UploadButton: "_35DNlmVRsyVbi56Xf_jj9A",
        StandaloneUploadButton: "NK3X0iAqHHQskiywniNiD",
        ExtraAssetsGridDialog: "aaxZ2xZ0gE7RMvrheWWmj",
        ExtraAssetsGrid: "_2Uzyt8kZcr-0KU1aoTkiuj",
        ExtraAssetsPageList: "_39FaN2oioTXV-lkAOG0jfE",
        ExtraAssetsChooser: "_12hVxV1z_asvDHFqo9ScMk",
        ExtraAssetChoice: "_13xCWTST4J-cgOyz6kwfIJ",
        Selected: "QRTy6qng-IEOMiXMxwVtY",
        ImgCtn: "_2_2ny3VSBQNMNyQnrKegnF",
        ExtraAssetName: "_1v6uTQuGLshmZKWXULJOSr",
        UploadFileButton: "_2YSrxqs6du4D01NI5Gpt9g",
        UploadFilePlus: "_2MZ0u0Cj28i6cN4E1OZKCv",
      };
    },
    76349: (e) => {
      e.exports = {
        SideBySideComparison: "_22Yf4CsBMkYFBcTEBh4ifm",
        ThrobberContainer: "_1ohypTL81epoo-2xTCJp8M",
        Loading: "_1rTERXdhbmJz94-Cb07emK",
        ImgPreviewContainer: "_15tW0aE5WXrWrGgguKGlWn",
        ImgPreview: "xUnBDVbIvtL7vyAS4rn2t",
        DuplicatePreview: "_14-dbrekvOWYS09OPByyHh",
      };
    },
    97982: (e) => {
      e.exports = {
        LocTextAreaContainer: "_3oZ2A8CpTx8VWK_eJhZYh",
        LanguageSelect: "_26sgpEoBg_73b96Dm9zA__",
        LanguageOption: "_3-BbOrMwYQUVRDtsxZto7i",
        HasValue: "AX8gskcTCWl_aI-UYAJAf",
        TextArea: "_374NqqdR-vuq2spxuRXCB9",
      };
    },
    80968: (e) => {
      e.exports = {
        EditorPanel: "_2SgPxDudv7oRkzlHsNm4_O",
        AboutTheGameArea: "_3EAE8BxFPnb_g0Ct5b4QzW",
        Awards: "_26nsky_SK1122q1xYQ0VZu",
        StoreAppPageHeader: "_1aQY7Yz23XDN0N4IVctriG",
        GradientRule: "_1dK_q5EmTZgebmJeCzHq1s",
        GameDescriptionEditorToolbar: "_14dow-GSmyLacYWBXCNV1l",
        Sticky: "_2YccUEt5UoKig0cAk4W6DK",
      };
    },
    23256: (e) => {
      e.exports = {
        AntiCheatDropDown: "_1Ein4m5qBonpTJl1GbVcV_",
        OtherSerivceName: "_2wW0IMGaGmFIjizuMml3mB",
        KernelMode: "iAq_jMg3JrFT_qjIU6gSL",
        CheckboxLabel: "XRMda0yOh0NFnSf3EVLP1",
        CheckboxDescription: "_10omFg-YbEQjz9R0VzeuSC",
        LanguageSelector: "_2aIJUMbzwAYBpQHVa8E2Pg",
      };
    },
    65038: (e) => {
      e.exports = {
        DXVCNotice: "_1lEWAwP0XsnKz4xXZjEm1g",
        DXVCNoticeIconChecked: "_1M3zzD_D17Aw3wgdWaxZc",
        DXVCNoticeIconUnchecked: "iqxf3QFYD1lcAxbZHLzmY",
        DXVCNoticeText: "_3ONSEhSufFHQjBTa-qt0m4",
        DXVCNoticeTextChecked: "QmKToaPU7N03P2p9VRlqH",
        DXVCNoticeTextUnchecked: "_12HPIcBaY3YHgYnARVwc8M",
      };
    },
    30041: (e) => {
      e.exports = {
        NonAppContentsEditor: "_1WoYFMMlYaGcrH1OlNAeb6",
        AddItemButton: "_1xbvS9FSWE8T43H5V6tnLs",
        NonAppContentsEditorScrollArea: "_1dJujt1qEcM8WgH2bsRGtX",
        EditorButtons: "_1WySz_wiyGNuQgIN2UIHuR",
        ItemEditorRow: "_1xiTQEBFDACW6ssXe_rkaa",
        ItemEditorRowContents: "_2oGxJ3wpmY3NkzAlmhzPeu",
        ItemEditorRowNameAndLanguageEditor: "_2QqnI_s10DOvb-HPBd-QeA",
        ItemEditorRowVisibleToggle: "_1NH9ZOrC3ltObbXnTj7Wn0",
        ItemEditorRowDescriptionEditor: "L9MKw629aEVZfhOrL8HFX",
      };
    },
    94937: (e) => {
      e.exports = {
        ToggleCapsuleArtContainer: "_1Ll9IYv9NlqFp2YUwcAvGT",
        ShowCapsuleArtButtonBar: "_1sYHTObQNuR_a0jKMVdE7g",
        ShowCapsuleArtCheckOption: "_1HDHF-oqQfjxmE2gzXr_CO",
        ShowCapsuleArtLabel: "_8vypbaDWtTCNooOAXjrQb",
        checkbox_label: "_3Q0QDDgec3coNVTBHu-1yD",
      };
    },
    30935: (e) => {
      e.exports = { EmptyPinnedBundleList: "_1iAXEFHnXUjh793_HsWLka" };
    },
    14358: (e) => {
      e.exports = {
        RadioButtons: "_1o8PeYV1JEHw28jdq0-cZs",
        ActionsCtn: "_3tmYmIJendBOkxYfR5pMSJ",
        NotesField: "hmIKAOq3IUq5OZJGCGodY",
      };
    },
    77428: (e) => {
      e.exports = { ValveAccountTicket: "_1gAPWjNZ0dtQiyMfDmxtd" };
    },
    2897: (e) => {
      e.exports = {
        PriceDeltaCtn: "FR0Jbt4UFGpCZeakQYuXa",
        PackageInfoColumn: "_1sw3lFWbKOrwVBjyMmIVFE",
        ProposalCtn: "_2aZ0dHJvCBWY-dISFYuHx7",
        RowCtn: "_3Fj4_LN49SJ2FIDkn5Ar_x",
        InlineDiv: "_19_mEBDtOirVDKNF0sbPMT",
        FailuresCtn: "_1Z31Ten-n1dAC5fhblKIfC",
        MatrixGap: "_3vOjxVYu8bLFNAaHbstgFp",
        Legend: "_14hkGjE6JlGYtfCi24GIcv",
        Missing: "_1Prze41qAKK3Yf2ywGaP4x",
        Outside: "gYYAD-UX0KTtpP8A7wose",
        CustomUsd: "Ru7OVKpEg2-4T6i2fJPVP",
        AboveAutoPublish: "_18NNA8ajB8j6lCIlkk8_uk",
        MissingCurrency: "_1aHJaADVcfWKEoJd3rHyzS",
        Title: "_3vH34cEyQM0jTB1rtzMc19",
        CurrencyWarningsCtn: "_2H_McBAV-1DEhfPhYqmTG8",
        AutoPublishCeiling: "_1x66lPK7LljczLFs4Z0w2Y",
        ThresholdMiniTable: "_1Qz3SUdF4Z2HAIlSWPA08n",
        WarningTitle: "_1jnFS4SBVwvvKVzrE6v9ly",
        WarningAbove: "_2QdKNR-tKnTQ9LEnQ8bVV-",
        WarningBelow: "_1Yk633c4Lzb0M0bpPNgg7e",
        ThresholdRow: "_1WR81oD47ZQYIwkubRtLJ0",
        ThresholdHeader: "IROvk26OnXM-2kx4vbPtO",
        CurrencyName: "_1ErxFwG9fg34T9vaBCjMyh",
        EqualPrices: "_3tHg_ZoTA9Y-7U0t2Cxfyx",
        OriginalPrice: "_2oPTCoNk1ZzEt4AhH3P2D-",
        ProposedPrice: "mbBO-p8uSR3ZCnGWTrGpO",
        RecommendedPrice: "_30pJDSHiHiCXSW4SNk0nnP",
        PercentDiff: "_1d_jmwlFfcaSfpvHzyFrhM",
        ReleaseDateCallout: "_1Xzwu7hrwrG-4QWc1zMbsx",
      };
    },
    23708: (e) => {
      e.exports = {
        RowCtn: "_2Kb5slnuUjyEZh0EM01mpa",
        CurrencyHeaderRow: "_1MTZXU0O3Ez0HuYIUZ7DRL",
        priceChangedNew: "_3omSD7bzihAQsvjW816OTH",
        priceChangedHigher: "kPaeu3zbh3qS1FSWF0PXM",
        priceChangedLower: "ExSF3NJhFrNmaalRumcyU",
        outofmatrix: "_1v_REU9nI-QU5hVkmSREZ2",
        pricingerror: "_1flav3IaDWEjl67mhiTjtL",
        outofmatrixlower: "_1yBYLNIGGvEetpwa3M9DVx",
        pricingLegend: "_31Qzh5kyW8c3aceh-aaOLD",
        PackageInfoColumn: "_1v90IxHlEuTMEzzaQS4DkY",
        PackageName: "_3Ry84c5vN70mLVtPYtg6sv",
        Column: "_3yvRGn0SGj1ZMfxDBlsunE",
        SubmissionBy: "_1OTJ0XMxu7F_2yNy3A2qKA",
        MissingReleaseDate: "_2smrPeVLLyicNuwt3hgBAd",
        FullCurrencyColumn: "_1VlWukpBKxbYmmlJrC6r5m",
      };
    },
    26673: (e) => {
      e.exports = {
        ReorderableListWithArrows: "j49UFcs3c3QniMgfBfbUC",
        ReorderableListElement: "_1ziKQJEFC5xIspudN0mQWr",
        ReorderableListUpAndDownCtn: "_117rbiRaxL2gx6MMmEAfbw",
        ReorderableListElementContents: "QKoy-F4c1lg1WVGHxrLPo",
        PurchaseOption: "_2svu-POqLeuRkmBTgwfmiS",
        PurchaseOptionFirstLine: "_3tZOw-_UErk1L8tZXBjBlc",
        RemovePurchaseOption: "_2_34o9MpxAxSaACc_87Gki",
        PurchaseOptionDetails: "_1fKMWxi9ifFxXkEqUGVwzK",
        PurchaseOptionHeader: "_2YRHmK-lnhG05fMug_YyNZ",
        HeaderText: "_1kHpaHBh_NR1YhLy8EhFi7",
        PurchaseOptionsOrderEditor: "_2XMlI9jS0J1yB1LCS0c1SU",
        PurchaseOptionsManualToggleCtn: "_3_8N_22yAQCd1zvyNKqfht",
        NoPurchaseOptions: "HXFLodBVYcS6nS9eLv0HH",
        PurchaseOptionError: "_3RSMcw9mJDbrvzPfuNnhcB",
        Exclamation: "_3MdVQ7CJpuGgd3bkTFABRm",
        PackageOption: "vuttoObFteUS46kZgAGlL",
        DropdownOption: "jMf54NQ9Nyft2Si8tbZhL",
        TitleLine: "_4P8QXdBrnelSxwtLHVLOE",
        TitleInput: "_2hzGnHNQA7JBBJz0jCHV2-",
        DescriptionLine: "_3XNwKrWW3qelYLfsIgwHx1",
        DescriptionInput: "ZQb6AVSuWych63E6kWW5F",
        DropdownItemsCtn: "_1tiRg0IxiQHqYoCUkNxKWQ",
      };
    },
    46595: (e) => {
      e.exports = {
        ReleaseDateInfoCtn: "_2mHXbGuTlraXe_Q1JYKmJZ",
        GameEditCtn: "_2JigUHOJ_OTCRjbohXgz9q",
        ReleaseDateContent: "AVZgMOcgNdb95embDq8g1",
        EditButton: "_1R5w2idIf5H3xZh7C6ObQL",
        Spacer: "_3TcEpA8cfRVBTd8q_vvFWu",
        Top: "kNcnUbYODwtyQ3AZp_VUM",
        Bottom: "_2TBzK4oRpgLv5hHxtojPq5",
        EditButtonIcon: "_22a0aPwQVuTJx58YZQWYBd",
        LabelField: "_1olrpCNFeNf7UfruKHLVhY",
        Label: "M3h38e4KnwYsDvQP72dg0",
        BigField: "_4jS-jBGyvj3mr8jkJ46Gc",
        Set: "eEhAf6mE-OR6VCf4eHEkC",
      };
    },
    51780: (e) => {
      e.exports = {
        ReleaseDateModal: "RKE7g5McLhANBdiTzm-ai",
        ReleaseDateRequestBody: "_32CdqVuKRqrf1SR8Hday6v",
        Column: "_gUUe9JABsRpGmdkooO11",
        ColumnLabel: "xebmA68ybtGEgyG_oVMM0",
        ReleaseColumnFooter: "_3egfk1DBae-OZSZtcwrDDq",
        ColumnContent: "eZhskcRU_Ejw5kmSBLRTU",
        BlueNote: "_1iIVgx9LfomTs6Ycj6qYgV",
        PublishNowWarning: "_2-dra08qCgH_F_0T756AwP",
        ErrorBox: "_27JIJRbunDgYqS_xDV7Xha",
        HTMLErrorBoxAppear: "bXT6nAG7o3DqMjoZ_zWJ",
      };
    },
    36500: (e) => {
      e.exports = {
        EditorCtn: "_3qyd9aiwL32kAuGY_Rhzm0",
        HeaderCtn: "_2SsIaBHCvUU5Hyt5uQxA_p",
        Row: "wscFtfHuH_NvN1lnfHM6i",
        MilestoneButton: "_1qXO7rz_wCXLWRo_houCbh",
        BtnCtn: "ZrIN9N9KK84LosHTnHAal",
        LangBox: "oHsool0rU2gYfVTjIVrGt",
        CreationButtonRow: "BsMGgRExOtnnHfrfRMeJ7",
      };
    },
    64442: (e) => {
      e.exports = {
        BtnCtn: "_15Uzhk19FXMyjsNEpD2w__",
        MilestoneTable: "_32pGw8RvFp8N1tj1ZZFD3V",
        Date: "_3eoKJfAU5YNpujekRJ29Lt",
        Released: "aiYALRtbutTsqpA3EVxIS",
        EditBtn: "_3GPoiDQhG2AWZ8zqnefzZt",
        StatusRow: "hs6Pa5T0Gbw8pd9VpJNAs",
        CheckMark: "_2gpgDFHrtGUVaBKuGQRQfZ",
        EditMilestoneDialog: "_1b7pp2idI0It1Wtbh4K5Ck",
        ShippingTheMilestone: "_1ujBS0HyFpqMeEUdjrLrMr",
        ShippingType: "pXgsjv7B10bT5brNV7MFz",
        MilestoneTitleField: "_2J6DntV8BgxcP9CSCueNZu",
        OptionDetails: "_3IQkWWzfVA9kOWtxTMekyW",
        DatePickerRow: "_3ZMVdS_YE75SaKzbxL0ifx",
        TitlePreviewRow: "_82lvRm6zNUSuia5C-0KVb",
        Shipped: "_1jDNm9kCJcNIl38lakfF51",
        PublishReminder: "_1FnrHyPuXP7yRZRvgoNvLi",
      };
    },
    29602: (e) => {
      e.exports = {
        SocialMediaRow: "_3l3QLvZXgctxiR4z77a-pH",
        SocialMediaType: "_2blu0FXfvFWQnV3ez_YHvN",
        SocialMediaLink: "_1lPiLLSVWq927QUzQxAdoh",
        SocialMediaTooltip: "_28OUTMVlzN2OHNhsHY2uH6",
        ValidationError: "_2nhAto5J35_SzrLqvLiNrW",
        AddLinkDropDown: "cmPkLJRitrSssXCUhvpTu",
      };
    },
    33924: (e) => {
      e.exports = {
        "duration-app-launch": "800ms",
        OtherEventsCtn: "_9H6b5yfaxlmcnHvkqtwDK",
        OtherEvents_MainImageCtn: "_2qyLPxO8_nkczRvFiaju8N",
        OtherEvents: "_16DzRvjcqFcYr0NYcWmTrg",
        OtherEvents_EventCtn: "_1MwNf8slOG9lOvAeOshmuu",
        OtherEvents_MainImage: "_3_wKbXvT7_y5YkrtadL0I6",
        OtherEvents_BGImage: "_2pPj9UWoWM6h318uBN0-8X",
        OtherEvents_ContentCtn: "_22jEpNTfml-w_aRJV-fKDm",
        OtherEvents_TextCtn: "_3-EtNa1Nr_737K0kglkT9C",
        OtherEvents_TextTitle: "_2jc1DpJ_WzFtigRh5qDWce",
        UpcomingCtn: "_2CXrGPtlQh-j3aSa6XsQDI",
        OtherEvents_SubTitle: "_1Swox5XYdeesack-J7fNLH",
        HoversEnabled: "_3o6M87A6T172WsUE6MNvdW",
        PartnerEventRowCapsule_MainImage: "bC2Zkx7FlANno4SW8FwB-",
        EventSummaryContainer: "_2GYp44BuZLfKRQdeILTDC3",
        EventSummaryText: "ENbI1gFgvIca6HSKAbfiJ",
        EventSummaryType: "_11JXznGoylLSEmZXZbgcsq",
        HorizontalEvent: "_1ruRSreC31IK4kUGUcSRDK",
        HorizontalSummary: "_2bTWamVtbFnHovwqhlrxiV",
        HorizontalTitle: "B9-wlbaW3NhZ3FQPArnkW",
        HorizontalDescriptionCtn: "_3CQtWw7qMAWImOwd8J5xHi",
        HorizontalDescription: "_2hPZwxDYhaY3SllhjeFqb_",
        AppCapsuleImage: "_3OzV3h4jW1bkLmB6TqbYmo",
        AppCapsuleCtn: "_16au-uWHggl6G731aw_eHt",
        AppCapsuleImageHover: "IeC3X0McKdGC79BsC3VvM",
        AppCapsulePrice: "_2-l2M5GPuxKFwV8h1tc_fH",
      };
    },
    91291: (e) => {
      e.exports = {
        TwoWidthCtn: "_49thIpYeG08pUfNc1x_w9",
        TwoWidthCapsule: "_78Qv2C95AM2DNCuLD5o8U",
        TwoWidthSideInfo: "_2qz5D65VkY796Xw-al9f_a",
        Reason: "_2h0GKAYcXRP10ryZHFn79d",
        StoreSaleItemRelease: "wJ7ZiTc09km2kH4mSsZ9j",
      };
    },
    73309: (e) => {
      e.exports = {
        "duration-app-launch": "800ms",
        Container: "_30v-6zb_axOypIUr5VRHE1",
        ToolbarRow: "LCeIT0gmFTY8fdfaVgk4j",
        Gap: "_19z0fjj7o0n9vAjVjvYZNU",
        Spacer: "_2m1BBIp5Ewr1TI-BkqFGLM",
        CommandButton: "_1dEi5qzSDdPOzoOQXYbNLN",
        Toggled: "_1Iw5xoXQXfmRjgjWTKbm_G",
        FileUploadPlaceholder: "_2P-FBc3tZWGeeBFplDSb9g",
        Throbber: "_12t6JmDCFT6MqtNVrSi5NJ",
        PendingImage: "_2HezQYTfmFfdRmuB8l9QPI",
        FileUploadDragDrop: "_1WRaNQqBKcUp67ntgoyEeQ",
        FileUploadDropFilesMessage: "I2CE9X_I0GBNYbJf7VYBg",
      };
    },
    1431: (e) => {
      e.exports = {
        StoreItemCtn: "_2SxhiHrQSCtBnKf3oKdon2",
        StoreItemRow: "_3cBgZqhPaJpdeZl8hARr1o",
        StoreItemDescription: "_2pkGLftA9XILpaWN0kejPk",
      };
    },
    17479: (e) => {
      e.exports = {
        ReleaseDateInfoCtn: "_3_BM0Yr1nZHLRCU-YScHph",
        GameEditCtn: "_2atDY79LoAg6W2I3f_ghoe",
        ReleaseDateContent: "_3EqL95FAclb4_KUCViyIy",
        EditButton: "_1nt4AvPVzCcmifUL2j41GY",
        Spacer: "D6yaJy1vHTj3skoSwQCmn",
        Top: "_17TBmwVnz8B0fYk9NMgjcC",
        Bottom: "_1mdhhjdhefzfINtpGJDw_F",
        EditButtonIcon: "_23n7mGKR9t2rn_appk4hc4",
        LabelField: "_1yV1XMUdZdavVgSZ6SzXKj",
        Label: "_2aDfpXF8ktFHq439q_1vAi",
        BigField: "_3K2oJx5qEZyMkC2O7Ib77p",
        Set: "_1CXRFvJ5iqKqlENSWgeHPP",
        DescText: "_3FFbGIjpM4z0O1HfqwwsvR",
        StatusText: "jBW2mrF7D6RVhT2u_ZRXB",
        StartWizardButton: "_1hwFIOidJj1HaD2_cI4NRD",
        ControllerSupportLevelString: "_1mfBI5XbiaKU9vS5WkJALu",
        InfoRow: "_2xZaMR-NKc0LbkeM50cZq8",
        LocSection: "_3KAysk4dlhWETa6ixz7V2j",
        HighlightText: "_2Qr-aCeNvCUkoGKh3ikniD",
        GamepadRequired: "xAMFa9akLaRN7hfkTC8_h",
        Personalized: "_1g3WgidGN68CDX4XQPGnl6",
        HighlightRow: "N97okiqePUqGpdeNrIxUU",
        LocString: "_3FBEGAfvLQj4qYjstmZAPE",
        ImgSection: "dxuI55RF56-dzbuXjj2W0",
        SmallerSVG: "_1LWvkVSCiVeG4Yf5uxtQ28",
        BiggerSVG: "WRiytnKTtULWCkwFVJoTx",
        PreviewContainer: "_13bOrUeolqp9EyK3or-cLt",
        StoreSidebarContainer: "_1CTHwmZmi5YE4kovZH_UIl",
        PurchaseNoticeContainer: "_166hsSkQYxKraMJIx7td91",
        PurchaseNoticeImage: "_3UK9OHyZ3r9rA55mgsnZPD",
        NoticeContainer: "_2IS5rvIlv3ARam8O7b_-po",
        ControllerRequiredImage: "_3YEJ5NoOg1YObev3TXdMi",
        Tilt: "_1NEHd7t-JVZYdk68QMEph-",
        ToolTipControl: "_3vt5rw82YhkhWtu5ld9QeP",
        ToolTipContainer: "_3PRdiJdKKfTnwLnTfbCkEz",
      };
    },
    7517: (e, t, n) => {
      "use strict";
      n.d(t, { $: () => A });
      var a = n(41735),
        r = n.n(a),
        o = n(20194),
        l = n(30470);
      var s = n(90626),
        i = n(69235),
        c = n(56555),
        d = n(49953),
        u = n(55241),
        m = n(85010),
        p = n(62059),
        _ = n(36058),
        E = n(55263),
        g = n(71541),
        C = n(84811),
        h = n(32754),
        S = n(52038),
        f = n(61859),
        b = n(27429),
        k = n(19976);
      function A(e) {
        const { nPartnerID: t, nAppID: n } = e;
        return l.iA.is_support
          ? s.createElement(v, { nPartnerID: t, nAppID: n })
          : null;
      }
      function v(e) {
        const { nPartnerID: t, nAppID: n } = e,
          [a, i] = (0, s.useState)(90),
          c = (function (e, t, n) {
            const { isLoading: a, data: s } = (0, o.I)({
              queryKey: ["usePartnerFinancialDailySummary", e, t, n],
              queryFn: async () => {
                const a = { partnerid: e, pastdays: t, appid: n },
                  o = `${l.TS.PARTNER_BASE_URL}financial/ajaxgetpartnersummary`,
                  s = await r().get(o, { params: a, withCredentials: !0 });
                return 1 != s?.data?.success
                  ? { daily_sales: [], summary_sales: {} }
                  : s.data.data;
              },
              enabled: !!e && t >= 1,
            });
            return a ? null : s;
          })(t, a, n);
        return c && 0 != c.daily_sales?.length
          ? s.createElement(
              "div",
              { className: "valveOutline padded" },
              s.createElement("p", { className: "valveh2" }, "Valve Only:"),
              s.createElement(P, { nDaysInThePast: a, fnUpdateDaysInPast: i }),
              s.createElement(D, { stats: c }),
              s.createElement(N, { stats: c }),
            )
          : null;
      }
      const w = [
        { label: (0, f.we)("#PartnerStats_DayWeek"), data: 7 },
        { label: (0, f.we)("#PartnerStats_DayMonth"), data: 30 },
        { label: (0, f.we)("#PartnerStats_DayPeriod"), data: 90 },
      ];
      function P(e) {
        const { nDaysInThePast: t, fnUpdateDaysInPast: n } = e;
        return s.createElement(
          "div",
          { className: k.ModuleCtn },
          s.createElement(
            "div",
            { className: k.LeftAlign },
            s.createElement(
              "div",
              { className: k.ModuleTitle },
              (0, f.we)("#PartnerStats_DayLabel"),
            ),
            s.createElement(g.m, {
              layout: "inline",
              label: null,
              rgOptions: w,
              selectedOption: t,
              onChange: (e) => n(e.data),
            }),
          ),
          s.createElement(
            "div",
            { className: k.ViewDetailLink },
            s.createElement(
              "a",
              { href: "#" },
              (0, f.we)("#PartnerStats_ViewDetail"),
            ),
          ),
        );
      }
      const y = new Intl.NumberFormat("en-US", {
        style: "currency",
        currency: "USD",
        maximumFractionDigits: 0,
        minimumFractionDigits: 0,
      });
      function D(e) {
        const { stats: t } = e;
        return s.createElement(
          "div",
          { className: k.HeaderCtn },
          s.createElement(
            "div",
            { className: k.StatGroup },
            s.createElement(
              "div",
              { className: k.Header },
              (0, f.we)("#PartnerStats_Header_Revenue"),
            ),
            s.createElement(
              "div",
              { className: k.Numerals },
              (function (...e) {
                let t = 0;
                return (
                  e.forEach((e) => {
                    t += Number.parseInt(e || "0") / 1e4;
                  }),
                  y.format(t)
                );
              })(t.summary_sales.total_gross_sales_usdx100),
            ),
          ),
          s.createElement(
            "div",
            { className: k.StatGroup },
            s.createElement(
              "div",
              { className: k.Header },
              (0, f.we)("#PartnerStats_Header_Units"),
            ),
            s.createElement(
              "div",
              { className: k.Numerals },
              Number.parseInt(
                t.summary_sales.steam_gross_units_sold || "0",
              ).toLocaleString(),
            ),
          ),
        );
      }
      function N(e) {
        const { stats: t } = e,
          n = "total_gross_sales_usdx100",
          [a, r, o] = (0, s.useMemo)(() => {
            if (!t || 0 == t.daily_sales?.length) return [0, 0, []];
            const e = (function (e, t) {
              const n = new Map();
              return (
                e.forEach((e) => {
                  const a = e.rtime_date,
                    r = Number.parseInt(e.daily_summary_sales[t]);
                  r &&
                    n.set(a, {
                      partner_stats_value: t.includes("usd") ? r / 1e4 : r,
                      rtime: a,
                      top_app_sales: e.top_app_sales,
                    });
                }),
                Array.from(n.values())
              );
            })(t.daily_sales, n);
            let a = 0,
              r = 0;
            return (
              e.forEach((e) => {
                e.partner_stats_value > a && (a = e.partner_stats_value),
                  (r += e.partner_stats_value);
              }),
              [a, r, e.sort((e, t) => e.rtime - t.rtime)]
            );
          }, [t, n]);
        return t && 0 != o.length
          ? s.createElement(
              "div",
              { className: k.DashStatsContainer },
              s.createElement(
                "div",
                { className: k.Chart },
                s.createElement(
                  C.tH,
                  null,
                  s.createElement(T, { Data: o, nPeak: a }),
                ),
              ),
            )
          : null;
      }
      const T = s.memo((e) => {
        const { Data: t, nPeak: n } = e,
          a = (0, s.useCallback)(
            (e, n) =>
              t.length > 20
                ? t[n]?.partner_stats_value && n % 7 == 0
                  ? new Date(1e3 * t[n].rtime).toLocaleDateString(
                      f.pf.GetPreferredLocales(),
                      { month: "short", day: "numeric" },
                    )
                  : ""
                : t[n]?.partner_stats_value
                  ? new Date(1e3 * t[n].rtime).toLocaleDateString(
                      f.pf.GetPreferredLocales(),
                      { month: "short", day: "numeric" },
                    )
                  : "",
            [t],
          );
        return s.createElement(
          i.u,
          { width: "100%", height: "100%" },
          s.createElement(
            c.X,
            {
              data: t,
              margin: { top: 25, left: 0, right: 0, bottom: 0 },
              barGap: 10,
            },
            s.createElement(
              "defs",
              null,
              s.createElement(
                "linearGradient",
                { id: "bar_linear", x1: "0", x2: "0", y1: "0", y2: "1" },
                s.createElement("stop", { stopColor: "#1A9FFF" }),
                s.createElement("stop", {
                  offset: "1",
                  stopColor: "#1A9FFF",
                  stopOpacity: "1",
                }),
              ),
            ),
            s.createElement(d.d, { vertical: !1, stroke: "#a0aab6" }),
            s.createElement(u.h, {
              tickFormatter: b.Z2,
              tick: { fill: "white" },
              axisLine: !1,
              orientation: "right",
            }),
            s.createElement(m.m, { content: s.createElement(R, null) }),
            s.createElement(p.y, {
              dataKey: "partner_stats_value",
              fill: "url( #bar_linear )",
            }),
            s.createElement(_.W, {
              interval: 0,
              tick: s.createElement(I, null),
              tickFormatter: a,
            }),
          ),
        );
      });
      function I(e) {
        const { x: t, y: n, payload: a } = e,
          r = e.tickFormatter(a.value, a.index);
        return s.createElement(
          "g",
          { transform: `translate(${t},${n})` },
          s.createElement(
            "text",
            {
              x: 0,
              y: 0,
              dy: 16,
              textAnchor: "middle",
              fill: "#FFFFFF",
              transform: "rotate(0)",
              fontSize: "11px",
            },
            r,
          ),
        );
      }
      function R({ active: e, payload: t }) {
        if (e && t && t.length) {
          const e = t[0].payload,
            n = e.partner_stats_value;
          let a = n;
          return (
            e.top_app_sales.forEach((e) => {
              a -=
                Number.parseInt(e.app_summary_sales.total_gross_sales_usdx100) /
                1e4;
            }),
            s.createElement(
              h.t1,
              { className: k.TooltipPartnerSummary },
              s.createElement(
                "div",
                null,
                (0, f.we)("#PartnerStats_Tooltip_Date", (0, f.TW)(e.rtime)),
              ),
              s.createElement(
                "div",
                { className: k.LineItemsCtn },
                s.createElement(
                  "div",
                  { className: k.ToolTipTable },
                  e.top_app_sales.map((e) => {
                    const t =
                      (Number.parseInt(
                        e.app_summary_sales.total_gross_sales_usdx100,
                      ) /
                        1e4 /
                        n) *
                      100;
                    return s.createElement(L, {
                      key: "app" + e.appid,
                      appid: e.appid,
                      usdRevenue:
                        Number.parseInt(
                          e.app_summary_sales.total_gross_sales_usdx100,
                        ) / 1e4,
                      nPercentage: t,
                    });
                  }),
                  Boolean(a > 2) &&
                    s.createElement(
                      "div",
                      { className: k.ToolTipTableRow },
                      s.createElement(
                        "div",
                        { className: k.ToolTipTableCell },
                        (0, f.we)("#PartnerStats_Tooltip_Remaining"),
                      ),
                      s.createElement(
                        "div",
                        { className: k.ToolTipTableCell },
                        (0, b.Z2)(a),
                      ),
                      s.createElement(
                        "div",
                        { className: k.ToolTipTableCell },
                        Math.round((a / n) * 100),
                        "%",
                      ),
                    ),
                  s.createElement(
                    "div",
                    { className: (0, S.A)(k.ToolTipTableRow, k.TotalRow) },
                    s.createElement(
                      "div",
                      { className: k.ToolTipTableCell },
                      (0, f.we)("#PartnerStats_Tooltip_Total"),
                    ),
                    s.createElement(
                      "div",
                      { className: k.ToolTipTableCell },
                      (0, b.Z2)(n),
                    ),
                    s.createElement("div", { className: k.ToolTipTableCell }),
                  ),
                ),
              ),
            )
          );
        }
        return null;
      }
      function L(e) {
        const { appid: t, usdRevenue: n, nPercentage: a } = e,
          [r] = (0, E.t7)(t, {});
        return s.createElement(
          "div",
          { className: k.ToolTipTableRow },
          s.createElement(
            "div",
            { className: k.ToolTipTableCell },
            r?.GetName() || t,
          ),
          s.createElement(
            "div",
            { className: k.ToolTipTableCell },
            (0, b.Z2)(n),
          ),
          s.createElement(
            "div",
            { className: k.ToolTipTableCell },
            Math.round(a),
            "%",
          ),
        );
      }
    },
    74267: (e, t, n) => {
      "use strict";
      n.d(t, { L: () => d, O: () => u });
      var a = n(90626),
        r = n(85274),
        o = n.n(r),
        l = n(12155),
        s = n(52038),
        i = n(49771),
        c = n(6336);
      const d = new i.MX("price-grid-cell-popout-elements");
      function u(e) {
        let { hoverKey: t, className: n, renderHover: r } = e,
          i = (0, s.A)(o().MoreDots, n),
          u = a.useRef(void 0),
          m = a.useCallback(() => {
            d.HideElement(u.current.ownerDocument, t);
          }, [t]);
        return a.createElement(
          "div",
          {
            ref: u,
            tabIndex: -1,
            className: i,
            onFocus: (e) => {
              e.target.focus();
              let n = a.createElement(
                c.g,
                {
                  target: u.current,
                  direction: "top",
                  bEnablePointerEvents: !0,
                  nBodyDistance: 0,
                  onClick: m,
                },
                r(),
              );
              d.ShowElement(u.current.ownerDocument, n, t);
            },
            onBlur: () => {
              d.HideElement(u.current.ownerDocument, t, 100);
            },
          },
          a.createElement(l.faJ, null),
        );
      }
    },
    61051: (e, t, n) => {
      "use strict";
      n.d(t, {
        mK: () => D,
        Gy: () => y,
        sh: () => A,
        T6: () => v,
        Oo: () => w,
      });
      var a = n(69423),
        r = n(9554),
        o = n(90626),
        l = n(6336),
        s = n(14336),
        i = n(71541),
        c = n(12155),
        d = n(32754),
        u = n(52038),
        m = n(61859),
        p = n(88997),
        _ = n(40650),
        E = n.n(_),
        g = n(40801),
        C = n.n(g);
      function h(e) {
        const { packageID: t } = e,
          n = o.useRef(void 0);
        return o.createElement(
          "div",
          {
            className: C().PriceGuidelinesPicker,
            onClick: (e) => {
              const a = {
                bOverlapHorizontal: !0,
                strClassName: (0, u.A)(E().contextMenu, C().DropDown),
              };
              n.current = (0, p.lX)(
                o.createElement(S, {
                  packageID: t,
                  fnOnClick: () => n.current.Hide(),
                }),
                e.currentTarget,
                a,
              );
            },
          },
          o.createElement(c.GB9, null),
        );
      }
      function S(e) {
        const { packageID: t, fnOnClick: n } = e,
          { rgUSDPricesInCents: r, fnApplyGuidelines: l } = (0, a.XE)(),
          { nPriceInCents: s } = (0, a.xQ)(t, "USD");
        return o.createElement(
          "div",
          { className: C().GuidelinesPanel },
          o.createElement(
            "div",
            { className: C().GuidelinesDescription },
            (0, m.we)("#PricingDashboard_GuidelinesPickerDescription"),
          ),
          o.createElement(
            "div",
            { className: C().GuidelinesGrid },
            r.map((e) =>
              o.createElement(
                "div",
                {
                  key: e,
                  onClick: () =>
                    ((e) => {
                      l(t, e), n();
                    })(e),
                  className: (0, u.A)(
                    C().GridElement,
                    s == e && C().CurrentPrice,
                  ),
                },
                (0, a.Wx)(e, "USD"),
              ),
            ),
          ),
        );
      }
      var f = n(74267),
        b = n(96434),
        k = n.n(b);
      function A(e) {
        const { cell: t } = e,
          n = t.getRow().getData().packageID,
          s = t.getValue(),
          {
            nPriceInCents: c,
            nPublishedPriceInCents: d,
            nProposedPriceInCents: u,
            fnSetPrice: m,
          } = (0, a.xQ)(n, s),
          [p, _, E] = (0, a.Wx)(c, s),
          g = (0, a.Gs)(s),
          C = o.useRef(void 0),
          S = n + s,
          { strClassName: b } = P(n, s),
          A = "USD" == s,
          w = u ?? d,
          D = c != w;
        return o.createElement(
          "div",
          {
            ref: C,
            onKeyDown: (e) => (0, r.nm)(e, t.getTable()),
            className: b,
          },
          D && o.createElement(y, { nPriceInCents: c, nSavedPriceInCents: w }),
          p && o.createElement("div", { className: k().PricePrefix }, p),
          o.createElement(
            "div",
            { className: k().EditablePrice },
            o.createElement(i.pd, {
              value: _,
              className: k().PriceInput,
              onChange: (e) => {
                const t = e.target.value.replace(/[^0-9]/g, "");
                let n = Number(t || 0);
                if (Number.isNaN(n)) return;
                g.bWholeUnitsOnly && (n *= 100);
                const a = 2147483647;
                n > a && (n = a), m(n);
              },
              onFocus: (e) => {
                e.target.select(),
                  f.L.ShowElement(
                    C.current.ownerDocument,
                    o.createElement(
                      l.g,
                      {
                        target: C.current,
                        direction: "top",
                        bEnablePointerEvents: !0,
                        nBodyDistance: 0,
                      },
                      o.createElement(N, {
                        key: S,
                        packageID: n,
                        strPriceKey: s,
                      }),
                    ),
                    S,
                  );
              },
              onBlur: () => {
                window.setTimeout(
                  () => f.L.HideElement(C.current.ownerDocument, S),
                  500,
                );
              },
            }),
          ),
          E && o.createElement("div", { className: k().PriceSuffix }, E),
          A && o.createElement(h, { packageID: n }),
          o.createElement(v, { packageID: n, strPriceKey: s }),
        );
      }
      function v(e) {
        const { packageID: t, strPriceKey: n } = e,
          { strPriceWarning: a, bBadPrice: r, bShowWarningIcon: l } = P(t, n);
        return l
          ? o.createElement(
              d.he,
              {
                className: k().PriceAlert,
                strTooltipClassname: k().HoverToolTip,
                toolTipContent: a,
                direction: "top",
              },
              o.createElement(c.eTF, {
                color: r ? "rgb(194, 45, 0)" : "#e5af37",
              }),
            )
          : null;
      }
      const w = 2;
      function P(e, t) {
        const {
            nPriceInCents: n,
            nPublishedPriceInCents: r,
            nProposedPriceInCents: l,
            nMinPriceInCents: s,
            nMaxPriceInCents: i,
            nMaxDiscountPercentage: c,
            nSuggestedPriceInCents: d,
          } = (0, a.xQ)(e, t),
          p = (0, a.d$)(e),
          _ = "USD" == t,
          E = n != (l ?? r),
          g = n < s,
          C = !!i && n > i,
          h = !!d && n > d * w,
          S = !!d && n < d / w,
          f = !!d && n < d && !!c,
          b =
            (C && (0, m.we)("#PricingDashboard_PriceIncreaseDisallowed")) ||
            (g &&
              (0, m.we)(
                "#PricingDashboard_PriceTooLow",
                (0, a.Wx)(s, t).join(""),
              )) ||
            (h &&
              (0, m.we)(
                "#PricingDashboard_PriceMuchHigherThanGuidelines",
                (0, a.Wx)(d, t).join(""),
              )) ||
            (S &&
              (0, m.we)(
                "#PricingDashboard_PriceMuchLowerThanGuidelines",
                (0, a.Wx)(d, t).join(""),
              )) ||
            (f &&
              (0, m.we)(
                "#PricingDashboard_PriceCheapAndLowerThanGuidelines",
                c,
              )),
          A = C || g,
          v = h || S,
          P = A || v || f,
          y = !(E || !l || (r && l == r)),
          D = 4 == p?.eState,
          N = (0, u.A)(
            k().PriceCell,
            _ && k().USD,
            E && k().ChangedLocally,
            y && k().ProposedPrice,
            D && k().ApprovedCanPublish,
            P && k().WarningPrice,
            v && k().SevereWarningPrice,
            A && k().BadPrice,
          );
        return o.useMemo(
          () => ({
            strPriceWarning: b,
            strClassName: N,
            bBadPrice: A,
            bShowSevereWarning: v,
            bShowWarningIcon: P,
          }),
          [b, N, A, v, P],
        );
      }
      function y(e) {
        const { nPriceInCents: t, nSavedPriceInCents: n } = e;
        let a = null,
          r = null,
          l = null,
          s = null;
        if (n) {
          const e = Math.ceil((100 * (t - n)) / n),
            i = t > n;
          (l = i
            ? (0, m.we)("#PricingDashboard_PriceIncreaseBy", e + "%")
            : (0, m.we)("#PricingDashboard_PriceLowerBy", e + "%")),
            (s = (0, u.A)(k().PriceChange, i && k().PriceIncrease)),
            (r = o.createElement(
              "div",
              { className: k().PriceChangeArrow },
              o.createElement(c.i3G, { angle: i ? 0 : 180 }),
            )),
            (a = e + "%");
        } else
          (a = (0, m.we)("#PricingDashboard_PriceIsNew_Short")),
            (s = (0, u.A)(k().NewPrice));
        return o.createElement(
          d.he,
          {
            className: s,
            strTooltipClassname: k().HoverToolTip,
            toolTipContent: l,
            direction: "top",
          },
          r,
          a,
        );
      }
      function D(e) {
        return new Date(1e3 * e).toLocaleString(m.pf.GetPreferredLocales(), {
          weekday: "long",
          month: "long",
          day: "numeric",
          hour: "numeric",
          minute: "2-digit",
        });
      }
      function N(e) {
        const { packageID: t, strPriceKey: n } = e,
          {
            nPriceInCents: r,
            nPublishedPriceInCents: l,
            nProposedPriceInCents: i,
            nSuggestedPriceInCents: c,
            fnSetPrice: p,
          } = (0, a.xQ)(t, n),
          { nPriceInCents: _ } = (0, a.xQ)(t, "USD"),
          E = !(!i || (l && i == l)),
          g = (0, a.d$)(t),
          C = g && D(g.rtSubmitted),
          h = (0, s.z0)(g?.submitterID),
          S = h ? h.m_strPlayerName : g?.submitterID;
        return o.createElement(
          "div",
          { className: k().PricePopout },
          !!l &&
            o.createElement(
              d.he,
              {
                className: k().DetailRow,
                direction: "left",
                toolTipContent: (0, m.we)(
                  "#PricingDashboard_CurrentPriceOnStore_ttip",
                ),
              },
              o.createElement(
                "div",
                { className: k().DetailLabel },
                (0, m.we)("#PricingDashboard_CurrentPriceOnStore"),
              ),
              o.createElement(
                "div",
                { className: k().DetailPrice },
                (0, a.Wx)(l, n).join(""),
              ),
              o.createElement(
                d.he,
                {
                  className: (0, u.A)(k().DetailButton, l == r && k().Disabled),
                  onClick: () => p(l),
                  bDisabled: l == r,
                  toolTipContent: (0, m.we)(
                    "#PricingDashboard_UseThisOldPrice_ttip",
                  ),
                },
                (0, m.we)("#PricingDashboard_UseThisPrice_Button"),
              ),
            ),
          E &&
            o.createElement(
              d.he,
              {
                className: k().DetailRow,
                direction: "left",
                toolTipContent: (0, m.we)(
                  "#PricingDashboard_ProposedPrice_ttip",
                  S,
                  C,
                ),
              },
              o.createElement(
                "div",
                { className: k().DetailLabel },
                (0, m.we)("#PricingDashboard_ProposedPrice"),
              ),
              o.createElement(
                "div",
                { className: k().DetailPrice },
                (0, a.Wx)(i, n).join(""),
              ),
              o.createElement(
                d.he,
                {
                  className: (0, u.A)(k().DetailButton, i == r && k().Disabled),
                  onClick: () => p(i),
                  bDisabled: i == r,
                  toolTipContent: (0, m.we)(
                    "#PricingDashboard_UseThisNewPrice_ttip",
                  ),
                },
                (0, m.we)("#PricingDashboard_UseThisPrice_Button"),
              ),
            ),
          !!c &&
            o.createElement(
              d.he,
              {
                className: k().DetailRow,
                direction: "left",
                toolTipContent: (0, m.we)(
                  "#PricingDashboard_SuggestedPrice_ttip",
                  (0, a.Wx)(_, "USD").join(""),
                ),
              },
              o.createElement(
                "div",
                { className: k().DetailLabel },
                (0, m.we)("#PricingDashboard_SuggestedPrice"),
              ),
              o.createElement(
                "div",
                { className: k().DetailPrice },
                (0, a.Wx)(c, n).join(""),
              ),
              o.createElement(
                d.he,
                {
                  className: (0, u.A)(k().DetailButton, c == r && k().Disabled),
                  onClick: () => p(c),
                  bDisabled: c == r,
                  toolTipContent: (0, m.we)(
                    "#PricingDashboard_UseThisNewPrice_ttip",
                  ),
                },
                (0, m.we)("#PricingDashboard_UseThisPrice_Button"),
              ),
            ),
        );
      }
    },
    36225: (e, t, n) => {
      "use strict";
      n.d(t, { AS: () => A, KZ: () => w, c$: () => D });
      var a = n(51614),
        r = n(60863),
        o = n(92503),
        l = n(90626),
        s = n(71541),
        i = n(4869),
        c = n(78395),
        d = n(21869),
        u = n(738),
        m = n(71696),
        p = n(30175),
        _ = n(22797),
        E = n(52038),
        g = n(56011),
        C = n(61859),
        h = n(27650),
        S = n(64753),
        f = n(30470),
        b = n(43104),
        k = n(32754);
      function A(e) {
        const {
            src: t,
            inLink: n,
            selected: a,
            setAttrs: r,
            focusView: s,
            removeNode: c,
          } = e,
          [d, u] = (0, S.OP)(),
          [m, _, g] = (0, S.uD)(),
          h = (0, o.FD)(),
          f = l.useCallback(() => {
            s(), g();
          }, [s, g]),
          k = l.useMemo(() => h.find((e) => e.name === t), [t, h]);
        let A;
        return (
          (A = k
            ? l.createElement("img", {
                key: k.name,
                className: b.ExtraAssetImg,
                src: k.url,
                alt: k.name,
                title: k.name,
              })
            : l.createElement(
                "span",
                { className: b.ExtraAssetError },
                (0, C.we)("#StoreAdmin_GameDescription_MissingImage", t),
              )),
          l.createElement(
            l.Fragment,
            null,
            m &&
              l.createElement(P, {
                editAsset: k?.name,
                onAssetSelected: (e) => r({ src: e }),
                hideModal: f,
              }),
            l.createElement(
              "span",
              {
                className: (0, E.A)(
                  b.ExtraAssetImgTag,
                  b.ExtraAssetControlsContainer,
                  d && b.Hovered,
                  n && b.InDeprecatedLink,
                ),
                ...u,
                title: "",
              },
              n && l.createElement(v, null),
              l.createElement(
                "span",
                { className: b.ExtraAssetControls },
                l.createElement(
                  p.ff,
                  {
                    onClick: _,
                    tooltip: (0, C.we)(
                      "#StoreAdmin_GameDescription_ReplaceImage",
                    ),
                  },
                  l.createElement(i.ffu, null),
                ),
                l.createElement(
                  p.ff,
                  {
                    onClick: c,
                    tooltip: (0, C.we)(
                      "#StoreAdmin_GameDescription_RemoveImage",
                    ),
                  },
                  l.createElement(i.sED, null),
                ),
              ),
              A,
            ),
          )
        );
      }
      function v() {
        return l.createElement(
          "span",
          { className: b.ImageLinkDisabledWarning },
          l.createElement(
            "span",
            { className: b.TopBar },
            l.createElement(
              k.Gq,
              {
                toolTipContent: (0, C.we)(
                  "#StoreAdmin_GameDescription_ImageLinkDisabled_Description",
                ),
              },
              l.createElement(
                "span",
                { className: b.TopBarContent },
                "Disabled",
              ),
            ),
          ),
        );
      }
      function w(e) {
        const { nodeType: t } = e,
          { callbacks: n, view: a } = (0, p.wU)(),
          [r, o, s] = (0, S.uD)(),
          c = l.useCallback(() => {
            s(), a.focus();
          }, [s, a]),
          d = l.useCallback(
            (e) => {
              a.dispatch(
                a.state.tr.insert(
                  a.state.selection.to,
                  t.createChecked({ src: e }),
                ),
              ),
                c();
            },
            [a, t, c],
          );
        return l.createElement(
          l.Fragment,
          null,
          r && l.createElement(P, { onAssetSelected: d, hideModal: c }),
          l.createElement(
            p.ff,
            {
              onClick: o,
              toggled: r,
              tooltip: "#StoreAdmin_GameDescription_InsertImage",
            },
            l.createElement(i._V3, null),
          ),
        );
      }
      function P(e) {
        const { editAsset: t, onAssetSelected: n, hideModal: a } = e,
          i = (0, o.FD)(),
          [c, p] = l.useState(t),
          [_, g] = (0, m.Y0)(a, r.SG),
          h = l.useCallback(
            (e) => {
              e && (n(e), a());
            },
            [n, a],
          ),
          S = l.useCallback((e, t) => (t ? h(e) : p(e)), [h]);
        return l.createElement(
          d.E,
          { active: !0 },
          _,
          l.createElement(
            u.x_,
            { onEscKeypress: a },
            l.createElement(
              s.U9,
              { classNameContent: b.ExtraAssetDialogContent },
              l.createElement(
                s.Y9,
                null,
                (0, C.we)("#StoreAdmin_GameDescription_SelectImage"),
              ),
              l.createElement(
                "div",
                { className: b.ExtraAssetsDialogDescription },
                l.createElement(
                  "div",
                  null,
                  (0, C.we)("#StoreAdmin_GameDescription_ExistingImages"),
                ),
                l.createElement(
                  "div",
                  { className: b.UploadButtonContainer },
                  l.createElement(
                    "div",
                    null,
                    (0, C.we)("#StoreAdmin_ExtraAssetUpload_UploadNew"),
                  ),
                  l.createElement(
                    s.jn,
                    { className: b.UploadButton, onClick: g },
                    (0, C.we)("#StoreAdmin_ExtraAssetUpload_BrowseForFile"),
                  ),
                ),
              ),
              l.createElement(
                s.nB,
                { className: b.ExtraAssetsGridDialog },
                l.createElement(
                  "div",
                  {
                    className: (0, E.A)(
                      b.ExtraAssetsGrid,
                      b.ExtraAssetsChooser,
                    ),
                  },
                  i.map((e) =>
                    l.createElement(y, {
                      key: e.name,
                      extra_asset: e,
                      onAssetClick: S,
                      selected: e.name == c,
                    }),
                  ),
                ),
              ),
              l.createElement(
                s.wi,
                null,
                l.createElement(s.CB, {
                  onCancel: a,
                  onOK: (e) => {
                    e.preventDefault(), h(c);
                  },
                  bOKDisabled: !c,
                  strOKText: (0, C.we)(
                    "#StoreAdmin_GameDescription_UseThisImage",
                  ),
                }),
              ),
            ),
          ),
        );
      }
      function y(e) {
        const { extra_asset: t, onAssetClick: n, selected: a } = e;
        return l.createElement(
          "div",
          {
            className: (0, E.A)(b.ExtraAssetChoice, a && b.Selected),
            onClick: () => n(t.name, !1),
            onDoubleClick: () => n(t.name, !0),
            title: t.name,
          },
          l.createElement(
            "div",
            { className: b.ImgCtn },
            l.createElement("img", { src: t.url }),
          ),
          l.createElement("div", { className: b.ExtraAssetName }, (0, r.K7)(t)),
        );
      }
      function D(e) {
        const t = (0, o.FD)(),
          n = (0, o.cz)(),
          a = l.useCallback(
            (e) => {
              for (const t of e) {
                let e = n({
                  file: t,
                  onComplete: () => e(),
                  onCancel: () => e(),
                });
              }
            },
            [n],
          ),
          [r] = (0, h.hk)(a);
        return l.createElement(
          l.Fragment,
          null,
          l.createElement(
            "div",
            { ...r, className: b.ExtraAssetsPageList },
            l.createElement(
              "div",
              { className: b.ExtraAssetsGrid },
              t.map((e) => l.createElement(T, { key: e.name, extra_asset: e })),
            ),
          ),
          l.createElement(N, { onFilesSelected: a }),
        );
      }
      function N(e) {
        const { onFilesSelected: t } = e,
          [n, a] = (0, h.Ss)(t, { multiple: !0, accept: r.SG });
        return l.createElement(
          l.Fragment,
          null,
          n,
          l.createElement(
            "div",
            { className: b.StandaloneUploadButton },
            l.createElement(
              "div",
              null,
              (0, C.we)("#StoreAdmin_ExtraAssetUpload_UploadNew"),
            ),
            l.createElement(
              s.$n,
              { className: b.UploadButton, onClick: a },
              (0, C.we)("#StoreAdmin_ExtraAssetUpload_BrowseForFile"),
            ),
          ),
        );
      }
      function T(e) {
        const { extra_asset: t } = e,
          [n, a] = (0, S.OP)(),
          [o, s, c] = (0, S.uD)(),
          d = () => {
            window.open(t.url);
          };
        return l.createElement(
          "div",
          {
            className: (0, E.A)(
              b.ExtraAssetChoice,
              b.ExtraAssetControlsContainer,
              n && b.Hovered,
            ),
            ...a,
            title: t.name,
          },
          o && l.createElement(I, { extra_asset: t, hideModal: c }),
          l.createElement(
            "div",
            { className: b.ExtraAssetControls, title: "" },
            l.createElement(
              p.ff,
              {
                onClick: d,
                tooltip: (0, C.we)(
                  "#StoreAdmin_GameDescription_OpenInNewWindow",
                ),
              },
              l.createElement(i.glU, null),
            ),
            l.createElement(
              p.ff,
              {
                onClick: () => (0, g.OG)(t.name),
                tooltip: (0, C.we)(
                  "#StoreAdmin_GameDescription_CopyNameToClipboard",
                ),
              },
              l.createElement(i.QRo, null),
            ),
            l.createElement(
              p.ff,
              {
                onClick: s,
                tooltip: (0, C.we)("#StoreAdmin_GameDescription_DeleteAsset"),
              },
              l.createElement(i.sED, null),
            ),
          ),
          l.createElement(
            "div",
            { className: b.ImgCtn },
            l.createElement("img", { src: t.url, onDoubleClick: d }),
          ),
          l.createElement("div", { className: b.ExtraAssetName }, (0, r.K7)(t)),
        );
      }
      function I(e) {
        const { extra_asset: t, hideModal: n } = e,
          {
            mutate: s,
            isPending: i,
            isSuccess: u,
          } = (function () {
            const e = (0, o.Z3)("ajaxmodifyextraassets"),
              t = (0, o.Y7)();
            return (0, a.n)({
              mutationFn: async (t) => {
                const n = new FormData();
                n.append("sessionid", f.TS.SESSIONID),
                  n.append("action", "delete"),
                  n.append("name", (0, r.K7)(t));
                const a = await fetch(e, { method: "post", body: n }),
                  o = await a.json();
                if (!a.ok) throw o.errors?.join(" ") || "Error deleting asset";
                return o;
              },
              onSuccess: (e) => {
                t(e.rgExtraAssets);
              },
              onError: (e) => {
                console.error(
                  (0, C.we)(
                    "#StoreAdmin_UploadError_Generic",
                    "string" == typeof e ? e : e.message,
                  ),
                );
              },
            });
          })(),
          m = i || u;
        return (
          l.useEffect(() => {
            u && n();
          }, [u, n]),
          l.createElement(
            d.E,
            { active: !0 },
            l.createElement(c.o0, {
              onOK: () => s(t),
              bOKDisabled: m,
              strOKButtonText: (0, C.we)(
                "#StoreAdmin_GameDescription_DeleteAsset",
              ),
              strTitle: (0, C.we)("#StoreAdmin_GameDescription_DeleteAsset"),
              strDescription: m
                ? l.createElement(_.t, { position: "center", size: "medium" })
                : (0, C.we)("#StoreAdmin_GameDescription_DeleteAsset_Confirm"),
              onCancel: n,
            }),
          )
        );
      }
    },
    60863: (e, t, n) => {
      "use strict";
      function a(e) {
        return e.name.replace(/^\{STEAM_APP_IMAGE\}\/extras\//, "");
      }
      function r(e) {
        return `{STEAM_APP_IMAGE}/extras/${e}`;
      }
      n.d(t, { K7: () => a, SG: () => o, TQ: () => r });
      const o = "image/png, image/jpeg, image/gif";
    },
    83247: (e, t, n) => {
      "use strict";
      n.d(t, { K: () => p, j: () => m });
      var a = n(90626),
        r = n(71541),
        o = n(6144),
        l = n(52038),
        s = n(64753),
        i = n(30470),
        c = n(97982);
      const d = "v_StoreAdminLanguageChange",
        u = a.createContext(void 0);
      function m(e) {
        const [t, n] = a.useState(),
          r = a.useMemo(
            () => ({ strActiveLanguage: t, setActiveLanguage: n }),
            [t],
          );
        return (
          a.useEffect(() => {
            t &&
              window.LocChangeControlsToLanguage &&
              window.LocChangeControlsToLanguage(t);
          }, [t]),
          (0, s.l6)(
            window,
            d,
            a.useCallback((e) => {
              e.detail.strLanguage && n(e.detail.strLanguage);
            }, []),
          ),
          a.createElement(u.Provider, { value: r }, e.children)
        );
      }
      function p(e, t, n, r) {
        const l = a.useMemo(() => Array.from(e.keys()), [e]),
          [s] = a.useState(() => {
            const e = new Map(t);
            return new Map(l.map((t) => [t, (0, o.Jc)(e.get(t) || "")]));
          }),
          c = a.useContext(u),
          [d, m] = a.useState(() => {
            return (t = s.size ? s : e).has(i.TS.LANGUAGE)
              ? i.TS.LANGUAGE
              : t.has("english")
                ? "english"
                : t.keys().next().value;
            var t;
          }),
          p = c?.strActiveLanguage ?? d,
          E = a.useCallback(
            (e) => {
              c?.setActiveLanguage(e), m(e);
            },
            [c],
          ),
          C = a.createElement(_, {
            mapLanguages: e,
            mapValues: s,
            strActiveLanguage: p,
            setActiveLanguage: E,
          }),
          h =
            Boolean(n && r) &&
            a.createElement(g, {
              rgLanguages: l,
              mapValues: s,
              namePrefix: n,
              rgPath: r,
            });
        return {
          strActiveLanguage: p,
          mapValues: s,
          rctLanguageSelect: C,
          rctHiddenInputs: h,
          setActiveLanguage: E,
        };
      }
      function _(e) {
        const {
            mapLanguages: t,
            mapValues: n,
            strActiveLanguage: o,
            setActiveLanguage: l,
          } = e,
          s = a.useMemo(() => {
            let e = [];
            return (
              t.forEach((t, r) => {
                e.push({
                  data: r,
                  label: a.createElement(E, {
                    language: r,
                    strLocLanguage: t,
                    value: n.get(r),
                  }),
                });
              }),
              e
            );
          }, [t, n]),
          i = a.useCallback((e) => l(e.data), [l]);
        return a.createElement(r.m, {
          strClassName: c.LanguageSelect,
          onChange: i,
          selectedOption: o,
          rgOptions: s,
        });
      }
      function E(e) {
        const { language: t, strLocLanguage: n, value: r } = e,
          [o, i] = a.useState(() => !!r?.Value?.trim()),
          d = a.useCallback((e) => i(!!e.trim()), []);
        return (
          (0, s.x2)(r, d),
          a.useEffect(() => d(r.Value), [d, r]),
          a.createElement(
            "span",
            { className: (0, l.A)(c.LanguageOption, o && c.HasValue) },
            n,
          )
        );
      }
      function g(e) {
        const { rgLanguages: t, mapValues: n, namePrefix: r, rgPath: o } = e;
        return t.map((e) =>
          a.createElement(C, {
            key: e,
            language: e,
            value: n.get(e),
            namePrefix: r,
            rgPath: o,
          }),
        );
      }
      const C = a.memo(function (e) {
        const { language: t, value: n, namePrefix: r, rgPath: o } = e,
          l = (0, s.gc)(n) || "",
          i = r + [...o, t].map((e) => `[${e}]`).join("");
        return a.createElement("input", { type: "hidden", name: i, value: l });
      });
    },
    2176: (e, t, n) => {
      "use strict";
      n.r(t), n.d(t, { StoreAppPageHeader: () => De, default: () => we });
      var a = n(91986),
        r = n(64753),
        o = n(98724),
        l = n(52893),
        s = n(49693),
        i = n(57053),
        c = n(81393);
      class d {
        m_nodes = [];
        m_schema;
        constructor(e) {
          this.m_schema = e;
        }
        AppendText(e, t) {
          let n = 0;
          for (let t = e.indexOf("\n", n); -1 !== t; t = e.indexOf("\n", n))
            n != t && this.m_nodes.push(this.m_schema.text(e.substring(n, t))),
              this.m_nodes.push(this.m_schema.nodes.hard_break.createChecked()),
              (n = t + 1);
          n < e.length && this.m_nodes.push(this.m_schema.text(e.substring(n)));
        }
        AppendNode(e) {
          this.m_nodes.push(e);
        }
        GetElements() {
          return this.m_nodes;
        }
      }
      function u(e) {
        return e
          .filter((e) => e.isText)
          .map((e) => e.text)
          .join();
      }
      class m extends s.Al {
        m_schemaConfig;
        m_mapPMBBNodes = new Map();
        constructor(e) {
          super(e.bbcode_dictionary, () => new d(e.pm_schema)),
            (this.m_schemaConfig = e),
            this.m_schemaConfig.bbcode_dictionary.forEach((e) => {
              "node" in e.Constructor &&
                this.m_mapPMBBNodes.set(e.Constructor.node.name, e.Constructor);
            });
        }
        get schema() {
          return this.m_schemaConfig.pm_schema;
        }
        ParseBBCode(e) {
          const t = this.Parse(e, this.BBNodeToPMNode.bind(this), !0);
          return this.m_schemaConfig.pm_schema.topNodeType.createChecked(
            {},
            this.ConvertLineBreaksToParagraphs(i.FK.fromArray(t)),
          );
        }
        TryCreateNode(e, t, n) {
          let a = i.FK.from(t);
          if (!e.node.validContent(a) && e.acceptNode) {
            let n = t.filter((t) => t.type == e.acceptNode);
            if (!n.length) {
              let a = t;
              e.acceptNode.isBlock &&
                a.length > 1 &&
                a[a.length - 1].type == this.schema.nodes.hard_break &&
                (a = a.slice(0, -1));
              const r = this.m_mapPMBBNodes.get(e.acceptNode.name);
              (0, c.w)(
                r,
                `Indicated acceptNode type ${e.acceptNode.name} for ${e.node.name} missing`,
              ),
                (n = r
                  ? [this.TryCreateNode(r, a, void 0)]
                  : [e.acceptNode.create(void 0, a)]);
            }
            a = i.FK.from(n);
          }
          return e.node.createAndFill(n, a) || e.node.create(n, a);
        }
        BBNodeToPMNode(e, t, ...n) {
          let a = e.BBArgsToAttrs ? e.BBArgsToAttrs(t.args || {}) : void 0;
          try {
            return (
              "convertContentToAttr" in e &&
                e.convertContentToAttr &&
                ((a && a[e.convertContentToAttr]) ||
                  (a = { ...(a || {}), [e.convertContentToAttr]: u(n) }),
                "node" in e && (n = [])),
              "node" in e
                ? this.TryCreateNode(e, n, a)
                : n.map((t) => t.mark([...t.marks, e.mark.create(a)]))
            );
          } catch (e) {
            return (
              console.error(`Error parsing [${t.tagname}] tag: ${e}`, e), []
            );
          }
        }
        ConvertLineBreaksToParagraphs(e) {
          const t = new Map(),
            n = this.m_schemaConfig.pm_schema;
          this.m_mapPMBBNodes.forEach((e) => {
            e.acceptNode && t.set(e.acceptNode.name, e.node);
          });
          const a = [],
            r = {
              nodes: [],
              nodeType: void 0,
              reset() {
                (this.nodes = []), (this.nodeType = void 0);
              },
              accumulate(e, t) {
                return (
                  this.nodeType && e != this.nodeType && this.emit(),
                  (this.nodeType = e),
                  this.nodes.push(t),
                  !0
                );
              },
              emit(e = !1) {
                const t = this.nodeType || (e ? n.nodes.paragraph : void 0);
                t && (a.push(t.createChecked({}, this.nodes)), this.reset());
              },
            };
          return (
            e.forEach((e) => {
              const o = e.type == n.nodes.hard_break,
                l = i.FK.from(e);
              if (o || n.topNodeType.validContent(l)) {
                const t = o && r.nodes.length > 0;
                r.emit(),
                  o
                    ? t || a.push(n.nodes.paragraph.createChecked())
                    : a.push(e);
              } else {
                let a;
                (a = n.nodes.paragraph.validContent(l)
                  ? n.nodes.paragraph
                  : t.get(e.type.name)),
                  a
                    ? r.accumulate(a, e)
                    : ((0, c.w)(
                        !1,
                        `Couldn't accept ${e.type.name} at root of document, converting to paragraph`,
                      ),
                      (a = n.nodes.paragraph),
                      r.accumulate(
                        n.nodes.paragraph,
                        n.text(
                          (function (e) {
                            let t = "";
                            return (
                              e.descendants((e) => {
                                e.isText && (t += e.text);
                              }),
                              t
                            );
                          })(e),
                        ),
                      ));
              }
            }),
            (!r.nodes.length && a.length) || r.emit(!0),
            i.FK.from(a)
          );
        }
      }
      function p(e, t) {
        return _(t.pm_schema, t.pm_to_bbcode_config, e, []);
      }
      function _(e, t, n, a) {
        let r = n.marks,
          o = "";
        const l = t.mapNodes.get(n.type),
          { tag: i, args: d } = (function (e, t) {
            if (e && e.AttrsToBBArgs) {
              const { tag: n = e.tag, args: a = {} } = e.AttrsToBBArgs(
                t.attrs,
                t,
              );
              return { tag: n, args: a };
            }
            return { tag: e?.tag, args: {} };
          })(l, n);
        return (
          i && (o += (0, s.CS)(i, d)),
          n.content.forEach((n) => {
            ([o, r] = E(t, r, n.marks, o)),
              ([o, r] = (function (e, t, n, a) {
                let r;
                for (const o of n)
                  if (-1 === t.indexOf(o)) {
                    r || (r = t.slice());
                    const n = e.mapMarks.get(o.type);
                    if (((0, c.w)(n, "mark missing bbtag"), n)) {
                      r.push(o);
                      const { args: e, tag: t } = g(n, o);
                      a += (0, s.CS)(t, e);
                    }
                  }
                return [a, r ?? t];
              })(t, r, n.marks, o)),
              n.type.isText
                ? (o += (0, s.vE)(n.text || ""))
                : n.type == e.nodes.hard_break
                  ? (o += "\n")
                  : (o += _(e, t, n, r));
          }),
          ([o] = E(t, r, a, o)),
          i && (o += (0, s.op)(i)),
          o
        );
      }
      function E(e, t, n, a) {
        const r = [];
        for (const e of t) -1 === n.indexOf(e) && r.push(e);
        if (!r.length) return [a, t];
        const o = t.slice();
        for (
          ;
          r.length && ((0, c.w)(o.length, "no marks left to close"), o.length);
        ) {
          const t = o.pop(),
            n = e.mapMarks.get(t.type),
            { tag: l } = g(n, t);
          a += (0, s.op)(l);
          const i = r.indexOf(t);
          -1 != i && r.splice(i, 1);
        }
        return [a, o];
      }
      function g(e, t) {
        if (e && e.AttrsToBBArgs) {
          const { tag: n = e.tag, args: a = {} } = e.AttrsToBBArgs(t.attrs, t);
          return { tag: n, args: a };
        }
        return { tag: e?.tag, args: {} };
      }
      const C = new l.hs("CProseMirrorState - OnChange");
      class h {
        m_bbcode;
        m_currentDoc;
        m_bHasUncomittedChanges = !1;
        m_schemaConfig;
        m_bbcodeParser;
        m_onStateChangedCallbacks = new a.l();
        m_fnCommitChanges;
        m_view;
        m_state;
        constructor(e, t, n) {
          (this.m_schemaConfig = e),
            (this.m_bbcodeParser = new m(e)),
            (this.m_bbcode = t),
            (this.m_fnCommitChanges = n),
            (this.m_state = this.ConstructState());
        }
        CommitChanges() {
          this.m_currentDoc &&
            this.m_bHasUncomittedChanges &&
            ((this.m_bbcode = p(this.m_currentDoc, this.m_schemaConfig)),
            this.m_fnCommitChanges(this.m_bbcode, this.m_currentDoc),
            (this.m_bHasUncomittedChanges = !1));
        }
        BHasUncomittedChanges() {
          return this.m_bHasUncomittedChanges;
        }
        get state() {
          return this.m_state;
        }
        get schemaConfig() {
          return this.m_schemaConfig;
        }
        get bbcodeParser() {
          return this.m_bbcodeParser;
        }
        get OnStateChangedCallbacks() {
          return this.m_onStateChangedCallbacks;
        }
        ConstructState() {
          const e = new l.k_({
            key: C,
            view: (e) => (
              console.assert(!this.m_view),
              (this.m_view = e),
              {
                update: (e, t) => this.OnStateChange(t, e.state),
                destroy: () => (this.m_view = void 0),
              }
            ),
          });
          return l.$t.create({
            schema: this.m_schemaConfig.pm_schema,
            doc: this.m_bbcodeParser.ParseBBCode(this.m_bbcode),
            plugins: [(0, o.b6)(), e],
          });
        }
        InstallPlugin(e) {
          const t = this.m_view ? this.m_view.state : this.m_state;
          return (
            t.plugins.includes(e) ||
              ((this.m_state = t.reconfigure({ plugins: [...t.plugins, e] })),
              this.m_view?.updateState(t)),
            () => {
              const t = this.m_view ? this.m_view.state : this.m_state;
              (this.m_state = t.reconfigure({
                plugins: t.plugins.filter((t) => t != e),
              })),
                this.m_view?.updateState(this.m_state);
            }
          );
        }
        OnStateChange(e, t) {
          (this.m_state = t),
            e.doc &&
              e.doc != t.doc &&
              ((this.m_currentDoc = t.doc),
              (this.m_bHasUncomittedChanges = !0),
              this.m_onStateChangedCallbacks.Dispatch(
                this.m_currentDoc,
                e.doc,
              ));
        }
      }
      var S = n(90626);
      function f(e, t) {
        const { msAutosaveTimeout: n = 1e3 } = t || {},
          [a, o] = S.useState(!1);
        return (
          (function (e, t) {
            (0, r.hL)(e?.OnStateChangedCallbacks, t);
          })(
            e,
            S.useCallback(() => {
              o(!0);
            }, []),
          ),
          S.useEffect(() => {
            if (!a || !e) return;
            const t = () => {
                e.CommitChanges(), o(!1);
              },
              r = window.setTimeout(t, n);
            return () => {
              window.clearTimeout(r), t();
            };
          }, [a, e, n]),
          { bDirty: a }
        );
      }
      var b = n(72739),
        k = n(22145);
      const A = S.memo(function (e) {
        const { specs: t } = e,
          [n, a] = S.useState([]),
          r = S.useRef(0),
          o = S.useCallback(
            (e) => (
              a((t) => [...t, { id: r.current++, nodeView: e }]),
              () => a((t) => t.filter((t) => t.nodeView != e))
            ),
            [],
          ),
          s = S.useMemo(() => {
            const e = {};
            return (
              t
                .filter(Boolean)
                .forEach(
                  (t) => (e[t.type.name] = (e, n, a) => new w(t, e, n, a, o)),
                ),
              new l.k_({ props: { nodeViews: e } })
            );
          }, [t, o]);
        return (
          (0, k.c$)(s),
          n.map(({ id: e, nodeView: t }) =>
            S.createElement(v, { key: e, nodeView: t }),
          )
        );
      });
      function v(e) {
        const {
            element: t,
            spec: n,
            getProps: a,
            onPropsChanged: r,
            actions: o,
            isSelected: l,
          } = e.nodeView,
          [s, i] = S.useReducer((e) => e + 1, 0);
        return (
          S.useEffect(() => r.Register(i).Unregister, [r, i]),
          b.createPortal(
            S.createElement(n.component, { ...a(), selected: l(), ...o }),
            t,
          )
        );
      }
      class w {
        dom;
        onPropsChanged;
        node;
        selected;
        destroy;
        constructor(e, t, n, r, o) {
          this.node = t;
          const l = n.dom.ownerDocument.createElement(
            e.type.isInline ? "span" : "div",
          );
          this.dom = l;
          const { selection: s } = n.state;
          this.selected = r() >= s.from && r() + t.nodeSize <= s.to;
          const i = {
              setAttrs: (e) => {
                n.dispatch(n.state.tr.setNodeMarkup(r(), void 0, e));
              },
              removeNode: () => {
                n.dispatch(n.state.tr.delete(r(), r() + 1));
              },
              focusView: () => {
                n.focus();
              },
            },
            c = new a.l();
          (this.destroy = o({
            element: l,
            spec: e,
            getProps: () => e.readProps(this.node),
            isSelected: () => this.selected,
            onPropsChanged: c,
            actions: i,
          })),
            (this.onPropsChanged = c.Dispatch.bind(c));
        }
        update(e, t, n) {
          return (
            e.type == this.node.type &&
            ((this.node = e), this.onPropsChanged(), !0)
          );
        }
        selectNode() {
          (this.selected = !0), this.onPropsChanged();
        }
        deselectNode() {
          (this.selected = !1), this.onPropsChanged();
        }
      }
      var P = n(36225),
        y = n(92503),
        D = n(71696),
        N = n(76217),
        T = n(63512),
        I = n(73170),
        R = n(29287),
        L = n(37834),
        B = n(84811),
        M = n(33645),
        x = n.n(M),
        O = n(38539),
        F = n(4188),
        U = n(52038);
      function G(e, t, n = 0) {
        return () => [e, { class: t }, n];
      }
      function H(e, t) {
        return () => [
          t,
          { class: x().PreservedUnsupportedTag },
          ["span", { class: x().Tag }, `[${e}]`],
          ["span", 0],
          ["span", { class: x().Tag }, `[/${e}]`],
        ];
      }
      const W = {
          nodes: {
            paragraph: {
              content: "inline*",
              group: "block",
              parseDOM: [{ tag: "p" }],
              toDOM: G("p", (0, U.A)("pm_paragraph", x().Paragraph)),
              bbCode: { tag: "p", autocloses: !0 },
            },
            heading: {
              attrs: { level: { default: 1 } },
              content: "inline*",
              group: "block",
              defining: !0,
              parseDOM: [1, 2, 3, 4, 5].map((e) => ({
                tag: `h${e}`,
                attrs: { level: e },
              })),
              toDOM: (e) => [
                "h" + e.attrs.level,
                {
                  class:
                    `BB_Header${e.attrs.level} ` +
                    x()[`Header${e.attrs.level}`],
                },
                0,
              ],
              bbCode: [1, 2, 3, 4, 5].map((e) => ({
                tag: `h${e}`,
                BBArgsToAttrs: () => ({ level: e }),
                AttrsToBBArgs: (e) => ({ tag: `h${e.level}` }),
              })),
            },
            image: {
              inline: !0,
              attrs: {
                src: {},
                alt: { default: null },
                title: { default: null },
              },
              group: "inline",
              draggable: !0,
              parseDOM: [
                {
                  tag: "img[src]",
                  getAttrs: (e) => ({
                    src: e.getAttribute("src"),
                    title: e.getAttribute("title"),
                    alt: e.getAttribute("alt"),
                  }),
                },
              ],
              toDOM(e) {
                const { src: t, alt: n, title: a } = e.attrs;
                return ["img", { src: t, alt: n, title: a, class: x().Image }];
              },
              bbCode: {
                tag: "img",
                BBArgsToAttrs: (e) => ({ src: e.src }),
                AttrsToBBArgs: (e) => ({ args: { src: e.src } }),
                convertContentToAttr: "src",
              },
            },
            bullet_list: {
              ...F.fF,
              content: "list_item+",
              group: "block",
              toDOM: G("ul", x().List),
              bbCode: { tag: "list" },
            },
            ordered_list: {
              ...F.o8,
              content: "list_item+",
              group: "block",
              toDOM: G("ol", x().OrderedList),
              bbCode: { tag: "olist" },
            },
            list_item: {
              ...F.Aw,
              content: "paragraph block*",
              toDOM: G("li", x().ListItem),
              bbCode: { tag: "*", autocloses: !0 },
            },
            code_block: {
              content: "inline*",
              marks: "",
              group: "block",
              code: !0,
              defining: !0,
              parseDOM: [{ tag: "pre", preserveWhitespace: "full" }],
              toDOM: () => [
                "pre",
                { class: x().CodeBlock },
                ["code", { class: x().Code }, 0],
              ],
              bbCode: { tag: "code" },
            },
          },
          marks: {
            strong: {
              parseDOM: [
                { tag: "strong" },
                {
                  tag: "b",
                  getAttrs: (e) => "normal" != e.style.fontWeight && null,
                },
                {
                  style: "font-weight=400",
                  clearMark: (e) => "strong" == e.type.name,
                },
                {
                  style: "font-weight",
                  getAttrs: (e) => /^(bold(er)?|[5-9]\d{2,})$/.test(e) && null,
                },
              ],
              toDOM: G("b", (0, U.A)("BB_Bold", x().Bold)),
              bbCode: { tag: "b" },
            },
            italic: {
              parseDOM: [
                { tag: "i" },
                { tag: "em" },
                { style: "font-style=italic" },
                {
                  style: "font-style=normal",
                  clearMark: (e) => "em" == e.type.name,
                },
              ],
              toDOM: G("i", (0, U.A)("BB_Italic", x().Italic)),
              bbCode: { tag: "i" },
            },
            underline: {
              parseDOM: [{ tag: "u" }, { style: "text-decoration=underline" }],
              toDOM: G("u", (0, U.A)("BB_Underline", x().Underline)),
              bbCode: { tag: "u" },
            },
            strike: {
              parseDOM: [{ style: "text-decoration=line-through" }],
              toDOM: G("span", (0, U.A)("BB_Strike", x().Strike)),
              bbCode: { tag: "strike" },
            },
            code: {
              parseDOM: [{ tag: "code" }],
              toDOM: G("code", (0, U.A)("BB_Code", x().Code)),
              bbCode: { tag: "c" },
            },
            link: {
              attrs: { href: {}, title: { default: null } },
              inclusive: !1,
              parseDOM: [
                {
                  tag: "a[href]",
                  getAttrs: (e) => ({
                    href: e.getAttribute("href"),
                    title: e.getAttribute("title"),
                  }),
                },
              ],
              toDOM(e) {
                const { href: t, title: n } = e.attrs;
                return ["a", { href: t, title: n, class: "BB_Link" }, 0];
              },
              bbCode: {
                tag: "url",
                BBArgsToAttrs: (e) => ({ href: e[""] }),
                AttrsToBBArgs: (e) => ({ args: { "": e.href } }),
                convertContentToAttr: "href",
              },
            },
          },
        },
        K = "noborder",
        V = "equalcells",
        $ = O.of({
          tableGroup: "block",
          cellContent: "paragraph block*",
          cellAttributes: {
            class: {
              default: x().TableCell,
              setDOMAttr: (e, t) => {
                t.class = e;
              },
            },
          },
        }),
        z = {
          BBArgsToAttrs: (e) => {
            const t = {};
            return (
              e.colspan && (t.colspan = parseInt(e.colspan)),
              e.rowspan && (t.rowspan = parseInt(e.rowspan)),
              e.colwidth &&
                (t.colwidth = e.colwidth.split(",").map((e) => parseInt(e))),
              t
            );
          },
          AttrsToBBArgs: (e) => {
            const t = {};
            return (
              e.colspan && 1 != e.colspan && (t.colspan = e.colspan.toString()),
              e.rowspan && 1 != e.rowspan && (t.rowspan = e.rowspan.toString()),
              e.colwidth && (t.colwidth = e.colwidth.join(",")),
              { args: t }
            );
          },
        },
        Y =
          ($.table,
          $.table_row,
          G("tr", x().TableRow),
          $.table_cell,
          $.table_header,
          S.memo(function (e) {
            const { schema: t } = e,
              n = !(!("table" in t.nodes) || !t.nodes.table.spec.tableRole);
            return (
              (0, k.c$)(S.useMemo(() => n && O.AL({ View: X }), [n])),
              (0, k.c$)(S.useMemo(() => n && O.LF(), [n])),
              null
            );
          }));
      class X extends O.Qg {
        constructor(e, t) {
          super(e, t), this.SetTableClass(e);
        }
        update(e) {
          return !!super.update(e) && (this.SetTableClass(e), !0);
        }
        SetTableClass(e) {
          this.table.className = (0, U.A)(
            x().Table,
            e.attrs[K] && x().NoBorder,
            e.attrs[V] && x().EqualCells,
          );
        }
      }
      var q = n(61859),
        j = n(73745),
        Q = n(73309);
      const Z = (0, B.Nr)(function (e) {
        const {
            pmState: t,
            className: n,
            refOnUpdate: a,
            refView: r,
            bSpellcheckEnabled: o = !0,
            panelProps: l,
            children: s,
          } = e,
          [i, c] = S.useState(),
          [d, u] = S.useState();
        S.useEffect(() => {
          t && i && u(new R.Lz(i, { state: t.state }));
        }, [t, i]),
          S.useEffect(() => () => d?.destroy(), [d]),
          (0, j.D5)(r, d);
        const {
            refDiv: m,
            onActivate: p,
            onGamepadDirection: _,
          } = (function (e) {
            const t = S.useRef(),
              n = (0, I.FN)(),
              a = S.useCallback(() => {
                n.ShowVirtualKeyboard();
                let a = e?.hasFocus();
                if (!a) {
                  e.focus();
                  let n = e.dom.childNodes;
                  for (let a = 0; a < n.length; ++a) {
                    let r = n[a],
                      o = r.offsetTop;
                    if (void 0 !== o && o >= t.current.scrollTop) {
                      let t = r.getBoundingClientRect();
                      (0, L.bQ)(e, t.left, t.top);
                      break;
                    }
                  }
                }
              }, [n, e]),
              r = S.useCallback((e) => e.currentTarget == e.target, []),
              o = (0, T.ak)(t, null, null, r);
            return { refDiv: t, onActivate: a, onGamepadDirection: o };
          })(d),
          E = (0, j.Ue)(m, c);
        if (!t) return null;
        const { schemaConfig: g, bbcodeParser: C } = t;
        return S.createElement(
          k.Ot,
          { view: d, pmState: t },
          S.createElement(N.Z, {
            key: `editordiv_${o}`,
            className: (0, U.A)(n, Q.Container),
            ref: E,
            spellCheck: o,
            focusable: !0,
            onActivate: p,
            onOKActionDescription: (0, q.we)("#UserGameNotes_Edit"),
            onGamepadDirection: _,
            ...l,
          }),
          S.createElement(k.KF, { refOnUpdate: a, schema: g.pm_schema }),
          S.createElement(J, { parser: C, schema: g.pm_schema }),
          S.createElement(Y, { schema: g.pm_schema }),
          s,
        );
      });
      const J = S.memo(function (e) {
        const { parser: t, schema: n } = e;
        return (
          (0, k.c$)(
            S.useMemo(
              () =>
                new l.k_({
                  props: {
                    transformPasted: (e, a) =>
                      (function (e, t, n) {
                        let a = !1;
                        if (
                          (n.content.forEach((e) => {
                            e.type == t && (a = !0);
                          }),
                          !a)
                        )
                          return n;
                        const r = e.ConvertLineBreaksToParagraphs(n.content);
                        return i.Ji.maxOpen(r);
                      })(t, n.nodes.hard_break, e),
                  },
                }),
              [t, n],
            ),
          ),
          null
        );
      });
      var ee = n(4869),
        te = n(71541),
        ne = n(9154),
        ae = n(30175);
      n(32754);
      S.memo(function (e) {
        const { schema: t, active: n, closeModal: a, view: r } = e,
          [o, l] = S.useState(""),
          [s, i] = S.useState(""),
          c = S.useRef(),
          d = S.useRef();
        return (
          S.useLayoutEffect(() => {
            if (n) {
              let e = "";
              r.state.selection.empty ||
                (e = r.state.doc.cut(
                  r.state.selection.from,
                  r.state.selection.to,
                ).textContent),
                l(e),
                e.startsWith("http")
                  ? (i(e),
                    c.current.Focus(),
                    window.setTimeout(() => {
                      c.current.element.select();
                    }, 0))
                  : 0 == e.length
                    ? c.current.Focus()
                    : d.current.Focus();
            }
          }, [n, r]),
          S.createElement(
            ne.o0,
            {
              onOK: () => {
                r.dispatch(
                  r.state.tr.replaceRangeWith(
                    r.state.selection.from,
                    r.state.selection.to,
                    t.text(o || s, [t.marks.link.create({ href: s })]),
                  ),
                ),
                  r.focus(),
                  a();
              },
              closeModal: a,
              strTitle: (0, q.we)("#FormattingToolbar_InsertLink"),
              strOKButtonText: (0, q.we)("#FormattingToolbar_InsertLink"),
              bOKDisabled: 0 == s.length,
            },
            S.createElement(te.pd, {
              ref: c,
              value: o,
              onChange: (e) => l(e.currentTarget.value),
              label: (0, q.we)("#FormattingToolbar_LinkText"),
            }),
            S.createElement(te.pd, {
              ref: d,
              value: s,
              onChange: (e) => i(e.currentTarget.value),
              label: (0, q.we)("#FormattingToolbar_LinkAddress"),
            }),
          )
        );
      });
      function re() {
        return S.createElement(
          S.Fragment,
          null,
          S.createElement(
            ae.cQ,
            { tooltip: "#FormattingToolbar_Undo", command: o.tN },
            S.createElement(ee.VnB, null),
          ),
          S.createElement(
            ae.cQ,
            { tooltip: "#FormattingToolbar_Redo", command: o.ZS },
            S.createElement(ee.Bal, null),
          ),
        );
      }
      function oe(e) {
        const { schema: t } = e;
        return S.createElement(
          S.Fragment,
          null,
          S.createElement(
            ae.GY,
            { tooltip: "#FormattingToolbar_Bold", mark: t.marks.strong },
            S.createElement(ee.l4n, null),
          ),
          S.createElement(
            ae.GY,
            { tooltip: "#FormattingToolbar_Italic", mark: t.marks.italic },
            S.createElement(ee.UKJ, null),
          ),
          S.createElement(
            ae.GY,
            {
              tooltip: "#FormattingToolbar_Underline",
              mark: t.marks.underline,
            },
            S.createElement(ee.Gj3, null),
          ),
          "strike" in t.marks &&
            S.createElement(
              ae.GY,
              { tooltip: "#FormattingToolbar_Strike", mark: t.marks.strike },
              S.createElement(ee.tI4, null),
            ),
          "code" in t.marks &&
            S.createElement(
              ae.GY,
              { tooltip: "#FormattingToolbar_InlineCode", mark: t.marks.code },
              S.createElement(ee.bmT, null),
            ),
        );
      }
      function le(e) {
        const { schema: t } = e;
        return S.createElement(
          ae.u3,
          {
            tooltip: "#FormattingToolbar_Paragraph",
            nodeType: t.nodes.paragraph,
          },
          S.createElement(ee.iYj, null),
        );
      }
      function se(e) {
        const { schema: t, maxLevel: n = 1, levels: a } = e,
          r = n + a - 1;
        return S.createElement(
          S.Fragment,
          null,
          n <= 1 &&
            S.createElement(
              ae.u3,
              {
                tooltip: "#FormattingToolbar_HeadingLevel1",
                nodeType: t.nodes.heading,
                attrs: { level: 1 },
              },
              S.createElement(ee.jRw, null),
            ),
          n <= 2 &&
            r >= 2 &&
            S.createElement(
              ae.u3,
              {
                tooltip: "#FormattingToolbar_HeadingLevel2",
                nodeType: t.nodes.heading,
                attrs: { level: 2 },
              },
              S.createElement(ee.qOW, null),
            ),
          n <= 3 &&
            r >= 3 &&
            S.createElement(
              ae.u3,
              {
                tooltip: "#FormattingToolbar_HeadingLevel3",
                nodeType: t.nodes.heading,
                attrs: { level: 3 },
              },
              S.createElement(ee.x7X, null),
            ),
          n <= 4 &&
            r >= 4 &&
            S.createElement(
              ae.u3,
              {
                tooltip: "#FormattingToolbar_HeadingLevel4",
                nodeType: t.nodes.heading,
                attrs: { level: 4 },
              },
              S.createElement(ee.qzO, null),
            ),
          n <= 5 &&
            r >= 5 &&
            S.createElement(
              ae.u3,
              {
                tooltip: "#FormattingToolbar_HeadingLevel5",
                nodeType: t.nodes.heading,
                attrs: { level: 5 },
              },
              S.createElement(ee.jXA, null),
            ),
        );
      }
      function ie(e) {
        const { schema: t, showIndentButtonsAsNeeded: n = !1 } = e,
          { callbacks: a, view: r } = (0, ae.wU)(),
          { bullet_list: o, ordered_list: l, list_item: s } = t.nodes,
          i = S.useMemo(() => F.T2(s), [s]),
          c = S.useMemo(() => F.$B(s), [s]),
          [d, u] = S.useState(() => i(r.state) || c(r.state));
        return (
          (0, j.hL)(
            a,
            S.useCallback(
              (e) => {
                u(i(e.state) || c(e.state));
              },
              [i, c],
            ),
          ),
          S.createElement(
            S.Fragment,
            null,
            S.createElement(
              ce,
              {
                tooltip: "#FormattingToolbar_BulletedList",
                list_type: o,
                list_item: s,
              },
              S.createElement(ee.JPq, null),
            ),
            l && !1,
            (!n || d) &&
              S.createElement(
                S.Fragment,
                null,
                S.createElement(
                  ae.cQ,
                  { tooltip: "#FormattingToolbar_OutdentList", command: i },
                  S.createElement(ee.LSz, null),
                ),
                S.createElement(
                  ae.cQ,
                  { tooltip: "#FormattingToolbar_IndentList", command: c },
                  S.createElement(ee.ycU, null),
                ),
              ),
          )
        );
      }
      function ce(e) {
        const { list_type: t, list_item: n, tooltip: a, children: r } = e,
          { callbacks: o, view: l } = (0, ae.wU)(),
          s = S.useCallback((e) => void 0 !== (0, L.wt)(e.state, t), [t]),
          [i, c] = S.useState(() => s(l)),
          d = S.useMemo(() => F.Sd(t), [t]),
          u = S.useMemo(() => F.T2(n), [n]);
        return (
          (0, j.hL)(
            o,
            S.useCallback(
              (e) => {
                c(s(e));
              },
              [s],
            ),
          ),
          S.createElement(
            ae.cQ,
            { tooltip: a, toggled: i, command: i ? u : d },
            r,
          )
        );
      }
      class de {
        m_ProseMirrorSchema;
        m_mapBBCodeDictionary = new Map();
        m_PMToBBCodeConfig = { mapNodes: new Map(), mapMarks: new Map() };
        get pm_schema() {
          return this.m_ProseMirrorSchema;
        }
        get bbcode_dictionary() {
          return this.m_mapBBCodeDictionary;
        }
        get pm_to_bbcode_config() {
          return this.m_PMToBBCodeConfig;
        }
        constructor(e, t) {
          const n = {
              doc: { content: "block+" },
              text: { group: "inline" },
              hard_break: {
                inline: !0,
                group: "inline",
                selectable: !1,
                linebreakReplacement: !0,
                parseDOM: [{ tag: "br" }],
                toDOM: () => ["br"],
              },
            },
            a = new Map(),
            r = new Map(),
            o = t ? new Set(t) : void 0;
          for (const t in e.nodes) {
            const { bbCode: r, ...l } = e.nodes[t],
              s = ue(r, o);
            s && ((n[t] = l), a.set(t, s));
          }
          const l = {};
          for (const t in e.marks) {
            const { bbCode: n, ...a } = e.marks[t];
            (o && !o.has(n.tag)) || ((l[t] = a), r.set(t, n));
          }
          (this.m_ProseMirrorSchema = new i.Sj({ nodes: n, marks: l })),
            a.forEach((t, n) => {
              const a = this.m_ProseMirrorSchema.nodes[n],
                r = e.nodes[n],
                o = Array.isArray(t) ? t : [t];
              let l;
              "list_item+" == r.content
                ? (l = this.m_ProseMirrorSchema.nodes.list_item)
                : -1 != r.content?.indexOf("paragraph") &&
                  (l = this.m_ProseMirrorSchema.nodes.paragraph),
                o.forEach(
                  ({
                    tag: e,
                    BBArgsToAttrs: t,
                    AttrsToBBArgs: n,
                    convertContentToAttr: r,
                    ...o
                  }) => {
                    this.m_mapBBCodeDictionary.set(e, {
                      Constructor: {
                        node: a,
                        BBArgsToAttrs: t,
                        convertContentToAttr: r,
                        acceptNode: l,
                      },
                      skipFollowingNewline: !0,
                      ...o,
                    });
                  },
                );
              const { tag: s, AttrsToBBArgs: i } = o[0];
              this.m_PMToBBCodeConfig.mapNodes.set(a, {
                tag: s,
                AttrsToBBArgs: i,
              });
            }),
            r.forEach((e, t) => {
              const n = this.m_ProseMirrorSchema.marks[t],
                { tag: a, BBArgsToAttrs: r, AttrsToBBArgs: o, ...l } = e;
              this.m_mapBBCodeDictionary.set(a, {
                Constructor: { mark: n, BBArgsToAttrs: r },
                ...l,
              }),
                this.m_PMToBBCodeConfig.mapMarks.set(n, {
                  tag: a,
                  AttrsToBBArgs: o,
                });
            });
        }
      }
      function ue(e, t) {
        if (t) {
          if (Array.isArray(e)) {
            const n = e.filter((e) => t.has(e.tag));
            return n.length > 0 ? n : void 0;
          }
          return t.has(e.tag) ? e : void 0;
        }
        return e;
      }
      const {
          paragraph: me,
          heading: pe,
          bullet_list: _e,
          list_item: Ee,
          image: ge,
        } = W.nodes,
        {
          strong: Ce,
          italic: he,
          underline: Se,
          link: fe,
          strike: be,
        } = W.marks;
      var ke = n(30600),
        Ae = n(30470),
        ve = n(80968);
      function we(e) {
        const {
            language: t,
            rctToolbarControls: n,
            value: a,
            editorType: r,
            rctAboveEditor: o,
          } = e,
          [l, s] = S.useState(),
          i = S.useRef(void 0),
          c = (function () {
            const e = (0, y.FD)(),
              t = S.useRef(e);
            t.current = e;
            const n = S.useRef(void 0);
            if (!n.current) {
              const e = (e) => t.current.find((t) => t.name === e)?.url;
              n.current =
                ((a = e),
                new de({
                  nodes: {
                    paragraph: me,
                    heading: {
                      ...pe,
                      attrs: { level: { default: 2 } },
                      parseDOM: [1, 2, 3, 4, 5, 6]
                        .map((e) => ({ tag: `h${e}`, attrs: { level: 2 } }))
                        .concat(
                          [1, 2, 3, 4, 5, 6].map((e) => ({
                            tag: `span[data-ccp-parastyle="heading ${e}"]`,
                            attrs: { level: 2 },
                          })),
                        ),
                      bbCode: [2].map((e) => ({
                        tag: `h${e}`,
                        BBArgsToAttrs: () => ({ level: e }),
                        AttrsToBBArgs: (e) => ({ tag: `h${e.level}` }),
                      })),
                    },
                    bullet_list: _e,
                    list_item: Ee,
                    image: {
                      ...ge,
                      toDOM: (e) => ["img", { src: a(e.attrs.src) }],
                    },
                    table: {
                      content: "tr+",
                      group: "block",
                      toDOM: H("table", "div"),
                      bbCode: { tag: "table" },
                    },
                    tr: {
                      content: "(th | td)+",
                      toDOM: H("tr", "div"),
                      bbCode: { tag: "tr" },
                    },
                    th: {
                      content: "paragraph block*",
                      toDOM: H("th", "span"),
                      bbCode: { tag: "th" },
                    },
                    td: {
                      content: "paragraph block*",
                      toDOM: H("td", "span"),
                      bbCode: { tag: "td" },
                    },
                  },
                  marks: {
                    strong: Ce,
                    italic: he,
                    underline: Se,
                    strike: be,
                    link: {
                      ...fe,
                      toDOM: (e, t) => [
                        "a",
                        {
                          ...fe.toDOM(e, t)[1],
                          title: (0, q.we)(
                            "#StoreAdmin_GameDescription_LinksDisabled",
                          ),
                        },
                        0,
                      ],
                      parseDOM: void 0,
                    },
                  },
                }));
            }
            var a;
            return n.current;
          })(),
          [d] = S.useState(() => new Map()),
          [u, m] = S.useState();
        return (
          S.useEffect(() => {
            d.has(a) || d.set(a, new h(c, a.Value, (e) => a.Set(e))),
              m(d.get(a));
          }, [c, d, a]),
          f(u, { msAutosaveTimeout: 5e3 }),
          S.useEffect(() => {
            window.DisableTooltipMutationObserver &&
              window.DisableTooltipMutationObserver();
          }, []),
          S.useEffect(() => {
            i.current && i.current();
          }, [l, a]),
          S.createElement(
            Pe,
            { imageNodeType: c.pm_schema.nodes.image },
            S.createElement(
              ye,
              {
                editorType: r,
                view: l,
                refUpdateToolbar: i,
                rctToolbarControls: n,
                schema: c.pm_schema,
                rctAboveEditor: o,
              },
              S.createElement(
                Z,
                {
                  panelProps: {
                    lang: (0, q.d$)(t),
                    onBlur: () => u?.CommitChanges(),
                  },
                  className: ve.EditorPanel,
                  pmState: u,
                  refOnUpdate: i,
                  refView: s,
                },
                S.createElement(Te, { schema: c }),
              ),
            ),
          )
        );
      }
      function Pe(e) {
        const { imageNodeType: t, children: n } = e,
          a = (0, y.cz)(),
          r = S.useCallback(
            (e) => {
              let n,
                r = new Promise((a, r) => {
                  n = {
                    file: e,
                    onComplete: (e) => {
                      a(t.createChecked({ src: e }));
                    },
                    onCancel: () => a(void 0),
                  };
                });
              const o = a(n);
              return r.finally(() => o()), r;
            },
            [t, a],
          ),
          o = S.useCallback(async (e) => {
            const t = new URL(`${Ae.TS.PARTNER_BASE_URL}gfxproxy/externalgfx/`);
            t.searchParams.append("url", e);
            const n = await fetch(t, { method: "GET" });
            return await n.blob();
          }, []);
        return S.createElement(
          D.Xv,
          { ProcessFileUpload: r, FetchImageURL: o },
          n,
        );
      }
      function ye(e) {
        const {
            editorType: t,
            view: n,
            refUpdateToolbar: a,
            rctToolbarControls: r,
            schema: o,
            children: l,
            rctAboveEditor: s,
          } = e,
          [i, c] = S.useState(!1),
          d = S.useCallback(
            (e) =>
              e.borderBoxSize.length > 0 &&
              c(e.borderBoxSize[0].blockSize > 300),
            [],
          ),
          u = (0, ke.wY)(d);
        return S.createElement(
          "div",
          null,
          S.createElement(Ne, {
            view: n,
            refUpdateToolbar: a,
            sticky: i,
            rctToolbarControls: r,
            schema: o,
          }),
          S.createElement(
            "div",
            {
              className: (0, U.A)(
                ve.AboutTheGameArea,
                "awards" == t && ve.Awards,
              ),
              ref: u,
            },
            s,
            l,
          ),
        );
      }
      function De(e) {
        return S.createElement(
          "h2",
          { className: ve.StoreAppPageHeader },
          e.children,
          S.createElement("div", { className: ve.GradientRule }),
        );
      }
      function Ne(e) {
        const {
          view: t,
          refUpdateToolbar: n,
          rctToolbarControls: a,
          schema: r,
          sticky: o,
        } = e;
        return S.createElement(
          ae.bI,
          { refUpdateToolbar: n, view: t },
          S.createElement(
            ae.Ez,
            {
              className: (0, U.A)(
                ve.GameDescriptionEditorToolbar,
                o && ve.Sticky,
              ),
            },
            S.createElement(re, null),
            S.createElement(ae.XQ, null),
            S.createElement(oe, { schema: r }),
            S.createElement(ae.XQ, null),
            S.createElement(le, { schema: r }),
            S.createElement(se, { schema: r, maxLevel: 2, levels: 1 }),
            S.createElement(ae.XQ, null),
            S.createElement(ie, { schema: r, showIndentButtonsAsNeeded: !0 }),
            "image" in r.nodes &&
              S.createElement(
                S.Fragment,
                null,
                S.createElement(ae.XQ, null),
                S.createElement(P.KZ, { nodeType: r.nodes.image }),
              ),
            S.createElement(ae.hK, null),
            a,
          ),
        );
      }
      function Te(e) {
        const { schema: t } = e,
          n = S.useMemo(
            () => [
              {
                type: t.pm_schema.nodes.image,
                component: P.AS,
                readProps: (e) => ({
                  src: e.attrs.src,
                  inLink: e.marks.some((e) => e.type == t.pm_schema.marks.link),
                }),
              },
            ],
            [t],
          );
        return S.createElement(
          S.Fragment,
          null,
          S.createElement(A, { specs: n }),
          S.createElement(D.pw, { nodeType: t.pm_schema.nodes.image }),
        );
      }
    },
    92503: (e, t, n) => {
      "use strict";
      n.d(t, {
        _M: () => v,
        FD: () => P,
        L4: () => y,
        Z3: () => D,
        cz: () => N,
        TQ: () => I,
        gg: () => R,
        Y7: () => T,
      });
      var a = n(81393),
        r = n(51614),
        o = n(60863),
        l = n(90626),
        s = n(71541),
        i = n(83882),
        c = n(78395),
        d = n(21869),
        u = n(22797),
        m = n(52038),
        p = n(61859),
        _ = n(30470),
        E = n(76349);
      function g(e) {
        const { rgUploads: t } = e;
        return t.map(({ id: e, upload: t }, n) =>
          l.createElement(C, { key: e, active: 0 == n, upload: t }),
        );
      }
      function C(e) {
        const { upload: t, active: n } = e,
          [a, r] = l.useState(!1),
          [o, s] = l.useState(void 0);
        return (
          l.useEffect(() => {
            n &&
              (b(t.file) ||
                s(
                  (0, p.we)(
                    "#StoreAdmin_UploadError_UnsupportedFileType",
                    t.file.name,
                  ),
                )),
              r(n);
          }, [n, t]),
          a
            ? o
              ? l.createElement(
                  d.E,
                  { active: !0 },
                  l.createElement(c.o0, {
                    bAlertDialog: !0,
                    strTitle: (0, p.we)("#Error_Generic"),
                    strDescription: o,
                    strOKButtonText: (0, p.we)("#Button_OK"),
                    closeModal: () => t.onCancel(),
                  }),
                )
              : l.createElement(h, { upload: t, onError: s })
            : null
        );
      }
      function h(e) {
        const { upload: t, onError: n } = e,
          { file: c, onCancel: d } = t,
          { rgExtraAssets: u, regexInvalidFilenameCharacters: m } = y(),
          g = l.useCallback(
            (e) => {
              if (!e) return "";
              const t = b(c);
              return e
                .replace(m, "_")
                .replace(/(?:\.[a-zA-Z]{3,4})?$/, `.${t}`);
            },
            [m, c],
          ),
          [C, h] = l.useState(() => g(c.name)),
          k = l.useMemo(() => g(C), [C, g]),
          [A, v] = l.useState(void 0),
          { mutate: w, isPending: P } = (function (e, t) {
            const n = D("ajaxmodifyextraassets"),
              l = T();
            return (0, r.n)({
              mutationFn: async (t) => {
                const a = new FormData(),
                  r = new File([e.file], t, { type: e.file.type });
                a.append("sessionid", _.TS.SESSIONID),
                  a.append("action", "upload"),
                  a.append("extra_asset", r);
                const o = await fetch(n, { method: "post", body: a }),
                  l = await o.json();
                if (!o.ok) throw l.errors?.join("\n") || new Error();
                return l;
              },
              onSuccess: (t, n) => {
                const r = t.rgExtraAssets;
                (0, a.w)(
                  r && r.length,
                  "Did not get back updated list of extra assets after uploading a new one",
                ),
                  r && r.length && l(r),
                  e.onComplete((0, o.TQ)(n));
              },
              onError: (e) => {
                t(
                  "string" == typeof e
                    ? e
                    : (0, p.we)("#StoreAdmin_UploadError_Generic", e.message),
                );
              },
            });
          })(t, n);
        l.useEffect(() => {
          v(() => {
            if (!k) return;
            const e = (0, o.TQ)(k);
            return u.find((t) => t.name == e);
          });
        }, [k, u]);
        let N =
          (function (e) {
            return e && e.length > 0;
          })(k) && !P
            ? () => w(k)
            : void 0;
        const I = l.useCallback(() => {
          t.onComplete((0, o.TQ)(k));
        }, [t, k]);
        let R = A
          ? (0, p.we)("#StoreAdmin_ExtraAssetUpload_UploadAndReplace")
          : (0, p.we)("#Button_Upload");
        return l.createElement(
          i.mt,
          { active: !0, onDismiss: d, className: E.UploadModal },
          l.createElement(
            s.U9,
            {
              onSubmit: (e) => {
                e.preventDefault(), N && N();
              },
            },
            l.createElement(
              s.Y9,
              null,
              (0, p.we)("#StoreAdmin_ExtraAssetUpload_UploadNew"),
            ),
            l.createElement(
              s.nB,
              null,
              l.createElement(S, {
                file: c,
                duplicate: A,
                bShowThrobber: P,
                onUseDuplicate: I,
              }),
              l.createElement(f, {
                name: C,
                validatedName: k,
                setName: h,
                disabled: P,
              }),
            ),
            l.createElement(
              s.wi,
              null,
              l.createElement(s.CB, {
                onOK: N,
                strOKText: R,
                bOKDisabled: !N,
                onCancel: d,
              }),
            ),
          ),
        );
      }
      function S(e) {
        const {
            file: t,
            duplicate: n,
            bShowThrobber: a,
            onUseDuplicate: r,
          } = e,
          o = l.useMemo(() => URL.createObjectURL(t), [t]);
        return l.createElement(
          l.Fragment,
          null,
          n &&
            l.createElement(
              "div",
              { className: E.DuplicateMessage },
              (0, p.we)("#StoreAdmin_ExtraAssetUpload_FileNameInuse"),
            ),
          l.createElement(
            "div",
            { className: (0, m.A)(E.SideBySideComparison, a && E.Loading) },
            a &&
              l.createElement(
                "div",
                { className: E.ThrobberContainer },
                l.createElement(u.t, { position: "center", size: "xlarge" }),
              ),
            n &&
              l.createElement(
                "div",
                {
                  className: (0, m.A)(
                    E.ImgPreviewContainer,
                    E.DuplicatePreview,
                  ),
                },
                l.createElement(
                  "div",
                  { className: E.ImageLabel },
                  (0, p.we)("#StoreAdmin_ExtraAssetUpload_Original"),
                ),
                l.createElement("img", { src: n.url, className: E.ImgPreview }),
              ),
            l.createElement(
              "div",
              { className: E.ImgPreviewContainer },
              n &&
                l.createElement(
                  "div",
                  { className: E.ImageLabel },
                  (0, p.we)("#StoreAdmin_ExtraAssetUpload_Replacement"),
                ),
              l.createElement("img", { src: o, className: E.ImgPreview }),
            ),
          ),
        );
      }
      function f(e) {
        const { name: t, setName: n, validatedName: a, disabled: r } = e,
          o = l.useCallback((e) => e && e.element.select(), []);
        return l.createElement(
          "div",
          { className: E.NameEntry },
          l.createElement(s.pd, {
            value: t,
            onChange: (e) => n(e.currentTarget.value),
            label: (0, p.we)("#StoreAdmin_ExtraAssetUpload_EnterAName"),
            ref: o,
            disabled: r,
            description: (0, p.PP)(
              "#StoreAdmin_ExtraAssetUpload_WillBeSavedAsFilename",
              l.createElement("b", null, a),
            ),
          }),
        );
      }
      function b(e) {
        switch (e.type) {
          case "image/jpeg":
            return "jpg";
          case "image/png":
            return "png";
          case "image/gif":
            return "gif";
          default:
            return;
        }
      }
      var k = n(83247),
        A = n(24484);
      function v(e) {
        const { children: t } = e,
          [n, a] = l.useState([]),
          r = l.useRef(0),
          o = l.useCallback(
            (e) => (
              a((t) => [...t, { upload: e, id: r.current++ }]),
              () => a((t) => t.filter((t) => t.upload != e))
            ),
            [],
          );
        return l.createElement(
          w,
          { queueExtraAssetUpload: o },
          l.createElement(
            M,
            null,
            l.createElement(k.j, null, l.createElement(g, { rgUploads: n }), t),
          ),
        );
      }
      function w(e) {
        const { children: t, queueExtraAssetUpload: n } = e,
          [r, o] = l.useState(void 0),
          [s, i] = l.useState([]);
        l.useEffect(() => {
          let e = (0, A.Tc)("rgGamePageConfig", "application_config");
          e ||
            (console.error(
              "Missing config data for game edit page - some components may not work",
            ),
            (e = {
              rgExtraAssetsData: {
                rgExtraAssets: [],
                rgInvalidFilenameCharacters: [],
              },
              strGameControllerURLFormat: "",
            })),
            o(e),
            i(e.rgExtraAssetsData.rgExtraAssets);
        }, []);
        const c = l.useMemo(() => {
            if (r)
              return (
                r.rgExtraAssetsData.rgInvalidFilenameCharacters.forEach((e) =>
                  (0, a.w)(
                    1 == e.length,
                    `Expected single-character replacements, "${e} is not`,
                  ),
                ),
                new RegExp(
                  `[${r.rgExtraAssetsData.rgInvalidFilenameCharacters.map((e) => `\\${e}`)}]`,
                  "g",
                )
              );
          }, [r]),
          d = l.useMemo(
            () => ({
              rgExtraAssetsData: {
                rgExtraAssets: s,
                regexInvalidFilenameCharacters: c,
              },
              strGameControllerURLFormat: r?.strGameControllerURLFormat,
              queueExtraAssetUpload: n,
              onExtraAssetsUpdated: i,
            }),
            [r, s, c, n],
          );
        return r ? l.createElement(L.Provider, { value: d }, t) : null;
      }
      function P() {
        return l.useContext(L).rgExtraAssetsData.rgExtraAssets;
      }
      function y() {
        return l.useContext(L).rgExtraAssetsData;
      }
      function D(e) {
        return l
          .useContext(L)
          .strGameControllerURLFormat.replace(":method:", e);
      }
      function N() {
        return l.useContext(L).queueExtraAssetUpload;
      }
      function T() {
        return l.useContext(L).onExtraAssetsUpdated;
      }
      function I() {
        return l.useContext(B).bUseRichEditor;
      }
      function R() {
        return l.useContext(B).setUseRichEditor;
      }
      const L = l.createContext(void 0),
        B = l.createContext(void 0);
      function M(e) {
        const t = "storeEditorDisableRichEditor",
          [n, a] = l.useState(() => !localStorage.getItem(t)),
          r = l.useCallback((e) => {
            e ? localStorage.removeItem(t) : localStorage.setItem(t, "1"), a(e);
          }, []),
          o = l.useMemo(
            () => ({ bUseRichEditor: n, setUseRichEditor: r }),
            [n, r],
          );
        return l.createElement(B.Provider, { value: o }, e.children);
      }
    },
    87349: (e, t, n) => {
      "use strict";
      n.r(t), n.d(t, { default: () => Qo });
      var a = n(90626),
        r = n(64046),
        o = n(88997);
      function l(e) {
        const { rgGameProfileColorDefs: t } = e,
          n = t.map((e) =>
            a.createElement(
              "div",
              { key: e.strProfileColorKey, className: "form_row_flex" },
              a.createElement(
                "div",
                { className: "form_label_flex" },
                "*",
                e.strProfileColorLabel,
              ),
              a.createElement(
                "div",
                { className: "form_data_flex" },
                (function (e) {
                  let [t, n] = a.useState(e.strCurrentColor);
                  const l = a.useRef(void 0),
                    s = (e) => {
                      const l = (e) => {
                        n(e);
                      };
                      (0, o.lX)(
                        a.createElement(r.s, { onChange: l, color: t }),
                        e,
                        { bDisablePopTop: !0 },
                      );
                    },
                    i = () => {
                      n(l.current.value);
                    };
                  return a.createElement(
                    a.Fragment,
                    null,
                    a.createElement("input", {
                      ref: l,
                      type: "text",
                      name: `item[profile_colors][${e.strProfileColorKey}]`,
                      onChange: i,
                      placeholder: "rgba(255, 255, 255, .5)",
                      size: 20,
                      value: t,
                    }),
                    a.createElement("div", {
                      className: "profile_color_preview",
                      style: { backgroundColor: `${t}` },
                      onClick: s,
                    }),
                  );
                })(e),
              ),
            ),
          );
        return a.createElement("div", { className: "profile_colors_ctn" }, n);
      }
      var s = n(61859),
        i = n(93763),
        c = n(12155),
        d = n(17479),
        u = n(52038),
        m = n(4869),
        p = n(32754),
        _ = n(78327);
      function E(e) {
        return a.createElement(
          "a",
          {
            href: `${_.TS.STORE_BASE_URL}search/?controllersupport=${e.strCategory}`,
            className: d.InfoRow,
          },
          a.createElement(
            "div",
            {
              className: (0, u.A)(
                d.ImgSection,
                e.bHightlightRow && d.HighlightRow,
                e.bHighlightGPRequired && d.GamepadRequired,
              ),
            },
            e.tagImage,
          ),
          a.createElement(
            "div",
            {
              className: (0, u.A)(
                d.LocSection,
                e.bHighlightText && d.HighlightText,
                e.bHightlightRow && d.HighlightRow,
                e.bHighlightGPRequired && d.GamepadRequired,
              ),
            },
            a.createElement(
              "div",
              {
                className: (0, u.A)(
                  d.LocString,
                  e.bHighlightText && d.HighlightText,
                  e.bHightlightRow && d.HighlightRow,
                  e.bHighlightGPRequired && d.GamepadRequired,
                  e.bPersonalized && d.Personalized,
                ),
              },
              (0, s.we)(e.strLocalizationToken),
            ),
            e.strTooltipString &&
              a.createElement(
                p.he,
                {
                  toolTipContent: (0, s.we)(e.strTooltipString),
                  className: d.ToolTipContainer,
                },
                a.createElement("span", { className: d.ToolTipControl }, "?"),
              ),
          ),
        );
      }
      function g(e) {
        return a.createElement(
          "div",
          { className: d.PreviewContainer },
          a.createElement(f, { bPreview: !0, ...e }),
        );
      }
      function C() {
        return a.createElement(E, {
          tagImage: a.createElement(m.Moo, {
            className: (0, u.A)(d.Tilt, d.SmallerSVG),
          }),
          strLocalizationToken: "#Store_ControllerSupport_GamepadRequired",
          bHighlightGPRequired: !0,
          strTooltipString:
            "#Store_ControllerSupport_Tooltip_ControllerRequired",
        });
      }
      function h() {
        return a.createElement(
          "div",
          { className: (0, u.A)(d.PurchaseNoticeContainer) },
          a.createElement(m.Kz1, {
            className: (0, u.A)(d.PurchaseNoticeImage),
          }),
          a.createElement(
            "div",
            { className: (0, u.A)(d.PurchaseNoticeLabel) },
            (0, s.we)("#Store_ControllerSupport_GamepadPreferred"),
          ),
        );
      }
      function S(e) {
        const { bNoKeyboardSupport: t, bGamepadPreferred: n } = e;
        return a.createElement(
          "div",
          { className: (0, u.A)(d.NoticeContainer) },
          t && a.createElement(C, null),
          n && !t && a.createElement(h, null),
        );
      }
      function f(e) {
        const {
          bControllerSupportWizardComplete: t,
          bPS4ControllerSupport: n,
          bPS5ControllerSupport: r,
          bPS4ControllerBTSupport: o,
          bPS5ControllerBTSupport: l,
          bFullXboxControllerSupport: i,
          bPartialXboxControllerSupport: c,
          bSteamInputAPISupport: u,
          bHasOther: p,
          bHasPS4: _,
          bHasPS5: g,
          bHasXbox: C,
          bPreview: h,
        } = e;
        let f = [];
        if (n && r && o && l) {
          const e = a.createElement(m.pcV, {
              className: d.SmallerSVG,
              controllerType: 34,
              partial: !i,
            }),
            t = _ || g;
          f.push(
            a.createElement(E, {
              key: "1",
              tagImage: e,
              strLocalizationToken: t
                ? "#Store_ControllerSupport_PS_Personalized"
                : "#Store_ControllerSupport_PS",
              bPersonalized: t,
            }),
          );
        } else {
          if (n) {
            const e = a.createElement(m.pcV, {
              className: d.SmallerSVG,
              controllerType: 34,
              partial: !i,
            });
            o
              ? f.push(
                  a.createElement(E, {
                    key: "2",
                    tagImage: e,
                    strLocalizationToken: _
                      ? "#Store_ControllerSupport_PS4_Personalized"
                      : "#Store_ControllerSupport_PS4",
                    bPersonalized: _,
                    strCategory: "55",
                  }),
                )
              : f.push(
                  a.createElement(E, {
                    key: "3",
                    tagImage: e,
                    strLocalizationToken: _
                      ? "#Store_ControllerSupport_PS4_USB_Personalized"
                      : "#Store_ControllerSupport_PS4_USB",
                    bPersonalized: _,
                    strCategory: "55",
                  }),
                );
          }
          if (r) {
            const e = a.createElement(m.pcV, {
              className: d.SmallerSVG,
              controllerType: 45,
              partial: !i,
            });
            l
              ? f.push(
                  a.createElement(E, {
                    key: "4",
                    tagImage: e,
                    strLocalizationToken: g
                      ? "#Store_ControllerSupport_PS5_Personalized"
                      : "#Store_ControllerSupport_PS5",
                    bPersonalized: g,
                    strCategory: "57",
                  }),
                )
              : f.push(
                  a.createElement(E, {
                    key: "5",
                    tagImage: e,
                    strLocalizationToken: g
                      ? "#Store_ControllerSupport_PS5_USB_Personalized"
                      : "#Store_ControllerSupport_PS5_USB",
                    bPersonalized: g,
                    strCategory: "57",
                  }),
                );
          }
        }
        return a.createElement(
          a.Fragment,
          null,
          (c || i) &&
            a.createElement(
              a.Fragment,
              null,
              a.createElement(
                "div",
                { className: d.ControllerSupportLevelString },
                (0, s.we)(
                  i
                    ? "#Store_ControllerSupport_FullController"
                    : "#Store_ControllerSupport_PartialController",
                ),
              ),
              a.createElement(E, {
                tagImage: a.createElement(m.pcV, {
                  className: d.SmallerSVG,
                  controllerType: 32,
                  partial: !i,
                }),
                strLocalizationToken: C
                  ? "#Store_ControllerSupport_Xbox_Personalized"
                  : "#Store_ControllerSupport_Xbox",
                bPersonalized: C,
                strCategory: "18",
              }),
              f,
              u &&
                a.createElement(E, {
                  tagImage: a.createElement(m.kdM, {
                    className: d.BiggerSVG,
                    bGreyOutRightSide: !i,
                  }),
                  strLocalizationToken: "#Store_ControllerSupport_SIAPI",
                  strTooltipString: "#Store_ControllerSupport_Tooltip_SIAPI",
                  strCategory: "59",
                }),
              ((!h && !t) || (!u && p && !C)) &&
                a.createElement(E, {
                  tagImage: a.createElement(m.vet, { className: d.BiggerSVG }),
                  strLocalizationToken:
                    p || _ || g
                      ? "#Store_ControllerSupport_Unknown_Personalized"
                      : "#Store_ControllerSupport_Unknown",
                  bPersonalized: p || _ || g,
                }),
              a.createElement(S, { ...e }),
            ),
        );
      }
      var b,
        k,
        A,
        v = n(71541),
        w = n(9154),
        P = n(31623);
      function y(e, t) {
        const n = document.getElementById(e);
        if (n) {
          n.setAttribute("value", t ? "true" : "");
        }
      }
      function D(e) {
        const {
            nPageNum: t,
            currentValues: n,
            setCurrentValues: r,
            setSkipToEnd: o,
          } = e,
          l = [
            {
              id: b.k_eMouseKBOnly,
              locString: "#ControllerSupportModal_PgOne_MouseKBOnly",
              settings: {
                bFullXboxControllerSupport: !1,
                bPartialXboxControllerSupport: !1,
                bPS4ControllerSupport: !1,
                bPS4ControllerBTSupport: !1,
                bPS5ControllerSupport: !1,
                bPS5ControllerBTSupport: !1,
                bSteamInputAPISupport: !1,
                bNoKeyboardSupport: !1,
                bGamepadPreferred: !1,
              },
              bSkipToEnd: !0,
            },
            {
              id: b.k_eGamepadAndMouse,
              locString: "#ControllerSupportModal_PgOne_GamepadAndMouse",
              settings: {
                bFullXboxControllerSupport: !0,
                bPartialXboxControllerSupport: !1,
                bNoKeyboardSupport: !1,
                bGamepadPreferred: !1,
              },
            },
            {
              id: b.k_eGamepadPreferred,
              locString: "#ControllerSupportModal_PgOne_GamepadPreferred",
              settings: {
                bFullXboxControllerSupport: !0,
                bPartialXboxControllerSupport: !1,
                bNoKeyboardSupport: !1,
                bGamepadPreferred: !0,
              },
            },
            {
              id: b.k_eGamepadRequired,
              locString: "#ControllerSupportModal_PgOne_GamepadRequired",
              settings: {
                bFullXboxControllerSupport: !0,
                bPartialXboxControllerSupport: !1,
                bNoKeyboardSupport: !0,
                bGamepadPreferred: !1,
              },
            },
          ],
          i = () =>
            n.bNoKeyboardSupport
              ? b.k_eGamepadRequired
              : n.bGamepadPreferred
                ? b.k_eGamepadPreferred
                : n.bFullXboxControllerSupport ||
                    n.bPartialXboxControllerSupport
                  ? b.k_eGamepadAndMouse
                  : b.k_eMouseKBOnly,
          c = i();
        a.useEffect(() => {
          c == b.k_eMouseKBOnly && o(!0);
        }, [c, o]);
        const d = a.createElement(
            "div",
            null,
            a.createElement(
              v.zW,
              {
                value: i(),
                onChange: (e) => {
                  const t = l.find((t) => t.id == e);
                  r({ ...n, ...t?.settings }), o(t.bSkipToEnd ?? !1);
                },
              },
              l.map((e) =>
                a.createElement(
                  v.a,
                  { key: e.id, value: e.id },
                  a.createElement("div", {
                    className: (0, u.A)(P.RadioButton, c == e.id && P.Selected),
                  }),
                  a.createElement(
                    "div",
                    { className: P.OptionLabel },
                    (0, s.we)(e.locString),
                  ),
                ),
              ),
            ),
          ),
          m = a.createElement(
            "div",
            null,
            a.createElement(
              "p",
              null,
              (0, s.we)("#ControllerSupportModal_PgOne_Instructions"),
            ),
            a.createElement(
              "p",
              null,
              (0, s.we)("#ControllerSupportModal_PgOne_Instructions_VR"),
            ),
          );
        return a.createElement(x, {
          strStepName: (0, s.we)("#ControllerSupportModal_StepString", t + 1),
          strStepSubHeaderToken: "#ControllerSupportModal_PgOne_Header",
          strInstructionsToken: m,
          strQuestionToken: "#ControllerSupportModal_PgOne_Question",
          leftColumnContent: d,
        });
      }
      function N(e) {
        const {
            nPageNum: t,
            currentValues: n,
            setCurrentValues: r,
            setSkipToEnd: o,
          } = e,
          l = a.useMemo(
            () => [
              {
                id: k.k_eFullXboxControllerSupport,
                locString: "#ControllerSupportModal_PgTwo_FullController",
                settings: {
                  bFullXboxControllerSupport: !0,
                  bPartialXboxControllerSupport: !1,
                },
                bSkipToEnd: !1,
              },
              {
                id: k.k_ePartialXboxControllerSupport,
                locString: "#ControllerSupportModal_PgTwo_PartialController",
                settings: {
                  bFullXboxControllerSupport: !1,
                  bPartialXboxControllerSupport: !0,
                },
              },
            ],
            [],
          ),
          i = a.useCallback(
            () =>
              n.bFullXboxControllerSupport
                ? k.k_eFullXboxControllerSupport
                : k.k_ePartialXboxControllerSupport,
            [n],
          ),
          c = a.useCallback(
            (e) => {
              const t = l.find((t) => t.id == e);
              r({ ...n, ...t?.settings }), o(t.bSkipToEnd ?? !1);
            },
            [n, l, r, o],
          ),
          d = i(),
          p = a.createElement(
            "div",
            null,
            a.createElement(
              v.zW,
              { value: i(), onChange: c },
              l.map((e) =>
                a.createElement(
                  v.a,
                  { key: e.id, value: e.id },
                  a.createElement("div", {
                    className: (0, u.A)(P.RadioButton, d == e.id && P.Selected),
                  }),
                  a.createElement(
                    "div",
                    { className: P.OptionLabel },
                    (0, s.we)(e.locString),
                  ),
                ),
              ),
            ),
          ),
          _ = a.createElement(
            "div",
            null,
            a.createElement(
              "p",
              null,
              (0, s.we)("#ControllerSupportModal_PgTwo_Instructions"),
            ),
            a.createElement(
              "ol",
              null,
              a.createElement(
                "li",
                null,
                (0, s.we)("#ControllerSupportModal_PgTwo_Instructions_pt1"),
              ),
              a.createElement(
                "li",
                null,
                (0, s.we)("#ControllerSupportModal_PgThree_Instructions_pt1"),
              ),
              a.createElement(
                "li",
                null,
                (0, s.we)("#ControllerSupportModal_PgTwo_Instructions_pt4"),
              ),
              a.createElement(
                "li",
                null,
                (0, s.we)("#ControllerSupportModal_PgTwo_Instructions_pt5"),
              ),
            ),
          );
        return a.createElement(x, {
          stepIMG: a.createElement(m.xIk, { type: "xbox" }),
          strStepName: (0, s.we)("#ControllerSupportModal_StepString", t + 1),
          strStepSubHeaderToken: "#ControllerSupportModal_PgTwo_Header",
          strInstructionsToken: _,
          strQuestionToken: "#ControllerSupportModal_PgTwo_Question",
          leftColumnContent: p,
        });
      }
      function T(e) {
        const { nPageNum: t, currentValues: n, setCurrentValues: r } = e,
          o = [
            {
              id: 0,
              locString: "#ControllerSupportModal_PgThree_Ps4",
              settings: { bPS4ControllerSupport: !0 },
              invertedSettings: {
                bPS4ControllerSupport: !1,
                bPS4ControllerBTSupport: !1,
              },
              bValue: n.bPS4ControllerSupport,
            },
            {
              id: 1,
              locString: "#ControllerSupportModal_PgThree_Ps4BT",
              settings: {
                bPS4ControllerBTSupport: !0,
                bPS4ControllerSupport: !0,
              },
              invertedSettings: { bPS4ControllerBTSupport: !1 },
              bValue: n.bPS4ControllerBTSupport,
            },
            {
              id: 2,
              locString: "#ControllerSupportModal_PgThree_Ps5",
              settings: { bPS5ControllerSupport: !0 },
              invertedSettings: {
                bPS5ControllerSupport: !1,
                bPS5ControllerBTSupport: !1,
              },
              bValue: n.bPS5ControllerSupport,
            },
            {
              id: 3,
              locString: "#ControllerSupportModal_PgThree_Ps5BT",
              settings: {
                bPS5ControllerBTSupport: !0,
                bPS5ControllerSupport: !0,
              },
              invertedSettings: { bPS5ControllerBTSupport: !1 },
              bValue: n.bPS5ControllerBTSupport,
            },
            {
              id: 4,
              locString: "#ControllerSupportModal_PgThree_None",
              settings: {
                bPS4ControllerSupport: !1,
                bPS4ControllerBTSupport: !1,
                bPS5ControllerSupport: !1,
                bPS5ControllerBTSupport: !1,
              },
              invertedSettings: { bPS4ControllerSupport: !0 },
              bValue: !(
                n.bPS4ControllerSupport ||
                n.bPS4ControllerBTSupport ||
                n.bPS5ControllerSupport ||
                n.bPS5ControllerBTSupport
              ),
            },
          ],
          l = a.createElement(
            "div",
            null,
            o.map((e) =>
              a.createElement(v.Yh, {
                key: e.id,
                checked: e.bValue,
                onChange: (t) => {
                  return (
                    (a = t ? e.settings : e.invertedSettings),
                    void r({ ...n, ...a })
                  );
                  var a;
                },
                label: (0, s.we)(e.locString),
              }),
            ),
          ),
          i = a.createElement(
            "div",
            null,
            a.createElement(
              "p",
              null,
              (0, s.we)("#ControllerSupportModal_PgThree_Instructions"),
            ),
            a.createElement(
              "ol",
              null,
              a.createElement(
                "li",
                null,
                (0, s.we)("#ControllerSupportModal_PgThree_Instructions_pt1"),
              ),
            ),
            a.createElement(
              "p",
              null,
              (0, s.oW)(
                "#ControllerSupportModal_PgThree_Instructions_note",
                a.createElement("span", { style: { fontWeight: "bold" } }),
              ),
            ),
          );
        return a.createElement(x, {
          stepIMG: a.createElement(m.xIk, { type: "ps4" }),
          strStepName: (0, s.we)("#ControllerSupportModal_StepString", t + 1),
          strStepSubHeaderToken: "#ControllerSupportModal_PgThree_Header",
          strInstructionsToken: i,
          strQuestionToken: "#ControllerSupportModal_PgThree_Question",
          leftColumnContent: l,
        });
      }
      function I(e) {
        const {
            nPageNum: t,
            currentValues: n,
            setCurrentValues: r,
            setSkipToEnd: o,
          } = e,
          l = [
            {
              id: A.k_eSteamInputAPISupport,
              locString: "#ControllerSupportModal_PgFour_SIAPI",
              settings: { bSteamInputAPISupport: !0 },
              bSkipToEnd: !1,
            },
            {
              id: A.k_eNoSteamInputAPISupport,
              locString: "#ControllerSupportModal_PgFour_NoSIAPI",
              settings: { bSteamInputAPISupport: !1 },
              bSkipToEnd: !1,
            },
          ],
          i = n.bSteamInputAPISupport
            ? A.k_eSteamInputAPISupport
            : A.k_eNoSteamInputAPISupport,
          c = a.createElement(
            "div",
            null,
            a.createElement(
              v.zW,
              {
                value: i,
                onChange: (e) => {
                  const t = l.find((t) => t.id == e);
                  r({ ...n, ...t?.settings }), o(t.bSkipToEnd ?? !1);
                },
                classNames: P.RadioGroup,
              },
              l.map((e) =>
                a.createElement(
                  v.a,
                  { key: e.id, value: e.id },
                  a.createElement("div", {
                    className: (0, u.A)(P.RadioButton, i == e.id && P.Selected),
                  }),
                  a.createElement(
                    "div",
                    { className: P.OptionLabel },
                    (0, s.we)(e.locString),
                  ),
                ),
              ),
            ),
          ),
          d = a.createElement(
            "div",
            null,
            a.createElement(
              "p",
              null,
              (0, s.we)("#ControllerSupportModal_PgFour_Instructions"),
            ),
            a.createElement(
              "ol",
              null,
              a.createElement(
                "li",
                null,
                (0, s.we)("#ControllerSupportModal_PgFour_Instructions_pt1"),
              ),
              a.createElement(
                "li",
                null,
                (0, s.we)("#ControllerSupportModal_PgFour_Instructions_pt2"),
              ),
              a.createElement(
                "li",
                null,
                (0, s.we)("#ControllerSupportModal_PgFour_Instructions_pt3"),
              ),
            ),
            a.createElement(
              "p",
              null,
              (0, s.we)("#ControllerSupportModal_PgFour_Instructions_note"),
            ),
          );
        return a.createElement(x, {
          strStepName: (0, s.we)("#ControllerSupportModal_StepString", t + 1),
          strStepSubHeaderToken: "#ControllerSupportModal_PgFour_Header",
          strInstructionsToken: d,
          strQuestionToken: "#ControllerSupportModal_PgFour_Question",
          leftColumnContent: c,
        });
      }
      function R(e) {
        const { currentValues: t } = e,
          n = a.createElement(
            "div",
            null,
            (t.bFullXboxControllerSupport || t.bPartialXboxControllerSupport) &&
              a.createElement(g, { ...e.currentValues }),
          ),
          r =
            t.bFullXboxControllerSupport || t.bPartialXboxControllerSupport
              ? "#ControllerSupportModal_PgFive_Question"
              : "#ControllerSupportModal_PgFive_QuestionNoController";
        return a.createElement(x, {
          strStepName: (0, s.we)("#ControllerSupportModal_StepString", 5),
          strStepSubHeaderToken: "#ControllerSupportModal_PgFive_Header",
          strInstructionsToken: void 0,
          strQuestionToken: r,
          leftColumnContent: n,
        });
      }
      function L(e) {
        const { appid: t, onClose: n, onCommit: r, params: o } = e,
          [l, i] = a.useState(o),
          [c, d] = a.useState(o),
          [u, m] = a.useState(!1),
          [p, _] = a.useState(0),
          E = a.useCallback(() => {
            !(async function (e) {
              y("gamepadsupport_input_1", e.bPartialXboxControllerSupport),
                y("gamepadsupport_input_2", e.bFullXboxControllerSupport),
                y("controllersupport_input_3", e.bPS4ControllerSupport),
                y("controllersupport_input_4", e.bPS4ControllerBTSupport),
                y("controllersupport_input_5", e.bPS5ControllerSupport),
                y("controllersupport_input_6", e.bPS5ControllerBTSupport),
                y("controllersupport_input_7", e.bSteamInputAPISupport),
                y("controllersupport_input_8", e.bNoKeyboardSupport),
                y("controllersupport_input_8_input", e.bNoKeyboardSupport),
                y("controllersupport_input_9", e.bGamepadPreferred),
                y("controllersupport_input_10", !0);
              const t = document.getElementById("submitBtn");
              t && t.click();
            })(c),
              r(!1);
          }, [r, c]);
        let g;
        switch (p) {
          default:
          case 0:
            g = a.createElement(D, {
              nPageNum: p,
              currentValues: c,
              setCurrentValues: d,
              setSkipToEnd: m,
            });
            break;
          case 1:
            g = a.createElement(N, {
              nPageNum: p,
              currentValues: c,
              setCurrentValues: d,
              setSkipToEnd: m,
            });
            break;
          case 2:
            g = a.createElement(T, {
              nPageNum: p,
              currentValues: c,
              setCurrentValues: d,
              setSkipToEnd: m,
            });
            break;
          case 3:
            g = a.createElement(I, {
              nPageNum: p,
              currentValues: c,
              setCurrentValues: d,
              setSkipToEnd: m,
            });
            break;
          case 4:
            g = a.createElement(R, { currentValues: c });
        }
        const C = a.createElement(M, {
            nPageIdx: p,
            nPages: 5,
            strHeaderText: (0, s.we)("#ControllerSupportModal_Title"),
          }),
          h = 4 == p;
        return a.createElement(
          B.Provider,
          { value: c },
          a.createElement(
            O,
            {
              fnNext: h
                ? () => E()
                : () => {
                    i(c), _(u ? 4 : p + 1);
                  },
              fnBack:
                p > 0
                  ? () => {
                      d(l);
                      let e = p - 1;
                      u && 4 == p && (e = 0), _(e);
                    }
                  : n,
              header: C,
              strOkButtonLabel: h ? "Save and Exit" : "Next",
            },
            g,
          ),
        );
      }
      !(function (e) {
        (e[(e.k_eMouseKBOnly = 0)] = "k_eMouseKBOnly"),
          (e[(e.k_eGamepadAndMouse = 1)] = "k_eGamepadAndMouse"),
          (e[(e.k_eGamepadPreferred = 2)] = "k_eGamepadPreferred"),
          (e[(e.k_eGamepadRequired = 3)] = "k_eGamepadRequired");
      })(b || (b = {})),
        (function (e) {
          (e[(e.k_eFullXboxControllerSupport = 0)] =
            "k_eFullXboxControllerSupport"),
            (e[(e.k_ePartialXboxControllerSupport = 1)] =
              "k_ePartialXboxControllerSupport");
        })(k || (k = {})),
        (function (e) {
          (e[(e.k_eSteamInputAPISupport = 0)] = "k_eSteamInputAPISupport"),
            (e[(e.k_eNoSteamInputAPISupport = 1)] =
              "k_eNoSteamInputAPISupport");
        })(A || (A = {}));
      const B = a.createContext(null);
      function M(e) {
        const { nPages: t, nPageIdx: n, strHeaderText: r } = e,
          o = (100 * (n + 1)) / (t + 1);
        return a.createElement(
          "div",
          { className: (0, u.A)(P.ModalHeader) },
          !1,
          a.createElement("div", { className: P.WizardTitle }, (0, s.we)(r)),
          a.createElement(
            "div",
            {
              className: (0, u.A)(
                P.ProgressBar,
                n == t - 1 && P.ProgressBarComplete,
              ),
            },
            n < t - 1 &&
              a.createElement("div", {
                className: (0, u.A)(P.ProgressBarFillComponent),
                style: { width: o + "%" },
              }),
          ),
        );
      }
      const x = a.memo(function (e) {
        const {
          strStepName: t,
          strStepSubHeaderToken: n,
          stepIMG: r,
          strInstructionsToken: o,
          strQuestionToken: l,
          leftColumnContent: i,
          rightColumnContent: c,
        } = e;
        return a.createElement(
          "div",
          { className: P.WizardContainer },
          a.createElement(
            "div",
            { className: P.StepRow },
            r &&
              a.createElement(
                "div",
                { className: P.StepImgContainer },
                " ",
                r,
                " ",
              ),
            a.createElement(
              "div",
              { className: P.StepLabel },
              t,
              a.createElement(v.iK, null, (0, s.we)(n)),
            ),
          ),
          o && a.createElement("div", { className: P.StepInstruction }, o),
          a.createElement(
            "div",
            { className: P.ControlsQuestion },
            (0, s.oW)(
              l,
              a.createElement("span", { style: { fontWeight: "bold" } }),
            ),
          ),
          a.createElement(
            v.dR,
            null,
            a.createElement(v.VP, null, i),
            a.createElement(v.VP, null, c),
          ),
        );
      });
      function O(e) {
        const {
          fnNext: t,
          fnBack: n,
          children: r,
          header: o,
          strOkButtonLabel: l,
        } = e;
        return a.createElement(
          w.mt,
          { active: !0, className: P.ControllerWizardModal },
          o,
          a.createElement(v.nB, { className: P.WizardBody }, r),
          a.createElement(v.CB, {
            bCancelDisabled: !n,
            onCancel: n,
            strCancelText: "Back",
            onOK: t,
            strOKText: l,
          }),
        );
      }
      function F(e) {
        const { unAppID: t } = e,
          [n, r] = a.useState(!1),
          o = a.useCallback(() => r(!0), []),
          l = a.useCallback(() => r(!1), []),
          d =
            e.bControllerSupportWizardComplete &&
            (e.bFullXboxControllerSupport || e.bPartialXboxControllerSupport);
        return a.createElement(
          a.Fragment,
          null,
          n &&
            a.createElement(L, {
              appid: t,
              onClose: l,
              onCommit: l,
              params: e,
            }),
          a.createElement(
            v.nB,
            null,
            a.createElement(
              "div",
              { className: i.DescText },
              (0, s.we)("#App_Landing_ControllerSupport_WizardPrompt_Desc"),
            ),
            e.bControllerSupportWizardComplete &&
              a.createElement(
                "div",
                { className: i.DescText },
                (0, s.we)(
                  "#App_Landing_ControllerSupport_WizardPrompt_CustomerView",
                ),
              ),
          ),
          a.createElement(
            "div",
            { className: (0, u.A)(i.ReleaseDateInfoCtn) },
            a.createElement(
              "div",
              { className: i.ReleaseDateContent },
              !e.bControllerSupportWizardComplete &&
                a.createElement(U, { onClick: o }),
              e.bControllerSupportWizardComplete &&
                !d &&
                a.createElement(G, { onClick: o }),
              e.bControllerSupportWizardComplete &&
                d &&
                a.createElement(g, { ...e }),
            ),
            e.bControllerSupportWizardComplete &&
              d &&
              a.createElement(
                "div",
                { className: i.EditButton, onClick: o },
                a.createElement("div", {
                  className: (0, u.A)(i.Spacer, i.Top),
                }),
                a.createElement(
                  "div",
                  { className: i.EditButtonIcon },
                  a.createElement(c.ffu, null),
                ),
                a.createElement("div", {
                  className: (0, u.A)(i.Spacer, i.Bottom),
                }),
              ),
          ),
          a.createElement("br", null),
          a.createElement(
            "div",
            { className: i.DescText },
            (0, s.we)("#App_Landing_ControllerSupport_WizardPrompt_Upcoming"),
          ),
        );
      }
      function U(e) {
        return a.createElement(
          "div",
          null,
          a.createElement(
            v.nB,
            null,
            a.createElement(
              v.a3,
              null,
              a.createElement(
                "div",
                { className: i.StatusText },
                (0, s.we)(
                  "#App_Landing_ControllerSupport_WizardPrompt_StatusNotStarted",
                ),
              ),
            ),
            a.createElement(
              v.jn,
              { className: i.StartWizardButton, onClick: e.onClick },
              " ",
              (0, s.we)(
                "#App_Landing_ControllerSupport_WizardPrompt_EditButton",
              ),
              " ",
            ),
          ),
        );
      }
      function G(e) {
        return a.createElement(
          "div",
          null,
          a.createElement(
            v.nB,
            null,
            a.createElement(
              v.a3,
              null,
              a.createElement(
                "div",
                { className: i.StatusText },
                (0, s.we)(
                  "#App_Landing_ControllerSupport_WizardPrompt_StatusNoController",
                ),
              ),
            ),
            a.createElement(
              v.$n,
              { className: i.StartWizardButton, onClick: e.onClick },
              " ",
              (0, s.we)(
                "#App_Landing_ControllerSupport_WizardPrompt_EditButton",
              ),
              " ",
            ),
          ),
        );
      }
      var H = n(83247),
        W = n(30175),
        K = n(64753),
        V = n(8871),
        $ = n(97982);
      function z(e) {
        const { language: t, rctToolbarControls: n, value: r } = e,
          o = a.createRef();
        return a.createElement(
          a.Fragment,
          null,
          a.createElement(Y, {
            refTextArea: o,
            value: r,
            rctToolbarControls: n,
          }),
          a.createElement(q, { language: t, value: r, refTextArea: o }),
        );
      }
      function Y(e) {
        const { refTextArea: t, value: n, rctToolbarControls: r } = e,
          o = a.useCallback(
            (e, a) => {
              j(t.current, n, e, a);
            },
            [t, n],
          ),
          l = a.useCallback(
            (e, a) => {
              j(t.current, n, e, a, (e) =>
                e.replace(/(\r\n|\n|\r)/gm, "\r\n[*]"),
              );
            },
            [t, n],
          );
        return a.createElement(
          W.Ez,
          null,
          a.createElement(
            X,
            {
              fnInsertText: o,
              tooltip: (0, s.we)("#FormattingToolbar_Bold"),
              start: "[b]",
              end: "[/b]",
            },
            a.createElement(m.l4n, null),
          ),
          a.createElement(
            X,
            {
              fnInsertText: o,
              tooltip: (0, s.we)("#FormattingToolbar_Italic"),
              start: "[i]",
              end: "[/i]",
            },
            a.createElement(m.UKJ, null),
          ),
          a.createElement(
            X,
            {
              fnInsertText: o,
              tooltip: (0, s.we)("#FormattingToolbar_Underline"),
              start: "[u]",
              end: "[/u]",
            },
            a.createElement(m.Gj3, null),
          ),
          a.createElement(W.XQ, null),
          a.createElement(
            X,
            {
              fnInsertText: l,
              tooltip: (0, s.we)("#FormattingToolbar_BulletedList"),
              start: "[list][*]",
              end: "[/list]",
            },
            a.createElement(m.JPq, null),
          ),
          a.createElement(
            X,
            {
              fnInsertText: o,
              tooltip: (0, s.we)("#FormattingToolbar_HeadingLevel2"),
              start: "[h2]",
              end: "[/h2]",
            },
            a.createElement(m.qOW, null),
          ),
          a.createElement(W.XQ, null),
          a.createElement(
            X,
            {
              fnInsertText: o,
              tooltip: (0, s.we)("#FormattingToolbar_InsertLink"),
              start: "[url]",
              end: "[/url]",
            },
            a.createElement(m.YqK, null),
          ),
          a.createElement(
            X,
            {
              fnInsertText: o,
              tooltip: (0, s.we)("#EventEditor_InsertImage"),
              start: "[img]",
              end: "[/img]",
            },
            a.createElement(m._V3, null),
          ),
          a.createElement(W.hK, null),
          r,
        );
      }
      function X(e) {
        const {
          fnInsertText: t,
          tooltip: n,
          start: r,
          end: o,
          children: l,
        } = e;
        return a.createElement(W.ff, { onClick: () => t(r, o), tooltip: n }, l);
      }
      function q(e) {
        const { language: t, value: n, refTextArea: r } = e,
          o = a.useCallback((e) => n.Set(e.currentTarget.value), [n]),
          l = (0, K.gc)(n),
          i = a.useCallback(
            (e) => {
              (0, V.cZ)(r, e?.textarea);
            },
            [r],
          );
        return a.createElement(v.Cl, {
          className: $.TextArea,
          ref: i,
          nMinHeight: 96,
          value: l,
          onChange: o,
          lang: (0, s.d$)(t),
        });
      }
      function j(e, t, n, a, r) {
        if (e.selectionStart || 0 === e.selectionStart) {
          const o = e.selectionStart,
            l = e.selectionEnd,
            s = e.value.substring(0, o),
            i = e.value.substring(o, l),
            c = e.value.substring(l, e.value.length),
            d = r ? r(i) : i,
            u = d.length - i.length,
            m = e.scrollTop;
          Q(t, s + n + d + a + c, () => {
            e.focus(),
              (e.selectionStart = o + n.length),
              (e.selectionEnd = l + n.length + u),
              (e.scrollTop = m);
          });
        } else Q(t, e.value + n + " " + a, () => e.focus());
      }
      function Q(e, t, n) {
        e.Set(t), window.setTimeout(n, 1);
      }
      var Z = n(92503),
        J = n(2176);
      const ee = a.lazy(() => Promise.resolve().then(n.bind(n, 2176)));
      function te(e) {
        const {
            rgLanguages: t,
            value: n,
            strNamePrefix: r,
            rgPath: o,
            editorType: l,
          } = e,
          i = a.useMemo(() => new Map(t), [t]),
          {
            strActiveLanguage: c,
            mapValues: d,
            rctLanguageSelect: u,
            rctHiddenInputs: m,
          } = (0, H.K)(i, n, r, o),
          p = (0, Z.TQ)() ? ee : z,
          _ =
            "aboutthegame" == l
              ? a.createElement(
                  J.StoreAppPageHeader,
                  null,
                  (0, s.we)("#StoreAdmin_GameDescription_AboutThisGame"),
                )
              : void 0;
        return a.createElement(
          "div",
          { className: $.LocTextAreaContainer },
          "aboutthegame" == l && a.createElement(ne, null),
          a.createElement(
            a.Suspense,
            { fallback: null },
            a.createElement(p, {
              language: c,
              value: d.get(c),
              rctToolbarControls: u,
              editorType: l,
              rctAboveEditor: _,
            }),
          ),
          m,
        );
      }
      function ne() {
        const e = (0, Z.TQ)(),
          t = (0, Z.gg)();
        return a.createElement(v.Yh, {
          style: { width: "fit-content" },
          checked: e,
          label: (0, s.we)("#StoreAdmin_GameDescription_UseRichEditor"),
          onChange: t,
        });
      }
      var ae = n(36225),
        re = n(63369),
        oe = n(91675),
        le = n(46595),
        se = n(41735),
        ie = n.n(se),
        ce = n(70986),
        de = n(20194),
        ue = n(99637),
        me = n(22797),
        pe = n(72963),
        _e = n(61336);
      const Ee = [
          "date_full",
          "date_month",
          "date_quarter",
          "date_year",
          "text_comingsoon",
          "text_tba",
        ],
        ge = ["date_full", "date_month", "date_quarter"];
      function Ce(e) {
        const {
            rtSteamReleaseDate: t,
            value: n,
            onChange: r,
            rgComingSoonOptionOverride: o,
            bExpandedDisplay: l,
          } = e,
          i = !!t,
          c = a.useMemo(
            () =>
              (o || Ee).map((e) => ({
                label: (0, re.M)(e, t, null, l),
                data: e,
              })),
            [t, o, l],
          ),
          d = a.useCallback(
            (e) => {
              r(e.data);
            },
            [r],
          ),
          u = t
            ? (0, s.we)("#GameEdit_ComingSoon_SelectAnOption")
            : (0, s.we)("#App_Landing_NoDateSelected");
        return a.createElement(v.ZU, {
          disabled: !i,
          strDefaultLabel: u,
          rgOptions: c,
          selectedOption: i ? n : null,
          onChange: d,
        });
      }
      var he = n(51780);
      function Se(e) {
        const { appid: t, onClose: n, onCommit: r } = e,
          [o, l] = a.useState(null),
          {
            data: i,
            isLoading: c,
            isLoadingError: d,
          } = (function (e) {
            return (0, de.I)({
              queryKey: ["ReleaseRequest", e],
              queryFn: async () => {
                const t = await ie().get(
                  `${_.TS.PARTNER_BASE_URL}apprelease/ajaxgetreleaserequest/${e}`,
                );
                if ("string" == typeof t.data)
                  throw "Error loading release status";
                return { appid: e, ...t?.data };
              },
            });
          })(t),
          u = "prerelease" == i?.strReleaseState,
          m = a.useCallback(
            (e, n) => {
              pe.L.invalidateQueries({ queryKey: ["ReleaseRequest", t] }),
                r(e, n, u);
            },
            [t, r, u],
          );
        let p = a.createElement(ke, { setOnOKButton: l, onCommit: m });
        return (
          d
            ? (p = a.createElement(Ae, {
                strError: (0, s.we)("#Error_ErrorCommunicatingWithNetwork"),
              }))
            : (!c && i) || (p = a.createElement(me.t, null)),
          a.createElement(
            fe.Provider,
            { value: i },
            a.createElement(we, { fnSubmit: o, fnCloseModal: n }, p),
          )
        );
      }
      const fe = a.createContext(null);
      function be() {
        return a.useContext(fe);
      }
      const ke = a.memo(function (e) {
        const {
            appid: t,
            bCanUpdateComingSoonDate: n,
            rtReleaseDate: r,
            strComingSoonDisplay: o,
          } = be(),
          { setOnOKButton: l, onCommit: i } = e,
          [c, d] = a.useState(r),
          [u, m] = a.useState(o || void 0),
          [p, E] = a.useState("none"),
          [g, C] = a.useState(),
          h = a.useCallback((e) => {
            C(e), E("none");
          }, []),
          S = a.useCallback(() => {
            if (c)
              if (u) {
                E("submitting"), C(null);
                (async function (e) {
                  const {
                      unAppID: t,
                      rtReleaseDate: n,
                      strComingSoonDisplay: a,
                    } = e,
                    r = `${_.TS.PARTNER_BASE_URL}apprelease/ajaxupdatereleaserequest/${t}`,
                    o = new FormData();
                  o.append("sessionid", _.TS.SESSIONID),
                    n && o.append("release_date", n.toString());
                  o.append("coming_soon_display", a);
                  const l = await ie().post(r, o);
                  if (!l.data || 1 != l.data.success)
                    throw (0, s.we)(
                      "#Error_Description",
                      l.data?.success,
                      l.data?.error_message || "unknown",
                    );
                })({
                  unAppID: t,
                  rtReleaseDate: n ? c : null,
                  strComingSoonDisplay: u,
                })
                  .then(() => {
                    E("refreshing"), i(c, u);
                  })
                  .catch((e) => {
                    h(e);
                  });
              } else
                h(
                  (0, s.we)("#App_Landing_ReleaseDate_Error_ComingSoonDisplay"),
                );
            else h((0, s.we)("#App_Landing_ReleaseDate_Error_NoDate"));
          }, [t, c, u, n, i, h]);
        return (
          a.useEffect(() => {
            l("none" == p ? () => S : null);
          }, [S, n, p, l]),
          a.createElement(
            a.Fragment,
            null,
            g && a.createElement(Ae, { strError: g }),
            a.createElement(ve, null),
            a.createElement(
              v.dR,
              null,
              a.createElement(
                Pe,
                { label: (0, s.we)("#App_Landing_IntendedReleaseDateTitle") },
                a.createElement(ye, { rtSelectedDate: c, setSelectedDate: d }),
                a.createElement(De, null),
              ),
              a.createElement(
                Pe,
                { label: (0, s.we)("#App_Landing_PublicDateDisplayTitle") },
                a.createElement(Ce, {
                  rtSteamReleaseDate: c,
                  value: u,
                  onChange: m,
                }),
                a.createElement(
                  "p",
                  null,
                  (0, s.we)("#App_Landing_ReleaseDateStorePage"),
                ),
                a.createElement(
                  "p",
                  null,
                  (0, s.we)("#App_Landing_ReleaseDateStoreListing"),
                ),
              ),
            ),
            a.createElement(
              "div",
              { className: he.ReleaseColumnFooter },
              (0, s.oW)(
                "#App_Landing_NeedHelpWithReleaseDates",
                a.createElement("a", {
                  target: "_blank",
                  href: `${_.TS.PARTNER_BASE_URL}doc/store/coming_soon`,
                }),
                a.createElement("a", {
                  target: "_blank",
                  href: `${(0, _e.GX)()}wizard/HelpWithPublishing`,
                }),
              ),
            ),
            a.createElement(Te, null),
          )
        );
      });
      function Ae(e) {
        const { strError: t } = e;
        return a.createElement("div", { className: he.ErrorBox }, t);
      }
      function ve() {
        const {
          bIsComingSoon: e,
          bIsStorePageReviewed: t,
          bIsWaitingForBuildReview: n,
          bIsFirstSelfPublishingApp: r,
          rtEarliestDate: o,
        } = be();
        return e && t
          ? n
            ? a.createElement(
                Ne,
                null,
                (0, s.we)("#App_Landing_Release_EarliestDate_BuildReview"),
              )
            : a.createElement(
                Ne,
                null,
                (0, s.we)("#App_Landing_Release_EarliestDate", (0, s.$z)(o)),
              )
          : r
            ? a.createElement(
                Ne,
                null,
                (0, s.we)("#App_Landing_Release_EarliestDate_TwoWeeks30Days"),
              )
            : a.createElement(
                Ne,
                null,
                (0, s.we)("#App_Landing_Release_EarliestDate_TwoWeeks"),
              );
      }
      function we(e) {
        const { fnCloseModal: t, fnSubmit: n, children: r } = e,
          { bCanUpdateComingSoonDate: o } = be() || {
            bCanUpdateComingSoonDate: !0,
          };
        return a.createElement(
          w.mt,
          { active: !0, className: he.ReleaseDateModal, onDismiss: t },
          a.createElement(
            v.Y9,
            null,
            (0, s.we)(
              o
                ? "#App_Landing_Set_Release_Date"
                : "#App_Landing_Change_Release_Date",
            ),
          ),
          a.createElement(v.nB, { className: he.ReleaseDateRequestBody }, r),
          a.createElement(v.CB, {
            bOKDisabled: !n,
            onCancel: t,
            strCancelText: (0, s.we)("#App_Landing_Requested_Date_Cancel"),
            onOK: n,
            strOKText: (0, s.we)("#App_Landing_Requested_Date_Update"),
          }),
        );
      }
      function Pe(e) {
        const { label: t, children: n } = e;
        return a.createElement(
          v.VP,
          { className: he.Column },
          a.createElement("div", { className: he.ColumnLabel }, t, ":"),
          a.createElement("div", { className: he.ColumnContent }, n),
        );
      }
      function ye(e) {
        const { rtSelectedDate: t, setSelectedDate: n } = e,
          { bCanUpdateComingSoonDate: r, rtEarliestDate: o } = be();
        return a.createElement(
          a.Fragment,
          null,
          a.createElement(ue.K, {
            bWeekdaysOnly: !0,
            bNoDefaultDate: !0,
            disabled: !r,
            nEarliestTime: o,
            fnGetTimeToUpdate: () => t,
            fnSetTimeToUpdate: n,
            className: he.DatePicker,
            bShowTimeZone: !0,
            strAlsoShowTimeZone: ce.o,
          }),
        );
      }
      function De(e) {
        const { bCanUpdateComingSoonDate: t, rtReleaseDate: n } = be();
        return t
          ? a.createElement(
              a.Fragment,
              null,
              a.createElement(
                "p",
                null,
                (0, s.we)("#App_Landing_Set_Release_Date_SetIntended"),
              ),
              a.createElement(
                "p",
                null,
                (0, s.we)("#App_Landing_Set_Release_Date_Weekends"),
              ),
              a.createElement(
                "p",
                null,
                (0, s.we)("#App_Landing_Set_Release_Date_PacificTime"),
              ),
            )
          : a.createElement(
              "p",
              null,
              (0, s.oW)(
                (0, s.we)(
                  "#App_Landing_Set_Release_Date_ComingSoonWarning_CantSet_Desc",
                  (0, s.$z)(n),
                ),
                a.createElement("a", {
                  href: `${(0, _e.GX)()}wizard/HelpWithPublishing?issueid=905`,
                }),
              ),
            );
      }
      function Ne(e) {
        return a.createElement("span", { className: he.BlueNote }, e.children);
      }
      function Te(e) {
        const {
          rtEarliestDate: t,
          strReleaseState: n,
          bCanUpdateComingSoonDate: r,
        } = be();
        return "prerelease" != n || r
          ? null
          : a.createElement(
              "div",
              { className: he.PublishNowWarning },
              (0, s.we)(
                "#App_Landing_Set_Release_Date_ComingSoonWarning_CantSet_Note",
                (0, s.$z)(t),
              ),
            );
      }
      let Ie = {
        GameEdit: (e, t) => `/admin/game/${e}/${t}`,
        GameEditByAppID: (e) => `/admin/game/editbyappid/${e}`,
        AppLanding: (e) => `/apps/landing/${e}`,
        AppInstaller: (e) => `/apps/installer/${e}`,
        CommunityItems: (e) => `/apps/communityitems/${e}`,
        ReviewPriceProposals: () => "/admin/reviewpricesubmissions/",
        PackageLanding: (e) => `/store/packagelanding/${e}`,
      };
      const Re = ["edit", "diff", "revert", "prepare", "publish"];
      function Le(e) {
        const {
            bIsGameEdit: t,
            unAppID: n,
            rgEarliestAdvancedAccessDate: r,
          } = e,
          [o, l] = a.useState(e.rtReleaseDate),
          [i, d] = a.useState(e.strComingSoonDisplay),
          [m, p] = a.useState(!1),
          [_, E] = a.useState(!1),
          g = a.useCallback(() => p(!0), []),
          C = a.useCallback(() => p(!1), []),
          h = a.useCallback((e, t, n) => {
            l(e), d(t), p(!1), n && E(!0);
          }, []);
        return a.createElement(
          a.Fragment,
          null,
          m && a.createElement(Se, { appid: n, onClose: C, onCommit: h }),
          _ &&
            a.createElement(xe, {
              appid: n,
              bIsGameEdit: t,
              closeModal: () => E(!1),
            }),
          a.createElement(
            "div",
            { className: (0, u.A)(le.ReleaseDateInfoCtn, t && le.GameEditCtn) },
            a.createElement(
              "div",
              { className: le.ReleaseDateContent },
              a.createElement(
                Me,
                { label: (0, s.we)("#App_Landing_SpecifiedReleaseDate") },
                a.createElement(Be, { rtReleaseDate: o }),
              ),
              a.createElement(
                Me,
                { label: (0, s.we)("#App_Landing_CustomersSeeReleaseDate") },
                a.createElement(
                  "div",
                  { className: (0, u.A)(le.BigField, i ? le.Set : le.Unset) },
                  i
                    ? (0, re.M)(i, o)
                    : (0, s.we)("#App_Landing_UnsetReleaseDate"),
                ),
              ),
            ),
            a.createElement(
              "div",
              { className: le.EditButton, onClick: g },
              a.createElement("div", {
                className: (0, u.A)(le.Spacer, le.Top),
              }),
              a.createElement(
                "div",
                { className: le.EditButtonIcon },
                a.createElement(c.ffu, null),
              ),
              a.createElement("div", {
                className: (0, u.A)(le.Spacer, le.Bottom),
              }),
            ),
          ),
          1e3 * r > new Date().getTime() &&
            a.createElement(
              Me,
              { label: (0, s.we)("#App_Landing_EarliestAdvancedAccessDate") },
              a.createElement(Be, { rtReleaseDate: r }),
            ),
        );
      }
      function Be(e) {
        const { rtReleaseDate: t } = e;
        return t
          ? a.createElement(
              a.Fragment,
              null,
              a.createElement(
                "div",
                { className: (0, u.A)(le.BigField, le.Set) },
                (0, s.$z)(t),
              ),
              a.createElement(
                "div",
                { className: (0, u.A)(le.SubField, le.Set) },
                (0, oe.KC)(t, {}, { timeZoneName: "short" }),
              ),
            )
          : a.createElement(
              "div",
              { className: (0, u.A)(le.BigField, le.Unset) },
              (0, s.we)("#App_Landing_UnsetReleaseDate"),
            );
      }
      function Me(e) {
        return a.createElement(
          "div",
          { className: le.LabelField },
          a.createElement("div", { className: le.Label }, e.label),
          e.children,
        );
      }
      function xe(e) {
        const { appid: t, bIsGameEdit: n, closeModal: r } = e,
          o = a.useCallback(() => {
            n
              ? (window.TabSelect("tab_publish"), window.scrollTo(0, 0))
              : (window.location.href =
                  Ie.GameEditByAppID(t.toString()) + "?activetab=tab_publish"),
              r();
          }, [t, n, r]);
        return a.createElement(
          w.EN,
          { active: !0 },
          a.createElement(w.o0, {
            strTitle: (0, s.we)("#App_Landing_ReleaseDate_ChangesSaved"),
            strDescription: (0, s.we)(
              "#App_Landing_Release_PublishStorePrompt",
            ),
            strOKButtonText: (0, s.we)("#App_Landing_Release_PrepareToPublish"),
            onOK: o,
            strCancelButtonText: (0, s.we)("#Button_OK"),
            closeModal: r,
          }),
        );
      }
      var Oe = n(92757),
        Fe = n(6813),
        Ue = n(94794),
        Ge = n(75487),
        He = n(56545),
        We = n(23809),
        Ke = n(6144),
        Ve = n(14771),
        $e = n(55263),
        ze = n(82829);
      const Ye = 7,
        Xe = 7;
      function qe(e) {
        const { demoAppID: t, parentAppId: n } = e,
          [r, o] = a.useState(!1),
          [l, i] = a.useState(void 0),
          [c, d] = a.useState(void 0),
          [u, m] = a.useState(0),
          p = a.useCallback(() => m((e) => e + 1), []),
          E = (0, We.KV)();
        a.useEffect(() => {
          const e = new AbortController();
          return (
            (async () => {
              o(!1), i(void 0);
              const a = He.w.Init(Ge.as);
              a.Body().set_demo_appid(t), a.Body().set_appid(n);
              const r = await Ge.nd.GetWishlistDemoEmailStatus(E, a);
              e.signal.aborted ||
                (r.BSuccess() &&
                  (o(r.Body().can_fire()), i(r.Body().time_staged())));
            })(),
            () => e.abort()
          );
        }, [E, t, n, u]),
          a.useEffect(() => {
            let e = window.AppLandingRefreshCallbacks;
            e || ((e = new Ke.lu()), (window.AppLandingRefreshCallbacks = e));
            const t = e.Register(p);
            return () => t.Unregister();
          }, [p]);
        const g = r || void 0 !== c,
          C = l + Ye * Ve.Kp.PerDay,
          h = !r && l && new Date(1e3 * C) > new Date();
        if (g || h) {
          const e = `${_.TS.PARTNER_BASE_URL}doc/marketing/wishlist`;
          return a.createElement(
            "div",
            { className: Ue.DemoWishlistCtn },
            a.createElement(
              "div",
              { className: Ue.Header },
              a.createElement(
                "h2",
                null,
                (0, s.we)("#App_Landing_DemoWishlist_Title"),
              ),
              a.createElement(
                "a",
                { className: Ue.DocumentationLink, href: e },
                (0, s.we)("#App_Landing_DemoWishlist_Link"),
              ),
            ),
            g &&
              a.createElement(je, {
                demoAppID: t,
                parentAppId: n,
                bSendEmailsSucceeded: c,
                setSendEmailsSucceeded: d,
              }),
            g && h && a.createElement("hr", { className: Ue.BothSeparator }),
            h &&
              a.createElement(Qe, {
                parentAppId: n,
                timeStaged: l,
                noticeVisibleToDate: C,
              }),
          );
        }
      }
      function je(e) {
        const {
            demoAppID: t,
            parentAppId: n,
            bSendEmailsSucceeded: r,
            setSendEmailsSucceeded: o,
          } = e,
          [l, i] = a.useState(!1),
          [c, d] = a.useState(!1),
          m = (0, We.KV)(),
          p = a.useCallback(async () => {
            d(!1), i(!0);
            try {
              const e = He.w.Init(Ge.KP);
              e.Body().set_demo_appid(t), e.Body().set_appid(n);
              const a = await Ge.nd.QueueWishlistDemoEmailToFire(m, e);
              o(a.BSuccess());
            } finally {
              i(!1);
            }
          }, [t, n, m, o]),
          { bLoading: _, rgWarnings: E } = (function (e, t) {
            const n = (0, ze.c2)({ appid: e }),
              a = (0, ze.c2)({ appid: t }),
              [r] = (0, $e.t7)(e, { include_release: !0 });
            if (n.isLoading || a.isLoading)
              return { bLoading: !0, rgWarnings: [] };
            if (!n.isSuccess || !a.isSuccess)
              return {
                bLoading: !1,
                rgWarnings: [
                  {
                    sText: (0, s.we)(
                      "#App_Landing_DemoWishlist_CountryLoad_Failed",
                    ),
                    bCritical: !0,
                  },
                ],
              };
            const o = [];
            r &&
              r.GetReleaseDateRTime(!0) <
                new Date().getTime() / 1e3 + 14 * Ve.Kp.PerDay &&
              o.push({
                sText: (0, s.we)(
                  "#App_Landing_DemoWishlist_ParentAppWarning",
                  r.GetFormattedSteamReleaseDate(),
                ),
              });
            const l = n.data.allowed_countries,
              i = n.data.restricted_countries.filter((e) => "XC" != e),
              c = a.data.allowed_countries,
              d = a.data.restricted_countries.filter((e) => "XC" != e),
              u = (e, t) =>
                0 == e.length && 0 == t.length
                  ? "unrestricted"
                  : e.length > 0
                    ? "allow"
                    : "deny",
              m = u(l, i),
              p = u(c, d),
              _ = (e, t) =>
                0 == e.length && 0 == t.length
                  ? (0, s.we)(
                      "#App_Landing_DemoWishlist_CountryRestrictions_Mismatch_Unrestricted",
                    )
                  : e.length > 0
                    ? (0, s.we)(
                        "#App_Landing_DemoWishlist_CountryRestrictions_Mismatch_Allow",
                        e.join(", "),
                      )
                    : (0, s.we)(
                        "#App_Landing_DemoWishlist_CountryRestrictions_Mismatch_Deny",
                        t.join(", "),
                      ),
              E = _(l, i),
              g = _(c, d);
            "unrestricted" != m &&
            "unrestricted" != p &&
            l.length > 0 != c.length > 0
              ? o.push({
                  sText: (0, s.we)(
                    "#App_Landing_DemoWishlist_CountryRestrictionTypes_Mismatch",
                    E,
                    g,
                  ),
                  bCritical: !0,
                })
              : E != g &&
                o.push({
                  sText: (0, s.we)(
                    "#App_Landing_DemoWishlist_CountryRestrictions_Mismatch",
                    E,
                    g,
                  ),
                });
            return { bLoading: !1, rgWarnings: o };
          })(n, t),
          g = E.every((e) => !e.bCritical);
        return a.createElement(
          a.Fragment,
          null,
          a.createElement(
            "div",
            { className: Ue.SubTitle },
            (0, s.we)("#App_Landing_DemoWishlist_SubTitle"),
          ),
          a.createElement(
            "div",
            { className: Ue.Description },
            a.createElement(
              "p",
              null,
              (0, s.we)("#App_Landing_DemoWishlist_Desc"),
            ),
          ),
          _
            ? a.createElement(me.t, null)
            : a.createElement(
                a.Fragment,
                null,
                E.map((e) =>
                  a.createElement(
                    "div",
                    {
                      key: e.sText,
                      className: (0, u.A)(
                        Ue.Warning,
                        e.bCritical && Ue.Critical,
                      ),
                    },
                    a.createElement("p", null, e.sText),
                  ),
                ),
                void 0 === r &&
                  a.createElement(
                    a.Fragment,
                    null,
                    a.createElement(
                      "div",
                      { className: Ue.ButtonRow },
                      a.createElement(
                        v.$n,
                        {
                          className: (0, u.A)(
                            "btn_green_steamui btn_border_2px btn_medium",
                            Ue.ButtonDemoWishlistEmails,
                          ),
                          disabled: l || !g,
                          onClick: () => d(!0),
                        },
                        a.createElement(
                          "span",
                          null,
                          (0, s.we)(
                            "#App_Landing_DemoWishlist_SendEmailsButton",
                          ),
                        ),
                      ),
                      l &&
                        a.createElement(me.t, {
                          className: Ue.InProgressThrobber,
                          size: "small",
                        }),
                    ),
                  ),
                void 0 !== r &&
                  a.createElement(
                    "div",
                    { className: Ue.ButtonRow },
                    r &&
                      a.createElement(
                        "div",
                        { className: Ue.DemoWishlistSendSucceeded },
                        (0, s.we)(
                          "#App_Landing_DemoWishlist_SendEmails_Succeeded",
                        ),
                      ),
                    !r &&
                      a.createElement(
                        "div",
                        { className: Ue.DemoWishlistSendFailed },
                        (0, s.we)(
                          "#App_Landing_DemoWishlist_SendEmails_Failed",
                        ),
                      ),
                  ),
              ),
          c &&
            a.createElement(
              w.mt,
              { active: !0, className: Ue.ControllerWizardModal },
              a.createElement(
                "h1",
                null,
                (0, s.we)("#App_Landing_DemoWishlist_Dialog_Header"),
              ),
              a.createElement(
                v.nB,
                { className: Ue.WizardBody },
                a.createElement(
                  "div",
                  null,
                  (0, s.we)("#App_Landing_DemoWishlist_Dialog_Desc"),
                ),
                a.createElement(
                  "h2",
                  null,
                  (0, s.we)("#App_Landing_DemoWishlist_Dialog_ListTitle"),
                ),
                a.createElement(
                  "ul",
                  null,
                  (0, s.oW)(
                    "#App_Landing_DemoWishlist_Dialog_List",
                    a.createElement("li", null),
                    a.createElement("b", null),
                  ),
                ),
              ),
              a.createElement(v.CB, {
                onOK: p,
                strOKText: (0, s.we)(
                  "#App_Landing_DemoWishlist_Dialog_Confirm",
                ),
                onCancel: () => d(!1),
                strCancelText: (0, s.we)(
                  "#App_Landing_DemoWishlist_Dialog_Cancel",
                ),
              }),
            ),
        );
      }
      function Qe(e) {
        const { parentAppId: t, timeStaged: n, noticeVisibleToDate: r } = e,
          o = (e) =>
            `${e.getFullYear()}-${String(e.getMonth() + 1).padStart(2, "0")}-${String(e.getDate()).padStart(2, "0")}`,
          l = o(new Date(1e3 * (n - Xe * Ve.Kp.PerDay))),
          i = o(new Date()),
          c = new Intl.DateTimeFormat(navigator.language, {
            year: "numeric",
            month: "long",
            day: "numeric",
          }).format(1e3 * n),
          d = new Intl.DateTimeFormat(navigator.language, {
            year: "numeric",
            month: "long",
            day: "numeric",
          }).format(1e3 * r),
          u = `${_.TS.STATS_BASE_URL}app/wishlist/${t}/?dateStart=${l}&dateEnd=${i}`;
        return a.createElement(
          "div",
          { className: Ue.Description },
          a.createElement(
            "p",
            null,
            (0, s.we)("#App_Landing_DemoWishlist_SentRecently_Desc", c),
          ),
          a.createElement(
            "p",
            null,
            a.createElement(
              "a",
              { href: u },
              (0, s.we)("#App_Landing_DemoWishlist_SentRecently_ViewStats"),
            ),
          ),
          a.createElement(
            "p",
            { className: Ue.Notice },
            (0, s.we)("#App_Landing_DemoWishlist_SentRecently_Notice", d),
          ),
        );
      }
      var Ze = n(75493),
        Je = n(7517);
      function et(e) {
        const { nAppId: t, nParentAppId: n, strAppType: r } = e,
          o = (0, Ze.V)();
        return a.createElement(
          a.Fragment,
          null,
          a.createElement(Je.$, { nPartnerID: o, nAppID: t }),
          "Demo" == r && a.createElement(qe, { demoAppID: t, parentAppId: n }),
        );
      }
      var tt,
        nt = n(8527),
        at = n(33793),
        rt = n(17720),
        ot = n(4796),
        lt = n(67165),
        st = n(96001);
      !(function (e) {
        (e[(e.k_CreatorHomeNone = 0)] = "k_CreatorHomeNone"),
          (e[(e.k_CreatorHomeAll = -1)] = "k_CreatorHomeAll");
      })(tt || (tt = {}));
      var it = n(82097),
        ct = n(84811),
        dt = n(24655),
        ut = n(95695),
        mt = n.n(ut),
        pt = n(57876),
        _t = n(45699),
        Et = n(76217),
        gt = n(89350),
        Ct = n(55963),
        ht = n(30894),
        St = n(62792),
        ft = n(33924),
        bt = n(29863),
        kt = n(79849),
        At = n(18654),
        vt = n.n(At),
        wt = n(3661),
        Pt = n(37346),
        yt = n(72860),
        Dt = n(92532),
        Nt = n(47235),
        Tt = n(37076),
        It = n(54492),
        Rt = n(60014),
        Lt = n(91291),
        Bt = n.n(Lt),
        Mt = n(99956);
      const xt = "capsule_index_";
      function Ot(e) {
        const {
            capsule: t,
            bShowParentApp: n,
            elElementToAppendToHover: r,
            index: o,
            navKey: l,
            bHideStoreHover: s,
            onlyOneDiscountPct: i,
            bPreferDemoStorePage: c,
          } = e,
          [d, m] = a.useState(!1),
          [p] = (0, $e.G6)(t.id, (0, St.SW)(t.type), pt.Xh),
          [_] = (0, $e.t7)(n && p?.GetParentAppID(), pt.Xh);
        if (!p) return null;
        const E = Boolean(_),
          g = a.createElement(Ut, {
            ...e,
            info: t,
            bIsHovered: d,
            bHasParentAppToDisplay: E,
            onlyOneDiscountPct: i,
          });
        return a.createElement(
          Et.Z,
          {
            className: (0, u.A)({
              [vt().OuterCapsuleContainer]: !0,
              [xt + o]: 0 == o,
            }),
            navEntryPreferPosition: gt.iU.PREFERRED_CHILD,
            navKey: l,
          },
          a.createElement(
            Dt.oj,
            { appid: p.GetAppID() },
            Boolean(s)
              ? a.createElement(
                  "div",
                  { onMouseEnter: () => m(!0), onMouseLeave: () => m(!1) },
                  g,
                )
              : a.createElement(
                  bt.Qf,
                  {
                    className: vt().CapsuleContainer,
                    item: t,
                    elElementToAppend: e.elElementToAppendToHover,
                    bShowDemoButton: e.bShowDemoButton,
                    bPreferDemoStorePage: e.bPreferDemoStorePage,
                    bShowDeckCompatibilityDialog:
                      e.bShowDeckCompatibilityDialog,
                    bHidePrice: e.bHidePrice,
                    bUseSubscriptionLayout: e.bUseSubscriptionLayout,
                    strExtraParams: e.strExtraParams,
                    nCreatorAccountID: e.creatorAccountID,
                  },
                  g,
                ),
            Boolean(r) && a.createElement("div", null, r),
          ),
          E &&
            a.createElement(Ft, {
              strExtraParams: e.strExtraParams,
              parentStoreItem: _,
              childAppType: p.GetAppType(),
              bPreferDemoStorePage: c,
            }),
        );
      }
      function Ft(e) {
        const {
            strExtraParams: t,
            parentStoreItem: n,
            childAppType: r,
            bPreferDemoStorePage: o,
          } = e,
          l = (0, Rt.n9)(),
          i = (0, _.Qn)();
        return a.createElement(
          _t.ml,
          { className: vt().CapsuleParentInfo, ...(0, yt.S)(n, l, i, o, t) },
          a.createElement(
            Dt.oj,
            { appid: n.GetAppID() },
            a.createElement(
              "div",
              { className: vt().ParentType },
              (0, s.we)(
                11 == r
                  ? "#SalePage_ParentApp_SoundTrack"
                  : "#SalePage_ParentApp_DLC",
              ),
            ),
            a.createElement(
              Tt.u,
              { type: "app", id: n.GetAppID(), strExtraParams: t },
              a.createElement("img", {
                loading: "lazy",
                className: ft.AppCapsuleImage,
                alt: n.GetName(),
                src: n.GetAssets().GetSmallCapsuleURL(),
                ...(0, pt.Jw)(),
              }),
            ),
          ),
        );
      }
      function Ut(e) {
        const {
            info: t,
            bHideStatusBanners: n,
            strExtraParams: r,
            index: o,
            imageType: l,
            bHasParentAppToDisplay: s,
            bIsHovered: i,
            strDoubleCapsuleMessage: c,
            bPreferDemoStorePage: d,
          } = e,
          [m] = (0, $e.G6)(t.id, (0, St.SW)(t.type), pt.Xh),
          p = (0, Rt.n9)(),
          _ = (0, a.useMemo)(() => m?.GetIncludedAppIDsOrSelf(), [m]);
        if (!m) return null;
        const E = (0, _e.NT)(
          (0, Ct.wJ)(`${m.GetStorePageURL(d)}${r ? `?${r}` : ""}`, p),
        );
        let g;
        "overrideNavigation" in t &&
          (g = (e) => (
            t.overrideNavigation(e), e.preventDefault(), e.stopPropagation(), !1
          ));
        const C = Boolean(c);
        return a.createElement(
          a.Fragment,
          null,
          a.createElement(
            _t.Ii,
            {
              href: g ? null : E,
              style: { display: "block", cursor: "pointer" },
              preferredFocus: s,
              onClick: g,
            },
            a.createElement(
              "div",
              { className: (0, u.A)({ [Bt().TwoWidthCtn]: C }) },
              a.createElement(
                "div",
                { className: (0, u.A)({ [Bt().TwoWidthCapsule]: C }) },
                a.createElement(Pt.V, { appids: _, hide_status_banners: n }),
                a.createElement(kt.aU, { imageType: l, info: t }),
                a.createElement(It.S, {
                  eDeckCompatibilityCategory:
                    m?.GetPlatforms()?.steam_deck_compat_category,
                }),
                Boolean(i) && a.createElement(wt.m, { appInfo: t }),
              ),
              C &&
                a.createElement(
                  "div",
                  { className: Bt().TwoWidthSideInfo },
                  a.createElement("div", { className: Bt().Reason }, c),
                  a.createElement(
                    "div",
                    { className: Bt().StoreSaleItemRelease },
                    a.createElement(
                      "span",
                      null,
                      m.GetFormattedSteamReleaseDate(),
                    ),
                  ),
                  a.createElement(Mt.n, {
                    bHideTitle: !0,
                    rgTagIDs: m.GetTagIDs(),
                    instanceNum: o,
                  }),
                ),
            ),
          ),
          a.createElement(Gt, { ...e }),
        );
      }
      function Gt(e) {
        const {
            info: t,
            bHidePriceIfOwned: n,
            bHideStatusBanners: r,
            bUseSubscriptionLayout: o,
            elElementToAppendToHover: l,
            bHidePrice: s,
            bHidePlatforms: i,
            creatorAccountID: c,
            bIsHovered: d,
            onlyOneDiscountPct: u,
            strDoubleCapsuleMessage: m,
          } = e,
          [p] = (0, $e.G6)(t.id, (0, St.SW)(t.type), pt.Xh),
          _ =
            p &&
            p?.GetIncludedAppIDsOrSelf().every((e) => ht.Fm.Get().BOwnsApp(e)),
          E = _ && !r;
        if (o && 0 == p?.GetStoreItemType())
          return a.createElement(Nt.E, { appid: p.GetAppID(), bIsMuted: d });
        if (l) return null;
        const g = _ && n,
          C = E;
        return a.createElement(kt.qn, {
          info: t,
          bShowAsMuted: C,
          bHidePrice: s,
          bShowInLibraryInsteadOfPrice: g,
          bHidePlatforms: i,
          creatorAccountID: c,
          bShowName: e.bShowName,
          onlyOneDiscountPct: u,
          bShowWishlistButton: Boolean(m),
        });
      }
      var Ht = n(56654),
        Wt = n(38135),
        Kt = n(62490),
        Vt = n(19042),
        $t = n.n(Vt);
      function zt(e) {
        const { rgCreatorHomes: t, groupvanityinfo: n } = e,
          [r, o] = (0, a.useState)(!0);
        return (
          (0, a.useEffect)(() => {
            if (n) {
              (async () => {
                await ot.ac.AddGroupVanities(n), o(!1);
              })();
            } else o(!1);
          }, [n]),
          r
            ? null
            : a.createElement(
                ct.tH,
                null,
                a.createElement(
                  "div",
                  { className: "instructions" },
                  a.createElement(
                    "h2",
                    null,
                    (0, s.we)("#Create_Home_Title"),
                    " ",
                    a.createElement(
                      "span",
                      { className: "small" },
                      a.createElement(
                        "a",
                        {
                          href: `${nt.TS.STORE_BASE_URL}news/group/4145017/view/4578559379959234050`,
                          target: "_blank",
                        },
                        (0, s.we)("#AssetRequest_General_SeeDocs"),
                      ),
                    ),
                  ),
                  a.createElement("hr", null),
                  Boolean(!t || 0 == t.length)
                    ? a.createElement(
                        "div",
                        { className: $t().PageSelect },
                        (0, s.oW)(
                          "#Create_Home_None",
                          a.createElement("a", {
                            href: `${nt.TS.PARTNER_BASE_URL}doc/store/creator_homepage`,
                            target: "_blank",
                          }),
                          a.createElement("a", {
                            href: `${nt.TS.PARTNER_BASE_URL}doc/store/franchise_pages`,
                            target: "_blank",
                          }),
                        ),
                      )
                    : a.createElement(Yt, { ...e, baseGameAppID: e.appid }),
                ),
                a.createElement("br", null),
                a.createElement("br", null),
              )
        );
      }
      function Yt(e) {
        const {
            rgCreatorHomes: t,
            oInputFeatured: n,
            creatorNames: r,
            baseGameAppID: o,
          } = e,
          [l, i] = (0, a.useState)(() => {
            if (n) return n;
            for (const e of r.rgFrachises) {
              const n = t.find((t) => t.linkname == e);
              if (n)
                return {
                  clan_account_id: new rt.b(n.clan_steamid).GetAccountID(),
                  sort_order: "salesrank",
                  featured_appids: void 0,
                };
            }
            return { clan_account_id: 0 };
          }),
          c = (0, a.useCallback)(
            (e, t) => {
              l.clan_account_id == tt.k_CreatorHomeAll
                ? i({
                    ...l,
                    featured_appids: [...(l.featured_appids || []), t],
                    featured_creator_clan_account_id: [
                      ...(l.featured_creator_clan_account_id || []),
                      e,
                    ],
                  })
                : i({
                    ...l,
                    featured_appids: [...(l.featured_appids || []), t],
                  });
            },
            [l],
          ),
          d = (0, a.useMemo)(() => {
            if (l.clan_account_id == tt.k_CreatorHomeAll) {
              const e = new Set();
              t.forEach((t) => e.add(new rt.b(t.clan_steamid).GetAccountID()));
              const n = new Array();
              return (
                e.forEach((e) => {
                  const t = ot.ac.GetClanInfoByClanAccountID(e);
                  n.push({
                    name: t?.group_name || "" + e,
                    key: "clanid" + e,
                    contents: a.createElement(
                      ct.tH,
                      null,
                      a.createElement(nn, {
                        creatorHomeClanAccountID: e,
                        fnAddAppToFeaturedAppList: c,
                        baseGameAppID: o,
                        rgFeaturedList: l.featured_appids,
                      }),
                    ),
                  });
                }),
                n
              );
            }
            return null;
          }, [o, c, l.clan_account_id, l.featured_appids, t]);
        return a.createElement(
          "div",
          null,
          a.createElement("div", null, (0, s.we)("#Create_Home_Desc")),
          a.createElement("br", null),
          a.createElement(
            "div",
            { className: ut.EventEditorTextTitle },
            (0, s.we)("#Create_Home_SelectedSource"),
          ),
          a.createElement(tn, {
            rgCreatorHomes: t,
            oFeatured: l,
            fnSetFeatured: i,
          }),
          a.createElement(
            "div",
            {
              style: { display: "flex", flexDirection: "column" },
              className: ut.EventDefaultRowContainer,
            },
            Boolean(l.clan_account_id)
              ? a.createElement(
                  a.Fragment,
                  null,
                  Boolean(l.clan_account_id > 0)
                    ? a.createElement(nn, {
                        creatorHomeClanAccountID: l.clan_account_id,
                        fnAddAppToFeaturedAppList: c,
                        baseGameAppID: o,
                        rgFeaturedList: l.featured_appids,
                      })
                    : a.createElement(Wt.V, { tabs: d }),
                )
              : a.createElement(
                  "span",
                  null,
                  (0, s.we)("#Create_Home_Selected_None"),
                ),
          ),
          a.createElement(
            "div",
            { className: $t().SelectedSource },
            Boolean(
              l.clan_account_id ||
                l.featured_creator_clan_account_id?.length > 0,
            ) &&
              a.createElement(
                a.Fragment,
                null,
                a.createElement(Qt, {
                  rgFeaturedList: l.featured_appids,
                  strFeaturedFirstAppToken: l.featured_first_app_token,
                  rgFeaturedClanList: l.featured_creator_clan_account_id,
                  fnSetFeatureAppAndClans: (e, t, n) => {
                    i({
                      ...l,
                      featured_appids: e,
                      featured_creator_clan_account_id: t,
                      featured_first_app_token: n,
                    });
                  },
                }),
                a.createElement(an, { oFeatured: l, fnSetFeatured: i }),
              ),
            a.createElement(Xt, { oFeatured: l }),
          ),
        );
      }
      function Xt(e) {
        const { oFeatured: t } = e,
          [n, r] = (0, a.useState)(() => t?.featured_appids?.length || 0);
        (0, a.useEffect)(() => {
          n < (t?.featured_appids?.length || 0) && r(t.featured_appids.length);
        }, [t, n]);
        const o = (function (e, t) {
            if (e >= t) return [];
            const n = [];
            for (let a = e; a < t; a++) n.push(a);
            return n;
          })(t?.featured_appids?.length || 0, n),
          l =
            !t?.featured_first_app_token ||
            "#Featured_App_None" == t?.featured_first_app_token;
        return a.createElement(
          a.Fragment,
          null,
          a.createElement("input", {
            type: "hidden",
            name: "app[featured_creator_home][clan_account_id]",
            value: t?.clan_account_id || 0,
          }),
          a.createElement("input", {
            type: "hidden",
            key: l ? "empty" : "feating",
            name: "app[featured_creator_home][featured_first_app_token]",
            value: l ? void 0 : t?.featured_first_app_token,
          }),
          Boolean(t?.clan_account_id)
            ? a.createElement(
                a.Fragment,
                null,
                a.createElement("input", {
                  type: "hidden",
                  name: "app[featured_creator_home][sort_order]",
                  value: t.sort_order || "salesrank",
                }),
                t.featured_appids?.map((e, n) =>
                  a.createElement(
                    a.Fragment,
                    { key: "app" + e },
                    a.createElement("input", {
                      type: "hidden",
                      name: `app[featured_creator_home][featured_appids][${n}]`,
                      value: e,
                    }),
                    a.createElement("input", {
                      type: "hidden",
                      name: `app[featured_creator_home][featured_creator_clan_account_id][${n}]`,
                      value: t.featured_creator_clan_account_id?.[n],
                    }),
                  ),
                ),
              )
            : a.createElement("input", {
                type: "hidden",
                name: "app[featured_creator_home][sort_order]",
                value: void 0,
              }),
          o.map((e) =>
            a.createElement(
              a.Fragment,
              { key: "nullinput" + e },
              a.createElement("input", {
                type: "hidden",
                name: `app[featured_creator_home][featured_appids][${e}]`,
                value: void 0,
              }),
              a.createElement("input", {
                type: "hidden",
                name: `app[featured_creator_home][featured_creator_clan_account_id][${e}]`,
                value: void 0,
              }),
            ),
          ),
        );
      }
      const qt = { include_assets: !0, include_release: !0 };
      function jt(e) {
        const {
            creatorHomeClanAccountID: t,
            rgFeaturedList: n,
            fnAddAppToFeaturedAppList: r,
            baseGameAppID: o,
          } = e,
          l = (0, st.a)(),
          [i, c] = (0, a.useState)(null),
          d = (0, lt.id)(l, t, !0),
          u = (0, $e.zX)(d, qt),
          m = (0, a.useMemo)(
            () =>
              1 != u && d
                ? d
                    .filter((e) => e != o)
                    .map((e) => {
                      const t = it.A.Get().GetApp(e);
                      return {
                        value: e,
                        label: `${t ? t.GetName() : ""} (Appid: ${e})`,
                      };
                    })
                : [],
            [d, u, o],
          );
        return d && 1 != u
          ? a.createElement(
              "div",
              { className: $t().ManualFeatures },
              a.createElement(
                "div",
                { className: "DialogLabel" },
                (0, s.we)("#Create_Home_ManuallyFeature"),
              ),
              a.createElement(
                "div",
                null,
                (0, s.we)("#Create_Home_Select_App_Desc"),
              ),
              a.createElement(
                "div",
                { className: $t().FeatureSelectItemCtn },
                a.createElement(at.Ay, {
                  className: "react-select-container",
                  classNamePrefix: "react-select",
                  isSearchable: !0,
                  isMulti: !1,
                  placeholder: (0, s.we)("#Create_Home_Select_App"),
                  options: m,
                  value: m.find((e) => e.value === i),
                  onChange: (e) => c(e.value),
                  controlShouldRenderValue: Boolean(i),
                }),
                a.createElement(
                  v.jn,
                  {
                    disabled: !i,
                    onClick: () => {
                      (n && -1 != n.findIndex((e) => e === i)) || r(t, i),
                        c(null);
                    },
                  },
                  (0, s.we)("#Create_Home_Add_App"),
                ),
              ),
            )
          : a.createElement(me.t, {
              size: "small",
              string: (0, s.we)("#Loading"),
            });
      }
      function Qt(e) {
        const {
          rgFeaturedList: t,
          rgFeaturedClanList: n,
          fnSetFeatureAppAndClans: r,
          strFeaturedFirstAppToken: o,
        } = e;
        return a.createElement(
          "div",
          { className: $t().ManualFeatures },
          a.createElement(
            "div",
            { className: "DialogLabel" },
            (0, s.we)("#Create_Home_App_Featured"),
          ),
          a.createElement(
            "div",
            {
              style: { display: "flex", flexDirection: "column" },
              className: ut.EventDefaultRowContainer,
            },
            a.createElement(
              "p",
              null,
              (0, s.we)("#Create_Home_App_Featured_Desc"),
            ),
            Boolean(!t || 0 == t.length)
              ? a.createElement(
                  "div",
                  null,
                  (0, s.we)("#Create_Home_No_Featured"),
                )
              : a.createElement(Ht.A, {
                  items: t || [],
                  render: (e, l) =>
                    a.createElement(Jt, {
                      appid: e,
                      key: "row" + e,
                      creatorClanID: n?.[l],
                      elEditor:
                        0 == l
                          ? a.createElement(Zt, {
                              strFeaturedFirstAppToken: o,
                              fnSetFeaturedFirstAppToken: (e) => r(t, n, e),
                            })
                          : void 0,
                    }),
                  onDelete: (e) => {
                    const a = [...t];
                    let l;
                    a.splice(e, 1),
                      n && ((l = [...n]), l.splice(e, 1)),
                      r(a, l, o);
                  },
                  onMove: (e, a) => {
                    const l = [...t];
                    let s;
                    (0, Kt.yY)(l, e, a),
                      n && ((s = [...n]), (0, Kt.yY)(s, e, a)),
                      r(l, s, o);
                  },
                }),
          ),
        );
      }
      function Zt(e) {
        const { strFeaturedFirstAppToken: t, fnSetFeaturedFirstAppToken: n } =
            e,
          r = (0, a.useMemo)(() => {
            const e = new Array();
            return (
              e.push({ label: (0, s.we)("#Featured_App_None"), data: null }),
              e.push({
                label: (0, s.we)("#Featured_App_Reason_Next"),
                data: "#Featured_App_Reason_Next",
              }),
              e.push({
                label: (0, s.we)("#Featured_App_Reason_Franchise"),
                data: "#Featured_App_Reason_Franchise",
              }),
              e.push({
                label: (0, s.we)("#Featured_App_Reason_Similar"),
                data: "#Featured_App_Reason_Similar",
              }),
              e.push({
                label: (0, s.we)("#Featured_App_Reason_Upcoming"),
                data: "#Featured_App_Reason_Upcoming",
              }),
              e.push({
                label: (0, s.we)("#Featured_App_Reason_YouMight"),
                data: "#Featured_App_Reason_YouMight",
              }),
              e.push({
                label: (0, s.we)("#Featured_App_Reason_LatestEdition"),
                data: "#Featured_App_Reason_LatestEdition",
              }),
              e
            );
          }, []);
        return a.createElement(
          "div",
          { className: $t().PageSelect },
          a.createElement(v.m, {
            label: (0, s.we)("#Featured_App_Name"),
            tooltip: (0, s.we)("#Featured_App_Tooltip"),
            rgOptions: r,
            selectedOption: t || null,
            onChange: (e) => {
              n(e.data);
            },
          }),
        );
      }
      function Jt(e) {
        const { appid: t, elEditor: n, creatorClanID: r } = e,
          [o] = (0, $e.t7)(t, qt),
          l = (0, a.useMemo)(() => ({ id: t, type: "game" }), [t]),
          i = (0, a.useMemo)(() => en(r), [r]);
        return a.createElement(
          "div",
          { className: $t().AppRowCtn },
          Boolean(o)
            ? a.createElement(
                "div",
                { className: $t().CapsuleCtn },
                a.createElement(Ot, {
                  capsule: l,
                  imageType: "header",
                  bShowParentApp: !1,
                  bHideStoreHover: !0,
                }),
              )
            : a.createElement(
                "div",
                { className: $t().MissingCapsuleCtn },
                a.createElement(
                  "div",
                  null,
                  (0, s.we)("#Create_Home_Missing_Capsule"),
                ),
                a.createElement("div", null, "appid: (", t, ")"),
              ),
          Boolean(i) &&
            a.createElement(
              "div",
              { className: $t().CreatorHomeCtn },
              a.createElement(
                "div",
                { className: "DialogLabel" },
                (0, s.we)("#Create_Home_App_FeaturedSource"),
              ),
              a.createElement(dt.hA, {
                creatorID: i,
                bShowTagline: !1,
                bHideCreatorType: !0,
                bSmallFormat: !0,
                bHideFollowButton: !0,
              }),
            ),
          n,
        );
      }
      function en(e) {
        if (!e) return null;
        const t = ot.ac.GetClanInfoByClanAccountID(e);
        return {
          name: t?.group_name || `(${e})`,
          clan_account_id: e,
          type: "developer",
        };
      }
      function tn(e) {
        const { rgCreatorHomes: t, oFeatured: n, fnSetFeatured: r } = e,
          o = (0, a.useMemo)(() => {
            const e = new Set();
            t.forEach((t) => e.add(new rt.b(t.clan_steamid).GetAccountID()));
            const n = new Array();
            return (
              n.push({
                label: (0, s.we)("#Create_Home_None_Selected"),
                data: tt.k_CreatorHomeNone,
                tooltip: (0, s.we)("#Create_Home_None_Selected_ttip"),
              }),
              e.forEach((e) => {
                const t = ot.ac.GetClanInfoByClanAccountID(e);
                n.push({ label: t?.group_name || `(${e})`, data: e });
              }),
              n.length > 2 &&
                n.push({
                  label: (0, s.we)("#Create_Home_All_Creators") + " (?)",
                  data: tt.k_CreatorHomeAll,
                  tooltip: (0, s.we)("#Create_Home_All_Creators_ttip"),
                }),
              n
            );
          }, [t]);
        return a.createElement(
          "div",
          { className: $t().PageSelect },
          a.createElement(v.m, {
            rgOptions: o,
            selectedOption: n?.clan_account_id || 0,
            onChange: (e) => {
              e.data != n?.clan_account_id &&
                r({
                  clan_account_id: e.data,
                  featured_appids: void 0,
                  featured_creator_clan_account_id: void 0,
                  sort_order: "salesrank",
                });
            },
          }),
        );
      }
      function nn(e) {
        const { creatorHomeClanAccountID: t } = e,
          [n, r] = (0, a.useState)(() => en(t));
        return (
          (0, a.useEffect)(() => {
            n?.clan_account_id != t && r(en(t));
          }, [t, n?.clan_account_id]),
          a.createElement(
            "div",
            { className: $t().SelectedSource },
            a.createElement(dt.hA, {
              creatorID: n,
              bShowTagline: !0,
              bHideCreatorType: !0,
              bSmallFormat: !0,
              bHideFollowButton: !0,
            }),
            a.createElement("br", null),
            a.createElement(jt, { ...e }),
          )
        );
      }
      function an(e) {
        const { oFeatured: t, fnSetFeatured: n } = e;
        return a.createElement(
          v.G5,
          null,
          a.createElement("br", null),
          a.createElement(
            "div",
            { className: "DialogLabel" },
            (0, s.we)("#Create_Home_SortBy"),
          ),
          a.createElement(
            "div",
            {
              style: { display: "flex", flexDirection: "column" },
              className: ut.EventDefaultRowContainer,
            },
            a.createElement("p", null, (0, s.we)("#Create_Home_SortBy_Desc")),
            a.createElement(
              "div",
              { className: $t().SortOptionsCtn },
              a.createElement(v.Od, {
                checked: "salesrank" == t.sort_order,
                controlled: !0,
                onChange: (e) => e && n({ ...t, sort_order: "salesrank" }),
                label: (0, s.we)("#Create_Home_SortBy_Sales"),
                tooltip: (0, s.we)("#Create_Home_SortBy_Sales_ttip"),
              }),
              a.createElement(v.Od, {
                checked: "releasedate" == t.sort_order,
                controlled: !0,
                onChange: (e) => e && n({ ...t, sort_order: "releasedate" }),
                label: (0, s.we)("#Create_Home_SortBy_Release"),
                tooltip: (0, s.we)("#Create_Home_SortBy_Release_ttip"),
              }),
              a.createElement(v.Od, {
                checked: "tags" == t.sort_order,
                controlled: !0,
                onChange: (e) => e && n({ ...t, sort_order: "tags" }),
                label: (0, s.we)("#Create_Home_SortBy_Tag"),
                tooltip: (0, s.we)("#Create_Home_SortBy_Tag_ttip"),
              }),
            ),
          ),
        );
      }
      var rn = n(69515),
        on = n(24484);
      var ln = n(81393);
      function sn(e) {
        const { rgDLCSettings: t, parentAppID: n, dlcAppID: r } = e,
          [o, l] = (0, a.useState)(() => t);
        return a.createElement(
          a.Fragment,
          null,
          a.createElement("h2", null, (0, s.we)("#DLC_Dependency_Title")),
          a.createElement("hr", null),
          a.createElement("p", null, (0, s.we)("#DLC_Dependency_Desc")),
          a.createElement(_n, {
            parentAppID: n,
            dlcAppID: r,
            fnSelectedDLCAppID: (e) => {
              -1 == o.findIndex((t) => t.dlc_appid == e) &&
                l([...o, { dlc_appid: e, config: "dlc_required" }]);
            },
          }),
          a.createElement(un, { rgDLCInfo: o, fnSetDLCInfo: l }),
          a.createElement(cn, { rgDLCInfo: o }),
        );
      }
      function cn(e) {
        const { rgDLCInfo: t } = e,
          [n, r] = (0, a.useState)(() => t?.length || 0);
        (0, a.useEffect)(() => {
          t?.length > n && r(t.length);
        }, [n, t]);
        const o = (0, a.useMemo)(() => {
          const e = new Array();
          for (let r = t.length || 0; r < n; ++r)
            e.push(
              a.createElement("input", {
                key: "dependancy_del" + r,
                type: "hidden",
                name: `app[dlc_dependency][${r}]`,
                value: void 0,
              }),
            );
          return e;
        }, [n, t]);
        return a.createElement(
          a.Fragment,
          null,
          t?.map((e, t) =>
            a.createElement(
              "div",
              { key: "dependency_input" + e.dlc_appid + "_" + t },
              a.createElement("input", {
                type: "hidden",
                name: `app[dlc_dependency][${t}][dlc_appid]`,
                value: e.dlc_appid,
              }),
              a.createElement("input", {
                type: "hidden",
                name: `app[dlc_dependency][${t}][config]`,
                value: e.config,
              }),
            ),
          ),
          o,
        );
      }
      const dn = { include_assets: !0, include_release: !0 };
      function un(e) {
        const { rgDLCInfo: t, fnSetDLCInfo: n } = e;
        return a.createElement(Ht.A, {
          items: t,
          render: (e, r) =>
            a.createElement(pn, {
              dependency: e,
              key: "row" + e.dlc_appid,
              index: r,
              fnSetDLCInfo: (e) => {
                const a = [...t];
                (0, ln.w)(
                  a[r].dlc_appid == e.dlc_appid,
                  "AppID don't match, what gives",
                ),
                  console.log(),
                  (a[r].config = e.config),
                  n(a);
              },
            }),
          onDelete: (e) => {
            const a = [...t];
            a.splice(e, 1), n(a);
          },
          onReorder: (e) => n([...e]),
        });
      }
      const mn = [
        {
          label: (0, s.we)("#DLC_Dependency_Require"),
          tooltip: (0, s.we)("#DLC_Dependency_Require_ttip"),
          data: "dlc_required",
        },
        {
          label: (0, s.we)("#DLC_Dependency_Recommended"),
          tooltip: (0, s.we)("#DLC_Dependency_Recommended_ttip"),
          data: "dlc_recommended",
        },
      ];
      function pn(e) {
        const { dependency: t, fnSetDLCInfo: n } = e;
        return a.createElement(Jt, {
          appid: t.dlc_appid,
          elEditor: a.createElement(
            "div",
            { className: rn.RelationshipType },
            a.createElement(v.m, {
              label: (0, s.we)("#DLC_Dependency_Relationship"),
              rgOptions: mn,
              selectedOption: t.config,
              onChange: (e) => {
                if (t.config != e.data) {
                  const a = { ...t };
                  (a.config = e.data), n(a);
                }
              },
            }),
          ),
        });
      }
      function _n(e) {
        const { parentAppID: t, fnSelectedDLCAppID: n, dlcAppID: r } = e,
          [o, l] = (0, a.useState)(null),
          i = (function (e) {
            const { data: t, isLoading: n } = (0, de.I)({
              queryKey: ["useAppDLCListPartnerSite", e],
              queryFn: async () => {
                const t = `${nt.TS.PARTNER_BASE_URL}apps/ajaxgetdlc`,
                  n = { appid: e, sessionid: (0, on.KC)() },
                  a = await ie().get(t, { params: n });
                if (1 != a?.data?.success)
                  throw (
                    "Fail to load DLC list for appid " +
                    e +
                    " with error: " +
                    a?.data?.message
                  );
                return a.data.dlcids || [];
              },
              enabled: Boolean(e),
            });
            return n ? null : t;
          })(t),
          c = (0, $e.zX)(i, dn),
          d = (0, a.useMemo)(
            () =>
              1 != c && i
                ? i
                    .filter((e) => e != r)
                    .map((e) => {
                      const t = it.A.Get().GetApp(e);
                      return {
                        value: e,
                        label: `${t ? t.GetName() : ""} (Appid: ${e})`,
                      };
                    })
                : [],
            [c, i, r],
          );
        return i && 1 != c
          ? a.createElement(
              "div",
              { className: rn.SelectorRow },
              a.createElement(at.Ay, {
                className: "react-select-container",
                classNamePrefix: "react-select",
                isSearchable: !0,
                isMulti: !1,
                placeholder: (0, s.we)("#Create_Home_Select_App"),
                options: d,
                value: d.find((e) => e.value === o),
                onChange: (e) => l(e.value),
              }),
              a.createElement(
                v.$n,
                {
                  disabled: !o,
                  onClick: () => {
                    n(o), l(void 0);
                  },
                },
                (0, s.we)("#DLC_Dependency_Select"),
              ),
            )
          : a.createElement(me.t, {
              size: "small",
              string: (0, s.we)("#Loading"),
            });
      }
      var En,
        gn = n(71714),
        Cn = n(738),
        hn = n(56011),
        Sn = n(90710);
      function fn(e) {
        const { rgDLC: t, parentappid: n } = e,
          [r, o] = a.useState(t ? [...t] : []),
          [l, i] = a.useState([]);
        a.useEffect(() => {
          o(e?.rgDLC ? [...e.rgDLC] : []);
        }, [e]);
        a.useEffect(() => {
          const e = Array();
          let n = 0;
          for (
            r.forEach((t) => {
              t.bDeleted ||
                (e.push(
                  a.createElement("input", {
                    type: "hidden",
                    name: `app[related_items][dlc][${n}][appid]`,
                    value: t.appid,
                  }),
                ),
                e.push(
                  a.createElement("input", {
                    type: "hidden",
                    name: `app[related_items][dlc][${n}][itemid]`,
                    value: t.itemid,
                  }),
                ),
                e.push(
                  a.createElement("input", {
                    type: "hidden",
                    name: `app[related_items][dlc][${n}][highlight]`,
                    value: 0 == n && t.highlight ? t.highlight : "",
                  }),
                ),
                e.push(
                  a.createElement("input", {
                    type: "hidden",
                    name: `app[related_items][dlc][${n}][highlight_reason]`,
                    value:
                      0 == n && t.highlight_reason ? t.highlight_reason : "",
                  }),
                ),
                n++);
            });
            n < t.length;
          ) {
            let t = a.createElement("input", {
              type: "hidden",
              name: `app[related_items][dlc][${n}]`,
              value: "",
            });
            e.push(t), n++;
          }
          i(e);
        }, [t.length, r]);
        const c = (e, t) => {
            const n = [...r];
            (n[e].highlight = t.highlight),
              (n[e].highlight_reason = t.highlight_reason),
              o(n);
          },
          d = a.createElement(
            v.$n,
            {
              className: gn.AddDLCButton,
              onClick: (e) =>
                (0, Cn.pg)(
                  a.createElement(bn, {
                    rgDLCItems: r,
                    parentAppID: n,
                    onSelected: (e, t, n, a) => {
                      const l = { itemid: "" + t, appid: "" + e, name: n },
                        s = a ? [l, ...r] : [...r, l];
                      o(s);
                    },
                  }),
                  (0, hn.uX)(e),
                ),
            },
            (0, s.we)("#StoreAdmin_Add_DLC") + "...",
          );
        return a.createElement(
          a.Fragment,
          null,
          d,
          a.createElement(Ht.A, {
            items: r,
            onDelete: (e) =>
              ((e) => {
                const t = [...r];
                (t[e].bDeleted = !0), o(t);
              })(e),
            onMove: (e, t) =>
              ((e, t) => {
                if (isNaN(e) || isNaN(t)) return;
                const n = [...r];
                n.splice(t, 0, n.splice(e, 1)[0]), o(n);
              })(e, t),
            render: (e, t) =>
              a.createElement(kn, {
                key: e?.itemid ?? e?.appid,
                item: e,
                index: t,
                fnUpdateHighlight: c,
              }),
          }),
          ...l,
        );
      }
      function bn(e) {
        const {
            closeModal: t,
            rgDLCItems: n,
            onSelected: r,
            parentAppID: o,
          } = e,
          [l, i] = a.useState(null),
          [c] = (0, $e.G6)(l?.appid, 0, {
            include_basic_info: !0,
            include_assets: !0,
          }),
          d = a.useCallback(
            (e) => {
              r(l?.appid, l?.itemid, c?.GetName(), e);
            },
            [l, r, c],
          );
        return a.createElement(
          w.eV,
          { closeModal: t, className: gn.AddDLCDialog },
          a.createElement(v.Y9, null, (0, s.we)("#StoreAdmin_Add_DLC")),
          a.createElement(
            v.nB,
            null,
            a.createElement(
              "div",
              { className: gn.AppSelectCtn },
              a.createElement(
                "div",
                null,
                (0, s.we)("#StoreAdmin_Add_DLC_Desc"),
              ),
              a.createElement(Sn.h, {
                fnSetItemID: (e, t) => {
                  i({ appid: e, itemid: t });
                },
                itemType: 0,
                fnFilterID: (e) =>
                  -1 == n.findIndex((t) => parseInt(t.appid) == e),
                bIncludeRetired: !1,
                bOnlyDLC: !0,
                rgParentAppIDs: [o],
                bRunQueryOnLoad: !0,
              }),
              Boolean(l?.appid) &&
                a.createElement(
                  "div",
                  { className: gn.DLCDisplayContainer },
                  a.createElement(
                    "div",
                    null,
                    c?.GetName()
                      ? c.GetName() + " (" + c.GetID() + ")"
                      : l.appid,
                  ),
                  a.createElement("img", {
                    src:
                      c?.GetAssets().GetSmallCapsuleURL() ||
                      c?.GetAssets().GetHeaderURL(),
                  }),
                ),
            ),
          ),
          a.createElement(
            v.wi,
            { className: gn.AddDLCFooter },
            a.createElement(
              v.jn,
              {
                disabled: !l,
                onClick: () => {
                  d(!0), t && t();
                },
              },
              (0, s.we)("#StoreAdmin_Add_To_Top"),
            ),
            a.createElement(
              v.$n,
              {
                disabled: !l,
                onClick: () => {
                  d(!1), t && t();
                },
              },
              (0, s.we)("#StoreAdmin_Add_To_Bottom"),
            ),
            a.createElement(
              v.$n,
              {
                onClick: () => {
                  t && t();
                },
              },
              (0, s.we)("#Button_Cancel"),
            ),
          ),
        );
      }
      function kn(e) {
        const { item: t, index: n, fnUpdateHighlight: r } = e,
          o = !t.bRetired && !t.bUnlisted,
          l = 0 == n && o,
          i = a.useMemo(
            () => [
              {
                label: (0, s.we)("#StoreAdmin_Highlight_NoneSelected"),
                data: "",
              },
              { label: (0, s.we)("#StoreAdmin_Highlight_New"), data: En.New },
              {
                label: (0, s.we)("#StoreAdmin_Highlight_ComingSoon"),
                data: En.ComingSoon,
              },
              {
                label: (0, s.we)("#StoreAdmin_Highlight_PlayerFavorite"),
                data: En.PlayerFavorite,
              },
              {
                label: (0, s.we)("#StoreAdmin_Highlight_Recommended"),
                data: En.Recommended,
              },
              {
                label: (0, s.we)("#StoreAdmin_Highlight_NewPlayer"),
                data: En.NewPlayers,
              },
            ],
            [],
          );
        if (!t) return null;
        const c = (0, u.A)(
          gn.DLCItem,
          t.bDeleted && gn.DLCItemDeleted,
          !o && gn.DLCItemNotHighlightEligible,
        );
        return a.createElement(
          "div",
          { className: c },
          a.createElement(
            "a",
            { href: _.TS.PARTNER_BASE_URL + "apps/landing/" + t.appid },
            t.name || t.appid,
          ),
          t.bRetired &&
            a.createElement(
              "span",
              { className: gn.LabelNotHighlightEligible },
              "(",
              (0, s.we)("#StoreAdmin_Retired"),
              ")",
            ),
          !t.bRetired &&
            t.bUnlisted &&
            a.createElement(
              "span",
              { className: gn.LabelNotHighlightEligible },
              "(",
              (0, s.we)("#StoreAdmin_Unlisted"),
              ")",
            ),
          l &&
            a.createElement(
              a.Fragment,
              null,
              a.createElement(v.Yh, {
                className: gn.Highlight,
                checked: t.highlight,
                onClick: () => {
                  (t.highlight = !t.highlight), r(n, t);
                },
                label: (0, s.we)("#StoreAdmin_Highlight_Checkbox"),
              }),
              t.highlight &&
                a.createElement(
                  a.Fragment,
                  null,
                  a.createElement(
                    "div",
                    { className: gn.HighlightDropDownLabel },
                    (0, s.we)("#StoreAdmin_Highlight_Reason"),
                  ),
                  a.createElement(
                    "div",
                    { className: gn.HighlightDropDown },
                    a.createElement(v.ZU, {
                      rgOptions: i,
                      onChange: (e) => {
                        (t.highlight_reason = e.data), r(n, t);
                      },
                      selectedOption: t.highlight_reason
                        ? parseInt("" + t.highlight_reason)
                        : "",
                    }),
                  ),
                ),
            ),
        );
      }
      !(function (e) {
        (e[(e.New = 1)] = "New"),
          (e[(e.ComingSoon = 2)] = "ComingSoon"),
          (e[(e.PlayerFavorite = 3)] = "PlayerFavorite"),
          (e[(e.Recommended = 4)] = "Recommended"),
          (e[(e.NewPlayers = 5)] = "NewPlayers");
      })(En || (En = {}));
      var An = n(30935);
      function vn(e) {
        const { rgPinnedBundles: t, rgEnabledBundles: n } = e,
          [r, o] = (0, a.useState)(t),
          l = n.filter(
            (e) => -1 === r.findIndex((t) => t.bundleid === e.bundleid),
          );
        return a.createElement(
          a.Fragment,
          null,
          a.createElement(Pn, {
            pinnedBundles: r,
            unpinnedBundles: l,
            setPinnedBundles: o,
          }),
          a.createElement(wn, {
            pinnedBundles: r,
            nInitialPinnedBundles: t.length,
          }),
        );
      }
      function wn(e) {
        const { pinnedBundles: t, nInitialPinnedBundles: n } = e;
        let r = 0,
          o = [];
        for (; r < Math.max(n, t.length); ) {
          if (r < t.length) {
            const e = t[r];
            o.push({ index: r, value: e.bundleid });
          } else o.push({ index: r, value: "" });
          r++;
        }
        return a.createElement(
          "div",
          { className: An.PinnedBundlesHiddenInputs },
          o.map((e) =>
            a.createElement("input", {
              key: e.index,
              type: "hidden",
              name: `app[pinned_bundles][${e.index}]`,
              value: e.value,
            }),
          ),
        );
      }
      function Pn(e) {
        const { pinnedBundles: t, unpinnedBundles: n, setPinnedBundles: r } = e;
        return a.createElement(
          "div",
          { className: An.PinnedBundlesEditor },
          a.createElement(yn, {
            unpinnedBundles: n,
            onChange: (e) => {
              const a = n.find((t) => t.bundleid === e.value);
              if (void 0 === a) return;
              const o = t.concat([a]);
              r(o);
            },
          }),
          a.createElement(Dn, {
            pinnedBundles: t,
            onDelete: (e) => {
              const n = [...t];
              n.splice(e, 1), r(n);
            },
            onMove: (e, n) => {
              const a = new Array(...t),
                [o] = a.splice(e, 1);
              a.splice(n, 0, o), r(a);
            },
          }),
        );
      }
      function yn(e) {
        const { unpinnedBundles: t, onChange: n } = e,
          r = t.map((e) => ({ value: e.bundleid, label: e.name }));
        return a.createElement(at.Ay, {
          className: "react-select-container",
          classNamePrefix: "react-select",
          isSearchable: !0,
          isMulti: !1,
          placeholder: (0, s.we)("#PinnedBundles_Placeholder"),
          options: r,
          onChange: n,
          controlShouldRenderValue: !1,
        });
      }
      function Dn(e) {
        const { pinnedBundles: t, onDelete: n, onMove: r } = e;
        if (0 === t.length)
          return a.createElement(
            "div",
            { className: An.EmptyPinnedBundleList },
            (0, s.we)("#PinnedBundles_NoPinnedBundles"),
          );
        return a.createElement(Ht.A, {
          items: t,
          onDelete: n,
          onMove: r,
          render: (e, t) =>
            a.createElement(
              "div",
              { className: An.PinnedBundleRow },
              a.createElement(
                "a",
                { href: `${_.TS.PARTNER_BASE_URL}bundles/view/${e.bundleid}` },
                e.name,
                " (",
                e.bundleid,
                ")",
              ),
            ),
        });
      }
      var Nn = n(11577);
      function Tn() {
        const [e, t] = (0, a.useState)(() =>
          (function () {
            const e = new Map();
            return (
              (0, on.Tc)("current_prices", "application_config").forEach(
                (t) => {
                  e.set(t.packageid, t);
                },
              ),
              e
            );
          })(),
        );
        return e;
      }
      var In,
        Rn = n(34629),
        Ln = n(30470),
        Bn = n(73745),
        Mn = n(68797);
      class xn {
        m_rgMapProposal = new Map();
        m_nTotalItems = 0;
        m_proposalAddRemoveCallback = new Ke.lu();
        GetProposals() {
          return Array.from(this.m_rgMapProposal.values());
        }
        GetProposalListChange() {
          return this.m_proposalAddRemoveCallback;
        }
        async LoadMoreProposal() {
          return (
            this.m_proposalAddRemoveCallback.Dispatch(this.GetProposals()), !1
          );
        }
        async RejectProposal(e, t, n) {
          let a = null;
          try {
            const r = new FormData();
            r.append("sessionid", Ln.TS.SESSIONID),
              r.append("packageid", "" + e),
              r.append("json", "1"),
              r.append("reason_code", t.join(",") || ""),
              r.append("email_message", n);
            const o = `${Ln.TS.PARTNER_BASE_URL}packages/rejectpricing`,
              l = await ie().post(o, r, { withCredentials: !0 });
            if (200 == l.status && 1 == l.data?.success)
              return (
                console.log(`Proposal for package ${e} successfully rejected`),
                this.m_rgMapProposal.delete(e),
                this.m_proposalAddRemoveCallback.Dispatch(this.GetProposals()),
                !0
              );
            a = (0, Mn.H)(l);
          } catch (e) {
            a = (0, Mn.H)(e);
          }
          return (
            console.error(
              "CPriceProposalReviewRequiredStore::RejectProposal failed with " +
                a.strErrorMsg,
              a,
            ),
            !1
          );
        }
        async AcceptProposal(e, t, n, a) {
          let r = null;
          try {
            const o = new FormData();
            o.append("sessionid", Ln.TS.SESSIONID),
              o.append("packageid", "" + e),
              o.append("json", "1"),
              o.append("proposalkey", "" + n),
              o.append("partner_will_publish", t ? "1" : "0"),
              o.append("force", a ? "1" : "0");
            const l = `${Ln.TS.PARTNER_BASE_URL}packages/approvepricing`,
              s = await ie().post(l, o, { withCredentials: !0 });
            if (200 == s.status && 1 == s.data?.success)
              return (
                console.log(
                  `Proposal for package ${e} successfully accepted`,
                  s.data.output,
                ),
                this.m_rgMapProposal.delete(e),
                this.m_proposalAddRemoveCallback.Dispatch(this.GetProposals()),
                null
              );
            if (((r = (0, Mn.H)(s)), s?.data?.output))
              return (
                console.log(
                  "CPriceProposalReviewRequiredStore::AcceptProposal message information:",
                  s.data.output,
                  r.strErrorMsg,
                ),
                s.data.output
              );
          } catch (e) {
            r = (0, Mn.H)(e);
          }
          return (
            console.error(
              "CPriceProposalReviewRequiredStore::AcceptProposal failed with " +
                r.strErrorMsg,
              r,
            ),
            "generic failure"
          );
        }
        static s_Singleton;
        static Get() {
          return (
            xn.s_Singleton ||
              ((xn.s_Singleton = new xn()),
              "dev" == Ln.TS.WEB_UNIVERSE &&
                (window.g_PriceProposalReviewRequiredStore = xn.s_Singleton)),
            xn.s_Singleton
          );
        }
        constructor() {
          const e = (0, on.Tc)("proposed_prices", "application_config");
          this.ValidateInputDefault(e) &&
            e.forEach((e) => this.m_rgMapProposal.set(e.packageid, e)),
            (this.m_nTotalItems = (0, on.Tc)(
              "total_proposed_prices",
              "application_config",
            ));
        }
        ValidateInputDefault(e) {
          const t = e;
          return t && Array.isArray(t) && t.length > 0 && t[0].packageid > 0;
        }
      }
      function On() {
        return {
          fnLoadMoreProposal: xn.Get().LoadMoreProposal,
          fnRejectProposal: xn.Get().RejectProposal,
          fnAcceptProposal: xn.Get().AcceptProposal,
        };
      }
      function Fn(e) {
        switch (e) {
          case In.k_ECurrencyCodeGBP:
            return "GBP";
          case In.k_ECurrencyCodeEUR:
            return "EUR";
          case In.k_ECurrencyCodeCHF:
            return "CHF";
          case In.k_ECurrencyCodeRUB:
            return "RUB";
          case In.k_ECurrencyCodePLN:
            return "PLN";
          case In.k_ECurrencyCodeBRL:
            return "BRL";
          case In.k_ECurrencyCodeJPY:
            return "JPY";
          case In.k_ECurrencyCodeNOK:
            return "NOK";
          case In.k_ECurrencyCodeIDR:
            return "IDR";
          case In.k_ECurrencyCodeMYR:
            return "MYR";
          case In.k_ECurrencyCodePHP:
            return "PHP";
          case In.k_ECurrencyCodeSGD:
            return "SGD";
          case In.k_ECurrencyCodeTHB:
            return "THB";
          case In.k_ECurrencyCodeVND:
            return "VND";
          case In.k_ECurrencyCodeKRW:
            return "KRW";
          case In.k_ECurrencyCodeTRY:
            return "TRY";
          case In.k_ECurrencyCodeUAH:
            return "UAH";
          case In.k_ECurrencyCodeMXN:
            return "MXN";
          case In.k_ECurrencyCodeCAD:
            return "CAD";
          case In.k_ECurrencyCodeAUD:
            return "AUD";
          case In.k_ECurrencyCodeNZD:
            return "NZD";
          case In.k_ECurrencyCodeCNY:
            return "CNY";
          case In.k_ECurrencyCodeINR:
            return "INR";
          case In.k_ECurrencyCodeCLP:
            return "CLP";
          case In.k_ECurrencyCodePEN:
            return "PEN";
          case In.k_ECurrencyCodeCOP:
            return "COP";
          case In.k_ECurrencyCodeZAR:
            return "ZAR";
          case In.k_ECurrencyCodeHKD:
            return "HKD";
          case In.k_ECurrencyCodeTWD:
            return "TWD";
          case In.k_ECurrencyCodeSAR:
            return "SAR";
          case In.k_ECurrencyCodeAED:
            return "AED";
          case In.k_ECurrencyCodeSEK:
            return "SEK";
          case In.k_ECurrencyCodeARS:
            return "ARS";
          case In.k_ECurrencyCodeILS:
            return "ILS";
          case In.k_ECurrencyCodeBYN:
            return "BYN";
          case In.k_ECurrencyCodeKZT:
            return "KZT";
          case In.k_ECurrencyCodeKWD:
            return "KWD";
          case In.k_ECurrencyCodeQAR:
            return "QAR";
          case In.k_ECurrencyCodeCRC:
            return "CRC";
          case In.k_ECurrencyCodeUYU:
            return "UYU";
          case In.k_ECurrencyCodeBGN:
            return "BGN";
          case In.k_ECurrencyCodeHRK:
            return "HRK";
          case In.k_ECurrencyCodeCZK:
            return "CZK";
          case In.k_ECurrencyCodeDKK:
            return "DKK";
          case In.k_ECurrencyCodeHUF:
            return "HUF";
          case In.k_ECurrencyCodeRON:
            return "RON";
          default:
            return "USD";
        }
      }
      function Un(e) {
        switch (e) {
          case In.k_ECurrencyCodeUSD:
            return "US Dollar";
          case In.k_ECurrencyCodeGBP:
            return "GB Pounds";
          case In.k_ECurrencyCodeEUR:
            return "Euros";
          case In.k_ECurrencyCodeCHF:
            return "Swiss Francs";
          case In.k_ECurrencyCodeRUB:
            return "Russian Rubles";
          case In.k_ECurrencyCodePLN:
            return "Polish zloty";
          case In.k_ECurrencyCodeBRL:
            return "Brazilian Reals";
          case In.k_ECurrencyCodeJPY:
            return "Japanese Yen";
          case In.k_ECurrencyCodeNOK:
            return "Norwegian Krone";
          case In.k_ECurrencyCodeIDR:
            return "Indonesian Rupiah";
          case In.k_ECurrencyCodeMYR:
            return "Malaysian Ringgit";
          case In.k_ECurrencyCodePHP:
            return "Philippine Peso";
          case In.k_ECurrencyCodeSGD:
            return "Singapore Dollar";
          case In.k_ECurrencyCodeTHB:
            return "Thai Baht";
          case In.k_ECurrencyCodeVND:
            return "Vietnamese Dong";
          case In.k_ECurrencyCodeKRW:
            return "Korean Won";
          case In.k_ECurrencyCodeTRY:
            return "Turkish Lira";
          case In.k_ECurrencyCodeUAH:
            return "Ukrainian Hryvnia";
          case In.k_ECurrencyCodeMXN:
            return "Mexican Peso";
          case In.k_ECurrencyCodeCAD:
            return "Canadian Dollar";
          case In.k_ECurrencyCodeAUD:
            return "Australian Dollar";
          case In.k_ECurrencyCodeNZD:
            return "New Zealand Dollar";
          case In.k_ECurrencyCodeCNY:
            return "Chinese Yuan";
          case In.k_ECurrencyCodeINR:
            return "Indian Rupee";
          case In.k_ECurrencyCodeCLP:
            return "Chilean Peso";
          case In.k_ECurrencyCodePEN:
            return "Peruvian Sol";
          case In.k_ECurrencyCodeCOP:
            return "Colombian Peso";
          case In.k_ECurrencyCodeZAR:
            return "South African Rand";
          case In.k_ECurrencyCodeHKD:
            return "Hong Kong Dollar";
          case In.k_ECurrencyCodeTWD:
            return "Taiwanese Dollar";
          case In.k_ECurrencyCodeSAR:
            return "Saudi Arabian Riyal";
          case In.k_ECurrencyCodeAED:
            return "Emirati Dirham";
          case In.k_ECurrencyCodeSEK:
            return "Swedish Krona";
          case In.k_ECurrencyCodeARS:
            return "Argentine Peso";
          case In.k_ECurrencyCodeILS:
            return "Israeli New Shequel";
          case In.k_ECurrencyCodeBYN:
            return "Belarusian Ruble";
          case In.k_ECurrencyCodeKZT:
            return "Kazakhstani Tenge";
          case In.k_ECurrencyCodeKWD:
            return "Kuwaiti Dinar";
          case In.k_ECurrencyCodeQAR:
            return "Qatari Rial";
          case In.k_ECurrencyCodeCRC:
            return "Costa Rican Colon";
          case In.k_ECurrencyCodeUYU:
            return "Uruguayan Peso";
          case In.k_ECurrencyCodeBGN:
            return "Bulgarian lev";
          case In.k_ECurrencyCodeHRK:
            return "Croatian kuna";
          case In.k_ECurrencyCodeCZK:
            return "Czech koruna";
          case In.k_ECurrencyCodeDKK:
            return "Danish krone";
          case In.k_ECurrencyCodeHUF:
            return "Hungarian forint";
          case In.k_ECurrencyCodeRON:
            return "Romanian leu";
          default:
            return "";
        }
      }
      function Gn(e, t = $n.k_ERegionCodeInvalid) {
        switch (e) {
          case In.k_ECurrencyCodeGBP:
            return "gbp";
          case In.k_ECurrencyCodeEUR:
            return "eur";
          case In.k_ECurrencyCodeCHF:
            return "chf";
          case In.k_ECurrencyCodeRUB:
            return "rub";
          case In.k_ECurrencyCodePLN:
            return "pln";
          case In.k_ECurrencyCodeBRL:
            return "brl";
          case In.k_ECurrencyCodeJPY:
            return "jpy";
          case In.k_ECurrencyCodeNOK:
            return "nok";
          case In.k_ECurrencyCodeIDR:
            return "idr";
          case In.k_ECurrencyCodeMYR:
            return "myr";
          case In.k_ECurrencyCodePHP:
            return "php";
          case In.k_ECurrencyCodeSGD:
            return "sgd";
          case In.k_ECurrencyCodeTHB:
            return "thb";
          case In.k_ECurrencyCodeVND:
            return "vnd";
          case In.k_ECurrencyCodeKRW:
            return "krw";
          case In.k_ECurrencyCodeTRY:
            return "try";
          case In.k_ECurrencyCodeUAH:
            return "uah";
          case In.k_ECurrencyCodeMXN:
            return "mxn";
          case In.k_ECurrencyCodeCAD:
            return "cad";
          case In.k_ECurrencyCodeAUD:
            return "aud";
          case In.k_ECurrencyCodeNZD:
            return "nzd";
          case In.k_ECurrencyCodeCNY:
            return "cny";
          case In.k_ECurrencyCodeINR:
            return "inr";
          case In.k_ECurrencyCodeCLP:
            return "clp";
          case In.k_ECurrencyCodePEN:
            return "pen";
          case In.k_ECurrencyCodeCOP:
            return "cop";
          case In.k_ECurrencyCodeZAR:
            return "zar";
          case In.k_ECurrencyCodeHKD:
            return "hkd";
          case In.k_ECurrencyCodeTWD:
            return "twd";
          case In.k_ECurrencyCodeSAR:
            return "sar";
          case In.k_ECurrencyCodeAED:
            return "aed";
          case In.k_ECurrencyCodeSEK:
            return "sek";
          case In.k_ECurrencyCodeARS:
            return "ars";
          case In.k_ECurrencyCodeILS:
            return "ils";
          case In.k_ECurrencyCodeBYN:
            return "byn";
          case In.k_ECurrencyCodeKZT:
            return "kzt";
          case In.k_ECurrencyCodeKWD:
            return "kwd";
          case In.k_ECurrencyCodeQAR:
            return "qar";
          case In.k_ECurrencyCodeCRC:
            return "crc";
          case In.k_ECurrencyCodeUYU:
            return "uyu";
          case In.k_ECurrencyCodeBGN:
            return "bgn";
          case In.k_ECurrencyCodeHRK:
            return "hrk";
          case In.k_ECurrencyCodeCZK:
            return "czk";
          case In.k_ECurrencyCodeDKK:
            return "dkk";
          case In.k_ECurrencyCodeHUF:
            return "huf";
          case In.k_ECurrencyCodeRON:
            return "ron";
          default:
            return t == $n.k_ERegionCodeCIS
              ? "usd_cis"
              : t == $n.k_ERegionCodeSAsia
                ? "usd_sasia"
                : t == $n.k_ERegionCodeLATAM
                  ? "usd_latam"
                  : t == $n.k_ERegionCodeMENA
                    ? "usd_mena"
                    : "usd";
        }
      }
      function Hn(e) {
        return `${Un(
          (function (e) {
            switch (e) {
              case "USD":
                return In.k_ECurrencyCodeUSD;
              case "GBP":
                return In.k_ECurrencyCodeGBP;
              case "EUR":
                return In.k_ECurrencyCodeEUR;
              case "CHF":
                return In.k_ECurrencyCodeCHF;
              case "RUB":
                return In.k_ECurrencyCodeRUB;
              case "PLN":
                return In.k_ECurrencyCodePLN;
              case "BRL":
                return In.k_ECurrencyCodeBRL;
              case "JPY":
                return In.k_ECurrencyCodeJPY;
              case "NOK":
                return In.k_ECurrencyCodeNOK;
              case "IDR":
                return In.k_ECurrencyCodeIDR;
              case "MYR":
                return In.k_ECurrencyCodeMYR;
              case "PHP":
                return In.k_ECurrencyCodePHP;
              case "SGD":
                return In.k_ECurrencyCodeSGD;
              case "THB":
                return In.k_ECurrencyCodeTHB;
              case "VND":
                return In.k_ECurrencyCodeVND;
              case "KRW":
                return In.k_ECurrencyCodeKRW;
              case "TRY":
                return In.k_ECurrencyCodeTRY;
              case "UAH":
                return In.k_ECurrencyCodeUAH;
              case "MXN":
                return In.k_ECurrencyCodeMXN;
              case "CAD":
                return In.k_ECurrencyCodeCAD;
              case "AUD":
                return In.k_ECurrencyCodeAUD;
              case "NZD":
                return In.k_ECurrencyCodeNZD;
              case "CNY":
                return In.k_ECurrencyCodeCNY;
              case "INR":
                return In.k_ECurrencyCodeINR;
              case "CLP":
                return In.k_ECurrencyCodeCLP;
              case "PEN":
                return In.k_ECurrencyCodePEN;
              case "COP":
                return In.k_ECurrencyCodeCOP;
              case "ZAR":
                return In.k_ECurrencyCodeZAR;
              case "HKD":
                return In.k_ECurrencyCodeHKD;
              case "TWD":
                return In.k_ECurrencyCodeTWD;
              case "SAR":
                return In.k_ECurrencyCodeSAR;
              case "AED":
                return In.k_ECurrencyCodeAED;
              case "SEK":
                return In.k_ECurrencyCodeSEK;
              case "ARS":
                return In.k_ECurrencyCodeARS;
              case "ILS":
                return In.k_ECurrencyCodeILS;
              case "BYN":
                return In.k_ECurrencyCodeBYN;
              case "KZT":
                return In.k_ECurrencyCodeKZT;
              case "KWD":
                return In.k_ECurrencyCodeKWD;
              case "QAR":
                return In.k_ECurrencyCodeQAR;
              case "CRC":
                return In.k_ECurrencyCodeCRC;
              case "UYU":
                return In.k_ECurrencyCodeUYU;
              case "BGN":
                return In.k_ECurrencyCodeBGN;
              case "HRK":
                return In.k_ECurrencyCodeHRK;
              case "CZK":
                return In.k_ECurrencyCodeCZK;
              case "DKK":
                return In.k_ECurrencyCodeDKK;
              case "HUF":
                return In.k_ECurrencyCodeHUF;
              case "RON":
                return In.k_ECurrencyCodeRON;
              default:
                return In.k_ECurrencyCodeInvalid;
            }
          })(e.toUpperCase()),
        )} (${e})`;
      }
      (0, Rn.Cg)([Bn.oI], xn.prototype, "LoadMoreProposal", null),
        (0, Rn.Cg)([Bn.oI], xn.prototype, "RejectProposal", null),
        (0, Rn.Cg)([Bn.oI], xn.prototype, "AcceptProposal", null),
        (function (e) {
          (e[(e.k_ECurrencyCodeInvalid = 0)] = "k_ECurrencyCodeInvalid"),
            (e[(e.k_ECurrencyCodeUSD = 1)] = "k_ECurrencyCodeUSD"),
            (e[(e.k_ECurrencyCodeGBP = 2)] = "k_ECurrencyCodeGBP"),
            (e[(e.k_ECurrencyCodeEUR = 3)] = "k_ECurrencyCodeEUR"),
            (e[(e.k_ECurrencyCodeCHF = 4)] = "k_ECurrencyCodeCHF"),
            (e[(e.k_ECurrencyCodeRUB = 5)] = "k_ECurrencyCodeRUB"),
            (e[(e.k_ECurrencyCodePLN = 6)] = "k_ECurrencyCodePLN"),
            (e[(e.k_ECurrencyCodeBRL = 7)] = "k_ECurrencyCodeBRL"),
            (e[(e.k_ECurrencyCodeJPY = 8)] = "k_ECurrencyCodeJPY"),
            (e[(e.k_ECurrencyCodeNOK = 9)] = "k_ECurrencyCodeNOK"),
            (e[(e.k_ECurrencyCodeIDR = 10)] = "k_ECurrencyCodeIDR"),
            (e[(e.k_ECurrencyCodeMYR = 11)] = "k_ECurrencyCodeMYR"),
            (e[(e.k_ECurrencyCodePHP = 12)] = "k_ECurrencyCodePHP"),
            (e[(e.k_ECurrencyCodeSGD = 13)] = "k_ECurrencyCodeSGD"),
            (e[(e.k_ECurrencyCodeTHB = 14)] = "k_ECurrencyCodeTHB"),
            (e[(e.k_ECurrencyCodeVND = 15)] = "k_ECurrencyCodeVND"),
            (e[(e.k_ECurrencyCodeKRW = 16)] = "k_ECurrencyCodeKRW"),
            (e[(e.k_ECurrencyCodeTRY = 17)] = "k_ECurrencyCodeTRY"),
            (e[(e.k_ECurrencyCodeUAH = 18)] = "k_ECurrencyCodeUAH"),
            (e[(e.k_ECurrencyCodeMXN = 19)] = "k_ECurrencyCodeMXN"),
            (e[(e.k_ECurrencyCodeCAD = 20)] = "k_ECurrencyCodeCAD"),
            (e[(e.k_ECurrencyCodeAUD = 21)] = "k_ECurrencyCodeAUD"),
            (e[(e.k_ECurrencyCodeNZD = 22)] = "k_ECurrencyCodeNZD"),
            (e[(e.k_ECurrencyCodeCNY = 23)] = "k_ECurrencyCodeCNY"),
            (e[(e.k_ECurrencyCodeINR = 24)] = "k_ECurrencyCodeINR"),
            (e[(e.k_ECurrencyCodeCLP = 25)] = "k_ECurrencyCodeCLP"),
            (e[(e.k_ECurrencyCodePEN = 26)] = "k_ECurrencyCodePEN"),
            (e[(e.k_ECurrencyCodeCOP = 27)] = "k_ECurrencyCodeCOP"),
            (e[(e.k_ECurrencyCodeZAR = 28)] = "k_ECurrencyCodeZAR"),
            (e[(e.k_ECurrencyCodeHKD = 29)] = "k_ECurrencyCodeHKD"),
            (e[(e.k_ECurrencyCodeTWD = 30)] = "k_ECurrencyCodeTWD"),
            (e[(e.k_ECurrencyCodeSAR = 31)] = "k_ECurrencyCodeSAR"),
            (e[(e.k_ECurrencyCodeAED = 32)] = "k_ECurrencyCodeAED"),
            (e[(e.k_ECurrencyCodeSEK = 33)] = "k_ECurrencyCodeSEK"),
            (e[(e.k_ECurrencyCodeARS = 34)] = "k_ECurrencyCodeARS"),
            (e[(e.k_ECurrencyCodeILS = 35)] = "k_ECurrencyCodeILS"),
            (e[(e.k_ECurrencyCodeBYN = 36)] = "k_ECurrencyCodeBYN"),
            (e[(e.k_ECurrencyCodeKZT = 37)] = "k_ECurrencyCodeKZT"),
            (e[(e.k_ECurrencyCodeKWD = 38)] = "k_ECurrencyCodeKWD"),
            (e[(e.k_ECurrencyCodeQAR = 39)] = "k_ECurrencyCodeQAR"),
            (e[(e.k_ECurrencyCodeCRC = 40)] = "k_ECurrencyCodeCRC"),
            (e[(e.k_ECurrencyCodeUYU = 41)] = "k_ECurrencyCodeUYU"),
            (e[(e.k_ECurrencyCodeBGN = 42)] = "k_ECurrencyCodeBGN"),
            (e[(e.k_ECurrencyCodeHRK = 43)] = "k_ECurrencyCodeHRK"),
            (e[(e.k_ECurrencyCodeCZK = 44)] = "k_ECurrencyCodeCZK"),
            (e[(e.k_ECurrencyCodeDKK = 45)] = "k_ECurrencyCodeDKK"),
            (e[(e.k_ECurrencyCodeHUF = 46)] = "k_ECurrencyCodeHUF"),
            (e[(e.k_ECurrencyCodeRON = 47)] = "k_ECurrencyCodeRON"),
            (e[(e.k_ECurrencyCodeMax = 48)] = "k_ECurrencyCodeMax");
        })(In || (In = {}));
      const Wn = [In.k_ECurrencyCodeTRY, In.k_ECurrencyCodeARS],
        Kn = [
          In.k_ECurrencyCodeUSD,
          In.k_ECurrencyCodeGBP,
          In.k_ECurrencyCodeEUR,
          In.k_ECurrencyCodeCHF,
          In.k_ECurrencyCodeRUB,
          In.k_ECurrencyCodePLN,
          In.k_ECurrencyCodeBRL,
          In.k_ECurrencyCodeJPY,
          In.k_ECurrencyCodeNOK,
          In.k_ECurrencyCodeIDR,
          In.k_ECurrencyCodeMYR,
          In.k_ECurrencyCodePHP,
          In.k_ECurrencyCodeSGD,
          In.k_ECurrencyCodeTHB,
          In.k_ECurrencyCodeVND,
          In.k_ECurrencyCodeKRW,
          In.k_ECurrencyCodeUAH,
          In.k_ECurrencyCodeMXN,
          In.k_ECurrencyCodeCAD,
          In.k_ECurrencyCodeAUD,
          In.k_ECurrencyCodeNZD,
          In.k_ECurrencyCodeCNY,
          In.k_ECurrencyCodeINR,
          In.k_ECurrencyCodeCLP,
          In.k_ECurrencyCodePEN,
          In.k_ECurrencyCodeCOP,
          In.k_ECurrencyCodeZAR,
          In.k_ECurrencyCodeHKD,
          In.k_ECurrencyCodeTWD,
          In.k_ECurrencyCodeSAR,
          In.k_ECurrencyCodeAED,
          In.k_ECurrencyCodeILS,
          In.k_ECurrencyCodeKZT,
          In.k_ECurrencyCodeKWD,
          In.k_ECurrencyCodeQAR,
          In.k_ECurrencyCodeCRC,
          In.k_ECurrencyCodeUYU,
        ],
        Vn = new Set(Kn);
      In.k_ECurrencyCodeSEK,
        In.k_ECurrencyCodeBGN,
        In.k_ECurrencyCodeHRK,
        In.k_ECurrencyCodeCZK,
        In.k_ECurrencyCodeDKK,
        In.k_ECurrencyCodeHUF,
        In.k_ECurrencyCodeRON;
      var $n;
      !(function (e) {
        (e[(e.k_ERegionCodeInvalid = 0)] = "k_ERegionCodeInvalid"),
          (e[(e.k_ERegionCodeCIS = 1)] = "k_ERegionCodeCIS"),
          (e[(e.k_ERegionCodeSAsia = 2)] = "k_ERegionCodeSAsia"),
          (e[(e.k_ERegionCodeLATAM = 3)] = "k_ERegionCodeLATAM"),
          (e[(e.k_ERegionCodeMENA = 4)] = "k_ERegionCodeMENA"),
          (e[(e.k_ERegionCodeMax = 5)] = "k_ERegionCodeMax");
      })($n || ($n = {}));
      const zn = [
          $n.k_ERegionCodeCIS,
          $n.k_ERegionCodeSAsia,
          $n.k_ERegionCodeLATAM,
          $n.k_ERegionCodeMENA,
        ],
        Yn = new Set(zn);
      function Xn(e) {
        switch (e) {
          case $n.k_ERegionCodeCIS:
            return "usd_cis";
          case $n.k_ERegionCodeSAsia:
            return "usd_sasia";
          case $n.k_ERegionCodeLATAM:
            return "usd_latam";
          case $n.k_ERegionCodeMENA:
            return "usd_mena";
          default:
            return "usd_invalid";
        }
      }
      function qn(e) {
        switch (e) {
          case $n.k_ERegionCodeCIS:
            return "CIS";
          case $n.k_ERegionCodeSAsia:
            return "SASIA";
          case $n.k_ERegionCodeLATAM:
            return "LATAM";
          case $n.k_ERegionCodeMENA:
            return "MENA";
          default:
            return "Invalid Region";
        }
      }
      function jn(e) {
        switch (e) {
          case "CIS":
            return $n.k_ERegionCodeCIS;
          case "SASIA":
            return $n.k_ERegionCodeSAsia;
          case "LATAM":
            return $n.k_ERegionCodeLATAM;
          case "MENA":
            return $n.k_ERegionCodeMENA;
          default:
            return $n.k_ERegionCodeInvalid;
        }
      }
      function Qn(e) {
        switch (e) {
          case $n.k_ERegionCodeCIS:
            return "The Commonwealth of Independent Stats";
          case $n.k_ERegionCodeSAsia:
            return "South Asia";
          case $n.k_ERegionCodeLATAM:
            return "Latin America";
          case $n.k_ERegionCodeMENA:
            return "Middle East and North Africa";
          default:
            return "Invalid Region";
        }
      }
      class Zn {
        m_mapUSDPrice = new Map();
        m_mapKeyToGuidePrice = new Map();
        GetKey(e, t, n) {
          return `${e}_${t}_${n || $n.k_ERegionCodeInvalid}`;
        }
        GetAnyPricePoint() {
          return Array.from(this.m_mapUSDPrice.values())[0];
        }
        GetRecommendPrice(e, t, n) {
          const a = this.GetKey(e, t, n);
          return this.m_mapKeyToGuidePrice.get(a);
        }
        GetScaledRecommendedPrice(e, t, n) {
          let a = -1,
            r = -1;
          for (const t of this.m_mapUSDPrice.keys()) {
            const n = Math.abs(t - e);
            (-1 == a || n < r) && ((a = t), (r = n));
          }
          const o = this.m_mapUSDPrice.get(a),
            l = n
              ? o.region_prices.find((e) => e.region_code == n)
              : o.currency_prices.find((e) => e.currency_code == t),
            s = e / a;
          return {
            currency_code: l?.currency_code,
            region_code: l?.region_code,
            price: Math.ceil(l?.price * s),
          };
        }
        constructor(e) {
          e.forEach((e) => {
            this.m_mapUSDPrice.set(e.usd_price, e),
              e.currency_prices.forEach((t) => {
                const n = this.GetKey(e.usd_price, t.currency_code);
                this.m_mapKeyToGuidePrice.set(n, t);
              }),
              e.region_prices.forEach((t) => {
                const n = this.GetKey(
                  e.usd_price,
                  t.currency_code,
                  t.region_code,
                );
                this.m_mapKeyToGuidePrice.set(n, t);
              });
          });
        }
      }
      var Jn = n(48479),
        ea = n(23708),
        ta = n(32179),
        na = n(8905);
      const aa = { include_release: !0 };
      var ra = n(71298),
        oa = n(61051);
      function la(e) {
        const t = new Array();
        return (
          Kn.forEach((n) => {
            e.proposed_prices.base_amounts.some(
              (e) => e.amount.currency_code == n,
            ) || t.push(Fn(n));
          }),
          zn.forEach((n) => {
            const a = qn(n);
            e.proposed_prices.region_amounts.some((e) => e.name == a) ||
              t.push(Xn(n));
          }),
          t
        );
      }
      function sa(e, t, n) {
        if (t) {
          const n = Xn(t);
          return e?.current_costs?.region_amounts?.find((e) => e.region == n)
            ?.amount.amount;
        }
        return e?.current_costs?.base_amounts?.find((e) => e.currency_code == n)
          ?.amount;
      }
      function ia(e, t, n, a, r, o) {
        a.price * oa.Oo < t.amount.amount
          ? r.push({
              strCurrency: n ? Xn(n) : Gn(t.amount.currency_code),
              nAmountCents: t.amount.amount,
              nPercent: Math.floor((t.amount.amount / a.price) * 100) - 100,
              nProposedPrice: t.amount.amount,
              nGuidancePrice: a.price,
              nOriginalPrice: sa(e, n, t.amount.currency_code),
            })
          : a.price / oa.Oo > t.amount.amount &&
            o.push({
              strCurrency: n ? Xn(n) : Gn(t.amount.currency_code),
              nAmountCents: t.amount.amount,
              nPercent: 100 - Math.floor((t.amount.amount / a.price) * 100),
              nProposedPrice: t.amount.amount,
              nGuidancePrice: a.price,
              nOriginalPrice: sa(e, n, t.amount.currency_code),
            });
      }
      function ca(e, t, n, a) {
        const r = new Array(),
          o = new Array(),
          l = t.get(a.packageid);
        return (
          a.proposed_prices.base_amounts.map((t) => {
            const a =
              n.GetRecommendPrice(e, t.amount.currency_code) ||
              n.GetScaledRecommendedPrice(e, t.amount.currency_code);
            ia(l, t, null, a, r, o);
          }),
          a.proposed_prices.region_amounts.map((t) => {
            const a = jn(t.name),
              s =
                n.GetRecommendPrice(e, In.k_ECurrencyCodeUSD, a) ||
                n.GetScaledRecommendedPrice(e, In.k_ECurrencyCodeUSD, a);
            ia(l, t, a, s, r, o);
          }),
          {
            rgAboveThreshold: r.sort((e, t) => t.nPercent - e.nPercent),
            rgBelowThreshold: o.sort((e, t) => t.nPercent - e.nPercent),
          }
        );
      }
      function da(e) {
        const t = Math.floor(Date.now() / 1e3);
        return e.BIsReleased() && e.GetReleaseDateRTime() + 2592e3 > t;
      }
      var ua = n(14358);
      function ma(e) {
        const { proposal: t, mapCurrentPrices: n, oGuideline: r } = e,
          { fnAcceptProposal: o } = On(),
          [l, s] = (0, a.useState)(!1),
          [i, c] = (0, a.useState)(null),
          [d] = (0, $e.Gg)(t.packageid, aa);
        return l
          ? a.createElement(
              "div",
              null,
              a.createElement(me.t, {
                string: "Accepting",
                size: "small",
                position: "center",
              }),
            )
          : a.createElement(
              "div",
              { className: ua.ActionsCtn },
              a.createElement(
                v.$n,
                {
                  onClick: async () => {
                    s(!0),
                      o(t.packageid, t.partner_will_publish, t.proposal_key, !0)
                        .then(c)
                        .finally(() => s(!1));
                  },
                },
                "Publish Proposal ",
                Boolean(i) ? " (FORCE)" : "",
              ),
              Boolean(i) &&
                a.createElement(
                  "div",
                  null,
                  "Publish failed with: ",
                  i,
                  ", publish again to bypass check",
                ),
              a.createElement(
                v.$n,
                {
                  onClick: (e) => {
                    const o = new Array();
                    la(t).length > 0 && o.push("currency_missing");
                    const l = t.proposed_prices.base_amounts.find(
                        (e) => e.amount.currency_code == In.k_ECurrencyCodeUSD,
                      )?.amount.amount,
                      s = ca(l, n, r, t);
                    (s.rgAboveThreshold.length > 0 ||
                      s.rgBelowThreshold.length > 0) &&
                      o.push("out_of_guideline"),
                      d && da(d) && o.push("within_30_days"),
                      (0, Cn.pg)(
                        a.createElement(_a, { proposal: t, errors: o }),
                        (0, hn.uX)(e),
                      );
                  },
                },
                "Reject...",
              ),
            );
      }
      const pa = new Map([
        ["within_30_days", "Within 30 Days of Release"],
        ["currency_missing", "Missing one or more currency"],
        ["out_of_guideline", "One or more currency out of expected range"],
      ]);
      function _a(e) {
        const { proposal: t, closeModal: n, errors: r } = e,
          [o, l] = (0, a.useState)(() => r),
          [s, i] = (0, a.useState)(""),
          { fnRejectProposal: c } = On(),
          d = `Reject pricing proposal for package ${t.packageid}`,
          u = (0, ra.vs)();
        return u.bLoading
          ? a.createElement(ra.Hh, {
              state: u,
              strDialogTitle: d,
              closeModal: n,
            })
          : a.createElement(
              w.o0,
              {
                strTitle: d,
                strDescription:
                  "Select the appropriate reasons for rejecting this price proposal. Each will surface to the user in the reject email.",
                bDisableBackgroundDismiss: !0,
                onCancel: n,
                onOK: () => {
                  u.fnSetLoading(!0),
                    c(t.packageid, o, s)
                      .then((e) => {
                        e
                          ? u.fnSetSuccess(!0)
                          : (u.fnSetError(!0),
                            u.fnSetStrError(
                              "Failed to reject; check console for details",
                            ));
                      })
                      .catch((e) => {
                        u.fnSetError(!0),
                          u.fnSetStrError(
                            "Failed to reject; check console for details",
                          );
                      });
                },
              },
              a.createElement(v.JU, null, "Rejection type:"),
              Array.from(pa.keys()).map((e) =>
                a.createElement(v.Yh, {
                  key: "check" + e,
                  checked: o.includes(e),
                  onChange: (t) => {
                    const n = o.filter((t) => t != e);
                    t && n.push(e), l(n);
                  },
                  label: pa.get(e),
                }),
              ),
              a.createElement("br", null),
              a.createElement("hr", null),
              a.createElement(
                v.JU,
                null,
                "Optionally include custom message text in rejection email",
              ),
              a.createElement("textarea", {
                onChange: (e) => i(e.target.value),
                value: s,
                className: ua.NotesField,
              }),
            );
      }
      var Ea = n(2897),
        ga = n(75233),
        Ca = n(51614);
      var ha = n(56330),
        Sa = n.n(ha),
        fa = n(77428),
        ba = n.n(fa),
        ka = n(98019);
      function Aa(e) {
        const { partnerID: t, setTicketCount: n } = e,
          { data: r } = (function (e, t, n) {
            return (0, de.I)({
              queryKey: ["PartnerTickets", e, t, n],
              queryFn: async () => {
                const a = {
                  nPublisherId: e,
                  eHelpIssue: t,
                  eHelpRequestType: n,
                };
                return (
                  await ie().get(
                    `${Ln.TS.PARTNER_BASE_URL}admin/ajaxfetchsupportticketforpartner`,
                    { params: a, withCredentials: !0 },
                  )
                ).data.tickets;
              },
            });
          })(t, 920, 55),
          [o, l] = (0, a.useState)(2);
        return (
          (0, a.useEffect)(() => {
            r?.length > 0 && n(r?.length);
          }, [r, n]),
          r && 0 != r.length
            ? a.createElement(
                "div",
                null,
                a.createElement("br", null),
                a.createElement("h3", null, "Tickets ", r.length, ":"),
                r
                  .slice(0, o)
                  .map((e) =>
                    a.createElement(va, { key: e.help_requestid, helpReq: e }),
                  ),
                Boolean(o < r.length) &&
                  a.createElement(
                    "a",
                    { href: "#", onClick: () => l(r.length) },
                    "Show all ",
                    r.length,
                    " Tickets",
                  ),
              )
            : null
        );
      }
      function va(e) {
        const { helpReq: t } = e;
        return a.createElement(
          "div",
          null,
          a.createElement(
            "div",
            {
              className: (0, u.A)({
                [ba().ValveAccountTicket]:
                  ka.b.findIndex((e) => e.id === t.accountid) >= 0,
              }),
            },
            ka.b.findIndex((e) => e.id == t.assigned_agent_accountid) >= 0
              ? a.createElement(
                  a.Fragment,
                  null,
                  "Owned By: ",
                  a.createElement(na.p, {
                    accountID: t.assigned_agent_accountid,
                  }),
                  ",",
                )
              : a.createElement(
                  a.Fragment,
                  null,
                  "Created by: ",
                  a.createElement(na.p, { accountID: t.accountid }),
                  ",",
                ),
            "Created on ",
            (0, s.TW)(t.time_created),
          ),
          a.createElement("br", null),
          a.createElement("p", null, t.issue_text),
          a.createElement("div", null),
          Boolean(
            t.time_last_response && t.time_last_response > t.time_created,
          ) &&
            a.createElement(
              "div",
              null,
              "Last Update ",
              (0, s.TW)(t.time_last_response),
            ),
          a.createElement("br", null),
          a.createElement(
            "a",
            {
              href: `${Ln.TS.HELP_BASE_URL}en/ticketmaster/ticket/${((n = t.reference_code), n.startsWith("HT") && 14 === n.length ? `${n.slice(0, 2)}-${n.slice(2, 6)}-${n.slice(6, 10)}-${n.slice(10)}` : n)}`,
              target: "_blank",
            },
            "Open Ticket",
          ),
        );
        var n;
      }
      function wa(e) {
        const {
            nAccountIDProposer: t,
            packageID: n,
            mapPartnerPaidByPackage: r,
          } = e,
          o = r.get(n);
        return o
          ? a.createElement(
              v.$n,
              {
                onClick: (e) =>
                  (0, Cn.pg)(
                    a.createElement(Pa, {
                      nAccountIDProposer: t,
                      packageID: n,
                      partnerID: o[0],
                    }),
                    (0, hn.uX)(e),
                  ),
              },
              "Create Ticket",
            )
          : a.createElement(
              "div",
              { className: ha.WarningStylesBackground },
              "Warning: Package isn't associated with a partner... Cannot create ticket",
            );
      }
      function Pa(e) {
        const {
            partnerID: t,
            packageID: n,
            closeModal: r,
            nAccountIDProposer: o,
          } = e,
          [l] = (0, ta.UA)(t),
          [s] = (0, $e.Gg)(n, {}),
          i = (0, a.useMemo)(
            () => rt.b.InitFromAccountID(o).ConvertTo64BitString(),
            [o],
          ),
          [c, d] = (0, a.useState)(() => s?.GetAppID() || 0),
          [u, m] = (0, a.useState)(`Question about pricing for package ${n}`),
          [p, _] = (0, a.useState)(""),
          E = (0, ra.vs)(),
          g = (function (e, t, n, a, r) {
            const o = (0, ga.jE)();
            return (0, Ca.n)({
              mutationFn: async (o) => {
                r.fnSetLoading(!0);
                const l = new FormData();
                l.append("help_issue", "" + n),
                  l.append("help_request_type", "" + a),
                  l.append("appid", "" + o.appid),
                  l.append("initial_text", o.strRequestTitle),
                  l.append("issue_text", o.strRequestBody),
                  l.append("sessionid", Ln.TS.SESSIONID),
                  l.append("steamid", e),
                  l.append("publisherid_selected", "" + t);
                const s = await ie().post(
                  `${Ln.TS.PARTNER_BASE_URL}admin/ajaxcreatesupportticketforrequest/`,
                  l,
                );
                if (1 != s?.data?.success)
                  throw (
                    (s?.data?.message && r.fnSetStrError(s?.data?.message),
                    s?.data?.message || "create ticket failed generic")
                  );
              },
              onSuccess() {
                r.fnSetSuccess(!0);
              },
              onError() {
                r.fnSetError(!0);
              },
              onSettled() {
                o.invalidateQueries({ queryKey: ["PartnerTickets", t, n, a] });
              },
            });
          })(i, t, 920, 55, E);
        return E.bLoading
          ? a.createElement(ra.Hh, {
              state: E,
              strDialogTitle: "Create Ticket for Partner",
              closeModal: r,
            })
          : a.createElement(
              w.o0,
              {
                strTitle: "Create Ticket for Partner",
                strDescription: `Create a pricing ticket for partner ${l?.name} (${t}) for Package ${n}. Please update ticket title and body`,
                bOKDisabled: !c || 0 == u.trim().length || 0 == p.trim().length,
                onOK: () =>
                  g.mutate({ appid: c, strRequestTitle: u, strRequestBody: p }),
                bAllowFullSize: !0,
                onCancel: r,
                bDisableBackgroundDismiss: p.trim().length > 0,
              },
              a.createElement(v.pd, {
                type: "text",
                label: "Ticket Title",
                placeholder: "Enter Ticket Title",
                value: u,
                onChange: (e) => m(e.currentTarget.value || ""),
              }),
              a.createElement(v.JU, null, "Enter Ticket Body"),
              a.createElement("textarea", {
                value: p,
                onChange: (e) => _(e.currentTarget.value),
                cols: 80,
                rows: 20,
              }),
              a.createElement(v.pd, {
                type: "number",
                label: "AppID to Associate with Ticket",
                value: c,
                onChange: (e) => d(Number.parseInt(e.currentTarget.value) || 0),
              }),
            );
      }
      function ya(e) {
        const { proposal: t, mapPartnerPaidByPackage: n } = e,
          [r] = (0, $e.Gg)(t.packageid, aa),
          [o] = (0, $e.Gg)(r?.GetIncludedAppIDsOrSelf()?.[0], aa),
          l = `${Ln.TS.PARTNER_BASE_URL}store/packagelanding/${t.packageid}`;
        return a.createElement(
          "div",
          { className: (0, u.A)(ea.PackageInfoColumn, Ea.PackageInfoColumn) },
          a.createElement(
            "div",
            { className: ea.PackageName },
            Boolean(r)
              ? a.createElement(
                  "span",
                  null,
                  a.createElement("a", { href: l }, r.GetName()),
                  " ",
                  `(${t.packageid})`,
                )
              : a.createElement("a", { href: l }, `Package ${t.packageid}`),
            Boolean(4 == o?.GetAppType()) &&
              a.createElement("span", null, " (DLC)"),
            Boolean(2 == o?.GetAppType()) &&
              a.createElement("span", null, " (MOD)"),
            Boolean(10 == o?.GetAppType()) &&
              a.createElement("span", null, " (HARDWARE)"),
          ),
          a.createElement(
            "div",
            { className: ea.ReleaseDate },
            Boolean(r && r.BIsVisible())
              ? "Release On: " +
                  (r.GetReleaseDateRTime()
                    ? (0, s.TW)(r.GetReleaseDateRTime())
                    : " No Release date")
              : "Store Visibility: Hidden",
          ),
          a.createElement(
            "a",
            {
              href: `${Ln.TS.PARTNER_BASE_URL}packages/pricehistory/${t.packageid}`,
            },
            "Show Package Price History",
          ),
          a.createElement(
            "div",
            { className: ea.SubmissionBy },
            a.createElement(na.p, { accountID: t.account }),
          ),
          a.createElement(ma, { ...e }),
          a.createElement(wa, {
            nAccountIDProposer: t.account_proposer,
            packageID: t.packageid,
            mapPartnerPaidByPackage: n,
          }),
          a.createElement(Da, {
            packageID: t.packageid,
            mapPartnerPaidByPackage: n,
          }),
        );
      }
      function Da(e) {
        const { packageID: t, mapPartnerPaidByPackage: n } = e,
          r = n.get(t);
        return r
          ? a.createElement(
              "div",
              null,
              r.map((e) =>
                a.createElement(Na, { key: "partner" + e, partnerID: e }),
              ),
            )
          : null;
      }
      function Na(e) {
        const { partnerID: t } = e,
          [n] = (0, ta.UA)(t);
        return n
          ? a.createElement(
              "a",
              {
                href: `${Ln.TS.PARTNER_BASE_URL}admin/reviewpricesubmissions/?publisherID=${n.partnerid}`,
              },
              n.name,
              " (",
              n.partnerid,
              ")",
            )
          : null;
      }
      function Ta(e) {
        const { amountInCents: t, className: n } = e;
        return t
          ? a.createElement("div", { className: n }, Ia(t))
          : a.createElement("div", { className: n });
      }
      function Ia(e) {
        return e
          ? (e / 100).toLocaleString(void 0, {
              minimumFractionDigits: 2,
              maximumFractionDigits: 2,
            })
          : "";
      }
      function Ra(e) {
        return a.createElement(
          "thead",
          null,
          a.createElement(
            "tr",
            null,
            Kn.map((e) =>
              a.createElement(
                "td",
                { key: "header" + e },
                a.createElement(p.he, { toolTipContent: Un(e) }, Fn(e)),
              ),
            ),
            zn.map((e) =>
              a.createElement(
                "td",
                { key: "header_region" + e },
                a.createElement(p.he, { toolTipContent: Qn(e) }, qn(e)),
              ),
            ),
          ),
        );
      }
      function La(e) {
        const { proposal: t, oGuideline: n, mapCurrentPrices: r } = e,
          o = r.get(t.packageid),
          l = t.proposed_prices.base_amounts.find(
            (e) => e.amount.currency_code == In.k_ECurrencyCodeUSD,
          )?.amount.amount;
        return a.createElement(
          "tr",
          null,
          Kn.map((e) => {
            const r =
              n.GetRecommendPrice(l, e) || n.GetScaledRecommendedPrice(l, e);
            return a.createElement(Ba, {
              key: t.packageid + "-" + e,
              eCurrencyCode: e,
              proposal: t,
              curPrice: o,
              guidePrice: r,
            });
          }),
          zn.map((e) => {
            const r = In.k_ECurrencyCodeUSD,
              s =
                n.GetRecommendPrice(l, r, e) ||
                n.GetScaledRecommendedPrice(l, r, e);
            return a.createElement(Ma, {
              key: t.packageid + "-" + e,
              eCurrencyCode: r,
              eRegionCode: e,
              proposal: t,
              curPrice: o,
              guidePrice: s,
            });
          }),
        );
      }
      function Ba(e) {
        const { eCurrencyCode: t, curPrice: n, proposal: r, guidePrice: o } = e,
          l = r.proposed_prices.base_amounts.find(
            (e) => e.amount.currency_code == t,
          ),
          s = n?.current_costs?.base_amounts.find((e) => e.currency_code == t);
        return a.createElement(xa, {
          proposed: l,
          originalAmount: s,
          guidePrice: o,
        });
      }
      function Ma(e) {
        const { eRegionCode: t, curPrice: n, proposal: r, guidePrice: o } = e,
          l = qn(t),
          s = r.proposed_prices.region_amounts.find((e) => e.name == l),
          i = n?.current_costs?.region_amounts.find((e) => e.region == l);
        return a.createElement(xa, {
          proposed: s,
          originalAmount: i?.amount,
          guidePrice: o,
        });
      }
      function xa(e) {
        const { proposed: t, originalAmount: n, guidePrice: r } = e;
        let o, l;
        if (t)
          if (r && r.price > t.amount.amount) {
            o = ea.outofmatrixlower;
            l = `Suggested price ${Ia(r.price)} - ${Math.floor(100 - (t.amount.amount / r.price) * 100)}% ▼`;
          } else if (r && r.price < t.amount.amount) {
            o = ea.outofmatrix;
            l = `Suggested price ${Ia(r.price)} - ${Math.floor((t.amount.amount / r.price) * 100 - 100)}% ▲`;
          } else
            n
              ? n.amount > t.amount.amount
                ? (o = ea.priceChangedLower)
                : n.amount < t.amount.amount && (o = ea.priceChangedHigher)
              : (o = ea.priceChangedNew);
        return a.createElement(
          "td",
          { className: ea.FullCurrencyColumn },
          a.createElement(
            p.he,
            { toolTipContent: l },
            a.createElement(Ta, {
              className: o,
              amountInCents: t?.amount.amount,
            }),
          ),
          Boolean(n?.amount != t?.amount.amount) &&
            a.createElement(Ta, { amountInCents: n?.amount }),
          Boolean(!n) && a.createElement("div", null, "--"),
        );
      }
      function Oa(e) {
        const {
          rgProposals: t,
          oGuideline: n,
          mapCurrentPrices: r,
          mapPartnerPaidByPackage: o,
        } = e;
        return a.createElement(
          a.Fragment,
          null,
          a.createElement(Ha, null),
          a.createElement(Fa, { oGuideline: n }),
          a.createElement("hr", null),
          a.createElement("hr", null),
          t.map((e) =>
            a.createElement(
              "div",
              { key: e.packageid },
              a.createElement("hr", null),
              a.createElement(Ua, {
                oGuideline: n,
                proposal: e,
                mapCurrentPrices: r,
                mapPartnerPaidByPackage: o,
              }),
            ),
          ),
        );
      }
      function Fa(e) {
        return a.createElement(
          "div",
          { className: (0, u.A)(ea.RowCtn, ea.CurrencyHeaderRow) },
          a.createElement(
            "div",
            { className: ea.PackageInfoColumn },
            "Package Info",
          ),
          a.createElement(Ra, null),
        );
      }
      function Ua(e) {
        return a.createElement(
          a.Fragment,
          null,
          a.createElement(
            "div",
            { className: ea.RowCtn },
            a.createElement(ya, { ...e }),
            a.createElement(La, { ...e }),
          ),
          a.createElement(Ga, { ...e }),
        );
      }
      function Ga(e) {
        const { proposal: t } = e,
          n = t.proposed_prices.country_amounts;
        return n?.length > 0
          ? a.createElement(
              "div",
              { className: ea.RowCtn },
              a.createElement("div", null, "^^^^"),
              n.map((e) =>
                a.createElement(
                  "div",
                  { key: `country_${t.packageid}_${e.amount.currency_code}` },
                  e.name,
                  "/",
                  Gn(e.amount.currency_code),
                  " @ ",
                  Ia(e.account),
                ),
              ),
            )
          : null;
      }
      function Ha(e) {
        return a.createElement(
          Jn.qx,
          {
            title: "Legend",
            tooltip: "Explains the color scheme per proposed pricing color",
            bStartMinimized: !0,
          },
          a.createElement(
            "div",
            { className: ea.pricingLegend },
            a.createElement(
              "div",
              { className: ea.priceChangedLower },
              "Price Decreases",
            ),
            a.createElement(
              "div",
              { className: ea.priceChangedHigher },
              "Price Increases",
            ),
            a.createElement(
              "div",
              { className: ea.priceChangedNew },
              "Price is New",
            ),
            a.createElement(
              "div",
              { className: ea.outofmatrix },
              "Price is higher than guideline. Mouseover to see suggested price.",
            ),
            a.createElement(
              "div",
              { className: ea.outofmatrixlower },
              "Price is lower than guideline. Mouseover to see suggested price.",
            ),
          ),
        );
      }
      var Wa = n(95034);
      function Ka(e) {
        const {
            rgProposals: t,
            oGuideline: n,
            mapCurrentPrices: r,
            mapPartnerPaidByPackage: o,
          } = e,
          [l, s] = (0, a.useState)(!1),
          [i, c] = (0, a.useState)(!0);
        return a.createElement(
          "div",
          { className: (0, u.A)(Ea.PriceDeltaCtn) },
          a.createElement(
            Jn.qx,
            { title: "Reasons Auto-Publish is blocked" },
            a.createElement(
              "p",
              null,
              "This page will surface the reason why the package did not auto-publish and may require work to correct",
            ),
            a.createElement(
              "ol",
              { className: Ea.Legend },
              a.createElement(
                "li",
                { className: Ea.Missing },
                "Missing Currencies",
              ),
              a.createElement(
                "li",
                { className: Ea.Outside },
                "Outside of acceptable threshold (above 100% or below 50% of guideline)",
              ),
              a.createElement(
                "li",
                { className: Ea.CustomUsd },
                "USD Price doesn't match any guideline price point",
              ),
              a.createElement(
                "li",
                { className: Ea.AboveAutoPublish },
                "USD Price above 80$ USD",
              ),
              a.createElement(
                "li",
                { className: Ea.CloseToLaunch },
                "Raising Price during 30 days during launch window",
              ),
              a.createElement(
                "li",
                { className: Ea.CountrySpecific },
                "Has Country specific pricing",
              ),
            ),
            a.createElement(
              "p",
              null,
              "You can filter the list by choosing ",
              a.createElement(
                "a",
                {
                  href: `${Ln.TS.PARTNER_BASE_URL}admin/reviewpricesubmissions/?myPartners=1`,
                },
                "my partners",
              ),
              " view",
            ),
          ),
          a.createElement(v.Yh, {
            label: "Show All Price Comparison Rows",
            tooltip:
              "Displays the price comparison rows for all of the section below.",
            checked: l,
            onChange: s,
          }),
          a.createElement(v.Yh, {
            label: "Show Prices with Open Tickets",
            tooltip:
              "Displays the price comparison rows for those with open tickets against them.",
            checked: i,
            onChange: c,
          }),
          a.createElement(
            "div",
            { className: (0, u.A)(Ea.RowCtn) },
            a.createElement(
              "div",
              { className: Ea.PackageInfoColumn },
              "Package Info",
            ),
            a.createElement(
              "div",
              { className: Ea.FailuresCtn },
              "Errors Blocking Auto Submission:",
            ),
          ),
          t.map((e) =>
            a.createElement(
              "div",
              { key: "delta_" + e.packageid },
              a.createElement(Va, {
                oGuideline: n,
                proposal: e,
                mapCurrentPrices: r,
                mapPartnerPaidByPackage: o,
                bForceShowComparisonRows: l,
                bShowWithOpenTickets: i,
              }),
            ),
          ),
        );
      }
      function Va(e) {
        const { bShowWithOpenTickets: t } = e,
          [n, r] = (0, a.useState)(0);
        return n > 0 && !t
          ? null
          : a.createElement(
              "div",
              { className: Ea.ProposalCtn },
              a.createElement(
                "div",
                { className: Ea.RowCtn },
                a.createElement(ya, { ...e }),
                a.createElement($a, { ...e, setOpenTicketCount: r }),
                a.createElement(Ja, { ...e }),
              ),
              a.createElement(tr, { ...e }),
            );
      }
      function $a(e) {
        const { proposal: t, setOpenTicketCount: n } = e,
          r = e.mapPartnerPaidByPackage.get(t.packageid)?.[0] || 0;
        return a.createElement(
          "div",
          { className: Ea.FailuresCtn },
          a.createElement(Ya, { ...e }),
          a.createElement(Xa, { ...e }),
          a.createElement(er, { ...e }),
          a.createElement(qa, { ...e }),
          a.createElement(za, { ...e }),
          a.createElement(Aa, { partnerID: r, setTicketCount: n }),
        );
      }
      function za(e) {
        const { proposal: t, mapCurrentPrices: n } = e,
          r = t.proposed_prices.base_amounts.find(
            (e) => e.amount.currency_code == In.k_ECurrencyCodeUSD,
          )?.amount.amount,
          o = n
            .get(t.packageid)
            ?.current_costs.base_amounts.find(
              (e) => e.currency_code == In.k_ECurrencyCodeUSD,
            )?.amount;
        return a.createElement(
          a.Fragment,
          null,
          Boolean(r > 8e3) &&
            a.createElement(
              "div",
              { className: Ea.AboveAutoPublish },
              "USD Price $",
              Ia(r),
              " is above $80 USD Threshold",
            ),
          Boolean(o && r > 2 * o) &&
            a.createElement(
              "div",
              { className: Ea.AboveAutoPublish },
              "USD price $",
              Ia(r),
              " is more than twice existing USD Price $",
              Ia(o),
            ),
        );
      }
      function Ya(e) {
        const { proposal: t } = e,
          n = (0, a.useMemo)(() => la(t), [t]);
        return n?.length > 0
          ? a.createElement(
              "div",
              { className: Ea.MissingCurrency },
              a.createElement(
                "div",
                { className: Ea.Title },
                "Missing ",
                n.length,
                " currencies: ",
              ),
              n.map(Hn).join(", "),
            )
          : null;
      }
      function Xa(e) {
        const { proposal: t } = e,
          n = (0, a.useMemo)(
            () =>
              (function (e) {
                const t = new Array();
                return (
                  e.proposed_prices.base_amounts.forEach((e) => {
                    Vn.has(e.amount.currency_code) ||
                      (console.log(
                        "Unexpected currency code: " + e.amount.currency_code,
                        e,
                      ),
                      t.push(
                        `Currency Code: "${e.amount.currency_code}" with price in cents ${e.amount.amount}`,
                      ));
                  }),
                  e.proposed_prices.region_amounts.forEach((e) => {
                    Yn.has(jn(e.name.toUpperCase())) ||
                      (console.log(
                        `Unexpected region code: ${e.name} and currency code ${e.amount.currency_code} with price in cents ${e.amount.amount}`,
                      ),
                      t.push(e.name));
                  }),
                  t
                );
              })(t),
            [t],
          );
        return n?.length > 0
          ? a.createElement(
              "div",
              { className: Ea.MissingCurrency },
              a.createElement(
                "div",
                { className: Ea.Title },
                "Unexpected ",
                n.length,
                " currencies: ",
              ),
              n.map(Hn).join(", "),
            )
          : null;
      }
      function qa(e) {
        const { proposal: t, oGuideline: n } = e,
          r = t.proposed_prices.base_amounts.find(
            (e) => e.amount.currency_code == In.k_ECurrencyCodeUSD,
          )?.amount.amount,
          o = n.GetRecommendPrice(r, In.k_ECurrencyCodeUSD);
        return a.createElement(
          a.Fragment,
          null,
          Boolean(!o) &&
            a.createElement(
              "div",
              { className: Ea.MatrixGap },
              "$",
              Ia(r),
              " USD Price doesn't align with any matrix price point. Will compare proposal to scaled guideline.",
            ),
          a.createElement(Za, { ...e, USDPriceCents: r }),
        );
      }
      function ja(e) {
        const { thresholdData: t, strDirection: n } = e;
        let r = null;
        return (
          t.nOriginalPrice == t.nProposedPrice && (r = Ea.EqualPrices),
          a.createElement(
            "tr",
            { className: Ea.ThresholdRow },
            a.createElement(
              "td",
              { className: Ea.CurrencyName },
              t.strCurrency,
            ),
            a.createElement(
              "td",
              { className: (0, u.A)(Ea.OriginalPrice, r) },
              t.nOriginalPrice ? `${Ia(t.nOriginalPrice)}` : "--",
            ),
            a.createElement(
              "td",
              { className: (0, u.A)(Ea.ProposedPrice, r) },
              `${Ia(t.nProposedPrice)}`,
            ),
            a.createElement(
              "td",
              { className: Ea.RecommendedPrice },
              `${Ia(t.nGuidancePrice)}`,
            ),
            a.createElement(
              "td",
              { className: Ea.PercentDiff },
              `${t.nPercent}% ${n}`,
            ),
          )
        );
      }
      function Qa(e) {
        const { strGuidanceMessage: t, strDirection: n } = e;
        return a.createElement(
          "thead",
          null,
          a.createElement(
            "tr",
            null,
            a.createElement(
              "td",
              {
                colSpan: 5,
                className: (0, u.A)(
                  Ea.WarningTitle,
                  "above" == n ? Ea.WarningAbove : Ea.WarningBelow,
                ),
              },
              a.createElement("b", null, "above" == n ? "▲" : "▼"),
              " ",
              t,
            ),
          ),
          a.createElement(
            "tr",
            { className: (0, u.A)(Ea.ThresholdRow, Ea.ThresholdHeader) },
            a.createElement("td", { className: Ea.CurrencyName }, "Currency"),
            a.createElement("td", { className: Ea.OriginalPrice }, "Current"),
            a.createElement("td", { className: Ea.ProposedPrice }, "Proposed"),
            a.createElement(
              "td",
              { className: Ea.RecommendedPrice },
              "Recommended",
            ),
            a.createElement("td", { className: Ea.PercentDiff }, "% diff"),
          ),
        );
      }
      function Za(e) {
        const {
            proposal: t,
            oGuideline: n,
            USDPriceCents: r,
            mapCurrentPrices: o,
          } = e,
          { rgAboveThreshold: l, rgBelowThreshold: s } = (0, a.useMemo)(
            () => ca(r, o, n, t),
            [r, o, n, t],
          );
        if (l.length > 0 || s.length > 0) {
          const e = Ia(r);
          return a.createElement(
            a.Fragment,
            null,
            Boolean(r > 8e3) &&
              a.createElement(
                "div",
                { className: Ea.AutoPublishCeiling },
                "USD price $",
                Ia(r),
                " is above the auto-publish threshold of $80 USD",
              ),
            a.createElement(
              "div",
              { className: Ea.CurrencyWarningsCtn },
              Boolean(l.length > 0) &&
                a.createElement(
                  "table",
                  { className: Ea.ThresholdMiniTable },
                  a.createElement(Qa, {
                    strGuidanceMessage: `${l.length} currencies above guidance threshold for USD $ ${e}`,
                    strDirection: "above",
                  }),
                  a.createElement(
                    "tbody",
                    null,
                    l.map((e) =>
                      a.createElement(ja, {
                        key: t.packageid + "_" + e.strCurrency,
                        thresholdData: e,
                        strDirection: "▲",
                      }),
                    ),
                  ),
                ),
              Boolean(s.length > 0) &&
                a.createElement(
                  "table",
                  { className: Ea.ThresholdMiniTable },
                  a.createElement(Qa, {
                    strGuidanceMessage: `${s.length} currencies below guidance threshold for USD $ ${e}`,
                    strDirection: "below",
                  }),
                  a.createElement(
                    "tbody",
                    null,
                    s.map((e) =>
                      a.createElement(ja, {
                        key: t.packageid + "_" + e.strCurrency,
                        thresholdData: e,
                        strDirection: "▼",
                      }),
                    ),
                  ),
                ),
            ),
          );
        }
        return null;
      }
      function Ja(e) {
        const { proposal: t } = e;
        return t.proposed_prices.country_amounts?.length > 0
          ? a.createElement(
              "div",
              null,
              "Package has Country price overrides for Countries:",
              t.proposed_prices.country_amounts
                .map((e) => Hn(e.name))
                .join(","),
            )
          : null;
      }
      function er(e) {
        const { proposal: t } = e,
          [n] = (0, $e.Gg)(t.packageid, aa);
        return n && da(n)
          ? a.createElement(
              "div",
              { className: Ea.ReleaseDateCallout },
              "This game released less than 30 days ago, on ",
              (0, s.TW)(n.GetReleaseDateRTime()),
            )
          : null;
      }
      function tr(e) {
        const { bForceShowComparisonRows: t } = e,
          [n, r] = (0, a.useState)(!1);
        return n || t
          ? a.createElement(
              "div",
              { className: (0, u.A)(ea.FullCurrencyTable) },
              a.createElement(Ra, null),
              a.createElement(La, { ...e }),
            )
          : a.createElement(v.Yh, {
              label: "Show Price Comparison Row",
              onChange: () => r(!0),
            });
      }
      var nr = n(45737),
        ar = n.n(nr);
      class rr {
        m_mapPackageToPartners = new Map();
        GetMap() {
          return this.m_mapPackageToPartners;
        }
        static s_Singleton;
        static Get() {
          return (
            rr.s_Singleton ||
              ((rr.s_Singleton = new rr()), rr.s_Singleton.Init()),
            rr.s_Singleton
          );
        }
        constructor() {}
        Init() {
          (0, on.Tc)("package_to_paid_partners", "application_config").forEach(
            (e) => {
              this.m_mapPackageToPartners.has(e.packageid) ||
                this.m_mapPackageToPartners.set(e.packageid, new Array()),
                this.m_mapPackageToPartners.get(e.packageid).push(e.partnerid);
            },
          );
        }
      }
      function or() {
        const [e, t] = (0, a.useState)(() => rr.Get().GetMap());
        return e;
      }
      function lr(e) {
        const [t] = (0, a.useState)(
            () => (0, on.Tc)("filter_name", "application_config") || "",
          ),
          n = (function () {
            const [e, t] = (0, a.useState)(() => xn.Get().GetProposals());
            return (0, Bn.hL)(xn.Get().GetProposalListChange(), t), e;
          })(),
          r = (function () {
            const [e, t] = (0, a.useState)(
              () =>
                new Zn((0, on.Tc)("pricing_guideline", "application_config")),
            );
            return e;
          })(),
          o = Tn(),
          l = or(),
          [s, i] = (0, Wa.QD)("tab", "delta"),
          c = (e) => i(e.key),
          d = [
            {
              name: "Price Delta",
              key: "delta",
              contents: a.createElement(
                ct.tH,
                null,
                a.createElement(Ka, {
                  rgProposals: n,
                  oGuideline: r,
                  mapCurrentPrices: o,
                  mapPartnerPaidByPackage: l,
                }),
              ),
              onClick: c,
            },
            {
              name: "Submissions Raw Table",
              key: "raw",
              contents: a.createElement(
                ct.tH,
                null,
                a.createElement(Oa, {
                  rgProposals: n,
                  oGuideline: r,
                  mapCurrentPrices: o,
                  mapPartnerPaidByPackage: l,
                }),
              ),
              onClick: c,
            },
          ];
        return a.createElement(
          Nn.m,
          null,
          a.createElement(
            ct.tH,
            null,
            a.createElement(
              "div",
              { className: (0, u.A)(ar().AdminPageCtn, ar().WidePageCtn) },
              a.createElement("h1", null, "Package Prices Submissions Reviews"),
              a.createElement("p", null, t),
              a.createElement("hr", null),
              a.createElement(Wt.V, { tabs: d, startingTab: s }),
            ),
          ),
        );
      }
      var sr = n(26673),
        ir = n(67293);
      const cr = "0",
        dr = "1",
        ur = "2",
        mr = "3",
        pr = "4";
      function _r(e) {
        return !!e && Object.values(e).some((e) => e && 0 !== e.trim().length);
      }
      function Er(e) {
        switch (e.kind) {
          case cr:
            return (0, s.we)(
              "#StoreAdmin_PurchaseOptionsOrder_InvalidKindError",
            );
          case mr:
            return _r(e.header)
              ? null
              : (0, s.we)(
                  "#StoreAdmin_PurchaseOptionsOrder_MissingHeaderError",
                );
          case dr:
            return e.package_id
              ? null
              : (0, s.we)(
                  "#StoreAdmin_PurchaseOptionsOrder_MissingPackageError",
                );
          case ur:
            return e.bundle_id
              ? null
              : (0, s.we)(
                  "#StoreAdmin_PurchaseOptionsOrder_MissingBundleError",
                );
          case pr:
            return _r(e.dropdown_title)
              ? !e.dropdown_items || e.dropdown_items.length < 2
                ? (0, s.we)(
                    "#StoreAdmin_PurchaseOptionsOrder_MissingDropdownItemsError",
                  )
                : null
              : (0, s.we)(
                  "#StoreAdmin_PurchaseOptionsOrder_MissingDropdownTitleError",
                );
        }
      }
      const gr = (0, a.createContext)(null);
      function Cr(e) {
        const {
            appid: t,
            rgBaseGamePackageIds: n,
            rgAllBundles: r,
            rgAllPackages: o,
            rgValidLanguages: l,
          } = e,
          [i, c] = (0, a.useState)(e.bManualPurchaseOptionsOrder),
          [d, u] = (0, a.useState)(e.rgPurchaseOptionsOrder),
          [p, _] = (0, a.useMemo)(() => {
            const e = new Set(),
              t = new Set();
            for (const n of d)
              switch (n.kind) {
                case dr:
                  t.add(n.package_id);
                  break;
                case ur:
                  e.add(n.bundle_id && n.bundle_id);
                  break;
                case pr:
                  for (const e of n.dropdown_items ?? []) t.add(e.package_id);
              }
            return [
              o
                .filter((e) => !t.has(e.packageid))
                .map((e) => ({
                  value: e.packageid,
                  label: (0, s.we)(
                    "#StoreAdmin_PurchaseOptionsOrder_NameWithId",
                    e.name,
                    e.packageid,
                  ),
                })),
              r
                .filter((t) => !e.has(t.bundleid))
                .map((e) => ({
                  value: e.bundleid,
                  label: (0, s.we)(
                    "#StoreAdmin_PurchaseOptionsOrder_NameWithId",
                    e.name,
                    e.bundleid,
                  ),
                })),
            ];
          }, [r, o, d]),
          E = (0, a.useMemo)(
            () =>
              l.map((e) => ({ value: e, label: (0, s.we)(`#Language_${e}`) })),
            [l],
          ),
          g =
            0 === n.length ||
            (function (e, t) {
              if (0 === e.length) return !1;
              for (const n of e)
                switch (n.kind) {
                  case ur:
                    return !1;
                  case mr:
                    continue;
                  case cr:
                    return !1;
                  case dr:
                    return t.includes(n.package_id);
                  case pr:
                    return (
                      n.dropdown_items &&
                      n.dropdown_items.length > 0 &&
                      "package" === n.dropdown_items[0].kind &&
                      t.includes(n.dropdown_items[0].package_id)
                    );
                }
              return !1;
            })(d, n),
          C = {
            appid: t,
            rgUnusedBundles: _,
            rgUnusedPackages: p,
            rgValidLanguages: E,
            bHasErrors: d.some((e) => null !== Er(e)) || !g,
            rgAllPackages: o,
            rgAllBundles: r,
          };
        return a.createElement(
          "div",
          { className: sr.PurchaseOptionsOrderEditor },
          a.createElement(
            "h2",
            null,
            (0, s.we)("#StoreAdmin_PurchaseOptionsOrder_Title"),
          ),
          a.createElement(
            "p",
            null,
            (0, s.we)("#StoreAdmin_PurchaseOptionsOrder_Description"),
          ),
          a.createElement(
            "div",
            { className: sr.PurchaseOptionsManualToggleCtn },
            a.createElement(ir._H, { value: i, onChange: (e) => c(e) }),
            a.createElement(
              "div",
              { className: sr.Label },
              (0, s.we)("#StoreAdmin_PurchaseOptionsOrder_ToggleLabel"),
            ),
            a.createElement("input", {
              type: "hidden",
              name: "app[purchase_options_order][method]",
              value: i ? "manual" : "original",
            }),
          ),
          a.createElement(
            gr.Provider,
            { value: C },
            i &&
              a.createElement(
                a.Fragment,
                null,
                !g &&
                  a.createElement(
                    "div",
                    { className: sr.PurchaseOptionError },
                    a.createElement(m.Q9b, { className: sr.Exclamation }),
                    (0, s.we)(
                      "#StoreAdmin_PurchaseOptionsOrder_FirstItemMustBeBaseGame",
                    ),
                    "  ",
                    n.join(", "),
                  ),
                a.createElement(yr, {
                  appid: e.appid,
                  items: d,
                  setItems: u,
                  component: fr,
                  noItemsPlaceholder: a.createElement(
                    "p",
                    { className: sr.NoPurchaseOptions },
                    (0, s.we)(
                      "#StoreAdmin_PurchaseOptionsOrder_NoPurchaseOptionsPlaceholder",
                    ),
                  ),
                  emptyItem: () => ({ kind: cr }),
                  addText: (0, s.we)("#StoreAdmin_PurchaseOptionsOrder_Add"),
                }),
              ),
            a.createElement(hr, {
              rgOptions: d,
              rgOriginalOptions: e.rgPurchaseOptionsOrder,
            }),
          ),
        );
      }
      function hr(e) {
        const { rgOptions: t, rgOriginalOptions: n } = e;
        if ((0, a.useContext)(gr).bHasErrors) return null;
        const r = [];
        for (let e = 0; e < Math.max(t.length, n.length); e++)
          e < t.length
            ? r.push(
                a.createElement(
                  "div",
                  { key: e },
                  a.createElement(Sr, {
                    option: t[e],
                    originalOption: n[e] ?? null,
                    index: e,
                  }),
                ),
              )
            : r.push(
                a.createElement("input", {
                  key: e,
                  type: "hidden",
                  name: `app[purchase_options_order][order][${e}]`,
                  value: "",
                }),
              );
        return a.createElement(a.Fragment, null, r);
      }
      function Sr(e) {
        const { option: t, originalOption: n, index: r } = e,
          o = `app[purchase_options_order][order][${r}]`;
        if ((0, a.useContext)(gr).bHasErrors) return null;
        if (!n) return null;
        if (t.kind === n.kind && t.kind !== pr && t.kind !== mr) return null;
        if (t.kind === pr && n.kind === pr) {
          let e = [];
          if (t.dropdown_items.length < n.dropdown_items.length)
            for (
              let r = t.dropdown_items.length;
              r < n.dropdown_items.length;
              r++
            )
              e.push(
                a.createElement("input", {
                  type: "hidden",
                  name: `${o}[dropdown_items][${r}]`,
                  value: "",
                }),
              );
          for (const [r, l] of Object.entries(n.dropdown_title ?? {}))
            0 !== l.trim().length &&
              ((t.dropdown_title && t.dropdown_title[r].trim().length > 0) ||
                e.push(
                  a.createElement("input", {
                    type: "hidden",
                    name: `${o}[dropdown_title][${r}]`,
                    value: "",
                  }),
                ));
          for (const [r, l] of Object.entries(n.description ?? {}))
            0 !== l.trim().length &&
              ((t.description && t.description[r].trim().length > 0) ||
                e.push(
                  a.createElement("input", {
                    type: "hidden",
                    name: `${o}[description][${r}]`,
                    value: "",
                  }),
                ));
          return a.createElement(a.Fragment, null, e);
        }
        if (t.kind === mr && n.kind === mr) {
          let e = [];
          for (const [r, l] of Object.entries(n.header ?? {}))
            0 !== l.trim().length &&
              ((t.header && t.header[r].trim().length > 0) ||
                e.push(
                  a.createElement("input", {
                    type: "hidden",
                    name: `${o}[header][${r}]`,
                    value: "",
                  }),
                ));
          return a.createElement(a.Fragment, null, e);
        }
        switch (n.kind) {
          case dr:
            return a.createElement("input", {
              type: "hidden",
              name: `${o}[package_id]`,
              value: "",
            });
          case ur:
            return a.createElement("input", {
              type: "hidden",
              name: `${o}[bundle_id]`,
              value: "",
            });
          case mr:
            return a.createElement("input", {
              type: "hidden",
              name: `${o}[header]`,
              value: "",
            });
          case pr:
            return a.createElement(
              a.Fragment,
              null,
              a.createElement("input", {
                type: "hidden",
                name: `${o}[dropdown_title]`,
                value: "",
              }),
              a.createElement("input", {
                type: "hidden",
                name: `${o}[description]`,
                value: "",
              }),
              n.dropdown_items?.map((e, t) =>
                a.createElement("input", {
                  key: t,
                  type: "hidden",
                  name: `${o}[dropdown_items][${t}]`,
                  value: "",
                }),
              ),
            );
          case cr:
            return null;
        }
      }
      function fr(e) {
        const { index: t, item: n, setItem: r, removeItem: o } = e,
          l = (0, a.useContext)(gr),
          i = [
            {
              value: dr,
              label: (0, s.we)("#StoreAdmin_PurchaseOptionsOrder_Package"),
            },
            {
              value: ur,
              label: (0, s.we)("#StoreAdmin_PurchaseOptionsOrder_Bundle"),
            },
            {
              value: mr,
              label: (0, s.we)("#StoreAdmin_PurchaseOptionsOrder_Header"),
            },
            {
              value: pr,
              label: (0, s.we)("#StoreAdmin_PurchaseOptionsOrder_Dropdown"),
            },
          ];
        let c;
        switch (n.kind) {
          case cr:
            c = a.createElement(kr, { item: n, index: t });
            break;
          case dr:
            c = a.createElement(Ar, { item: n, setItem: r, index: t });
            break;
          case ur:
            c = a.createElement(vr, { item: n, setItem: r, index: t });
            break;
          case mr:
            c = a.createElement(wr, { item: n, setItem: r, index: t });
            break;
          case pr:
            c = a.createElement(Pr, { item: n, setItem: r, index: t });
        }
        return a.createElement(
          "div",
          { className: sr.PurchaseOption },
          !l.bHasErrors &&
            a.createElement("input", {
              type: "hidden",
              name: `app[purchase_options_order][order][${t}][kind]`,
              value: n.kind,
            }),
          a.createElement(
            "div",
            { className: sr.PurchaseOptionFirstLine },
            a.createElement(
              "select",
              {
                onChange: (e) => {
                  let t = structuredClone(n);
                  (t.kind = e.target.value), r(t);
                },
                value: n.kind,
              },
              a.createElement("option", { hidden: !0, value: cr }),
              i.map((e, t) =>
                a.createElement("option", { key: t, value: e.value }, e.label),
              ),
            ),
            a.createElement(
              "a",
              { className: sr.RemovePurchaseOption, onClick: o },
              (0, s.we)("#StoreAdmin_PurchaseOptionsOrder_Remove"),
            ),
          ),
          a.createElement("div", { className: sr.PurchaseOptionDetails }, c),
        );
      }
      function br(e) {
        return null === e.message
          ? null
          : a.createElement(
              "div",
              { className: sr.PurchaseOptionError },
              a.createElement(m.Q9b, { className: sr.Exclamation }),
              e.message,
            );
      }
      function kr(e) {
        const t = Er(e.item);
        return a.createElement(
          a.Fragment,
          null,
          a.createElement(br, { message: t }),
        );
      }
      function Ar(e) {
        const { item: t, index: n, setItem: r } = e,
          o = (0, a.useContext)(gr),
          l = o.rgAllPackages.find((e) => e.packageid === t.package_id),
          i = {
            value: t.package_id,
            label: l
              ? l.name
              : (0, s.we)("#StoreAdmin_PurchaseOptionsOrder_Loading"),
          };
        return a.createElement(
          "div",
          { className: sr.PackageOption },
          a.createElement(br, { message: Er(t) }),
          a.createElement(at.Ay, {
            className: "react-select-container",
            classNamePrefix: "react-select",
            isSearchable: !0,
            isMulti: !1,
            name: o.bHasErrors
              ? void 0
              : `app[purchase_options_order][order][${n}][package_id]`,
            placeholder: (0, s.we)(
              "#StoreAdmin_PurchaseOptionsOrder_PackagePlaceholder",
            ),
            options: o.rgUnusedPackages,
            value: i,
            onChange: (e) => {
              const n = structuredClone(t);
              (n.package_id = e.value), r(n);
            },
          }),
        );
      }
      function vr(e) {
        const t = (0, a.useContext)(gr),
          { item: n, setItem: r, index: o } = e;
        let l;
        if (n.bundle_id) {
          const e = t.rgAllBundles.find((e) => e.bundleid === n.bundle_id);
          l = {
            value: n.bundle_id,
            label: (0, s.we)(
              "#StoreAdmin_PurchaseOptionsOrder_NameWithId",
              e.name,
              n.bundle_id,
            ),
          };
        }
        return a.createElement(
          "div",
          { className: sr.BundleOption },
          a.createElement(br, { message: Er(n) }),
          a.createElement(at.Ay, {
            className: "react-select-container",
            classNamePrefix: "react-select",
            isSearchable: !0,
            isMulti: !1,
            value: l,
            name: t.bHasErrors
              ? void 0
              : `app[purchase_options_order][order][${o}][bundle_id]`,
            placeholder: (0, s.we)(
              "#StoreAdmin_PurchaseOptionsOrder_BundlePlaceholder",
            ),
            options: t.rgUnusedBundles,
            onChange: (e) => {
              const t = structuredClone(n);
              (t.bundle_id = e.value), r(t);
            },
          }),
        );
      }
      function wr(e) {
        const t = (0, a.useContext)(gr),
          { index: n, item: r, setItem: o } = e,
          [l, s] = (0, a.useState)("english"),
          i = (r.header && r.header[l]) || "";
        return a.createElement(
          a.Fragment,
          null,
          a.createElement(br, { message: Er(r) }),
          a.createElement(
            "div",
            { className: sr.PurchaseOptionHeader },
            a.createElement("input", {
              type: "hidden",
              value: mr,
              name: `app[purchase_options_order][order][${n}][kind]`,
            }),
            a.createElement("input", {
              type: "text",
              onInput: (e) => {
                const t = e.target.value;
                let n = structuredClone(r);
                void 0 === n.header && (n.header = {}), (n.header[l] = t), o(n);
              },
              value: i,
              name: `app[purchase_options_order][order][${n}][header][${l}]`,
              className: sr.HeaderText,
              placeholder: "Header text",
            }),
            t.rgValidLanguages.map((e, t) =>
              e.value === l
                ? null
                : r.header && r.header[e.value]
                  ? a.createElement("input", {
                      key: t,
                      type: "hidden",
                      name: `app[purchase_options_order][order][${n}][header][${e.value}]`,
                      value: r.header[e.value],
                    })
                  : null,
            ),
            a.createElement(
              "select",
              {
                value: l,
                onChange: (e) => {
                  const t = e.target.value;
                  s(t);
                },
                className: sr.HeaderLanguage,
              },
              t.rgValidLanguages.map((e, t) =>
                a.createElement("option", { key: t, value: e.value }, e.label),
              ),
            ),
          ),
        );
      }
      function Pr(e) {
        const t = (0, a.useContext)(gr),
          { item: n, setItem: r, index: o } = e,
          [l, i] = (0, a.useState)("english"),
          [c, d] = (0, a.useState)("english"),
          u = t.rgUnusedPackages.map((e) => ({
            value: ["package", e.value],
            label: e.label,
          }));
        return a.createElement(
          "div",
          { className: sr.DropdownOption },
          a.createElement(br, { message: Er(n) }),
          a.createElement(
            "div",
            { className: sr.TitleLine },
            a.createElement(
              "label",
              null,
              (0, s.we)("#StoreAdmin_PurchaseOptionsOrder_DropdownTitleLabel"),
            ),
            a.createElement("input", {
              type: "text",
              className: sr.TitleInput,
              name: `app[purchase_options_order][order][${o}][dropdown_title][${l}]`,
              value: (n.dropdown_title && n.dropdown_title[l]) || "",
              placeholder: (0, s.we)(
                "#StoreAdmin_PurchaseOptionsOrder_DropdownTitlePlaceholder",
              ),
              onChange: (e) => {
                const t = structuredClone(n);
                t.dropdown_title || (t.dropdown_title = {}),
                  (t.dropdown_title[l] = e.target.value),
                  r(t);
              },
            }),
            t.rgValidLanguages.map((e, t) =>
              e.value === l
                ? null
                : n.dropdown_title &&
                    n.dropdown_title[e.value] &&
                    n.dropdown_title[e.value].trim().length > 0
                  ? a.createElement("input", {
                      key: t,
                      type: "hidden",
                      name: `app[purchase_options_order][order][${o}][dropdown_title][${e.value}]`,
                      value: n.dropdown_title[e.value],
                    })
                  : null,
            ),
            a.createElement(
              "select",
              {
                value: l,
                onChange: (e) => i(e.target.value),
                className: sr.HeaderLanguage,
              },
              t.rgValidLanguages.map((e, t) =>
                a.createElement("option", { key: t, value: e.value }, e.label),
              ),
            ),
          ),
          a.createElement(
            "div",
            { className: sr.DescriptionLine },
            a.createElement(
              "label",
              null,
              (0, s.we)(
                "#StoreAdmin_PurchaseOptionsOrder_DropdownDescriptionLabel",
              ),
            ),
            a.createElement(
              "select",
              {
                value: c,
                onChange: (e) => d(e.target.value),
                className: sr.HeaderLanguage,
              },
              t.rgValidLanguages.map((e, t) =>
                a.createElement("option", { key: t, value: e.value }, e.label),
              ),
            ),
          ),
          a.createElement("input", {
            type: "text",
            className: sr.DescriptionInput,
            name: `app[purchase_options_order][order][${o}][description][${c}]`,
            value: (n.description && n.description[c]) || "",
            onChange: (e) => {
              const t = structuredClone(n);
              t.description || (t.description = {}),
                (t.description[c] = e.target.value),
                r(t);
            },
            placeholder: (0, s.we)(
              "#StoreAdmin_PurchaseOptionsOrder_DropdownDescriptionPlaceholder",
            ),
          }),
          t.rgValidLanguages.map((e, t) =>
            e.value === c
              ? null
              : n.description &&
                  n.description[e.value] &&
                  n.description[e.value].trim().length > 0
                ? a.createElement("input", {
                    key: t,
                    type: "hidden",
                    name: `app[purchase_options_order][order][${o}][description][${e.value}]`,
                    value: n.description[e.value],
                  })
                : null,
          ),
          a.createElement(
            "div",
            { className: sr.DropdownItemsCtn },
            a.createElement(
              "label",
              null,
              (0, s.we)("#StoreAdmin_PurchaseOptionsOrder_DropdownItemsLabel"),
            ),
            a.createElement(at.Ay, {
              className: "react-select-container",
              classNamePrefix: "react-select",
              isSearchable: !0,
              isMulti: !1,
              placeholder: (0, s.we)(
                "#StoreAdmin_PurchaseOptionsOrder_PackagePlaceholder",
              ),
              options: u,
              onChange: (e) => {
                const t = structuredClone(n);
                t.dropdown_items || (t.dropdown_items = []);
                let a = { kind: "package", package_id: e.value[1] };
                t.dropdown_items.push(a), r(t);
              },
              controlShouldRenderValue: !1,
            }),
            a.createElement(Ht.A, {
              render: (e) => {
                if (e.package_id) {
                  const n = t.rgAllPackages.find(
                    (t) => t.packageid === e.package_id,
                  );
                  return a.createElement(
                    "div",
                    { className: sr.DropdownOptionRow },
                    a.createElement(
                      "a",
                      {
                        href: `${_.TS.PARTNER_BASE_URL}store/packagelanding/${e.package_id}`,
                      },
                      (0, s.we)(
                        "#StoreAdmin_PurchaseOptionsOrder_NameWithId",
                        n.name,
                        e.package_id,
                      ),
                    ),
                  );
                }
                if (e.bundle_id) {
                  const n = t.rgAllBundles.find(
                    (t) => t.bundleid === e.bundle_id,
                  );
                  return a.createElement(
                    "div",
                    { className: sr.DropdownOptionRow },
                    a.createElement(
                      "a",
                      {
                        href: `${_.TS.PARTNER_BASE_URL}bundles/view/${e.bundle_id}`,
                      },
                      (0, s.we)(
                        "#StoreAdmin_PurchaseOptionsOrder_NameWithId",
                        n.name,
                        e.bundle_id,
                      ),
                    ),
                  );
                }
                return null;
              },
              onDelete: (e) => {
                const t = structuredClone(n);
                t.dropdown_items || (t.dropdown_items = []),
                  t.dropdown_items.splice(e, 1),
                  r(t);
              },
              onMove: (e, t) => {
                const a = structuredClone(n);
                a.dropdown_items || (a.dropdown_items = []);
                const [o] = a.dropdown_items.splice(e, 1);
                a.dropdown_items.splice(t, 0, o), r(a);
              },
              items: n.dropdown_items ?? [],
            }),
            (n.dropdown_items ?? []).map((e, t) =>
              a.createElement(
                "div",
                { key: t },
                a.createElement("input", {
                  type: "hidden",
                  name: `app[purchase_options_order][order][${o}][dropdown_items][${t}][kind]`,
                  value: "package",
                }),
                a.createElement("input", {
                  type: "hidden",
                  name: `app[purchase_options_order][order][${o}][dropdown_items][${t}][package_id]`,
                  value: e.package_id,
                }),
              ),
            ),
          ),
        );
      }
      function yr(e) {
        const {
            items: t,
            setItems: n,
            component: r,
            emptyItem: o,
            noItemsPlaceholder: l,
            addText: s,
          } = e,
          i = (e) => () => {
            if (0 === e) return;
            let a = [...t];
            const [r] = a.splice(e, 1);
            a.splice(e - 1, 0, r), n(a);
          },
          c = (e) => () => {
            if (e === t.length - 1) return;
            let a = [...t];
            const [r] = a.splice(e, 1);
            a.splice(e + 1, 0, r), n(a);
          },
          d = (e) => (a) => {
            let r = [...t];
            (r[e] = a), n(r);
          },
          u = (e) => () => {
            let a = [...t];
            a.splice(e, 1), n(a);
          };
        return a.createElement(
          "div",
          { className: sr.ReorderableListWithArrows },
          t.length > 0 &&
            t.map((e, t) =>
              a.createElement(Dr, {
                key: "reorderable-" + t,
                index: t,
                item: e,
                setItem: d(t),
                removeItem: u(t),
                component: r,
                moveUp: i(t),
                moveDown: c(t),
              }),
            ),
          0 === t.length && l,
          a.createElement("a", { onClick: () => (n(t.concat([o()])), !1) }, s),
        );
      }
      function Dr(e) {
        const {
          index: t,
          item: n,
          setItem: r,
          moveUp: o,
          moveDown: l,
          removeItem: s,
        } = e;
        return a.createElement(
          "div",
          { className: sr.ReorderableListElement },
          a.createElement(
            "div",
            { className: sr.ReorderableListUpAndDownCtn },
            a.createElement("div", { onClick: () => o() }, "▲"),
            a.createElement("div", { onClick: () => l() }, "▼"),
          ),
          a.createElement(
            "div",
            { className: sr.ReorderableListElementContents },
            a.createElement(e.component, {
              index: t,
              item: n,
              setItem: r,
              removeItem: s,
            }),
          ),
        );
      }
      var Nr = n(4544),
        Tr = n(44165),
        Ir = n(1909),
        Rr = n(78395),
        Lr = n(22837),
        Br = n(2160),
        Mr = n(63556),
        xr = n(21869),
        Or = n(1431),
        Fr = n.n(Or);
      const Ur = { include_assets: !0, include_basic_info: !0 };
      function Gr(e) {
        const { appid: t } = e,
          [n] = (0, $e.t7)(t, Ur),
          r = (0, Rt.n9)();
        return n && t
          ? a.createElement(
              "div",
              { className: Fr().StoreItemCtn },
              a.createElement(
                "div",
                { className: Fr().StoreItemRow },
                a.createElement(
                  "a",
                  { href: (0, Ct.wJ)(n.GetStorePageURL(), r) },
                  a.createElement("img", {
                    src: n.GetAssets().GetSmallCapsuleURL(),
                  }),
                ),
                a.createElement(
                  "div",
                  { className: Fr().StoreItemDescription },
                  n.GetShortDescription(),
                  " ",
                ),
              ),
            )
          : null;
      }
      function Hr(e) {
        const {
            text: t,
            placeholderToken: n,
            kvName: r,
            onChangeText: o,
            bOnlyDisplay: l,
            rgRealms: i,
            className: c,
          } = e,
          d = (0, Mr.E)(),
          u = s.A0.GetLanguageListForRealms(i),
          m = new Array();
        r &&
          u.forEach((e) => {
            m.push(
              a.createElement("input", {
                key: r + "_" + e,
                type: "hidden",
                name: `${r}[${(0, Lr.Lg)(e, "english")}]`,
                value: (0, Nr.VX)(t, e),
              }),
            );
          });
        const p = (0, Nr.VX)(t, d) || "";
        return a.createElement(
          "div",
          { className: c },
          l
            ? a.createElement("div", null, p || a.createElement("i", null, n))
            : a.createElement("input", {
                type: "text",
                placeholder: (0, s.we)(n || "#KVInputBox_Default"),
                value: p,
                onChange: (e) => o(e.currentTarget.value, d),
              }),
          m,
        );
      }
      var Wr = n(26408),
        Kr = n(36500),
        Vr = n.n(Kr),
        $r = n(64442),
        zr = n.n($r),
        Yr = n(14947);
      class Xr {
        m_mapAppIDToDLCs = new Map();
        m_mapPromise = new Map();
        GetDLCForAppID(e) {
          return this.m_mapAppIDToDLCs.get(e);
        }
        async LoadDLCForAppID(e, t) {
          return (
            this.m_mapPromise.has(e) ||
              this.m_mapPromise.set(e, this.InternalLoadDLCForAppID(e, t)),
            this.m_mapPromise.get(e)
          );
        }
        async InternalLoadDLCForAppID(e, t) {
          if (!this.m_mapAppIDToDLCs.has(e) && 0 != e)
            try {
              let n = {
                  origin: self.origin,
                  cc: _.TS.COUNTRY || "US",
                  l: _.TS.LANGUAGE,
                },
                a = "";
              a =
                "partnerweb" == (0, _.yK)()
                  ? `${_.TS.PARTNER_BASE_URL}seasonpass/ajaxgetreleasedorupcomingdlc?parentappid=${e}`
                  : _.TS.STORE_BASE_URL + "dlc/" + e + "/ajaxgetdlclist";
              let r = await ie().get(a, { params: n, cancelToken: t?.token }),
                o = Array();
              r.data.dlcs &&
                r.data.dlcs.forEach((e) => {
                  o.push({
                    appid: e.appid,
                    name: e.name,
                    is_released_somewhere: Boolean(e.is_released_somewhere),
                  });
                }),
                this.m_mapAppIDToDLCs.set(e, o);
            } catch (t) {
              const n = (0, Mn.H)(t);
              console.error(
                "LoadDLCForAppID for appid: " + e + " hit: " + n.strErrorMsg,
                n,
              );
            }
          return this.m_mapAppIDToDLCs.has(e)
            ? this.m_mapAppIDToDLCs.get(e)
            : [];
        }
        static s_Singleton;
        static Get() {
          return (
            Xr.s_Singleton ||
              ((Xr.s_Singleton = new Xr()),
              "dev" == _.TS.WEB_UNIVERSE &&
                (window.g_StoreTagCache = Xr.s_Singleton)),
            Xr.s_Singleton
          );
        }
        constructor() {
          (0, Yr.Gn)(this);
        }
      }
      function qr(e) {
        const [t, n] = (0, a.useState)(e),
          [r, o] = (0, a.useState)(Xr.Get().GetDLCForAppID(t));
        return (
          (0, a.useEffect)(() => {
            !e ||
              (e == t && r) ||
              Xr.Get()
                .LoadDLCForAppID(t, null)
                .then((t) => {
                  o(t), n(e);
                });
          }, [t, e, r]),
          r
        );
      }
      function jr(e) {
        const {
            appid: t,
            setAppID: n,
            rgExcludeAppIDs: r,
            seasonPassID: o,
            bOnlyShowReleaseDLC: l,
            strLocalizedLabel: i,
            strLocalizedTooltip: c,
          } = e,
          d = qr(o.parentAppID),
          m = (0, a.useMemo)(
            () => d?.filter((e) => !l || Boolean(e.is_released_somewhere)),
            [d, l],
          ),
          p = (0, a.useMemo)(
            () => m?.filter((e) => !r || !r.includes(e.appid)),
            [m, r],
          ),
          _ = (0, a.useMemo)(
            () =>
              p
                ? p.map((e) => ({
                    label: a.createElement(Zr, { appInfo: e }),
                    data: e.appid,
                  }))
                : [],
            [p],
          );
        return p
          ? 0 == _.length && l
            ? a.createElement(
                "div",
                { className: (0, u.A)(ha.ErrorStylesWithIcon, "ErrorCtn") },
                (0, s.we)("#SeasonPass_NoDLC"),
              )
            : a.createElement(v.m, {
                label: i || (0, s.we)("#SeasonPass_ShipDLC"),
                tooltip: c || (0, s.we)("#SeasonPass_ShipDLC_ttip"),
                selectedOption: t,
                onChange: (e) => n(e.data),
                rgOptions: _,
              })
          : a.createElement(me.t, {
              size: "small",
              position: "center",
              string: (0, s.we)("#Loading"),
            });
      }
      const Qr = { include_release: !0 };
      function Zr(e) {
        const { appInfo: t } = e,
          [n] = (0, $e.t7)(t.appid, Qr);
        return n
          ? a.createElement(
              "span",
              null,
              t.name,
              " - (",
              n.BIsComingSoon()
                ? (0, s.we)("#SeasonPass_Customer_ComingSoon_Mark")
                : (0, s.TW)(n.GetReleaseDateRTime()),
              ")",
            )
          : a.createElement("span", null, t.name);
      }
      function Jr(e) {
        const {
            mileStone: t,
            index: n,
            bCreate: r,
            bAppHasSteamChinaToolsEnabled: o,
            rgShippedMilestoneIDs: l,
          } = e,
          [i, c, d] = (0, K.uD)(),
          m = a.useMemo(() => (0, s.O9)(o), [o]),
          p = a.useMemo(
            () => (0, Nr.mn)(t?.milestone_desc || { english: "" }),
            [t?.milestone_desc],
          ),
          _ = a.useMemo(
            () => ["seasonpass", "commitments", "" + n, "milestone_desc"],
            [n],
          ),
          E = (0, H.K)(m, p, "app", r ? void 0 : _);
        return (
          (0, a.useEffect)(() => {
            if (i) {
              const e = (0, Lr.sf)(E.strActiveLanguage, 0);
              Mr.O.Get().SetCurEditLanguage(e);
            }
          }, [E.strActiveLanguage, i]),
          (0, K.hL)(Mr.O.Get().GetCallback(), (e) => {
            E.setActiveLanguage((0, Lr.Lg)(e));
          }),
          a.createElement(
            "div",
            { className: (0, u.A)(zr().EditBtn, Vr().BtnCtn) },
            i && a.createElement(eo, { hideModal: d, bCreate: r, ...e, ...E }),
            !r && E.rctHiddenInputs,
            a.createElement(
              v.$n,
              { onClick: c },
              (0, s.we)(r ? "#SeasonPass_ItemNew" : "#Button_Edit"),
              r &&
                a.createElement(Wr.o, {
                  tooltip: (0, s.we)("#SeasonPass_ItemNew_desc"),
                }),
            ),
          )
        );
      }
      function eo(e) {
        const {
            hideModal: t,
            seasonPassID: n,
            mileStone: r,
            milestoneID: o,
            onSave: l,
            strActiveLanguage: i,
            rctLanguageSelect: c,
            mapValues: d,
            bAppHasSteamChinaToolsEnabled: u,
            bCreate: m,
            rgShippedMilestoneIDs: p,
          } = e,
          _ = (0, Tr.f1)(),
          [E, g] = (0, a.useState)(r?.internal_desc || ""),
          [C, h] = (0, a.useState)(r?.expected_delivery || _ + 86400),
          [S, f] = (0, a.useState)(r?.display_format || "date_quarter"),
          [b, k] = (0, a.useState)(r?.localized_title || { english: "" }),
          [A] = (0, a.useState)(r?.milestone_desc || {}),
          [w, P] = (0, a.useState)(r?.coming_soon_appid),
          [y, D] = (0, a.useState)(Boolean(r?.backfilled_release)),
          N = (0, a.useRef)(void 0),
          [T, I] = (0, a.useState)(!1),
          R = (0, a.useMemo)(
            () =>
              u
                ? [Br.TU.k_ESteamRealmGlobal, Br.TU.k_ESteamRealmChina]
                : [Br.TU.k_ESteamRealmGlobal],
            [u],
          ),
          L = (0, s.we)(r ? "#SeasonPass_Update" : "#SeasonPass_Create"),
          B = p?.includes(o);
        return a.createElement(
          xr.E,
          { active: !0 },
          a.createElement(
            Rr.o0,
            {
              strTitle: L,
              strDescription: (0, s.we)("#SeasonPass_Create_desc"),
              bAllowFullSize: !0,
              bDisableBackgroundDismiss: !0,
              strOKButtonText: (0, s.we)(
                r ? "#Button_Update" : "#Button_Create",
              ),
              onOK: () => {
                const e = {};
                d.forEach((t, n) => {
                  e[n] = t.Value;
                }),
                  l({
                    milestone_id: o,
                    internal_desc: E,
                    expected_delivery: C,
                    submit_time: _,
                    submit_accountid: nt.iA.accountid,
                    display_format: S,
                    localized_title: b,
                    milestone_desc: e,
                    milestone_image: void 0,
                    backfilled_release: y,
                    coming_soon_appid: w,
                  }),
                  m && d.forEach((e, t) => d.get(t).Set("")),
                  t();
              },
              onCancel: () => {
                d.forEach((e, t) => {
                  A?.[t] ? d.get(t).Set(A[t]) : d.get(t).Set("");
                }),
                  t();
              },
              bOKDisabled: (!y && C < _) || b.english.length < 3,
            },
            a.createElement(
              "div",
              { className: zr().EditMilestoneDialog },
              a.createElement(
                "h3",
                null,
                (0, s.we)("#SeasonPass_CustomerTitle"),
                a.createElement(
                  "span",
                  { className: "DialogInputRequirementLabel" },
                  (0, s.we)("#Steamworks_Generic_Required"),
                ),
              ),
              a.createElement(
                "p",
                null,
                (0, s.we)("#SeasonPass_CustomerSubtitle"),
              ),
              a.createElement(Hr, {
                text: b,
                className: zr().MilestoneTitleField,
                onChangeText: (e, t) => {
                  (0, Nr.pV)(b, t, e), k({ ...b });
                },
                kvName: void 0,
                rgRealms: R,
              }),
              a.createElement(
                "h3",
                null,
                (0, s.we)("#SeasonPass_CustomerDescription_Title"),
                a.createElement(
                  "span",
                  { className: "DialogInputRequirementLabel" },
                  (0, s.we)("#Steamworks_Generic_Required"),
                ),
              ),
              a.createElement(
                "p",
                null,
                (0, s.we)("#SeasonPass_CustomerDescription_Subtitle"),
              ),
              a.createElement(
                "p",
                null,
                (0, s.we)("#SeasonPass_CustomerDescription_Images"),
              ),
              a.createElement(J.default, {
                language: i,
                editorType: "milestone",
                rctToolbarControls: c,
                value: d.get(i),
                rctAboveEditor: a.createElement(Gr, {
                  appid: r?.completed_appid || w,
                }),
              }),
              !B &&
                a.createElement(jr, {
                  appid: w,
                  setAppID: P,
                  rgExcludeAppIDs: null,
                  seasonPassID: n,
                  strLocalizedLabel: (0, s.we)(
                    "#SeasonPass_CustomerComingSoonDLC",
                  ),
                  strLocalizedTooltip: (0, s.we)(
                    "#SeasonPass_CustomerComingSoonDLC_ttip",
                  ),
                }),
              !B &&
                a.createElement(
                  "div",
                  null,
                  a.createElement(
                    "div",
                    { className: zr().DatePickerRow },
                    a.createElement(
                      "div",
                      null,
                      a.createElement(
                        "h3",
                        null,
                        (0, s.we)(
                          y
                            ? "#SeasonPass_Backfill_date"
                            : "#SeasonPass_Delivery",
                        ),
                      ),
                      a.createElement(
                        "p",
                        null,
                        (0, s.we)(
                          y
                            ? "#SeasonPass_Backfill_date_ttip"
                            : "#SeasonPass_Delivery_ttip",
                        ),
                      ),
                      a.createElement(ue.K, {
                        nEarliestTime: y ? 0 : _,
                        fnGetTimeToUpdate: () => C,
                        fnSetTimeToUpdate: h,
                        fnIsValidDateTime: () => (y ? C < _ : _ < C),
                        strInvalidDateTimeLocalizedMsg: y
                          ? (0, s.we)("#SeasonPass_BackFill_invalid_date")
                          : void 0,
                      }),
                    ),
                    Boolean(!y) &&
                      a.createElement(
                        "div",
                        null,
                        a.createElement(
                          "h3",
                          null,
                          (0, s.we)("#SeasonPass_CustomerDisplay"),
                        ),
                        a.createElement(
                          "p",
                          null,
                          (0, s.we)("#SeasonPass_CustomerDisplay_ttip"),
                        ),
                        a.createElement(Ce, {
                          value: S,
                          onChange: f,
                          rgComingSoonOptionOverride: ge,
                          rtSteamReleaseDate: C,
                          bExpandedDisplay: !0,
                        }),
                      ),
                  ),
                  a.createElement(v.Yh, {
                    ref: N,
                    label: (0, s.we)("#SeasonPass_Backfill_check"),
                    tooltip: (0, s.we)("#SeasonPass_Backfill_check_ttip"),
                    onChange: (e) => {
                      let t = !(!e && C < _);
                      I(!t), t ? D(e) : N.current.SetChecked(!0, !1);
                    },
                    checked: y,
                  }),
                  T &&
                    a.createElement(
                      "div",
                      { className: ha.WarningStylesWithIcon },
                      (0, s.we)("#SeasonPass_Backfill_warning"),
                    ),
                ),
              a.createElement("br", null),
            ),
          ),
        );
      }
      function to(e) {
        const { milestoneID: t, rgPublishedMilestoneIDs: n, onDelete: r } = e,
          [o, l, i] = (0, K.uD)();
        return !n || n?.includes(t)
          ? null
          : a.createElement(
              "div",
              { className: (0, u.A)(zr().EditBtn, Vr().BtnCtn) },
              a.createElement(
                xr.E,
                { active: o },
                a.createElement(Rr.o0, {
                  strTitle: (0, s.we)("#Button_Delete"),
                  strDescription: (0, s.we)("#Dialog_AreYouSure"),
                  onOK: r,
                  bDestructiveWarning: !0,
                  bDisableBackgroundDismiss: !1,
                  closeModal: i,
                }),
              ),
              a.createElement(
                v.$n,
                { onClick: l },
                (0, s.we)("#Button_Delete"),
              ),
            );
      }
      var no = n(73967);
      const ao = { include_release: !0, include_included_items: !0 };
      function ro(e) {
        const {
            inputMilestone: t,
            setCurrentMilestone: n,
            seasonPassID: r,
            rgAllMilestones: o,
            index: l,
            rgShippedMilestoneIDs: i,
          } = e,
          [c] = (0, $e.t7)(t.completed_appid, ao),
          [d, u, m] = (0, K.uD)(),
          p = Boolean(i.includes(t.milestone_id));
        return a.createElement(
          "div",
          { className: zr().StatusRow },
          Boolean(p) &&
            a.createElement(
              a.Fragment,
              null,
              a.createElement("div", { className: zr().CheckMark }, "✓"),
            ),
          Boolean(t.completed_appid) &&
            a.createElement(
              a.Fragment,
              null,
              a.createElement(
                "a",
                {
                  href: `${Ln.TS.STORE_BASE_URL}app/${t.completed_appid}`,
                  target: "_blank",
                },
                c?.GetName() || "",
                " (",
                t.completed_appid,
                ")",
              ),
              a.createElement("input", {
                type: "hidden",
                name: `app[seasonpass][commitments][${l}][completed_appid]`,
                value: t.completed_appid,
              }),
            ),
          Boolean(t.completed_event_gid) &&
            a.createElement(
              "div",
              null,
              a.createElement(
                "a",
                {
                  href: `${Ln.TS.STORE_BASE_URL}news/app/${r.parentAppID}/view/${t.completed_event_gid}`,
                  target: "_blank",
                },
                (0, s.we)("#SeasonPass_ViewLaunchEvent"),
              ),
              a.createElement("input", {
                type: "hidden",
                name: `app[seasonpass][commitments][${l}][completed_event_gid]`,
                value: "" + t.completed_event_gid,
              }),
            ),
          Boolean(!p) &&
            a.createElement(
              a.Fragment,
              null,
              d &&
                a.createElement(oo, {
                  inputMilestone: t,
                  setCurrentMilestone: n,
                  rgAllMilestones: o,
                  seasonPassID: r,
                  hideModal: m,
                }),
              a.createElement(
                v.$n,
                { onClick: u },
                (0, s.we)(
                  t.completed_appid ||
                    t.completed_event_gid ||
                    t.backfilled_release
                    ? "#SeasonPass_UpdateLaunch_Edit"
                    : "#SeasonPass_UpdateLaunch",
                ),
              ),
            ),
        );
      }
      function oo(e) {
        const {
            hideModal: t,
            inputMilestone: n,
            setCurrentMilestone: r,
            seasonPassID: o,
            rgAllMilestones: l,
          } = e,
          [i, c] = (0, a.useState)(n.completed_appid),
          [d, m] = (0, a.useState)(n.completed_event_gid),
          [p, _] = (0, a.useState)(() => Boolean(n.completed_appid)),
          [E, g] = (0, a.useState)(Boolean(n.completed_event_gid)),
          C = (0, a.useMemo)(() => {
            const e = new Array();
            return (
              e.push(o.dlcAppID),
              l.forEach((t) => {
                t.milestone_id != n.milestone_id &&
                  t.completed_appid &&
                  e.push(t.completed_appid);
              }),
              e
            );
          }, [n.milestone_id, l, o.dlcAppID]);
        return a.createElement(
          xr.E,
          { active: !0 },
          a.createElement(
            Rr.o0,
            {
              bAllowFullSize: !0,
              bDisableBackgroundDismiss: !0,
              strTitle: (0, s.PP)(
                "#SeasonPass_UpdateLaunch_title",
                n.localized_title?.[Ln.TS.LANGUAGE] ||
                  n.localized_title?.english,
              ),
              strDescription: (0, s.we)(
                n.backfilled_release
                  ? "#SeasonPass_UpdateLaunch_desc_backfill"
                  : "#SeasonPass_UpdateLaunch_desc",
              ),
              closeModal: t,
              bOKDisabled: p && !i,
              onOK: () => {
                r({ ...n, completed_appid: i, completed_event_gid: d });
              },
            },
            a.createElement(
              "div",
              { className: (0, u.A)(zr().ShippingTheMilestone) },
              a.createElement(
                "div",
                { className: (0, u.A)(zr().ShippingType) },
                a.createElement(
                  v.G5,
                  null,
                  a.createElement(
                    v.lr,
                    null,
                    (0, s.we)("#SeasonPass_UpdateLaunch_radio_label"),
                  ),
                  a.createElement(v.Od, {
                    checked: !p,
                    onChange: (e) => e && _(!1),
                    label: (0, s.we)("#SeasonPass_UpdateLaunch_radio_label_1"),
                  }),
                  a.createElement(v.Od, {
                    checked: p,
                    onChange: (e) => e && _(!0),
                    label: (0, s.we)("#SeasonPass_UpdateLaunch_radio_label_2"),
                    tooltip: (0, s.we)(
                      "#SeasonPass_UpdateLaunch_radio_label_2_ttip",
                    ),
                  }),
                ),
              ),
              a.createElement("hr", null),
              a.createElement("br", null),
              Boolean(!p || E) &&
                a.createElement(
                  "div",
                  { className: zr().OptionDetails },
                  a.createElement(
                    v.JU,
                    null,
                    (0, s.we)("#SeasonPass_UpdateLaunch_update"),
                    a.createElement(Wr.o, {
                      tooltip: (0, s.we)("#SeasonPass_AddLaunchEvent"),
                    }),
                  ),
                  a.createElement(no.q, {
                    appid: o.parentAppID,
                    selectedEventGID: d,
                    fnSetUpdateEvent: (e, t) => m(t),
                    bFilterOutDrafts: !0,
                  }),
                  Boolean(nt.iA.is_support) &&
                    a.createElement(
                      "div",
                      { className: mt().ValveOnlyBackground },
                      a.createElement("div", null, "Selected GID: ", d),
                    ),
                ),
              p &&
                a.createElement(
                  "div",
                  { className: zr().OptionDetails },
                  a.createElement(
                    v.JU,
                    null,
                    (0, s.we)("#SeasonPass_UpdateLaunch_dlc"),
                  ),
                  a.createElement(jr, {
                    appid: i,
                    setAppID: c,
                    rgExcludeAppIDs: C,
                    seasonPassID: o,
                    bOnlyShowReleaseDLC: !0,
                  }),
                ),
              p &&
                !E &&
                a.createElement(
                  "div",
                  { className: zr().OptionDetails },
                  a.createElement(v.Yh, {
                    label: (0, s.we)("#SeaosnPass_OptionalEvents"),
                    checked: E,
                    onChange: (e) => g(e),
                  }),
                ),
            ),
          ),
        );
      }
      function lo(e) {
        const {
          seasonPassData: t,
          seasonPassID: n,
          rgPublishedMilestoneIDs: r,
          bAppHasSteamChinaToolsEnabled: o,
          fnDeleteMilestoneByID: l,
          rgShippedMilestoneIDs: i,
        } = e;
        return a.createElement(
          "div",
          { className: zr().MilestoneTable },
          a.createElement(v.JU, null, (0, s.we)("#SeasonPass_Milestone_table")),
          a.createElement(
            "table",
            { className: "landingTable" },
            a.createElement(
              "thead",
              null,
              a.createElement(
                "tr",
                null,
                a.createElement(
                  "th",
                  null,
                  (0, s.we)("#SeasonPass_Milestone_Title"),
                ),
                a.createElement("th", null),
              ),
            ),
            a.createElement(
              "tbody",
              null,
              t?.commitments
                ?.sort((e, t) => e.expected_delivery - t.expected_delivery)
                .map((e, s) =>
                  a.createElement(io, {
                    key: "row" + e.milestone_id,
                    inputMilestone: e,
                    index: s,
                    seasonPassID: n,
                    rgAllMilestones: t.commitments,
                    bAppHasSteamChinaToolsEnabled: o,
                    rgPublishedMilestoneIDs: r,
                    rgShippedMilestoneIDs: i,
                    fnDeleteMilestone: () => l(e.milestone_id),
                  }),
                ),
            ),
          ),
        );
      }
      function so(e) {
        const { milestone: t, index: n } = e;
        return a.createElement(
          a.Fragment,
          null,
          a.createElement("input", {
            type: "hidden",
            name: `app[seasonpass][commitments][${n}][milestone_id]`,
            value: t ? t.milestone_id : void 0,
          }),
          a.createElement("input", {
            type: "hidden",
            name: `app[seasonpass][commitments][${n}][internal_desc]`,
            value: t ? t.internal_desc : void 0,
          }),
          a.createElement("input", {
            type: "hidden",
            name: `app[seasonpass][commitments][${n}][submit_time]`,
            value: t ? t.submit_time : void 0,
          }),
          a.createElement("input", {
            type: "hidden",
            name: `app[seasonpass][commitments][${n}][submit_accountid]`,
            value: t ? t.submit_accountid : void 0,
          }),
          a.createElement("input", {
            type: "hidden",
            name: `app[seasonpass][commitments][${n}][expected_delivery]`,
            value: t ? t.expected_delivery : void 0,
          }),
          a.createElement("input", {
            type: "hidden",
            name: `app[seasonpass][commitments][${n}][display_format]`,
            value: t ? t.display_format : void 0,
          }),
          a.createElement("input", {
            type: "hidden",
            name: `app[seasonpass][commitments][${n}][backfilled_release]`,
            value: t ? String(Boolean(t.backfilled_release)) : void 0,
          }),
          a.createElement("input", {
            type: "hidden",
            name: `app[seasonpass][commitments][${n}][coming_soon_appid]`,
            value: t ? t.coming_soon_appid : void 0,
          }),
          Boolean(!t) &&
            a.createElement(
              a.Fragment,
              null,
              a.createElement("input", {
                type: "hidden",
                name: `app[seasonpass][commitments][${n}][localized_title]`,
                value: void 0,
              }),
              a.createElement("input", {
                type: "hidden",
                name: `app[seasonpass][commitments][${n}][milestone_desc]`,
                value: void 0,
              }),
            ),
        );
      }
      function io(e) {
        const {
            inputMilestone: t,
            index: n,
            seasonPassID: r,
            rgAllMilestones: o,
            bAppHasSteamChinaToolsEnabled: l,
            rgPublishedMilestoneIDs: i,
            fnDeleteMilestone: c,
            rgShippedMilestoneIDs: d,
          } = e,
          [m, _] = (0, a.useState)(t),
          E = (0, Tr.sB)(),
          g = Boolean(d.includes(m.milestone_id)),
          C = !g && m.expected_delivery < E,
          h = (0, a.useMemo)(
            () =>
              l
                ? [Br.TU.k_ESteamRealmGlobal, Br.TU.k_ESteamRealmChina]
                : [Br.TU.k_ESteamRealmGlobal],
            [l],
          ),
          S = (0, Mr.E)(),
          f = s.A0.GetELanguageFallback(S);
        return a.createElement(
          "tr",
          null,
          a.createElement(
            "td",
            null,
            a.createElement(
              "div",
              {
                className: (0, u.A)({
                  [zr().TitlePreviewRow]: !0,
                  [zr().Shipped]: g,
                }),
              },
              a.createElement(so, { milestone: m, index: n }),
              a.createElement(Hr, {
                text: m.localized_title,
                className: zr().Title,
                onChangeText: null,
                kvName: `app[seasonpass][commitments][${n}][localized_title]`,
                bOnlyDisplay: !0,
                placeholderToken: (0, s.we)(
                  "#SeasonPass_NoLang_Fallback",
                  (0, s.we)("#Language_" + (0, Lr.Lg)(S)),
                  (0, s.we)("#Language_" + (0, Lr.Lg)(f)),
                ),
                rgRealms: h,
              }),
              g
                ? a.createElement(
                    "div",
                    { className: (0, u.A)(zr().Date, zr().Released) },
                    (0, s.we)("#SeasonPass_Released"),
                  )
                : a.createElement(
                    a.Fragment,
                    null,
                    Boolean(m?.backfilled_release)
                      ? a.createElement(
                          "div",
                          { className: zr().PublishReminder },
                          (0, s.we)("#SeasonPass_Backfill_require_publish"),
                        )
                      : a.createElement(
                          "div",
                          { className: (0, u.A)(zr().Date) },
                          a.createElement(
                            p.he,
                            {
                              toolTipContent:
                                (0, s.we)("#SeasonPass_Delivery") +
                                ": " +
                                (0, s.TW)(m.expected_delivery) +
                                " @ " +
                                (0, oe.KC)(m.expected_delivery),
                            },
                            (0, s.we)("#SeasonPass_Coming"),
                            a.createElement("br", null),
                            (0, re.M)(
                              m.display_format,
                              m.expected_delivery,
                              null,
                              !0,
                            ),
                          ),
                          C &&
                            a.createElement(
                              "div",
                              {
                                className: (0, u.A)(
                                  C ? Sa().ErrorStylesWithIcon : void 0,
                                ),
                              },
                              (0, s.we)("#SeasonPass_PassDueNote"),
                            ),
                        ),
                  ),
            ),
          ),
          a.createElement(
            "td",
            null,
            a.createElement(
              "div",
              { className: zr().BtnCtn },
              a.createElement(ro, {
                inputMilestone: m,
                setCurrentMilestone: _,
                seasonPassID: r,
                rgAllMilestones: o,
                index: n,
                rgShippedMilestoneIDs: d,
              }),
              a.createElement(Jr, {
                milestoneID: m.milestone_id,
                mileStone: m,
                onSave: _,
                index: n,
                bAppHasSteamChinaToolsEnabled: l,
                rgShippedMilestoneIDs: d,
                seasonPassID: r,
              }),
              a.createElement(to, {
                milestoneID: m.milestone_id,
                onDelete: c,
                rgPublishedMilestoneIDs: i,
              }),
            ),
          ),
        );
      }
      function co(e) {
        const {
            seasonPassID: t,
            seasonPassData: n,
            bAppHasSteamChinaToolsEnabled: r,
            rgPublishedMilestoneIDs: o,
            rgShippedMilestoneIDs: l,
          } = e,
          [s, i] = (0, a.useState)(n || { commitments: [] }),
          [c, d] = (0, a.useState)(n?.commitments?.length || 0),
          u = (0, a.useMemo)(() => {
            let e = 0;
            do {
              e = Math.floor(9e4 * Math.random()) + 1e4;
            } while (
              s?.commitments?.findIndex((t) => t.milestone_id == e) >= 0
            );
            return e;
          }, [s]),
          m = (0, a.useCallback)(
            (e) =>
              Boolean(
                s.commitments?.some(
                  (t) =>
                    (0, Nr.nU)(t.localized_title, e) ||
                    (0, Nr.nU)(t.milestone_desc, e),
                ),
              ),
            [s.commitments],
          ),
          p = [];
        if (c > s.commitments?.length)
          for (let e = s.commitments?.length; e < c; e++)
            p.push(a.createElement(so, { key: e, index: e, milestone: null }));
        return a.createElement(
          "div",
          { className: Vr().EditorCtn },
          a.createElement(Ir.yk, { fnLangHasData: m }),
          a.createElement(uo, {
            seasonPassID: t,
            nNextMilestoneID: u,
            index: s?.commitments?.length || 0,
            fnAppendSeasonPass: (e) => {
              i({ ...s, commitments: [...(s.commitments || []), e] }),
                d(Math.max(c, s.commitments ? s.commitments.length + 1 : 1));
            },
            bAppHasSteamChinaToolsEnabled: r,
            rgShippedMilestoneIDs: l,
          }),
          a.createElement(mo, { seasonPassData: s, rgShippedMilestoneIDs: l }),
          a.createElement(lo, {
            seasonPassID: t,
            seasonPassData: s,
            bAppHasSteamChinaToolsEnabled: r,
            rgPublishedMilestoneIDs: o,
            rgShippedMilestoneIDs: l,
            fnDeleteMilestoneByID: (e) => {
              const t = s.commitments.findIndex((t) => t.milestone_id == e);
              t >= 0 &&
                (s.commitments.splice(t, 1),
                i({ ...s, commitments: [...s.commitments] }));
            },
          }),
          p,
          Boolean(nt.iA.is_support) &&
            a.createElement(
              "div",
              { className: mt().ValveOnlyBackground },
              a.createElement(
                v.$n,
                {
                  onClick: (e) =>
                    (0, Cn.pg)(
                      a.createElement(Rr.o0, {
                        strTitle: "Clear?",
                        strDescription: "Are you sure?",
                        onOK: () => i({ commitments: [] }),
                      }),
                      (0, hn.uX)(e),
                    ),
                },
                "(VO) Clear All Milestones (in memory)",
              ),
            ),
          a.createElement("br", null),
          a.createElement("br", null),
        );
      }
      function uo(e) {
        const {
          seasonPassID: t,
          fnAppendSeasonPass: n,
          nNextMilestoneID: r,
          index: o,
          bAppHasSteamChinaToolsEnabled: l,
          rgShippedMilestoneIDs: i,
        } = e;
        return a.createElement(
          a.Fragment,
          null,
          a.createElement(
            "div",
            { className: (0, u.A)("instructions") },
            a.createElement(
              "div",
              { className: (0, u.A)("title2") },
              (0, s.we)("#SeasonPass_Title"),
              " ",
              a.createElement(
                "span",
                { className: "small" },
                a.createElement(
                  "a",
                  {
                    href: `${Ln.TS.PARTNER_BASE_URL}doc/store/seasonpass`,
                    target: "_blank",
                  },
                  (0, s.we)("#AssetRequest_General_SeeDocs"),
                ),
              ),
            ),
            a.createElement("br", { style: { clear: "left" } }),
            a.createElement("div", { className: "grayRule" }, " "),
            a.createElement(
              "div",
              { className: "instructions_table" },
              a.createElement(
                "div",
                { className: "instructions_table_row" },
                a.createElement(
                  "div",
                  { className: "instructions_table_cell left" },
                  a.createElement(
                    "strong",
                    null,
                    (0, s.we)("#Appmgmg_Generic_Title_Overview"),
                  ),
                ),
                a.createElement(
                  "div",
                  { className: "instructions_table_cell" },
                  a.createElement("p", null, (0, s.we)("#SeasonPass_Desc")),
                  a.createElement("p", null, (0, s.we)("#SeasonPass_Desc2")),
                  a.createElement("p", null, (0, s.we)("#SeasonPass_Desc3")),
                ),
              ),
              a.createElement(
                "div",
                { className: "instructions_table_row" },
                a.createElement(
                  "div",
                  { className: "instructions_table_cell left" },
                  a.createElement(
                    "strong",
                    null,
                    (0, s.we)("#Appmgmg_Generic_Title_Releasing"),
                  ),
                ),
                a.createElement(
                  "div",
                  { className: "instructions_table_cell" },
                  a.createElement(
                    "p",
                    null,
                    " ",
                    (0, s.oW)(
                      "#SeasonPass_Desc_Releasing",
                      a.createElement("a", {
                        href: `${Ln.TS.PARTNER_BASE_URL}doc/store/seasonpass#release`,
                        target: "_blank",
                      }),
                    ),
                  ),
                ),
              ),
            ),
          ),
          a.createElement(
            "div",
            { className: Vr().CreationButtonRow },
            a.createElement(
              "span",
              { className: Vr().LangBox },
              a.createElement(Ir.iN, null),
            ),
            a.createElement(
              "div",
              { className: Vr().MilestoneButton },
              a.createElement(Jr, {
                onSave: n,
                milestoneID: r,
                index: o,
                bCreate: !0,
                bAppHasSteamChinaToolsEnabled: l,
                rgShippedMilestoneIDs: i,
                seasonPassID: t,
              }),
            ),
          ),
        );
      }
      function mo(e) {
        const { seasonPassData: t, rgShippedMilestoneIDs: n } = e,
          r = (0, Tr.sB)(),
          [o, l, i] = (0, a.useMemo)(() => {
            const e =
                t?.commitments?.filter(
                  (e) => !e.completed_time && !n.includes(e.milestone_id),
                ) || [],
              a = e.filter(
                (e) =>
                  e.expected_delivery < r + 604800 && !e.backfilled_release,
              ),
              o = e.filter(
                (e) => e.expected_delivery < r && !e.backfilled_release,
              );
            return [e.length > 0, a.length > 0, o.length > 0];
          }, [t, r, n]);
        return o
          ? a.createElement(
              a.Fragment,
              null,
              i &&
                a.createElement(
                  "div",
                  { className: Sa().ErrorStylesWithIcon },
                  (0, s.we)("#SeasonPass_PassDue"),
                ),
            )
          : null;
      }
      var po = n(29602);
      function _o(e) {
        const {
            rgSocialMedia: t,
            rgSupportedSocialMediaTypes: n,
            rgValidationData: r,
          } = e,
          [o, l] = a.useState(t ? [...t] : []),
          [i, c] = a.useState(o.length),
          d = a.useMemo(
            () =>
              n
                .filter(
                  (e) =>
                    -1 === o.findIndex((t) => t.type === e.type) ||
                    "qq" === e.type ||
                    "qqlink" === e.type,
                )
                .map((e) => ({
                  label: (0, s.we)(`#StoreAdmin_SocialMedia_Type_${e.type}`),
                  data: e.type,
                }))
                .sort((e, t) => (e.label < t.label ? -1 : 1)),
            [n, o],
          ),
          u = (e) => {
            e.length > i && c(e.length), l(e);
          };
        return a.createElement(
          "div",
          null,
          a.createElement(Eo, {
            options: d,
            onAddLink: (e) => {
              let t = o.slice();
              t.push({ type: e, link: "" }), u(t);
            },
          }),
          a.createElement(Ht.A, {
            items: o,
            onDelete: (e) => {
              let t = o.slice();
              t.splice(e, 1), u(t);
            },
            onMove: (e, t) => {
              let n = o.slice();
              (0, Kt.yY)(n, e, t), u(n);
            },
            render: (e, t) =>
              a.createElement(go, {
                key: e.type,
                item: e,
                onUpdateLink: (e) =>
                  ((e, t) => {
                    const n = o.map((n, a) =>
                      a === e ? { ...n, link: t } : n,
                    );
                    u(n);
                  })(t, e),
                validationData: r[e.type],
              }),
          }),
          a.createElement(Co, { items: o, maxSeen: i }),
        );
      }
      function Eo(e) {
        const { options: t, onAddLink: n } = e;
        return a.createElement(
          "div",
          { className: po.AddLinkDropDown },
          a.createElement(v.ZU, {
            controlled: !0,
            rgOptions: t,
            onChange: (e) => {
              const t = e.data;
              t && n(t);
            },
            selectedOption: null,
          }),
        );
      }
      function go(e) {
        const { item: t, onUpdateLink: n, validationData: r } = e;
        let o, l;
        o = r.number
          ? (0, s.we)("#StoreAdmin_SocialMedia_EnterNumber")
          : r.text
            ? (0, s.we)("#StoreAdmin_SocialMedia_EnterName")
            : (0, s.we)("#StoreAdmin_SocialMedia_EnterLink");
        let i = !0;
        return (
          r.prefix
            ? ((l = (0, s.we)(
                "#StoreAdmin_SocialMedia_ValidationPrefix",
                r.prefix.join(", "),
              )),
              t.link &&
                ((i = !1),
                r.prefix.forEach((e) => {
                  t.link.startsWith(e) && (i = !0);
                })))
            : r.number
              ? ((l = (0, s.we)("#StoreAdmin_SocialMedia_ValidationNumber")),
                t.link && (i = /^\d+$/.test(t.link)))
              : r.text
                ? (l = (0, s.we)("#StoreAdmin_SocialMedia_ValidationText"))
                : r.regex &&
                  "tumblr" === t.type &&
                  (l = (0, s.we)("#StoreAdmin_SocialMedia_ValidationTumblr")),
          a.createElement(
            "div",
            { className: po.SocialMediaRow },
            a.createElement(
              "div",
              { className: po.SocialMediaType },
              (0, s.we)(`#StoreAdmin_SocialMedia_Type_${t.type}`),
            ),
            a.createElement(_t.BA, {
              className: po.SocialMediaLink,
              type: "text",
              value: t.link,
              placeholder: o,
              onChange: (e) => n(e.target.value),
            }),
            l &&
              a.createElement(
                p.he,
                { className: po.SocialMediaTooltip, toolTipContent: l },
                "(?)",
              ),
            !i && a.createElement("div", { className: po.ValidationError }, l),
          )
        );
      }
      function Co(e) {
        const { items: t, maxSeen: n } = e,
          r = a.useMemo(
            () =>
              (function (e, t) {
                let n = Array(),
                  r = 0;
                for (
                  e.forEach((e) => {
                    e.link &&
                      (n.push(
                        a.createElement("input", {
                          type: "hidden",
                          name: `app[content][ordered_social_links][${r}][type]`,
                          value: e.type,
                        }),
                      ),
                      n.push(
                        a.createElement("input", {
                          type: "hidden",
                          name: `app[content][ordered_social_links][${r}][link]`,
                          value: e.link,
                        }),
                      ),
                      r++);
                  });
                  r < t;
                )
                  n.push(
                    a.createElement("input", {
                      type: "hidden",
                      name: `app[content][ordered_social_links][${r}]`,
                      value: "",
                    }),
                  ),
                    r++;
                return (
                  [
                    "discord_server",
                    "youtube",
                    "facebook",
                    "twitter",
                    "twitch",
                  ].forEach((e) => {
                    n.push(
                      a.createElement("input", {
                        type: "hidden",
                        name: `app[content][links][${e}]`,
                        value: "",
                      }),
                    );
                  }),
                  n
                );
              })(t, n),
            [t, n],
          );
        return a.createElement(a.Fragment, null, ...r);
      }
      var ho = n(93542),
        So = n(10411);
      const fo = 748,
        bo = 896;
      function ko(e) {
        const [t, n] = (0, a.useState)("closed"),
          r = e.rgEditions.map((e) => e.packageid),
          [o, l] = (0, a.useState)(new Set(r)),
          i = new Map();
        for (const t of Object.keys(e.rgEditionsComparisonGraphics))
          i.set(t, e.rgEditionsComparisonGraphics[t]);
        const [d, u] = (0, a.useState)(i),
          m = Object.keys(e.rgEditionsComparisonGraphics).length > 0,
          p = (function (e, t) {
            return (0, Ca.n)({
              mutationFn: async (n) => {
                const {
                    rgEditionsToSave: a,
                    rgGraphicsToDelete: r,
                    mapGraphicsToUpload: o,
                  } = n,
                  l = new FormData();
                l.append("sessionid", _.TS.SESSIONID);
                const s = Math.max(t.length, a.length);
                for (let e = 0; e < s; e++) {
                  const t = `app[related_items][editions][${e}][packageid]`;
                  e < a.length ? l.append(t, "" + a[e]) : l.append(t, "");
                }
                o.forEach((e, t) => {
                  l.append(
                    `edition_comparison|edition_comparision|assets|edition_comparison|image|${t}`,
                    e,
                  );
                });
                for (const e of r)
                  l.append(`app[assets][edition_comparison][image][${e}]`, "");
                const i = `${_.TS.PARTNER_BASE_URL}admin/game/quickupdateajax/${e}`;
                return ie().post(i, l);
              },
            });
          })(e.nItemId, r),
          E = new Map();
        for (const t of e.rgCandidates) E.set(t.nPackageId, t);
        let g = null;
        if (o.size > 0 && !o.has(e.nBasePackageId)) {
          const t = e.rgCandidates.find(
            (t) => t.nPackageId === e.nBasePackageId,
          );
          g = (0, s.we)(
            "#StoreAdmin_EditEditions_MustIncludeCheapestBasePageError",
            t?.strPackageName,
            e.nBasePackageId,
          );
        }
        return a.createElement(
          a.Fragment,
          null,
          a.createElement(
            xr.E,
            { active: "editor" === t || "alert" === t },
            a.createElement(
              So.e,
              { closeModal: () => n("closed") },
              "editor" === t &&
                a.createElement(
                  a.Fragment,
                  null,
                  a.createElement(
                    "div",
                    { className: ho.EditionsEditorContents },
                    a.createElement(
                      "h2",
                      null,
                      (0, s.we)("#StoreAdmin_EditEditions_DialogTitle"),
                    ),
                    p.isPending && a.createElement(me.t, null),
                    !p.isPending &&
                      a.createElement(
                        a.Fragment,
                        null,
                        null !== g &&
                          a.createElement(
                            "div",
                            { className: ho.ErrorBox },
                            a.createElement(c.X, null),
                            a.createElement("div", null, g),
                          ),
                        a.createElement(Ao, {
                          rgEditions: o,
                          rgCandidates: e.rgCandidates,
                          setEditions: l,
                        }),
                        a.createElement("div", {
                          className: ho.EditionPickerHr,
                        }),
                        a.createElement(vo, {
                          mapOriginalImages: i,
                          mapImages: d,
                          setImages: u,
                          bAppHasSteamChinaToolsEnabled:
                            e.bAppHasSteamChinaToolsEnabled,
                        }),
                      ),
                  ),
                  a.createElement(
                    "div",
                    { className: ho.EditionsEditorDialogButtons },
                    a.createElement(
                      "button",
                      {
                        className: "btn_green_white_innerfade",
                        disabled: null !== g,
                        onClick: async () => {
                          const e = new Map();
                          d.forEach((t, n) => {
                            t instanceof File && e.set(n, t);
                          });
                          const t = [];
                          i.forEach((e, n) => {
                            d.has(n) || t.push(n);
                          }),
                            p.mutate({
                              rgEditionsToSave: Array.from(o),
                              mapGraphicsToUpload: e,
                              rgGraphicsToDelete: t,
                            }),
                            n("alert");
                        },
                      },
                      (0, s.we)("#StoreAdmin_EditEditions_SaveButton"),
                    ),
                    a.createElement(
                      "button",
                      {
                        onClick: () => {
                          l(new Set(r)), n("closed");
                        },
                      },
                      (0, s.we)("#StoreAdmin_EditEditions_CancelButton"),
                    ),
                  ),
                  a.createElement(
                    "p",
                    { className: ho.NeedToPublishNotification },
                    (0, s.oW)(
                      "#StoreAdmin_EditEditions_NeedToPublishNotice",
                      a.createElement("a", {
                        target: "_blank",
                        href: `${_.TS.PARTNER_BASE_URL}admin/game/edit/${e.nItemId}?activetab=tab_publish`,
                      }),
                    ),
                  ),
                ),
              "alert" === t &&
                a.createElement(
                  a.Fragment,
                  null,
                  a.createElement(
                    "div",
                    { className: ho.EditionEditorContents },
                    a.createElement(
                      "h2",
                      null,
                      (0, s.we)("#StoreAdmin_EditEditions_SavingTitle"),
                    ),
                    a.createElement(
                      "div",
                      { className: ho.EditionsEditorSaveStatus },
                      p.isPending &&
                        a.createElement(
                          a.Fragment,
                          null,
                          a.createElement(me.t, null),
                          " ",
                          (0, s.we)("#StoreAdmin_EditEditions_Saving"),
                        ),
                      !p.isPending &&
                        a.createElement(
                          "span",
                          null,
                          (0, s.we)("#StoreAdmin_EditEditions_Saved"),
                        ),
                    ),
                    a.createElement(
                      "span",
                      { className: ho.PublishReminder },
                      (0, s.oW)(
                        "#StoreAdmin_EditEditions_NeedToPublishAlert",
                        a.createElement("a", {
                          target: "_blank",
                          href: `${_.TS.PARTNER_BASE_URL}admin/game/edit/${e.nItemId}?activetab=tab_publish`,
                        }),
                      ),
                    ),
                    a.createElement(
                      "div",
                      { className: ho.EditionsEditorDialogButtons },
                      a.createElement(
                        "button",
                        {
                          onClick: () => {
                            n("refreshing"), window.location.reload();
                          },
                        },
                        (0, s.we)("#StoreAdmin_EditEditions_OK"),
                      ),
                    ),
                  ),
                ),
            ),
          ),
          e.rgCandidates.length > 1 &&
            a.createElement(
              a.Fragment,
              null,
              a.createElement(
                "div",
                { className: ho.EditionsEditorRow },
                "closed" === t &&
                  a.createElement(
                    a.Fragment,
                    null,
                    a.createElement(
                      "button",
                      {
                        className: ho.OpenEditorButton,
                        onClick: () => n("editor"),
                      },
                      (0, s.we)(
                        "#StoreAdmin_EditEditions_ManageEditionsButton",
                      ),
                    ),
                    o?.size > 0
                      ? a.createElement(
                          "span",
                          null,
                          (0, s.we)(
                            "#StoreAdmin_EditEditions_ManageEditionsDescription",
                            o.size,
                          ),
                        )
                      : a.createElement(
                          "span",
                          null,
                          (0, s.we)(
                            "#StoreAdmin_EditEditions_GroupEditionsDescription",
                          ),
                        ),
                    a.createElement(
                      "span",
                      null,
                      (0, s.we)(
                        m
                          ? "#StoreAdmin_EditEditions_ManageEditions_HasComparisonGraphic"
                          : "#StoreAdmin_EditEditions_ManageEditions_NoComparisonGraphic",
                      ),
                    ),
                  ),
                "refreshing" === t &&
                  a.createElement(
                    a.Fragment,
                    null,
                    a.createElement(me.t, { size: "small" }),
                  ),
              ),
            ),
        );
      }
      function Ao(e) {
        const { rgEditions: t, rgCandidates: n, setEditions: r } = e,
          o = new Map();
        for (const t of e.rgCandidates) o.set(t.nPackageId, t);
        const [l, i] = (0, a.useState)(""),
          c = n.filter(
            (e) =>
              -1 !== e.strPackageName.toLowerCase().indexOf(l.toLowerCase()),
          );
        return a.createElement(
          "div",
          { className: ho.EditionPicker },
          a.createElement(
            "p",
            null,
            (0, s.we)("#StoreAdmin_EditEditions_SelectEditionsDescription"),
          ),
          a.createElement(
            "div",
            { className: ho.EditionPickerFilterBox },
            a.createElement("input", {
              type: "text",
              placeholder: (0, s.we)(
                "#StoreAdmin_EditEditions_FilterDescription",
              ),
              value: l,
              onChange: (e) => {
                const t = e.target.value;
                i(t);
              },
            }),
          ),
          a.createElement(
            "table",
            null,
            a.createElement(
              "thead",
              null,
              a.createElement(
                "tr",
                null,
                a.createElement(
                  "td",
                  null,
                  (0, s.we)("#StoreAdmin_EditEditions_ColumnEdition"),
                ),
                a.createElement(
                  "td",
                  null,
                  (0, s.we)("#StoreAdmin_EditEditions_ColumnPackageTitle"),
                ),
                a.createElement(
                  "td",
                  null,
                  (0, s.we)("#StoreAdmin_EditEditions_ColumnState"),
                ),
                a.createElement(
                  "td",
                  null,
                  (0, s.we)("#StoreAdmin_EditEditions_ColumnPrice"),
                ),
              ),
            ),
            a.createElement(
              "tbody",
              null,
              c.map((e) => {
                const n = t.has(e.nPackageId);
                let o = ho.HiddenColor;
                return (
                  "Released" === e.strReleaseState
                    ? (o = ho.ReleasedColor)
                    : "Prepurchase" === e.strReleaseState
                      ? (o = ho.PrepurchaseColor)
                      : "Beta" === e.strReleaseState && (o = ho.BetaColor),
                  a.createElement(
                    "tr",
                    {
                      key: e.nPackageId,
                      className: (0, u.A)(o, ho.EditionPickerRow),
                    },
                    a.createElement(
                      "td",
                      null,
                      a.createElement("input", {
                        type: "checkbox",
                        onChange:
                          ((l = e.nPackageId),
                          (e) => {
                            const n = new Set(t);
                            e.target.checked ? n.add(l) : n.delete(l), r(n);
                          }),
                        checked: n,
                      }),
                    ),
                    a.createElement("td", null, e.strPackageName),
                    a.createElement("td", null, e.strLocalizedReleaseState),
                    a.createElement("td", {
                      dangerouslySetInnerHTML: { __html: e.strPricing },
                    }),
                  )
                );
                var l;
              }),
            ),
          ),
        );
      }
      function vo(e) {
        const {
            mapOriginalImages: t,
            mapImages: n,
            setImages: r,
            bAppHasSteamChinaToolsEnabled: o,
          } = e,
          [l, i] = (0, a.useState)(null),
          d = (0, s.O9)(e.bAppHasSteamChinaToolsEnabled),
          [u, m] = (0, a.useState)("english"),
          p = (0, a.useRef)(null);
        let _ = null,
          E = "missing";
        if (n.has(u)) {
          const e = n.get(u);
          e instanceof File
            ? ((_ = URL.createObjectURL(e)), (E = "uploaded"))
            : ((_ = e), (E = "exists"));
        }
        const g = (e) =>
          n.has(e) && n.get(e) instanceof File
            ? ho.UploadedImageOption
            : n.has(e)
              ? ho.ExistsImageOption
              : ho.MissingImageOption;
        return a.createElement(
          "div",
          { className: ho.LocalizedImageSelector },
          a.createElement(
            "p",
            null,
            (0, s.we)(
              "#StoreAdmin_EditEditions_UploadComparisonGraphicsDescription",
              fo,
              bo,
            ),
          ),
          a.createElement(
            "div",
            { className: ho.Header },
            a.createElement("input", {
              type: "file",
              ref: p,
              onChange: async (e) => {
                if (e.target.files && e.target.files[0]) {
                  const t = e.target.files[0],
                    a = await createImageBitmap(t);
                  if (a.width !== fo || a.height !== bo)
                    return void i(
                      (0, s.we)(
                        "#StoreAdmin_EditEditions_ImageSizeError",
                        fo,
                        bo,
                        a.width,
                        a.height,
                      ),
                    );
                  const o = new Map(n);
                  o.set(u, t), r(o), i(null);
                }
              },
              style: { display: "none" },
            }),
            a.createElement(
              "select",
              {
                onChange: (e) => {
                  m(e.target.value), i(null);
                },
                className: g(u),
              },
              (0, s.vR)(d, (e, t) =>
                a.createElement(
                  "option",
                  { key: t, value: t, className: g(t) },
                  e,
                ),
              ),
            ),
          ),
          a.createElement(
            "p",
            { className: ho.ErrorBox },
            null !== l &&
              a.createElement(a.Fragment, null, a.createElement(c.X, null), l),
          ),
          a.createElement(
            "div",
            {
              className: ho.ImageDropPane,
              onClick: () => p.current?.click(),
              onDragOver: (e) => e.preventDefault(),
              onDrop: async (e) => {
                if (
                  (e.preventDefault(),
                  e.dataTransfer.files && e.dataTransfer.files[0])
                ) {
                  const t = e.dataTransfer.files[0],
                    a = await createImageBitmap(t);
                  if (a.width !== fo || a.height !== bo)
                    return void i(
                      (0, s.we)(
                        "#StoreAdmin_EditEditions_ImageSizeError",
                        fo,
                        bo,
                        a.width,
                        a.height,
                      ),
                    );
                  const o = new Map(n);
                  o.set(u, t), r(o), i(null);
                }
              },
            },
            _
              ? a.createElement(
                  a.Fragment,
                  null,
                  a.createElement(
                    "div",
                    { className: ho.DragAndDropDescriptionWithImage },
                    (0, s.we)("#StoreAdmin_EditEditions_DragAndDropToReplace"),
                  ),
                  a.createElement("img", { src: _ }),
                  a.createElement(
                    "div",
                    { className: ho.DeleteLink },
                    a.createElement(
                      "a",
                      {
                        onClick: () => {
                          if (n.has(u)) {
                            const e = new Map(n);
                            e.delete(u), r(e), i(null);
                          }
                        },
                      },
                      (0, s.we)("#StoreAdmin_EditEditions_Delete"),
                    ),
                  ),
                )
              : a.createElement(
                  "div",
                  { className: ho.DragAndDropDescriptionWithoutImage },
                  (0, s.we)("#StoreAdmin_EditEditions_DragAndDropHere"),
                ),
          ),
        );
      }
      var wo = n(23256);
      function Po(e) {
        const {
            rgAntiCheatData: t,
            rgSupportedAntiCheatOptions: n,
            rgLanguages: r,
          } = e,
          o = a.useMemo(() => new Map(r), [r]),
          l = (0, a.useMemo)(
            () =>
              Object.entries(n).map(([e, t]) => ({
                label: (0, s.we)(`#StoreAdmin_AntiCheat_Type_${e}`),
                data: e,
              })),
            [n],
          ),
          [i, c] = (0, a.useState)(t.type),
          [d, u] = (0, a.useState)(t.kernel),
          [m, p] = (0, a.useState)(t.uninstall),
          _ = "none" !== i && "unspecified" !== i;
        return a.createElement(
          "div",
          { className: "section", id: "anti_cheat" },
          a.createElement(
            "h2",
            null,
            (0, s.we)("#StoreAdmin_AntiCheat_Header"),
          ),
          a.createElement("div", { className: "grayRule" }),
          a.createElement(
            "p",
            null,
            (0, s.we)("#StoreAdmin_AntiCheat_Description"),
          ),
          a.createElement(
            "p",
            null,
            (0, s.we)("#StoreAdmin_AntiCheat_Description2"),
          ),
          a.createElement(
            yo,
            { label: (0, s.we)("#StoreAdmin_AntiCheat_ServiceLabel") },
            a.createElement(Do, {
              options: l,
              selectedOption: i,
              onSelectionChanged: (e) => {
                e.data &&
                  (c(e.data),
                  "none" !== e.data &&
                    "unspecified" !== e.data &&
                    "other" !== e.data &&
                    u(n[e.data].kernel));
              },
            }),
          ),
          "other" === i &&
            a.createElement(No, { values: t.otherNameLoc, mapLanguages: o }),
          _ && a.createElement(To, { checked: d, onChange: u }),
          _ && d && a.createElement(Io, { checked: m, onChange: p }),
          a.createElement(Ro, {
            selectedOption: "unspecified" !== i ? i : "",
            kernelMode: !!_ && d,
            uninstallsCompletely: !(!_ || !d) && m,
          }),
        );
      }
      function yo(e) {
        const { label: t, children: n } = e;
        return a.createElement(
          "div",
          { className: "formrow flexRow" },
          t
            ? a.createElement("div", { className: "formlabel" }, t)
            : a.createElement("div", { className: "formlabel" }, " "),
          a.createElement(
            "div",
            { className: "formdata settingsBlock" },
            a.createElement("div", { className: "left" }, n),
          ),
        );
      }
      function Do(e) {
        const { options: t, selectedOption: n, onSelectionChanged: r } = e;
        return a.createElement(
          "div",
          { className: wo.AntiCheatDropDown },
          a.createElement(v.ZU, {
            controlled: !0,
            rgOptions: t,
            onChange: r,
            selectedOption: n,
          }),
        );
      }
      function No(e) {
        const { values: t, mapLanguages: n } = e,
          {
            strActiveLanguage: r,
            mapValues: o,
            rctLanguageSelect: l,
            rctHiddenInputs: s,
          } = (0, H.K)(n, t, "app", ["game", "3panticheat", "othernameloc"]),
          i = o.get(r),
          c = (0, K.gc)(i);
        return a.createElement(
          yo,
          null,
          a.createElement("div", { className: wo.LanguageSelector }, l),
          a.createElement(v.pd, {
            className: wo.OtherSerivceName,
            type: "text",
            value: c,
            placeholder: "Enter the service name",
            onChange: (e) => i.Set(e.target.value),
            maxLength: 256,
          }),
          s,
        );
      }
      function To(e) {
        const { checked: t, onChange: n } = e;
        return a.createElement(
          yo,
          null,
          a.createElement(v.Yh, {
            className: (0, u.A)(wo.KernelMode, wo.CheckboxLabel),
            label: (0, s.we)("#StoreAdmin_AntiCheat_KernelModeLabel"),
            checked: t,
            onChange: n,
          }),
          a.createElement(
            "div",
            { className: wo.CheckboxDescription },
            (0, s.we)("#StoreAdmin_AntiCheat_KernelModelDescription_Other"),
          ),
        );
      }
      function Io(e) {
        const { checked: t, onChange: n } = e;
        return a.createElement(
          yo,
          null,
          a.createElement(v.Yh, {
            className: wo.CheckboxLabel,
            label: (0, s.we)("#StoreAdmin_AntiCheat_UninstallCompletelyLabel"),
            checked: t,
            onChange: n,
          }),
          a.createElement(
            "div",
            { className: wo.CheckboxDescription },
            (0, s.we)("#StoreAdmin_AntiCheat_UninstallCompletelyDescription"),
          ),
        );
      }
      function Ro(e) {
        const { selectedOption: t, kernelMode: n, uninstallsCompletely: r } = e,
          o = a.useMemo(
            () =>
              (function (e, t, n) {
                let r = Array();
                return (
                  r.push(
                    a.createElement("input", {
                      type: "hidden",
                      name: "app[game][3panticheat][type]",
                      value: e,
                    }),
                  ),
                  r.push(
                    a.createElement("input", {
                      type: "hidden",
                      name: "app[game][3panticheat][kernel]",
                      value: t ? "1" : "",
                    }),
                  ),
                  r.push(
                    a.createElement("input", {
                      type: "hidden",
                      name: "app[game][3panticheat][uninst]",
                      value: n ? "1" : "",
                    }),
                  ),
                  r.push(
                    a.createElement("input", {
                      type: "hidden",
                      name: "app[game][3panticheat][othername]",
                      value: "",
                    }),
                  ),
                  r
                );
              })(t, n, r),
            [t, n, r],
          );
        return a.createElement(a.Fragment, null, ...o);
      }
      var Lo = n(30041),
        Bo = n(83882);
      function Mo(e) {
        const [t, n] = a.useState(!1);
        return a.createElement(
          a.Fragment,
          null,
          a.createElement(
            Bo.mt,
            { active: t, onDismiss: () => n(!1) },
            a.createElement(Oo, {
              originalItems: e.rgItems,
              onDismiss: () => n(!1),
              packageid: e.packageid,
            }),
          ),
          a.createElement(
            "table",
            { className: "landingTable" },
            a.createElement(
              "thead",
              null,
              a.createElement(
                "tr",
                { className: "tr heading" },
                a.createElement(
                  "th",
                  null,
                  (0, s.we)("#StoreAdmin_NonAppContent_TableHeader_Name"),
                ),
                a.createElement(
                  "th",
                  null,
                  (0, s.we)("#StoreAdmin_NonAppContent_TableHeader_Visible"),
                ),
              ),
            ),
            a.createElement(
              "tbody",
              null,
              0 === e.rgItems.length &&
                a.createElement(
                  "tr",
                  null,
                  a.createElement(
                    "td",
                    { colSpan: 2 },
                    (0, s.we)("#StoreAdmin_NonAppContent_NoNonAppItems"),
                  ),
                ),
              e.rgItems.length > 0 &&
                e.rgItems.map((t, n) =>
                  a.createElement(xo, {
                    key: n,
                    item: t,
                    language: e.language,
                  }),
                ),
            ),
          ),
          a.createElement(
            "div",
            null,
            a.createElement(
              "button",
              {
                className: (0, u.A)("btnv6_blue_hoverfade btn_small"),
                onClick: () => n(!0),
              },
              a.createElement(
                "span",
                null,
                (0, s.we)("#StoreAdmin_NonAppContent_Edit"),
              ),
            ),
          ),
        );
      }
      function xo(e) {
        const { item: t, language: n } = e;
        let r = (0, s.we)("#StoreAdmin_NonAppContent_MissingLanguage");
        t.localized_title &&
          (r =
            t.localized_title[n] ??
            t.localized_title.english ??
            (0, s.we)("#StoreAdmin_NonAppContent_MissingLanguage"));
        let o = (0, s.we)("#StoreAdmin_NonAppContent_MissingLanguage");
        return (
          t.localized_description &&
            (o =
              t.localized_description[n] ??
              t.localized_description.english ??
              (0, s.we)("#StoreAdmin_NonAppContent_MissingLanguage")),
          a.createElement(
            "tr",
            { className: "tr highlightHover" },
            a.createElement("td", { className: "td" }, r),
            a.createElement(
              "td",
              { className: "td" },
              (0, s.we)(
                "1" === t.visible
                  ? "#StoreAdmin_NonAppContent_Editor_Yes"
                  : "#StoreAdmin_NonAppContent_Editor_No",
              ),
            ),
          )
        );
      }
      function Oo(e) {
        const { originalItems: t, packageid: n, onDismiss: r } = e,
          o = [];
        for (const e of t)
          o.push({
            localized_title: e.localized_title ?? {},
            localized_description: e.localized_description ?? {},
            visible: e.visible,
          });
        const l = (function (e) {
            const [t, n] = a.useState(e),
              r = (e, a) => {
                let r = [...t];
                (r[e] = a), n(r);
              },
              o = (e) => {
                let a = [...t];
                a.splice(e, 1), n(a);
              };
            return {
              items: t,
              setItem: r,
              deleteItem: o,
              appendItem: (e) => {
                n(t.concat([e]));
              },
              moveItem: (e, a) => {
                let r = [...t],
                  o = t[e];
                e < a
                  ? (r.splice(a + 1, 0, o), r.splice(e, 1))
                  : (r.splice(e, 1), r.splice(a, 0, o)),
                  n(r);
              },
              getState: (e) => ({
                item: t[e],
                setItem: (t) => r(e, t),
                deleteItem: () => o(e),
              }),
            };
          })(o),
          [i, c] = a.useState("editor"),
          [d, m] = a.useState(null),
          p = (function (e) {
            return (0, Ca.n)({
              mutationKey: ["save_nonapp_contents", e],
              mutationFn: async (t) => {
                const n = new FormData();
                n.append("sessionid", _.TS.SESSIONID);
                const a = "nonapp_contents";
                for (let e = 0; e < t.length; e++) {
                  const r = t[e];
                  for (const t of Object.keys(r.localized_title ?? []))
                    n.append(
                      `${a}[${e}][localized_title][${t}]`,
                      r.localized_title[t],
                    );
                  for (const t of Object.keys(r.localized_description ?? []))
                    n.append(
                      `${a}[${e}][localized_description][${t}]`,
                      r.localized_description[t],
                    );
                  n.append(`${a}[${e}][visible]`, r.visible);
                }
                0 === t.length && n.append(a, "");
                const r = `${_.TS.PARTNER_BASE_URL}store/ajaxpackagesave/${e}`,
                  o = await ie().post(r, n);
                if (200 !== o.status) return o.data;
                if (1 != o.data.success) throw o.data;
                const l = new FormData();
                l.append("sessionid", _.TS.SESSIONID),
                  l.append("changenotes", "Change non-app items in package");
                const s = `${_.TS.PARTNER_BASE_URL}admin/store/packagepublish/${e}`,
                  i = await ie().post(s, l);
                if (200 !== i.status) return i.data;
                if (1 != o.data.success) throw o.data;
                return { success: 1, errors: [] };
              },
            });
          })(n),
          E = () => {
            window.location.reload();
          };
        return "editor" === i
          ? a.createElement(
              "div",
              { className: Lo.NonAppContentsEditor },
              a.createElement(
                "h1",
                null,
                (0, s.we)("#StoreAdmin_NonAppContent_Editor_Header"),
              ),
              a.createElement(
                "div",
                { className: Lo.NonAppContentsEditorScrollArea },
                l.items.length > 0 &&
                  a.createElement(Ht.A, {
                    onMove: l.moveItem,
                    rowClassName: Lo.ItemEditorRow,
                    items: l.items,
                    render: (e, t) =>
                      a.createElement(Fo, { state: l.getState(t) }),
                    onDelete: l.deleteItem,
                  }),
                0 === l.items.length &&
                  a.createElement(
                    "div",
                    null,
                    (0, s.we)(
                      "#StoreAdmin_NonAppContent_Editor_NoNonAppItems",
                      (0, s.we)(
                        "#StoreAdmin_NonAppContent_Editor_AddItemButton",
                      ),
                    ),
                  ),
                a.createElement(
                  "button",
                  {
                    className: (0, u.A)(
                      "btn_green_white_innerfade",
                      Lo.AddItemButton,
                    ),
                    onClick: () => {
                      l.appendItem({
                        localized_title: {},
                        localized_description: {},
                        visible: "0",
                      });
                    },
                  },
                  (0, s.we)("#StoreAdmin_NonAppContent_Editor_AddItemButton"),
                ),
              ),
              a.createElement(
                "div",
                { className: Lo.EditorButtons },
                a.createElement(
                  "button",
                  {
                    className: "btn_green_white_innerfade",
                    onClick: async () => {
                      c("throbber"),
                        await p
                          .mutateAsync(l.items)
                          .then((e) => {
                            1 !== e.success
                              ? m(e.errors[0] || "Unknown error")
                              : m(null);
                          })
                          .catch((e) => {
                            throw (m(e.message), e);
                          })
                          .finally(() => {
                            c("message");
                          });
                    },
                  },
                  (0, s.we)("#StoreAdmin_NonAppContent_Save"),
                ),
                a.createElement(
                  "button",
                  {
                    onClick: () => {
                      c("editor"), r();
                    },
                  },
                  (0, s.we)("#StoreAdmin_NonAppContent_Cancel"),
                ),
              ),
            )
          : "throbber" === i
            ? a.createElement(me.t, { size: "large" })
            : null === d
              ? a.createElement(
                  "div",
                  null,
                  a.createElement(
                    "h1",
                    null,
                    (0, s.we)(
                      "#StoreAdmin_NonAppContent_Editor_SuccessfullySaved_Header",
                    ),
                  ),
                  a.createElement(
                    "p",
                    null,
                    (0, s.we)(
                      "#StoreAdmin_NonAppContent_Editor_SuccessfullySaved_Description",
                    ),
                  ),
                  a.createElement(
                    "button",
                    { onClick: E },
                    (0, s.we)("#StoreAdmin_NonAppContent_Editor_OK"),
                  ),
                )
              : a.createElement(
                  "div",
                  null,
                  a.createElement(
                    "h1",
                    null,
                    (0, s.we)("#StoreAdmin_NonAppContent_Editor_Error_Header"),
                  ),
                  a.createElement(
                    "p",
                    null,
                    (0, s.we)(
                      "#StoreAdmin_NonAppContent_Editor_Error_Description",
                    ),
                  ),
                  a.createElement("p", null, d),
                  a.createElement(
                    "button",
                    { onClick: E },
                    (0, s.we)("#StoreAdmin_NonAppContent_Editor_OK"),
                  ),
                );
      }
      function Fo(e) {
        const { state: t } = e,
          { item: n, setItem: r, deleteItem: o } = t,
          [l, i] = a.useState("english"),
          c = (0, s.O9)(!1);
        let d = "";
        n.localized_title && n.localized_title[l] && (d = n.localized_title[l]);
        let u = "";
        return (
          n.localized_description &&
            n.localized_description[l] &&
            (u = n.localized_description[l]),
          a.createElement(
            "div",
            { className: Lo.ItemEditorRowContents },
            a.createElement(
              "div",
              { className: Lo.ItemEditorRowNameAndLanguageEditor },
              a.createElement("input", {
                className: Lo.InputTitle,
                type: "text",
                placeholder: (0, s.we)(
                  "#StoreAdmin_NonAppContent_Editor_TitlePlaceholder",
                ),
                value: d,
                onChange: (e) => {
                  (n.localized_title[l] = e.target.value), r(n);
                },
                maxLength: 120,
              }),
              a.createElement(
                "select",
                {
                  onChange: (e) => {
                    i(e.target.value);
                  },
                },
                (0, s.vR)(c, (e, t) =>
                  a.createElement("option", { key: t, value: t }, e),
                ),
              ),
            ),
            a.createElement(
              "div",
              { className: Lo.ItemEditorRowVisibleToggle },
              a.createElement(ir._H, {
                value: "1" === n.visible,
                onChange: (e) => {
                  (n.visible = e ? "1" : "0"), r(n);
                },
              }),
              " ",
              a.createElement(
                "span",
                null,
                (0, s.we)("#StoreAdmin_NonAppContent_Editor_Visible"),
              ),
            ),
            a.createElement(
              "div",
              { className: Lo.ItemEditorRowDescriptionEditor },
              a.createElement(
                "p",
                null,
                (0, s.we)("#StoreAdmin_NonAppContent_Editor_Description"),
              ),
              a.createElement("textarea", {
                placeholder: (0, s.we)(
                  "#StoreAdmin_NonAppContent_Editor_DescriptionPlaceholder",
                ),
                maxLength: 300,
                rows: 5,
                onChange: (e) => {
                  (n.localized_description[l] = e.target.value), r(n);
                },
                value: u,
              }),
            ),
          )
        );
      }
      var Uo = n(94937),
        Go = n.n(Uo);
      function Ho(e) {
        const { packageid: t } = e,
          [n, r] = a.useState(e.bShowCapsuleArt),
          [o, l] = a.useState(null),
          i = (function (e) {
            return (0, Ca.n)({
              mutationKey: ["save_show_capsule_art_toggle", e],
              mutationFn: async (t) => {
                const n = new FormData();
                n.append("sessionid", _.TS.SESSIONID),
                  n.append(
                    "show_capsule_art_in_purchase_option",
                    t ? "1" : "0",
                  );
                const a = `${_.TS.PARTNER_BASE_URL}store/ajaxpackagesave/${e}`,
                  r = await ie().post(a, n);
                if (200 !== r.status) return r.data;
                if (1 != r.data.success) throw r.data;
                const o = new FormData();
                o.append("sessionid", _.TS.SESSIONID),
                  o.append(
                    "changenotes",
                    "Set whether to show capsule art in purchase option",
                  ),
                  o.append("packages[0]", "" + e);
                const l = `${_.TS.PARTNER_BASE_URL}store/ajaxpackagepublish`,
                  s = await ie().post(l, o);
                if (200 !== s.status) return s.data;
                if (1 != r.data.success) throw r.data;
                return { success: 1, errors: [] };
              },
            });
          })(t),
          [c, d] = a.useState(null),
          u = () => {
            r(e.bShowCapsuleArt), l(null);
          },
          m = () => {
            window.location.reload();
          };
        return a.createElement(
          "div",
          { className: Go().ToggleCapsuleArtContainer },
          a.createElement(
            Bo.mt,
            { active: null !== o, onDismiss: u },
            "edit" === o &&
              a.createElement(
                a.Fragment,
                null,
                a.createElement(
                  "h1",
                  null,
                  (0, s.we)("#StoreAdmin_ShowCapsuleArt_Label"),
                ),
                a.createElement(
                  "p",
                  null,
                  (0, s.we)("#StoreAdmin_ShowCapsuleArt_Description"),
                ),
                a.createElement(
                  "label",
                  null,
                  a.createElement("input", {
                    type: "checkbox",
                    checked: n,
                    onChange: (e) => {
                      r(e.target.checked);
                    },
                  }),
                  a.createElement(
                    "span",
                    { className: Go().checkbox_label },
                    (0, s.we)("#StoreAdmin_ShowCapsuleArt_Label"),
                  ),
                ),
                a.createElement(
                  "div",
                  { className: Go().ShowCapsuleArtButtonBar },
                  a.createElement(
                    "button",
                    {
                      className: "btn_green_white_innerfade btn_medium",
                      onClick: async () => {
                        l("working"),
                          await i
                            .mutateAsync(n)
                            .then((e) => {
                              1 !== e.success
                                ? d(e.errors[0] || "Unknown error")
                                : d(null);
                            })
                            .catch((e) => {
                              throw (d(e.message), e);
                            })
                            .finally(() => {
                              l("message");
                            });
                      },
                      disabled: n === e.bShowCapsuleArt,
                    },
                    (0, s.we)("#StoreAdmin_ShowCapsuleArt_SaveAndPublish"),
                  ),
                  a.createElement(
                    "button",
                    {
                      className: "btnv6_blue_hoverfade btn_medium",
                      onClick: u,
                    },
                    (0, s.we)("#StoreAdmin_ShowCapsuleArt_Cancel"),
                  ),
                ),
              ),
            "working" === o &&
              a.createElement(
                a.Fragment,
                null,
                a.createElement(
                  "h1",
                  null,
                  (0, s.we)("#StoreAdmin_ShowCapsuleArt_Label"),
                ),
                a.createElement(me.t, { size: "large" }),
              ),
            "message" === o &&
              null === c &&
              a.createElement(
                a.Fragment,
                null,
                a.createElement(
                  "h1",
                  null,
                  (0, s.we)(
                    "#StoreAdmin_NonAppContent_Editor_SuccessfullySaved_Header",
                  ),
                ),
                a.createElement(
                  "p",
                  null,
                  (0, s.we)(
                    "#StoreAdmin_NonAppContent_Editor_SuccessfullySaved_Description",
                  ),
                ),
                a.createElement(
                  "button",
                  { onClick: m },
                  (0, s.we)("#StoreAdmin_NonAppContent_Editor_OK"),
                ),
              ),
            "message" === o &&
              null !== c &&
              a.createElement(
                a.Fragment,
                null,
                a.createElement(
                  "h1",
                  null,
                  (0, s.we)("#StoreAdmin_NonAppContent_Editor_Error_Header"),
                ),
                a.createElement(
                  "p",
                  null,
                  (0, s.we)(
                    "#StoreAdmin_NonAppContent_Editor_Error_Description",
                  ),
                ),
                a.createElement("p", null, c),
                a.createElement(
                  "button",
                  { onClick: m },
                  (0, s.we)("#StoreAdmin_NonAppContent_Editor_OK"),
                ),
              ),
          ),
          a.createElement(
            "div",
            { className: Go().ShowCapsuleArtCheckOption },
            a.createElement("input", {
              type: "checkbox",
              className: Go().ShowCapsuleArtCheckbox,
              checked: n,
              onChange: (e) => {
                l("edit");
              },
            }),
            a.createElement(
              p.Gq,
              {
                toolTipContent: (0, s.we)(
                  "#StoreAdmin_ShowCapsuleArt_Description",
                ),
              },
              a.createElement(
                "div",
                { className: Go().ShowCapsuleArtLabel },
                a.createElement(
                  "span",
                  null,
                  (0, s.we)("#StoreAdmin_ShowCapsuleArt_Label"),
                ),
                a.createElement("br", null),
                a.createElement(
                  "span",
                  null,
                  (0, s.we)("#StoreAdmin_ShowCapsuleArt_SubLabel"),
                ),
              ),
            ),
          ),
        );
      }
      var Wo = n(65038),
        Ko = n(64238),
        Vo = n.n(Ko);
      function $o(e, t, n) {
        let a = !1;
        t.forEach((t) => {
          e.get(t) && (a = !0);
        });
        let r = !1;
        return (
          n.forEach((t) => {
            e.get(t) && (r = !0);
          }),
          a && r
        );
      }
      function zo(e) {
        const {
            rgCommonRedistAllPlatforms: t,
            rgCommonRedistWindows: n,
            rgCheckedDepots: r,
            nDetectedGameEngine: o,
          } = e,
          l = (0, a.useMemo)(() => new Map(t), [t]),
          i = (0, a.useMemo)(() => new Map(n), [n]),
          [c, d] = (0, a.useState)(
            (function (e, t, n) {
              const a = new Map();
              return (
                e.forEach((e) => {
                  Object.entries(e.components).forEach(([e, t]) => {
                    a.set(t, !1);
                  });
                }),
                t.forEach((e) => {
                  Object.entries(e.components).forEach(([e, t]) => {
                    a.set(t, !1);
                  });
                }),
                n.forEach((e, t) => {
                  a.set(t, e);
                }),
                a
              );
            })(l, i, new Map(r)),
          );
        console.log("nDetected", o);
        const [u, m] = (0, a.useMemo)(() => {
            const e = [],
              t = [];
            return (
              i.forEach((n) => {
                "directx" == n.category
                  ? Object.entries(n.components).forEach(([t, n]) => {
                      e.push(n);
                    })
                  : "vc" == n.category &&
                    Object.entries(n.components).forEach(([e, n]) => {
                      t.push(n);
                    });
              }),
              [e, t]
            );
          }, [i]),
          [p, _] = (0, a.useState)($o(c, u, m)),
          E = (e, t) => {
            const n = new Map(c);
            n.set(e, t), d(n), _($o(n, u, m));
            const a = {};
            n.forEach((e, t) => {
              a[t] = e ? 1 : 0;
            }),
              window.UpdateCommonRedistsReact(a);
          },
          g = l.size > 0,
          C = 1 == o;
        return a.createElement(
          "div",
          null,
          g &&
            a.createElement(Xo, {
              name: (0, s.we)("#StoreAdmin_Platform_AllPlatforms"),
              categories: l,
              checkedState: c,
              setChecked: E,
            }),
          C && a.createElement(Yo, { checked: p }),
          a.createElement(Xo, {
            name: (0, s.we)("#StoreAdmin_Platform_Windows"),
            categories: i,
            checkedState: c,
            setChecked: E,
          }),
        );
      }
      function Yo(e) {
        const { checked: t } = e;
        return a.createElement(
          "div",
          { className: Wo.DXVCNotice },
          !t &&
            a.createElement(
              "div",
              { className: Wo.DXVCNoticeIconUnchecked },
              a.createElement(c.Aj0, null),
            ),
          t &&
            a.createElement(
              "div",
              { className: Wo.DXVCNoticeIconChecked },
              a.createElement(c.Jlk, null),
            ),
          a.createElement(
            "div",
            {
              className: Vo()(
                Wo.DXVCNoticeText,
                t ? Wo.DXVCNoticeTextChecked : Wo.DXVCNoticeTextUnchecked,
              ),
            },
            (0, s.we)("#StoreAdmin_GameEngine_Requires_DirectX_VC"),
          ),
        );
      }
      function Xo(e) {
        const { name: t, categories: n, checkedState: r, setChecked: o } = e,
          l = (0, a.useMemo)(() => {
            let e = [];
            return (
              n.forEach((t, n) =>
                e.push(
                  a.createElement(qo, {
                    name: n,
                    category: t,
                    checkedState: r,
                    key: t.category,
                    setChecked: o,
                  }),
                ),
              ),
              e
            );
          }, [n, r, o]);
        return a.createElement(
          "div",
          { className: "section" },
          a.createElement("h2", null, t),
          a.createElement("div", { className: "grayRule" }),
          ...l,
        );
      }
      function qo(e) {
        const { name: t, category: n, checkedState: r, setChecked: o } = e,
          l = Object.entries(n.components).map(([e, t]) =>
            a.createElement(
              "li",
              { key: t },
              a.createElement(jo, {
                name: e,
                depotID: t,
                checked: r.get(t),
                setChecked: o,
              }),
            ),
          );
        return a.createElement(
          "div",
          null,
          a.createElement("div", null, t),
          a.createElement("ul", null, ...l),
        );
      }
      function jo(e) {
        const { name: t, depotID: n, checked: r, setChecked: o } = e,
          l = (228987 == n || 228986 == n) && !r;
        return a.createElement(
          a.Fragment,
          null,
          a.createElement("input", {
            id: n.toString(),
            type: "checkbox",
            checked: r,
            disabled: l,
            onChange: (e) => o(n, e.currentTarget.checked),
          }),
          a.createElement("label", { htmlFor: n.toString() }, t),
        );
      }
      function Qo(e) {
        return a.createElement(
          Oe.dO,
          null,
          a.createElement(
            Oe.qh,
            { path: Ie.GameEdit(`:action(${Re.join("|")})`, ":itemid") },
            a.createElement(
              Z._M,
              null,
              a.createElement(Fe.X, {
                config: {
                  "storeadmin-releasedateinfo": (e) =>
                    a.createElement(Le, { bIsGameEdit: !0, ...e }),
                  "storeadmin-controllersupportinfo": (e) =>
                    a.createElement(F, { ...e }),
                  "storeadmin-app-description-editor": (e) =>
                    a.createElement(te, { ...e }),
                  "storeadmin-app-extraassetslist": (e) =>
                    a.createElement(ae.c$, { ...e }),
                  "storeadmin-season-pass-survey": (e) =>
                    a.createElement(co, { ...e }),
                  "storeadmin-creator-home-display-edit": (e) =>
                    a.createElement(zt, { ...e }),
                  "storeadmin-dlc-edit": (e) => a.createElement(fn, { ...e }),
                  "storeadmin-dlc-dependancy-edit": (e) =>
                    a.createElement(sn, { ...e }),
                  "storeadmin-social-media-edit": (e) =>
                    a.createElement(_o, { ...e }),
                  "storeadmin-anticheat-edit": (e) =>
                    a.createElement(Po, { ...e }),
                  "storeadmin-pinnedbundles-edit": (e) =>
                    a.createElement(vn, { ...e }),
                  "storeadmin-purchaseoptionsorder-edit": (e) =>
                    a.createElement(Cr, { ...e }),
                },
              }),
            ),
          ),
          a.createElement(Oe.qh, {
            path: Ie.AppLanding(":appid"),
            render: (e) =>
              a.createElement(Fe.X, {
                config: {
                  "storeadmin-releasedateinfo": (e) =>
                    a.createElement(Le, { ...e }),
                  "storeadmin-applanding": (e) => a.createElement(et, { ...e }),
                  "storeadmin-editions-editor": (e) =>
                    a.createElement(ko, { ...e }),
                },
              }),
          }),
          a.createElement(Oe.qh, {
            path: Ie.AppInstaller(":appid"),
            render: (e) =>
              a.createElement(Fe.X, {
                config: {
                  "storeadmin-steamworksredist-edit": (e) =>
                    a.createElement(zo, { ...e }),
                },
              }),
          }),
          a.createElement(Oe.qh, {
            path: Ie.CommunityItems(":appid"),
            render: (e) =>
              a.createElement(Fe.X, {
                config: {
                  "storeadmin-profilecolors": (e) =>
                    a.createElement(l, { ...e }),
                },
              }),
          }),
          a.createElement(Oe.qh, {
            path: Ie.ReviewPriceProposals(),
            component: lr,
          }),
          a.createElement(
            Oe.qh,
            { path: Ie.PackageLanding(":packageid") },
            a.createElement(Fe.X, {
              config: {
                "packagelanding-nonappcontents-edit": (e) =>
                  a.createElement(Mo, { ...e }),
                "packagelanding-showcapsuleart": (e) =>
                  a.createElement(Ho, { ...e }),
              },
            }),
          ),
        );
      }
    },
    22145: (e, t, n) => {
      "use strict";
      n.d(t, { KF: () => _, Ot: () => p, c$: () => E, Hd: () => g });
      var a = n(12362),
        r = n(15024),
        o = n(7502),
        l = n(52893),
        s = n(90626),
        i = n(98724),
        c = n(79216),
        d = n(4188),
        u = n(37834);
      n(45772), n(74763);
      const m = s.createContext(void 0);
      function p(e) {
        const { view: t, pmState: n, children: a } = e,
          r = s.useMemo(() => ({ view: t, pmState: n }), [t, n]);
        return s.createElement(m.Provider, { value: r }, a);
      }
      const _ = s.memo(function (e) {
        const { schema: t, refOnUpdate: n } = e;
        return (
          E(
            s.useMemo(
              () =>
                n &&
                new l.k_({
                  view: (e) => ({
                    update: (...e) => n.current && n.current(...e),
                  }),
                }),
              [n],
            ),
          ),
          E(s.useMemo(() => (0, r.z)(), [])),
          E(
            s.useMemo(
              () =>
                (function (e) {
                  const t = (0, a.st)(
                      a.I$,
                      (t, n) => (
                        n &&
                          n(
                            t.tr
                              .replaceSelectionWith(
                                e.nodes.hard_break.createChecked(),
                              )
                              .scrollIntoView(),
                          ),
                        !0
                      ),
                    ),
                    n = {
                      "Mod-z": i.tN,
                      "Mod-y": i.ZS,
                      Backspace: c.dv,
                      Escape: a.hy,
                      "Mod-Enter": t,
                      "Shift-Enter": t,
                      "Mod-b": (0, a.wh)(e.marks.strong),
                      "Mod-i": (0, a.wh)(e.marks.italic),
                      "Mod-u": (0, a.wh)(e.marks.underline),
                      Enter: (0, d.wn)(e.nodes.list_item),
                      "Mod-[": (0, d.T2)(e.nodes.list_item),
                      "Mod-]": (0, d.$B)(e.nodes.list_item),
                      "Shift-Ctrl-1": (0, a.y_)(e.nodes.heading, { level: 1 }),
                      "Shift-Ctrl-2": (0, a.y_)(e.nodes.heading, { level: 2 }),
                      "Shift-Ctrl-3": (0, a.y_)(e.nodes.heading, { level: 3 }),
                      "Shift-Ctrl-4": (0, a.y_)(e.nodes.heading, { level: 4 }),
                      "Shift-Ctrl-5": (0, a.y_)(e.nodes.heading, { level: 5 }),
                      "Shift-Ctrl-0": (0, a.y_)(e.nodes.paragraph),
                    };
                  return (
                    e.nodes.horizontal_rule &&
                      (n["Mod-_"] = (t, n) => (
                        n &&
                          n(
                            t.tr
                              .replaceSelectionWith(
                                e.nodes.horizontal_rule.create(),
                              )
                              .scrollIntoView(),
                          ),
                        !0
                      )),
                    (0, o.w)(n)
                  );
                })(t),
              [t],
            ),
          ),
          E(s.useMemo(() => (0, o.w)(a.RV), [])),
          E(
            s.useMemo(
              () =>
                (function (e) {
                  return (0, c.sM)({
                    rules: [
                      (0, c.tG)(
                        /^(\d+)\.\s$/,
                        e.nodes.ordered_list,
                        (e) => ({ order: parseInt(e[1]) }),
                        (e, t) =>
                          t.childCount + t.attrs.order == parseInt(e[1]),
                      ),
                      (0, c.tG)(/^\s*([-+*])\s$/, e.nodes.bullet_list),
                      (0, u.OX)(/\*([^*]+)\*/, e.marks.strong),
                      (0, u.OX)(/_([^_]+)_/, e.marks.italic),
                      (0, u.OX)(/~([^~]+)~/, e.marks.strike),
                      (0, u.OX)(/`([^`]+)`/, e.marks.code),
                      (0, c.JJ)(/^```$/, e.nodes.code_block),
                      (0, c.JJ)(/^(#{1,5})\s$/, e.nodes.heading, (e) => ({
                        level: e[1].length,
                      })),
                      e.nodes.horizontal_rule &&
                        ((t = /^(\*\*\*|---|___)$/),
                        (n = e.nodes.horizontal_rule),
                        new c.fV(t, (e, t, a, r) =>
                          e.tr.replaceWith(a, r, n.create()),
                        )),
                    ].filter(Boolean),
                  });
                  var t, n;
                })(t),
              [t],
            ),
          ),
          null
        );
      });
      function E(e) {
        const { pmState: t } = s.useContext(m);
        s.useEffect(() => {
          if (t && e) return t.InstallPlugin(e);
        }, [e, t]);
      }
      function g() {
        return s.useContext(m)?.view;
      }
    },
    37834: (e, t, n) => {
      "use strict";
      n.d(t, {
        Cd: () => o,
        OX: () => i,
        bQ: () => c,
        gj: () => l,
        wt: () => s,
      });
      var a = n(79216),
        r = n(52893);
      function o(e, t) {
        const { from: n, $from: a, to: r, empty: o } = e.selection;
        return o
          ? !!t.isInSet(e.storedMarks || a.marks())
          : e.doc.rangeHasMark(n, r, t);
      }
      function l(e, t, n) {
        let { $from: a, to: r, node: o } = e.selection;
        return !o && r <= a.end() && (o = a.parent), !!o && o.hasMarkup(t, n);
      }
      function s(e, t, n) {
        const { $from: a, to: r } = e.selection;
        for (let e = a.sharedDepth(r); e > 0; e--) {
          const r = a.node(e);
          if (void 0 === n ? r.type === t : r.hasMarkup(t, n))
            return a.before(e);
        }
      }
      function i(e, t, n = {}) {
        return new a.fV(e, (e, a, r, o) => {
          const l = n instanceof Function ? n(a) : n,
            s = e.tr;
          if (a[1]) {
            const e = r + a[0].indexOf(a[1]),
              t = e + a[1].length;
            t < o && s.delete(t, o),
              e > r && s.delete(r, e),
              (o = r + a[1].length);
          }
          return s.addMark(r, o, t.create(l)), s.removeStoredMark(t), s;
        });
      }
      function c(e, t, n) {
        const a = { left: t, top: n },
          o = e.posAtCoords(a);
        if (o?.pos) {
          const t = e.state.doc.resolve(o.pos);
          e.dispatch(e.state.tr.setSelection(r.U3.near(t)));
        }
      }
    },
    71696: (e, t, n) => {
      "use strict";
      n.d(t, { Xv: () => C, pw: () => h, Y0: () => S });
      var a = n(81393),
        r = n(22145),
        o = n(52893),
        l = n(29287),
        s = n(90626);
      var i = n(72739),
        c = n(78395),
        d = n(21869),
        u = n(22797),
        m = n(6144),
        p = n(61859),
        _ = n(27650),
        E = n(64753),
        g = n(73309);
      function C(e) {
        const {
            children: t,
            ProcessFileUpload: n,
            FetchImageURL: a,
            bAllowImageHotLinking: r = !1,
          } = e,
          [o] = s.useState(() => ({ manager: new k(n, a, r) })),
          { manager: l } = o;
        return (
          l.SetProps(n, a, r),
          s.createElement(
            A.Provider,
            { value: o },
            s.createElement(w, { manager: l }),
            s.createElement(P, { manager: l }, t),
          )
        );
      }
      const h = s.memo(function (e) {
        const { nodeType: t } = e,
          n = v(),
          {
            placeholderElements: a,
            createPlaceholder: i,
            replacePlaceholder: c,
          } = (function (e, t = "PlaceholderPlugin") {
            const [n, a] = s.useState([]),
              [i] = s.useState(
                () =>
                  new o.k_({
                    key: new o.hs(t),
                    state: {
                      init: () => l.zF.empty,
                      apply(t, n) {
                        n = n.map(t.mapping, t.doc);
                        const r = t.getMeta(this) || [];
                        for (const o of r)
                          if (o?.add) {
                            const { id: r, data: s } = o.add,
                              i = (t, n) => {
                                const o = document.createElement(e);
                                return (
                                  a((e) => [
                                    ...e,
                                    { id: r, element: o, data: s },
                                  ]),
                                  o
                                );
                              },
                              c = (e) => {
                                a((t) => t.filter((t) => t.element != e));
                              },
                              d = l.NZ.widget(o.add.pos, i, {
                                id: r,
                                destroy: c,
                              });
                            n = n.add(t.doc, [d]);
                          } else
                            o?.remove &&
                              (n = n.remove(
                                n.find(
                                  void 0,
                                  void 0,
                                  (e) => e.id == o.remove.id,
                                ),
                              ));
                        return n;
                      },
                    },
                    props: {
                      decorations(e) {
                        return this.getState(e);
                      },
                    },
                  }),
              );
            (0, r.c$)(i);
            const c = (0, r.Hd)(),
              d = s.useRef(0),
              u = s.useCallback(
                (e, n, a) => {
                  const r = `${t}_${d.current++}`;
                  let o = a || c.state.tr;
                  void 0 === n &&
                    (o.selection.empty || o.deleteSelection(),
                    (n = o.selection.from));
                  const l = a?.getMeta(i) || [];
                  return (
                    o.setMeta(i, [...l, { add: { id: r, pos: n, data: e } }]),
                    a || c.dispatch(o),
                    r
                  );
                },
                [i, t, c],
              ),
              m = s.useCallback(
                (e) => {
                  const t = i.getState(c.state),
                    n = t?.find(void 0, void 0, (t) => t.id == e);
                  return n?.length ? n[0].from : void 0;
                },
                [c, i],
              ),
              p = s.useCallback(
                (e, t) => {
                  const n = m(e);
                  return (
                    !!n &&
                    (t
                      ? c.dispatch(
                          c.state.tr
                            .replaceWith(n, n, t)
                            .setMeta(i, [{ remove: { id: e } }]),
                        )
                      : c.dispatch(
                          c.state.tr.setMeta(i, [{ remove: { id: e } }]),
                        ),
                    !0)
                  );
                },
                [i, m, c],
              );
            return {
              placeholderElements: n,
              createPlaceholder: u,
              findPlaceholder: m,
              replacePlaceholder: p,
            };
          })("span", "FileUploadPlaceholder");
        !(function (e, t) {
          (0, r.c$)(
            s.useMemo(
              () =>
                new o.k_({
                  props: {
                    handlePaste(n, a, r) {
                      if (e.BAllowImageHotLinking()) return !1;
                      const o = [];
                      if (
                        (r.content.descendants((e, n) => {
                          e.type == t && o.push({ url: e.attrs.src, pos: n });
                        }),
                        o.length)
                      ) {
                        let t = n.state.tr;
                        t.selection.empty || t.deleteSelection();
                        let a = t.selection.from,
                          l = 0;
                        for (const n of o) {
                          const o = r.content.cut(l, n.pos - 1);
                          t.insert(a, o),
                            (a += o.size),
                            e.QueueUploadFileByURL(n.url, a, t),
                            (l = n.pos + 1);
                        }
                        return (
                          t.insert(a, r.content.cut(l)),
                          t.scrollIntoView(),
                          n.dispatch(t),
                          !0
                        );
                      }
                    },
                    handleDOMEvents: {
                      paste(t, n) {
                        if (n.clipboardData?.files?.length > 0) {
                          n.preventDefault();
                          for (const t of n.clipboardData.files)
                            e.UploadFile(t);
                          return !0;
                        }
                      },
                    },
                  },
                }),
              [t, e],
            ),
          );
        })(n, t);
        const d = (0, r.Hd)();
        return (
          s.useEffect(() => n.RegisterEditor(d, i, c), [n, d, i, c]),
          s.createElement(
            s.Fragment,
            null,
            a.map(({ id: e, element: t, data: n }) =>
              s.createElement(b, { key: e, element: t, data: n }),
            ),
          )
        );
      });
      function S(e, t) {
        const n = v(),
          a = s.useCallback(
            (t) => {
              for (const e of t) n.UploadFile(e);
              e && e();
            },
            [n, e],
          );
        return (0, _.Ss)(a, { multiple: !0, accept: t });
      }
      class f extends Error {
        constructor(e) {
          super(e);
        }
      }
      function b(e) {
        const { element: t, data: n } = e,
          a = "file" in n ? n.file : void 0,
          r = s.useMemo(() => a && URL.createObjectURL(a), [a]),
          o = "url" in n ? n.url : r;
        return i.createPortal(
          s.createElement(
            "span",
            { className: g.FileUploadPlaceholder },
            s.createElement(
              "div",
              { className: g.Throbber },
              s.createElement(u.t, { size: "medium", position: "center" }),
            ),
            s.createElement("img", { src: o, className: g.PendingImage }),
          ),
          t,
        );
      }
      class k {
        m_fnProcessFileUpload;
        m_fnFetchImageURL;
        m_bAllowImageHotLinking;
        m_errors = (0, m.Jc)([]);
        m_view;
        m_fnCreatePlaceholder;
        m_fnReplacePlaceholder;
        constructor(e, t, n) {
          (this.m_fnProcessFileUpload = e),
            (this.m_fnFetchImageURL = t),
            (this.m_bAllowImageHotLinking = n);
        }
        SetProps(e, t, n) {
          (this.m_fnProcessFileUpload = e),
            (this.m_fnFetchImageURL = t),
            (this.m_bAllowImageHotLinking = n),
            (0, a.w)(
              !this.m_fnFetchImageURL || !this.m_bAllowImageHotLinking,
              "Not expected to have a URL fetch function and allow hotlinking.  URL fetch function will not be called.",
            );
        }
        RegisterEditor(e, t, n) {
          return (
            (0, a.w)(!this.m_view, "Duplicate registration"),
            (this.m_view = e),
            (this.m_fnCreatePlaceholder = t),
            (this.m_fnReplacePlaceholder = n),
            () => {
              this.m_view == e &&
                this.m_fnCreatePlaceholder == t &&
                this.m_fnReplacePlaceholder == n &&
                ((this.m_view = void 0),
                (this.m_fnCreatePlaceholder = void 0),
                (this.m_fnReplacePlaceholder = void 0));
            }
          );
        }
        AddError(e) {
          this.m_errors.Set([...this.m_errors.Value, e]);
        }
        GetErrors() {
          return this.m_errors;
        }
        ClearErrors() {
          this.m_errors.Set([]);
        }
        GetViewPosition(e, t) {
          const n = this.m_view?.posAtCoords({ left: e, top: t });
          return n?.pos;
        }
        async UploadFile(e, t) {
          (this.m_fnCreatePlaceholder && this.m_fnReplacePlaceholder) ||
            this.AddError("No editor registered to handle file upload");
          const n = this.m_fnCreatePlaceholder({ file: e }, t);
          return this.ProcessFile(e, n);
        }
        BAllowImageHotLinking() {
          return this.m_bAllowImageHotLinking;
        }
        QueueUploadFileByURL(e, t, n) {
          if (
            ((this.m_fnCreatePlaceholder && this.m_fnReplacePlaceholder) ||
              this.AddError("No editor registered to handle file upload"),
            !this.m_fnFetchImageURL)
          )
            return void console.warn(
              "The file upload manager does not have a way to fetch image URLs, so we cannot accept pasted <img> tags.",
            );
          console.log(`QueueUploadFileByURL: ${e} at pos ${t}`);
          const a = this.m_fnCreatePlaceholder({ url: e }, t, n);
          this.FetchURLAndProcess(e, a);
        }
        async FetchURLAndProcess(e, t) {
          try {
            const n = new URL(e),
              a = await this.m_fnFetchImageURL(e),
              r = new File(
                [a],
                decodeURIComponent(n.pathname?.replace(/^.*\//, "") || "image"),
                { type: a.type },
              );
            await this.ProcessFile(r, t);
          } catch (n) {
            this.AddError(`Unable to process URL: ${e}`),
              this.m_fnReplacePlaceholder(t);
          }
        }
        async ProcessFile(e, t) {
          let n;
          try {
            console.log(`Processing file upload: "${e.name}"`),
              (n = await this.m_fnProcessFileUpload(e));
          } catch (e) {
            e instanceof f
              ? this.AddError(e.message)
              : this.AddError(`Error proccessing file upload: ${e}`);
          }
          n
            ? this.m_fnReplacePlaceholder(t, n)
            : this.m_fnReplacePlaceholder(t);
        }
      }
      const A = s.createContext(void 0);
      function v() {
        return s.useContext(A).manager;
      }
      const w = s.memo(function (e) {
        const { manager: t } = e,
          n = (0, E.gc)(t.GetErrors());
        return n.length
          ? s.createElement(
              d.E,
              { active: !0 },
              s.createElement(c.o0, {
                bAlertDialog: !0,
                strTitle: (0, p.we)("#Error_Generic"),
                strDescription: n.map((e, t) =>
                  s.createElement("div", { key: t }, e),
                ),
                strOKButtonText: (0, p.we)("#Button_OK"),
                onOK: () => t.ClearErrors(),
                onCancel: () => t.ClearErrors(),
              }),
            )
          : null;
      });
      function P(e) {
        const { manager: t, children: n } = e,
          a = s.useCallback(
            (e, n) => {
              for (const a of e)
                t.UploadFile(a, t.GetViewPosition(n.clientX, n.clientY));
            },
            [t],
          ),
          [r, o] = (0, _.hk)(a);
        return s.createElement(
          "div",
          { ...r, className: g.FileUploadDragDrop },
          o && !1,
          n,
        );
      }
    },
    30175: (e, t, n) => {
      "use strict";
      n.d(t, {
        Ez: () => h,
        GY: () => f,
        XQ: () => g,
        bI: () => _,
        cQ: () => b,
        ff: () => k,
        hK: () => C,
        u3: () => S,
        wU: () => p,
      });
      var a = n(37834),
        r = n(12362),
        o = n(90626),
        l = n(76217),
        s = n(71541),
        i = n(6144),
        c = n(52038),
        d = n(73745),
        u = n(73309),
        m = n(32754);
      const p = () => o.useContext(E);
      function _(e) {
        const { view: t, refUpdateToolbar: n, children: a } = e,
          r = o.useRef();
        r.current || (r.current = new i.lu()),
          o.useEffect(
            () => (
              (0, d.cZ)(n, () => r.current.Dispatch(t)),
              () => (0, d.cZ)(n, void 0)
            ),
            [t, n],
          );
        const l = o.useMemo(() => ({ callbacks: r.current, view: t }), [t]);
        return t ? o.createElement(E.Provider, { value: l }, a) : null;
      }
      const E = o.createContext(void 0);
      function g() {
        return o.createElement("div", { className: u.Gap });
      }
      function C() {
        return o.createElement("div", { className: u.Spacer });
      }
      function h(e) {
        return o.createElement(
          l.Z,
          {
            className: (0, c.A)(e.className, u.ToolbarRow),
            "flow-children": "row",
          },
          e.children,
        );
      }
      function S(e) {
        const { nodeType: t, tooltip: n, attrs: l, children: s } = e,
          { callbacks: i, view: c } = p(),
          [u, m] = o.useState(() => (0, a.gj)(c.state, t, l)),
          _ = o.useCallback((e) => m((0, a.gj)(e.state, t, l)), [t, l]);
        (0, d.hL)(i, _);
        const E = o.useMemo(() => r.y_(t, l), [l, t]);
        return o.createElement(b, {
          command: E,
          tooltip: n,
          toggled: u,
          children: s,
        });
      }
      function f(e) {
        const { mark: t, tooltip: n, children: l } = e,
          { callbacks: s, view: i } = p(),
          [c, u] = o.useState(() => (0, a.Cd)(i.state, t)),
          m = o.useCallback((e) => u((0, a.Cd)(e.state, t)), [t]);
        (0, d.hL)(s, m);
        const _ = o.useMemo(() => r.wh(t), [t]);
        return o.createElement(b, {
          command: _,
          tooltip: n,
          toggled: c,
          children: l,
        });
      }
      function b(e) {
        const { command: t, toggled: n, tooltip: a, children: r } = e,
          { view: l, callbacks: i } = p(),
          [_, E] = o.useState(() => t(l.state));
        (0, d.hL)(
          i,
          o.useCallback((e) => E(t(e.state)), [t]),
        ),
          o.useEffect(() => E(t(l.state)), [t, l]);
        const g = !_ && !n;
        return o.createElement(
          m.Gq,
          { toolTipContent: a, bDisabled: !a, direction: "bottom" },
          o.createElement(
            s.$n,
            {
              className: (0, c.A)(u.CommandButton, n && u.Toggled),
              onMouseDown: (e) => {
                e.preventDefault(), t(l.state, l.dispatch, l);
              },
              disabled: g,
              focusable: !g,
            },
            r,
          ),
        );
      }
      function k(e) {
        const {
          onClick: t,
          toggled: n,
          tooltip: a,
          disabled: r,
          children: l,
        } = e;
        return o.createElement(
          m.Gq,
          { toolTipContent: a, bDisabled: !a, direction: "bottom" },
          o.createElement(
            s.$n,
            {
              className: (0, c.A)(u.CommandButton, n && u.Toggled),
              onMouseDown: (e) => {
                e.preventDefault(), t();
              },
              disabled: !0 === r,
            },
            l,
          ),
        );
      }
    },
  },
]);
