{"version":3,"sources":["components/Button/TransparentButton.tsx","components/Card/CardHeader/CardHeader.tsx","components/Card/CardContent/CardContent.tsx","components/Card/CardFooter/CardFooter.tsx","components/Card/Card.tsx","components/Confirmation/Confirmation.helpers.tsx","components/Checkbox/Checkbox.tsx","components/Confirmation/Confirmation.tsx","components/Confirmation/ConfirmationCancellation.tsx","assets/images/WarningArgyle.png","components/Counter/Counter.tsx","components/Dialog/AdminDialog.tsx","assets/images/Cross.png","components/Form/Form.helpers.tsx","components/Nothing/Nothing.tsx","components/Form/SelectField/DropdownIndicator/DropdownIndicator.tsx","components/Form/SelectField/Placeholder/Placeholder.tsx","components/Form/SelectField/Control/Control.tsx","components/Form/SelectField/SingleValue/SingleValue.tsx","components/Form/SelectField/Menu/Menu.tsx","components/Form/SelectField/Option/Option.tsx","components/Form/SelectField/MultiValue/MultiValue.tsx","components/Form/SelectField/Select.helpers.tsx","components/Form/CheckboxField/CheckboxField.tsx","components/Form/Radio/Radio.tsx","components/Form/Form.tsx","components/Form/Input/Input.tsx","components/Form/SelectField/SelectField.tsx","components/Form/SelectField/SelectAsyncField.tsx","components/Form/Group/Group.tsx","components/Form/Textarea/Textarea.tsx","components/Form/SelectField/SelectFieldFilters.tsx","components/Form/SelectField/SelectAsyncFieldFilters.tsx","components/Radio/Radio.tsx","components/RadioButtons/RadioButtons.tsx","components/RadioButtons/RadioButtons.helpers.ts","components/Select/Input/Input.tsx","components/Select/Placeholder/Placeholder.tsx","components/Select/DropdownIndicator/DropdownIndicator.tsx","components/Select/Option/Option.tsx","components/Select/Select.tsx","components/Select/ClearIndicator/ClearIndicator.tsx","components/Select/Control/Control.tsx","components/Stepper/Stepper.tsx","components/Stepper/Step/Step.tsx","assets/images/Users.svg","components/Table/Table.tsx","components/Sidebar/Sidebar.tsx","components/Sidebar/Header.tsx","components/Sidebar/Footer.tsx","shared/utils/async.utils.ts","shared/utils/string.utils.ts","shared/utils/exportCSV.ts","store/auth/auth.actions.ts","shared/constants/common.consts.ts","shared/constants/submission.consts.ts","features/AdminPage/OnboardingPage/OnboardingFilters/OnboardingFilters.tsx","components/Tag/Tag.tsx","shared/utils/storage.utils.ts","components/BlankLink/BlankLink.tsx","features/Routes/Routes.helpers.ts","shared/utils/AppInsights.ts","shared/services/i18n.service.ts","shared/services/api.service.ts","shared/models/OidcUser.model.ts","shared/services/oidc.service.ts","features/AdminPage/OnboardingPage/OnboardingPageTable/OnboardingPageTable.module.css","store/product/product.actions.ts","shared/constants/api.consts.ts","store/updateSubscription/subscription.selectors.ts","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/UserForm/UserForm.module.css","store/registration/registration.types.ts","features/UpdateSubscription/UpdateSubscription.helpers.ts","features/UpdateSubscription/steps/SelectPlans/SelectPlans.module.css","components/Form/Form.module.css","features/AdminPage/SubmissionsGrid/SubmissionsGrid.module.css","store/localize/localize.actions.ts","store/localize/localize.selectors.ts","features/AdminPage/OnboardingCreation/AddAdminForm/AddAdminForm.module.css","features/AdminPage/OnboardingPage/dialogs/ConfigureRetentionDialog/ConfigureRetentionDialog.module.css","components/Button/Button.module.css","components/Confirmation/Confirmation.module.css","components/Dialog/Dialog.module.css","components/Icon/Icon.tsx","features/AdminPage/AdminPageContent/AdminPageContent.helpers.ts","shared/hooks/useOnMount.ts","features/AdminPage/AdminGrid/AdminGrid.module.css","features/UpdateSubscription/UpdateSubscription.module.css","store/product/product.selectors.ts","store/updateSubscription/subscription.types.ts","components/Button/Button.tsx","shared/constants/config.consts.ts","store/auth/auth.types.ts","features/AdminPage/OnboardingPage/OnboardingPage.module.css","features/AdminPage/SubmissionsFilters/FilterRow/FilterRow.module.css","features/AutoLogout/AutoLogout.tsx","features/AdminLayout/AdminLayout.tsx","assets/images/noGridData.svg","assets/images/noGridResults.svg","features/AdminPage/NoGridData/NoGridData.tsx","features/AdminPage/AdminPageHeader/AdminPageHeader.tsx","features/AdminPage/AdminGrid/AdminGrid.tsx","store/global/global.actions.ts","store/global/global.selectors.ts","assets/images/edit-icon.svg","assets/images/circle-tick.svg","assets/images/circle-cross.svg","features/AdminPage/SubmissionsGrid/Submission/EditableComponent.tsx","features/AdminPage/SubmissionsGrid/Submission/Submission.tsx","features/AdminPage/SubmissionsGrid/Submission/SubmissionPlansGrid/SubmissionPlansGrid.helpers.tsx","features/AdminPage/SubmissionsGrid/Submission/SubmissionPlanToggler/SubmissionPlanToggler.tsx","shared/services/formatNumber.ts","features/AdminPage/SubmissionsGrid/Submission/SubmissionPlanStatus/SubmissionPlanStatus.tsx","features/AdminPage/SubmissionsGrid/Submission/SubmissionPlan/SubmissionPlan.tsx","features/AdminPage/SubmissionsGrid/Submission/SubmissionPlan/SubmissionPlan.helpers.ts","features/AdminPage/SubmissionsGrid/Submission/SubmissionPlansFooter/SubmissionPlansFooter.tsx","features/AdminPage/SubmissionsGrid/dialogs/RegistrationSubmissionDialog/RegistrationSubmissionDialog.helpers.ts","features/AdminPage/SubmissionsGrid/dialogs/RegistrationSubmissionDialog/RegistrationSubmissionDialog.tsx","features/AdminPage/SubmissionsGrid/Submission/SubmissionPlansGrid/SubmissionPlansGrid.tsx","features/AdminPage/SubmissionsGrid/dialogs/DetailedInformationDialog/Detail/Detail.tsx","features/AdminPage/SubmissionsGrid/dialogs/DetailedInformationDialog/Details/Details.tsx","features/AdminPage/SubmissionsGrid/dialogs/DetailedInformationDialog/DetailedInformationDialog.tsx","features/AdminPage/SubmissionsGrid/dialogs/RegistrationCommentDialog/RegistrationCommentDialog.tsx","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/UserForm/UserForm.helpers.tsx","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/UserList/UserList.helpers.ts","assets/images/DownloadToCloud.svg","assets/images/xlsIcon.svg","assets/images/Close.svg","assets/images/Retry.svg","assets/images/Succes.svg","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/UserForm/UserForm.tsx","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/UserForm/UserForm.container.tsx","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/UserSelect/OptionUser.tsx","icons/EditIcon.tsx","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/UserSelect/UserSelect.tsx","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/UserCard/UserCard.tsx","assets/images/ExcelIcon.svg","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/SidebarFooter/SidebarFooter.tsx","assets/images/Guidance.svg","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/UserList/UserList.tsx","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/MultipleUser/MultipleUser.tsx","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/AdditionalUsersSidebar.tsx","shared/hooks/useOnUnmount.ts","features/AdminPage/SubmissionsGrid/dialogs/CompanyEditDialog/CompanyEditDialog.helpers.ts","features/AdminPage/SubmissionsGrid/dialogs/CompanyEditDialog/CompanyEditDialog.tsx","features/AdminPage/SubmissionsGrid/Submission/Submission.container.tsx","features/AdminPage/SubmissionsGrid/SubmissionsGrid.tsx","features/AdminPage/SubmissionsGrid/SubmissionsGrid.container.tsx","features/AdminPage/SubmissionsTabs/SubmissionsTabs.tsx","features/AdminPage/SubmissionsTabs/SubmissionsTabs.helpers.ts","features/AdminPage/AdminPageContent/AdminPageContent.tsx","features/AdminPage/AdminPage.tsx","components/DirectionButton/DirectionButton.tsx","features/AdminPage/UserMenu/UserMenuContent/UserMenuContent.module.css","features/AppLayout/AppLayout.module.css","features/AdminPage/DateLocale.tsx","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/UserSelect/UserSelect.module.css","components/Pagination/Paginator/Paginator.module.css","features/SelectLocale/SelectLocale.module.css","features/AutoLogout/AutoLogout.module.css","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/UserList/UserList.module.css","components/LogoutWarningPopup/LogoutWarningPopup.module.css","store/auth/auth.selectors.ts","components/Select/Select.module.css","features/AdminPage/SubmissionsFilters/FiltersControls/FiltersControls.module.css","components/Stepper/Step/Step.module.css","features/AdminPage/SubmissionsGrid/Submission/SubmissionPlansGrid/SubmissionPlansGrid.module.css","assets/images/modal-share-icon.svg","components/Modal/Modal.tsx","features/Footer/Footer.tsx","shared/utils/common.utils.ts","shared/icons/logo.svg","features/SelectLocale/OptionUserProduct/OptionUserProduct.tsx","assets/images/languageShape.svg","features/SelectLocale/SelectLocale.tsx","features/AppLayout/AppLayout.helpers.ts","features/AppLayout/AppLayout.tsx","features/AppLayout/AppUserNav/AppUserNav.tsx","store/product/product.types.ts","store/localize/localize.types.ts","features/AdminPage/SubmissionsFilters/FiltersActions/FiltersActions.module.css","features/AccessDeniedPage/AccessDeniedPage.module.css","authProvider.ts","components/Spinner/Spinner.helpers.ts","components/Sidebar/Sidebar.module.css","features/Footer/Footer.module.css","features/AdminPage/SubmissionsGrid/Submission/SubmissionPlan/SubmissionPlan.module.css","store/registration/registration.actions.ts","store/registration/registration.selectors.ts","store/global/global.types.ts","components/Localization_Confirm/DateFormat.tsx","components/Localization_Confirm/NumberFormat.tsx","components/Localization_Confirm/ConfirmDialog.tsx","components/Tab/Tab.tsx","assets/images/submissionLogoGreen.svg","assets/images/submissionLogoBlack.svg","assets/images/userIconGreen.svg","assets/images/arrowLeft.svg","assets/images/arrowRight.svg","features/SidePanel/SidePanel.tsx","features/AdminPage/UserMenu/UserMenuToggle/UserMenuToggle.tsx","assets/images/exit.svg","features/AdminPage/UserMenu/UserMenuContent/UserMenuContent.tsx","features/AdminPage/UserMenu/UserMenu.tsx","features/AdminPage/UserProductsSelect/OptionUserProduct/OptionUserProduct.tsx","features/AdminPage/UserProductsSelect/UserProductsSelect.tsx","components/Spinner/Spinner.module.css","components/Checkbox/Checkbox.module.css","components/Form/SelectField/Option/Option.module.css","components/Form/Group/Group.module.css","components/Stepper/Stepper.module.css","features/SidePanel/SidePanel.module.css","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/UserCard/UserCard.module.css","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/AdditionalUsersSidebar.module.css","features/RegistrationPage/steps/AccountDetailsForm/AccountDetailsForm.helpers.tsx","features/RegistrationPage/steps/AccountDetailsForm/AccountDetailsForm.module.css","components/Card/Card.module.css","components/Counter/Counter.module.css","components/Select/Option/Option.module.css","features/AdminPage/OnboardingPage/OnboardingFilters/OnboardingFilters.module.css","components/Tag/Tag.module.css","components/Tab/Tab.module.css","features/AdminPage/UserProductsSelect/UserProductsSelect.module.css","features/AdminPage/SubmissionsGrid/Submission/SubmissionPlansFooter/SubmissionPlansFooter.module.css","features/AdminPage/SubmissionsGrid/dialogs/DetailedInformationDialog/Detail/Detail.module.css","features/AdminPage/SubmissionsGrid/Submission/AdditionalUsersSidebar/SidebarFooter/SidebarFooter.module.css","features/AdminPage/AdminPageContent/AdminPageContent.module.css","features/AdminPage/OnboardingPage/DeleteAdminModal/DeleteAdminModal.module.css","features/RegistrationPage/components/StepActionsPanel/StepActionsPanel.tsx","assets/images/ChevronLeftRegular.png","shared/utils/api-host-resolver.utils.ts","components/Dialog/Dialog.tsx","store/product/product.reducer.ts","store/auth/auth.reducer.ts","store/localize/localize.reducer.ts","store/registration/registration.reducer.ts","store/updateSubscription/subscription.reducer.ts","store/global/global.reducer.ts","store/updateSubscription/subscription.actions.ts","components/Spinner/SpinnerImage/Spinner.svg","components/Spinner/SpinnerImage/SpinnerImage.tsx","components/Spinner/SpinnerBackdrop/SpinnerBackdrop.tsx","components/Spinner/Spinner.tsx","components/Pagination/Paginator/Paginator.tsx","components/Pagination/Paginator/Pagination.helpers.ts","components/Pagination/Pagination.tsx","assets/images/WarningCircle.png","features/AdminPage/SubmissionsFilters/OptionFilters/OptionFilters.tsx","assets/images/circleCrossFilter.svg","features/AdminPage/SubmissionsFilters/FilterRow/FilterRow.tsx","features/AdminPage/SubmissionsFilters/FiltersControls/FiltersControls.tsx","features/AdminPage/SubmissionsFilters/FiltersActions/FiltersActions.tsx","features/AdminPage/SubmissionsFilters/FiltersForm/FiltersForm.tsx","features/AdminPage/SubmissionsFilters/FiltersForm/FiltersForm.helpers.ts","features/AdminPage/SubmissionsFilters/SubmissionsFilters.tsx","assets/images/circleCrossOmnia.svg","features/AdminPage/SubmissionsFilters/FilterBadge/FilterBadge.tsx","components/Form/SelectField/DropdownIndicator/DropdownIndicator.module.css","components/Form/SelectField/Control/Control.module.css","components/Form/SelectField/MultiValue/MultiValue.module.css","components/Radio/Radio.module.css","features/AdminPage/SubmissionsFilters/OptionFilters/OptionFilters.module.css","features/SelectLocale/OptionUserProduct/OptionUserProduct.module.css","features/AdminLayout/AdminLayout.module.css","features/AdminPage/UserProductsSelect/OptionUserProduct/OptionUserProduct.module.css","features/AdminPage/SubmissionsGrid/Submission/SubmissionPlanStatus/SubmissionPlanStatus.module.css","features/AdminPage/SubmissionsGrid/dialogs/DetailedInformationDialog/DetailedInformationDialog.module.css","features/AdminPage/SubmissionsFilters/FilterBadge/FilterBadge.module.css","features/AdminPage/UserMenu/UserMenuToggle/UserMenuToggle.module.css","features/RegistrationPage/components/StepActionsPanel/StepActionsPanel.module.css","features/UpdateSubscription/steps/SelectPlans/OptionAdminAction/OptionAdminAction.module.css","components/Pagination/Pagination.module.css","components/RadioButtons/RadioButtons.module.css","components/Select/DropdownIndicator/DropdownIndicator.module.css","features/AdminPage/SubmissionsFilters/SubmissionsFilters.module.css","features/AdminPage/NoGridData/NoGridData.module.css","features/AdminPage/SubmissionsGrid/dialogs/RegistrationSubmissionDialog/RegistrationSubmissionDialog.module.css","features/AdminPage/SubmissionsGrid/dialogs/RegistrationCommentDialog/RegistrationCommentDialog.module.css","features/AdminPage/SubmissionsGrid/dialogs/CompanyEditDialog/CompanyEditDialog.module.css","components/ThemedButton/ThemedButton.module.css","features/UpdateSubscription/CancelSubmissionDialog/CancelSubmissionDialog.module.css","features/BaseLayout/BaseLayout.module.css","assets/images/userIconBlack.svg","features/BaseLayout/BaseLayout.tsx","components/AlertMessage/AlertMessage.tsx","components/Card/CardHeader/CardHeader.module.css","components/Form/SelectField/Placeholder/Placeholder.module.css","components/Form/SelectField/SingleValue/SingleValue.module.css","components/Form/SelectField/Menu/Menu.module.css","features/AdminPage/SubmissionsFilters/FiltersForm/FiltersForm.module.css","features/AdminPage/AdminPageHeader/AdminPageHeader.module.css","features/AdminPage/SubmissionsGrid/Submission/Submission.module.css","features/AdminPage/SubmissionsTabs/SubmissionsTabs.module.css","shared/constants/product.consts.ts","locales/en/index.ts","locales/en/actions.en.ts","locales/en/admin.en.ts","locales/en/app.en.ts","locales/en/common.en.ts","locales/en/dialogs.en.ts","locales/en/forms.en.ts","locales/en/registration.en.ts","locales/en/pages.en.ts","locales/en/placeholders.en.ts","locales/en/validation.en.ts","locales/en/homepage.en.ts","locales/en/onboarding.en.ts","store/onboarding/onboarding.types.ts","store/onboarding/onboarding.reducer.ts","store/root.reducer.ts","store/onboarding/onboarding.selectors.ts","store/onboarding/onboarding.actions.ts","features/AdminPage/OnboardingCreation/AddAdminForm/AddAdminForm.helpers.ts","features/AdminPage/OnboardingCreation/AddAdminForm/AddAdminForm.tsx","features/AdminPage/OnboardingCreation/OnboardingCreation.tsx","features/AdminPage/OnboardingPage/OnboardingPageTable/OnboardingPageTable.tsx","shared/hooks/useTimeoutBeforeLoader.ts","components/ThemedButton/ThemedButton.tsx","features/AdminPage/OnboardingPage/DeleteAdminModal/DeleteAdminModal.tsx","features/AdminPage/OnboardingPage/dialogs/ConfigureRetentionDialog/ConfigureRetentionDialog.helpers.ts","features/AdminPage/OnboardingPage/dialogs/ConfigureRetentionDialog/ConfigureRetentionDialog.tsx","assets/images/send-mail.png","features/AdminPage/OnboardingPage/OnboardingPage.tsx","assets/images/Information.png","features/AdminPage/OnboardingPage/OnboardingPageWithNav.tsx","features/UpdateSubscription/steps/SelectPlans/PlanCard/PlanCard.tsx","features/UpdateSubscription/steps/SelectPlans/SelectPlans.tsx","features/UpdateSubscription/CancelSubmissionDialog/CancelSubmissionDialog.helpers.ts","features/UpdateSubscription/CancelSubmissionDialog/CancelSubmissionDialog.tsx","features/UpdateSubscription/steps/AccountDetails/AccountDetailsForm.tsx","features/UpdateSubscription/steps/AccountDetails/AccountDetails.tsx","shared/hooks/useTimeInterval.ts","shared/hooks/useEventsTracking.ts","shared/constants/autologout.const.ts","components/LogoutWarningPopup/LogoutWarningPopup.tsx","features/UpdateSubscription/steps/SelectPlans/OptionAdminAction/OptionAdminAction.tsx","features/UpdateSubscription/UpdateSubscription.tsx","features/Routes/components/AdminRoutes.tsx","features/AccessDeniedPage/AccessDeniedPage.tsx","features/Routes/components/OtherRoutes.tsx","features/Routes/components/RegistrationRoutes.tsx","features/Routes/components/TermsOfUseRoutes.tsx","features/Routes/Routes.tsx","features/App/App.tsx","features/App/App.container.tsx","index.tsx"],"names":["TransparentButton","children","className","type","onClick","noop","cs","styles","transparentButton","CardHeader","Card","Title","title","CardContent","CardFooter","highlighted","childrenArray","React","Children","toArray","header","findSlot","name","content","footer","card","Body","Footer","noBorder","Header","Content","Status","Checkbox","label","labelClass","disabled","checked","onChange","miconClass","Form","Check","container","id","Input","check","Label","Icon","customcheckedIcon","checkedIcon","size","Confirmation","message","note","reactivate","variant","onResolve","onReject","useState","show","setShow","status","setStatus","t","useTranslation","callbackMap","useMemo","resolved","rejected","handleOnExited","useCallback","handleResolve","handleReject","useOnMount","Modal","centered","modal","onExited","warningImage","alt","src","WarningPng","body","text","Button","cancelAction","continueAction","ConfirmationCancellation","useSelector","selectProductCode","handleYes","handleNo","confirmatiocancelAction","Counter","value","disabledInput","minValue","Number","MIN_SAFE_INTEGER","maxValue","changeInputValueCb","MAX_SAFE_INTEGER","e","Math","max","min","target","slice","input","customDisabled","AdminDialog","actions","noCaps","onHide","onClose","length","paddingTop_0","map","action","thin","paddingBottom_0","titleAdminDialog","crossImage","role","tabIndex","onKeyPress","useError","error","touched","validation","errorException","Control","Feedback","feedback","Nothing","DropdownIndicator","isFocused","isMulti","icon","iconFocused","Placeholder","props","control","controlFocused","controlMultiple","SingleValue","Menu","Option","isSelected","tick","option","optionSelected","optionFocused","MultiValue","removeProps","remove","useOptionProp","get","useSelectLabel","CheckboxField","useField","field","Radio","elem","inputLabel","renderInput","errorMsg","Group","as","Col","controlId","kebabCase","ele","specialLabelCss","component","auditClient","inline","validated","form","placeholder","span","validationErrMsg","maxLength","meta","onBlur","isInvalid","lg","formControlInvalid","Select","options","multiple","optionLabel","optionValue","renderSelectLabel","handleGetOptionLabel","handleGetOptionValue","IndicatorSeparator","components","setValue","setTouched","getOptionLabel","getOptionValue","isClearable","isDisabled","selectedValue","SelectAsync","load","noOptions","loadMessage","withoutIndicator","loadingMessage","loadOptions","noOptionsMessage","Row","BsForm","link","country","Code","privacyHrefCountryCode","globalPrivacyData","GLOBAL_PRIVACY_STATEMENT","find","item","countryCode","linkByProduct","privacyStatement","toLocaleLowerCase","substring","group","heading","href","rel","Textarea","rows","renderFooter","noResize","SelectFilters","filterFormGroup","SelectAsyncFilters","RadioButtons","renderOption","onChangeCb","generateKeyCb","Object","keys","key","join","toString","generateUniqueKey","ButtonToolbar","ToggleButtonGroup","defaultValue","ToggleButton","toggleButton","normal","isEqual","placeholderPrefix","style","focused","isFirstInit","setIsFirstInit","hasFocus","setHasFocus","useEffect","customOption","selected","isSearchable","isOptionDisabled","withDropdownIndicator","additionalThemeProps","OptionComponent","onMenuClose","handleOnChange","ClearIndicator","innerProps","ref","restInnerProps","clearIndicator","setComponents","state","customSelect","formatOptionLabel","menuPlacement","theme","borderRadius","colors","primary25","primary","Stepper","current","isUpdateSubscriptionPage","active","findIndex","el","points","i","cloneElement","passed","index","Fragment","stepContainer","stepper","handleStepperMargin","borderBottom","hr","Step","point","activeStep1","activeStep2","step","activeLabel","_path","Table","isBorderless","borderless","Sidebar","Overlay","_extends","assign","arguments","source","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgUsers","_ref","svgRef","titleId","width","height","viewBox","fill","xmlns","fillRule","clipRule","d","ForwardRef","asyncActionPending","actionName","asyncActionRejected","asyncActionFulfilled","smartFetch","url","a","fetch","response","undefined","json","fetchData","path","headers","resp","data","parseQueryString","queryString","includes","replace","makeQueryString","querystring","stringify","getProductCodeFromPath","pathname","lastSlashIndex","lastIndexOf","getProductCodeFromExternalPath","split","reverse","getCountryCodeFromPath","exportCSVFile","byteCharacters","fileTitle","exportedFilename","blob","Blob","navigator","msSaveBlob","document","createElement","download","setAttribute","encodeURIComponent","visibility","appendChild","click","removeChild","getCurrentUser","GET_CURRENT_USER","payload","apiService","setAccessToken","token","dispatch","setToken","SET_ACCESS_TOKEN","signOut","localStorage","clear","oidcService","setCurrentUserAdminFilters","SET_CURRENT_USER_ADMIN_FILTERS","setCurrentUserFilters","SET_CURRENT_USER_FILTERS","setSourceSubjectId","SET_SOURCE_SUBJECT_ID","SORT_DIRECTION","defaultDateFormat","defaultNumberFormat","LOCAL_STORAGE_TOKEN_KEY","AppLocales","enUS","defaultLocale","localeCode","language","nativeName","englishName","LOCAL_STORAGE_EXTERNAL_USER_PRODUCT_KEY","MSAL_TOKEN_KEY","getWindow","APP_CONFIG","AAD_CLIENT_ID","SUBMISSION_TYPE","SUBMISSION_PLAN_STATUS","PLAN_TYPE","COUNTRY_CHECK","UserRoles","USER_ROLES","Tag","tag","OnboardingFilters","usersCount","setUserFilters","userFilters","filtersRef","sorter","showFilters","all","byCountry","byMemberFirm","byProduct","byProductGroup","byTenant","user","reselectUser","changeRoleFilter","userRole","appliedFilters","superAdmin","values","reduce","acc","filter","filters","tags","PRODUCT_ADMIN","PRODUCT_GROUP_ADMIN","productAdmin","WHITELISTED_USER","whitelistedInternalUser","filterControls","filtersOpener","SubmissionsFilters","appendTo","countryOptionValue","fetchAdminCountries","onApply","emails","displayName","getFromLocalStorage","localStorageValue","getItem","JSON","parse","removeFromLocalStorage","removeItem","setToLocalStorage","setItem","calculateEndTime","time","addSeconds","Date","toISOString","hasTimeExpired","timeString","isAfter","isSameSecond","getDifferenceInSecondsFromNow","dateStringToSubtractSeconds","startDate","endDate","floor","getTime","BlankLink","onClickHandler","APP_PATH","RoutesContext","createContext","setProductCallback","reactPlugin","ReactPlugin","instrumentationKey","window","APP_INSIGHTS_INSTRUMENTATION_KEY","ai","ApplicationInsights","config","extensions","extensionConfig","identifier","history","globalHistory","loadAppInsights","appInsights","trackException","Error","severityLevel","SeverityLevel","i18nService","init","defaultLang","translations","fallbackLng","Promise","resolve","i18next","use","initReactI18next","lng","debug","process","resources","res","translation","changeLanguage","lang","addResourceBundle","ns","resource","hasResourceBundle","getResourceBundle","getCurrLangResource","deleteAdmin","email","productCode","request","getApiHost","method","getAuthToken","adfsToken","keepAlive","BASE_HTTP_HEADERS","Authorization","product","code","i18n","doc","pageSize","pageNumber","saveFilters","requestBody","setLanguage","SUPER_ADMIN","axios","OidcUser","idToken","accessToken","isInternal","userManager","signInRedirect","signinRedirect","catch","console","signInRedirectTermsofUse","pathName","idTokenHint","signoutRedirect","id_token_hint","err","clearStaleState","signInRedirectCallback","signinRedirectCallback","then","signOutRedirectCallback","signoutRedirectCallback","removeUser","UserManager","OIDC_CONFIG","events","tokenData","OidcService","getTokenData","access_token","id_token","userType","base64","atob","module","exports","setProductFromPath","SET_PRODUCT_FROM_PATH","getProductInfo","API_PATH","GET_COUNTRIES_PRODUCT","GET_COUNTRIES_ALL","GET_SUBMISSIONS_GRID","EXPORT_REGISTRATIONS","locale","SUBMIT_REGISTRATION","GET_COMPANY_FILTER_QUERY","GET_USER_FILTER_QUERY","GET_USER_FILTER_QUERY_PRODUCT","GET_USER_FILTER_QUERY_ALL","SAVE_SUBSCRIPTION","sourceSubjectId","GET_PROFILE","SAVE_PRODUCT_ROLE_INFO","SAVE_USER_PREFERENCE","UPDATE_TERMS_OF_USE","UPDATE_INTERNAL_TERMS_OF_USE","GET_ADDITIONAL_USERS","ADD_ADDITIONAL_USER","REMOVE_ADDITIONAL_USER","UPDATE_COMPANY_NAME","GET_ADMIN_FILTER_QUERY_ALL","GET_ADMIN_FILTER_QUERY_PRODUCT","GET_ADMIN_COUNTRIES","UPDATE_PRIMARY_USER","PROFILE_LOGOUT","selectIsLoading","updateSubscription","isLoading","selectSubscriptionData","selectCountryStatesData","states","reselectSubscriptionData","createSelector","reselectCountry","reselectSubscriptionEmail","userEmail","reselectAction","userAction","reselectSubscriptionPlans","plans","FETCH_COUNTRY_CODES","FETCH_PRODUCT_COUNTRIES","FETCH_TERMS_OF_USE","FETCH_INTERNAL_TERMS_OF_USE","FETCH_COUNTRY_STATES","FETCH_PRODUCT_PLANS","SET_REGISTRATION_COUNTRY_CODE","SET_REGISTRATION_TERMS_OF_USE_AGREEMENT","SET_REGISTRATION_PLANS","SUBMIT_REGISTRATION_DATA","UPDATE_SUB_STEP","UPDATE_SUBSCRIPTIONS_ACTIONS","useUpdateSubSteps","setStep","SELECT_PLANS","ACCOUNT_DETAILS","fetchLocaleList","FETCH_LOCALE_LIST","hasResource","SET_LOCALE","getDictionary","dictionary","reselectLocaleList","localize","localeList","list","reselectLocaleCode","fontSize","PLAN_STATUS","tableHeaders","sortOrder","DESC","GRID_OPTIONS_ACTION_TYPES","initialGridOptions","legalName","planStatus","subscriberEmail","query","fields","sortBy","sortDirection","selectedFilters","submissionHeaders","gridOptionsReducer","CHANGE_PAGE_NUMBER","CHANGE_PAGE_SIZE","CHANGE_ONLY_PENDING","CHANGE_SORTING","newSubmissionHeaders","indexToSort","prevSortIndex","CHANGE_FILTERS","countryCodeFilter","legalNameFilter","userFilter","subscriberEmailFilter","countryName","companyName","subscriberName","fullName","subEmail","AdminContext","onSubscriptionsSubmit","callback","selectProductTitle","selectProductAppUrl","appUrl","reselectProductInfo","selectProductPlans","selectCountries","countries","selectMemberFirms","memberFirms","selectFields","fieldSettings","RENEW_SUBSCRIPTIONS","SET_SUBSRIPTION_PLANS","SET_USER_ACTION","SET_INIT_VALUES","SET_SUBSRIPTION_COUNTRY_CODE","SET_SUBSRIPTION_EMAIL","SET_SUBSRIPTION_DETAILS","SET_IS_LOADING","button","btnSm","btnOutlinePrimary","btnOutlineSecondary","withIcon","CONFIG","authority","ADFS_URL","client_id","OIDC_AUTH_CLIENT_ID","redirect_uri","GAP_APP_URL","AUTH_CALLBACK","post_logout_redirect_uri","LOGOUT_CALLBACK","response_type","scope","automaticSilentRenew","silent_redirect_uri","accessTokenExpiringNotificationTime","filterProtocolClaims","loadUserInfo","allowAccessTokensViaBrowser","signingKeys","kty","alg","kid","x5t","n","x5c","metadata","issuer","authorization_endpoint","userinfo_endpoint","end_session_endpoint","jwks_uri","PROCEED_WITHOUT_USER","AutoLogout","signoutTime","warningTime","showModal","setModal","seconds","setSeconds","warnTimeout","useRef","logoutTimeout","setIntervalTime","isModalShow","warn","logout","authProvider","random","upadateTime","sec","setTimeouts","setTimeout","setWarnTimeouts","clearTimeouts","clearTimeout","resetAll","clearInterval","handleOnClose","handleMultiTab","event","location","addEventListener","removeEventListener","resetTimeout","setInterval","resetWarnTimeout","forEach","backdrop","iconCircle","yesaction","AdminLayout","wrapper","SidePanel","footer_wrapper","NoGridData","areFilterEnabled","image","noGridResultsImage","noGridDataImage","AdminHeader","disabledExport","onExport","UserProductsSelect","AdminGrid","direction","onSortChange","gridHeaders","gridData","rowDataRenderer","dataKey","offset","footerRenderer","mainGrid","isDetailsDialog","ifPageMIP","isSubmissionRecord","columnsCount","gridStyles","gridTemplateColumns","detailsGridStyles","columnGap","alignItems","flexTableStyles","setFlexTableStyles","onSortingChangeCb","sortdirection","sortingOrder","ASC","showColumnForTenantAdmin","flexTable","mainHeader","bgWhite","submissionPlans","detailsGridHeader","flexRow","mainGridHeader","alignBottom","columnheaders","DirectionButton","isDisable","isReversed","dataProps","flexTableRowHeightMIP","flexTableRowHeightAllProduct","dataRow","detailsDataRow","highlight","String","rowStyles","rowClassName","setUpdatedPrimaryUser","SET_UPDATED_PRIMARY_USER","selectUpdatedPrimaryId","global","updatedPrimaryId","EditableComponent","existingValue","onStartEditing","onConfirmEdit","onCancelEdit","editField","editFieldImg","onMouseDown","circleTickImage","circleCrossImage","SUBSCRIPTIONS_ACTION_TYPES","Submission","onCommentClick","onDetailsClick","onUsersclick","onChangeEditMode","isEnableEdit","DATE_FORMAT","showUserIcon","submission","comment","organization","firstName","lastName","submissionDate","editLegalName","useContext","contentHiddenText","formatSubscriberName","formatCompanyName","formatEmail","iconButton","overflow","PENDING","fixSpan","hiddenContent","editImg","editIconImage","format","DateLocale","iconButtonDisable","PROCESSED","some","plan","verticalAlign","SubmissionPlanToggler","onToggle","isOpen","formatNumber","precision","thousandSeparator","charAt","decimalSeparator","accounting","SubmissionPlanStatus","toLowerCase","SubmissionPlan","enablePlanControl","model","availableLicenses","purchasedLicenses","performedBy","performedAt","expiredAt","duration","userProductRole","onChoose","onRoleSelect","productRoles","profileSettings","dateFormat","NUMBER_FORMAT","numberFormat","confirm","setConfirm","setIsDisabled","licenses","selectedProductCode","setSelectedProductCode","ifStatusActiveOrCancel","ACTIVE","CANCELLED","roleToSelect","pR","productRoleId","roleName","roleSelected","handleRejectCallback","REJECTED","handleApproveCallback","APPROVED","handleOnReject","handleOnResolve","changedRoleId","handleProductRoleCallback","userProductRoles","getOptionValueCallback","ids","getOptionLabelCallback","renderOptionCallback","findSelectedProductFromOptions","productRole","getSelectedRole","getDuration","LICENSE","SUBSCRIPTION","monthsKeyword","formatDuration","shifted","long","PENDING_REACTIVATION","PENDING_RENEWAL","PENDING_ACTIVATION","initialSubscriptionsState","APPROVAL_ACTION_TYPES","isPendingStatus","subscriptionsReducer","INITIALIZE","REJECT_ALL","planCode","APPROVE_ALL","CHANGE_VALUE","APPROVAL_ACTION_TYPES_NAMES","RENEW","REACTIVATE","ACTIVATE","SubmissionPlansFooter","isSubmitAvailable","onOpenSubmissionDialog","shouldShowText","info","gridColumnStart","gridColumnEnd","submitButton","initialFormValues","registrationSubmissionDialogEnhancer","withFormik","mapPropsToValues","validationSchema","object","shape","string","required","trim","handleSubmit","RegistrationSubmissionDialog","onSubmit","onCancel","isValid","sendValues","setSendValues","handleOnSubmit","handleOnClosed","symbolsCounter","onClosed","SubmissionPlansGrid","updatePlanControl","useHistory","useDispatch","selectSourceSubjectId","httpHeaders","selectHttpHeaders","updateUrl","ADMIN_UPDATESUBSCRIPTION_ROOT","approvalActionType","setApprovalActionType","isOpenSubmissionDialog","setOpenSubmissionDialog","IsRoleSelected","setRoleSelected","useReducer","subscriptions","dispatchSubscriptions","setSubmitAvailability","useMutate","verb","requestOptions","saveSubscriptions","mutate","loading","saveProductRoleInfo","handleClearActionType","finally","onApprove","onUpdate","defaultTableHeaders","defaultTableHeadersIfMIP","right","noEvent","controlTableHeaders","btnMoveLeft","taDisable","mipUpdateSubs","updateTableHeaders","emptyTableHeaders","useTableHeaders","setSelectedEmail","push","concat","setTableHeaders","nextTableHeaders","areRadiosChecked","every","subscription","handleChoosePlanAction","handleOpenSubmissionDialog","handleCloseSubmissionDialog","handleSubmitSubscriptions","handleProductRoleRequest","ProductRoleId","ProductCode","handleDataRendererCallback","handleFooterRendererCallback","approvedPlan","generateConfirmationPopupText","Detail","Details","displayId","address","city","postalCode","DetailedInformationDialog","detailDialog","showCrossButton","detailDialogGrid","RegistrationCommentDialog","setLocale","mixed","default","camelCase","formGroups","render","mipFormGroups","renderSelect","addInfoFormGroups","renderStateSelect","useRenderInput","lookups","ADDITIONAL_USER_STATE","accountDetailsStoreEnhancer","connect","UserEmail","FirstName","LastName","userFormEnhancer","test","splitValue","Role","optional","transform","UserForm","FILE_STATUSES","isMultipleUser","formErrors","setFieldError","isConcentChecked","setConcentFlag","file","setFile","uploadStarted","setUploadStarted","FileUploadErrorText","setFileUploadErrorText","setFileUploadError","uploadPercentage","setUploadPercentage","SELECTED","statusAdd","setStatusAdd","taskId","setTaskId","enableAddUsers","UPLOADED","barDesign","LOADING","barUploading","FAILED","barFailed","barSelected","barLoaded","merge","UserProductRole","omit","renderStateInput","mapFormFields","row","mapAddInfoFormFields","mapFormGroups","mapAddInfoFormGroups","additionalInformationForm","allFieldArevalid","isFormValid","isAdditionalInformationContainerOpen","toggleAdditionalInformationContainer","isFileOver","setIsFileOver","handleSetFiles","addUsersList","getErrorMessage","startUploading","setProgress","progressBarStatus","timer","getStatusForBulkAdditionalUsers","statusPercentage","errorDescription","log","curfile","FormData","append","uploadAdditionUsers","errorMessage","detailsSection","uploadedfiles","uploadedfilesitem","uploadedfilesitemwrap","uploadedfilesitemcontent","excelFileStatus","arrangeItems","xlsimage","XLSIcon","closeStatus","uploadedfilesdelete","deleteAdditionalUserExcel","Close","Retry","Tick","progressWrap","LinearProgress","uploadedfileserror","lastModified","outdrop","dropzone","onDragLeave","stopPropagation","preventDefault","onDragOver","onDrop","dataTransfer","files","DownloadToCloud","filebrowsetext","spndragdrop","filebrowse","htmlFor","accept","templateButton","USR_TEMPLATE","templateName","display","concentContainer","additionalInfoContainer","concentItems","headerText","toggleIcon","prevOpenState","addInfoFormData","cancel_btn","addingBulkAdditionalUsers","UserFormContainer","changePanel","passData","reload","setFormErrors","showAlert","setShowAlert","submitAccountDetails","submitLoading","submitError","errors","alertContainer","AlertMessage","Email","AccountId","Organization","OptionUser","EditIcon","UserSelect","userList","primaryUser","onSelect","handleSelectUser","userName","selectedOption","selectContainer","neutral0","spacing","baseUnit","controlHeight","menuGutter","userSelect","iconEdit","UserCard","isPrimary","onRemove","content_div","initial_div","toLocaleUpperCase","disabled_div","SidebarFooter","userState","onChangePanel","onClearState","onRemoveUser","onUpdateUser","addUserText","canAddAdditionalUsers","MAIN","footerButton","stylesButton","new_btn","new_primary_btn","excelIcon","ExcelIcon","REMOVE","new_cancel_btn","UPDATE","update_footer_div","new_confirm_btn","UserList","users","onShowSubheading","primaryFirstName","primaryLastName","allUsers","secondryUser","setSecondryUser","setUserState","setAddUserText","showSelect","setShowSelect","close","setClose","clearState","onMutate","removeUserCall","updateUserCall","updateUserLoading","removeUserFun","updateUser","updateUserFun","CurrentAccountId","TargetUserEmail","shouldShow","img_div","userData","outGuideCls","guideCls","guidanceIcon","Guidance","guiddeTxt","btnChange","UploadMultipleUser","AdditionalUsersSidebar","onCloseSidebar","add","multipleUser","additionalUsers","setUsers","activePanel","setActivePanel","showSubheading","setShowSubheading","getUsers","getUser","classList","noScroll","deps","useOnUnmount","contains","next","subheading","new_btn_sm","LIST","ADD","MULTIPLE_USER","CompanyEditDialogEnhancer","CompanyEditDialog","SubmissionContainer","handleGetGridData","UpdateCompanyName","isOpenPlanManagement","togglePlanManagement","isOpenCommentDialog","setOpenCommentDialog","isOpenDetailsDialog","setOpenDetailsDialog","isOpenUsersSidebar","setOpenUsersSidebar","setisEnableEdit","editName","seteditName","isOpenEditCompanyDialog","setOpenEditCompanyDialog","handleOpenCommentDialog","handleCloseCommentDialog","handleOpenDetailsDialog","handleCloseDetailsDialog","handleOpenUsersSidebar","userDetails","referral","isPending","memberFirmId","l10NKey","parentLegalName","department","stateL10NKey","stateId","deloitteAuditClientType","isDeloitteAuditClient","setSubscriptionDetails","handleCloseUsersSidebar","handleCompanyEditMode","handleConfirmEdit","CompanyId","companyId","LegalName","handleCancelEdit","handleOpenEditCompanyDialog","handleCloseEditCompanyDialog","querySelectorAll","classlists","fullClassName","getElementsByClassName","plansGrid","SubmissionsGrid","submissions","grid","SubmissionsGridContainer","spinner","SubmissionsTabs","submissionType","setSubmissionType","handleFiltersOnChange","renderOptionCb","count","onChangeSubmissionTabCb","submissionsTabs","pending","processed","getSubmissionsTabs","AdminPageContent","filtersContainer","totalItems","setTotalItems","gridOptions","dispatchGridOptions","updateSubmissions","showUserIconFlag","setShowUserIconDisplayFlag","roles","updateProductRoles","isLoaded","setLoaded","registrationTabsCount","updateRegistrationTabsCount","isApplyButtonClicked","setApplyButtonClicked","getGridData","isGridLoading","gridError","exportCSV","exportCSVError","handleQueryResponse","items","submissionsCount","allItemsCount","handleSortOnChange","updatedFilters","handlePageSizeOnChange","handlePageNumberOnChange","handleSubmissionTypeChange","removeFilter","filterToRemove","tempFilter","setData","to","ACCESS_DENIED","filterArr","Provider","filterPanel","sortAndFilters","FilterBadge","filterArray","pagination","currentPage","reversedMenuList","total","withPageNumberInput","withPageSizeSelector","onPageChange","onPageSizeChange","confirmDialogConfig","openButtonName","closeButtonName","okBtnName","cancelBtnName","subTitle","subTitle2","subTitle3","description","AdminPage","showSettings","setShowSettings","isFirstLogin","selectIsFirstLogin","ConfirmDialog","firstLogin","UserMenu","isActive","month","getMonth","dd","getDate","year","getFullYear","mon","selectUser","auth","selectHasUserLoaded","selectHasUser","selectIsUserLoading","reselectAdminProducts","adminProducts","selectFirstAdminProductCode","selectHasUserDeniedAccess","hasUserDeniedAccess","selectHasUserExpiredToken","hasUserExpiredToken","selectIsInternal","selectSubscriptionProductCode","productId","selectSubscriptionCountryCode","selectUserInitials","reselectAutoLogoutData","idleTimeToLogOut","beforeLogOutPopUpTime","originalLogoutTimeout","originalKeepAliveTimeout","originalPopupTimeout","selectAdminFilters","adminFilters","selectIsFirstAdminFiltersInit","isFirstAdminFiltersInit","selectAppliedAdminFilters","selectedAdminFilters","ModalCustom","closeButton","setModalStyles","getElementById","opacity","querySelector","useLocation","modalShow","setModalShow","setIsOpen","selectRegistrationCountryCode","environment","ENV","openModalPrivacy","selectProductCountries","productCountry","codesISO","selectCountryCodes","Trans","i18nKey","replaceAll","AUP_SBP_URL","AUP_DRA_URL","AUP_MIP_URL","Dialog","textBold","newtabIcon_space","NewTabIcon","elements","redirectTo","getCookie","cname","ca","cookie","c","OptionUserProduct","SelectLocale","languageLists","selectedLanguage","setSelectedLanguages","fallbackScenario","setFallBackScenario","renderSelectLanguages","handleLanguageChange","productLanguageList","languagefbSelect","fallbackLanguage","tooltipText","languageSelect","shapeLang","ShapeLanguage","dropdownLanguage","AppContext","userNavPlaceholder","AppLayout","userNavPlaceholderRef","bg","navbar","fixed","headerCommon","Brand","brand","logo","headerSubtitle","headerContent","headerUserInfo","AppUserNav","node","setNode","createPortal","AUTHORITY_URL","AAD_TENANT_ID","clientId","redirectUri","cache","cacheLocation","storeAuthStateInCookie","loginType","LoginType","Redirect","tokenRefreshUri","MsalAuthProvider","scopes","SpinnerSize","SPINNER_SIZE_MAP","sm","md","fetchProductCountries","fetchCountryCodes","iso2Code","iso3Code","fetchTermsOfUse","fetchInternalTermsOfUse","fetchCountryStates","setRegistrationCountryCode","setRegistrationTermsOfUseAgreement","isAgreed","setRegistrationPlans","fetchProductPlans","submitRegistrationAccountDetails","accountDetails","registration","countryCodes","selectCountryCodesLoading","productCountries","selectProductCountriesLoading","selectTermsOfUse","termsOfUse","selectTermsOfUseLoading","selectTermsOfUseAgreement","selectTermsOfUseData","reselectTermsOfUseInfo","version","selectRegistrationData","reselectRegistrationPlansEntity","entity","reselectRegistrationCountryCode","reselectRegistrationData","selectCountryStatesLoading","productPlans","selectProductPlansLoading","dateFormatList","numberFormatList","userLanguage","setSelectedLanguage","selectedDateFormat","setSelectedDateFormat","selectedNumberFormat","setSelectedNumberFormat","setFallbackScenario","SaveSettings","keyboard","defaultChecked","Tab","highlightActive","tabRoute","isSidePanel","tab","tabActiveSidePanel","tabActive","isOpenSideBar","setIsOpenSideBar","routeLocation","setRouteLocation","openNav","marginLeft","closeNav","sidebarToggle","submissionLogoGreen","submissionLogoBlack","userIconGreen","userIconBlack","openbtn","arrowLeft","arrowRight","sidebar","UserMenuToggle","forwardRef","userInitials","toggle","toggleBox","UserMenuContent","labeledBy","langData","handleLogout","menuHeaderItem","userIcon","userInfo","userInfoTitle","userInfoSubTitle","selectLangTitle","fallbackTxt","menuButton","exit","Toggle","alignRight","productInfo","selectedProduct","setSelectedProduct","setFilters","handleProductChange","userProducts","renderRadio","privacyText","subscriptionFormGroups","subscriptionDetailsStoreEnhancer","accountDetailsFormEnhancer","isInitialValid","validateSync","StepActionsPanel","nextLabel","showBackButton","isNextDisabled","onNext","onBack","directCancel","productAPPUrl","routeUrl","ADMIN_SUBMISSIONS_ROOT","handleOnCancel","setUserAction","CANCEL","buttonPanel","leftArrow","rightAlignment","func","resolveLocalUrls","API_URL","title_caps","initialProductState","hasSuccessData","productReducer","initialState","countryIds","authReducer","adminName","adminEmails","initialUserData","registrationsFilter","company","localizeReducer","initialRegistrationState","registrationReducer","countriesData","codesData","termsOfUseData","statesData","initialSubscriptionState","subscriptionReducer","actionData","globalReducer","renewSubscriptions","plansData","setPlans","setInitValues","setIsLoading","fetchSubscriptionDetails","subscriptionDetails","SpinnerImage","SpinnerSvg","SpinnerBackdrop","spinnerBackdrop","Spinner","shouldFill","Md","overflowHidden","Paginator","lastPage","visiblePagesCount","pagesSlice","setPagesSlice","activePage","setActivePage","onPageChangeCb","page","pages","Array","from","_","stepFromMiddlePagePosition","calculatedFirstPage","calculatedLastPage","firstPageInSlice","firstPage","getFirstPageInSlice","lastPageInSlice","getLastPageInSlice","getPagesSlice","paginator","First","pageControl","controlIcon","Prev","ellipsis","Item","pageItem","Next","Last","Pagination","pageSizeOptions","ceil","OptionFilters","FilterRow","onSubscriberEmailSearch","onCompaniesSearch","onUsersSearch","setFieldValue","onAdminsSearch","activeRole","addMoreFilter","addFilter","appliedFilter","setAddMoreFilter","removeFilterRow","filterDataMapping","isNaN","selectedFilter","setSelectedFilter","allSelectedFilter","setAllSelectedFilter","filterOptions","setfilterOptions","handleCountryChange","checkSelectedOption","disableOption","enableOption","handleFilterChange","filterSelect","filterSearch","userControl","removeFilterBtn","splice","circleCrossFilter","FiltersControls","statuses","onReset","disableReset","filterHeader","filterHeaderCol","filterSubHeaderCol","FiltersActions","addNewFilter","disableFilter","FiltersForm","FiltersFormEnhancer","usersQuery","setUsersQuery","companiesQuery","setCompaniesQuery","adminQuery","setAdminQuery","setDisableReset","companiesQueryString","useGet","lazy","adminCountries","refetch","arr","keyName","handleOnReset","handleAddNewFilter","handleOnApply","handleNoOptionsMessage","handleLoadingMessage","handleOnCompaniesSearch","debounce","q","countryList","handleOnSubscriberEmailSearch","UserName","handleOnUsersSearch","RoleId","handleOnAdminEmailSearch","base","_companies","_companiesMeta","loadCompanies","queryParams","_users","_usersMeta","loadUsers","_admins","_adminMeta","loadAdmins","opened","setOpened","updatedValue","prev","handleOnclose","panel","badge","pill","eachFilter","filterItem","Badge","circleCrossOmnia","BaseLayout","warning","PRODUCT_ROLE","en","empty","selectLanguage","settings","register","logIn","cancel","canceltext","confirmcancel","continue","back","previousStep","submit","excelExport","csvExport","logOut","no","yes","ok","sortedBy","clearAll","No","Yes","logOutWarning","logOutWarningMsg","logOutWarningNote","save","resetFilter","admin","first","selectDateFormat","selectNumberFormat","changePreference","tabs","submissionDetails","noData","noResults","aruser","nooptions","editCompanyName","confirmEdit","cancelEdit","hiddencontent","adminEmail","retentionYear","tenantRetentionYearWarning","retentionValidationMsg","lastEdited","names","BlackScholes","MonteCarlo","Binomial","TSRMonitoring","approved","expired","inactive","cancelled","pendingreactivation","pendingrenewal","unsubscribed","pendingactivation","alicenses","plicenses","reviewedBy","date","reject","approve","rejectAll","approveAll","checkPlans","noEndDate","months","select","selectPlanTo","approveMessage","rejectMesaage","changePlanMessage","renewal","reactivation","activate","confirmation","accessDenied","contactAdmin","support","january","february","march","april","may","june","july","august","september","october","november","december","jan","feb","mar","apr","ma","jun","jul","aug","sep","oct","nov","dec","activeText","disableText","adduser","addUsers","buttonAddUser","buttonMul","deloittemail","downloadtemplate","nouser","removeaccess","removeb","dragandDrop","maxFileSize","maxFileSizeError","unSupportedFile","somethingWentWrong","fileUploadFailed","browse","downloadTemplate","guidance","guidanceText","replaceText","with","onboarding","manage","addAdmin","adminTypes","tenant","memberFirm","productGroup","adminCreation","adminRole","comments","exists","invalidMemberFirmUser","application","selectEmail","selectApplication","selectRole","toastText","deleteAdminSuccess","deleteWhitelisteUserSuccess","deleteAdminErrorUnautorized","TenantAdmin","Productgroupadmin","ProductAdmin","Memberfirmadmin","Countryadmin","User","WhitelistedInternalUser","retentionSaveSuccessMsg","app","selectlanguage","rights","footerCopyright","footerCopyrightShort","footerCopyrightMIP","footerCopyrightMIPShort","footerCopyrightSBP","footerCopyrightDRA","footerCopyrightDRAShort","footerCopyrightIBR","footerCopyrightSBPShort","footerDocumentLinks","copyright","footerParaTwo","footerParaThree","footerParaFour","omnia","common","of","homepage","dialogs","detailedInformation","registrationComment","processRegistration","termsofuse","termsofusesub","updateCompanyName","cancelDialogItems","notes","cancelPlan","parts","goingToCancel","minLicenseWarning","minTokenLimit","maxLicenseWarning","exceededTokenLimit","addLicense","purchasedLicenseZero","requestedLicenseZero","availableLicenseZero","configureSettings","retentionFailureMsg","updateManageSubscription","forms","emailAddress","companyFullLegalName","globalParentFullLegalNameOptional","departmentOptional","townCity","stateProvinceCounty","zipPostalCode","dk","referralName","referralEmail","accountInformation","userInformation","referralInformation","selectOption","termsOfUseConfirmation","acceptableUseOfPolicyConfirmation","checkboxLabel","registrationSubmission","commentLabel","commentPlaceholder","updateCompany","additionalInformationSection","checkBoxTitle","checkBoxTitleMultipleUsers","configureRetention","ibr","mip","sbp","titles","selectCountry","selectPlan","acceptableUsePolicy","replaceaupdocumentmsg","replacetoudocumentmsg","updatedTerms","acceptTerms","updatedAup","acceptAup","cancelRegistration","labels","selectCountryMIP","selectedCountry","countryPlaceholder","questions","productconfirmation","descriptions","certificatesNumber","requestedLicenses","addnewplan","renew","renewSubscription","us","canada","ap","nse","dce","aus","uk","china","texts","plansTo","privacy","notices","and","termspdf","privacypdf","noticepdf","aboutpdf","dbdoc","placeholders","enterSubscriberName","enterAdminEmail","enterAdminName","enterSubscriberEmail","selectFilter","additionalEmailNotUnique","userFirstName","userLastName","headersection","access","btitle","ptitle","services","cardtitle1","carddescription1","cardtitle2","cardtitle2b","carddescription2","cardtitle3","carddescription3","cardtitle4","carddescription4","section1","launchbtn","downloadbtn","fileName","section2","innerHeading","ausClientsOnly","australiacomingsoon","section3","section4","productManage","addProductAdmin","fieldSort","table","noFound","deletePopup","areYouSure","deletetenantadmin","adminrole","WLUexists","tweakedResponseCode","resourceNotFound","emailtext","SuperAdmin","cancelRetentionPopup","GET_ONBOARDING_USERS","GET_ADMIN_ROLES","GET_PRODUCTS","GET_COUNTRIES","CREATE_ADMIN","RESET_CREATED_ADMIN","UPDATE_COLUMN_SORTING","adminTableAllTile","adminTableTenantTile","adminTableProductTile","hadCreatedAdmin","userRoles","products","usersPagination","pageCount","headerAllTile","headerTenantTile","headerProductTile","rootReducer","combineReducers","newHeaderTile","tileToUpdate","currentTile","adminSorter","selectHeaderForAllTile","selectHeaderForTenantTile","selectHeaderForProductTile","selectAdminUsersPagination","selectAdminRoles","selectProducts","selectIsLoaded","selectHadCreatedAdmin","getProducts","fetchProducts","AddAdminFormEnhancer","AddAdminForm","adminRoles","setValues","emailQuery","setEmailQuery","setCountries","loadingEmail","setLoadingEmail","emailError","setEmailError","emailErrorText","setEmailErrorText","productOptions","setProductOptions","countryOptions","setCountryOptions","showCountryField","setshowCountryField","showCommentField","setshowCommentField","isEmailProcessing","setEmailProcessingFlag","isConfiramtionCancel","setConfirmCancellation","isWLUProductscharged","setWLUProductscharged","allRoleProductsCharged","setAllRoleProductsCharged","fetchEmailAvailability","userRoleId","roleId","showRoleField","showEmailField","showProductsField","fetchAvaiableProducts","handleOnEmailSearch","formWrap","disableAddAdminForm","selectWrap","withPadding","emailText","fetchAdminsByEmail","_emails","refetchEmails","emailWrap","search","multiSelect","autoheight","formActions","userCountryCode","productCodes","memberFirmCode","createAdmin","OnboardingCreation","showAdminDialog","fetchAdminRoles","getAdminRoles","OnboardingPageTable","handleDelete","allTileHeaders","tenantTileHeaders","productTileHeaders","showLoader","loadingControl","timeout","setShowLoader","useTimeoutBeforeLoader","currentAdminUser","loaderWrap","getActionItems","tcell","svgIcon","disableDelete","svgPath","getUsersDataForBodytemplate","roleAllTile","emailAllTile","getBodyForAllTile","nameTenantTile","emailTenantTile","getBodyForTenantTile","getBodyForProductTile","theader","colSpan","ThemedButton","filled","DeleteAdminModal","modalHeader","modalTitle","cross","modalFooter","retention","ConfigureRetentionDialogEnhancer","ConfigureRetentionDialog","setconfirmCancel","setRetentionYear","setDisableSave","setisFormValid","selectedCountryCode","setSelectedCountryCode","retentionDetails","setRetentionDetails","retentionErrMsg","setRetentionErrMsg","fetchCountries","getRetentionDetails","handleRetentionChange","RetentionYears","findSelectedCountryFromOptions","countryValue","productValue","retentionInput","retentionError","isRetentionLocked","retentionLocked","lastModifiedDate","toLocaleDateString","day","modifiedUserDetail","sendMail","OnboardingPage","userPagination","setPageSize","setPageNumber","isToastOpen","setIsToastOpen","adminForDeletion","setAdminForDeletion","isAdminDeleted","setAdminDeletedFlag","errorOnDeleteAdmin","setDeleteAdminErrorFlag","isAdminCreated","setAdminCreateFlag","hasRequestedUsers","setHasRequestedUsers","storeAdminRole","isOpenConfigureRetentionDialog","setOpenConfigureRetentionDialog","isAddAdminDialogOpen","setAddAdminDialogOpen","confirmCancel","saveSuccess","setsaveSuccess","showDialog","setShowDialogFlag","userDeleted","setUserDeleted","requestForUsers","applyFilters","fetchOnboardingUsers","getUsersForOnboarding","handleCloseConfigureRetentionDialog","handleConfirmSaveRetention","updateRetentionDetails","updateColumnSorting","adminFilter","productGroupAdmin","memberFirmAdmin","countryAdmin","contentWrap","contentCard","cardHeader","cardHeading","cardHeadingBtnGroup","configRetention","tableWrap","Boolean","ex","StatusText","Toast","animation","autohide","toast","delay","toastBody","warningimages","parseInt","setToastMessage","crossSvg","warningText","OnboardingPageWithNav","PlanCard","handlePlanCheck","activationDate","durationList","setmipDuration","MAX_LICENSES","initialLicenses","initialPurchasedLicenses","disableDiv","licenseStatus","RE_ACTIVATE","EXPIRED","ADD_NEW_PLAN","UNSUBSCRIBED","changeLicensesAmount","purchasedLicencesAmount","avalialbleLicensesAmount","newPlans","isChangeEventCalled","setChangeEventCalledFlag","dialogTitle","setDialogTitle","dialogMessage","setDialogMessage","displayMinTokenLimitDialog","displayMaxTokenLimitDialog","handleDurationChange","evaluateCardStatus","oldPlans","oldPlan","op","planCard","bsPrefix","card_main","card_header","card_body","card_sub_title","headLabel","card_discription","card_footer","licenseSection","labelText","labelValue","rightAligned","editPlan","licencesInput","eventLicences","extraPLValue","setLicensesWhenInitialAvailableLicensesNotZero","newPurchasedLicenses","subscriptionSection","selectYears","durationValue","SelectPlans","isNextButtonDisabled","setDisabled","plandurations","durations","ActionItemNames","INACTIVE","reactivate_icon","cancel_option","x","strActionNames","lastOne","pop","licenseValidation","setlicenseValidation","mipDuration","isALZeroPLNot","setALFlag","handleDialogWhenALZeroOnClose","proceedWithNextClickAction","plansFetch","renewedPlans","activePlans","isActiveplanPresent","handleOkClick","currentTarget","updatedPlans","isChecked","tempPlans","generateLicenseValidationMessage","vaildationMsg","planDescription","stepActionPanel","checkedPlans","checkVisibility","isPurchasedLicenseZero","isAvailableLicensesZero","cancelSubmissionDialogEnhancer","CancelSubmissionDialog","datas","val","AccountDetailsForm","showFields","countryDetails","countrySetting","displayAuditClient","memberFirmDetails","memberFirmSetting","productSetting","showAuditClient","onPreviousStepClick","prevPlans","stateData","valuestoPassed","border_rule","update_actionPanel","Lg","AccountDetails","redirectUrl","fValues","setFValues","saveSubscription","updatePlanStatus","formatAndUpdateSubscriptionData","passVal","useTimeInterval","actionCallback","isIntervalActive","setIsIntervalActive","savedCallback","timerId","stopInterval","startInterval","POPUP_TIMEOUT","LOGOUT_TIMEOUT","USER_ACTIVITY","KEEP_ALIVE_TIMEOUT","SESSION_EXPIRES_AT","LogoutWarningPopup","isOpened","setIsOpened","popupTimeout","setPopupTimeout","storageLogoutTimeout","storageKeepAliveTimeout","storagePopupTimeout","storageSessionExpirationTime","storageUserActivity","logoutOnSessionExpiration","handleOpenPopup","initTimeouts","handleContinueSession","stopCheckingInterval","startCheckingInterval","prevState","stopPopupInterval","logoutInTimeout","startPopupInterval","silentRenew","stopAllIntervals","useEventsTracking","OptionAdminAction","UpdateSubscription","productTitle","isNextButtonClicked","disableActionDropDown","selectPlansStep","accountDetailsStep","actionList","steps","setSelectedAction","renderSelectActions","act","getActionName","ENABLE_AUTO_LOGOUT","marginBottom","header_container","whileBackground","page_padding","mainTitle","engDropdownaction","dropdownaction","actionLabel","actionItem","m_b_2","AdminRoutes","hasUser","firstAdminProductCode","isProductAvailable","adminProduct","shouldRedirect","isNotOnboardingAdmin","getRedirectUrlByPermission","isSubmissionsRoot","HOME","exact","ADMIN_SUBMISSIONS_PRODUCT","fallback","ADMIN_ONBOARDING","ADMIN_ONBOARDING_CREATION","ADMIN_UPDATESUBSCRIPTION","WILDCARD","ROOT","AccessDeniedPage","adminContainer","HomePage","OtherRoutes","isTermsOfUse","getRedirectUrl","TERMS_OF_USE_ROOT","RegistrationPage","RegistrationRoutes","REGISTRATION_PRODUCT","TermsOfUseExternalPage","TermsOfUseExternal","TermsOfUseInternalPage","TermsOfUseInternal","TermsOfUseRoutes","redirectUrlByPermission","EXTERNAL_TERMS_OF_USE","Suspense","INTERNAL_TERMS_OF_USE","Routes","adminRoutes","hostname","provider","authenticationState","AuthenticationState","Authenticated","Unauthenticated","termsOfUseRoutes","forceLogin","ADMIN_ROOT","REGISTRATION_ROOT","App","msalToken","MOCK_USER","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","applyMiddleware","promise","thunk","AppContainer","AppInsightsContext","ReactDOM","cookiesUrl","COOKIES_JS","cookeKey","COOKIES_JS_KEY","newScript","charset","onload","updateCookiePolicyLink","getElementsByTagName","maxTries","cookyPolicyelement","alinks","cookyOTPolicyelement"],"mappings":"ymCAYaA,EAET,SAAC,GAAD,IAAGC,EAAH,EAAGA,SAAH,IAAaC,iBAAb,MAAyB,GAAzB,MAA6BC,YAA7B,MAAoC,SAApC,MAA8CC,eAA9C,MAAwDC,IAAxD,SAGF,aAFA,CAEA,UACEH,UAAWI,IAAGC,IAAOC,kBAAmBN,GACxCC,KAAMA,EACNC,QAASA,EAHX,SAKGH,K,mCCbQQ,EAA2C,SAAC,GAAkB,IAAhBR,EAAe,EAAfA,SACzD,OACE,cAACS,EAAA,EAAKC,MAAN,CAAYT,UAAWK,IAAOK,MAA9B,SACE,6BAAKX,OCNEY,EAA4C,SAAC,GAAkB,IAAhBZ,EAAe,EAAfA,SAC1D,OAAO,cAAC,WAAD,UAAWA,KCDPa,EAA2C,SAAC,GAAkB,IAAhBb,EAAe,EAAfA,SACzD,OAAO,cAAC,WAAD,UAAWA,K,kBCSb,SAASS,EAAT,GAAyE,IAAzDK,EAAwD,EAAxDA,YAAab,EAA2C,EAA3CA,UAAWD,EAAgC,EAAhCA,SACvCe,EAAgBC,IAAMC,SAASC,QAAQlB,GACvCmB,EAASC,YAASL,EAAeP,EAAWa,MAC5CC,EAAUF,YAASL,EAAeH,EAAYS,MAC9CE,EAASH,YAASL,EAAeF,EAAWQ,MAElD,OACE,eAAC,IAAD,CACEpB,UAAWI,IAAGJ,EAAWK,IAAOkB,KAAnB,eACVlB,IAAOQ,YAAcA,IAF1B,UAKE,eAAC,IAAOW,KAAR,WACGN,EACAG,KAEFC,GACC,cAAC,IAAOG,OAAR,CACEzB,UAAWI,IAAGC,IAAOqB,SAAR,eACVrB,IAAOQ,YAAcA,IAF1B,SAKGS,OAOXd,EAAKmB,OAASpB,EACdC,EAAKoB,QAAUjB,EACfH,EAAKiB,OAASb,E,IC/CFiB,E,mCCiBCC,EAA4B,SAAC,GAAD,IACvCC,EADuC,EACvCA,MADuC,IAEvCC,kBAFuC,MAE1B,GAF0B,EAGvCZ,EAHuC,EAGvCA,KAHuC,IAIvCa,gBAJuC,aAKvCC,eALuC,aAMvCC,gBANuC,MAM5BhC,IAN4B,MAOvCiC,kBAPuC,MAO1B,GAP0B,SASvC,eAACC,EAAA,EAAKC,MAAN,CAAYtC,UAAWK,IAAOkC,UAAWC,GAAIT,EAAO9B,KAAK,WAAzD,UACE,cAACoC,EAAA,EAAKC,MAAMG,MAAZ,CACEP,QAASA,EACTlC,UAAWK,IAAOqC,MAClBT,SAAUA,EACVb,KAAMA,EACNe,SAAUA,IAEZ,eAACE,EAAA,EAAKC,MAAMK,MAAZ,CAAkB3C,UAAS,UAAKK,IAAO0B,MAAZ,YAAqBC,GAAhD,UACE,cAACY,EAAA,EAAD,CACE5C,UAAyB,eAAboC,EAA6B/B,IAAOwC,kBAAoBxC,IAAOyC,YAC3E1B,KAAK,wBACL2B,KAAoB,eAAbX,EAA6B,GAAK,KAE3C,+BAAOL,W,0CDxCDF,O,uBAAAA,I,wBAAAA,M,mCEsBL,SAASmB,EAAT,GAQiB,IAPtBtC,EAOqB,EAPrBA,MACAuC,EAMqB,EANrBA,QACAC,EAKqB,EALrBA,KAKqB,KAJrBC,WAIqB,EAHrBC,gBAGqB,MAHX,UAGW,MAFrBC,iBAEqB,MAFTlD,IAES,MADrBmD,gBACqB,MADVnD,IACU,EACrB,EAAwBY,IAAMwC,UAAkB,GAAhD,mBAAOC,EAAP,KAAaC,EAAb,KACA,EAA4B1C,IAAMwC,SAAiB,MAAnD,mBAAOG,EAAP,KAAeC,EAAf,KACQC,EAAMC,cAAND,EAEFE,EAA0C/C,IAAMgD,SACpD,2CACGlC,EAAOmC,SAAWX,GADrB,cAEGxB,EAAOoC,SAAWX,GAFrB,IAIA,CAACD,EAAWC,IAGRY,EAAiBnD,IAAMoD,aAAY,WACvCL,EAAYJ,OACX,CAACA,EAAQI,IAENM,EAAgBrD,IAAMoD,aAAY,WACtCV,GAAQ,GACRE,EAAU9B,EAAOmC,YAChB,IAEGK,EAAetD,IAAMoD,aAAY,WACrCV,GAAQ,GACRE,EAAU9B,EAAOoC,YAChB,IAIH,OAFAK,YAAWvD,IAAMoD,aAAY,kBAAYV,GAAQ,KAAO,KAGtD,eAACc,EAAA,EAAD,CACEC,UAAU,EACVxE,UAAWK,IAAOoE,MAClBjB,KAAMA,EACNkB,SAAUR,EAJZ,UAME,cAACK,EAAA,EAAM5C,OAAP,CAAc3B,UAAWK,IAAOa,OAAhC,SACE,eAACqD,EAAA,EAAM9D,MAAP,CAAaT,UAAWK,IAAOK,MAA/B,UACA,sBAAMV,UAAWK,IAAOsE,aAAxB,SACI,qBAAKC,IAAI,MAAMC,IAAKC,QAEtB,+BAAOpE,SAEX,cAAC6D,EAAA,EAAM/C,KAAP,CAAYxB,UAAWK,IAAO0E,KAA9B,SAQE,sBAAK/E,UAAWK,IAAO2E,KAAvB,UACE,mBAAGhF,UAAWK,IAAO4C,QAArB,SAA+BA,IAC9BC,EAAO,mBAAGlD,UAAWK,IAAO6C,KAArB,SAA4BA,IAAY,UAIlD,eAACqB,EAAA,EAAM9C,OAAP,CAAczB,UAAWK,IAAOiB,OAAhC,UACE,cAAC2D,EAAA,EAAD,CACCjF,UAAWK,IAAO6E,aAClBnC,KAAK,KACLK,QAAQ,oBACRlD,QAASmE,EAJV,SAMGT,EAAE,oBAEL,cAACqB,EAAA,EAAD,CACEjF,UAAWK,IAAO8E,eAClBpC,KAAK,KACLK,QAASA,EACTlD,QAASkE,EAJX,SAMGR,EAAE,4B,mBChFR,SAASwB,EAAT,GAIgB,EAHrBhC,QAGsB,IAAD,IAFrBC,iBAEqB,MAFTlD,IAES,MADrBmD,gBACqB,MADVnD,IACU,EACrB,EAAwBY,IAAMwC,UAAkB,GAAhD,mBAAOC,EAAP,KAAaC,EAAb,KACA,EAA4B1C,IAAMwC,SAAiB,MAAnD,mBAAOG,EAAP,KAAeC,EAAf,KAEQC,GADYyB,YAAYC,KAClBzB,cAAND,GAEFE,EAA0C/C,IAAMgD,SACpD,2CACGlC,EAAOmC,SAAWX,GADrB,cAEGxB,EAAOoC,SAAWX,GAFrB,IAIA,CAACD,EAAWC,IAGRY,EAAiBnD,IAAMoD,aAAY,WACvCL,EAAYJ,OACX,CAACA,EAAQI,IAENyB,EAAYxE,IAAMoD,aAAY,WAClCV,GAAQ,GACRE,EAAU9B,EAAOmC,YAEhB,IAEGwB,EAAWzE,IAAMoD,aAAY,WACjCV,GAAQ,GACRE,EAAU9B,EAAOoC,UACjBX,MACC,CAACA,IAIJ,OAFAgB,YAAWvD,IAAMoD,aAAY,kBAAYV,GAAQ,KAAO,KAGtD,eAACc,EAAA,EAAD,CACEC,UAAU,EACVxE,UAAWK,IAAOoE,MAClBjB,KAAMA,EACNkB,SAAUR,EAJZ,UAME,cAACK,EAAA,EAAM5C,OAAP,CAAc3B,UAAWK,IAAOa,OAAhC,SACE,eAACqD,EAAA,EAAM9D,MAAP,CAAaT,UAAWK,IAAOK,MAA/B,UACA,sBAAMV,UAAWK,IAAOsE,aAAxB,SACI,qBAAKC,IAAI,MAAMC,ICpEZ,ydDsEL,+BAAOjB,EAAE,gCAEb,cAACW,EAAA,EAAM/C,KAAP,CAAYxB,UAAWK,IAAO0E,KAA9B,SACCnB,EAAE,wBAEC,eAACW,EAAA,EAAM9C,OAAP,CAAczB,UAAWK,IAAOiB,OAAhC,UACA,cAAC2D,EAAA,EAAD,CACEjF,UAAWK,IAAO6E,aAClBnC,KAAK,KACLK,QAAQ,oBACRlD,QAASsF,EAJX,SAMG5B,EAAE,gBAEL,cAACqB,EAAA,EAAD,CACEjF,UAAWK,IAAOoF,wBAClB1C,KAAK,KAEL7C,QAASqF,EAJX,SAMG3B,EAAE,uB,sBEzEF8B,EAA2B,SAAC,GASlC,IARLtE,EAQI,EARJA,KACAe,EAOI,EAPJA,SAOI,IALJwD,aAKI,MALI,EAKJ,MAJJ1D,gBAII,cAHJ2D,cAGI,EAFJC,UAEI,eAFOC,OAAOC,iBAEd,EADJC,UAcMC,QAbF,OADOH,OAAOI,iBAcSnF,IAAMoD,aAC/B,SAACgC,GACChE,EACEiE,KAAKC,IALD,EAKUD,KAAKE,IAJf,IAIwBR,OAAOK,EAAEI,OAAOZ,MAAMa,MAAM,EAAE,MAC1DpF,KAGJ,CAACe,EAAUf,KAEb,OACE,qBAAKpB,UAAWI,IAAGC,IAAOkC,UAAWN,GAAY5B,IAAO4B,UAAxD,SASE,uBACEjC,UAAWK,IAAOoG,MAClBxG,KAAK,SACL0F,MAAQA,EAAM,IAAKtF,IAAOqG,eAAef,EACzCxD,SAAU8D,O,0BC3CX,SAASU,EAAT,GAU0C,IAT/CjG,EAS8C,EAT9CA,MACAX,EAQ8C,EAR9CA,SAQ8C,IAP9CyD,YAO8C,SAN9CT,EAM8C,EAN9CA,KAM8C,IAL9C6D,eAK8C,MALpC,GAKoC,EAJ9C5G,EAI8C,EAJ9CA,UAI8C,KAH9C6G,OAG8C,EAF9CC,eAE8C,MAFrC3G,IAEqC,MAD9C4G,eAC8C,MADpC5G,IACoC,EACxCmB,EAASP,IAAMgD,SACnB,kBACE6C,EAAQI,OACN,cAACzC,EAAA,EAAM9C,OAAP,CAAczB,UAAWI,IAAGC,IAAOiB,OAAsB,uBAAdtB,EAAqCI,IAAGC,IAAOqB,SAAUrB,IAAO4G,cAAgB,IAA3H,SACGL,EAAQM,KACP,gBACEnF,EADF,EACEA,MACA7B,EAFF,EAEEA,QAFF,IAGEkD,eAHF,MAGY,UAHZ,MAIEnB,gBAJF,gBAME,cAACgD,EAAA,EAAD,CAEEjF,UAAWK,IAAO8G,OAClBlF,SAAUA,EACVmF,MAAM,EACNhE,QAASA,EACTlD,QAASA,EANX,SAQG6B,GAPIA,QAYX,OACN,CAAC6E,EAAS5G,IAGZ,OACE,eAACuE,EAAA,EAAD,CACEC,UAAU,EACVxE,UAAWI,IAAGC,IAAOoE,MAAOzE,GAC5BwD,KAAMA,EACNT,KAAMA,EACN2B,SAAUqC,EACVD,OAAQA,EANV,UAQE,cAACvC,EAAA,EAAM5C,OAAP,CACE3B,UAAWI,IACTC,IAAOa,OACO,uBAAdlB,EACII,IAAGC,IAAOqB,SAAUrB,IAAOgH,iBAC3B,IALR,SAQE,eAAC9C,EAAA,EAAM9D,MAAP,CAAaT,UAAWK,IAAOiH,iBAA/B,UACE,+BAAO5G,IACP,qBACEV,UAAWK,IAAOkH,WAClBC,KAAK,SACLC,SAAU,EACVvH,QAAS6G,EACTW,WAAYX,EALd,SAOE,qBAAKnC,IAAI,QAAQC,ICpFd,sRDwFT,cAACN,EAAA,EAAM/C,KAAP,UAAazB,IACZuB,K,6EEnFMqG,GAAW,SACtBC,EACAC,EACAC,GAEA,OAAID,GAAWD,GAGbG,aAAe,GAAD,OAAIH,EAAJ,yDAGZ,cAACvF,EAAA,EAAK2F,QAAQC,SAAd,CAAuBjI,UAAWK,KAAO6H,SAAUjI,KAAK,UAAxD,SACG6H,EAAWF,MAKX,M,aCvBIO,GAAU,kBAAmB,M,qBCQnC,SAASC,GAAT,GAGsC,IAF3CC,EAE0C,EAF1CA,UAGA,OAD0C,EAD1CC,QAGE,cAACH,GAAD,IAEA,qBAAKnI,UAAWK,KAAOkC,UAAvB,SACE,cAACK,EAAA,EAAD,CACE5C,UAAWI,IAAGC,KAAOkI,KAAR,eAAiBlI,KAAOmI,YAAcH,IACnDjH,KAAMiH,EAAY,kBAAoB,oBACtCtF,KAAM,O,0CCbP,SAAS0F,GACdC,GAEA,OAAO,cAAC,KAAWD,YAAZ,6BAA4BC,GAA5B,IAAmC1I,UAAWK,KAAOkC,a,yBCFvD,SAASyF,GACdU,GACc,IAAD,EACLL,EAAuBK,EAAvBL,UAAWC,EAAYI,EAAZJ,QAEnB,OACE,cAAC,KAAWN,QAAZ,6BACMU,GADN,IAEE1I,UAAWI,IAAG,eAAgBC,KAAOsI,SAAxB,mBACVtI,KAAOuI,eAAiBP,GADd,cAEVhI,KAAOwI,gBAAkBP,GAFf,O,yBCTZ,SAASQ,GACdJ,GAEA,OAAO,cAAC,KAAWI,YAAZ,6BAA4BJ,GAA5B,IAAmC1I,UAAWK,KAAOkC,a,yBCHvD,SAASwG,GACdL,GAEA,OAAO,cAAC,KAAWK,KAAZ,6BAAqBL,GAArB,IAA4B1I,UAAWK,KAAOkC,a,yBCDhD,SAASyG,GACdN,GACc,IAAD,EACLO,EAA6CP,EAA7CO,WAAYZ,EAAiCK,EAAjCL,UAAWtI,EAAsB2I,EAAtB3I,SAAUuI,EAAYI,EAAZJ,QAEnCC,EACJU,IAAeX,EACb,cAAC1F,EAAA,EAAD,CAAM5C,UAAWK,KAAO6I,KAAM9H,KAAK,eAAe2B,KAAM,KACtD,KAEN,OACE,eAAC,KAAWiG,OAAZ,6BACMN,GADN,IAEE1I,UAAWI,IAAGC,KAAO8I,QAAR,mBACV9I,KAAO+I,eAAiBH,GADd,cAEV5I,KAAOgJ,cAAgBhB,GAFb,IAFf,UAOE,sBAAMrI,UAAWK,KAAO0B,MAAxB,SAAgChC,IAC/BwI,M,yBCrBA,SAASe,GAAT,GAG8B,IAFnCvJ,EAEkC,EAFlCA,SACeG,EACmB,EADlCqJ,YAAerJ,QAEf,OACE,sBAAKF,UAAWK,KAAOkC,UAAvB,UACE,qBAAKvC,UAAWK,KAAOgB,QAAvB,SAAiCtB,IACjC,qBAAKC,UAAWK,KAAOmJ,OAAQhC,KAAK,eAAetH,QAASA,EAA5D,SACE,cAAC0C,EAAA,EAAD,CAAMxB,KAAK,gBAAgB2B,KAAM,U,wBCMlC,SAAS0G,GAAiB1H,GAC/B,OAAOhB,IAAMoD,aAAY,SAACgF,GAAD,OAAoBO,KAAIP,EAAQpH,KAAQ,CAACA,IAG7D,SAAS4H,GAAe5H,GAC7B,OAAOhB,IAAMgD,SACX,kBACEhC,EAAQ,cAACM,EAAA,EAAKM,MAAN,CAAY3C,UAAWK,KAAO0B,MAA9B,SAAsCA,IAAsB,OACtE,CAACA,I,cChBL,IAgBe6H,GAhBwB,SAAAlB,GACrC,IAAQ3G,EAAkC2G,EAAlC3G,MAAOX,EAA2BsH,EAA3BtH,KAAf,EAA0CsH,EAArBzG,gBAArB,SACA,EAAgB4H,YAASzI,GAAlB0I,EAAP,oBACQnE,EAAoBmE,EAApBnE,MAAOxD,EAAa2H,EAAb3H,SAEf,OACE,cAAC,EAAD,CACED,QAASyD,EACT1D,SAAUA,EACVF,MAAOA,EACPX,KAAMA,EACNe,SAAUA,K,qDCRT,SAAS4H,GAAT,GAA8D,IAA7ChI,EAA4C,EAA5CA,MAAOX,EAAqC,EAArCA,KAAMwC,EAA+B,EAA/BA,EAAGoG,EAA4B,EAA5BA,KAChCC,EAAalG,mBAAQ,WACzB,OAAOhC,EACL,cAACM,EAAA,EAAKM,MAAN,CAAY3C,UAAWK,KAAO0B,MAA9B,SAAsCA,IACpC,OACH,CAACA,IACEmI,EAAcnJ,IAAMoD,aACxB,YAA8D,IAAD,IAA1D2F,MAASnE,EAAiD,EAAjDA,MAAOxD,EAA0C,EAA1CA,SACXgI,EAAWvG,EAAE,2CACnB,OACE,eAACvB,EAAA,EAAK+H,MAAN,CAAYC,GAAIC,IAAKC,UAAWC,IAAU,cAAD,OAAezI,IAAxD,UACE,8BAAMkI,IACLD,EAAK9C,KAAI,SAACuD,GACT,OACE,eAACpI,EAAA,EAAKM,MAAN,CAA4B3C,UAAWI,IAAGC,KAAO0B,MAAO1B,KAAOqK,iBAA/D,UACE,cAAC,IAAD,CACExI,QAASyD,IAAU8E,EAAI9E,MACvBgF,UAAU,QAEVvJ,KAAMA,EACNnB,KAAK,QACL0F,MAAO8E,EAAI9E,MACXxD,SAAUA,IAEXyB,EAAE6G,EAAI1I,SAVQ0I,EAAI1I,UAcd,MAAV4D,GACC,qBAAK3F,UAAS,UAAKK,KAAO6H,SAAZ,YAAwB7H,KAAOuK,aAA7C,SACGT,SAMX,CAAC/I,EAAM6I,EAAYlI,EAAO6B,EAAGoG,IAG/B,OAAO,cAAC,IAAD,CAAO5I,KAAMA,EAAb,SAAoB8I,ICnCtB,SAAS7H,GAAT,GAK0C,IAJ/CtC,EAI8C,EAJ9CA,SACAC,EAG8C,EAH9CA,UACA6K,EAE8C,EAF9CA,OACAC,EAC8C,EAD9CA,UAEA,OACE,cAAC,IAAD,CACE9K,UAAWI,IAAGJ,EAAWK,KAAO0K,MAChCF,OAAQA,EACRC,UAAWA,EAHb,SAKG/K,IAKPsC,GAAKI,MChBU,YASS,IARtBR,EAQqB,EARrBA,SACAhC,EAOqB,EAPrBA,KACA8B,EAMqB,EANrBA,MACAX,EAKqB,EALrBA,KACA4J,EAIqB,EAJrBA,YACAC,EAGqB,EAHrBA,KACAC,EAEqB,EAFrBA,iBACAC,EACqB,EADrBA,UAEA,EAAsBtB,YAASzI,GAA/B,mBAAO0I,EAAP,KAAcsB,EAAd,KACQzF,EAA4BmE,EAA5BnE,MAAOxD,EAAqB2H,EAArB3H,SAAUkJ,EAAWvB,EAAXuB,OACjBzD,EAAmBwD,EAAnBxD,MAAOC,EAAYuD,EAAZvD,QACTyD,EAAY1D,GAASC,EAE3B,OACE,eAACxF,EAAA,EAAK+H,MAAN,CACEC,GAAIC,IACJC,UAAWC,IAAU,cAAD,OAAevK,EAAf,YAAuB8B,IAC3CwJ,GAAIN,EAHN,UAKGlJ,GAAS,cAACM,EAAA,EAAKM,MAAN,CAAY3C,UAAWK,KAAO0B,MAA9B,SAAsCA,IAChD,cAACM,EAAA,EAAK2F,QAAN,CACEhI,UAAWI,IAAG,eAAGC,KAAOmL,mBAAqBF,IAC7CrJ,SAAUA,EACVqJ,UAAWA,EACXH,UAAWA,EACX/J,KAAMA,EACN4J,YAAaA,EACb/K,KAAMA,EACN0F,MAAOA,GAAS,GAChB0F,OAAQA,EACRlJ,SAAUA,IAEXwF,GAASC,EAAOC,EAASqD,ODjBhC7I,GAAKoJ,OEVU,YAYY,IAXzBxJ,EAWwB,EAXxBA,SACAb,EAUwB,EAVxBA,KACA6J,EASwB,EATxBA,KACAlJ,EAQwB,EARxBA,MACA2J,EAOwB,EAPxBA,QAOwB,IANxBvJ,gBAMwB,MANbhC,IAMa,MALxBwL,gBAKwB,aAJxBX,mBAIwB,MAJV,GAIU,MAHxBY,mBAGwB,MAHV,QAGU,MAFxBC,mBAEwB,MAFV,QAEU,MADxBX,wBACwB,MADL,iBAAc,IACT,EAClBY,EAAoBnC,GAAe5H,GACnCgK,EAAuBtC,GAAiBmC,GACxCI,EAAuBvC,GAAiBoC,GAC9C,EAAqB9K,IAAMwC,SAAgD,CACzE6E,qBACAK,eACAK,eACAQ,cACAtB,WACAgB,UACAD,QACAkD,mBAAoB9D,KARf+D,EAAP,oBAWA,EAA4BrC,YAASzI,GAArC,mBAAO0I,EAAP,KAAcsB,EAAd,KAAoBL,EAApB,KACQpF,EAAUmE,EAAVnE,MACAiC,EAAmBwD,EAAnBxD,MAAOC,EAAYuD,EAAZvD,QACPsE,EAAyBpB,EAAzBoB,SAAUC,EAAerB,EAAfqB,WACZd,EAAY1D,GAASC,EAE3B,OACE,eAACxF,EAAA,EAAK+H,MAAN,CACEC,GAAIC,IACJC,UAAWC,IAAU,eAAD,OAAgBzI,IACpCwJ,GAAIN,EAHN,UAKGa,EACD,cAAC,KAAD,CACE9L,UAAWI,IAAG,eACXC,KAAOmL,mBAAqBF,IAE/BY,WAAYA,EACZG,eAAgBN,EAChBO,eAAgBN,EAChBO,aAAa,EACbC,WAAYvK,EACZqG,QAASqD,EACTD,QAASA,EACTV,YAAaA,EACbrF,MAAOA,EACP0F,OAAQ,kBAAYe,EAAWvE,IAC/B1F,SAAU,SAACsK,GACTtK,EAASsK,GACTN,EAASM,MAGZ9E,GAASC,EAAOC,EAASqD,OFhDhC7I,GAAKqK,YGRU,YAeY,IAdzBtL,EAcwB,EAdxBA,KACA6J,EAawB,EAbxBA,KACAlJ,EAYwB,EAZxBA,MACA4K,EAWwB,EAXxBA,KAWwB,IAVxBxK,gBAUwB,MAVbhC,IAUa,MATxBwL,gBASwB,aARxBX,mBAQwB,MARV,GAQU,MAPxBY,mBAOwB,MAPV,QAOU,MANxBC,mBAMwB,MANV,QAMU,MALxBX,wBAKwB,MALL,iBAAc,IAKT,EAJxB0B,EAIwB,EAJxBA,UACAC,EAGwB,EAHxBA,YACA7M,EAEwB,EAFxBA,UACA8M,EACwB,EADxBA,iBAEMhB,EAAoBnC,GAAe5H,GACnCgK,EAAuBtC,GAAiBmC,GACxCI,EAAuBvC,GAAiBoC,GAC9C,EAAqB9K,IAAMwC,SAAgD,CACzE6E,kBAAmB0E,EAAmB3E,GAAUC,GAChDK,eACAK,eACAd,WACAgB,UACAD,QACAO,cACA2C,mBAAoB9D,KARf+D,EAAP,oBAWA,EAA4BrC,YAASzI,GAArC,mBAAO0I,EAAP,KAAcsB,EAAd,KAAoBL,EAApB,KACQpF,EAAUmE,EAAVnE,MACAiC,EAAmBwD,EAAnBxD,MAAOC,EAAYuD,EAAZvD,QACPsE,EAAyBpB,EAAzBoB,SAAUC,EAAerB,EAAfqB,WACZd,EAAY1D,GAASC,EAE3B,OACE,eAACxF,EAAA,EAAK+H,MAAN,CACEC,GAAIC,IACJC,UAAWC,IAAU,eAAD,OAAgBzI,IACpCwJ,GAAIN,EAHN,UAKGa,EACD,cAAC,KAAD,CACE9L,UAAWI,IAAG,eACXC,KAAOmL,mBAAqBF,GAE7BtL,GAEFkM,WAAYA,EACZG,eAAgBN,EAChBO,eAAgBN,EAChBO,aAAa,EACbjE,QAASqD,EACToB,eAAgBF,EAChBG,YAAaL,EACbM,iBAAkBL,EAClB5B,YAAaA,EACbrF,MAAOA,EACP0F,OAAQ,kBAAYe,EAAWvE,IAC/B1F,SAAU,SAACsK,GACTtK,EAASsK,GACTN,EAASM,MAGZ9E,GAASC,EAAOC,EAASqD,OHxDhC7I,GAAK6K,IAAMC,IAAOD,IAClB7K,GAAK+H,MI1BU,YAMkC,IAL/C1J,EAK8C,EAL9CA,MACAwC,EAI8C,EAJ9CA,KACAnD,EAG8C,EAH9CA,SACAqN,EAE8C,EAF9CA,KACAC,EAC8C,EAD9CA,QAEMC,EAAOjI,YAAYC,MAGrBiI,EAAyB,GAY7B,GAAGF,EAAQ,CACT,IAAMG,EAAoBC,KAAyBC,MAAK,SAACC,GAAD,OAAUA,EAAKC,cAAgBP,KACjFQ,EAAyB,QAATP,EAAA,OAAiBE,QAAjB,IAAiBA,OAAjB,EAAiBA,EAAmBM,iBAZvB,QAAhCT,EAAQU,qBAAiE,QAAhCV,EAAQU,oBACtC,oCAAgCV,EAAQW,UAAU,EAAG,GAArD,qDAC4B,QAAhCX,EAAQU,oBACJ,qDAEA,oCAAgCV,EAAQW,UAAU,EAAG,GAArD,0BAQdT,EAAqC,OAAZF,EAAmBQ,EAAgB,GAG9D,OACE,sBAAK7N,UAAWK,KAAO4N,MAAvB,UACGvN,GACC,sBAAKV,UAAWK,KAAO6N,QAAvB,UACE,oBAAIlO,UAAWK,KAAOK,MAAtB,SAA8BA,IAC7B0M,GACC,wBAAQpN,UAAWK,KAAO+M,KAA1B,SACE,mBACEe,KAASZ,EACTa,IAAI,sBACJ7H,OAAO,SAHT,SAKG6G,MAINlK,GAAQ,mBAAGlD,UAAWK,KAAO6C,KAArB,SAA4BA,OAGzC,8BAAMnD,QJpBZsC,GAAKP,SAAW8H,GAChBvH,GAAKgM,SKtBU,YASS,IARtBtM,EAQqB,EARrBA,MACAX,EAOqB,EAPrBA,KACA4J,EAMqB,EANrBA,YACAC,EAKqB,EALrBA,KAKqB,IAJrBqD,YAIqB,MAJd,EAIc,MAHrBpD,wBAGqB,MAHF,iBAAc,IAGZ,MAFrBqD,oBAEqB,MAFN,kBAAmB,MAEb,EADrBpD,EACqB,EADrBA,UAEA,EAAsBtB,YAASzI,GAA/B,mBAAO0I,EAAP,KAAcsB,EAAd,KACQzF,EAA4BmE,EAA5BnE,MAAOxD,EAAqB2H,EAArB3H,SAAUkJ,EAAWvB,EAAXuB,OACjBzD,EAAmBwD,EAAnBxD,MAAOC,EAAYuD,EAAZvD,QACTyD,EAAY1D,GAASC,EAE3B,OACE,eAACxF,EAAA,EAAK+H,MAAN,CACEC,GAAIC,IACJC,UAAWC,qBAAU,iBAAD,OAAkBzI,IACtCwJ,GAAIN,EAHN,UAKGlJ,GAAS,cAACM,EAAA,EAAKM,MAAN,CAAY3C,UAAWK,KAAO0B,MAA9B,SAAsCA,IAChD,cAACM,EAAA,EAAK2F,QAAN,CACEqC,GAAG,WACHrK,UAAWI,IAAGC,KAAOmO,SAAR,eACVnO,KAAOmL,mBAAqBF,IAE/BA,UAAWA,EACXH,UAAWA,EACX/J,KAAMA,EACN4J,YAAaA,EACbsD,KAAMA,EACN3I,MAAOA,EACP0F,OAAQA,EACRlJ,SAAUA,IAEXoM,IACA5G,GAASC,EAAOC,EAASqD,OLdhC7I,GAAK0H,MAAQA,GACb1H,GAAKoM,cMhBU,YAaY,IAZzBxM,EAYwB,EAZxBA,SACAb,EAWwB,EAXxBA,KAEAW,GASwB,EAVxBkJ,KAUwB,EATxBlJ,OACA2J,EAQwB,EARxBA,QAQwB,IAPxBvJ,gBAOwB,MAPbhC,IAOa,MANxBwL,gBAMwB,aALxBX,mBAKwB,MALV,GAKU,MAJxBY,mBAIwB,MAJV,QAIU,MAHxBC,mBAGwB,MAHV,QAGU,MAFxBX,wBAEwB,MAFL,iBAAc,IAET,EADxBlL,EACwB,EADxBA,UAEM8L,EAAoBnC,GAAe5H,GACnCgK,EAAuBtC,GAAiBmC,GACxCI,EAAuBvC,GAAiBoC,GAC9C,EAAqB9K,IAAMwC,SAAgD,CACzE6E,qBACAK,eACAK,eACAQ,cACAtB,WACAgB,UACAD,QACAkD,mBAAoB9D,KARf+D,EAAP,oBAWA,EAA4BrC,YAASzI,GAArC,mBAAO0I,EAAP,KAAcsB,EAAd,KAAoBL,EAApB,KACQpF,EAAUmE,EAAVnE,MACAiC,EAAmBwD,EAAnBxD,MAAOC,EAAYuD,EAAZvD,QACPsE,EAAyBpB,EAAzBoB,SAAUC,EAAerB,EAAfqB,WACZd,EAAY1D,GAASC,EAE3B,OACE,eAACxF,EAAA,EAAK+H,MAAN,CACEpK,UAAWI,IAAGC,KAAOqO,gBAAiBrO,KAAOgB,SAE7CkJ,UAAWC,IAAU,eAAD,OAAgBzI,IAHtC,UAKG+J,EACD,cAAC,KAAD,CACE9L,UAAWI,IAAG,eACXC,KAAOmL,mBAAqBF,GAC7BtL,GAEFkM,WAAYA,EACZG,eAAgBN,EAChBO,eAAgBN,EAChBO,aAAa,EACbC,WAAYvK,EACZqG,QAASqD,EACTD,QAASA,EACTV,YAAaA,EACbrF,MAAOA,EACP0F,OAAQ,kBAAYe,EAAWvE,IAC/B1F,SAAU,SAACsK,GACTtK,EAASsK,GACTN,EAASM,MAGZ9E,GAASC,EAAOC,EAASqD,ON5ChC7I,GAAKsM,mBOfU,YAeY,IAdzBvN,EAcwB,EAdxBA,KAEAW,GAYwB,EAbxBkJ,KAawB,EAZxBlJ,OACA4K,EAWwB,EAXxBA,KAWwB,IAVxBxK,gBAUwB,MAVbhC,IAUa,MATxBwL,gBASwB,aARxBX,mBAQwB,MARV,GAQU,MAPxBY,mBAOwB,MAPV,QAOU,MANxBC,mBAMwB,MANV,QAMU,MALxBX,wBAKwB,MALL,iBAAc,IAKT,EAJxB0B,EAIwB,EAJxBA,UACAC,EAGwB,EAHxBA,YACA7M,EAEwB,EAFxBA,UACA8M,EACwB,EADxBA,iBAEMhB,EAAoBnC,GAAe5H,GACnCgK,EAAuBtC,GAAiBmC,GACxCI,EAAuBvC,GAAiBoC,GAC9C,EAAqB9K,IAAMwC,SAAgD,CACzE6E,kBAAmB0E,EAAmB3E,GAAUC,GAChDK,eACAK,eACAd,WACAgB,UACAD,QACAO,cACA2C,mBAAoB9D,KARf+D,EAAP,oBAWA,EAA4BrC,YAASzI,GAArC,mBAAO0I,EAAP,KAAcsB,EAAd,KAAoBL,EAApB,KACQpF,EAAUmE,EAAVnE,MACAiC,EAAmBwD,EAAnBxD,MAAOC,EAAYuD,EAAZvD,QACPsE,EAAyBpB,EAAzBoB,SAAUC,EAAerB,EAAfqB,WACZd,EAAY1D,GAASC,EAE3B,OACE,eAACxF,EAAA,EAAK+H,MAAN,CACEpK,UAAWI,IACRC,KAAOqO,gBACPrO,KAAOgB,SAEVkJ,UAAWC,IAAU,eAAD,OAAgBzI,IALtC,UAOG+J,EACG,cAAC,KAAD,CACA9L,UAAWI,IAAG,eACXC,KAAOmL,mBAAqBF,GAE7BtL,GAEFkM,WAAYA,EACZG,eAAgBN,EAChBO,eAAgBN,EAChBO,aAAa,EACbjE,QAASqD,EACToB,eAAgBF,EAChBG,YAAaL,EACbM,iBAAkBL,EAClB5B,YAAaA,EACbrF,MAAOA,EACP0F,OAAQ,kBAAYe,EAAWvE,IAC/B1F,SAAU,SAACsK,GACTtK,EAASsK,GACTN,EAASM,MAGd9E,GAASC,EAAOC,EAASqD,O,6CCjFnBnB,GAAyB,SAAC,GAAD,IACpC3I,EADoC,EACpCA,KACAW,EAFoC,EAEpCA,MAFoC,IAGpCG,eAHoC,SAIpCM,EAJoC,EAIpCA,GAJoC,IAKpCP,gBALoC,aAMpCE,gBANoC,MAMzBhC,IANyB,SAQpC,eAACkC,EAAA,EAAKC,MAAN,CAAYtC,UAAWK,KAAOkC,UAAWC,GAAIA,EAAIpB,KAAMA,EAAvD,UACE,cAACiB,EAAA,EAAKC,MAAMG,MAAZ,CACEP,QAASA,EACTlC,UAAWK,KAAOqC,MAClBT,SAAUA,EACVb,KAAMA,EACNnB,KAAK,QACLkC,SAAUA,IAEZ,cAACE,EAAA,EAAKC,MAAMK,MAAZ,CAAkB3C,UAAWK,KAAO0B,MAApC,SACE,+BAAOA,U,4ECfN,SAAS6M,GAAT,GAKoB,IAJzBlD,EAIwB,EAJxBA,QACA/F,EAGwB,EAHxBA,MACAkJ,EAEwB,EAFxBA,aACA1M,EACwB,EADxBA,SAEM2M,EAAa/N,IAAMoD,aACvB,SAACwJ,GAAD,OAAa,kBAAYxL,EAASwL,MAClC,CAACxL,IAGG4M,EAAgBhO,IAAMoD,aAC1B,SAACwJ,GAAD,OC7BG,SAA8BA,GACnC,OACEqB,OAAOC,KAAKtB,GACTzG,KAAI,SAACgI,GAAD,OAAyBxF,KAAIiE,EAAMuB,EAAK,cAC5CC,KAAK,MAAQxB,EAAKyB,WDyBAC,CAAqB1B,KAC1C,IAGF,OACE,cAAC2B,GAAA,EAAD,UACE,cAACC,GAAA,EAAD,CAAmBC,aAAc7J,EAAOvE,KAAK,UAAUnB,KAAK,QAA5D,SACGyL,EAAQxE,KACP,SAACyG,GAAD,OACE,cAAC8B,GAAA,EAAD,CAEEzP,UAAWI,IAAGC,KAAOqP,aAAR,eACVrP,KAAOsP,QAAUC,KAAQjC,EAAMhI,KAElCvE,KAAM2N,EAAcpB,GACpBhI,MAAOgI,EACPvK,QAASwM,KAAQjC,EAAMhI,GAAS,UAAY,kBAC5CxD,SAAU2M,EAAWnB,GARvB,SAUGkB,EAAalB,IATToB,EAAcpB,W,yBEnCpBlL,GAAQ,SACnBoN,GAUA,OARc,SAACnH,GAAD,OACZ,sBAAK1I,UAAW8P,KAAM9E,YAAtB,UACG6E,EACD,+BACE,cAAC,KAAWpN,MAAZ,gBAAsBiG,W,qBCPvB,SAASD,GACduC,EACA6E,GAYA,OAV6B,SAC3BnH,GAD2B,OAG3B,cAAC,KAAWD,YAAZ,6BAA4BC,GAA5B,aACE,sBAAK1I,UAAW8P,KAAM9E,YAAtB,UACG6E,EACD,+BAAO7E,W,yBCTR,SAAS5C,GAAT,GAEsC,IAD3CC,EAC0C,EAD1CA,UAEA,OACE,cAACzF,EAAA,EAAD,CACE5C,UAAWI,IAAGC,KAAOkI,KAAR,eAAiBlI,KAAO0P,QAAU1H,IAC/CjH,KAAMiH,EAAY,kBAAoB,oBACtCtF,KAAM,K,yBCPL,SAASiG,GAAUN,GAA8C,IAAD,EAC7DO,EAAsCP,EAAtCO,WAAYZ,EAA0BK,EAA1BL,UAAWmE,EAAe9D,EAAf8D,WAC/B,EAAsCjJ,oBAAS,GAA/C,mBAAOyM,EAAP,KAAoBC,EAApB,KACA,EAAgC1M,oBAAS,GAAzC,mBAAO2M,EAAP,KAAiBC,EAAjB,KAYA,OATAC,qBAAU,WACJJ,EACFC,GAAe,GAEfE,EAAY9H,KAGb,CAACY,EAAYZ,IAGd,cAAC,KAAWW,OAAZ,6BACMN,GADN,IAEE1I,UAAWI,IAAGC,KAAOgQ,cAAR,mBACVhQ,KAAOiQ,SAAWrH,GADR,cAEV5I,KAAO0P,QAAUG,GAFP,cAGV7P,KAAO4B,SAAWuK,GAHR,OCaZ,SAASf,GAAT,GAmBoB,IAlBzB9F,EAkBwB,EAlBxBA,MAkBwB,IAjBxBxD,gBAiBwB,MAjBbhC,IAiBa,EAhBxBuL,EAgBwB,EAhBxBA,QACAmD,EAewB,EAfxBA,aACA7D,EAcwB,EAdxBA,YACA6E,EAawB,EAbxBA,kBAawB,IAZxBvD,sBAYwB,MAZP,SAACnD,GAAD,OAAuBO,KAAIP,EAAQ,UAY5B,MAXxBkD,sBAWwB,MAXP,SAAClD,GAAD,OAAuBO,KAAIP,EAAQ,UAW5B,MAVxBoD,mBAUwB,aATxBgE,oBASwB,aARxB/D,kBAQwB,aAPxBgE,wBAOwB,MAPL,kBAAM,GAOD,MANxBC,6BAMwB,SALxBzQ,EAKwB,EALxBA,UAKwB,IAJxB0Q,4BAIwB,MAJD,GAIC,MAHxBC,uBAGwB,MAHN3H,GAGM,EAFxBV,EAEwB,EAFxBA,QAEwB,IADxBsI,mBACwB,MADVzQ,IACU,EAClB0Q,EAAiB9P,IAAMoD,aAC3B,SAACwJ,GAAD,OAA6BxL,EAASwL,KACtC,CAACxL,IAGH,EAAoCpB,IAAMwC,SAA4C,CACpFkF,YAAaA,GAAeuC,EAAa6E,GACzCiB,eC1DY,SAACpI,GACb,MAEIA,EADFqI,WAAcC,EADhB,EACgBA,IAAQC,EADxB,mBAGA,OACE,iDAASA,GAAT,IAAyBD,IAAKA,EAA9B,SACE,qBAAKhR,UAAWI,IAAG,qBAAsB0P,KAAMoB,sBDqDnD9I,kBAAmBqI,EAAwBrI,GAAoB,KAC/D6D,mBAAoB,KACpBxJ,MAAOA,GAAMoN,GACb7H,QE9DY,SAACU,GACb,OACE,qBAAK1I,UAAW8P,KAAMnH,QAAtB,SACE,+BACE,cAAC,KAAWX,QAAZ,gBAAwBU,SF2D9BM,OAAQ2H,IAPV,mBAAOzE,EAAP,KAAmBiF,EAAnB,KAoBA,OAVApQ,IAAMqP,WAAU,WACde,GAAc,SAAAC,GACZ,OAAO,6BACFA,GADL,IAEE3I,YAAaA,GAAeuC,EAAa6E,GACzCpN,MAAOA,GAAMoN,UAGhB,CAAC7E,EAAa6E,IAGf,cAAC,KAAD,CACE7P,UAAWI,IAAGC,KAAOgR,aAAcrR,GACnCkM,WAAYA,EACZoF,kBAAmBzC,EACnBxC,eAAgBA,EAChBC,eAAgBA,EAChBC,YAAaA,EACbC,WAAYA,EACZlE,QAASA,EACTkI,iBAAkBA,EAClBD,aAAcA,EACdgB,cAAc,OACd7F,QAASA,EACT8F,MAAOzQ,IAAMoD,aACX,SAACqN,GAAD,oBAAC,gBACIA,GADL,IAEEC,aAAc,EACdC,OAAO,6BACFhI,KAAI8H,EAAO,WADV,IAEJG,UAAW,UACXC,QAAS,aAERlB,KAEL,CAACA,IAEH/K,MAAOA,EACPxD,SAAU0O,EACVD,YAAaA,I,4DGnGZ,SAASiB,GAAT,GAA+F,IAA5EC,EAA2E,EAA3EA,QAAS/R,EAAkE,EAAlEA,SAAkE,IAAxDgS,gCAAwD,SACnG,EAA4BhR,IAAMgD,SAAQ,WACxC,IAAMjD,EAAgBC,IAAMC,SAASC,QAAQlB,GACvCiS,EAASlR,EAAcmR,WAC3B,SAACC,GAAD,OAAaA,EAAGxJ,MAAMtH,OAAS0Q,KAYjC,MAAO,CAAEK,OATYrR,EAAcoG,KAAI,SAACyG,EAAWyE,GAAZ,OACrCrR,IAAMsR,aAAa1E,EAAM,CACvB2E,OAAQF,EAAIJ,EACZA,OAAQI,IAAMJ,EACdO,MAAOH,OAKoB/Q,QAFTqI,KAAI5I,EAAckR,GAAS,qBAGhD,CAACF,EAAS/R,IAhBLoS,EAAR,EAAQA,OAAQ9Q,EAAhB,EAAgBA,QAkBhB,OACE,cAAC,IAAMmR,SAAP,UACE,sBAAKxS,UAAWK,KAAOoS,cAAvB,UACE,oBAAIzS,UAAWI,IAAGC,KAAOqS,QACvBX,EAA2B1R,KAAOsS,oBAAqBtS,KAAOuS,cADhE,SACgFT,KAC9EJ,GAA6B,oBAAI/R,UAAWK,KAAOwS,KAEpDxR,OAMTwQ,GAAQiB,KC7BD,YAA2G,IAAD,EAA1F/Q,EAA0F,EAA1FA,MAAOuQ,EAAmF,EAAnFA,OAAQN,EAA2E,EAA3EA,OAA2E,IAAnEO,aAAmE,MAA3D,EAA2D,MAAxDR,gCAAwD,SACvGnO,EAAMC,cAAND,EACR,OACE,oBACE5D,UAAWI,IAAGC,KAAO0S,OAAR,mBACV1S,KAAO2R,OAASA,GADN,cAEV3R,KAAOiS,OAASA,GAFN,IADf,SAME,uBAAMtS,UAAY+R,EAChB3R,IAAGC,KAAOgB,QACE,IAAVkR,GAAeP,EAAS3R,KAAO2S,YAAa,GACpC,IAAVT,GAAeP,EAAS3R,KAAO4S,YAAa,IAAM,KAHpD,UAKGlB,EAA2B,GAAH,UAAWnO,EAAE,cAAe,CAAEsP,KAAMX,EAAQ,IAA5C,IAAoD,KAC7E,sBAAMvS,UAAWI,IAAGC,KAAO0B,MAAR,eAAkB1B,KAAO8S,YAAcnB,IAA1D,SACGpO,EAAE7B,W,IChCTqR,G,UCQSC,GAAkD,SAAC,GAAD,QAC7DrT,iBAD6D,MACjD,GADiD,EAE7DD,EAF6D,EAE7DA,SACAuT,EAH6D,EAG7DA,aAH6D,OAK7D,cAAC,KAAD,CAASC,WAAYD,EAActT,UAAWA,EAA9C,SACGD,K,qBCNE,SAASyT,GAAT,GAAoD,IAAjCzT,EAAgC,EAAhCA,SACxB,OACE,eAAC,IAAMyS,SAAP,WACE,qBAAKxS,UAAWK,KAAOoT,UACvB,qBAAKzT,UAAWK,KAAOmT,QAAvB,SAAiCzT,OAKvCyT,GAAQ7R,OCTD,YAAmD,IAAjC5B,EAAgC,EAAhCA,SACvB,OAAO,qBAAKC,UAAWK,KAAOsB,OAAvB,SAAgC5B,KDSzCyT,GAAQ/R,OEVD,YAAmD,IAAjC1B,EAAgC,EAAhCA,SACvB,OAAO,qBAAKC,UAAWK,KAAOoB,OAAvB,SAAgC1B,KJPzC,IAAI,GAAY,CAAC,QAAS,WAE1B,SAAS2T,KAA2Q,OAA9PA,GAAW1E,OAAO2E,QAAU,SAAUpN,GAAU,IAAK,IAAI6L,EAAI,EAAGA,EAAIwB,UAAU5M,OAAQoL,IAAK,CAAE,IAAIyB,EAASD,UAAUxB,GAAI,IAAK,IAAIlD,KAAO2E,EAAc7E,OAAO8E,UAAUC,eAAeC,KAAKH,EAAQ3E,KAAQ3I,EAAO2I,GAAO2E,EAAO3E,IAAY,OAAO3I,IAA2B0N,MAAMC,KAAMN,WAEhT,SAASO,GAAyBN,EAAQO,GAAY,GAAc,MAAVP,EAAgB,MAAO,GAAI,IAAkE3E,EAAKkD,EAAnE7L,EAEzF,SAAuCsN,EAAQO,GAAY,GAAc,MAAVP,EAAgB,MAAO,GAAI,IAA2D3E,EAAKkD,EAA5D7L,EAAS,GAAQ8N,EAAarF,OAAOC,KAAK4E,GAAqB,IAAKzB,EAAI,EAAGA,EAAIiC,EAAWrN,OAAQoL,IAAOlD,EAAMmF,EAAWjC,GAAQgC,EAASE,QAAQpF,IAAQ,IAAa3I,EAAO2I,GAAO2E,EAAO3E,IAAQ,OAAO3I,EAFxMgO,CAA8BV,EAAQO,GAAuB,GAAIpF,OAAOwF,sBAAuB,CAAE,IAAIC,EAAmBzF,OAAOwF,sBAAsBX,GAAS,IAAKzB,EAAI,EAAGA,EAAIqC,EAAiBzN,OAAQoL,IAAOlD,EAAMuF,EAAiBrC,GAAQgC,EAASE,QAAQpF,IAAQ,GAAkBF,OAAO8E,UAAUY,qBAAqBV,KAAKH,EAAQ3E,KAAgB3I,EAAO2I,GAAO2E,EAAO3E,IAAU,OAAO3I,EAMne,SAASoO,GAASC,EAAMC,GACtB,IAAInU,EAAQkU,EAAKlU,MACboU,EAAUF,EAAKE,QACfpM,EAAQyL,GAAyBS,EAAM,IAE3C,OAAoB,gBAAoB,MAAOlB,GAAS,CACtDqB,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPnE,IAAK6D,EACL,kBAAmBC,GAClBpM,GAAQhI,EAAqB,gBAAoB,QAAS,CAC3D8B,GAAIsS,GACHpU,GAAS,KAAM0S,KAAUA,GAAqB,gBAAoB,OAAQ,CAC3EgC,SAAU,UACVC,SAAU,UACVC,EAAG,ymCACHJ,KAAM,YAIV,IAAIK,GAA0B,aAAiBZ,I,IAChC,I,goBKlCFa,EAAqB,SAACC,GAAD,gBAC7BA,EAD6B,aAGrBC,EAAsB,SAACD,GAAD,gBAC9BA,EAD8B,cAGtBE,EAAuB,SAACF,GAAD,gBAC/BA,EAD+B,eAGvBG,EAAU,uCAAG,WACxBC,GADwB,6BAAAC,EAAA,6DAExBpK,EAFwB,+BAED,GAFC,SAIDqK,MAAMF,EAAKnK,GAJV,aAIlBsK,EAJkB,QAMXtS,QAAU,KANC,sBAOhBsS,EAPgB,UAUA,MAApBA,EAAStS,OAVW,8CAWfuS,GAXe,gCAcjBD,EAASE,QAdQ,2CAAH,sDAkBVC,EAAS,uCAAG,WAAUC,EAAcC,GAAxB,iBAAAP,EAAA,+EAEFC,MAAMK,EAAM,CAAEC,YAFZ,cAEfC,EAFe,gBAGFA,EAAKJ,OAHH,cAGfK,EAHe,yBAIdA,GAJc,2DAMdxO,YAAe,GAAD,eANA,0DAAH,wD,2BC3BhByO,EAAmB,SAAnBA,EAAoBC,GAAD,OACvBA,EAAYC,SAAS,MACjBF,EAAiBC,EAAYE,QAAQ,KAAM,MAC3CF,GAEOG,EAAkB,SAACnQ,GAAD,OAC7B+P,EACEK,IAAYC,UAAUrQ,KAGbsQ,EAAyB,SAACC,GACrC,IAAMC,EAAiBD,EAASE,YAAY,KAC5C,OAAOF,EAASxQ,MAAMyQ,EAAiB,IAG5BE,EAAiC,SAACH,GAC7C,OAAOA,EAASI,MAAM,KAAKC,UAAU,IAG1BC,EAAyB,SAACN,GACrC,IAAMC,EAAiBD,EAASE,YAAY,KAC5C,OAAOF,EAASxQ,MAAMyQ,EAAiB,ICvBlC,SAASM,EAAcC,EAAwBC,GACpD,IAAMC,EAA2B,UAAGD,EAAH,UAAsB,EACjDE,EAAO,IAAIC,KAAK,CAACJ,GAAiB,CACtCvX,KAAM,cAGR,GAAI4X,UAAUC,WAEZD,UAAUC,WAAWH,EAAMD,OACtB,CACL,IAAMtK,EAAY2K,SAASC,cAAc,UACnB/B,IAAlB7I,EAAK6K,WAMP7K,EAAK8K,aAAa,OAAlB,gDAAmEC,mBAAmBX,KACtFpK,EAAK8K,aAAa,WAAYR,GAC9BtK,EAAK0C,MAAMsI,WAAa,SACxBL,SAAShT,KAAKsT,YAAYjL,GAC1BA,EAAKkL,QACLP,SAAShT,KAAKwT,YAAYnL,O,m9BCCnBoL,G,MAAiB,iBAA8B,CAC1DvY,KAAMwY,IACNC,QAASC,IAAWH,oBAGTI,EAAiB,SAACC,GAAD,OAAmB,SAC/CC,GAMAH,IAAWI,SAASF,GAEpBC,EAAS,CACP7Y,KAAM+Y,IACNN,QAASG,MAQAI,EAAU,WACrBC,aAAaC,QACbC,IAAYH,WAsFDI,EAA6B,SAACX,GAAD,MAA+B,CACvEzY,KAAMqZ,IACNZ,YAGWa,EAAwB,SAACb,GAAD,MAAqC,CACxEzY,KAAMuZ,IACNd,YAGWe,EAAqB,SAACf,GAAD,MAAsB,CACtDzY,KAAMyZ,IACNhB,Y,gDCnJF,sTAQYiB,EARZ,QAKaC,EAAoB,aACpBC,EAAsB,gB,SAEvBF,K,UAAAA,E,aAAAA,M,KAKL,IAAMG,EAA0B,aAE1BC,EAAa,CACxBC,KAAM,SAGKC,EAAgB,CAC3BC,WAAY,QACZC,SAAU,0BACVC,WAAY,0BACZC,YAAa,2BAEFC,EAA0C,mBAE1CC,EAAc,eACzBC,cAAYC,WAAWC,cADE,YAIdjN,EAA2B,CACtC,CACIG,YAAa,MACbxM,KAAM,SACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,SACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,QACN0M,iBAAkB,uFAEtB,CACIF,YAAa,MACbxM,KAAM,SACN0M,iBAAkB,+GAEtB,CACIF,YAAa,MACbxM,KAAM,SACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,QACN0M,iBAAkB,qEAEtB,CACIF,YAAa,MACbxM,KAAM,UACN0M,iBAAkB,qEAEtB,CACIF,YAAa,MACbxM,KAAM,cACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,YACN0M,iBAAkB,0EAEtB,CACIF,YAAa,MACbxM,KAAM,qBACN0M,iBAAkB,mGAEtB,CACIF,YAAa,MACbxM,KAAM,WACN0M,iBAAkB,mGAEtB,CACIF,YAAa,MACbxM,KAAM,YACN0M,iBAAkB,mGAEtB,CACIF,YAAa,MACbxM,KAAM,cACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,WACN0M,iBAAkB,0FAEtB,CACIF,YAAa,MACbxM,KAAM,aACN0M,iBAAkB,mGAEtB,CACIF,YAAa,MACbxM,KAAM,UACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,YACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,SACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,OACN0M,iBAAkB,+GAEtB,CACIF,YAAa,MACbxM,KAAM,WACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,UACN0M,iBAAkB,4HAEtB,CACIF,YAAa,MACbxM,KAAM,YACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,UACN0M,iBAAkB,0EAEtB,CACIF,YAAa,MACbxM,KAAM,uBACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,UACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,QACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,OACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,SACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,SACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,UACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,QACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,OACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,wBACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,QACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,QACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,QACN0M,iBAAkB,iFAEtB,CACIF,YAAa,MACbxM,KAAM,QACN0M,iBAAkB,iFAEtB,CACEF,YAAa,MACbxM,KAAM,eACN0M,iBAAkB,iFAEpB,CACEF,YAAa,MACbxM,KAAM,QACN0M,iBAAkB,2G,6BCjOf,IAAK6M,EAKAC,EAcAC,EAKAC,EAxBZ,wI,SAAYH,K,kBAAAA,E,uBAAAA,M,cAKAC,K,oBAAAA,E,oBAAAA,E,kBAAAA,E,2CAAAA,E,iCAAAA,E,kBAAAA,E,gBAAAA,E,sBAAAA,E,4BAAAA,E,uCAAAA,E,qBAAAA,M,cAcAC,K,kBAAAA,E,6BAAAA,M,cAKAC,K,UAAAA,E,WAAAA,M,6ICHAC,EAWAC,E,0GCnBCC,EAAiB,SAAC,GAAsC,IAApCjW,EAAmC,EAAnCA,KAAMjD,EAA6B,EAA7BA,MAAOiQ,EAAsB,EAAtBA,OAAQ9R,EAAc,EAAdA,QACpD,OACE,sBACEF,UAAWI,IAAGC,IAAO6a,IAAR,eAAgB7a,IAAO2R,OAASA,IAC7CxK,KAAK,eACLtH,QAASA,EAHX,UAKE,sBAAMF,UAAWK,IAAO2E,KAAxB,SAA+BA,IAC9BjD,GAAS,sBAAM/B,UAAWK,IAAO0B,MAAxB,SAAgCA,Q,4BDApCgZ,O,2BAAAA,I,yCAAAA,I,+BAAAA,I,qCAAAA,I,+BAAAA,I,eAAAA,I,sDAAAA,M,cAWAC,K,yBAAAA,E,wCAAAA,E,6BAAAA,E,oCAAAA,E,6BAAAA,E,YAAAA,E,4CAAAA,M,KAUL,IAAMG,EAA+B,SAAC,GAOtC,IANLC,EAMI,EANJA,WACAC,EAKI,EALJA,eACAC,EAII,EAJJA,YAEAC,GAEI,EAHJC,OAGI,EAFJD,YACAE,EACI,EADJA,YAWQ7X,GAFJwX,EANFM,IAMEN,EALFO,UAKEP,EAJFQ,aAIER,EAHFS,UAGET,EAFFU,eAEEV,EADFW,SAGYlY,cAAND,GACFoY,EAAO3W,YAAY4W,KAEnBC,EAAmB,SAACC,GACxBd,EAAe,CACb,WAAc,GACd,OAAU,GACV,YAAe,GACf,YAAe,GACf7T,KAAM2U,KAaJC,GAL2BxY,EAAE,iCACjC0X,EAAY9T,OAASuT,EAAUsB,YAAyCzY,EAAE,gCACjDA,EAAE,8BAGNoL,OAAOsN,OAAOhB,GAAaiB,QAChD,SAACC,EAAKC,GAAN,OAAkBA,GAAUA,EAAOzV,OAAS,EAAIwV,EAAM,EAAIA,IAC1D,IAYF,OACE,sBAAKxc,UAAWK,IAAOqc,QAAvB,UACE,sBAAK1c,UAAWK,IAAOsc,KAAvB,UACGX,EAAKxU,OAASwT,EAAW4B,eACxB,cAAC,EAAD,CACE5K,QAASsJ,EAAY9T,KAErBxC,KAAMpB,EAAE,6BACR1D,QAAS,kBAAMgc,EAAiB,MAGnCF,EAAKxU,OAASwT,EAAW6B,qBACxBb,EAAKxU,OAASwT,EAAW4B,cACzB,cAAC,EAAD,CACE5K,OAAQsJ,EAAY9T,OAASuT,EAAUsB,WAEvCrX,KAAMpB,EAAE,gCACR1D,QAAS,kBAAMgc,EAAiBnB,EAAUsB,eAE1C,KASHL,EAAKxU,OAASwT,EAAW4B,eACxB,cAAC,EAAD,CACE5K,OAAQsJ,EAAY9T,OAASuT,EAAU+B,aAEvC9X,KAAMpB,EAAE,iCACR1D,QAAS,kBAAMgc,EAAiBnB,EAAU+B,iBAG7Cd,EAAKxU,OAASwT,EAAW+B,kBAAoBf,EAAKxU,OAASwT,EAAW4B,eAErE,cAAC,EAAD,CACE5K,OAAQsJ,EAAY9T,OAASuT,EAAUiC,wBAEvChY,KAAMpB,EAAE,iDACR1D,QAAS,kBAAMgc,EAAiBnB,EAAUiC,+BAgBhD,qBAAKhd,UAAWK,IAAO4c,eAAvB,SACE,qBAAKjd,UAAWK,IAAO6c,cAAvB,SACE,cAACC,EAAA,EAAD,CACEC,SAAU7B,EACVa,eAAgBA,EAChBiB,mBAAmB,KACnBC,qBAAqB,EACrBZ,QAASpB,EACTG,YAAaA,EACb8B,QAASpd,IACTgC,SA7Ec,SAACua,GACvBrB,EAAe,2BACVC,GADS,IAEZkC,OAAQd,EAAQc,OAChBC,YAAaf,EAAQe,YACrB7P,YAAa8O,EAAQ9O,2B,6BE3F3B,2OAEa8P,EAAsB,SAAIxO,GACrC,IAAMyO,EAAoBzE,aAAa0E,QAAQ1O,GAC/C,OAAOyO,EAAoBE,KAAKC,MAAMH,GAAqB,MAGhDI,EAAyB,SAAC7O,GAAD,OACpCgK,aAAa8E,WAAW9O,IAEb+O,EAAoB,SAAC/O,EAAavJ,GAAd,OAC/BuT,aAAagF,QAAQhP,EAAK2O,KAAK/G,UAAUnR,KAE9BwY,EAAmB,eAACC,EAAD,uDAAQ,EAAR,OAC9BC,YAAW,IAAIC,KAAQF,GAAMG,eAElBC,EAAiB,SAACC,GAC7B,OACEC,YAAQ,IAAIJ,KAAQ,IAAIA,KAAKG,KAC7BE,YAAa,IAAIL,KAAQ,IAAIA,KAAKG,KAIzBG,EAAgC,SAC3CC,GAEA,IAAMC,EAAY,IAAIR,KAChBS,EAAU,IAAIT,KAAKO,GACzB,OAAOzY,KAAK4Y,OAAOD,EAAQE,UAAYH,EAAUG,WAAa,O,iCC5BhE,kDAQaC,EAAsD,SAAC,GAAD,IACjEnf,EADiE,EACjEA,SACAoO,EAFiE,EAEjEA,KACAnO,EAHiE,EAGjEA,UACAmf,EAJiE,EAIjEA,eAJiE,OAMjE,mBACEnf,UAAWA,EACXmO,KAAMA,EACNC,IAAI,sBACJ7H,OAAO,SACPrG,QAASif,EALX,SAOGpf,M,8BCrBL,wEAEYqf,EAFZ,Q,SAEYA,K,SAAAA,E,aAAAA,E,+BAAAA,E,oBAAAA,E,4CAAAA,E,wDAAAA,E,2DAAAA,E,+DAAAA,E,8CAAAA,E,2DAAAA,E,kCAAAA,E,8CAAAA,E,sDAAAA,E,+DAAAA,E,gCAAAA,E,aAAAA,E,8BAAAA,E,kCAAAA,M,KA+BL,IAAMC,EAAgBC,wBAAkC,CAC7DC,mBAAoB,Q,2JC9BhBC,EAAc,IAAIC,IAClBC,EAAsBC,OAAelF,WAAWmF,iCAEhDC,EAAK,IAAIC,IAAoB,CAC/BC,OAAQ,CACJL,qBACAM,WAAY,CAACR,GACbS,gBAAgB,eACXT,EAAYU,WAAa,CAAEC,QAASC,SAKjDP,EAAGQ,kBAEY,IACAC,EAAgBT,EAAhBS,YAIFvY,EAAiB,SAAC9E,GAC3Bqd,EAAYC,eAAe,CAAE3Y,MAAO,IAAI4Y,MAAMvd,GAAUwd,cAAeC,IAAcF,U,iOC0B5EG,EAAc,I,iDA/CzBC,KAAO,YAAsD,IAAnDC,EAAkD,EAAlDA,YAAaC,EAAqC,EAArCA,aAAcC,EAAuB,EAAvBA,YACnC,OAAOC,QAAQC,QACbC,IAAQC,IAAIC,KAAkBR,KAAK,CACjCS,IAAKR,EACLS,OAAOC,EACPR,cACAS,UAAWxS,OAAOC,KAAK6R,GAAcvE,QAAO,SAACkF,EAAKvS,GAChD,OAAO,2BACFuS,GADL,kBAEGvS,EAAM,CACLwS,YAAaZ,EAAa5R,QAG7B,Q,KAKTyS,eAAiB,SAACC,GAChBV,IAAQS,eAAeC,I,KAGzBC,kBAAoB,SAACR,EAAaS,EAAYC,GAC5Cb,IAAQW,kBAAkBR,EAAKS,EAAIC,I,KAGrCC,kBAAoB,SAACX,EAAaS,GAChC,OAAOZ,IAAQc,kBAAkBX,EAAKS,I,KAGxCG,kBAAoB,SAACZ,EAAaS,GAChC,OAAOZ,IAAQe,kBAAkBZ,EAAKS,I,KAOxC3H,SAAW,WACT,OAAO+G,IAAQ/G,U,KAGjB+H,oBAAsB,SAACJ,GACrB,OAAO,EAAKG,kBAAkBf,IAAQ/G,SAAU2H,GAAM,iBCuP7CnJ,EAAa,IA7R1B,4DACUE,MAAgB,KAD1B,KA4GEsJ,YAAc,SAACC,EAAcC,GAC3B,OAAO,EAAKC,QAAL,UACFC,YACD,WAFG,oBAGQF,EAHR,qCAGgDD,GACrD,CACEI,OAAQ,YAlHhB,KA0MEC,aAAe,SAACC,GACd,OAAO,EAAKJ,QAAL,UAA+BC,YAAW,WAA1C,eAAmE,CACxEC,OAAQ,OACRzd,KAAM8Y,KAAK/G,UAAU,CAAE+B,MAAO6J,OA7MpC,KAkREC,UAAY,WACV,OAAO,EAAKL,QAAL,UACFC,YAAW,WADT,mBAEL,CACEC,OAAQ,UAtRhB,2CAGE,SAAmB3M,GAAqD,IAAxCnK,EAAuC,uDAAhB,GAC/C2K,EAA+B,eAAQuM,KAM7C,OAJmB,OAAf1O,KAAK2E,QACPxC,EAAQwM,cAAR,iBAAkC3O,KAAK2E,QAGlCjD,YAAcC,EAAJ,aACfQ,WACG3K,MAZT,sBAgBE,SAASmN,GACP3E,KAAK2E,MAAQA,IAjBjB,4BAoBE,WACE,IAAMiK,EAAU5J,aAAa0E,QAC3BtD,KAEEpB,aAAa0E,QAAQtD,KACrB,KACJ,OAAOpG,KAAKoO,QAAL,UACFC,YAAW,WADT,oBAC+BO,EAD/B,oBA1BX,6BA+BE,WACE,OAAO5O,KAAKoO,QAAL,UAAoCC,YAAW,UAA/C,eAhCX,2BAmCE,SAAcrI,GACZ,OAAOhG,KAAKoO,QAAL,UACFC,YAAW,UADT,mBAC6BrI,EAD7B,kBApCX,+BAyCE,WACE,OAAOhG,KAAKoO,QAAL,UAAmCC,YAAW,UAA9C,iBA1CX,4BA6CE,SAAeQ,GACb,OAAO7O,KAAKoO,QAAL,UACFC,YAAW,UADT,oBAC8BQ,EAD9B,mBAC6CC,EAAK7I,eA/C7D,mCAmDE,SAAsB4I,GACpB,OAAO7O,KAAKoO,QAAL,UACFC,YACD,UAFG,oBAGQQ,EAHR,6BAGiCC,EAAK7I,eAvDjD,6BA2DE,SACE2I,EACAlV,GAEA,OAAOsG,KAAKoO,QAAL,UACFC,YACD,UAFG,oBAGQO,EAHR,oBAG2BlV,EAH3B,gCAG8DoV,EAAK7I,eAlE9E,qCAsEE,SACE2I,EACAlV,GAEA,OAAOsG,KAAKoO,QAAL,UACFC,YACD,UAFG,oBAGQO,EAHR,oBAG2BlV,EAH3B,yCAGuEoV,EAAK7I,eA7EvF,gCAiFE,SAAmBvM,GACjB,OAAOsG,KAAKoO,QAAL,UACFC,YACD,UAFG,oBAGQ3U,EAHR,0BAGqCoV,EAAK7I,eArFrD,+BAyFE,SAAkB2I,EAAgBlV,GAEhC,OAAOsG,KAAKoO,QAAL,UAEFC,YAED,UAJG,oBAMQO,EANR,yBAMgClV,EANhC,YAM+CoV,EAAK7I,eAjG/D,yBAwGE,SAAY8I,GACV,MAAM,GAAN,OAAUV,YAAW,UAArB,yBAA+CU,KAzGnD,kCAuHE,SACEH,EACAI,EACAC,EACA7H,EACAE,EACA4H,EACA5b,GAEA,IAAM6b,EAA0C,CAC9CF,aACAD,WACAzG,OAAO,2BACFnB,GADC,IAEJkC,OAMElC,EAAYkC,QACVlC,EAAYkC,OAAOxW,OACjBsU,EAAYkC,OACZ,KAER4F,cACA5H,UAEI8H,EAAczF,KAAKC,MAAM5E,aAAa0E,QAAQ,mBAAqBoF,EAAK7I,WAC9E,OAAOjG,KAAKoO,QAAL,UACFC,YAAW,WADT,oBAC+B/a,IAASwT,IAAWuI,YAAc,MAAQT,EADzE,wBACgGQ,GACrG,CACEd,OAAQ,OACRzd,KAAM8Y,KAAK/G,UAAUuM,OAxJ7B,6BA6JE,SAAgBhB,GACd,OAAOnO,KAAKoO,QAAL,UACFC,YAAW,WADT,+BA9JX,2BAmKE,WACE,OAAOrO,KAAKoO,QAAL,UAAgBC,YAAW,UAA3B,4BAAwDS,EAAK7I,eApKxE,mCAuKE,SAAsBiI,GACpB,OAAOlO,KAAKoO,QAAL,UAAgBC,YAAW,UAA3B,4BAAwDS,EAAK7I,WAA7D,YAA2EiI,MAxKtF,8BA2KE,WACE,OAAOlO,KAAKoO,QAAL,UAAgBC,YAAW,UAA3B,mBA5KX,oCA+KE,SAAwBF,EAAqBgB,GAG3C,OAAOnP,KAAKoO,QAAL,UACFC,YAAW,WADT,oBAC+BF,EAD/B,6BAEL,CACEG,OAAS,OACTzd,KAAM8Y,KAAK/G,UAAUuM,OAtL7B,yBA2LE,SAAYhB,EAAqBgB,GAC/B,OAAOnP,KAAKoO,QAAL,UACFC,YAAW,WADT,oBAC+BF,EAD/B,uBAEL,CACEG,OAAQ,OACRzd,KAAM8Y,KAAK/G,UAAUuM,OAhM7B,gCAsME,SAAmBhB,GACjB,MAAM,0BAvMV,sCAiNE,SACES,EACAV,GAKA,OAAOlO,KAAKoO,QAAL,UAGDC,YAAW,WAHV,oBAGgCO,EAHhC,mBAG0D,CAC/D/d,KAAM8Y,KAAK/G,UAAU,CAAEsL,UACvBI,OAAQ,WA7Nd,iCAiOE,SAAoBa,GAClB,OAAOnP,KAAKoO,QAAL,UAAyCC,YAAW,WAApD,wBAAsF,CAC3FC,OAAQ,OACRzd,KAAM8Y,KAAK/G,UAAUuM,OApO3B,iCAwOE,SAAoB9M,GAClB,OAAOiN,YAAM,CACXhB,OAAQ,OACR3M,IAAI,GAAD,OAAK0M,YAAW,WAAhB,6BAAuDhM,OAC1DF,QAAS,CACP,cAAgB,UAAhB,OAA2BnC,KAAK2E,OAChC,cAAe,UA9OvB,uCAmPE,SAA0BrW,GACxB,OAAO0R,KAAKoO,QAAL,UACFC,YAAW,WADT,mCAC8C/f,GACnD,CACEggB,OAAQ,WAvPhB,uCA2PE,SAA0BhgB,GACxB,OAAO0R,KAAKoO,QAAL,UACFC,YAAW,WADT,mCAC8C/f,GACnD,CACEggB,OAAQ,WA/PhB,6CAmQE,SAAgChgB,GAC9B,OAAO0R,KAAKoO,QAAL,UACFC,YAAW,WADT,4BACuC/f,GAC5C,CACEggB,OAAQ,WAvQhB,oCA2QE,SAAuBa,GACrB,OAAOnP,KAAKoO,QAAL,UAAwCC,YAAW,WAAnD,2BAAwF,CAC7FC,OAAQ,OACRzd,KAAM8Y,KAAK/G,UAAUuM,SA9Q3B,M,0BCNaI,EACX,WACSC,EACAtB,EACAuB,EACAC,GACN,yBAJMF,UAIP,KAHOtB,QAGP,KAFOuB,cAEP,KADOC,c,QC2FExK,GA3FuBoB,cAAYC,WA2FrB,I,WA3EzB,aAAe,IAAD,gCATNoJ,iBASM,OAkBdC,eAAiB,WACf,EAAKD,YAAYE,iBAAiBC,MAAMC,QAAQrc,QAnBpC,KAsBdsc,yBAA2B,SAACC,GAG1B,EAAKN,YAAYE,iBAAiBC,MAAMC,QAAQrc,QAzBpC,KA4BdqR,QAAU,WACR,IAAMmL,EAAclL,aAAa0E,QAAQ,YACzC,EAAKiG,YACFQ,gBAAgB,CAAEC,cAAeF,IACjCJ,OAAM,SAACO,GAENxc,YAAe,UAAD,OAAWwc,EAAX,4DAEdN,QAAQrc,MAAM2c,MAElB,EAAKV,YAAYW,kBAAkBR,OAAM,SAACO,GAExCxc,YAAe,UAAD,OAAWwc,EAAX,4DAEdN,QAAQrc,MAAM2c,OA1CJ,KA8CdE,uBAAyB,WACvB,EAAKZ,YACFa,yBACAC,MAAK,SAAAlD,OACLuC,MAAMC,QAAQrc,QAlDL,KAqDdgd,wBAA0B,WACxB,EAAKf,YAAYgB,0BAA0Bb,OAAM,SAACO,GAEhDxc,YAAe,UAAD,OAAWwc,EAAX,4EAEdN,QAAQrc,MAAM2c,MAEhB,EAAKV,YAAYW,kBAAkBR,OAAM,SAACO,GAExCxc,YAAe,UAAD,OAAWwc,EAAX,4EAEdN,QAAQrc,MAAM2c,MAEhB,EAAKV,YAAYiB,aAAad,OAAM,SAACO,GAEnCxc,YAAe,UAAD,OAAWwc,EAAX,4EAEdN,QAAQrc,MAAM2c,OArEhBrQ,KAAK2P,YAAc,IAAIkB,cAAYC,K,wCAdrC,WACE,OAAO9Q,KAAK2P,YAAYoB,S,yBAmB1B,SAAmBjJ,GACjB,IAAMkJ,EAAYC,EAAYC,aAAapJ,EAAKqJ,cAEhD,OAAO,IAAI5B,EACTzH,EAAKsJ,SACLJ,EAAU9C,MACVpG,EAAKqJ,aACkB,aAAvBH,EAAUK,a,2BArBd,SAA4B1M,GAC1B,IACM2M,EADY3M,EAAMzB,MAAM,KAAK,GACVT,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KAExD,OAAOkH,KAAKC,MAAM6B,OAAO8F,KAAKD,Q,yBCpBlCE,EAAOC,QAAU,CAAC,QAAU,qCAAqC,MAAQ,mCAAmC,cAAgB,2CAA2C,KAAO,kCAAkC,eAAiB,4CAA4C,YAAc,yCAAyC,KAAO,kCAAkC,QAAU,qCAAqC,QAAU,qCAAqC,aAAe,0CAA0C,MAAQ,mCAAmC,gBAAkB,6CAA6C,QAAU,qCAAqC,WAAa,wCAAwC,QAAU,qCAAqC,QAAU,qCAAqC,gBAAkB,+C,gRCGrzBC,EAAqB,SAAC5O,GAAD,MAA0C,CAC1E/W,KAAM4lB,IACNnN,QAASC,IAAWmN,eAAe/O,YAAuBC,M,kDCN5D,gFAGa+O,EAAW,CACtBC,sBAAuB,SAAClD,EAAiB5I,GAAlB,gBAClBqI,YACD,WAFmB,oBAGRO,EAHQ,uCAG8B5I,IAGrD+L,kBAAmB,SAAC/L,GAAD,gBACdqI,YACD,WAFe,mDAG2BrI,IAG9CgM,qBAAsB,SAACpD,EAAiB5I,GAAlB,gBACjBqI,YACD,WAFkB,oBAGPO,EAHO,uCAG+B5I,IAGrDiM,qBAAsB,SAACrD,EAAiBsD,GAAlB,gBACjB7D,YACD,WAFkB,oBAGPO,EAHO,wCAGgCsD,IAEtDC,oBAAqB,SAACvD,EAAiB5I,GAAlB,gBAChBqI,YACD,WAFiB,oBAGNO,EAHM,gCAGyB5I,IAG9CoM,yBAA0B,SAACxD,GAAD,wBACbA,EADa,yBAG1ByD,sBAAuB,SAACzD,GAAD,wBACVA,EADU,sBAGvB0D,8BAA+B,SAAC1D,GAAD,wBAClBA,EADkB,iCAG/B2D,0BAA2B,4DAG3BC,kBAAmB,SAAC5D,EAAiB6D,GAAlB,gBACdpE,YAAW,WADG,oBACmBO,EADnB,8BACgD6D,IAEnEC,YAAY,GAAD,OAAKrE,YAAW,WAAhB,iBAEXsE,uBAAwB,SAAC/D,GAAD,gBACrBP,YAAW,WADU,oBACYO,EADZ,+BAGxBgE,qBAAsB,2BACjBvE,YAAW,WADM,qBAGtBwE,oBAAqB,SAACjE,GAAD,gBAChBP,YAAW,eADK,oBACqBO,EADrB,uBAGrBkE,6BAA8B,SAAClE,GAAD,gBACzBP,YAAW,eADc,oBACYO,EADZ,+BAG9BmE,qBAAsB,SAACzkB,EAAYmkB,GAAb,gBACjBpE,YAAW,WADM,+BAC2B/f,EAD3B,YACiCmkB,IAEvDO,oBAAqB,SAACpE,EAAiB6D,GAAlB,gBAChBpE,YAAW,WADK,oBACiBO,EADjB,8BAC8C6D,IAEnEQ,uBAAwB,SAACrE,GAAD,gBACnBP,YAAW,WADQ,oBACcO,EADd,0BAGxBsE,oBAAqB,SAACtE,GAAD,gBAChBP,YAAW,WADK,oBACiBO,EADjB,oBAGrBuE,2BAA4B,6DAG5BC,+BAAgC,SAACxE,GAAD,wBACnBA,EADmB,kCAGhCyE,oBAAqB,SAACzE,GAAD,gBAChBP,YAAW,WADK,oBACiBO,EADjB,yBAGrB0E,oBAAqB,SAAC1E,EAAiB5I,GAAlB,gBAChBqI,YAAW,WADK,oBACiBO,EADjB,uCACuD5I,IAE5EuN,eAAe,GAAD,OAAKlF,YAAW,WAAhB,oBAGHK,EAAwC,CACnD,eAAgB,mBAChB,cAAe,O,igBCpFJ8E,EAAkB,SAAC,GAAD,SAAGC,mBACbC,WAERC,EAAyB,SAAC,GAAD,SACpCF,mBACuDpR,MAQ5CuR,EAA0B,SAAC,GAItC,OAFoB,EADpBH,mBAG0BI,QAGfC,EAA2BC,YACtCJ,GACA,SAACtR,GAAD,OAA+BA,KAGpB2R,EAAkBD,YAC7BJ,GACA,qBAAGxa,WAGQ8a,EAA4BF,aApBd,SAAC,GAAD,SAAGN,mBACTS,aAqBnB,SAAChG,GAAD,OAAmBA,KAGRiG,EAAiBJ,aA5BF,SAAC,GAAD,SAAGN,mBACVW,cA6BnB,SAAC/R,GAAD,OAAkBA,KAGPgS,EAA4BN,YACvCJ,GACA,SAACtR,GAAD,OAA+BA,EAAKiS,S,wBChDtC9C,EAAOC,QAAU,CAAC,QAAU,0BAA0B,OAAS,yBAAyB,WAAa,6BAA6B,iBAAmB,mCAAmC,aAAe,+BAA+B,WAAa,6BAA6B,WAAa,6BAA6B,eAAiB,iCAAiC,YAAc,8BAA8B,eAAiB,iCAAiC,UAAY,4BAA4B,SAAW,2BAA2B,QAAU,0BAA0B,MAAQ,wBAAwB,2BAA6B,6CAA6C,eAAiB,iCAAiC,qBAAqB,qCAAqC,cAAgB,gCAAgC,kBAAoB,oCAAoC,mBAAqB,qCAAqC,oBAAsB,sCAAsC,sBAAwB,wCAAwC,yBAA2B,2CAA2C,aAAe,+BAA+B,yBAAyB,yCAAyC,WAAa,6BAA6B,eAAiB,iCAAiC,YAAc,8BAA8B,SAAW,2BAA2B,gBAAkB,kCAAkC,aAAe,+BAA+B,YAAc,8BAA8B,aAAe,+BAA+B,UAAY,4BAA4B,UAAY,4BAA4B,YAAc,gC,gCCU9qD,oVAAO,IAAM8C,EAAsB,oCACtBC,EAA0B,wCAC1BC,EAAqB,mCACrBC,EAA8B,4CAC9BC,EAAuB,qCACvBC,EAAsB,oCACtBC,EACX,8CACWC,EACX,wDACWC,EAAyB,uCACzBC,EACX,qD,yICrBUC,E,yBAAAA,K,2BAAAA,E,kCAAAA,M,KAWL,IAcKC,EAdCC,EAAoB,SAC/BC,GAD+B,gCAG9BH,EAAgBI,aAAeplB,uBAC9B,kBAAYmlB,EAAQH,EAAgBI,gBACpC,CAACD,KAL4B,cAQ9BH,EAAgBK,gBAAkBrlB,uBACjC,kBAAYmlB,EAAQH,EAAgBK,mBACpC,CAACF,KAV4B,I,SAcrBF,K,4BAAAA,E,cAAAA,E,0BAAAA,E,iBAAAA,M,sBC1BZ1D,EAAOC,QAAU,CAAC,SAAW,8BAA8B,SAAW,8BAA8B,YAAc,iCAAiC,YAAc,iCAAiC,UAAY,+BAA+B,UAAY,+BAA+B,YAAc,iCAAiC,iBAAmB,sCAAsC,eAAiB,oCAAoC,eAAiB,oCAAoC,oBAAsB,yCAAyC,UAAY,+BAA+B,WAAa,gCAAgC,aAAe,kCAAkC,cAAgB,mCAAmC,cAAgB,mCAAmC,YAAc,iCAAiC,UAAY,+BAA+B,OAAS,4BAA4B,UAAY,+BAA+B,SAAW,8BAA8B,OAAS,4BAA4B,QAAU,6BAA6B,aAAe,kCAAkC,KAAO,0BAA0B,YAAc,iCAAiC,SAAW,8BAA8B,GAAK,wBAAwB,SAAW,8BAA8B,UAAY,+BAA+B,gBAAkB,qCAAqC,YAAc,iCAAiC,aAAe,kCAAkC,YAAc,iCAAiC,eAAiB,oCAAoC,gBAAkB,qCAAqC,cAAgB,mCAAmC,mBAAqB,wCAAwC,oBAAsB,yCAAyC,SAAW,8BAA8B,eAAiB,oCAAoC,OAAS,4BAA4B,eAAiB,oCAAoC,YAAc,mC,iBCAz/DD,EAAOC,QAAU,CAAC,KAAO,mBAAmB,MAAQ,oBAAoB,SAAW,uBAAuB,mBAAqB,iCAAiC,gBAAkB,8BAA8B,SAAW,uBAAuB,YAAc,0BAA0B,QAAU,wB,gBCApSD,EAAOC,QAAU,CAAC,UAAY,mCAAmC,KAAO,8BAA8B,WAAa,oCAAoC,kBAAoB,2CAA2C,SAAW,kCAAkC,QAAU,iCAAiC,SAAW,kCAAkC,QAAU,iCAAiC,cAAgB,uCAAuC,UAAY,mCAAmC,aAAe,sCAAsC,QAAU,mC,mMCe9hB8D,EAAkB,iBAAyB,CACtDxpB,KAAMypB,IACNhR,QAASC,IAAW8Q,oBAGT9H,EAAiB,SAACzH,GAC7B,IAAMyP,EAAc3G,IAAKhB,kBAAkB9H,EAAY,eACvD,OAAO,SAACpB,GACN,IAAMwK,EAAc,SAACP,GACnBC,IAAKrB,eAAeoB,GACpBjK,EAAS,CACP7Y,KAAM2pB,IACNlR,QAASqK,KAGR4G,EAQHrG,EAAYpJ,GAPZvB,IAAWkR,cAAc3P,GAAYyK,MAAK,SAACpO,GACzCyM,IAAKnB,kBAAkBtL,EAAK2D,WAAY,cAAxC,eACK3D,EAAKuT,aAEVxG,EAAY/M,EAAK2D,iB,iBChBZ6P,GALqB9B,YAChC,CAZ8B,SAAC,GAAD,SAAG+B,YAajC,SAAC5D,GAAD,OAA+BA,KAGC6B,YAChC,CAd8B,SAAC,GAAD,SAC9B+B,SACiDC,cAajD,SAACC,GAAD,OAAmCA,MAGxBC,EAAqBlC,YAChC,CAf8B,SAAC,GAC/B,OAD0E,EAAzC+B,SACjB9P,cAehB,SAACA,GAAD,OAA+BA,M,iBC1BjCwL,EAAOC,QAAU,CAAC,KAAO,2BAA2B,SAAW,+BAA+B,oBAAsB,0CAA0C,OAAS,6BAA6B,YAAc,kCAAkC,YAAc,kCAAkC,WAAa,iCAAiC,OAAS,6BAA6B,OAAS,6BAA6B,WAAa,iCAAiC,YAAc,kCAAkC,MAAQ,4BAA4B,UAAY,gCAAgC,UAAY,gCAAgC,MAAQ,4BAA4B,SAAW,iC,gBCAvqBD,EAAOC,QAAU,CAAC,UAAY,4CAA4C,eAAiB,iDAAiD,KAAO,uCAAuC,SAAW,2CAA2C,OAAS,yCAAyC,YAAc,8CAA8C,YAAc,8CAA8C,WAAa,6CAA6C,OAAS,yCAAyC,OAAS,yCAAyC,WAAa,6CAA6C,YAAc,8CAA8C,MAAQ,wCAAwC,UAAY,4CAA4C,MAAQ,wCAAwC,SAAW,2CAA2C,eAAiB,iDAAiD,eAAiB,iDAAiD,mBAAqB,qDAAqD,gBAAkB,kDAAkD,SAAW,6C,iBCAzpCD,EAAOC,QAAU,CAAC,OAAS,uBAAuB,MAAQ,sBAAsB,kBAAoB,kCAAkC,oBAAsB,oCAAoC,KAAO,qBAAqB,KAAO,qBAAqB,SAAW,yBAAyB,KAAO,qBAAqB,kBAAoB,oC,mBCA5UD,EAAOC,QAAU,CAAC,OAAS,6BAA6B,KAAO,2BAA2B,MAAQ,4BAA4B,OAAS,6BAA6B,OAAS,6BAA6B,KAAO,2BAA2B,WAAa,iCAAiC,KAAO,2BAA2B,QAAU,8BAA8B,KAAO,2BAA2B,aAAe,mCAAmC,MAAQ,4BAA4B,wBAA0B,8CAA8C,eAAiB,qCAAqC,aAAe,mCAAmC,UAAY,kC,gBCAxpBD,EAAOC,QAAU,CAAC,OAAS,uBAAuB,MAAQ,sBAAsB,iBAAmB,iCAAiC,SAAW,yBAAyB,aAAe,6BAA6B,gBAAkB,gCAAgC,WAAa,2BAA2B,OAAS,uBAAuB,MAAQ,sBAAsB,OAAS,uBAAuB,MAAQ,sBAAsB,aAAe,6BAA6B,WAAa,6B,6BCDne,kEA+BO,SAAS/iB,EAAT,GAAmE,IAAnDxB,EAAkD,EAAlDA,KAAMpB,EAA4C,EAA5CA,UAA4C,IAAjC+C,YAAiC,MAA1B,GAA0B,EACvE,OACE,sBACE/C,UAAWI,IAAG,QAAD,OAASgB,GAAQpB,GAC9B8P,MAAO,CAAEsa,SAAS,GAAD,OAAKrnB,EAAL,W,+MCaXsnB,E,sCA/BCC,EAAuB,CAClC,CAAEvoB,MAAQ,+BAAiC4D,MAAO,GAAI4kB,UAAW,IACjE,CAAExoB,MAAQ,qBAAuB4D,MAAO,UAAW4kB,UAAW,IAC9D,CAAExoB,MAAQ,yBAA2B4D,MAAO,cAAe4kB,UAAW,IACtE,CAAExoB,MAAQ,4BAA8B4D,MAAO,iBAAkB4kB,UAAW,IAC5E,CAAExoB,MAAQ,6BAA+B4D,MAAO,kBAAmB4kB,UAAW,IAC9E,CAAExoB,MAAQ,4BAA8B4D,MAAO,iBAAkB4kB,UAAW5Q,IAAe6Q,MAC3F,O,SAwBUH,O,qBAAAA,I,oBAAAA,M,KAKL,IAmCKI,EAnCCC,EAAuC,CAClDhO,QAAS,CACP9O,YAAa,GACb+c,UAAW,GACX3O,KAAM,GACN4O,WAAY,GACZC,gBAAiB,IAEnBC,MAAO,CACL3H,WAAY,EACZD,SAAU,GACVzG,OAAQ,CACNmO,WAAY,CAAC,GACbD,UAAW,GACX/c,YAAa,GACboO,KAAM,GACN6O,gBAAiB,IAMnBrP,OAAQ,CACNuP,OAAQ,CACN,CACEC,OAAQV,EAAa,GAAG3kB,MACxBslB,cAAeX,EAAa,GAAGC,cAKvCW,gBAAiB,GACjBC,kBAAmBb,I,SAGTG,O,mCAAAA,I,2CAAAA,I,uCAAAA,I,6CAAAA,I,oCAAAA,M,KAqBL,IAAMW,EAAqB,SAChCha,EACAjK,GAEA,OAAQA,EAAOlH,MACb,KAAKwqB,EAA0BY,mBAC7B,IAAMlI,EAAahc,EAAOuR,QAAU,EACpC,OAAO,2BACFtH,GADL,IAEE0Z,MAAM,2BAAM1Z,EAAM0Z,OAAb,IAAoB3H,iBAI7B,KAAKsH,EAA0Ba,iBAC7B,OAAO,2BACFla,GADL,IAEE0Z,MAAM,2BAAM1Z,EAAM0Z,OAAb,IAAoB5H,SAAU/b,EAAOuR,YAG9C,KAAK+R,EAA0Bc,oBAC7B,OAAO,2BACFna,GADL,IAEE0Z,MAAM,2BACD1Z,EAAM0Z,OADN,IAEH3H,WAAY,EACZ1G,OAAO,2BACFrL,EAAM0Z,MAAMrO,QADX,IAEJmO,WAAY,CAACzjB,EAAOuR,eAK5B,KAAK+R,EAA0Be,eAAiB,IAAD,EAC7C,EAAkCrkB,EAAOuR,QAAjCsS,EAAR,EAAQA,OAAQC,EAAhB,EAAgBA,cACVQ,EAAoB,YAAOra,EAAM+Z,mBACjCO,EAActa,EAAM+Z,kBAAkBlZ,WAAU,SAAAtE,GAAI,OAAQ,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMhI,SAAUqlB,KACxEW,EAAgBva,EAAM+Z,kBAAkBlZ,WAAU,SAAAtE,GAAI,MAAwB,MAAhB,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAM4c,cAQtE,OAPI,UAAAkB,EAAqBE,UAArB,eAAqChmB,SAAUqlB,IACjDS,EAAqBE,GAAepB,UAAY,IAET,OAAtCkB,EAAqBC,KACtBD,EAAqBC,GAAanB,UAAYU,GAGzC,2BACF7Z,GADL,IAEE0Z,MAAM,2BAAM1Z,EAAM0Z,OAAb,IAAoBtP,OAAQ,CAAEuP,OAAQ,CAAC5jB,EAAOuR,YACnDyS,kBAAmBM,IAIvB,KAAKhB,EAA0BmB,eAC7B,MAA0DzkB,EAAOuR,QAAzD9K,EAAR,EAAQA,YAAa+c,EAArB,EAAqBA,UAAW3O,EAAhC,EAAgCA,KAAM6O,EAAtC,EAAsCA,gBAChCgB,EAAoBje,EACtBA,EAAY1G,KAAI,qBAAG6b,QACnB,GACE+I,EAAkBnB,EAAYA,EAAUzjB,KAAI,qBAAG1E,MAAe,GAC9DupB,EAAa/P,EAAOA,EAAK9U,KAAI,qBAAGkb,SAAqB,GACrD4J,EAAwBnB,EAAkBA,EAAgB3jB,KAAI,qBAAGkb,SAAqB,GAGtF6J,EAAcre,GAAeA,EAAY5G,OAAS,EAAI4G,EAAY1G,KAAI,qBAAG9F,QAAmB,GAC5F8qB,EAAcvB,GAAaA,EAAU3jB,OAAS,EAAI2jB,EAAUzjB,KAAI,SAAAyG,GAAI,OAAIA,EAAKgd,aAAa,GAC1FwB,EAAiBnQ,GAAQA,EAAKhV,OAAS,EAAIgV,EAAK9U,KAAI,qBAAGklB,YAA2B,GAClFC,EAAWxB,GAAmBA,EAAgB7jB,OAAS,EAAI6jB,EAAgB3jB,KAAI,qBAAGkb,SAAqB,GAE7G,OAAO,2BACFhR,GADL,IAEEsL,QAASvV,EAAOuR,QAChBoS,MAAM,2BACD1Z,EAAM0Z,OADN,IAEH3H,WAAY,EACZ1G,OAAO,2BACFrL,EAAM0Z,MAAMrO,QADX,IAEJ7O,YAAaie,EACblB,UAAWmB,EACX9P,KAAM+P,EACNlB,gBAAiBmB,MAGrBd,gBAAiB,CACf,CACEhc,IAAK,cACLvJ,MAAOsmB,GACN,CACD/c,IAAK,YACLvJ,MAAOumB,GACN,CACDhd,IAAK,OACLvJ,MAAOwmB,GACN,CACDjd,IAAK,kBACLvJ,MAAO0mB,MAMf,QACE,OAAOjb,IASAkb,EAAehN,wBAA0C,CACpErf,KAAM,KACNssB,sBAAuBpsB,O,oFCvNZmE,EAAa,WAA4B,IAA3BkoB,EAA0B,uDAAfrsB,IACpCiQ,qBAAU,WACRoc,MAEC,K,iCCPL9G,EAAOC,QAAU,CAAC,UAAY,6BAA6B,6BAA+B,gDAAgD,sBAAwB,yCAAyC,UAAY,6BAA6B,OAAS,0BAA0B,kBAAoB,qCAAqC,WAAa,8BAA8B,eAAiB,kCAAkC,QAAU,2BAA2B,eAAiB,kCAAkC,WAAa,8BAA8B,UAAY,6BAA6B,OAAS,0BAA0B,gBAAkB,mCAAmC,QAAU,2BAA2B,mBAAqB,sCAAsC,YAAc,+BAA+B,cAAgB,iCAAiC,gBAAkB,mCAAmC,UAAY,+B,gBCAj7BD,EAAOC,QAAU,CAAC,QAAU,oCAAoC,UAAY,sCAAsC,SAAW,qCAAqC,eAAiB,2CAA2C,kBAAoB,8CAA8C,WAAa,uCAAuC,OAAS,mCAAmC,eAAiB,2CAA2C,YAAc,wCAAwC,UAAY,sCAAsC,OAAS,mCAAmC,YAAc,wCAAwC,OAAS,mCAAmC,iBAAmB,6CAA6C,YAAc,wCAAwC,MAAQ,kCAAkC,aAAe,yCAAyC,gBAAkB,4CAA4C,SAAW,uC,8BCDn9B,4RAIargB,EAAoB,SAAC,GAAD,SAC/Bwd,QAC4CC,MACjC0J,EAAqB,SAAC,GAAD,SAAG3J,QAC3BpiB,OACGgsB,EAAsB,SAAC,GAAD,SAAG5J,QAC5B6J,QAEGC,EAAsB3E,YACjC,CAAC3iB,EAAmBmnB,EAAoBC,IACxC,SAAC3J,EAAMriB,EAAOisB,GAAd,MAA2C,CAAE5J,OAAMriB,QAAOisB,aAG/CE,EAAqB,SAAC,GAAD,SAAG/J,QAC3B0F,OACGsE,EAAkB,SAAC,GAAD,SAAGhK,QACxBiK,WACGC,EAAoB,SAAC,GAAD,SAAGlK,QAC1BmK,aAOGC,EAAejF,YAC1B,CAAC6E,EAAiBE,EAPe,SAAC,GAAD,SAAGlK,QAC5BqK,iBAOR,SAACJ,EAAWE,EAAaE,GAAzB,MAAsE,CACpEJ,YACAE,cACAE,qB,gCCzBJ,gRAAO,IAAMC,EAAsB,oCAGtBC,EAAwB,sCACxBC,EAAkB,gCAClBC,EAAkB,gCAClBC,EACX,6CAGWC,EAAwB,sCACxBC,EAA0B,wCAC1BC,EAAiB,gC,qJCLjB1oB,EAAmD,SAAC,GAAD,MAC9DlF,EAD8D,EAC9DA,SAD8D,IAE9DC,iBAF8D,MAElD,GAFkD,MAG9DoD,eAH8D,MAGpD,UAHoD,MAI9DlD,eAJ8D,MAIpDC,IAJoD,MAK9D8B,gBAL8D,aAM9DkM,YAN8D,MAMvD,GANuD,EAO9DpL,EAP8D,EAO9DA,KAP8D,IAQ9DqE,YAR8D,SAS9DmB,EAT8D,EAS9DA,KAT8D,OAW9D,eAAC,IAAD,CACEvI,UAAWI,IAAGC,IAAOutB,OAAQ5tB,GAAhB,mBACVK,IAAOwtB,MAAiB,OAAT9qB,GADL,cAEV1C,IAAOytB,kBAAgC,oBAAZ1qB,GAFjB,cAGV/C,IAAO0tB,oBAAkC,sBAAZ3qB,GAHnB,cAIV/C,IAAO+M,KAAmB,SAAZhK,GAJJ,cAKV/C,IAAO+G,KAAOA,GALJ,cAMV/G,IAAO2tB,WAAazlB,GANV,IAQbtG,SAAUA,EACVkM,KAAMA,EACNpL,KAAMA,EACNK,QAASA,EACTlD,QAASA,EAbX,UAeGqI,GAAQ,cAAC,IAAD,CAAMvI,UAAWK,IAAOkI,KAAMnH,KAAMmH,EAAMxF,KAAM,KACzD,+BAAOhD,S,6BC3CX,yFAGakuB,EAAuBzT,cAAYC,WAEnCuK,EAAc,CACzBkJ,UAAWD,EAAOE,SAClBC,UAAWH,EAAOI,oBAClBC,aAAcL,EAAOM,YAAcnP,IAASoP,cAC5CC,yBACER,EAAOI,oBAAsBjP,IAASsP,gBACxCC,cAAe,iBACfC,MAAO,sBACPC,sBAAsB,EACtBC,oBAAoB,GAAD,OAAKb,EAAOE,SAAZ,wBACnBY,oCAAqC,GACrCC,sBAAsB,EACtBC,cAAc,EACdC,6BAA6B,EAE7BC,YAAa,CACX,CACEC,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,qiFAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,6iFAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,y3DAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,67CAGJ,CACEL,IAAK,MACLjO,IAAK,MACLkO,IAAK,QACLC,IAAK,8BACLC,IAAK,8BACLC,EACE,yVACFrpB,EAAG,OACHspB,IAAK,CACH,87CAKNC,SAAU,CACRC,OAAQ1B,EAAOE,SACfyB,uBAAuB,GAAD,OAAK3B,EAA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","file":"static/js/main.e83fd640.chunk.js","sourcesContent":["import React from 'react';\r\nimport cs from 'classnames';\r\n\r\nimport { noop } from 'shared/utils';\r\nimport styles from './Button.module.css';\r\n\r\ninterface Props {\r\n type: 'button' | 'submit' | 'reset';\r\n className: string;\r\n onClick: () => void;\r\n}\r\n\r\nexport const TransparentButton: React.FC<\r\n React.PropsWithChildren>\r\n> = ({ children, className = '', type = 'button', onClick = noop }) => (\r\n // actually, it has a valid button type\r\n // eslint-disable-next-line react/button-has-type\r\n \r\n {children}\r\n \r\n);\r\n","import React, { PropsWithChildren, FC } from 'react';\r\nimport { Card } from 'react-bootstrap';\r\n\r\nimport styles from './CardHeader.module.css';\r\n\r\nexport interface Props {\r\n children: React.ReactChild | React.ReactChild[];\r\n}\r\n\r\nexport const CardHeader: FC> = ({ children }) => {\r\n return (\r\n \r\n

{children}

\r\n
\r\n );\r\n};\r\n","import React, { PropsWithChildren, FC, Fragment } from 'react';\r\n\r\nexport interface Props {\r\n children: string;\r\n}\r\n\r\nexport const CardContent: FC> = ({ children }) => {\r\n return {children};\r\n};\r\n","import React, { PropsWithChildren, FC, Fragment } from 'react';\r\n\r\nexport interface Props {\r\n children: React.ReactChild | React.ReactChild[];\r\n}\r\n\r\nexport const CardFooter: FC> = ({ children }) => {\r\n return {children};\r\n};\r\n","import React from 'react';\r\nimport { Card as BSCard } from 'react-bootstrap';\r\nimport cs from 'classnames';\r\n\r\nimport { findSlot } from 'shared/utils';\r\nimport { CardHeader } from './CardHeader/CardHeader';\r\nimport { CardContent } from './CardContent/CardContent';\r\nimport { CardFooter } from './CardFooter/CardFooter';\r\nimport styles from './Card.module.css';\r\n\r\ninterface Props {\r\n children: React.ReactChild | React.ReactChild[];\r\n highlighted?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function Card({ highlighted, className, children }: Props): JSX.Element {\r\n const childrenArray = React.Children.toArray(children);\r\n const header = findSlot(childrenArray, CardHeader.name);\r\n const content = findSlot(childrenArray, CardContent.name);\r\n const footer = findSlot(childrenArray, CardFooter.name);\r\n\r\n return (\r\n \r\n \r\n {header}\r\n {content}\r\n \r\n {footer && (\r\n \r\n {footer}\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nCard.Header = CardHeader;\r\nCard.Content = CardContent;\r\nCard.Footer = CardFooter;\r\n","export enum Status {\r\n resolved,\r\n rejected\r\n}\r\n","import React from 'react';\r\nimport { Form } from 'react-bootstrap';\r\n\r\nimport { noop } from 'shared/utils';\r\nimport { Icon } from 'components/Icon/Icon';\r\nimport styles from './Checkbox.module.css';\r\n\r\ninterface Props {\r\n label: string;\r\n name: string;\r\n labelClass?: string;\r\n disabled?: boolean;\r\n checked?: boolean;\r\n onChange?: (event: React.ChangeEvent) => void;\r\n miconClass?: string;\r\n}\r\n\r\nexport const Checkbox: React.FC = ({\r\n label,\r\n labelClass = '',\r\n name,\r\n disabled = false,\r\n checked = false,\r\n onChange = noop,\r\n miconClass = ''\r\n}) => (\r\n \r\n \r\n \r\n \r\n {label}\r\n \r\n \r\n); \r\n","import React from 'react';\r\nimport { Modal } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { noop } from 'shared/utils';\r\nimport { useOnMount } from 'shared/hooks';\r\nimport { Button } from 'components/Button/Button';\r\nimport { Icon } from 'components/Icon/Icon';\r\nimport { Status } from './Confirmation.helpers';\r\nimport styles from './Confirmation.module.css';\r\nimport WarningPng from '../../assets/images/WarningCircle.png';\r\n\r\ninterface Props {\r\n title: string;\r\n message: string;\r\n variant?: 'primary' | 'danger';\r\n note?: string;\r\n reactivate?: string;\r\n onResolve?: () => void;\r\n onReject?: () => void;\r\n}\r\n\r\nexport function Confirmation({\r\n title,\r\n message,\r\n note,\r\n reactivate,\r\n variant = 'primary',\r\n onResolve = noop,\r\n onReject = noop\r\n}: Props): JSX.Element {\r\n const [show, setShow] = React.useState(false);\r\n const [status, setStatus] = React.useState(null);\r\n const { t } = useTranslation();\r\n\r\n const callbackMap: Record void> = React.useMemo(\r\n () => ({\r\n [Status.resolved]: onResolve,\r\n [Status.rejected]: onReject\r\n }),\r\n [onResolve, onReject]\r\n );\r\n\r\n const handleOnExited = React.useCallback((): void => {\r\n callbackMap[status]();\r\n }, [status, callbackMap]);\r\n\r\n const handleResolve = React.useCallback(() => {\r\n setShow(false);\r\n setStatus(Status.resolved);\r\n }, []);\r\n\r\n const handleReject = React.useCallback(() => {\r\n setShow(false);\r\n setStatus(Status.rejected);\r\n }, []);\r\n\r\n useOnMount(React.useCallback((): void => setShow(true), []));\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n ETL\r\n \r\n {title}\r\n \r\n \r\n {/*
\r\n \r\n
*/}\r\n
\r\n

{message}

\r\n {note ?

{note}

: null}\r\n
\r\n
\r\n {reactivate !== 'reactivate' ? (\r\n \r\n \r\n {t('actions.cancel')}\r\n \r\n \r\n {t('actions.continue')}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {t('actions.cancel')}\r\n \r\n \r\n {t('actions.continue')}\r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Modal } from 'react-bootstrap';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { noop, redirectTo } from 'shared/utils';\r\nimport { useOnMount } from 'shared/hooks';\r\nimport { Button } from 'components/Button/Button';\r\nimport { Status } from './Confirmation.helpers';\r\nimport { selectProductCode } from '../../store/product/product.selectors';\r\nimport styles from './Confirmation.module.css';\r\nimport WarningArgyle from '../../assets/images/WarningArgyle.png';\r\n\r\ninterface Props {\r\n title?: string;\r\n message?: string;\r\n variant?: 'primary' | 'danger';\r\n note?: string;\r\n reactivate?: string;\r\n onResolve?: () => void;\r\n onReject?: () => void;\r\n}\r\nexport function ConfirmationCancellation({\r\n variant = 'primary',\r\n onResolve = noop,\r\n onReject = noop\r\n}: Props): JSX.Element {\r\n const [show, setShow] = React.useState(false);\r\n const [status, setStatus] = React.useState(null);\r\n const productCode = useSelector(selectProductCode);\r\n const { t } = useTranslation();\r\n\r\n const callbackMap: Record void> = React.useMemo(\r\n () => ({\r\n [Status.resolved]: onResolve,\r\n [Status.rejected]: onReject\r\n }),\r\n [onResolve, onReject]\r\n );\r\n\r\n const handleOnExited = React.useCallback((): void => {\r\n callbackMap[status]();\r\n }, [status, callbackMap]);\r\n\r\n const handleYes = React.useCallback(() => {\r\n setShow(false);\r\n setStatus(Status.resolved);\r\n // redirectTo(`/admin/onboarding/${productCode}`);\r\n }, []);\r\n\r\n const handleNo = React.useCallback(() => {\r\n setShow(false);\r\n setStatus(Status.rejected);\r\n onReject();\r\n }, [onReject]);\r\n\r\n useOnMount(React.useCallback((): void => setShow(true), []));\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n ETL\r\n \r\n {t('actions.confirmcancel')}\r\n \r\n \r\n {t('actions.canceltext')}\r\n \r\n \r\n \r\n {t('actions.no')}\r\n \r\n \r\n {t('actions.yes')}\r\n \r\n \r\n \r\n );\r\n}\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADgSURBVHgBndJBDoIwEAXQmVLjUlyzwY1Gb+FJxJOJJ/EWGt3ghiu4MODISCBSmSk4SdNSfh6lLYCnbpvowM2XQx8ChEmdpHR5zvejoQ7SpmUMByMeDH1ISbDlPkA4aZjREK4pTjKA4t75WpVxD8BoCNejeM4t2NiddzGjIZ+AfcUg1Rdm1Y3lAJmQgELxgGusyhGgdpnIYIyEs2okZxrjuo5SBNzBH1Wt9ri65Em7GAkrqVhwH6DNJITH7anxBL+AkStpnn+2Z8hvukgv5MP6EBGSMAlRIRfTkEHFGDdf7g2mrIeLz/MCdAAAAABJRU5ErkJggg==\"","import React from 'react';\r\nimport cs from 'classnames';\r\n\r\nimport { validateInputByInteger } from 'shared/utils';\r\nimport styles from './Counter.module.css';\r\n\r\ninterface Props {\r\n name: string;\r\n onChange: (val: number, name: string) => void;\r\n\r\n value?: number;\r\n disabled?: boolean;\r\n disabledInput?: boolean;\r\n minValue?: number;\r\n maxValue?: number;\r\n}\r\n\r\nexport const Counter: React.FC = ({\r\n name,\r\n onChange,\r\n\r\n value = 0,\r\n disabled = false,\r\n disabledInput = true,\r\n minValue = Number.MIN_SAFE_INTEGER,\r\n maxValue = Number.MAX_SAFE_INTEGER\r\n}) => {\r\n // const incrementCb = React.useCallback(() => onChange(value + 1, name), [\r\n // value,\r\n // onChange,\r\n // name\r\n // ]);\r\n // const decrementCb = React.useCallback(() => onChange(value - 1, name), [\r\n // value,\r\n // onChange,\r\n // name\r\n // ]); \r\n const min=1;\r\n const max=999; \r\n const changeInputValueCb = React.useCallback(\r\n (e: React.ChangeEvent) => {\r\n onChange(\r\n Math.max(min, Math.min(max, Number(e.target.value.slice(0,4)))) ,\r\n name\r\n );\r\n },\r\n [onChange, name]\r\n );\r\n return (\r\n
\r\n {/* \r\n -\r\n */}\r\n 999)?styles.customDisabled:value}\r\n onChange={changeInputValueCb}\r\n />\r\n {/* \r\n +\r\n */}\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Modal, ModalProps } from 'react-bootstrap';\r\nimport cs from 'classnames';\r\n\r\nimport { noop } from 'shared/utils';\r\nimport { Button } from 'components/Button/Button';\r\nimport { Icon } from 'components/Icon/Icon';\r\nimport styles from './Dialog.module.css';\r\nimport Cross from '../../assets/images/Cross.png';\r\n\r\ninterface Props extends ModalProps {\r\n title: string;\r\n noCaps?:boolean;\r\n actions?: AP.DialogAction[];\r\n className?: string;\r\n onClose?: () => void;\r\n onClosed?: () => void;\r\n}\r\n\r\nexport function AdminDialog({\r\n title,\r\n children,\r\n show = false,\r\n size,\r\n actions = [],\r\n className,\r\n noCaps = true,\r\n onHide = noop,\r\n onClose = noop,\r\n}: React.PropsWithChildren): JSX.Element {\r\n const footer = React.useMemo(\r\n () =>\r\n actions.length ? (\r\n \r\n {actions.map(\r\n ({\r\n label,\r\n onClick,\r\n variant = 'primary',\r\n disabled = false\r\n }: AP.DialogAction): JSX.Element => (\r\n \r\n {label}\r\n \r\n )\r\n )}\r\n \r\n ) : null,\r\n [actions, className]\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n cross\r\n \r\n \r\n \r\n {children}\r\n {footer}\r\n \r\n );\r\n}\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABKSURBVHgBpZLLCQAgDEMfTtT9l3AEV1HEg2K1BguFQhKafgBySyMOG9xelEC0cW6iI+YBYfeZ8GJ1EbnkxGdIlqShpbXKh5NeowL6lxoNdlZgtwAAAABJRU5ErkJggg==\"","import React from 'react';\r\nimport { Form } from 'react-bootstrap';\r\n\r\nimport { errorException } from 'shared/utils/AppInsights';\r\nimport styles from './Form.module.css';\r\n\r\nexport const useError = (\r\n error: string,\r\n touched: boolean,\r\n validation: (err: string) => string\r\n): JSX.Element => {\r\n if (touched && error) {\r\n\r\n // AppInsights Error Exception\r\n errorException(`${error}. File reference: Form.help.tsx in useError function`);\r\n \r\n return (\r\n \r\n {validation(error)}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n","export const Nothing = (): JSX.Element => null;\r\n","import React from 'react';\r\nimport cs from 'classnames';\r\nimport { IndicatorProps } from 'react-select/src/components/indicators';\r\n\r\nimport { Nothing } from 'components/Nothing/Nothing';\r\nimport { Icon } from 'components/Icon/Icon';\r\nimport styles from './DropdownIndicator.module.css';\r\n\r\nexport function DropdownIndicator({\r\n isFocused,\r\n isMulti\r\n}: IndicatorProps): JSX.Element {\r\n return isMulti ? (\r\n \r\n ) : (\r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { components } from 'react-select';\r\nimport { PlaceholderProps } from 'react-select/src/components/Placeholder';\r\n\r\nimport styles from './Placeholder.module.css';\r\n\r\nexport function Placeholder(\r\n props: PlaceholderProps\r\n): JSX.Element {\r\n return ;\r\n}\r\n","import React from 'react';\r\nimport cs from 'classnames';\r\nimport { components } from 'react-select';\r\nimport { ControlProps } from 'react-select/src/components/Control';\r\n\r\nimport styles from './Control.module.css';\r\n\r\nexport function Control(\r\n props: ControlProps\r\n): JSX.Element {\r\n const { isFocused, isMulti } = props;\r\n\r\n return (\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { components } from 'react-select';\r\nimport { SingleValueProps } from 'react-select/src/components/SingleValue';\r\n\r\nimport styles from './SingleValue.module.css';\r\n\r\nexport function SingleValue(\r\n props: SingleValueProps\r\n): JSX.Element {\r\n return ;\r\n}\r\n","import React from 'react';\r\nimport { components } from 'react-select';\r\nimport { MenuProps } from 'react-select/src/components/Menu';\r\n\r\nimport styles from './Menu.module.css';\r\n\r\nexport function Menu(\r\n props: MenuProps\r\n): JSX.Element {\r\n return ;\r\n}\r\n","import React from 'react';\r\nimport cs from 'classnames';\r\nimport { components } from 'react-select';\r\nimport { OptionProps } from 'react-select/src/components/Option';\r\n\r\nimport { Icon } from 'components/Icon/Icon';\r\nimport styles from './Option.module.css';\r\n\r\nexport function Option(\r\n props: OptionProps\r\n): JSX.Element {\r\n const { isSelected, isFocused, children, isMulti } = props;\r\n\r\n const icon =\r\n isSelected && !isMulti ? (\r\n \r\n ) : null;\r\n\r\n return (\r\n \r\n {children}\r\n {icon}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { MultiValueProps } from 'react-select/src/components/MultiValue';\r\n\r\nimport { Icon } from 'components/Icon/Icon';\r\nimport styles from './MultiValue.module.css';\r\n\r\nexport function MultiValue({\r\n children,\r\n removeProps: { onClick }\r\n}: MultiValueProps): JSX.Element {\r\n return (\r\n
\r\n
{children}
\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Form } from 'react-bootstrap';\r\nimport get from 'lodash/get';\r\n\r\nimport styles from '../Form.module.css';\r\n\r\ntype useOptionCallback = (option: T) => string;\r\nexport interface SelectProps {\r\n name: string;\r\n multiple?: boolean;\r\n placeholder?: string;\r\n span?: number;\r\n label?: string;\r\n optionLabel?: string;\r\n optionValue?: string;\r\n onChange?: (selection: any) => void;\r\n onInputChange?: (q: string) => void;\r\n validationErrMsg?: (err: string) => string;\r\n}\r\n\r\nexport function useOptionProp(label: string): useOptionCallback {\r\n return React.useCallback((option): string => get(option, label), [label]);\r\n}\r\n\r\nexport function useSelectLabel(label: string): JSX.Element {\r\n return React.useMemo(\r\n (): JSX.Element =>\r\n label ? {label} : null,\r\n [label]\r\n );\r\n}\r\n","import React from 'react';\r\nimport { useField } from 'formik';\r\nimport { FormCheckInputProps } from 'react-bootstrap/FormCheckInput';\r\n\r\nimport { Checkbox } from 'components/Checkbox/Checkbox';\r\n\r\ninterface Props extends FormCheckInputProps {\r\n label: string;\r\n name: string;\r\n disabled?: boolean;\r\n}\r\n\r\nconst CheckboxField: React.FC = props => {\r\n const { label, name, disabled = false } = props;\r\n const [field] = useField(name);\r\n const { value, onChange } = field;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default CheckboxField;\r\n","import React, { useMemo } from 'react';\r\nimport kebabCase from 'lodash/kebabCase';\r\nimport { Form, Col } from 'react-bootstrap';\r\nimport { Field, FieldProps } from 'formik';\r\nimport cs from 'classnames';\r\n\r\nimport styles from '../Form.module.css';\r\n\r\ninterface Props {\r\n label: string;\r\n name: string;\r\n t?: any;\r\n elem?: any;\r\n}\r\n\r\nexport function Radio({ label, name, t, elem }: Props): JSX.Element {\r\n const inputLabel = useMemo(() => {\r\n return label ? (\r\n {label}\r\n ) : null;\r\n }, [label]);\r\n const renderInput = React.useCallback(\r\n ({ field: { value, onChange } }: FieldProps): JSX.Element => {\r\n const errorMsg = t('validation.errors.isDeloitteAuditClient');\r\n return (\r\n \r\n
{inputLabel}
\r\n {elem.map((ele: any) => {\r\n return (\r\n \r\n \r\n {t(ele.label)}\r\n \r\n );\r\n })}\r\n {value === '1' && (\r\n
\r\n {errorMsg}\r\n
\r\n )}\r\n
\r\n );\r\n },\r\n [name, inputLabel, label, t, elem]\r\n );\r\n\r\n return {renderInput};\r\n}\r\n\r\nexport default Radio;","import React from 'react';\r\nimport cs from 'classnames';\r\nimport { Form as BsForm, FormProps } from 'react-bootstrap';\r\n\r\nimport Input from './Input/Input';\r\nimport SelectField from './SelectField/SelectField';\r\nimport SelectFieldFilters from './SelectField/SelectFieldFilters';\r\nimport SelectAsyncField from './SelectField/SelectAsyncField';\r\nimport SelectAsyncFieldFilters from './SelectField/SelectAsyncFieldFilters';\r\nimport CheckboxField from './CheckboxField/CheckboxField';\r\nimport Textarea from './Textarea/Textarea';\r\nimport Group from './Group/Group';\r\nimport { Radio } from './Radio/Radio';\r\nimport styles from './Form.module.css';\r\n\r\ninterface Props extends FormProps {\r\n className?: string;\r\n}\r\n\r\nexport function Form({\r\n children,\r\n className,\r\n inline,\r\n validated\r\n}: React.PropsWithChildren): JSX.Element {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nForm.Input = Input;\r\nForm.Select = SelectField;\r\nForm.SelectAsync = SelectAsyncField;\r\nForm.Row = BsForm.Row;\r\nForm.Group = Group;\r\nForm.Checkbox = CheckboxField;\r\nForm.Textarea = Textarea;\r\nForm.Radio = Radio;\r\nForm.SelectFilters = SelectFieldFilters;\r\nForm.SelectAsyncFilters = SelectAsyncFieldFilters;\r\n","import React from 'react';\r\nimport kebabCase from 'lodash/kebabCase';\r\nimport cs from 'classnames';\r\nimport { Form, Col } from 'react-bootstrap';\r\nimport { useField } from 'formik';\r\n\r\nimport { useError } from '../Form.helpers';\r\nimport styles from '../Form.module.css';\r\n\r\ninterface Props {\r\n disabled?: boolean;\r\n type: 'text' | 'email';\r\n name: string;\r\n span?: number;\r\n label?: string;\r\n placeholder?: string;\r\n validationErrMsg?: (err: string) => string;\r\n maxLength?: number;\r\n}\r\n\r\nexport default function Input({\r\n disabled,\r\n type,\r\n label,\r\n name,\r\n placeholder,\r\n span,\r\n validationErrMsg,\r\n maxLength\r\n}: Props): JSX.Element {\r\n const [field, meta] = useField(name);\r\n const { value, onChange, onBlur } = field;\r\n const { error, touched } = meta;\r\n const isInvalid = error && touched;\r\n\r\n return (\r\n \r\n {label && {label}}\r\n \r\n {useError(error, touched, validationErrMsg)}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport kebabCase from 'lodash/kebabCase';\r\nimport cs from 'classnames';\r\nimport ReactSelect from 'react-select';\r\nimport { ValueType } from 'react-select/src/types';\r\nimport { SelectComponents } from 'react-select/src/components';\r\nimport { Form, Col } from 'react-bootstrap';\r\nimport { useField } from 'formik';\r\n\r\nimport { noop } from 'shared/utils';\r\nimport { Nothing } from 'components/Nothing/Nothing';\r\nimport { DropdownIndicator } from './DropdownIndicator/DropdownIndicator';\r\nimport { Placeholder } from './Placeholder/Placeholder';\r\nimport { Control } from './Control/Control';\r\nimport { SingleValue } from './SingleValue/SingleValue';\r\nimport { Menu } from './Menu/Menu';\r\nimport { Option } from './Option/Option';\r\nimport { MultiValue } from './MultiValue/MultiValue';\r\nimport { useOptionProp, useSelectLabel, SelectProps } from './Select.helpers';\r\nimport { useError } from '../Form.helpers';\r\nimport styles from '../Form.module.css';\r\n\r\ninterface Props extends SelectProps {\r\n disabled?: boolean;\r\n options: T[];\r\n}\r\n\r\nexport default function SelectField({\r\n disabled,\r\n name,\r\n span,\r\n label,\r\n options,\r\n onChange = noop,\r\n multiple = false,\r\n placeholder = '',\r\n optionLabel = 'label',\r\n optionValue = 'value',\r\n validationErrMsg = (): string => ''\r\n}: Props): JSX.Element {\r\n const renderSelectLabel = useSelectLabel(label);\r\n const handleGetOptionLabel = useOptionProp(optionLabel);\r\n const handleGetOptionValue = useOptionProp(optionValue);\r\n const [components] = React.useState>>({\r\n DropdownIndicator,\r\n Placeholder,\r\n SingleValue,\r\n MultiValue,\r\n Control,\r\n Option,\r\n Menu,\r\n IndicatorSeparator: Nothing\r\n });\r\n\r\n const [field, meta, form] = useField(name);\r\n const { value } = field;\r\n const { error, touched } = meta;\r\n const { setValue, setTouched } = form;\r\n const isInvalid = error && touched;\r\n\r\n return (\r\n \r\n {renderSelectLabel}\r\n setTouched(touched)}\r\n onChange={(selectedValue: ValueType): void => {\r\n onChange(selectedValue);\r\n setValue(selectedValue);\r\n }}\r\n />\r\n {useError(error, touched, validationErrMsg)}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport kebabCase from 'lodash/kebabCase';\r\nimport cs from 'classnames';\r\nimport AsyncSelect from 'react-select/async';\r\nimport { ValueType } from 'react-select/src/types';\r\nimport { SelectComponents } from 'react-select/src/components';\r\nimport { Form, Col } from 'react-bootstrap';\r\nimport { useField } from 'formik';\r\n\r\nimport { noop } from 'shared/utils';\r\nimport { Nothing } from 'components/Nothing/Nothing';\r\nimport { DropdownIndicator } from './DropdownIndicator/DropdownIndicator';\r\nimport { Placeholder } from './Placeholder/Placeholder';\r\nimport { Control } from './Control/Control';\r\nimport { SingleValue } from './SingleValue/SingleValue';\r\nimport { MultiValue } from './MultiValue/MultiValue';\r\nimport { Menu } from './Menu/Menu';\r\nimport { Option } from './Option/Option';\r\nimport { useOptionProp, useSelectLabel, SelectProps } from './Select.helpers';\r\nimport { useError } from '../Form.helpers';\r\nimport styles from '../Form.module.css';\r\n\r\ninterface Props extends SelectProps {\r\n load: (q: string, cb: (data: T[]) => void) => void;\r\n noOptions?: () => string;\r\n loadMessage?: () => string;\r\n className?: string;\r\n withoutIndicator?: boolean;\r\n}\r\n\r\nexport default function SelectAsyncField({\r\n name,\r\n span,\r\n label,\r\n load,\r\n onChange = noop,\r\n multiple = false,\r\n placeholder = '',\r\n optionLabel = 'label',\r\n optionValue = 'value',\r\n validationErrMsg = (): string => '',\r\n noOptions,\r\n loadMessage,\r\n className,\r\n withoutIndicator\r\n}: Props): JSX.Element {\r\n const renderSelectLabel = useSelectLabel(label);\r\n const handleGetOptionLabel = useOptionProp(optionLabel);\r\n const handleGetOptionValue = useOptionProp(optionValue);\r\n const [components] = React.useState>>({\r\n DropdownIndicator: withoutIndicator ? Nothing : DropdownIndicator,\r\n Placeholder,\r\n SingleValue,\r\n Control,\r\n Option,\r\n Menu,\r\n MultiValue,\r\n IndicatorSeparator: Nothing\r\n });\r\n\r\n const [field, meta, form] = useField(name);\r\n const { value } = field;\r\n const { error, touched } = meta;\r\n const { setValue, setTouched } = form;\r\n const isInvalid = error && touched;\r\n\r\n return (\r\n \r\n {renderSelectLabel}\r\n setTouched(touched)}\r\n onChange={(selectedValue: ValueType): void => {\r\n onChange(selectedValue);\r\n setValue(selectedValue);\r\n }}\r\n />\r\n {useError(error, touched, validationErrMsg)}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { GLOBAL_PRIVACY_STATEMENT } from 'shared/constants/common.consts';\r\nimport { selectProductCode } from 'store/product';\r\nimport styles from './Group.module.css';\r\n\r\ninterface Props {\r\n title: string;\r\n note?: string;\r\n link?: string;\r\n country?: string;\r\n}\r\n\r\nexport default function Group({\r\n title,\r\n note,\r\n children,\r\n link,\r\n country\r\n}: React.PropsWithChildren): JSX.Element {\r\n const Code = useSelector(selectProductCode);\r\n\r\n let privacyLinks;\r\n let privacyHrefCountryCode = '';\r\n const getCountryPrivacyLink = () => {\r\n if(country.toLocaleLowerCase() === \"sgp\" || country.toLocaleLowerCase() === \"mys\"){\r\n privacyLinks = `https://www2.deloitte.com/${country.substring(0, 2)}/en/footerlinks1/privacy.html?icid=bottom_privacy`;\r\n } else if(country.toLocaleLowerCase() === \"gbr\"){ \r\n privacyLinks = `https://www2.deloitte.com/uk/en/legal/privacy.html`;\r\n } else {\r\n privacyLinks = `https://www2.deloitte.com/${country.substring(0, 2)}/en/legal/privacy.html`;\r\n }\r\n return privacyLinks;\r\n };\r\n\r\n if(country){\r\n const globalPrivacyData = GLOBAL_PRIVACY_STATEMENT.find((item) => item.countryCode === country);\r\n const linkByProduct = Code === \"dra\" ? globalPrivacyData?.privacyStatement : getCountryPrivacyLink();\r\n privacyHrefCountryCode = country !== null ? linkByProduct : '';\r\n }\r\n\r\n return (\r\n
\r\n {title && (\r\n
\r\n

{title}

\r\n {link && (\r\n \r\n \r\n {link}\r\n \r\n \r\n )}\r\n {note &&

{note}

}\r\n
\r\n )}\r\n
{children}
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { kebabCase } from 'lodash';\r\nimport cs from 'classnames';\r\nimport { Form, Col } from 'react-bootstrap';\r\nimport { useField } from 'formik';\r\n\r\nimport { useError } from '../Form.helpers';\r\nimport styles from '../Form.module.css';\r\n\r\ninterface Props {\r\n name: string;\r\n span?: number;\r\n label?: string;\r\n placeholder?: string;\r\n rows?: number;\r\n validationErrMsg?: (err: string) => string;\r\n renderFooter?: () => JSX.Element;\r\n maxLength?: number;\r\n}\r\n\r\nexport default function Textarea({\r\n label,\r\n name,\r\n placeholder,\r\n span,\r\n rows = 4,\r\n validationErrMsg = (): string => '',\r\n renderFooter = (): JSX.Element => null,\r\n maxLength\r\n}: Props): JSX.Element {\r\n const [field, meta] = useField(name);\r\n const { value, onChange, onBlur } = field;\r\n const { error, touched } = meta;\r\n const isInvalid = error && touched;\r\n\r\n return (\r\n \r\n {label && {label}}\r\n \r\n {renderFooter()}\r\n {useError(error, touched, validationErrMsg)}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport kebabCase from 'lodash/kebabCase';\r\nimport cs from 'classnames';\r\nimport ReactSelect from 'react-select';\r\nimport { ValueType } from 'react-select/src/types';\r\nimport { SelectComponents } from 'react-select/src/components';\r\nimport { Form, Col, Row } from 'react-bootstrap';\r\nimport { useField } from 'formik';\r\n\r\nimport { noop } from 'shared/utils';\r\nimport { Nothing } from 'components/Nothing/Nothing';\r\nimport { DropdownIndicator } from './DropdownIndicator/DropdownIndicator';\r\nimport { Placeholder } from './Placeholder/Placeholder';\r\nimport { Control } from './Control/Control';\r\nimport { SingleValue } from './SingleValue/SingleValue';\r\nimport { Menu } from './Menu/Menu';\r\nimport { Option } from './Option/Option';\r\nimport { MultiValue } from './MultiValue/MultiValue';\r\nimport { useOptionProp, useSelectLabel, SelectProps } from './Select.helpers';\r\nimport { useError } from '../Form.helpers';\r\nimport styles from '../Form.module.css';\r\n\r\ninterface Props extends SelectProps {\r\n disabled?: boolean;\r\n options: T[];\r\n className?: string;\r\n}\r\n\r\nexport default function SelectFieldFilters({\r\n disabled,\r\n name,\r\n span,\r\n label,\r\n options,\r\n onChange = noop,\r\n multiple = false,\r\n placeholder = '',\r\n optionLabel = 'label',\r\n optionValue = 'value',\r\n validationErrMsg = (): string => '',\r\n className\r\n}: Props): JSX.Element {\r\n const renderSelectLabel = useSelectLabel(label);\r\n const handleGetOptionLabel = useOptionProp(optionLabel);\r\n const handleGetOptionValue = useOptionProp(optionValue);\r\n const [components] = React.useState>>({\r\n DropdownIndicator,\r\n Placeholder,\r\n SingleValue,\r\n MultiValue,\r\n Control,\r\n Option,\r\n Menu,\r\n IndicatorSeparator: Nothing\r\n });\r\n\r\n const [field, meta, form] = useField(name);\r\n const { value } = field;\r\n const { error, touched } = meta;\r\n const { setValue, setTouched } = form;\r\n const isInvalid = error && touched;\r\n\r\n return (\r\n \r\n {renderSelectLabel}\r\n setTouched(touched)}\r\n onChange={(selectedValue: ValueType): void => {\r\n onChange(selectedValue);\r\n setValue(selectedValue);\r\n }}\r\n />\r\n {useError(error, touched, validationErrMsg)}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport kebabCase from 'lodash/kebabCase';\r\nimport cs from 'classnames';\r\nimport AsyncSelect from 'react-select/async';\r\nimport { ValueType } from 'react-select/src/types';\r\nimport { SelectComponents } from 'react-select/src/components';\r\nimport { Form, Col, Row } from 'react-bootstrap';\r\nimport { useField } from 'formik';\r\n\r\nimport { noop } from 'shared/utils';\r\nimport { Nothing } from 'components/Nothing/Nothing';\r\nimport { DropdownIndicator } from './DropdownIndicator/DropdownIndicator';\r\nimport { Placeholder } from './Placeholder/Placeholder';\r\nimport { Control } from './Control/Control';\r\nimport { SingleValue } from './SingleValue/SingleValue';\r\nimport { MultiValue } from './MultiValue/MultiValue';\r\nimport { Menu } from './Menu/Menu';\r\nimport { Option } from './Option/Option';\r\nimport { useOptionProp, useSelectLabel, SelectProps } from './Select.helpers';\r\nimport { useError } from '../Form.helpers';\r\nimport styles from '../Form.module.css';\r\n\r\ninterface Props extends SelectProps {\r\n load: (q: string, cb: (data: T[]) => void) => void;\r\n noOptions?: () => string;\r\n loadMessage?: () => string;\r\n className?: string;\r\n withoutIndicator?: boolean;\r\n}\r\n\r\nexport default function SelectAsyncFieldFilters({\r\n name,\r\n span,\r\n label,\r\n load,\r\n onChange = noop,\r\n multiple = false,\r\n placeholder = '',\r\n optionLabel = 'label',\r\n optionValue = 'value',\r\n validationErrMsg = (): string => '',\r\n noOptions,\r\n loadMessage,\r\n className,\r\n withoutIndicator\r\n}: Props): JSX.Element {\r\n const renderSelectLabel = useSelectLabel(label);\r\n const handleGetOptionLabel = useOptionProp(optionLabel);\r\n const handleGetOptionValue = useOptionProp(optionValue);\r\n const [components] = React.useState>>({\r\n DropdownIndicator: withoutIndicator ? Nothing : DropdownIndicator,\r\n Placeholder,\r\n SingleValue,\r\n Control,\r\n Option,\r\n Menu,\r\n MultiValue,\r\n IndicatorSeparator: Nothing\r\n });\r\n\r\n const [field, meta, form] = useField(name);\r\n const { value } = field;\r\n const { error, touched } = meta;\r\n const { setValue, setTouched } = form;\r\n const isInvalid = error && touched;\r\n\r\n return (\r\n \r\n {renderSelectLabel}\r\n setTouched(touched)}\r\n onChange={(selectedValue: ValueType): void => {\r\n onChange(selectedValue);\r\n setValue(selectedValue);\r\n }}\r\n />\r\n {useError(error, touched, validationErrMsg)}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { Form } from 'react-bootstrap';\r\n\r\nimport { noop } from 'shared/utils';\r\nimport styles from './Radio.module.css';\r\n\r\ninterface Props {\r\n name: string;\r\n label: string;\r\n id: string;\r\n\r\n checked?: boolean;\r\n disabled?: boolean;\r\n onChange?: (event: React.ChangeEvent) => void;\r\n}\r\n\r\nexport const Radio: React.FC = ({\r\n name,\r\n label,\r\n checked = false,\r\n id,\r\n disabled = false,\r\n onChange = noop\r\n}) => (\r\n \r\n \r\n \r\n {label}\r\n \r\n \r\n);\r\n","import React from 'react';\r\nimport {\r\n ButtonToolbar,\r\n ToggleButtonGroup,\r\n ToggleButton\r\n} from 'react-bootstrap';\r\nimport isEqual from 'lodash/isEqual';\r\nimport cs from 'classnames';\r\n\r\nimport { generateUniqueKey } from './RadioButtons.helpers';\r\nimport styles from './RadioButtons.module.css';\r\n\r\ninterface Props {\r\n options: T[];\r\n value: T;\r\n renderOption: (option: T) => JSX.Element;\r\n onChange: (item: T) => void;\r\n}\r\n\r\nexport function RadioButtons({\r\n options,\r\n value,\r\n renderOption,\r\n onChange\r\n}: Props): JSX.Element {\r\n const onChangeCb = React.useCallback(\r\n (item: T) => (): void => onChange(item),\r\n [onChange]\r\n );\r\n\r\n const generateKeyCb = React.useCallback(\r\n (item: T): string => generateUniqueKey(item),\r\n []\r\n );\r\n\r\n return (\r\n \r\n \r\n {options.map(\r\n (item: T): JSX.Element => (\r\n \r\n {renderOption(item)}\r\n \r\n )\r\n )}\r\n \r\n \r\n );\r\n}\r\n","import get from 'lodash/get';\r\n\r\nexport function generateUniqueKey(item: T): string {\r\n return (\r\n Object.keys(item)\r\n .map((key: string): string => get(item, key, 'unknown'))\r\n .join('_') || item.toString()\r\n );\r\n}\r\n","import React from 'react';\r\nimport { components } from 'react-select';\r\nimport { InputProps } from 'react-select/src/components/Input';\r\n\r\nimport style from '../Select.module.css';\r\n\r\nexport const Input = (\r\n placeholderPrefix?: JSX.Element\r\n): ((props: InputProps) => JSX.Element) => {\r\n const input = (props: InputProps): JSX.Element => (\r\n
\r\n {placeholderPrefix}\r\n \r\n \r\n \r\n
\r\n );\r\n return input;\r\n};\r\n","import React from 'react';\r\nimport { components } from 'react-select';\r\nimport { PlaceholderProps } from 'react-select/src/components/Placeholder';\r\n\r\nimport style from '../Select.module.css';\r\n\r\nexport function Placeholder(\r\n placeholder?: string,\r\n placeholderPrefix?: JSX.Element\r\n): (props: any) => JSX.Element {\r\n const placeholderComponent = (\r\n props: PlaceholderProps\r\n ): JSX.Element => (\r\n \r\n
\r\n {placeholderPrefix}\r\n {placeholder}\r\n
\r\n
\r\n );\r\n return placeholderComponent;\r\n}\r\n","import React from 'react';\r\nimport { IndicatorProps } from 'react-select/src/components/indicators';\r\nimport cs from 'classnames';\r\n\r\nimport { Icon } from 'components/Icon/Icon';\r\nimport styles from './DropdownIndicator.module.css';\r\n\r\nexport function DropdownIndicator({\r\n isFocused\r\n}: IndicatorProps): JSX.Element {\r\n return (\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { components } from 'react-select';\r\nimport { OptionProps } from 'react-select/src/components/Option';\r\nimport cs from 'classnames';\r\n\r\nimport styles from './Option.module.css';\r\n\r\nexport function Option(props: OptionProps): JSX.Element {\r\n const { isSelected, isFocused, isDisabled } = props;\r\n const [isFirstInit, setIsFirstInit] = useState(true);\r\n const [hasFocus, setHasFocus] = useState(false);\r\n\r\n // To disable autofocus on the first option, which is set by library by default\r\n useEffect(() => {\r\n if (isFirstInit) {\r\n setIsFirstInit(false);\r\n } else {\r\n setHasFocus(isFocused);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [isSelected, isFocused]);\r\n\r\n return (\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport ReactSelect from 'react-select';\r\nimport { ValueType, Theme } from 'react-select/src/types';\r\nimport get from 'lodash/get';\r\nimport cs from 'classnames';\r\nimport { SelectComponents } from 'react-select/src/components';\r\n\r\nimport { noop } from 'shared/utils';\r\nimport { Input } from './Input/Input';\r\nimport { ClearIndicator } from './ClearIndicator/ClearIndicator';\r\nimport { Placeholder } from './Placeholder/Placeholder';\r\nimport { ControlComponent } from './Control/Control';\r\nimport { DropdownIndicator } from './DropdownIndicator/DropdownIndicator';\r\nimport { Option } from './Option/Option';\r\nimport { DefaultSelectOption } from './Select.helpers';\r\nimport styles from './Select.module.css';\r\n\r\ninterface Props {\r\n value?: T;\r\n options: T[];\r\n placeholder?: string;\r\n placeholderPrefix?: JSX.Element;\r\n renderOption: (item: T) => JSX.Element;\r\n onChange?: (value: T) => void;\r\n getOptionValue?: (option: T) => string;\r\n getOptionLabel?: (option: T) => string;\r\n isClearable?: boolean;\r\n isSearchable?: boolean;\r\n isDisabled?: boolean;\r\n isOptionDisabled?: (option: T) => boolean;\r\n withDropdownIndicator?: boolean;\r\n className?: string;\r\n additionalThemeProps?: Theme;\r\n OptionComponent?: typeof Option;\r\n isMulti?: any;\r\n onMenuClose?: () => void;\r\n}\r\n\r\nexport function Select({\r\n value,\r\n onChange = noop,\r\n options,\r\n renderOption,\r\n placeholder,\r\n placeholderPrefix,\r\n getOptionValue = (option: T): string => get(option, 'value'),\r\n getOptionLabel = (option: T): string => get(option, 'label'),\r\n isClearable = true,\r\n isSearchable = true,\r\n isDisabled = false,\r\n isOptionDisabled = () => false,\r\n withDropdownIndicator = false,\r\n className,\r\n additionalThemeProps = {} as Theme,\r\n OptionComponent = Option,\r\n isMulti,\r\n onMenuClose = noop\r\n}: Props): JSX.Element {\r\n const handleOnChange = React.useCallback(\r\n (item: ValueType) => onChange(item as T),\r\n [onChange]\r\n );\r\n\r\n const [components, setComponents] = React.useState>>({\r\n Placeholder: Placeholder(placeholder, placeholderPrefix),\r\n ClearIndicator: ClearIndicator(),\r\n DropdownIndicator: withDropdownIndicator ? DropdownIndicator : null,\r\n IndicatorSeparator: null,\r\n Input: Input(placeholderPrefix),\r\n Control: ControlComponent(),\r\n Option: OptionComponent\r\n });\r\n\r\n React.useEffect(() => {\r\n setComponents(state => {\r\n return {\r\n ...state,\r\n Placeholder: Placeholder(placeholder, placeholderPrefix),\r\n Input: Input(placeholderPrefix)\r\n };\r\n });\r\n }, [placeholder, placeholderPrefix]);\r\n \r\n return (\r\n \r\n className={cs(styles.customSelect, className)}\r\n components={components}\r\n formatOptionLabel={renderOption}\r\n getOptionLabel={getOptionLabel}\r\n getOptionValue={getOptionValue}\r\n isClearable={isClearable}\r\n isDisabled={isDisabled}\r\n isMulti={isMulti}\r\n isOptionDisabled={isOptionDisabled}\r\n isSearchable={isSearchable}\r\n menuPlacement='auto'\r\n options={options}\r\n theme={React.useCallback(\r\n (theme: Theme) => ({\r\n ...theme,\r\n borderRadius: 0,\r\n colors: {\r\n ...get(theme, 'colors'),\r\n primary25: '#EBF8FD',\r\n primary: '#007CB0'\r\n },\r\n ...additionalThemeProps\r\n }),\r\n [additionalThemeProps]\r\n )}\r\n value={value}\r\n onChange={handleOnChange}\r\n onMenuClose={onMenuClose}\r\n />\r\n );\r\n}\r\n","import React from 'react';\r\nimport { IndicatorProps } from 'react-select/src/components/indicators';\r\nimport cs from 'classnames';\r\n\r\nimport style from '../Select.module.css';\r\n\r\nexport function ClearIndicator(): (props: any) => JSX.Element {\r\n const clear = (props: IndicatorProps): JSX.Element => {\r\n const {\r\n innerProps: { ref, ...restInnerProps }\r\n } = props;\r\n return (\r\n
\r\n
\r\n
\r\n );\r\n };\r\n return clear;\r\n}\r\n","import React from 'react';\r\nimport { components } from 'react-select';\r\nimport { ControlProps } from 'react-select/src/components/Control';\r\n\r\nimport style from '../Select.module.css';\r\n\r\nexport function ControlComponent(): (props: any) => JSX.Element {\r\n const clear = (props: ControlProps): JSX.Element => {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n };\r\n return clear;\r\n}\r\n","import React from 'react';\r\nimport get from 'lodash/get';\r\nimport cs from 'classnames';\r\n\r\nimport { Step } from './Step/Step';\r\nimport styles from './Stepper.module.css';\r\n\r\ninterface Props {\r\n current: string;\r\n children: React.ReactChild | React.ReactChild[];\r\n isUpdateSubscriptionPage?: boolean;\r\n}\r\n\r\nexport function Stepper({ current, children, isUpdateSubscriptionPage = false }: Props): JSX.Element {\r\n const { points, content } = React.useMemo(() => {\r\n const childrenArray = React.Children.toArray(children);\r\n const active = childrenArray.findIndex(\r\n (el: any) => el.props.name === current\r\n );\r\n\r\n const pointsToShow = childrenArray.map((item: any, i) =>\r\n React.cloneElement(item, {\r\n passed: i < active,\r\n active: i === active,\r\n index: i\r\n })\r\n );\r\n const contentToShow = get(childrenArray[active], 'props.children');\r\n\r\n return { points: pointsToShow, content: contentToShow };\r\n }, [current, children]);\r\n\r\n return (\r\n \r\n
\r\n
    {points}
\r\n {!isUpdateSubscriptionPage && (
)}\r\n\r\n {content}\r\n
\r\n
\r\n );\r\n}\r\n\r\nStepper.Step = Step;\r\n","import React from 'react';\r\nimport cs from 'classnames';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport styles from './Step.module.css';\r\n\r\ninterface Props {\r\n isUpdateSubscriptionPage?: boolean;\r\n name: string;\r\n label: string;\r\n children?: JSX.Element | JSX.Element[];\r\n passed?: boolean;\r\n active?: boolean;\r\n index?: number;\r\n}\r\n\r\nexport function Step({ label, passed, active, index = 0, isUpdateSubscriptionPage = false }: Props): JSX.Element {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n {isUpdateSubscriptionPage ? '' : `${t('common.step', { step: index + 1 })}:${' '}`}\r\n \r\n {t(label)}\r\n \r\n \r\n \r\n );\r\n}\r\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgUsers(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.3956 11.9985L17.5 12C19.3686 12 20.8951 13.4643 20.9948 15.308L21 15.5V17.5C21 17.7761 20.7761 18 20.5 18C20.2545 18 20.0504 17.8231 20.0081 17.5899L20 17.5V15.5C20 14.1745 18.9685 13.09 17.6644 13.0053L17.5 13L16.7895 13C16.6902 12.6504 16.5577 12.3154 16.3956 11.9985ZM11.5 11C13.3686 11 14.8951 12.4643 14.9948 14.308L15 14.5V17.5C15 17.7761 14.7761 18 14.5 18C14.2545 18 14.0504 17.8231 14.0081 17.5899L14 17.5V14.5C14 13.1745 12.9685 12.09 11.6644 12.0053L11.5 12H6.5C5.17452 12 4.08996 13.0315 4.00532 14.3356L4 14.5V17.5C4 17.7761 3.77614 18 3.5 18C3.25454 18 3.05039 17.8231 3.00806 17.5899L3 17.5V14.5C3 12.6314 4.46428 11.1049 6.30796 11.0052L6.5 11H11.5ZM16.5 6C17.8807 6 19 7.11929 19 8.5C19 9.88071 17.8807 11 16.5 11C15.1193 11 14 9.88071 14 8.5C14 7.11929 15.1193 6 16.5 6ZM9 4C10.6569 4 12 5.34315 12 7C12 8.65685 10.6569 10 9 10C7.34315 10 6 8.65685 6 7C6 5.34315 7.34315 4 9 4ZM16.5 7C15.6716 7 15 7.67157 15 8.5C15 9.32843 15.6716 10 16.5 10C17.3284 10 18 9.32843 18 8.5C18 7.67157 17.3284 7 16.5 7ZM9 5C7.89543 5 7 5.89543 7 7C7 8.10457 7.89543 9 9 9C10.1046 9 11 8.10457 11 7C11 5.89543 10.1046 5 9 5Z\",\n fill: \"black\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUsers);\nexport default __webpack_public_path__ + \"static/media/Users.4cc04f8e.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\nimport { Table as BSTable } from 'react-bootstrap';\r\n\r\ninterface Props {\r\n className: string;\r\n isBorderless: boolean;\r\n}\r\n\r\nexport const Table: React.FC> = ({\r\n className = '',\r\n children,\r\n isBorderless\r\n}): JSX.Element => (\r\n \r\n {children}\r\n \r\n);\r\n","import React from 'react';\r\n\r\nimport styles from './Sidebar.module.css';\r\nimport { Header } from './Header';\r\nimport { Footer } from './Footer';\r\n\r\ntype Props = { children: JSX.Element[] };\r\n\r\nexport function Sidebar({ children }: Props): JSX.Element {\r\n return (\r\n \r\n
\r\n
{children}
\r\n \r\n );\r\n}\r\n\r\nSidebar.Header = Header;\r\nSidebar.Footer = Footer;\r\n","import React from 'react';\r\n\r\nimport styles from './Sidebar.module.css';\r\n\r\ntype Props = {\r\n children: JSX.Element;\r\n};\r\n\r\nexport function Header({ children }: Props): JSX.Element {\r\n return
{children}
;\r\n}\r\n","import React from 'react';\r\n\r\nimport styles from './Sidebar.module.css';\r\n\r\ntype Props = {\r\n children: JSX.Element;\r\n};\r\n\r\nexport function Footer({ children }: Props): JSX.Element {\r\n return
{children}
;\r\n}\r\n","import { errorException } from 'shared/utils/AppInsights';\r\n\r\nexport const asyncActionPending = (actionName: string): string =>\r\n `${actionName}_PENDING`;\r\n\r\nexport const asyncActionRejected = (actionName: string): string =>\r\n `${actionName}_REJECTED`;\r\n\r\nexport const asyncActionFulfilled = (actionName: string): string =>\r\n `${actionName}_FULFILLED`;\r\n\r\nexport const smartFetch = async (\r\n url: string,\r\n options: RequestInit = {}\r\n): Promise => {\r\n const response = await fetch(url, options);\r\n\r\n if (response.status >= 400) {\r\n throw response;\r\n }\r\n\r\n if (response.status === 204) {\r\n return undefined;\r\n }\r\n\r\n return response.json();\r\n};\r\n\r\n\r\nexport const fetchData = async (path: string, headers: any): Promise => {\r\n try{\r\n const resp = await fetch(path, { headers });\r\n const data = await resp.json();\r\n return data;\r\n } catch(error){\r\n return errorException(`${error}`);\r\n }\r\n};\r\n","import querystring from 'querystring';\r\n\r\nconst parseQueryString = (queryString: string): string =>\r\n queryString.includes('&&')\r\n ? parseQueryString(queryString.replace('&&', '&'))\r\n : queryString;\r\n\r\nexport const makeQueryString = (input: string | any): string =>\r\n parseQueryString(\r\n querystring.stringify(input as querystring.ParsedUrlQueryInput)\r\n );\r\n\r\nexport const getProductCodeFromPath = (pathname: string): string => {\r\n const lastSlashIndex = pathname.lastIndexOf('/');\r\n return pathname.slice(lastSlashIndex + 1);\r\n};\r\n\r\nexport const getProductCodeFromExternalPath = (pathname: string): string => {\r\n return pathname.split('/').reverse()[1];\r\n};\r\n\r\nexport const getCountryCodeFromPath = (pathname: string): string => {\r\n const lastSlashIndex = pathname.lastIndexOf('/');\r\n return pathname.slice(lastSlashIndex + 1);\r\n};\r\n","export function exportCSVFile(byteCharacters: string, fileTitle: string): void {\r\n const exportedFilename: string = `${fileTitle}.csv` || 'export.csv';\r\n const blob = new Blob([byteCharacters], {\r\n type: 'text/csv;'\r\n });\r\n\r\n if (navigator.msSaveBlob) {\r\n // IE 10+\r\n navigator.msSaveBlob(blob, exportedFilename);\r\n } else {\r\n const link: any = document.createElement('a');\r\n if (link.download !== undefined) {\r\n // feature detection\r\n //const url: any = URL.createObjectURL(blob);\r\n // link.setAttribute('href', url);\r\n \r\n // setting sencoding for CSV\r\n link.setAttribute('href', `data:text/csv; charset=utf-8,%EF%BB%BF${encodeURIComponent(byteCharacters)}`);\r\n link.setAttribute('download', exportedFilename);\r\n link.style.visibility = 'hidden';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n }\r\n}\r\n","import { ThunkDispatch } from 'redux-thunk';\r\nimport { User } from 'oidc-client';\r\n\r\nimport { apiService, oidcService } from 'shared/services';\r\nimport { LOCAL_STORAGE_TOKEN_KEY } from 'shared/constants/common.consts';\r\nimport { CONFIG } from 'shared/constants/config.consts';\r\nimport { APP_PATH } from 'features/Routes/Routes.helpers';\r\nimport {\r\n GET_CURRENT_USER,\r\n GetCurrentUserAction$,\r\n SET_ACCESS_TOKEN,\r\n SetAccessTokenAction,\r\n SET_CURRENT_USER_ADMIN_FILTERS,\r\n SET_CURRENT_USER_FILTERS,\r\n ProceedWithoutUserAction,\r\n PROCEED_WITHOUT_USER,\r\n LoadUserAction,\r\n SET_SOURCE_SUBJECT_ID\r\n} from './auth.types';\r\nimport { RootState } from '../root.reducer';\r\nimport { getCookie, clearCookie } from '../../shared/utils';\r\nimport { MSAL_TOKEN_KEY } from '../../shared/constants/common.consts';\r\n\r\nexport const getCurrentUser = (): GetCurrentUserAction$ => ({\r\n type: GET_CURRENT_USER,\r\n payload: apiService.getCurrentUser()\r\n});\r\n\r\nexport const setAccessToken = (token: string) => (\r\n dispatch: ThunkDispatch<\r\n RootState,\r\n null,\r\n SetAccessTokenAction | GetCurrentUserAction$\r\n >\r\n): void => {\r\n apiService.setToken(token);\r\n\r\n dispatch({\r\n type: SET_ACCESS_TOKEN,\r\n payload: token\r\n });\r\n};\r\n\r\nconst proceedWithoutUser = (): ProceedWithoutUserAction => ({\r\n type: PROCEED_WITHOUT_USER\r\n});\r\n\r\nexport const signOut = (): void => {\r\n localStorage.clear();\r\n oidcService.signOut();\r\n};\r\n\r\n\r\nexport const retrieveAccessToken = () => async (\r\n dispatch: ThunkDispatch<\r\n RootState,\r\n null,\r\n ProceedWithoutUserAction | SetAccessTokenAction\r\n >\r\n) => {\r\n const token = getCookie(LOCAL_STORAGE_TOKEN_KEY);\r\n\r\n if (token === '') {\r\n dispatch(proceedWithoutUser());\r\n } else {\r\n // if token is expired, redirect to login. Otherwise proceed with the currentUser.\r\n const base64Url = token.split('.')[1];\r\n const base64 = base64Url.replace('-', '+').replace('_', '/');\r\n\r\n const tokenData = JSON.parse(window.atob(base64));\r\n\r\n if (+tokenData.exp >= Date.now()) {\r\n signOut();\r\n } else {\r\n setAccessToken(token);\r\n dispatch(getCurrentUser());\r\n }\r\n }\r\n};\r\n\r\nexport const signInUser = () => (\r\n dispatch: ThunkDispatch<\r\n RootState,\r\n null,\r\n SetAccessTokenAction | GetCurrentUserAction$\r\n >\r\n): void => {\r\n oidcService.signInRedirectCallback();\r\n\r\n oidcService.events.addUserLoaded((user: User): void => {\r\n if (CONFIG.ENABLE_AUTO_LOGOUT) {\r\n apiService.getAuthToken(user.access_token).then(res => {\r\n setAccessToken(res.accessToken);\r\n dispatch(getCurrentUser());\r\n oidcService.getOidcUser(user);\r\n return res;\r\n });\r\n } else {\r\n setAccessToken(user.access_token);\r\n dispatch(getCurrentUser());\r\n oidcService.getOidcUser(user);\r\n }\r\n });\r\n};\r\n\r\nexport const signInRedirect = (): void => {\r\n oidcService.signInRedirect();\r\n};\r\nexport const signInRedirectTermsofUse = (pathname: any): void => {\r\n oidcService.signInRedirectTermsofUse(pathname);\r\n};\r\n\r\nexport const signOutRedirect = (): void => {\r\n oidcService.signOutRedirectCallback();\r\n};\r\n\r\nexport const processUserToken = (pathname: string) => (\r\n dispatch: ThunkDispatch\r\n): void => {\r\n // returns mock user when \"JwtBearerAuth.MockUser\": false\r\n if (CONFIG.MOCK_USER) {\r\n dispatch(getCurrentUser());\r\n return;\r\n }\r\n\r\n const oidcCallbacks: Record = {\r\n [APP_PATH.AUTH_CALLBACK]: () => dispatch(signInUser()),\r\n [APP_PATH.LOGOUT_CALLBACK]: () => signOutRedirect(),\r\n default: () => dispatch(retrieveAccessToken())\r\n };\r\n\r\n const action = oidcCallbacks[pathname] || oidcCallbacks.default;\r\n action();\r\n};\r\n\r\nexport const setCurrentUserAdminFilters = (payload: DTO.UserFilters) => ({\r\n type: SET_CURRENT_USER_ADMIN_FILTERS,\r\n payload\r\n});\r\n\r\nexport const setCurrentUserFilters = (payload: DTO.SubmissionFilters) => ({\r\n type: SET_CURRENT_USER_FILTERS,\r\n payload\r\n});\r\n\r\nexport const setSourceSubjectId = (payload: string) => ({\r\n type: SET_SOURCE_SUBJECT_ID,\r\n payload\r\n});\r\n\r\n","// export const DATE_FORMAT = 'd MMM yyyy';\r\n// export const FULL_DATE_FORMAT = 'dd MMMM yyyy';\r\n\r\nimport { getWindow } from '../utils';\r\n\r\nexport const defaultDateFormat = 'MM/dd/yyyy';\r\nexport const defaultNumberFormat = '#,###,###.##';\r\n\r\nexport enum SORT_DIRECTION {\r\n ASC = 'asc',\r\n DESC = 'desc'\r\n}\r\n\r\nexport const LOCAL_STORAGE_TOKEN_KEY = 'oidc.token';\r\n\r\nexport const AppLocales = {\r\n enUS: 'en-US'\r\n};\r\n\r\nexport const defaultLocale = {\r\n localeCode: 'en-US',\r\n language: 'English (United States)',\r\n nativeName: 'English (United States)',\r\n englishName: 'English (United States)'\r\n};\r\nexport const LOCAL_STORAGE_EXTERNAL_USER_PRODUCT_KEY = 'external_product';\r\n\r\nexport const MSAL_TOKEN_KEY = `msal.${\r\n getWindow().APP_CONFIG.AAD_CLIENT_ID\r\n}.idtoken`;\r\n\r\nexport const GLOBAL_PRIVACY_STATEMENT = [\r\n {\r\n countryCode: \"bra\",\r\n name: \"Brazil\",\r\n privacyStatement: \"https://www2.deloitte.com/br/pt/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"can\",\r\n name: \"Canada\",\r\n privacyStatement: \"https://www2.deloitte.com/ca/en/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"chl\",\r\n name: \"Chile\",\r\n privacyStatement: \"https://www2.deloitte.com/cl/es/footerlinks1/privacidad.html?icid=bottom_privacidad\"\r\n },\r\n {\r\n countryCode: \"cyp\",\r\n name: \"Cyprus\",\r\n privacyStatement: \"https://www2.deloitte.com/cy/en/footerlinks1/deloitte-legal-privacy.html?icid=bottom_deloitte-legal-privacy\"\r\n },\r\n {\r\n countryCode: \"mex\",\r\n name: \"Mexico\",\r\n privacyStatement: \"https://www2.deloitte.com/mx/es/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"abw\",\r\n name: \"Aruba\",\r\n privacyStatement: \"https://www.deloitte.com/an/en/legal/privacy.html?icid=bn_privacy\"\r\n },\r\n {\r\n countryCode: \"cuw\",\r\n name: \"Curacao\",\r\n privacyStatement: \"https://www.deloitte.com/an/en/legal/privacy.html?icid=bn_privacy\"\r\n },\r\n {\r\n countryCode: \"nld\",\r\n name: \"Netherlands\",\r\n privacyStatement: \"https://www2.deloitte.com/nl/nl/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"arg\",\r\n name: \"Argentina\",\r\n privacyStatement: \"https://www2.deloitte.com/ar/es/legal/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"dom\",\r\n name: \"Dominican Republic\",\r\n privacyStatement: \"https://www2.deloitte.com/do/es/footerlinks1/aviso-privacidad.html?icid=bottom_aviso-privacidad\"\r\n },\r\n {\r\n countryCode: \"hnd\",\r\n name: \"Honduras\",\r\n privacyStatement: \"https://www2.deloitte.com/hn/es/footerlinks1/aviso-privacidad.html?icid=bottom_aviso-privacidad\"\r\n },\r\n {\r\n countryCode: \"nic\",\r\n name: \"Nicaragua\",\r\n privacyStatement: \"https://www2.deloitte.com/ni/es/footerlinks1/aviso-privacidad.html?icid=bottom_aviso-privacidad\"\r\n },\r\n {\r\n countryCode: \"slv\",\r\n name: \"El Salvador\",\r\n privacyStatement: \"https://www2.deloitte.com/sv/es/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"col\",\r\n name: \"Colombia\",\r\n privacyStatement: \"https://www2.deloitte.com/co/es/footerlinks1/Politica-de-Privacidad1.html?icid=bottom_\"\r\n },\r\n {\r\n countryCode: \"cri\",\r\n name: \"Costa Rica\",\r\n privacyStatement: \"https://www2.deloitte.com/cr/es/footerlinks1/aviso-privacidad.html?icid=bottom_aviso-privacidad\"\r\n },\r\n {\r\n countryCode: \"ecu\",\r\n name: \"Ecuador\",\r\n privacyStatement: \"https://www2.deloitte.com/ec/es/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"gtm\",\r\n name: \"Guatemala\",\r\n privacyStatement: \"https://www2.deloitte.com/gt/es/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"pan\",\r\n name: \"Panama\",\r\n privacyStatement: \"https://www2.deloitte.com/pa/es/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"per\",\r\n name: \"Peru\",\r\n privacyStatement: \"https://www2.deloitte.com/pe/es/footerlinks1/Politica-de-privacidad.html?icid=bottom_Politica-de-privacidad\"\r\n },\r\n {\r\n countryCode: \"pry\",\r\n name: \"Paraguay\",\r\n privacyStatement: \"https://www2.deloitte.com/py/es/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"ury\",\r\n name: \"Uruguay\",\r\n privacyStatement: \"https://www2.deloitte.com/uy/es/pages/about-deloitte/articles/avisos-de-privacidad.html?icid=bottom_avisos-de-privacidad\"\r\n },\r\n {\r\n countryCode: \"ven\",\r\n name: \"Venezuela\",\r\n privacyStatement: \"https://www2.deloitte.com/ve/es/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"bol\",\r\n name: \"Bolivia\",\r\n privacyStatement: \"https://www2.deloitte.com/bo/es/legal/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"are\",\r\n name: \"United Arab Emirates\",\r\n privacyStatement: \"https://www2.deloitte.com/xe/en/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"bhr\",\r\n name: \"Bahrain\",\r\n privacyStatement: \"https://www2.deloitte.com/bh/en/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"egy\",\r\n name: \"Egypt\",\r\n privacyStatement: \"https://www2.deloitte.com/eg/en/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"irq\",\r\n name: \"Iraq\",\r\n privacyStatement: \"https://www2.deloitte.com/iq/en/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"jor\",\r\n name: \"Jordan\",\r\n privacyStatement: \"https://www2.deloitte.com/jo/en/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"kwt\",\r\n name: \"Kuwait\",\r\n privacyStatement: \"https://www2.deloitte.com/kw/en/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"lbn\",\r\n name: \"Lebanon\",\r\n privacyStatement: \"https://www2.deloitte.com/lb/en/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"lby\",\r\n name: \"Libya\",\r\n privacyStatement: \"https://www2.deloitte.com/ly/en/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"pmn\",\r\n name: \"Oman\",\r\n privacyStatement: \"https://www2.deloitte.com/om/en/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"pse\",\r\n name: \"Palestinian Territory\",\r\n privacyStatement: \"https://www2.deloitte.com/xe/en/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"qat\",\r\n name: \"QATAR\",\r\n privacyStatement: \"https://www2.deloitte.com/qa/en/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"yem\",\r\n name: \"Yemen\",\r\n privacyStatement: \"https://www2.deloitte.com/ye/en/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"ita\",\r\n name: \"Italy\",\r\n privacyStatement: \"https://www2.deloitte.com/it/it/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"mlt\",\r\n name: \"Malta\",\r\n privacyStatement: \"https://www2.deloitte.com/mt/en/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"sau\",\r\n name: \"Saudi Arabia\",\r\n privacyStatement: \"https://www2.deloitte.com/sa/en/footerlinks1/privacy.html?icid=bottom_privacy\"\r\n },\r\n {\r\n countryCode: \"esp\",\r\n name: \"Spain\",\r\n privacyStatement: \"https://www2.deloitte.com/es/es/footerlinks1/politica-privacidad.html?icid=bottom_politica-privacidad\"\r\n },\r\n\r\n];\r\n","export enum SUBMISSION_TYPE {\r\n PENDING = 'pending',\r\n PROCESSED = 'processed'\r\n}\r\n\r\nexport enum SUBMISSION_PLAN_STATUS {\r\n APPROVED = 'approved',\r\n REJECTED = 'rejected',\r\n PENDING = 'pending',\r\n PENDING_REACTIVATION = 'pendingReActivation',\r\n PENDING_RENEWAL = 'pendingRenewal',\r\n EXPIRED = 'expired',\r\n ACTIVE = 'active',\r\n CANCELLED = 'cancelled',\r\n UNSUBSCRIBED = 'unsubscribed',\r\n PENDING_ACTIVATION = 'pendingActivation',\r\n INACTIVE = 'inActive'\r\n}\r\n\r\nexport enum PLAN_TYPE {\r\n LICENSE = 'license',\r\n SUBSCRIPTION = 'subscription'\r\n}\r\n\r\nexport enum COUNTRY_CHECK {\r\n USA = 'usa',\r\n GBR = 'gbr'\r\n}","import React, { Dispatch, FC } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { FieldSorting } from 'components/FieldSorting/FieldSorting';\r\nimport { SubmissionsFilters } from 'features/AdminPage/SubmissionsFilters/SubmissionsFilters';\r\nimport styles from './OnboardingFilters.module.css';\r\nimport { Tag } from '../../../../components/Tag/Tag';\r\nimport { noop } from '../../../../shared/utils/common.utils';\r\nimport { reselectUser } from '../../../../store/auth/auth.selectors';\r\n\r\ninterface Props {\r\n usersCount: DTO.AdminUserCount;\r\n setUserFilters: Dispatch;\r\n userFilters: DTO.UserFilters;\r\n sorter: DTO.Sorter;\r\n filtersRef: React.MutableRefObject;\r\n showFilters: DTO.FilterFields[];\r\n}\r\n\r\n// for the backend\r\nexport enum UserRoles {\r\n superAdmin = 1,\r\n productGroupAdmin = 2,\r\n productAdmin = 3,\r\n memberFirmAdmin = 4,\r\n countryAdmin = 5,\r\n user = 6,\r\n whitelistedInternalUser = 7\r\n}\r\n\r\n//for internal use\r\nexport enum USER_ROLES {\r\n SUPER_ADMIN = 'superAdmin',\r\n PRODUCT_GROUP_ADMIN = 'productGroupAdmin',\r\n PRODUCT_ADMIN = 'productAdmin',\r\n MEMBER_FIRM_ADMIN = 'memberFirmAdmin',\r\n COUNTRY_ADMIN = 'countryAdmin',\r\n USER = 'user',\r\n WHITELISTED_USER = 'whitelistedInternalUser'\r\n}\r\n\r\nexport const OnboardingFilters: FC = ({\r\n usersCount,\r\n setUserFilters,\r\n userFilters,\r\n sorter,\r\n filtersRef,\r\n showFilters,\r\n}) => {\r\n const {\r\n all,\r\n byCountry,\r\n byMemberFirm,\r\n byProduct,\r\n byProductGroup,\r\n byTenant\r\n } = usersCount;\r\n\r\n const { t } = useTranslation();\r\n const user = useSelector(reselectUser);\r\n\r\n const changeRoleFilter = (userRole: UserRoles) => {\r\n setUserFilters({\r\n 'countryIds': [],\r\n 'emails': [],\r\n 'displayName': [],\r\n 'countryCode': [],\r\n role: userRole\r\n });\r\n };\r\n\r\n const determineLableNumber = (number: number) =>\r\n number < 100 ? number.toString() : '99+';\r\n\r\n const fieldOptions: { value: DTO.UserTableFields; label: string }[] = [\r\n { value: 'DisplayName', label: t('onboarding.fieldSort.userName') },\r\n userFilters.role !== UserRoles.superAdmin && { value: 'Country', label: t('onboarding.fieldSort.country') },\r\n { value: 'Email', label: t('onboarding.fieldSort.email') }\r\n ];\r\n\r\n const appliedFilters = Object.values(userFilters).reduce(\r\n (acc, filter) => (filter && filter.length > 0 ? acc + 1 : acc),\r\n 0\r\n );\r\n\r\n const onFiltersChange = (filters: DTO.UserFilters) => {\r\n setUserFilters({\r\n ...userFilters,\r\n emails: filters.emails,\r\n displayName: filters.displayName,\r\n countryCode: filters.countryCode\r\n });\r\n };\r\n\r\n return (\r\n
\r\n
\r\n {user.role !== USER_ROLES.PRODUCT_ADMIN && (\r\n changeRoleFilter(0)}\r\n />\r\n )}\r\n {user.role !== USER_ROLES.PRODUCT_GROUP_ADMIN &&\r\n user.role !== USER_ROLES.PRODUCT_ADMIN ? (\r\n changeRoleFilter(UserRoles.superAdmin)}\r\n />\r\n ) : null}\r\n {/* {user.role !== USER_ROLES.PRODUCT_ADMIN && (\r\n changeRoleFilter(UserRoles.productGroupAdmin)}\r\n />\r\n )} */}\r\n {user.role !== USER_ROLES.PRODUCT_ADMIN && (\r\n changeRoleFilter(UserRoles.productAdmin)}\r\n />\r\n )}\r\n {user.role !== USER_ROLES.WHITELISTED_USER && user.role !== USER_ROLES.PRODUCT_ADMIN && \r\n (\r\n changeRoleFilter(UserRoles.whitelistedInternalUser)}\r\n />\r\n )}\r\n {/* changeRoleFilter(UserRoles.memberFirmAdmin)}\r\n />\r\n changeRoleFilter(UserRoles.countryAdmin)}\r\n /> */}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import React, { FC } from 'react';\r\nimport cs from 'classnames';\r\n\r\nimport styles from './Tag.module.css';\r\n\r\ninterface Props {\r\n text: string;\r\n\r\n label?: string;\r\n active?: boolean;\r\n onClick?: () => void;\r\n}\r\n\r\nexport const Tag: FC = ({ text, label, active, onClick }) => {\r\n return (\r\n \r\n {text}\r\n {label && {label}}\r\n
\r\n );\r\n};\r\n","import { addSeconds, isAfter, isSameSecond } from 'date-fns';\r\n\r\nexport const getFromLocalStorage = (key: string): T => {\r\n const localStorageValue = localStorage.getItem(key);\r\n return localStorageValue ? JSON.parse(localStorageValue) : null;\r\n};\r\n\r\nexport const removeFromLocalStorage = (key: string) =>\r\n localStorage.removeItem(key);\r\n\r\nexport const setToLocalStorage = (key: string, value: any) =>\r\n localStorage.setItem(key, JSON.stringify(value));\r\n\r\nexport const calculateEndTime = (time = 0) =>\r\n addSeconds(new Date(), time).toISOString();\r\n\r\nexport const hasTimeExpired = (timeString: string) => {\r\n return (\r\n isAfter(new Date(), new Date(timeString)) ||\r\n isSameSecond(new Date(), new Date(timeString))\r\n );\r\n};\r\n\r\nexport const getDifferenceInSecondsFromNow = (\r\n dateStringToSubtractSeconds: string\r\n) => {\r\n const startDate = new Date();\r\n const endDate = new Date(dateStringToSubtractSeconds);\r\n return Math.floor((endDate.getTime() - startDate.getTime()) / 1000);\r\n};\r\n","import React from 'react';\r\n\r\ninterface Props {\r\n href?: string;\r\n className?: string;\r\n onClickHandler?: () => void;\r\n}\r\n\r\nexport const BlankLink: React.FC> = ({\r\n children,\r\n href,\r\n className,\r\n onClickHandler\r\n}) => (\r\n \r\n {children}\r\n \r\n);\r\n","import { createContext } from 'react';\r\n\r\nexport enum APP_PATH {\r\n ROOT = '/',\r\n\r\n HOME = '/home',\r\n ACCESS_DENIED = '/access-denied',\r\n\r\n ADMIN_ROOT = '/admin',\r\n ADMIN_SUBMISSIONS_ROOT = '/admin/submissions',\r\n ADMIN_SUBMISSIONS_PRODUCT = '/admin/submissions/:product',\r\n ADMIN_UPDATESUBSCRIPTION_ROOT = '/admin/update-subscription',\r\n ADMIN_UPDATESUBSCRIPTION = '/admin/update-subscription/:product',\r\n ADMIN_ONBOARDING = '/admin/onboarding/:product',\r\n ADMIN_ONBOARDING_CREATION = '/admin/onboarding/add/:product',\r\n \r\n REGISTRATION_ROOT = '/registration',\r\n REGISTRATION_PRODUCT = '/registration/:product',\r\n\r\n EXTERNAL_TERMS_OF_USE = '/termsofuse/:product/:country',\r\n INTERNAL_TERMS_OF_USE = '/termsofuse/internal/:product/:country',\r\n TERMS_OF_USE_ROOT = '/termsofuse',\r\n\r\n WILDCARD = '*',\r\n\r\n AUTH_CALLBACK = '/authcallback',\r\n LOGOUT_CALLBACK = '/oauth2/logout'\r\n}\r\n\r\ninterface RoutesContextProps {\r\n setProductCallback: () => void;\r\n}\r\n\r\nexport const RoutesContext = createContext({\r\n setProductCallback: null\r\n});\r\n","import { ApplicationInsights, SeverityLevel } from \"@microsoft/applicationinsights-web\";\r\nimport { ReactPlugin, withAITracking } from \"@microsoft/applicationinsights-react-js\";\r\nimport { globalHistory } from \"@reach/router\";\r\n\r\nconst reactPlugin = new ReactPlugin();\r\nconst instrumentationKey = (window as any).APP_CONFIG.APP_INSIGHTS_INSTRUMENTATION_KEY;\r\n\r\nconst ai = new ApplicationInsights({\r\n config: {\r\n instrumentationKey,\r\n extensions: [reactPlugin],\r\n extensionConfig: {\r\n [reactPlugin.identifier]: { history: globalHistory }\r\n }\r\n }\r\n});\r\n\r\nai.loadAppInsights();\r\n\r\nexport default (Component: any) => withAITracking(reactPlugin, Component);\r\nexport const { appInsights } = ai;\r\nexport { reactPlugin };\r\n\r\n// LOGS FUNCTIONS\r\nexport const errorException = (message: string): void => {\r\n appInsights.trackException({ error: new Error(message), severityLevel: SeverityLevel.Error });\r\n};\r\n","import i18next from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\n\r\nclass I18n {\r\n init = ({ defaultLang, translations, fallbackLng }: any) => {\r\n return Promise.resolve(\r\n i18next.use(initReactI18next).init({\r\n lng: defaultLang,\r\n debug: process.env.NODE_ENV === 'development',\r\n fallbackLng,\r\n resources: Object.keys(translations).reduce((res, key) => {\r\n return {\r\n ...res,\r\n [key]: {\r\n translation: translations[key]\r\n }\r\n };\r\n }, {})\r\n })\r\n );\r\n };\r\n\r\n changeLanguage = (lang: string) => {\r\n i18next.changeLanguage(lang);\r\n };\r\n\r\n addResourceBundle = (lng: string, ns: string, resource: any[]) => {\r\n i18next.addResourceBundle(lng, ns, resource);\r\n };\r\n\r\n hasResourceBundle = (lng: string, ns: string) => {\r\n return i18next.hasResourceBundle(lng, ns);\r\n };\r\n\r\n getResourceBundle = (lng: string, ns: string) => {\r\n return i18next.getResourceBundle(lng, ns);\r\n };\r\n\r\n // getResource(lng, ns, key, options) {\r\n // return i18next.getResource(lng, ns, key, options);\r\n // }\r\n\r\n language = () => {\r\n return i18next.language;\r\n };\r\n\r\n getCurrLangResource = (ns?: string) => {\r\n return this.getResourceBundle(i18next.language, ns || 'translation');\r\n };\r\n}\r\n\r\nexport const i18nService = new I18n();\r\n","import axios from \"axios\";\r\n\r\nimport { smartFetch, getApiHost } from 'shared/utils';\r\nimport { BASE_HTTP_HEADERS } from 'shared/constants/api.consts';\r\nimport { USER_ROLES } from 'features/AdminPage/OnboardingPage/OnboardingFilters/OnboardingFilters';\r\nimport { LOCAL_STORAGE_EXTERNAL_USER_PRODUCT_KEY } from 'shared/constants/common.consts';\r\nimport { i18nService as i18n } from './i18n.service';\r\n\r\n\r\nexport class ApiService {\r\n private token: string = null;\r\n\r\n private request(url: string, options: RequestInit = {}): Promise {\r\n const headers: Record = { ...BASE_HTTP_HEADERS };\r\n\r\n if (this.token !== null) {\r\n headers.Authorization = `Bearer ${this.token}`;\r\n }\r\n\r\n return smartFetch(url, {\r\n headers,\r\n ...options\r\n }) as Promise;\r\n }\r\n\r\n setToken(token: string): void {\r\n this.token = token;\r\n }\r\n\r\n getCurrentUser(): Promise {\r\n const product = localStorage.getItem(\r\n LOCAL_STORAGE_EXTERNAL_USER_PRODUCT_KEY\r\n )\r\n ? localStorage.getItem(LOCAL_STORAGE_EXTERNAL_USER_PRODUCT_KEY)\r\n : null;\r\n return this.request(\r\n `${getApiHost('account')}/product/${product}/user/current`\r\n );\r\n }\r\n\r\n fetchLocaleList(): Promise {\r\n return this.request(`${getApiHost('system')}/locales`);\r\n }\r\n\r\n getDictionary(localeCode: string): Promise {\r\n return this.request(\r\n `${getApiHost('system')}/locale/${localeCode}/dictionary`\r\n );\r\n }\r\n\r\n fetchCountryCodes(): Promise {\r\n return this.request(`${getApiHost('system')}/countries`);\r\n }\r\n\r\n getProductInfo(code: string): Promise {\r\n return this.request(\r\n `${getApiHost('tenant')}/product/${code}/locale/${i18n.language()}`\r\n );\r\n }\r\n\r\n fetchProductCountries(code: string): Promise {\r\n return this.request(\r\n `${getApiHost(\r\n 'tenant'\r\n )}/product/${code}/countries/locale/${i18n.language()}`\r\n );\r\n }\r\n\r\n fetchTermsOfUse(\r\n product: string,\r\n countryCode: string\r\n ): Promise {\r\n return this.request(\r\n `${getApiHost(\r\n 'tenant'\r\n )}/product/${product}/country/${countryCode}/terms-of-use/locale/${i18n.language()}`\r\n );\r\n }\r\n\r\n fetchInternalTermsOfUse(\r\n product: string,\r\n countryCode: string\r\n ): Promise {\r\n return this.request(\r\n `${getApiHost(\r\n 'tenant'\r\n )}/product/${product}/country/${countryCode}/internal-terms-of-use/locale/${i18n.language()}`\r\n );\r\n }\r\n\r\n fetchCountryStates(countryCode: string): Promise {\r\n return this.request(\r\n `${getApiHost(\r\n 'system'\r\n )}/country/${countryCode}/states/locale/${i18n.language()}`\r\n );\r\n }\r\n\r\n fetchProductPlans(product: string,countryCode:string): Promise {\r\n\r\n return this.request(\r\n\r\n `${getApiHost(\r\n\r\n 'tenant'\r\n\r\n )}/product/${product}/plans/locale/${countryCode}/${i18n.language()}`\r\n\r\n );\r\n\r\n }\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n getAssetUrl(doc: string): string {\r\n return `${getApiHost('system')}/locale/asset/${doc}`;\r\n }\r\n \r\n deleteAdmin = (email: string,productCode: string) => {\r\n return this.request(\r\n `${getApiHost(\r\n 'account'\r\n )}/product/${productCode}/admin/users/delete?email=${email}`,\r\n {\r\n method: 'DELETE'\r\n }\r\n );\r\n };\r\n\r\n fetchOnboardingUsers(\r\n product: string,\r\n pageSize: number,\r\n pageNumber: number,\r\n userFilters: DTO.UserFilters,\r\n sorter: DTO.Sorter,\r\n saveFilters: boolean,\r\n role: string\r\n ) {\r\n const requestBody: DTO.AdminPaginationRequest = {\r\n pageNumber,\r\n pageSize,\r\n filter: {\r\n ...userFilters,\r\n emails:\r\n // userFilters.emails &&\r\n // userFilters.emails.length &&\r\n // typeof userFilters.emails[0] !== 'string'\r\n // ? userFilters.emails.map(userEmail => userEmail.email)\r\n // : []\r\n userFilters.emails &&\r\n userFilters.emails.length\r\n ? userFilters.emails\r\n : []\r\n },\r\n saveFilters,\r\n sorter\r\n };\r\n const setLanguage = JSON.parse(localStorage.getItem('storeLanguage')) || i18n.language();\r\n return this.request(\r\n `${getApiHost('account')}/product/${role === USER_ROLES.SUPER_ADMIN ? 'all' : product}/admin/users/${setLanguage}`,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(requestBody)\r\n }\r\n );\r\n }\r\n\r\n fetchAdminRoles(productCode: string): Promise {\r\n return this.request(\r\n `${getApiHost('account')}/product/admin/userroles`\r\n );\r\n }\r\n\r\n fetchProducts(): Promise {\r\n return this.request(`${getApiHost('tenant')}/products/locale/${i18n.language()}`);\r\n }\r\n\r\n fetchAvaiableProducts(email: string): Promise {\r\n return this.request(`${getApiHost('tenant')}/products/locale/${i18n.language()}/${email}`);\r\n }\r\n\r\n fetchMemberFirms(): Promise {\r\n return this.request(`${getApiHost('tenant')}/memberfirms`);\r\n }\r\n\r\n fetchEmailAvailability( productCode: string, requestBody: DTO.ParamsSearchAdminsDto) {\r\n \r\n //product = null;\r\n return this.request(\r\n `${getApiHost('account')}/product/${productCode}/admin/users/checkbyemail`,\r\n {\r\n method : 'POST',\r\n body: JSON.stringify(requestBody)\r\n }\r\n );\r\n }\r\n\r\n createAdmin(productCode: string, requestBody: DTO.CreateAdminRequest) {\r\n return this.request(\r\n `${getApiHost('account')}/product/${productCode}/admin/users/create`,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(requestBody)\r\n }\r\n );\r\n }\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n fetchAdminsByEmail(productCode: string): string {\r\n return `/product/admin/search`;\r\n }\r\n\r\n getAuthToken = (adfsToken: string) => {\r\n return this.request(`${getApiHost('account')}/auth/token`, {\r\n method: 'POST',\r\n body: JSON.stringify({ token: adfsToken })\r\n });\r\n };\r\n\r\n fetchSubscriptionDetails(\r\n product: string,\r\n email: string\r\n ): Promise<{\r\n plans: DTO.BasePlan[];\r\n userDetails: DTO.UserDetails;\r\n }> {\r\n return this.request<{\r\n plans: DTO.BasePlan[];\r\n userDetails: DTO.UserDetails;\r\n }>(`${getApiHost('account')}/product/${product}/accountdetails`, {\r\n body: JSON.stringify({ email }),\r\n method: 'POST'\r\n });\r\n }\r\n\r\n getRetentionDetails(requestBody: DTO.RetentionRequestDto) {\r\n return this.request(`${getApiHost('account')}/getRetentionDetails`, {\r\n method: 'POST',\r\n body: JSON.stringify(requestBody)\r\n });\r\n };\r\n\r\n uploadAdditionUsers(data: FormData) { \r\n return axios({\r\n method: 'POST', // or 'POST', 'PUT', etc.\r\n url: `${getApiHost('account')}/UploadBulkAdditionalUser`, data,\r\n headers: {\r\n 'Authorization': `Bearer ${this.token}`,\r\n 'Api-Version': 'v1'\r\n }\r\n });\r\n };\r\n\r\n deleteAdditionalUserExcel(id: string) {\r\n return this.request(\r\n `${getApiHost('account')}/UpdateCancelTaskStatus/${id}`,\r\n {\r\n method: 'POST',\r\n });\r\n }\r\n\r\n addingBulkAdditionalUsers(id: string) {\r\n return this.request(\r\n `${getApiHost('account')}/AddBulkAdditionalUsers/${id}`,\r\n {\r\n method: 'POST',\r\n });\r\n }\r\n\r\n getStatusForBulkAdditionalUsers(id: string) {\r\n return this.request(\r\n `${getApiHost('account')}/GetUploadStatus/${id}`,\r\n {\r\n method: 'POST',\r\n });\r\n }\r\n\r\n updateRetentionDetails(requestBody: DTO.UpdateRetentionDto) {\r\n return this.request(`${getApiHost('account')}/updateRetentionDetails`, {\r\n method: 'POST',\r\n body: JSON.stringify(requestBody)\r\n });\r\n };\r\n\r\n keepAlive = () => {\r\n return this.request(\r\n `${getApiHost('account')}/auth/keepalive`,\r\n {\r\n method: 'POST'\r\n }\r\n );\r\n };\r\n\r\n}\r\n\r\nexport const apiService = new ApiService();\r\n","// a model which accepts 4 args and have typescript class shortcut\r\n/* eslint-disable no-empty-function */\r\n\r\nexport class OidcUser {\r\n constructor(\r\n public idToken: string,\r\n public email: string,\r\n public accessToken: string,\r\n public isInternal: boolean\r\n ) {}\r\n}\r\n","/* eslint-disable no-console */\r\nimport { User, UserManager, UserManagerEvents } from 'oidc-client';\r\n\r\nimport { OIDC_CONFIG } from 'shared/constants/config.consts';\r\nimport { getWindow } from 'shared/utils/common.utils';\r\nimport { OidcUser } from 'shared/models';\r\nimport { errorException } from 'shared/utils/AppInsights';\r\n\r\nexport const CONFIG: AP.AppConfig = getWindow().APP_CONFIG;\r\n\r\nclass OidcService {\r\n public get events(): UserManagerEvents {\r\n return this.userManager.events;\r\n }\r\n\r\n private userManager: UserManager;\r\n\r\n private static getTokenData(token: string): any {\r\n const base64Url = token.split('.')[1];\r\n const base64 = base64Url.replace('-', '+').replace('_', '/');\r\n\r\n return JSON.parse(window.atob(base64));\r\n }\r\n\r\n constructor() {\r\n this.userManager = new UserManager(OIDC_CONFIG);\r\n }\r\n\r\n // technically yes, it should be have a static method\r\n // but in that case, we'd have one more export and more complex app\r\n // eslint-disable-next-line class-methods-use-this\r\n public getOidcUser(user: User): OidcUser {\r\n const tokenData = OidcService.getTokenData(user.access_token);\r\n\r\n return new OidcUser(\r\n user.id_token,\r\n tokenData.email,\r\n user.access_token,\r\n tokenData.userType === 'Internal'\r\n );\r\n }\r\n\r\n signInRedirect = (): void => {\r\n this.userManager.signinRedirect().catch(console.error);\r\n };\r\n\r\n signInRedirectTermsofUse = (pathName: any): void => {\r\n // OIDC_CONFIG.redirect_uri = CONFIG.GAP_APP_URL + pathName;\r\n // this.userManager = new UserManager(OIDC_CONFIG);\r\n this.userManager.signinRedirect().catch(console.error);\r\n };\r\n\r\n signOut = (): void => {\r\n const idTokenHint = localStorage.getItem('id_token');\r\n this.userManager\r\n .signoutRedirect({ id_token_hint: idTokenHint })\r\n .catch((err) => {\r\n // AppInsights Error Exception\r\n errorException(`Error: ${err}, File reference: oidc.services.tsx in signOut function`);\r\n\r\n console.error(err);\r\n });\r\n this.userManager.clearStaleState().catch((err) => {\r\n // AppInsights Error Exception\r\n errorException(`Error: ${err}, File reference: oidc.services.tsx in signOut function`);\r\n\r\n console.error(err);\r\n });\r\n };\r\n\r\n signInRedirectCallback = (): void => {\r\n this.userManager\r\n .signinRedirectCallback()\r\n .then(res => {})\r\n .catch(console.error);\r\n };\r\n\r\n signOutRedirectCallback = (): void => {\r\n this.userManager.signoutRedirectCallback().catch((err) => {\r\n // AppInsights Error Exception\r\n errorException(`Error: ${err}, File reference: oidc.services.tsx in signOutRedirectCallback function`);\r\n\r\n console.error(err);\r\n });\r\n this.userManager.clearStaleState().catch((err) => {\r\n // AppInsights Error Exception\r\n errorException(`Error: ${err}, File reference: oidc.services.tsx in signOutRedirectCallback function`);\r\n\r\n console.error(err);\r\n });\r\n this.userManager.removeUser().catch((err) => {\r\n // AppInsights Error Exception\r\n errorException(`Error: ${err}, File reference: oidc.services.tsx in signOutRedirectCallback function`);\r\n\r\n console.error(err);\r\n });\r\n };\r\n}\r\n\r\nexport const oidcService = new OidcService();\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"theader\":\"OnboardingPageTable_theader__3rWp-\",\"tcell\":\"OnboardingPageTable_tcell__34z9e\",\"disableDelete\":\"OnboardingPageTable_disableDelete__3GsZK\",\"name\":\"OnboardingPageTable_name__1TGgd\",\"nameTenantTile\":\"OnboardingPageTable_nameTenantTile__2gIrj\",\"roleAllTile\":\"OnboardingPageTable_roleAllTile__1e1Vh\",\"role\":\"OnboardingPageTable_role__2LKyr\",\"product\":\"OnboardingPageTable_product__1ObY9\",\"country\":\"OnboardingPageTable_country__2D0cT\",\"emailAllTile\":\"OnboardingPageTable_emailAllTile__3wjN5\",\"email\":\"OnboardingPageTable_email__3JM0d\",\"emailTenantTile\":\"OnboardingPageTable_emailTenantTile__3qOJF\",\"noFound\":\"OnboardingPageTable_noFound__Fv9Y5\",\"loaderWrap\":\"OnboardingPageTable_loaderWrap__3ve7s\",\"svgIcon\":\"OnboardingPageTable_svgIcon__DEnTX\",\"svgPath\":\"OnboardingPageTable_svgPath__1Joxb\",\"disableSortIcon\":\"OnboardingPageTable_disableSortIcon__htkeT\"};","import { apiService } from 'shared/services';\r\nimport { getProductCodeFromPath } from 'shared/utils';\r\nimport { SET_PRODUCT_FROM_PATH, SetProductAction$ } from './product.types';\r\n\r\nexport const setProductFromPath = (pathname: string): SetProductAction$ => ({\r\n type: SET_PRODUCT_FROM_PATH,\r\n payload: apiService.getProductInfo(getProductCodeFromPath(pathname))\r\n});\r\n","// import { i18nService as i18n } from 'shared/services/i18n.service';\r\nimport { getApiHost } from 'shared/utils';\r\n\r\nexport const API_PATH = {\r\n GET_COUNTRIES_PRODUCT: (product: string, localeCode: string): string =>\r\n `${getApiHost(\r\n 'account'\r\n )}/product/${product}/permitted-countries/locale/${localeCode}`,\r\n // )}/product/${product}/permitted-countries/locale/${localeCode}`,\r\n\r\n GET_COUNTRIES_ALL: (localeCode: string): string =>\r\n `${getApiHost(\r\n 'account'\r\n )}/product/all/permitted-countries/locale/${localeCode}`,\r\n // )}/product/${product}/permitted-countries/locale/${localeCode}`,\r\n\r\n GET_SUBMISSIONS_GRID: (product: string, localeCode: string): string =>\r\n `${getApiHost(\r\n 'account'\r\n )}/product/${product}/registrations/query/locale/${localeCode}`,\r\n // )}/product/${product}/registrations/query/locale/${i18n.language()}`,\r\n\r\n EXPORT_REGISTRATIONS: (product: string, locale: string): string =>\r\n `${getApiHost(\r\n 'account'\r\n )}/product/${product}/registrations/export/locale/${locale}`,\r\n\r\n SUBMIT_REGISTRATION: (product: string, localeCode: string): string =>\r\n `${getApiHost(\r\n 'account'\r\n )}/product/${product}/registration/locale/${localeCode}`,\r\n\r\n // TODO: the place which uses this endpoint has an issue with absolute path format and should be fixed later\r\n GET_COMPANY_FILTER_QUERY: (product: string): string =>\r\n `product/${product}/companyFilter/query`,\r\n\r\n GET_USER_FILTER_QUERY: (product: string): string =>\r\n `product/${product}/userfilter/query`,\r\n\r\n GET_USER_FILTER_QUERY_PRODUCT: (product: string): string =>\r\n `product/${product}/admin/adminuserfilter/query`,\r\n\r\n GET_USER_FILTER_QUERY_ALL: (): string =>\r\n `product/all/admin/adminuserfilter/query`,\r\n\r\n SAVE_SUBSCRIPTION: (product: string, sourceSubjectId: string): string =>\r\n `${getApiHost('account')}/product/${product}/subscription/save/${sourceSubjectId}`,\r\n\r\n GET_PROFILE: `${getApiHost('account')}/profile/save`,\r\n\r\n SAVE_PRODUCT_ROLE_INFO: (product: string): string =>\r\n `${getApiHost('account')}/product/${product}/subscription/roles/update`,\r\n\r\n SAVE_USER_PREFERENCE: (): string =>\r\n `${getApiHost('account')}/user/preference`,\r\n\r\n UPDATE_TERMS_OF_USE: (product: string): string =>\r\n `${getApiHost('integration')}/product/${product}/termsofuse/update`,\r\n\r\n UPDATE_INTERNAL_TERMS_OF_USE: (product: string): string =>\r\n `${getApiHost('integration')}/product/${product}/internaltermsofuse/update`,\r\n\r\n GET_ADDITIONAL_USERS: (id: string, sourceSubjectId: string): string =>\r\n `${getApiHost('account')}/getAdditionalUsers/${id}/${sourceSubjectId}`,\r\n\r\n ADD_ADDITIONAL_USER: (product: string, sourceSubjectId: string): string =>\r\n `${getApiHost('account')}/product/${product}/addAdditionalUser/${sourceSubjectId}`,\r\n\r\n REMOVE_ADDITIONAL_USER: (product: string): string =>\r\n `${getApiHost('account')}/product/${product}/removeAdditionalUser`,\r\n \r\n UPDATE_COMPANY_NAME: (product: string): string =>\r\n `${getApiHost('account')}/product/${product}/company/update`,\r\n\r\n GET_ADMIN_FILTER_QUERY_ALL: (): string =>\r\n `product/all/admin/adminemailfilter/query`,\r\n\r\n GET_ADMIN_FILTER_QUERY_PRODUCT: (product: string): string =>\r\n `product/${product}/admin/adminemailfilter/query`,\r\n \r\n GET_ADMIN_COUNTRIES: (product: string): string =>\r\n `${getApiHost('account')}/product/${product}/admin/usercountries`,\r\n\r\n UPDATE_PRIMARY_USER: (product: string, localeCode: string): string =>\r\n `${getApiHost('account')}/product/${product}/update-primary-user/locale/${localeCode}`,\r\n\r\n PROFILE_LOGOUT: `${getApiHost('account')}/profile/logout`\r\n};\r\n\r\nexport const BASE_HTTP_HEADERS: AP.BaseHttpHeaders = {\r\n 'Content-Type': 'application/json',\r\n 'api-version': 'v1'\r\n // 'Content-Security-Policy': \"frame-ancestors 'none'\",\r\n // 'X-XSS-Protection': '1',\r\n // 'X-Content-Type-Options': 'nosniff',\r\n // 'Referrer-Policy': 'strict-origin-when-cross-origin'\r\n};\r\n","import { createSelector } from 'reselect';\r\n\r\nimport { RootState } from 'store/root.reducer';\r\n\r\nexport const selectCountryCode = ({ updateSubscription }: RootState): string =>\r\n updateSubscription.countryCode;\r\n\r\nexport const selectIsLoading = ({ updateSubscription }: RootState): boolean =>\r\n updateSubscription.isLoading;\r\n\r\nexport const selectSubscriptionData = ({\r\n updateSubscription\r\n}: RootState): AP.RegistrationData => updateSubscription.data;\r\n\r\nexport const selectAction = ({ updateSubscription }: RootState): string =>\r\n updateSubscription.userAction;\r\n\r\nexport const selectEmail = ({ updateSubscription }: RootState): string =>\r\n updateSubscription.userEmail;\r\n\r\nexport const selectCountryStatesData = ({\r\n updateSubscription\r\n}: RootState): any => {\r\n // DTO.State[]\r\n return updateSubscription.states;\r\n};\r\n\r\nexport const reselectSubscriptionData = createSelector(\r\n selectSubscriptionData,\r\n (data: AP.RegistrationData) => data\r\n);\r\n\r\nexport const reselectCountry = createSelector(\r\n selectSubscriptionData,\r\n ({ country }): any => country\r\n);\r\n\r\nexport const reselectSubscriptionEmail = createSelector(\r\n selectEmail,\r\n (email: string) => email\r\n);\r\n\r\nexport const reselectAction = createSelector(\r\n selectAction,\r\n (data: string) => data\r\n);\r\n\r\nexport const reselectSubscriptionPlans = createSelector(\r\n selectSubscriptionData,\r\n (data: AP.RegistrationData) => data.plans\r\n);\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"UserForm_content__3hrnW\",\"footer\":\"UserForm_footer__3pKg2\",\"cancel_btn\":\"UserForm_cancel_btn__FAlgz\",\"concentContainer\":\"UserForm_concentContainer__3P8IH\",\"concentItems\":\"UserForm_concentItems__HjHqb\",\"headerText\":\"UserForm_headerText__1svut\",\"toggleIcon\":\"UserForm_toggleIcon__hGttJ\",\"detailsSection\":\"UserForm_detailsSection__34cpL\",\"userSection\":\"UserForm_userSection__1-SHC\",\"alertContainer\":\"UserForm_alertContainer__wCcvI\",\"footerMul\":\"UserForm_footerMul__f1zdc\",\"dropzone\":\"UserForm_dropzone__1gQOi\",\"outdrop\":\"UserForm_outdrop__14rl9\",\"error\":\"UserForm_error__1ZD_A\",\"templateButtonDownloadIcon\":\"UserForm_templateButtonDownloadIcon__WwuHp\",\"templateButton\":\"UserForm_templateButton__2rgyz\",\"clear-files-button\":\"UserForm_clear-files-button__37URq\",\"uploadedfiles\":\"UserForm_uploadedfiles__Kuz2L\",\"uploadedfilesitem\":\"UserForm_uploadedfilesitem__2mW2V\",\"uploadedfileserror\":\"UserForm_uploadedfileserror__1inOO\",\"uploadedfilesdelete\":\"UserForm_uploadedfilesdelete__DtUh-\",\"uploadedfilesitemwrap\":\"UserForm_uploadedfilesitemwrap__1dq7y\",\"uploadedfilesitemcontent\":\"UserForm_uploadedfilesitemcontent__2mpuh\",\"dropfilearea\":\"UserForm_dropfilearea__2A_Nc\",\"drop-file-area__browse\":\"UserForm_drop-file-area__browse__7vCsG\",\"filebrowse\":\"UserForm_filebrowse__1qurL\",\"filebrowsetext\":\"UserForm_filebrowsetext__1KoXX\",\"spndragdrop\":\"UserForm_spndragdrop__1av51\",\"xlsimage\":\"UserForm_xlsimage__3bwzy\",\"excelFileStatus\":\"UserForm_excelFileStatus__1GIl_\",\"arrangeItems\":\"UserForm_arrangeItems__qyH0C\",\"closeStatus\":\"UserForm_closeStatus__378xg\",\"barUploading\":\"UserForm_barUploading__3FvXz\",\"barFailed\":\"UserForm_barFailed__KkMkb\",\"barLoaded\":\"UserForm_barLoaded__2Y3yi\",\"barSelected\":\"UserForm_barSelected__2Q0mn\"};","export type RegistrationState = Readonly<{\r\n productCountries: Store.LoadableData;\r\n productPlans: Store.LoadableData;\r\n termsOfUse: Store.LoadableData> & {\r\n isAgreed: boolean;\r\n };\r\n states: Store.LoadableData;\r\n countryCodes: Store.LoadableData>;\r\n data: AP.RegistrationData;\r\n}>;\r\n\r\nexport const FETCH_COUNTRY_CODES = '@registration/FETCH_COUNTRY_CODES';\r\nexport const FETCH_PRODUCT_COUNTRIES = '@registration/FETCH_PRODUCT_COUNTRIES';\r\nexport const FETCH_TERMS_OF_USE = '@registration/FETCH_TERMS_OF_USE';\r\nexport const FETCH_INTERNAL_TERMS_OF_USE = '@registration/FETCH_INTERNAL_TERMS_OF_USE';\r\nexport const FETCH_COUNTRY_STATES = '@registration/FETCH_COUNTRY_STATES';\r\nexport const FETCH_PRODUCT_PLANS = '@registration/FETCH_PRODUCT_PLANS';\r\nexport const SET_REGISTRATION_COUNTRY_CODE =\r\n '@registration/SET_REGISTRATION_COUNTRY_CODE';\r\nexport const SET_REGISTRATION_TERMS_OF_USE_AGREEMENT =\r\n '@registration/SET_REGISTRATION_TERMS_OF_USE_AGREEMENT';\r\nexport const SET_REGISTRATION_PLANS = '@registration/SET_REGISTRATION_PLANS';\r\nexport const SUBMIT_REGISTRATION_DATA =\r\n '@registration/SUBMIT_REGISTRATION_ACCOUNT_DETAILS';\r\n\r\nexport type FetchCountryCodesAction = Store.PaylodedAction<\r\n Record\r\n>;\r\nexport type FetchCountryCodesAction$ = Store.PaylodedAction<\r\n Promise>\r\n>;\r\n\r\nexport type FetchProductCountriesAction = Store.PaylodedAction;\r\nexport type FetchProductCountriesAction$ = Store.PaylodedAction<\r\n Promise\r\n>;\r\n\r\nexport type FetchTermsOfUseAction = Store.PaylodedAction;\r\nexport type FetchTermsOfUseAction$ = Store.PaylodedAction<\r\n Promise\r\n>;\r\n\r\nexport type FetchInternalTermsOfUseAction = Store.PaylodedAction;\r\nexport type FetchInternalTermsOfUseAction$ = Store.PaylodedAction<\r\n Promise\r\n>;\r\n\r\nexport type FetchCountryStates = Store.PaylodedAction;\r\nexport type FetchCountryStates$ = Store.PaylodedAction>;\r\n\r\nexport type SetRegistrationCountryCodeAction = Store.PaylodedAction;\r\nexport type SetRegistrationTermsOfUseAgreement = Store.PaylodedAction;\r\nexport type SetRegistrationPlansAction = Store.PaylodedAction;\r\n\r\nexport type SubmitRegistrationAccountDetails = Store.PaylodedAction<\r\n AP.AccountDetailsFormFields\r\n>;\r\n\r\nexport type FetchProductPlansAction = Store.PaylodedAction<\r\n DTO.RegistrationPlan[]\r\n>;\r\nexport type FetchProductPlansAction$ = Store.PaylodedAction<\r\n Promise\r\n>;\r\n\r\nexport type RegistrationActionTypes =\r\n | FetchCountryCodesAction\r\n | FetchProductCountriesAction\r\n | FetchTermsOfUseAction\r\n | FetchProductPlansAction\r\n | FetchCountryStates\r\n | SetRegistrationCountryCodeAction\r\n | SetRegistrationTermsOfUseAgreement\r\n | SetRegistrationPlansAction\r\n | SubmitRegistrationAccountDetails;\r\n","import { Dispatch, SetStateAction, useCallback } from 'react';\r\n\r\nexport enum UPDATE_SUB_STEP {\r\n SELECT_PLANS = 'selectPlans',\r\n ACCOUNT_DETAILS = 'accountDetails'\r\n}\r\n\r\nexport interface Step {\r\n name: UPDATE_SUB_STEP;\r\n label: string;\r\n children: JSX.Element[] | JSX.Element;\r\n}\r\n\r\nexport const useUpdateSubSteps = (\r\n setStep: Dispatch>\r\n): Record void> => ({\r\n [UPDATE_SUB_STEP.SELECT_PLANS]: useCallback(\r\n (): void => setStep(UPDATE_SUB_STEP.SELECT_PLANS),\r\n [setStep]\r\n ),\r\n\r\n [UPDATE_SUB_STEP.ACCOUNT_DETAILS]: useCallback(\r\n (): void => setStep(UPDATE_SUB_STEP.ACCOUNT_DETAILS),\r\n [setStep]\r\n )\r\n});\r\n\r\nexport enum UPDATE_SUBSCRIPTIONS_ACTIONS {\r\n ADD_NEW_PLAN = 'Add New Plan',\r\n RENEW = 'Renew',\r\n RE_ACTIVATE = 'Re-Activate',\r\n CANCEL = 'Cancel'\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"planCard\":\"SelectPlans_planCard__3C7eQ\",\"disabled\":\"SelectPlans_disabled__WqRJQ\",\"warningText\":\"SelectPlans_warningText__14JXe\",\"card_header\":\"SelectPlans_card_header__3IfEl\",\"card_main\":\"SelectPlans_card_main__14CKB\",\"card_body\":\"SelectPlans_card_body__qNY33\",\"card_footer\":\"SelectPlans_card_footer__bcoor\",\"card_discription\":\"SelectPlans_card_discription__1hh_k\",\"card_sub_title\":\"SelectPlans_card_sub_title__1C8kz\",\"licenseSection\":\"SelectPlans_licenseSection__3R2Qj\",\"subscriptionSection\":\"SelectPlans_subscriptionSection__1F3Tb\",\"labelText\":\"SelectPlans_labelText__2t_Mi\",\"labelValue\":\"SelectPlans_labelValue__1GmxC\",\"rightAligned\":\"SelectPlans_rightAligned__k7DR6\",\"durationValue\":\"SelectPlans_durationValue__27zEY\",\"licencesInput\":\"SelectPlans_licencesInput__2b-xz\",\"selectYears\":\"SelectPlans_selectYears__3G8LY\",\"headLabel\":\"SelectPlans_headLabel__17f1C\",\"status\":\"SelectPlans_status__2U-nO\",\"cancelled\":\"SelectPlans_cancelled__3g3Nb\",\"rejected\":\"SelectPlans_rejected__1wxCp\",\"active\":\"SelectPlans_active__2ryem\",\"expired\":\"SelectPlans_expired__1UKjT\",\"unsubscribed\":\"SelectPlans_unsubscribed__260xY\",\"card\":\"SelectPlans_card__1_OVj\",\"highlighted\":\"SelectPlans_highlighted__3XKLB\",\"noBorder\":\"SelectPlans_noBorder__2iv_W\",\"h2\":\"SelectPlans_h2__MMOnp\",\"inactive\":\"SelectPlans_inactive__3uT_e\",\"container\":\"SelectPlans_container__1nkSm\",\"stepActionPanel\":\"SelectPlans_stepActionPanel__Vm5nZ\",\"footerLabel\":\"SelectPlans_footerLabel__3SlEX\",\"actionSelect\":\"SelectPlans_actionSelect__3A54b\",\"actionLabel\":\"SelectPlans_actionLabel__3fXrs\",\"dropdownaction\":\"SelectPlans_dropdownaction__1T4Bc\",\"reactivate_icon\":\"SelectPlans_reactivate_icon__2ksQN\",\"cancel_option\":\"SelectPlans_cancel_option__WCoW9\",\"updateSubscription\":\"SelectPlans_updateSubscription__av1cL\",\"licenseDisplayLabel\":\"SelectPlans_licenseDisplayLabel__W5dyo\",\"editPlan\":\"SelectPlans_editPlan__1GXbg\",\"selectedOption\":\"SelectPlans_selectedOption__1TEP5\",\"action\":\"SelectPlans_action__mQQ9z\",\"actionfbSelect\":\"SelectPlans_actionfbSelect__2RM91\",\"placeholder\":\"SelectPlans_placeholder__3Xmly\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form\":\"Form_form__1aBBi\",\"label\":\"Form_label__2HV62\",\"feedback\":\"Form_feedback__3PY3q\",\"formControlInvalid\":\"Form_formControlInvalid__3wbp3\",\"specialLabelCss\":\"Form_specialLabelCss__3jpRA\",\"noResize\":\"Form_noResize__3gXUi\",\"auditClient\":\"Form_auditClient__2Jf9O\",\"content\":\"Form_content__2mmQT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SubmissionsGrid_container__2pObL\",\"grid\":\"SubmissionsGrid_grid__2C-1r\",\"iconButton\":\"SubmissionsGrid_iconButton__2ckLo\",\"iconButtonDisable\":\"SubmissionsGrid_iconButtonDisable__3-dHl\",\"idButton\":\"SubmissionsGrid_idButton__zcHlh\",\"spinner\":\"SubmissionsGrid_spinner__3wVBr\",\"overflow\":\"SubmissionsGrid_overflow__3yp5n\",\"fixSpan\":\"SubmissionsGrid_fixSpan__2MIm1\",\"hiddenContent\":\"SubmissionsGrid_hiddenContent__3gFrB\",\"editField\":\"SubmissionsGrid_editField__1Arxk\",\"editFieldImg\":\"SubmissionsGrid_editFieldImg__3l1Zx\",\"editImg\":\"SubmissionsGrid_editImg__3dlxQ\"};","import { ThunkDispatch } from 'redux-thunk';\r\n\r\nimport { apiService, i18nService as i18n } from 'shared/services';\r\nimport {\r\n LocaleState,\r\n SET_LOCALE,\r\n FETCH_LOCALE_LIST,\r\n // SetLocaleAction$,\r\n FetchLocaleList$\r\n} from './localize.types';\r\n\r\n// export const setLocale = (data: any): SetLocaleAction$ => ({\r\n// type: SET_LOCALE,\r\n// payload: data\r\n// });\r\n\r\nexport const fetchLocaleList = (): FetchLocaleList$ => ({\r\n type: FETCH_LOCALE_LIST,\r\n payload: apiService.fetchLocaleList()\r\n});\r\n\r\nexport const changeLanguage = (localeCode: string): any => {\r\n const hasResource = i18n.hasResourceBundle(localeCode, 'translation');\r\n return (dispatch: ThunkDispatch): void => {\r\n const setLanguage = (code: string) => {\r\n i18n.changeLanguage(code);\r\n dispatch({\r\n type: SET_LOCALE,\r\n payload: code\r\n });\r\n };\r\n if (!hasResource) {\r\n apiService.getDictionary(localeCode).then((data: any) => {\r\n i18n.addResourceBundle(data.localeCode, 'translation', {\r\n ...data.dictionary\r\n });\r\n setLanguage(data.localeCode);\r\n });\r\n } else {\r\n setLanguage(localeCode);\r\n }\r\n };\r\n};\r\n","import { createSelector } from 'reselect';\r\n\r\nimport { RootState } from 'store/root.reducer';\r\n\r\nexport const selectLocaleData = ({ localize }: RootState): AP.LocaleDataInfo =>\r\n localize;\r\n\r\nexport const selectLocaleList = ({\r\n localize\r\n}: RootState): Array => localize.localeList;\r\n\r\nexport const selectLocaleCode = ({ localize }: RootState): AP.LocaleCode => {\r\n return localize.localeCode;\r\n};\r\n\r\nexport const reselectLocaleInfo = createSelector(\r\n [selectLocaleData],\r\n (locale): AP.LocaleDataInfo => locale\r\n);\r\n\r\nexport const reselectLocaleList = createSelector(\r\n [selectLocaleList],\r\n (list): Array => list\r\n);\r\n\r\nexport const reselectLocaleCode = createSelector(\r\n [selectLocaleCode],\r\n (localeCode): AP.LocaleCode => localeCode\r\n);\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form\":\"AddAdminForm_form__1htzx\",\"formWrap\":\"AddAdminForm_formWrap__2_8dS\",\"disableAddAdminForm\":\"AddAdminForm_disableAddAdminForm__3kqsv\",\"select\":\"AddAdminForm_select__3S1Gj\",\"multiSelect\":\"AddAdminForm_multiSelect__P4mCF\",\"formActions\":\"AddAdminForm_formActions__1A9Ii\",\"autoheight\":\"AddAdminForm_autoheight__16FBY\",\"search\":\"AddAdminForm_search__29KcG\",\"button\":\"AddAdminForm_button__IAW1c\",\"selectWrap\":\"AddAdminForm_selectWrap__1OhwO\",\"withPadding\":\"AddAdminForm_withPadding__33YL5\",\"label\":\"AddAdminForm_label__2DLgS\",\"emailWrap\":\"AddAdminForm_emailWrap__k7v9D\",\"emailText\":\"AddAdminForm_emailText__3danv\",\"error\":\"AddAdminForm_error__fC71Z\",\"required\":\"AddAdminForm_required__13Zli\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"ConfigureRetentionDialog_container__2zTJG\",\"symbolsCounter\":\"ConfigureRetentionDialog_symbolsCounter__RnLzt\",\"form\":\"ConfigureRetentionDialog_form__3I5F-\",\"formWrap\":\"ConfigureRetentionDialog_formWrap__3wTEu\",\"select\":\"ConfigureRetentionDialog_select__3pQtj\",\"multiSelect\":\"ConfigureRetentionDialog_multiSelect__ws8w5\",\"formActions\":\"ConfigureRetentionDialog_formActions__1HSYR\",\"autoheight\":\"ConfigureRetentionDialog_autoheight__2czkp\",\"search\":\"ConfigureRetentionDialog_search__1elKa\",\"button\":\"ConfigureRetentionDialog_button__3I-Cd\",\"selectWrap\":\"ConfigureRetentionDialog_selectWrap__3kG0y\",\"withPadding\":\"ConfigureRetentionDialog_withPadding__2S-SS\",\"label\":\"ConfigureRetentionDialog_label__fZcUJ\",\"emailWrap\":\"ConfigureRetentionDialog_emailWrap__2UJoF\",\"error\":\"ConfigureRetentionDialog_error__BNySp\",\"required\":\"ConfigureRetentionDialog_required__3qoMe\",\"retentionInput\":\"ConfigureRetentionDialog_retentionInput__3g-3a\",\"retentionError\":\"ConfigureRetentionDialog_retentionError__2obZ3\",\"modifiedUserDetail\":\"ConfigureRetentionDialog_modifiedUserDetail__1PFi8\",\"retentionLocked\":\"ConfigureRetentionDialog_retentionLocked__1UCbh\",\"sendMail\":\"ConfigureRetentionDialog_sendMail__3QwUI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"Button_button__1BJlU\",\"btnSm\":\"Button_btnSm__3Vzqm\",\"btnOutlinePrimary\":\"Button_btnOutlinePrimary__1u-jb\",\"btnOutlineSecondary\":\"Button_btnOutlineSecondary__25MCp\",\"link\":\"Button_link__3iK44\",\"thin\":\"Button_thin__Pdx7o\",\"withIcon\":\"Button_withIcon__2PMIO\",\"icon\":\"Button_icon__tFV6y\",\"transparentButton\":\"Button_transparentButton__31c2F\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"Confirmation_header__OW6qK\",\"body\":\"Confirmation_body__1_QSb\",\"title\":\"Confirmation_title__bM7Sz\",\"footer\":\"Confirmation_footer__2tpQu\",\"action\":\"Confirmation_action__3yCE_\",\"icon\":\"Confirmation_icon__JwJKf\",\"iconCircle\":\"Confirmation_iconCircle__38USm\",\"text\":\"Confirmation_text__2O76c\",\"message\":\"Confirmation_message__ur-DB\",\"note\":\"Confirmation_note__1Gkq_\",\"cancelAction\":\"Confirmation_cancelAction__2kbPe\",\"modal\":\"Confirmation_modal__1LNKP\",\"confirmatiocancelAction\":\"Confirmation_confirmatiocancelAction__rwDDL\",\"continueAction\":\"Confirmation_continueAction__2c0B0\",\"warningImage\":\"Confirmation_warningImage__25DK0\",\"yesAction\":\"Confirmation_yesAction__3DPrU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"Dialog_header__3Q36P\",\"title\":\"Dialog_title__3comt\",\"titleAdminDialog\":\"Dialog_titleAdminDialog__3wAaz\",\"noBorder\":\"Dialog_noBorder__2kGVP\",\"paddingTop_0\":\"Dialog_paddingTop_0__xHB0A\",\"paddingBottom_0\":\"Dialog_paddingBottom_0__okdk7\",\"title_caps\":\"Dialog_title_caps__z4UhF\",\"footer\":\"Dialog_footer__2Pvjb\",\"close\":\"Dialog_close__2acaL\",\"action\":\"Dialog_action__3a7mg\",\"modal\":\"Dialog_modal__1wuSq\",\"warningImage\":\"Dialog_warningImage__2skAe\",\"crossImage\":\"Dialog_crossImage__3NR6Y\"};","import React from 'react';\r\nimport cs from 'classnames';\r\n\r\nexport type IconName =\r\n | 'exclamation-mark-special'\r\n | 'cross-special'\r\n | 'checkbox-tick-special'\r\n | 'smallchevron-up'\r\n | 'smallchevron-down'\r\n | 'smallchevron-left'\r\n | 'smallchevron-right'\r\n | 'skip-rewind-special'\r\n | 'skip-forward-special'\r\n | 'speech-2-special'\r\n | 'sort-amount-ascending-special'\r\n | 'sort-amount-descending-special'\r\n | 'filter-special'\r\n | 'exit-special'\r\n | 'tick-special'\r\n | 'document-1-special'\r\n | 'user-2-special'\r\n | 'arrow-double-left-special'\r\n | 'arrow-double-right-special'\r\n | 'plus-special';\r\n\r\ninterface Props {\r\n name: IconName;\r\n size?: number;\r\n className?: string;\r\n}\r\n\r\nexport function Icon({ name, className, size = 14 }: Props): JSX.Element {\r\n return (\r\n \r\n );\r\n}\r\n","import { createContext } from 'react';\r\n\r\nimport { SORT_DIRECTION } from 'shared/constants/common.consts';\r\nimport { SUBMISSION_TYPE } from 'shared/constants/submission.consts';\r\nimport { noop } from 'shared/utils';\r\n\r\nexport const sortingParams: {\r\n [key: string]: { value: string; label: string };\r\n} = {\r\n id: { value: 'id', label: 'admin.grid.id' },\r\n date: { value: 'submissionDate', label: 'admin.grid.submissionDate' },\r\n country: { value: 'country', label: 'admin.grid.country' },\r\n companyName: { value: 'companyName', label: 'admin.grid.companyName' },\r\n subscriberName: { value: 'subscriberName', label: 'admin.grid.subscriberName' },\r\n subscriberEmail: { value: 'subscriberEmail', label: 'admin.grid.subscriberEmail' },\r\n};\r\n\r\nexport const tableHeaders = ([\r\n { label: ('admin.grid.submissionDetails'), value: '', sortOrder: '' },\r\n { label: ('admin.grid.country'), value: 'country', sortOrder: '' },\r\n { label: ('admin.grid.companyName'), value: 'companyName', sortOrder: '' },\r\n { label: ('admin.grid.subscriberName'), value: 'subscriberName', sortOrder: '' },\r\n { label: ('admin.grid.subscriberEmail'), value: 'subscriberEmail', sortOrder: '' },\r\n { label: ('admin.grid.submissionDate'), value: 'submissionDate', sortOrder: SORT_DIRECTION.DESC },\r\n null\r\n]);\r\n\r\n// export const sortingParams: {\r\n// [key: string]: string;\r\n// } = {\r\n// id: 'submissionDate',\r\n// date: 'admin.grid.submissionDate'\r\n// };\r\n\r\nexport interface GridOptionsStateQuery {\r\n pageNumber: number;\r\n pageSize: number;\r\n sorter: DTO.Sorter;\r\n filter: DTO.Filter;\r\n}\r\n\r\nexport interface GridOptionsState {\r\n filters: DTO.SubmissionFilters;\r\n query: GridOptionsStateQuery;\r\n selectedFilters: any[];\r\n submissionHeaders: any[];\r\n}\r\n\r\nexport enum PLAN_STATUS {\r\n PENDING = 1,\r\n ACTIVE\r\n}\r\n\r\nexport const initialGridOptions: GridOptionsState = {\r\n filters: {\r\n countryCode: [],\r\n legalName: [],\r\n user: [],\r\n planStatus: [],\r\n subscriberEmail: []\r\n },\r\n query: {\r\n pageNumber: 0,\r\n pageSize: 25,\r\n filter: {\r\n planStatus: [1],\r\n legalName: [],\r\n countryCode: [],\r\n user: [],\r\n subscriberEmail: []\r\n },\r\n // sorter: {\r\n // sortBy: sortingParams.id,\r\n // sortDirection: SORT_DIRECTION.DESC\r\n // },\r\n sorter: {\r\n fields: [\r\n {\r\n sortBy: tableHeaders[5].value,\r\n sortDirection: tableHeaders[5].sortOrder\r\n }\r\n ]\r\n }\r\n },\r\n selectedFilters: [],\r\n submissionHeaders: tableHeaders\r\n};\r\n\r\nexport enum GRID_OPTIONS_ACTION_TYPES {\r\n CHANGE_SORTING,\r\n CHANGE_PAGE_NUMBER,\r\n CHANGE_PAGE_SIZE,\r\n CHANGE_ONLY_PENDING,\r\n CHANGE_FILTERS\r\n}\r\n\r\ntype GridOptionsActions =\r\n | { type: GRID_OPTIONS_ACTION_TYPES.CHANGE_PAGE_NUMBER; payload: number }\r\n | { type: GRID_OPTIONS_ACTION_TYPES.CHANGE_PAGE_SIZE; payload: number }\r\n | {\r\n type: GRID_OPTIONS_ACTION_TYPES.CHANGE_ONLY_PENDING;\r\n payload: DTO.PlanStatus;\r\n }\r\n | { type: GRID_OPTIONS_ACTION_TYPES.CHANGE_SORTING; payload: DTO.GridSorting }\r\n | {\r\n type: GRID_OPTIONS_ACTION_TYPES.CHANGE_FILTERS;\r\n payload: DTO.SubmissionFilters;\r\n };\r\n\r\nexport const gridOptionsReducer = (\r\n state: GridOptionsState,\r\n action: GridOptionsActions\r\n): GridOptionsState => {\r\n switch (action.type) {\r\n case GRID_OPTIONS_ACTION_TYPES.CHANGE_PAGE_NUMBER: {\r\n const pageNumber = action.payload - 1;\r\n return {\r\n ...state,\r\n query: { ...state.query, pageNumber }\r\n };\r\n }\r\n\r\n case GRID_OPTIONS_ACTION_TYPES.CHANGE_PAGE_SIZE:\r\n return {\r\n ...state,\r\n query: { ...state.query, pageSize: action.payload }\r\n };\r\n\r\n case GRID_OPTIONS_ACTION_TYPES.CHANGE_ONLY_PENDING:\r\n return {\r\n ...state,\r\n query: {\r\n ...state.query,\r\n pageNumber: 0,\r\n filter: {\r\n ...state.query.filter,\r\n planStatus: [action.payload]\r\n }\r\n }\r\n };\r\n\r\n case GRID_OPTIONS_ACTION_TYPES.CHANGE_SORTING: {\r\n const { sortBy, sortDirection } = action.payload;\r\n const newSubmissionHeaders = [...state.submissionHeaders];\r\n const indexToSort = state.submissionHeaders.findIndex(item => item?.value === sortBy);\r\n const prevSortIndex = state.submissionHeaders.findIndex(item => item?.sortOrder !== '');\r\n if (newSubmissionHeaders[prevSortIndex]?.value !== sortBy) {\r\n newSubmissionHeaders[prevSortIndex].sortOrder = '';\r\n }\r\n if(newSubmissionHeaders[indexToSort] !== null) {\r\n newSubmissionHeaders[indexToSort].sortOrder = sortDirection;\r\n }\r\n\r\n return {\r\n ...state,\r\n query: { ...state.query, sorter: { fields: [action.payload] } },\r\n submissionHeaders: newSubmissionHeaders\r\n };\r\n };\r\n\r\n case GRID_OPTIONS_ACTION_TYPES.CHANGE_FILTERS: {\r\n const { countryCode, legalName, user, subscriberEmail } = action.payload;\r\n const countryCodeFilter = countryCode\r\n ? countryCode.map(({ code }) => code)\r\n : [];\r\n const legalNameFilter = legalName ? legalName.map(({ id }) => id) : [];\r\n const userFilter = user ? user.map(({ email }) => email) : [];\r\n const subscriberEmailFilter = subscriberEmail ? subscriberEmail.map(({ email }) => email) : [];\r\n\r\n // calculation for selected filters\r\n const countryName = countryCode && countryCode.length > 0 ? countryCode.map(({ name }) => name) : [];\r\n const companyName = legalName && legalName.length > 0 ? legalName.map(item => item.legalName) : [];\r\n const subscriberName = user && user.length > 0 ? user.map(({ fullName }) => fullName) : [];\r\n const subEmail = subscriberEmail && subscriberEmail.length > 0 ? subscriberEmail.map(({ email }) => email) : [];\r\n \r\n return {\r\n ...state,\r\n filters: action.payload,\r\n query: {\r\n ...state.query,\r\n pageNumber: 0,\r\n filter: {\r\n ...state.query.filter,\r\n countryCode: countryCodeFilter,\r\n legalName: legalNameFilter,\r\n user: userFilter,\r\n subscriberEmail: subscriberEmailFilter\r\n }\r\n },\r\n selectedFilters: [\r\n {\r\n key: 'countryCode',\r\n value: countryName\r\n }, {\r\n key: 'legalName',\r\n value: companyName\r\n }, {\r\n key: 'user',\r\n value: subscriberName\r\n }, {\r\n key: 'subscriberEmail',\r\n value: subEmail\r\n }\r\n ]\r\n };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\ninterface AdminContextProps {\r\n type: SUBMISSION_TYPE;\r\n onSubscriptionsSubmit: () => void;\r\n}\r\n\r\nexport const AdminContext = createContext>({\r\n type: null,\r\n onSubscriptionsSubmit: noop\r\n});\r\n","import { useEffect } from 'react';\r\n\r\nimport { noop } from 'shared/utils';\r\n\r\nexport const useOnMount = (callback = noop): void => {\r\n useEffect((): void => {\r\n callback();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AdminGrid_container__2qUbh\",\"flexTableRowHeightAllProduct\":\"AdminGrid_flexTableRowHeightAllProduct__2BQb0\",\"flexTableRowHeightMIP\":\"AdminGrid_flexTableRowHeightMIP__1G5m4\",\"flexTable\":\"AdminGrid_flexTable__3IhxJ\",\"header\":\"AdminGrid_header__2BnYZ\",\"detailsGridHeader\":\"AdminGrid_detailsGridHeader__14hq9\",\"mainHeader\":\"AdminGrid_mainHeader__34MeG\",\"mainGridHeader\":\"AdminGrid_mainGridHeader__1Qje8\",\"dataRow\":\"AdminGrid_dataRow__lPlBo\",\"detailsDataRow\":\"AdminGrid_detailsDataRow__pMdPL\",\"noDataText\":\"AdminGrid_noDataText__2_x-K\",\"gridItems\":\"AdminGrid_gridItems__1Fv0a\",\"mTop30\":\"AdminGrid_mTop30__3dOD0\",\"submissionPlans\":\"AdminGrid_submissionPlans__18p9q\",\"bgWhite\":\"AdminGrid_bgWhite__1vmtb\",\"paddingExpandedRow\":\"AdminGrid_paddingExpandedRow__20pbB\",\"alignBottom\":\"AdminGrid_alignBottom__VBXk_\",\"columnheaders\":\"AdminGrid_columnheaders__NFntV\",\"disableSortIcon\":\"AdminGrid_disableSortIcon__2HYpZ\",\"highlight\":\"AdminGrid_highlight__2d3ml\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"UpdateSubscription_wrapper__2InKA\",\"container\":\"UpdateSubscription_container__2Zp9z\",\"mainText\":\"UpdateSubscription_mainText__3CBOT\",\"dropdownaction\":\"UpdateSubscription_dropdownaction__3pLTf\",\"engDropdownaction\":\"UpdateSubscription_engDropdownaction__3akUN\",\"toggleIcon\":\"UpdateSubscription_toggleIcon__xBjqE\",\"option\":\"UpdateSubscription_option__2YBYh\",\"selectedOption\":\"UpdateSubscription_selectedOption__2ziGJ\",\"actionLabel\":\"UpdateSubscription_actionLabel__2yzbc\",\"mainTitle\":\"UpdateSubscription_mainTitle__1fHm-\",\"action\":\"UpdateSubscription_action__9FNVP\",\"placeholder\":\"UpdateSubscription_placeholder__3rUXQ\",\"footer\":\"UpdateSubscription_footer__2f11z\",\"header_container\":\"UpdateSubscription_header_container__2ZfUl\",\"border_rule\":\"UpdateSubscription_border_rule__3QlTf\",\"m_b_2\":\"UpdateSubscription_m_b_2__zI5sU\",\"page_padding\":\"UpdateSubscription_page_padding__3PsGo\",\"whileBackground\":\"UpdateSubscription_whileBackground__mIaIS\",\"titleRow\":\"UpdateSubscription_titleRow__1dyDX\"};","import { createSelector } from 'reselect';\r\n\r\nimport { RootState } from 'store/root.reducer';\r\n\r\nexport const selectProductCode = ({\r\n product\r\n}: RootState): AP.Nullable => product.code;\r\nexport const selectProductTitle = ({ product }: RootState): string =>\r\n product.title;\r\nexport const selectProductAppUrl = ({ product }: RootState): string =>\r\n product.appUrl;\r\n\r\nexport const reselectProductInfo = createSelector(\r\n [selectProductCode, selectProductTitle, selectProductAppUrl],\r\n (code, title, appUrl): DTO.ProductInfo => ({ code, title, appUrl })\r\n);\r\n\r\nexport const selectProductPlans = ({ product }: RootState): any =>\r\n product.plans;\r\nexport const selectCountries = ({ product }: RootState): any =>\r\n product.countries;\r\nexport const selectMemberFirms = ({ product }: RootState): any =>\r\n product.memberFirms;\r\nexport const selectFieldSettings = ({ product }: RootState): any =>\r\n product.fieldSettings;\r\n\r\n// export const selectCountries = ({ product }: RootState): any =>\r\n// product.countries;\r\n\r\nexport const selectFields = createSelector(\r\n [selectCountries, selectMemberFirms, selectFieldSettings],\r\n (countries, memberFirms, fieldSettings): DTO.DisplayFieldSettings => ({\r\n countries,\r\n memberFirms,\r\n fieldSettings\r\n })\r\n);\r\n\r\n// export const selectFields = createSelector(\r\n// [selectCountries, selectFieldSettings],\r\n// (countries, fieldSettings): DTO.FieldSettings => ({ countries, fieldSettings })\r\n// );\r\n","export type SubscriptionState = Readonly<{\r\n states: DTO.State[] | [];\r\n countryCode: string;\r\n isLoading: boolean;\r\n data: AP.RegistrationData;\r\n userEmail: string | null;\r\n userAction: string;\r\n}>;\r\n\r\nexport const RENEW_SUBSCRIPTIONS = '@subscription/RENEW_SUBSCRIPTIONS';\r\nexport const FETCH_SUBSRIPTION_DETAILS =\r\n '@subscription/FETCH_SUBSRIPTION_DETAILS';\r\nexport const SET_SUBSRIPTION_PLANS = '@subscription/SET_SUBSRIPTION_PLANS';\r\nexport const SET_USER_ACTION = '@subscription/SET_USER_ACTION';\r\nexport const SET_INIT_VALUES = '@subscription/SET_INIT_VALUES';\r\nexport const SET_SUBSRIPTION_COUNTRY_CODE =\r\n '@subscription/SET_SUBSRIPTION_COUNTRY_CODE'; // SET_SUBSRIPTION_EMAIL\r\nexport const SUBMIT_SUBSRIPTION_DATA =\r\n '@subscription/SUBMIT_SUBSRIPTION_ACCOUNT_DETAILS';\r\nexport const SET_SUBSRIPTION_EMAIL = '@subscription/SET_SUBSRIPTION_EMAIL';\r\nexport const SET_SUBSRIPTION_DETAILS = '@subscription/SET_SUBSRIPTION_DETAILS';\r\nexport const SET_IS_LOADING = '@subscription/SET_IS_LOADING';\r\n\r\nexport type FetchSubscriptionAccountDetailsAction = Store.PaylodedAction<{\r\n userDetails: DTO.UserDetails;\r\n states: DTO.State[];\r\n plans: DTO.BasePlan[];\r\n}>;\r\n\r\nexport type FetchSubscriptionAccountDetailsAction$ = Store.PaylodedAction;\r\n// AP.AccountDetailsFormFields\r\nexport type SubmitSubscriptionAccountDetails = Store.PaylodedAction;\r\n\r\nexport type SubscriptionActionTypes =\r\n | FetchSubscriptionAccountDetailsAction\r\n | any;\r\n","import React from 'react';\r\nimport cs from 'classnames';\r\nimport { Button as BootstrapButton, ButtonProps } from 'react-bootstrap';\r\n\r\nimport { noop } from 'shared/utils';\r\nimport { Icon, IconName } from 'components/Icon/Icon';\r\nimport styles from './Button.module.css';\r\n\r\ninterface Props extends ButtonProps {\r\n className?: string;\r\n size?: 'sm' | 'lg';\r\n thin?: boolean;\r\n icon?: IconName;\r\n onClick?: (values?: any) => void;\r\n}\r\n\r\nexport const Button: React.FC> = ({\r\n children,\r\n className = '',\r\n variant = 'primary',\r\n onClick = noop,\r\n disabled = false,\r\n href = '',\r\n size,\r\n thin = false,\r\n icon\r\n}) => (\r\n \r\n {icon && }\r\n {children}\r\n \r\n);\r\n","import { getWindow } from 'shared/utils/common.utils';\r\nimport { APP_PATH } from 'features/Routes/Routes.helpers';\r\n\r\nexport const CONFIG: AP.AppConfig = getWindow().APP_CONFIG;\r\n\r\nexport const OIDC_CONFIG = {\r\n authority: CONFIG.ADFS_URL,\r\n client_id: CONFIG.OIDC_AUTH_CLIENT_ID,\r\n redirect_uri: CONFIG.GAP_APP_URL + APP_PATH.AUTH_CALLBACK,\r\n post_logout_redirect_uri:\r\n CONFIG.OIDC_AUTH_CLIENT_ID + APP_PATH.LOGOUT_CALLBACK,\r\n response_type: 'id_token token',\r\n scope: 'openid profile api1',\r\n automaticSilentRenew: false,\r\n silent_redirect_uri: `${CONFIG.ADFS_URL}/silent-refresh.html`,\r\n accessTokenExpiringNotificationTime: 58,\r\n filterProtocolClaims: true,\r\n loadUserInfo: false,\r\n allowAccessTokensViaBrowser: true,\r\n // TODO: get these keys from api\r\n signingKeys: [\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'rRsLvkcDt4ha6BaNy8j16zP1eJg',\r\n x5t: 'rRsLvkcDt4ha6BaNy8j16zP1eJg',\r\n n:\r\n 'umOXxeNmVult1ngmW_XpwuSGwUcH0NH9FwbCmeLS5SJtWs2nI8g9KbFcEjaQbPJEpGp6xO4CgaXNy6OKyfuc7Xvu41g2gPksoCFqY9RXqYpUo9Cqt52e5EcXwqAhI7W9NdLE8nIsN09Y5E1o43_NwoRIPoVmwkN5SFoqGIY7Dw-ln-9nQg8Yuj5YTWTsZwxX6-0YGEbdYsaC_ZoymK5wB4Lr8O1hhqXJLYEkD7aShb9i6kB136Ps0aLDxkazQUTnYI15zmPRgY65Hu_a5wTyCS2ZBgusp_B0So3AD1G3Mzi2l0jwRB_breuMqHl-wUxxnEObOUm9o88F9uPc0FfxaQ',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIHlDCCBnygAwIBAgIRAKxS7o3uTtKVAAAAAFD93RswDQYJKoZIhvcNAQELBQAwgboxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxLjAsBgNVBAMTJUVudHJ1c3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBMMUswHhcNMjAwMTI5MTU0MTIzWhcNMjIwMTI5MTYxMTIyWjCBrTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCE5ldyBZb3JrMREwDwYDVQQHEwhOZXcgWW9yazEwMC4GA1UEChMnRGVsb2l0dGUgVG91Y2hlIFRvaG1hdHN1IFNlcnZpY2VzLCBJbmMuMQwwCgYDVQQLEwNEVFMxODA2BgNVBAMTL0RUVEFERlNUb2tlblNpZ25pbmdDZXJ0UHJvZC5hdHJhbWUuZGVsb2l0dGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAumOXxeNmVult1ngmW/XpwuSGwUcH0NH9FwbCmeLS5SJtWs2nI8g9KbFcEjaQbPJEpGp6xO4CgaXNy6OKyfuc7Xvu41g2gPksoCFqY9RXqYpUo9Cqt52e5EcXwqAhI7W9NdLE8nIsN09Y5E1o43/NwoRIPoVmwkN5SFoqGIY7Dw+ln+9nQg8Yuj5YTWTsZwxX6+0YGEbdYsaC/ZoymK5wB4Lr8O1hhqXJLYEkD7aShb9i6kB136Ps0aLDxkazQUTnYI15zmPRgY65Hu/a5wTyCS2ZBgusp/B0So3AD1G3Mzi2l0jwRB/breuMqHl+wUxxnEObOUm9o88F9uPc0FfxaQIDAQABo4IDnjCCA5owOgYDVR0RBDMwMYIvRFRUQURGU1Rva2VuU2lnbmluZ0NlcnRQcm9kLmF0cmFtZS5kZWxvaXR0ZS5jb20wggH0BgorBgEEAdZ5AgQCBIIB5ASCAeAB3gB2AId1v+dZfPiMQ5lfvfNu/1aNR1Y2/0q1YMG06v9eoIMPAAABb/ISU2QAAAQDAEcwRQIhAIHw8/wpR7aTW8M0cZh2Bvi+DCEn+mtoXnL1R4xsq6gfAiAMs5F4nxFkSxPrd8IaX0gIRU+t1alctt/H9qiKqUyKTwB1AFYUBpov18Ls0/XhvUSyPsdGdrm8mRFcwO+UmFXWidDdAAABb/ISU3UAAAQDAEYwRAIgd3UrtIE3iKoeENNPU0TwaxNM1ZR3+OeW0rhTNwcx6qoCIAOHBVo098/SYGOcHjROkqG650l3fVxLQUG7GsxopTiEAHYAUaOw9f0BeZxWbbg3eI8MpHrMGyfL956IQpoN/tSLBeUAAAFv8hJTegAABAMARzBFAiBEvp7ekAlCwD4V8Yz3DA5HP1RmkETqbnKJndlDTXap/wIhAKcHvlcRFFSd6MVzL4tR3gv3cv5GVSkTCzLQDp7CVSTYAHUARqVV63X6kSAwtaKJafTzfREsQXS+/Um4havy/HD+bUcAAAFv8hJThgAABAMARjBEAiB8DkKOfmuBI/q/EM5tRBlXkpYqbXYH65jN7jCo4FCAswIgYLmfBwEnFSXn4t1JFja1ae8ixayVWPrbUIHeHgFR438wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLmVudHJ1c3QubmV0L2xldmVsMWsuY3JsMEsGA1UdIAREMEIwNgYKYIZIAYb6bAoBBTAoMCYGCCsGAQUFBwIBFhpodHRwOi8vd3d3LmVudHJ1c3QubmV0L3JwYTAIBgZngQwBAgIwaAYIKwYBBQUHAQEEXDBaMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5lbnRydXN0Lm5ldDAzBggrBgEFBQcwAoYnaHR0cDovL2FpYS5lbnRydXN0Lm5ldC9sMWstY2hhaW4yNTYuY2VyMB8GA1UdIwQYMBaAFIKicHTdvFM/z3vU981/p2DGCky/MB0GA1UdDgQWBBT742OjupOakoX4xdUdV8GP12LtiDAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCQKRBQsD4ydvDMCuvgl3XwIj+uRZh5wJo2TmodJQ+JF0rAV8tFbb/1HLIdVMp9kji9sApgzSFEiBFo4XAoQhWRYUW8fJKi4qR+aGRHPZZeeyrHoS9i3amyjrsuftBls3ouX0+PdQb84kDTI31+elBi6unImjI6+0OU+uao1OMhon/VVP/gRGO0V94fswzXKC8tBEdCrmicOGw0D3olDXwjEh1fq7z+RRqz/dxtR9P4AhiHn5SpCgzRMZEVF+eE+qXq5l3jor8LhaB9dNEyfSeCtzEuZQ0YfZTqrxlyRMoAMvsEhZzyNNwzSn2oFTQXKUJJ8dc3uJNfZ0VESjLfe0m0'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'lTh6DMhotJqaCt22ukjZX3gZV3w',\r\n x5t: 'lTh6DMhotJqaCt22ukjZX3gZV3w',\r\n n:\r\n 'rNxht5fQOkfWzx9uXYNsGdCt63vy6QEV9MMlEGefwsiFxCa-FE2rBmVJqdLrQDr6dOrkEAJ4KmPYnB8mCgBl139qDgwM-QjvOuuwc1VSMIHXYUcjbS-a6mmA7SuB3KoDns6UwrwCdke-FlBLB50z8nHedHjrrnbLkVgVkkVO-aoRsd7sjMvDcKPCOUY9MeFGxYwRp70Tl-NB5TNvjq_43xqvKQYRvp_7oCIFDG1lTPx25lfpf5yovvVWyS-2gNdL2-QLESrXjwldsAh-AxNbgUmD7Eioodiui3fAn6xSp4AN8FIc_JVsWrVflCQrBIFB05u5otynr8Yry4RqNpSiLQ',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQ3BYDnFvzH7JGhj2j/zbBWTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE0MDkyMTAzNTEyNFoYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs3GG3l9A6R9bPH25dg2wZ0K3re/LpARX0wyUQZ5/CyIXEJr4UTasGZUmp0utAOvp06uQQAngqY9icHyYKAGXXf2oODAz5CO8667BzVVIwgddhRyNtL5rqaYDtK4HcqgOezpTCvAJ2R74WUEsHnTPycd50eOuudsuRWBWSRU75qhGx3uyMy8Nwo8I5Rj0x4UbFjBGnvROX40HlM2+Or/jfGq8pBhG+n/ugIgUMbWVM/HbmV+l/nKi+9VbJL7aA10vb5AsRKtePCV2wCH4DE1uBSYPsSKih2K6Ld8CfrFKngA3wUhz8lWxatV+UJCsEgUHTm7mi3KevxivLhGo2lKItAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAEMKE9GHv5JhhnsxnwT8VuufmH7gazTpw93oQCg4+22StUzLcHauV7cwyZ5QwZ4QQH0PvtF6zGTuVIkdcFOHBBdXG/yv7bknR+08GTihH3YYwDgrQVABETcGZX6WOPPLKpb7U8bOgE9cB1OPCfjlBN6S0xU3mnZjar3iyOqBloY9+pljaHZ6jbQqnRkwhbo+5VeNptHbfhMqMssqSjuNc7GdWorlcO/2S33p6H2ZCpG3bo89MaA1br/BtGpmZsDE2QAYDTkAfxrqeLqHZkhiDJs0pigSQwjPne8dLEWpwp8iQ/44+MAMYJo8fYPwLlS0Hn1HIeV6XTcVOsU0cNmy1xSm9VQ7A7g1R81igbFfoIfs/snaKTAbia+RS59VuHnXrffgbeMf358yFXE2eZ2njmIOBPJjaOrJF2aHPky4ZrTAGOvV8X9aG3d5pBvInKp+CNqp9LDVXxaCePHPXqRIcHka1LgRVHXuWwc7kL05fhxdVqwlPat26XFZP/+GjSyw0ovsTO20Fbawr9HwQBtpvS6BcNK6eK7Hfv6lCfwnouLx6P6AQMF6TfPxy/fBImXsYK5NWUWUl61vtFY7bTeeJFTuGK4frKKK1Ikk7NHIBf6Glpgy0K8qFC2bOlqHqPuqBJ+UPmAZ3YlVUfS9WsGF6mIVplCoITWaRbNhQ5AJ1HHu'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'hylKc-RUMhD11WyS_krJwBNWhJg',\r\n x5t: 'hylKc-RUMhD11WyS_krJwBNWhJg',\r\n n:\r\n 'p1kjKJ0pEXEF_i-Ey0R2VWemzoH9HxZcVlPUDGlkHs1drQEe9BPsl4S5PGl3V1LV66j7_sWTfT-loL1utzwB-yPxLDxDtR73foWBSRk6lAvsqIbBqMDeAq6AdL2wuia1KmqRjrQRmOJuV6ofZ0G1XgJ2VB01MNW4MXOnfEe5SQQz1F3wxGJPy9Q0m70mj7uRpsXNRiznnxSWO8VFwNbGfPn7t-EQf65yLmRd0rqhCw5_nTkvSxUduRH8nx2uZOIO2mG467-53iKWzP0QeC5vllFRnLrz-ukbTPtpdk5hhbgJcEvDrhj2VEOA8vyiGFPsp2iHqtpCWh4QBV42O04E3Q',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQgbh875rjjaREim6YzAScUDANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE1MDExMTIxMTg0NFoYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCnWSMonSkRcQX+L4TLRHZVZ6bOgf0fFlxWU9QMaWQezV2tAR70E+yXhLk8aXdXUtXrqPv+xZN9P6WgvW63PAH7I/EsPEO1Hvd+hYFJGTqUC+yohsGowN4CroB0vbC6JrUqapGOtBGY4m5Xqh9nQbVeAnZUHTUw1bgxc6d8R7lJBDPUXfDEYk/L1DSbvSaPu5Gmxc1GLOefFJY7xUXA1sZ8+fu34RB/rnIuZF3SuqELDn+dOS9LFR25EfyfHa5k4g7aYbjrv7neIpbM/RB4Lm+WUVGcuvP66RtM+2l2TmGFuAlwS8OuGPZUQ4Dy/KIYU+ynaIeq2kJaHhAFXjY7TgTdAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAB2Zch0blJtigDXXlYmBPMRdEHEGaNc3hv9Pm7U/V7eDBF29XvYEswKWQWTYK367tGw7xptL2Bcxuk9SoiQe7g0JYUITZdMiA2NVJD8LT5DI0nj9271hCj92bHkUWmtC5NYMsA1IEfvMcAcw6Dpwkhn+WB85ZwDUa58n+Z4gRcIZGNZjbwtfIp2meba2fDx3g6EB+olqoIstabY98NBd4OeTNYkpzOkMizmU2ueQQqyO5iLdeJZ3Psuj5Rk+Yw3KVSsob4Sy+NSl3EbGuwlGwiVZk1ol8yCD35436V9hM78my1p26pwOWRXryDmzvyegFjxpzDpIUGfbWAZAi3Wpbk5sTUvlqaudODF6kpuZwM4GBJNL2iCd8utBjNTePLyHoUsqn+KoHpRB9aVkelDBFV4qQECkuWlLQvQuohJiEqem4E2/pzGTFwqDtvFPGAm4u6nWflWzOgFg3LDSkyF0nOtKfwUv9XtfJxCnEal+vW0tD1pgqZtbGx2i3cbv8OTbfKnycZtvvVBIUQ99a4iIVg29czoIinZiEEzrqH5T4TMFUIwIUjRNG6IUC7C1mLFbvMPvkJjPiflX52Q+Lry6OLITuhfDHD1EIZAMRoL/nziwOxClDC67uJ0ljKIp4kHZv5fBD9POhCAScIzyWDfoMHTg5EyuFVyAwjUHFBbJAcDl'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'rCAa_eNMmrjjUEjZIGHzMk0lweQ',\r\n x5t: 'rCAa_eNMmrjjUEjZIGHzMk0lweQ',\r\n n:\r\n 'wyFLDVAv0Zmdmgeqf1NixXJPqoCnac5WBkCHVNIymkeCdFp1GIeyAIGaENvl_9_MfZYA8FPw6qLN-XwQbM2i6AruTLHqrEBQZlz-ea9uic0ZWjNI_aUIvm9eSjAKhHlAXtS1-CqRBWvKYF7_t6VAA9HLLhK_w9lb9OGt7qbHi2VJyK8BBUi02e2IyCEvnoaiwoK3KHPi_Q8p8Yn-pMbZhjpwKHgbpF1-XmzNrFmxw9ZzaLPo-UzfZr-NMI7hbqpNhSDm0Y5OgT0PldJ1kmUaYwNzo99CBS7D8lDVqH7QKfXKdPiLVzCs1VVr5fjRHOREDVDw32p2ENjBfU62QKQGrQ',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQHpTkpeW7cLRKkroqOHFvezANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE1MDgxOTE4NDIwNFoYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDIUsNUC/RmZ2aB6p/U2LFck+qgKdpzlYGQIdU0jKaR4J0WnUYh7IAgZoQ2+X/38x9lgDwU/Dqos35fBBszaLoCu5MseqsQFBmXP55r26JzRlaM0j9pQi+b15KMAqEeUBe1LX4KpEFa8pgXv+3pUAD0csuEr/D2Vv04a3upseLZUnIrwEFSLTZ7YjIIS+ehqLCgrcoc+L9Dynxif6kxtmGOnAoeBukXX5ebM2sWbHD1nNos+j5TN9mv40wjuFuqk2FIObRjk6BPQ+V0nWSZRpjA3Oj30IFLsPyUNWoftAp9cp0+ItXMKzVVWvl+NEc5EQNUPDfanYQ2MF9TrZApAatAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAFSX35fj6g4EsZos/1j6ICImmo46cugiJGu3lnM9j/UTpmeQzc+vs2bBNApzH0FbXAiNFpCK0+9piNL1HyQ0krXcaMYPlMt8iSIM8xoAItWbSGZeANp8OwYvPu2+qihQlIR0MRnztGUGPhpCdMRoS8b3Lb2OkfxS+VuvUfY1+CdFhX94hMqNkx2XmaQapwKUjQgMsAsmlTdakZz5Oyh5It9ikfQXI1r5YcBI1LiATsQGqIZs/PkvMaHoAeghlt0+Xt5aKu9ERPV+NrP/NdtKk/bZCLu85Xr5kIx2YNC0yohE4r6X97icuYdGac3DB9OeTWvBICqrIz+Uz6StsZJdDYgNgibxbVlzW0qMwgHUPF/vAjduOskjCf9cDcQldy9i+z4zD1JCWhUe31wjkoUd9GKG9iDp2Bul9qfyH0QuCxS9/UbBjH/wUKzO+MVNmLAUkRus+b/Sykv/pEGA4YUoO8cKCNtAoDWBnxKXLE/+tNO5jr51xLlpWA/XFdgt273SCKdH+XBuU+3WZnOnhF/aYfXKVKfH9gBNON1TJ7XKYfrjaPvvXT2H1nz9QRlAI2saTS4mHH4eRmX0mG3CdDG5hXs+E6a7WC8LEXJFsjlUreQs+4cd43msuxNYES1Lt7H2vgYg3BbCVybhK8MbtxKLoWLg1lknwUaAr92jnSaG12un'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'pQ4zekqRwh5PGC9SFmCIwrI-scE',\r\n x5t: 'pQ4zekqRwh5PGC9SFmCIwrI-scE',\r\n n:\r\n '01jcx7-toXBE4yGDWFwArOQBLzaIEFCuM1p9Eig9U9bQkpDBlhP2d-Kp61IuhFEEJmI4jwu7LWmVTmV3BVdTT3MEeHYslaJQ0_aL0HdRZBht04fF1a7oGTnuEJfN_DHqEZhV65B2kXU4w1nsBRN6rZ5r7kMdD5SLIoGn70iQZyd472O0Dpj8Gs3tiEwXyQuqO29v_PUYLltpGSO6Z91kY7oYqFhliO6V5SMI2Jf4MNvnJpq25vV4GIKfKDfuWVcE1kt4QkOQDcYDP5_U_dkdc8m_-kxGvN0YDjTOdggVwWsTuOaOQnMnUeomjnnwa3-VWN_rqFy-nKP9jbSMTHyNFw',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQj2lYD/ChkLpDU0IUYR63gjANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE2MDMxNzE1NDQzNloYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTWNzHv62hcETjIYNYXACs5AEvNogQUK4zWn0SKD1T1tCSkMGWE/Z34qnrUi6EUQQmYjiPC7staZVOZXcFV1NPcwR4diyVolDT9ovQd1FkGG3Th8XVrugZOe4Ql838MeoRmFXrkHaRdTjDWewFE3qtnmvuQx0PlIsigafvSJBnJ3jvY7QOmPwaze2ITBfJC6o7b2/89RguW2kZI7pn3WRjuhioWGWI7pXlIwjYl/gw2+cmmrbm9XgYgp8oN+5ZVwTWS3hCQ5ANxgM/n9T92R1zyb/6TEa83RgONM52CBXBaxO45o5CcydR6iaOefBrf5VY3+uoXL6co/2NtIxMfI0XAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBACBG9bBD/IJJjBzGgSMhc0lNZai8y/JQ0vMP0uSckKLEAvHeOdApeC8TttqUJC+xLmzgDJJqxLL4dMQptmo79hiMc4jQKJjUOLFT5cVuxMwO4wLEL5A2m6kG2pSZQseFbgHyI5CPcrTXFeSpv7OvfdEM6fV0jURbzBBVG8jjHJe8do0YdiMkzlAG/gSE0Wm3Y4e19VK5Y0WCduxZ3nC4u2v1HOW51C8lfleaFqdmCUJFJJKXlwVKjzY8aJQz96FKK/QFeCCCXyXpDR+6paFv2K6zQzxKfO0Wygy33BMMVGGZWYQmfjpygH5swOaGw0boZu9UQUREPXF7ULsIu3YYK7c0Hx9wAojFUSqW/62jVZ9CSd2tiC0dIj70IDsD0zw4u2vZSbktg8xZMUrw01iBoaB60xKowj8CJ+ujKa4RcGGjZJ3cbMy2MTd5/8XFOZiaehjw2pQbNVSCLmYYRvkFiTtKZK4ydn29zgQl99x3BMb51z6GEDKU4GLHzWRaKX1PUkpZgNQcbai17VLavSwQPzzgOZs4D1r4k6BJF/cxlrv2RVlHP6Kj5TNh7zvf+gmleLV3HhYQy8S7md3K9Jt1tTv1qgl4kBq8WyhpA2UgpmB9p7+tR/lElZrewcLlIxfjaqC3I9Vxla7VwXE5oOkQS6jGbF/RGMVh0t/e/S57Bdrm'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'fQzyR57MwpYHbKetTJNu2G66AQE',\r\n x5t: 'fQzyR57MwpYHbKetTJNu2G66AQE',\r\n n:\r\n '0Jn3O3QqfjPg07P0Kh5FN8woYiacGLdDZ3LthXVqJw-r-CdEUjn1WxzRdZUwcEUhBAux8oOagpbK0oIgwlUhuqFpEU5XhVizrXzGqwsVqDSmdA8K2swsP7rf13BlXyhQpjEmKkXUW_y7Qb3pBxfs6wOAnCJ2LxPWfeNe-EqJyr9tOb09Ks26kVAritRjKb97CvPzQVtBMdwujKkCSPPw1LEx5869u8dfbd1QeJEy1vnS2X2G4F_KbshOoPywbctX40MTsgtJN8MhJ9n36cv4afC4b9Qvf8Hn75MMqT5858V9d9eS7lsdWcBMAHBTW2OYEDZYo7qgfmIoXKi_MBrY4Q',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQPlDJJUBU/5tIHpbbouOB+TANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE2MDkyMDExMTg1MloYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDQmfc7dCp+M+DTs/QqHkU3zChiJpwYt0Nncu2FdWonD6v4J0RSOfVbHNF1lTBwRSEEC7Hyg5qClsrSgiDCVSG6oWkRTleFWLOtfMarCxWoNKZ0DwrazCw/ut/XcGVfKFCmMSYqRdRb/LtBvekHF+zrA4CcInYvE9Z94174SonKv205vT0qzbqRUCuK1GMpv3sK8/NBW0Ex3C6MqQJI8/DUsTHnzr27x19t3VB4kTLW+dLZfYbgX8puyE6g/LBty1fjQxOyC0k3wyEn2ffpy/hp8Lhv1C9/wefvkwypPnznxX1315LuWx1ZwEwAcFNbY5gQNlijuqB+YihcqL8wGtjhAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAEHW+2sH3suDkNpOQmdLnND89y1PRqrx1EyEEP422xvTwOCXxc3j59uxlPmmfDCCWPcDs0sbNeV2CpkQ2wmuzLo3Y7Ea1OmK4jv3d5DOdpRCDg1pWfxWP0W2lLAPzBsH7gfQ6QKMqSAnguxwNE47bSX433ieoGZkQY1AaTbBVOeJEm60rabHBAO7nR667Ul7rrc1oSctELulVOQyDQmmZLrHKF+jjXfDbNyOVkx7S3wjBz1oAutiliBqSoD1cu5Qzh+lfFEJnD6XBeuoFPOAHCiM1prPWyNo0hNdD+kMyDZxhs99beyou6WRVeOKDQn/4RTQCZ9p7EnPwQSEfmHLRas678VO1xp9ZVJKJ5aFO+AGAF1QETxSvIV/Go/M1+nzYPD4mSh2vAme0OPg5JnvLTE478pB2yBJsk4/Umn14HKEq5kkdr4hJB12XP/u1They5KaMGq5xywK1QBMJvljRlvuB3JjMD1f6PEsYG8vj3GFW4vjZqoro0O+bQIjrZCHJ/IvSrp6Fo4QBK+FoIAxbllD6S9ERcHSWV5GGjXEo6Y4NTyvoJNl6I56gVfD6lXIsScB0mZSyXpZyoP8IswiNf/ZDegfwH6MMxPRqqoNRQyN6+kEexh/pKeTYQcvl95NBsNt/tgH0uOAQsm/UYrF4bu8IIAbbVlS2VwJknYxJqRt'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'L_ARR98a90baGn4yuXkoc0Gy4iQ',\r\n x5t: 'L_ARR98a90baGn4yuXkoc0Gy4iQ',\r\n n:\r\n 'p6VwYO-6mW2dL2dDE8QD4UOeYt9XF7g5h2N5njvGyDQZ-jNqJu-sTmIEhK65l5l5yvYaglAUl9x7x05nmzv07wFlt7zwc0cpWL8y3haSn9n_U_zoQKPgQG5OHgd4yXS5iDycmhUUCEMHJN9J-w05KVwacXlpZGXOwGthbq1UyPoBooJn_55Eqx2yHzKjXgABROK2r-sigKBOVuzF6a92SFkSv3NB5t2wis22sU8q0Z9yQJNkfeQom2Pqhj6QZK515QhpKfmvEfl0rZPVs7zJt4_hD60aVx84Nzu-yTD00X2-8b748a4VwYjLWJ2zOeVUWg8UKg-VTDnYpWxLSzoHbw',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQPql4TAjuYLVPb7ELTPkdGzANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE3MDkyNjEzMjc0N1oYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCnpXBg77qZbZ0vZ0MTxAPhQ55i31cXuDmHY3meO8bINBn6M2om76xOYgSErrmXmXnK9hqCUBSX3HvHTmebO/TvAWW3vPBzRylYvzLeFpKf2f9T/OhAo+BAbk4eB3jJdLmIPJyaFRQIQwck30n7DTkpXBpxeWlkZc7Aa2FurVTI+gGigmf/nkSrHbIfMqNeAAFE4rav6yKAoE5W7MXpr3ZIWRK/c0Hm3bCKzbaxTyrRn3JAk2R95CibY+qGPpBkrnXlCGkp+a8R+XStk9WzvMm3j+EPrRpXHzg3O77JMPTRfb7xvvjxrhXBiMtYnbM55VRaDxQqD5VMOdilbEtLOgdvAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBADvfyui7YQ2zfLs39rTbI8qAOxjMEjqWBCU+9VFVrxESfvss/wTdwHFAbFCmMWx4v4g4lFEJ65CJku+uq6autRgC6ASe715a8x1Jw+jABBVl7uPAehAB4bI4Gez1gckh4z82uIwKIspTVNuy38TbsaRGMSyPzIy7DK3YzZFelAkhfEZqboJ3vA8027Yz/c87b/uk9BerHcndSJI/sjpayft7GN1OTKstMrxe0kx0tT7ChEKuVGotdL0vkKdA0reJqcQAoJlEcVAReX0jmTqPvHj0Vu6q96UbYzvbWwcpsrBv9xFhylH+jt3cW8kXiFqZeUdakZ7lXIkyNf4c9z7rSA9Y5suU2/TcKMetB6OjOXDD00Ti9xk5u7uhTmi6PPLJNfWagdom0zdENjJ/Bs6FXL7EvyrT9OLGg0PZVaxjBuGZTtBCqqK+n5C8TxAlsMbZhY9kU9Yc5DMaqTRB8i+My8FFl0DTT/dcRc5hSe4F42oawZLvvaXxlH1z+kruVogt6zUpIyEoE3fDtcluxXoi5i4UfnvAPUWOUMqGfyVuJbMnKbKOsKvOd7YaC+6CiHWeqGqWMXYhGz5Sok47miQkyrVVSjvdjHco9A1VNXKDfE0W7kxcSs4Mh5gF/GxsxBYt/KzPfdETuMlMXF+N1R1hNjfogTEfJg6Yuz4bIPPOpyZy'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'ad_YY4D9BoMjKouW5vTdJviWh-8',\r\n x5t: 'ad_YY4D9BoMjKouW5vTdJviWh-8',\r\n n:\r\n 'ttXiFOz2X09zqFZxgkUEgwxfAn2NTpNW6Uon9tze-oyr0Bx9k4CzYRKxSvSXXPzG6EsesshK5KT254Bx9KwTBgUdkkVwsj2GuoXMIsggN75eF5lYUPNKZ4Q-7qGSrkHVEwFkXWXau9gM52o0E2Ox5iLgPj_qvGS2wor4rzhq1EKS29l7eFX32NeiO8UzDW877Wi-OsWBESMdqdvel5P3QcqlCI7OBW5MTPZaYQ8TCEuLMw0RGTG_ImD7EFiYEYYuJvoEVNUbVvqaTOEiFsnOavdqF3nQ-jAoY_aip95gitGxuVoTog4fAgfXVVBWyz5TT-5JVIQ15p6IzX9xXbPsEw',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQbjpGBVO/MqdLti5U6NCHADANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE0MDYwNzIwMTMwOVoYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC21eIU7PZfT3OoVnGCRQSDDF8CfY1Ok1bpSif23N76jKvQHH2TgLNhErFK9Jdc/MboSx6yyErkpPbngHH0rBMGBR2SRXCyPYa6hcwiyCA3vl4XmVhQ80pnhD7uoZKuQdUTAWRdZdq72AznajQTY7HmIuA+P+q8ZLbCivivOGrUQpLb2Xt4VffY16I7xTMNbzvtaL46xYERIx2p296Xk/dByqUIjs4FbkxM9lphDxMIS4szDREZMb8iYPsQWJgRhi4m+gRU1RtW+ppM4SIWyc5q92oXedD6MChj9qKn3mCK0bG5WhOiDh8CB9dVUFbLPlNP7klUhDXmnojNf3Fds+wTAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAAWumgzxj68LiobYPiyTeLWJT2evZ/wmE7OU/dBITiYrKn9juSm/eYMbnuNsc0+yg4rHtEt/19DhH2YX8/C8dKo0V5/dOhubbZA2TzBC9jdv87+nZ84axy5UtJk1PrZmYFz9yvW06je2fhWHDZGf+1Kv2FwVJxRnOmWxqHaO+dBjszOtQKoL621QLnQHzchEtNVtJ71jSKn+wkWbo/Be8Vf1VYhuQuRJ8O0G6PzxLwUEdbG2mj+e3ey1qZqerJWrsWJcf6CfC6tqeIl5xjT7BWSvMUTOUsaEOnG/WBxVZUisRniab85PIuSiW7Dl+mbcNy4x5pnSyr/CYnJIJuVWHFc0nDgf360HjwzDxERroW0sVVgAIN8wymU5Tk7NHaJA2oy7syWtCdkMHYI5ijHL6p6/0SSIwR7Uxj/Zl1GWoXhNTdYS/JSaL8xzPXtVWdG5AtS0PR9VxzR7+6POV1SRx+iz44BrqWOkJuiXxjpo4n1pXWguKHInsDi8EYX3Jx/Tx4t0jnBa9CQc1qvjxcALieA7DLWw6gayUZPO1syM0u2gctEPBs++Y0TurxN68N0CUZjweQhw0KJKTUmrqsF1IMbgU8dY1KGvSCwYt73q8N9busselv9J+/xhjU2X9WzpVLJjWAs4+8vPwpAtw+GJlTAnnUPJlVwFZW5ViNKOpceg'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'd66pn38ggxS49MVSuK3HLRFPFyg',\r\n x5t: 'd66pn38ggxS49MVSuK3HLRFPFyg',\r\n n:\r\n 'xO0Zg0RGHMQQVI4LYqJGYUPtvgLMpg64NG-oOsp0mWeihF2TY0R9ETsZzEB4sORvKUnkJgSgIFMyaJbGLEE_kZNRJBNNcNJY8fslJq3iLd2Qlwj50bbyoiMcClqk8wLFFJuwoxI9xgZlJl-mZR3myaqv6uQYPV74KO8N-_oCiZ-hbCYDAKGxR3VErvMP9WsuCdP7h4CqYxEykH6i9_FXqCKyJWi0h8dB-qaT_kOzKAFVicbmqJ2PNhr45LNb-zXwVXbCB9hXaM6IlUs1mcn70AgtYTl7EUkQ6xmGtp3myQE7wKOrmJKp7MNy1Tmmz5G7-Ii689tmC_vChBBkwCymKw',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQfK41ptdJpJNBNUGNpVZ8MjANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTEyMDQwMzEyNDczNVoYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDE7RmDREYcxBBUjgtiokZhQ+2+AsymDrg0b6g6ynSZZ6KEXZNjRH0ROxnMQHiw5G8pSeQmBKAgUzJolsYsQT+Rk1EkE01w0ljx+yUmreIt3ZCXCPnRtvKiIxwKWqTzAsUUm7CjEj3GBmUmX6ZlHebJqq/q5Bg9Xvgo7w37+gKJn6FsJgMAobFHdUSu8w/1ay4J0/uHgKpjETKQfqL38VeoIrIlaLSHx0H6ppP+Q7MoAVWJxuaonY82Gvjks1v7NfBVdsIH2FdozoiVSzWZyfvQCC1hOXsRSRDrGYa2nebJATvAo6uYkqnsw3LVOabPkbv4iLrz22YL+8KEEGTALKYrAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAHZo/7mYxRnXG1+BM2RH0dPCCg9FkK5ogrX62Td5GwHYX7yzS+YqyUIE2AynOfvC5iC2zWjYegt46FBSeVkyqK+d6Afz0S3JjjqIbydkQZ3mTci3y3SFaYWun/a165mlMENWHYjJdHttY7BR1k8Db6fjb/jSCkvpn3xn2+LCgapEWbKdPP52pnNxOyx3BQ8eerhUo8xGLDLfxRCaCVBBapHR3lR1sA9K3jYeK9jBgs9ujpTx/DEaCrRrEBuNdnHF61621Ph4COkArX7kRfyzGzxOLCdDJnoIUtyNR4CQRL1+jIxG46dSTAfZjnj68Lgonj6Z/P4/wF8rtuMesY10ruXtVGKglINpmVASWDAz1ig1xU5+4wrXqsGSmi7X2BPmYZ3H6DGQOaJBIJC2qyojYlFsqZKP4K4P5+VNitczr9FemQBObzgprJqOoq38uoTCoAL6EVSEuYMVPTnF+KRg/Cb3LZM/kmV5R0u9fuhAh98hBgrkmd9lsMlZIP0qR0costT7IPo3cea+dBayaZJAoL9rIxkQqQpQrXi6Hsr+d8dMS8VaVb6XBfZvp5DtYXmMLw6fqH7YUrpUt9bjmrkgQEfpcwUvOqTWDwQj/jMXyJMyDYWf6QguV5IS/yOkTFwQi9HL4cGp8EtcwRdUcb5X2BtiFyDEnPaeBLIaq4nWR99l'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'gOLj7YyzcrDKqaUQbsZpHiqYtn0',\r\n x5t: 'gOLj7YyzcrDKqaUQbsZpHiqYtn0',\r\n n:\r\n '-uvgrSKtjFPxwTTc8HJ2PrmMKvcAjMujVDuH5IdeJyJXqyrvMJzjpGCYCaXJNZbi2ThI6gx3MQ-W32b0CZfuGDC22ydwM_ypkCFnvIZwme9Clir0H6ponDSWHKB_l9m9ewu6Snrea3zD5VttLi1j_AcGRN5nikvXRcByev0-CbGIRhSYhuvzqbl5SZHcFdRRqQTcPmJyPFhVs3729jg6zSo5kpAQvgTdeJs6sT6sdiZSohXKV25OfaR7tAFWGZsh6fZhuDb4fAdOYHvtEflSVCz6RGZFJIgttEX81ETLsRyci0YtVMlbG1DFgfFfgvMOq2AYIjvcM1x2Tgk9_9Y2rQ',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQ4yBQlclc6rxGt34EuLbukjANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTEyMDkxMDEzNTQzMFoYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD66+CtIq2MU/HBNNzwcnY+uYwq9wCMy6NUO4fkh14nIlerKu8wnOOkYJgJpck1luLZOEjqDHcxD5bfZvQJl+4YMLbbJ3Az/KmQIWe8hnCZ70KWKvQfqmicNJYcoH+X2b17C7pKet5rfMPlW20uLWP8BwZE3meKS9dFwHJ6/T4JsYhGFJiG6/OpuXlJkdwV1FGpBNw+YnI8WFWzfvb2ODrNKjmSkBC+BN14mzqxPqx2JlKiFcpXbk59pHu0AVYZmyHp9mG4Nvh8B05ge+0R+VJULPpEZkUkiC20RfzURMuxHJyLRi1UyVsbUMWB8V+C8w6rYBgiO9wzXHZOCT3/1jatAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBADyIanBV5NdHs/OISxPwApXJ7c0gD8OrD/JcpNW6Nb3CODZE9cUcETblteIzSHCS1b4r0Yvx8+Fm48+S6l/2SOQ8cSBbG/YjEOXULkWxdVeeyxPMA3JBUlzCFmrYIjbEgqQXqWZiayi/Y0Wn7d4uwPOCJzRFIZQlpmctL+ZpV1mlLIaIz5YryusAfYFB+JxWmpLPZOEoiDVoXyQbAtHj1BvwHv7+rVt0+fOgoGlORPMPSR/LRL9MKJpFUU84eN7+dD2vHnpbAViWDijNX+XfU7u+Nyr9317IzSjowmoAcWqkMeApFa8MPB6MNVXgAot18BK0qb0m6jnwLR4QiUsA7wGnz6jeRVdQOeXUQl3B81O82lBxBWEoGlJTH8Lv/QtrsiXRIh7RXsLTSdKbr0++P1kH3TyR7rJKnOVcT2dT/T6PvxLrUw2LhznP4/9nSsWaoPrXuLRFaE8Nhal/0Gwvubtf1ffCe8c8Ohz+6YDjxfIDV4P/zsEY+YUJDOV0rmwbLfeWyT/kKrGKyUKOXCuO2AjNY3Lyrb7/InsdmGUqOg9py0HBT7WN592kw4OYT3fwpT0JuiA/szJojTA9ejwVnjrWSGcXrO0ig/zUO/59Eh94UTSwQXXKjAwRbF6qWXIEkmsAY+aIkihFk/+8GWaH47HleR3uQkiyRapVEqNxFfg5'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: '5rZv6oLWxsNWF1E_NHtFHzTBQZI',\r\n x5t: '5rZv6oLWxsNWF1E_NHtFHzTBQZI',\r\n n:\r\n 'm_s-R-1pN7LYlGDZZGIqNzzUAPDXIMDvZn-GcRpToEd8pN_hGYuUHI62BEtqcrwaSCFt0uCvx-Q7mlFU2DPdrDrfcfWba78STJHapW_m7Hr11haJdJdarvodM__C8lxxk_U4SF_DefJl-zqPdb4mKBwHqKaK3GHqKjvYGNm0-x1LjjxHK4ErDZyusj09yVp2RMZ9fga2s0tyIKm6IpjkAATuo_8C1_fQMB-jszVoRfBi-UoeCaPEjA-eosYUkf4V8T_XS4dBPOGH2GM23ktQ2EAoqsYDoXTdCLQQ5Dkb80AZboc-Ds1H4np2DiDqE9hbzoQ6mpz2vVFiNPycdzWOpQ',\r\n e: 'AQAB',\r\n x5c: [\r\n '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'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'qma7m2oE9T35muGpbEJAOLd3GUE',\r\n x5t: 'qma7m2oE9T35muGpbEJAOLd3GUE',\r\n n:\r\n 'wjyRzL-_IWqg7NKocbOJJVPbhsqV9Yj8D_yZaDnMt-tAeJfd_BLgwY1XnUOkPJEOUNR4o5ijqYXDVIFOIYvKmMHgRFroTu3YZaQTB67qrllxD5pm81LB353haf-cezMX7SgV_ySafB-LrT_isExfC9JIuoW5Nlu-0sgNclGYUy1n9beZzll3lxWduPoAodaEfuXdqcebJBnVMIGsyR5IplbhFJ6BAv2JM3fBIAb2xq--ARHwRlYrlkK12Sh69J8d0bHRBGLnnZPIUKdzl8_2rgRvljGyGnhYpS5ycsT5SmX7QQS7OB1a--XDeAQ4EQyVkvTh5anX7fppKLDdpox1PQ',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIFkzCCBHugAwIBAgIQWSJCuGFx+yYAAAAAUNwWPTANBgkqhkiG9w0BAQsFADCBujELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEuMCwGA1UEAxMlRW50cnVzdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEwxSzAeFw0xNzA0MDQxNDUyMDNaFw0yMDA0MDQxNTIyMDFaMIGuMQswCQYDVQQGEwJVUzERMA8GA1UECBMITmV3IFlvcmsxETAPBgNVBAcTCE5ldyBZb3JrMTAwLgYDVQQKEydEZWxvaXR0ZSBUb3VjaGUgVG9obWF0c3UgU2VydmljZXMsIEluYy4xDDAKBgNVBAsTA0RUUzE5MDcGA1UEAxMwRFRUQURGU1Rva2VuU2lnbmluZ0NlcnRTdGFnZS5hdHJhbWUuZGVsb2l0dGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwjyRzL+/IWqg7NKocbOJJVPbhsqV9Yj8D/yZaDnMt+tAeJfd/BLgwY1XnUOkPJEOUNR4o5ijqYXDVIFOIYvKmMHgRFroTu3YZaQTB67qrllxD5pm81LB353haf+cezMX7SgV/ySafB+LrT/isExfC9JIuoW5Nlu+0sgNclGYUy1n9beZzll3lxWduPoAodaEfuXdqcebJBnVMIGsyR5IplbhFJ6BAv2JM3fBIAb2xq++ARHwRlYrlkK12Sh69J8d0bHRBGLnnZPIUKdzl8/2rgRvljGyGnhYpS5ycsT5SmX7QQS7OB1a++XDeAQ4EQyVkvTh5anX7fppKLDdpox1PQIDAQABo4IBnTCCAZkwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwuZW50cnVzdC5uZXQvbGV2ZWwxay5jcmwwSwYDVR0gBEQwQjA2BgpghkgBhvpsCgEFMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly93d3cuZW50cnVzdC5uZXQvcnBhMAgGBmeBDAECAjBoBggrBgEFBQcBAQRcMFowIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmVudHJ1c3QubmV0MDMGCCsGAQUFBzAChidodHRwOi8vYWlhLmVudHJ1c3QubmV0L2wxay1jaGFpbjI1Ni5jZXIwOwYDVR0RBDQwMoIwRFRUQURGU1Rva2VuU2lnbmluZ0NlcnRTdGFnZS5hdHJhbWUuZGVsb2l0dGUuY29tMB8GA1UdIwQYMBaAFIKicHTdvFM/z3vU981/p2DGCky/MB0GA1UdDgQWBBTmRhJulcRX8yAianFGu5bHE8z9qTAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQB8TqhEONIxpXIGWlsuM+nuQGf8QnDL7vpodABBEQBqReKSPlNMqfzbJ4KNIFRzh3+OqIaWzF8OkXJBvhotRErVplDCpCV7EE8vqJkTOAmCX0rO/6POkwXWkHSLjKU7l+Yi0irPpxZsN3Pg6yN6eG6bq7F1WGAvC7GRBgbW2nIlAZAGXWwc1Q7S7nRSDiF9hGVcwl3juh5LzripHJk8gzfTjcWA7gn/Nq3J60YRy0a6Ki/hs0v+csSgHusl4frwOjwYBH+pRQvitQumfrM7O/IknktN6QpaiipYp3lTfRxMbjG/FiPPgAEN3OTdhD18YtXsTbb4eiEuTBUCZpfH4Q5n'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'tjVzJ33CeWYvZQRNdNbnfldpsZ4',\r\n x5t: 'tjVzJ33CeWYvZQRNdNbnfldpsZ4',\r\n n:\r\n '1PLhe_wxDcX35aq66-hWud_4YaWy40NGRtmuW0JXF8CYEQSv2c4JQLZtQJEh1_JFqzGMFNMUttZKrZxIO8cIMVh3XUhpjK8U9QO4iGWjnWI1bH4TZ7pZYhDR5d-dHIqob9fi-cEGbZElokpQf4ttKicNaAx6EsupPVRsE7PXKhm_lacUP_iUoYFJ7TWwglp6wXpUO-WMI96G1KRtYoGQRoipYpUzWvVPoShRd6dWBcTyGvUqOm1hCZbXf9pF6d8j9k0mhG0p9Kam4nDMDGWg3nOglDW0-lbQgN-OhfJBShxeaWk1qNJuvVZ6-IV3hBkGbj2i2XlWHYcYiKX9TeQsWQ',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQSxrgulPVkoxKyb9jKEZ+yDANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE0MDcxNzE0MzAzM1oYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDU8uF7/DENxfflqrrr6Fa53/hhpbLjQ0ZG2a5bQlcXwJgRBK/ZzglAtm1AkSHX8kWrMYwU0xS21kqtnEg7xwgxWHddSGmMrxT1A7iIZaOdYjVsfhNnulliENHl350ciqhv1+L5wQZtkSWiSlB/i20qJw1oDHoSy6k9VGwTs9cqGb+VpxQ/+JShgUntNbCCWnrBelQ75Ywj3obUpG1igZBGiKlilTNa9U+hKFF3p1YFxPIa9So6bWEJltd/2kXp3yP2TSaEbSn0pqbicMwMZaDec6CUNbT6VtCA346F8kFKHF5paTWo0m69Vnr4hXeEGQZuPaLZeVYdhxiIpf1N5CxZAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAEKS0Fl6n9Bi+qsJx3xRjxmAKPA3NQo9tEdvQKdQKe3IAd3n2Vqfxm/PvuV4+20tOvDQyWkFUPqbLXMozPz2epG2n7cqQCyyM1Q9Tl/8I4UZgmI5v6aVMS17giw4sT3xMqMLyq//+dinJ2P7md2K3r5PZYskC38UOtcEMm2eLgQNqZEm9ibpNiLAxWSnvjvtDrfD80a9TRxUr4iYvcEu/QbvXjeIeGbj+lf7boH/AGJeBpdnmas9fGMh0iViXbQ3fSVGEJu8UR0lMumIaG8m3mFkzx2UOjFcwGDeuqvGnImoDIhlCvc0PZKSET1WbqRxa+jWyQHpOTyVxkeEq5mhzPxWcSi02cOPCappoe6To1WTUNv8OuHF5fNCFVTUc6waSUfZoJfERA+K6jQ65+xelWK18pzcSwuWnIaSLwrss1ip1w/QG95ooGbbsUaXWgs4TWpJ6RGN15FLmTGDfKF4At1oqaY+fXC9scZxszGH9pcojjE8z4J/10n6nN98Bcza75px6vwqnZz6w/huATyLS7iNJbuOzMFhD6dpbfQXy1u2s3PKsaZmfqlDgnki/T5Yog7IqISD2JSl3WrtWtk1kzHp/43JzemySvZTeSGNHp8vDqzLDFHgHTNKTVh7DrPzkKeyQS8hAe3vxrok3aB+UbwPOcpzn371R9TWREWechdO'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'hn5SkjY4p1mQHxCqiasDWlH8--8',\r\n x5t: 'hn5SkjY4p1mQHxCqiasDWlH8--8',\r\n n:\r\n 'p43F8Wv4Q-t66fUg0gmXYO-zEXeeUxErIygA46_8HDBhtsQ3Kki7GVe88OcpuimtKwkP0aQs75fx4oHpI4whUAobRHcuHsYQS867yF8DhW56Evr5Gbu2eOfckUjeyr6AeAblX1L40Lqa4dCbeZESuEW4UlYajG0Mr5Tw5OO173iJk_cJaHI96KmCeDJXo_-RKXdVdD-wFKcKniTmiilmq07P_zAd5wubqp_MnLmm2-iStVB9U1P69Nm8kL5zwDVcUVleWu02KOwtbHz6OQHJu2__Qq00ZI989KQZ-wNd_E9rEfYbSnvyVIgS7xrMikOYli7Z697qwHr0xIUqelfVFw',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQ4pYVtvxbaahHKjS/zG0SIzANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE0MTAyNjE3MTkzM1oYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCnjcXxa/hD63rp9SDSCZdg77MRd55TESsjKADjr/wcMGG2xDcqSLsZV7zw5ym6Ka0rCQ/RpCzvl/HigekjjCFQChtEdy4exhBLzrvIXwOFbnoS+vkZu7Z459yRSN7KvoB4BuVfUvjQuprh0Jt5kRK4RbhSVhqMbQyvlPDk47XveImT9wlocj3oqYJ4Mlej/5Epd1V0P7AUpwqeJOaKKWarTs//MB3nC5uqn8ycuabb6JK1UH1TU/r02byQvnPANVxRWV5a7TYo7C1sfPo5Acm7b/9CrTRkj3z0pBn7A138T2sR9htKe/JUiBLvGsyKQ5iWLtnr3urAevTEhSp6V9UXAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAIdIbxkhmdCYBZR1pXsDQXWxgDwr238y2asCGO8znkZu+ggQMDJA2khIfukVJO1jaI/JQ4Le1uC9KcSKWgwu34wQOq0YOmMWMT30RlFm+V5nMOMxfuv6n6KJqWUoB0akm1wLa8MeZXmAZb/qM6qgaHgpeWN9GuZcQ7ID6JhGtFB6BnMnRuT6AxVcpBFIm57nLiKv7dh5vIxjFzmXWbEJ9ei+lxNvsg0rWjUMQis4IHPkMtpWplTHm1SqLCos/hY9uAlJOiRycwvWQk0TB0nijDQ7sWu5Rcn8/UkGD9uLtX8c0YhrXyxrhQNq8J57baYEtVp7UgSenPeDQXO6wUWNVXSlqKV5tcweEGeNX1zOhulbmTmouwfXuZfMVG5Zu4W3wo2GHBaX8xyeN8ggeEJmyK7S/j8q8xyEAr6OHQTeFQIbBEjKPNCPO2GgWWZesJynkc+UZ1SA1y6KYwwBAn7ZjJuXpRMsEQMcKO+ECWEGQIV2H3ONulj6xOBEbEe/KoTmc6Q6Nh2n8lUXvBYFG8/Nf1VLaKzPSlXopFYjJmA0/fpWqmNABsOsV+p0RMJO3ENlZUMjLWZAJkXzi1Kzc4Mnht7+G0DThXN7fhapy8wOS8TjJMZhc0C3G3Zla6LdUPZqBApMFAVQbFU8V14G71Sukf5X2d0hKZQW9ZEu5TCubLMz'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'KTkGV-CF2yQGcdxZRZGHxMXo8mc',\r\n x5t: 'KTkGV-CF2yQGcdxZRZGHxMXo8mc',\r\n n:\r\n 'v5kgAbMPGE4CkpT2UpK9mCBL24Eq0Vi2uZNt91Ujd1H_bRNdA69REVdcthbNGGq5DVmWE-TXBKXzpDHvSX81JPbIlu8lb3kgl_tMt9-sINwXL6X5YxKzHNh-HLgNje46tY6STtd-z6QiIVBzNMUIPvpsBhppnwHxHlOk2IFARfASP258x32LnJbGvgKWBdcDbY5tocToD16ctF9NSO-_IWyA9PuauE5DhALVU3EcsieyVJq3-Vhq-yakHrIAgKu4HXnohXIZJTO77WNrlMd1WLlR9NzMS3tq6sx6rA5Bcak2mZu6NZjgXE9EQ_7f2Ci0OmT71CODVZj5itW-gSNnYQ',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQbUhUfxvwtZxN1Zt6YNcyXDANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE1MDEwODE2MTU0NloYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/mSABsw8YTgKSlPZSkr2YIEvbgSrRWLa5k233VSN3Uf9tE10Dr1ERV1y2Fs0YarkNWZYT5NcEpfOkMe9JfzUk9siW7yVveSCX+0y336wg3BcvpfljErMc2H4cuA2N7jq1jpJO137PpCIhUHM0xQg++mwGGmmfAfEeU6TYgUBF8BI/bnzHfYuclsa+ApYF1wNtjm2hxOgPXpy0X01I778hbID0+5q4TkOEAtVTcRyyJ7JUmrf5WGr7JqQesgCAq7gdeeiFchklM7vtY2uUx3VYuVH03MxLe2rqzHqsDkFxqTaZm7o1mOBcT0RD/t/YKLQ6ZPvUI4NVmPmK1b6BI2dhAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBACFKDaGgK2Axj5oB/RWZcmdNzoGvf5M6d5yB73Jq2nMmVvKl8nvR18k8cDsxQ2OhU5ToP9TPLrHay1KSzDOv8wvRRmxSs8l59fzId7ml7aA1beFcBYvgepiA3Iz5nvV53zQmBbP9IisSeAlG8m2BvOU+lsRmpsO6ZS/CTnEi+VHGLxu00bL6uCxQPoYGGB/yWbtMSLbAXAaLYsaY5WV1zvAqOk1tj91r0DhkQspw4j6HJGF6wJa2wT/XDYnnceN/lyl/wnjprruYOxPpFo8mto9JoOcNag+qdntQjNU3n7d1YbeefS6rU6aUV8sJmgkOeKt8WrquBL2+qbC1v8LYTx90X/rhHDZjJjGFCHIkIEGy18pnwlycgcVnii4+pbpUCurEwVTmC7Jy1hozV5a8mndqlA6+LpLFV09XHMyWDhefcQE8yJWyOomzqnJEh+JKIAy3qYi0CFiyxc89giLK+0moMCeLajHViBFNrhqm3qEVtfXrd8+bagaDi0OQJKgyiKnpGz5bJuElhqHS6RHlSMEeCScT7R4DXGm2S+QPLZ0IfO55NPXOR5hlOl8bF2WPybOYxxs8TlQEyo9cuAPT5dwhW/j6J0Lin+mmpxZXY122WgwBjUMPZPEnvbafBA88bvLfiXHnYfSjby+FEe0zxB+7pC+yiKhJtcyWqzUtKXEN'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'OCjVjPlFQj-OP48pW7vgmD_Zt8Q',\r\n x5t: 'OCjVjPlFQj-OP48pW7vgmD_Zt8Q',\r\n n:\r\n 'tWrResj9j8-0o219HyWpbY_uDdTd_HBmNKRo-kAmgTAUUzoGe3oLWalNIESRxKOyFs9EK6Mf_g2ntCpFAJuIfLEqRzS-D84RYoiOINOG7YLMyYnYgfqEMVh-ovwR-zJuaRRb_dlp1GlAnroIfP85TDoiewDZRUuoG5szmBXtKS1C-qBrGlbkybk4kHWiY-MbVOU_jT2ubC6ZR7dt5udCJV-2_CrffcQbCNN9EfvysIoZdAIF-NcIQ4UCjBp1ZGQpBnt3GefFEy178hfMEH6g4_LZAezQCP0jOUGg565WKUCuoQY2_0dqWaTsgQxZFiLv67uOFL_RSCZXI6IwHXRSqw',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQkykD2dtQg5BEJufYrUJM8TANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE1MDgxMDE1NTUyOFoYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1atF6yP2Pz7SjbX0fJaltj+4N1N38cGY0pGj6QCaBMBRTOgZ7egtZqU0gRJHEo7IWz0Qrox/+Dae0KkUAm4h8sSpHNL4PzhFiiI4g04btgszJidiB+oQxWH6i/BH7Mm5pFFv92WnUaUCeugh8/zlMOiJ7ANlFS6gbmzOYFe0pLUL6oGsaVuTJuTiQdaJj4xtU5T+NPa5sLplHt23m50IlX7b8Kt99xBsI030R+/Kwihl0AgX41whDhQKMGnVkZCkGe3cZ58UTLXvyF8wQfqDj8tkB7NAI/SM5QaDnrlYpQK6hBjb/R2pZpOyBDFkWIu/ru44Uv9FIJlcjojAddFKrAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAAx1S/T1bYFcFMhLtq0XPd3pHRk6bdKLpS0pBBjtuS4OBoxUGbwvY11kE0EITWGv736KS9jThJ7iHtG0F8TmWRJVcstzxBCdxhnwhJv/z/UKjBcW8j8E/qxBdmDJREB/6hZ5DTL9OJsR7eoQrC013PidqU4ykg2BuZ6nWGOaPbZ3qSBb8ZFIptSARDKXF7yHY2TsenZgVoYJMXm+RYpPErZ9riYLmAWVLAfDQIkITqqyzojbYsvoWdtTpLQSx+fSDUH6c8uN75k1QUnoL/ypRhdd6aqk7DI5ZVznR8h9f3pLHgmcEaz5fzSNQerUObe85/mvGXQQVFc2nwWG6hjcs6wKrhiPyxNNNcbtxr1kEyEJrtaYCUk///Hr5Y4/PLG7yAoOrr3rtACPQiaCSartB00kaNdYh/XDApefP8+YHrlx3Jtmcs3lWQkvdizMJq3oJVqREnE3CEOBU7jqOfbNAir1y9P4iThjICfExrQNrmA+SJ+H0/IoL/oZ82uNfE11PYq4DKHQNMW+vhs8NKPId+/6upo+qyrxo4paTpCnOKj9tAwlJzqdgHEdCQi12QGPfSpfOGanPZvb7m+fh+EV2Yy6cGd7Cl/9lb1akyeIMG+yBgzB224/iCQ+DmJs72M2pVt0PCtzoVemZ7BPytpv2wnjKVLw7R8pQqCoHXLupZyi'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'W0nt6N5otXnRlXJQg1axV6nUUDQ',\r\n x5t: 'W0nt6N5otXnRlXJQg1axV6nUUDQ',\r\n n:\r\n 'nuBlBYvhtZmu-9y3FL4hUSR8oFZJopnqjBqiI8XPDXpxt2B1oVczGh-eK-ifmrZVUE2D1KGuSMFENNzrwZJTd7mfBkxLdlb0PTaNloI1pl4roKMkmttZU9qB8C7s2d1wdXoVBOqkHzfkjn3B4dtZCqhVezW1kSh-Pp5dPM1I6KF4K7Mky88Yag3gqZwpYYSBnMv2YOsyfr0VMGwAadMcjb1FUIlOy1jzWOjDgaPCPZR6fMiZbmQ9cH4Bjs6nlSkM5oD9RnWdtnJx1s-oAnSPusVpdUCgr6-OazIzBAzBFEXLBxs4eYII-5xdSiZvH6t8q5wlnKShGn3O04nNdBDrvQ',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQlgRqYNQLYZdMMvFrSP3msjANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE1MTEwNTA5MzcwOFoYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCe4GUFi+G1ma773LcUviFRJHygVkmimeqMGqIjxc8NenG3YHWhVzMaH54r6J+atlVQTYPUoa5IwUQ03OvBklN3uZ8GTEt2VvQ9No2WgjWmXiugoySa21lT2oHwLuzZ3XB1ehUE6qQfN+SOfcHh21kKqFV7NbWRKH4+nl08zUjooXgrsyTLzxhqDeCpnClhhIGcy/Zg6zJ+vRUwbABp0xyNvUVQiU7LWPNY6MOBo8I9lHp8yJluZD1wfgGOzqeVKQzmgP1GdZ22cnHWz6gCdI+6xWl1QKCvr45rMjMEDMEURcsHGzh5ggj7nF1KJm8fq3yrnCWcpKEafc7Tic10EOu9AgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAKbmZvRQjLdmXjZBoulD5DLCYy7GAqdg1GpteK921BvukqlBSoTd/OVukxc0SLFpf3Ho8jqC5xiIByIm1SPWioptLlnNWlFa2XGwnQIWaumnIMLqq/3CzvWaq6dWR1mXxUhyrMccyCFcGpu0ckA7uwnQ6aasgzpT0U1G2BGyUi+9Eb10v6tf/mZekXbezQAejOprRcS7uhKLeoE9PgQv/E7kdifBIs7Ftas5WCw/0BztKzBxWKdbrH9Gbs+9lm5TcNhDw69lnBQP278M4XaMTf63yRWZNdQiwVq96TKRctp15AZBvgFu1nhXqrFv3dv6HKSFbDTNjRTTWOEnicxPukV0/jomjmEIyq3uDgGpxY+UaYSyM8LNRfB1Pv/Zut/HOsaBgD8R11q+vSkKO/iJvVWjHSl3it2UQVKhtgOT2fyzEldOOarCARawh/mhS1NhhOG9Yn0uVLOJhphHVjIjbn95xWNSJ4yYKoG/u/vgzAcbPpt0l7M8f2htlQjqMNzxfdv3HwZHdNZwM6yi+QxRhM+9QDx793bJ/Nh15ub8udq3ZPyG7Y4pxuUVK/k7RsgSC8Yp03WljLik8+6hvSZZ5QNMA0Il09lEu7dV0xLOS4eC44qgqNwx43atHW6D1INddyUofwWFN2jaDGomWdnKRzHt4k1hC23Z4VpdCrPzXvvZ'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'bQVnBnZ6nYMnOMfpM3-YdN6mXkw',\r\n x5t: 'bQVnBnZ6nYMnOMfpM3-YdN6mXkw',\r\n n:\r\n 'ypsYR0zOiJT1MQ-tGflegQKho94naHLDG1OGihn2u1W55lMo-8UolrkeK9wbe1PXR4hVKYhOiCWkU6UF4cJt7f09DcOE8xt0bNfCObYRyqgQSpB3nO_H3I1oBbZpCD8Fo7uZK7bjWZGXL-tSd5igXMYUl0IcEckfdyAd21-CfRa5BCDlyataU6hvtufUcuBkFq5HoFvKBcIPAb2tv4oBYV-k3CKBapvsv6oxQ8l1qaKDWg9dhu16ICqjO2VjoAeZp6dKiy56fVeHfJpmR8aiHHezcQ5kT5-MJDrouLOvGd2TUKgX9u6zCDk8zWF0RVM2-2KkmCPXC78F4msCPuw6Vw',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQ03CKDd4kN7BP5M7vfBwGMDANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE2MDEyNDE0NTM0OVoYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDKmxhHTM6IlPUxD60Z+V6BAqGj3idocsMbU4aKGfa7VbnmUyj7xSiWuR4r3Bt7U9dHiFUpiE6IJaRTpQXhwm3t/T0Nw4TzG3Rs18I5thHKqBBKkHec78fcjWgFtmkIPwWju5krtuNZkZcv61J3mKBcxhSXQhwRyR93IB3bX4J9FrkEIOXJq1pTqG+259Ry4GQWrkegW8oFwg8Bva2/igFhX6TcIoFqm+y/qjFDyXWpooNaD12G7XogKqM7ZWOgB5mnp0qLLnp9V4d8mmZHxqIcd7NxDmRPn4wkOui4s68Z3ZNQqBf27rMIOTzNYXRFUzb7YqSYI9cLvwXiawI+7DpXAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAKdUHHYJxd/5rCcY80ayVxguMMA/pew6Kg8LcB2UanPD57yh0VSz4hEgiGr6eUBagN5gquzah0JV3skspA0BkJXlJErlxje+XVs57D3BZk/qy51I6dIfYwMh45Cbgtgux/J59BALI/C6G191rlNccY/DnNuA4GBaoZJvsOK/eaT/C8ekkhx4qSWPHlZxwazZKklKinGz5saTI6iRz4Iy2H4L1Ld6NLgpq6ldPvN1jE/Qbr7/JLGiEfxI0LqcXrzVsWen0Hz2/lkrnKDAQFTFB2Cud042QmDOrldS95dAZ9MgcO9KUkIywoScHdwzb3D5XKwNNvVpBS564eYvb3T85O+uTfHkmPtoBRFw7z/smzUQTXHYdHZMFFUxi6RkY6ZzGyzp5ZltCLN2KmiM6PHJrl3OgY0Z1Q9wn3rSozKKgomtvP7qGTDAzal6P4wM6zXT1H2YN7xxXH+7i9A+CPWCmVqss9YrGpk/Oj4Jl6aeVBCUW2bNlg4KsYKSPhNf+Sm4xqo5SBqpqhlPzcKDh1/qrES/oLtKWEwgPl7imyfjFZu0Q083NkrtJIB+dwV4n36QjTw2W1QdMe3PfUYSlOGgruCafRwolaQyI2XhluJ82KlaQ8HpwIoGn5AR0pUyV5eVlvdmLqGqQ8mIWDsx5CRRRH1qCq6mT5rAkLEK+T3Yml9M'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'csonj8iNexAvutVcA_vepi-uje8',\r\n x5t: 'csonj8iNexAvutVcA_vepi-uje8',\r\n n:\r\n 'pBn1WxW0F2FNIRhHdmhXEm4ftUlbg0MtIGYQzvEwLwUKBhHnmO5Wumy7aE02a6aP0ivC5GfEQ-sJOQiMXOEClGDZM_Saawuy52T8Y-8eOQ__QkFTFUxneufAv6PLn0CgYucls_3wG_6mpWjV2gE1B44u3tVkFu7OVy4Y5aTiz73PbPX68d_OHCEPerHK-tKh6sdHWemQ_gqYRIqi8xfdltSPZMftDxrFHeIo7lxsvY82uSx-Ajwy03G8H8s4Bt5_AJvfSL48nDX3PjpTrm178xoOP6kQENEQ01RisB4TlpmdIwbRKbcoEx4TR1r9sWVRyYh6D-AB3c5i9jdtX091rw',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQQdBlMn19rKtNVmTKEg6LGTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE1MTEzMDE2MDQ0NloYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCkGfVbFbQXYU0hGEd2aFcSbh+1SVuDQy0gZhDO8TAvBQoGEeeY7la6bLtoTTZrpo/SK8LkZ8RD6wk5CIxc4QKUYNkz9JprC7LnZPxj7x45D/9CQVMVTGd658C/o8ufQKBi5yWz/fAb/qalaNXaATUHji7e1WQW7s5XLhjlpOLPvc9s9frx384cIQ96scr60qHqx0dZ6ZD+CphEiqLzF92W1I9kx+0PGsUd4ijuXGy9jza5LH4CPDLTcbwfyzgG3n8Am99IvjycNfc+OlOubXvzGg4/qRAQ0RDTVGKwHhOWmZ0jBtEptygTHhNHWv2xZVHJiHoP4AHdzmL2N21fT3WvAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAApSL/xA7vtjicYUHjBeXRJH4ihW2oXQHAaW7KGDb5VZBBYvKM8SuRTqQCmF/t5EI6BLqrkufyVBeo5uH2eF7NHAY2FAvMKfKu8VLxfyE0SezO/cyk9APU0tgBdv5RnoDehhxdf3DTz4uBl6riPlHTo8LcoZuEl37NTq+NIbJ9MqG+XzRobJl2Z3c2+SI58o5bL43ZKnFzAtB2Kdbq82R1e+c2lh4k6DbWdMWRm5XenJldKkSsV11/mDxfArCJrN7ZUGXJY3Jy9C14+HU84K14WukSUkIH6a/lDG5KMtItPj3SAt+U2VVgJnl+pwWJ6G6pO+5m7CSEKngnkTwtlK0Td/FqiQk74gncbbHXgGv2FVqlDok+s5SkSqLGnxZgpdTJkeRlVNys0SpqVEXORUOCejC9rz1kxArqKPAAJ1yfVqZFUMUIEtm6Spq2QB8A0Ufrzc6CRQgdwH14WTIr6FBdLHPE7QibNes/6p5uwn6BqmAI8ewOn5j++nzi81I3evc1txVY2CoihiXuw99ks638liJeZ2S1AdAUTzwvp5oUgMNokbEm6xgJOHMPmtdvUVuJoyvWcFlcfsK/Ze3LaRLYWRJYSFpB1a0BXXdZNofM7QxTdFy/5q+LY0WnCVt0sk1AqBhfoQgsaO9YbMJH4iZPaR7rg6RzbmrLf8gOhtimCL'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'giNWhnUJb4rQdmZQDZmbieq8Suo',\r\n x5t: 'giNWhnUJb4rQdmZQDZmbieq8Suo',\r\n n:\r\n 'y0ai0fGJxaxVN1kONuqGxCh1fTBQXb2LRhr8GofJdkkWL7S7WqC5rVDNXHLd1SBc-EfaYkLzG6k8y0idSL_-ZSGLCjzbx6APoKnl1DK8tqZgpUukxZ3C_8HlZDOG__TTR7Gi88lD1kmJFEum5D9EPezk5mUZo_Gndqri195Kj-sb9ODzz3AoClZFhFU76Itn-aY06rKAyIZNBT7VArAf98q7XinT4-SUq1gZtdgNLOL-jzJc-14nczxo7h82XH-_SzzGxZnV0xnVOIGdGoLJeyWBw4oTleULIf03Ni5S9J1ZDhUypG_QsglnCtREbEPiUFeo4fVN0QYnl2mEOYYH4w',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQmOUPALfYqZ1Puiy7ObIoJDANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE2MDgyNDA4NDY0OVoYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDLRqLR8YnFrFU3WQ426obEKHV9MFBdvYtGGvwah8l2SRYvtLtaoLmtUM1cct3VIFz4R9piQvMbqTzLSJ1Iv/5lIYsKPNvHoA+gqeXUMry2pmClS6TFncL/weVkM4b/9NNHsaLzyUPWSYkUS6bkP0Q97OTmZRmj8ad2quLX3kqP6xv04PPPcCgKVkWEVTvoi2f5pjTqsoDIhk0FPtUCsB/3yrteKdPj5JSrWBm12A0s4v6PMlz7XidzPGjuHzZcf79LPMbFmdXTGdU4gZ0agsl7JYHDihOV5Qsh/Tc2LlL0nVkOFTKkb9CyCWcK1ERsQ+JQV6jh9U3RBieXaYQ5hgfjAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAGNyf1Ni/MT5gJXaLIMZzimCYhfIFnBVoh8sQZuvwQnXiGxHqNTevHgiNgfhWeihEknJxbDsrudUXKzPp+hZXsEZrW4WaBcZ0FpoD1F5/SXp52st7a2azCB3+/K7qOclUDODaUMpwRe1siX6PqEvJ3k8YbY9p72SAglPR6F0N4irOPAMLIbBOu3ggWafxmKa5ifBFfwe8+EcNX+BXJQXN8G+KDSBRm4NKU0YcN2uX7Y7/v8y+tnBvO8CA0V4sGZzu9NCKdTeuHWy8O976ZsTGURQn4jeEGCY6duE8NQgKpnXbzLH73D78pl5hQTeuvGnC0ZagFKCX91QlfIVRWnRr9lXImNABHTjn/jwSlzLHCo95uIwovBkRHxO3owZRNH/oNxZQ2KTJnvTfPdOfz4VaDxVT1dwMU4mpvi5Mj/5gpKb5x2QX2Pch6tsEQxJ99XJTBloj8Erg7Qindx4mW6/Qz3bX9N9MAB1SflaoPw8JNyFCyOCY6sgG71Isj3EoZQmppG+J2dzuSQSN3BYXn8wUcKyqCS/H9QPMzoh8rqCWG0Yg5ZlQsVqYGYdYgpAnzHP6ZfpByUIt9j9OM/KpJEUK+MD/4TH+FrEW0kvbRnJbWxSH2RoJWoK+Z3uK669ddv5G36N1heYFUpQiopeY43sWXWkhH0NeRyPPugNFDh8Bauq'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'jeNiBG4IXkhoVjYx3opVUmgKNOU',\r\n x5t: 'jeNiBG4IXkhoVjYx3opVUmgKNOU',\r\n n:\r\n 'wGXUVySr04DPYA95LqA3VfdmuFrC9t5UaWlxsoZSzeZ3mDpRdxv5kwhu2Tq5HpFUMllLaaeRTDlg-FKVCVMVZxI4P_gAWxkGzvY-Ri5twJrOQPvm9OQVrZw8j3GNmvRFGXE1OXuLaQPZQEIh2wib3TA3vgybe-6JfdEwrteRWNYU-Wm9VSPsRSc6IjqyBkohSlzTfaaa6yQwyzm7p-0etkH2dBkUIrw-29mMMtTDbg3blvKePdXTR5xWlYqhvHmT_5DU0q4q-ApV4aJbhn8LxcsaLgPGSfCRQXSKy9I_eXlsFxI-JTaFToXnWT_74yBvb_8_bpP-5SUQ0N606ZPa5w',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQnyznKoiANaRIRcAHCmpETjANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE3MDIxNzA2MjMxNVoYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDAZdRXJKvTgM9gD3kuoDdV92a4WsL23lRpaXGyhlLN5neYOlF3G/mTCG7ZOrkekVQyWUtpp5FMOWD4UpUJUxVnEjg/+ABbGQbO9j5GLm3Ams5A++b05BWtnDyPcY2a9EUZcTU5e4tpA9lAQiHbCJvdMDe+DJt77ol90TCu15FY1hT5ab1VI+xFJzoiOrIGSiFKXNN9pprrJDDLObun7R62QfZ0GRQivD7b2Ywy1MNuDduW8p491dNHnFaViqG8eZP/kNTSrir4ClXholuGfwvFyxouA8ZJ8JFBdIrL0j95eWwXEj4lNoVOhedZP/vjIG9v/z9uk/7lJRDQ3rTpk9rnAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAJeXUnWXXkfWRZQkAzXRqIgyO7wS2E7rWgO41EQlDPQf1ySWi2l0ii4o9oezfGcUZ8sz0BVY8I9wkZECb1Yxs5Y++4wxf4bY0poKyl+AKUZ9dmNHmh1sDvit9p6tBzul1PeLMRCbYJTn7cq3H1Rz5AXYHvtPupSsI9kaXiMwaS0pXhICGeZDJkIz1eCHrM0HMlqPz05tpb1YQ9sKM8FcchrOwa0LN9oiAu2hqhkcAG9I4+8yLeTn7lCOHCumTpfdsU8EC/sEi/6QuvI9lOPaKhQlH1Ebms0OFYWU8M4m36zK6dmC4YCfJ0jWk02wpIZ5QDX6EKW10KGkXw8Mg1i8oxn6A5SkpDppyVHd24mWKeEYZG7qEQjtvh1Qo4HfSI8cxHNK5ndeQCmrxHA+J40U40xpbcHzozalzA73GRgHPMUkwYGfWsTNDXVVoEvAEsIh+ANmn2XD/zcX8ZyLfStI+W7/xGpXQJFDtzRYWlK4IPuR8tVBVgKo9E7zDjDCAyxYsJMegscHie8SPczOP1uIbssvvtD1f5mf4Y9fXKS+Kv41zpZ0uDcQ4J7JGDueUsrLw2YAqz6rq6wScrCmDCPle2vUKl6n67tT+eb7a33eqvaBPe+2g2Uv7eufORgIWEUjra5zLMFWuHC9TBurwAybSTaz8tYmZMuPPplcR7cCjXq1'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'NdkNxI_XYUT6HpTaCBJc42bQ6WQ',\r\n x5t: 'NdkNxI_XYUT6HpTaCBJc42bQ6WQ',\r\n n:\r\n '5mYx7xG4VociQ62UQFWOYTRGIGxSVRWnD7HPY2wQ4Z3v-jBFrDumLJWTjemPuk5Yzd5NNNUUZpzmvkV4buFzgk3AkaYc8TqLMWjAI0-rnU4YstLO4NSDoHPD0G0NvGx3qCugMs3s4uk6HTKazMo0JUios-PYz2yYjE9iICnD2hmJR_I4fiSCoOKUnM8MwdL_7JqRytWqehLRGLlnBvM57_5Wv1WWxjGedK_fzFGZiG3_E9CImhyWoYy6nzU5Mz8iGEXbs1s8pDg59stfCW9cEG5cPkDRJy9TT0pbC2hturWpTDyZPYVOC7Kp3Buk1JklsjAEd9IMvFqCP9ZKyA5T0Q',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQ6dN6a32IYaNOzxig+MoB7DANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE4MDUyMTEzMzAwMVoYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDmZjHvEbhWhyJDrZRAVY5hNEYgbFJVFacPsc9jbBDhne/6MEWsO6YslZON6Y+6TljN3k001RRmnOa+RXhu4XOCTcCRphzxOosxaMAjT6udThiy0s7g1IOgc8PQbQ28bHeoK6Ayzezi6TodMprMyjQlSKiz49jPbJiMT2IgKcPaGYlH8jh+JIKg4pSczwzB0v/smpHK1ap6EtEYuWcG8znv/la/VZbGMZ50r9/MUZmIbf8T0IiaHJahjLqfNTkzPyIYRduzWzykODn2y18Jb1wQblw+QNEnL1NPSlsLaG26talMPJk9hU4LsqncG6TUmSWyMAR30gy8WoI/1krIDlPRAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAHShmOUP2uXwc7nKo6s6kLSoBHWfmy5AMhXFzKHzRpAOz6jQ45cukE9zyyWnKCR9iBqGYZY6m1/CLOS0rbpEjpi62b3j0swzfBuLFBGn5L9Bc9Ah3K1d0Al4NLFSX8t4pqTfTtDgAqsAeTfjoSIHHia9wPFLWtx+q7ejKaZam4ouZO+8rw1IsqT1D2LP9CGpJW1Au+fQIgSfMvaRQOnEZw9GnFJmCwbEJ37WFNarfrAJMGxi27og+0YUJHD3siWfClFurFvuTIdk0gRvajZtPfVpKsEYQU6Kgbi0d7hPa+PQVw/QmDmU3TQahwj5m69vGvbbdCb86/58OyW0JcIGFE1xUNSh4N1eUTpc1TazAXLFlHHCKTwjtD8HC+wcqqSmowNlrGIq8dzvXas99QfAG6bvJi7rMA6iUDcPk4BuWCr1mCPOc5zPBfDqkPo1xKPLs/Lma8f4mwxJs2fNb670uMRMupegRDV5MIrcsZSnhYWZe0fw2OrhnQw0F9NlJq53bsnMRzCfjdkyxbkXCLBHCNJH9RDYCx4L3KULla6OcGq55R9Rd5vPV2doU9g9AxF5qZZGjRty3GUKiUTeoA0DykLWF4IhUwyZktZvIGjciro6VsS7BztqRdM9Oe8FwpyOa1XBrodpuppuhZ5PU804cksLWVYZ1K4INNJmt3IMIG5u'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: '4Ut1TTNDPEpKaKGJcx1bPc90f5U',\r\n x5t: '4Ut1TTNDPEpKaKGJcx1bPc90f5U',\r\n n:\r\n 'j4XjAPb5eSpgslKuVR-CBmBNJ_rdNRubZxkevqgM2PeWIXWQxuc9NtZeeGg3-83VKeMh5KEMRW33vwQki3fNmcZponE2JOTlVCpRZqss4osZSHPEOhVlRy2GJUm7Ot2e4_y1jRxQd8qT-sswj4xZjflMsNXYab-nqNRuK1hykEPykYUUNeVNlVI1dc9rVqQdvGU7WuljVchuJ-mRH9LF5K1HCalUSRRHOe8jjXSscTaUs0Vr-m2abOF0m4LlmE1CR6MsebwlcANeW_CcWTjZP4OUErH7zyuf3AWVvyjjYfv38D6WBT-R3Jyn6E9_hPmmDTtJFyHkpqf9fA15dtYT8Q',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQqBJS61XDXJhOtoBV4EYX+DANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE4MDcwOTExMjUwN1oYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCPheMA9vl5KmCyUq5VH4IGYE0n+t01G5tnGR6+qAzY95YhdZDG5z021l54aDf7zdUp4yHkoQxFbfe/BCSLd82ZxmmicTYk5OVUKlFmqyziixlIc8Q6FWVHLYYlSbs63Z7j/LWNHFB3ypP6yzCPjFmN+Uyw1dhpv6eo1G4rWHKQQ/KRhRQ15U2VUjV1z2tWpB28ZTta6WNVyG4n6ZEf0sXkrUcJqVRJFEc57yONdKxxNpSzRWv6bZps4XSbguWYTUJHoyx5vCVwA15b8JxZONk/g5QSsfvPK5/cBZW/KONh+/fwPpYFP5HcnKfoT3+E+aYNO0kXIeSmp/18DXl21hPxAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAASPj/M5MJVuC1I/emUxTut1eMj1lxG6tGx5CafLaT63HRxRXVKz3eagZQFoI6qEH0+OVkQZp/2RDDW27jFwDWUHKtyD1R6OKqGEx4MWqoEVaAJekiZ+ftNXM57msBjdZWVoxxoIyx/O7bCjtNn5vM60cSOCfUl68qkB56m+IrOIkX7wRK2TRAeSJdlN/Py+04kx5CsspbnwmOF2Orsic7t9+Fz0c0Rvk/oFv18FnSiFGBCVibvduJqth4DTgTDNBoybhlBOKFIer4iiIEWQz/8RBtGU5b7m/NH7/4MhP39O3RP1knlCiho70DGjz76QxXv9HBRwcirhEq0CUXDDxDHMZJb4Pg5E9+wUDQpcVTXhs1oFkCIz779f6ldc7wBbQuSX/OCNXQSehv/HwZN8PiP5lxSv8vVRfgz4mqnt5d+hAt9aDvDHZB2nLCWsJA/wyZM6ikMuV5P5vWalCD/3YT357CqEIauZS05WEnH0TRT1F6CDENlLjCBcPzRhKMJCbAMpYGMDFQKHiz8CM4G5axLJfqKeydbRnt3MgyUpOiOCE8K7synzFKYp+wXGHXPFWP8lx/N28FvFSzg3womUEwOwtwXStRPtnS0W4M0S8S7jEVTPEIBnxv3ma4bEF0lhwODzSs93iOtD68XE6X26mECiSmx27OmLXQXn1MJFRbuj'\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'x62XwYtk0ClL_Yn-w4cHQEigVAc',\r\n x5t: 'x62XwYtk0ClL_Yn-w4cHQEigVAc',\r\n n:\r\n 'pXXUPWjRoRg4Y2Es0-IR1mis2BFsnP9faNfGY5--Jk2SwbFwaAtLKKOE1QKJRVs6okBevMOGKTRN9zdl4BV8xwhun4W6PG7LozryBLx9pS3EKK8yJhSMy7UUwbQjeSwwXpViLA3aPsa8XLeT42llCeeW6eO0huSWcbPo_Wbxw-OsULBXg1bDNWBxcdS0CagDMy4n9vbw5diWvO3_3M6UHzkd62Ap30D8_WefgY0KQjEQ41Ddbv8_mjcZH8VGdu4-SZmLQWmc-4sjQ-S8MiOxfXVQBLD6ow42iK8vgSgVoQnUkuuosvaKg8EndY2FrFcDBsmSELuqsw8EJ7E0WVxL0w',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERTCCAi2gAwIBAgIPVGlKr573lUx6t/fE9q46MA0GCSqGSIb3DQEBBQUAMFoxCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlNaWNyb3NvZnQxEzARBgNVBAsTClNoYXJlUG9pbnQxIjAgBgNVBAMTGVNoYXJlUG9pbnQgUm9vdCBBdXRob3JpdHkwIBcNMTIwMzE1MDEzMTU2WhgPOTk5OTAxMDEwMDAwMDBaMGIxCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlNaWNyb3NvZnQxEzARBgNVBAsTClNoYXJlUG9pbnQxKjAoBgNVBAMTIVNoYXJlUG9pbnQgU2VjdXJpdHkgVG9rZW4gU2VydmljZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKV11D1o0aEYOGNhLNPiEdZorNgRbJz/X2jXxmOfviZNksGxcGgLSyijhNUCiUVbOqJAXrzDhik0Tfc3ZeAVfMcIbp+Fujxuy6M68gS8faUtxCivMiYUjMu1FMG0I3ksMF6VYiwN2j7GvFy3k+NpZQnnlunjtIbklnGz6P1m8cPjrFCwV4NWwzVgcXHUtAmoAzMuJ/b28OXYlrzt/9zOlB85HetgKd9A/P1nn4GNCkIxEONQ3W7/P5o3GR/FRnbuPkmZi0FpnPuLI0PkvDIjsX11UASw+qMONoivL4EoFaEJ1JLrqLL2ioPBJ3WNhaxXAwbJkhC7qrMPBCexNFlcS9MCAwEAATANBgkqhkiG9w0BAQUFAAOCAgEAYLZi8IY+Jhv80/ppDzVRfxBxQ8o0As8IccKg2J2+dG4xQSdxvdR+tnowyV0YfhfkOVe/vy2BJjCyh/Mr6Sv51VaoYH1L5A5yzKb6vmwiLA0pl4fcPwVTN8TgeBac1iexCaq5GQipYdq8b26UGvquIzWFH8MBnKFMAaPBZ8txNr6P59sZBCeLT2B/7JzgLB21XiYoYUJZ99IxSAYvNlVuTBYLRJSuIpVzVC+rNCbWvhzxsZ2Ylk2328cK77Do34Yoa5FYPMwRXcW+Ydoxx5v8sSOGDvZTBW8gJhhrD0sXNh+e4CTp2tDuvKgBy79RfRAMfTY0496eq5D8hIp/jBmSVQvobWWi6Ljjh2SgJ5+wColAWA3dS2A9yND04QgtRKhGigKkWU4rdHU0mOAutVOsIDhcDM0c+GBCnx7qeeJls/3xdIVio0F2kMbv4QXtvOdZSnVgZDHVfT/fINPiSjovSxhFSZw/SJCm4EZz8idzpSPY3i2HQrXGyw5X2yOlrCxKgbvKBirBhN78S2eCnzA0rK6EwLMhX+ipJ4OvhX30FB+cFuO5YSwYit5oN9A7j9oDnU5tS7VKqxUs0z19c3H96zOqmK62tJu0YtoPKqIniWZ+QuQn1b0rd2rp8bfgZMKHv/Y+hKQ7qPCGkLAu8f9RXWiE62ZxhEluKBMR2FgzaCg='\r\n ]\r\n },\r\n {\r\n kty: 'RSA',\r\n use: 'sig',\r\n alg: 'RS256',\r\n kid: 'OUluFY0fDCkg5nfeFBnX3u9_ODc',\r\n x5t: 'OUluFY0fDCkg5nfeFBnX3u9_ODc',\r\n n:\r\n 'ziDSm-XRhxNAhA_NA8JZzZaHBgKSeLOxDRkaiXudHaiJ223fpRqsAzs2lZ9lmNQDffhH8_P9fiaZpYDy0M01ZiCqmOzRC2UAhN9nRHYK3J65Y4dJYmIeETgi6YoDT3X357oyTmSlBsykAwBGl6ZAgim2KIhUmgrNHlifwEHweS-9gOqXoiyuQ9rvRm-3OMFAy_UpCmLpcEvraBipPzXJ3vphk8Fo13arDOf56yfHDa8EHDyPknm3p5gzd4emFr3AIX9h7Nu4sxRaZESHOp-cCf4T0eRT24gQpSzsggSUhv5SNmu-0kwrLGzlI6YIEH-Xn9ZuXrVxwQ67RUdcMDGkow',\r\n e: 'AQAB',\r\n x5c: [\r\n 'MIIERjCCAi6gAwIBAgIQIm82XWX1Ep5LcV96iBFRkjANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTE5MDIyNzE2MTQ0NloYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOINKb5dGHE0CED80DwlnNlocGApJ4s7ENGRqJe50dqInbbd+lGqwDOzaVn2WY1AN9+Efz8/1+JpmlgPLQzTVmIKqY7NELZQCE32dEdgrcnrljh0liYh4ROCLpigNPdffnujJOZKUGzKQDAEaXpkCCKbYoiFSaCs0eWJ/AQfB5L72A6peiLK5D2u9Gb7c4wUDL9SkKYulwS+toGKk/Ncne+mGTwWjXdqsM5/nrJ8cNrwQcPI+SebenmDN3h6YWvcAhf2Hs27izFFpkRIc6n5wJ/hPR5FPbiBClLOyCBJSG/lI2a77STCssbOUjpggQf5ef1m5etXHBDrtFR1wwMaSjAgMBAAEwDQYJKoZIhvcNAQELBQADggIBACk7ZMRpAV68BIO+qVxpWqYavQgXvXU0CNyywanEDrfyiT9v1lU6NPiwsAAejIuLHaQf/7KB+bJeHiHtNcXlYgvtdXYo7IVDoFY5obgmhm7cIWbzNtATTr/oryC3vPpYKI7Y/bccoAwc/4+hMU+V8BU7hd32xhhaqK6dpjQhM6h5Y2RMqpHCf2/K6CWz8qlp3RStaFTyxlBpUqBjRTCqJfyNiDuOM/FwU4J4+SBJR/my7D84GaFisCEkzhxq5pitS7jD5UVzpnw0w3SBpsBcEy+ehgMWutLWN9w0l/yO1HavltRB3NmLq0uBzDraN/jVSY1uQq6gX3p4oYvEFQ8Uae3yfSBnlOwXbeSL7OR6cyisXfhISJWAzy+jC5+RnsUGehbbLAswzSYq3pv2W3JDQ5wWxIbqydfs+qVV4T5yyp3FS29axxLEdYG36V8k7aHTi8WDiop5DD7fr4EFiSEXFYU3AlCeCdEq8k64P734x3fisjzed0EFKDpifE6aPfkjeOPsytKk/mB50FOappYDC4678/xYgbTGtTQJEEbZFW9wUpllbqs+Bxo12XKS5mec0SX/LWIj2XGRxv0s+9cc8n2bsNYTYH/iUf6k+rgAs0TvNZrAhSmluryoUUTff+yfxgdLBRdjjyDkwkiJ8BoZwVUYEqy7aDpw0oZHXsSJRo1i'\r\n ]\r\n }\r\n ],\r\n\r\n metadata: {\r\n issuer: CONFIG.ADFS_URL,\r\n authorization_endpoint: `${CONFIG.ADFS_URL}/oauth2/authorize`,\r\n userinfo_endpoint: `${CONFIG.ADFS_URL}/userinfo`,\r\n end_session_endpoint: `${CONFIG.ADFS_URL}${APP_PATH.LOGOUT_CALLBACK}`,\r\n jwks_uri: `${CONFIG.ADFS_URL}/discovery/keys`\r\n }\r\n};\r\n","export const GET_CURRENT_USER = '@auth/GET_CURRENT_USER';\r\nexport const SET_ACCESS_TOKEN = '@auth/SET_ACCESS_TOKEN';\r\nexport const PROCEED_WITHOUT_USER = '@auth/PROCEED_WITHOUT_USER';\r\nexport const SET_CURRENT_USER_FILTERS = '@auth/SET_CURRENT_USER_FILTERS';\r\nexport const SET_CURRENT_USER_ADMIN_FILTERS =\r\n '@auth/SET_CURRENT_USER_ADMIN_FILTERS';\r\nexport const SET_SOURCE_SUBJECT_ID = '@auth/SET_SOURCE_SUBJECT_ID';\r\n\r\nexport type AuthState = Readonly<{\r\n accessToken: AP.Nullable;\r\n user: AP.Nullable;\r\n isLoading: boolean;\r\n isLoaded: boolean;\r\n hasUserDeniedAccess: boolean;\r\n hasUserExpiredToken: boolean;\r\n isInternal: boolean;\r\n adminFilters: DTO.UserFilters;\r\n isFirstAdminFiltersInit: boolean;\r\n isFirstLogin: boolean;\r\n filter: DTO.SubmissionFilters;\r\n selectedAdminFilters: Array;\r\n sourceSubjectId: string;\r\n}>;\r\n\r\nexport type LoadUserAction = Store.BaseAction | Store.PaylodedAction;\r\n\r\nexport type GetCurrentUserAction = Store.PaylodedAction;\r\n\r\nexport type GetCurrentUserAction$ = Store.PaylodedAction>;\r\n\r\nexport type SetAccessTokenAction = Store.PaylodedAction;\r\n\r\nexport type ProceedWithoutUserAction = Store.BaseAction;\r\n\r\nexport type AuthActionTypes =\r\n | LoadUserAction\r\n | GetCurrentUserAction\r\n | SetAccessTokenAction\r\n | ProceedWithoutUserAction;\r\n\r\nexport type SetCurrentUserFiltersAction = Store.PaylodedAction<\r\n DTO.SubmissionFilters\r\n>;\r\n\r\nexport type SetCurrentUserAdminFiltersAction = Store.PaylodedAction<\r\n DTO.UserFilters\r\n>;\r\n\r\nexport type SetSourceSubjectId = Store.PaylodedAction;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"contentWrap\":\"OnboardingPage_contentWrap__nGlKj\",\"footer_wrapper\":\"OnboardingPage_footer_wrapper__3BS5Q\",\"contentCard\":\"OnboardingPage_contentCard__CwLN-\",\"cardHeader\":\"OnboardingPage_cardHeader__2NqaO\",\"toast\":\"OnboardingPage_toast__2ic6G\",\"toastBody\":\"OnboardingPage_toastBody__36l5k\",\"crossSvg\":\"OnboardingPage_crossSvg__3M9hL\",\"warningimages\":\"OnboardingPage_warningimages__2xyPN\",\"toastText\":\"OnboardingPage_toastText__KkIf7\",\"cardHeading\":\"OnboardingPage_cardHeading__3l42f\",\"cardHeadingBtnGroup\":\"OnboardingPage_cardHeadingBtnGroup__24xiJ\",\"tableWrap\":\"OnboardingPage_tableWrap__1VVlK\",\"pagination\":\"OnboardingPage_pagination__1A-hk\",\"footerWrap\":\"OnboardingPage_footerWrap__3UKTB\",\"configRetention\":\"OnboardingPage_configRetention__1sBxl\",\"warningText\":\"OnboardingPage_warningText__2C_d4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"FilterRow_content__uXnJ7\",\"selectContainer\":\"FilterRow_selectContainer__1sYpa\",\"filterSelect\":\"FilterRow_filterSelect__1fe9c\",\"toggleIcon\":\"FilterRow_toggleIcon__1Qg_M\",\"option\":\"FilterRow_option__2cxSh\",\"selectedOption\":\"FilterRow_selectedOption__2VX9Z\",\"userFilters\":\"FilterRow_userFilters__35YnK\",\"userControl\":\"FilterRow_userControl__YmUp4\",\"removeFilterBtn\":\"FilterRow_removeFilterBtn__1JNiV\",\"disableOption\":\"FilterRow_disableOption__3VR_T\",\"enableOption\":\"FilterRow_enableOption__3tRlC\"};","import React, { useRef, useEffect, useState, useCallback } from 'react';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Button from 'react-bootstrap/Button';\r\n\r\nimport { Icon } from 'components';\r\nimport styles from './AutoLogout.module.css';\r\nimport { authProvider } from '../../authProvider';\r\n\r\nexport const AutoLogout = (): JSX.Element => {\r\n const [signoutTime] = useState(120000);\r\n const [warningTime] = useState(1680000); //28 min\r\n const [showModal, setModal] = useState(false);\r\n const [seconds, setSeconds] = useState(0);\r\n const warnTimeout = useRef(null);\r\n const logoutTimeout = useRef(null);\r\n const setIntervalTime = useRef(null);\r\n const isModalShow = useRef(false);\r\n const { t } = useTranslation();\r\n const totalSeconds = 120;\r\n\r\n const warn = () => {\r\n setModal(true);\r\n isModalShow.current = true;\r\n };\r\n\r\n const logout = () => {\r\n if (isModalShow.current) {\r\n authProvider.logout();\r\n localStorage.setItem('logout', `logout${Math.random()}`);\r\n }\r\n };\r\n\r\n const upadateTime = () => {\r\n setSeconds(sec => sec - 1);\r\n };\r\n\r\n const setTimeouts = useCallback(() => {\r\n warnTimeout.current = setTimeout(warn, warningTime);\r\n logoutTimeout.current = setTimeout(logout, signoutTime);\r\n }, [warningTime, signoutTime]);\r\n\r\n const setWarnTimeouts = useCallback(() => {\r\n warnTimeout.current = setTimeout(warn, warningTime);\r\n logoutTimeout.current = setTimeout(logout, signoutTime);\r\n }, [warningTime, signoutTime]);\r\n\r\n function clearTimeouts() {\r\n clearTimeout(warnTimeout.current);\r\n clearTimeout(logoutTimeout.current);\r\n }\r\n\r\n function resetAll() {\r\n clearInterval(setIntervalTime.current);\r\n clearTimeouts();\r\n setTimeouts();\r\n }\r\n\r\n const handleOnClose = () => {\r\n resetAll();\r\n setModal(false);\r\n isModalShow.current = false;\r\n localStorage.setItem('session-extent', `sessionExtent${Math.random()}`);\r\n };\r\n\r\n useEffect(() => {\r\n const handleMultiTab = (event: any) => {\r\n if (event.key === 'logout') {\r\n localStorage.clear();\r\n window.location.href = '/home';\r\n }\r\n if (event.key === 'session-extent') {\r\n resetAll();\r\n setModal(false);\r\n isModalShow.current = false;\r\n localStorage.removeItem('session-extent');\r\n }\r\n if (event.key === 'events') {\r\n if (!isModalShow.current) {\r\n clearTimeouts();\r\n setWarnTimeouts();\r\n localStorage.removeItem('events');\r\n }\r\n }\r\n };\r\n window.addEventListener('storage', handleMultiTab);\r\n return function cleanup() {\r\n window.removeEventListener('storage', handleMultiTab);\r\n };\r\n });\r\n\r\n useEffect(() => {\r\n if (showModal) {\r\n setSeconds(totalSeconds);\r\n }\r\n }, [showModal]);\r\n\r\n useEffect(() => {\r\n const events = [\r\n 'load',\r\n 'mousemove',\r\n 'mousedown',\r\n 'click',\r\n 'scroll',\r\n 'keypress'\r\n ];\r\n\r\n const resetTimeout = () => {\r\n if (showModal) {\r\n clearTimeouts();\r\n setTimeouts();\r\n }\r\n };\r\n\r\n if (showModal) setIntervalTime.current = setInterval(upadateTime, 1000);\r\n\r\n const resetWarnTimeout = () => {\r\n if (!isModalShow.current) {\r\n clearTimeouts();\r\n setWarnTimeouts();\r\n localStorage.setItem('events', `events${Math.random()}`);\r\n }\r\n };\r\n\r\n events.forEach((value: string) => {\r\n window.addEventListener(value, resetWarnTimeout);\r\n });\r\n\r\n setTimeouts();\r\n return () => {\r\n events.forEach((value: string) => {\r\n window.removeEventListener(value, resetTimeout);\r\n clearTimeouts();\r\n });\r\n };\r\n }, [setTimeouts, setWarnTimeouts, showModal]);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {t('actions.logOutWarning')}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n

\r\n

\r\n {t('actions.logOutWarningMsg')} {seconds} seconds.\r\n

\r\n

\r\n

{t('actions.logOutWarningNote')}

\r\n
\r\n
\r\n \r\n \r\n {t('forms.yes')}\r\n \r\n \r\n {t('actions.No')}\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","import React, { PropsWithChildren, FC, Fragment } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { Footer } from 'features/Footer/Footer';\r\nimport { AutoLogout } from 'features/AutoLogout/AutoLogout';\r\nimport { SidePanel } from 'features/SidePanel/SidePanel';\r\nimport styles from './AdminLayout.module.css';\r\n\r\nexport interface Props {\r\n children: React.ReactChild | React.ReactChild[];\r\n}\r\n\r\nexport const AdminLayout: FC> = ({ children }) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n {/* {t('app.name')}*/}\r\n
{children}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","export default __webpack_public_path__ + \"static/media/noGridData.b072dafc.svg\";","export default __webpack_public_path__ + \"static/media/noGridResults.07c70cf3.svg\";","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport noGridDataImage from 'assets/images/noGridData.svg';\r\nimport noGridResultsImage from 'assets/images/noGridResults.svg';\r\nimport styles from './NoGridData.module.css';\r\n\r\ninterface Props {\r\n areFilterEnabled?: boolean;\r\n}\r\n\r\nexport const NoGridData: React.FC = ({ areFilterEnabled }) => {\r\n const { t } = useTranslation();\r\n\r\n const { image, text } = React.useMemo(\r\n () => ({\r\n image: areFilterEnabled ? noGridResultsImage : noGridDataImage,\r\n text: areFilterEnabled\r\n ? t('admin.grid.noResults')\r\n : t('admin.grid.noData')\r\n }),\r\n [t, areFilterEnabled]\r\n );\r\n\r\n return (\r\n
\r\n {text}\r\n

{text}

\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { noop } from 'shared/utils';\r\nimport { Button } from 'components';\r\nimport styles from './AdminPageHeader.module.css';\r\nimport { UserProductsSelect } from '../UserProductsSelect/UserProductsSelect';\r\n\r\ninterface Props {\r\n disabledExport?: boolean;\r\n onExport?: () => void;\r\n}\r\nexport const AdminHeader: React.FC = ({\r\n disabledExport = false,\r\n onExport = noop\r\n}) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n
\r\n

{t('admin.tabs.submission')}

\r\n \r\n \r\n
\r\n );\r\n};\r\n","import React, { useMemo, useEffect } from 'react';\r\nimport cs from 'classnames';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { Icon } from 'components';\r\nimport { getFromLocalStorage } from 'shared/utils/storage.utils';\r\nimport { SORT_DIRECTION } from 'shared/constants/common.consts';\r\nimport { DirectionButton } from 'components/DirectionButton/DirectionButton';\r\nimport { Option, getIconName } from '../Sorting/Sorting.helpers';\r\nimport styles from './AdminGrid.module.css';\r\nimport { USER_ROLES } from '../OnboardingPage/OnboardingFilters/OnboardingFilters';\r\n\r\ninterface Props {\r\n sortBy?: string;\r\n direction?: AP.SortDirection;\r\n onSortChange?: (sortBy: string, sort: AP.SortDirection) => void;\r\n gridHeaders: any[];\r\n gridData: T[];\r\n rowDataRenderer: (data: T) => React.ReactElement;\r\n dataKey: keyof T;\r\n className?: string;\r\n offset?: number;\r\n footerRenderer?: ({\r\n columnsCount,\r\n rowStyles,\r\n rowClassName\r\n }: {\r\n columnsCount: number;\r\n rowStyles: Record;\r\n rowClassName: string;\r\n }) => AP.Nullable;\r\n mainGrid?: boolean;\r\n isDetailsDialog?: boolean;\r\n productRoles: Array;\r\n ifPageMIP?: boolean;\r\n userRole: string;\r\n isSubmissionRecord?:boolean;\r\n}\r\n\r\nexport function AdminGrid({\r\n direction,\r\n onSortChange,\r\n sortBy,\r\n gridHeaders,\r\n gridData,\r\n rowDataRenderer,\r\n dataKey,\r\n className = '',\r\n offset = null,\r\n footerRenderer = null,\r\n mainGrid,\r\n isDetailsDialog = false,\r\n ifPageMIP = false,\r\n userRole,\r\n isSubmissionRecord = false\r\n}: Props): JSX.Element {\r\n const { t } = useTranslation();\r\n\r\n const columnsCount = gridHeaders.length;\r\n const gridStyles = React.useMemo(\r\n () => ({\r\n gridTemplateColumns: `${\r\n offset > 0 ? `${offset}px` : ''\r\n } repeat(${columnsCount}, ${Math.floor(100 / columnsCount)}%)`\r\n }),\r\n [offset, columnsCount]\r\n );\r\n const detailsGridStyles = useMemo(\r\n () => ({\r\n gridTemplateColumns: 'repeat(6, 1fr)',\r\n columnGap: 15,\r\n alignItems: 'flex-start'\r\n }),\r\n []\r\n );\r\n\r\n const [flexTableStyles, setFlexTableStyles] = React.useState(gridStyles);\r\n\r\n React.useEffect((): void => {\r\n if (ifPageMIP) {\r\n setFlexTableStyles(gridStyles);\r\n }\r\n else if (isDetailsDialog) {\r\n setFlexTableStyles(detailsGridStyles);\r\n // return;\r\n } else {\r\n setFlexTableStyles(gridStyles);\r\n }\r\n }, [isDetailsDialog, detailsGridStyles, gridStyles, ifPageMIP]);\r\n\r\n const getHighLightStyles = (show: boolean, id: string) => {\r\n let newStyles = '';\r\n if(show) {\r\n newStyles = styles.highlight;\r\n } \r\n return newStyles;\r\n };\r\n\r\n const onSortingChangeCb = React.useCallback(\r\n (value: string, sortdirection) => {\r\n let sortingOrder: SORT_DIRECTION;\r\n if (value === sortBy) {\r\n switch (direction) {\r\n case '':\r\n sortingOrder = SORT_DIRECTION.DESC;\r\n break;\r\n case SORT_DIRECTION.DESC:\r\n sortingOrder = SORT_DIRECTION.ASC;\r\n break;\r\n case SORT_DIRECTION.ASC:\r\n sortingOrder = SORT_DIRECTION.DESC;\r\n break;\r\n default:\r\n sortingOrder = SORT_DIRECTION.ASC;\r\n break;\r\n }\r\n } else {\r\n switch (sortdirection) {\r\n case '':\r\n sortingOrder = SORT_DIRECTION.DESC;\r\n break;\r\n case SORT_DIRECTION.DESC:\r\n sortingOrder = SORT_DIRECTION.ASC;\r\n break;\r\n case SORT_DIRECTION.ASC:\r\n sortingOrder = SORT_DIRECTION.DESC;\r\n break;\r\n default:\r\n sortingOrder = SORT_DIRECTION.ASC;\r\n break;\r\n }\r\n }\r\n onSortChange(value, sortingOrder);\r\n },\r\n [sortBy, direction, onSortChange]\r\n );\r\n\r\n const showColumnForTenantAdmin = (label: any) => {\r\n if (\r\n (userRole === USER_ROLES.PRODUCT_ADMIN) ||\r\n (userRole === USER_ROLES.SUPER_ADMIN &&\r\n label === t('admin.grid.country') ||\r\n label === t('admin.grid.submissionDate')\r\n )\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n return (\r\n
\r\n \r\n {offset !== null && (\r\n
\r\n )}\r\n {gridHeaders.map((header: any, index: number) => (\r\n showColumnForTenantAdmin(t(header?.label))\r\n && isSubmissionRecord ?\r\n onSortingChangeCb(header?.value, header?.sortOrder)\r\n : {}}\r\n >\r\n {isSubmissionRecord ? t(header?.label) : header}\r\n {isSubmissionRecord\r\n && header\r\n && header?.sortOrder === ''\r\n && t(header?.label) !== t('admin.grid.submissionDetails')\r\n && showColumnForTenantAdmin(t(header?.label)) ? (\r\n \r\n )\r\n : (\r\n isSubmissionRecord\r\n && header\r\n && t(header?.label) !== t('admin.grid.submissionDetails')\r\n && showColumnForTenantAdmin(t(header?.label)) && (\r\n \r\n )\r\n )\r\n }\r\n
\r\n ))}\r\n
\r\n\r\n {gridData.map(\r\n React.useCallback(\r\n (dataProps: T, index) => (\r\n \r\n {rowDataRenderer(dataProps)}\r\n
\r\n ),\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [dataKey, flexTableStyles, rowDataRenderer, isDetailsDialog, ifPageMIP]\r\n )\r\n )}\r\n\r\n {footerRenderer !== null &&\r\n footerRenderer({\r\n columnsCount,\r\n rowStyles: flexTableStyles,\r\n rowClassName: styles.flexTable\r\n })}\r\n \r\n );\r\n}\r\n","import {\r\n SET_UPDATED_PRIMARY_USER,\r\n setUpdatedPrimaryUserAction\r\n} from './global.types';\r\n\r\nexport const setUpdatedPrimaryUser = (\r\n id: number\r\n): setUpdatedPrimaryUserAction => ({\r\n type: SET_UPDATED_PRIMARY_USER,\r\n payload: id\r\n});\r\n","import { RootState } from 'store/root.reducer';\r\n\r\nexport const selectUpdatedPrimaryId = ({\r\n global\r\n}: RootState): AP.Nullable => global.updatedPrimaryId;\r\n","export default __webpack_public_path__ + \"static/media/edit-icon.c8277e80.svg\";","export default __webpack_public_path__ + \"static/media/circle-tick.13b2a788.svg\";","export default __webpack_public_path__ + \"static/media/circle-cross.1b062fac.svg\";","import React from 'react';\r\nimport cs from 'classnames';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport circleTickImage from 'assets/images/circle-tick.svg';\r\nimport circleCrossImage from 'assets/images/circle-cross.svg';\r\nimport styles from '../SubmissionsGrid.module.css';\r\n\r\ninterface Props {\r\n existingValue: string,\r\n onStartEditing: (e: any) => void;\r\n onConfirmEdit: () => void;\r\n onCancelEdit: () => void;\r\n}\r\n\r\nexport function EditableComponent\r\n ({\r\n existingValue,\r\n onStartEditing,\r\n onConfirmEdit,\r\n onCancelEdit\r\n }: Props): JSX.Element {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { format } from 'date-fns';\r\nimport cs from 'classnames';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { reselectUser } from 'store/auth';\r\nimport { USER_ROLES } from 'features/AdminPage/OnboardingPage/OnboardingFilters/OnboardingFilters';\r\nimport { selectProductCode } from 'store/product';\r\nimport { SUBMISSION_TYPE } from 'shared/constants/submission.consts';\r\nimport { Icon, UsersIcon } from 'components';\r\nimport { DateLocale } from 'features/AdminPage/DateLocale';\r\nimport { AdminContext } from 'features/AdminPage/AdminPageContent/AdminPageContent.helpers';\r\nimport editIconImage from 'assets/images/edit-icon.svg';\r\nimport styles from '../SubmissionsGrid.module.css';\r\nimport { EditableComponent } from './EditableComponent';\r\n\r\nexport interface SubmissionRecordProps {\r\n submission: DTO.SubmissionRecord;\r\n onDetailsClick: () => void;\r\n onCommentClick?: () => void;\r\n onUsersclick?: () => void;\r\n onChangeEditMode: () => void;\r\n onConfirmEdit: () => void;\r\n onCancelEdit: () => void;\r\n onStartEditing: (e: any) => void;\r\n DATE_FORMAT?: string;\r\n isEnableEdit: boolean;\r\n editLegalName: string;\r\n showUserIcon: boolean;\r\n}\r\n\r\nexport const Submission: React.FC = ({\r\n onCommentClick,\r\n onDetailsClick,\r\n onUsersclick,\r\n onChangeEditMode,\r\n onConfirmEdit,\r\n onCancelEdit,\r\n onStartEditing,\r\n isEnableEdit,\r\n DATE_FORMAT,\r\n showUserIcon,\r\n submission: {\r\n comment,\r\n country: { name: countryName },\r\n organization: { legalName },\r\n user: { firstName, lastName, email, submissionDate, fullName },\r\n plans\r\n },\r\n editLegalName,\r\n}) => {\r\n const { type } = React.useContext(AdminContext);\r\n const { t } = useTranslation();\r\n const productCode = useSelector(selectProductCode);\r\n const user = useSelector(reselectUser);\r\n const contentHiddenText = t('admin.grid.hiddencontent');\r\n \r\n const formatSubscriberName = () => {\r\n return user.role === USER_ROLES.SUPER_ADMIN\r\n ? contentHiddenText\r\n : fullName;\r\n };\r\n\r\n const formatCompanyName = () => {\r\n return user.role === USER_ROLES.SUPER_ADMIN ? contentHiddenText : legalName;\r\n };\r\n\r\n const formatEmail = () => {\r\n return user.role === USER_ROLES.SUPER_ADMIN ? contentHiddenText : email;\r\n };\r\n\r\n return (\r\n \r\n

\r\n {\r\n onDetailsClick();\r\n }, [onDetailsClick])}\r\n >\r\n \r\n \r\n

\r\n

{countryName}

\r\n

\r\n {isEnableEdit &&\r\n legalName &&\r\n type === SUBMISSION_TYPE.PENDING &&\r\n productCode === 'mip' ? (\r\n \r\n ) : (\r\n \r\n \r\n {formatCompanyName()}\r\n \r\n {legalName &&\r\n type === SUBMISSION_TYPE.PENDING &&\r\n user.role !== USER_ROLES.SUPER_ADMIN &&\r\n productCode === 'mip' && (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n

\r\n \r\n {formatSubscriberName()}\r\n

\r\n \r\n {formatEmail()}\r\n

\r\n

\r\n {DATE_FORMAT !== 'dd MMMM yyyy'\r\n ? format(new Date(submissionDate), DATE_FORMAT)\r\n : DateLocale(format(new Date(submissionDate), DATE_FORMAT))}\r\n

\r\n

\r\n {comment && (\r\n \r\n \r\n \r\n )}\r\n {type === SUBMISSION_TYPE.PROCESSED && showUserIcon && (\r\n plan.status === 'active')\r\n ? styles.iconButton\r\n : styles.iconButtonDisable,\r\n user.role === (USER_ROLES.SUPER_ADMIN)\r\n ? styles.iconButtonDisable\r\n : null \r\n )} \r\n style={{ verticalAlign: 'text-bottom' }}\r\n title={t('admin.grid.aruser')}\r\n type='button'\r\n onClick={onUsersclick}\r\n >\r\n {/* */}\r\n \r\n \r\n )}\r\n

\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport cs from 'classnames';\r\n\r\nimport { USER_ROLES } from 'features/AdminPage/OnboardingPage/OnboardingFilters/OnboardingFilters';\r\nimport { reselectUser } from 'store/auth';\r\nimport { selectProductCode } from 'store/product';\r\nimport { SUBMISSION_PLAN_STATUS } from 'shared/constants/submission.consts';\r\nimport { Button } from 'components';\r\nimport styles from './SubmissionPlansGrid.module.css';\r\n\r\nexport interface Subscription {\r\n code: string;\r\n status: DTO.SubmissionPlanStatus;\r\n id: string;\r\n checked?: boolean;\r\n}\r\n\r\nexport interface SubscriptionsRequest {\r\n comment: string;\r\n plans: Subscription[];\r\n}\r\n\r\nexport interface ProductRoleRequest {\r\n productRoleId: number;\r\n}\r\n\r\nexport type SubscriptionsState = Record;\r\n\r\nexport const initialSubscriptionsState: SubscriptionsState = {};\r\n\r\nexport enum SUBSCRIPTIONS_ACTION_TYPES {\r\n INITIALIZE,\r\n REJECT_ALL,\r\n APPROVE_ALL,\r\n CHANGE_VALUE\r\n}\r\n\r\ntype SubscriptionsActions =\r\n | { type: SUBSCRIPTIONS_ACTION_TYPES.INITIALIZE; payload: SubscriptionsState }\r\n | { type: SUBSCRIPTIONS_ACTION_TYPES.REJECT_ALL }\r\n | { type: SUBSCRIPTIONS_ACTION_TYPES.APPROVE_ALL }\r\n | {\r\n type: SUBSCRIPTIONS_ACTION_TYPES.CHANGE_VALUE;\r\n payload: { code: string; value: DTO.SubmissionPlanStatus, productRoleId: number};\r\n };\r\n\r\nconst isPendingStatus = (status: DTO.SubmissionPlanStatus) => {\r\n if (\r\n status === SUBMISSION_PLAN_STATUS.PENDING ||\r\n status === SUBMISSION_PLAN_STATUS.PENDING_REACTIVATION ||\r\n status === SUBMISSION_PLAN_STATUS.PENDING_RENEWAL ||\r\n status === SUBMISSION_PLAN_STATUS.REJECTED ||\r\n status === SUBMISSION_PLAN_STATUS.APPROVED ||\r\n status === SUBMISSION_PLAN_STATUS.PENDING_ACTIVATION ||\r\n status === null // pending statuses might be null at that point\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const subscriptionsReducer = (\r\n state: SubscriptionsState,\r\n action: SubscriptionsActions\r\n): SubscriptionsState => {\r\n switch (action.type) {\r\n case SUBSCRIPTIONS_ACTION_TYPES.INITIALIZE:\r\n return action.payload;\r\n\r\n case SUBSCRIPTIONS_ACTION_TYPES.REJECT_ALL:\r\n return Object.keys(state).reduce(\r\n (acc: SubscriptionsState, planCode: string) => {\r\n if (isPendingStatus(state[planCode].status)) {\r\n return {\r\n ...acc,\r\n [planCode]: {\r\n code: planCode,\r\n status: SUBMISSION_PLAN_STATUS.REJECTED,\r\n id: state[planCode].id,\r\n checked: !(state[planCode].status === SUBMISSION_PLAN_STATUS.REJECTED)\r\n }\r\n };\r\n }\r\n return {\r\n ...acc,\r\n [planCode]: {\r\n code: planCode,\r\n status: state[planCode].status,\r\n id: state[planCode].id\r\n }\r\n };\r\n },\r\n {}\r\n );\r\n\r\n case SUBSCRIPTIONS_ACTION_TYPES.APPROVE_ALL:\r\n return Object.keys(state).reduce(\r\n (acc: SubscriptionsState, planCode: string) => {\r\n if (isPendingStatus(state[planCode].status)) {\r\n return {\r\n ...acc,\r\n [planCode]: {\r\n code: planCode,\r\n status: SUBMISSION_PLAN_STATUS.APPROVED,\r\n id: state[planCode].id,\r\n checked: !(state[planCode].status === SUBMISSION_PLAN_STATUS.REJECTED)\r\n }\r\n };\r\n }\r\n return {\r\n ...acc,\r\n [planCode]: {\r\n code: planCode,\r\n status: state[planCode].status,\r\n id: state[planCode].id\r\n }\r\n };\r\n },\r\n {}\r\n );\r\n\r\n case SUBSCRIPTIONS_ACTION_TYPES.CHANGE_VALUE: {\r\n const { code, value, productRoleId } = action.payload;\r\n\r\n return Object.keys(state).reduce(\r\n (acc: SubscriptionsState, planCode: string) => {\r\n const status = code === planCode ? value : state[planCode].status;\r\n return {\r\n ...acc,\r\n [planCode]: {\r\n code: planCode,\r\n status,\r\n userProductRole: productRoleId,\r\n id: state[planCode].id,\r\n checked:\r\n code === planCode\r\n ? true\r\n : state[planCode] && state[planCode].checked\r\n }\r\n };\r\n },\r\n {}\r\n );\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const useTableHeaders = ({\r\n onReject,\r\n onApprove,\r\n onUpdate\r\n}: {\r\n onReject: () => void;\r\n onApprove: () => void;\r\n onUpdate: () => void;\r\n}): {\r\n controlTableHeaders: JSX.Element[];\r\n defaultTableHeaders: string[];\r\n emptyTableHeaders: null[];\r\n defaultTableHeadersIfMIP: string[];\r\n updateTableHeaders: JSX.Element[];\r\n} => {\r\n const { t } = useTranslation();\r\n const user = useSelector(reselectUser);\r\n const productCode = useSelector(selectProductCode);\r\n const [defaultTableHeaders] = React.useState([\r\n `${t('admin.plans.plan')}:`,\r\n `${t('admin.plans.licenses')}:`,\r\n `${t('admin.plans.status')}:`,\r\n `${t('admin.plans.reviewedBy')}:`,\r\n `${t('admin.plans.date')}:`,\r\n `${t('admin.plans.duration')}:`\r\n ]);\r\n\r\n const [defaultTableHeadersIfMIP] = React.useState([\r\n `${t('admin.plans.plan')}:`,\r\n `${t('admin.plans.licenses')}:`,\r\n `${t('admin.plans.status')}:`,\r\n `${t('admin.plans.reviewedBy')}:`,\r\n `${t('admin.plans.date')}:`,\r\n `${t('admin.plans.duration')}:`,\r\n `${t('admin.plans.role')}:`\r\n ]);\r\n\r\n const [controlTableHeaders] = React.useState([\r\n null,\r\n \r\n {t('admin.plans.rejectAll')}\r\n ,\r\n \r\n {t('admin.plans.approveAll')}\r\n \r\n ]);\r\n\r\n const [updateTableHeaders] = React.useState([\r\n null,\r\n \r\n {t('admin.plans.updateSubscription')}\r\n \r\n ]);\r\n\r\n const [emptyTableHeaders] = React.useState([null, null, null]);\r\n\r\n return {\r\n defaultTableHeaders,\r\n controlTableHeaders,\r\n emptyTableHeaders,\r\n defaultTableHeadersIfMIP,\r\n updateTableHeaders\r\n };\r\n};\r\n\r\nexport enum APPROVAL_ACTION_TYPES {\r\n RENEW = 'renew',\r\n REACTIVATE = 'reactivate',\r\n ACTIVATE = 'activate'\r\n}\r\n\r\nexport const APPROVAL_ACTION_TYPES_NAMES: Record<\r\n APPROVAL_ACTION_TYPES,\r\n string\r\n> = {\r\n [APPROVAL_ACTION_TYPES.RENEW]: 'Renewal',\r\n [APPROVAL_ACTION_TYPES.REACTIVATE]: 'Reactivation',\r\n [APPROVAL_ACTION_TYPES.ACTIVATE]: 'Activate'\r\n};\r\n","import React from 'react';\r\n\r\nimport { Icon } from 'components';\r\nimport styles from '../../SubmissionsGrid.module.css';\r\n\r\ninterface Props {\r\n isOpen: boolean;\r\n onToggle: () => void;\r\n}\r\n\r\nexport const SubmissionPlanToggler: React.FC = ({\r\n onToggle,\r\n isOpen\r\n}) => (\r\n \r\n);\r\n","/* eslint-disable import/no-default-export */\r\nimport accounting from 'accounting';\r\n\r\nconst formatNumber = (\r\n value: number,\r\n format: string,\r\n precision = 0\r\n): number | string => {\r\n if (value === 0) {\r\n return value;\r\n }\r\n const thousandSeparator = format.charAt(1);\r\n const decimalSeparator = format.charAt(format.length - 3);\r\n return accounting.formatNumber(\r\n value,\r\n precision,\r\n thousandSeparator,\r\n decimalSeparator\r\n );\r\n};\r\n\r\nexport default formatNumber;\r\n","import React from 'react';\r\nimport cs from 'classnames';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport styles from './SubmissionPlanStatus.module.css';\r\n\r\ninterface Props {\r\n status: DTO.SubmissionPlanStatus;\r\n isDetailsDialog?: boolean;\r\n}\r\n\r\nexport const SubmissionPlanStatus: React.FC = ({\r\n status,\r\n isDetailsDialog\r\n}) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n {t(`admin.plans.statuses.${status.toLowerCase()}`)}\r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport cs from 'classnames';\r\nimport { format } from 'date-fns';\r\nimport { useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { USER_ROLES } from 'features/AdminPage/OnboardingPage/OnboardingFilters/OnboardingFilters';\r\nimport { AdminContext } from 'features/AdminPage/AdminPageContent/AdminPageContent.helpers';\r\nimport { selectProductCode } from 'store/product';\r\nimport { DateLocale } from 'features/AdminPage/DateLocale';\r\nimport { reselectUser } from 'store/auth';\r\nimport formatNumber from 'shared/services/formatNumber';\r\nimport { SUBMISSION_PLAN_STATUS, SUBMISSION_TYPE } from 'shared/constants/submission.consts';\r\nimport { Radio, Form, Select, Confirmation } from 'components';\r\nimport { SubmissionPlanStatus } from '../SubmissionPlanStatus/SubmissionPlanStatus';\r\nimport { SubscriptionsState } from '../SubmissionPlansGrid/SubmissionPlansGrid.helpers';\r\nimport { formatDuration } from './SubmissionPlan.helpers';\r\nimport styles from './SubmissionPlan.module.css';\r\n\r\ninterface Props {\r\n id: string;\r\n plan: DTO.SubmissionPlan;\r\n state: SubscriptionsState;\r\n enablePlanControl: boolean;\r\n onChoose: (code: string, action: DTO.SubmissionPlanStatus, selectedProductCode: number) => void;\r\n onRoleSelect: (selectedRoleId: number, status: string) => void;\r\n isDetailsDialog?: boolean;\r\n productRoles:Array;\r\n}\r\n\r\nexport const SubmissionPlan: React.FC = ({\r\n id,\r\n enablePlanControl,\r\n plan: {\r\n title,\r\n code,\r\n model,\r\n availableLicenses,\r\n purchasedLicenses,\r\n status,\r\n performedBy,\r\n performedAt,\r\n expiredAt,\r\n duration,\r\n userProductRole\r\n },\r\n state,\r\n onChoose,\r\n onRoleSelect,\r\n isDetailsDialog,\r\n productRoles\r\n}) => {\r\n const { t } = useTranslation();\r\n const user = useSelector(reselectUser);\r\n const DATE_FORMAT = user.profileSettings.dateFormat;\r\n const NUMBER_FORMAT = user.profileSettings.numberFormat;\r\n const [confirm, setConfirm] = React.useState(false);\r\n const productCode = useSelector(selectProductCode);\r\n const [isDisabled, setIsDisabled] = React.useState(false);\r\n const licenses =\r\n status === SUBMISSION_PLAN_STATUS.PENDING\r\n ? purchasedLicenses\r\n : availableLicenses;\r\n const [selectedProductCode, setSelectedProductCode] = React.useState(null);\r\n const [activeStatus]= React.useState('active');\r\n const ifStatusActiveOrCancel = status === SUBMISSION_PLAN_STATUS.ACTIVE || status === SUBMISSION_PLAN_STATUS.CANCELLED;\r\n const roleToSelect = productRoles && productRoles.find(pR => pR.productRoleId !== userProductRole)?.roleName;\r\n const roleSelected = productRoles && productRoles.find(pR => pR.productRoleId === userProductRole)?.roleName;\r\n const message = `Are you sure you want to change ${roleSelected} to ${roleToSelect}?`;\r\n const { type } = React.useContext(AdminContext);\r\n \r\n const handleRejectCallback = React.useCallback((): void => {\r\n setIsDisabled(true);\r\n onChoose(code,SUBMISSION_PLAN_STATUS.REJECTED,0);\r\n }, [onChoose, code]);\r\n\r\n const handleApproveCallback = React.useCallback((): void => {\r\n setIsDisabled(false);\r\n onChoose(code, SUBMISSION_PLAN_STATUS.APPROVED,selectedProductCode);\r\n }, [onChoose, code, selectedProductCode]);\r\n\r\n const handleOnReject = React.useCallback((): void => {\r\n setConfirm(false);\r\n }, []);\r\n\r\n const handleOnResolve = React.useCallback(() => {\r\n const changedRoleId = productRoles && productRoles.find(pR => pR.productRoleId !== userProductRole)?.productRoleId;\r\n setConfirm(true);\r\n onRoleSelect(changedRoleId, status);\r\n }, [onRoleSelect, productRoles, userProductRole, status]);\r\n\r\n const handleProductRoleCallback = React.useCallback((value: AP.Nullable) => {\r\n const userProductRoles = (value === null ? 0 : value.productRoleId);\r\n setSelectedProductCode(userProductRoles);\r\n onChoose(code, state[code].status, userProductRoles);\r\n if (ifStatusActiveOrCancel && userProductRoles>0 && userProductRoles !== userProductRole)\r\n setConfirm(true);\r\n else\r\n setConfirm(false);\r\n }, [onChoose, code, state, ifStatusActiveOrCancel, userProductRole]);\r\n\r\n const getOptionValueCallback = React.useCallback(\r\n ({ ids }): string => ids,\r\n []\r\n );\r\n\r\n const getOptionLabelCallback = React.useCallback(\r\n ({ roleName }): string => roleName,\r\n []\r\n );\r\n\r\n const renderOptionCallback = React.useCallback(\r\n ({ roleName }: DTO.Roles): JSX.Element => (\r\n
\r\n {roleName}\r\n
\r\n ),\r\n []\r\n );\r\n\r\n const findSelectedProductFromOptions = React.useCallback(\r\n productRole =>{ \r\n return productRole.productRoleId === selectedProductCode;\r\n }, [selectedProductCode]\r\n );\r\n\r\n const value = React.useMemo(\r\n (): DTO.Roles => {\r\n return productRoles && productRoles.find(findSelectedProductFromOptions);\r\n },[productRoles, findSelectedProductFromOptions]\r\n );\r\n\r\n const getSelectedRole = () => {\r\n return productRoles && productRoles.find(productRole => productRole.productRoleId === selectedProductCode)?.roleName || '';\r\n };\r\n\r\n const getDuration = formatDuration({\r\n status,\r\n model,\r\n duration,\r\n performedAt,\r\n expiredAt,\r\n DATE_FORMAT,\r\n translation: t\r\n });\r\n React.useEffect((): void => {\r\n if (Object.keys(state).length > 0) {\r\n if (!isDisabled && status === \"rejected\") {\r\n setIsDisabled(true);\r\n handleProductRoleCallback(null);\r\n }\r\n }\r\n else\r\n setSelectedProductCode(userProductRole);\r\n }, [type, userProductRole, state, status, handleProductRoleCallback, isDisabled]);\r\n React.useEffect((): void => {\r\n if (Object.keys(state).length > 0) {\r\n if ((status === \"rejected\" || state[code].status === \"rejected\") && userProductRole !== selectedProductCode) {\r\n setIsDisabled(true);\r\n // handleProductRoleCallback(null);\r\n }\r\n }\r\n else\r\n setSelectedProductCode(userProductRole);\r\n }, [userProductRole, state, status, handleProductRoleCallback, code, selectedProductCode]);\r\n\r\n return (\r\n \r\n
{title}
\r\n \r\n {formatNumber(licenses, NUMBER_FORMAT)}\r\n \r\n
\r\n \r\n
\r\n
{performedBy || '-'}
\r\n \r\n {// eslint-disable-next-line no-nested-ternary\r\n performedAt\r\n ? DATE_FORMAT !== 'dd MMMM yyyy'\r\n ? format(new Date(performedAt), DATE_FORMAT)\r\n : DateLocale(format(new Date(performedAt), DATE_FORMAT))\r\n : '-'}\r\n \r\n \r\n {getDuration}\r\n \r\n { (productCode===\"mip\")?( \r\n \r\n {isDetailsDialog ?\r\n (\r\n
{getSelectedRole() || ''}
\r\n )\r\n :\r\n (\r\n
\r\n \r\n \r\n getOptionLabel={getOptionLabelCallback}\r\n getOptionValue={getOptionValueCallback}\r\n isDisabled={isDisabled || user.role === USER_ROLES.SUPER_ADMIN }\r\n options={productRoles}\r\n placeholder={t('placeholders.selectRole')}//\"Select Role\"\r\n renderOption={renderOptionCallback}\r\n value={value}\r\n onChange={handleProductRoleCallback}\r\n />\r\n \r\n \r\n )\r\n }\r\n {confirm && ifStatusActiveOrCancel ? (\r\n \r\n ) : null}\r\n
\r\n ):null\r\n }\r\n {enablePlanControl && Object.keys(state).length > 0 && (\r\n \r\n {(status === SUBMISSION_PLAN_STATUS.PENDING ||\r\n status === SUBMISSION_PLAN_STATUS.PENDING_REACTIVATION ||\r\n status === SUBMISSION_PLAN_STATUS.PENDING_RENEWAL ||\r\n status === SUBMISSION_PLAN_STATUS.PENDING_ACTIVATION) && (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import { format } from 'date-fns';\r\n\r\nimport { DateLocale } from 'features/AdminPage/DateLocale';\r\nimport {\r\n SUBMISSION_PLAN_STATUS,\r\n PLAN_TYPE\r\n} from 'shared/constants/submission.consts';\r\n// import { DATE_FORMAT } from 'shared/constants/common.consts';\r\n\r\nexport const formatDuration = ({\r\n status,\r\n model,\r\n duration,\r\n performedAt,\r\n expiredAt,\r\n translation,\r\n DATE_FORMAT\r\n}: Pick<\r\n DTO.SubmissionPlan,\r\n 'status' | 'model' | 'duration' | 'performedAt' | 'expiredAt' | 'DATE_FORMAT'\r\n> & { translation: (keyword: string) => string }): string => {\r\n switch (true) {\r\n case model === PLAN_TYPE.LICENSE ||\r\n (model === PLAN_TYPE.SUBSCRIPTION &&\r\n status === SUBMISSION_PLAN_STATUS.REJECTED):\r\n return '-';\r\n \r\n case status === SUBMISSION_PLAN_STATUS.PENDING &&\r\n duration !== null &&\r\n model === PLAN_TYPE.SUBSCRIPTION: {\r\n const isPlural = duration > 1;\r\n const monthsKeyword = isPlural\r\n ? translation('admin.plans.months')\r\n : translation('admin.plans.month');\r\n return `${duration} ${monthsKeyword}`;\r\n }\r\n\r\n case model === PLAN_TYPE.SUBSCRIPTION && duration === null:\r\n return translation('admin.plans.noEndDate');\r\n\r\n default:\r\n return performedAt && expiredAt\r\n ? `${\r\n DATE_FORMAT !== 'dd MMMM yyyy'\r\n ? format(new Date(performedAt), DATE_FORMAT)\r\n : DateLocale(format(new Date(performedAt), DATE_FORMAT))\r\n } - ${\r\n DATE_FORMAT !== 'dd MMMM yyyy'\r\n ? format(new Date(expiredAt), DATE_FORMAT)\r\n : DateLocale(format(new Date(expiredAt), DATE_FORMAT))\r\n }`\r\n : '-';\r\n }\r\n};\r\n","import React from 'react';\r\nimport cs from 'classnames';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { Button } from 'components';\r\nimport styles from './SubmissionPlansFooter.module.css';\r\n\r\ninterface Props {\r\n columnsCount: number;\r\n rowClassName: string;\r\n rowStyles: Record;\r\n isSubmitAvailable: boolean;\r\n onOpenSubmissionDialog: () => void;\r\n shouldShowText: boolean;\r\n}\r\n\r\nexport const SubmissionPlansFooter: React.FC = ({\r\n columnsCount,\r\n rowClassName,\r\n rowStyles,\r\n isSubmitAvailable,\r\n onOpenSubmissionDialog,\r\n shouldShowText\r\n}) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n
\r\n \r\n {shouldShowText && t('admin.plans.check')}\r\n

\r\n
\r\n \r\n {t('admin.plans.submit')}\r\n \r\n
\r\n
\r\n );\r\n};\r\n","import { string, object } from 'yup';\r\nimport { withFormik } from 'formik';\r\n\r\nimport { noop } from 'shared/utils';\r\n\r\nexport interface RegistrationSubmissionForm {\r\n comment: string;\r\n}\r\n\r\nexport const initialFormValues: RegistrationSubmissionForm = {\r\n comment: ''\r\n};\r\n\r\nexport const commentLengthLimit = 255;\r\n\r\nexport interface RegistrationSubmissionDialogProps {\r\n onSubmit: (comment: string) => void;\r\n onCancel: () => void;\r\n}\r\n\r\nexport const registrationSubmissionDialogEnhancer = withFormik<\r\n RegistrationSubmissionDialogProps,\r\n RegistrationSubmissionForm\r\n>({\r\n mapPropsToValues: () => initialFormValues,\r\n validationSchema: object().shape({\r\n comment: string()\r\n .required()\r\n .trim()\r\n .max(commentLengthLimit)\r\n }),\r\n handleSubmit: noop\r\n});\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { FormikProps } from 'formik';\r\n\r\nimport { Dialog, Form } from 'components';\r\nimport {\r\n commentLengthLimit,\r\n registrationSubmissionDialogEnhancer,\r\n RegistrationSubmissionDialogProps,\r\n RegistrationSubmissionForm\r\n} from './RegistrationSubmissionDialog.helpers';\r\nimport styles from './RegistrationSubmissionDialog.module.css';\r\n\r\nconst RegistrationSubmissionDialogComponent = (\r\n props: RegistrationSubmissionDialogProps &\r\n FormikProps\r\n) => {\r\n const { onSubmit, onCancel, isValid, values } = props;\r\n const { t } = useTranslation();\r\n const [show, setShow] = React.useState(true);\r\n const [sendValues, setSendValues] = React.useState(false);\r\n\r\n const handleOnClose = React.useCallback(() => {\r\n setShow(false);\r\n }, []);\r\n\r\n const handleOnSubmit = React.useCallback(() => {\r\n setSendValues(true);\r\n setShow(false);\r\n }, []);\r\n\r\n const handleOnClosed = React.useCallback(() => {\r\n if (sendValues) {\r\n onSubmit(values.comment);\r\n } else {\r\n onCancel();\r\n }\r\n }, [onSubmit, onCancel, sendValues, values]);\r\n\r\n const renderFooter = React.useCallback(\r\n () => (\r\n
\r\n {values.comment.length}/{commentLengthLimit}\r\n
\r\n ),\r\n [values]\r\n );\r\n return (\r\n \r\n \r\n
\r\n

{t('forms.registrationSubmission.text')}

\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport const RegistrationSubmissionDialog = registrationSubmissionDialogEnhancer(\r\n RegistrationSubmissionDialogComponent\r\n);\r\n","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useMutate } from 'restful-react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { removeFromLocalStorage, setToLocalStorage } from 'shared/utils/storage.utils';\r\nimport { USER_ROLES } from 'features/AdminPage/OnboardingPage/OnboardingFilters/OnboardingFilters';\r\nimport { selectProductCode } from 'store/product';\r\nimport { SUBMISSION_PLAN_STATUS } from 'shared/constants/submission.consts';\r\nimport { reselectUser, selectHttpHeaders, selectSourceSubjectId } from 'store/auth';\r\nimport { setSelectedEmail } from 'store/updateSubscription/subscription.actions';\r\nimport { useOnMount } from 'shared/hooks';\r\nimport { API_PATH } from 'shared/constants/api.consts';\r\nimport { AdminContext } from 'features/AdminPage/AdminPageContent/AdminPageContent.helpers';\r\nimport { AdminGrid } from 'features/AdminPage/AdminGrid/AdminGrid';\r\nimport { Nothing, Spinner, Confirmation } from 'components';\r\nimport { SubmissionPlan } from '../SubmissionPlan/SubmissionPlan';\r\nimport { APP_PATH } from '../../../../Routes/Routes.helpers';\r\nimport {\r\n initialSubscriptionsState,\r\n SUBSCRIPTIONS_ACTION_TYPES,\r\n subscriptionsReducer,\r\n SubscriptionsState,\r\n SubscriptionsRequest,\r\n ProductRoleRequest,\r\n useTableHeaders,\r\n Subscription,\r\n APPROVAL_ACTION_TYPES,\r\n APPROVAL_ACTION_TYPES_NAMES\r\n} from './SubmissionPlansGrid.helpers';\r\nimport { SubmissionPlansFooter } from '../SubmissionPlansFooter/SubmissionPlansFooter';\r\nimport { RegistrationSubmissionDialog } from '../../dialogs/RegistrationSubmissionDialog/RegistrationSubmissionDialog';\r\n\r\ninterface Props {\r\n plans: DTO.SubmissionPlan[];\r\n email: string;\r\n className?: string;\r\n enablePlanControl?: boolean;\r\n updatePlanControl?: boolean;\r\n isDetailsDialog?: boolean;\r\n productRoles?: Array;\r\n}\r\n\r\nexport const SubmissionPlansGrid: React.FC = ({\r\n plans,\r\n email,\r\n className = '',\r\n enablePlanControl = false,\r\n updatePlanControl = true,\r\n isDetailsDialog = false,\r\n productRoles,\r\n}) => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const sourceSubjectId = useSelector(selectSourceSubjectId);\r\n const user = useSelector(reselectUser);\r\n const productCode = useSelector(selectProductCode);\r\n const httpHeaders = useSelector(selectHttpHeaders);\r\n const updateUrl = `${APP_PATH.ADMIN_UPDATESUBSCRIPTION_ROOT}/${productCode}`;\r\n const { onSubscriptionsSubmit } = React.useContext(AdminContext);\r\n const [approvalActionType, setApprovalActionType] = React.useState<\r\n APPROVAL_ACTION_TYPES\r\n >(null);\r\n const [isOpenSubmissionDialog, setOpenSubmissionDialog] = React.useState<\r\n boolean\r\n >(false);\r\n const [IsRoleSelected, setRoleSelected] = React.useState<\r\n boolean\r\n >(false);\r\n const ifPageMIP = (productCode === \"mip\");\r\n\r\n const [subscriptions, dispatchSubscriptions] = React.useReducer(\r\n subscriptionsReducer,\r\n initialSubscriptionsState\r\n );\r\n const [isSubmitAvailable, setSubmitAvailability] = React.useState(false);\r\n const { mutate: saveSubscriptions, loading: isLoading } = useMutate<\r\n SubscriptionsRequest\r\n >({\r\n verb: 'POST',\r\n path: API_PATH.SAVE_SUBSCRIPTION(productCode, sourceSubjectId),\r\n requestOptions: () => ({ headers: httpHeaders })\r\n });\r\n\r\n const { mutate: saveProductRoleInfo } = useMutate<\r\n ProductRoleRequest\r\n >({\r\n verb: 'POST',\r\n path: API_PATH.SAVE_PRODUCT_ROLE_INFO(productCode),\r\n requestOptions: () => ({ headers: httpHeaders })\r\n });\r\n\r\n const generateConfirmationPopupText = (): string => {\r\n if (approvalActionType === APPROVAL_ACTION_TYPES.RENEW) {\r\n const approvedPlan = Object.values(subscriptions).find(plan => {\r\n return plan.checked && plan.status === SUBMISSION_PLAN_STATUS.APPROVED;\r\n });\r\n return approvedPlan\r\n ? t('admin.plans.approveMessage')\r\n : t('admin.plans.rejectMesaage');\r\n }\r\n return t('admin.plans.changePlanMessage');\r\n };\r\n\r\n const handleClearActionType = React.useCallback((): void => {\r\n setApprovalActionType(null);\r\n }, []);\r\n\r\n const handleOnResolve = React.useCallback((): void => {\r\n // update cache variable to keep track for highlighted subscription\r\n setToLocalStorage('recentUserEmail', email);\r\n saveSubscriptions({\r\n comment: APPROVAL_ACTION_TYPES_NAMES[approvalActionType],\r\n plans: Object.values(subscriptions),\r\n user: { email }\r\n }).finally((): void => {\r\n onSubscriptionsSubmit();\r\n });\r\n handleClearActionType();\r\n }, [\r\n saveSubscriptions,\r\n approvalActionType,\r\n subscriptions,\r\n email,\r\n handleClearActionType,\r\n onSubscriptionsSubmit\r\n ]);\r\n\r\n const handleRejectAll = React.useCallback((): void => {\r\n dispatchSubscriptions({ type: SUBSCRIPTIONS_ACTION_TYPES.REJECT_ALL });\r\n }, []);\r\n\r\n const handleApproveAll = React.useCallback((): void => {\r\n dispatchSubscriptions({ type: SUBSCRIPTIONS_ACTION_TYPES.APPROVE_ALL });\r\n }, []);\r\n\r\n const handleUpdate = React.useCallback((): void => {\r\n removeFromLocalStorage('recentUserEmail');\r\n removeFromLocalStorage('initialPlans');\r\n removeFromLocalStorage('showCancelButton');\r\n dispatch(setSelectedEmail(email));\r\n history.push(updateUrl);\r\n }, [dispatch, email, history, updateUrl]);\r\n\r\n const {\r\n defaultTableHeaders,\r\n controlTableHeaders,\r\n emptyTableHeaders,\r\n defaultTableHeadersIfMIP,\r\n updateTableHeaders,\r\n } = useTableHeaders({\r\n onReject: handleRejectAll,\r\n onApprove: handleApproveAll,\r\n onUpdate: handleUpdate\r\n });\r\n\r\n const [tableHeaders, setTableHeaders] = React.useState(\r\n enablePlanControl\r\n ? (defaultTableHeaders as any).concat(\r\n plans.length > 1 ? controlTableHeaders : emptyTableHeaders\r\n )\r\n : defaultTableHeaders\r\n );\r\n\r\n React.useEffect((): void => {\r\n if (ifPageMIP) {\r\n let nextTableHeaders;\r\n if (enablePlanControl) {\r\n nextTableHeaders = (defaultTableHeadersIfMIP as any).concat(\r\n plans.length > 1 ? controlTableHeaders : emptyTableHeaders\r\n );\r\n } else if (!enablePlanControl && updatePlanControl) {\r\n nextTableHeaders = (defaultTableHeadersIfMIP as any).concat(updateTableHeaders);\r\n } else {\r\n nextTableHeaders = defaultTableHeadersIfMIP;\r\n }\r\n setTableHeaders(nextTableHeaders);\r\n }\r\n else {\r\n let nextTableHeaders;\r\n if (enablePlanControl) {\r\n nextTableHeaders = (defaultTableHeaders as any).concat(\r\n plans.length > 1 ? controlTableHeaders : emptyTableHeaders\r\n );\r\n } else if (!enablePlanControl && updatePlanControl) {\r\n nextTableHeaders = (defaultTableHeaders as any).concat(updateTableHeaders);\r\n } else {\r\n nextTableHeaders = defaultTableHeaders;\r\n }\r\n setTableHeaders(nextTableHeaders);\r\n }\r\n }, [\r\n enablePlanControl,\r\n plans.length,\r\n controlTableHeaders,\r\n defaultTableHeaders,\r\n defaultTableHeadersIfMIP,\r\n emptyTableHeaders,\r\n ifPageMIP,\r\n updateTableHeaders,\r\n updatePlanControl\r\n ]);\r\n\r\n useOnMount(\r\n React.useCallback((): void => {\r\n dispatchSubscriptions({\r\n type: SUBSCRIPTIONS_ACTION_TYPES.INITIALIZE,\r\n payload: plans.reduce(\r\n (acc: SubscriptionsState, value) => ({\r\n ...acc,\r\n [value.code]: {\r\n code: value.code,\r\n status:\r\n value.status === SUBMISSION_PLAN_STATUS.PENDING ||\r\n value.status === SUBMISSION_PLAN_STATUS.PENDING_REACTIVATION ||\r\n value.status === SUBMISSION_PLAN_STATUS.PENDING_RENEWAL ||\r\n value.status === SUBMISSION_PLAN_STATUS.PENDING_ACTIVATION\r\n ? null\r\n : value.status,\r\n id: value.id\r\n }\r\n }),\r\n subscriptions\r\n )\r\n });\r\n }, [plans, subscriptions])\r\n );\r\n\r\n React.useEffect((): void => {\r\n const areRadiosChecked = Object.values(subscriptions).every(\r\n (subscription: Subscription) => subscription.status !== null\r\n );\r\n\r\n if (ifPageMIP) {\r\n if (IsRoleSelected && areRadiosChecked && user.role !== USER_ROLES.SUPER_ADMIN) {\r\n setSubmitAvailability(true);\r\n }\r\n else {\r\n setSubmitAvailability(false);\r\n }\r\n }\r\n else {\r\n setSubmitAvailability(areRadiosChecked && user.role !== USER_ROLES.SUPER_ADMIN);\r\n }\r\n }, [subscriptions, IsRoleSelected, ifPageMIP, user.role]);\r\n\r\n const handleChoosePlanAction = React.useCallback(\r\n (code: string, value: DTO.SubmissionPlanStatus, productRoleId: number) => {\r\n if (ifPageMIP) {\r\n if (value === \"rejected\" || (productRoleId > 0)) {\r\n setRoleSelected(true);\r\n }\r\n else {\r\n setRoleSelected(false);\r\n }\r\n }\r\n\r\n dispatchSubscriptions({\r\n type: SUBSCRIPTIONS_ACTION_TYPES.CHANGE_VALUE,\r\n payload: { code, value, productRoleId }\r\n });\r\n },\r\n [ifPageMIP]\r\n );\r\n\r\n const handleOpenSubmissionDialog = React.useCallback((): void => {\r\n plans.forEach(plan => {\r\n switch (plan.status) {\r\n case SUBMISSION_PLAN_STATUS.PENDING:{\r\n setOpenSubmissionDialog(true);\r\n setApprovalActionType(APPROVAL_ACTION_TYPES.ACTIVATE);\r\n break;\r\n }\r\n case SUBMISSION_PLAN_STATUS.PENDING_REACTIVATION: {\r\n setApprovalActionType(APPROVAL_ACTION_TYPES.REACTIVATE);\r\n break;\r\n }\r\n case SUBMISSION_PLAN_STATUS.PENDING_RENEWAL: {\r\n setApprovalActionType(APPROVAL_ACTION_TYPES.RENEW);\r\n break;\r\n }\r\n case SUBMISSION_PLAN_STATUS.PENDING_ACTIVATION: {\r\n if(productCode !== 'sbp')\r\n setOpenSubmissionDialog(true);\r\n else \r\n setOpenSubmissionDialog(false);\r\n setApprovalActionType(APPROVAL_ACTION_TYPES.ACTIVATE);\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [plans]);\r\n\r\n const handleCloseSubmissionDialog = React.useCallback((): void => {\r\n setOpenSubmissionDialog(false);\r\n }, []);\r\n\r\n const handleSubmitSubscriptions = React.useCallback(\r\n (comment: string): void => {\r\n // update cache variable to keep track for highlighted subscription\r\n setToLocalStorage('recentUserEmail', email);\r\n saveSubscriptions({\r\n comment,\r\n plans: Object.values(subscriptions),\r\n user: { email }\r\n }).finally((): void => {\r\n onSubscriptionsSubmit();\r\n });\r\n setOpenSubmissionDialog(false);\r\n },\r\n [saveSubscriptions, subscriptions, email, onSubscriptionsSubmit]\r\n );\r\n\r\n const handleProductRoleRequest = React.useCallback(\r\n (ProductRoleId: number, status: string): void => {\r\n saveProductRoleInfo({\r\n email,\r\n ProductCode: productCode,\r\n status,\r\n ProductRoleId\r\n }).finally((): void => {\r\n onSubscriptionsSubmit();\r\n });\r\n },\r\n [saveProductRoleInfo, email, productCode, onSubscriptionsSubmit]\r\n );\r\n\r\n const handleDataRendererCallback = React.useCallback(\r\n (plan: DTO.SubmissionPlan) => (\r\n \r\n ),\r\n [\r\n enablePlanControl,\r\n email,\r\n productRoles,\r\n subscriptions,\r\n handleChoosePlanAction,\r\n isDetailsDialog,\r\n handleProductRoleRequest\r\n ]\r\n );\r\n\r\n const handleFooterRendererCallback = React.useCallback(\r\n ({ columnsCount, rowStyles, rowClassName }) =>\r\n enablePlanControl ? (\r\n 1}\r\n onOpenSubmissionDialog={handleOpenSubmissionDialog}\r\n />\r\n ) : (\r\n \r\n ),\r\n [\r\n enablePlanControl,\r\n plans.length,\r\n isSubmitAvailable,\r\n handleOpenSubmissionDialog\r\n ]\r\n );\r\n\r\n if (isLoading) return ;\r\n\r\n return (\r\n \r\n \r\n className={className}\r\n dataKey='code'\r\n footerRenderer={handleFooterRendererCallback}\r\n gridData={plans}\r\n gridHeaders={tableHeaders}\r\n ifPageMIP={ifPageMIP}\r\n isDetailsDialog={isDetailsDialog}\r\n productRoles={productRoles}\r\n rowDataRenderer={handleDataRendererCallback}\r\n userRole={user?.role}\r\n />\r\n {(isOpenSubmissionDialog) && (\r\n \r\n )}\r\n {(approvalActionType === APPROVAL_ACTION_TYPES.RENEW ||\r\n approvalActionType === APPROVAL_ACTION_TYPES.REACTIVATE ||\r\n (productCode === 'sbp' && approvalActionType === APPROVAL_ACTION_TYPES.ACTIVATE && !isOpenSubmissionDialog && plans.every((plan:any) => plan.performedBy))) && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { USER_ROLES } from 'features/AdminPage/OnboardingPage/OnboardingFilters/OnboardingFilters';\r\nimport { reselectUser } from 'store/auth';\r\nimport styles from './Detail.module.css';\r\n\r\nexport interface DetailProps {\r\n title: string;\r\n value: string;\r\n}\r\n\r\nexport const Detail: React.FC = ({ title, value }) => {\r\n const { t } = useTranslation();\r\n const user = useSelector(reselectUser);\r\n const contentHiddenText = t('admin.grid.hiddencontent');\r\n\r\n return (\r\n
\r\n

{title}

\r\n {(user.role === USER_ROLES.SUPER_ADMIN &&\r\n (title === `${t('admin.grid.companyName')}:` ||\r\n title === `${t('admin.grid.subscriberName')}:` ||\r\n title === `${t('admin.grid.subscriberEmail')}:`)) ? (\r\n

\r\n {contentHiddenText}\r\n

\r\n ) : (\r\n

\r\n {value}\r\n

\r\n )}\r\n
\r\n );\r\n};\r\n","import React, { FC } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport cs from 'classnames';\r\nimport { format } from 'date-fns';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { reselectUser } from 'store/auth';\r\nimport { DateLocale } from 'features/AdminPage/DateLocale';\r\nimport { Detail } from '../Detail/Detail';\r\n\r\ninterface Props {\r\n submission: DTO.SubmissionRecord;\r\n className?: string;\r\n}\r\n\r\nexport const Details: FC = ({\r\n className = '',\r\n submission: {\r\n displayId,\r\n country: { name: countryName },\r\n organization: { legalName, state, address, city, postalCode },\r\n user: { firstName, lastName, email, submissionDate }\r\n }\r\n}) => {\r\n const { t } = useTranslation();\r\n const user = useSelector(reselectUser);\r\n const { dateFormat } = user.profileSettings;\r\n\r\n const rows = [\r\n { title: t('admin.grid.id'), value: displayId },\r\n { title: t('admin.grid.companyName'), value: legalName },\r\n {\r\n title: t('admin.grid.subscriberName'),\r\n value: `${firstName} ${lastName}`\r\n },\r\n { title: t('admin.grid.subscriberEmail'), value: email },\r\n {\r\n title: t('admin.grid.submissionDate'),\r\n value:\r\n dateFormat !== 'dd MMMM yyyy'\r\n ? format(new Date(submissionDate), dateFormat)\r\n : DateLocale(format(new Date(submissionDate), dateFormat))\r\n },\r\n { title: t('admin.grid.country'), value: countryName },\r\n { title: t('forms.stateProvinceCounty'), value: state },\r\n { title: t('forms.townCity'), value: city },\r\n { title: t('forms.address'), value: address },\r\n { title: t('forms.zipPostalCode'), value: postalCode }\r\n ];\r\n\r\n return (\r\n
\r\n {rows.map(({ title, value }) => (\r\n \r\n ))}\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { Dialog } from 'components';\r\nimport { SubmissionPlansGrid } from '../../Submission/SubmissionPlansGrid/SubmissionPlansGrid';\r\nimport { Details } from './Details/Details';\r\nimport styles from './DetailedInformationDialog.module.css';\r\n\r\ninterface Props {\r\n submission: DTO.SubmissionRecord;\r\n productRoles?: Array;\r\n onClose: () => void;\r\n updatePlanControl?: boolean;\r\n}\r\n\r\nexport const DetailedInformationDialog: React.FC = ({\r\n submission,\r\n onClose,\r\n productRoles,\r\n updatePlanControl,\r\n}): JSX.Element => {\r\n const { t } = useTranslation();\r\n const [show, setShow] = React.useState(true);\r\n\r\n const handleOnClose = React.useCallback((): void => {\r\n setShow(false);\r\n onClose();\r\n }, [onClose]);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { Dialog, Icon } from 'components';\r\nimport styles from './RegistrationCommentDialog.module.css';\r\n\r\ninterface Props {\r\n submission: DTO.SubmissionRecord;\r\n onClose?: () => void;\r\n DATE_FORMAT?: string;\r\n}\r\n\r\nexport function RegistrationCommentDialog({\r\n submission: { comment, plans },\r\n onClose\r\n}: Props): JSX.Element {\r\n const { t } = useTranslation();\r\n const [show, setShow] = React.useState(true);\r\n\r\n const handleOnClose = React.useCallback((): void => {\r\n setShow(false);\r\n }, [setShow]);\r\n\r\n const [actions] = React.useState([\r\n {\r\n label: t('actions.ok'),\r\n variant: 'primary',\r\n onClick: handleOnClose\r\n }\r\n ]);\r\n\r\n return (\r\n \r\n
\r\n \r\n

{plans[0].performedBy}

\r\n

{comment}

\r\n
\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withFormik, FormikProps } from 'formik';\r\nimport get from 'lodash/get';\r\nimport camelCase from 'lodash/camelCase';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { object, string, setLocale } from 'yup';\r\n\r\n// import { selectProductCode } from 'store/product';\r\n// import { reselectRegistrationData } from 'store/registration';\r\n// import { RootState } from 'store/root.reducer';\r\nimport { noop } from 'shared/utils';\r\nimport { Form } from 'components';\r\nimport { RootState } from 'store/root.reducer';\r\nimport { reselectSubscriptionData } from 'store/updateSubscription';\r\nimport { errorException } from 'shared/utils/AppInsights';\r\n\r\ninterface FormFieldProps {\r\n disabled?: boolean;\r\n name: string;\r\n span?: number;\r\n label?: string;\r\n placeholder?: string;\r\n options?: any[];\r\n elem?: any[];\r\n validationErrMsg?: (err: string | unknown) => string;\r\n productCode?: any;\r\n t?: any;\r\n}\r\n\r\ninterface FormGroup {\r\n // title: string;\r\n fields: FormField[][];\r\n note?: string;\r\n}\r\n\r\nexport interface FormField {\r\n disabled?: boolean;\r\n label: string;\r\n name: string;\r\n placeholder?: string;\r\n render: (props: FormFieldProps) => JSX.Element;\r\n elem?: any;\r\n options?: any[];\r\n}\r\n\r\nsetLocale({\r\n mixed: {\r\n default: ({ path }: string | any): AP.ValidationError => ({\r\n key: camelCase(path)\r\n }),\r\n required: (): AP.ValidationError => {\r\n // AppInsights Error Exception\r\n errorException('Error data required, File reference: UserForm.helpers.tsx in setLocale function ');\r\n\r\n return { key: 'required' };\r\n }\r\n },\r\n string: {\r\n email: (): AP.ValidationError => {\r\n // AppInsights Error Exception\r\n errorException('Error userEmail, File reference: UserForm.helpers.tsx in setLocale function ');\r\n\r\n return { key: 'userEmail' };\r\n }\r\n }\r\n});\r\n\r\nfunction renderInput(\r\n type: 'text' | 'email',\r\n props: FormFieldProps\r\n): JSX.Element {\r\n return ;\r\n}\r\n\r\n// eslint-disable-next-line react/no-multi-comp\r\nfunction renderSelect({ options, ...props }: FormFieldProps): JSX.Element {\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction renderStateSelect({ options, disabled, ...props }: FormFieldProps): JSX.Element {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport const formGroups: FormGroup[] = [\r\n {\r\n fields: [\r\n [\r\n {\r\n label: 'forms.emailAddress',\r\n name: 'UserEmail',\r\n render: (props): JSX.Element =>\r\n renderInput('email', { ...props, span: 12 })\r\n },\r\n {\r\n label: 'forms.firstName',\r\n name: 'FirstName',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 12 })\r\n },\r\n {\r\n label: 'forms.lastName',\r\n name: 'LastName',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 12 })\r\n }\r\n ]\r\n ]\r\n }\r\n];\r\n\r\nexport const mipFormGroups: FormGroup[] = [\r\n {\r\n fields: [\r\n [\r\n {\r\n label: 'forms.emailAddress',\r\n name: 'UserEmail',\r\n render: (props): JSX.Element =>\r\n renderInput('email', { ...props, span: 12 })\r\n },\r\n {\r\n label: 'forms.firstName',\r\n name: 'FirstName',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 12 })\r\n },\r\n {\r\n label: 'forms.lastName',\r\n name: 'LastName',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 12 })\r\n },\r\n {\r\n label: 'forms.role',\r\n name: 'Role',\r\n placeholder: 'forms.selectOption',\r\n render: (props): JSX.Element =>\r\n renderSelect({ ...props, span: 12 })\r\n }\r\n ]\r\n ]\r\n }\r\n];\r\nexport const addInfoFormGroups: FormGroup[] = [\r\n {\r\n fields: [\r\n [\r\n {\r\n label: 'forms.companyFullLegalName',\r\n name: 'organization.legalName',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 12, disabled: true })\r\n },\r\n {\r\n label: 'forms.globalParentFullLegalNameOptional',\r\n name: 'organization.parentLegalName',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 12, disabled: true })\r\n },\r\n {\r\n label: 'forms.departmentOptional',\r\n name: 'organization.department',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 12, disabled: true })\r\n },\r\n {\r\n label: 'forms.stateProvinceCounty',\r\n name: 'organization.state',\r\n render: (props): JSX.Element =>\r\n renderStateSelect({ ...props, span: 12, disabled: true })\r\n },\r\n {\r\n label: 'forms.address',\r\n name: 'organization.address',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 12, disabled: true })\r\n },\r\n {\r\n label: 'forms.townCity',\r\n name: 'organization.city',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 12, disabled: true })\r\n },\r\n {\r\n label: 'forms.zipPostalCode',\r\n name: 'organization.postalCode',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 12, disabled: true })\r\n },\r\n ]\r\n ]\r\n }\r\n];\r\n\r\nexport function useRenderInput(lookups: {\r\n [key: string]: any[];\r\n}): ({\r\n name,\r\n label,\r\n placeholder,\r\n render,\r\n options\r\n}: FormField) => JSX.Element {\r\n const { t } = useTranslation();\r\n \r\n return React.useCallback(\r\n ({ name, label, placeholder, render, elem }: FormField): JSX.Element => (\r\n \r\n {render({\r\n name,\r\n label: t(label),\r\n elem,\r\n options: get(lookups, name, []),\r\n placeholder: placeholder ? t(placeholder) : '',\r\n t,\r\n validationErrMsg: (err: string | any): string =>\r\n err ? t(`validation.errors.${err.key}`, { values: err.values }) : ''\r\n })}\r\n \r\n ),\r\n [t,lookups]\r\n );\r\n}\r\n\r\ninterface UserForm {\r\n UserEmail: string;\r\n FirstName: string;\r\n LastName: string;\r\n organization: DTO.Organization;\r\n}\r\n\r\ntype UserFormProps = {\r\n UserEmail: string;\r\n FirstName: string;\r\n LastName: string;\r\n organization: DTO.Organization\r\n};\r\n\r\nexport const initialFormValues: UserForm = {\r\n UserEmail: '',\r\n FirstName: '',\r\n LastName: '',\r\n organization: null\r\n};\r\n\r\nexport type InjectedFormikUserFormProps = UserProps &\r\n FormikProps;\r\n\r\n export type InjectedFormikUserFormPropsa = MultipleUserProps &\r\n FormikProps;\r\n\r\nconst mapUserFormToProps = (state: RootState) => ({\r\n data: {\r\n UserEmail: '',\r\n FirstName: '',\r\n LastName: '',\r\n organization: reselectSubscriptionData(state).organization\r\n }\r\n});\r\n\r\nexport const accountDetailsStoreEnhancer = connect(mapUserFormToProps);\r\nexport interface UserProps extends ReturnType {\r\n isMultipleUser?: boolean;\r\n loading: boolean;\r\n formErrors: Record;\r\n onSubmit: (values: UserForm) => void;\r\n onCancel: () => void;\r\n productRoles?: Array;\r\n organization?: DTO.Organization;\r\n displayId?:string;\r\n}\r\n\r\nexport interface MultipleUserProps extends ReturnType {\r\n loading: boolean;\r\n formErrors: Record;\r\n onSubmit: (values: UserForm) => void;\r\n onCancel: () => void;\r\n productRoles?: Array;\r\n organization?: DTO.Organization;\r\n}\r\n\r\nexport const userFormEnhancer = withFormik({\r\n mapPropsToValues: ({ data }) => data,\r\n validationSchema: object().shape({\r\n UserEmail: string()\r\n .required()\r\n .email()\r\n .test('cannot be Deloitte email', undefined, (value: string): boolean => {\r\n const emailLengthLimit = 64;\r\n\r\n if (!value) return true;\r\n if (value && value.toLowerCase().includes('@deloitte.')) return false;\r\n if (value) {\r\n const splitValue = value.split('@');\r\n if (splitValue && splitValue[0].length > emailLengthLimit)\r\n return false;\r\n }\r\n if (\r\n value &&\r\n /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@(([^<>().,;\\s@\"]+\\.{0,1})+[^<>().,;:\\s@\"]{2,})$/.test(\r\n value\r\n )\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }),\r\n FirstName: string()\r\n .required()\r\n .trim(),\r\n LastName: string()\r\n .required()\r\n .trim(),\r\n Role: object().shape({ \r\n roleName: string()\r\n .required()\r\n .trim() \r\n .optional()\r\n }) ,\r\n organization: object().shape({\r\n legalName: string()\r\n .required()\r\n .trim(),\r\n address: string()\r\n .required()\r\n .trim(),\r\n city: string()\r\n .required()\r\n .trim(),\r\n state: string()\r\n .transform(value => value !== null && value.toString ? value.toString() : value)\r\n .required(),\r\n postalCode: string()\r\n .required()\r\n .trim()\r\n })\r\n }),\r\n handleSubmit: noop\r\n});\r\n","export enum ADDITIONAL_USER_STATE {\r\n MAIN = 'main',\r\n REMOVE = 'remove',\r\n UPDATE = 'update'\r\n}\r\n\r\nexport interface UserState {\r\n type: ADDITIONAL_USER_STATE;\r\n user: AP.Nullable;\r\n}\r\n\r\nexport interface User {\r\n email: string;\r\n firstName: string;\r\n lastName: string;\r\n}\r\n","export default __webpack_public_path__ + \"static/media/DownloadToCloud.84c4f886.svg\";","export default __webpack_public_path__ + \"static/media/xlsIcon.8588de89.svg\";","export default __webpack_public_path__ + \"static/media/Close.d08a4c5b.svg\";","export default __webpack_public_path__ + \"static/media/Retry.c130ea67.svg\";","export default __webpack_public_path__ + \"static/media/Succes.acbb6381.svg\";","/* eslint-disable */\r\nimport React, { useState } from 'react';\r\nimport cs from 'classnames';\r\nimport merge from 'lodash/merge';\r\nimport { get, omit } from 'lodash';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { LinearProgress } from '@material-ui/core';\r\n\r\nimport { selectProductCode } from 'store/product';\r\nimport { reselectLocaleCode } from 'store/localize';\r\nimport { Checkbox, Form, Sidebar } from 'components';\r\nimport { CONFIG } from 'shared/constants/config.consts';\r\nimport {\r\n accountDetailsStoreEnhancer,\r\n userFormEnhancer,\r\n formGroups,\r\n useRenderInput,\r\n FormField,\r\n InjectedFormikUserFormProps,\r\n mipFormGroups,\r\n addInfoFormGroups\r\n} from './UserForm.helpers';\r\nimport styles from './UserForm.module.css';\r\nimport { SubmissionPlanToggler } from '../../SubmissionPlanToggler/SubmissionPlanToggler';\r\nimport DownloadToCloud from '../../../../../../assets/images/DownloadToCloud.svg';\r\nimport XLSIcon from '../../../../../../assets/images/xlsIcon.svg';\r\nimport Close from '../../../../../../assets/images/Close.svg';\r\nimport Retry from '../../../../../../assets/images/Retry.svg';\r\nimport Tick from '../../../../../../assets/images/Succes.svg';\r\nimport { apiService } from 'shared/services';\r\nimport { constants } from 'os';\r\n\r\nconst UserFormCompo: React.FC = ({\r\n displayId,\r\n isMultipleUser,\r\n formErrors,\r\n isValid,\r\n values,\r\n setFieldError,\r\n onSubmit,\r\n onCancel,\r\n productRoles,\r\n organization\r\n}) => {\r\n enum FILE_STATUSES {\r\n SELECTED = 'Selected',\r\n LOADING = 'Uploading',\r\n UPLOADED = 'Uploaded',\r\n FAILED = 'Failed'\r\n }\r\n const productCode = useSelector(selectProductCode);\r\n const localeCode = useSelector(reselectLocaleCode);\r\n const [isConcentChecked, setConcentFlag] = useState(false);\r\n const [file, setFile] = useState(null);\r\n const [uploadStarted, setUploadStarted] = useState(false);\r\n const [FileUploadErrorText, setFileUploadErrorText] = useState('');\r\n const [underLineLoader, setunderLineLoader] = useState('');\r\n const [FileUploadError, setFileUploadError] = useState(false);\r\n const [hasUploaded, setHasUploaded] = useState(false);\r\n const [uploadPercentage, setUploadPercentage] = useState(0);\r\n const [statusAdd, setStatusAdd] = useState(FILE_STATUSES.SELECTED);\r\n const [taskId, setTaskId] = useState('');\r\n let enableAddUsers =\r\n isMultipleUser && statusAdd === FILE_STATUSES.UPLOADED && isConcentChecked;\r\n const barDesign =\r\n statusAdd === FILE_STATUSES.LOADING\r\n ? styles.barUploading\r\n : statusAdd === FILE_STATUSES.FAILED\r\n ? styles.barFailed\r\n : statusAdd === FILE_STATUSES.SELECTED\r\n ? styles.barSelected\r\n : styles.barLoaded;\r\n const handleSubmit = React.useCallback((): void => {\r\n onSubmit(\r\n merge(\r\n {},\r\n {\r\n UserProductRole: get(values, 'Role.productRoleId'),\r\n ...omit(values, 'Role'),\r\n isConcentChecked\r\n }\r\n )\r\n );\r\n }, [onSubmit, values, isConcentChecked]);\r\n\r\n const { t } = useTranslation();\r\n\r\n const renderInput = useRenderInput({\r\n Role: productRoles\r\n });\r\n\r\n const renderStateInput = useRenderInput({\r\n 'organization.state': organization.state.code\r\n });\r\n\r\n const mapFormFields = React.useCallback(\r\n (row: FormField[], index: number) => (\r\n {row.map(renderInput)} \r\n ),\r\n [renderInput]\r\n );\r\n const mapAddInfoFormFields = React.useCallback(\r\n (row: FormField[], index: number) => {\r\n return (\r\n \r\n {' '}\r\n {row.map(renderStateInput)}{' '}\r\n \r\n );\r\n },\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [renderInput]\r\n );\r\n\r\n const mapFormGroups = React.useCallback(\r\n ({ fields, title }, index: number): JSX.Element => (\r\n \r\n {fields.map(mapFormFields)}\r\n \r\n ),\r\n [mapFormFields]\r\n );\r\n\r\n const mapAddInfoFormGroups = React.useCallback(\r\n ({ fields, title }, index: number): JSX.Element => (\r\n \r\n {fields.map(mapAddInfoFormFields)}\r\n \r\n ),\r\n [mapAddInfoFormFields]\r\n );\r\n\r\n const form = React.useMemo(\r\n (): JSX.Element[] =>\r\n productCode === 'mip'\r\n ? mipFormGroups.map(mapFormGroups)\r\n : formGroups.map(mapFormGroups),\r\n [mapFormGroups, productCode]\r\n );\r\n const additionalInformationForm = React.useMemo(\r\n (): JSX.Element[] => addInfoFormGroups.map(mapAddInfoFormGroups),\r\n [mapAddInfoFormGroups]\r\n );\r\n\r\n React.useEffect((): void => {\r\n if (formErrors) {\r\n Object.keys(formErrors).forEach((key): void => {\r\n setFieldError(key, get(formErrors, key));\r\n });\r\n }\r\n }, [formErrors, setFieldError]);\r\n\r\n const handleChecked = () => {\r\n setConcentFlag(!isConcentChecked);\r\n };\r\n\r\n const allFieldArevalid =\r\n values.UserEmail.trim() &&\r\n /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@(([^<>().,;\\s@\"]+\\.{0,1})+[^<>().,;:\\s@\"]{2,})$/.test(\r\n values.UserEmail.trim()\r\n ) &&\r\n values.UserEmail.toLocaleLowerCase().trim().indexOf('deloitte') === -1 &&\r\n values.FirstName.trim() &&\r\n values.LastName.trim() &&\r\n isConcentChecked &&\r\n isValid;\r\n\r\n const isFormValid =\r\n productCode !== 'mip'\r\n ? allFieldArevalid\r\n : allFieldArevalid && get(values, 'Role.productRoleId');\r\n\r\n const [\r\n isAdditionalInformationContainerOpen,\r\n toggleAdditionalInformationContainer\r\n ] = React.useState(false);\r\n\r\n interface FileData {\r\n file: File;\r\n error: string;\r\n status: FILE_STATUSES;\r\n }\r\n\r\n const [isFileOver, setIsFileOver] = useState(false);\r\n const isDisabled = true;\r\n const templatePath = `/user-template/ ${localeCode} /`;\r\n\r\n const handleDownloadTemplate = () => {\r\n const url = `/user-template/${localeCode}/${CONFIG.USR_TEMPLATE}`;\r\n const templateName = CONFIG.USR_TEMPLATE;\r\n const a = document.createElement('a');\r\n a.style.display = 'none';\r\n a.href = url;\r\n a.download = templateName;\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n };\r\n const handleDragOver = (e: React.DragEvent) => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n setIsFileOver(true);\r\n };\r\n\r\n const handleDropFile = (e: React.DragEvent) => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n setIsFileOver(false);\r\n setUploadStarted(true);\r\n handleSetFiles(e.dataTransfer.files[0]);\r\n };\r\n\r\n const handleDragLeave = (e: React.DragEvent) => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n setIsFileOver(false);\r\n };\r\n\r\n const handleChooseFile = (e: React.ChangeEvent) => {\r\n handleSetFiles(e.target.files[0]);\r\n\r\n e.target.value = '';\r\n };\r\n\r\n const handleSetFiles = (addUsersList: File) => {\r\n setFileUploadError(false);\r\n if(statusAdd != FILE_STATUSES.FAILED)\r\n setFileUploadErrorText('');\r\n setUploadStarted(true);\r\n \r\n if (addUsersList != null) {\r\n setFile(addUsersList);\r\n const errorMessage = getErrorMessage(addUsersList);\r\n if (errorMessage === '') startUploading(addUsersList);\r\n else setStatusAdd(FILE_STATUSES.FAILED);\r\n }\r\n };\r\n const handleRetry = () => {\r\n setFile(null);\r\n setFileUploadErrorText('');\r\n setUploadStarted(false);\r\n };\r\n const handleCancelBtn = () => {\r\n setUploadPercentage(0);\r\n setFileUploadErrorText(t('admin.adduser.fileUploadFailed'));\r\n apiService\r\n .deleteAdditionalUserExcel(taskId)\r\n .then((res: any) => {\r\n setStatusAdd(FILE_STATUSES.FAILED);\r\n setFileUploadError(true);\r\n setUploadPercentage(0);\r\n setFileUploadErrorText(t('admin.adduser.fileUploadFailed'));\r\n })\r\n .catch((err) => {\r\n setStatusAdd(FILE_STATUSES.FAILED);\r\n setFileUploadError(true);\r\n if(progressBarStatus != FILE_STATUSES.UPLOADED){\r\n setFileUploadErrorText(t('admin.adduser.somethingWentWrong'));\r\n }\r\n });\r\n };\r\n const handleAddUsers = () => {\r\n enableAddUsers = false;\r\n apiService\r\n .addingBulkAdditionalUsers(taskId)\r\n .then((res: any) => {\r\n onCancel();\r\n })\r\n .catch((err) => {});\r\n };\r\n let [progress, setProgress] = React.useState(0);\r\n\r\n let progressBarStatus = statusAdd;\r\n let hProgress = 0;\r\n const handleStatus = () => {\r\n apiService\r\n .getStatusForBulkAdditionalUsers(taskId)\r\n .then((res: any) => {\r\n setProgress(res.statusPercentage);\r\n hProgress = res.statusPercentage;\r\n if (res.status === FILE_STATUSES.FAILED) {\r\n setUploadPercentage(0);\r\n setStatusAdd(FILE_STATUSES.FAILED);\r\n setFileUploadError(true);\r\n if(res.errorDescription!= null)\r\n setFileUploadErrorText(res.errorDescription);\r\n hProgress = 0;\r\n } else if (res.status === FILE_STATUSES.UPLOADED) {\r\n setUploadPercentage(0);\r\n setStatusAdd(FILE_STATUSES.UPLOADED);\r\n }\r\n progressBarStatus = res.status;\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n };\r\n\r\n React.useEffect(() => {\r\n const timer = setInterval(() => {\r\n handleStatus();\r\n if(progressBarStatus === FILE_STATUSES.UPLOADED){\r\n setFileUploadErrorText('');\r\n }\r\n if (progressBarStatus != FILE_STATUSES.LOADING) {\r\n setProgress(0);\r\n setUploadPercentage(0);\r\n clearInterval(timer);\r\n }\r\n }, 1500);\r\n }, [taskId]);\r\n\r\n const startUploading = async (curfile: File) => {\r\n const data = new FormData();\r\n data.append('file', curfile, curfile.name);\r\n data.append('AccountId', displayId);\r\n data.append('ProductCode', productCode);\r\n data.append('LocaleCode', localeCode);\r\n data.append('organization', organization.legalName);\r\n data.append('UserProductRole', '2');\r\n data.append('IsConcentChecked', 'true');\r\n\r\n setStatusAdd(FILE_STATUSES.SELECTED);\r\n setUploadPercentage(50); \r\n apiService\r\n .uploadAdditionUsers(data)\r\n .then((res: any) => {\r\n setStatusAdd(FILE_STATUSES.LOADING);\r\n setTaskId(res.data);\r\n })\r\n .catch((err) => {\r\n setUploadPercentage(0);\r\n setStatusAdd(FILE_STATUSES.FAILED);\r\n setUploadPercentage(0); \r\n setFileUploadError(true);\r\n setFileUploadErrorText(t('admin.adduser.somethingWentWrong'));\r\n });\r\n };\r\n const getErrorMessage = (file: File): string => {\r\n let errorMessage = '';\r\n const XLSX =\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\r\n const MAX_FILE_SIZE = 10485760;\r\n\r\n if (file.type !== XLSX) {\r\n errorMessage = t('admin.adduser.unSupportedFile');\r\n setFileUploadError(true);\r\n setFileUploadErrorText(errorMessage);\r\n }\r\n\r\n if (file.size > MAX_FILE_SIZE) {\r\n errorMessage = t('admin.adduser.maxFileSizeError');\r\n setFileUploadError(true);\r\n setFileUploadErrorText(errorMessage);\r\n }\r\n\r\n return errorMessage;\r\n };\r\n return (\r\n \r\n
\r\n {isMultipleUser !== true && (\r\n
\r\n
{form}
\r\n
\r\n )}\r\n\r\n {isMultipleUser === true && (\r\n
\r\n {uploadStarted === true && (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Excel\r\n {file.name} \r\n {statusAdd}\r\n
    \r\n \r\n {statusAdd === FILE_STATUSES.LOADING && (\r\n {\r\n file && handleCancelBtn();\r\n }}\r\n >\r\n Delete\r\n \r\n )}\r\n\r\n {statusAdd === FILE_STATUSES.FAILED && (\r\n \r\n Retry\r\n \r\n )}\r\n\r\n {statusAdd === FILE_STATUSES.UPLOADED && (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n {FileUploadErrorText}\r\n
    \r\n
    \r\n \r\n
\r\n )}\r\n\r\n {uploadStarted === false && (\r\n
\r\n
\r\n
\r\n {file === null && (\r\n \r\n
\r\n Download\r\n
\r\n
\r\n \r\n {t('admin.adduser.dragandDrop')}\r\n \r\n \r\n {t('admin.adduser.browse')}\r\n \r\n \r\n

{t('admin.adduser.maxFileSize')}

\r\n
\r\n \r\n {t('admin.adduser.downloadtemplate')}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n\r\n
\r\n
\r\n
\r\n {t('forms.additionalInformationSection.header')}\r\n
\r\n
\r\n {\r\n toggleAdditionalInformationContainer(\r\n (prevOpenState: boolean) => !prevOpenState\r\n );\r\n }, [])}\r\n />\r\n
\r\n
\r\n {isAdditionalInformationContainerOpen && (\r\n
\r\n
{additionalInformationForm}
\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {t('admin.adduser.cancel')}\r\n \r\n
\r\n {isMultipleUser !== true && (\r\n
\r\n \r\n {t('admin.adduser.add')}\r\n \r\n
\r\n )}\r\n\r\n {isMultipleUser === true && (\r\n
\r\n \r\n {t('admin.adduser.addUsers')}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport const UserForm = accountDetailsStoreEnhancer(\r\n userFormEnhancer(UserFormCompo)\r\n);\r\n","import React, {useState} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useMutate } from 'restful-react';\r\n\r\nimport { selectHttpHeaders, selectSourceSubjectId } from 'store/auth';\r\nimport { selectProductCode } from 'store/product';\r\nimport { API_PATH } from 'shared/constants/api.consts';\r\nimport { Spinner } from 'components';\r\nimport { AlertMessage } from 'components/AlertMessage';\r\nimport { errorException } from 'shared/utils/AppInsights';\r\nimport { UserForm } from './UserForm';\r\nimport styles from './UserForm.module.css';\r\n\r\n\r\nexport const UserFormContainer: React.FC = ({\r\n isMultipleUser,\r\n changePanel,\r\n passData,\r\n reload,\r\n productRoles\r\n}) => {\r\n const productCode = useSelector(selectProductCode);\r\n const httpHeaders = useSelector(selectHttpHeaders);\r\n const [formErrors, setFormErrors] = React.useState(null);\r\n const [showAlert, setShowAlert] = useState(false);\r\n const { t } = useTranslation();\r\n const sourceSubjectId = useSelector(selectSourceSubjectId);\r\n const {\r\n mutate: submitAccountDetails,\r\n loading: submitLoading,\r\n error: submitError\r\n } = useMutate({\r\n verb: 'POST',\r\n path: API_PATH.ADD_ADDITIONAL_USER(productCode, sourceSubjectId),\r\n requestOptions: () => ({ headers: httpHeaders })\r\n });\r\n\r\n const submitUserDetails = (values: any): void => {\r\n submitAccountDetails({\r\n UserEmail: values.UserEmail,\r\n FirstName: values.FirstName,\r\n LastName: values.LastName,\r\n Email: values.UserEmail,\r\n AccountId: passData.displayId,\r\n Organization: passData.organization.legalName,\r\n ProductCode: productCode,\r\n UserProductRole: values.UserProductRole\r\n }).then(() => {\r\n changePanel();\r\n reload();\r\n setShowAlert(false);\r\n }).catch((err) => {\r\n setShowAlert(true);\r\n });\r\n };\r\n\r\n React.useEffect((): void => {\r\n\r\n let errors = null;\r\n\r\n if(submitError && submitError.status === 409){\r\n\r\n // AppInsights Error Exception\r\n errorException('Error bad request to .../product//addAdditionalUser, File reference: UserForm.container.tsx in React.useEffect function');\r\n\r\n errors = {\r\n UserEmail: { \r\n key: `${t('additionalEmailNotUnique')}`\r\n }\r\n };\r\n }\r\n\r\n setFormErrors(errors);\r\n }, [submitError,t]);\r\n \r\n return (\r\n \r\n {\r\n showAlert && (\r\n
\r\n \r\n
\r\n )\r\n }\r\n {submitLoading && }\r\n \r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { components } from 'react-select';\r\nimport { OptionProps } from 'react-select/src/components/Option';\r\nimport cs from 'classnames';\r\n\r\nimport styles from './UserSelect.module.css';\r\n\r\nexport function OptionUser>(\r\n props: OptionProps\r\n): JSX.Element {\r\n const { isSelected, isFocused } = props;\r\n return (\r\n \r\n );\r\n}\r\n","import React, { FC } from 'react';\r\n\r\ninterface Props {\r\n className?: string;\r\n}\r\n\r\nexport const EditIcon: FC = ({ className = '' }) => (\r\n \r\n \r\n \r\n);\r\n","import React from 'react';\r\n\r\nimport { Icon, Select } from 'components';\r\nimport { OptionUser } from './OptionUser';\r\nimport styles from './UserSelect.module.css';\r\nimport { User } from '../UserList/UserList.helpers';\r\nimport { EditIcon } from '../../../../../../icons/EditIcon';\r\n\r\ninterface Props {\r\n userList: User[];\r\n primaryUser: User;\r\n onSelect: (user: User) => void;\r\n onMenuClose: () => void;\r\n}\r\n\r\nexport const UserSelect: React.FC = ({\r\n userList,\r\n primaryUser,\r\n onSelect,\r\n onMenuClose\r\n}) => {\r\n const handleSelectUser = React.useCallback(\r\n (user: User): void => {\r\n if (user.email !== primaryUser.email) {\r\n onSelect(user);\r\n }\r\n },\r\n [primaryUser, onSelect]\r\n );\r\n\r\n const renderOption = React.useCallback(\r\n (user: User): JSX.Element => (\r\n
\r\n \r\n {user.firstName} {user.lastName}\r\n \r\n \r\n {user.email}\r\n \r\n \r\n
\r\n ),\r\n []\r\n );\r\n\r\n const getOptionValue = React.useCallback(\r\n ({ email }: User): string => email,\r\n []\r\n );\r\n\r\n const additionalThemeProps = {\r\n borderRadius: 0,\r\n colors: {\r\n neutral0: '#FFFFFF',\r\n primary25: '#EBF8FD',\r\n primary: '#007CB0'\r\n },\r\n spacing: {\r\n baseUnit: 4,\r\n controlHeight: 4,\r\n menuGutter: 2\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n additionalThemeProps={additionalThemeProps}\r\n className={styles.userSelect}\r\n getOptionValue={getOptionValue}\r\n isClearable={false}\r\n isSearchable={false}\r\n OptionComponent={OptionUser}\r\n options={userList}\r\n renderOption={renderOption}\r\n value={primaryUser}\r\n onChange={handleSelectUser}\r\n onMenuClose={onMenuClose}\r\n />\r\n \r\n
\r\n );\r\n};\r\n","import React, { FC } from 'react';\r\nimport cs from 'classnames';\r\n\r\nimport styles from './UserCard.module.css';\r\nimport { User } from '../UserList/UserList.helpers';\r\nimport { noop } from '../../../../../../shared/utils';\r\n\r\ntype Props = {\r\n user: User;\r\n icon: JSX.Element;\r\n isPrimary?: boolean;\r\n onRemove?: (value: User) => void;\r\n onSelect?: () => void;\r\n isDisabled?: boolean\r\n};\r\n\r\nexport const UserCard: FC = ({\r\n user,\r\n icon,\r\n isPrimary,\r\n onRemove = noop,\r\n onSelect = noop,\r\n isDisabled = false,\r\n}) => {\r\n const { firstName, lastName, email } = user;\r\n\r\n const handleClick = () => {\r\n return isPrimary ? onSelect() : onRemove(user);\r\n };\r\n \r\n return (\r\n
\r\n
\r\n {firstName.charAt(0).toLocaleUpperCase()}\r\n {lastName.charAt(0).toLocaleUpperCase()}\r\n
\r\n
\r\n \r\n {firstName} {lastName}\r\n \r\n {email}\r\n
\r\n
\r\n \r\n {icon}\r\n \r\n
\r\n
\r\n );\r\n};\r\n","export default __webpack_public_path__ + \"static/media/ExcelIcon.7b3338a5.svg\";","import React, { FC } from 'react';\r\nimport cs from 'classnames';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { selectProductCode } from 'store/product';\r\nimport styles from './SidebarFooter.module.css';\r\nimport { ADDITIONAL_USER_STATE, UserState } from '../UserList/UserList.helpers';\r\nimport stylesButton from '../../../../../../components/Button/Button.module.css';\r\nimport { Sidebar } from '../../../../../../components';\r\nimport ExcelIcon from '../../../../../../assets/images/ExcelIcon.svg';\r\n\r\ninterface Props {\r\n userState: UserState;\r\n onChangePanel: (a:any) => void;\r\n onClearState: () => void;\r\n onRemoveUser: () => void;\r\n onUpdateUser: () => void;\r\n addUserText: string;\r\n canAddAdditionalUsers: boolean;\r\n}\r\n\r\nexport const SidebarFooter: FC = ({\r\n userState,\r\n onChangePanel,\r\n onClearState,\r\n onRemoveUser,\r\n onUpdateUser,\r\n addUserText,\r\n canAddAdditionalUsers\r\n}) => {\r\n const { t } = useTranslation();\r\n const productCode = useSelector(selectProductCode);\r\n\r\n return (\r\n \r\n
\r\n {userState.type === ADDITIONAL_USER_STATE.MAIN && (\r\n \r\n { productCode === 'sbp' && ( \r\n
\r\n {onChangePanel(\"X\");}}\r\n >\r\n \"Excel\"\r\n {t('admin.adduser.buttonMul')}\r\n \r\n
\r\n )}\r\n\r\n
{addUserText}
\r\n
\r\n \r\n {productCode==='dra'? t('admin.adduser.buttonAddUser'): t('admin.adduser.button')}\r\n \r\n
\r\n
\r\n )}\r\n {userState.type === ADDITIONAL_USER_STATE.REMOVE && (\r\n \r\n
\r\n \r\n {t('actions.cancel')}\r\n \r\n
\r\n
\r\n \r\n {t('actions.remove')}\r\n \r\n
\r\n
\r\n )}\r\n {userState.type === ADDITIONAL_USER_STATE.UPDATE && (\r\n
\r\n \r\n
\r\n \r\n {t('actions.cancel')}\r\n \r\n
\r\n
\r\n \r\n {t('actions.confirm')}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n","export default __webpack_public_path__ + \"static/media/Guidance.41351bf4.svg\";","import React, { useCallback, useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useMutate } from 'restful-react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { selectHttpHeaders } from 'store/auth';\r\nimport { reselectLocaleCode } from 'store/localize';\r\nimport { selectProductCode } from 'store/product';\r\nimport { Icon, Spinner } from 'components';\r\nimport { API_PATH } from 'shared/constants/api.consts';\r\nimport styles from './UserList.module.css';\r\nimport { ADDITIONAL_USER_STATE, User, UserState } from './UserList.helpers';\r\nimport { UserSelect } from '../UserSelect/UserSelect';\r\nimport { UserCard } from '../UserCard/UserCard';\r\nimport { SidebarFooter } from '../SidebarFooter/SidebarFooter';\r\nimport { EditIcon } from '../../../../../../icons/EditIcon';\r\nimport { setUpdatedPrimaryUser } from '../../../../../../store/global';\r\nimport Guidance from '../../../../../../assets/images/Guidance.svg';\r\nimport Close from '../../../../../../assets/images/Close.svg';\r\n\r\ntype Props = {\r\n canAddAdditionalUsers: boolean;\r\n users: User[];\r\n changePanel: (a: any) => void;\r\n passData: User & { displayId: string; organization: DTO.Organization };\r\n reload: () => void;\r\n onShowSubheading: (value: boolean) => void;\r\n};\r\n\r\nexport const UserList = ({\r\n canAddAdditionalUsers,\r\n users,\r\n passData,\r\n changePanel,\r\n reload,\r\n onShowSubheading\r\n}: Props) => {\r\n const dispatch = useDispatch();\r\n const { t } = useTranslation();\r\n const productCode = useSelector(selectProductCode);\r\n const httpHeaders = useSelector(selectHttpHeaders);\r\n const localeCode = useSelector(reselectLocaleCode);\r\n\r\n const {\r\n displayId,\r\n firstName: primaryFirstName,\r\n lastName: primaryLastName,\r\n email: primaryEmail\r\n } = passData;\r\n const primaryUser = {\r\n email: primaryEmail,\r\n firstName: primaryFirstName,\r\n lastName: primaryLastName\r\n };\r\n const allUsers = [...users, { ...primaryUser }];\r\n const [secondryUser, setSecondryUser] = useState('');\r\n const [userState, setUserState] = React.useState({\r\n type: ADDITIONAL_USER_STATE.MAIN,\r\n user: null\r\n });\r\n const [addUserText, setAddUserText] = React.useState();\r\n const [showSelect, setShowSelect] = React.useState(false);\r\n const [close, setClose] = React.useState(false);\r\n\r\n useEffect((): void => {\r\n if (canAddAdditionalUsers && productCode=== 'dra') setAddUserText(t('admin.sidebar.activeText'));\r\n else if (!canAddAdditionalUsers) setAddUserText(t('admin.sidebar.disableText'));\r\n }, [canAddAdditionalUsers, t, productCode]); \r\n\r\n const clearState = React.useCallback((): void => {\r\n onShowSubheading(false);\r\n setUserState({ type: ADDITIONAL_USER_STATE.MAIN, user: null });\r\n }, [onShowSubheading, setUserState]);\r\n\r\n const { mutate: removeUserCall, loading } = useMutate({\r\n verb: 'POST',\r\n path: API_PATH.REMOVE_ADDITIONAL_USER(productCode),\r\n requestOptions: () => ({ headers: httpHeaders }),\r\n onMutate: React.useCallback((): void => {}, [])\r\n });\r\n\r\n const { mutate: updateUserCall, loading: updateUserLoading } = useMutate(\r\n {\r\n verb: 'POST',\r\n path: API_PATH.UPDATE_PRIMARY_USER(productCode, localeCode),\r\n requestOptions: () => ({ headers: httpHeaders })\r\n }\r\n );\r\n\r\n const removeUser = React.useCallback(\r\n (user: any): void => {\r\n onShowSubheading(true);\r\n setUserState({ type: ADDITIONAL_USER_STATE.REMOVE, user });\r\n },\r\n [onShowSubheading]\r\n );\r\n\r\n const removeUserFun = React.useCallback(() => {\r\n removeUserCall({ AccountId: displayId, Email: userState.user.email }).then(\r\n () => {\r\n clearState();\r\n reload();\r\n }\r\n );\r\n }, [clearState, displayId, reload, userState, removeUserCall]);\r\n\r\n const updateUser = React.useCallback(\r\n (user: User): void => {\r\n onShowSubheading(true);\r\n setUserState({ type: ADDITIONAL_USER_STATE.UPDATE, user });\r\n },\r\n [onShowSubheading, setUserState]\r\n );\r\n\r\n const updateUserFun = React.useCallback(() => {\r\n updateUserCall({\r\n CurrentAccountId: displayId,\r\n TargetUserEmail: (userState.user && userState.user.email) || '',\r\n }).then((response: number) => {\r\n dispatch(setUpdatedPrimaryUser(response));\r\n });\r\n }, [updateUserCall, dispatch, displayId, userState.user]);\r\n\r\n const handleSelectUser = useCallback(\r\n user => {\r\n setSecondryUser(`${user.firstName} ${user.lastName}`);\r\n updateUser(user);\r\n setShowSelect(false);\r\n },\r\n [updateUser, setShowSelect]\r\n );\r\n \r\n return (\r\n \r\n {(loading || updateUserLoading) && }\r\n {userState.type === ADDITIONAL_USER_STATE.MAIN && (\r\n
\r\n

{t('admin.adduser.primary')}

\r\n {showSelect ? (\r\n setShowSelect(false)}\r\n onSelect={handleSelectUser}\r\n />\r\n ) : (\r\n }\r\n isDisabled={allUsers.length <= 1}\r\n isPrimary={true}\r\n user={primaryUser}\r\n onSelect={() => setShowSelect(true)}\r\n />\r\n )}\r\n
\r\n )}\r\n
\r\n {userState.type === ADDITIONAL_USER_STATE.MAIN && (\r\n \r\n {!users.length && (\r\n
\r\n

{t('admin.adduser.nouser')}

\r\n
\r\n )}\r\n {users.map((user: User) => (\r\n }\r\n user={user}\r\n onRemove={(userData: User) => removeUser(userData)}\r\n />\r\n ))}\r\n
\r\n )}\r\n {userState.type === ADDITIONAL_USER_STATE.REMOVE && (\r\n
\r\n

\r\n {t('admin.adduser.remove')} {t('admin.adduser.removeb')}{' '}\r\n {t('admin.adduser.removeaccess')} {userState.user.firstName}{' '}\r\n {userState.user.lastName}?\r\n

\r\n {/*

{t('admin.adduser.notes')}

*/}\r\n
\r\n )}\r\n {userState.type === ADDITIONAL_USER_STATE.UPDATE && (\r\n
\r\n

{`${t('admin.adduser.replaceText.primaryUser')} ${\r\n primaryUser.firstName\r\n } ${primaryUser.lastName} ${t(\r\n 'admin.adduser.replaceText.with'\r\n )} ${secondryUser} ?`}

\r\n {/*

{t('admin.adduser.notes')}

*/}\r\n
\r\n )}\r\n
\r\n {close === false && productCode === 'sbp' && (\r\n
\r\n
\r\n
\r\n Guidance\r\n
{t('admin.adduser.guidance')}
\r\n setClose(true)}\r\n >Close\r\n \r\n

\r\n {t('admin.adduser.guidanceText')} \r\n

\r\n
\r\n
\r\n
\r\n )}\r\n \r\n
\r\n );\r\n};\r\n","import React, { useState} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useMutate } from 'restful-react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { errorException } from 'shared/utils/AppInsights';\r\nimport { selectHttpHeaders, selectSourceSubjectId } from 'store/auth';\r\nimport { selectProductCode } from 'store/product';\r\nimport { API_PATH } from 'shared/constants/api.consts';\r\nimport { User } from '../UserList/UserList.helpers';\r\nimport { UserForm } from '../UserForm/UserForm';\r\n\r\ntype Props = {\r\n isMultipleUser: boolean;\r\n canAddAdditionalUsers: boolean;\r\n users: User[];\r\n changePanel: () => void;\r\n passData: User & { displayId: string; organization: DTO.Organization };\r\n reload: () => void;\r\n onShowSubheading: (value: boolean) => void;\r\n productRoles: any[];\r\n};\r\n\r\nexport const UploadMultipleUser = ({\r\n passData,\r\n changePanel,\r\n reload,\r\n productRoles\r\n}: Props) => {\r\n const { t } = useTranslation();\r\n const productCode = useSelector(selectProductCode);\r\n const httpHeaders = useSelector(selectHttpHeaders);\r\n\r\n\r\n const [showAlert, setShowAlert] = useState(false);\r\n\r\n const submitUserDetails = (values: any): void => {\r\n submitAccountDetails({\r\n UserEmail: values.UserEmail,\r\n FirstName: values.FirstName,\r\n LastName: values.LastName,\r\n Email: values.UserEmail,\r\n AccountId: passData.displayId,\r\n Organization: passData.organization.legalName,\r\n ProductCode: productCode,\r\n UserProductRole: values.UserProductRole\r\n })\r\n .then(() => {\r\n changePanel();\r\n reload();\r\n setShowAlert(false);\r\n })\r\n .catch((err) => {\r\n setShowAlert(true);\r\n });\r\n };\r\n\r\n const sourceSubjectId = useSelector(selectSourceSubjectId);\r\n const {\r\n mutate: submitAccountDetails,\r\n loading: submitLoading,\r\n error: submitError\r\n } = useMutate({\r\n verb: 'POST',\r\n path: API_PATH.ADD_ADDITIONAL_USER(productCode, sourceSubjectId),\r\n requestOptions: () => ({ headers: httpHeaders })\r\n });\r\n\r\n const [formErrors, setFormErrors] = React.useState(null);\r\n\r\n React.useEffect((): void => {\r\n let errors = null;\r\n\r\n if (submitError && submitError.status === 409) {\r\n // AppInsights Error Exception\r\n errorException(\r\n 'Error bad request to .../product//addAdditionalUser, File reference: UserForm.container.tsx in React.useEffect function'\r\n );\r\n\r\n errors = {\r\n UserEmail: {\r\n key: `${t('additionalEmailNotUnique')}`\r\n }\r\n };\r\n }\r\n\r\n setFormErrors(errors);\r\n }, [submitError, t]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n","import React, { useCallback } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useMutate } from 'restful-react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport cs from 'classnames';\r\n\r\nimport stylesButton from 'components/Button/Button.module.css';\r\nimport { selectHttpHeaders, selectSourceSubjectId } from 'store/auth';\r\nimport { API_PATH } from 'shared/constants/api.consts';\r\nimport { Sidebar, Spinner } from 'components';\r\nimport { UserFormContainer } from './UserForm/UserForm.container';\r\nimport { UserList } from './UserList/UserList';\r\nimport { UploadMultipleUser } from './MultipleUser/MultipleUser';\r\nimport styles from './AdditionalUsersSidebar.module.css';\r\nimport { useOnMount } from '../../../../../shared/hooks';\r\nimport { useOnUnmount } from '../../../../../shared/hooks/useOnUnmount';\r\nimport Close from '../../../../../assets/images/Close.svg';\r\n\r\ntype Props = {\r\n productRoles: Array;\r\n submission: DTO.SubmissionRecord;\r\n onCloseSidebar: () => void;\r\n};\r\n\r\nexport const AdditionalUsersSidebar = ({\r\n productRoles,\r\n submission,\r\n onCloseSidebar\r\n}: Props) => {\r\n const httpHeaders = useSelector(selectHttpHeaders);\r\n const {\r\n canAddAdditionalUsers,\r\n displayId,\r\n organization,\r\n user: { firstName, lastName, email }\r\n } = submission;\r\n // console.log('submission: ', JSON.stringify(organization));\r\n const { t } = useTranslation();\r\n const { list, add, multipleUser } = {\r\n list: 'LIST',\r\n add: 'ADD',\r\n multipleUser: 'MULTIPLE_USER'\r\n };\r\n const [additionalUsers, setUsers] = React.useState([]);\r\n const [activePanel, setActivePanel] = React.useState(list);\r\n const [showSubheading, setShowSubheading] = React.useState(false);\r\n const sourceSubjectId = useSelector(selectSourceSubjectId);\r\n const { mutate: getUsers, loading } = useMutate({\r\n verb: 'POST',\r\n path: API_PATH.GET_ADDITIONAL_USERS(displayId, sourceSubjectId),\r\n requestOptions: () => ({ headers: httpHeaders })\r\n });\r\n const getUser = useCallback(() => {\r\n getUsers({ id: displayId }).then((response: any) => {\r\n setUsers(response);\r\n });\r\n }, [displayId, getUsers]);\r\n\r\n useOnMount(() => {\r\n getUser();\r\n document.body.classList.add(styles.noScroll);\r\n });\r\n\r\n useOnUnmount(() => {\r\n if (document.body.classList.contains(styles.noScroll)) {\r\n document.body.classList.remove(styles.noScroll);\r\n }\r\n });\r\n\r\n const changePanel = React.useCallback(\r\n (next: string): void => {\r\n getUser();\r\n setActivePanel(next);\r\n setShowSubheading(next === add);\r\n },\r\n [getUser, add]\r\n );\r\n\r\n const loadContent: () => any = () => {\r\n return {\r\n LIST: (\r\n {\r\n if (a === 'X') {\r\n changePanel(multipleUser);\r\n } else {\r\n changePanel(add);\r\n }\r\n }}\r\n passData={{ email, firstName, lastName, displayId, organization }}\r\n reload={getUser}\r\n users={additionalUsers}\r\n onShowSubheading={(value) => setShowSubheading(value)}\r\n />\r\n ),\r\n ADD: (\r\n changePanel(list)}\r\n passData={{ email, displayId, organization }}\r\n productRoles={productRoles}\r\n reload={getUser}\r\n />\r\n ),\r\n MULTIPLE_USER: (\r\n changePanel(list)}\r\n isMultipleUser={true}\r\n passData={{ email, firstName, lastName, displayId, organization }}\r\n productRoles={productRoles}\r\n reload={getUser}\r\n users={additionalUsers}\r\n onShowSubheading={(value) => setShowSubheading(value)}\r\n />\r\n )\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n {activePanel !== 'MULTIPLE_USER' && (\r\n
{t('admin.adduser.submission')}
\r\n )}\r\n {activePanel === 'MULTIPLE_USER' && (\r\n
{t('admin.adduser.multipleUser')}
\r\n )}\r\n {showSubheading && (\r\n
\r\n {firstName} {lastName}, {email}\r\n
\r\n )}\r\n
\r\n {\r\n if(activePanel === 'MULTIPLE_USER'){\r\n changePanel(list);\r\n } else{\r\n onCloseSidebar();\r\n }\r\n }, [onCloseSidebar, activePanel, list, changePanel])}\r\n >\r\n {activePanel === 'MULTIPLE_USER' ? Close : t('actions.close')}\r\n \r\n
\r\n
\r\n
\r\n {loading ? : loadContent()[activePanel]}\r\n
\r\n );\r\n};\r\n","import { useEffect } from 'react';\r\n\r\nimport { noop } from '../utils';\r\n\r\nexport const useOnUnmount = (callback = noop, deps: any[] = []): void => {\r\n useEffect(\r\n () => callback,\r\n // because of a need to trigger the hook only on unmount phase\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [...deps]\r\n );\r\n};\r\n","import { string, object } from 'yup';\r\nimport { withFormik } from 'formik';\r\n\r\nimport { noop } from 'shared/utils';\r\n\r\nexport interface RegistrationSubmissionForm {\r\n comment: string;\r\n}\r\n\r\nexport const initialFormValues: RegistrationSubmissionForm = {\r\n comment: ''\r\n};\r\n\r\nexport const commentLengthLimit = 255;\r\n\r\nexport interface CompanyEditDialogProps {\r\n onSubmit: (comment: string) => void;\r\n onCancel: () => void;\r\n}\r\n\r\nexport const CompanyEditDialogEnhancer = withFormik<\r\n CompanyEditDialogProps,\r\n RegistrationSubmissionForm\r\n>({\r\n mapPropsToValues: () => initialFormValues,\r\n validationSchema: object().shape({\r\n comment: string()\r\n .required()\r\n .trim()\r\n .max(commentLengthLimit)\r\n }),\r\n handleSubmit: noop\r\n});\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { FormikProps } from 'formik';\r\n\r\nimport { Dialog, Form } from 'components';\r\nimport {\r\n commentLengthLimit,\r\n CompanyEditDialogEnhancer,\r\n CompanyEditDialogProps,\r\n RegistrationSubmissionForm\r\n} from './CompanyEditDialog.helpers';\r\nimport styles from './CompanyEditDialog.module.css';\r\n\r\nconst CompanyEditDialogComponent = (\r\n props: CompanyEditDialogProps &\r\n FormikProps\r\n) => {\r\n const { onSubmit, onCancel, isValid, values } = props;\r\n const { t } = useTranslation();\r\n const [show, setShow] = React.useState(true);\r\n const [sendValues, setSendValues] = React.useState(false);\r\n\r\n const handleOnClose = React.useCallback(() => {\r\n setShow(false);\r\n }, []);\r\n\r\n const handleOnSubmit = React.useCallback(() => {\r\n setSendValues(true);\r\n setShow(false);\r\n }, []);\r\n\r\n const handleOnClosed = React.useCallback(() => {\r\n if (sendValues) {\r\n onSubmit(values.comment);\r\n } else {\r\n onCancel();\r\n }\r\n }, [onSubmit, onCancel, sendValues, values]);\r\n\r\n const renderFooter = React.useCallback(\r\n () => (\r\n
\r\n {values.comment.length}/{commentLengthLimit}\r\n
\r\n ),\r\n [values]\r\n );\r\n return (\r\n \r\n \r\n
\r\n

{t('forms.updateCompany.text')}

\r\n {/* \r\n \r\n */}\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport const CompanyEditDialog = CompanyEditDialogEnhancer(\r\n CompanyEditDialogComponent\r\n);\r\n","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useMutate } from 'restful-react';\r\n\r\nimport { removeFromLocalStorage, setToLocalStorage } from 'shared/utils/storage.utils';\r\nimport { useOnMount } from 'shared/hooks';\r\nimport { setSubscriptionDetails } from 'store/updateSubscription';\r\nimport { selectUpdatedPrimaryId, setUpdatedPrimaryUser } from 'store/global';\r\nimport { selectProductCode } from 'store/product';\r\nimport { API_PATH } from 'shared/constants/api.consts';\r\nimport { reselectUser, selectHttpHeaders } from 'store/auth';\r\nimport { SUBMISSION_TYPE } from 'shared/constants/submission.consts';\r\nimport { AdminContext } from 'features/AdminPage/AdminPageContent/AdminPageContent.helpers';\r\nimport { errorException } from 'shared/utils/AppInsights';\r\nimport { Submission } from './Submission';\r\nimport { SubmissionPlanToggler } from './SubmissionPlanToggler/SubmissionPlanToggler';\r\nimport { DetailedInformationDialog } from '../dialogs/DetailedInformationDialog/DetailedInformationDialog';\r\nimport { RegistrationCommentDialog } from '../dialogs/RegistrationCommentDialog/RegistrationCommentDialog';\r\nimport { SubmissionPlansGrid } from './SubmissionPlansGrid/SubmissionPlansGrid';\r\nimport { AdditionalUsersSidebar } from './AdditionalUsersSidebar/AdditionalUsersSidebar';\r\nimport styles from './Submission.module.css';\r\nimport { CompanyEditDialog } from '../dialogs/CompanyEditDialog/CompanyEditDialog';\r\n\r\ninterface Props {\r\n submission: DTO.SubmissionRecord;\r\n productRoles: Array;\r\n showUserIcon: boolean;\r\n handleGetGridData: () => Promise;\r\n}\r\n\r\nexport const SubmissionContainer: React.FC = ({\r\n submission,\r\n productRoles,\r\n showUserIcon,\r\n handleGetGridData,\r\n}) => {\r\n const { type } = React.useContext(AdminContext);\r\n const { organization } = submission;\r\n const user = useSelector(reselectUser);\r\n const httpHeaders = useSelector(selectHttpHeaders);\r\n const productCode = useSelector(selectProductCode);\r\n const dispatch = useDispatch();\r\n\r\n const { mutate: UpdateCompanyName } = useMutate({\r\n verb: 'POST',\r\n path: API_PATH.UPDATE_COMPANY_NAME(productCode),\r\n requestOptions: () => ({ headers: httpHeaders })\r\n });\r\n\r\n const [isOpenPlanManagement, togglePlanManagement] = React.useState(\r\n false\r\n );\r\n const [isOpenCommentDialog, setOpenCommentDialog] = React.useState(\r\n false\r\n );\r\n const [isOpenDetailsDialog, setOpenDetailsDialog] = React.useState(\r\n false\r\n );\r\n const [isOpenUsersSidebar, setOpenUsersSidebar] = React.useState(\r\n false\r\n );\r\n\r\n const [isEnableEdit, setisEnableEdit] = React.useState(false); \r\n const [editName, seteditName] = React.useState(organization.legalName);\r\n const [isOpenEditCompanyDialog, setOpenEditCompanyDialog] = React.useState<\r\n boolean\r\n >(false);\r\n\r\n const updatedPrimaryId = useSelector(selectUpdatedPrimaryId);\r\n useOnMount(() => {\r\n if (updatedPrimaryId === +submission.displayId) {\r\n setOpenUsersSidebar(true);\r\n dispatch(setUpdatedPrimaryUser(null));\r\n }\r\n });\r\n\r\n const handleOpenCommentDialog = React.useCallback((): void => {\r\n setOpenCommentDialog(true);\r\n }, []);\r\n const handleCloseCommentDialog = React.useCallback((): void => {\r\n setOpenCommentDialog(false);\r\n }, []);\r\n\r\n const handleOpenDetailsDialog = React.useCallback((): void => {\r\n setOpenDetailsDialog(true);\r\n }, []);\r\n const handleCloseDetailsDialog = React.useCallback((): void => {\r\n setOpenDetailsDialog(false);\r\n }, []);\r\n\r\n const handleOpenUsersSidebar = React.useCallback((): void => {\r\n setOpenUsersSidebar(true);\r\n // created blank subscrition detail object and dispatching so that \r\n // we can use existing redux store to get organization \r\n // information from subscription object in UserForm.helper.tsx\r\n const subscription: {\r\n plans: DTO.BasePlan[];\r\n userDetails: DTO.UserDetails;\r\n states: DTO.State[];\r\n } = {\r\n plans: [],\r\n userDetails: {\r\n displayId: null,\r\n referral: null,\r\n performedBy: null,\r\n firstName: null,\r\n lastName: null,\r\n isPending: false,\r\n country: {\r\n code: '',\r\n memberFirmId: '',\r\n name: '',\r\n l10NKey: '',\r\n },\r\n user: null,\r\n comment: null,\r\n organization: {\r\n legalName: organization.legalName,\r\n parentLegalName: organization.parentLegalName || '',\r\n department: organization.department || '',\r\n address: organization.address,\r\n city: organization.city,\r\n stateL10NKey: organization.stateL10NKey,\r\n state: organization.state,\r\n stateId: organization.stateId,\r\n postalCode: organization.postalCode,\r\n deloitteAuditClientType: organization.deloitteAuditClientType,\r\n isDeloitteAuditClient: 1\r\n },\r\n },\r\n states: [\r\n {\r\n id: 0, \r\n code: '',\r\n name: ''\r\n }\r\n ],\r\n };\r\n dispatch(setSubscriptionDetails(subscription));\r\n }, [organization, dispatch]);\r\n\r\n const handleCloseUsersSidebar = React.useCallback((): void => {\r\n setOpenUsersSidebar(false);\r\n }, []);\r\n\r\n const handleCompanyEditMode = React.useCallback((): void => {\r\n setisEnableEdit(true);\r\n }, []);\r\n\r\n const handleEditChange = (e : any) : void => {\r\n seteditName(e.target.value);\r\n };\r\n\r\n const handleConfirmEdit = React.useCallback((): Promise => {\r\n setisEnableEdit(false);\r\n if (editName.trim()) {\r\n return UpdateCompanyName({\r\n ProductCode: productCode,\r\n CompanyId: organization.companyId,\r\n LegalName: editName,\r\n Status: type === SUBMISSION_TYPE.PENDING ? 'Pending' : ''\r\n })\r\n .then(res => {\r\n if (res.companyId === organization.companyId) {\r\n handleGetGridData().catch((err) => {\r\n // AppInsights Error Exception\r\n errorException(`${err}, File reference: Submission.container.tsx in handleConfirmEdit function`);\r\n\r\n console.error(err);\r\n });\r\n };\r\n }).catch(err => {\r\n // AppInsights Error Exception\r\n errorException(`${err}, File reference: Submission.container.tsx in handleConfirmEdit function catch`);\r\n\r\n console.error(err);\r\n });\r\n }\r\n return null;\r\n }, [editName, handleGetGridData, UpdateCompanyName, organization.companyId, productCode, type]);\r\n\r\n const handleCancelEdit = React.useCallback((): void => {\r\n setisEnableEdit(false);\r\n seteditName(organization.legalName);\r\n }, [organization.legalName]);\r\n\r\n useEffect(() => {\r\n seteditName(organization.legalName);\r\n }, [organization.legalName]);\r\n\r\n const handleOpenEditCompanyDialog = React.useCallback((): void => {\r\n if (organization.legalName !== editName.trim()) {\r\n setOpenEditCompanyDialog(true);\r\n } else {\r\n handleCancelEdit();\r\n }\r\n }, [editName, handleCancelEdit, organization.legalName]);\r\n\r\n const handleCloseEditCompanyDialog = React.useCallback((): void => {\r\n setOpenEditCompanyDialog(false);\r\n handleCancelEdit();\r\n }, [handleCancelEdit]);\r\n\r\n // on toggler click when submission details are open\r\n // remove highlight css from active plan\r\n // find exact css classname with partially matched class\r\n // then remove that element with exact classname\r\n useEffect(() => {\r\n if(isOpenPlanManagement && document.querySelectorAll('[class*=\"AdminGrid_highlight\"]')[0]) {\r\n const classlists = document.querySelectorAll('[class*=\"AdminGrid_highlight\"]')[0].classList;\r\n let fullClassName = '';\r\n /*eslint no-plusplus: [\"error\", { \"allowForLoopAfterthoughts\": true }]*/\r\n for(let i = 0; i < classlists.length; i++) {\r\n if(classlists[i].indexOf('AdminGrid_highlight') > -1) {\r\n fullClassName = classlists[i];\r\n break;\r\n }\r\n }\r\n if(document.getElementsByClassName(fullClassName)[0]) {\r\n document.getElementsByClassName(fullClassName)[0].classList.remove(fullClassName);\r\n }\r\n }\r\n }, [isOpenPlanManagement]);\r\n \r\n return (\r\n \r\n {\r\n togglePlanManagement((prevOpenState: boolean) => !prevOpenState);\r\n removeFromLocalStorage('recentUserEmail');\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])}\r\n />\r\n\r\n \r\n\r\n {isOpenPlanManagement && (\r\n \r\n )}\r\n\r\n {isOpenDetailsDialog && (\r\n \r\n )}\r\n\r\n {isOpenCommentDialog && (\r\n \r\n )}\r\n {isOpenUsersSidebar && (\r\n \r\n )}\r\n {isOpenEditCompanyDialog && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { SORT_DIRECTION } from 'shared/constants/common.consts';\r\nimport { AdminGrid } from '../AdminGrid/AdminGrid';\r\nimport { SubmissionContainer } from './Submission/Submission.container';\r\nimport styles from './SubmissionsGrid.module.css';\r\n\r\ninterface Props {\r\n submissions: DTO.SubmissionRecord[];\r\n productRoles: Array;\r\n showUserIcon: boolean;\r\n handleGetGridData: () => Promise;\r\n gridHeaders: Array;\r\n sortBy: string;\r\n direction: AP.SortDirection;\r\n onSortChange: (sortBy: string, sort: AP.SortDirection) => void;\r\n userRole: string;\r\n}\r\n\r\nexport const SubmissionsGrid: React.FC = ({\r\n submissions = [],\r\n productRoles,\r\n showUserIcon,\r\n handleGetGridData,\r\n gridHeaders,\r\n sortBy,\r\n onSortChange,\r\n direction,\r\n userRole\r\n}) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n className={styles.grid}\r\n dataKey='displayId'\r\n direction={direction}\r\n gridData={submissions}\r\n gridHeaders={gridHeaders}\r\n isSubmissionRecord={true}\r\n offset={30}\r\n productRoles={productRoles}\r\n rowDataRenderer={React.useCallback(\r\n (submission: DTO.SubmissionRecord) => (\r\n \r\n ),\r\n [productRoles, showUserIcon, handleGetGridData]\r\n )}\r\n sortBy={sortBy}\r\n userRole={userRole}\r\n onSortChange={onSortChange}\r\n />\r\n );\r\n};\r\n","import React from 'react';\r\nimport cs from 'classnames';\r\n\r\nimport { Spinner } from 'components';\r\nimport { SubmissionsGrid } from './SubmissionsGrid';\r\nimport styles from './SubmissionsGrid.module.css';\r\n\r\ninterface Props {\r\n className?: string;\r\n submissions: DTO.SubmissionRecord[];\r\n loading: boolean;\r\n productRoles: Array;\r\n showUserIcon: boolean;\r\n handleGetGridData: () => Promise;\r\n gridHeaders: Array;\r\n sortBy: string;\r\n direction: AP.SortDirection;\r\n onSortChange: (sortBy: string, sort: AP.SortDirection) => void;\r\n userRole: string;\r\n}\r\n\r\nexport const SubmissionsGridContainer = ({\r\n className,\r\n submissions,\r\n loading,\r\n productRoles,\r\n showUserIcon,\r\n handleGetGridData,\r\n gridHeaders,\r\n sortBy,\r\n direction,\r\n onSortChange,\r\n userRole\r\n}: Props): JSX.Element => (\r\n
\r\n \r\n \r\n
\r\n);\r\n","import React from 'react';\r\nimport cs from 'classnames';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { SUBMISSION_TYPE } from 'shared/constants/submission.consts';\r\nimport { RadioButtons } from 'components';\r\nimport { Submission, getSubmissionsTabs } from './SubmissionsTabs.helpers';\r\nimport styles from './SubmissionsTabs.module.css';\r\n\r\ninterface Props {\r\n data: DTO.RegistrationTabsCount;\r\n submissionType: SUBMISSION_TYPE;\r\n setSubmissionType: (type: SUBMISSION_TYPE) => void;\r\n handleFiltersOnChange: any;\r\n}\r\n\r\nexport const SubmissionsTabs: React.FC = ({\r\n data,\r\n submissionType,\r\n setSubmissionType,\r\n handleFiltersOnChange\r\n}) => {\r\n const { t } = useTranslation();\r\n\r\n const renderOptionCb = React.useCallback(\r\n ({ name, count, type }: Submission): JSX.Element => (\r\n
\r\n {t(name)}\r\n {/* \r\n {count > 99 ? '99+' : count}\r\n */}\r\n
\r\n ),\r\n [t]\r\n );\r\n\r\n const onChangeSubmissionTabCb = React.useCallback(\r\n ({ type }: Submission) => {\r\n handleFiltersOnChange({\r\n 'countryCode': [],\r\n 'legalName': [],\r\n 'user': [],\r\n 'planStatus': [],\r\n 'subscriberEmail': []\r\n });\r\n setSubmissionType(type);\r\n },\r\n [setSubmissionType, handleFiltersOnChange]\r\n );\r\n\r\n const submissionsTabs = React.useMemo(() => getSubmissionsTabs(data), [data]);\r\n\r\n return (\r\n type === submissionType\r\n )}\r\n onChange={onChangeSubmissionTabCb}\r\n />\r\n );\r\n};\r\n","import { SUBMISSION_TYPE } from 'shared/constants/submission.consts';\r\n\r\nexport interface Submission {\r\n type: SUBMISSION_TYPE;\r\n name: string;\r\n count: number;\r\n}\r\n\r\nexport function getSubmissionsTabs(\r\n data: DTO.RegistrationTabsCount\r\n): Submission[] {\r\n return [\r\n {\r\n name: 'admin.submission.pending',\r\n type: SUBMISSION_TYPE.PENDING,\r\n count: data.pending\r\n },\r\n {\r\n name: 'admin.submission.processed',\r\n type: SUBMISSION_TYPE.PROCESSED,\r\n count: data.processed\r\n }\r\n ];\r\n}\r\n","import React, {\r\n useState,\r\n useRef,\r\n FC,\r\n useReducer,\r\n useCallback,\r\n useEffect,\r\n useMemo,\r\n Fragment\r\n} from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useMutate } from 'restful-react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { changeLanguage, reselectLocaleCode } from 'store/localize';\r\nimport { exportCSVFile, fetchData } from 'shared/utils';\r\nimport {\r\n reselectAction\r\n} from 'store/updateSubscription';\r\nimport { selectHttpHeaders, reselectUser, setCurrentUserFilters, selectSourceSubjectId, setSourceSubjectId } from 'store/auth';\r\nimport { useOnMount } from 'shared/hooks';\r\nimport { selectProductCode } from 'store/product';\r\nimport { Pagination, Spinner, Badge, Icon } from 'components';\r\nimport { SUBMISSION_TYPE } from 'shared/constants/submission.consts';\r\nimport { API_PATH } from 'shared/constants/api.consts';\r\nimport { errorException } from 'shared/utils/AppInsights';\r\nimport { NoGridData } from '../NoGridData/NoGridData';\r\nimport { AdminHeader } from '../AdminPageHeader/AdminPageHeader';\r\nimport { SubmissionsGridContainer } from '../SubmissionsGrid/SubmissionsGrid.container';\r\nimport { SubmissionsTabs } from '../SubmissionsTabs/SubmissionsTabs';\r\nimport { Sorting } from '../Sorting/Sorting';\r\nimport {\r\n AdminContext,\r\n GRID_OPTIONS_ACTION_TYPES,\r\n gridOptionsReducer,\r\n initialGridOptions,\r\n PLAN_STATUS\r\n} from './AdminPageContent.helpers';\r\nimport { SubmissionsFilters } from '../SubmissionsFilters/SubmissionsFilters';\r\nimport { SubmissionsQueryResponse } from '../SubmissionsGrid/SubmissionsGrid.helpers';\r\nimport styles from './AdminPageContent.module.css';\r\nimport { APP_PATH } from '../../Routes/Routes.helpers';\r\nimport {\r\n selectUpdatedPrimaryId,\r\n setUpdatedPrimaryUser\r\n} from '../../../store/global';\r\nimport circleCrossOmnia from '../../../assets/images/circleCrossOmnia.svg';\r\nimport { USER_ROLES } from '../OnboardingPage/OnboardingFilters/OnboardingFilters';\r\nimport { FilterBadge } from '../SubmissionsFilters/FilterBadge/FilterBadge';\r\n\r\nexport const AdminPageContent: FC = () => {\r\n const productCode = useSelector(selectProductCode);\r\n const httpHeaders = useSelector(selectHttpHeaders);\r\n const localeCode = useSelector(reselectLocaleCode);\r\n const sourceSubjectId = useSelector(selectSourceSubjectId);\r\n const user = useSelector(reselectUser);\r\n const updatedPrimaryId = useSelector(selectUpdatedPrimaryId);\r\n const filtersContainer = useRef();\r\n const [totalItems, setTotalItems] = useState(0);\r\n const { t } = useTranslation();\r\n const [gridOptions, dispatchGridOptions] = useReducer(\r\n gridOptionsReducer,\r\n initialGridOptions\r\n );\r\n const [submissions, updateSubmissions] = useState([]);\r\n const [showUserIconFlag, setShowUserIconDisplayFlag] = useState(false);\r\n const [roles, updateProductRoles]= useState([]);\r\n const [isLoaded, setLoaded] = useState(false);\r\n const [registrationTabsCount, updateRegistrationTabsCount] = useState<\r\n DTO.RegistrationTabsCount\r\n >({\r\n pending: 0,\r\n processed: 0\r\n });\r\n const [isApplyButtonClicked, setApplyButtonClicked] = useState(false);\r\n const dispatch = useDispatch();\r\n const action = useSelector(reselectAction);\r\n\r\n\r\n const {\r\n mutate: getGridData,\r\n loading: isGridLoading,\r\n error: gridError\r\n } = useMutate({\r\n verb: 'POST',\r\n path: API_PATH.GET_SUBMISSIONS_GRID(productCode, localeCode),\r\n requestOptions: () => ({ headers: httpHeaders })\r\n });\r\n\r\n const { mutate: exportCSV, error: exportCSVError } = useMutate({\r\n verb: 'POST',\r\n path: API_PATH.EXPORT_REGISTRATIONS(productCode, localeCode),\r\n requestOptions: () => ({ headers: httpHeaders })\r\n });\r\n\r\n const handleQueryResponse = useCallback(\r\n ({ items, productRoles, submissionsCount, showUserIcon }: SubmissionsQueryResponse): void => {\r\n updateSubmissions(items);\r\n updateProductRoles(productRoles);\r\n setShowUserIconDisplayFlag(showUserIcon);\r\n updateRegistrationTabsCount(submissionsCount);\r\n },\r\n []\r\n );\r\n\r\n const handleGetGridData = useCallback(\r\n (saveFilters = false): Promise =>{\r\n dispatch(setCurrentUserFilters(gridOptions.filters));\r\n\r\n return getGridData({...gridOptions.query, saveFilters}).then(data => {\r\n handleQueryResponse(data);\r\n setLoaded(true);\r\n setTotalItems(data.allItemsCount);\r\n });\r\n },\r\n // because getGridData updates the reference multiple times\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [gridOptions.query, handleQueryResponse, productCode, localeCode]\r\n );\r\n\r\n const exportDataCb = (): Promise => {\r\n return exportCSV(gridOptions.query)\r\n .then(res => res.text())\r\n .then(data => {\r\n exportCSVFile(data, t('registration.data.title.registration'));\r\n });\r\n };\r\n const appliedFilters = useMemo(\r\n () =>\r\n Object.values(gridOptions.filters).reduce(\r\n (acc, filter) => (filter && filter.length > 0 ? acc + 1 : acc),\r\n 0\r\n ),\r\n [gridOptions.filters]\r\n );\r\n\r\n const handleSortOnChange = useCallback(\r\n (sortBy: string, sortDirection: AP.SortDirection): void => {\r\n dispatchGridOptions({\r\n type: GRID_OPTIONS_ACTION_TYPES.CHANGE_SORTING,\r\n payload: { sortBy, sortDirection }\r\n });\r\n },\r\n []\r\n );\r\n\r\n const handleFiltersOnChange = useCallback(\r\n (updatedFilters: DTO.SubmissionFilters) => {\r\n dispatchGridOptions({\r\n type: GRID_OPTIONS_ACTION_TYPES.CHANGE_FILTERS,\r\n payload: updatedFilters\r\n });\r\n },\r\n []\r\n );\r\n\r\n const handlePageSizeOnChange = useCallback((pageSize: number): void => {\r\n dispatchGridOptions({\r\n type: GRID_OPTIONS_ACTION_TYPES.CHANGE_PAGE_SIZE,\r\n payload: pageSize\r\n });\r\n }, []);\r\n\r\n const handlePageNumberOnChange = useCallback((pageNumber: number): void => {\r\n dispatchGridOptions({\r\n type: GRID_OPTIONS_ACTION_TYPES.CHANGE_PAGE_NUMBER,\r\n payload: pageNumber\r\n });\r\n }, []);\r\n\r\n const handleSubmissionTypeChange = useCallback((type: string) => {\r\n dispatchGridOptions({\r\n type: GRID_OPTIONS_ACTION_TYPES.CHANGE_ONLY_PENDING,\r\n payload: SUBMISSION_TYPE.PENDING === type ? 1 : 2\r\n });\r\n }, []);\r\n\r\n const removeFilter = (key: any, filterToRemove: any) => {\r\n const tempFilter = gridOptions.filters[key as keyof typeof gridOptions.filters];\r\n handleFiltersOnChange({\r\n ...gridOptions.filters, \r\n [key]: tempFilter.filter((item:any) => !Object.values(item).includes(filterToRemove))\r\n });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n };\r\n\r\n const appliedFiltersValue = (filterArr: any) => {\r\n if (filterArr.some((item: any) => item.value.length > 0)) {\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n };\r\n\r\n useOnMount(\r\n useCallback((): void => {\r\n if (user.profileSettings)\r\n dispatch(changeLanguage(user.profileSettings.language));\r\n }, [dispatch, user.profileSettings])\r\n );\r\n\r\n useEffect(() => {\r\n if (action.toLocaleLowerCase() === 'cancel') {\r\n handleSubmissionTypeChange(SUBMISSION_TYPE.PROCESSED);\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (updatedPrimaryId !== null) {\r\n handleGetGridData().catch((err) => {\r\n dispatch(setUpdatedPrimaryUser(null));\r\n // AppInsights Error Exception\r\n errorException(`Error: ${err}, File reference: AdminPageContent.tsx in useEffect function`);\r\n });\r\n }\r\n }, [updatedPrimaryId, handleGetGridData, dispatch, gridOptions.filters]);\r\n\r\n useEffect((): void => {\r\n if (productCode !== null) {\r\n // the reason is error awareness\r\n // eslint-disable-next-line no-console\r\n handleGetGridData(isApplyButtonClicked).catch((err) => {\r\n console.error(err);\r\n\r\n // AppInsights Error Exception\r\n errorException(`Error: ${err}, File reference: AdminPageContents.tsx in useEffect function, handleGetGridData catch`);\r\n\r\n });\r\n setApplyButtonClicked(false);\r\n }\r\n\r\n /**\r\n * because this callback should run\r\n * only when the next dependencies have changed\r\n */\r\n /* eslint-disable-next-line react-hooks/exhaustive-deps */\r\n }, [gridOptions.query, productCode, localeCode]);\r\n\r\n useEffect(() => {\r\n if (productCode !== null) {\r\n handleFiltersOnChange({\r\n 'countryCode': [],\r\n 'legalName': [],\r\n 'user': [],\r\n 'planStatus': [],\r\n 'subscriberEmail': []\r\n });\r\n }\r\n }, [productCode, handleFiltersOnChange]);\r\n\r\n useEffect(() => {\r\n async function setData() {\r\n if(sourceSubjectId === \"\"){\r\n const data: any = await fetchData(API_PATH.GET_PROFILE, httpHeaders);\r\n\r\n if(data !== null){\r\n dispatch(setSourceSubjectId(data.sourceSubjectId));\r\n }\r\n }\r\n }\r\n setData();\r\n }, [sourceSubjectId, httpHeaders, dispatch]);\r\n\r\n if (\r\n (gridError && gridError.status === 403) ||\r\n (exportCSVError && exportCSVError.status === 403)\r\n ) {\r\n\r\n // AppInsights Error Exception\r\n if(gridError.status === 403){\r\n errorException('Error bad request to .../product//registrations/query/locale/, File reference: AdminPageContent.tsx in useEffect function, gridError');\r\n }\r\n if(exportCSVError.status === 403){\r\n errorException('Error bad request to .../product//registrations/export/locale/, File reference: AdminPageContent.tsx in useEffect function, exportCSVError');\r\n }\r\n\r\n return ;\r\n }\r\n\r\n const submissionType =\r\n gridOptions.query.filter.planStatus[0] === PLAN_STATUS.PENDING\r\n ? SUBMISSION_TYPE.PENDING\r\n : SUBMISSION_TYPE.PROCESSED;\r\n\r\n if (isGridLoading || !isLoaded) return ;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n setApplyButtonClicked(true)}\r\n onChange={handleFiltersOnChange}\r\n />\r\n
\r\n
\r\n
\r\n {gridOptions?.selectedFilters ? (\r\n appliedFiltersValue(gridOptions.selectedFilters)\r\n ) :\r\n null}\r\n {submissions.length > 0 ? (\r\n \r\n \r\n {totalItems > 0 && (\r\n \r\n )}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { FC, Fragment, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { reselectUser, selectIsFirstLogin } from 'store/auth';\r\nimport { ConfirmDialog } from 'components/Localization_Confirm/ConfirmDialog';\r\nimport { AppUserNav } from 'features/AppLayout';\r\nimport { AdminLayout } from 'features/AdminLayout/AdminLayout';\r\nimport { AdminPageContent } from './AdminPageContent/AdminPageContent';\r\nimport { UserMenu } from './UserMenu/UserMenu';\r\nimport { UserProductsSelect } from './UserProductsSelect/UserProductsSelect';\r\n\r\n\r\nexport const confirmDialogConfig = {\r\n openButtonName: 'OPEN',\r\n closeButtonName: 'CANCEL',\r\n okBtnName: 'CONFIRM',\r\n cancelBtnName: '',\r\n title: 'CONFIRM LANGUAGE & LOCALIZATION PREFERENCE',\r\n subTitle: 'Please select your preferred language',\r\n subTitle2: 'Please select your preferred date format',\r\n subTitle3: 'Please select your preferred number format',\r\n default: 'default',\r\n description:\r\n 'You may change your preferences any time in your user profile once logged into the application.'\r\n};\r\n\r\nexport const AdminPage: FC = () => {\r\n const user = useSelector(reselectUser);\r\n const [showSettings, setShowSettings] = useState(true);\r\n const isFirstLogin = useSelector(selectIsFirstLogin);\r\n // const confirmDialogConfig = {\r\n // openButtonName: 'OPEN',\r\n // closeButtonName: 'CANCEL',\r\n // okBtnName: 'CONFIRM',\r\n // cancelBtnName: '',\r\n // title: 'CONFIRM LANGUAGE & LOCALIZATION PREFERENCE',\r\n // subTitle: 'Please select your preferred language',\r\n // subTitle2: 'Please select your preferred date format',\r\n // subTitle3: 'Please select your preferred number format',\r\n // default: 'default',\r\n // description:\r\n // 'You may change your preferences any time in your user profile once logged into the application.'\r\n // };\r\n\r\n const closeModal = () => {\r\n setShowSettings(false);\r\n };\r\n\r\n // if (!user.profileSettings) {\r\n return (\r\n \r\n {isFirstLogin && (\r\n \r\n )}\r\n\r\n\r\n {user.profileSettings && (\r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { FC } from 'react';\r\nimport cs from 'classnames';\r\n\r\ninterface Props {\r\n name: string;\r\n onClick?: () => void;\r\n isActive?: boolean;\r\n isReversed?: boolean;\r\n fill?: string;\r\n isDisable?: boolean;\r\n}\r\n\r\nexport const DirectionButton: FC = ({\r\n isActive,\r\n isReversed,\r\n name,\r\n onClick,\r\n fill,\r\n isDisable\r\n}) => {\r\n const styles = `\r\n .${name} {\r\n cursor: pointer;\r\n }\r\n .isActiveBlack {\r\n fill: #007CB0;\r\n }\r\n .isActiveWhite {\r\n fill: #fff;\r\n }\r\n .${name}.reversed {\r\n transform: rotateX(180deg);\r\n }\r\n .disableSortIcon {\r\n color: #75787B;\r\n opacity: .5;\r\n }\r\n `;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"UserMenuContent_container__23ezv\",\"menuHeaderItem\":\"UserMenuContent_menuHeaderItem__2h8CV\",\"user\":\"UserMenuContent_user__2HEfU\",\"userIcon\":\"UserMenuContent_userIcon__3QalH\",\"userInfo\":\"UserMenuContent_userInfo__2xeqy\",\"userInfoTitle\":\"UserMenuContent_userInfoTitle__EqXLd\",\"userInfoSubTitle\":\"UserMenuContent_userInfoSubTitle__3DAyf\",\"menuButton\":\"UserMenuContent_menuButton__3_fe_\",\"profileSettings\":\"UserMenuContent_profileSettings__21Ld5\",\"signOut\":\"UserMenuContent_signOut__3upex\",\"signOutIcon\":\"UserMenuContent_signOutIcon__hJL9A\",\"selectLangTitle\":\"UserMenuContent_selectLangTitle__2j96m\",\"fallbackTxt\":\"UserMenuContent_fallbackTxt__3vd7K\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"navbar\":\"AppLayout_navbar__3uCIP\",\"brand\":\"AppLayout_brand__mKhFG\",\"logo\":\"AppLayout_logo__1ydtI\",\"separator\":\"AppLayout_separator__1IMiU\",\"tab\":\"AppLayout_tab__oPF7O\",\"headerCommon\":\"AppLayout_headerCommon__15BUq\",\"headerContent\":\"AppLayout_headerContent__1yT7I\",\"headerUserInfo\":\"AppLayout_headerUserInfo__3lbaQ\",\"headerSubtitle\":\"AppLayout_headerSubtitle__1n1BV\"};","import { useTranslation } from 'react-i18next';\r\n\r\nexport const DateLocale = (value: string): string => {\r\n const { t } = useTranslation();\r\n const month = new Date(value).getMonth() + 1;\r\n const dd = new Date(value).getDate();\r\n const year = new Date(value).getFullYear();\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n let mon = '';\r\n if (month === 1) mon = 'january';\r\n else if (month === 2) mon = 'february';\r\n else if (month === 3) mon = 'march';\r\n else if (month === 4) mon = 'april';\r\n else if (month === 5) mon = 'may';\r\n else if (month === 6) mon = 'june';\r\n else if (month === 7) mon = 'july';\r\n else if (month === 8) mon = 'august';\r\n else if (month === 9) mon = 'september';\r\n else if (month === 10) mon = 'october';\r\n else if (month === 11) mon = 'november';\r\n else if (month === 12) mon = 'december';\r\n return `${dd} ${t(`admin.month.${mon}`)} ${year}`;\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectContainer\":\"UserSelect_selectContainer__2AahK\",\"iconEdit\":\"UserSelect_iconEdit__2seRf\",\"option\":\"UserSelect_option__nhYl-\",\"selectedOption\":\"UserSelect_selectedOption__1QXPA\",\"userSelect\":\"UserSelect_userSelect__1KIsj\",\"userEmail\":\"UserSelect_userEmail__3Z_Zt\",\"userName\":\"UserSelect_userName__21XdO\",\"customOption\":\"UserSelect_customOption__3jHwv\",\"selected\":\"UserSelect_selected__3lj-R\",\"focused\":\"UserSelect_focused__1OFPl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paginator\":\"Paginator_paginator__1CU1g\",\"pageItem\":\"Paginator_pageItem__AyBWw\",\"pageControl\":\"Paginator_pageControl__29WS9\",\"controlIcon\":\"Paginator_controlIcon__3BToM\",\"ellipsis\":\"Paginator_ellipsis__3wHNZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"languageSelect\":\"SelectLocale_languageSelect__2ydA6\",\"languageLabel\":\"SelectLocale_languageLabel__227C-\",\"dropdownLanguage\":\"SelectLocale_dropdownLanguage__GKphk\",\"option\":\"SelectLocale_option__3rlyX\",\"selectedOption\":\"SelectLocale_selectedOption__1jNOf\",\"language\":\"SelectLocale_language__1Xw6u\",\"languagefbSelect\":\"SelectLocale_languagefbSelect__2PM7w\",\"fallbackLanguage\":\"SelectLocale_fallbackLanguage__3Wag-\",\"iconCircle\":\"SelectLocale_iconCircle__2w73m\",\"icon\":\"SelectLocale_icon__jcQ4U\",\"tooltipText\":\"SelectLocale_tooltipText__1UO-Q\",\"shapeLang\":\"SelectLocale_shapeLang__trnna\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"AutoLogout_header__EIJxH\",\"body\":\"AutoLogout_body__10W4s\",\"title\":\"AutoLogout_title__3hHGW\",\"footer\":\"AutoLogout_footer__1qFdy\",\"action\":\"AutoLogout_action__1FxGI\",\"yesaction\":\"AutoLogout_yesaction__2GTqF\",\"icon\":\"AutoLogout_icon__27Cae\",\"iconCircle\":\"AutoLogout_iconCircle__1CEJ3\",\"text\":\"AutoLogout_text__10UCo\",\"message\":\"AutoLogout_message__2k4AC\",\"note\":\"AutoLogout_note__2uqFU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"UserList_content__25ms3\",\"img_div\":\"UserList_img_div__nIcg1\",\"notes\":\"UserList_notes__yMdzr\",\"iconEdit\":\"UserList_iconEdit__1ju6A\",\"primaryUser\":\"UserList_primaryUser__1CgS7\",\"outGuideCls\":\"UserList_outGuideCls__16NNS\",\"guideCls\":\"UserList_guideCls__Pl8cN\",\"btnChange\":\"UserList_btnChange__1Ph51\",\"guidanceIcon\":\"UserList_guidanceIcon__B8TBK\",\"guiddeTxt\":\"UserList_guiddeTxt__2CaCY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"LogoutWarningPopup_header__dvLKG\",\"body\":\"LogoutWarningPopup_body__3Nj1F\",\"title\":\"LogoutWarningPopup_title__1Vn1h\",\"footer\":\"LogoutWarningPopup_footer__2nv86\",\"action\":\"LogoutWarningPopup_action__2DFOk\",\"yesaction\":\"LogoutWarningPopup_yesaction__NNtG2\",\"icon\":\"LogoutWarningPopup_icon__3aJnj\",\"iconCircle\":\"LogoutWarningPopup_iconCircle__OK6Hr\",\"text\":\"LogoutWarningPopup_text__2QeLL\",\"message\":\"LogoutWarningPopup_message__3EW7j\",\"note\":\"LogoutWarningPopup_note__37cik\"};","import { createSelector } from 'reselect';\r\n\r\nimport { BASE_HTTP_HEADERS } from 'shared/constants/api.consts';\r\nimport { RootState } from 'store/root.reducer';\r\n\r\nconst selectUser = ({ auth }: RootState): AP.Nullable => auth.user;\r\n\r\nexport const selectHasUserLoaded = ({ auth }: RootState): boolean =>\r\n auth.isLoaded;\r\n\r\nexport const selectHasUser = ({ auth }: RootState): boolean =>\r\n auth.user !== null;\r\n\r\nexport const selectIsUserLoading = ({ auth }: RootState): boolean =>\r\n auth.isLoading;\r\n\r\nexport const reselectUser = createSelector(\r\n selectUser,\r\n user => user\r\n);\r\n\r\nexport const reselectAdminProducts = createSelector(\r\n selectUser,\r\n user => (user === null ? [] : user.adminProducts)\r\n);\r\n\r\nexport const selectFirstAdminProductCode = ({\r\n auth\r\n}: RootState): AP.Nullable =>\r\n auth.user === null || auth.user.adminProducts.length === 0\r\n ? null\r\n : auth.user.adminProducts[0].code;\r\n\r\nexport const selectHasUserDeniedAccess = ({ auth }: RootState): boolean =>\r\n auth.hasUserDeniedAccess;\r\n\r\nexport const selectHasUserExpiredToken = ({ auth }: RootState): boolean =>\r\n auth.hasUserExpiredToken;\r\n\r\nexport const selectIsInternal = ({ auth }: RootState): boolean =>\r\n auth.isInternal;\r\n\r\nexport const selectSubscriptionProductCode = ({\r\n auth\r\n}: RootState): AP.Nullable =>\r\n auth.user === null || auth.user.product === null\r\n ? null\r\n : auth.user.product.productId;\r\n\r\nexport const selectProductAppUrl = ({ auth }: RootState): AP.Nullable =>\r\n auth.user === null || auth.user.product === null\r\n ? null\r\n : auth.user.product.appUrl;\r\n\r\nexport const selectProductName = ({ auth }: RootState): AP.Nullable =>\r\n auth.user === null || auth.user.product === null\r\n ? null\r\n : auth.user.product.name;\r\n\r\nexport const selectSubscriptionCountryCode = ({\r\n auth\r\n}: RootState): AP.Nullable =>\r\n auth.user === null || auth.user.product === null\r\n ? null\r\n : auth.user.product.countryCode;\r\n\r\nexport const selectUserInitials = ({ auth }: RootState): string =>\r\n auth.user === null\r\n ? ''\r\n : `${auth.user.firstName[0].toLocaleUpperCase()}${auth.user.lastName[0].toLocaleUpperCase()}`;\r\n\r\n// TODO: remove when all useGet/useMutate are removed\r\nexport const selectHttpHeaders = ({ auth }: RootState): any => {\r\n const headers: Record = {\r\n ...BASE_HTTP_HEADERS\r\n };\r\n\r\n if (auth.accessToken !== null) {\r\n headers.Authorization = `Bearer ${auth.accessToken}`;\r\n }\r\n\r\n return headers;\r\n};\r\n\r\nexport const reselectAutoLogoutData = createSelector(\r\n reselectUser,\r\n ({ idleTimeToLogOut, beforeLogOutPopUpTime }) => {\r\n const originalLogoutTimeout = idleTimeToLogOut - beforeLogOutPopUpTime;\r\n const originalKeepAliveTimeout = Math.floor(\r\n (originalLogoutTimeout - 1) / 2\r\n );\r\n\r\n return {\r\n originalLogoutTimeout,\r\n originalKeepAliveTimeout,\r\n originalPopupTimeout: beforeLogOutPopUpTime\r\n };\r\n }\r\n);\r\n\r\nexport const selectAdminFilters = ({ auth }: RootState) => auth.adminFilters;\r\nexport const selectIsFirstAdminFiltersInit = ({ auth }: RootState) =>\r\n auth.isFirstAdminFiltersInit;\r\nexport const selectIsFirstLogin = ({ auth }: RootState): boolean =>\r\n auth.isFirstLogin;\r\nexport const selectAppliedAdminFilters = ({ auth }: RootState) => auth.selectedAdminFilters;\r\n\r\nexport const selectSourceSubjectId = ({ auth }: RootState): string => auth.sourceSubjectId;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"clearIndicator\":\"Select_clearIndicator__1ufjk\",\"placeholder\":\"Select_placeholder__PY6Bp\",\"customSelect\":\"Select_customSelect__1lQyZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"FiltersControls_content__1_0bN\",\"filterHeader\":\"FiltersControls_filterHeader__2aLSA\",\"filterHeaderCol\":\"FiltersControls_filterHeaderCol__lmImY\",\"filterSubHeaderCol\":\"FiltersControls_filterSubHeaderCol__J7plt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"point\":\"Step_point__38LW-\",\"passed\":\"Step_passed__3GfwN\",\"active\":\"Step_active__3vj9T\",\"activeLabel\":\"Step_activeLabel__4FIyS\",\"label\":\"Step_label__243Wq\",\"content\":\"Step_content__2N_M9\",\"activeStep1\":\"Step_activeStep1__QwV2p\",\"activeStep2\":\"Step_activeStep2__2bGnq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"right\":\"SubmissionPlansGrid_right__1i5wk\",\"noEvent\":\"SubmissionPlansGrid_noEvent__2sNL_\",\"taDisable\":\"SubmissionPlansGrid_taDisable__1bC-j\",\"mipUpdateSubs\":\"SubmissionPlansGrid_mipUpdateSubs__3DZO-\"};","export default __webpack_public_path__ + \"static/media/modal-share-icon.66d35b68.svg\";","import React, {Children, FC} from 'react';\r\nimport Button from 'react-bootstrap/Button';\r\nimport { Modal, ModalProps } from 'react-bootstrap';\r\n\r\ninterface Props extends ModalProps {\r\n onHide?: () => void;\r\n show: boolean; \r\n title: string;\r\n}\r\n\r\nexport const ModalCustom: FC = ({onHide, show, children, title}) => {\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\r\n/* eslint-disable jsx-a11y/no-static-element-interactions */\r\n/* eslint-disable jsx-a11y/anchor-is-valid */\r\n/* eslint-disable import/imports-first */\r\nimport React, { useState } from 'react';\r\nimport cs from 'classnames';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { Trans, useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { reselectUser } from 'store/auth';\r\nimport { selectProductCode, selectProductTitle } from 'store/product';\r\nimport { reselectLocaleCode } from 'store/localize';\r\nimport { BlankLink } from 'components/BlankLink/BlankLink';\r\n// import { apiService } from 'shared/services';\r\n// import { BASE_HTTP_HEADERS } from 'shared/constants/api.consts';\r\n// import { FOOTER_LINK } from 'shared/constants/footer-link.consts';\r\nimport styles from './Footer.module.css';\r\nimport { CONFIG } from 'shared/constants/config.consts';\r\nimport { Dialog } from '../../components/Dialog/Dialog';\r\nimport NewTabIcon from 'assets/images/modal-share-icon.svg';\r\nimport { USER_ROLES } from '../AdminPage/OnboardingPage/OnboardingFilters/OnboardingFilters';\r\nimport { getFromLocalStorage, setToLocalStorage } from 'shared/utils/storage.utils';\r\nimport { ModalCustom } from '../../components/Modal/Modal';\r\nimport { selectRegistrationCountryCode, selectProductCountries, selectCountryCodes } from 'store/registration';\r\nimport { GLOBAL_PRIVACY_STATEMENT } from 'shared/constants/common.consts';\r\n\r\n\r\ninterface Props {\r\n className?: string;\r\n}\r\n\r\nfunction setModalStyles () {\r\n document.getElementById(\"onetrust-pc-sdk\").classList.remove(\"ot-hide\");\r\n document.getElementById(\"onetrust-pc-sdk\").style.display=\"block\";\r\n document.getElementById(\"onetrust-pc-sdk\").style.visibility=\"visible\";\r\n document.getElementById(\"onetrust-pc-sdk\").style.opacity=\"1\";\r\n\r\n document.querySelector('#onetrust-consent-sdk .onetrust-pc-dark-filter').classList.remove(\"ot-hide\");\r\n document.querySelector('#onetrust-consent-sdk .onetrust-pc-dark-filter').style.display=\"block\";\r\n document.querySelector('#onetrust-consent-sdk .onetrust-pc-dark-filter').style.visibility=\"visible\";\r\n document.querySelector('#onetrust-consent-sdk .onetrust-pc-dark-filter').style.opacity=\"1\";\r\n}\r\n\r\nexport function Footer({ className }: Props): JSX.Element {\r\n const location = useLocation();\r\n const user = useSelector(reselectUser);\r\n const { t } = useTranslation();\r\n const localeCode = useSelector(reselectLocaleCode);\r\n const Code = useSelector(selectProductCode);\r\n const [modalShow, setModalShow] = useState(false);\r\n //const Title = useSelector(selectProductTitle);\r\n const [isOpen, setIsOpen] = useState(false);\r\n const countryCode = useSelector(selectRegistrationCountryCode);\r\n const environment = (window as any).APP_CONFIG.ENV;\r\n let CookieNoticeFile = 'LOCAL-GlobalCookieNotice.pdf';\r\n if (environment === 'DEV') CookieNoticeFile = 'DEV-GlobalCookieNotice.pdf';\r\n else if (environment === 'QA') CookieNoticeFile = 'QA-GlobalCookieNotice.pdf';\r\n else if (environment === 'STAGE') CookieNoticeFile = 'STAGE-GlobalCookieNotice.pdf';\r\n else if (environment === 'LOAD') CookieNoticeFile = 'LOAD-GlobalCookieNotice.pdf';\r\n else if (environment === 'PROD') CookieNoticeFile = 'PROD-GlobalCookieNotice.pdf';\r\n\r\n let DRACookieNoticeFile = 'LOCAL-DRACookieNotice.pdf';\r\n if (environment === 'DEV') DRACookieNoticeFile = 'DEV-DRACookieNotice.pdf';\r\n else if (environment === 'QA') DRACookieNoticeFile = 'QA-DRACookieNotice.pdf';\r\n else if (environment === 'STAGE') DRACookieNoticeFile = 'STAGE-DRACookieNotice.pdf';\r\n else if (environment === 'LOAD') DRACookieNoticeFile = 'LOAD-DRACookieNotice.pdf';\r\n else if (environment === 'PROD') DRACookieNoticeFile = 'PROD-DRACookieNotice.pdf';\r\n // const isAgreed: any = getFromLocalStorage('isAgreed');\r\n // const headers: Record = { ...BASE_HTTP_HEADERS };\r\n // const documentDownload = (doc: any): any => {\r\n // fetch(apiService.getAssetUrl(doc), {\r\n // method: 'GET',\r\n // headers\r\n // }).then(response => {\r\n // response.blob().then((blob: any) => {\r\n // const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n // });\r\n // });\r\n // };\r\n const openModalPrivacy = () => {\r\n setModalShow(true);\r\n }; \r\nlet privacyLinks;\r\n const getCountryPrivacyLink = () => {\r\n if(countryCode.toLocaleLowerCase() === \"sgp\" || countryCode.toLocaleLowerCase() === \"mys\"){\r\n privacyLinks = `https://www2.deloitte.com/${codesISO[countryCode]}/en/footerlinks1/privacy.html?icid=bottom_privacy`;\r\n } else if(countryCode.toLocaleLowerCase() === \"gbr\"){ \r\n privacyLinks =`https://www2.deloitte.com/uk/en/legal/privacy.html`;\r\n } else {\r\n privacyLinks =`https://www2.deloitte.com/${codesISO[countryCode]}/en/legal/privacy.html`;\r\n }\r\n return privacyLinks;\r\n };\r\n\r\n const productCountries = useSelector(selectProductCountries);\r\n const country = (productCountries || []).find(\r\n (productCountry: DTO.Country) => productCountry.code === countryCode\r\n );\r\n\r\n const codesISO = useSelector(selectCountryCodes);\r\n\r\n let privacyHrefCountryCode = '';\r\n\r\n if(countryCode){\r\n const globalPrivacyData = GLOBAL_PRIVACY_STATEMENT.find((item) => item.countryCode === countryCode);\r\n const linkByProduct = Code === \"dra\" ? globalPrivacyData?.privacyStatement : getCountryPrivacyLink();\r\n privacyHrefCountryCode = countryCode !== null ? linkByProduct : '';\r\n }\r\n\r\n return (\r\n
\r\n setModalShow(false)}\r\n >\r\n \r\n

\r\n {Code === \"dra\" && location.pathname.toLowerCase().includes('registration/dra') ?(\r\n \r\n Global Privacy Statement\r\n \r\n ) \r\n : (\r\n \r\n Global Privacy Statement\r\n \r\n )}\r\n

\r\n {country &&\r\n (\r\n

\r\n \r\n {`${country.name} Privacy Statement`}\r\n \r\n

\r\n )\r\n }\r\n
\r\n
\r\n
\r\n {/*
\r\n \r\n None of the Deloitte organization shall be responsible for any loss\r\n whatsoever sustained by any person who relies on this communication.\r\n Deloitte is a leading global provider of audit and assurance,\r\n consulting, financial advisory, risk advisory, tax and related\r\n services. Our network of member firms in more than 150 countries and\r\n territories serves four out of five Fortune Global 500® companies.\r\n Learn how Deloitte’s approximately 312,000 people make an impact\r\n that matters at \r\n \r\n \r\n www.deloitte.com.\r\n \r\n \r\n  .\r\n \r\n
\r\n
\r\n \r\n This communication contains general information only, and none of\r\n Deloitte Touche Tohmatsu Limited (“DTTL”), its global\r\n network of member firms or their related entities (collectively, the\r\n “Deloitte organization”) is, by means of this\r\n communication, rendering professional advice or services. Before\r\n making any decision or taking any action that may affect your\r\n finances or your business, you should consult a qualified\r\n professional adviser.\r\n \r\n
\r\n
\r\n \r\n No representations, warranties or undertakings (express or implied)\r\n are given as to the accuracy or completeness of the information in\r\n this communication, and none of DTTL, its member firms, related\r\n entities, employees or agents shall be liable or responsible for any\r\n loss or damage whatsoever arising directly or indirectly in\r\n connection with any person relying on this communication. DTTL and\r\n each of its member firms, and their related entities, are legally\r\n separate and independent entities.\r\n \r\n
*/}\r\n

\r\n \r\n {(Code === null ||\r\n (user?.role === USER_ROLES.SUPER_ADMIN &&\r\n location.pathname.toLowerCase().includes('home'))) && (\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightShort'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )}\r\n {\r\n (user?.role === USER_ROLES.SUPER_ADMIN && (location.pathname.toLowerCase().includes('admin/onboarding') || location.pathname.toLowerCase().includes('admin/submissions'))) && (\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightShort'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )}\r\n {Code === \"sbp\" && countryCode === null && (location.pathname.toLowerCase().includes('registration/sbp')) && getFromLocalStorage(\"isTermsAgreed\") == null &&\r\n (\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightShort'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )}\r\n {Code === \"sbp\" && countryCode !== null && (location.pathname.toLowerCase().includes('registration/sbp')) && getFromLocalStorage(\"isTermsAgreed\") == null &&\r\n (\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightShort'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )} \r\n {Code === \"sbp\" && (location.pathname.toLowerCase().includes('registration/sbp')) && getFromLocalStorage(\"isTermsAgreed\") === true &&\r\n (\r\n ,\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightSBP'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )}\r\n {Code === \"dra\" && countryCode === null && (location.pathname.toLowerCase().includes('registration/dra')) && getFromLocalStorage(\"isTermsAgreed\") === null &&\r\n (\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightDRAShort'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )}\r\n {Code === \"dra\" && countryCode !== null && (location.pathname.toLowerCase().includes('registration/dra')) && getFromLocalStorage(\"isTermsAgreed\") === null &&\r\n (\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightDRAShort'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )} \r\n {Code === \"dra\" && (location.pathname.toLowerCase().includes('registration/dra')) && getFromLocalStorage(\"isTermsAgreed\") &&\r\n (\r\n ,\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightDRA'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )}\r\n\r\n {(Code === \"sbp\" && user?.role !== USER_ROLES.SUPER_ADMIN && (location.pathname.toLowerCase().includes('submissions') || location.pathname.toLowerCase().includes('onboarding') || location.pathname.toLowerCase().includes('update-subscription')) ) && (\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightSBPShort'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )}\r\n {(Code === \"dra\" && user?.role !== USER_ROLES.SUPER_ADMIN && (location.pathname.toLowerCase().includes('submissions') || location.pathname.toLowerCase().includes('onboarding') || location.pathname.toLowerCase().includes('update-subscription')) ) && (\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightDRAShort'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )}\r\n {Code === \"ibr\" && countryCode === null && (location.pathname.toLowerCase().includes('registration/ibr')) && getFromLocalStorage(\"isTermsAgreed\") == null && (\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightShort'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )}\r\n {Code === \"ibr\" && countryCode !== null && (location.pathname.toLowerCase().includes('registration/ibr')) && getFromLocalStorage(\"isTermsAgreed\") == null && (\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightShort'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )} \r\n {Code === \"ibr\" && (location.pathname.toLowerCase().includes('registration/ibr')) && getFromLocalStorage(\"isTermsAgreed\") === true &&\r\n (\r\n ,\r\n , \r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyright'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )}\r\n {Code === \"ibr\" && (user?.role !== USER_ROLES.SUPER_ADMIN && (location.pathname.toLowerCase().includes('submissions') || location.pathname.toLowerCase().includes('onboarding') || location.pathname.toLowerCase().includes('update-subscription'))) && (\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightIBR'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )}\r\n {Code === \"mip\" && countryCode === null && (location.pathname.toLowerCase().includes('registration/mip')) && getFromLocalStorage(\"isTermsAgreed\") == null &&\r\n (\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightMIPShort'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )}\r\n {Code === \"mip\" && countryCode !== null && (location.pathname.toLowerCase().includes('registration/mip')) && getFromLocalStorage(\"isTermsAgreed\") == null &&\r\n (\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightMIPShort'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )} \r\n {Code === \"mip\" && (location.pathname.toLowerCase().includes('registration/mip')) && getFromLocalStorage(\"isTermsAgreed\") === true &&\r\n (\r\n ,\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightMIP'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )}\r\n\r\n {Code === \"mip\" && (user?.role !== USER_ROLES.SUPER_ADMIN && (location.pathname.toLowerCase().includes('submissions') || location.pathname.toLowerCase().includes('onboarding') || location.pathname.toLowerCase().includes('update-subscription'))) && (\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyrightMIPShort'\r\n values={{ year: new Date().getFullYear() }}\r\n />\r\n )}\r\n \r\n {/* { setIsOpen(true); }} /> :\r\n Code === \"sbp\" ? :\r\n ,\r\n ,\r\n ,\r\n ]}\r\n i18nKey='app.footerCopyright'\r\n values={{ year: new Date().getFullYear() }}\r\n /> */}\r\n {isOpen && (\r\n {\r\n setIsOpen(false);\r\n }}\r\n >\r\n

\r\n {t('dialogs.termsofusesub')}\r\n
\r\n
\r\n \r\n {`${t('registration.data.title.ibr')} (IBR)`}\r\n \r\n \r\n
\r\n
\r\n \r\n {`${t('registration.data.title.sbp')} (SBP)`}\r\n \r\n \r\n
\r\n
\r\n {/* \r\n {`${t('registration.data.title.mip')} (MIP)`}\r\n */}\r\n \r\n {`${t('registration.data.title.mip')} (MIP)`}\r\n \r\n \r\n
\r\n \r\n )}\r\n
\r\n

\r\n\r\n {/*
\r\n © {new Date().getFullYear()} \r\n For information, contact Deloitte Global.\r\n
*/}\r\n
\r\n \r\n Deloitte refers to one or more of Deloitte Touche Tohmatsu Limited\r\n (“DTTL”), its global network of member firms, and their\r\n related entities (collectively, the “Deloitte\r\n organization”). DTTL (also referred to as “Deloitte\r\n Global”) and each of its member firms and related entities are\r\n legally separate and independent entities, which cannot obligate or\r\n bind each other in respect of third parties. DTTL and each DTTL\r\n member firm and related entity is liable only for its own acts and\r\n omissions, and not those of each other. DTTL does not provide\r\n services to clients. Please see \r\n {/* Deloitte refers to one or more of Deloitte Touche Tohmatsu Limited,\r\n a UK private company limited by guarantee (“DTTL”), its network of \r\n member firms, and their related entities. DTTL and each of its member\r\n firms are legally separate and independent entities. DTTL\r\n (also referred to as “Deloitte Global”) does not provide services to clients\r\n . Please see   */}\r\n \r\n \r\n www.deloitte.com/about\r\n \r\n \r\n {/*  to learn more. */}\r\n  for a more detailed description of DTTL and its member firms.\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","// because function noop must be empty\r\n/* eslint-disable-next-line @typescript-eslint/no-empty-function */\r\nexport const noop = (): void => {};\r\n\r\nexport const getWindow = (): any => window;\r\n\r\nexport const findSlot = (elements: any[], name: string): JSX.Element =>\r\n elements.find((el): boolean => {\r\n return el.type.displayName === name || el.type.name === name;\r\n }) || null;\r\n\r\nexport const redirectTo = (url: string): void => window.location.replace(url);\r\n\r\nexport const getCookie = (cname: string): string => {\r\n const name = `${cname}=`;\r\n const ca = document.cookie.split(';');\r\n for (let i = 0; i < ca.length; i += 1) {\r\n let c = ca[i];\r\n while (c.charAt(0) === ' ') {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) === 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return '';\r\n};\r\n\r\nexport const clearCookie = (key: string): void => {\r\n document.cookie = `${key}=;path=/;secure`;\r\n};\r\n","export default __webpack_public_path__ + \"static/media/logo.f4f53356.svg\";","import React from 'react';\r\nimport { components } from 'react-select';\r\nimport { OptionProps } from 'react-select/src/components/Option';\r\nimport cs from 'classnames';\r\n\r\nimport styles from './OptionUserProduct.module.css';\r\n\r\nexport function OptionUserProduct(\r\n props: OptionProps\r\n): JSX.Element {\r\n const { isSelected, isFocused } = props;\r\n return (\r\n \r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/languageShape.9fad9e6f.svg\";","import React, { useEffect, useMemo } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nimport { reselectLocaleList, changeLanguage } from 'store/localize';\r\nimport { defaultLocale } from 'shared/constants/common.consts';\r\nimport { Select, Icon } from 'components';\r\nimport { OptionUserProduct } from './OptionUserProduct/OptionUserProduct';\r\nimport styles from './SelectLocale.module.css';\r\nimport { selectProductCode } from '../../store/product';\r\nimport ShapeLanguage from '../../assets/images/languageShape.svg';\r\n\r\nexport const SelectLocale: React.FC = () => {\r\n const { t } = useTranslation();\r\n const dispatch = useDispatch();\r\n const languageLists = useSelector(reselectLocaleList);\r\n const product = useSelector(selectProductCode);\r\n const [selectedLanguage, setSelectedLanguages] = React.useState();\r\n const [fallbackScenario, setFallBackScenario] = React.useState(false);\r\n const location = useLocation();\r\nconsole.log('selectedLanguage: ',selectedLanguage);\r\n useEffect((): void => {\r\n if (languageLists && languageLists.length === 0) setFallBackScenario(true);\r\n }, [languageLists]);\r\n\r\n useEffect((): void => {\r\n if (\r\n localStorage.getItem('storeLanguage') &&\r\n localStorage.getItem('storeLanguage') !== undefined &&\r\n product !== 'sbp' &&\r\n product !== null\r\n ) {\r\n const setLanguage = JSON.parse(localStorage.getItem('storeLanguage'));\r\n if (\r\n languageLists.some(item => item.localeCode === setLanguage.localeCode)\r\n ) {\r\n setSelectedLanguages(setLanguage);\r\n dispatch(changeLanguage(setLanguage.localeCode));\r\n }\r\n } else {\r\n setSelectedLanguages(defaultLocale);\r\n dispatch(changeLanguage(defaultLocale.localeCode));\r\n }\r\n }, [dispatch, languageLists, product]);\r\n\r\n const renderSelectLanguages = React.useCallback(\r\n ({ language }: any): JSX.Element => (\r\n
\r\n {language}\r\n \r\n
\r\n ),\r\n []\r\n );\r\n const getOptionValue = React.useCallback(\r\n ({ localeCode }): string => localeCode,\r\n []\r\n );\r\n const handleLanguageChange = React.useCallback(\r\n (language: any): any => {\r\n localStorage.setItem('storeLanguage', JSON.stringify(language));\r\n setSelectedLanguages(language);\r\n dispatch(changeLanguage(language.localeCode));\r\n },\r\n [dispatch]\r\n );\r\n\r\n const productLanguageList = useMemo(() => {\r\n if ((product === 'sbp' || product === 'dra') && location.pathname !== '/home') {\r\n dispatch(changeLanguage(defaultLocale.localeCode));\r\n //handleLanguageChange(defaultLocale);\r\n return languageLists.filter(item => item.localeCode === defaultLocale.localeCode);\r\n }\r\n return languageLists;\r\n }, [dispatch, product, location, languageLists]);\r\n\r\n return (\r\n \r\n {fallbackScenario ? (\r\n
\r\n
\r\n \r\n
\r\n
English (United States)
\r\n
\r\n Localization settings are temporarily unavailable. Please try again\r\n later.\r\n
\r\n
\r\n ) : (\r\n
\r\n
\r\n language\r\n
\r\n {/*
{t('app.selectlanguage')}
*/}\r\n
\r\n \r\n className={styles.language}\r\n getOptionValue={getOptionValue}\r\n isClearable={false}\r\n isSearchable={false}\r\n OptionComponent={OptionUserProduct}\r\n options={productLanguageList}\r\n renderOption={renderSelectLanguages}\r\n value={selectedLanguage}\r\n withDropdownIndicator={true}\r\n onChange={handleLanguageChange}\r\n />\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n","import { createContext, RefObject } from 'react';\r\n\r\ninterface AppContextProps {\r\n userNavPlaceholder: RefObject;\r\n}\r\n\r\nexport const AppContext = createContext({\r\n userNavPlaceholder: null\r\n});\r\n","import React, { PropsWithChildren, FC } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport cs from 'classnames';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nimport { Navbar } from 'components';\r\nimport { USER_ROLES } from 'features/AdminPage/OnboardingPage/OnboardingFilters/OnboardingFilters';\r\nimport logo from 'shared/icons/logo.svg';\r\nimport Omnialogo from 'shared/icons/Omnia.svg';\r\n// import { selectProductName, selectProductCode } from 'store/auth';\r\nimport {\r\n selectProductCode,\r\n selectProductTitle\r\n} from '../../store/product/product.selectors';\r\nimport { SelectLocale } from '../SelectLocale/SelectLocale';\r\nimport { AppContext } from './AppLayout.helpers';\r\nimport styles from './AppLayout.module.css';\r\nimport { Tab } from '../../components/Tab/Tab';\r\nimport { reselectUser } from '../../store/auth/auth.selectors';\r\n\r\nexport interface Props {\r\n children: React.ReactChild | React.ReactChild[];\r\n}\r\n\r\nexport const AppLayout: FC> = ({ children }) => {\r\n const { t } = useTranslation();\r\n const productName = useSelector(selectProductTitle);\r\n const userNavPlaceholderRef = React.useRef();\r\n const location = useLocation();\r\n const user = useSelector(reselectUser);\r\n const productCode = useSelector(selectProductCode);\r\n \r\n const chooseLogo = () => {\r\n if(productCode === 'mip' && location.pathname.indexOf('registration') !== -1){\r\n return My Incentive Plan;\r\n } \r\n if(productCode === 'dra' && location.pathname.indexOf('registration') !== -1){\r\n return Digital Reporting Accelerator;\r\n }\r\n if(productCode === 'ibr' && location.pathname.indexOf('registration') !== -1){\r\n return Incremental Borrowing Rate;\r\n }\r\n if(productCode === 'sbp' && location.pathname.indexOf('registration') !== -1){\r\n return Share Based Payments Calculator;\r\n } \r\n return Assurance Products;\r\n }; \r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n logo\r\n \r\n {/*
*/}\r\n \r\n {/* Omnialogo delete this img */}\r\n {chooseLogo()}\r\n\r\n \r\n {/*
*/}\r\n \r\n {/* {isInternal === false ? productName : t('app.name')} */}\r\n {/* {!productName ? t('app.name') : productName} */}\r\n {/* {t('app.name')} */}\r\n \r\n
\r\n {/* {((user && user.role === USER_ROLES.PRODUCT_ADMIN) ||\r\n (user && user.role === USER_ROLES.PRODUCT_GROUP_ADMIN) ||\r\n (user && user.role === USER_ROLES.SUPER_ADMIN)) && (\r\n \r\n \r\n {t('admin.tabs.submission')}\r\n \r\n \r\n {t('admin.tabs.admin')}\r\n \r\n \r\n )} */}\r\n
\r\n
\r\n {location.pathname.toLowerCase().includes('admin') ? null : (\r\n \r\n )}\r\n
\r\n
\r\n \r\n {children}\r\n\r\n \r\n );\r\n};\r\n","import get from 'lodash/get';\r\nimport React, {\r\n PropsWithChildren,\r\n FC,\r\n useState,\r\n useContext,\r\n useEffect\r\n} from 'react';\r\nimport { createPortal } from 'react-dom';\r\n\r\nimport { Nothing } from 'components';\r\nimport { AppContext } from '../AppLayout.helpers';\r\n\r\nexport interface Props {\r\n children: React.ReactChild | React.ReactChild[];\r\n}\r\n\r\nexport const AppUserNav: FC> = ({ children }) => {\r\n const [node, setNode] = useState(null);\r\n const { userNavPlaceholder } = useContext(AppContext);\r\n\r\n useEffect((): void => {\r\n setNode(get(userNavPlaceholder, 'current'));\r\n }, [userNavPlaceholder]);\r\n\r\n return node ? createPortal(children, node) : ;\r\n};\r\n","export const SET_PRODUCT_FROM_PATH = '@product/SET_PRODUCT_FROM_PATH';\r\n\r\nexport type ProductState = Readonly<{\r\n hasSuccessData: boolean;\r\n isLoading: boolean;\r\n isLoaded: boolean;\r\n code: string;\r\n title: string;\r\n appUrl: string;\r\n plans: DTO.SubmissionPlan[];\r\n countries: DTO.ProductCountry[];\r\n memberFirms: DTO.MemberFirm[];\r\n fieldSettings: DTO.FieldSettings[];\r\n}>;\r\n\r\nexport type SetProductAction = Store.PaylodedAction;\r\nexport type SetProductAction$ = Store.PaylodedAction>;\r\n\r\nexport type ProductActionTypes = SetProductAction;\r\n","export const SET_LOCALE = '@localize/SET_LOCALE';\r\nexport const FETCH_LOCALE_LIST = '@localize/FETCH_LOCALE_LIST';\r\n\r\nexport type LocaleCode = AP.LocaleCode;\r\n\r\nexport type LocaleList = Array;\r\n\r\nexport type LocaleState = Readonly<{\r\n defaultLocale: AP.DefaultLocale;\r\n localeCode: AP.LocaleCode;\r\n localeList: LocaleList;\r\n}>;\r\n\r\nexport type FetchLocaleList = Store.PaylodedAction;\r\nexport type FetchLocaleList$ = Store.PaylodedAction<\r\n Promise\r\n>;\r\nexport type FetchLocaleCode = Store.PaylodedAction;\r\nexport type FetchLocaleCode$ = Store.PaylodedAction>;\r\n\r\nexport type SetLocaleAction = Store.PaylodedAction;\r\nexport type SetLocaleAction$ = Store.PaylodedAction>;\r\n\r\nexport type LocalizeActionTypes = SetLocaleAction | FetchLocaleList;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"FiltersActions_footer__2aOiv\",\"button\":\"FiltersActions_button__22mIc\",\"addFilter\":\"FiltersActions_addFilter__2cXCy\",\"apply\":\"FiltersActions_apply__3bDvg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminContainer\":\"AccessDeniedPage_adminContainer__lR1Qi\",\"content\":\"AccessDeniedPage_content__3C17Y\",\"header\":\"AccessDeniedPage_header__4Ddbr\",\"title\":\"AccessDeniedPage_title__UcuT4\",\"text\":\"AccessDeniedPage_text__1ze_F\"};","// authProvider.js\r\nimport { MsalAuthProvider, LoginType } from 'react-aad-msal';\r\nimport { Configuration } from 'msal';\r\n\r\nimport { getWindow } from './shared/utils';\r\n\r\n\r\n// Msal Configurations\r\nconst config: Configuration = {\r\n auth: {\r\n authority: `${getWindow().APP_CONFIG.AUTHORITY_URL}/${\r\n getWindow().APP_CONFIG.AAD_TENANT_ID\r\n }`,\r\n clientId: `${getWindow().APP_CONFIG.AAD_CLIENT_ID}`,\r\n redirectUri: `${getWindow().APP_CONFIG.GAP_APP_URL}`\r\n },\r\n cache: {\r\n cacheLocation: 'localStorage',\r\n storeAuthStateInCookie: false\r\n }\r\n};\r\n\r\n// Authentication Parameters\r\nconst authenticationParameters = {\r\n scopes: ['user.read']\r\n};\r\n\r\n// Options\r\nconst options = {\r\n loginType: LoginType.Redirect,\r\n tokenRefreshUri: getWindow().APP_CONFIG.GAP_APP_URL\r\n};\r\n\r\nexport const authProvider = new MsalAuthProvider(\r\n config,\r\n authenticationParameters,\r\n options\r\n);\r\n","// export type SpinnerSize = 'sm' | 'md' | 'lg';\r\n\r\nexport enum SpinnerSize {\r\n Sm = 'sm',\r\n Md = 'md',\r\n Lg = 'lg'\r\n}\r\n\r\nexport const SPINNER_SIZE_MAP: Record = {\r\n sm: '50px',\r\n md: '100px',\r\n lg: '200px'\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Sidebar\":\"Sidebar_Sidebar__3CNt_\",\"Overlay\":\"Sidebar_Overlay__3Q0fz\",\"Header\":\"Sidebar_Header__Tvzk8\",\"Footer\":\"Sidebar_Footer__1RZjt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"Footer_footer__xD6D5\",\"detailDialog\":\"Footer_detailDialog__33TzF\",\"textBold\":\"Footer_textBold__1o6VM\",\"newtabIcon_space\":\"Footer_newtabIcon_space__1U6-y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"long\":\"SubmissionPlan_long__aT2RQ\",\"shifted\":\"SubmissionPlan_shifted__1pZSa\",\"actionButton\":\"SubmissionPlan_actionButton__1HfAv\",\"check\":\"SubmissionPlan_check__wBLpw\",\"form\":\"SubmissionPlan_form__2eSc8\"};","import { apiService } from 'shared/services';\r\nimport {\r\n FETCH_PRODUCT_COUNTRIES,\r\n FetchProductCountriesAction$,\r\n FETCH_COUNTRY_CODES,\r\n FetchCountryCodesAction$,\r\n FETCH_TERMS_OF_USE,\r\n FETCH_INTERNAL_TERMS_OF_USE,\r\n FetchTermsOfUseAction$,\r\n SET_REGISTRATION_COUNTRY_CODE,\r\n SetRegistrationCountryCodeAction,\r\n FETCH_COUNTRY_STATES,\r\n FetchCountryStates$,\r\n FETCH_PRODUCT_PLANS,\r\n FetchProductPlansAction$,\r\n SUBMIT_REGISTRATION_DATA,\r\n SubmitRegistrationAccountDetails,\r\n SetRegistrationPlansAction,\r\n SET_REGISTRATION_PLANS,\r\n SetRegistrationTermsOfUseAgreement,\r\n SET_REGISTRATION_TERMS_OF_USE_AGREEMENT\r\n} from './registration.types';\r\n\r\nexport const fetchProductCountries = (\r\n product: string\r\n): FetchProductCountriesAction$ => ({\r\n type: FETCH_PRODUCT_COUNTRIES,\r\n payload: apiService.fetchProductCountries(product)\r\n});\r\n\r\nexport const fetchCountryCodes = (): FetchCountryCodesAction$ => ({\r\n type: FETCH_COUNTRY_CODES,\r\n payload: apiService.fetchCountryCodes().then(\r\n (response: DTO.CountryCode[]): Record =>\r\n response.reduce(\r\n (\r\n acc: Record,\r\n { iso2Code, iso3Code }: DTO.CountryCode\r\n ) => ({\r\n ...acc,\r\n [iso3Code]: iso2Code\r\n }),\r\n {}\r\n )\r\n )\r\n});\r\n\r\nexport const fetchTermsOfUse = (\r\n product: string,\r\n countryCode: string\r\n): FetchTermsOfUseAction$ => ({\r\n type: FETCH_TERMS_OF_USE,\r\n payload: apiService.fetchTermsOfUse(product, countryCode)\r\n});\r\n\r\nexport const fetchInternalTermsOfUse = (\r\n product: string,\r\n countryCode: string\r\n): FetchTermsOfUseAction$ => ({\r\n type: FETCH_INTERNAL_TERMS_OF_USE,\r\n payload: apiService.fetchInternalTermsOfUse(product, countryCode)\r\n});\r\n\r\n\r\n// export const fetchCountryStates = (\r\n// countryCode: string\r\n// ): FetchCountryStates$ => ({\r\n// type: FETCH_COUNTRY_STATES,\r\n// payload: apiService\r\n// .fetchCountryStates(countryCode)\r\n// .then((response: string[]) =>\r\n// response.map((state: string) => ({ name: state, code: state }))\r\n// )\r\n// });\r\n\r\nexport const fetchCountryStates = (\r\n countryCode: string\r\n): FetchCountryStates$ => ({\r\n type: FETCH_COUNTRY_STATES,\r\n payload: apiService\r\n .fetchCountryStates(countryCode)\r\n .then((response: DTO.State[]) =>\r\n response.map((state: DTO.State) => ({\r\n id: state.id,\r\n name: state.name,\r\n code: state.code\r\n }))\r\n )\r\n});\r\n\r\nexport const setRegistrationCountryCode = (\r\n countryCode: string\r\n): SetRegistrationCountryCodeAction => ({\r\n type: SET_REGISTRATION_COUNTRY_CODE,\r\n payload: countryCode\r\n});\r\n\r\nexport const setRegistrationTermsOfUseAgreement = (\r\n isAgreed: boolean\r\n): SetRegistrationTermsOfUseAgreement => ({\r\n type: SET_REGISTRATION_TERMS_OF_USE_AGREEMENT,\r\n payload: isAgreed\r\n});\r\n\r\nexport const setRegistrationPlans = (\r\n plans: DTO.BasePlan[]\r\n): SetRegistrationPlansAction => ({\r\n type: SET_REGISTRATION_PLANS,\r\n payload: plans\r\n});\r\n\r\nexport const fetchProductPlans = (\r\n\r\n product: string,\r\n\r\n countryCode:string\r\n\r\n): FetchProductPlansAction$ => ({\r\n\r\n type: FETCH_PRODUCT_PLANS,\r\n\r\n payload: apiService.fetchProductPlans(product,countryCode)\r\n\r\n});\r\n\r\nexport const submitRegistrationAccountDetails = (\r\n accountDetails: AP.AccountDetailsFormFields\r\n): SubmitRegistrationAccountDetails => ({\r\n type: SUBMIT_REGISTRATION_DATA,\r\n payload: accountDetails\r\n});\r\n","import { createSelector } from 'reselect';\r\n\r\nimport { RootState } from 'store/root.reducer';\r\n\r\nexport const selectCountryCodes = ({\r\n registration\r\n}: RootState): Record => registration.countryCodes.data;\r\n\r\nexport const selectCountryCodesLoading = ({\r\n registration\r\n}: RootState): boolean => registration.countryCodes.isLoading;\r\n\r\nexport const selectProductCountries = ({\r\n registration\r\n}: RootState): DTO.Country[] => registration.productCountries.data;\r\n\r\nexport const selectProductCountriesLoading = ({\r\n registration\r\n}: RootState): boolean => registration.productCountries.isLoading;\r\n\r\nexport const selectTermsOfUse = ({ registration }: RootState): DTO.TermsOfUse =>\r\n registration.termsOfUse.data;\r\n\r\nexport const selectTermsOfUseLoading = ({ registration }: RootState): boolean =>\r\n registration.termsOfUse.isLoading;\r\n\r\nexport const selectTermsOfUseAgreement = ({\r\n registration\r\n}: RootState): boolean => registration.termsOfUse.isAgreed;\r\n\r\nexport const selectTermsOfUseData = ({\r\n registration\r\n}: RootState): DTO.TermsOfUse => registration.termsOfUse.data;\r\n\r\nexport const reselectTermsOfUseInfo = createSelector(\r\n selectTermsOfUseData,\r\n (data: DTO.TermsOfUse): Record => {\r\n return {\r\n id: data.id,\r\n version: data.version\r\n };\r\n }\r\n);\r\n\r\nexport const selectRegistrationCountryCode = ({\r\n registration\r\n}: RootState): string => registration.data.country;\r\n\r\nconst selectRegistrationData = ({\r\n registration\r\n}: RootState): AP.RegistrationData => registration.data;\r\n\r\nexport const reselectRegistrationPlansEntity = createSelector(\r\n selectRegistrationData,\r\n (data: AP.RegistrationData): AP.RegistrationPlansEntity =>\r\n data.plans.reduce(\r\n (\r\n entity: AP.RegistrationPlansEntity,\r\n { code, purchasedLicenses, availableLicenses }: DTO.BasePlan\r\n ) => ({\r\n ...entity,\r\n [code]: {\r\n code,\r\n purchasedLicenses,\r\n availableLicenses\r\n }\r\n }),\r\n {}\r\n )\r\n);\r\n\r\nexport const reselectRegistrationCountryCode = createSelector(\r\n selectRegistrationData,\r\n (data: AP.RegistrationData): string => data.country\r\n);\r\n\r\nexport const reselectRegistrationData = createSelector(\r\n selectRegistrationData,\r\n (data: AP.RegistrationData) => data\r\n);\r\n\r\nexport const selectCountryStatesData = ({\r\n registration\r\n}: RootState): DTO.State[] => registration.states.data;\r\n\r\nexport const selectCountryStatesLoading = ({\r\n registration\r\n}: RootState): boolean => registration.states.isLoading;\r\n\r\nexport const selectProductPlans = ({\r\n registration\r\n}: RootState): DTO.RegistrationPlan[] => registration.productPlans.data;\r\n\r\nexport const selectProductPlansLoading = ({\r\n registration\r\n}: RootState): boolean => registration.productPlans.isLoading;\r\n","export const SET_UPDATED_PRIMARY_USER = '@global/SET_UPDATED_PRIMARY_USER';\r\n\r\nexport type GlobalState = Readonly<{\r\n updatedPrimaryId: AP.Nullable;\r\n}>;\r\n\r\nexport type setUpdatedPrimaryUserAction = Store.PaylodedAction;\r\n\r\nexport type GlobalActionTypes = setUpdatedPrimaryUserAction;\r\n","const dateFormatList = [\r\n {\r\n label: 'MM/DD/YYYY',\r\n format: 'MM/dd/yyyy',\r\n id: 'df1',\r\n checked: true\r\n },\r\n {\r\n label: 'YYYY/MM/DD',\r\n format: 'yyyy/MM/dd',\r\n id: 'df2',\r\n checked: false\r\n },\r\n {\r\n label: 'DD/MM/YYYY',\r\n format: 'dd/MM/yyyy',\r\n id: 'df3',\r\n checked: false\r\n },\r\n {\r\n label: 'DD Month YYYY',\r\n format: 'dd MMMM yyyy',\r\n id: 'df4',\r\n checked: false\r\n }\r\n];\r\n\r\nexport default dateFormatList;\r\n","const numberFormatList = [\r\n {\r\n label: '1,000,000.00',\r\n format: '#,###,###.##',\r\n id: 'nf1',\r\n checked: true\r\n },\r\n {\r\n label: '1.000.000,00',\r\n format: '#.###.###,##',\r\n id: 'nf2',\r\n checked: false\r\n },\r\n {\r\n label: '1 000 000,00',\r\n format: '# ### ###,##',\r\n id: 'nf3',\r\n checked: false\r\n }\r\n];\r\nexport default numberFormatList;\r\n","import React, { useEffect, useState, useCallback, Fragment } from 'react';\r\nimport { Modal } from 'react-bootstrap';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useMutate } from 'restful-react';\r\n\r\nimport { selectHttpHeaders, getCurrentUser } from 'store/auth';\r\nimport { API_PATH } from 'shared/constants/api.consts';\r\nimport { reselectLocaleList, changeLanguage } from 'store/localize';\r\nimport {\r\n defaultLocale,\r\n defaultDateFormat,\r\n defaultNumberFormat\r\n} from 'shared/constants/common.consts';\r\nimport { Button } from 'components/Button/Button';\r\nimport { Select } from 'components';\r\nimport dateFormatList from './DateFormat';\r\nimport numberFormatList from './NumberFormat';\r\nimport './ConfirmDialog.css';\r\n\r\ninterface Props {\r\n title: string;\r\n subTitle: string;\r\n subTitle2: string;\r\n subTitle3: string;\r\n okBtnName: string;\r\n cancelBtnName: string;\r\n showModal: boolean;\r\n close: any;\r\n firstLogin?: boolean;\r\n description?: string;\r\n userLanguage?: string;\r\n dateFormat?: string;\r\n numberFormat?: string;\r\n}\r\n\r\nexport function ConfirmDialog({\r\n title,\r\n subTitle,\r\n subTitle2,\r\n subTitle3,\r\n description,\r\n okBtnName,\r\n cancelBtnName,\r\n showModal,\r\n close,\r\n firstLogin,\r\n userLanguage,\r\n dateFormat,\r\n numberFormat\r\n}: Props): JSX.Element {\r\n const modalClass = ' confirm-dialog';\r\n const dispatch = useDispatch();\r\n const httpHeaders = useSelector(selectHttpHeaders);\r\n const [selectedLanguage, setSelectedLanguage] = useState(defaultLocale);\r\n const [selectedDateFormat, setSelectedDateFormat] = useState(\r\n defaultDateFormat\r\n );\r\n const [selectedNumberFormat, setSelectedNumberFormat] = useState(\r\n defaultNumberFormat\r\n );\r\n const languageLists = useSelector(reselectLocaleList);\r\n const [fallbackScenario, setFallbackScenario] = useState(false);\r\n\r\n const renderSelectLanguages = useCallback(\r\n ({ language }: any): JSX.Element => (\r\n
\r\n {language}\r\n
\r\n ),\r\n []\r\n );\r\n\r\n useEffect((): void => {\r\n if (dateFormat) setSelectedDateFormat(dateFormat);\r\n if (numberFormat) setSelectedNumberFormat(numberFormat);\r\n }, [dateFormat, numberFormat]);\r\n\r\n useEffect((): void => {\r\n if (firstLogin && !languageLists.length) {\r\n setFallbackScenario(true);\r\n }\r\n }, [firstLogin, fallbackScenario, languageLists]);\r\n\r\n const handleLanguageChange = (language: any): any => {\r\n setSelectedLanguage(language);\r\n };\r\n\r\n const dateChange = (value: any): any => {\r\n setSelectedDateFormat(value);\r\n };\r\n\r\n const numberChange = (value: any): any => {\r\n setSelectedNumberFormat(value);\r\n };\r\n\r\n const { mutate: SaveSettings } = useMutate({\r\n verb: 'POST',\r\n path: API_PATH.SAVE_USER_PREFERENCE(),\r\n requestOptions: () => ({ headers: httpHeaders })\r\n });\r\n\r\n const handleConfirm = () => {\r\n SaveSettings({\r\n language: userLanguage || selectedLanguage.localeCode,\r\n dateFormat: selectedDateFormat,\r\n numberFormat: selectedNumberFormat\r\n }).then(() => dispatch(getCurrentUser()));\r\n\r\n dispatch(changeLanguage(userLanguage || selectedLanguage.localeCode));\r\n close();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n {title}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {firstLogin && (\r\n \r\n

{subTitle}

\r\n
\r\n \r\n className='first-language mb-3'\r\n isClearable={false}\r\n isSearchable={false}\r\n options={languageLists}\r\n renderOption={renderSelectLanguages}\r\n value={selectedLanguage}\r\n withDropdownIndicator={true}\r\n onChange={handleLanguageChange}\r\n />\r\n {fallbackScenario && (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n\r\n

{subTitle2}

\r\n\r\n
\r\n
\r\n {dateFormatList.map(format => {\r\n return (\r\n
\r\n dateChange(format.format)}\r\n />\r\n \r\n {format.label}\r\n {/* {format.id == \"df1\" && ({default})} */}\r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n\r\n

{subTitle3}

\r\n\r\n
\r\n
\r\n {numberFormatList.map(format => {\r\n return (\r\n
\r\n numberChange(format.format)}\r\n />\r\n \r\n {format.label}\r\n {/* {format.id == \"nf1\" && ({default})} */}\r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n {firstLogin && (\r\n
\r\n \r\n {description}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n {!firstLogin && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ConfirmDialog;\r\n","import React from 'react';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport cs from 'classnames';\r\n\r\nimport styles from './Tab.module.css';\r\n\r\ninterface Props {\r\n children: string | JSX.Element;\r\n href: string;\r\n tabRoute: string;\r\n \r\n highlightActive?: boolean;\r\n className?: string;\r\n isSidePanel?: boolean;\r\n}\r\n\r\nexport const Tab: React.FC = ({\r\n href,\r\n highlightActive,\r\n children,\r\n className,\r\n tabRoute,\r\n isSidePanel\r\n}) => {\r\n const location = useLocation();\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n","export default __webpack_public_path__ + \"static/media/submissionLogoGreen.f6245b53.svg\";","export default __webpack_public_path__ + \"static/media/submissionLogoBlack.e5a5035d.svg\";","export default __webpack_public_path__ + \"static/media/userIconGreen.1929e92c.svg\";","export default __webpack_public_path__ + \"static/media/arrowLeft.3da600ff.svg\";","export default __webpack_public_path__ + \"static/media/arrowRight.792f0aaa.svg\";","import React, { useRef, useEffect, useState, useCallback } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nimport styles from './SidePanel.module.css';\r\nimport {\r\n selectProductCode,\r\n} from '../../store/product/product.selectors';\r\nimport { Tab } from '../../components/Tab/Tab';\r\nimport submissionLogoGreen from '../../assets/images/submissionLogoGreen.svg';\r\nimport userIconBlack from '../../assets/images/userIconBlack.svg';\r\nimport submissionLogoBlack from '../../assets/images/submissionLogoBlack.svg';\r\nimport userIconGreen from '../../assets/images/userIconGreen.svg';\r\nimport arrowLeft from '../../assets/images/arrowLeft.svg';\r\nimport arrowRight from '../../assets/images/arrowRight.svg';\r\n\r\n\r\nexport const SidePanel = (): JSX.Element => {\r\n const { t } = useTranslation();\r\n const location = useLocation();\r\n const productCode = useSelector(selectProductCode);\r\n const [isOpenSideBar, setIsOpenSideBar] = useState(false);\r\n const [routeLocation, setRouteLocation] = useState(location);\r\n\r\n useEffect(() => {\r\n setRouteLocation(location); \r\n }, [location]);\r\n\r\n const toggleNav = () => {\r\n setIsOpenSideBar(!isOpenSideBar);\r\n if (document.getElementById('mySidebar').style.width === '' || document.getElementById('mySidebar').style.width === '0px') {\r\n openNav();\r\n } else {\r\n closeNav();\r\n }\r\n };\r\n\r\n const openNav = () => {\r\n document.getElementById('mySidebar').style.width = '250px';\r\n document.getElementById('mySidebar').style.marginLeft = '15px';\r\n };\r\n\r\n const closeNav = () => {\r\n document.getElementById('mySidebar').style.width = '0';\r\n document.getElementById('mySidebar').style.marginLeft = '0';\r\n };\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n {routeLocation?.pathname?.toLowerCase().includes('submissions') || routeLocation?.pathname?.toLowerCase().includes('update-subscription') ?\r\n submissionsvg\r\n : submissionsvg\r\n }\r\n \r\n \r\n {routeLocation?.pathname?.toLowerCase().includes('onboarding') ?\r\n usersvg\r\n : usersvg\r\n }\r\n \r\n \r\n\r\n \r\n
\r\n

{t('admin.tabs.submission')}

\r\n

{t('admin.tabs.admin')}

\r\n
\r\n
\r\n );\r\n};\r\n","// TODO: refactor this\r\n/* eslint-disable react/display-name */\r\nimport React from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { selectUserInitials } from 'store/auth';\r\nimport { Icon } from 'components';\r\nimport styles from './UserMenuToggle.module.css';\r\n\r\ninterface Props {\r\n onClick?: () => void;\r\n}\r\n\r\nexport const UserMenuToggle = React.forwardRef(\r\n ({ onClick }, ref) => {\r\n const userInitials = useSelector(selectUserInitials);\r\n\r\n return (\r\n \r\n {userInitials}\r\n \r\n
\r\n );\r\n }\r\n);\r\n","export default __webpack_public_path__ + \"static/media/exit.021a02e6.svg\";","import React, { useEffect } from 'react';\r\nimport cs from 'classnames';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useMutate } from 'restful-react';\r\nimport find from 'lodash/find';\r\n\r\nimport {\r\n getCurrentUser,\r\n reselectUser,\r\n selectUserInitials,\r\n selectHttpHeaders\r\n} from 'store/auth';\r\nimport { errorException } from 'shared/utils/AppInsights';\r\nimport { reselectLocaleList, changeLanguage } from 'store/localize';\r\nimport { API_PATH } from 'shared/constants/api.consts';\r\nimport { Select } from 'components';\r\nimport { ConfirmDialog } from 'components/Localization_Confirm/ConfirmDialog';\r\nimport { defaultLocale } from 'shared/constants/common.consts';\r\nimport styles from './UserMenuContent.module.css';\r\nimport { authProvider } from '../../../../authProvider';\r\nimport exit from '../../../../assets/images/exit.svg';\r\n\r\ninterface Props {\r\n className?: string;\r\n style?: React.CSSProperties;\r\n 'aria-labelledby'?: string;\r\n}\r\n\r\nexport const UserMenuContent = React.forwardRef(\r\n ({ style, className, 'aria-labelledby': labeledBy }, ref): JSX.Element => {\r\n const { t } = useTranslation();\r\n const dispatch = useDispatch();\r\n const user = useSelector(reselectUser);\r\n const userInitials = useSelector(selectUserInitials);\r\n const languageLists = useSelector(reselectLocaleList);\r\n const httpHeaders = useSelector(selectHttpHeaders);\r\n const [showSettings, setShowSettings] = React.useState(false);\r\n const [selectedLanguage, setSelectedLanguage] = React.useState();\r\n const [fallbackScenario, setFallBackScenario] = React.useState(false);\r\n const { dateFormat, numberFormat, language } = user.profileSettings;\r\n\r\n const renderSelectLanguages = React.useCallback(\r\n (langData: any): JSX.Element => (\r\n
\r\n {langData.language}\r\n
\r\n ),\r\n []\r\n );\r\n\r\n useEffect((): void => {\r\n if (languageLists.length) {\r\n const userLanguage = find(languageLists, {\r\n localeCode: language\r\n });\r\n setSelectedLanguage(userLanguage);\r\n }\r\n }, [languageLists, language]);\r\n\r\n useEffect((): void => {\r\n if (!languageLists.length) {\r\n setFallBackScenario(true);\r\n }\r\n }, [languageLists]);\r\n\r\n const { mutate: SaveSettings } = useMutate({\r\n verb: 'POST',\r\n path: API_PATH.SAVE_USER_PREFERENCE(),\r\n requestOptions: () => ({ headers: httpHeaders })\r\n });\r\n\r\n const handleLanguageChange = React.useCallback(\r\n (langData: any): any => {\r\n setSelectedLanguage(langData);\r\n SaveSettings({\r\n language: langData.localeCode,\r\n dateFormat,\r\n numberFormat\r\n }).then(() => {\r\n dispatch(getCurrentUser());\r\n });\r\n dispatch(changeLanguage(langData.localeCode));\r\n },\r\n [SaveSettings, dispatch, dateFormat, numberFormat]\r\n );\r\n\r\n const confirmDialogConfig = {\r\n closeButtonName: t('actions.cancel'),\r\n okBtnName: t('actions.apply'),\r\n title: t('actions.settings'),\r\n subTitle: t('admin.first.selectLanguage'),\r\n subTitle2: t('admin.first.selectDateFormat'),\r\n subTitle3: t('admin.first.selectNumberFormat')\r\n };\r\n\r\n const onModalClose = () => {\r\n setShowSettings(false);\r\n };\r\n const onModalOpen = () => {\r\n setShowSettings(true);\r\n };\r\n\r\n const getOptionValue = React.useCallback(\r\n ({ localeCode }: AP.DefaultLocale): string => localeCode,\r\n []\r\n );\r\n\r\n const handleLogout = async() => {\r\n try{\r\n const resp = await fetch(API_PATH.PROFILE_LOGOUT, { headers: httpHeaders });\r\n const data = await resp.json();\r\n if(data){\r\n authProvider.logout();\r\n }\r\n } catch(error) {\r\n errorException(`${error}. In UserMenuContent.tsx`);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n
\r\n
{userInitials}
\r\n
\r\n

\r\n {`${user.firstName} ${user.lastName}`}\r\n

\r\n \r\n {t(`admin.role.${user.role}`)}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {t('actions.selectLanguage')}\r\n
\r\n \r\n getOptionValue={getOptionValue}\r\n isClearable={false}\r\n isDisabled={fallbackScenario}\r\n isSearchable={false}\r\n options={languageLists}\r\n renderOption={renderSelectLanguages}\r\n value={selectedLanguage || defaultLocale}\r\n withDropdownIndicator={true}\r\n onChange={handleLanguageChange}\r\n />\r\n {fallbackScenario && (\r\n
\r\n Localization settings are temporarily unavailable.
Please,\r\n try again later.\r\n
\r\n )}\r\n
\r\n\r\n \r\n \r\n {t('actions.profileSettings')}\r\n \r\n\r\n \r\n exitsvg\r\n {t('actions.logOut')}\r\n \r\n\r\n \r\n
\r\n );\r\n }\r\n);\r\n","import React from 'react';\r\n\r\nimport { Dropdown } from 'components';\r\nimport { UserMenuToggle } from './UserMenuToggle/UserMenuToggle';\r\nimport { UserMenuContent } from './UserMenuContent/UserMenuContent';\r\n\r\nexport function UserMenu(): JSX.Element {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { components } from 'react-select';\r\nimport { OptionProps } from 'react-select/src/components/Option';\r\nimport cs from 'classnames';\r\n\r\nimport styles from './OptionUserProduct.module.css';\r\n\r\nexport function OptionUserProduct(\r\n props: OptionProps\r\n): JSX.Element {\r\n const { isSelected, isFocused } = props;\r\n return (\r\n \r\n );\r\n}\r\n","import React, { useCallback } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport { Icon, Select } from 'components';\r\nimport { reselectAdminProducts, setCurrentUserAdminFilters } from 'store/auth';\r\nimport { reselectProductInfo } from 'store/product';\r\nimport { OptionUserProduct } from './OptionUserProduct/OptionUserProduct';\r\nimport styles from './UserProductsSelect.module.css';\r\n\r\nexport const UserProductsSelect: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const productInfo = useSelector(reselectProductInfo);\r\n const adminProducts = useSelector(reselectAdminProducts);\r\n const history = useHistory();\r\n\r\n const [selectedProduct, setSelectedProduct] = React.useState(\r\n productInfo\r\n );\r\n\r\n React.useEffect((): void => {\r\n setSelectedProduct(productInfo);\r\n }, [productInfo]);\r\n\r\n const setFilters = useCallback(\r\n (filters: DTO.UserFilters) => {\r\n dispatch(setCurrentUserAdminFilters(filters));\r\n },\r\n [dispatch]\r\n );\r\n\r\n const handleProductChange = React.useCallback(\r\n (product: DTO.ProductInfo): void => {\r\n if (productInfo.code !== product.code) {\r\n history.push(product.code);\r\n setFilters(\r\n {\r\n 'countryIds': [],\r\n 'emails': [],\r\n 'displayName': [],\r\n 'countryCode': []\r\n });\r\n }\r\n },\r\n [history, productInfo, setFilters]\r\n );\r\n const renderOption = React.useCallback(\r\n ({ title }: DTO.ProductInfo): JSX.Element => (\r\n
\r\n {title}\r\n \r\n
\r\n ),\r\n []\r\n );\r\n const getOptionValue = React.useCallback(\r\n ({ code }: DTO.ProductInfo): string => code,\r\n []\r\n );\r\n\r\n const getOptionLabel = React.useCallback(({ title }): string => title, []);\r\n const additionalThemeProps = {\r\n borderRadius: 0,\r\n colors: {\r\n neutral0: '#FFFFFF',\r\n primary25: '#EBF8FD',\r\n primary: '#007CB0'\r\n },\r\n spacing: {\r\n baseUnit: 4,\r\n controlHeight: 4,\r\n menuGutter: 2\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n additionalThemeProps={additionalThemeProps}\r\n className={styles.userProducts}\r\n getOptionLabel={getOptionLabel}\r\n getOptionValue={getOptionValue}\r\n isClearable={false}\r\n isSearchable={false}\r\n OptionComponent={OptionUserProduct}\r\n options={adminProducts}\r\n renderOption={renderOption}\r\n value={selectedProduct}\r\n withDropdownIndicator={true}\r\n onChange={handleProductChange}\r\n />\r\n
\r\n );\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"spinnerBackdrop\":\"Spinner_spinnerBackdrop__2lOTf\",\"overflowHidden\":\"Spinner_overflowHidden__3PfsB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Checkbox_container__1USLX\",\"check\":\"Checkbox_check__34G-X\",\"label\":\"Checkbox_label__13ZV6\",\"checkedIcon\":\"Checkbox_checkedIcon__3eHAo\",\"customcheckedIcon\":\"Checkbox_customcheckedIcon__1eSc8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"option\":\"Option_option__AA9Gb\",\"optionFocused\":\"Option_optionFocused__2sYQJ\",\"optionSelected\":\"Option_optionSelected__r_rAd\",\"label\":\"Option_label__Tjoxo\",\"tick\":\"Option_tick__mJqMk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"group\":\"Group_group__3qr4C\",\"heading\":\"Group_heading__h9huG\",\"title\":\"Group_title__3cp7Q\",\"note\":\"Group_note__2SQOv\",\"link\":\"Group_link__3UZed\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"stepper\":\"Stepper_stepper__1im-y\",\"handleStepperMargin\":\"Stepper_handleStepperMargin__3Peot\",\"stepContainer\":\"Stepper_stepContainer__3-9zd\",\"hr\":\"Stepper_hr__1o_mb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sidebar\":\"SidePanel_sidebar__2LOJB\",\"closebtn\":\"SidePanel_closebtn__2msvW\",\"openbtn\":\"SidePanel_openbtn__6i_Cq\",\"sidebarToggle\":\"SidePanel_sidebarToggle__10hxi\",\"tab\":\"SidePanel_tab__12Iqi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"initial_div\":\"UserCard_initial_div__3pbka\",\"content_div\":\"UserCard_content_div__ulOGV\",\"disabled_div\":\"UserCard_disabled_div__2yMEz\",\"name\":\"UserCard_name__1fAn4\",\"iconButton\":\"UserCard_iconButton__1QUTs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"AdditionalUsersSidebar_header__8vMHW\",\"iconButton\":\"AdditionalUsersSidebar_iconButton__3cUFF\",\"noScroll\":\"AdditionalUsersSidebar_noScroll__mLn1v\",\"content\":\"AdditionalUsersSidebar_content__3TnRz\",\"footer\":\"AdditionalUsersSidebar_footer__3mYIM\",\"cancel\":\"AdditionalUsersSidebar_cancel__1H2F5\",\"cancel_btn\":\"AdditionalUsersSidebar_cancel_btn__2zR5u\",\"img_div\":\"AdditionalUsersSidebar_img_div__2-wb1\"};","import React from 'react';\r\nimport { connect, useSelector } from 'react-redux';\r\nimport { FormikProps, withFormik } from 'formik';\r\nimport get from 'lodash/get';\r\nimport camelCase from 'lodash/camelCase';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { object, string, setLocale } from 'yup';\r\n\r\nimport { selectProductCode } from 'store/product';\r\nimport { reselectRegistrationData } from 'store/registration';\r\nimport { reselectSubscriptionData } from 'store/updateSubscription';\r\nimport { RootState } from 'store/root.reducer';\r\nimport { noop } from 'shared/utils';\r\nimport { Form } from 'components';\r\nimport { errorException } from 'shared/utils/AppInsights';\r\n\r\n\r\ninterface FormFieldProps {\r\n disabled?: boolean;\r\n name: string;\r\n span?: number;\r\n label?: string;\r\n placeholder?: string;\r\n options?: any[];\r\n elem?: any[];\r\n validationErrMsg?: (err: string | any) => string;\r\n productCode?: any;\r\n t?: any;\r\n maxLength?: number;\r\n}\r\n\r\ninterface FormGroup {\r\n title: string;\r\n fields: FormField[][];\r\n note?: string;\r\n privacyText?: string\r\n}\r\n\r\nexport interface FormField {\r\n disabled?: boolean;\r\n label: string;\r\n name: string;\r\n placeholder?: string;\r\n render: (props: FormFieldProps) => JSX.Element;\r\n options?: any[];\r\n elem?: any;\r\n}\r\n\r\nsetLocale({\r\n mixed: {\r\n default: ({ path }: string | any): AP.ValidationError => ({\r\n key: camelCase(path)\r\n }),\r\n required: (): AP.ValidationError => {\r\n // AppInsights Error Exception\r\n errorException('Error data required, File reference: AccountDetailsForm.helpers.tsx in setLocale function ');\r\n\r\n return { key: 'required' };\r\n }\r\n },\r\n string: {\r\n email: (): AP.ValidationError => {\r\n // AppInsights Error Exception\r\n errorException('Error email, File reference: AccountDetailsForm.helpers.tsx in setLocale function ');\r\n\r\n return { key: 'email' };\r\n }\r\n }\r\n});\r\n\r\nfunction renderInput(\r\n type: 'text' | 'email',\r\n props: FormFieldProps\r\n): JSX.Element {\r\n return ;\r\n}\r\n\r\n// TODO: refactor this\r\n// eslint-disable-next-line react/no-multi-comp\r\nfunction renderSelect({ options, ...props }: FormFieldProps): JSX.Element {\r\n return (\r\n \r\n );\r\n}\r\n\r\n// eslint-disable-next-line react/no-multi-comp\r\nfunction renderRadio({ options, ...props }: FormFieldProps): JSX.Element {\r\n // eslint-disable-next-line react/destructuring-assignment\r\n return ;\r\n}\r\n\r\nexport const formGroups: FormGroup[] = [\r\n {\r\n title: 'forms.userInformation',\r\n privacyText: 'forms.privacyStatement',\r\n fields: [\r\n [\r\n {\r\n label: 'forms.email',\r\n name: 'user.email',\r\n render: (props): JSX.Element =>\r\n renderInput('email', { ...props, span: 6, maxLength: 50 })\r\n }\r\n ],\r\n [\r\n {\r\n label: 'forms.firstName',\r\n name: 'user.firstName',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 6, maxLength: 30 })\r\n }\r\n ],\r\n [\r\n {\r\n label: 'forms.lastName',\r\n name: 'user.lastName',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 6, maxLength: 30 })\r\n }\r\n ]\r\n ]\r\n },\r\n {\r\n title: 'forms.accountInformation',\r\n fields: [\r\n [\r\n {\r\n label: 'forms.companyFullLegalName',\r\n name: 'organization.legalName',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 6, maxLength: 100 })\r\n }\r\n ],\r\n [\r\n {\r\n label: 'forms.globalParentFullLegalNameOptional',\r\n name: 'organization.parentLegalName',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 6 })\r\n }\r\n ],\r\n [\r\n {\r\n label: 'forms.departmentOptional',\r\n name: 'organization.department',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 6 })\r\n }\r\n ]\r\n ]\r\n },\r\n {\r\n title: 'forms.address',\r\n fields: [\r\n [\r\n {\r\n label: 'forms.address',\r\n name: 'organization.address',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 6, maxLength: 100 })\r\n }\r\n ],\r\n [\r\n {\r\n label: 'forms.stateProvinceCounty',\r\n name: 'organization.state',\r\n placeholder: 'forms.selectOption',\r\n render: (props): JSX.Element => renderSelect({ ...props, span: 6 })\r\n }\r\n ],\r\n [\r\n {\r\n label: 'forms.townCity',\r\n name: 'organization.city',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 6, maxLength: 50 })\r\n },\r\n {\r\n label: 'forms.zipPostalCode',\r\n name: 'organization.postalCode',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 3, maxLength: 10 })\r\n }\r\n ],\r\n [\r\n {\r\n label: 'forms.isDeloitteAuditClient',\r\n name: 'organization.isDeloitteAuditClient',\r\n elem: [\r\n {\r\n name: 'isDeloitteAuditClient',\r\n label: 'forms.no',\r\n id: 'AuditNo',\r\n value: '2',\r\n checked: true\r\n },\r\n {\r\n name: 'isDeloitteAuditClient',\r\n label: 'forms.yes',\r\n id: 'AuditYes',\r\n value: '1',\r\n checked: false\r\n },\r\n {\r\n name: 'isDeloitteAuditClient',\r\n label: 'forms.dk',\r\n id: 'AuditDontKnow',\r\n value: '3',\r\n checked: false\r\n }\r\n ],\r\n render: (props): JSX.Element => renderRadio({ ...props, span: 3 })\r\n }\r\n ]\r\n ]\r\n }\r\n];\r\n\r\nexport const subscriptionFormGroups: FormGroup[] = [\r\n {\r\n title: 'forms.userInformation',\r\n fields: [\r\n [\r\n {\r\n label: 'forms.email',\r\n name: 'user.email',\r\n render: (props): JSX.Element =>\r\n renderInput('email', { ...props, span: 6, disabled: true })\r\n }\r\n ],\r\n [\r\n {\r\n label: 'forms.firstName',\r\n name: 'user.firstName',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 6, maxLength: 30 })\r\n }\r\n ],\r\n [\r\n {\r\n label: 'forms.lastName',\r\n name: 'user.lastName',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 6, maxLength: 30 })\r\n }\r\n ]\r\n ]\r\n },\r\n {\r\n title: 'forms.accountInformation',\r\n fields: [\r\n [\r\n {\r\n label: 'forms.companyFullLegalName',\r\n name: 'organization.legalName',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 6, maxLength: 100 })\r\n }\r\n ],\r\n [\r\n {\r\n label: 'forms.globalParentFullLegalNameOptional',\r\n name: 'organization.parentLegalName',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 6 })\r\n }\r\n ],\r\n [\r\n {\r\n label: 'forms.departmentOptional',\r\n name: 'organization.department',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 6 })\r\n }\r\n ],\r\n ]\r\n }, \r\n {\r\n title: 'forms.address',\r\n fields: [\r\n [\r\n {\r\n label: 'forms.address',\r\n name: 'organization.address',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 6, maxLength: 100 })\r\n }\r\n ],\r\n [\r\n {\r\n label: 'forms.stateProvinceCounty',\r\n name: 'organization.state',\r\n placeholder: 'forms.selectOption',\r\n render: (props): JSX.Element => renderSelect({ ...props, span: 6 })\r\n }\r\n ],\r\n [\r\n {\r\n label: 'forms.townCity',\r\n name: 'organization.city',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 6, maxLength: 50 })\r\n },\r\n {\r\n label: 'forms.zipPostalCode',\r\n name: 'organization.postalCode',\r\n render: (props): JSX.Element =>\r\n renderInput('text', { ...props, span: 3, maxLength: 10 })\r\n }\r\n ],\r\n [\r\n {\r\n label: 'forms.isDeloitteAuditClient',\r\n name: 'organization.isDeloitteAuditClient',\r\n elem: [\r\n {\r\n name: 'isDeloitteAuditClient',\r\n label: 'forms.no',\r\n id: 'AuditNo',\r\n value: '2',\r\n checked: true\r\n },\r\n {\r\n name: 'isDeloitteAuditClient',\r\n label: 'forms.yes',\r\n id: 'AuditYes',\r\n value: '1',\r\n checked: false\r\n },\r\n {\r\n name: 'isDeloitteAuditClient',\r\n label: 'forms.dk',\r\n id: 'AuditDontKnow',\r\n value: '3',\r\n checked: false\r\n }\r\n ],\r\n render: (props): JSX.Element => renderRadio({ ...props, span: 3 })\r\n }\r\n ]\r\n ]\r\n }\r\n];\r\n\r\nexport function useRenderInput(lookups: {\r\n [key: string]: any[];\r\n}): ({ name, label, placeholder, render, options }: FormField) => JSX.Element {\r\n const { t } = useTranslation();\r\n const productCode = useSelector(selectProductCode);\r\n return React.useCallback(\r\n ({ name, label, placeholder, render, elem }: FormField): JSX.Element => (\r\n \r\n {render({\r\n name,\r\n label: t(label),\r\n elem,\r\n options: get(lookups, name, []),\r\n placeholder: placeholder ? t(placeholder) : '',\r\n productCode,\r\n t,\r\n validationErrMsg: (err): string =>\r\n err ? t(`validation.errors.${err.key}`, { values: err.values }) : ''\r\n })}\r\n \r\n ),\r\n [t, lookups, productCode]\r\n );\r\n}\r\n\r\nconst mapRegistrationDataToProps = (state: RootState) => ({\r\n data: reselectRegistrationData(state)\r\n});\r\n\r\nexport const accountDetailsStoreEnhancer = connect(mapRegistrationDataToProps);\r\n\r\nconst mapSubscriptionDataToProps = (state: RootState) => () => {\r\n return { data: reselectSubscriptionData(state) };\r\n};\r\n\r\nexport const subscriptionDetailsStoreEnhancer = connect(\r\n mapSubscriptionDataToProps\r\n);\r\n\r\ninterface AccountDetailsFormProps\r\n extends AP.DefaultRegistrationStepProps,\r\n ReturnType {\r\n loading: boolean;\r\n formErrors: Record;\r\n states: DTO.State[];\r\n onSubmit: (values: AP.AccountDetailsFormFields) => void;\r\n}\r\n\r\nexport type InjectedFormikAccountDetailsFormProps = AccountDetailsFormProps &\r\n FormikProps;\r\n\r\nexport const accountDetailsFormEnhancer = withFormik<\r\n AccountDetailsFormProps,\r\n AP.AccountDetailsFormFields\r\n>({\r\n mapPropsToValues: ({ data }) => data,\r\n validationSchema: object().shape({\r\n user: object().shape({\r\n email: string()\r\n .required()\r\n .email()\r\n .test(\r\n 'cannot be Deloitte email',\r\n undefined,\r\n (value: string): boolean => {\r\n const emailLengthLimit = 64;\r\n\r\n if (!value) return true;\r\n if (value && value.toLowerCase().includes('@deloitte.'))\r\n return false;\r\n if (value) {\r\n const splitValue = value.split('@');\r\n if (splitValue && splitValue[0].length > emailLengthLimit)\r\n return false;\r\n }\r\n if (\r\n value &&\r\n /^(([^<>()[\\].,;:\\s@+\"]+(\\.[^<>()[\\].,;:\\s@+\"]+)*)|(\".+\"))@(([^<>().,;\\s@\"]+\\.{0,1})+[^<>().,;:\\s@\"]{2,})$/.test(\r\n value\r\n )\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n ),\r\n firstName: string()\r\n .required()\r\n .test(\r\n 'Please enter valid characters in your First Name.',\r\n undefined,\r\n (value: string): boolean => {\r\n \r\n \r\n if (\r\n value &&\r\n /^(?:[A-Za-z.\\s'-]+|\\d+)$/.test(\r\n value\r\n )\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n })\r\n .trim(),\r\n lastName: string()\r\n .required()\r\n .test(\r\n 'Please enter valid characters in your Last Name.',\r\n undefined,\r\n (value: string): boolean => {\r\n \r\n \r\n if (\r\n value &&\r\n /^(?:[A-Za-z.\\s'-]+|\\d+)$/.test(\r\n value\r\n )\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n })\r\n .trim()\r\n }),\r\n organization: object().shape({\r\n legalName: string()\r\n .required()\r\n .trim(),\r\n address: string()\r\n .required()\r\n .trim(),\r\n city: string()\r\n .required()\r\n .trim(),\r\n state: string()\r\n .transform(value => value !== null && value.toString ? value.toString() : value)\r\n .required(),\r\n postalCode: string()\r\n .required()\r\n .trim(),\r\n isDeloitteAuditClient: string()\r\n .required()\r\n .test(\r\n 'Cannot be Deloitte Audit Client',\r\n undefined,\r\n (value: string): boolean => !value || !value.includes('1')\r\n )\r\n })\r\n }),\r\n\r\n handleSubmit: noop\r\n});\r\n\r\nexport const accountDetailsSubscriptionFormEnhancer = withFormik<\r\n AccountDetailsFormProps,\r\n AP.AccountDetailsFormFields\r\n>({\r\n mapPropsToValues: ({ data }) => {\r\n return data;\r\n },\r\n isInitialValid: true,\r\n validationSchema: object().shape({\r\n user: object().shape({\r\n email: string()\r\n .required()\r\n .email()\r\n .test(\r\n 'cannot be Deloitte email',\r\n undefined,\r\n (value: string): boolean => {\r\n const emailLengthLimit = 64;\r\n\r\n if (!value) return true;\r\n if (value && value.includes('@deloitte.')) return false;\r\n if (value) {\r\n const splitValue = value.split('@');\r\n if (splitValue && splitValue[0].length > emailLengthLimit)\r\n return false;\r\n }\r\n if (\r\n value &&\r\n /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@(([^<>().,;\\s@\"]+\\.{0,1})+[^<>().,;:\\s@\"]{2,})$/.test(\r\n value\r\n )\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n ),\r\n firstName: string()\r\n .required()\r\n .test(\r\n 'Please enter valid characters in your First Name.',\r\n undefined,\r\n (value: string): boolean => {\r\n \r\n if (\r\n value &&\r\n /^(?:[A-Za-z.\\s'-]+|\\d+)$/.test(\r\n value\r\n )\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n })\r\n .trim(),\r\n lastName: string()\r\n .required()\r\n .test(\r\n 'Please enter valid characters in your Last Name.',\r\n undefined,\r\n (value: string): boolean => {\r\n \r\n \r\n if (\r\n value &&\r\n /^(?:[A-Za-z.\\s'-]+|\\d+)$/.test(\r\n value\r\n )\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n })\r\n .trim()\r\n }),\r\n organization: object().shape({\r\n legalName: string()\r\n .required()\r\n .trim(),\r\n address: string()\r\n .required()\r\n .trim(),\r\n city: string()\r\n .required()\r\n .trim(),\r\n state: string().required(),\r\n postalCode: string()\r\n .required()\r\n .trim(),\r\n isDeloitteAuditClient: string().test(\r\n 'Cannot be Deloitte Audit Client',\r\n undefined,\r\n (value: string): boolean => !value || !value.includes('true')\r\n )\r\n }),\r\n referral: object().shape({\r\n name: string()\r\n .required()\r\n .trim(),\r\n email: string()\r\n .required()\r\n .test('deloitteEmailOrNA', undefined, (value: string): boolean => {\r\n if (!value) {\r\n return true;\r\n }\r\n\r\n try {\r\n return string()\r\n .email()\r\n .validateSync(value.toLowerCase())\r\n .includes('@deloitte.');\r\n } catch (e) {\r\n return value === 'N/A';\r\n }\r\n })\r\n })\r\n }),\r\n\r\n handleSubmit: noop\r\n});","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"AccountDetailsForm_wrapper__2_SmE\",\"content\":\"AccountDetailsForm_content__Ihwii\",\"update_actionPanel\":\"AccountDetailsForm_update_actionPanel__2pfps\",\"border_rule\":\"AccountDetailsForm_border_rule__2xw-X\",\"checkboxContainer\":\"AccountDetailsForm_checkboxContainer__1sCQz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"card\":\"Card_card__1Qd2d\",\"highlighted\":\"Card_highlighted__3mAnz\",\"noBorder\":\"Card_noBorder__1ovvH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Counter_container__1DQMz\",\"disabled\":\"Counter_disabled__JoM8d\",\"countButton\":\"Counter_countButton__3simS\",\"input\":\"Counter_input__g5ELn\",\"customDisabled\":\"Counter_customDisabled__1Q3Jn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"customOption\":\"Option_customOption__114pA\",\"selected\":\"Option_selected__2vgik\",\"focused\":\"Option_focused__2Ogh8\",\"disabled\":\"Option_disabled__2FENU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filters\":\"OnboardingFilters_filters___3LZD\",\"tags\":\"OnboardingFilters_tags__2VXYE\",\"sorting\":\"OnboardingFilters_sorting__1O55j\",\"filterControls\":\"OnboardingFilters_filterControls__2gUyh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tag\":\"Tag_tag__sgh_g\",\"active\":\"Tag_active__3KXO_\",\"label\":\"Tag_label__1LAkN\",\"text\":\"Tag_text__5kLiP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tab\":\"Tab_tab__1DH6i\",\"tabActive\":\"Tab_tabActive__Eapbz\",\"tabActiveSidePanel\":\"Tab_tabActiveSidePanel__38A7o\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectContainer\":\"UserProductsSelect_selectContainer__3CQut\",\"toggleIcon\":\"UserProductsSelect_toggleIcon__1Bqnm\",\"option\":\"UserProductsSelect_option__2kC7a\",\"selectedOption\":\"UserProductsSelect_selectedOption__1aQgf\",\"userProducts\":\"UserProductsSelect_userProducts__1dLuY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"SubmissionPlansFooter_footer__22FY8\",\"submitButton\":\"SubmissionPlansFooter_submitButton__2qCLz\",\"info\":\"SubmissionPlansFooter_info__3iuXJ\",\"centered\":\"SubmissionPlansFooter_centered__1WCi2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Detail_container__aQCml\",\"title\":\"Detail_title__2a6He\",\"hiddenContent\":\"Detail_hiddenContent__1Mcj9\",\"text\":\"Detail_text__2RHq5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"SidebarFooter_footer__2BFWW\",\"footerButton\":\"SidebarFooter_footerButton__3eJ1I\",\"cancel\":\"SidebarFooter_cancel__1FuQ3\",\"update_footer_div\":\"SidebarFooter_update_footer_div__dYkGz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filterPanel\":\"AdminPageContent_filterPanel__1avbI\",\"filters\":\"AdminPageContent_filters__11QCm\",\"tableContainer\":\"AdminPageContent_tableContainer__2XDBK\",\"grid\":\"AdminPageContent_grid__7fYj2\",\"pagination\":\"AdminPageContent_pagination__1MJtJ\",\"sortAndFilters\":\"AdminPageContent_sortAndFilters__3o4Vg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cross\":\"DeleteAdminModal_cross__2HxyM\",\"modalHeader\":\"DeleteAdminModal_modalHeader__MJhUY\",\"modalFooter\":\"DeleteAdminModal_modalFooter__3XG97\",\"modalTitle\":\"DeleteAdminModal_modalTitle__3ITTc\"};","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { UPDATE_SUBSCRIPTIONS_ACTIONS } from 'features/UpdateSubscription/UpdateSubscription.helpers';\r\nimport { reselectAction, setUserAction } from 'store/updateSubscription';\r\nimport { selectProductCode, selectProductAppUrl } from 'store/product';\r\nimport { noop, redirectTo } from 'shared/utils';\r\nimport { Button, Confirmation } from 'components';\r\nimport { APP_PATH } from '../../../Routes/Routes.helpers';\r\nimport styles from './StepActionsPanel.module.css';\r\nimport ChevronLeftButton from '../../../../assets/images/ChevronLeftRegular.png';\r\n\r\ninterface Props extends AP.DefaultRegistrationStepProps {\r\n showBackButton: boolean,\r\n isNextDisabled: boolean;\r\n nextLabel: string;\r\n className?: string;\r\n directCancel?: boolean;\r\n message?: string | null;\r\n}\r\n\r\nexport const StepActionsPanel: React.FC> = ({\r\n className = '',\r\n nextLabel = null,\r\n showBackButton = false,\r\n isNextDisabled = false,\r\n onNext = noop,\r\n onBack = noop,\r\n directCancel,\r\n message\r\n}) => {\r\n const { t } = useTranslation();\r\n const dispatch = useDispatch();\r\n const action = useSelector(reselectAction);\r\n const history = useHistory();\r\n const [confirm, setConfirm] = React.useState(false);\r\n const productCode = useSelector(selectProductCode);\r\n const productAPPUrl = useSelector(selectProductAppUrl);\r\n const routeUrl = `${APP_PATH.ADMIN_SUBMISSIONS_ROOT}/${productCode}`;\r\n\r\n const handleOnResolve = React.useCallback(() => {\r\n if (productCode === null) {\r\n return;\r\n }\r\n if (directCancel) {\r\n history.replace(routeUrl);\r\n } else {\r\n redirectTo(productAPPUrl);\r\n }\r\n }, [productCode, directCancel, history, routeUrl, productAPPUrl]);\r\n\r\n const handleOnReject = React.useCallback((): void => {\r\n setConfirm(false);\r\n }, []);\r\n\r\n const handleOnCancel = React.useCallback((): void => {\r\n if (directCancel) {\r\n // dipatching CANCEL action will help in routing to Processed tab \r\n dispatch(setUserAction(UPDATE_SUBSCRIPTIONS_ACTIONS.CANCEL));\r\n history.replace(routeUrl);\r\n } else {\r\n setConfirm(true);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [directCancel, history, routeUrl]);\r\n\r\n return (\r\n \r\n
\r\n \r\n {/* {onBack && onBack !== noop && (\r\n \r\n {t('actions.back')}\r\n \r\n )} */}\r\n {showBackButton && (\r\n \r\n \r\n ETL\r\n \r\n \r\n {t('actions.previousStep')}\r\n \r\n \r\n )}\r\n \r\n {nextLabel || t('actions.next')}\r\n \r\n
\r\n {confirm ? (\r\n \r\n ) : null}\r\n
\r\n );\r\n};\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAYAAAASVl2WAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA4SURBVHgB1YxBEQAgCMAGtTmzaAONoMlQA8Bb991uQoSNivqKpfX2iQQFF1SclHso5/RoJGmkzA2uyS+FRQQZEwAAAABJRU5ErkJggg==\"","import { CONFIG } from 'shared/constants/config.consts';\r\nimport { errorException } from 'shared/utils/AppInsights';\r\n\r\ntype ApiFunctionName = 'tenant' | 'system' | 'account' | 'integration';\r\n\r\nconst resolveLocalUrls = (func: string): string => {\r\n switch (func) {\r\n case 'tenant':\r\n return 'http://localhost:7071/api';\r\n case 'system':\r\n return 'http://localhost:7072/api';\r\n case 'account':\r\n return 'http://localhost:7073/api';\r\n case 'integration':\r\n return 'http://localhost:7074/api';\r\n default:\r\n // AppInsights Error Exception\r\n errorException(`Error Function ${func} is unknown, File reference: api-host-resolver.utils.tsx in resolveLocalUrls function`);\r\n throw new Error(`Function ${func} is unknown`);\r\n }\r\n};\r\n\r\nexport const getApiHost = (func: ApiFunctionName): string => {\r\n switch (CONFIG.ENV) {\r\n case 'LOCAL':\r\n return resolveLocalUrls(func);\r\n default:\r\n return CONFIG.API_URL;\r\n }\r\n};\r\n","import React from 'react';\r\nimport { Modal, ModalProps } from 'react-bootstrap';\r\nimport cs from 'classnames';\r\n\r\nimport { noop } from 'shared/utils';\r\nimport { Button } from 'components/Button/Button';\r\nimport { Icon } from 'components/Icon/Icon';\r\nimport styles from './Dialog.module.css';\r\nimport WarningPng from '../../assets/images/WarningCircle.png';\r\n\r\ninterface Props extends ModalProps {\r\n title: string;\r\n noCaps?:boolean;\r\n actions?: AP.DialogAction[];\r\n className?: string;\r\n showCrossButton?: boolean;\r\n onClose?: () => void;\r\n onClosed?: () => void;\r\n}\r\n\r\nexport function Dialog({\r\n title,\r\n children,\r\n show = false,\r\n size,\r\n actions = [],\r\n className,\r\n noCaps = true,\r\n showCrossButton = false,\r\n onHide = noop,\r\n onClose = noop,\r\n onClosed = noop,\r\n}: React.PropsWithChildren): JSX.Element {\r\n const footer = React.useMemo(\r\n () =>\r\n actions.length ? (\r\n \r\n {actions.map(\r\n ({\r\n label,\r\n onClick,\r\n variant = 'primary',\r\n disabled = false\r\n }: AP.DialogAction): JSX.Element => (\r\n \r\n {label}\r\n \r\n )\r\n )}\r\n \r\n ) : null,\r\n [actions, className]\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n ETL\r\n \r\n {title}\r\n \r\n {/* Below cross button is hidden based on new requirement of Omnia changes */}\r\n {showCrossButton && (\r\n \r\n \r\n \r\n )}\r\n \r\n {children}\r\n {footer}\r\n \r\n );\r\n}\r\n","import { Reducer } from 'redux';\r\n\r\nimport {\r\n asyncActionFulfilled,\r\n asyncActionPending,\r\n asyncActionRejected\r\n} from 'shared/utils';\r\nimport {\r\n ProductActionTypes,\r\n ProductState,\r\n SET_PRODUCT_FROM_PATH,\r\n SetProductAction\r\n} from './product.types';\r\n\r\nconst initialProductState: ProductState = {\r\n hasSuccessData: false,\r\n isLoading: false,\r\n isLoaded: false,\r\n code: null,\r\n title: '',\r\n appUrl: '',\r\n plans: [],\r\n countries: [],\r\n memberFirms: [],\r\n fieldSettings: []\r\n};\r\n\r\nexport const productReducer: Reducer = (\r\n state: ProductState = initialProductState,\r\n action: ProductActionTypes\r\n): ProductState => {\r\n switch (action.type) {\r\n case asyncActionPending(SET_PRODUCT_FROM_PATH):\r\n return {\r\n ...state,\r\n isLoading: true,\r\n isLoaded: false,\r\n hasSuccessData: false\r\n };\r\n\r\n case asyncActionRejected(SET_PRODUCT_FROM_PATH):\r\n return {\r\n ...state,\r\n isLoading: false,\r\n isLoaded: true,\r\n hasSuccessData: false\r\n };\r\n\r\n case asyncActionFulfilled(SET_PRODUCT_FROM_PATH): {\r\n const {\r\n code,\r\n title,\r\n appUrl,\r\n plans,\r\n countries,\r\n memberFirms,\r\n fieldSettings\r\n } = (action as SetProductAction).payload;\r\n\r\n return {\r\n ...state,\r\n code,\r\n title,\r\n appUrl,\r\n plans,\r\n countries,\r\n memberFirms,\r\n fieldSettings,\r\n isLoading: false,\r\n isLoaded: true,\r\n hasSuccessData: true\r\n };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { Reducer } from 'redux';\r\n\r\nimport {\r\n asyncActionPending,\r\n asyncActionRejected,\r\n asyncActionFulfilled\r\n} from 'shared/utils';\r\nimport {\r\n AuthActionTypes,\r\n AuthState,\r\n GetCurrentUserAction,\r\n SetAccessTokenAction,\r\n GET_CURRENT_USER,\r\n SET_ACCESS_TOKEN,\r\n PROCEED_WITHOUT_USER,\r\n SET_CURRENT_USER_FILTERS,\r\n SET_CURRENT_USER_ADMIN_FILTERS,\r\n SetCurrentUserFiltersAction,\r\n SetCurrentUserAdminFiltersAction,\r\n SET_SOURCE_SUBJECT_ID,\r\n SetSourceSubjectId\r\n} from './auth.types';\r\n\r\nconst initialState: AuthState = {\r\n accessToken: null,\r\n user: null,\r\n isLoading: false,\r\n isLoaded: false,\r\n hasUserDeniedAccess: false,\r\n hasUserExpiredToken: false,\r\n isInternal: false,\r\n filter: {\r\n planStatus: [],\r\n countryCode: [],\r\n legalName: [],\r\n user: [],\r\n subscriberEmail: []\r\n },\r\n adminFilters: {\r\n emails: [],\r\n displayName: null,\r\n countryIds: [],\r\n role: 0\r\n },\r\n isFirstAdminFiltersInit: true,\r\n isFirstLogin: false,\r\n selectedAdminFilters: [],\r\n sourceSubjectId: \"\",\r\n};\r\n\r\nconst getFilter = ({\r\n company,\r\n country,\r\n planStatus,\r\n user\r\n}: DTO.RegistrationsFilter): any => {\r\n return {\r\n countryCode: country || [],\r\n legalName: (company as any) || [],\r\n planStatus: planStatus || [],\r\n user: user\r\n ? user.map(item => ({ firstName: item, email: item, lastName: item }))\r\n : []\r\n };\r\n};\r\n\r\nexport const authReducer: Reducer = (\r\n state: AuthState = initialState,\r\n action: AuthActionTypes\r\n): AuthState => {\r\n switch (action.type) {\r\n case SET_ACCESS_TOKEN: {\r\n const accessToken = (action as SetAccessTokenAction).payload;\r\n return {\r\n ...state,\r\n accessToken\r\n };\r\n }\r\n\r\n case PROCEED_WITHOUT_USER:\r\n return {\r\n ...state,\r\n accessToken: null,\r\n user: null,\r\n isLoaded: true\r\n };\r\n\r\n case SET_CURRENT_USER_FILTERS:\r\n return {\r\n ...state,\r\n filter: (action as SetCurrentUserFiltersAction).payload\r\n };\r\n \r\n case SET_SOURCE_SUBJECT_ID:\r\n return {\r\n ...state,\r\n sourceSubjectId: (action as SetSourceSubjectId).payload\r\n };\r\n\r\n case SET_CURRENT_USER_ADMIN_FILTERS: {\r\n const { countryCode, displayName, emails } = (action as SetCurrentUserAdminFiltersAction).payload;\r\n const countryName = countryCode && countryCode.length > 0 ? countryCode.map(({ name }) => name) : [];\r\n const adminName = displayName && displayName.length > 0 ? displayName.map(({ fullName }) => fullName) : [];\r\n const adminEmails = emails && emails.length > 0 ? emails.map(({ email }) => email) : [];\r\n return {\r\n ...state,\r\n adminFilters: (action as SetCurrentUserAdminFiltersAction).payload,\r\n isFirstAdminFiltersInit: false,\r\n selectedAdminFilters: [\r\n {\r\n key: 'countryCode',\r\n value: countryName\r\n }, {\r\n key: 'displayName',\r\n value: adminName\r\n }, {\r\n key: 'emails',\r\n value: adminEmails\r\n }\r\n ]\r\n };\r\n }\r\n\r\n case asyncActionPending(GET_CURRENT_USER):\r\n return {\r\n ...state,\r\n isLoading: true,\r\n isLoaded: false\r\n };\r\n\r\n case asyncActionRejected(GET_CURRENT_USER):\r\n return {\r\n ...state,\r\n isLoading: false,\r\n isLoaded: true,\r\n user: null,\r\n hasUserDeniedAccess:\r\n (action as Store.ErrorAction).payload.status === 403,\r\n hasUserExpiredToken:\r\n (action as Store.ErrorAction).payload.status === 401,\r\n isInternal: (action as Store.ErrorAction).payload.status === 401\r\n };\r\n\r\n case asyncActionFulfilled(GET_CURRENT_USER): {\r\n const user = (action as GetCurrentUserAction).payload;\r\n const initialUserData = user.profileSettings\r\n ? user\r\n : {\r\n ...user,\r\n profileSettings: {\r\n ...user.profileSettings,\r\n language: 'En-US',\r\n numberFormat: 'decimal',\r\n dateFormat: '1',\r\n registrationsFilter: {\r\n company: null,\r\n country: null,\r\n user: null,\r\n planStatus: null\r\n }\r\n }\r\n };\r\n\r\n return {\r\n ...state,\r\n isLoading: false,\r\n isLoaded: true,\r\n user: initialUserData,\r\n hasUserDeniedAccess: user.adminProducts.length === 0,\r\n hasUserExpiredToken: false,\r\n isInternal: user.userType === 'Internal',\r\n // filter: getFilter(initialUserData.profileSettings.registrationsFilter),\r\n isFirstLogin: !user.profileSettings\r\n };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { Reducer } from 'redux';\r\n\r\nimport {\r\n // asyncActionPending,\r\n // asyncActionRejected,\r\n asyncActionFulfilled\r\n} from 'shared/utils';\r\nimport {\r\n AppLocales,\r\n defaultLocale\r\n} from '../../shared/constants/common.consts';\r\nimport {\r\n SET_LOCALE,\r\n FETCH_LOCALE_LIST,\r\n LocaleList,\r\n LocaleState,\r\n LocalizeActionTypes,\r\n FetchLocaleList\r\n} from './localize.types';\r\n\r\nconst initialState: LocaleState = {\r\n defaultLocale,\r\n localeCode: AppLocales.enUS,\r\n localeList: [{ ...defaultLocale }]\r\n};\r\n\r\nexport const localizeReducer: Reducer = (\r\n state: LocaleState = initialState,\r\n action: LocalizeActionTypes\r\n): LocaleState => {\r\n switch (action.type) {\r\n case SET_LOCALE: {\r\n return {\r\n ...state,\r\n localeCode: action.payload\r\n };\r\n }\r\n\r\n case asyncActionFulfilled(FETCH_LOCALE_LIST): {\r\n const localeList: LocaleList = (action as FetchLocaleList).payload;\r\n return {\r\n ...state,\r\n localeList: [...localeList]\r\n };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { Reducer } from 'redux';\r\n\r\nimport {\r\n asyncActionFulfilled,\r\n asyncActionPending,\r\n asyncActionRejected\r\n} from 'shared/utils';\r\nimport {\r\n RegistrationActionTypes,\r\n RegistrationState,\r\n FETCH_PRODUCT_COUNTRIES,\r\n FetchProductCountriesAction,\r\n FETCH_COUNTRY_CODES,\r\n FetchCountryCodesAction,\r\n FETCH_TERMS_OF_USE,\r\n FetchTermsOfUseAction,\r\n FETCH_INTERNAL_TERMS_OF_USE,\r\n FetchInternalTermsOfUseAction,\r\n SET_REGISTRATION_COUNTRY_CODE,\r\n SetRegistrationCountryCodeAction,\r\n FETCH_COUNTRY_STATES,\r\n FetchCountryStates,\r\n FETCH_PRODUCT_PLANS,\r\n FetchProductPlansAction,\r\n SUBMIT_REGISTRATION_DATA,\r\n SubmitRegistrationAccountDetails,\r\n SET_REGISTRATION_PLANS,\r\n SetRegistrationPlansAction,\r\n SET_REGISTRATION_TERMS_OF_USE_AGREEMENT,\r\n SetRegistrationTermsOfUseAgreement\r\n} from './registration.types';\r\n\r\nconst initialRegistrationState: RegistrationState = {\r\n productCountries: {\r\n isLoading: false,\r\n data: []\r\n },\r\n countryCodes: {\r\n isLoading: false,\r\n data: null\r\n },\r\n productPlans: {\r\n isLoading: false,\r\n data: []\r\n },\r\n termsOfUse: {\r\n isLoading: false,\r\n data: null,\r\n isAgreed: false\r\n },\r\n states: {\r\n isLoading: false,\r\n data: null\r\n },\r\n data: {\r\n country: null,\r\n plans: [],\r\n user: {\r\n email: '',\r\n firstName: '',\r\n lastName: ''\r\n },\r\n organization: {\r\n companyId: '',\r\n legalName: '',\r\n address: '',\r\n city: '',\r\n state: '',\r\n stateId: 0,\r\n postalCode: '',\r\n isDeloitteAuditClient: '2'\r\n },\r\n referral: {\r\n name: 'N/A',\r\n email: 'N/A'\r\n }\r\n }\r\n};\r\n\r\nexport const registrationReducer: Reducer<\r\n RegistrationState,\r\n RegistrationActionTypes\r\n> = (\r\n state: RegistrationState = initialRegistrationState,\r\n action: RegistrationActionTypes\r\n): RegistrationState => {\r\n switch (action.type) {\r\n case SET_REGISTRATION_COUNTRY_CODE: {\r\n const country = (action as SetRegistrationCountryCodeAction).payload;\r\n const data = { ...state.data, country };\r\n const termsOfUse =\r\n country === state.data.country\r\n ? state.termsOfUse\r\n : {\r\n isLoading: false,\r\n isAgreed: false,\r\n data: null\r\n };\r\n return {\r\n ...state,\r\n termsOfUse,\r\n data\r\n };\r\n }\r\n\r\n case SET_REGISTRATION_TERMS_OF_USE_AGREEMENT: {\r\n const isAgreed = (action as SetRegistrationTermsOfUseAgreement).payload;\r\n return {\r\n ...state,\r\n termsOfUse: {\r\n ...state.termsOfUse,\r\n isAgreed\r\n }\r\n };\r\n }\r\n\r\n case SET_REGISTRATION_PLANS: {\r\n const plans = (action as SetRegistrationPlansAction).payload;\r\n const data = {\r\n ...state.data,\r\n plans\r\n };\r\n return {\r\n ...state,\r\n data\r\n };\r\n }\r\n\r\n case SUBMIT_REGISTRATION_DATA: {\r\n const accountDetails = (action as SubmitRegistrationAccountDetails)\r\n .payload;\r\n const data = {\r\n ...state.data,\r\n ...accountDetails\r\n };\r\n return {\r\n ...state,\r\n data\r\n };\r\n }\r\n\r\n case asyncActionPending(FETCH_PRODUCT_COUNTRIES): {\r\n return {\r\n ...state,\r\n productCountries: {\r\n isLoading: true,\r\n data: []\r\n }\r\n };\r\n }\r\n\r\n case asyncActionRejected(FETCH_PRODUCT_COUNTRIES): {\r\n return {\r\n ...state,\r\n productCountries: {\r\n isLoading: false,\r\n data: []\r\n }\r\n };\r\n }\r\n\r\n case asyncActionFulfilled(FETCH_PRODUCT_COUNTRIES): {\r\n const countriesData = (action as FetchProductCountriesAction).payload;\r\n return {\r\n ...state,\r\n productCountries: {\r\n isLoading: false,\r\n data: countriesData\r\n }\r\n };\r\n }\r\n\r\n case asyncActionPending(FETCH_COUNTRY_CODES): {\r\n return {\r\n ...state,\r\n countryCodes: {\r\n isLoading: true,\r\n data: null\r\n }\r\n };\r\n }\r\n\r\n case asyncActionRejected(FETCH_COUNTRY_CODES): {\r\n return {\r\n ...state,\r\n countryCodes: {\r\n isLoading: false,\r\n data: {}\r\n }\r\n };\r\n }\r\n\r\n case asyncActionFulfilled(FETCH_COUNTRY_CODES): {\r\n const codesData = (action as FetchCountryCodesAction).payload;\r\n return {\r\n ...state,\r\n countryCodes: {\r\n isLoading: false,\r\n data: codesData\r\n }\r\n };\r\n }\r\n\r\n case asyncActionPending(FETCH_TERMS_OF_USE): {\r\n return {\r\n ...state,\r\n termsOfUse: {\r\n isAgreed: false,\r\n isLoading: true,\r\n data: null\r\n }\r\n };\r\n }\r\n\r\n case asyncActionRejected(FETCH_TERMS_OF_USE): {\r\n return {\r\n ...state,\r\n termsOfUse: {\r\n isAgreed: false,\r\n isLoading: false,\r\n data: null\r\n }\r\n };\r\n }\r\n\r\n case asyncActionFulfilled(FETCH_TERMS_OF_USE): {\r\n const termsOfUseData = (action as FetchTermsOfUseAction).payload;\r\n return {\r\n ...state,\r\n termsOfUse: {\r\n isAgreed: false,\r\n isLoading: false,\r\n data: termsOfUseData\r\n }\r\n };\r\n }\r\n\r\n case asyncActionPending(FETCH_INTERNAL_TERMS_OF_USE): {\r\n return {\r\n ...state,\r\n termsOfUse: {\r\n isAgreed: false,\r\n isLoading: true,\r\n data: null\r\n }\r\n };\r\n }\r\n\r\n case asyncActionRejected(FETCH_INTERNAL_TERMS_OF_USE): {\r\n return {\r\n ...state,\r\n termsOfUse: {\r\n isAgreed: false,\r\n isLoading: false,\r\n data: null\r\n }\r\n };\r\n }\r\n\r\n case asyncActionFulfilled(FETCH_INTERNAL_TERMS_OF_USE): {\r\n const termsOfUseData = (action as FetchInternalTermsOfUseAction).payload;\r\n return {\r\n ...state,\r\n termsOfUse: {\r\n isAgreed: false,\r\n isLoading: false,\r\n data: termsOfUseData\r\n }\r\n };\r\n }\r\n\r\n case asyncActionPending(FETCH_COUNTRY_STATES): {\r\n return {\r\n ...state,\r\n states: {\r\n isLoading: true,\r\n data: null\r\n }\r\n };\r\n }\r\n\r\n case asyncActionRejected(FETCH_COUNTRY_STATES): {\r\n return {\r\n ...state,\r\n states: {\r\n isLoading: false,\r\n data: []\r\n }\r\n };\r\n }\r\n\r\n case asyncActionFulfilled(FETCH_COUNTRY_STATES): {\r\n const statesData = (action as FetchCountryStates).payload;\r\n return {\r\n ...state,\r\n states: {\r\n isLoading: false,\r\n data: statesData\r\n }\r\n };\r\n }\r\n\r\n case asyncActionPending(FETCH_PRODUCT_PLANS): {\r\n return {\r\n ...state,\r\n productPlans: {\r\n isLoading: true,\r\n data: []\r\n }\r\n };\r\n }\r\n\r\n case asyncActionRejected(FETCH_PRODUCT_PLANS): {\r\n return {\r\n ...state,\r\n productPlans: {\r\n isLoading: false,\r\n data: []\r\n }\r\n };\r\n }\r\n\r\n case asyncActionFulfilled(FETCH_PRODUCT_PLANS): {\r\n const plans = (action as FetchProductPlansAction).payload;\r\n return {\r\n ...state,\r\n productPlans: {\r\n isLoading: false,\r\n data: plans\r\n }\r\n };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { Reducer } from 'redux';\r\n\r\nimport {\r\n SubscriptionActionTypes,\r\n SubscriptionState,\r\n SET_SUBSRIPTION_DETAILS,\r\n SET_SUBSRIPTION_EMAIL,\r\n SET_SUBSRIPTION_PLANS,\r\n SET_USER_ACTION,\r\n SET_INIT_VALUES,\r\n FetchSubscriptionAccountDetailsAction,\r\n RENEW_SUBSCRIPTIONS,\r\n SET_IS_LOADING\r\n} from './subscription.types';\r\n\r\nconst initialSubscriptionState: SubscriptionState = {\r\n countryCode: null,\r\n userEmail: null,\r\n isLoading: false,\r\n userAction: '',\r\n states: null,\r\n data: {\r\n // comment:'',\r\n country: null,\r\n plans: [],\r\n user: {\r\n email: '',\r\n firstName: '',\r\n lastName: ''\r\n },\r\n organization: {\r\n companyId: '',\r\n legalName: '',\r\n address: '',\r\n city: '',\r\n state: '',\r\n postalCode: '',\r\n isDeloitteAuditClient: '0',\r\n deloitteAuditClientType: '',\r\n stateId: 0,\r\n stateL10NKey: ''\r\n },\r\n referral: {}\r\n }\r\n};\r\n\r\nexport const subscriptionReducer: Reducer<\r\n SubscriptionState,\r\n SubscriptionActionTypes\r\n> = (\r\n state: SubscriptionState = initialSubscriptionState,\r\n action: SubscriptionActionTypes\r\n): SubscriptionState => {\r\n switch (action.type) {\r\n case SET_SUBSRIPTION_EMAIL: {\r\n return {\r\n ...state,\r\n userEmail: action.payload\r\n };\r\n }\r\n\r\n case SET_SUBSRIPTION_PLANS: {\r\n return {\r\n ...state,\r\n data: {\r\n ...state.data,\r\n plans: action.payload\r\n }\r\n };\r\n }\r\n\r\n case SET_USER_ACTION: {\r\n return {\r\n ...state,\r\n userAction: action.payload\r\n };\r\n }\r\n\r\n case SET_IS_LOADING: {\r\n return {\r\n ...state,\r\n isLoading: action.payload\r\n };\r\n }\r\n\r\n case SET_SUBSRIPTION_DETAILS: {\r\n const actionData = (action as FetchSubscriptionAccountDetailsAction)\r\n .payload;\r\n return {\r\n ...state,\r\n isLoading: false,\r\n countryCode: actionData.userDetails.country.code,\r\n data: {\r\n ...state.data,\r\n ...actionData.userDetails,\r\n country: actionData.userDetails.country,\r\n organization: {\r\n ...actionData.userDetails.organization,\r\n isDeloitteAuditClient: actionData.userDetails.organization.isDeloitteAuditClient.toString(),\r\n state: {\r\n code: actionData.userDetails.organization.state,\r\n name: actionData.userDetails.organization.state\r\n }\r\n },\r\n plans: actionData.plans\r\n },\r\n states: actionData.states\r\n };\r\n }\r\n\r\n case RENEW_SUBSCRIPTIONS: {\r\n const actionData = action.payload;\r\n\r\n return { ...state, data: { ...state.data, plans: actionData } };\r\n }\r\n\r\n case SET_INIT_VALUES: {\r\n return initialSubscriptionState;\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { Reducer } from 'redux';\r\n\r\nimport {\r\n GlobalActionTypes,\r\n GlobalState,\r\n SET_UPDATED_PRIMARY_USER,\r\n setUpdatedPrimaryUserAction\r\n} from './global.types';\r\n\r\nconst initialState: GlobalState = {\r\n updatedPrimaryId: null\r\n};\r\n\r\nexport const globalReducer: Reducer = (\r\n state: GlobalState = initialState,\r\n action: GlobalActionTypes\r\n): GlobalState => {\r\n switch (action.type) {\r\n case SET_UPDATED_PRIMARY_USER: {\r\n const updatedPrimaryId = (action as setUpdatedPrimaryUserAction).payload;\r\n return {\r\n ...state,\r\n updatedPrimaryId\r\n };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { ThunkDispatch } from 'redux-thunk';\r\n\r\nimport { apiService } from 'shared/services';\r\nimport { UPDATE_SUBSCRIPTIONS_ACTIONS } from 'features/UpdateSubscription/UpdateSubscription.helpers';\r\nimport { errorException } from 'shared/utils/AppInsights';\r\nimport {\r\n SET_SUBSRIPTION_DETAILS,\r\n SET_SUBSRIPTION_COUNTRY_CODE,\r\n SET_SUBSRIPTION_PLANS,\r\n SET_USER_ACTION,\r\n SET_INIT_VALUES,\r\n SET_SUBSRIPTION_EMAIL,\r\n RENEW_SUBSCRIPTIONS,\r\n SET_IS_LOADING\r\n} from './subscription.types';\r\n\r\nexport const renewSubscriptions = (plansData: any) => ({\r\n type: RENEW_SUBSCRIPTIONS,\r\n payload: plansData\r\n});\r\n\r\nexport const setSubscriptionDetails = (subscription: {\r\n userDetails: DTO.UserDetails;\r\n states: DTO.State[];\r\n plans: DTO.BasePlan[];\r\n}) => ({\r\n type: SET_SUBSRIPTION_DETAILS,\r\n payload: subscription\r\n});\r\n\r\nexport const setCountryCode = ({ code, email }: any): any => ({\r\n type: SET_SUBSRIPTION_COUNTRY_CODE,\r\n payload: { countryCode: code, userEmail: email }\r\n});\r\n\r\nexport const setSelectedEmail = (email: string): any => ({\r\n type: SET_SUBSRIPTION_EMAIL,\r\n payload: email\r\n});\r\n\r\nexport const setPlans = (plans: any) => ({\r\n type: SET_SUBSRIPTION_PLANS,\r\n payload: plans\r\n});\r\n\r\nexport const setUserAction = (action: UPDATE_SUBSCRIPTIONS_ACTIONS) => ({\r\n type: SET_USER_ACTION,\r\n payload: action\r\n});\r\n\r\nexport const setInitValues = () => ({\r\n type: SET_INIT_VALUES,\r\n payload: ''\r\n});\r\n\r\nexport const setIsLoading = (isLoading: boolean) => ({\r\n type: SET_IS_LOADING,\r\n payload: isLoading\r\n});\r\n\r\nexport const fetchSubscriptionDetails = (\r\n product: string,\r\n email: string\r\n) => async (dispatch: ThunkDispatch) => {\r\n try {\r\n setIsLoading(true);\r\n const subscriptionDetails = await apiService.fetchSubscriptionDetails(\r\n product,\r\n email\r\n );\r\n const states = await apiService.fetchCountryStates(\r\n subscriptionDetails.userDetails.country.code\r\n );\r\n dispatch(setSubscriptionDetails({ ...subscriptionDetails, states }));\r\n } catch (error) {\r\n // AppInsights Error Exception\r\n errorException(`Error ${error}, File reference: subscription.actions.tsx in fetchSubscriptionDetails function`);\r\n\r\n throw error;\r\n } finally {\r\n setIsLoading(false);\r\n }\r\n};\r\n","export default __webpack_public_path__ + \"static/media/Spinner.97cf99cf.svg\";","import React from 'react';\r\n\r\nimport { SPINNER_SIZE_MAP, SpinnerSize } from '../Spinner.helpers';\r\nimport SpinnerSvg from './Spinner.svg';\r\n\r\ninterface Props {\r\n size: SpinnerSize;\r\n}\r\n\r\nexport const SpinnerImage: React.FC = ({ size }) => {\r\n const [style] = React.useState({\r\n width: SPINNER_SIZE_MAP[size],\r\n height: SPINNER_SIZE_MAP[size]\r\n });\r\n\r\n return Loader.;\r\n};\r\n","import React from 'react';\r\nimport cs from 'classnames';\r\n\r\nimport styles from '../Spinner.module.css';\r\n\r\ninterface Props {\r\n className?: string;\r\n}\r\n\r\nexport const SpinnerBackdrop: React.FC> = ({\r\n children,\r\n className\r\n}) =>
{children}
;\r\n","import React, { useEffect, FC } from 'react';\r\nimport { createPortal } from 'react-dom';\r\n\r\nimport { SpinnerImage } from './SpinnerImage/SpinnerImage';\r\nimport { SpinnerBackdrop } from './SpinnerBackdrop/SpinnerBackdrop';\r\nimport { SpinnerSize } from './Spinner.helpers';\r\nimport styles from './Spinner.module.css';\r\n\r\ninterface Props {\r\n shouldShow?: boolean;\r\n shouldFill?: boolean;\r\n size?: SpinnerSize;\r\n className?: string;\r\n}\r\n\r\nexport const Spinner: FC = ({\r\n shouldShow = true,\r\n shouldFill = true,\r\n size = SpinnerSize.Md,\r\n className = ''\r\n}) => {\r\n useEffect(() => {\r\n if (shouldShow && shouldFill) {\r\n document.body.classList.add(styles.overflowHidden);\r\n } else {\r\n document.body.classList.remove(styles.overflowHidden);\r\n }\r\n\r\n return (): void => {\r\n document.body.classList.remove(styles.overflowHidden);\r\n };\r\n }, [shouldShow, shouldFill]);\r\n\r\n if (!shouldShow) {\r\n return null;\r\n }\r\n\r\n if (shouldFill) {\r\n return createPortal(\r\n \r\n \r\n ,\r\n document.body\r\n );\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Pagination as BSPagination } from 'react-bootstrap';\r\n\r\nimport { Icon } from 'components/Icon/Icon';\r\nimport { getPagesSlice } from './Pagination.helpers';\r\nimport styles from './Paginator.module.css';\r\n\r\ninterface Props {\r\n currentPage: number;\r\n lastPage: number;\r\n visiblePagesCount: number;\r\n disabled: boolean;\r\n onPageChange: (currentPage: number) => void;\r\n}\r\n\r\nexport const Paginator: React.FC = ({\r\n currentPage,\r\n lastPage,\r\n visiblePagesCount,\r\n disabled,\r\n onPageChange\r\n}) => {\r\n const [pagesSlice, setPagesSlice] = React.useState([]);\r\n const [activePage, setActivePage] = React.useState();\r\n\r\n const onPageChangeCb = React.useCallback(\r\n page => (): void => {\r\n if (page !== currentPage) {\r\n onPageChange(page);\r\n }\r\n },\r\n [onPageChange, currentPage]\r\n );\r\n\r\n React.useEffect((): void => {\r\n setPagesSlice(getPagesSlice(currentPage, visiblePagesCount, lastPage));\r\n setActivePage(currentPage);\r\n }, [currentPage, visiblePagesCount, lastPage]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!pagesSlice.includes(1) && ...}\r\n\r\n {pagesSlice.map(item => (\r\n \r\n {item}\r\n \r\n ))}\r\n\r\n {!pagesSlice.includes(lastPage) && (\r\n \r\n ...\r\n \r\n {lastPage}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","function getFirstPageInSlice(\r\n calculatedFirstPage: number,\r\n calculatedLastPage: number,\r\n firstPage: number,\r\n lastPage: number\r\n): number {\r\n if (calculatedFirstPage < firstPage) {\r\n return firstPage;\r\n }\r\n\r\n if (calculatedLastPage > lastPage) {\r\n return calculatedFirstPage - calculatedLastPage + lastPage;\r\n }\r\n\r\n return calculatedFirstPage;\r\n}\r\n\r\nfunction getLastPageInSlice(\r\n calculatedFirstPage: number,\r\n calculatedLastPage: number,\r\n firstPage: number,\r\n lastPage: number\r\n): number {\r\n if (calculatedLastPage > lastPage) {\r\n return lastPage;\r\n }\r\n\r\n if (calculatedFirstPage < firstPage) {\r\n return calculatedLastPage + firstPage - calculatedFirstPage;\r\n }\r\n\r\n return calculatedLastPage;\r\n}\r\n\r\nexport function getPagesSlice(\r\n currentPage: number,\r\n visiblePagesCount: number,\r\n lastPage: number\r\n): number[] {\r\n const pages = Array.from(Array(lastPage), (_, i) => i + 1);\r\n\r\n if (pages.length <= visiblePagesCount) {\r\n return pages;\r\n }\r\n\r\n const FIRST_PAGE = 1;\r\n const stepFromMiddlePagePosition = Math.floor(visiblePagesCount / 2);\r\n const calculatedFirstPage = currentPage - stepFromMiddlePagePosition;\r\n const calculatedLastPage = currentPage + stepFromMiddlePagePosition;\r\n\r\n const firstPageInSlice = getFirstPageInSlice(\r\n calculatedFirstPage,\r\n calculatedLastPage,\r\n FIRST_PAGE,\r\n lastPage\r\n );\r\n\r\n const lastPageInSlice = getLastPageInSlice(\r\n calculatedFirstPage,\r\n calculatedLastPage,\r\n FIRST_PAGE,\r\n lastPage\r\n );\r\n\r\n return pages.slice(firstPageInSlice - 1, lastPageInSlice);\r\n}\r\n","import React from 'react';\r\nimport cs from 'classnames';\r\nimport { noop } from 'lodash';\r\n\r\nimport { Paginator } from './Paginator/Paginator';\r\nimport { PageNumberInput } from './PageNumberInput/PageNumberInput';\r\nimport { PageSizeSelector } from './PageSizeSelector/PageSizeSelector';\r\nimport styles from './Pagination.module.css';\r\n\r\ninterface Props {\r\n total: number;\r\n onPageChange: (currentPage: number) => void;\r\n\r\n className?: string;\r\n pageSize?: number;\r\n currentPage?: number;\r\n withPageSizeSelector?: boolean;\r\n withPageNumberInput?: boolean;\r\n pageSizeOptions?: number[];\r\n onPageSizeChange?: (pageSize: number) => void;\r\n visiblePagesCount?: number;\r\n disabled?: boolean;\r\n reversedMenuList?: boolean;\r\n}\r\n\r\nexport const Pagination: React.FC = ({\r\n total,\r\n onPageChange,\r\n\r\n className = '',\r\n pageSize = 25,\r\n currentPage = 1,\r\n withPageSizeSelector = false,\r\n withPageNumberInput = false,\r\n visiblePagesCount = 5,\r\n disabled = false,\r\n pageSizeOptions = [25, 50, 75, 100],\r\n onPageSizeChange = noop,\r\n reversedMenuList = false\r\n}) => {\r\n const lastPage = Math.ceil(total / pageSize);\r\n\r\n const onPageSizeChangeCb = React.useCallback(\r\n size => {\r\n if (currentPage * size - total >= size) onPageChange(1);\r\n onPageSizeChange(size);\r\n },\r\n [currentPage, total, onPageChange, onPageSizeChange]\r\n );\r\n\r\n return (\r\n
\r\n
\r\n {/* {withPageNumberInput && (\r\n \r\n )} */}\r\n \r\n
\r\n {/* {withPageSizeSelector && (\r\n \r\n )} */}\r\n
\r\n );\r\n};\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAEASURBVHgBnVPbDcIwDLxE/YcRwgQ8JP5hAhgFJihMAGwCE8ACPDagI7AADWdTRNU2LfSk1Gpiny+2Y1CAv2JCM0OKOa3TTYMbPJfF2gyR5P1NLrBLEzNwgTpYbEmyLBNccGWWAX6BKDKYkuhhs+ybymCLIRVNS/tv31i5GOzodEe13J7a0DnJI35ihNHNFgIJ5rbh3g71mEUsRpggbVDABBHq4SizQ6IgjD9rgRzagO2UNh6CDtKFTyeq4IUgxR5twdG2ZowTmXaVDtL/0AwwRt6FjrK+A4/jP6NsRpxSFSH/nGndCCkpZJZ38OUqnstoP7EidT+nKIEUm/XSK+fwAl0nTF6xImM0AAAAAElFTkSuQmCC\"","import React from 'react';\r\nimport { components } from 'react-select';\r\nimport { OptionProps } from 'react-select/src/components/Option';\r\nimport cs from 'classnames';\r\n\r\nimport styles from './OptionFilters.module.css';\r\n\r\nexport function OptionFilters(\r\n props: OptionProps\r\n): JSX.Element {\r\n const { isSelected, isFocused } = props;\r\n return (\r\n \r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/circleCrossFilter.74ecf2b4.svg\";","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport cs from 'classnames';\r\n\r\nimport { reselectUser } from 'store/auth';\r\nimport { Form, Icon, Select } from 'components';\r\nimport { SearchCallback } from '../FiltersControls/FiltersControls.helpers';\r\nimport { OptionFilters } from '../OptionFilters/OptionFilters';\r\nimport styles from './FilterRow.module.css';\r\nimport circleCrossFilter from '../../../../assets/images/circleCrossFilter.svg';\r\n\r\ninterface Option {\r\n value: string;\r\n label: string;\r\n}\r\n\r\ninterface Props {\r\n countries: DTO.Country[];\r\n onCompaniesSearch: SearchCallback>;\r\n onUsersSearch: SearchCallback>;\r\n setFieldValue: (name: string, value: string[]) => void;\r\n noOptionsMessage: () => string;\r\n loadingMessage: () => string;\r\n showFilters: DTO.FilterFields[];\r\n onAdminsSearch?: SearchCallback;\r\n activeRole: number;\r\n onSubscriberEmailSearch: SearchCallback>;\r\n addMoreFilter: Array;\r\n key?: string;\r\n appliedFilter: any;\r\n addFilter: any;\r\n removeFilterRow: (p1: any, p2: any) => void;\r\n setAddMoreFilter: (a1: any) => void;\r\n}\r\n\r\nexport function FilterRow({\r\n onSubscriberEmailSearch,\r\n countries,\r\n onCompaniesSearch,\r\n onUsersSearch,\r\n setFieldValue,\r\n noOptionsMessage,\r\n loadingMessage,\r\n showFilters,\r\n onAdminsSearch,\r\n activeRole,\r\n addMoreFilter,\r\n key,\r\n addFilter,\r\n appliedFilter,\r\n removeFilterRow,\r\n setAddMoreFilter\r\n}: Props): JSX.Element {\r\n const { t } = useTranslation();\r\n const user = useSelector(reselectUser);\r\n\r\n const filterDataMapping = {\r\n 'Admin Name': 'displayName',\r\n 'Admin Email': 'emails',\r\n 'Country': 'countryCode',\r\n 'User Name': 'displayName',\r\n 'Email': 'emails',\r\n 'Company Name': 'legalName',\r\n 'Subscriber Name': 'user',\r\n 'Subscriber Email': 'subscriberEmail'\r\n };\r\n\r\n const [selectedFilter, setSelectedFilter] =\r\n React.useState<{ label: string, value: string }>\r\n (null ||\r\n {\r\n label: Number.isNaN(Number(addFilter)) ? addFilter : t('placeholders.selectFilter'),\r\n value: Number.isNaN(Number(addFilter)) ? addFilter : t('placeholders.selectFilter')\r\n });\r\n const [allSelectedFilter, setAllSelectedFilter] = React.useState([]);\r\n const [filterOptions, setfilterOptions] = React.useState([]);\r\n\r\n const removeFilter = (filterToRemove: any) => {\r\n console.log(addMoreFilter);\r\n addMoreFilter.splice(Number(addFilter) - 1, 1);\r\n setAddMoreFilter(addMoreFilter);\r\n setFieldValue(filterToRemove, []);\r\n };\r\n\r\n const handleCountryChange = React.useCallback(\r\n (): void => setFieldValue('countryCode', []),\r\n [setFieldValue]\r\n );\r\n\r\n React.useEffect((): void => {\r\n setfilterOptions(showFilters.map((filter) => {\r\n return { label: filter, value: filter };\r\n })\r\n );\r\n }, [showFilters, addMoreFilter]);\r\n\r\n const checkSelectedOption = (label: any) => {\r\n return Object.keys(appliedFilter).some(item =>\r\n filterDataMapping[label as keyof typeof filterDataMapping] === item &&\r\n appliedFilter[item]?.length > 0\r\n );\r\n };\r\n\r\n const renderOption = React.useCallback(\r\n ({ label }: Option): JSX.Element => (\r\n \r\n {label}\r\n \r\n
\r\n ),\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [appliedFilter]\r\n );\r\n\r\n const handleFilterChange = React.useCallback(\r\n (filter: Option): void => {\r\n setSelectedFilter(filter);\r\n setAllSelectedFilter([...allSelectedFilter, filter]);\r\n },\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n []\r\n );\r\n\r\n const additionalThemeProps = {\r\n borderRadius: 0,\r\n colors: {\r\n neutral0: '#FFFFFF',\r\n primary25: '#EBF8FD',\r\n primary: '#007CB0'\r\n },\r\n spacing: {\r\n baseUnit: 4,\r\n controlHeight: 4,\r\n menuGutter: 2\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n additionalThemeProps={additionalThemeProps}\r\n className={styles.userFilters}\r\n isClearable={false}\r\n isSearchable={false}\r\n OptionComponent={OptionFilters}\r\n options={filterOptions}\r\n placeholder={t('placeholders.selectFilter')}\r\n renderOption={renderOption}\r\n value={selectedFilter}\r\n withDropdownIndicator={true}\r\n onChange={handleFilterChange}\r\n />\r\n
\r\n
\r\n {\r\n (selectedFilter?.label === 'Admin Name' || selectedFilter?.label === 'User Name')\r\n && (\r\n \r\n )}\r\n {\r\n (selectedFilter?.label === 'Admin Email' || selectedFilter?.label === 'Email')\r\n && (\r\n \r\n )}\r\n {(activeRole !== 1) && (\r\n \r\n {\r\n selectedFilter?.label === 'Country'\r\n && (\r\n \r\n )}\r\n \r\n )}\r\n {user.role !== 'superAdmin' && (\r\n \r\n {\r\n selectedFilter?.label === 'Company Name'\r\n && (\r\n \r\n )}\r\n {\r\n selectedFilter?.label === 'Subscriber Name'\r\n && (\r\n \r\n )}\r\n {\r\n selectedFilter?.label === 'Subscriber Email'\r\n && (\r\n \r\n )}\r\n \r\n )}\r\n
\r\n \r\n\r\n
\r\n );\r\n}\r\n","import React, { useCallback } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport cs from 'classnames';\r\nimport { Button } from 'react-bootstrap';\r\n\r\nimport { Form, Icon, Select } from 'components';\r\nimport { SearchCallback } from './FiltersControls.helpers';\r\nimport styles from './FiltersControls.module.css';\r\nimport { FilterRow } from '../FilterRow/FilterRow';\r\n\r\ninterface Props {\r\n countries: DTO.Country[];\r\n onCompaniesSearch: SearchCallback>;\r\n onUsersSearch: SearchCallback>;\r\n setFieldValue: (name: string, value: string[]) => void;\r\n noOptionsMessage: () => string;\r\n loadingMessage: () => string;\r\n showFilters: DTO.FilterFields[];\r\n onAdminsSearch?: SearchCallback;\r\n countryOptionValue: AP.CountryOption;\r\n statuses: DTO.PlanStatusFilterValue[];\r\n activeRole: number;\r\n onSubscriberEmailSearch: SearchCallback>;\r\n addMoreFilter: Array;\r\n appliedFilters: any;\r\n onReset: () => void;\r\n disableReset: boolean;\r\n removeFilterRow: (p1: any, p2: any) => void;\r\n setAddMoreFilter: (a1: any) => void;\r\n}\r\n\r\nexport function FiltersControls({\r\n onSubscriberEmailSearch,\r\n countries,\r\n onCompaniesSearch,\r\n onUsersSearch,\r\n setFieldValue,\r\n noOptionsMessage,\r\n loadingMessage,\r\n showFilters,\r\n onAdminsSearch,\r\n countryOptionValue,\r\n statuses,\r\n activeRole,\r\n addMoreFilter,\r\n onReset,\r\n disableReset,\r\n appliedFilters,\r\n removeFilterRow,\r\n setAddMoreFilter\r\n}: Props): JSX.Element {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n {t('actions.filters')}\r\n \r\n \r\n {t('actions.resetFilter')}\r\n \r\n
\r\n
\r\n Filter Type\r\n Criteria\r\n
\r\n {addMoreFilter.map((addFilter: any, index: any) => {\r\n return (\r\n \r\n );\r\n })\r\n }\r\n \r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport cs from 'classnames';\r\n\r\nimport { Button, Icon } from 'components';\r\nimport styles from './FiltersActions.module.css';\r\n\r\ninterface Props {\r\n onClose: () => void;\r\n onApply: () => void;\r\n addNewFilter: () => any;\r\n disableFilter: boolean;\r\n}\r\n\r\nexport function FiltersActions({\r\n onClose,\r\n onApply,\r\n addNewFilter,\r\n disableFilter,\r\n}: Props): JSX.Element {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {t('actions.addFilter')}\r\n \r\n
\r\n
\r\n \r\n {t('actions.cancel')}\r\n \r\n \r\n {t('actions.apply')}\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport debounce from 'lodash/debounce';\r\nimport { FormikProps } from 'formik';\r\nimport { useGet, Get } from 'restful-react';\r\n\r\nimport { reselectLocaleCode } from 'store/localize';\r\nimport { selectHttpHeaders, reselectUser } from 'store/auth';\r\nimport { selectProductCode } from 'store/product';\r\nimport { getApiHost, makeQueryString } from 'shared/utils';\r\nimport { SUBMISSION_TYPE } from 'shared/constants/submission.consts';\r\nimport { API_PATH } from 'shared/constants/api.consts';\r\nimport {\r\n AdminContext,\r\n PLAN_STATUS\r\n} from 'features/AdminPage/AdminPageContent/AdminPageContent.helpers';\r\nimport { FiltersControls } from '../FiltersControls/FiltersControls';\r\nimport {\r\n SearchCallback,\r\n User\r\n} from '../FiltersControls/FiltersControls.helpers';\r\nimport { FiltersActions } from '../FiltersActions/FiltersActions';\r\nimport {\r\n CompaniesQuery,\r\n UsersQuery,\r\n FiltersFormProps,\r\n FiltersFormEnhancer,\r\n AdminQuery\r\n} from './FiltersForm.helpers';\r\nimport styles from './FiltersForm.module.css';\r\n\r\n// FiltersFormProps & FormikProps\r\ninterface GenericFilters {\r\n countryCode?: DTO.Country[];\r\n role?: DTO.UserRoles;\r\n // legalName: DTO.Organization[];\r\n // user: User[];\r\n}\r\n\r\nfunction FiltersFormComponent({\r\n value,\r\n values,\r\n appendTo: { current },\r\n onChange,\r\n setFieldValue,\r\n onClose,\r\n showFilters,\r\n fetchAdminCountries,\r\n // fetchSubmissionsCountries,\r\n countryOptionValue,\r\n}: FiltersFormProps & FormikProps): JSX.Element {\r\n const user = useSelector(reselectUser);\r\n const { t } = useTranslation();\r\n const productCode = useSelector(selectProductCode);\r\n const localeCode = useSelector(reselectLocaleCode);\r\n const httpHeaders = useSelector(selectHttpHeaders);\r\n const [usersQuery, setUsersQuery] = React.useState();\r\n const [companiesQuery, setCompaniesQuery] = React.useState();\r\n const [adminQuery, setAdminQuery] = React.useState();\r\n const [addMoreFilter, setAddMoreFilter] = React.useState>([]);\r\n const [disableReset, setDisableReset] = React.useState(true); \r\n /*\r\n * queryParams prop of the restful-react works bad (arrays)\r\n * that's why we use querystring tool\r\n */\r\n const companiesQueryString = makeQueryString(companiesQuery);\r\n const { type } = React.useContext(AdminContext);\r\n\r\n const {\r\n data: adminCountries,\r\n refetch: refetchAdminCountries,\r\n loading: loadingAdminCountries\r\n } = useGet({\r\n path: API_PATH.GET_ADMIN_COUNTRIES(productCode),\r\n requestOptions: () => ({ headers: httpHeaders }),\r\n lazy: true \r\n });\r\n\r\n const planStatus = React.useMemo(() => {\r\n return type === SUBMISSION_TYPE.PENDING\r\n ? [PLAN_STATUS.PENDING]\r\n : [PLAN_STATUS.ACTIVE];\r\n }, [type]);\r\n\r\n const { data: countries } = useGet({\r\n path:\r\n user.role === 'superAdmin' ?\r\n API_PATH.GET_COUNTRIES_ALL(localeCode) :\r\n API_PATH.GET_COUNTRIES_PRODUCT(productCode, localeCode),\r\n requestOptions: () => ({ headers: httpHeaders })\r\n });\r\n\r\n const [statuses, setStatuses] = React.useState([]);\r\n\r\n useEffect(() => {\r\n const arr: any = [];\r\n Object.keys(value).forEach((keyName: any) => {\r\n const filterArr: any = (value[keyName as keyof typeof value]);\r\n if (filterArr?.length > 0) { \r\n if (keyName === 'legalName') {\r\n arr.push('Company Name');\r\n } else if (keyName === 'subscriberEmail') {\r\n arr.push('Subscriber Email');\r\n } else if (keyName === 'countryCode' || keyName === 'countryIds') {\r\n arr.push('Country');\r\n } else if (keyName === 'planStatus') {\r\n arr.push('status');\r\n } else if (keyName === 'user') {\r\n arr.push('Subscriber Name');\r\n } else if (keyName === 'emails') {\r\n arr.push('Admin Email');\r\n } else if (keyName === 'displayName') {\r\n arr.push('Admin Name');\r\n } else {\r\n arr.push(keyName);\r\n }\r\n }\r\n });\r\n setAddMoreFilter([...addMoreFilter, ...arr]);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [value]);\r\n\r\n useEffect(() => {\r\n setDisableReset(!Object.values(values).some(item => item?.length > 0));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [values]);\r\n\r\n const handleOnClose = React.useCallback((): void => onClose(false), [\r\n onClose\r\n ]);\r\n\r\n const handleOnReset = React.useCallback((): void => {\r\n setFieldValue('countryCode', []);\r\n setFieldValue('legalName', []);\r\n setFieldValue('user', []);\r\n setFieldValue('displayName', []);\r\n setFieldValue('emails', []);\r\n setFieldValue('subscriberEmail', []);\r\n setAddMoreFilter([]);\r\n }, [setFieldValue]);\r\n\r\n const handleAddNewFilter = React.useCallback((): any => { \r\n setAddMoreFilter([...addMoreFilter, (addMoreFilter.length + 1).toString()]);\r\n }, [addMoreFilter]);\r\n\r\n const handleOnApply = React.useCallback((): void => onChange(values, true), [\r\n onChange,\r\n values\r\n ]);\r\n\r\n const handleNoOptionsMessage = () => {\r\n return t('admin.grid.nooptions');\r\n };\r\n const handleLoadingMessage = () => {\r\n return `${t('admin.grid.loading')}...`;\r\n };\r\n const handleOnCompaniesSearch = React.useMemo(\r\n () => (\r\n refetch: () => Promise>>\r\n ): SearchCallback> =>\r\n debounce(\r\n (\r\n q: string,\r\n callback: (options: Partial[]) => void\r\n ): void => {\r\n setCompaniesQuery({\r\n companyName: q,\r\n countryList: values.countryCode\r\n ? values.countryCode.map(({ code }) => code)\r\n : [],\r\n planStatus: `${planStatus}`\r\n });\r\n refetch().then(({ items }) => callback(items));\r\n },\r\n 300\r\n ),\r\n [values.countryCode, planStatus]\r\n );\r\n\r\n const handleOnSubscriberEmailSearch = React.useMemo(\r\n () => (\r\n refetch: () => Promise>\r\n ): SearchCallback> =>\r\n debounce(\r\n (q: string, callback: (options: Partial[]) => void): void => {\r\n setUsersQuery({\r\n UserName: q,\r\n planStatus: `${planStatus}`\r\n });\r\n\r\n refetch()\r\n .then(({ items }): User[] =>\r\n items.map(\r\n (item): User => ({\r\n ...item,\r\n email: item.email\r\n })\r\n )\r\n )\r\n .then(items => callback(items));\r\n },\r\n 300\r\n ),\r\n [planStatus]\r\n );\r\n\r\n const handleOnUsersSearch = React.useMemo(\r\n () => (\r\n refetch: () => Promise>\r\n ): SearchCallback> =>\r\n debounce(\r\n (q: string, callback: (options: Partial[]) => void): void => {\r\n if(showFilters.includes('Subscriber Name')) {\r\n setUsersQuery({\r\n UserName: q,\r\n planStatus: `${planStatus}`\r\n });\r\n } else {\r\n setUsersQuery({\r\n UserName: q,\r\n RoleId: user.role === 'superAdmin' ? value?.role : 3\r\n });\r\n }\r\n\r\n refetch()\r\n .then(({ items }): User[] =>\r\n items.map(\r\n (item): User => ({\r\n ...item,\r\n fullName: `${item.firstName} ${item.lastName}`\r\n })\r\n )\r\n )\r\n .then(items => callback(items));\r\n },\r\n 300\r\n ),\r\n [value?.role, planStatus, showFilters, user.role]\r\n );\r\n \r\n const handleOnAdminEmailSearch = React.useMemo(\r\n () => (refetch: () => any): SearchCallback =>\r\n debounce(\r\n (q: string, callback: (options: DTO.UserEmail[]) => void): void => {\r\n setAdminQuery({ Email: q.trim(), RoleId: user.role === 'superAdmin' ? value?.role : 3 });\r\n refetch().then((items: DTO.UserEmail[]) => {\r\n return callback(items);\r\n });\r\n },\r\n 300\r\n ),\r\n [value?.role, user.role]\r\n );\r\n\r\n const getUserFilterQueryPath = () => {\r\n let path = '';\r\n if (showFilters.includes('Subscriber Name')) {\r\n path = API_PATH.GET_USER_FILTER_QUERY(productCode);\r\n } else if (user.role === 'superAdmin') {\r\n path = API_PATH.GET_USER_FILTER_QUERY_ALL();\r\n } else {\r\n path = API_PATH.GET_USER_FILTER_QUERY_PRODUCT(productCode);\r\n }\r\n return path;\r\n };\r\n\r\n const form = (\r\n >, Error, CompaniesQuery>\r\n base={`${getApiHost('account')}`}\r\n lazy={true}\r\n path={`${API_PATH.GET_COMPANY_FILTER_QUERY(\r\n productCode\r\n )}?${companiesQueryString}`}\r\n requestOptions={() => ({ headers: httpHeaders })}\r\n >\r\n {(\r\n _companies,\r\n _companiesMeta,\r\n { refetch: loadCompanies }\r\n ): JSX.Element => (\r\n , Error, UsersQuery>\r\n base={`${getApiHost('account')}`}\r\n lazy={true}\r\n path={getUserFilterQueryPath()}\r\n queryParams={usersQuery}\r\n requestOptions={() => ({ headers: httpHeaders })}\r\n >\r\n {(_users, _usersMeta, { refetch: loadUsers }): JSX.Element => (\r\n , Error, AdminQuery>\r\n base={`${getApiHost('account')}`}\r\n lazy={true}\r\n path={user.role === 'superAdmin' ?\r\n API_PATH.GET_ADMIN_FILTER_QUERY_ALL() :\r\n API_PATH.GET_ADMIN_FILTER_QUERY_PRODUCT(productCode)}\r\n queryParams={adminQuery}\r\n requestOptions={() => ({ headers: httpHeaders })}\r\n >\r\n {(_admins, _adminMeta, { refetch: loadAdmins }): JSX.Element => (\r\n
\r\n \r\n \r\n
\r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n\r\n return current ? createPortal(form, current) : null;\r\n};\r\n\r\nexport const FiltersForm = FiltersFormEnhancer()(FiltersFormComponent);\r\n","import React from 'react';\r\nimport { withFormik } from 'formik';\r\n\r\nimport { noop } from 'shared/utils';\r\n\r\nexport interface CompaniesQuery {\r\n countryList: string[];\r\n companyName: string;\r\n planStatus: string;\r\n}\r\n\r\nexport interface UsersQuery {\r\n UserName: string;\r\n RoleId?: number;\r\n planStatus?: string;\r\n}\r\nexport interface AdminQuery {\r\n Email: string;\r\n RoleId: number;\r\n}\r\n\r\nexport interface FiltersFormProps {\r\n value: T;\r\n appendTo: React.RefObject;\r\n onChange: (value: T, toggle?: boolean) => void;\r\n onClose?: (toggle: boolean) => void;\r\n showFilters: DTO.FilterFields[];\r\n countryOptionValue: AP.CountryOption;\r\n fetchAdminCountries?: boolean;\r\n fetchSubmissionsCountries?: boolean;\r\n}\r\n\r\nexport function FiltersFormEnhancer() {\r\n return withFormik<\r\n FiltersFormProps,\r\n T\r\n >({\r\n mapPropsToValues: ({ value }) => value,\r\n handleSubmit: noop\r\n });\r\n}\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { Button, Icon, Badge } from 'components';\r\nimport { FiltersForm } from './FiltersForm/FiltersForm';\r\nimport styles from './SubmissionsFilters.module.css';\r\n\r\ninterface Props {\r\n appliedFilters: number;\r\n filters: any;\r\n onChange: (filters: T) => void;\r\n appendTo: React.RefObject;\r\n onClose?: (toggle: boolean) => void;\r\n countryOptionValue: AP.CountryOption;\r\n fetchAdminCountries?: boolean;\r\n showFilters: DTO.FilterFields[];\r\n onApply: VoidFunction;\r\n}\r\n\r\nexport function SubmissionsFilters({\r\n appliedFilters,\r\n filters,\r\n onChange,\r\n appendTo,\r\n onApply,\r\n showFilters,\r\n fetchAdminCountries,\r\n countryOptionValue,\r\n}: Props): JSX.Element {\r\n const { t } = useTranslation();\r\n const [opened, setOpened] = React.useState(false);\r\n\r\n const handleOnChange = React.useCallback(\r\n (updatedValue: any, toggle?: boolean): void => {\r\n onChange({ ...filters, ...updatedValue });\r\n if (toggle) {\r\n setOpened((prev: boolean) => !prev);\r\n }\r\n },\r\n [filters, onChange]\r\n );\r\n\r\n const handleOnclose = React.useCallback((toggle: boolean): void => {\r\n setOpened(toggle);\r\n }, []);\r\n\r\n React.useEffect(()=>{\r\n setOpened(false);\r\n }, [filters.role]); \r\n\r\n const panel = opened ? (\r\n \r\n ) : null;\r\n\r\n return (\r\n \r\n setOpened((prev: boolean) => !prev),\r\n []\r\n )}\r\n >\r\n {appliedFilters > 0 && (\r\n \r\n {appliedFilters}\r\n \r\n )}\r\n \r\n {t('actions.filters')}\r\n \r\n {panel}\r\n \r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/circleCrossOmnia.a3ee79a6.svg\";","import React, { useCallback } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport cs from 'classnames';\r\nimport { Badge, Button } from 'react-bootstrap';\r\n\r\nimport { reselectUser } from 'store/auth';\r\nimport { Form, Icon, Select } from 'components';\r\nimport styles from './FilterBadge.module.css';\r\nimport circleCrossOmnia from '../../../../assets/images/circleCrossOmnia.svg';\r\n\r\ninterface Props {\r\n filterArray: Array;\r\n removeFilter: (key: any, item: any) => void;\r\n}\r\n\r\nexport function FilterBadge({\r\n filterArray,\r\n removeFilter\r\n}: Props): JSX.Element {\r\n const { t } = useTranslation();\r\n const user = useSelector(reselectUser);\r\n\r\n\r\n return (\r\n
\r\n {filterArray.map((eachFilter: any, index: number) => {\r\n return (\r\n \r\n {eachFilter?.value.length > 0 &&\r\n (eachFilter?.value.map((filterItem: any, i: any) => {\r\n return (\r\n \r\n \r\n {filterItem}\r\n \r\n \r\n );\r\n })\r\n )\r\n }\r\n \r\n );\r\n })}\r\n
\r\n );\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"DropdownIndicator_container__fhmzG\",\"icon\":\"DropdownIndicator_icon__3aDm3\",\"iconFocused\":\"DropdownIndicator_iconFocused__1SlFE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"control\":\"Control_control__3AkK1\",\"controlFocused\":\"Control_controlFocused__1TVxM\",\"controlMultiple\":\"Control_controlMultiple__1MNzy\",\"dropdownIndicatorIcon\":\"Control_dropdownIndicatorIcon__1DNCX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"MultiValue_container__3Z49k\",\"content\":\"MultiValue_content__mjNym\",\"remove\":\"MultiValue_remove__3_bwO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Radio_container__3Kg0D\",\"check\":\"Radio_check__2D3nV\",\"label\":\"Radio_label__35PHX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"customOption\":\"OptionFilters_customOption__Z-ieL\",\"selected\":\"OptionFilters_selected__3tIrC\",\"focused\":\"OptionFilters_focused__3JYhx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"customOption\":\"OptionUserProduct_customOption__2FgHa\",\"selected\":\"OptionUserProduct_selected__3OqWH\",\"focused\":\"OptionUserProduct_focused__3IaAR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"AdminLayout_wrapper__3AqHq\",\"footer_wrapper\":\"AdminLayout_footer_wrapper__3r2Mu\",\"container\":\"AdminLayout_container__3DAwq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"customOption\":\"OptionUserProduct_customOption__35BOF\",\"selected\":\"OptionUserProduct_selected__3Grh_\",\"focused\":\"OptionUserProduct_focused__3OXsK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SubmissionPlanStatus_container__3s_mi\",\"approved\":\"SubmissionPlanStatus_approved__8i5kk\",\"status-text-approved\":\"SubmissionPlanStatus_status-text-approved__1mCq_\",\"active\":\"SubmissionPlanStatus_active__1pLmx\",\"status-text-active\":\"SubmissionPlanStatus_status-text-active__1KJoe\",\"rejected\":\"SubmissionPlanStatus_rejected__31Dyo\",\"status-text-rejected\":\"SubmissionPlanStatus_status-text-rejected__1Yvwg\",\"cancelled\":\"SubmissionPlanStatus_cancelled__2qOX9\",\"unsubscribed\":\"SubmissionPlanStatus_unsubscribed__Sx4ms\",\"status-text-cancelled\":\"SubmissionPlanStatus_status-text-cancelled__1ouUn\",\"pendingreactivation\":\"SubmissionPlanStatus_pendingreactivation__3BSPZ\",\"status-text-pendingreactivation\":\"SubmissionPlanStatus_status-text-pendingreactivation__2EtAg\",\"pendingrenewal\":\"SubmissionPlanStatus_pendingrenewal__3IGD2\",\"status-text-pendingrenewal\":\"SubmissionPlanStatus_status-text-pendingrenewal__14KwS\",\"pendingactivation\":\"SubmissionPlanStatus_pendingactivation__RkVF4\",\"status-text-pendingactivation\":\"SubmissionPlanStatus_status-text-pendingactivation__1XVnX\",\"pending\":\"SubmissionPlanStatus_pending__y-YMz\",\"status-text-pending\":\"SubmissionPlanStatus_status-text-pending__1AvsZ\",\"expired\":\"SubmissionPlanStatus_expired__3fdnx\",\"status-text-expired\":\"SubmissionPlanStatus_status-text-expired__3SIJw\",\"inactive\":\"SubmissionPlanStatus_inactive__2sTra\",\"status-text-inactive\":\"SubmissionPlanStatus_status-text-inactive__1Dn-z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"submission\":\"DetailedInformationDialog_submission__1ANVb\",\"detailDialogGrid\":\"DetailedInformationDialog_detailDialogGrid__a_l-2\",\"detailDialog\":\"DetailedInformationDialog_detailDialog__23B0i\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectedFilter\":\"FilterBadge_selectedFilter__88Wia\",\"badge\":\"FilterBadge_badge__190-w\",\"removeFilterBtn\":\"FilterBadge_removeFilterBtn__3st6-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"toggle\":\"UserMenuToggle_toggle__sOoZL\",\"toggleBox\":\"UserMenuToggle_toggleBox__2VRhz\",\"toggleIcon\":\"UserMenuToggle_toggleIcon__1Y7Ny\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonPanel\":\"StepActionsPanel_buttonPanel__3InOF\",\"leftArrow\":\"StepActionsPanel_leftArrow__31zly\",\"rightAlignment\":\"StepActionsPanel_rightAlignment__RYNam\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"customOption\":\"OptionAdminAction_customOption__3vbJt\",\"selected\":\"OptionAdminAction_selected__2HWW6\",\"focused\":\"OptionAdminAction_focused__1LcIM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Pagination_container__1VRaZ\",\"paginator\":\"Pagination_paginator__2VeR3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"toggleButton\":\"RadioButtons_toggleButton__3vM6O\",\"normal\":\"RadioButtons_normal__synBM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"DropdownIndicator_icon__maIY6\",\"focused\":\"DropdownIndicator_focused__YLePA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"toggle\":\"SubmissionsFilters_toggle__aT5jU\",\"badge\":\"SubmissionsFilters_badge__157sb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"NoGridData_container__2ZYVR\",\"text\":\"NoGridData_text__27uDB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"RegistrationSubmissionDialog_container__1_k4p\",\"symbolsCounter\":\"RegistrationSubmissionDialog_symbolsCounter__1eC4G\",\"cancelAction\":\"RegistrationSubmissionDialog_cancelAction__1aAFJ\",\"continueAction\":\"RegistrationSubmissionDialog_continueAction__1KUNo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"RegistrationCommentDialog_container__2XgKE\",\"icon\":\"RegistrationCommentDialog_icon__2IVUF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"CompanyEditDialog_container__Kb6hE\",\"symbolsCounter\":\"CompanyEditDialog_symbolsCounter__2IWMp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"ThemedButton_button__1QySP\",\"disabled\":\"ThemedButton_disabled__3PKHw\",\"filled\":\"ThemedButton_filled__pGwrT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"CancelSubmissionDialog_container__2P49P\",\"symbolsCounter\":\"CancelSubmissionDialog_symbolsCounter__enqvy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"BaseLayout_wrapper__2wzRV\",\"content\":\"BaseLayout_content__tupfi\"};","export default __webpack_public_path__ + \"static/media/userIconBlack.17fdb13c.svg\";","import React from 'react';\r\nimport cs from 'classnames';\r\n\r\nimport { Footer } from 'features/Footer/Footer';\r\nimport styles from './BaseLayout.module.css';\r\n\r\ninterface Props {\r\n className?: string;\r\n}\r\n\r\nexport const BaseLayout: React.FC> = ({\r\n children,\r\n className = ''\r\n}) => (\r\n \r\n
\r\n
{children}
\r\n
\r\n
\r\n \r\n);\r\n","import React from 'react';\r\nimport './AlertMessage.css';\r\n\r\ninterface AlertMessageProps {\r\n message: string;\r\n type: string;\r\n}\r\n\r\nexport const AlertMessage: React.FC<\r\n React.PropsWithChildren\r\n> = ({ message, type }: AlertMessageProps) => {\r\n\r\n const icon: any = {\r\n error: 'icon-error-special',\r\n warning:'icon-exclamation-mark-special'\r\n };\r\n \r\n return (\r\n
\r\n \r\n {message}\r\n
\r\n );\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"CardHeader_title__1y_ri\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Placeholder_container__XgVNR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SingleValue_container__3_deI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Menu_container__16hAO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"FiltersForm_container__387gu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AdminPageHeader_container__1dJxH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Submission_container__2SHCO\",\"plansGrid\":\"Submission_plansGrid__1CORF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"submission\":\"SubmissionsTabs_submission__28vH9\",\"count\":\"SubmissionsTabs_count__gMOTw\",\"active\":\"SubmissionsTabs_active__14Q_B\"};","export const PRODUCT_ROLE: Record = {\r\n SUPER_ADMIN: 'superAdmin',\r\n PRODUCT_GROUP_ADMIN: 'productGroupAdmin',\r\n PRODUCT_ADMIN: 'productAdmin',\r\n MEMBER_FIRM_ADMIN: 'memberFirmAdmin',\r\n COUNTRY_ADMIN: 'countryAdmin',\r\n WHITELISTED_INTERNAL_USER: 'whitelistedInternalUser'\r\n};\r\n\r\nexport const PRODUCT_CODE = {\r\n IBR_CODE: 'ibr'\r\n};\r\n","import { actionsEn } from './actions.en';\r\nimport { adminEn } from './admin.en';\r\nimport { appEn } from './app.en';\r\nimport { commonEn } from './common.en';\r\nimport { dialogsEn } from './dialogs.en';\r\nimport { formsEn } from './forms.en';\r\nimport { pagesEn } from './pages.en';\r\nimport { placeholdersEn } from './placeholders.en';\r\nimport { registrationEn } from './registration.en';\r\nimport { validationEn } from './validation.en';\r\nimport { homepageEn } from './homepage.en';\r\nimport { onboardingEn } from './onboarding.en';\r\n\r\nexport const en = {\r\n empty: '',\r\n actions: actionsEn,\r\n admin: adminEn,\r\n app: appEn,\r\n common: commonEn,\r\n dialogs: dialogsEn,\r\n forms: formsEn,\r\n registration: registrationEn,\r\n pages: pagesEn,\r\n placeholders: placeholdersEn,\r\n validation: validationEn,\r\n homepage: homepageEn,\r\n onboarding: onboardingEn,\r\n};\r\n","export const actionsEn = {\r\n profileSettings: 'Profile Settings',\r\n selectLanguage: 'Select language',\r\n settings: 'Settings',\r\n register: 'Register',\r\n logIn: 'Log in',\r\n cancel: 'Cancel',\r\n canceltext: 'Are you sure you want to cancel out of this process?',\r\n confirm: 'Confirm',\r\n confirmcancel: 'Confirm Cancellation',\r\n continue: 'Continue',\r\n back: 'Back',\r\n next: 'Next',\r\n previousStep: 'Previous Step',\r\n submit: 'Submit',\r\n excelExport: 'Export to Excel',\r\n csvExport: 'Export to CSV',\r\n signOut: 'Sign Out',\r\n logOut: 'Log out',\r\n no: 'No',\r\n yes: 'Yes',\r\n ok: 'Ok',\r\n sortedBy: 'Sorted by',\r\n close: 'Close',\r\n clearAll: 'Clear All',\r\n apply: 'Apply',\r\n filters: 'Filters',\r\n No: 'NO',\r\n Yes: 'YES',\r\n logOutWarning: 'Logout warning',\r\n logOutWarningMsg: 'You will be logged out in',\r\n logOutWarningNote: 'Are you sure you want to log off?',\r\n remove: \"Remove\",\r\n save: \"Save\",\r\n addFilter: 'Add Filter',\r\n resetFilter: 'Reset FIlter'\r\n};\r\n","import { PRODUCT_ROLE } from 'shared/constants/product.consts';\r\n\r\nexport const adminEn = {\r\n first: {\r\n selectLanguage: 'Please select your preferred language',\r\n selectDateFormat: 'Please select your preferred date format',\r\n selectNumberFormat: 'Please select your preferred number format',\r\n changePreference:\r\n 'You may change your preferences any time in your user profile once logged into the application.'\r\n },\r\ntabs:{\r\n submission:'Submissions',\r\n admin: 'Admin'\r\n},\r\n submission: {\r\n pending: 'Pending Submissions',\r\n processed: 'Processed Submissions'\r\n },\r\n grid: {\r\n id: 'ID',\r\n submissionDetails: 'Submission Details',\r\n country: 'Country',\r\n companyName: 'Company Name',\r\n subscriberName: 'Subscriber Name',\r\n subscriberEmail: 'Subscriber Email',\r\n submissionDate: 'Submission Date',\r\n noData: 'There are no registrations to display at this time',\r\n noResults: 'We could not find any matches',\r\n aruser: 'Add/Remove User',\r\n nooptions: 'No options',\r\n loading: 'Loading',\r\n editCompanyName: 'Edit Company Name',\r\n confirmEdit: 'Confirm Edit',\r\n cancelEdit: 'Cancel Edit',\r\n hiddencontent: '',\r\n adminEmail: \"Email\",\r\n adminName: 'User Name',\r\n retentionYear: 'Retention Years',\r\n tenantRetentionYearWarning: 'The Retention year has already been set by the Product Admin',\r\n retentionValidationMsg: 'Only natural numbers are allowed. Zeroes, decimal values, alphabets etc., are not allowed',\r\n lastEdited: 'Last Edited'\r\n },\r\n plans: {\r\n names: {\r\n BlackScholes: 'Black-Scholes',\r\n MonteCarlo: 'Monte Carlo',\r\n Binomial: 'Binomial',\r\n TSRMonitoring: 'TSR Monitoring'\r\n },\r\n statuses: {\r\n approved: 'Approved',\r\n rejected: 'Rejected',\r\n pending: 'Pending',\r\n expired: 'Expired',\r\n active: 'Active',\r\n inactive: 'Inactive',\r\n cancelled: 'Cancelled',\r\n pendingreactivation: 'Pending Re-Activation',\r\n pendingrenewal: 'Pending Renewal',\r\n unsubscribed: 'Unsubscribed',\r\n pendingactivation: 'Pending Activation'\r\n },\r\n plan: 'Plan',\r\n licenses: 'Licenses',\r\n alicenses: 'Available Licenses',\r\n plicenses: 'Purchased Licenses',\r\n status: 'Status',\r\n reviewedBy: 'Reviewed By',\r\n date: 'Approval/Rejection Date',\r\n duration: 'Duration',\r\n reject: 'Reject',\r\n approve: 'Approve',\r\n rejectAll: 'Reject All',\r\n approveAll: 'Approve All',\r\n checkPlans: 'Check all plans to submit',\r\n submit: 'Submit',\r\n check: 'Check all plans to submit',\r\n noEndDate: 'No End Date',\r\n month: 'Month',\r\n months: 'Months',\r\n role: 'Role',\r\n updateSubscription: \"Manage Subscription\",\r\n select: 'Select Plan',\r\n selectPlanTo: 'Select Plan(s) to',\r\n approveMessage: 'Are you sure you wish to Approve this Renewal?',\r\n rejectMesaage: 'Are you sure you wish to Reject this Renewal?',\r\n changePlanMessage: 'Are you sure you wish to make changes to the selected plans?',\r\n renewal: 'Renewal',\r\n reactivation: 'Re-activation',\r\n activate: 'Activate',\r\n confirmation: 'Confirmation'\r\n },\r\n role: {\r\n [PRODUCT_ROLE.SUPER_ADMIN]: 'Tenant Admin',\r\n [PRODUCT_ROLE.COUNTRY_ADMIN]: 'Country Admin',\r\n [PRODUCT_ROLE.MEMBER_FIRM_ADMIN]: 'Member Firm Admin',\r\n [PRODUCT_ROLE.PRODUCT_ADMIN]: 'Product Admin',\r\n [PRODUCT_ROLE.PRODUCT_GROUP_ADMIN]: 'Product Group Admin',\r\n [PRODUCT_ROLE.WHITELISTED_INTERNAL_USER]: 'Whitelisted Internal User'\r\n },\r\n accessDenied: {\r\n title: 'No access',\r\n message: 'You do not have permission to access this page ',\r\n contactAdmin: 'Please contact ',\r\n support: 'Support'\r\n },\r\n month: {\r\n january: 'January',\r\n february: 'February',\r\n march: 'March',\r\n april: 'April',\r\n may: 'May',\r\n june: 'June',\r\n july: 'July',\r\n august: 'August',\r\n september: 'September',\r\n october: 'October',\r\n november: 'November',\r\n december: 'December',\r\n jan: 'Jan',\r\n feb: 'Feb',\r\n mar: 'Mar',\r\n apr: 'Apr',\r\n ma: 'May',\r\n jun: 'Jun',\r\n jul: 'Jul',\r\n aug: 'Aug',\r\n sep: 'Sep',\r\n oct: 'Oct',\r\n nov: 'Nov',\r\n dec: 'Dec'\r\n },\r\n sidebar: {\r\n activeText:\r\n 'You can always remove access from this subscription for added users',\r\n disableText: 'Add/Remove users is disabled for this product'\r\n },\r\n adduser: {\r\n add: 'ADD',\r\n addUsers: 'ADD USERS',\r\n button: 'ADD USER',\r\n buttonAddUser: 'Add User',\r\n buttonMul: 'ADD MULTIPLE USERS',\r\n cancel: 'CANCEL',\r\n deloittemail: 'cannot be Deloitte email',\r\n downloadtemplate: 'Download Template',\r\n // notes: 'Please note this will take effect within 24 hours.',\r\n nouser: 'There are no additional users in this Subscription for now',\r\n primary: \"Primary user\",\r\n remove: 'Are you sure you would like to',\r\n removeaccess: 'access to this Subscription for',\r\n removeb: 'remove',\r\n submission: 'User Management',\r\n multipleUser: 'Add Multiple Users',\r\n dragandDrop: 'Drag and drop a file here or',\r\n maxFileSize: 'Maximum 10 MB and .xlsx file only',\r\n maxFileSizeError: 'File size exceeds',\r\n unSupportedFile: 'Unsupported file type',\r\n somethingWentWrong: 'Something went wrong',\r\n fileUploadFailed: 'File upload failed',\r\n browse: 'Browse',\r\n downloadTemplate: 'DOWNLOAD TEMPLATE',\r\n guidance: 'Guidance',\r\n guidanceText: 'You can always remove access from this subscription for added users', \r\n replaceText: {\r\n primaryUser: \"Are you sure you want to replace existing primary user\",\r\n with: \"with\",\r\n }\r\n },\r\n onboarding: {\r\n manage: 'Manage Admins',\r\n addAdmin: 'Add Admin',\r\n adminTypes: {\r\n all: 'All',\r\n tenant: 'Tenant',\r\n country: 'Country',\r\n product: 'Product',\r\n memberFirm: 'Member Firm',\r\n productGroup: 'Product Group',\r\n whitelistedInternalUser: \"Whitelisted Internal User\"\r\n },\r\n \r\n adminCreation: {\r\n role: 'Role',\r\n adminRole: 'Admin Role',\r\n email: 'Email',\r\n comments: 'Comments',\r\n exists: 'A user with this email already exists.',\r\n country: 'A user with this email already exists for -',\r\n invalidMemberFirmUser: 'The user needs to be from the same member firm/country',\r\n application: 'Application',\r\n memberFirm: 'Member Firm',\r\n addAdmin: 'Add Admin',\r\n cancel: 'Cancel',\r\n item: 'Select Item',\r\n selectEmail: 'Enter Email',\r\n selectApplication: 'Choose Application',\r\n selectRole: 'Select Role',\r\n info: 'User Information',\r\n toastText: {\r\n 1: 'Tenant Admin has been successfully added',\r\n 2: 'Product Admin has been successfully added',\r\n 3: 'Product Admin has been successfully added',\r\n 7: 'Whitelisted Internal User has been successfully added',\r\n deleteAdminSuccess: 'Admin deleted successfully',\r\n deleteWhitelisteUserSuccess: 'Whitelisted Internal User deleted successfully',\r\n deleteAdminErrorUnautorized: 'Unauthorized delete admin action'\r\n },\r\n close: 'CLOSE',\r\n roles: {\r\n TenantAdmin: 'Tenant Admin',\r\n Productgroupadmin: 'Product Group Admin',\r\n ProductAdmin: 'Product Admin',\r\n Memberfirmadmin: 'Member Firm Admin',\r\n Countryadmin: 'Country Admin',\r\n User: 'User',\r\n WhitelistedInternalUser: 'Whitelisted Internal User'\r\n },\r\n },\r\n retentionSaveSuccessMsg: 'Retention Configurations are saved successfully',\r\n\r\n }\r\n};\r\n\r\n","export const appEn = {\r\n name: 'Assurance Products',\r\n selectlanguage: 'Select Language',\r\n rights: 'Deloitte. All rights reserved. See', \r\n footerCopyright: '©{{year}}. For information, contact Deloitte Global. See <0>Acceptable Use Policy, <1>Privacy, <2>View Cookies and <3>Notices for more information.',\r\n footerCopyrightShort: '©{{year}}. For information, contact Deloitte Global. See <0>Privacy, <1>View Cookies and <2>Notices for more information.',\r\n footerCopyrightMIP: '©{{year}}. For information, contact Deloitte Global. See <0>Acceptable Use Policy, <1>Privacy, <2>View Cookies and <3>Notices for more information.',\r\n footerCopyrightMIPShort: '©{{year}}. For information, contact Deloitte Global. See <0>Privacy, <1>View Cookies and <2>Notices for more information.',\r\n footerCopyrightSBP: '©{{year}}. For information, contact Deloitte Global. See <0>Acceptable Use Policy, <1>Privacy, <2>View Cookies and <3>Notices for more information.',\r\n footerCopyrightDRA: '©{{year}}. For information, contact Deloitte Global. See <0>Acceptable Use Policy, <1>Privacy, <2>View Cookies and <3>Notices for more information.',\r\n footerCopyrightDRAShort: '©{{year}}. For information, contact Deloitte Global. See <0>Privacy, <1>View Cookies and <2>Notices for more information.',\r\n footerCopyrightIBR: '©{{year}}. For information, contact Deloitte Global. See <0>Privacy, <1>View Cookies and <2>Notices for more information.',\r\n footerCopyrightSBPShort: '©{{year}}. For information, contact Deloitte Global. See <0>Privacy, <1>View Cookies and <2>Notices for more information.',\r\n footerDocumentLinks:\r\n 'See <1>Terms of Use, <3>Privacy and <5>Notices for more information.',\r\n copyright: 'Deloitte. All rights reserved.',\r\n footer: 'Deloitte refers to one or more of Deloitte Touche Tohmatsu Limited (“DTTL”), its global network of member firms, and their related entities (collectively, the “Deloitte organization”). DTTL (also referred to as “Deloitte Global”) and each of its member firms and related entities are legally separate and independent entities, which cannot obligate or bind each other in respect of third parties. DTTL and each DTTL member firm and related entity is liable only for its own acts and omissions, and not those of each other. DTTL does not provide services to clients. Please see <1><0>www.deloitte.com/about to learn more.',\r\n footerParaTwo:\r\n 'None of the Deloitte organization shall be responsible for any loss whatsoever sustained by any person who relies on this communication. Deloitte is a leading global provider of audit and assurance, consulting, financial advisory, risk advisory, tax and related services. Our network of member firms in more than 150 countries and territories serves four out of five Fortune Global 500® companies. Learn how Deloitte’s approximately 312,000 people make an impact that matters at <1><0>www.deloitte.com.',\r\n footerParaThree:\r\n 'This communication contains general information only, and none of Deloitte Touche Tohmatsu Limited (“DTTL”), its global network of member firms or their related entities (collectively, the “Deloitte organization”) is, by means of this communication, rendering professional advice or services. Before making any decision or taking any action that may affect your finances or your business, you should consult a qualified professional adviser.',\r\n footerParaFour:\r\n 'No representations, warranties or undertakings (express or implied) are given as to the accuracy or completeness of the information in this communication, and none of DTTL, its member firms, related entities, employees or agents shall be liable or responsible for any loss or damage whatsoever arising directly or indirectly in connection with any person relying on this communication. DTTL and each of its member firms, and their related entities, are legally separate and independent entities.',\r\n omnia:\r\n 'OMNIA' \r\n};\r\n","export const commonEn = {\r\n step: 'Step {{step}}',\r\n page: 'Page',\r\n of: 'of',\r\n all: 'All',\r\n homepage: 'home page'\r\n};\r\n","export const dialogsEn = {\r\n detailedInformation: 'Detailed Information',\r\n registrationComment: 'Registration comment',\r\n processRegistration: 'Process Registration',\r\n termsofuse:'Terms of Use',\r\n termsofusesub:'Select the Terms of Use to view:',\r\n updateCompanyName: 'Update Company Name',\r\n cancelDialogItems: {\r\n title: 'Are you sure you wish to cancel the selected plan(s)?',\r\n notes: 'Cancellation Notes',\r\n placeholder: 'comments',\r\n actions: {\r\n cancel: 'CANCEL',\r\n cancelPlan: 'CANCEL PLAN'\r\n },\r\n parts: {\r\n goingToCancel: 'You are going to cancel',\r\n plans: 'plan(s)'\r\n }\r\n },\r\n minLicenseWarning: 'Available License cannot go below ‘0’.',\r\n minTokenLimit: 'Token Limit',\r\n maxLicenseWarning: 'The count of Available License should not exceed more than',\r\n exceededTokenLimit: 'Exceeded Token Limit',\r\n addLicense: 'Add License',\r\n purchasedLicenseZero: 'For one or all the Selected plans, the Purchased License is ‘0’. Please increment the count to proceed further.',\r\n requestedLicenseZero: 'For one or all the Selected plans, the Requested License is ‘0’. Please increment the count to proceed further.',\r\n availableLicenseZero: 'For one or all the Selected plans, the Available License is ‘0’. The plan will move to inactive state. Are you sure you want to proceed further ?',\r\n configureSettings: 'Configure Settings',\r\n retentionFailureMsg: {\r\n title: 'Retention Date Alert',\r\n message: `Retention Date should be more than 30 days from today's date to trigger`\r\n },\r\n updateManageSubscription:\r\n {\r\n title: 'Select Action',\r\n message: 'To proceed manage your plans please select action '\r\n }\r\n};\r\n","export const formsEn = {\r\n email: 'Email',\r\n emailAddress: 'Email Address',\r\n firstName: 'First Name',\r\n lastName: 'Last Name',\r\n companyFullLegalName: 'Company Full Legal Name',\r\n globalParentFullLegalNameOptional: 'Global Parent Full Legal Name (optional)',\r\n departmentOptional: 'Department (optional)',\r\n address: 'Address',\r\n townCity: 'Town/City',\r\n stateProvinceCounty: 'State/Province/County',\r\n zipPostalCode: 'Zip/Postal Code',\r\n isDeloitteAuditClient: 'Are you a Deloitte Audit Client?',\r\n yes: 'Yes',\r\n no: 'No',\r\n dk: \"I don't know\",\r\n referralName: 'Referral Name',\r\n referralEmail: 'Referral Email',\r\n accountInformation: 'Account Information',\r\n userInformation: 'User Information',\r\n privacyStatement: 'Privacy Statement | Deloitte',\r\n referralInformation: 'Referral Information',\r\n selectOption: 'Select option',\r\n termsOfUseConfirmation: 'I have read and accept the Terms of Use.',\r\n acceptableUseOfPolicyConfirmation: 'I have read and accept the Acceptable Use Policy.',\r\n checkboxLabel: 'I have read and accept the Privacy Policy.',\r\n registrationSubmission: {\r\n text:\r\n 'Are you sure you wish to process this registration? To proceed please leave a mandatory comment.',\r\n commentLabel: 'Comments',\r\n commentPlaceholder: 'Leave your comment'\r\n },\r\n updateCompany: {\r\n text:\r\n 'Are you sure you wish to update the Company Name? By doing so, please note the updated changes and confidential information of this Company is exposed to a greater number of Reports and to more Reviewers. If Yes, click “Submit”. If No, click “Cancel” below.',\r\n },\r\n role: 'Role',\r\n additionalInformationSection: {\r\n header:'Additional Information', \r\n checkBoxTitle: 'I confirm both the additional user and the primary user belong to the same organization.',\r\n checkBoxTitleMultipleUsers: 'I confirm both the additional user(s) and the primary user belong to the same organization.'\r\n },\r\n configureRetention: {\r\n text:\r\n 'Enter the information below to determine when a Subscription should be purged'\r\n }\r\n};\r\n","export const registrationEn = {\r\n registration: 'Registration',\r\n data: {\r\n title: {\r\n ibr: 'Incremental Borrowing Rate',\r\n mip: 'My Incentive Plan',\r\n sbp: 'Share Based Payments Calculator',\r\n registration: 'registrations'\r\n }\r\n },\r\n titles: {\r\n selectCountry: 'Jurisdiction',\r\n termsOfUse: 'Terms of Use',\r\n selectPlan: 'Select Plan',\r\n accountDetails: 'Account Details',\r\n submission: 'Submission',\r\n acceptableUsePolicy: 'Acceptable Use Policy',\r\n replaceaupdocumentmsg: 'This document will be replaced by the AUP from ',\r\n replacetoudocumentmsg: 'This document will be replaced by the TOU from ',\r\n },\r\n warning: {\r\n updatedTerms: 'We have recently updated Terms of Use.',\r\n acceptTerms: 'Please accept new Terms of Use before continuing.',\r\n updatedAup: 'We have recently updated the Acceptable Use Policy.',\r\n acceptAup: 'Please accept new Acceptable Use Policy before continuing.'\r\n },\r\n cancelRegistration: {\r\n title: 'Cancel Registration',\r\n message: 'Are you sure you want to cancel your registration?'\r\n },\r\n labels: {\r\n selectCountry: 'Please select geography in order to view the Terms of Use',\r\n selectCountryMIP: 'Please select geography in order to view the Acceptable Use Policy',\r\n selectedCountry: 'Jurisdiction'\r\n },\r\n countryPlaceholder: 'Jurisdiction',\r\n confirmation: {\r\n title: 'Thank you for your registration submission.',\r\n questions:\r\n 'For any technical difficulties and/or any other questions, please contact your Deloitte relationship manager'\r\n },\r\n productconfirmation:\r\n 'Your registration is currently under review and you can expect an email once your subscription has been activated by your Deloitte representative.',\r\n plans: {\r\n names: {\r\n BlackScholes: 'Black-Scholes',\r\n MonteCarlo: 'Monte Carlo',\r\n Binomial: 'Binomial',\r\n TSRMonitoring: 'TSR Monitoring'\r\n },\r\n descriptions: {\r\n BlackScholes: 'Description for Black-Scholes plan',\r\n MonteCarlo: 'Description for Monte Carlo plan',\r\n Binomial: 'Description for Binomial plan',\r\n TSRMonitoring:\r\n 'This is a one year subscription that will start once approved'\r\n },\r\n certificatesNumber: 'Number of valuations',\r\n availableLicenses: 'Available licenses',\r\n purchasedLicenses: 'Purchased licenses',\r\n requestedLicenses: 'Requested Licenses',\r\n duration: 'Duration',\r\n actions: {\r\n addnewplan: 'Add New Plan',\r\n renew: 'Renew',\r\n reactivate: 'Re-Activate',\r\n cancel: 'Cancel'\r\n },\r\n renewSubscription: 'Renew Subscription'\r\n },\r\n countries: {\r\n us: 'United States',\r\n canada: 'Canada',\r\n ap: 'Deloitte Asia Pacific',\r\n nse: 'North and South Europe',\r\n dce: 'Deloitte DCE',\r\n aus: 'Australia',\r\n uk: 'United Kingdom',\r\n china: 'China'\r\n },\r\n texts: {\r\n select: 'SELECT',\r\n plansTo: 'PLAN(S) TO',\r\n action: 'Select Action'\r\n }\r\n};\r\n","export const pagesEn = {\r\n termsOfUse: 'Terms of Use',\r\n privacy: 'Privacy',\r\n notices: 'Notices',\r\n and: 'and',\r\n termspdf: 'GASS_[pages_termspdf__Asset__]_en-US_pdf',\r\n privacypdf: 'GASS_[pages_privacypdf__Asset__]_en-US_pdf',\r\n noticepdf: 'GASS_[pages_noticepdf__Asset__]_en-US_pdf',\r\n aboutpdf: 'GASS_[pages_aboutpdf__Asset__]_en-US_pdf',\r\n dbdoc: 'GASS_[pages_dbdoc__Asset__]_en-US_pdf'\r\n};\r\n","export const placeholdersEn = {\r\n all: 'All',\r\n enterSubscriberName: 'Enter Subscriber Name',\r\n enterAdminEmail: \"Enter Email\",\r\n enterAdminName: 'Enter User Name',\r\n selectRole: 'Select Role',\r\n enterSubscriberEmail: 'Enter Subscriber Email',\r\n selectFilter: 'Select filter option'\r\n};\r\n","export const validationEn = {\r\n errors: {\r\n required: 'This field is required to be entered.',\r\n email:\r\n 'Please enter a valid email to continue the registration process.',\r\n additionalEmailNotUnique: 'This user currently has access to this subscription',\r\n userEmail: 'Please enter a valid non-Deloitte email to continue.',\r\n isDeloitteAuditClient:\r\n 'We are not offering this product to Audit Clients at this time.',\r\n userFirstName: 'Please enter valid characters in your First Name.',\r\n userLastName: 'Please enter valid characters in your Last Name.'\r\n }\r\n};\r\n","export const homepageEn = {\r\n headersection: {\r\n access: 'Admin Access',\r\n title: 'Deloitte provides',\r\n btitle: 'Assurance to your business',\r\n ptitle: 'Through innovative and digital assets'\r\n },\r\n services: {\r\n title: 'Service Areas',\r\n cardtitle1: 'Accounting & Reporting Advisory',\r\n // carddescription1:\r\n // 'Financial markets and stakeholder expectations are continuously evolving. Deloitte can help navigate the complexity of today’s accounting and reporting standards, providing tailored levels of on-call support as needed. To achieve greater integration in financial reporting, we can guide the implementation of a comprehensive strategy for the assimilation of financial and non-financial information, allowing businesses to effectively demonstrate their value in the marketplace.',\r\n carddescription1:\r\n 'Supporting you in implementing complex accounting requirements of new standards',\r\n cardtitle2: 'Disruptive Events',\r\n cardtitle2b: 'Advisory',\r\n // carddescription2:\r\n // 'Deloitte brings deep accounting, financial reporting, financial operations, and regulatory experience to corporate transactions including mergers and acquisitions, divestments, IPOs and restructures, or new business models. We provide assurance to CFOs and their finance functions to successfully navigate disruptive events through the corporate lifecycle and exceed stakeholder expectations.',\r\n carddescription2:\r\n 'Assisting you in dealing with financial events, specifically tailored for integration planning with events such as, M&A, IPO, spin-offs and tuck-ins',\r\n cardtitle3: 'Accounting Operations Advisory',\r\n // carddescription3:\r\n // 'Deloitte supports the development and continuance of world-class Financial Reporting. Our deep accounting experience and legacy give us the knowledge to deliver efficient processes, effective internal controls, and innovative technologies to enable finance functions for the future. We recognize that everyone is starting from a different point with accounting operations and have different regulatory and business environments in which they operate. We diagnose what’s needed and provide tailored plans to help close the gaps to simplify and improve the financial reporting cycle with a set of proven offerings.',\r\n carddescription3:\r\n 'Enhancing your financial cycle and internal controls processes',\r\n cardtitle4: 'Business Assurance',\r\n // carddescription4:\r\n // 'Regulatory, societal, technological, economic and environmental changes are resulting in disruption and uncertainty for organizations. Business Assurance services aim to provide clients with the confidence in new subject matters, technology, and markets.'\r\n carddescription4:\r\n 'Combining Assurance with technology to enhance your business'\r\n },\r\n section1: {\r\n title: 'Accounting & Reporting Advisory',\r\n heading: 'IBR Calculator',\r\n description:\r\n 'The IBR calculator allows organizations to measure the value of their lease liabilities by applying a discount rate to their future lease payments compliant with IFRS 16.',\r\n launchbtn: 'Launch IBR',\r\n downloadbtn: 'Download brochure',\r\n fileName: 'Sales sheet IBR'\r\n },\r\n section2: {\r\n title: 'Accounting & Reporting Advisory',\r\n heading: 'Share Based Payments Calculator',\r\n innerHeading: 'Offering two applications to support companies with their Share Based Payments Calculator needs in compliance with IFRS 2.',\r\n description:\r\n 'Share Based Payments Calculator (SBP) allows companies to perform employee share plan valuations in compliance with IFRS 2. The calculator offers multiple valuation models, including Binomial, Black-Scholes, Monte Carlo, and real-time TSR monitoring.',\r\n launchbtn: 'LAUNCH SBP',\r\n ausClientsOnly: 'For Australian Clients Only',\r\n australiacomingsoon: 'SBP FOR CLIENTS OUTSIDE AUSTRALIA COMING SOON',\r\n downloadbtn: 'Download brochure',\r\n fileName: 'Sales sheet SBP'\r\n },\r\n section3: {\r\n title: 'Accounting & Reporting Advisory',\r\n heading: 'My Incentive Plan',\r\n description:\r\n 'The accounting of share-based payments is prone to a high degree of error due to intensive manual calculations and disparate spreadsheets. This application provides a user-driven management system, which simplifies the creation and management of Share Based Payments Calculator accounting expenses in compliance with IFRS 2. End-users can then view and/or export the output using a user-friendly interface.',\r\n launchbtn: 'LAUNCH My Incentive Plan',\r\n australiacomingsoon: 'My Incentive Plan FOR CLIENTS OUTSIDE AUSTRALIA COMING SOON',\r\n downloadbtn: 'Download brochure',\r\n fileName: 'Sales sheet My Incentive Plan'\r\n },\r\n section4: {\r\n title: \"Deloitte's digital reporting accelerator\",\r\n heading: \"Deloitte's digital reporting accelerator\",\r\n description: \"Deloitte’s digital reporting accelerator is a cloud-based application that enables users to accelerate preparation of their financial statements.\",\r\n launchbtn: \"LAUNCH DELOITTE'S DIGITAL REPORTING ACCELERATOR\",\r\n australiacomingsoon: 'Subtext demo',\r\n downloadbtn: 'Download brochure',\r\n fileName: 'Dra-Brochure'\r\n }\r\n};\r\n","export const onboardingEn = {\r\n manage: \"Manage Admins / Whitelisted Internal Users\",\r\n addAdmin: \"Add Admin / Whitelisted Internal User\", \r\n productManage: \"Manage Product Admins\",\r\n addProductAdmin: \"Add Product Admin\",\r\n configureRetention: \"Configure Retention\",\r\n adminTypes: {\r\n all: \"All Admins\",\r\n tenant: \"Tenant Admins\",\r\n country: \"Country\",\r\n product: \"Product Admins\",\r\n memberFirm: \"Member Firm\",\r\n productGroup: \"Product Group\",\r\n whitelistedInternalUser: \"Whitelisted Internal Users\"\r\n },\r\n sortBy: \"Sorted By\",\r\n fieldSort: {\r\n userName: \"User name\",\r\n email: \"Email\",\r\n country: \"Country\",\r\n role: \"Role\"\r\n },\r\n table: {\r\n userName: \"User name\",\r\n role: \"Role\",\r\n email: \"Email\",\r\n country: \"Country\",\r\n actions: \"Actions\",\r\n noFound: \"No users found\",\r\n product: \"Product\"\r\n },\r\n deletePopup: {\r\n remove: \"Remove user\",\r\n areYouSure:\"Are you sure you want to remove <1>{{name}}?\",\r\n },\r\n deletetenantadmin: 'You cannot remove yourself',\r\n adminCreation: {\r\n role: \"Role\",\r\n adminrole: 'Admin Role / Whitelisted User Role',\r\n email: \"Email\",\r\n exists: \"A user with this email already exists.\",\r\n WLUexists: \"The team member is already added as a whitelisted user.\",\r\n invalidMemberFirmUser: 'The user needs to be from the same member firm/country',\r\n tweakedResponseCode: 'Something wrong with the response',\r\n resourceNotFound: 'Resource not found',\r\n comments: \"Comment\",\r\n commentPlaceholder: 'Leave a comment here...',\r\n application: \"Application\",\r\n country: \"Country\",\r\n memberFirm: \"Member Firm\",\r\n addAdmin: \"Add Admin / Whitelisted Internal User\",\r\n addProductAdmin: \"Add Product Admin\",\r\n emailtext:\"Select the team member you want to add. Search by first or last name (e.g., Smith or John) or by email ID (e.g., jsmith)\",\r\n cancel: \"Cancel\",\r\n item: \"Select Item\",\r\n selectEmail: \"Add user\",\r\n selectApplication: \"Choose Application\",\r\n selectRole: \"Select Role\",\r\n info: \"User Information\",\r\n toastText: {\r\n 1: 'Tenant Admin has been successfully added',\r\n 3: 'Product Admin has been successfully added',\r\n 7: 'Whitelisted Internal User has been successfully added .'\r\n },\r\n roles: {\r\n SuperAdmin: \"Tenant Admin\",\r\n Productgroupadmin: \"Product Group Admin\",\r\n ProductAdmin: \"Product Admin\",\r\n Memberfirmadmin: \"Member Firm Admin\",\r\n Countryadmin: \"Country Admin\",\r\n User: \"User\",\r\n WhitelistedInternalUser: \"Whitelisted Internal User\"\r\n },\r\n tabs: {\r\n submission:'Submissions',\r\n admin: 'Admin'\r\n }\r\n\r\n },\r\n cancelRetentionPopup: {\r\n title: \"Confirm Cancellation\",\r\n message: \"Are you sure you want to cancel out of this process?\"\r\n },\r\n\r\n};","export const GET_ONBOARDING_USERS = '@onboarding/GET_ONBOARDING_USERS';\r\nexport const GET_ADMIN_ROLES = '@onboarding/GET_ADMIN_ROLES';\r\nexport const GET_PRODUCTS = '@onboarding/GET_PRODUCTS';\r\nexport const GET_COUNTRIES = '@onboarding/GET_COUNTRIES';\r\nexport const GET_MEMBER_FIRMS = '@onboarding/GET_MEMBER_FIRMS';\r\nexport const CREATE_ADMIN = '@onboarding/CREATE_ADMIN';\r\nexport const RESET_CREATED_ADMIN = '@onboarding/RESET_CREATED_ADMIN';\r\nexport const UPDATE_COLUMN_SORTING = '@onboarding/UPDATE_COLUMN_SORTING';\r\n\r\nexport type OnboardingState = Readonly<{\r\n hasSuccessData: boolean;\r\n isLoading: boolean;\r\n isLoaded: boolean;\r\n usersPagination: DTO.AdminPaginationResponse;\r\n userRoles: DTO.AdminRole[];\r\n memberFirms: DTO.ProductMemberFirm[];\r\n products: DTO.AppProduct[];\r\n hadCreatedAdmin: boolean;\r\n countries: DTO.Country[];\r\n sorter: DTO.Sorter;\r\n headerAllTile: any[];\r\n headerTenantTile: any[];\r\n headerProductTile: any[];\r\n}>;\r\n\r\nexport type SetAdminRoles = Store.PaylodedAction;\r\nexport type SetMemberFirms$ = Store.PaylodedAction<\r\n Promise\r\n>;\r\nexport type SetProducts = Store.PaylodedAction;\r\nexport type SetCountries = Store.PaylodedAction;\r\n\r\nexport type SetAdminUsers = Store.PaylodedAction;\r\nexport type SetAdminUsers$ = Store.PaylodedAction<\r\n Promise\r\n>;\r\nexport type SetSorting = Store.PaylodedAction;\r\n\r\nexport type OnboardingActionTypes =\r\n | SetAdminUsers\r\n | SetAdminRoles\r\n | SetMemberFirms$\r\n | SetProducts\r\n | SetCountries\r\n | SetSorting\r\n","import { Reducer } from 'redux';\r\n\r\nimport { SORT_DIRECTION } from 'shared/constants/common.consts';\r\nimport {\r\n asyncActionFulfilled,\r\n asyncActionPending,\r\n asyncActionRejected\r\n} from 'shared/utils';\r\nimport {\r\n OnboardingState,\r\n GET_ONBOARDING_USERS,\r\n OnboardingActionTypes,\r\n SetAdminUsers,\r\n GET_ADMIN_ROLES,\r\n SetAdminRoles,\r\n GET_PRODUCTS,\r\n GET_COUNTRIES,\r\n SetProducts,\r\n CREATE_ADMIN,\r\n RESET_CREATED_ADMIN,\r\n SetCountries,\r\n UPDATE_COLUMN_SORTING,\r\n SetSorting\r\n} from './onboarding.types';\r\n\r\nexport const adminTableAllTile = ([\r\n { label: ('onboarding.table.userName'), value: 'DisplayName', sortOrder: SORT_DIRECTION.ASC },\r\n { label: ('onboarding.table.role'), value: 'RoleName', sortOrder: '' },\r\n { label: ('onboarding.table.email'), value: 'Email', sortOrder: '' },\r\n { label: ('onboarding.table.product'), value: 'ProductCode', sortOrder: '' },\r\n { label: ('onboarding.table.country'), value: 'Country', sortOrder: '' },\r\n { label: ('onboarding.table.actions'), value: '', sortOrder: '' },\r\n]);\r\n\r\nexport const adminTableTenantTile = ([\r\n { label: ('onboarding.table.userName'), value: 'DisplayName', sortOrder: SORT_DIRECTION.ASC },\r\n { label: ('onboarding.table.email'), value: 'Email', sortOrder: '' },\r\n { label: ('onboarding.table.actions'), value: '', sortOrder: '' },\r\n]);\r\n\r\nexport const adminTableProductTile = ([\r\n { label: ('onboarding.table.userName'), value: 'DisplayName', sortOrder: SORT_DIRECTION.ASC },\r\n { label: ('onboarding.table.email'), value: 'Email', sortOrder: '' },\r\n { label: ('onboarding.table.product'), value: 'ProductCode', sortOrder: '' },\r\n { label: ('onboarding.table.country'), value: 'Country', sortOrder: '' },\r\n { label: ('onboarding.table.actions'), value: '', sortOrder: '' },\r\n]);\r\n\r\n\r\nconst initialProductState: OnboardingState = {\r\n hasSuccessData: false,\r\n isLoading: false,\r\n isLoaded: false,\r\n hadCreatedAdmin: false,\r\n userRoles: [],\r\n memberFirms: [],\r\n products: [],\r\n countries: [],\r\n usersPagination: {\r\n items: [],\r\n allItemsCount: 0,\r\n pageCount: 0,\r\n pageNumber: 0,\r\n pageSize: 0,\r\n usersCount: {\r\n all: 0,\r\n byCountry: 0,\r\n byMemberFirm: 0,\r\n byProduct: 0,\r\n byProductGroup: 0,\r\n byTenant: 0\r\n }\r\n },\r\n sorter: {\r\n fields: [\r\n {\r\n sortBy: adminTableAllTile[0].value,\r\n sortDirection: adminTableAllTile[0].sortOrder\r\n }\r\n ]\r\n },\r\n headerAllTile: adminTableAllTile,\r\n headerTenantTile: adminTableTenantTile,\r\n headerProductTile: adminTableProductTile\r\n};\r\n\r\nexport const onboardingReducer: Reducer<\r\n OnboardingState,\r\n OnboardingActionTypes\r\n> = (\r\n state: OnboardingState = initialProductState,\r\n action: OnboardingActionTypes\r\n): OnboardingState => {\r\n switch (action.type) {\r\n case asyncActionPending(GET_ONBOARDING_USERS): {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n isLoaded: false,\r\n hasSuccessData: false\r\n };\r\n }\r\n\r\n case asyncActionRejected(GET_ONBOARDING_USERS): {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n isLoaded: true,\r\n hasSuccessData: false\r\n };\r\n }\r\n\r\n case asyncActionFulfilled(GET_ONBOARDING_USERS): {\r\n const usersPagination = (action as SetAdminUsers).payload;\r\n\r\n return {\r\n ...state,\r\n usersPagination,\r\n isLoading: false,\r\n isLoaded: true,\r\n hasSuccessData: true\r\n };\r\n }\r\n\r\n case asyncActionPending(GET_ADMIN_ROLES): {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n isLoaded: false,\r\n hasSuccessData: false\r\n };\r\n }\r\n\r\n case asyncActionRejected(GET_ADMIN_ROLES): {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n isLoaded: true,\r\n hasSuccessData: false\r\n };\r\n }\r\n\r\n case asyncActionFulfilled(GET_ADMIN_ROLES): {\r\n const userRoles = (action as SetAdminRoles).payload;\r\n\r\n return {\r\n ...state,\r\n userRoles,\r\n isLoading: false,\r\n isLoaded: true,\r\n hasSuccessData: true\r\n };\r\n }\r\n\r\n case asyncActionPending(GET_PRODUCTS): {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n isLoaded: false,\r\n hasSuccessData: false\r\n };\r\n }\r\n\r\n case asyncActionRejected(GET_PRODUCTS): {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n isLoaded: true,\r\n hasSuccessData: false\r\n };\r\n }\r\n\r\n case asyncActionFulfilled(GET_PRODUCTS): {\r\n const products = (action as SetProducts).payload;\r\n\r\n return {\r\n ...state,\r\n products,\r\n isLoading: false,\r\n isLoaded: true,\r\n hasSuccessData: true\r\n };\r\n }\r\n case asyncActionPending(GET_COUNTRIES): {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n isLoaded: false,\r\n hasSuccessData: false\r\n };\r\n }\r\n\r\n case asyncActionRejected(GET_COUNTRIES): {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n isLoaded: true,\r\n hasSuccessData: false\r\n };\r\n }\r\n\r\n case asyncActionFulfilled(GET_COUNTRIES): {\r\n const countries = (action as SetCountries).payload;\r\n\r\n return {\r\n ...state,\r\n countries,\r\n isLoading: false,\r\n isLoaded: true,\r\n hasSuccessData: true\r\n };\r\n }\r\n case asyncActionPending(CREATE_ADMIN): {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n isLoaded: false,\r\n hasSuccessData: false\r\n };\r\n }\r\n\r\n case asyncActionRejected(CREATE_ADMIN): {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n isLoaded: true,\r\n hasSuccessData: false\r\n };\r\n }\r\n\r\n case asyncActionFulfilled(CREATE_ADMIN): {\r\n return {\r\n ...state,\r\n hadCreatedAdmin: true,\r\n isLoading: false,\r\n isLoaded: true,\r\n hasSuccessData: true\r\n };\r\n }\r\n\r\n case RESET_CREATED_ADMIN: {\r\n return {\r\n ...state,\r\n hadCreatedAdmin: false\r\n };\r\n }\r\n\r\n case UPDATE_COLUMN_SORTING: {\r\n const { sortBy, sortDirection, currentTile } = (action as SetSorting).payload;\r\n let newHeaderTile;\r\n let tileToUpdate;\r\n let indexToSort;\r\n let prevSortIndex;\r\n switch (currentTile) {\r\n case 0: {\r\n newHeaderTile = [...state.headerAllTile];\r\n tileToUpdate = 'headerAllTile';\r\n indexToSort = state.headerAllTile.findIndex(item => item?.value === sortBy);\r\n prevSortIndex = state.headerAllTile.findIndex(item => item?.sortOrder !== '');\r\n break;\r\n }\r\n case 1: {\r\n newHeaderTile = [...state.headerTenantTile];\r\n tileToUpdate = 'headerTenantTile';\r\n indexToSort = state.headerTenantTile.findIndex(item => item?.value === sortBy);\r\n prevSortIndex = state.headerTenantTile.findIndex(item => item?.sortOrder !== '');\r\n break;\r\n }\r\n default: {\r\n newHeaderTile = [...state.headerProductTile];\r\n tileToUpdate = 'headerProductTile';\r\n indexToSort = state.headerProductTile.findIndex(item => item?.value === sortBy);\r\n prevSortIndex = state.headerProductTile.findIndex(item => item?.sortOrder !== '');\r\n break;\r\n }\r\n }\r\n\r\n if (newHeaderTile[prevSortIndex].value !== sortBy) {\r\n newHeaderTile[prevSortIndex].sortOrder = '';\r\n }\r\n newHeaderTile[indexToSort].sortOrder = sortDirection;\r\n return {\r\n ...state,\r\n sorter: {\r\n ...state.sorter, fields: [{\r\n sortBy,\r\n sortDirection\r\n }]\r\n },\r\n [tileToUpdate]: newHeaderTile\r\n };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n };\r\n","import { combineReducers } from 'redux';\r\n\r\nimport { productReducer as product } from './product/product.reducer';\r\nimport { authReducer as auth } from './auth/auth.reducer';\r\nimport { registrationReducer as registration } from './registration/registration.reducer';\r\nimport { onboardingReducer as onboarding } from './onboarding/onboarding.reducer';\r\nimport { localizeReducer as localize } from './localize/localize.reducer';\r\nimport { subscriptionReducer as updateSubscription } from './updateSubscription/subscription.reducer';\r\nimport { globalReducer as global } from './global/global.reducer';\r\n\r\nexport const rootReducer = combineReducers({\r\n product,\r\n auth,\r\n registration,\r\n localize,\r\n onboarding,\r\n updateSubscription,\r\n global\r\n});\r\n\r\nexport type RootState = ReturnType;\r\n","import { RootState } from 'store/root.reducer';\r\n\r\nexport const adminSorter = ({\r\n onboarding\r\n}: RootState): any => onboarding.sorter;\r\n\r\nexport const selectHeaderForAllTile = ({\r\n onboarding\r\n}: RootState): any[] => onboarding.headerAllTile;\r\n\r\nexport const selectHeaderForTenantTile = ({\r\n onboarding\r\n}: RootState): any[] => onboarding.headerTenantTile;\r\n\r\nexport const selectHeaderForProductTile = ({\r\n onboarding\r\n}: RootState): any[] => onboarding.headerProductTile;\r\n\r\nexport const selectAdminUsersPagination = ({\r\n onboarding\r\n}: RootState): DTO.AdminPaginationResponse => onboarding.usersPagination;\r\n\r\nexport const selectAdminRoles = ({ onboarding }: RootState): DTO.AdminRole[] =>\r\n onboarding.userRoles;\r\n\r\nexport const selectProducts = ({ onboarding }: RootState): DTO.AppProduct[] =>\r\n onboarding.products;\r\n\r\n export const selectCountries = ({ onboarding }: RootState): DTO.Country[] =>\r\n onboarding.countries;\r\n\r\nexport const selectIsLoading = ({ onboarding }: RootState): boolean =>\r\n onboarding.isLoading;\r\n\r\nexport const selectIsLoaded = ({ onboarding }: RootState): boolean =>\r\n onboarding.isLoaded;\r\n\r\nexport const selectMemberFirms = ({\r\n onboarding\r\n}: RootState): DTO.ProductMemberFirm[] => onboarding.memberFirms;\r\n\r\nexport const selectHadCreatedAdmin = ({ onboarding }: RootState) =>\r\n onboarding.hadCreatedAdmin;\r\n","import { apiService } from 'shared/services';\r\nimport {\r\n CREATE_ADMIN,\r\n GET_ADMIN_ROLES,\r\n GET_MEMBER_FIRMS,\r\n GET_ONBOARDING_USERS,\r\n GET_PRODUCTS,\r\n GET_COUNTRIES,\r\n RESET_CREATED_ADMIN,\r\n UPDATE_COLUMN_SORTING\r\n} from './onboarding.types';\r\n\r\nexport const getUsersForOnboarding = (\r\n productCode: string,\r\n pageSize: number,\r\n pageNumber: number,\r\n userFilters: DTO.UserFilters,\r\n sorter: DTO.Sorter,\r\n applyFilters: boolean,\r\n role: string\r\n) => ({\r\n type: GET_ONBOARDING_USERS,\r\n payload: apiService.fetchOnboardingUsers(\r\n productCode,\r\n pageSize,\r\n pageNumber,\r\n userFilters,\r\n sorter,\r\n applyFilters,\r\n role\r\n )\r\n});\r\n\r\nexport const getAdminRoles = (productCode: string) => ({\r\n type: GET_ADMIN_ROLES,\r\n payload: apiService.fetchAdminRoles(productCode)\r\n});\r\n\r\nexport const getProducts = () => ({\r\n type: GET_PRODUCTS,\r\n payload: apiService.fetchProducts()\r\n});\r\n\r\nexport const getAvailableProducts = (email: string) => ({\r\n type: GET_PRODUCTS,\r\n payload: apiService.fetchAvaiableProducts(email)\r\n});\r\n\r\nexport const getCountries = (productCode: string) => ({\r\n type: GET_COUNTRIES,\r\n payload: apiService.fetchProductCountries(productCode)\r\n});\r\nexport const getMemberFirms = () => ({\r\n type: GET_MEMBER_FIRMS,\r\n payload: apiService.fetchMemberFirms()\r\n});\r\n\r\nexport const resedCreatedAdmin = () => ({\r\n type: RESET_CREATED_ADMIN\r\n});\r\n\r\nexport const updateColumnSorting = (sortBy: string, sortDirection: string, currentTile: number) => ({\r\n type: UPDATE_COLUMN_SORTING,\r\n payload: { sortBy, sortDirection, currentTile }\r\n});\r\n\r\nexport const createAdmin = (\r\n productCode: string,\r\n requestBody: DTO.CreateAdminRequest\r\n) => ({\r\n type: CREATE_ADMIN,\r\n payload: apiService.createAdmin( productCode,requestBody)\r\n});\r\n","import { withFormik } from 'formik';\r\n\r\nimport { noop } from 'shared/utils';\r\n\r\nexport interface AddAdminFormValues {\r\n role: DTO.AdminRole;\r\n email: DTO.UserEmail;\r\n products: string[];\r\n memberFirm: DTO.ProductMemberFirm;\r\n comments: string;\r\n countries: string[];\r\n}\r\n\r\nexport interface AddAdminFormProps {\r\n adminRoles: DTO.AdminRole[];\r\n comments: string;\r\n onCancel?: () => void;\r\n}\r\n\r\nexport const AddAdminFormEnhancer = withFormik<\r\n AddAdminFormProps,\r\n AddAdminFormValues\r\n>({\r\n mapPropsToValues: () => ({\r\n role: null,\r\n email: null,\r\n products: null,\r\n memberFirm: null,\r\n comments: null,\r\n countries:null\r\n }),\r\n handleSubmit: noop\r\n});\r\n","import React, { useEffect, useState, useCallback, Fragment } from 'react';\r\nimport { FormikProps } from 'formik';\r\nimport cs from 'classnames';\r\nimport Get from 'restful-react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport debounce from 'lodash/debounce';\r\n\r\nimport { useOnMount } from 'shared/hooks';\r\nimport { changeLanguage } from 'store/localize';\r\nimport {\r\n getProducts,\r\n getMemberFirms,\r\n createAdmin,\r\n getAvailableProducts\r\n} from 'store/onboarding/onboarding.actions';\r\nimport { selectHttpHeaders, reselectUser } from 'store/auth';\r\nimport { apiService } from 'shared/services';\r\nimport { UserRoles, USER_ROLES } from 'features/AdminPage/OnboardingPage/OnboardingFilters/OnboardingFilters';\r\nimport { Button, Form, Select, ConfirmationCancellation } from 'components';\r\nimport { SearchCallback } from 'features/AdminPage/SubmissionsFilters/FiltersControls/FiltersControls.helpers';\r\nimport { errorException } from 'shared/utils/AppInsights';\r\nimport {\r\n AddAdminFormEnhancer,\r\n AddAdminFormProps,\r\n AddAdminFormValues\r\n} from './AddAdminForm.helpers';\r\nimport styles from './AddAdminForm.module.css';\r\nimport { getApiHost } from '../../../../shared/utils/api-host-resolver.utils';\r\nimport {\r\n selectProductCode,\r\n selectMemberFirms,\r\n selectCountries\r\n} from '../../../../store/product/product.selectors';\r\nimport { selectProducts } from '../../../../store/onboarding/onboarding.selectors';\r\n\r\ninterface ProductOptions {\r\n value: string;\r\n label: string;\r\n}\r\n\r\ninterface CountryOptions {\r\n value: string;\r\n label: string;\r\n}\r\n\r\nexport function AddAdminFormComponent({\r\n values,\r\n adminRoles,\r\n setValues,\r\n onCancel\r\n}: AddAdminFormProps & FormikProps): JSX.Element {\r\n const productCode = useSelector(selectProductCode);\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n const [emailQuery, setEmailQuery] = useState('');\r\n const dispatch = useDispatch();\r\n const products = useSelector(selectProducts);\r\n const memberFirms = useSelector(selectMemberFirms);\r\n const [countries, setCountries] = useState(useSelector(selectCountries));\r\n const httpHeaders = useSelector(selectHttpHeaders);\r\n const [loadingEmail, setLoadingEmail] = useState(false);\r\n const [emailError, setEmailError] = useState(false);\r\n const [emailErrorText, setEmailErrorText] = useState('');\r\n const user = useSelector(reselectUser);\r\n const [productOptions, setProductOptions] = useState([]);\r\n const [countryOptions, setCountryOptions] = useState([]);\r\n const [showCountryField, setshowCountryField] = useState(false);\r\n const [showCommentField, setshowCommentField] = useState(false);\r\n const [isEmailProcessing, setEmailProcessingFlag] = useState(false);\r\n const [isConfiramtionCancel, setConfirmCancellation] = useState(false); \r\n const [isWLUProductscharged, setWLUProductscharged,] = useState(false);\r\n const [allRoleProductsCharged, setAllRoleProductsCharged] = useState(false);\r\n\r\n useOnMount(\r\n useCallback((): void => {\r\n if (user.profileSettings)\r\n dispatch(changeLanguage(user.profileSettings.language));\r\n }, [dispatch, user.profileSettings])\r\n );\r\n\r\n const fetchCountries = (code: string) => {\r\n apiService\r\n .fetchProductCountries(code)\r\n .then((response: any) => {\r\n const options = response.map((country: any) => ({\r\n value: country.code,\r\n label: country.name\r\n }));\r\n setCountryOptions(options);\r\n setCountries(response);\r\n })\r\n .catch((err) => {\r\n if (err.status === 404) {\r\n // do something for countries error.\r\n\r\n // AppInsights Error Exception\r\n errorException('Error bad request to ... /product//countries/locale/, File reference: AddAdminForm.tsx in fetchCountries function');\r\n }\r\n });\r\n };\r\n useEffect(() => {\r\n setValues({\r\n ...values,\r\n role: null,\r\n email: null,\r\n products: null,\r\n countries: null,\r\n comments: ''\r\n });\r\n setEmailErrorText('');\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [productCode]);\r\n\r\n const fetchEmailAvailability = (\r\n value: DTO.UserEmail,\r\n countryCodes: string[] = []\r\n ) => {\r\n setLoadingEmail(true);\r\n setEmailErrorText('');\r\n const roleId =\r\n values.role && values.role.id\r\n ? values.role.id.toString()\r\n : user.userRoleId.toString();\r\n const payload: DTO.ParamsSearchAdminsDto = {\r\n email: value.email,\r\n roleId: values.role?.id || user.userRoleId,\r\n // countryCodes: values.countries && values.countries.length ? values.countries: []\r\n countryCodes\r\n };\r\n\r\n apiService\r\n .fetchEmailAvailability(\r\n values.products && values.products.length > 0\r\n ? values.products[0]\r\n : productCode,\r\n payload\r\n )\r\n .then((response: any) => {\r\n if (response == null) {\r\n localStorage.setItem(\r\n 'adminRole',\r\n JSON.stringify(values.role?.id || user.userRoleId)\r\n );\r\n setEmailError(false);\r\n setLoadingEmail(false);\r\n } else {\r\n // AppInsights Error Exception\r\n errorException(`Error bad request: ${t(`onboarding.adminCreation.tweakedResponseCode`)}, File reference: AddAdminForm.tsx in apiService function`);\r\n\r\n // Something wrong with the response code.\r\n setEmailErrorText(t(`onboarding.adminCreation.tweakedResponseCode`));\r\n setEmailError(true);\r\n setLoadingEmail(false);\r\n }\r\n })\r\n .catch((err) => {\r\n if (err.status === 404) {\r\n // AppInsights Error Exception\r\n errorException(`Error bad request: ${t(`onboarding.adminCreation.resourceNotFound`)}, File reference: AddAdminForm.tsx in apiService function in status code 404`);\r\n\r\n setEmailErrorText(t(`onboarding.adminCreation.resourceNotFound`));\r\n }\r\n else if (err.status === 409) { // admin already exists\r\n \r\n // AppInsights Error Exception\r\n errorException(`Error bad request: ${t(`onboarding.adminCreation.exists`)}, File reference: AddAdminForm.tsx in apiService function in status code 409`);\r\n\r\n setEmailErrorText(t(`onboarding.adminCreation.exists`));\r\n }\r\n else if (err.status === 422) { // WLU already exists\r\n \r\n // AppInsights Error Exception\r\n errorException(`Error bad request: ${t(`onboarding.adminCreation.WLUexists`)}, File reference: AddAdminForm.tsx in apiService function in status code 409`);\r\n \r\n setEmailErrorText(t(`onboarding.adminCreation.WLUexists`));\r\n \r\n \r\n } else if (err.status === 401) { // admin not belongs to member firm\r\n // AppInsights Error Exception\r\n errorException(`Error bad request: ${t(`onboarding.adminCreation.invalidMemberFirmUser`)}, File reference: AddAdminForm.tsx in apiService function in status code 401`);\r\n\r\n setEmailErrorText(t(`onboarding.adminCreation.invalidMemberFirmUser`));\r\n }\r\n setEmailError(true);\r\n setLoadingEmail(false);\r\n })\r\n .finally(() => {\r\n setEmailProcessingFlag(false);\r\n });\r\n };\r\n\r\n const handleProductChange = (product: ProductOptions) => {\r\n setCountries([]);\r\n setValues({\r\n ...values,\r\n products: product && [product.value],\r\n countries: null\r\n });\r\n fetchCountries(product.value);\r\n };\r\n const handleCountryChange = (country: CountryOptions) => {\r\n let countryCodes: string[] = [];\r\n if (country instanceof Array) {\r\n countryCodes = country.map((item) => item.value);\r\n }else {\r\n countryCodes.push(country.value);\r\n }\r\n setValues({\r\n ...values,\r\n countries: countryCodes,\r\n // resetting comments based on country selection\r\n comments: !values.countries || values.countries?.length === 0 ? null : values.comments\r\n });\r\n fetchEmailAvailability(values.email, countryCodes);\r\n };\r\n\r\n const showRoleField = user.userRoleId === 1;\r\n const showEmailField = user.userRoleId === 3 || user.userRoleId === 7 || values.role;\r\n const showProductsField =\r\n values.role &&\r\n (values.role.id === UserRoles.productAdmin || values.role.id === UserRoles.whitelistedInternalUser) &&\r\n values.email &&\r\n !isEmailProcessing;\r\n\r\n // const showFirmsField = values.role;\r\n // const showCountryField = values.products && values.products.length > 0;\r\n // const getshowCommentField = () : boolean => {\r\n // return (values.role && values.role?.id === UserRoles.superAdmin && values.email) ||\r\n // (values.role?.id === UserRoles.productAdmin && showProductsField && showCountryField && values.countries) ||\r\n // (user.userRoleId === 3 && values.email);\r\n // }\r\n\r\n const isSubmitAvailable = () => {\r\n if (values.role && values.role.id === 1) {\r\n if (!values.email || !values.role || !values.comments) return false;\r\n if (showProductsField && !values.products) return false;\r\n } else if (!values.email || !values.comments) return false;\r\n else if (showCountryField && !values.countries) return false;\r\n if (loadingEmail) return false;\r\n if (emailError) return false;\r\n if (values.role?.id === UserRoles.whitelistedInternalUser && values.countries.length > 1) return false;\r\n return true;\r\n };\r\n const handleLoadingMessage = () => {\r\n return `${t('admin.grid.loading')}...`;\r\n };\r\n useEffect(() => {\r\n if (values.role?.id === UserRoles.whitelistedInternalUser && isWLUProductscharged === false && values.email) {\r\n setWLUProductscharged(true);\r\n setAllRoleProductsCharged(false);\r\n dispatch(getAvailableProducts(values.email.email));\r\n } else if (values.role?.id !== UserRoles.whitelistedInternalUser && showProductsField && allRoleProductsCharged === false) {\r\n setWLUProductscharged(false);\r\n setAllRoleProductsCharged(true);\r\n dispatch(getProducts());\r\n }\r\n }, [dispatch, showProductsField, products.length, values, isWLUProductscharged, allRoleProductsCharged]);\r\n\r\n useEffect(() => {\r\n setshowCountryField(values.products && values.products.length > 0);\r\n }, [values.products]);\r\n\r\n useEffect(() => {\r\n setProductOptions(\r\n products.map((product) => ({\r\n value: product.code,\r\n label: product.title\r\n }))\r\n );\r\n }, [values.email, products]);\r\n\r\n useEffect(() => {\r\n if (\r\n (values.role &&\r\n values.role?.id === UserRoles.superAdmin &&\r\n values.email) ||\r\n ((values.role?.id === UserRoles.productAdmin || values.role?.id === UserRoles.whitelistedInternalUser) &&\r\n showProductsField &&\r\n showCountryField &&\r\n values.countries) ||\r\n ((user.userRoleId === 3 || user.userRoleId === 7) && values.email)\r\n ) {\r\n setshowCommentField(true);\r\n } else {\r\n setshowCommentField(false);\r\n }\r\n }, [\r\n showCountryField,\r\n showProductsField,\r\n user.userRoleId,\r\n values.countries,\r\n values.email,\r\n values.role\r\n ]);\r\n\r\n // useEffect(() => {\r\n // if (showFirmsField && !memberFirms.length) {\r\n // dispatch(getMemberFirms());\r\n // }\r\n // }, [dispatch, memberFirms.length, showFirmsField]);\r\n\r\n const handleOnEmailSearch = React.useMemo(\r\n () => (\r\n refetch: () => Promise\r\n ): SearchCallback =>\r\n debounce(\r\n (q: string, callback: (options: DTO.UserEmail[]) => void): void => {\r\n setEmailQuery(q);\r\n setProductOptions([]);\r\n setCountries([]);\r\n setshowCommentField(false);\r\n setEmailProcessingFlag(true);\r\n refetch().then((items) => callback(items));\r\n },\r\n 300\r\n ),\r\n []\r\n );\r\n\r\n const submitForm = () => {\r\n const payload: DTO.CreateAdminRequest = {\r\n firstName: values.email.firstName,\r\n lastName: values.email.lastName,\r\n email: values.email.email,\r\n userCountryCode: values.email.country.trim(),\r\n roleId: values.role?.id || user.userRoleId,\r\n productCodes: values.products,\r\n memberFirmCode: values.email.memberFirm,\r\n comments: values.comments || '',\r\n countryCodes: values.countries\r\n };\r\n dispatch(createAdmin(productCode, payload));\r\n onCancel();\r\n };\r\n const handleOnClose = () => {\r\n setConfirmCancellation(true);\r\n };\r\n const onCloseConfirmDialog = () => {\r\n setConfirmCancellation(false);\r\n };\r\n\r\n return (\r\n \r\n {isConfiramtionCancel && ()}\r\n
\r\n
\r\n {showRoleField && (\r\n
\r\n
\r\n {t('onboarding.adminCreation.adminrole')}\r\n
\r\n \r\n className={styles.select}\r\n isClearable={false}\r\n isSearchable={false}\r\n options={adminRoles}\r\n placeholder={t('onboarding.adminCreation.selectRole')}\r\n renderOption={(item: DTO.AdminRole) => (\r\n
{t(`onboarding.adminCreation.roles.${item.name}`)}
\r\n )}\r\n value={values.role}\r\n withDropdownIndicator={true}\r\n onChange={(role) => {\r\n setEmailError(false);\r\n setValues({\r\n email: null,\r\n products: [],\r\n memberFirm: null,\r\n role,\r\n comments: '',\r\n countries: null\r\n });\r\n }}\r\n />\r\n
\r\n )}\r\n {showEmailField && (\r\n \r\n
\r\n {t('onboarding.adminCreation.email')}\r\n
\r\n
\r\n {t('onboarding.adminCreation.emailtext')}\r\n
\r\n \r\n base={`${getApiHost('account')}`}\r\n lazy={true}\r\n path={apiService.fetchAdminsByEmail(null)}\r\n queryParams={{\r\n email: emailQuery\r\n }}\r\n requestOptions={() => ({ headers: httpHeaders })}\r\n >\r\n {(\r\n _emails,\r\n { loading },\r\n { refetch: refetchEmails }\r\n ): JSX.Element => (\r\n
\r\n t('admin.grid.nooptions')}\r\n optionLabel='email'\r\n optionValue='email'\r\n placeholder={t('onboarding.adminCreation.selectEmail')}\r\n withoutIndicator={true}\r\n onChange={(item) => {\r\n setValues({\r\n ...values,\r\n products: [],\r\n countries: null,\r\n comments: ''\r\n });\r\n setWLUProductscharged(false);\r\n fetchEmailAvailability(item);\r\n }}\r\n />\r\n {emailError && (\r\n
{emailErrorText}
\r\n )}\r\n
\r\n )}\r\n \r\n\r\n {!emailErrorText &&\r\n showProductsField &&\r\n values.role.id !== UserRoles.superAdmin && (\r\n
\r\n
\r\n {t('onboarding.adminCreation.application')}\r\n
\r\n \r\n className={cs(styles.select, styles.multiSelect)}\r\n isClearable={false}\r\n isSearchable={false}\r\n options={productOptions}\r\n placeholder={t(\r\n 'onboarding.adminCreation.selectApplication'\r\n )}\r\n renderOption={(item) =>
{item.label}
}\r\n withDropdownIndicator={true}\r\n onChange={(item) => {\r\n setshowCountryField(false);\r\n setshowCommentField(false);\r\n handleProductChange(item);\r\n }}\r\n />\r\n
\r\n )}\r\n {!isEmailProcessing &&\r\n !emailErrorText &&\r\n showCountryField &&\r\n values.products.length && (\r\n
\r\n
\r\n {t('admin.grid.country')}\r\n
\r\n \r\n className={cs(styles.select, styles.autoheight)}\r\n isClearable={false}\r\n isMulti={values.role.id !== UserRoles.whitelistedInternalUser}\r\n isSearchable={false}\r\n options={countryOptions}\r\n placeholder={t('admin.grid.country')}\r\n renderOption={(item) =>
{item.label}
}\r\n withDropdownIndicator={true}\r\n onChange={(country) => {\r\n setshowCommentField(false);\r\n handleCountryChange(country);\r\n }}\r\n />\r\n
\r\n )}\r\n {showCommentField &&\r\n !isEmailProcessing &&\r\n !emailErrorText && (\r\n \r\n \r\n {t('onboarding.adminCreation.comments')}\r\n
\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n
\r\n \r\n {t('onboarding.adminCreation.cancel')}\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n );\r\n}\r\n\r\nexport const AddAdminForm = AddAdminFormEnhancer(AddAdminFormComponent);\r\n","import React, { FC, Fragment, PropsWithChildren, useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport { reselectUser, selectIsFirstLogin } from 'store/auth';\r\nimport {\r\n selectAdminRoles,\r\n selectHadCreatedAdmin\r\n} from 'store/onboarding/onboarding.selectors';\r\nimport { Footer } from 'features/Footer/Footer';\r\nimport { AppUserNav } from 'features/AppLayout';\r\nimport { ConfirmDialog, Dialog, AdminDialog } from 'components';\r\nimport { getAdminRoles } from 'store/onboarding/onboarding.actions';\r\nimport { AddAdminForm } from './AddAdminForm/AddAdminForm';\r\nimport styles from './OnboardingCreation.module.css';\r\nimport { selectProductCode } from '../../../store/product';\r\nimport { UserMenu } from '../UserMenu/UserMenu';\r\nimport { UserProductsSelect } from '../UserProductsSelect/UserProductsSelect';\r\nimport { confirmDialogConfig } from '../AdminPage';\r\nimport { USER_ROLES } from '../OnboardingPage/OnboardingFilters/OnboardingFilters';\r\n\r\ninterface Props {\r\n onCancel? : () => void;\r\n}\r\nexport const OnboardingCreation: FC> = ({ onCancel }) => {\r\n const dispatch = useDispatch();\r\n const productCode = useSelector(selectProductCode);\r\n const adminRoles = useSelector(selectAdminRoles);\r\n const isFirstLogin = useSelector(selectIsFirstLogin);\r\n const { t } = useTranslation();\r\n const hadCreatedAdmin = useSelector(selectHadCreatedAdmin);\r\n const history = useHistory();\r\n const user = useSelector(reselectUser);\r\n const [showSettings, setShowSettings] = React.useState(true);\r\n const [showAdminDialog, setShowAdminDialog] = React.useState(true);\r\n // const closeModal = () => {\r\n // setShowSettings(false);\r\n // setShowAdminDialog(false);\r\n // };\r\n\r\n useEffect(() => {\r\n if (hadCreatedAdmin) {\r\n history.push(`/admin/onboarding/${productCode}`);\r\n }\r\n }, [hadCreatedAdmin, history, productCode]);\r\n\r\n useEffect(() => {\r\n if (productCode && !adminRoles.length && user.userRoleId === 1) {\r\n dispatch(getAdminRoles(productCode));\r\n }\r\n }, [adminRoles.length, dispatch, productCode, user.userRoleId]);\r\n\r\n return (\r\n \r\n {isFirstLogin && (\r\n \r\n )}\r\n {user.profileSettings && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport cs from 'classnames';\r\n\r\nimport { reselectUser } from 'store/auth';\r\nimport { Icon, Table } from 'components';\r\nimport { getIconName } from 'features/AdminPage/Sorting/Sorting.helpers';\r\nimport { SORT_DIRECTION } from 'shared/constants/common.consts';\r\nimport { DirectionButton } from 'components/DirectionButton/DirectionButton';\r\nimport styles from './OnboardingPageTable.module.css';\r\nimport {\r\n selectIsLoaded,\r\n selectIsLoading\r\n} from '../../../../store/onboarding/onboarding.selectors';\r\nimport { useTimeoutBeforeLoader } from '../../../../shared/hooks/useTimeoutBeforeLoader';\r\nimport { Spinner } from '../../../../components/Spinner/Spinner';\r\nimport { UserRoles, USER_ROLES } from '../OnboardingFilters/OnboardingFilters';\r\n\r\ninterface Props {\r\n users: DTO.AdminUser[];\r\n handleDelete: (admin: DTO.AdminUser) => void;\r\n currentTile: any;\r\n allTileHeaders: any[];\r\n sortBy: string;\r\n direction: AP.SortDirection;\r\n sorter: DTO.Sorter;\r\n handleSortOnChange: (sortBy: string, sort: AP.SortDirection) => void\r\n tenantTileHeaders: any[],\r\n productTileHeaders: any[]\r\n}\r\n\r\nexport const OnboardingPageTable: React.FC = ({\r\n users,\r\n handleDelete,\r\n currentTile,\r\n allTileHeaders,\r\n direction,\r\n sortBy,\r\n sorter,\r\n handleSortOnChange,\r\n tenantTileHeaders,\r\n productTileHeaders\r\n}) => {\r\n const { t } = useTranslation();\r\n const isLoading = useSelector(selectIsLoading);\r\n const isLoaded = useSelector(selectIsLoaded);\r\n const showLoader = useTimeoutBeforeLoader(isLoading, 1000);\r\n const currentAdminUser = useSelector(reselectUser);\r\n\r\n const onSortingChangeCb = React.useCallback(\r\n (value: string, sortdirection) => {\r\n let sortingOrder: SORT_DIRECTION;\r\n if (value === sortBy) {\r\n switch (direction) {\r\n case '':\r\n sortingOrder = SORT_DIRECTION.DESC;\r\n break;\r\n case SORT_DIRECTION.DESC:\r\n sortingOrder = SORT_DIRECTION.ASC;\r\n break;\r\n case SORT_DIRECTION.ASC:\r\n sortingOrder = SORT_DIRECTION.DESC;\r\n break;\r\n default:\r\n sortingOrder = SORT_DIRECTION.ASC;\r\n break;\r\n }\r\n } else {\r\n switch (sortdirection) {\r\n case '':\r\n sortingOrder = SORT_DIRECTION.DESC;\r\n break;\r\n case SORT_DIRECTION.DESC:\r\n sortingOrder = SORT_DIRECTION.ASC;\r\n break;\r\n case SORT_DIRECTION.ASC:\r\n sortingOrder = SORT_DIRECTION.DESC;\r\n break;\r\n default:\r\n sortingOrder = SORT_DIRECTION.ASC;\r\n break;\r\n }\r\n }\r\n handleSortOnChange(value, sortingOrder);\r\n },\r\n [sortBy, direction, handleSortOnChange]\r\n );\r\n\r\n if (showLoader) {\r\n return (\r\n \r\n );\r\n }\r\n const getActionItems = (user: DTO.AdminUser) => {\r\n return (\r\n \r\n currentAdminUser.email !== user.email ? handleDelete(user) : null}\r\n >\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const getHeaderForAllTile = () => {\r\n return (\r\n \r\n {allTileHeaders.map((header, index) => {\r\n return (\r\n \r\n {header.label === 'onboarding.table.userName' && (\r\n onSortingChangeCb(header?.value, header?.sortOrder)}\r\n >\r\n {t(header.label)}\r\n \r\n \r\n )}\r\n {header.label === 'onboarding.table.role' && currentAdminUser.role !== USER_ROLES.PRODUCT_ADMIN && (\r\n onSortingChangeCb(header?.value, header?.sortOrder)}\r\n >\r\n {t(header.label)}\r\n \r\n \r\n )}\r\n {header.label === 'onboarding.table.email' && (\r\n onSortingChangeCb(header?.value, header?.sortOrder)}\r\n >\r\n {t(header.label)}\r\n \r\n \r\n )}\r\n {header.label === 'onboarding.table.product' && currentAdminUser.role !== USER_ROLES.PRODUCT_ADMIN && (\r\n onSortingChangeCb(header?.value, header?.sortOrder)}\r\n >\r\n {t(header.label)}\r\n \r\n \r\n )}\r\n {header.label === 'onboarding.table.country' && (\r\n onSortingChangeCb(header?.value, header?.sortOrder)}\r\n >\r\n {t(header.label)}\r\n \r\n \r\n )}\r\n {header.label === 'onboarding.table.actions' && currentAdminUser.role !== USER_ROLES.PRODUCT_ADMIN && (\r\n \r\n {t(header.label)}\r\n \r\n )}\r\n \r\n );\r\n })}\r\n \r\n );\r\n };\r\n const getHeaderForTenantTile = () => {\r\n return (\r\n \r\n {tenantTileHeaders.map((header, index) => {\r\n return (\r\n \r\n {header.label === 'onboarding.table.userName' && (\r\n onSortingChangeCb(header?.value, header?.sortOrder)}\r\n >\r\n {t(header.label)}\r\n \r\n \r\n )}\r\n {header.label === 'onboarding.table.email' && (\r\n onSortingChangeCb(header?.value, header?.sortOrder)}\r\n >\r\n {t(header.label)}\r\n \r\n \r\n )}\r\n {header.label === 'onboarding.table.actions' && currentAdminUser.role !== USER_ROLES.PRODUCT_ADMIN && (\r\n \r\n {t(header.label)}\r\n \r\n )}\r\n \r\n );\r\n })}\r\n \r\n );\r\n };\r\n\r\n const getHeaderForProductTile = () => {\r\n return (\r\n \r\n {productTileHeaders.map((header, index) => {\r\n return (\r\n \r\n {header.label === 'onboarding.table.userName' && (\r\n onSortingChangeCb(header?.value, header?.sortOrder)}\r\n >\r\n {t(header.label)}\r\n \r\n \r\n )}\r\n {header.label === 'onboarding.table.email' && (\r\n onSortingChangeCb(header?.value, header?.sortOrder)}\r\n >\r\n {t(header.label)}\r\n \r\n \r\n )}\r\n {header.label === 'onboarding.table.product' && currentAdminUser.role !== USER_ROLES.PRODUCT_ADMIN && (\r\n onSortingChangeCb(header?.value, header?.sortOrder)}\r\n >\r\n {t(header.label)}\r\n \r\n \r\n )}\r\n {header.label === 'onboarding.table.country' && (\r\n onSortingChangeCb(header?.value, header?.sortOrder)}\r\n >\r\n {t(header.label)}\r\n \r\n \r\n )}\r\n {header.label === 'onboarding.table.actions' && currentAdminUser.role !== USER_ROLES.PRODUCT_ADMIN && (\r\n \r\n {t(header.label)}\r\n \r\n )}\r\n \r\n );\r\n })}\r\n \r\n );\r\n };\r\n const getBodyForAllTile = (user: DTO.AdminUser) => {\r\n return (\r\n \r\n {user.displayName}\r\n {currentAdminUser.role !== USER_ROLES.PRODUCT_ADMIN && (\r\n {user.roleName}\r\n )}\r\n {user.email}\r\n {currentAdminUser.role !== USER_ROLES.PRODUCT_ADMIN && (\r\n \r\n {+user.roleId === UserRoles.superAdmin ? '-' : user.productCode}\r\n \r\n )}\r\n \r\n {+user.roleId === UserRoles.superAdmin ? '-' : user.countryCode}\r\n \r\n {currentAdminUser.role === USER_ROLES.PRODUCT_ADMIN\r\n ? null\r\n : getActionItems(user)}\r\n \r\n );\r\n };\r\n const getBodyForTenantTile = (user: DTO.AdminUser) => {\r\n return (\r\n \r\n \r\n {user.displayName}\r\n \r\n \r\n {user.email}\r\n \r\n {currentAdminUser.role === USER_ROLES.PRODUCT_ADMIN\r\n ? null\r\n : getActionItems(user)}\r\n \r\n );\r\n };\r\n const getBodyForProductTile = (user: DTO.AdminUser) => {\r\n return (\r\n \r\n {user.displayName}\r\n {user.email}\r\n \r\n {user.productCode}\r\n \r\n {user.countryCode}\r\n {currentAdminUser.role === USER_ROLES.PRODUCT_ADMIN\r\n ? null\r\n : getActionItems(user)}\r\n \r\n );\r\n };\r\n const getUsersDataForBodytemplate = (user: DTO.AdminUser) => {\r\n switch (currentTile) {\r\n case 0: {\r\n return getBodyForAllTile(user);\r\n }\r\n case UserRoles.superAdmin: {\r\n return getBodyForTenantTile(user);\r\n }\r\n default: {\r\n return getBodyForProductTile(user);\r\n }\r\n }\r\n };\r\n return (\r\n \r\n \r\n {currentTile === 0 && getHeaderForAllTile()}\r\n {currentTile === UserRoles.superAdmin && getHeaderForTenantTile()}\r\n {(currentTile === UserRoles.productAdmin || currentTile === UserRoles.whitelistedInternalUser) && getHeaderForProductTile()}\r\n \r\n \r\n {!users.length && isLoaded && (\r\n \r\n \r\n \r\n )}\r\n {users.map((user) => {\r\n return getUsersDataForBodytemplate(user);\r\n })}\r\n\r\n \r\n
\r\n {t('onboarding.table.noFound')}\r\n
\r\n );\r\n};\r\n","import { useState, useEffect } from 'react';\r\n\r\nexport const useTimeoutBeforeLoader = (\r\n loadingControl: boolean,\r\n timeout?: number\r\n) => {\r\n const [showLoader, setShowLoader] = useState(false);\r\n useEffect(() => {\r\n if (loadingControl) {\r\n setTimeout(() => setShowLoader(true), timeout || 400);\r\n } else if (!loadingControl && showLoader) {\r\n setShowLoader(false);\r\n }\r\n }, [loadingControl, showLoader, timeout]);\r\n\r\n return showLoader;\r\n};\r\n","import React, { FC } from 'react';\r\nimport cs from 'classnames';\r\nimport { noop } from 'lodash';\r\n\r\nimport { Button } from 'components';\r\nimport styles from './ThemedButton.module.css';\r\n\r\ninterface Props {\r\n children: React.ReactNode;\r\n onClick?: () => void;\r\n\r\n link?: string;\r\n filled?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport const ThemedButton: FC = ({\r\n children,\r\n onClick = noop,\r\n link,\r\n filled,\r\n className\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n","import React, { FC } from 'react';\r\nimport { Modal } from 'react-bootstrap';\r\nimport { Trans, useTranslation } from 'react-i18next';\r\n\r\nimport { Button } from 'components';\r\nimport styles from './DeleteAdminModal.module.css';\r\nimport { UserRoles } from '../OnboardingFilters/OnboardingFilters';\r\n\r\ninterface Props {\r\n show: boolean;\r\n user: DTO.AdminUser;\r\n handleDelete: (email: string) => void;\r\n onHide: () => void;\r\n}\r\n\r\nexport const DeleteAdminModal: FC = ({\r\n show,\r\n user,\r\n handleDelete,\r\n onHide\r\n}) => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n \r\n {t('onboarding.deletePopup.remove')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ name: user && user.displayName }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import { string, object } from 'yup';\r\nimport { withFormik } from 'formik';\r\n\r\nimport { noop } from 'shared/utils';\r\n\r\nexport interface ConfigureRetentionDialogForm {\r\n product: string;\r\n country: string;\r\n retention: string;\r\n}\r\n\r\nexport const initialFormValues: ConfigureRetentionDialogForm = {\r\n product: '',\r\n country: '',\r\n retention: ''\r\n};\r\n\r\nexport const commentLengthLimit = 255;\r\n\r\nexport interface ConfigureRetentionDialogProps {\r\n onSubmit: (values: DTO.UpdateRetentionDto) => void;\r\n onCancel: () => void;\r\n setconfirmCancel: (confirm: boolean) => void;\r\n}\r\n\r\nexport const ConfigureRetentionDialogEnhancer = withFormik<\r\n ConfigureRetentionDialogProps,\r\n ConfigureRetentionDialogForm\r\n>({\r\n mapPropsToValues: () => initialFormValues,\r\n validationSchema: object().shape({\r\n product: string()\r\n .required()\r\n .trim(),\r\n country: string()\r\n .required()\r\n .trim(),\r\n retention: string()\r\n .required()\r\n .trim() \r\n \r\n }),\r\n handleSubmit: noop\r\n});\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { FormikProps } from 'formik';\r\nimport cs from 'classnames';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport { Dialog, Form, Select, Confirmation} from 'components';\r\nimport { apiService } from 'shared/services';\r\nimport {\r\n reselectUser\r\n} from 'store/auth';\r\nimport {\r\n getProducts,\r\n} from 'store/onboarding/onboarding.actions';\r\nimport { errorException } from 'shared/utils/AppInsights';\r\nimport {\r\n ConfigureRetentionDialogEnhancer,\r\n ConfigureRetentionDialogProps,\r\n ConfigureRetentionDialogForm\r\n} from './ConfigureRetentionDialog.helpers';\r\nimport {\r\n selectCountries,\r\n selectProductCode\r\n} from '../../../../../store/product/product.selectors';\r\nimport styles from './ConfigureRetentionDialog.module.css';\r\nimport { selectProducts } from '../../../../../store/onboarding/onboarding.selectors';\r\nimport sendMail from '../../../../../assets/images/send-mail.png';\r\nimport { UserRoles } from '../../OnboardingFilters/OnboardingFilters';\r\n\r\ninterface ProductOptions {\r\n value: string;\r\n label: string;\r\n}\r\n\r\ninterface CountryOptions {\r\n value: string;\r\n label: string;\r\n}\r\n\r\nexport function ConfigureRetentionDialogComponent({\r\n setFieldError,\r\n values, \r\n setValues,\r\n onSubmit,\r\n onCancel,\r\n isValid,\r\n setconfirmCancel\r\n}:\r\n ConfigureRetentionDialogProps &\r\n FormikProps):JSX.Element {\r\n const { t } = useTranslation();\r\n const user = useSelector(reselectUser);\r\n const productCode = useSelector(selectProductCode);\r\n const [show, setShow] = React.useState(true);\r\n const [sendValues, setSendValues] = React.useState(false);\r\n const [productOptions, setProductOptions] = useState([]);\r\n const products = useSelector(selectProducts);\r\n const [countries, setCountries] = useState(useSelector(selectCountries));\r\n const [countryOptions, setCountryOptions] = useState([]);\r\n const [retentionYear, setRetentionYear] = useState('');\r\n const [disableSave, setDisableSave] = useState(true);\r\n const [isFormValid, setisFormValid] = useState(false);\r\n const [selectedCountryCode, setSelectedCountryCode] = useState('');\r\n const [retentionDetails, setRetentionDetails] = useState();\r\n const [retentionErrMsg, setRetentionErrMsg] = useState('');\r\n const [selectedProduct, setSelectedProduct] = useState('');\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => { \r\n if(retentionDetails) {\r\n setRetentionYear(retentionDetails.retentionYear);\r\n }\r\n }, [retentionDetails]);\r\n \r\n useEffect(() => {\r\n setisFormValid(values.product && values.product.trim() &&\r\n values.country && values.country.trim() &&\r\n values.retention && /^[1-9][0-9]{0,}$/.test(values.retention) && isValid);\r\n if (values.retention && !(/^[1-9][0-9]{0,}$/.test(values.retention))) {\r\n // AppInsights Error Exception\r\n errorException(`Error: ${t('admin.grid.retentionValidationMsg')}, File reference: ConfigureRetentionDialog.tsx in useEffect function`);\r\n\r\n setRetentionErrMsg(t('admin.grid.retentionValidationMsg'));\r\n } else {\r\n setRetentionErrMsg('');\r\n }\r\n }, [isValid, values.product, values.country, values.retention, t]);\r\n\r\n useEffect(() => {\r\n if (!products.length) {\r\n dispatch(getProducts());\r\n }\r\n }, [dispatch, products.length]);\r\n\r\n useEffect(() => {\r\n setProductOptions(\r\n products.map((product) => ({\r\n value: product.code,\r\n label: product.title\r\n }))\r\n );\r\n }, [products]);\r\n\r\n const fetchCountries = React.useCallback((code: string) => {\r\n setCountryOptions([]);\r\n apiService\r\n .fetchProductCountries(code)\r\n .then((response: any) => {\r\n const options = response.map((country: any) => ({\r\n value: country.code,\r\n label: country.name\r\n }));\r\n setCountryOptions(options);\r\n setCountries(response);\r\n })\r\n .catch((err) => {\r\n if (err.status === 404) {\r\n // do something for countries error.\r\n\r\n // AppInsights Error Exception\r\n errorException('Error: /product//countries/locale/, File reference: ConfigureRetentionDialog.tsx in fetchCountries function');\r\n }\r\n });\r\n }, []);\r\n \r\n const getRetentionDetails = (payload: DTO.RetentionRequestDto) => {\r\n apiService.getRetentionDetails(payload).then((res: any) => {\r\n setRetentionDetails(res);\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n // AppInsights Error Exception\r\n errorException(`Error: ${err}, File reference: ConfigureRetentionDialog.tsx in getRetentionDetails function`);\r\n });\r\n };\r\n\r\n const handleProductChange = React.useCallback((product: ProductOptions) => {\r\n setCountryOptions([]);\r\n setRetentionDetails(null);\r\n setRetentionYear('');\r\n setSelectedCountryCode(null);\r\n setValues({\r\n ...values,\r\n product: product && product.value,\r\n country: '',\r\n retention: ''\r\n });\r\n fetchCountries(product.value);\r\n }, [setValues, values, fetchCountries]);\r\n\r\n useEffect(() => {\r\n if(productCode && user.userRoleId === UserRoles.productAdmin) {\r\n if(!values.product){\r\n setValues({\r\n ...values,\r\n product: productCode,\r\n });\r\n }\r\n setSelectedProduct(productCode);\r\n fetchCountries(productCode);\r\n } else {\r\n setSelectedProduct(values.product);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [productCode, user.userRoleId, fetchCountries, productOptions]);\r\n\r\n const handleCountryChange = (country: CountryOptions) => {\r\n setSelectedCountryCode(country.value);\r\n setValues({\r\n ...values,\r\n country: country.value,\r\n });\r\n getRetentionDetails({\r\n productCode: user.userRoleId === UserRoles.productAdmin ? productCode : values.product,\r\n countryCode: country.value,\r\n email: user.email\r\n });\r\n };\r\n\r\n const handleRetentionChange = React.useCallback(\r\n (e: React.ChangeEvent) => {\r\n setDisableSave(false);\r\n setRetentionYear(e.target.value);\r\n setValues({\r\n ...values,\r\n retention: e.target.value,\r\n });\r\n },\r\n [setDisableSave, setValues, values]\r\n );\r\n\r\n const handleOnClose = React.useCallback(() => {\r\n onCancel();\r\n setShow(false);\r\n }, [onCancel]);\r\n\r\n const handleOnSubmit = React.useCallback(() => {\r\n console.log(values);\r\n setSendValues(true);\r\n setShow(false);\r\n const payload = {\r\n productCode: values.product,\r\n userEmail: user.email,\r\n RetentionYears: Number(values.retention),\r\n countryCode: countries.find((country:any) => country.code === values.country).id,\r\n userRoleId: user.userRoleId\r\n };\r\n onSubmit(payload);\r\n }, [values, countries, user.email, user.userRoleId, onSubmit]);\r\n\r\n const getOptionValueCallback = React.useCallback(\r\n ({ value }): string => value,\r\n []\r\n );\r\n\r\n const getOptionLabelCallback = React.useCallback(\r\n ({ label }): string => label,\r\n []\r\n );\r\n\r\n const findSelectedCountryFromOptions = React.useCallback(\r\n productCountry => productCountry.value === selectedCountryCode,\r\n [selectedCountryCode]\r\n );\r\n\r\n const countryValue = React.useMemo(\r\n (): CountryOptions => \r\n countryOptions.find(findSelectedCountryFromOptions),\r\n [countryOptions, findSelectedCountryFromOptions]\r\n );\r\n\r\n const findSelectedProductFromOptions = React.useCallback(\r\n product => product.value === selectedProduct,\r\n [selectedProduct]\r\n );\r\n\r\n const productValue = React.useMemo(\r\n (): ProductOptions => \r\n productOptions.find(findSelectedProductFromOptions),\r\n [productOptions, findSelectedProductFromOptions]\r\n );\r\n\r\n return (\r\n \r\n \r\n
\r\n

{t('forms.configureRetention.text')}

\r\n
\r\n
\r\n {t('onboarding.adminCreation.application')}\r\n
\r\n {user.userRoleId === UserRoles.productAdmin ?\r\n (\r\n 0 && selectedProduct && productOptions.find(product => product.value === selectedProduct).label) || ''}\r\n />\r\n ) :\r\n (\r\n \r\n className={cs(styles.select, styles.multiSelect)}\r\n getOptionLabel={getOptionLabelCallback}\r\n getOptionValue={getOptionValueCallback}\r\n isClearable={false}\r\n isSearchable={false}\r\n options={productOptions}\r\n placeholder={t(\r\n 'onboarding.adminCreation.selectApplication'\r\n )}\r\n renderOption={(item) =>
{item.label}
}\r\n value={productValue || { value: '', label: '' }}\r\n withDropdownIndicator={true}\r\n onChange={(item) => {\r\n handleProductChange(item);\r\n setSelectedProduct(item === null ? null : item.value);\r\n\r\n }}\r\n />\r\n )}\r\n
\r\n
\r\n
\r\n {t('admin.grid.country')}\r\n
\r\n \r\n className={cs(styles.select, styles.autoheight)}\r\n getOptionLabel={getOptionLabelCallback}\r\n getOptionValue={getOptionValueCallback}\r\n isClearable={false}\r\n isSearchable={false}\r\n options={countryOptions}\r\n placeholder={t('admin.grid.country')}\r\n renderOption={(item) =>
{item.label}
}\r\n value={countryValue || { value: '', label: '' }}\r\n withDropdownIndicator={true}\r\n onChange={(country) => {\r\n handleCountryChange(country);\r\n setSelectedCountryCode(country === null ? null : country.value);\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n {t('admin.grid.retentionYear')}\r\n
\r\n \r\n {retentionErrMsg && (\r\n
{retentionErrMsg}
\r\n )}\r\n

{user.userRoleId === UserRoles.superAdmin && retentionDetails && retentionDetails.isRetentionLocked ?\r\n t('admin.grid.tenantRetentionYearWarning') : ''}\r\n

\r\n
\r\n
\r\n {retentionDetails &&\r\n (\r\n

{t('admin.grid.lastEdited')}: {retentionDetails ?\r\n new Date(retentionDetails.lastModifiedDate).toLocaleDateString('en-us', { year: 'numeric', month: 'long', day: 'numeric' })\r\n : ''}\r\n

\r\n )}\r\n
\r\n

{retentionDetails ? `${retentionDetails.firstName} ${retentionDetails.lastName},` : ''}

\r\n

{retentionDetails ? ` ${retentionDetails.userEmail}` : ''}

\r\n {retentionDetails &&\r\n (\r\n \r\n sendMail\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport const ConfigureRetentionDialog = ConfigureRetentionDialogEnhancer(\r\n ConfigureRetentionDialogComponent\r\n);\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAC4SURBVHgBxZLdDcIwDITPtAMwQhmFIfjJG5tQNuGJlDJERyEbwALI2KBIKDhVKh44qarqnH2f1RAMnbr+RsD864CodZvVAWPyXc9WTZ6rP1/2sTbDFPFjCeZdHECliJrstmvy3jegapDzI8WigR3UEAcosryaT1+NMURUgyBCB0jAIg3I7uycC+mOqXLN4YVO1RuVubVMJraFiAnJRfpfc11qTPeWj3txc3qRVL9ha3zuV0Spx6o/AWzNXM0wnuMHAAAAAElFTkSuQmCC\"","import { useDispatch, useSelector } from 'react-redux';\r\nimport React, { FC, useCallback, useEffect, useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Toast } from 'react-bootstrap';\r\n\r\nimport { removeFromLocalStorage } from 'shared/utils/storage.utils';\r\nimport { changeLanguage, reselectLocaleCode } from 'store/localize';\r\nimport {\r\n reselectUser,\r\n selectAdminFilters,\r\n setCurrentUserAdminFilters,\r\n selectAppliedAdminFilters\r\n} from 'store/auth';\r\nimport { Button, Confirmation, Dialog } from 'components';\r\nimport { useOnMount } from 'shared/hooks';\r\nimport { SidePanel } from 'features/SidePanel/SidePanel';\r\nimport { apiService } from 'shared/services';\r\nimport { errorException } from 'shared/utils/AppInsights';\r\nimport styles from './OnboardingPage.module.css';\r\nimport { selectProductCode } from '../../../store/product/product.selectors';\r\nimport { Pagination } from '../../../components/Pagination/Pagination';\r\nimport { OnboardingFilters, USER_ROLES, UserRoles } from './OnboardingFilters/OnboardingFilters';\r\nimport {\r\n selectAdminUsersPagination,\r\n selectHadCreatedAdmin,\r\n selectHeaderForAllTile,\r\n adminSorter,\r\n selectHeaderForTenantTile,\r\n selectHeaderForProductTile,\r\n} from '../../../store/onboarding/onboarding.selectors';\r\nimport {\r\n getUsersForOnboarding,\r\n resedCreatedAdmin,\r\n updateColumnSorting,\r\n} from '../../../store/onboarding/onboarding.actions';\r\nimport { OnboardingPageTable } from './OnboardingPageTable/OnboardingPageTable';\r\nimport { ThemedButton } from '../../../components/ThemedButton/ThemedButton';\r\nimport { DeleteAdminModal } from './DeleteAdminModal/DeleteAdminModal';\r\nimport { selectIsFirstAdminFiltersInit } from '../../../store/auth/auth.selectors';\r\nimport { ConfigureRetentionDialog } from './dialogs/ConfigureRetentionDialog/ConfigureRetentionDialog';\r\nimport saveRetentionSvg from '../../../assets/images/save-retention.svg';\r\nimport information from '../../../assets/images/Information.png';\r\nimport { UserProductsSelect } from '../UserProductsSelect/UserProductsSelect';\r\nimport { OnboardingCreation } from '../OnboardingCreation/OnboardingCreation';\r\nimport { FilterBadge } from '../SubmissionsFilters/FilterBadge/FilterBadge';\r\n\r\nexport const OnboardingPage: FC = () => {\r\n const dispatch = useDispatch();\r\n const productCode = useSelector(selectProductCode);\r\n const userPagination = useSelector(selectAdminUsersPagination);\r\n const [pageSize, setPageSize] = useState(25);\r\n const user = useSelector(reselectUser);\r\n const [pageNumber, setPageNumber] = useState(1);\r\n const hadCreatedAdmin = useSelector(selectHadCreatedAdmin);\r\n const userFilters = useSelector(selectAdminFilters);\r\n const selectedAdminFilters = useSelector(selectAppliedAdminFilters);\r\n const [isToastOpen, setIsToastOpen] = useState(false);\r\n const [adminForDeletion, setAdminForDeletion] = useState(null);\r\n const [isAdminDeleted, setAdminDeletedFlag] = useState(false);\r\n const [errorOnDeleteAdmin, setDeleteAdminErrorFlag] = useState(false);\r\n const [isAdminCreated, setAdminCreateFlag] = useState(false);\r\n const allTileHeaders = useSelector(selectHeaderForAllTile);\r\n const tenantTileHeaders = useSelector(selectHeaderForTenantTile);\r\n const productTileHeaders = useSelector(selectHeaderForProductTile);\r\n const sorter = useSelector(adminSorter);\r\n const filtersRef = useRef();\r\n const showFilters: DTO.FilterFields[] = [userFilters.role !== UserRoles.whitelistedInternalUser ? 'Admin Name' : 'User Name', userFilters.role !== UserRoles.whitelistedInternalUser ? 'Admin Email' : 'Email', userFilters.role !== UserRoles.superAdmin && 'Country'];\r\n const { t } = useTranslation();\r\n const [hasRequestedUsers, setHasRequestedUsers] = useState(false);\r\n const isFirstInit = useSelector(selectIsFirstAdminFiltersInit);\r\n const storeAdminRole = JSON.parse(localStorage.getItem('adminRole'));\r\n const [isOpenConfigureRetentionDialog, setOpenConfigureRetentionDialog] = React.useState<\r\n boolean\r\n >(false);\r\n const [isAddAdminDialogOpen, setAddAdminDialogOpen] = React.useState(false);\r\n const [confirmCancel, setconfirmCancel] = useState(false);\r\n const [saveSuccess, setsaveSuccess] = useState('');\r\n const [showDialog, setShowDialogFlag] = useState(false);\r\n const [userDeleted, setUserDeleted] = useState(null);\r\n const [dialogMessage, setDialogMessage] = useState('');\r\n\r\n // remove cache for highlighted subscription item\r\n // when Admin tab get clicked\r\n useEffect(() => {\r\n removeFromLocalStorage('recentUserEmail');\r\n }, []);\r\n useOnMount(\r\n useCallback((): void => {\r\n if (user.profileSettings) {\r\n localStorage.setItem('storeLanguage', JSON.stringify(user.profileSettings.language));\r\n dispatch(changeLanguage(user.profileSettings.language));\r\n }\r\n }, [dispatch, user.profileSettings])\r\n );\r\n useEffect(() => {\r\n if (hadCreatedAdmin) {\r\n setIsToastOpen(true);\r\n setAdminCreateFlag(true);\r\n dispatch(resedCreatedAdmin());\r\n } else if (isAdminDeleted || errorOnDeleteAdmin) {\r\n setIsToastOpen(true);\r\n setAdminCreateFlag(false);\r\n }\r\n else if (saveSuccess) {\r\n setIsToastOpen(true);\r\n setAdminCreateFlag(false);\r\n }\r\n\r\n }, [dispatch, hadCreatedAdmin, isAdminDeleted, errorOnDeleteAdmin, saveSuccess]);\r\n\r\n const openDeletePopup = (userData: DTO.AdminUser) => {\r\n setAdminForDeletion(userData);\r\n setUserDeleted(userData);\r\n };\r\n\r\n const setToastMessage = () => {\r\n let message = '';\r\n console.log('hadCreatedAdmin: ', hadCreatedAdmin);\r\n if (isAdminCreated) {\r\n message = t(`admin.onboarding.adminCreation.toastText.${storeAdminRole}`);\r\n } else if (isAdminDeleted) {\r\n if (parseInt(userDeleted.roleId, 10) === 7) {\r\n message = t(`admin.onboarding.adminCreation.toastText.deleteWhitelisteUserSuccess`);\r\n }\r\n else {\r\n message = t(`admin.onboarding.adminCreation.toastText.deleteAdminSuccess`);\r\n }\r\n } else if (errorOnDeleteAdmin) {\r\n message = t(`admin.onboarding.adminCreation.toastText.deleteAdminErrorUnautorized`);\r\n }\r\n else if (saveSuccess) {\r\n message = t(`admin.onboarding.retentionSaveSuccessMsg`);\r\n }\r\n // AppInsights Error Exception\r\n errorException(`Error: ${message}, File reference: OnboardingPage.tsx in setToastMessage function`);\r\n\r\n return message;\r\n };\r\n\r\n const handleHideDeletionPopup = () => setAdminForDeletion(null);\r\n\r\n const requestForUsers = useCallback(() => {\r\n const { role } = user;\r\n if (!productCode) {\r\n return;\r\n }\r\n const countryIds =\r\n userFilters.countryCode && userFilters.countryCode.length\r\n ? userFilters.countryCode.map(country => country.id)\r\n : [];\r\n\r\n const emails =\r\n userFilters.emails && userFilters.emails.length\r\n ? userFilters.emails.map(item => item.email)\r\n : [];\r\n\r\n const displayName =\r\n userFilters.displayName && userFilters.displayName.length\r\n ? userFilters.displayName.map(item => item.fullName)\r\n : null;\r\n\r\n dispatch(\r\n getUsersForOnboarding(\r\n productCode,\r\n pageSize || 25,\r\n pageNumber,\r\n {\r\n emails,\r\n displayName,\r\n countryIds,\r\n role: userFilters.role\r\n },\r\n sorter,\r\n hasRequestedUsers,\r\n role\r\n )\r\n );\r\n if (!hasRequestedUsers) setHasRequestedUsers(true);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dispatch, pageNumber, pageSize, productCode, sorter, userFilters]);\r\n\r\n const handleDelete = (email: string) => {\r\n apiService.deleteAdmin(email, productCode).then(() => {\r\n requestForUsers();\r\n setAdminDeletedFlag(true);\r\n setAdminCreateFlag(false);\r\n setsaveSuccess('');\r\n }).catch((ex) => {\r\n console.log('status ok: ', ex.ok, ', statusText: ', ex.StatusText);\r\n setAdminDeletedFlag(false);\r\n setDeleteAdminErrorFlag(true);\r\n // AppInsights Error Exception\r\n errorException(`Error: ${ex}, File reference: OnboardingPage.tsx in handleDelete function`);\r\n\r\n }).finally(() => {\r\n setIsToastOpen(true);\r\n setAdminForDeletion(null);\r\n });\r\n };\r\n\r\n const handleCloseConfigureRetentionDialog = React.useCallback((): void => {\r\n setconfirmCancel(true);\r\n setOpenConfigureRetentionDialog(false);\r\n }, []);\r\n\r\n const handleCloseAdminDialog = () => {\r\n setAddAdminDialogOpen(false);\r\n setAdminDeletedFlag(false);\r\n setsaveSuccess('');\r\n setIsToastOpen(false);\r\n setAdminCreateFlag(true);\r\n setDeleteAdminErrorFlag(false);\r\n requestForUsers();\r\n\r\n };\r\n\r\n const handleConfirmSaveRetention = React.useCallback((payload: DTO.UpdateRetentionDto): Promise => {\r\n setOpenConfigureRetentionDialog(false);\r\n apiService.updateRetentionDetails(payload).then((res: any) => {\r\n if (res) {\r\n setsaveSuccess(res);\r\n setAdminDeletedFlag(false);\r\n setAdminCreateFlag(false);\r\n setIsToastOpen(true);\r\n } else {\r\n setShowDialogFlag(true);\r\n }\r\n console.log(res);\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n // AppInsights Error Exception\r\n errorException(`Error: ${err}, File reference: OnboardingPage.tsx in handleConfirmSaveRetention function`);\r\n });\r\n return null;\r\n }, []);\r\n\r\n const handleOnClose = React.useCallback((): void => {\r\n setShowDialogFlag(false);\r\n setAdminDeletedFlag(false);\r\n setsaveSuccess('');\r\n }, [setShowDialogFlag]);\r\n\r\n const [actions] = React.useState([\r\n {\r\n label: t('actions.ok'),\r\n variant: 'primary',\r\n onClick: handleOnClose\r\n }\r\n ]);\r\n\r\n useEffect(() => {\r\n requestForUsers();\r\n }, [\r\n dispatch,\r\n pageNumber,\r\n pageSize,\r\n productCode,\r\n userFilters,\r\n sorter,\r\n requestForUsers\r\n ]);\r\n\r\n const handleSortOnChange = useCallback(\r\n (sortBy: string, sortDirection: AP.SortDirection): void => {\r\n dispatch(\r\n updateColumnSorting(sortBy, sortDirection, userFilters.role || 0)\r\n );\r\n },\r\n [dispatch, userFilters.role]\r\n );\r\n\r\n const setFilters = useCallback(\r\n (filters: DTO.UserFilters) => {\r\n dispatch(setCurrentUserAdminFilters(filters));\r\n },\r\n [dispatch]\r\n );\r\n\r\n const handleOnResolve = React.useCallback(() => {\r\n setconfirmCancel(false);\r\n }, [setconfirmCancel]);\r\n\r\n const handleOnReject = React.useCallback((): void => {\r\n setconfirmCancel(false);\r\n setOpenConfigureRetentionDialog(true);\r\n }, []);\r\n\r\n const removeFilter = (key: any, filterToRemove: any) => {\r\n const tempFilter = userFilters[key as keyof typeof userFilters];\r\n\r\n setFilters({\r\n ...userFilters,\r\n [key]: (tempFilter as any).filter((item: any) => !Object.values(item).includes(filterToRemove))\r\n });\r\n };\r\n\r\n const appliedFiltersValue = (filterArr: any) => {\r\n if (filterArr.some((item: any) => item.value.length > 0)) {\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n };\r\n\r\n useEffect(() => {\r\n if (\r\n !user.profileSettings ||\r\n !user.profileSettings.adminFilter ||\r\n !isFirstInit\r\n )\r\n return;\r\n const { adminFilter } = user.profileSettings;\r\n\r\n const emails = adminFilter.emails\r\n ? adminFilter.emails.map(email => ({ email }))\r\n : [];\r\n const rolesMap: Record = {\r\n superAdmin: 1,\r\n productGroupAdmin: 2,\r\n productAdmin: 3,\r\n memberFirmAdmin: 4,\r\n countryAdmin: 5,\r\n user: 6,\r\n whitelistedInternalUser: 7\r\n };\r\n\r\n const filters = {\r\n countryCode: adminFilter.countries,\r\n emails,\r\n role: adminFilter.role ? rolesMap[adminFilter.role] : 0,\r\n displayName: adminFilter.displayName\r\n };\r\n setFilters(filters);\r\n }, [isFirstInit, setFilters, user]);\r\n return (\r\n
\r\n \r\n
\r\n {/* {t('app.name')} */}\r\n
\r\n

{user.role !== USER_ROLES.SUPER_ADMIN ? t('onboarding.productManage') : t('onboarding.manage') }

\r\n
\r\n {user.role !== USER_ROLES.SUPER_ADMIN && }\r\n setOpenConfigureRetentionDialog(true)}\r\n >\r\n {t('onboarding.configureRetention')}\r\n \r\n setAddAdminDialogOpen(true)}\r\n >\r\n {user.role !== USER_ROLES.SUPER_ADMIN ? t('onboarding.addProductAdmin') : t('onboarding.addAdmin')}\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {selectedAdminFilters ? (\r\n appliedFiltersValue(selectedAdminFilters)\r\n ) :\r\n null}\r\n \r\n {userPagination.items.length ? (\r\n {\r\n setPageNumber(page);\r\n }}\r\n onPageSizeChange={size => {\r\n setPageSize(size);\r\n }}\r\n />\r\n ) : null}\r\n \r\n
\r\n
\r\n setIsToastOpen(false)}\r\n >\r\n \r\n information\r\n
\r\n {(\r\n setToastMessage()\r\n )}\r\n
\r\n setIsToastOpen(false)}\r\n >\r\n \r\n \r\n
\r\n \r\n {isOpenConfigureRetentionDialog && (\r\n \r\n )}\r\n {\r\n isAddAdminDialogOpen && (\r\n \r\n )\r\n }\r\n {confirmCancel ? (\r\n \r\n ) : null}\r\n console.log('onClosed')}\r\n onHide={handleOnClose}\r\n >\r\n \r\n {t('dialogs.retentionFailureMsg.message')}\r\n \r\n \r\n
\r\n );\r\n};\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAEBSURBVHgBpVPLEYIwEH0b4W4JUoGWoBVoAx7swA7UDrQCDzagFWgJ6QBK8C667gYRBhNl8M0QJtl9b7OfEJrYp2PEZgrwDIyBOyNYWSxujw0WSVZ3pxqxj55ZgXiJbyDavoSulYCSYzpLxBHaQG9044mKGHegkX3knBP3NaG+sXCc1j4dIKLUG6kkh+2TyCkxe+1B4tuOmRFyOO9QCiWIppH8wgJlyw6Z3y5tNvgTRsqYoTuswZ1P6AoiSzjI6EKGyIffbUwM5slFqrHzOigx2ErhSJGLIuZYy2rRHvbFQSGgD0OmKniTZuS8eAe6ow+7G21VpyHKGdFOsSv2sUi5whNWQmOOcZrzygAAAABJRU5ErkJggg==\"","import React, { FC, Fragment } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { Footer } from 'features/Footer/Footer';\r\nimport { ConfirmDialog } from 'components';\r\nimport { reselectUser, selectIsFirstLogin } from 'store/auth';\r\nimport { AppUserNav } from 'features/AppLayout';\r\nimport { confirmDialogConfig } from '../AdminPage';\r\nimport { OnboardingPage } from './OnboardingPage';\r\nimport { UserMenu } from '../UserMenu/UserMenu';\r\nimport { UserProductsSelect } from '../UserProductsSelect/UserProductsSelect';\r\nimport { USER_ROLES } from './OnboardingFilters/OnboardingFilters';\r\nimport styles from './OnboardingPage.module.css';\r\n\r\nexport const OnboardingPageWithNav: FC = () => {\r\n const user = useSelector(reselectUser);\r\n const isFirstLogin = useSelector(selectIsFirstLogin);\r\n const [showSettings, setShowSettings] = React.useState(true);\r\n\r\n const closeModal = () => {\r\n setShowSettings(false);\r\n };\r\n return (\r\n \r\n {isFirstLogin && (\r\n \r\n )}\r\n {user.profileSettings && (\r\n \r\n \r\n {/* {user.role !== USER_ROLES.SUPER_ADMIN && } */}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {/*