{"version":3,"sources":["_metronic/i18n/Metronici18n.tsx","app/shared/components/kendo/format/AmountFormatCell.tsx","_metronic/partials/layout/header-menus/Languages.tsx","_metronic/partials/layout/header-menus/HeaderUserMenu.tsx","_metronic/partials/chat/ChatInner.tsx","_metronic/partials/content/fallback-view/FallbackView.tsx","_metronic/partials/modals/create-app/Main.tsx","app/modules/transactions/api/index.tsx","_metronic/helpers/AssetHelpers.ts","_metronic/layout/core/DefaultLayoutConfig.ts","_metronic/layout/core/LayoutProvider.tsx","app/modules/feature-flag/FeatureFlagProvider.tsx","app/modules/client/constant/config-default.ts","app/shared/components/kendo/format/UppercaseFirstLetter.tsx","_metronic/layout/core/PageData.tsx","app/shared/service/redux-store.ts","_metronic/layout/core/MetronicSplashScreen.tsx","app/modules/orders/constant/item-default.ts","app/shared/service/utils.ts","app/modules/orders/api/ItemApi.tsx","_metronic/partials/content/dropdown/Dropdown2.tsx","app/modules/transactions/transformers/transaction-transformer.ts","_metronic/partials/content/button/modal/ButtonModal.tsx","app/modules/transactions/context/TransactionContext.tsx","app/modules/client/api/ClientApi.tsx","_metronic/assets/ts/_utils/_ElementStyleUtil.ts","_metronic/assets/ts/_utils/_DataUtil.ts","_metronic/assets/ts/_utils/_TypesHelpers.ts","_metronic/assets/ts/_utils/_DOMEventHandlerUtil.ts","_metronic/assets/ts/_utils/ElementAnimateUtil.ts","_metronic/assets/ts/_utils/DomHelpers.ts","_metronic/assets/ts/_utils/EventHandlerUtil.ts","app/modules/roles/constant/role-default.ts","app/modules/transactions/validators/transaction-form.ts","app/modules/transactions/components/partials/RejectTransactionModal.tsx","app/modules/transactions/components/partials/AuthorizeForm.tsx","app/modules/transactions/components/partials/AuthorizeTransactionModal.tsx","_metronic/assets/ts/components/_CookieComponent.ts","_metronic/assets/ts/components/_DrawerComponent.ts","_metronic/assets/ts/components/_ImageInputComponent.ts","_metronic/assets/ts/components/_ScrollComponent.ts","_metronic/assets/ts/components/_ScrollTopComponent.ts","_metronic/assets/ts/components/_StepperComponent.ts","_metronic/assets/ts/components/_StickyComponent.ts","_metronic/assets/ts/components/_ToggleComponent.ts","_metronic/assets/ts/components/_PasswordMeterComponent.ts","_metronic/assets/ts/components/_SwapperComponent.ts","_metronic/assets/ts/components/MenuComponent.ts","_metronic/assets/ts/components/SearchComponent.ts","app/context/api/features.ts","app/context/FeatureFlags.tsx","_metronic/helpers/RouterHelpers.ts","_metronic/helpers/components/KTSVG.tsx","_metronic/helpers/dataExamples.ts","_metronic/i18n/kendoToolI18Provider.tsx","_metronic/i18n/kendoI18Provider.tsx","_metronic/partials/content/dropdown/Dropdown1.tsx","app/modules/transactions/constants/default.ts","_metronic/layout/core/LayoutSetup.ts","app/shared/components/kendo/format/DateFormatCell.tsx","app/modules/auth/redux/AuthRedux.ts","app/modules/auth/redux/AuthCRUD.ts","app/modules/client/transformer/client-transform.ts","app/modules/auth/components/Registration.tsx","app/modules/auth/components/ForgotPassword.tsx","app/modules/auth/components/ResetPassword.tsx","app/modules/auth/components/Login2Fa.tsx","app/modules/auth/components/Login.tsx","app/modules/auth/components/LoginPage.tsx","app/modules/auth/AuthPage.tsx","app/modules/auth/Logout.tsx","app/modules/auth/redux/AuthInit.tsx","setup/redux/RootReducer.ts","setup/redux/Store.ts","_metronic/i18n/i18nProvider.tsx","_metronic/layout/components/aside/AsideMenuItem.tsx","_metronic/layout/components/aside/AsideMenuItemWithSub.tsx","_metronic/layout/components/aside/AsideMenuMain.tsx","_metronic/layout/components/aside/AsideMenu.tsx","_metronic/layout/components/aside/AsideDefault.tsx","_metronic/layout/components/Footer.tsx","_metronic/layout/components/header/Header.tsx","_metronic/layout/components/header/page-title/DefaultTitle.tsx","_metronic/layout/components/header/Topbar.tsx","_metronic/layout/components/header/HeaderWrapper.tsx","_metronic/layout/components/toolbar/Toolbar1.tsx","_metronic/layout/components/toolbar/Toolbar.tsx","_metronic/layout/components/Content.tsx","_metronic/layout/MasterLayout.tsx","app/pages/MenuTestPage.tsx","app/pages/item/ItemWrapper.tsx","app/modules/debit-dashboard/components/partials/BPayDetail.tsx","app/modules/debit-dashboard/api/index.tsx","app/modules/debit-dashboard/components/partials/OrderList.tsx","app/modules/debit-dashboard/components/partials/Form.tsx","app/modules/debit-dashboard/components/Wrapper.tsx","app/modules/debit-dashboard/constant/default.ts","app/modules/debit-dashboard/context/index.tsx","app/modules/debit-dashboard/DebitDashboardPage.tsx","app/modules/client/constant/client-default.ts","app/modules/my-profile/components/partials/PersonalData.tsx","app/modules/client/constant/countries.ts","app/modules/my-profile/components/partials/PersonalCommonData.tsx","app/modules/my-profile/components/partials/BankDetailSection.tsx","app/modules/my-profile/components/partials/DirectDebit.tsx","app/modules/client/constant/date.ts","app/modules/my-profile/components/partials/CustomCalendar.tsx","app/modules/my-profile/components/partials/PaymentTerm.tsx","app/modules/my-profile/components/partials/Agreement.tsx","app/modules/my-profile/constant/default.ts","app/modules/my-profile/context/index.tsx","app/modules/my-profile/validators/client-form.ts","app/modules/client/components/partials/debit-pdf-form/common/config.tsx","app/modules/client/components/partials/debit-pdf-form/common/Title.tsx","app/modules/client/components/partials/debit-pdf-form/common/Row.tsx","app/modules/client/components/partials/debit-pdf-form/common/SectionHeader.tsx","app/modules/client/components/partials/debit-pdf-form/common/Field.tsx","app/modules/client/components/partials/debit-pdf-form/common/Label.tsx","app/modules/client/components/partials/debit-pdf-form/components/ListText.tsx","app/modules/client/components/partials/debit-pdf-form/DirectDebitAgreementPDF.tsx","app/modules/my-profile/components/partials/Form.tsx","app/modules/my-profile/components/Wrapper.tsx","app/modules/my-profile/MyProfilePage.tsx","app/modules/client/context/ClientContext.tsx","app/shared/components/kendo/format/NoValueFormatCell.tsx","app/modules/client/components/partials/ClientList.tsx","app/modules/client/validators/bank-form.ts","app/modules/client/validators/client-form.ts","app/modules/client/components/partials/client-form/PersonalData.tsx","app/modules/client/components/partials/client-form/IdentifyData.tsx","app/modules/client/components/partials/client-form/StatusData.tsx","app/modules/client/components/partials/client-form/DirectDebit.tsx","app/modules/client/components/partials/client-form/BankDetailSection.tsx","app/modules/client/components/partials/client-form/PersonalCommonData.tsx","app/modules/client/components/partials/client-form/CustomCalendar.tsx","app/modules/client/components/partials/client-form/PaymentTerm.tsx","app/modules/client/components/partials/ClientFormFields.tsx","app/modules/client/components/partials/DeleteClientModal.tsx","app/modules/client/components/partials/ClientForm.tsx","app/modules/client/CreateClientPage.tsx","app/modules/client/EditClientPage.tsx","app/modules/client/components/partials/client-profile/ClientProfile.tsx","app/modules/client/components/partials/client-profile/ClientWallet.tsx","app/modules/client/components/partials/client-profile/ClientOrders.tsx","app/modules/client/components/partials/client-profile/ClientTransactions.tsx","app/modules/client/components/partials/client-profile/ClientFile.tsx","app/modules/client/components/partials/client-profile/ClientPoc.tsx","app/modules/client/components/partials/client-profile/ClientPayIns.tsx","app/modules/client/components/partials/client-profile/ClientProfileDashboard.tsx","app/modules/client/components/ClientProfileWrapper.tsx","app/modules/client/ClientProfilePage.tsx","app/modules/client/ClientPage.tsx","app/routing/ActivatedPageRoute.tsx","app/routing/ActivePageBasedRedirect.tsx","app/routing/PrivateRoutes.tsx","app/modules/errors/components/Error500.tsx","app/modules/errors/components/Error404.tsx","app/modules/errors/ErrorsPage.tsx","_metronic/layout/MasterInit.tsx","app/modules/client/validators/direct-debit-form.ts","_metronic/partials/modals/DirectDebitModal.tsx","app/modules/client/components/partials/DirectDebitForm.tsx","app/modules/client/DirectDebitPage.tsx","app/routing/Routes.tsx","app/App.tsx","index.tsx","setup/axios/SetupAxios.ts","app/shared/components/CustomAlert.tsx"],"names":["I18N_CONFIG_KEY","process","REACT_APP_I18N_CONFIG_KEY","initialState","selectedLang","setLanguage","lang","localStorage","setItem","JSON","stringify","window","location","reload","I18nContext","createContext","useLang","useContext","MetronicI18nProvider","children","ls","getItem","parse","er","console","error","getConfig","Provider","value","AmountFormatCell","cellProps","dataItem","field","props","dataValue","AmountFormatter","currency","languages","name","flag","toAbsoluteUrl","Languages","currentLanguage","find","x","className","href","src","alt","map","l","onClick","clsx","active","HeaderUserMenu","intl","useIntl","user","useSelector","auth","shallowEqual","features","useFeatureFlags","isMultiLanguageFeatureEnabled","setIsMultiLanguageFeatureEnabled","React","useState","dispatch","useDispatch","useEffect","some","feature","firstName","lastName","email","logout","formatMessage","id","bufferMessages","defaultMessages","ChatInner","isDrawer","chatUpdateFlag","toggleChatUpdateFlat","message","setMessage","messages","setMessages","userInfos","defaultUserInfos","sendMessage","newMessage","type","text","time","push","setTimeout","messageFromClient","index","userInfo","state","templateAttr","template","Object","defineProperty","contentClass","avatar","dangerouslySetInnerHTML","__html","rows","placeholder","onChange","e","target","onKeyDown","keyCode","shiftKey","preventDefault","title","FallbackView","inits","appName","category","framework","dbName","dbType","nameOnCard","cardNumber","cardExpiryMonth","cardExpiryYear","cardCvv","saveCard","createAppSchema","Yup","required","label","Main","stepperRef","useRef","stepper","currentSchema","setCurrentSchema","initValues","prevStep","current","goPrev","currentStepIndex","StepperComponent","createInsance","path","ref","validationSchema","initialValues","onSubmit","values","actions","totatStepsNumber","goNext","goto","resetForm","noValidate","as","TRANSACTION_URL","CLIENT_URL","getTransactions","async","skip","take","pageSort","objectFilter","transactionType","status","clientName","bankAccount","amount","zaiDisbursementId","zaiReferenceId","axios","get","params","sort","dir","err","createTransaction","payload","form","data","post","log","authorizeTransaction","getAllClientsWithType","clientType","isMasterWalletDefault","response","search","getClientBankList","clientId","getMasterClientBank","generateTransactionPdf","headers","deleteTransaction","delete","rejectTransaction","patch","pathname","DefaultLayoutConfig","main","primaryColor","darkSkinEnabled","loader","display","scrolltop","header","width","left","fixed","desktop","tabletAndMobile","menuIcon","megaMenu","aside","theme","menu","minimized","minimize","hoverable","content","layout","toolbar","tabletAndMobileMode","layouts","toolbar1","height","heightAndTabletMobileMode","toolbar2","toolbar3","toolbar4","toolbar5","footer","pageTitle","breadCrumbs","description","direction","responsive","responsiveBreakpoint","responsiveTarget","LayoutContext","config","classes","getEmptyCssClasses","attributes","getEmptyHTMLAttributes","cssVariables","getEmptyCSSVariables","setLayout","disableSplashScreen","splashScreen","document","getElementById","style","setProperty","LayoutProvider","setConfig","LayoutSetup","setClasses","setAttributes","setCSSVariables","_themeConfig","enableSplashScreen","Array","from","body","classList","forEach","cl","remove","updatePartialConfig","assign","useLayout","FeatureFlagProvider","featureName","isEnabled","setIsEnabled","ClientProfileTab","Initial_GridSetup","filter","logic","filters","filterOperators","operator","FIELD_COLUMN_MAP","FIELD_DEFAULT","PAYINS_FIELD_DEFAULT","FILTER_DEFAULT","ClientType","PaymentCycleType","UppercaseFirstLetter","charAt","toUpperCase","slice","trim","PageDataContext","setPageTitle","_title","setPageBreadcrumbs","_breadcrumbs","setPageDescription","_description","setCurrentUser","_userModel","currentUser","username","password","userRoleDisplay","isResetPasswordRequired","isCreatedByDebit","activePages","PageDataProvider","pageDescription","pageBreadcrumbs","usePageData","PageTitle","breadcrumbs","toString","MetronicSplashScreenContext","undefined","LayoutSplashScreen","visible","setCount","prev","ITEM_FORM_DEFAULT","uuid","buyerId","sellerId","rootAmount","conversionRate","internalCurrencyId","paymentType","orderType","isOrderDataFeatureEnabled","fromJobSched","ITEMDATA_FORM_DEFAULT","buyerName","sellerName","orderTypeName","createdDate","Date","updatedDate","objectMap","sortMap","STATUS","success","TOASTER_DEFAULT","AVALIABLECLIENT_DEFAULT","unqId","isMasterWallet","transactionStatus","hasPermission","permission","page","toObjectExpression","toLinQExpression","newValue","dateFormat","date","moment","format","formattedNumber","Intl","NumberFormat","maximumFractionDigits","indexOf","decIndex","substring","length","serializeErrorResponse","sMessage","isJsonString","serializeMessage","errorMessage","errors","keys","key","entries","nKey","replace","transactionStatusMasking","resStatus","downloadFileFromBase64","base64PDFData","fileName","mimeType","binaryData","atob","blob","Blob","Uint8Array","char","charCodeAt","url","URL","createObjectURL","a","createElement","download","click","revokeObjectURL","blockNonNumericChars","event","test","getUTCDate","startDate","currentDate","getDate","getMonth","getFullYear","utcDate","toISOString","getUTCHours","getUTCMinutes","getHours","getMinutes","getErrorMessage","defaultErrorMessage","deepCopy","obj","isArray","newObj","hasOwnProperty","getDateWithTimeString","mm","padStart","dd","yy","substr","hr","min","ORDER_URL","MASTER_WALLET_URL","CURRENCY_URL","getOrders","offset","limit","userId","debitAmount","paymentCycleName","getAvailableClients","keyword","getCurrencies","getCurrentCurrencies","createItem","updateItem","put","reRunItem","getMasterUser","authorizeOrder","generateCsv","Dropdown2","transformDataClient","client","transformDataToBankInfo","bank","zaiBankId","bankName","bsb","accountNumber","accountName","transformDataToBankInfoFromMasterWallet","bankInfo","client_id","bank_name","bsb1","bsb2","bankAccountNumber","account_number","bankAccountName","account_name","bankBranch","bank_branch","bankDescription","bank_description","transformSaveClient","option","transformTransactionFilter","newFilter","ft","fieldMap","cln","transformTransactinSort","configSort","sortField","transformClientBankListToBankOptions","banks","bankOptions","ButtonModal","proceedHandler","cancelHandler","Fragment","TransactionContext","masterUser","selectedData","TRANSACTION_FORM_DEFAULT","setSelectedData","contextToaster","setContextToaster","clientOptions","getAllClientsWithTypeAsync","getMasterUserAsync","fetchingClient","fetchingMasteUser","TransactionContextProvider","setClientOptions","setMasterUser","loading","useAsyncFn","args","clients","items","useMemo","BANK_URL","BDM_URL","CLIENTVIRTUALACCOUNT_URL","PAYIN_URL","getClientListWithPagination","createClient","formData","updateClient","deleteClient","directDebitCreateClient","getClientProfileById","companyId","getBankList","getBDMList","getClientTransactions","getClientById","createVirtualAccount","getPayIdsByClientPagination","ElementStyleUtil","set","element","property","important","attributeName","getPropertyValue","attibuteName","removeProperty","DataUtil","instance","instanceData","store","newMap","Map","has","getAllInstancesByKey","result","val","v","k","getObjectPropertyValueByKey","getUniqueIdWithPrefix","prefix","Math","floor","random","getTime","stringSnakeToCamel","str","m","DOMEventHandlerUtil","on","selector","eventName","callBack","eventId","targets","querySelectorAll","i","call","parentElement","addEventListener","off","funcFromStore","removeEventListener","one","calee","currentTarget","ElementAnimateUtil","animate","to","duration","update","complete","easings","t","b","c","d","change","start","performance","now","requestAnimationFrame","loop","timestamp","animateClass","animationName","animateClasses","split","cssClass","add","transitionEnd","animationEnd","animationDelay","animationDuration","scrollTo","targetPos","getElementOffset","top","scrollPos","pageYOffset","documentElement","scrollTop","getCSS","el","styleProp","defaultView","ownerDocument","toLowerCase","getComputedStyle","getCSSVariableValue","variableName","hex","getElementActualCss","prop","cache","css","getAttribute","cssText","offsetWidth","offsetHeight","setAttribute","parseFloat","attributeValue","getElementIndex","parentNode","getElementMatches","p","Element","prototype","f","matches","webkitMatchesSelector","tagName","getClientRects","rect","getBoundingClientRect","win","pageXOffset","getElementParents","s","this","item","parents","getHighestZindex","bufferNode","buffer","position","parseInt","isNaN","getScrollTop","scrollingElement","getViewPort","innerWidth","innerHeight","insertAfterElement","referenceNode","insertBefore","nextSibling","isVisibleElement","throttle","timer","func","delay","getElementChild","childNodes","child","nodeType","getElementChildren","slide","speed","callback","calcHeight","getElementActualHeight","calcPaddingTop","calcPaddingBottom","paddingTop","paddingBottom","overflow","slideUp","slideDown","getBreakpoint","breakpoint","getAttributeValueByBreakpoint","incomingAttr","jsonStr","join","matched","toJSON","resultKey","resultBreakpoint","EventHandlerUtil","setEventMetasByName","metas","getEventMetasByName","setEventMetaByNameAndHandlerId","handlerId","meta","getEventsMetaByHandlerId","setFiredByNameAndHandlerId","handerId","fired","addEvent","removeEvent","trigger","handler","ROLE_FORM_DEFAULT","displayId","PAGE_PERMISSION","transactionFormValidationSchema","yup","shape","RejectTransactionModal","show","handleClose","transactionData","Modal","onHide","size","Header","closeButton","Title","Body","Footer","then","AuthorizeForm","onClose","formNotification","setformNotification","isProcessing","setIsProcessing","modalDeleteTransactionShow","setModalDeleteTransactionShow","register","control","handleSubmit","formState","reset","useForm","defaultValues","reValidateMode","resolver","yupResolver","CustomAlert","closeToaster","onReset","htmlFor","readOnly","amountFormatted","disabled","AuthorizeTransactionModal","saveCallback","CookieComponent","cookie","match","RegExp","decodeURIComponent","cookieOptions","options","expires","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","DrawerStore","instanceId","drawerComponentObj","getAllInstances","defaultDrawerOptions","overlay","baseClass","overlayClass","DrawerComponent","constructor","_element","overlayElement","toggleElement","instanceUid","shown","lastWidth","closeElement","_handlers","togglers","_getOption","closers","_toggle","_hide","_update","String","hasBaseClass","contains","bodyCanvasAttr","attr","optionName","_show","_deleteOverlay","removeAttribute","_createOverlay","elementZIndex","overlayZindex","append","overlayClassOption","removeChild","_getDirection","_getWidth","toggle","hide","isShown","goElement","createInstances","drawer","getInstance","initGlobalHandlers","hasInstace","elementId","hideAll","dr","updateAll","handleDismiss","closest","bootstrap","reinitialization","defaultImageInputOptions","defaultImageInputQueires","componentName","instanseQuery","inputQuery","wrapperQuery","cancelQuery","removeQuery","hiddenQuery","ImageInputComponent","_options","_queries","inputElement","wrapperElement","cancelElement","removeElement","hiddenElement","queries","uid","_change","files","reader","FileReader","onload","readAsDataURL","_cancel","_remove","querySelector","handlers","getInputElement","getElement","ImageInput","defaultScrollOptions","saveState","ScrollComponent","getOption","hasAttribute","getHeightType","getAutoHeight","dependencies","wrappers","elements","len","borderTop","borderBottom","setupHeight","getHeight","heightType","setupState","pos","setupScrollHandler","scrollHandler","cookieId","destroyScrollHandler","resetHeight","heghtType","Function","scroll","destroyAll","resize","createInstance","defaultScrollTopOptions","ScrollTopComponent","_scroll","_go","go","goTop","defaultStepperOptions","startIndex","animation","animationSpeed","animationNextClass","animationPreviousClass","steps","btnNext","btnPrev","btnSubmit","passedStepIndex","_goTo","refreshUI","initHandlers","stepDirection","_getStepDirection","getStepContent","getLastStepIndex","getTotalStepsNumber","isLastStep","isFirstStep","isBetweenStep","getNextStepIndex","getPrevStepIndex","goFirst","goLast","getCurrentStepIndex","getPassedStepIndex","destroy","defaultStickyOptions","reverse","animationClass","StickyComponent","instanceName","eventTriggerState","lastScrollTop","offsetNum","st","enable","disable","dataStickyAttr","attrValueInStr","attrValue","zindex","widthTarget","targetElement","offsetLeft","sticky","reInitialization","defaultToggleOptions","ToggleComponent","attribute","_isEnabled","_disable","_enable","elementTargetAttr","elementToggleAttr","defaultPasswordMeterOptions","minLength","checkUppercase","checkLowercase","checkDigit","checkChar","scoreHighlightClass","defaultPasswordMeterQueires","visibilityQuery","highlightQuery","PasswordMeterComponent","visibilityElement","highlightElement","score","checkSteps","highlight","check","visitbility","visibleIcon","hiddenIcon","focus","checkScore","checkLength","checkLowerCase","getCheckScore","count","total","getScore","passwordMeter","SwapperStore","defaultSwapperOptions","mode","defaultSwapperQueires","attrQuery","SwapperComponent","parentSelector","prepend","place","defaultMenuOptions","dropdown","hoverTimeout","accordion","slideSpeed","expand","MenuComponent","triggerElement","_setTriggerElement","_isTriggerElement","_getItemOption","_getItemElement","itemElement","sub","subItem","_getItemParentElement","parentItem","_getItemParentElements","parent","unshift","_getDropdownPopperConfig","placementOption","placement","offsetValue","strategy","modifiers","flipVariations","_getItemChildElement","_getItemChildElements","_getItemSubElement","_getCss","_getItemSubType","_isItemSubShown","_isItemDropdownPermanent","_isItemParentShown","_isItemSubElement","_hasItemSub","_getItemLinkElement","_getItemToggleElement","_showDropdown","hideDropdowns","parentZindex","initDropdownPopper","appendChild","reference","attach","popper","createPopper","_hideDropdown","destroyDropdownPopper","_showAccordion","_hideAccordions","subElement","_hideAccordion","itemsToHide","itemToHide","_reset","removeClass","_destroy","_mouseout","timeout","_mouseover","clearTimeout","_dismiss","itemSubType","_link","_click","link","dismiss","mouseover","mouseout","getItemTriggerType","getItemSubType","getItemLinkElement","getItemToggleElement","getItemSubElement","getItemParentElements","isItemSubShown","isItemParentShown","getTriggerElement","isItemDropdownPermanent","hideAccordions","elementMenu","menuData","subMenu","updateDropdowns","forceUpdate","menuItem","menuInstance","menuItems","menuObj","stopPropagation","defaultSearchOptions","keypress","enter","showOnFocus","defaultSearchQueires","SearchComponent","contentElement","formElement","spinnerElement","clearElement","submitElement","toolbarElement","resultsElement","suggestionElement","emptyElement","processing","menuObject","_getElement","getResponsiveFormMode","breakPointNum","blur","charCode","input","clear","responsiveFormMode","getQuery","getMenu","getFormElement","context","getContentElement","Search","FEATUREFLAG_URL","FeatureFlagsContext","FeatureFlagsProvider","isLoading","setIsLoading","setFeatures","featureNames","getFeatures","featureObjects","checkIsActive","getCurrentUrl","KTSVG","svgClassName","online","initials","defaultAlerts","icon","defaultLogs","code","load","likelySubtags","currencyData","weekData","numbers","caGregorian","dateFields","timeZoneNames","KendoToolI18Provider","locale","loadMessages","kdEnMessages","kdZhMessages","KendoI18Provider","LocalizationProvider","language","Dropdown1","defaultValue","defaultChecked","orderId","referenceId","BANK_INFO_DEFAULT","BANK_OPTION_DEFAULT","LAYOUT_CONFIG_KEY","getLayout","headerContainer","headerMobile","headerMenu","asideMenu","asideToggle","toolbarContainer","contentContainer","footerContainer","sidebar","initCSSClasses","initHTMLAttributes","initCSSVariables","initLayout","backgroundImage","class","initHeader","initToolbar","typeOptions","bodyStyles","initPageTitle","initContent","initAside","initAsideMenu","initFooter","initConfig","fieldsToUpdate","updatedConfig","isLoaded","DateFormatCell","actionTypes","Login","Logout","Register","UserRequested","UserLoaded","SetUser","initialAuthState","accessToken","reducer","persistReducer","storage","whitelist","action","login","requestUser","fulfillUser","setUser","saga","takeLatest","token","select","getUserByToken","API_URL","GET_USER_BY_ACCESSTOKEN_URL","LOGIN_URL","LOGIN_2FA_URL","REGISTER_URL","REQUEST_PASSWORD_URL","REQUEST_RESET_PASSWORD_URL","login2Fa","firstname","lastname","password_confirmation","first_name","last_name","requestPassword","requestResetPassword","apiToken","transformClientSort","transformClientFilter","transformedBankDataList","dataFromApi","transformedBdmDataList","changepassword","acceptTerms","registrationSchema","max","when","is","oneOf","Registration","setLoading","formik","useFormik","setStatus","setSubmitting","api_token","catch","marginLeft","autoComplete","getFieldProps","touched","role","isSubmitting","isValid","forgotPasswordSchema","ForgotPassword","hasErrors","setHasErrors","newPassword","confirmPassword","resetPasswordSchema","ResetPassword","history","useHistory","useParams","isSubmitButtonVisible","loginSchema","Login2Fa","twoFactorEnabled","handleShow2fa","showVerificationCode","setShowVerificationCode","verificationCode","setVerificationCode","LoginPage","show2Fa","setShow2Fa","setEmail","AuthPage","backgroundRepeat","margin","backgroundSize","component","exact","connector","connect","didRequest","showSplashScreen","setShowSplashScreen","rootReducer","combineReducers","sagaMiddleware","createSagaMiddleware","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","thunk","configureStore","devTools","enhancers","reduxBatch","persistor","persistStore","run","all","allMessages","de","en","es","fr","ja","zh","I18nProvider","AsideMenuItem","fontIcon","hasBullet","pagePermission","useLocation","isActive","canView","setCanView","allowed","AsideMenuItemWithSub","pagePermissions","activePage","AsideMenuMain","Clients_ViewPage","Orders_ViewPage","Transactions_ViewPage","MasterWallet","User_ViewPage","PayIns_ViewPage","Administrator_Roles_ViewPage","AsideMenu","asideMenuCSSClasses","scrollRef","AsideDefault","DefaultTitle","isSeparator","toolbarButtonMarginClass","Topbar","HeaderWrapper","Toolbar1","Toolbar","Content","MasterLayout","MenuTestPage","ItemPage","ItemWrapper","NppDetail","debitData","bpayDetails","setBpayDetails","biller_code","walletBpayResponse","OrderList","Grid","orders","cell","filterable","dataProps","loadingPanel","Form","setDebitData","fetchData","getClientBPayByEmail","errorMessages","MasterWalletWrapper","Context","ContextProvider","Page","Wrapper","CLIENT_DATA_FORM_DEFAULT","englishName","sex","occupation","dateOfBirth","mobile","addressLine1","addressLine2","suburb","postCode","country","identity","issuedBy","issuedDate","identityNumber","created","expiryDate","holderName","businessDevelopmentManager","remarks","companyName","abnacn","walletBalance","debitInformation","paymentCycle","paymentCycleDayOfMonth","paymentCycleDayOfWeek","paymentCycleStartDate","paymentCycleStartDateUtc","paymentCycleEndDate","paymentCycleOccurrence","paymentCycleDescription","isUploadFileFeatureEnabled","isPlentyPayHideFeatureEnabled","isClientDataFeatureEnabled","isIdentityDataFeatureEnabled","isHideBDMDropdownFeatureEnabled","isDirectDebitFormFeatureEnabled","isClientTypeSelectionFeatureEnabled","isMultiplePOCFeatureEnabled","passportCountry","PersonalData","setValue","maxLength","onKeyPress","countriesData","PersonalCommonData","render","DropDownList","textField","BankDetailsSection","bankListData","setBankListData","bankFilter","setBankFilter","bankTotal","setBankTotal","fields","useFieldArray","bankSkipRef","emptyBankItem","requestStarted","pendingRequest","dataCaching","loadingData","isMultipleBankAccountsFeatureEnabled","setIsMultipleBankAccountsFeatureEnabled","isAllowedNoBankFeatureEnable","setisAllowedNoBankFeatureEnable","requestData","resetCach","addBankDetail","useCallback","fetchDropdownDataBank","onFilterChange","shouldRequestData","getCachedData","pageChange","newSkip","transFormBankData","getResourceBankData","resource","ComboBox","dataItemKey","allowCustom","virtual","pageSize","selectedItem","onPageChange","rules","inputMode","pattern","DirectDebit","watch","NumericTextBox","paymentCycleOptions","CustomCalendar","selectedPaymentCycleType","Calendar","getDay","dayOfWeek","Weekly","fontWeight","color","CalendarCell","Fortnite","timeDifference","daysDifference","Monthly","dayOfMonth","monthsDifference","isDisabled","PaymentTerm","clientData","setSelectedPaymentCycleType","isInitialLoad","setisInitialLoad","OneTime","calcEndDate","endOfWeekDate","endList","caledEndDate","setDate","setMonth","DatePicker","calendar","Agreement","textAlign","marginBottom","fontSize","toFixed","dateParts","toLocaleDateString","day","month","year","formattedDate","ClientFormValidationSchema","createError","typeError","nullable","of","otherwise","styles","StyleSheet","create","fontFamily","Row","flexDirection","sectionHeader","SectionHeader","secondary","Field","Label","listTypeText","marginHorizontal","marginRight","ListText","boldLabel","Font","family","fonts","padding","paddingRight","subtext","signatures","justifyContent","signature","borderTopWidth","borderTopColor","borderTopStyle","DirectDebitTestPDF","wrap","flex","pdfDownloadLinkRef","selected","setSelected","selectedClient","setSelectedClient","clientFormValidationSchema","getValues","updatedClient","frontImageFileName","cType","cIndex","backImageFileName","createOrUpdateClient","apiFunction","FormData","j","bankKey","dateObject","toDateString","getSeconds","TabStrip","onSelect","TabStripTab","encType","DirectDebitAgreementPDF","generateFileName","ClientContext","roleOptions","ClientContextProvider","setRoleOptions","NoValueFormatCell","ClientList","gridSetup","setGridSetup","tableData","setTableData","totalRows","setTotalRows","setClientType","setIsDirectDebitFormFeatureEnabled","setIsClientTypeSelectionFeatureEnabled","defaultItem","isCompanyNameVisible","Number","totalCount","amountFormatCell","commandChangeHandler","companyUnqId","Clients_Add","resizable","reorderable","pageProps","sortable","onSortChange","pageable","boolean","Clients_Edit","BankFormValidationSchema","bankSchema","bankFormValidationSchema","frontImageFile","companyDetails","validationMessage","IdentifyData","frontImageFileInputRef","backImageFileInputRef","showBackImage","setShowBackImage","setFrontImageFile","setFrontImageFileName","backImageFile","setBackImageFile","setBackImageFileName","previewFrontImage","setPreviewFrontImage","previewBackImage","setPreviewBackImage","previewSavedFrontImage","setPreviewSavedFrontImage","previewSavedBackImage","setPreviewSavedBackImage","minExpiryDate","setMinExpiryDate","maxIssueDate","setMaxIssueDate","subscription","initImages","unsubscribe","identify","file","objectUrl","presignedUrl","deleteFrontImageFileHandleClick","updatedFiles","deleteBackImageFileHandleClick","selectedDate","accept","opacity","emptyItem","emptyItemBdm","loadingDataBdm","StatusData","dataCachingBdm","requestStartedBdm","pendingRequestBdm","skipRef","skipRefBdm","dataBDM","setDataBDM","filterBdm","setFilterBdm","totalBdm","setTotalBdm","setIsHideBDMDropdownFeatureEnabled","requestDataBDM","resetCachBdm","fetchDropdownDataBdm","getResourceBDMData","onFilterChangeBdm","transFormBdmData","shouldRequestDataBdm","getCachedDataBdm","pageChangeBdm","dataBdm","duplicatedBankIndexes","onSetBankListData","conflictingIndexes","wrongNameIndexes","maxPaymentCycleStartDate","setMaxPaymentCycleStartDate","ClientFormFields","DeleteClientModal","deleteCallback","PocFields","excludeFields","keysToInclude","ClientForm","isSaving","setIsSaving","setcompanyDetails","isAllowNoBank","setIsAllowNoBank","selectedClientType","setSelectedClientType","setIsMultiplePOCFeatureEnabled","setErrorMessage","hasError","setHasError","tabIndexs","bankIndexes","activeTabIndex","setActiveTabIndex","showAddButton","setShowAddButton","setClients","showDeleteModal","setShowDeleteModal","isDelete","setIsIdentityDataFeatureEnabled","setIsUploadFileFeatureEnabled","setIsClientDataFeatureEnabled","setIsAllowedNoBankFeatureEnable","checkErrors","Company","allClientsData","currentClient","includes","handleClientImageNames","updatedClientsData","areObjectsEqual","fieldName","_value","updatedClientData","activeClient","obj1","obj2","errorIndexes","errorBankDetails","errorFirstNames","handleCloneNonPocValues","handleClientTypeChange","Individual","handlePocValidation","errorIndexs","updateClients","formValues","validate","abortEarly","validationError","handleBankValidation","errorDetails","currentBank","comparedBank","isDuplicate1","isDuplicate2","isDuplicate3","isDuplicate4","isDuplicate5","matchingBank","allowedEmptyBank","clientIndex","handleRemoveClient","updatedClients","_","handleDeleteCallback","tempValues","pocValidation","bankValidation","hidden","checked","currentFormData","handleTabClick","newIndex","resetFields","NotificationGroup","right","bottom","alignItems","flexWrap","Slide","Notification","closable","CreateClientPage","widgetsBreadCrumbs","EditClientPage","idParam","URLSearchParams","ClientProfile","clientWalletNpp","clientVirtualAccounts","setIsloading","isPayInsFeatureEnabled","setPayInsFeatureEnabled","handleSelect","newVirtualAccountHandler","createVirtualAccountAsync","account","contentClassName","routingNumber","pay_id","ClientWallet","clientWallet","balance","clientWalletBpay","newTable","ClientOrders","clientOrders","ClientTransactions","clientTransactions","modalAuthorizeTransactionShow","setModalAuthorizeTransactionShow","selectedTransaction","setSelectedTransaction","refresh","statusName","handleAuthorizeButton","ClientFile","clientFiles","ClientPoc","ClientPayIns","fetchPayIds","ClientProfileDashboard","selectedTab","setSelectedTab","Profile","setIsPlentyPayHideFeatureEnabled","Poc","Wallet","Orders","Transactions","virtualAccounts","payIns","walletNpp","wallet","transactions","ClientProfileWrapper","useEffectOnce","getClientProfile","ClientProfilePage","ClientPage","ActivatedPageRoute","Component","rest","ActivePageBasedRedirect","permissionsOrder","route","PrivateRoutes","BuilderPageWrapper","lazy","ProfilePage","WizardsPage","AccountPage","WidgetsPage","ChatPage","UserPage","RolePage","MasterWalletPage","PayInsPage","TransactionPage","OrderPage","fallback","MyProfilePage","DebitDashboardPage","Error500","Error404","ErrorsPage","MasterInit","isFirstRun","DirectdebitFormValidationSchema","DirectDebitModal","onAccept","onDecline","backdrop","keyboard","centered","maxHeight","overflowY","DateTimeFormat","Button","variant","border","blobPdf","pdf","toBlob","getPdfBlob","DirectDebitForm","isDirectDebitAgreementFeatureEnabled","showModal","setShowModal","isChecked","setIsChecked","directdebitFormValidationSchema","setData","setTotal","setFilter","pdfBlobData","setPdfBlobData","handleCloseModal","countriesWithPlaceholder","cursor","textDecoration","backgroundColor","setIsDirectDebitAgreementFeatureEnabled","Routes","DirectDebitPage","App","basename","FeatureFlags","PUBLIC_URL","defaults","Accept","interceptors","request","use","getState","Authorization","Promise","reject","_redux","Chart","registerables","ReactDOM"],"mappings":"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","file":"static/js/main.95f0b2fc.chunk.js","sourcesContent":["import React, {FC, createContext, useContext} from 'react'\n\nconst I18N_CONFIG_KEY = process.env.REACT_APP_I18N_CONFIG_KEY || 'i18nConfig'\n\ntype Props = {\n selectedLang: 'de' | 'en' | 'es' | 'fr' | 'ja' | 'zh'\n}\nconst initialState: Props = {\n selectedLang: 'en',\n}\n\nfunction getConfig(): Props {\n const ls = localStorage.getItem(I18N_CONFIG_KEY)\n if (ls) {\n try {\n return JSON.parse(ls) as Props\n } catch (er) {\n console.error(er)\n }\n }\n return initialState\n}\n\n// Side effect\nexport function setLanguage(lang: string) {\n localStorage.setItem(I18N_CONFIG_KEY, JSON.stringify({selectedLang: lang}))\n window.location.reload()\n}\n\nconst I18nContext = createContext(initialState)\n\nconst useLang = () => {\n return useContext(I18nContext).selectedLang\n}\n\nconst MetronicI18nProvider: FC = ({children}) => {\n const lang = getConfig()\n return {children}\n}\n\nexport {MetronicI18nProvider, useLang}\n","import { GridCellProps } from '@progress/kendo-react-grid'\nimport { AmountFormatter } from '../../../service/utils'\n\nexport const AmountFormatCell = (cellProps: any) => {\n const { dataItem, field } = cellProps.props\n const dataValue = dataItem ? (dataItem[field] ? dataItem[field] : '') : ''\n\n return (\n \n {AmountFormatter(dataValue, cellProps.currency || 'AUD')}\n \n )\n}","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport clsx from 'clsx'\nimport {FC} from 'react'\nimport {toAbsoluteUrl} from '../../../helpers'\nimport {useLang, setLanguage} from '../../../i18n/Metronici18n'\n\nconst languages = [\n {\n lang: 'en',\n name: 'English',\n flag: toAbsoluteUrl('/media/flags/united-states.svg'),\n },\n {\n lang: 'zh',\n name: 'Simplified Chinese',\n flag: toAbsoluteUrl('/media/flags/china.svg'),\n },\n // {\n // lang: 'es',\n // name: 'Spanish',\n // flag: toAbsoluteUrl('/media/flags/spain.svg'),\n // },\n // {\n // lang: 'ja',\n // name: 'Japanese',\n // flag: toAbsoluteUrl('/media/flags/japan.svg'),\n // },\n // {\n // lang: 'de',\n // name: 'German',\n // flag: toAbsoluteUrl('/media/flags/germany.svg'),\n // },\n // {\n // lang: 'fr',\n // name: 'French',\n // flag: toAbsoluteUrl('/media/flags/france.svg'),\n // },\n]\n\nconst Languages: FC = () => {\n const lang = useLang()\n const currentLanguage = languages.find((x) => x.lang === lang)\n return (\n \n \n \n Language\n \n {currentLanguage?.name}{' '}\n \n \n \n \n\n
\n {languages.map((l) => (\n {\n setLanguage(l.lang)\n }}\n >\n \n \n metronic\n \n {l.name}\n \n
\n ))}\n \n \n )\n}\n\nexport {Languages}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, {FC} from 'react'\nimport {shallowEqual, useSelector} from 'react-redux'\nimport {Link} from 'react-router-dom'\nimport {UserModel} from '../../../../app/modules/auth/models/UserModel'\nimport {RootState} from '../../../../setup'\nimport {Languages} from './Languages'\nimport * as auth from '../../../../app/modules/auth/redux/AuthRedux'\nimport {useDispatch} from 'react-redux'\nimport {toAbsoluteUrl} from '../../../helpers'\nimport { useIntl } from 'react-intl'\n// import {useAuth0} from '@auth0/auth0-react'\nimport { useFeatureFlags } from '../../../../app/context/FeatureFlags';\n\nconst HeaderUserMenu: FC = () => {\n const intl = useIntl()\n const user: UserModel = useSelector(({auth}) => auth.user, shallowEqual) as UserModel\n // const {logout: auth0Logout} = useAuth0()\n const { features } = useFeatureFlags(); \n const [isMultiLanguageFeatureEnabled, setIsMultiLanguageFeatureEnabled] = React.useState(false);\n\n const dispatch = useDispatch()\n const logout = () => {\n // auth0Logout({returnTo: window.location.origin})\n dispatch(auth.actions.logout())\n }\n\n React.useEffect(() => { \n if (features.some((feature) => feature.name === 'MultiLanguageFeature')) { \n setIsMultiLanguageFeatureEnabled(true); \n } \n }, [features]);\n\n return (\n \n
\n
\n
\n Logo\n
\n\n
\n
\n {user.firstName} {user.lastName}\n Pro\n
\n \n {user.email}\n \n
\n
\n
\n\n
\n\n {/*
\n \n My Profile\n \n
*/}\n\n {/*
\n \n My Projects\n \n 3\n \n \n
*/}\n\n {/* \n \n My Subscription\n \n \n\n
\n \n\n \n\n \n\n \n\n
\n\n
\n
\n \n
\n
\n
\n */}\n\n {/* */}\n\n {/*
*/}\n\n {isMultiLanguageFeatureEnabled && (\n \n )}\n\n {/*
\n \n Account Settings\n \n
*/}\n\n \n \n )\n}\n\nexport {HeaderUserMenu}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport {FC, useState} from 'react'\nimport clsx from 'clsx'\nimport {\n toAbsoluteUrl,\n defaultMessages,\n defaultUserInfos,\n MessageModel,\n UserInfoModel,\n messageFromClient,\n} from '../../helpers'\n\ntype Props = {\n isDrawer?: boolean\n}\n\nconst bufferMessages = defaultMessages\n\nconst ChatInner: FC = ({isDrawer = false}) => {\n const [chatUpdateFlag, toggleChatUpdateFlat] = useState(false)\n const [message, setMessage] = useState('')\n const [messages, setMessages] = useState(bufferMessages)\n const [userInfos] = useState(defaultUserInfos)\n\n const sendMessage = () => {\n const newMessage: MessageModel = {\n user: 2,\n type: 'out',\n text: message,\n time: 'Just now',\n }\n\n bufferMessages.push(newMessage)\n setMessages(bufferMessages)\n toggleChatUpdateFlat(!chatUpdateFlag)\n setMessage('')\n setTimeout(() => {\n bufferMessages.push(messageFromClient)\n setMessages(() => bufferMessages)\n toggleChatUpdateFlat((flag) => !flag)\n }, 1000)\n }\n\n const onEnterPress = (e: React.KeyboardEvent) => {\n if (e.keyCode === 13 && e.shiftKey === false) {\n e.preventDefault()\n sendMessage()\n }\n }\n\n return (\n \n \n {messages.map((message, index) => {\n const userInfo = userInfos[message.user]\n const state = message.type === 'in' ? 'info' : 'primary'\n const templateAttr = {}\n if (message.template) {\n Object.defineProperty(templateAttr, 'data-kt-element', {\n value: `template-${message.type}`,\n })\n }\n const contentClass = `${isDrawer ? '' : 'd-flex'} justify-content-${\n message.type === 'in' ? 'start' : 'end'\n } mb-10`\n return (\n \n \n
\n {message.type === 'in' ? (\n <>\n
\n Pic\n
\n
\n \n {userInfo.name}\n \n {message.time}\n
\n \n ) : (\n <>\n
\n {message.time}\n \n You\n \n
\n
\n Pic\n
\n \n )}\n
\n\n \n \n \n )\n })}\n \n\n \n setMessage(e.target.value)}\n onKeyDown={onEnterPress}\n >\n\n
\n
\n \n \n \n \n \n \n
\n \n Send\n \n
\n \n \n )\n}\n\nexport {ChatInner}\n","import {toAbsoluteUrl} from '../../../helpers'\n\nexport function FallbackView() {\n return (\n
\n Start logo\n Loading ...\n
\n )\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, {FC, useEffect, useRef, useState} from 'react'\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\nimport {Formik, Form, FormikValues, Field, ErrorMessage} from 'formik'\nimport * as Yup from 'yup'\nimport {StepperComponent} from '../../../assets/ts/components'\n\ninterface ICreateAccount {\n appName: string\n category: string\n framework: string\n dbName: string\n dbType: string\n nameOnCard: string\n cardNumber: string\n cardExpiryMonth: string\n cardExpiryYear: string\n cardCvv: string\n saveCard: string\n}\n\nconst inits: ICreateAccount = {\n appName: '',\n category: '1',\n framework: '1',\n dbName: '',\n dbType: '1',\n nameOnCard: 'Max Doe',\n cardNumber: '4111 1111 1111 1111',\n cardExpiryMonth: '1',\n cardExpiryYear: '2025',\n cardCvv: '123',\n saveCard: '1',\n}\n\nconst createAppSchema = [\n Yup.object({\n appName: Yup.string().required().label('App name'),\n category: Yup.string().required().label('Category'),\n }),\n Yup.object({\n framework: Yup.string().required().label('Framework'),\n }),\n Yup.object({\n dbName: Yup.string().required().label('Database name'),\n dbType: Yup.string().required().label('Database engine'),\n }),\n Yup.object({\n nameOnCard: Yup.string().required().label('Name'),\n cardNumber: Yup.string().required().label('Card Number'),\n cardExpiryMonth: Yup.string().required().label('Expiration Month'),\n cardExpiryYear: Yup.string().required().label('Expiration Year'),\n cardCvv: Yup.string().required().label('CVV'),\n }),\n]\n\nconst Main: FC = () => {\n const stepperRef = useRef(null)\n const stepper = useRef(null)\n const [currentSchema, setCurrentSchema] = useState(createAppSchema[0])\n const [initValues] = useState(inits)\n\n const loadStepper = () => {\n stepper.current = StepperComponent.createInsance(stepperRef.current as HTMLDivElement)\n }\n\n const prevStep = () => {\n if (!stepper.current) {\n return\n }\n\n stepper.current.goPrev()\n\n setCurrentSchema(createAppSchema[stepper.current.currentStepIndex - 1])\n }\n\n const submitStep = (values: ICreateAccount, actions: FormikValues) => {\n if (!stepper.current) {\n return\n }\n\n setCurrentSchema(createAppSchema[stepper.current.currentStepIndex])\n\n if (stepper.current.currentStepIndex !== stepper.current.totatStepsNumber) {\n stepper.current.goNext()\n } else {\n stepper.current.goto(1)\n actions.resetForm()\n }\n }\n\n useEffect(() => {\n if (!stepperRef.current) {\n return\n }\n\n loadStepper()\n }, [stepperRef])\n\n return (\n \n \n )\n}\n\nexport {Main}\n","import {SortDescriptor} from '@progress/kendo-data-query'\nimport axios from 'axios'\nimport {ITransaction, ITransactionSearch} from '../models/transaction-model'\n\nexport const TRANSACTION_URL = `${process.env.REACT_APP_API_URL}/transaction`\nexport const CLIENT_URL = `${process.env.REACT_APP_API_URL}/Client`\nexport const ZAIUSER_URL = `${process.env.REACT_APP_API_URL}/ZaiUser`\n\n// export const getTransactions = async (\n// skip: number,\n// take: number,\n// pageSort: SortDescriptor,\n// roleSearch?: ITransactionSearch\n// ) => {\n// return await axios.post(`${TRANSACTION_URL}/get`, {\n// ...roleSearch,\n// sort: `${pageSort.field} ${pageSort.dir}`,\n// skip,\n// take,\n// })\n// }\nexport const getTransactions = async (\n skip: number,\n take: number,\n pageSort: SortDescriptor,\n objectFilter?: any\n) => {\n const {\n id,\n transactionType,\n status,\n clientName,\n bankAccount,\n amount,\n currency,\n zaiDisbursementId,\n zaiReferenceId,\n } = objectFilter\n try {\n return await axios.get(`${TRANSACTION_URL}/get`, {\n // skip,\n // take,\n // objectFilter,\n // sort: `${pageSort.field} ${pageSort.dir}`,\n params: {\n skip,\n take,\n sort: `${pageSort.field} ${pageSort.dir}`,\n id,\n transactionType,\n status,\n clientName,\n bankAccount,\n amount,\n currency,\n zaiDisbursementId,\n zaiReferenceId,\n },\n })\n // console.log(response?.data)\n // return response?.data ?? []\n } catch (err) {\n return []\n }\n}\n\nexport const createTransaction = async (form: ITransaction) => {\n const payload: ITransaction = form\n try {\n const {data} = await axios.post(`${TRANSACTION_URL}/create`, payload)\n return [data, null]\n } catch (error) {\n console.log('error', error)\n return [null, error]\n }\n}\n\nexport const authorizeTransaction = async (form: ITransaction) => {\n const payload: ITransaction = form\n\n try {\n const {data} = await axios.post(`${TRANSACTION_URL}/authorize`, payload)\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const updateTransaction = async (form: ITransaction) => {\n const payload: ITransaction = form\n return await axios.put(`${TRANSACTION_URL}`, payload)\n}\n\nexport const deleteRole = async (form: ITransaction) => {\n return await axios.delete(`${TRANSACTION_URL}?id=${form.id}`)\n}\n\nexport const getAllClientsWithType = async (clientType: number, isMasterWalletDefault: boolean) => {\n try {\n const response = await axios.post(`${CLIENT_URL}/get`, {\n skip: 0,\n take: 9999,\n search: 'id > 0',\n sort: 'id asc',\n clientType,\n isMasterWalletDefault\n })\n return response?.data ?? []\n } catch (err) {\n return []\n }\n}\n\nexport const getClientBankDetails = async (userId: string) => {\n try {\n const response = await axios.get(`${ZAIUSER_URL}/getBankAccount`, {\n params: {\n userId,\n },\n })\n\n if (response.status == 200) {\n return response.data\n } else return null\n } catch (err) {\n return null\n }\n}\n\nexport const getClientBankList = async (clientId: string) => {\n try {\n const response = await axios.get(`${CLIENT_URL}/getBankList`, {\n params: {\n clientId,\n },\n })\n\n if (response.status == 200) {\n return response.data\n } else return null\n } catch (err) {\n return null\n }\n}\n\nexport const getMasterClientBank = async () => {\n try {\n const response = await axios.get(`${CLIENT_URL}/getMasterBank`)\n\n if (response.status == 200) {\n return response.data\n } else return null\n } catch (err) {\n return null\n }\n}\n\nexport const generateTransactionPdf = async () => {\n try {\n const {data} = await axios.post(\n `${TRANSACTION_URL}/generatetransactionpdf`,\n {},\n {\n headers: {\n 'Content-Type': 'application/json', // Set the appropriate content type\n },\n }\n )\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const deleteTransaction = async (id: number) => {\n return await axios.delete(`${TRANSACTION_URL}?id=${id}`)\n}\n\nexport const rejectTransaction = async (id: number) => {\n return await axios.patch(`${TRANSACTION_URL}/reject?id=${id}`, {\n id,\n })\n}\n","export const toAbsoluteUrl = (pathname: string) => process.env.PUBLIC_URL + pathname\n","import {ILayout} from './LayoutModels'\n\nexport const DefaultLayoutConfig: ILayout = {\n main: {\n type: 'default',\n primaryColor: '#009EF7',\n darkSkinEnabled: true,\n },\n loader: {\n display: true,\n type: 'default', // Set default|spinner-message|spinner-logo to hide or show page loader\n },\n scrolltop: {\n display: true,\n },\n header: {\n display: true, // Set true|false to show or hide Header\n width: 'fluid', // Set fixed|fluid to change width type\n left: 'menu',\n fixed: {\n desktop: true, // Set true|false to set fixed Header for desktop mode\n tabletAndMobile: true, // Set true|false to set fixed Header for tablet and mobile modes\n },\n menuIcon: 'svg',\n },\n megaMenu: {\n display: true, // Set true|false to show or hide Mega Menu\n },\n aside: {\n display: true,\n theme: 'dark',\n menu: 'main',\n fixed: true,\n minimized: false,\n minimize: true,\n hoverable: true,\n menuIcon: 'svg',\n },\n content: {\n width: 'fluid', // Set fixed|fluid to change width\n layout: 'default',\n },\n toolbar: {\n display: true, // Display toolbar\n width: 'fluid', // Set fixed|fluid to change width type,\n fixed: {\n desktop: true,\n tabletAndMobileMode: true,\n },\n layout: 'toolbar1',\n layouts: {\n toolbar1: {\n height: '55px',\n heightAndTabletMobileMode: '55px',\n },\n toolbar2: {\n height: '75px',\n heightAndTabletMobileMode: '65px',\n },\n toolbar3: {\n height: '55px',\n heightAndTabletMobileMode: '55px',\n },\n toolbar4: {\n height: '65px',\n heightAndTabletMobileMode: '65px',\n },\n toolbar5: {\n height: '75px',\n heightAndTabletMobileMode: '65px',\n },\n },\n },\n footer: {\n width: 'fluid', // Set fixed|fluid to change width type\n },\n pageTitle: {\n display: true,\n breadCrumbs: true,\n description: false,\n layout: 'default',\n direction: 'row',\n responsive: true,\n responsiveBreakpoint: 'lg',\n responsiveTarget: '#kt_toolbar_container',\n },\n}\n","import React, {createContext, useContext, useState, useEffect} from 'react'\nimport {DefaultLayoutConfig} from './DefaultLayoutConfig'\nimport {\n getEmptyCssClasses,\n getEmptyCSSVariables,\n getEmptyHTMLAttributes,\n LayoutSetup,\n} from './LayoutSetup'\nimport {\n ILayout,\n ILayoutCSSVariables,\n ILayoutCSSClasses,\n ILayoutHTMLAttributes,\n} from './LayoutModels'\n\nexport interface LayoutContextModel {\n config: ILayout\n classes: ILayoutCSSClasses\n attributes: ILayoutHTMLAttributes\n cssVariables: ILayoutCSSVariables\n setLayout: (config: LayoutSetup) => void\n}\n\nconst LayoutContext = createContext({\n config: DefaultLayoutConfig,\n classes: getEmptyCssClasses(),\n attributes: getEmptyHTMLAttributes(),\n cssVariables: getEmptyCSSVariables(),\n setLayout: (config: LayoutSetup) => {},\n})\n\nconst enableSplashScreen = () => {\n const splashScreen = document.getElementById('splash-screen')\n if (splashScreen) {\n splashScreen.style.setProperty('display', 'flex')\n }\n}\n\nconst disableSplashScreen = () => {\n const splashScreen = document.getElementById('splash-screen')\n if (splashScreen) {\n splashScreen.style.setProperty('display', 'none')\n }\n}\n\nconst LayoutProvider: React.FC = ({children}) => {\n const [config, setConfig] = useState(LayoutSetup.config)\n const [classes, setClasses] = useState(LayoutSetup.classes)\n const [attributes, setAttributes] = useState(LayoutSetup.attributes)\n const [cssVariables, setCSSVariables] = useState(LayoutSetup.cssVariables)\n const setLayout = (_themeConfig: Partial) => {\n enableSplashScreen()\n const bodyClasses = Array.from(document.body.classList)\n bodyClasses.forEach((cl) => document.body.classList.remove(cl))\n LayoutSetup.updatePartialConfig(_themeConfig)\n setConfig(Object.assign({}, LayoutSetup.config))\n setClasses(LayoutSetup.classes)\n setAttributes(LayoutSetup.attributes)\n setCSSVariables(LayoutSetup.cssVariables)\n setTimeout(() => {\n disableSplashScreen()\n }, 500)\n }\n const value: LayoutContextModel = {\n config,\n classes,\n attributes,\n cssVariables,\n setLayout,\n }\n\n useEffect(() => {\n disableSplashScreen()\n }, [])\n\n return {children}\n}\n\nexport {LayoutContext, LayoutProvider}\n\nexport function useLayout() {\n return useContext(LayoutContext)\n}\n","\nimport React, { FC, useEffect, useState } from \"react\";\nimport { useFeatureFlags } from \"../../context/FeatureFlags\";\n\nconst FeatureFlagProvider: FC<{ featureName: string }> = ({ children, featureName }) => {\n const { features } = useFeatureFlags();\n const [isEnabled, setIsEnabled] = useState(false)\n\n useEffect(() => {\n if (features.some((feature) => feature.name === featureName)) {\n setIsEnabled(true);\n }\n }, [features]);\n\n return isEnabled ? <>{children} : null;\n};\n\nexport {FeatureFlagProvider}","import {GridSetup} from '../../../shared/model/grid-config'\n\nexport enum ClientProfileTab {\n Profile,\n Poc,\n Wallet,\n Orders,\n Transactions,\n file,\n payIns,\n}\n\nexport const Initial_GridSetup: GridSetup = {\n sort: [{field: 'Id', dir: 'desc'}],\n skip: 0,\n take: 10,\n filter: {\n logic: 'and',\n filters: [],\n },\n filterOperators: {\n text: [\n {\n text: 'grid.filterContainsOperator',\n operator: 'contains',\n },\n ],\n },\n}\n\nexport const FIELD_COLUMN_MAP = [\n {field: 'firstName', map: 'FirstName', type: typeof ''},\n {field: 'lastName', map: 'LastName', type: typeof ''},\n {field: 'email', map: 'Email', type: ''},\n {field: 'zaiCreatedDate', map: 'ZaiCreatedDate', type: typeof ''},\n {field: 'zaiLastModified', map: 'ZaiLastModified', type: typeof ''},\n {field: 'companyName', map: 'CompanyName', type: typeof ''},\n {field: 'walletBalance', map: 'WalletBalance', type: typeof 0},\n {field: 'paymentCycleName', map: 'PaymentCycleName', type: typeof ''},\n {field: 'debitAmount', map: 'DebitAmount', type: typeof 0},\n]\n\nexport const FIELD_DEFAULT = {field: 'zaiCreatedDate', dir: 'asc'}\nexport const PAYINS_FIELD_DEFAULT = {field: 'id', dir: 'desc'}\n\nexport const FILTER_DEFAULT = 'Id > 0 '\n\nexport enum ClientType {\n Individual = 1,\n Company = 2,\n}\n\nexport enum PaymentCycleType {\n OneTime = 1,\n Weekly = 2,\n Fortnite = 3,\n Monthly = 4,\n}\n","import { GridCellProps } from '@progress/kendo-react-grid';\n\nexport const UppercaseFirstLetter = (props: GridCellProps) => {\n const { dataItem } = props;\n const field = props.field || '';\n let dataValue = dataItem ? (dataItem[field] ? dataItem[field] : '') : '';\n\n if (dataValue) {\n dataValue = dataValue.charAt(0).toUpperCase() + dataValue.slice(1);\n } else {\n dataValue = 'N/A';\n }\n\n return (\n \n {dataValue.trim() ? dataValue : 'N/A'}\n \n );\n};","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, {FC, createContext, useContext, useEffect, useState} from 'react'\nimport {UserModel} from '../../../app/modules/auth/models/UserModel'\nimport {GetLoginUser} from '../../../app/shared/service/redux-store'\n\nexport interface PageLink {\n title: string\n path: string\n isActive: boolean\n isSeparator?: boolean\n}\n\nexport interface PageDataContextModel {\n pageTitle?: string\n setPageTitle: (_title: string) => void\n pageDescription?: string\n setPageDescription: (_description: string) => void\n pageBreadcrumbs?: Array\n setPageBreadcrumbs: (_breadcrumbs: Array) => void\n currentUser: UserModel\n setCurrentUser: (_userModel: UserModel) => void\n}\n\nexport const Initial_User: UserModel = {\n id: '',\n username: '',\n password: '',\n email: '',\n firstName: '',\n lastName: '',\n userRoleDisplay: '',\n isResetPasswordRequired: false,\n isCreatedByDebit: false,\n activePages: [],\n}\n\nconst PageDataContext = createContext({\n setPageTitle: (_title: string) => {},\n setPageBreadcrumbs: (_breadcrumbs: Array) => {},\n setPageDescription: (_description: string) => {},\n setCurrentUser: (_userModel: UserModel) => {},\n currentUser: Initial_User,\n})\n\nconst PageDataProvider: React.FC = ({children}) => {\n const [pageTitle, setPageTitle] = useState('')\n const [pageDescription, setPageDescription] = useState('')\n const [pageBreadcrumbs, setPageBreadcrumbs] = useState>([])\n const [currentUser, setCurrentUser] = useState(GetLoginUser())\n\n const value: PageDataContextModel = {\n pageTitle,\n setPageTitle,\n pageDescription,\n setPageDescription,\n pageBreadcrumbs,\n setPageBreadcrumbs,\n currentUser,\n setCurrentUser,\n }\n return {children}\n}\n\nfunction usePageData() {\n return useContext(PageDataContext)\n}\n\ntype Props = {\n description?: string\n breadcrumbs?: Array\n}\n\nconst PageTitle: FC = ({children, description, breadcrumbs}) => {\n const {setPageTitle, setPageDescription, setPageBreadcrumbs} = usePageData()\n useEffect(() => {\n if (children) {\n setPageTitle(children.toString())\n }\n return () => {\n setPageTitle('')\n }\n }, [children])\n\n useEffect(() => {\n if (description) {\n setPageDescription(description)\n }\n return () => {\n setPageDescription('')\n }\n }, [description])\n\n useEffect(() => {\n if (breadcrumbs) {\n setPageBreadcrumbs(breadcrumbs)\n }\n return () => {\n setPageBreadcrumbs([])\n }\n }, [breadcrumbs])\n\n return <>\n}\n\nconst PageDescription: React.FC = ({children}) => {\n const {setPageDescription} = usePageData()\n useEffect(() => {\n if (children) {\n setPageDescription(children.toString())\n }\n return () => {\n setPageDescription('')\n }\n }, [children])\n return <>\n}\n\nexport {PageDescription, PageTitle, PageDataProvider, usePageData}\n","import {shallowEqual, useSelector} from 'react-redux'\nimport {RootState} from '../../../setup'\nimport {UserModel} from '../../modules/auth/models/UserModel'\n\nexport const GetLoginUser = () => {\n const user: UserModel = useSelector(({auth}) => auth.user, shallowEqual) as UserModel\n return user\n}\n","import React, {\n FC,\n createContext,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react'\n\nconst MetronicSplashScreenContext = createContext> | undefined>(\n undefined\n)\n\nconst MetronicSplashScreenProvider: FC = ({children}) => {\n const [count, setCount] = useState(0)\n let visible = count > 0\n\n useEffect(() => {\n const splashScreen = document.getElementById('splash-screen')\n\n // Show SplashScreen\n if (splashScreen && visible) {\n splashScreen.classList.remove('hidden')\n\n return () => {\n splashScreen.classList.add('hidden')\n }\n }\n\n // Hide SplashScreen\n let timeout: number\n if (splashScreen && !visible) {\n timeout = window.setTimeout(() => {\n splashScreen.classList.add('hidden')\n }, 3000)\n }\n\n return () => {\n clearTimeout(timeout)\n }\n }, [visible])\n\n return (\n \n {children}\n \n )\n}\n\nconst LayoutSplashScreen: FC<{visible?: boolean}> = ({visible = true}) => {\n // Everything are ready - remove splashscreen\n const setCount = useContext(MetronicSplashScreenContext)\n\n useEffect(() => {\n if (!visible) {\n return\n }\n\n if (setCount) {\n setCount((prev) => {\n return prev + 1\n })\n }\n\n return () => {\n if (setCount) {\n setCount((prev) => {\n return prev - 1\n })\n }\n }\n }, [setCount, visible])\n\n return null\n}\n\nexport {MetronicSplashScreenProvider, LayoutSplashScreen}\n","import {IAlert} from '../../../shared/components/CustomAlert'\nimport {IAvailableClient} from '../models/available-client'\nimport {IItems, IItemsData} from '../models/items'\n\nexport const ITEM_FORM_DEFAULT: IItems = {\n uuid: '',\n name: '',\n amount: 0,\n currency: 'AUD',\n state: '',\n buyerId: '',\n sellerId: '',\n rootAmount: 0,\n conversionRate: 0,\n description: '',\n internalCurrencyId: '',\n paymentType: 2,\n orderType: 2,\n isOrderDataFeatureEnabled: false,\n fromJobSched: false,\n}\n\nexport const ITEMDATA_FORM_DEFAULT: IItemsData = {\n uuid: '',\n name: '',\n amount: 0,\n currency: 'AUD',\n state: '',\n buyerId: '',\n sellerId: '',\n rootAmount: 0,\n conversionRate: 0,\n description: '',\n internalCurrencyId: '',\n buyerName: '',\n sellerName: '',\n orderTypeName: '',\n paymentType: 2,\n orderType: 2,\n isOrderDataFeatureEnabled: false,\n createdDate: new Date(),\n updatedDate: new Date(),\n fromJobSched: false,\n}\n\nexport const FIELD_COLUMN_MAP = [\n {field: 'uuid', objectMap: 'uuid', sortMap: 'Uuid', type: typeof 0},\n {field: 'state', objectMap: 'state', sortMap: 'state', type: ''},\n\n {\n field: 'internalCurrency',\n objectMap: 'internalCurrency',\n sortMap: 'item.internalCurrencyId',\n type: typeof 0,\n },\n {field: 'buyerName', objectMap: 'buyerName', sortMap: 'buyerName', type: ''},\n {field: 'sellerName', objectMap: 'sellerName', sortMap: 'sellerName', type: typeof ''},\n {field: 'name', objectMap: 'name', sortMap: 'name', type: typeof ''},\n {field: 'rootAmount', objectMap: 'rootAmount', sortMap: 'rootAmount', type: typeof ''},\n {\n field: 'conversionRate',\n objectMap: 'conversionRate',\n sortMap: 'item.conversionRate',\n type: typeof '',\n },\n {field: 'amount', objectMap: 'amount', sortMap: 'amount', type: typeof ''},\n {field: 'debitAmount', objectMap: 'debitAmount', sortMap: 'debitAmount', type: typeof ''},\n {\n field: 'paymentCycleName',\n objectMap: 'paymentCycleName',\n sortMap: 'paymentCycleName',\n type: typeof '',\n },\n]\nexport const FIELD_DEFAULT = {field: 'id', dir: 'asc'}\n\nexport const STATUS = [\n {status: 'pending', title: 'Pending', success: true},\n {status: 'pending_check', title: 'Pending Check', success: true},\n {status: 'approved_kyc_check', title: 'Approved KYC Check', success: true},\n {status: 'approved', title: 'Approved', success: true},\n {status: 'payment_required', title: 'Payment Required', success: false},\n {status: 'wire_pending', title: 'Wire Pending', success: true},\n {status: 'payment_pending', title: 'Payment Pending', success: true},\n {status: 'payment_held', title: 'Payment Held', success: false},\n {status: 'payment_authorized', title: 'Payment Authorized', success: true},\n {status: 'void_pending', title: 'Void Pending', success: true},\n {status: 'voided', title: 'Voided', success: true},\n {status: 'payment_deposited', title: 'Payment Deposited', success: false},\n {status: 'work_completed', title: 'Work Completed', success: false},\n {status: 'problem_flagged', title: 'Problem Flagged', success: true},\n {status: 'problem_resolve_requested', title: 'Problem Resolve Requested', success: true},\n {status: 'problem_escalated', title: 'Problem Escalated', success: true},\n {status: 'completed', title: 'Completed', success: true},\n {status: 'cancelled', title: 'Cancelled', success: false},\n {status: 'refunded', title: 'Refunded', success: true},\n {status: 'refund_pending', title: 'Refund Pending', success: true},\n {status: 'refund_flagged', title: 'Refund Flagged', success: true},\n {status: 'off_platform_refunded', title: 'Off Platform Refunded', success: true},\n {status: 'partial_completed', title: 'Partial Completed', success: false},\n {status: 'partial_paid', title: 'Partial Paid', success: false},\n {status: 'off_platform_chargedback', title: 'Off Platform Chargedback', success: true},\n {status: 'requested', title: 'Requested', success: true},\n {status: 'processing', title: 'Processing', success: true},\n {status: 'pending_return', title: 'Pending Return', success: true},\n {status: 'pending_direct_credit', title: 'Pending Direct Credit', success: true},\n {status: 'failed', title: 'Failed', success: false},\n {status: 'success', title: 'Success', success: true},\n {status: 'successful', title: 'Successful', success: true},\n {status: 'pending_successful', title: 'Pending Successful', success: true},\n {status: 'bpay_pending', title: 'BPay Pending', success: true},\n {status: 'batched', title: 'Batched', success: true},\n {status: 'invalid_account_details', title: 'Invalid Account Details', success: false},\n {status: 'failed_direct_debit', title: 'Failed Direct Debit', success: false},\n {status: 'bank_processing', title: 'Bank Processing', success: true},\n {status: 'errored', title: 'Errored', success: false},\n {status: 'pending_activation', title: 'Pending Activation', success: true},\n {status: 'active', title: 'Active', success: true},\n {status: 'activation_failed', title: 'Activation Failed', success: false},\n {status: 'pending_validation', title: 'Pending Validation', success: true},\n {status: 'validated', title: 'Validated', success: true},\n {status: 'validation_failed', title: 'Validation Failed', success: false},\n {status: 'pending_creation', title: 'Pending Creation', success: true},\n {status: 'created', title: 'Created', success: true},\n {status: 'creation_failed', title: 'Creation Failed', success: false},\n {status: 'suspended', title: 'Suspended', success: false},\n {status: 'pending_payment_initiation', title: 'Pending Payment Initiation', success: false},\n {status: 'payment_initiated', title: 'Payment Initiated', success: false},\n {status: 'payment_initiation_completed', title: 'Payment Initiation Completed', success: true},\n {status: 'payment_initiation_rejected', title: 'Payment Initiation Rejected', success: false},\n]\n\nexport const TOASTER_DEFAULT: IAlert = {\n message: ``,\n header: ``,\n type: 'success',\n}\n\nexport const AVALIABLECLIENT_DEFAULT: IAvailableClient = {\n unqId: '',\n firstName: '',\n lastName: '',\n email: '',\n isMasterWallet: false,\n}\n","import { useInternationalization } from '@progress/kendo-react-intl'\nimport moment from 'moment'\nimport { PAGE_PERMISSION } from '../../modules/roles/constant/role-default'\nimport { Page } from '../../modules/roles/models/role-model'\n\nconst SQL_DATE_FORMAT = 'yyyyMMdd hh:mm:ss'\nconst mappings: any = {\n eq: \"{0} = '{1}'\",\n neq: \"{0} != '{1}'\",\n isnull: '{0} IS NULL',\n isnotnull: '{0} IS NOT NULL',\n lt: \"{0} < '{1}'\",\n lte: \"{0} <= '{1}'\",\n gt: \"{0} > '{1}'\",\n gte: \"{0} >= '{1}'\",\n startswith: \"{0} LIKE '{1}%'\",\n doesnotstartwith: \"{0} NOT LIKE '{1}%'\",\n contains: \"{0} LIKE '%{1}%'\",\n doesnotcontain: \"{0} NOT LIKE '%{1}%'\",\n isempty: \"{0} = ''\",\n isnotempty: \"{0} != ''\",\n}\nconst transactionStatus: any = [\n { id: 'awaitingapproval', value: 'Waiting For Approval' },\n { id: 'pending', value: 'Pending' },\n { id: 'batched', value: 'Batched' },\n { id: 'invalid_account_details', value: 'Invalid Account Details' },\n { id: 'completed', value: 'Completed' },\n { id: 'bank_processing', value: 'Bank Processing' },\n { id: 'rejected', value: 'Rejected' },\n]\n\nexport const hasPermission = (permission: PAGE_PERMISSION, activePages: Page[]) => {\n return activePages.some(page => page.name === permission)\n}\n\nexport const toSQLExpression = (filter: any) => {\n if (!filter) return\n var { filters } = filter\n var result = ''\n for (let i = 0; i < filters.length; i++) {\n if (i !== 0) {\n result += ` ${filter.logic} `\n }\n\n var { operator, field, value } = filters[i]\n var mapping = mappings[operator]\n let type: typeof value\n\n if (type === 'date') {\n value = value.toString(value, SQL_DATE_FORMAT)\n }\n var query = mapping.replace('{0}', field).replace('{1}', value)\n result += query\n }\n\n return result\n}\n\nexport const toObjectExpression = (filter: any) => {\n var data: any = {}\n ; ((filter !== null && filter.filters) || []).forEach((filter: any) => {\n var { field, value } = filter\n data[field] = value\n })\n return data\n}\n\nexport const toLinQExpression = (filter: any) => {\n let data: any = ''\n ; ((filter !== null && filter.filters) || []).forEach((filter: any, index: number) => {\n if (index > 0) data += ' and '\n var { field, value, type } = filter\n\n if (typeof 0 === type) {\n data += `${field} = (${value})`\n } else if (typeof true === type) {\n if (field === 'InActive') {\n data += `${field}.equals(${value !== 'Active'} || ${value === 'Delivered'})`\n } else data += `${field}.equals(${value === 'Active'} || ${value === 'Delivered'})`\n } else if (typeof new Date() === type) {\n if (value) {\n const newValue = dateFormat(value)\n data += `${field} = DateTime.ParseExact(\"${newValue}\", \"dd/MM/yyyy\", null)`\n }\n } else data += `${field}.contains(\"${value}\")`\n })\n return data\n}\n\n// mm/dd/yyyy date args\nexport const dateFormat = (date: any) => {\n if (!date) return null\n date = new Date(date)\n return moment(date).format('DD/MM/YYYY')\n}\n\n// dd/mm/yyyy to dates\nexport const dateFormatDDMMYYY = (dateString: any) => {\n if (!dateString) return null\n var dateParts = dateString.split('/')\n\n return new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]).setSeconds(1)\n}\n\nexport const validateDate = (date: Date) => {\n if (!moment(date).isValid()) return false\n\n if (date.getFullYear() < 1900) return false\n\n return true\n}\n\nexport const CurrencyFormatter = (value: number) => {\n const intl = useInternationalization()\n if (!value) return intl.formatNumber(0, 'c')\n\n return intl.formatNumber(value, 'c')\n}\n\nexport const AmountFormatter = (value: number, currency: string) => {\n const formatter = new Intl.NumberFormat('en-US', {\n style: 'decimal',\n maximumFractionDigits: 2,\n })\n\n let formattedNumber = formatter.format(value)\n if (formattedNumber.indexOf('.') < 0) {\n formattedNumber = `${formattedNumber}.00`\n }\n\n const decIndex = formattedNumber.indexOf('.')\n const dec = formattedNumber.substring(decIndex + 1)\n // add extra 0 if decimal is single number\n if (dec.length === 1) {\n formattedNumber = `${formattedNumber}0`\n }\n\n return `${currency} ${formattedNumber}`\n}\n\nexport const userCanEdit = (roles?: string[]) => {\n const data = (roles || ['']).find((role: string) => role === 'Administrator')\n return data !== undefined\n}\n\nexport const unique = (value: any, index: any, self: any) => {\n return self.indexOf(self.find((t: any) => t.clientId === value.clientId)) === index\n}\nexport const filterToObject = (filter: any) => {\n var data = {}\n ; ((filter !== null && filter.filters) || []).forEach((filter: any) => {\n var { field, value } = filter\n if (value)\n data = {\n ...data,\n [field]: value,\n }\n })\n return data\n}\n\nexport const capitalizeTest = (text: string): string => {\n return (text && text[0].toUpperCase() + text.slice(1)) || text\n}\n\nexport const serializeMessage = (isJsonString: string) => {\n try {\n return JSON.parse(isJsonString)\n } catch (e) {\n return null\n }\n}\n\nexport const serializeErrorResponse = (message: string): string => {\n const sMessage = serializeMessage(message)\n let errorMessage = ''\n\n if (sMessage) {\n if (sMessage.errors && Object.keys(sMessage.errors).length > 0) {\n for (const [key, value] of Object.entries(sMessage.errors)) {\n const nKey = key.replace('principal.', '').replace('principal', '')\n if (nKey !== '') {\n // Append the error message to errorMessage\n errorMessage += `${capitalizeTest(nKey)}: ${value}. `\n }\n }\n }\n } else {\n errorMessage = message\n }\n\n return errorMessage\n}\n\nexport const transactionStatusMasking = (status: string) => {\n const resStatus = transactionStatus.find((x: any) => x.id === status)\n if (!resStatus) {\n return status\n }\n return resStatus.value\n}\nexport const downloadFileFromBase64 = (base64PDFData: any, fileName: string, mimeType: string) => {\n var binaryData = atob(base64PDFData)\n var blob = new Blob([new Uint8Array(Array.from(binaryData).map((char) => char.charCodeAt(0)))], {\n type: mimeType,\n })\n\n // Create a URL for the Blob\n var url = window.URL.createObjectURL(blob)\n\n // Create a link element for download\n var a = document.createElement('a')\n a.href = url\n\n // Set the download attribute with the desired filename\n a.download = `${fileName}.csv`\n\n // Programmatically click the link to trigger the download\n a.click()\n\n // Clean up by revoking the Blob URL\n window.URL.revokeObjectURL(url)\n}\n\nexport const blockNonNumericChars = (event: any) => {\n const regex = /\\D+/\n const { key } = event\n if (regex.test(key)) {\n event.preventDefault()\n }\n}\n\nexport const getUTCDate = (startDate: Date) => {\n const currentDate = new Date()\n // if selected picker equals to current date time then convert to utc date\n if (\n currentDate.getDate() == startDate.getDate() &&\n currentDate.getMonth() == startDate.getMonth() &&\n currentDate.getFullYear() == startDate.getFullYear()\n ) {\n const utcDate = new Date(startDate.toISOString())\n const result = new Date(\n utcDate.getFullYear(),\n utcDate.getMonth(),\n utcDate.getDate(),\n currentDate.getUTCHours(),\n currentDate.getUTCMinutes()\n )\n return result\n } else {\n // month/day/year from startDate and time(hour, mins) from currentDateTimeFromJavascript\n return new Date(\n startDate.getFullYear(),\n startDate.getMonth(),\n startDate.getDate(),\n currentDate.getHours(),\n currentDate.getMinutes()\n )\n }\n}\n\nexport const getErrorMessage = (error: any, defaultErrorMessage?: string) => {\n let errorMessage = null\n if (!errorMessage && error.response && typeof error.response.data === 'string' && error.response.data)\n errorMessage = error.response.data\n if (!errorMessage && error.response && error.response.data && error.response.data.title)\n errorMessage = error.response.data.title\n if (!errorMessage && error.response && error.response.data && error.response.data.message)\n errorMessage = serializeErrorResponse(error.response.data.message)\n if (!errorMessage)\n errorMessage = defaultErrorMessage ?? 'An error occurred'\n return errorMessage;\n}\n\nexport const deepCopy = (obj: any): any => {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map(deepCopy);\n }\n\n const newObj: any = {};\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n newObj[key] = deepCopy(obj[key]);\n }\n }\n\n return newObj;\n}\n\n// dd/mm/yyyy to dates\nexport const getDateWithTimeString = (date: Date) => {\n\n const mm = (date.getMonth() + 1).toString().padStart(2, '0');\n const dd = date.getDate().toString().padStart(2, '0');\n const yy = date.getFullYear().toString().substr(-2);\n const hr = date.getHours().toString().padStart(2, '0');\n const min = date.getMinutes().toString().padStart(2, '0');\n \n return `${dd}/${mm}/${yy} ${hr}:${min}`;\n}\n","import {SortDescriptor} from '@progress/kendo-data-query'\nimport axios from 'axios'\nimport {IItemsData} from '../models/items'\nexport const ORDER_URL = `${process.env.REACT_APP_API_URL}/Order`\nexport const CLIENT_URL = `${process.env.REACT_APP_API_URL}/Client`\nexport const MASTER_WALLET_URL = `${process.env.REACT_APP_API_URL}/MasterWallet`\nexport const CURRENCY_URL = `${process.env.REACT_APP_API_URL}/Currency`\n\nexport const getOrders = async (\n offset: number,\n limit: number,\n pageSort: any,\n isCreatedByDebit: boolean,\n userId: string,\n objectFilter: any\n) => {\n const {buyerName, name, sellerName, state, uuid, debitAmount, paymentCycleName} = objectFilter\n try {\n return await axios.get(`${ORDER_URL}/get`, {\n params: {\n offset,\n limit,\n sort: `${pageSort.field} ${pageSort.dir}`,\n isCreatedByDebit,\n userId,\n buyerName,\n name,\n sellerName,\n state,\n uuid,\n debitAmount,\n paymentCycleName,\n },\n })\n } catch (err) {\n return []\n }\n}\n\nexport const getAvailableClients = async (keyword?: string) => {\n try {\n const {data} = await axios.get(`${CLIENT_URL}/getavailableclients`, {\n params: {\n keyword,\n },\n })\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const getCurrencies = async (keyword?: string) => {\n try {\n if (keyword == null || keyword === '') return [null, null]\n\n const {data} = await axios.get(`${CURRENCY_URL}`, {\n params: {\n keyword,\n },\n })\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const getCurrentCurrencies = async () => {\n try {\n const {data} = await axios.get(`${CURRENCY_URL}/current`, {\n params: {},\n })\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const createItem = async (form: any) => {\n try {\n const {data} = await axios.post(`${ORDER_URL}/create`, form)\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const updateItem = async (form: any) => {\n try {\n const {data} = await axios.put(`${ORDER_URL}/update`, form)\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const reRunItem = async (uuid: string, buyerId: string) => {\n try {\n const data = await axios.get(`${ORDER_URL}/re_run?Id=${uuid}&Buyer_id=${buyerId}`)\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const getMasterUser = async () => {\n try {\n const {data} = await axios.get(`${MASTER_WALLET_URL}/getmasteruser`)\n return [data, null]\n } catch (err) {\n return [null, err]\n }\n}\n\nexport const authorizeOrder = async (id: number) => {\n const payload: any = {id: id}\n\n try {\n const {data} = await axios.post(`${ORDER_URL}/authorize`, payload)\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const generateCsv = async () => {\n try {\n const {data} = await axios.post(\n `${ORDER_URL}/generate-csv`,\n {},\n {\n headers: {\n 'Content-Type': 'application/json', // Set the appropriate content type\n },\n }\n )\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport {FC} from 'react'\n\nconst Dropdown2: FC = () => {\n return (\n \n
\n
Quick Actions
\n
\n\n
\n\n \n\n \n\n \n \n New Group\n \n \n\n \n \n\n \n\n
\n\n \n \n )\n}\n\nexport {Dropdown2}\n","import {IClients, IClientsData} from '../../client/models/client'\nimport {IRole} from '../../users/models/user-model'\nimport {FIELD_COLUMN_MAP, FIELD_DEFAULT} from '../constants/default'\nimport {IClientBankOption, IClientOption} from '../models/transaction-model'\nimport {SortDescriptor} from '@progress/kendo-data-query'\nexport const transformDataClient = (client: IClientsData[]) => {\n return (client || []).map((client) => ({\n value: client.unqId,\n label:\n client.firstName + ' ' + client.lastName + ' - ' + (client.email == null ? '' : client.email),\n client: client,\n }))\n}\n\nexport const transformDataToBankInfo = (bank: IClientBankOption) => {\n return {\n zaiBankId: bank.bank.zaiBankId,\n bankName: bank.bank.bankName,\n bsb: bank.bank.bsb,\n accountNumber: bank.bank.accountNumber,\n accountName: bank.bank.accountName,\n }\n}\n\nexport const transformDataToBankInfoFromZai = (bankInfo: any) => {\n return {\n bankName: bankInfo.bank.bank_name,\n bsb: bankInfo.bank.routing_number,\n accountNumber: bankInfo.bank.account_number,\n accountName: bankInfo.bank.account_name,\n }\n}\n\nexport const transformDataToBankInfoFromMasterWallet = (bankInfo: any) => {\n return {\n clientId: bankInfo.client_id,\n bankName: bankInfo.bank_name,\n bsb1: bankInfo.bsb1,\n bsb2: bankInfo.bsb2,\n bankAccountNumber: bankInfo.account_number,\n bankAccountName: bankInfo.account_name,\n bankBranch: bankInfo.bank_branch,\n bankDescription: bankInfo.bank_description,\n }\n}\n\nexport const transformSaveClient = (option: IClientOption) => {\n return option.value //(option || []).map((add) => add.value)\n}\nexport const transformTransactionFilter = (filter: any) => {\n if (!filter) return filter\n\n let newFilter = (filter.filters || []).map((ft: any) => {\n const fieldMap = FIELD_COLUMN_MAP.find((cln) => cln.field === ft.field)\n\n ft = {\n ...ft,\n field: fieldMap?.objectMap,\n type: fieldMap?.type,\n }\n return ft\n })\n\n return {...filter, filters: newFilter}\n}\nexport const transformTransactinSort = (sort: SortDescriptor[]) => {\n const configSort: any = {\n ...sort[0],\n field: sort[0] ? sort[0].field : FIELD_DEFAULT.field,\n dir: sort[0] ? sort[0].dir : FIELD_DEFAULT.dir,\n }\n const fieldMap = FIELD_COLUMN_MAP.find((cln) => cln.field === configSort.field)\n const sortField = fieldMap ? fieldMap.objectMap : configSort.field\n return {...configSort, field: sortField}\n}\n\nexport const transformClientBankListToBankOptions = (banks: any[]) => {\n var bankOptions: IClientBankOption[] = []\n\n banks.forEach((bank) => {\n bankOptions.push({\n value: bank.bankName,\n label: bank.bankName + ' - ' + bank.bankAccountNumber.slice(-3),\n bank: {\n zaiBankId: bank.zaiBankId,\n bankName: bank.bankName,\n bsb: bank.bsb1 + '-' + bank.bsb2,\n accountNumber: bank.bankAccountNumber,\n accountName: bank.bankAccountName,\n },\n })\n })\n\n return bankOptions\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, {FC} from 'react'\n\ntype Props = {\n proceedHandler: () => void,\n cancelHandler: () => void,\n}\n\nconst ButtonModal: FC = ({proceedHandler, cancelHandler}) => {\n return (\n \n Proceed\n \n \n )\n}\n\nexport {ButtonModal}\n","import React, {useMemo, useState} from 'react'\nimport {useAsyncFn} from 'react-use'\nimport {IAlert} from '../../../shared/components/CustomAlert'\nimport {getMasterUser} from '../../orders/api/ItemApi'\nimport {AVALIABLECLIENT_DEFAULT} from '../../orders/constant/item-default'\nimport {IAvailableClient} from '../../orders/models/available-client'\nimport {getAllClientsWithType} from '../api'\nimport {TOASTER_DEFAULT, TRANSACTION_FORM_DEFAULT} from '../constants/default'\nimport {IClientOption, ITransaction} from '../models/transaction-model'\nimport {transformDataClient} from '../transformers/transaction-transformer'\n\ninterface IProps {\n masterUser: IAvailableClient\n selectedData: ITransaction\n setSelectedData: (data: ITransaction) => void\n contextToaster: IAlert\n setContextToaster: (alert: IAlert) => void\n clientOptions: IClientOption[]\n getAllClientsWithTypeAsync: (...args: any[]) => Promise\n getMasterUserAsync: () => Promise\n fetchingClient: boolean\n fetchingMasteUser: boolean\n}\n\nexport const TransactionContext = React.createContext({\n masterUser: AVALIABLECLIENT_DEFAULT,\n selectedData: TRANSACTION_FORM_DEFAULT,\n setSelectedData: (data: ITransaction) => {},\n contextToaster: TOASTER_DEFAULT,\n setContextToaster: (data: IAlert) => {},\n clientOptions: [],\n getAllClientsWithTypeAsync: async (...args: any[]) => {},\n getMasterUserAsync: async () => {},\n fetchingClient: false,\n fetchingMasteUser: false,\n})\n\nexport const TransactionContextProvider: React.FC = ({children}) => {\n const [selectedData, setSelectedData] = useState(TRANSACTION_FORM_DEFAULT)\n const [contextToaster, setContextToaster] = useState(TOASTER_DEFAULT)\n const [clientOptions, setClientOptions] = useState([])\n const [masterUser, setMasterUser] = useState(AVALIABLECLIENT_DEFAULT)\n\n const [{loading: fetchingClient}, getAllClientsWithTypeAsync] = useAsyncFn(\n async (...args) => {\n const [keyword, type, isMasterWalletDefault] = args\n const response = await getAllClientsWithType(keyword, isMasterWalletDefault)\n const clients = transformDataClient(response.items)\n setClientOptions(clients as any)\n },\n [setClientOptions]\n )\n\n const [{loading: fetchingMasteUser}, getMasterUserAsync] = useAsyncFn(\n async (...args) => {\n const [data, error] = await getMasterUser()\n if (data) {\n setMasterUser(data)\n }\n },\n [setMasterUser]\n )\n\n const value: IProps = useMemo(() => {\n return {\n masterUser,\n selectedData,\n setSelectedData,\n contextToaster,\n setContextToaster,\n clientOptions,\n getAllClientsWithTypeAsync,\n getMasterUserAsync,\n fetchingClient,\n fetchingMasteUser,\n }\n }, [\n masterUser,\n selectedData,\n setSelectedData,\n contextToaster,\n setContextToaster,\n clientOptions,\n getAllClientsWithTypeAsync,\n getMasterUserAsync,\n fetchingClient,\n fetchingMasteUser,\n ])\n\n return {children}\n}\n","import {SortDescriptor} from '@progress/kendo-data-query'\nimport axios from 'axios'\n\nimport {IClientsData} from '../models/client'\n\nexport const CLIENT_URL = `${process.env.REACT_APP_API_URL}/Client`\nexport const BANK_URL = `${process.env.REACT_APP_API_URL}/Bank`\nexport const BDM_URL = `${process.env.REACT_APP_API_URL}/BDM`\nexport const TRANSACTION_URL = `${process.env.REACT_APP_API_URL}/transaction`\nexport const CLIENTVIRTUALACCOUNT_URL = `${process.env.REACT_APP_API_URL}/clientvirtualaccount`\nexport const PAYIN_URL = `${process.env.REACT_APP_API_URL}/payin`\n\nexport const getClientListWithPagination = async (\n skip: number,\n take: number,\n pageSort: SortDescriptor,\n search?: string,\n clientType?: number\n) => {\n try {\n const response = await axios.post(`${CLIENT_URL}/get`, {\n skip,\n take,\n search,\n sort: `${pageSort.field} ${pageSort.dir}`,\n clientType: clientType,\n })\n\n return response?.data ?? []\n } catch (err) {\n return []\n }\n}\n\nexport const createClient = async (formData: any) => {\n try {\n const {data} = await axios.post(`${CLIENT_URL}/create`, formData)\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const updateClient = async (formData: any[]) => {\n try {\n const {data} = await axios.put(`${CLIENT_URL}/update`, formData)\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const deleteClient = async (unqId: string) => {\n try {\n const {data} = await axios.delete(`${CLIENT_URL}?unqId=${unqId}`)\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const directDebitCreateClient = async (form: any) => {\n try {\n const {data} = await axios.post(`${CLIENT_URL}/directdebit`, form)\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const getClientProfileById = async (companyId: string) => {\n try {\n const {data} = await axios.get(`${CLIENT_URL}/getclientprofilebyid?companyId=${companyId}`)\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const getBankList = async (take: any, skip: any, search: any) => {\n try {\n const params = `take=${take}&skip=${skip}&search=${search}`\n const {data} = await axios.get(`${BANK_URL}/get?${params}`)\n return data\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const getBDMList = async (take: any, skip: any, search: any) => {\n try {\n const params = `take=${take}&skip=${skip}&search=${search}`\n const {data} = await axios.get(`${BDM_URL}/get?${params}`)\n return data\n } catch (error) {\n return [null, error]\n }\n}\n\nexport const getClientTransactions = async (clientId: string) => {\n try {\n return await axios.get(`${TRANSACTION_URL}/get`, {\n params: {\n skip: 0,\n take: 99999,\n sort: `id desc`,\n clientId,\n },\n })\n } catch (err) {\n return err\n }\n}\n\nexport const getClientById = async (id: string) => {\n try {\n const {data} = await axios.get(`${CLIENT_URL}/getbyid?id=${id}`)\n return data\n } catch (error) {\n return error\n }\n}\n\nexport const createVirtualAccount = async (id: number) => {\n try {\n var result = await axios.post(`${CLIENTVIRTUALACCOUNT_URL}`, {\n clientId: id\n })\n return result\n } catch (error) {\n return error\n }\n}\n\nexport const getPayIdsByClientPagination = async (id: number, skip: number, take: number) => {\n try {\n const {data} = await axios.get(`${PAYIN_URL}/pagination`, {\n params: {\n clientId: id,\n skip,\n take\n }\n })\n return data\n } catch (error) {\n return error\n }\n}\n","export class ElementStyleUtil {\n public static set(element: HTMLElement, property: string, value?: any, important?: boolean) {\n if (important) {\n element.style.setProperty(property, value, 'important')\n } else {\n element.style.setProperty(property, value)\n }\n }\n\n public static get(element: HTMLElement, attributeName: string) {\n return element.style.getPropertyValue(attributeName)\n }\n\n public static remove(element: HTMLElement, attibuteName: string) {\n element.style.removeProperty(attibuteName)\n }\n}\n","export class DataUtil {\n static store: Map> = new Map()\n\n public static set(instance: HTMLElement | undefined, key: string, data: any): void {\n if (!instance) {\n return\n }\n\n const instanceData = DataUtil.store.get(instance)\n if (!instanceData) {\n const newMap = new Map().set(key, data)\n DataUtil.store.set(instance, newMap)\n return\n }\n\n instanceData.set(key, data)\n }\n\n public static get(instance: HTMLElement, key: string): any | undefined {\n const instanceData = DataUtil.store.get(instance)\n if (!instanceData) {\n return\n }\n\n return instanceData.get(key)\n }\n\n public static remove(instance: HTMLElement, key: string): void {\n const instanceData = DataUtil.store.get(instance)\n if (!instanceData) {\n return\n }\n\n instanceData.delete(key)\n }\n\n public static has(instance: HTMLElement, key: string): boolean {\n const instanceData = DataUtil.store.get(instance)\n if (instanceData) {\n return instanceData.has(key)\n }\n\n return false\n }\n\n public static getAllInstancesByKey(key: string) {\n const result: any[] = []\n DataUtil.store.forEach((val) => {\n val.forEach((v, k) => {\n if (k === key) {\n result.push(v)\n }\n })\n })\n return result\n }\n}\n","function getObjectPropertyValueByKey(obj: any, key: string): any | undefined {\n const map = new Map(Object.entries(obj))\n if (obj.hasOwnProperty(key) && map) {\n return map.get(key)\n }\n}\n\n/**\n * Generates unique ID for give prefix.\n * @param {string} prefix Prefix for generated ID\n * @returns {boolean}\n */\nfunction getUniqueIdWithPrefix(prefix: string | undefined): string {\n const result = Math.floor(Math.random() * new Date().getTime()).toString()\n if (!prefix) {\n return result\n }\n\n return `${prefix}${result}`\n}\n\n/* eslint-disable no-useless-escape */\nfunction stringSnakeToCamel(str: string): string {\n return str.replace(/(\\-\\w)/g, function (m) {\n return m[1].toUpperCase()\n })\n}\n\nfunction toJSON(value: string | JSON): JSON | undefined {\n if (typeof value !== 'string') {\n return value\n }\n\n if (!value) {\n return undefined\n }\n\n // (\"'\" => \"\\\"\");\n const result = value\n .toString()\n .split('')\n .map((el) => (el !== \"'\" ? el : '\"'))\n .join('')\n var jsonStr = result.replace(/(\\w+:)|(\\w+ :)/g, function (matched) {\n return '\"' + matched.substring(0, matched.length - 1) + '\":'\n })\n try {\n return JSON.parse(jsonStr)\n } catch {\n return undefined\n }\n}\n\nexport {getObjectPropertyValueByKey, getUniqueIdWithPrefix, stringSnakeToCamel, toJSON}\n","import {getUniqueIdWithPrefix} from './_TypesHelpers'\n\nexport class DOMEventHandlerUtil {\n public static store = new Map()\n\n public static on(\n element: HTMLElement,\n selector: string,\n eventName: string,\n callBack: any\n ): string {\n const eventId = getUniqueIdWithPrefix('DOMEvent')\n DOMEventHandlerUtil.store.set(eventId, (e: Event) => {\n const targets = element.querySelectorAll(selector)\n let target: HTMLElement | null = e.target as HTMLElement\n while (target && target !== element) {\n for (let i = 0; i < targets.length; i++) {\n if (target === targets[i]) {\n callBack.call(target, e)\n }\n }\n\n if (target.parentElement) {\n target = target.parentElement\n } else {\n target = null\n }\n }\n })\n element.addEventListener(eventName, DOMEventHandlerUtil.store.get(eventId))\n return eventId\n }\n\n public static off(element: HTMLElement, eventName: string, eventId: string): void {\n const funcFromStore = DOMEventHandlerUtil.store.get(eventId)\n if (!funcFromStore) {\n return\n }\n\n element.removeEventListener(eventName, funcFromStore)\n DOMEventHandlerUtil.store.delete(eventId)\n }\n\n public static one(element: HTMLElement, eventName: string, callBack: Function): void {\n element.addEventListener(eventName, function calee(e) {\n // remove event\n if (e.target && e.target.removeEventListener) {\n e.target.removeEventListener(e.type, calee)\n }\n\n if (element && e && e.currentTarget) {\n // if (element && element.removeEventListener && e && e.currentTarget) {\n e.currentTarget.removeEventListener(e.type, calee)\n }\n\n // call hander\n return callBack(e)\n })\n }\n}\n","import {DOMEventHandlerUtil} from './_DOMEventHandlerUtil'\nimport {ElementStyleUtil} from './_ElementStyleUtil'\nimport {getElementOffset} from './DomHelpers'\n\nexport class ElementAnimateUtil {\n public static animate(\n from: number,\n to: number,\n duration: number,\n update: Function,\n complete?: Function\n ) {\n /**\n * TinyAnimate.easings\n * Adapted from jQuery Easing\n */\n const easings = {\n linear: function (t: number, b: number, c: number, d: number) {\n return (c * t) / d + b\n },\n }\n\n // Create mock done() function if necessary\n if (!complete) {\n complete = function () {}\n }\n\n // Animation loop\n // let canceled = false;\n const change = to - from\n\n function loop(timestamp: number) {\n var time = (timestamp || +new Date()) - start\n\n if (time >= 0) {\n update(easings.linear(time, from, change, duration))\n }\n if (time >= 0 && time >= duration) {\n update(to)\n if (complete) {\n complete()\n }\n } else {\n window.requestAnimationFrame(loop)\n }\n }\n\n update(from)\n\n // Start animation loop\n const start =\n window.performance && window.performance.now ? window.performance.now() : +new Date()\n\n window.requestAnimationFrame(loop)\n }\n\n public static animateClass(\n element: HTMLElement,\n animationName: string,\n callBack?: Function\n ): void {\n const animateClasses = animationName.split(' ')\n animateClasses.forEach((cssClass) => element.classList.add(cssClass))\n DOMEventHandlerUtil.one(element, 'animationend', function () {\n animateClasses.forEach((cssClass) => element.classList.remove(cssClass))\n })\n\n if (callBack) {\n DOMEventHandlerUtil.one(element, 'animationend', callBack)\n }\n }\n\n public static transitionEnd(element: HTMLElement, callBack: Function) {\n DOMEventHandlerUtil.one(element, 'transitionend', callBack)\n }\n\n public static animationEnd(element: HTMLElement, callBack: Function) {\n DOMEventHandlerUtil.one(element, 'animationend', callBack)\n }\n\n public static animationDelay(element: HTMLElement, value: string) {\n ElementStyleUtil.set(element, 'animation-delay', value)\n }\n\n public static animationDuration(element: HTMLElement, value: string) {\n ElementStyleUtil.set(element, 'animation-duration', value)\n }\n\n public static scrollTo(element: HTMLElement | null, offset: number, duration: number = 500) {\n let targetPos = element ? getElementOffset(element).top : 0\n let scrollPos =\n window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0\n\n if (offset) {\n scrollPos += offset\n targetPos = targetPos - offset\n }\n\n const from = scrollPos\n const to = targetPos\n\n ElementAnimateUtil.animate(from, to, duration, function (value: number) {\n document.documentElement.scrollTop = value\n // document.body.parentNode.scrollTop = value;\n document.body.scrollTop = value\n }) //, easing, done\n }\n public static scrollTop(offset: number, duration: number) {\n ElementAnimateUtil.scrollTo(null, offset, duration)\n }\n}\n","import {OffsetModel} from './models/OffsetModel'\nimport {ViewPortModel} from './models/ViewPortModel'\nimport {ElementStyleUtil} from './_ElementStyleUtil'\nimport {DataUtil} from './_DataUtil'\nimport {ElementAnimateUtil} from './ElementAnimateUtil'\nimport {getObjectPropertyValueByKey, toJSON} from './_TypesHelpers'\n\nfunction getCSS(el: HTMLElement, styleProp: string) {\n const defaultView = (el.ownerDocument || document).defaultView\n\n if (!defaultView) {\n return ''\n }\n\n // sanitize property name to css notation\n // (hyphen separated words eg. font-Size)\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase()\n\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp)\n}\n\nfunction getCSSVariableValue(variableName: string) {\n let hex = getComputedStyle(document.documentElement).getPropertyValue(variableName)\n if (hex && hex.length > 0) {\n hex = hex.trim()\n }\n\n return hex\n}\n\nfunction getElementActualCss(el: HTMLElement, prop: any, cache: boolean) {\n let css = ''\n\n if (!el.getAttribute('kt-hidden-' + prop) || cache === false) {\n let value\n\n // the element is hidden so:\n // making the el block so we can meassure its height but still be hidden\n css = el.style.cssText\n el.style.cssText = 'position: absolute; visibility: hidden; display: block;'\n\n if (prop === 'width') {\n value = el.offsetWidth\n } else if (prop === 'height') {\n value = el.offsetHeight\n }\n\n el.style.cssText = css\n\n // store it in cache\n if (value !== undefined) {\n el.setAttribute('kt-hidden-' + prop, value.toString())\n return parseFloat(value.toString())\n }\n return 0\n } else {\n // store it in cache\n const attributeValue = el.getAttribute('kt-hidden-' + prop)\n if (attributeValue || attributeValue === '0') {\n return parseFloat(attributeValue)\n }\n }\n}\n\nfunction getElementActualHeight(el: HTMLElement) {\n return getElementActualCss(el, 'height', false)\n}\n\nfunction getElementActualWidth(el: HTMLElement, cache?: boolean) {\n return getElementActualCss(el, 'width', false)\n}\n\nfunction getElementIndex(element: HTMLElement) {\n if (element.parentNode) {\n const c = element.parentNode.children\n for (let i = 0; i < c.length; i++) {\n if (c[i] === element) return i\n }\n }\n return -1\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\nfunction getElementMatches(element: HTMLElement, selector: string) {\n const p = Element.prototype\n const f = p.matches || p.webkitMatchesSelector\n\n if (element && element.tagName) {\n return f.call(element, selector)\n } else {\n return false\n }\n}\n\nfunction getElementOffset(el: HTMLElement): OffsetModel {\n // Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n // Support: IE <=11 only\n // Running getBoundingClientRect on a\n // disconnected node in IE throws an error\n if (!el.getClientRects().length) {\n return {top: 0, left: 0}\n }\n\n // Get document-relative position by adding viewport scroll to viewport-relative gBCR\n const rect = el.getBoundingClientRect()\n const win = el.ownerDocument.defaultView\n if (win) {\n return {\n top: rect.top + win.pageYOffset,\n left: rect.left + win.pageXOffset,\n }\n }\n\n return rect\n}\n\nfunction getElementParents(element: Element, selector: string) {\n // Element.matches() polyfill\n if (!Element.prototype.matches) {\n Element.prototype.matches = function (s) {\n const matches = (document || this.ownerDocument).querySelectorAll(s)\n let i = matches.length\n while (--i >= 0 && matches.item(i) !== this) {}\n return i > -1\n }\n }\n\n // Set up a parent array\n const parents: Array = []\n\n let el: Element | null = element\n\n // Push each parent element to the array\n for (; el && el !== document.body; el = el.parentElement) {\n if (selector) {\n if (el.matches(selector)) {\n parents.push(el)\n }\n continue\n }\n parents.push(el)\n }\n\n // Return our parent array\n return parents\n}\n\nfunction getHighestZindex(el: HTMLElement) {\n let bufferNode: Node | null = el as Node\n let buffer = el\n while (bufferNode && bufferNode !== document) {\n // Ignore z-index if position is set to a value where z-index is ignored by the browser\n // This makes behavior of this function consistent across browsers\n // WebKit always returns auto if the element is positioned\n const position = buffer.style.getPropertyValue('position')\n if (position === 'absolute' || position === 'relative' || position === 'fixed') {\n // IE returns 0 when zIndex is not specified\n // other browsers return a string\n // we ignore the case of nested elements with an explicit value of 0\n //
\n const value = parseInt(buffer.style.getPropertyValue('z-index'))\n if (!isNaN(value) && value !== 0) {\n return value\n }\n }\n\n bufferNode = bufferNode.parentNode\n buffer = bufferNode as HTMLElement\n }\n return null\n}\n\nfunction getScrollTop(): number {\n return (document.scrollingElement || document.documentElement).scrollTop\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth\nfunction getViewPort(): ViewPortModel {\n return {\n width: window.innerWidth,\n height: window.innerHeight,\n }\n}\n\nfunction insertAfterElement(el: HTMLElement, referenceNode: HTMLElement) {\n return referenceNode.parentNode?.insertBefore(el, referenceNode.nextSibling)\n}\n\nfunction isElementHasClasses(element: HTMLElement, classesStr: string): boolean {\n const classes = classesStr.split(' ')\n for (let i = 0; i < classes.length; i++) {\n if (!element.classList.contains(classes[i])) {\n return false\n }\n }\n\n return true\n}\n\nfunction isVisibleElement(element: HTMLElement): boolean {\n return !(element.offsetWidth === 0 && element.offsetHeight === 0)\n}\n\n// Throttle function: Input as function which needs to be throttled and delay is the time interval in milliseconds\nfunction throttle(timer: number | undefined, func: Function, delay?: number) {\n // If setTimeout is already scheduled, no need to do anything\n if (timer) {\n return\n }\n\n // Schedule a setTimeout after delay seconds\n timer = window.setTimeout(function () {\n func()\n\n // Once setTimeout function execution is finished, timerId = undefined so that in
\n // the next scroll event function execution can be scheduled by the setTimeout\n timer = undefined\n }, delay)\n}\n\nfunction getElementChildren(element: HTMLElement, selector: string): Array | null {\n if (!element || !element.childNodes) {\n return null\n }\n\n const result: Array = []\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n // child.nodeType == 1 => Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference\n if (child.nodeType === 1 && getElementMatches(child as HTMLElement, selector)) {\n result.push(child as HTMLElement)\n }\n }\n\n return result\n}\n\nfunction getElementChild(element: HTMLElement, selector: string): HTMLElement | null {\n const children = getElementChildren(element, selector)\n return children ? children[0] : null\n}\n\nfunction isMobileDevice(): boolean {\n let test = getViewPort().width < +getBreakpoint('lg') ? true : false\n\n if (test === false) {\n // For use within normal web clients\n test = navigator.userAgent.match(/iPad/i) != null\n }\n\n return test\n}\n\nfunction slide(el: HTMLElement, dir: string, speed: number, callback: any) {\n if (\n !el ||\n (dir === 'up' && isVisibleElement(el) === false) ||\n (dir === 'down' && isVisibleElement(el) === true)\n ) {\n return\n }\n\n speed = speed ? speed : 600\n let calcHeight = getElementActualHeight(el)\n let calcPaddingTop: number = 0\n let calcPaddingBottom: number = 0\n\n if (ElementStyleUtil.get(el, 'padding-top') && DataUtil.get(el, 'slide-padding-top') !== true) {\n DataUtil.set(el, 'slide-padding-top', ElementStyleUtil.get(el, 'padding-top'))\n }\n\n if (\n ElementStyleUtil.get(el, 'padding-bottom') &&\n DataUtil.has(el, 'slide-padding-bottom') !== true\n ) {\n DataUtil.set(el, 'slide-padding-bottom', ElementStyleUtil.get(el, 'padding-bottom'))\n }\n\n if (DataUtil.has(el, 'slide-padding-top')) {\n calcPaddingTop = parseInt(DataUtil.get(el, 'slide-padding-top'))\n }\n\n if (DataUtil.has(el, 'slide-padding-bottom')) {\n calcPaddingBottom = parseInt(DataUtil.get(el, 'slide-padding-bottom'))\n }\n\n if (dir === 'up') {\n // up\n el.style.cssText = 'display: block; overflow: hidden;'\n\n if (calcPaddingTop) {\n ElementAnimateUtil.animate(0, calcPaddingTop, speed, function (value: number) {\n el.style.paddingTop = calcPaddingTop - value + 'px'\n })\n }\n\n if (calcPaddingBottom) {\n ElementAnimateUtil.animate(0, calcPaddingBottom, speed, function (value: number) {\n el.style.paddingBottom = calcPaddingBottom - value + 'px'\n })\n }\n\n ElementAnimateUtil.animate(\n 0,\n calcHeight || 0,\n speed,\n function (value: number) {\n el.style.height = (calcHeight || 0) - value + 'px'\n },\n function () {\n el.style.height = ''\n el.style.display = 'none'\n\n if (typeof callback === 'function') {\n callback()\n }\n }\n )\n } else if (dir === 'down') {\n // down\n el.style.cssText = 'display: block; overflow: hidden;'\n\n if (calcPaddingTop) {\n ElementAnimateUtil.animate(\n 0,\n calcPaddingTop,\n speed,\n function (value: number) {\n //\n el.style.paddingTop = value + 'px'\n },\n function () {\n el.style.paddingTop = ''\n }\n )\n }\n\n if (calcPaddingBottom) {\n ElementAnimateUtil.animate(\n 0,\n calcPaddingBottom,\n speed,\n function (value: number) {\n el.style.paddingBottom = value + 'px'\n },\n function () {\n el.style.paddingBottom = ''\n }\n )\n }\n\n ElementAnimateUtil.animate(\n 0,\n calcHeight || 0,\n speed,\n function (value: number) {\n el.style.height = value + 'px'\n },\n function () {\n el.style.height = ''\n el.style.display = ''\n el.style.overflow = ''\n\n if (typeof callback === 'function') {\n callback()\n }\n }\n )\n }\n}\n\nfunction slideUp(el: HTMLElement, speed: number, callback: any) {\n slide(el, 'up', speed, callback)\n}\n\nfunction slideDown(el: HTMLElement, speed: number, callback: any) {\n slide(el, 'down', speed, callback)\n}\n\nfunction getBreakpoint(breakpoint: string) {\n let value: number | string = getCSSVariableValue('--bs-' + breakpoint)\n if (value) {\n value = parseInt(value.trim())\n }\n\n return value\n}\n\nfunction getAttributeValueByBreakpoint(incomingAttr: string): string | JSON {\n let value = toJSON(incomingAttr)\n if (typeof value !== 'object') {\n return incomingAttr\n }\n\n const width = getViewPort().width\n let resultKey\n let resultBreakpoint = -1\n let breakpoint\n\n for (let key in value) {\n if (key === 'default') {\n breakpoint = 0\n } else {\n breakpoint = getBreakpoint(key) ? +getBreakpoint(key) : parseInt(key)\n }\n\n if (breakpoint <= width && breakpoint > resultBreakpoint) {\n resultKey = key\n resultBreakpoint = breakpoint\n }\n }\n\n return resultKey ? getObjectPropertyValueByKey(value, resultKey) : value\n}\n\nfunction colorLighten(color: string, amount: number) {\n const addLight = (_color: string, _amount: number) => {\n const cc = parseInt(_color, 16) + _amount\n const cNum = cc > 255 ? 255 : cc\n const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}`\n return c\n }\n\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color\n amount = parseInt(((255 * amount) / 100).toString())\n return (color = `#${addLight(color.substring(0, 2), amount)}${addLight(\n color.substring(2, 4),\n amount\n )}${addLight(color.substring(4, 6), amount)}`)\n}\n\nfunction colorDarken(color: string, amount: number) {\n const subtractLight = (_color: string, _amount: number) => {\n const cc = parseInt(color, 16) - amount\n const cNum = cc < 0 ? 0 : cc\n const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}`\n return c\n }\n\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color\n amount = parseInt(((255 * amount) / 100).toString())\n\n return (color = `#${subtractLight(color.substring(0, 2), amount)}${subtractLight(\n color.substring(2, 4),\n amount\n )}${subtractLight(color.substring(4, 6), amount)}`)\n}\n\nexport {\n getBreakpoint,\n getCSS,\n getCSSVariableValue,\n getElementActualCss,\n getElementActualHeight,\n getElementActualWidth,\n getElementIndex,\n getElementMatches,\n getElementOffset,\n getElementParents,\n getHighestZindex,\n getScrollTop,\n getViewPort,\n insertAfterElement,\n isElementHasClasses,\n isVisibleElement,\n throttle,\n getElementChildren,\n getElementChild,\n isMobileDevice,\n slide,\n slideUp,\n slideDown,\n getAttributeValueByBreakpoint,\n colorLighten,\n colorDarken,\n}\n","import {DataUtil} from './_DataUtil'\nimport {getUniqueIdWithPrefix} from './_TypesHelpers'\n\nexport interface EventMeta {\n name: string\n callback: Function\n one: boolean\n fired: boolean\n}\n\nexport class EventHandlerUtil {\n static store: Map> = new Map()\n\n private static setEventMetasByName(name: string, metas: Map): void {\n EventHandlerUtil.store.set(name, metas)\n }\n\n private static getEventMetasByName(name: string): Map | undefined {\n return EventHandlerUtil.store.get(name)\n }\n\n private static setEventMetaByNameAndHandlerId(\n name: string,\n handlerId: string,\n meta: EventMeta\n ): void {\n let metas = EventHandlerUtil.getEventMetasByName(name)\n if (!metas) {\n metas = new Map()\n }\n\n metas.set(handlerId, meta)\n EventHandlerUtil.setEventMetasByName(name, metas)\n }\n\n private static getEventsMetaByHandlerId(name: string, handlerId: string): EventMeta | undefined {\n const metas = EventHandlerUtil.store.get(name)\n if (!metas) {\n return\n }\n\n return metas.get(handlerId)\n }\n\n private static setFiredByNameAndHandlerId(name: string, handerId: string, fired: boolean): void {\n const meta = EventHandlerUtil.getEventsMetaByHandlerId(name, handerId)\n if (!meta) {\n return\n }\n\n meta.fired = fired\n EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handerId, meta)\n }\n\n private static addEvent(\n element: HTMLElement,\n name: string,\n callback: Function,\n one: boolean = false\n ) {\n const handlerId = getUniqueIdWithPrefix('event')\n DataUtil.set(element, name, handlerId)\n const meta: EventMeta = {\n name: name,\n callback: callback,\n one: one,\n fired: false,\n }\n\n EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handlerId, meta)\n }\n\n private static removeEvent(element: HTMLElement, name: string) {\n const handlerId = DataUtil.get(element, name)\n if (!handlerId) {\n return\n }\n\n const metas = EventHandlerUtil.getEventMetasByName(name)\n if (!metas) {\n return\n }\n\n metas.delete(handlerId)\n EventHandlerUtil.setEventMetasByName(name, metas)\n }\n\n public static trigger(element: HTMLElement, name: string, target?: any, e?: Event) {\n if (DataUtil.has(element, name)) {\n const handlerId = DataUtil.get(element, name)\n if (!handlerId) {\n return undefined\n }\n\n const handler = EventHandlerUtil.getEventsMetaByHandlerId(name, handlerId)\n if (handler) {\n if (handler.name === name) {\n if (handler.one === true) {\n if (handler.fired === false) {\n EventHandlerUtil.setFiredByNameAndHandlerId(name, handlerId, true)\n return handler.callback.call(this, target, e)\n }\n } else {\n return handler.callback.call(this, target, e)\n }\n }\n }\n }\n\n return null\n }\n\n public static on = function (element: HTMLElement, name: string, callBack: Function): void {\n EventHandlerUtil.addEvent(element, name, callBack, false)\n }\n\n public static one(element: HTMLElement, name: string, callBack: Function): void {\n EventHandlerUtil.addEvent(element, name, callBack, true)\n }\n\n public static off(element: HTMLElement, name: string): void {\n EventHandlerUtil.removeEvent(element, name)\n }\n}\n","import { IAlert } from \"../../../shared/components/CustomAlert\";\nimport { GridSetup, IRole } from \"../models/role-model\";\n\n\n\nexport const ROLE_FORM_DEFAULT: IRole = {\n id: '',\n name: '',\n displayId: 0,\n \n}\n\nexport const Initial_GridSetup: GridSetup = {\n sort: [{ field: 'id', dir: 'desc' }],\n skip: 0,\n take: 10,\n filter: {\n logic: \"and\",\n filters: [],\n }\n}\n\nexport const TOASTER_DEFAULT: IAlert = {\n message: ``,\n header: ``,\n type: 'success'\n}\n\nexport enum PAGE_PERMISSION {\n Clients_ViewPage = \"Clients.ViewPage\",\n Clients_Edit = \"Clients.Edit\",\n Clients_Add = \"Clients.Add\",\n\n Orders_ViewPage = \"Orders.ViewPage\",\n Orders_Add = \"Orders.Add\",\n Orders_GenerateCsv = \"Orders.GenerateCsv\",\n\n Transactions_ViewPage = \"Transactions.ViewPage\",\n Transactions_CreateWithdrawal = \"Transactions.CreateWithdrawal\",\n Transactions_GenerateCsv = \"Transactions.GenerateCsv\",\n Transactions_Authorise = \"Transactions.Authorise\",\n\n MasterWallet = \"MasterWallet\",\n\n User_ViewPage = \"User.ViewPage\",\n User_Edit = \"User.Edit\",\n User_Add = \"User.Add\",\n User_Delete = \"User.Delete\",\n\n PayIns_ViewPage = \"PayIns.ViewPage\",\n PayIns_GenerateCsv = \"PayIns.GenerateCsv\",\n\n Administrator_Roles_ViewPage = \"Administrator.Roles.ViewPage\",\n Administrator_Roles_Add = \"Administrator.Roles.Add\",\n Administrator_Roles_Edit = \"Administrator.Roles.Edit\",\n Administrator_Roles_Delete = \"Administrator.Roles.Delete\",\n Administrator_Roles_ViewPermissions = \"Administrator.Roles.ViewPermissions\",\n}\n","import * as yup from 'yup'\nexport const transactionFormValidationSchema = yup.object().shape({\n id: yup.string(),\n amount: yup.number(),\n clientId: yup.string(),\n})\n","import {Modal} from 'react-bootstrap-v5'\nimport {ITransaction} from '../../models/transaction-model'\nimport {AuthorizeForm} from './AuthorizeForm'\nimport {useIntl} from 'react-intl'\nimport {deleteTransaction, rejectTransaction} from '../../api'\n\ninterface IProps {\n show: boolean\n handleClose: (refresh: boolean) => void\n transactionData?: ITransaction\n}\n\nconst RejectTransactionModal: React.FC = ({show, handleClose, transactionData}) => {\n const intl = useIntl()\n\n const deleteHandler = () => {\n if (transactionData)\n rejectTransaction(transactionData?.id || 0).then(() => {\n handleClose(true)\n })\n }\n\n return (\n \n \n \n {intl.formatMessage({id: 'ECOMMERCE.FIELD.AUTHORIZETRANSACTION'})}\n \n \n \n {intl.formatMessage({id: 'ECOMMERCE.ACTION.REJECT'})} #{transactionData?.id}. ?\n \n \n
\n
\n \n
\n
\n
\n
\n )\n}\n\nexport {RejectTransactionModal}","import React from 'react'\nimport { useContext, useEffect, useState } from 'react'\nimport { Resolver, useForm } from 'react-hook-form'\nimport { useIntl } from 'react-intl'\nimport { yupResolver } from '@hookform/resolvers/yup'\n\nimport { CustomAlert, IAlert } from '../../../../shared/components/CustomAlert'\nimport { authorizeTransaction } from '../../api'\nimport { TRANSACTION_FORM_DEFAULT } from '../../constants/default'\nimport { TransactionContext } from '../../context/TransactionContext'\nimport { ITransaction } from '../../models/transaction-model'\nimport { transactionFormValidationSchema } from '../../validators/transaction-form'\nimport { getErrorMessage } from '../../../../shared/service/utils'\nimport { RejectTransactionModal } from './RejectTransactionModal'\n\ninterface IProps {\n transactionData?: ITransaction\n onClose: (refresh: boolean) => void\n}\n\nconst AuthorizeForm: React.FC = ({ transactionData, onClose }) => {\n const intl = useIntl()\n const { setContextToaster } = useContext(TransactionContext)\n const [formNotification, setformNotification] = useState()\n const [isProcessing, setIsProcessing] = useState(false)\n const [modalDeleteTransactionShow, setModalDeleteTransactionShow] = useState(false)\n\n\n const {\n register,\n control,\n handleSubmit,\n formState: { errors },\n reset,\n } = useForm({\n defaultValues: transactionData,\n reValidateMode: 'onSubmit',\n resolver: yupResolver(transactionFormValidationSchema) as unknown as Resolver,\n })\n\n useEffect(() => {\n if (transactionData) {\n reset({\n ...transactionData,\n })\n } else {\n reset(TRANSACTION_FORM_DEFAULT)\n }\n }, [transactionData, reset])\n\n const onSubmit = async (values: ITransaction) => {\n const payload: ITransaction = values\n\n setIsProcessing(true)\n const [data, error] = await authorizeTransaction(payload)\n if (data) {\n setContextToaster({\n message: `Transaction authorized successfully.`,\n header: `${intl.formatMessage({ id: 'ECOMMERCE.FIELD.AUTHORIZETRANSACTION' })}`,\n type: 'primary',\n })\n setIsProcessing(false)\n onClose(true)\n } else {\n const errorMessage = getErrorMessage(error)\n setformNotification({\n message: errorMessage,\n header: `Authorization Error`,\n type: 'danger',\n })\n\n setIsProcessing(false)\n }\n }\n\n const onReset = () => {\n reset(TRANSACTION_FORM_DEFAULT)\n }\n\n const closeDeleteTransactionModal = (refresh: boolean = false) => {\n setModalDeleteTransactionShow(false)\n onClose(true)\n }\n\n return (\n \n {formNotification && (\n setformNotification(undefined)} />\n )}\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n {isProcessing\n ? intl.formatMessage({ id: 'ECOMMERCE.VALIDATION.PLEASEWAIT' })\n : intl.formatMessage({ id: 'ECOMMERCE.FIELD.AUTHORIZETRANSACTION' })}\n \n
\n
\n setModalDeleteTransactionShow(true)}\n >\n {intl.formatMessage({ id: 'ECOMMERCE.ACTION.REJECT' })}\n \n
\n
\n
\n
\n
\n )\n}\n\nexport { AuthorizeForm }\n","import {Modal} from 'react-bootstrap-v5'\nimport {ITransaction} from '../../models/transaction-model'\nimport {AuthorizeForm} from './AuthorizeForm'\nimport { useIntl } from 'react-intl'\n\ninterface IProps {\n show: boolean\n handleClose: (refresh: boolean) => void\n transactionData?: ITransaction\n saveCallback?: () => void\n}\n\nconst AuthorizeTransactionModal: React.FC = ({\n show,\n handleClose,\n transactionData,\n saveCallback,\n}) => {\n const intl = useIntl()\n //const {setContextToaster} = useContext(RoleContext)\n\n const saveTransactionHandler = () => {\n /*if (transactionData)\n deleteRole(transactionData).then(() => {\n setContextToaster({\n message: `Successfully deleted the role`,\n header: `Role Delete`,\n type: 'primary',\n })\n saveCallback()\n })*/\n }\n\n return (\n \n \n {intl.formatMessage({id: 'ECOMMERCE.FIELD.AUTHORIZETRANSACTION'})}\n \n \n \n \n \n \n )\n}\n\nexport {AuthorizeTransactionModal}\n","/* eslint-disable no-useless-escape */\n// DOCS: https://javascript.info/cookie\nexport class CookieComponent {\n /**\n * Returns the cookie with the given name, or undefined if not found\n *\n * @param {string} name - cookie name\n * @returns string | null\n */\n public static get(name: string): string | undefined {\n let matches = document.cookie.match(\n new RegExp('(?:^|; )' + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + '=([^;]*)')\n )\n return matches ? decodeURIComponent(matches[1]) : undefined\n }\n\n /**\n * Please note that a cookie value is encoded,\n * so getCookie uses a built-in decodeURIComponent function to decode it.\n *\n * @param {string} name - cookie name\n * @param {string | number | boolean} value - cookie value\n * @param {any} cookieOptions - cookie options\n * @returns void\n */\n public static set(name: string, value: string | number | boolean, cookieOptions: any): void {\n const options = {\n path: '/',\n // add other defaults here if necessary\n ...cookieOptions,\n }\n\n if (options.expires instanceof Date) {\n options.expires = options.expires.toUTCString()\n }\n\n let updatedCookie = encodeURIComponent(name) + '=' + encodeURIComponent(value)\n\n for (let optionKey in options) {\n updatedCookie += '; ' + optionKey\n let optionValue = options[optionKey]\n if (optionValue !== true) {\n updatedCookie += '=' + optionValue\n }\n }\n\n document.cookie = updatedCookie\n }\n\n /**\n * To delete a cookie, we can call it with a negative expiration date\n *\n * @param {string} name\n */\n public static delete(name: string): void {\n CookieComponent.set(name, '', {\n 'max-age': -1,\n })\n }\n}\n","import {\n EventHandlerUtil,\n getUniqueIdWithPrefix,\n getObjectPropertyValueByKey,\n stringSnakeToCamel,\n getAttributeValueByBreakpoint,\n throttle,\n getCSS,\n DOMEventHandlerUtil,\n ElementStyleUtil,\n} from '../_utils/index'\n\nexport class DrawerStore {\n static store: Map = new Map()\n\n public static set(instanceId: string, drawerComponentObj: DrawerComponent): void {\n if (DrawerStore.has(instanceId)) {\n return\n }\n\n DrawerStore.store.set(instanceId, drawerComponentObj)\n }\n\n public static get(instanceId: string): DrawerComponent | undefined {\n if (!DrawerStore.has(instanceId)) {\n return\n }\n return DrawerStore.store.get(instanceId)\n }\n\n public static remove(instanceId: string): void {\n if (!DrawerStore.has(instanceId)) {\n return\n }\n\n DrawerStore.store.delete(instanceId)\n }\n\n public static has(instanceId: string): boolean {\n return DrawerStore.store.has(instanceId)\n }\n\n public static getAllInstances() {\n return DrawerStore.store\n }\n}\n\nexport interface DrawerOptions {\n overlay: boolean\n baseClass: string\n overlayClass: string\n direction: string\n}\n\nconst defaultDrawerOptions: DrawerOptions = {\n overlay: true,\n baseClass: 'drawer',\n overlayClass: 'drawer-overlay',\n direction: 'end',\n}\n\nclass DrawerComponent {\n element: HTMLElement\n overlayElement: HTMLElement | null = null\n toggleElement: HTMLElement | null = null\n options: DrawerOptions\n instanceUid: string\n name: string = ''\n shown: boolean = false\n lastWidth: number = 0\n closeElement: HTMLElement | null = null\n\n constructor(_element: HTMLElement, options: DrawerOptions) {\n this.element = _element\n this.options = Object.assign(defaultDrawerOptions, options)\n this.instanceUid = getUniqueIdWithPrefix('drawer')\n this.overlayElement = null\n this.name = this.element.getAttribute('data-kt-drawer-name') || ''\n this.shown = false\n this.toggleElement = null\n // Event Handlers\n this._handlers()\n // Update Instance\n this._update()\n // Bind Instance\n DrawerStore.set(this.element.id, this)\n }\n\n private _handlers = () => {\n const togglers = this._getOption('toggle') as string\n const closers = this._getOption('close') as string\n\n if (togglers !== null && togglers.length > 0) {\n DOMEventHandlerUtil.on(document.body, togglers, 'click', (e: Event) => {\n e.preventDefault()\n this.toggleElement = document.getElementById(togglers)\n this._toggle()\n })\n }\n\n if (closers !== null && closers.length > 0) {\n DOMEventHandlerUtil.on(document.body, closers, 'click', (e: Event) => {\n e.preventDefault()\n this.closeElement = document.getElementById(closers)\n\n this._hide()\n })\n }\n }\n\n private _update = () => {\n const width = String(this._getOption('width'))\n const direction = String(this._getOption('direction'))\n\n // Reset state\n const hasBaseClass = this.element.classList.contains(`${this.options.baseClass}-on`)\n const bodyCanvasAttr = String(document.body.getAttribute(`data-kt-drawer-${this.name}-`))\n\n if (hasBaseClass === true && bodyCanvasAttr === 'on') {\n this.shown = true\n } else {\n this.shown = false\n }\n\n // Activate/deactivate\n if (this._getOption('activate') === true) {\n this.element.classList.add(this.options.baseClass)\n this.element.classList.add(`${this.options.baseClass}-${direction}`)\n ElementStyleUtil.set(this.element, 'width', width, true)\n\n this.lastWidth = parseInt(width)\n } else {\n ElementStyleUtil.set(this.element, 'width', '')\n this.element.classList.remove(this.options.baseClass)\n this.element.classList.remove(`${this.options.baseClass}-${direction}`)\n this._hide()\n }\n }\n\n private _getOption = (name: string) => {\n const attr = this.element.getAttribute(`data-kt-drawer-${name}`)\n if (attr) {\n let value = getAttributeValueByBreakpoint(attr)\n if (value !== null && String(value) === 'true') {\n return true\n } else {\n if (value !== null && String(value) === 'false') {\n return false\n }\n }\n\n return value\n } else {\n const optionName = stringSnakeToCamel(name)\n const option = getObjectPropertyValueByKey(this.options, optionName)\n if (option) {\n return getAttributeValueByBreakpoint(option)\n } else {\n return null\n }\n }\n }\n\n private _toggle = () => {\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.toggle') === false) {\n return\n }\n\n if (this.shown) {\n this._hide()\n } else {\n this._show()\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.drawer.toggled')\n }\n\n private _hide = () => {\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.hide') === false) {\n return\n }\n\n this.shown = false\n this._deleteOverlay()\n document.body.removeAttribute(`data-kt-drawer-${this.name}`)\n document.body.removeAttribute(`data-kt-drawer`)\n this.element.classList.remove(`${this.options.baseClass}-on`)\n if (this.toggleElement != null) {\n this.toggleElement.classList.remove('active')\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.drawer.after.hidden')\n }\n\n private _show = () => {\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.show') === false) {\n return\n }\n\n this.shown = true\n this._createOverlay()\n document.body.setAttribute(`data-kt-drawer-${this.name}`, 'on')\n document.body.setAttribute('data-kt-drawer', 'on')\n this.element.classList.add(`${this.options.baseClass}-on`)\n if (this.toggleElement !== null) {\n this.toggleElement.classList.add('active')\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.drawer.shown')\n }\n\n private _createOverlay = () => {\n if (this._getOption('overlay') === true) {\n this.overlayElement = document.createElement('DIV')\n const elementZIndex = getCSS(this.element, 'z-index')\n if (elementZIndex) {\n const overlayZindex = parseInt(elementZIndex) - 1\n ElementStyleUtil.set(this.overlayElement, 'z-index', overlayZindex) // update\n }\n document.body.append(this.overlayElement)\n const overlayClassOption = this._getOption('overlay-class')\n if (overlayClassOption) {\n this.overlayElement.classList.add(overlayClassOption.toString())\n }\n this.overlayElement.addEventListener('click', (e) => {\n e.preventDefault()\n this._hide()\n })\n }\n }\n\n private _deleteOverlay = () => {\n if (this.overlayElement !== null && this.overlayElement.parentNode) {\n this.overlayElement.parentNode.removeChild(this.overlayElement)\n }\n }\n\n private _getDirection = () => {\n return String(this._getOption('direction')) === 'left' ? 'left' : 'right'\n }\n\n private _getWidth = () => {\n let width = this._getOption('width')\n if (width && width === 'auto') {\n width = getCSS(this.element, 'width')\n }\n\n return width\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n public toggle = () => {\n this._toggle()\n }\n\n public show = () => {\n this._show()\n }\n\n public hide = () => {\n this._hide()\n }\n\n public isShown = () => {\n return this.shown\n }\n\n public update = () => {\n this._update()\n }\n\n public goElement = () => {\n return this.element\n }\n\n // Event API\n public on = (name: string, handler: Function) => {\n return EventHandlerUtil.on(this.element, name, handler)\n }\n\n public one = (name: string, handler: Function) => {\n return EventHandlerUtil.one(this.element, name, handler)\n }\n\n public off = (name: string) => {\n return EventHandlerUtil.off(this.element, name)\n }\n\n public trigger = (name: string, event: Event) => {\n return EventHandlerUtil.trigger(this.element, name, event)\n }\n\n // Static methods\n public static hasInstace = (elementId: string): boolean => {\n return DrawerStore.has(elementId)\n }\n\n public static getInstance = (elementId: string) => {\n return DrawerStore.get(elementId)\n }\n\n public static hideAll = () => {\n const oldInstances = DrawerStore.getAllInstances()\n oldInstances.forEach((dr) => {\n dr.hide()\n })\n }\n\n public static updateAll = () => {\n const oldInstances = DrawerStore.getAllInstances()\n oldInstances.forEach((dr) => {\n dr.update()\n })\n }\n\n // Create Instances\n public static createInstances(selector: string): void {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((element) => {\n const item = element as HTMLElement\n let drawer = DrawerComponent.getInstance(item.id)\n if (!drawer) {\n drawer = new DrawerComponent(item, defaultDrawerOptions)\n }\n drawer.element = item\n drawer.hide()\n })\n }\n\n // Dismiss instances\n public static handleDismiss = () => {\n // External drawer toggle handler\n DOMEventHandlerUtil.on(document.body, '[data-kt-drawer-dismiss=\"true\"]', 'click', () => {\n /* @ts-ignore */\n const element = this.closest('[data-kt-drawer=\"true\"]')\n if (element) {\n const drawer = DrawerComponent.getInstance(element)\n if (drawer && drawer.isShown()) {\n drawer.hide()\n }\n }\n })\n }\n\n // Global Initialization\n public static initGlobalHandlers(): void {\n // Window Resize Handling\n window.addEventListener('resize', function () {\n let timer: number | undefined\n throttle(\n timer,\n () => {\n // Locate and update Drawer instances on window resize\n const elements = document.body.querySelectorAll('[data-kt-drawer=\"true\"]')\n elements.forEach((el) => {\n const item = el as HTMLElement\n const instance = DrawerComponent.getInstance(item.id)\n if (instance) {\n instance.element = item\n instance.update()\n }\n })\n },\n 200\n )\n })\n }\n\n public static bootstrap = () => {\n DrawerComponent.createInstances('[data-kt-drawer=\"true\"]')\n DrawerComponent.initGlobalHandlers()\n DrawerComponent.handleDismiss()\n }\n\n public static reinitialization = () => {\n DrawerComponent.createInstances('[data-kt-drawer=\"true\"]')\n DrawerComponent.hideAll()\n DrawerComponent.updateAll()\n DrawerComponent.handleDismiss()\n }\n}\n\nexport {DrawerComponent, defaultDrawerOptions}\n","import {EventHandlerUtil, DataUtil, getUniqueIdWithPrefix, getCSS} from '../_utils/index'\n\nexport interface IImageInputOptions {}\n\nexport interface IImageInputQueries {\n componentName: string\n instanseQuery: string\n inputQuery: string\n wrapperQuery: string\n cancelQuery: string\n removeQuery: string\n hiddenQuery: string\n}\n\nconst defaultImageInputOptions = {}\n\nconst defaultImageInputQueires: IImageInputQueries = {\n componentName: 'image-input',\n instanseQuery: '[data-kt-image-input]',\n inputQuery: 'input[type=\"file\"]',\n wrapperQuery: '.image-input-wrapper',\n cancelQuery: '[data-kt-image-input-action=\"cancel\"]',\n removeQuery: '[data-kt-image-input-action=\"remove\"]',\n hiddenQuery: 'input[type=\"hidden\"]',\n}\n\nclass ImageInputComponent {\n element: HTMLElement\n inputElement: HTMLInputElement | null\n wrapperElement: HTMLElement | null\n cancelElement: HTMLElement | null\n removeElement: HTMLElement | null\n hiddenElement: HTMLInputElement | null\n src: string = ''\n options: IImageInputOptions\n queries: IImageInputQueries\n uid: string\n value: string = ''\n\n constructor(_element: HTMLElement, _options: IImageInputOptions, _queries: IImageInputQueries) {\n // Variables\n this.options = Object.assign(defaultImageInputOptions, _options)\n this.queries = _queries\n this.uid = getUniqueIdWithPrefix(this.queries.componentName)\n\n // Elements\n this.element = _element\n this.inputElement = this.element.querySelector(this.queries.inputQuery)\n this.wrapperElement = this.element.querySelector(this.queries.wrapperQuery)\n this.cancelElement = this.element.querySelector(this.queries.cancelQuery)\n this.removeElement = this.element.querySelector(this.queries.removeQuery)\n this.hiddenElement = this.element.querySelector(this.queries.hiddenQuery)\n if (this.wrapperElement) {\n this.src = getCSS(this.wrapperElement, 'backgroundImage')\n }\n\n // Event Handlers\n this.handlers()\n\n DataUtil.set(this.element, this.queries.componentName, this)\n }\n\n private handlers(): void {\n this.element.addEventListener('change', this._change)\n if (this.cancelElement) {\n this.cancelElement.addEventListener('click', this._cancel)\n }\n\n if (this.removeElement) {\n this.removeElement.addEventListener('click', this._cancel)\n }\n }\n\n // Event Handlers\n private _change = (e: Event) => {\n e.preventDefault()\n\n if (this.inputElement !== null && this.inputElement.files && this.inputElement.files[0]) {\n // Fire change event\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.change', e) === false) {\n return\n }\n\n const reader = new FileReader()\n\n reader.onload = (e: ProgressEvent) => {\n if (this.wrapperElement && e.target) {\n this.wrapperElement.style.setProperty('background-image', `url('${e.target.result}')`)\n }\n }\n\n reader.readAsDataURL(this.inputElement.files[0])\n this.element.classList.add('image-input-changed')\n this.element.classList.remove('image-input-empty')\n\n // Fire removed event\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.changed', e)\n }\n }\n\n private _cancel = (e: Event) => {\n e.preventDefault()\n\n // Fire cancel event\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.cancel', e) === false) {\n return\n }\n\n this.element.classList.remove('image-input-changed')\n this.element.classList.remove('image-input-empty')\n this.element.style.setProperty('background-image', this.src)\n if (this.inputElement) {\n this.inputElement.value = ''\n }\n\n if (this.hiddenElement !== null) {\n this.hiddenElement.value = '0'\n }\n\n // Fire canceled event\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.canceled', e)\n }\n\n private _remove = (e: Event) => {\n e.preventDefault()\n\n // Fire remove event\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.remove', e) === false) {\n return\n }\n\n this.element.classList.remove('image-input-changed')\n this.element.classList.add('image-input-empty')\n if (this.wrapperElement) {\n this.wrapperElement.style.setProperty('background-image', 'none')\n }\n\n if (this.inputElement) {\n this.inputElement.value = ''\n }\n\n if (this.hiddenElement !== null) {\n this.hiddenElement.value = '1'\n }\n\n // Fire removed event\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.removed', e)\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n public getInputElement(): HTMLInputElement | null {\n return this.inputElement\n }\n\n public getElement(): HTMLElement {\n return this.element\n }\n\n // Event API\n public on = (name: string, handler: Function) => {\n return EventHandlerUtil.on(this.element, name, handler)\n }\n\n public one = (name: string, handler: Function) => {\n return EventHandlerUtil.one(this.element, name, handler)\n }\n\n public off = (name: string) => {\n return EventHandlerUtil.off(this.element, name)\n }\n\n public trigger = (name: string, event: Event) => {\n return EventHandlerUtil.trigger(this.element, name, event)\n }\n\n // Static methods\n public static getInstance = (\n el: HTMLElement,\n componentName: string = defaultImageInputQueires.componentName\n ) => {\n const ImageInput = DataUtil.get(el, componentName)\n if (ImageInput) {\n return ImageInput\n }\n\n return null\n }\n\n public static createInstances = (\n selector: string = defaultImageInputQueires.instanseQuery,\n options: IImageInputOptions = defaultImageInputOptions,\n queries: IImageInputQueries = defaultImageInputQueires\n ) => {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((el) => {\n const item = el as HTMLElement\n let ImageInput = ImageInputComponent.getInstance(item)\n if (!ImageInput) {\n ImageInput = new ImageInputComponent(item, options, queries)\n }\n })\n }\n\n public static createInsance = (\n selector: string = defaultImageInputQueires.instanseQuery,\n options: IImageInputOptions = defaultImageInputOptions,\n queries: IImageInputQueries = defaultImageInputQueires\n ): ImageInputComponent | undefined => {\n const element = document.body.querySelector(selector)\n if (!element) {\n return\n }\n const item = element as HTMLElement\n let ImageInput = ImageInputComponent.getInstance(item)\n if (!ImageInput) {\n ImageInput = new ImageInputComponent(item, options, queries)\n }\n return ImageInput\n }\n\n public static bootstrap = (selector: string = defaultImageInputQueires.instanseQuery) => {\n ImageInputComponent.createInstances(selector)\n }\n\n public static reinitialization = (selector: string = defaultImageInputQueires.instanseQuery) => {\n ImageInputComponent.createInstances(selector)\n }\n}\nexport {ImageInputComponent, defaultImageInputOptions, defaultImageInputQueires}\n","import {\n DataUtil,\n getObjectPropertyValueByKey,\n stringSnakeToCamel,\n getAttributeValueByBreakpoint,\n getViewPort,\n isVisibleElement,\n throttle,\n getCSS,\n ElementStyleUtil,\n} from '../_utils/index'\nimport {CookieComponent} from './_CookieComponent'\n\nexport interface ScrollOptions {\n saveState?: boolean\n}\n\nconst defaultScrollOptions: ScrollOptions = {\n saveState: true,\n}\n\nclass ScrollComponent {\n element: HTMLElement\n options: ScrollOptions\n id: string\n\n constructor(_element: HTMLElement, options: ScrollOptions) {\n this.element = _element\n this.options = Object.assign(defaultScrollOptions, options)\n this.id = this.element.getAttribute('id') || ''\n this.update()\n // this.element.setAttribute('data-kt-scrolltop', 'true')\n DataUtil.set(this.element, 'scroll', this)\n }\n\n private getOption = (name: string) => {\n if (this.element.hasAttribute('data-kt-scroll-' + name) === true) {\n const attr = this.element.getAttribute('data-kt-scroll-' + name) || ''\n let value: string | JSON | boolean = getAttributeValueByBreakpoint(attr)\n if (value !== null && String(value) === 'true') {\n value = true\n } else if (value !== null && String(value) === 'false') {\n value = false\n }\n\n return value\n } else {\n const optionName = stringSnakeToCamel(name)\n const option = getObjectPropertyValueByKey(this.options, optionName)\n if (option) {\n return getAttributeValueByBreakpoint(option)\n } else {\n return null\n }\n }\n }\n\n private getHeightType = () => {\n if (this.getOption('height')) {\n return 'height'\n }\n if (this.getOption('min-height')) {\n return 'min-height'\n }\n if (this.getOption('max-height')) {\n return 'max-height'\n }\n }\n\n private getAutoHeight = () => {\n let height: number | string = getViewPort().height\n const dependencies = this.getOption('dependencies')\n const wrappers = this.getOption('wrappers')\n const offset = this.getOption('offset')\n\n // Height dependencies\n if (dependencies !== null) {\n const elements = document.querySelectorAll(dependencies as string)\n if (elements && elements.length > 0) {\n for (let i = 0, len = elements.length; i < len; i++) {\n const element = elements[i] as HTMLElement\n if (isVisibleElement(element) === false) {\n continue\n }\n\n height = height - parseInt(getCSS(element, 'height'))\n height = height - parseInt(getCSS(element, 'margin-top'))\n height = height - parseInt(getCSS(element, 'margin-bottom'))\n\n const borderTop = getCSS(element, 'border-top')\n if (borderTop) {\n height = height - parseInt(borderTop)\n }\n\n const borderBottom = getCSS(element, 'border-bottom')\n if (borderBottom) {\n height = height - parseInt(borderBottom)\n }\n }\n }\n }\n\n // Wrappers\n if (wrappers !== null) {\n var elements = document.querySelectorAll(wrappers as string)\n if (elements && elements.length > 0) {\n for (let i = 0, len = elements.length; i < len; i++) {\n const element = elements[i] as HTMLElement\n\n if (!isVisibleElement(element)) {\n continue\n }\n\n height = height - parseInt(getCSS(element, 'margin-top'))\n height = height - parseInt(getCSS(element, 'margin-bottom'))\n height = height - parseInt(getCSS(element, 'padding-top'))\n height = height - parseInt(getCSS(element, 'padding-bottom'))\n\n const borderTop = getCSS(element, 'border-top')\n if (borderTop) {\n height = height - parseInt(borderTop)\n }\n\n const borderBottom = getCSS(element, 'border-bottom')\n if (borderBottom) {\n height = height - parseInt(borderBottom)\n }\n }\n }\n }\n\n // Custom offset\n if (offset !== null) {\n height = height - parseInt(offset as string)\n }\n\n height = height - parseInt(getCSS(this.element, 'margin-top'))\n height = height - parseInt(getCSS(this.element, 'margin-bottom'))\n\n const borderTop = getCSS(this.element, 'border-top')\n if (borderTop) {\n height = height - parseInt(borderTop)\n }\n\n const borderBottom = getCSS(this.element, 'border-bottom')\n if (borderBottom) {\n height = height - parseInt(borderBottom)\n }\n\n height = String(height) + 'px'\n\n return height\n }\n\n private setupHeight = () => {\n let height = this.getHeight()\n let heightType = this.getHeightType() as string\n\n // Set height\n if (height !== null && height.length > 0) {\n ElementStyleUtil.set(this.element, heightType, height)\n } else {\n ElementStyleUtil.set(this.element, heightType, '')\n }\n }\n\n private setupState = () => {\n if (this.getOption('save-state') === true && this.id) {\n const cookie = CookieComponent.get(this.id + 'st')\n if (cookie) {\n var pos = parseInt(cookie)\n\n if (pos > 0) {\n this.element.scrollTop = pos\n }\n }\n }\n }\n\n private setupScrollHandler = () => {\n if (this.getOption('save-state') === true && this.id) {\n this.element.addEventListener('scroll', this.scrollHandler)\n } else {\n this.element.removeEventListener('scroll', this.scrollHandler)\n }\n }\n\n private scrollHandler = () => {\n const cookieId = this.id + 'st'\n CookieComponent.set(cookieId, this.element.scrollTop, {})\n }\n\n private destroyScrollHandler = () => {\n this.element.removeEventListener('scroll', this.scrollHandler)\n }\n\n private resetHeight = () => {\n const heghtType = this.getHeightType()\n if (heghtType) {\n ElementStyleUtil.set(this.element, heghtType, '')\n }\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n public update = () => {\n // Activate/deactivate\n if (\n this.getOption('activate') === true ||\n !this.element.hasAttribute('data-kt-scroll-activate')\n ) {\n this.setupHeight()\n this.setupScrollHandler()\n this.setupState()\n } else {\n this.resetHeight()\n this.destroyScrollHandler()\n }\n }\n\n public getHeight = () => {\n const heightType = this.getHeightType()\n const height = this.getOption(heightType || '')\n if (height instanceof Function) {\n return height.call(height)\n } else if (height !== null && typeof height === 'string' && height.toLowerCase() === 'auto') {\n return this.getAutoHeight()\n } else {\n return height\n }\n }\n\n public getElement = () => {\n return this.element\n }\n\n // Static methods\n public static hasInstace(element: HTMLElement) {\n return DataUtil.has(element, 'scroll')\n }\n\n public static getInstance(element: HTMLElement) {\n if (element !== null && ScrollComponent.hasInstace(element)) {\n return DataUtil.get(element, 'scroll')\n }\n }\n\n // Create Instances\n public static createInstances(selector: string) {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((element: Element) => {\n const item = element as HTMLElement\n let scroll = ScrollComponent.getInstance(item)\n if (!scroll) {\n scroll = new ScrollComponent(item, defaultScrollOptions)\n }\n })\n }\n\n public static destroyAll(attr: string = '[data-kt-scroll=\"true\"]') {}\n\n public static bootstrap(attr: string = '[data-kt-scroll=\"true\"]') {\n ScrollComponent.createInstances(attr)\n ScrollComponent.resize()\n }\n\n public static createInstance = (\n element: HTMLElement,\n options: ScrollOptions = defaultScrollOptions\n ): ScrollComponent | undefined => {\n let scroll = ScrollComponent.getInstance(element)\n if (!scroll) {\n scroll = new ScrollComponent(element, options)\n }\n return scroll\n }\n\n public static reinitialization(attr: string = '[data-kt-scroll=\"true\"]') {\n ScrollComponent.createInstances(attr)\n }\n\n public static updateAll() {\n const elements = document.body.querySelectorAll('[data-kt-scroll=\"true\"]')\n elements.forEach((element: Element) => {\n const instance = ScrollComponent.getInstance(element as HTMLElement)\n if (instance) {\n instance.update()\n }\n })\n }\n\n public static resize() {\n // Window Resize Handling\n window.addEventListener('resize', function () {\n let timer\n throttle(\n timer,\n () => {\n // Locate and update Drawer instances on window resize\n ScrollComponent.updateAll()\n },\n 200\n )\n })\n }\n}\n\nexport {ScrollComponent, defaultScrollOptions}\n","import {\n getScrollTop,\n getAttributeValueByBreakpoint,\n throttle,\n getObjectPropertyValueByKey,\n stringSnakeToCamel,\n getUniqueIdWithPrefix,\n DataUtil,\n ElementAnimateUtil,\n} from '../_utils/index'\n\nexport interface IScrollTopOptions {\n offset: number\n speed: number\n}\n\nconst defaultScrollTopOptions: IScrollTopOptions = {\n offset: 200,\n speed: 600,\n}\n\nclass ScrollTopComponent {\n element: HTMLElement\n options: IScrollTopOptions\n instanceUid: string\n\n constructor(_element: HTMLElement, options: IScrollTopOptions) {\n this.element = _element\n this.options = Object.assign(defaultScrollTopOptions, options)\n this.instanceUid = getUniqueIdWithPrefix('scrolltop')\n\n // Event Handlers\n this._handlers()\n\n // Bind Instance\n DataUtil.set(this.element, 'scrolltop', this)\n }\n\n private _handlers = () => {\n let timer: number\n window.addEventListener('scroll', () => {\n throttle(timer, () => {\n this._scroll()\n })\n })\n\n this.element.addEventListener('click', (e: Event) => {\n e.preventDefault()\n this._go()\n })\n }\n\n private _scroll = () => {\n const offset = parseInt(this._getOption('offset') as string)\n const pos = getScrollTop() // current vertical position\n if (pos > offset) {\n if (!document.body.hasAttribute('data-kt-scrolltop')) {\n document.body.setAttribute('data-kt-scrolltop', 'on')\n }\n } else {\n if (document.body.hasAttribute('data-kt-scrolltop')) {\n document.body.removeAttribute('data-kt-scrolltop')\n }\n }\n }\n\n private _go = () => {\n const speed = parseInt(this._getOption('speed') as string)\n ElementAnimateUtil.scrollTop(0, speed)\n }\n\n private _getOption = (name: string) => {\n const attr = this.element.getAttribute(`data-kt-scrolltop-${name}`)\n if (attr) {\n const value = getAttributeValueByBreakpoint(attr)\n return value !== null && String(value) === 'true'\n }\n\n const optionName = stringSnakeToCamel(name)\n const option = getObjectPropertyValueByKey(this.options, optionName)\n if (option) {\n return getAttributeValueByBreakpoint(option)\n }\n\n return null\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n\n // Plugin API\n public go = () => {\n return this._go()\n }\n\n public getElement = () => {\n return this.element\n }\n\n // Static methods\n public static getInstance = (el: HTMLElement) => {\n const scrollTop = DataUtil.get(el, 'scrolltop')\n if (scrollTop) {\n return scrollTop\n }\n\n return null\n }\n\n public static createInstances = (selector: string) => {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((el) => {\n const item = el as HTMLElement\n let scrollTop = ScrollTopComponent.getInstance(item)\n if (!scrollTop) {\n scrollTop = new ScrollTopComponent(item, defaultScrollTopOptions)\n }\n })\n }\n\n public static createInsance = (\n selector: string,\n options: IScrollTopOptions = defaultScrollTopOptions\n ): ScrollTopComponent | undefined => {\n const element = document.body.querySelector(selector)\n if (!element) {\n return\n }\n const item = element as HTMLElement\n let scrollTop = ScrollTopComponent.getInstance(item)\n if (!scrollTop) {\n scrollTop = new ScrollTopComponent(item, options)\n }\n return scrollTop\n }\n\n public static bootstrap = () => {\n ScrollTopComponent.createInstances('[data-kt-scrolltop=\"true\"]')\n }\n\n public static reinitialization = () => {\n ScrollTopComponent.createInstances('[data-kt-scrolltop=\"true\"]')\n }\n\n public static goTop = () => {\n ElementAnimateUtil.scrollTop(0, defaultScrollTopOptions.speed)\n }\n}\nexport {ScrollTopComponent, defaultScrollTopOptions}\n","import {\n getElementIndex,\n getUniqueIdWithPrefix,\n ElementAnimateUtil,\n EventHandlerUtil,\n DataUtil,\n DOMEventHandlerUtil,\n ElementStyleUtil,\n} from '../_utils/index'\n\nexport interface IStepperOptions {\n startIndex: number\n animation: boolean\n animationSpeed: string\n animationNextClass: string\n animationPreviousClass: string\n}\n\nconst defaultStepperOptions: IStepperOptions = {\n startIndex: 1,\n animation: false,\n animationSpeed: '0.3s',\n animationNextClass: 'animate__animated animate__slideInRight animate__fast',\n animationPreviousClass: 'animate__animated animate__slideInLeft animate__fast',\n}\n\nclass StepperComponent {\n element: HTMLElement\n options: IStepperOptions\n instanceUid: string\n steps: NodeListOf\n btnNext: HTMLElement | null\n btnPrev: HTMLElement | null\n btnSubmit: HTMLElement | null\n totatStepsNumber: number = 0\n passedStepIndex: number = 0\n currentStepIndex: number = 1\n\n constructor(_element: HTMLElement, options: IStepperOptions) {\n this.element = _element\n this.options = Object.assign(defaultStepperOptions, options)\n this.instanceUid = getUniqueIdWithPrefix('stepper')\n\n // Elements\n this.steps = this.element.querySelectorAll('[data-kt-stepper-element=\"nav\"]')\n this.btnNext = this.element.querySelector('[data-kt-stepper-action=\"next\"]')\n this.btnPrev = this.element.querySelector('[data-kt-stepper-action=\"previous\"]')\n this.btnSubmit = this.element.querySelector('[data-kt-stepper-action=\"submit\"]')\n\n // Variables\n this.totatStepsNumber = this.steps?.length | 0\n this.passedStepIndex = 0\n this.currentStepIndex = 1\n\n // Set Current Step\n if (this.options.startIndex > 1) {\n this._goTo(this.options.startIndex)\n }\n\n // Event Handlers\n this.initHandlers()\n\n // Bind Instance\n DataUtil.set(this.element, 'stepper', this)\n }\n\n private _goTo = (index: number) => {\n EventHandlerUtil.trigger(this.element, 'kt.stepper.change')\n // Skip if this step is already shown\n if (index === this.currentStepIndex || index > this.totatStepsNumber || index < 0) {\n return\n }\n\n // Validate step number\n index = parseInt(index.toString())\n // Set current step\n this.passedStepIndex = this.currentStepIndex\n this.currentStepIndex = index\n\n // Refresh elements\n this.refreshUI()\n\n EventHandlerUtil.trigger(this.element, 'kt.stepper.changed')\n }\n\n private initHandlers = () => {\n this.btnNext?.addEventListener('click', (e: Event) => {\n e.preventDefault()\n\n EventHandlerUtil.trigger(this.element, 'kt.stepper.next', e)\n })\n\n this.btnPrev?.addEventListener('click', (e: Event) => {\n e.preventDefault()\n\n EventHandlerUtil.trigger(this.element, 'kt.stepper.previous', e)\n })\n\n DOMEventHandlerUtil.on(this.element, '[data-kt-stepper-action=\"step\"]', 'click', (e: Event) => {\n e.preventDefault()\n\n if (this.steps && this.steps.length > 0) {\n for (let i = 0; i < this.steps.length; i++) {\n if ((this.steps[i] as HTMLElement) === this.element) {\n let index = i + 1\n\n const stepDirection = this._getStepDirection(index)\n EventHandlerUtil.trigger(this.element, `stepper.${stepDirection}`, e)\n return\n }\n }\n }\n })\n }\n\n private _getStepDirection = (index: number) => {\n return index > this.currentStepIndex ? 'next' : 'previous'\n }\n\n private getStepContent = (index: number) => {\n const content = this.element.querySelectorAll('[data-kt-stepper-element=\"content\"]')\n if (!content) {\n return false\n }\n\n if (content[index - 1]) {\n return content[index - 1]\n }\n\n return false\n }\n\n private getLastStepIndex = () => {\n return this.totatStepsNumber\n }\n\n private getTotalStepsNumber = () => {\n return this.totatStepsNumber\n }\n\n private refreshUI = () => {\n let state = ''\n\n if (this.isLastStep()) {\n state = 'last'\n } else if (this.isFirstStep()) {\n state = 'first'\n } else {\n state = 'between'\n }\n\n // Set state class\n this.element.classList.remove('last')\n this.element.classList.remove('first')\n this.element.classList.remove('between')\n\n this.element.classList.add(state)\n\n // Step Items\n const elements = this.element.querySelectorAll(\n '[data-kt-stepper-element=\"nav\"], [data-kt-stepper-element=\"content\"], [data-kt-stepper-element=\"info\"]'\n )\n\n if (!elements || elements.length <= 0) {\n return\n }\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var element = elements[i] as HTMLElement\n var index = getElementIndex(element) + 1\n\n element.classList.remove('current')\n element.classList.remove('completed')\n element.classList.remove('pending')\n\n if (index === this.currentStepIndex) {\n element.classList.add('current')\n\n if (\n this.options.animation !== false &&\n element.getAttribute('data-kt-stepper-element') === 'content'\n ) {\n ElementStyleUtil.set(element, 'animationDuration', this.options.animationSpeed)\n\n const animation =\n this._getStepDirection(this.passedStepIndex) === 'previous'\n ? this.options.animationPreviousClass\n : this.options.animationNextClass\n ElementAnimateUtil.animateClass(element, animation)\n }\n } else {\n if (index < this.currentStepIndex) {\n element.classList.add('completed')\n } else {\n element.classList.add('pending')\n }\n }\n }\n }\n\n private isLastStep = () => {\n return this.currentStepIndex === this.totatStepsNumber\n }\n\n private isFirstStep = () => {\n return this.currentStepIndex === 1\n }\n\n private isBetweenStep = () => {\n return this.isLastStep() === false && this.isFirstStep() === false\n }\n\n // ///////////////////////\n // // ** Public API ** //\n // ///////////////////////\n\n // // Plugin API\n public goto = (index: number) => {\n return this._goTo(index)\n }\n\n public goNext = () => {\n return this.goto(this.getNextStepIndex())\n }\n\n public goPrev = () => {\n return this.goto(this.getPrevStepIndex())\n }\n\n public goFirst = () => {\n return this.goto(1)\n }\n\n public goLast = () => {\n return this.goto(this.getLastStepIndex())\n }\n\n public getCurrentStepIndex = () => {\n return this.currentStepIndex\n }\n\n public getNextStepIndex = () => {\n if (this.totatStepsNumber >= this.currentStepIndex + 1) {\n return this.currentStepIndex + 1\n } else {\n return this.totatStepsNumber\n }\n }\n\n public getPassedStepIndex = () => {\n return this.passedStepIndex\n }\n\n public getPrevStepIndex = () => {\n if (this.currentStepIndex - 1 > 1) {\n return this.currentStepIndex - 1\n } else {\n return 1\n }\n }\n\n public getElement = (index: number) => {\n return this.element\n }\n\n // Event API\n public on = (name: string, handler: Function) => {\n return EventHandlerUtil.on(this.element, name, handler)\n }\n\n public one = (name: string, handler: Function) => {\n return EventHandlerUtil.one(this.element, name, handler)\n }\n\n public off = (name: string) => {\n return EventHandlerUtil.off(this.element, name)\n }\n\n public destroy = () => {\n console.log('destroy stepper')\n }\n\n public trigger = (name: string, event: Event) => {\n return EventHandlerUtil.trigger(this.element, name, event)\n }\n\n // Static methods\n public static hasInstace(element: HTMLElement): boolean {\n return DataUtil.has(element, 'stepper')\n }\n\n public static getInstance(element: HTMLElement): StepperComponent | null {\n if (element !== null && StepperComponent.hasInstace(element)) {\n return DataUtil.get(element, 'stepper')\n }\n return null\n }\n\n // Create Instances\n public static createInstances(selector: string): void {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((element) => {\n const item = element as HTMLElement\n let stepper = StepperComponent.getInstance(item)\n if (!stepper) {\n stepper = new StepperComponent(item, defaultStepperOptions)\n }\n })\n }\n\n public static createInsance = (\n element: HTMLElement,\n options: IStepperOptions = defaultStepperOptions\n ): StepperComponent | null => {\n if (!element) {\n return null\n }\n let stepper = StepperComponent.getInstance(element)\n if (!stepper) {\n stepper = new StepperComponent(element, options)\n }\n return stepper\n }\n\n public static bootstrap(attr: string = '[data-kt-stepper]') {\n StepperComponent.createInstances(attr)\n }\n}\n\nexport {StepperComponent, defaultStepperOptions}\n","import {\n getElementOffset,\n getScrollTop,\n getAttributeValueByBreakpoint,\n getUniqueIdWithPrefix,\n getObjectPropertyValueByKey,\n stringSnakeToCamel,\n getCSS,\n DataUtil,\n ElementAnimateUtil,\n ElementStyleUtil,\n EventHandlerUtil,\n} from '../_utils/index'\n\nexport interface StickyOptions {\n offset: number\n reverse: boolean\n animation: boolean\n animationSpeed: string\n animationClass: string\n}\n\nconst defaultStickyOptions: StickyOptions = {\n offset: 200,\n reverse: false,\n animation: true,\n animationSpeed: '0.3s',\n animationClass: 'animation-slide-in-down',\n}\n\nclass StickyComponent {\n element: HTMLElement\n options: StickyOptions\n instanceUid: string\n instanceName: string | null = ''\n attributeName: string\n eventTriggerState: boolean\n lastScrollTop: number\n\n constructor(_element: HTMLElement, options: StickyOptions) {\n this.element = _element\n this.options = Object.assign(defaultStickyOptions, options)\n this.instanceUid = getUniqueIdWithPrefix('sticky')\n this.instanceName = this.element.getAttribute('data-kt-sticky-name')\n this.attributeName = 'data-kt-sticky-' + this.instanceName\n this.eventTriggerState = true\n this.lastScrollTop = 0\n\n // Event Handlers\n window.addEventListener('scroll', this.scroll)\n\n // Initial Launch\n this.scroll()\n\n DataUtil.set(this.element, 'sticky', this)\n }\n\n private scroll = () => {\n let offset = this.getOption('offset')\n let reverse = this.getOption('reverse')\n\n // Exit if false\n if (offset === false) {\n return\n }\n\n let offsetNum = 0\n if (typeof offset === 'string') {\n offsetNum = parseInt(offset)\n }\n\n const st = getScrollTop()\n\n // Reverse scroll mode\n if (reverse === true) {\n // Release on reverse scroll mode\n if (st > offsetNum && this.lastScrollTop < st) {\n if (document.body.hasAttribute(this.attributeName) === false) {\n this.enable()\n document.body.setAttribute(this.attributeName, 'on')\n }\n\n if (this.eventTriggerState === true) {\n EventHandlerUtil.trigger(this.element, 'kt.sticky.on')\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\n\n this.eventTriggerState = false\n }\n } else {\n // Back scroll mode\n if (document.body.hasAttribute(this.attributeName)) {\n this.disable()\n document.body.removeAttribute(this.attributeName)\n }\n\n if (this.eventTriggerState === false) {\n EventHandlerUtil.trigger(this.element, 'kt.sticky.off')\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\n\n this.eventTriggerState = true\n }\n }\n\n this.lastScrollTop = st\n return\n }\n\n // Classic scroll mode\n if (st > offsetNum) {\n if (document.body.hasAttribute(this.attributeName) === false) {\n this.enable()\n document.body.setAttribute(this.attributeName, 'on')\n }\n\n if (this.eventTriggerState === true) {\n EventHandlerUtil.trigger(this.element, 'kt.sticky.on')\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\n this.eventTriggerState = false\n }\n } else {\n // back scroll mode\n if (document.body.hasAttribute(this.attributeName) === true) {\n this.disable()\n document.body.removeAttribute(this.attributeName)\n }\n\n if (this.eventTriggerState === false) {\n EventHandlerUtil.trigger(this.element, 'kt.sticky.off')\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\n this.eventTriggerState = true\n }\n }\n }\n\n private getOption = (name: string) => {\n const dataStickyAttr = 'data-kt-sticky-' + name\n if (this.element.hasAttribute(dataStickyAttr) === true) {\n const attrValueInStr = this.element.getAttribute(dataStickyAttr)\n const attrValue = getAttributeValueByBreakpoint(attrValueInStr || '')\n if (attrValue !== null && String(attrValue) === 'true') {\n return true\n } else if (attrValue !== null && String(attrValue) === 'false') {\n return false\n }\n\n return attrValue\n } else {\n const optionName = stringSnakeToCamel(name)\n const option = getObjectPropertyValueByKey(this.options, optionName)\n if (option) {\n return getAttributeValueByBreakpoint(option)\n }\n }\n }\n\n private disable = () => {\n ElementStyleUtil.remove(this.element, 'top')\n ElementStyleUtil.remove(this.element, 'width')\n ElementStyleUtil.remove(this.element, 'left')\n ElementStyleUtil.remove(this.element, 'right')\n ElementStyleUtil.remove(this.element, 'z-index')\n ElementStyleUtil.remove(this.element, 'position')\n }\n\n private enable = (update: boolean = false) => {\n const top = this.getOption('top')\n const left = this.getOption('left')\n // const right = this.getOption(\"right\");\n let width = this.getOption('width')\n const zindex = this.getOption('zindex')\n\n if (update !== true && this.getOption('animation') === true) {\n ElementStyleUtil.set(this.element, 'animationDuration', this.getOption('animationSpeed'))\n ElementAnimateUtil.animateClass(this.element, 'animation ' + this.getOption('animationClass'))\n }\n\n if (zindex !== null) {\n ElementStyleUtil.set(this.element, 'z-index', zindex)\n ElementStyleUtil.set(this.element, 'position', 'fixed')\n }\n\n if (top !== null) {\n ElementStyleUtil.set(this.element, 'top', top)\n }\n\n if (width !== null && width !== undefined) {\n const widthTarget = getObjectPropertyValueByKey(width, 'target')\n if (widthTarget) {\n const targetElement = document.querySelector(widthTarget)\n if (targetElement) {\n width = getCSS(targetElement, 'width')\n }\n }\n ElementStyleUtil.set(this.element, 'width', width)\n }\n\n if (left !== null) {\n if (String(left).toLowerCase() === 'auto') {\n var offsetLeft = getElementOffset(this.element).left\n\n if (offsetLeft > 0) {\n ElementStyleUtil.set(this.element, 'left', String(offsetLeft) + 'px')\n }\n }\n }\n }\n\n public update = () => {\n if (document.body.hasAttribute(this.attributeName) === true) {\n this.disable()\n document.body.removeAttribute(this.attributeName)\n this.enable(true)\n document.body.setAttribute(this.attributeName, 'on')\n }\n }\n\n // Event API\n public on = (name: string, callBack: Function) => {\n return EventHandlerUtil.on(this.element, name, callBack)\n }\n\n public one = (name: string, callback: Function) => {\n return EventHandlerUtil.one(this.element, name, callback)\n }\n\n public off = (name: string) => {\n return EventHandlerUtil.off(this.element, name)\n }\n\n public trigger = (name: string) => {\n return EventHandlerUtil.trigger(this.element, name)\n }\n\n // Static methods\n public static hasInstace(element: HTMLElement) {\n return DataUtil.has(element, 'sticky')\n }\n\n public static getInstance(element: HTMLElement) {\n if (element !== null && StickyComponent.hasInstace(element)) {\n return DataUtil.get(element, 'sticky')\n }\n }\n\n // Create Instances\n public static createInstances(selector: string) {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((element) => {\n const item = element as HTMLElement\n let sticky = StickyComponent.getInstance(item)\n if (!sticky) {\n sticky = new StickyComponent(item, defaultStickyOptions)\n }\n })\n }\n\n public static createInsance = (\n selector: string,\n options: StickyOptions = defaultStickyOptions\n ): StickyComponent | undefined => {\n const element = document.body.querySelector(selector)\n if (!element) {\n return\n }\n const item = element as HTMLElement\n let sticky = StickyComponent.getInstance(item)\n if (!sticky) {\n sticky = new StickyComponent(item, options)\n }\n return sticky\n }\n\n public static bootstrap(attr: string = '[data-kt-sticky=\"true\"]') {\n StickyComponent.createInstances(attr)\n }\n\n public static reInitialization(attr: string = '[data-kt-sticky=\"true\"]') {\n StickyComponent.createInstances(attr)\n }\n}\n\nexport {StickyComponent, defaultStickyOptions}\n","import {DataUtil, getUniqueIdWithPrefix, EventHandlerUtil} from '../_utils/index'\n// Helpers\nimport {CookieComponent} from './_CookieComponent'\n\nexport interface ToggleOptions {\n saveState: boolean\n targetState?: string\n toggleState?: string\n targetToggleMode?: string\n}\n\nconst defaultToggleOptions: ToggleOptions = {\n saveState: false,\n}\n\nclass ToggleComponent {\n element: HTMLElement\n instanceUid: string\n options: ToggleOptions\n state: string = ''\n target: HTMLElement | null = null\n attribute: string = ''\n\n constructor(_element: HTMLElement, options: ToggleOptions) {\n this.options = Object.assign(defaultToggleOptions, options)\n this.instanceUid = getUniqueIdWithPrefix('toggle')\n this.element = _element\n\n const elementTargetAttr = this.element.getAttribute('data-kt-toggle-target')\n if (elementTargetAttr) {\n this.target = document.querySelector(elementTargetAttr)\n }\n const elementToggleAttr = this.element.getAttribute('data-kt-toggle-state')\n this.state = elementToggleAttr || ''\n this.attribute = 'data-kt-' + this.element.getAttribute('data-kt-toggle-name')\n\n // Event Handlers\n this._handlers()\n\n // Update Instance\n // Bind Instance\n DataUtil.set(this.element, 'toggle', this)\n }\n\n private _handlers = () => {\n this.element.addEventListener('click', (e: Event) => {\n e.preventDefault()\n this._toggle()\n })\n }\n\n // Event handlers\n private _toggle = () => {\n // Trigger \"after.toggle\" event\n EventHandlerUtil.trigger(this.element, 'kt.toggle.change')\n\n if (this._isEnabled()) {\n this._disable()\n } else {\n this._enable()\n }\n\n // Trigger \"before.toggle\" event\n EventHandlerUtil.trigger(this.element, 'kt.toggle.changed')\n return this\n }\n\n private _enable = () => {\n if (this._isEnabled()) {\n return\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.toggle.enable')\n this.target?.setAttribute(this.attribute, 'on')\n if (this.state.length > 0) {\n this.element.classList.add(this.state)\n }\n\n if (this.options.saveState) {\n CookieComponent.set(this.attribute, 'on', {})\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.toggle.enabled')\n return this\n }\n\n private _disable = () => {\n if (!this._isEnabled()) {\n return false\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.toggle.disable')\n this.target?.removeAttribute(this.attribute)\n\n if (this.state.length > 0) {\n this.element.classList.remove(this.state)\n }\n\n if (this.options.saveState) {\n CookieComponent.delete(this.attribute)\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.toggle.disabled')\n return this\n }\n\n private _isEnabled = () => {\n if (!this.target) {\n return false\n }\n\n return String(this.target.getAttribute(this.attribute)).toLowerCase() === 'on'\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n\n // Plugin API\n // Plugin API\n public toggle = () => {\n return this._toggle()\n }\n\n public enable = () => {\n return this._enable()\n }\n\n public disable = () => {\n return this._disable()\n }\n\n public isEnabled = () => {\n return this._isEnabled()\n }\n\n public goElement = () => {\n return this.element\n }\n\n // Event API\n public on = (name: string, handler: Function) => {\n return EventHandlerUtil.on(this.element, name, handler)\n }\n\n public one = (name: string, handler: Function) => {\n return EventHandlerUtil.one(this.element, name, handler)\n }\n\n public off = (name: string) => {\n return EventHandlerUtil.off(this.element, name)\n }\n\n public trigger = (name: string, event?: Event) => {\n return EventHandlerUtil.trigger(this.element, name, event)\n }\n\n // Static methods\n public static getInstance = (el: HTMLElement) => {\n const toggleElement = DataUtil.get(el, 'toggle')\n if (toggleElement) {\n return toggleElement\n }\n\n return null\n }\n\n public static createInstances = (selector: string) => {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((el) => {\n const item = el as HTMLElement\n let toggleElement = ToggleComponent.getInstance(item)\n if (!toggleElement) {\n toggleElement = new ToggleComponent(item, defaultToggleOptions)\n }\n })\n }\n\n public static createInsance = (\n selector: string,\n options: ToggleOptions = defaultToggleOptions\n ): ToggleComponent | undefined => {\n const element = document.body.querySelector(selector)\n if (!element) {\n return\n }\n const item = element as HTMLElement\n let toggle = ToggleComponent.getInstance(item)\n if (!toggle) {\n toggle = new ToggleComponent(item, options)\n }\n return toggle\n }\n\n public static reinitialization = () => {\n ToggleComponent.createInstances('[data-kt-toggle]')\n }\n\n public static bootstrap = () => {\n ToggleComponent.createInstances('[data-kt-toggle]')\n }\n}\n\nexport {ToggleComponent, defaultToggleOptions}\n","/* eslint-disable array-callback-return */\n/* eslint-disable no-useless-escape */\nimport {DataUtil} from '../_utils/index'\n\nexport interface IPasswordMeterOptions {\n minLength: number\n checkUppercase: boolean\n checkLowercase: boolean\n checkDigit: boolean\n checkChar: boolean\n scoreHighlightClass: string\n}\n\nexport interface IPasswordMeterQueries {\n componentName: string\n instanseQuery: string\n inputQuery: string\n visibilityQuery: string\n highlightQuery: string\n}\n\nconst defaultPasswordMeterOptions = {\n minLength: 8,\n checkUppercase: true,\n checkLowercase: true,\n checkDigit: true,\n checkChar: true,\n scoreHighlightClass: 'active',\n}\n\nconst defaultPasswordMeterQueires: IPasswordMeterQueries = {\n componentName: 'password-meter',\n instanseQuery: '[data-kt-password-meter]',\n inputQuery: 'input[type]',\n visibilityQuery: '[data-kt-password-meter-control=\"visibility\"]',\n highlightQuery: '[data-kt-password-meter-control=\"highlight\"]',\n}\n\nclass PasswordMeterComponent {\n element: HTMLElement\n inputElement: HTMLInputElement | null\n visibilityElement: HTMLElement | null\n highlightElement: HTMLElement | null\n options: IPasswordMeterOptions\n queries: IPasswordMeterQueries\n score: number\n checkSteps: number\n\n constructor(\n _element: HTMLElement,\n _options: IPasswordMeterOptions,\n _queries: IPasswordMeterQueries\n ) {\n this.element = _element\n this.options = Object.assign(defaultPasswordMeterOptions, _options)\n this.queries = _queries\n this.score = 0\n this.checkSteps = 5\n\n // Elements\n this.inputElement = this.element.querySelector(this.queries.inputQuery)\n this.visibilityElement = this.element.querySelector(this.queries.visibilityQuery)\n this.highlightElement = this.element.querySelector(this.queries.highlightQuery)\n\n // Event Handlers\n this.handlers()\n\n DataUtil.set(this.element, this.queries.componentName, this)\n }\n\n private handlers(): void {\n if (this.inputElement) {\n this.inputElement.addEventListener('input', () => {\n this.check()\n })\n }\n\n if (this.visibilityElement) {\n this.visibilityElement.addEventListener('click', () => {\n this.visitbility()\n })\n }\n }\n\n private visitbility() {\n if (this.visibilityElement && this.inputElement) {\n const visibleIcon = this.visibilityElement.querySelector(\n 'i:not(.d-none), .svg-icon:not(.d-none)'\n )\n\n const hiddenIcon = this.visibilityElement.querySelector('i.d-none, .svg-icon.d-none')\n\n const typeAttr = this.inputElement.getAttribute('type') || ''\n\n if (typeAttr === 'password') {\n this.inputElement.setAttribute('type', 'text')\n } else {\n this.inputElement.setAttribute('type', 'password')\n }\n\n visibleIcon?.classList.add('d-none')\n hiddenIcon?.classList.remove('d-none')\n\n this.inputElement.focus()\n }\n }\n\n private checkScore(): number {\n return 0\n }\n\n private checkLength(): boolean {\n if (this.inputElement) {\n return this.inputElement.value.length >= this.options.minLength // 20 score\n }\n\n return false\n }\n\n private checkLowerCase(): boolean {\n const val = this.inputElement ? this.inputElement.value : ''\n return /[a-z]/.test(val) // 20 score\n }\n\n private checkUppercase(): boolean {\n const val = this.inputElement ? this.inputElement.value : ''\n return /[A-Z]/.test(val) // 20 score\n }\n\n private checkDigit(): boolean {\n const val = this.inputElement ? this.inputElement.value : ''\n return /[0-9]/.test(val) // 20 score\n }\n\n private checkChar(): boolean {\n const val = this.inputElement ? this.inputElement.value : ''\n return /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g.test(val) // 20 score\n }\n\n private getCheckScore(): number {\n let count = 1\n if (this.options.checkUppercase) {\n count++\n }\n\n if (this.options.checkLowercase) {\n count++\n }\n\n if (this.options.checkDigit) {\n count++\n }\n\n if (this.options.checkChar) {\n count++\n }\n\n this.checkSteps = count\n return 100 / this.checkSteps\n }\n\n private highlight() {\n const items = this.highlightElement\n ? [].slice.call(this.highlightElement.querySelectorAll('div'))\n : []\n const total = items.length\n let index = 0\n const checkScore = this.getCheckScore()\n const score = this.getScore()\n\n items.map((item: HTMLElement) => {\n index++\n if (checkScore * index * (this.checkSteps / total) <= score) {\n item.classList.add('active')\n } else {\n item.classList.remove('active')\n }\n })\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n public reset = () => {\n this.score = 0\n this.highlight()\n }\n\n public getScore() {\n return this.score\n }\n\n public check() {\n let score = 0\n const checkScore = this.getCheckScore()\n if (this.checkLength()) {\n score = score + checkScore\n }\n\n if (this.options.checkUppercase && this.checkLowerCase()) {\n score = score + checkScore\n }\n\n if (this.options.checkLowercase && this.checkUppercase()) {\n score = score + checkScore\n }\n\n if (this.options.checkDigit && this.checkDigit()) {\n score = score + checkScore\n }\n\n if (this.options.checkChar && this.checkChar()) {\n score = score + checkScore\n }\n\n this.score = score\n this.highlight()\n }\n\n // Static methods\n public static getInstance = (\n el: HTMLElement,\n componentName: string = defaultPasswordMeterQueires.componentName\n ) => {\n const passwordMeter = DataUtil.get(el, componentName)\n if (passwordMeter) {\n return passwordMeter\n }\n\n return null\n }\n\n public static createInstances = (\n selector: string = defaultPasswordMeterQueires.instanseQuery,\n options: IPasswordMeterOptions = defaultPasswordMeterOptions,\n queries: IPasswordMeterQueries = defaultPasswordMeterQueires\n ) => {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((el) => {\n const item = el as HTMLElement\n let passwordMeter = PasswordMeterComponent.getInstance(item)\n if (!passwordMeter) {\n passwordMeter = new PasswordMeterComponent(item, options, queries)\n }\n })\n }\n\n public static createInsance = (\n selector: string = defaultPasswordMeterQueires.instanseQuery,\n options: IPasswordMeterOptions = defaultPasswordMeterOptions,\n queries: IPasswordMeterQueries = defaultPasswordMeterQueires\n ): PasswordMeterComponent | undefined => {\n const element = document.body.querySelector(selector)\n if (!element) {\n return\n }\n const item = element as HTMLElement\n let passwordMeter = PasswordMeterComponent.getInstance(item)\n if (!passwordMeter) {\n passwordMeter = new PasswordMeterComponent(item, options, queries)\n }\n return passwordMeter\n }\n\n public static bootstrap = (selector: string = defaultPasswordMeterQueires.instanseQuery) => {\n PasswordMeterComponent.createInstances(selector)\n }\n\n public static reinitialization = (\n selector: string = defaultPasswordMeterQueires.instanseQuery\n ) => {\n PasswordMeterComponent.createInstances(selector)\n }\n}\nexport {PasswordMeterComponent, defaultPasswordMeterOptions, defaultPasswordMeterQueires}\n","import {\n getAttributeValueByBreakpoint,\n stringSnakeToCamel,\n getObjectPropertyValueByKey,\n EventHandlerUtil,\n throttle,\n} from '../_utils/index'\n\nexport class SwapperStore {\n static store: Map = new Map()\n\n public static set(instanceId: string, drawerComponentObj: SwapperComponent): void {\n if (SwapperStore.has(instanceId)) {\n return\n }\n\n SwapperStore.store.set(instanceId, drawerComponentObj)\n }\n\n public static get(instanceId: string): SwapperComponent | undefined {\n if (!SwapperStore.has(instanceId)) {\n return\n }\n return SwapperStore.store.get(instanceId)\n }\n\n public static remove(instanceId: string): void {\n if (!SwapperStore.has(instanceId)) {\n return\n }\n\n SwapperStore.store.delete(instanceId)\n }\n\n public static has(instanceId: string): boolean {\n return SwapperStore.store.has(instanceId)\n }\n\n public static getAllInstances() {\n return SwapperStore.store\n }\n}\n\nexport interface ISwapperOptions {\n mode: string\n}\n\nexport interface ISwapperQueries {\n componentName: string\n instanseQuery: string\n attrQuery: string\n}\n\nconst defaultSwapperOptions: ISwapperOptions = {\n mode: 'append',\n}\n\nconst defaultSwapperQueires: ISwapperQueries = {\n componentName: 'swapper',\n instanseQuery: '[data-kt-swapper=\"true\"]',\n attrQuery: 'data-kt-swapper-',\n}\n\nclass SwapperComponent {\n element: HTMLElement\n options: ISwapperOptions\n queries: ISwapperQueries\n\n constructor(_element: HTMLElement, _options: ISwapperOptions, _queries: ISwapperQueries) {\n this.element = _element\n this.options = Object.assign(defaultSwapperOptions, _options)\n this.queries = _queries\n\n // Initial update\n this.update()\n\n SwapperStore.set(this.element.id, this)\n }\n\n private getOption(name: string) {\n const attr = this.element.getAttribute(`${this.queries.attrQuery}${name}`)\n if (attr) {\n let value = getAttributeValueByBreakpoint(attr)\n if (attr != null && String(value) === 'true') {\n return true\n } else if (value !== null && String(value) === 'false') {\n return false\n }\n return value\n } else {\n const optionName = stringSnakeToCamel(name)\n const option = getObjectPropertyValueByKey(this.options, optionName)\n if (option) {\n return getAttributeValueByBreakpoint(option)\n } else {\n return null\n }\n }\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n public update = () => {\n const parentSelector = this.getOption('parent')?.toString()\n const mode = this.getOption('mode')\n const parentElement = parentSelector ? document.querySelector(parentSelector) : null\n\n if (parentElement && this.element.parentNode !== parentElement) {\n if (mode === 'prepend') {\n parentElement.prepend(this.element)\n } else if (mode === 'append') {\n parentElement.append(this.element)\n }\n }\n }\n\n // Event API\n public on = (name: string, handler: Function) => {\n return EventHandlerUtil.on(this.element, name, handler)\n }\n\n public one = (name: string, handler: Function) => {\n return EventHandlerUtil.one(this.element, name, handler)\n }\n\n public off = (name: string) => {\n return EventHandlerUtil.off(this.element, name)\n }\n\n public trigger = (name: string, event: Event) => {\n return EventHandlerUtil.trigger(this.element, name, event)\n }\n\n // Static methods\n public static getInstance = (\n el: HTMLElement,\n componentName: string = defaultSwapperQueires.componentName\n ): SwapperComponent | null => {\n const place = SwapperStore.get(el.id)\n if (place) {\n return place as SwapperComponent\n }\n\n return null\n }\n\n public static createInstances = (\n selector: string = defaultSwapperQueires.instanseQuery,\n options: ISwapperOptions = defaultSwapperOptions,\n queries: ISwapperQueries = defaultSwapperQueires\n ) => {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((el) => {\n const item = el as HTMLElement\n let place = SwapperComponent.getInstance(item)\n if (!place) {\n place = new SwapperComponent(item, options, queries)\n }\n })\n }\n\n public static createInsance = (\n selector: string = defaultSwapperQueires.instanseQuery,\n options: ISwapperOptions = defaultSwapperOptions,\n queries: ISwapperQueries = defaultSwapperQueires\n ): SwapperComponent | undefined => {\n const element = document.body.querySelector(selector)\n if (!element) {\n return\n }\n const item = element as HTMLElement\n let place = SwapperComponent.getInstance(item)\n if (!place) {\n place = new SwapperComponent(item, options, queries)\n }\n return place\n }\n\n public static bootstrap = (selector: string = defaultSwapperQueires.instanseQuery) => {\n SwapperComponent.createInstances(selector)\n }\n\n public static reinitialization = (selector: string = defaultSwapperQueires.instanseQuery) => {\n SwapperComponent.createInstances(selector)\n }\n}\n\n// Window resize handler\nwindow.addEventListener('resize', function () {\n let timer\n throttle(\n timer,\n () => {\n // Locate and update Offcanvas instances on window resize\n const elements = document.querySelectorAll(defaultSwapperQueires.instanseQuery)\n elements.forEach((el) => {\n const place = SwapperComponent.getInstance(el as HTMLElement)\n if (place) {\n place.update()\n }\n })\n },\n 200\n )\n})\n\nexport {SwapperComponent, defaultSwapperOptions, defaultSwapperQueires}\n","import {createPopper, VirtualElement} from '@popperjs/core'\nimport {\n getElementChild,\n getElementParents,\n getAttributeValueByBreakpoint,\n getUniqueIdWithPrefix,\n DataUtil,\n ElementStyleUtil,\n EventHandlerUtil,\n insertAfterElement,\n slideUp,\n slideDown,\n DOMEventHandlerUtil,\n throttle,\n getHighestZindex,\n} from '../_utils/index'\n\nexport interface MenuOptions {\n dropdown: {\n hoverTimeout: number\n zindex: number\n }\n accordion: {\n slideSpeed: number\n expand: boolean\n }\n}\n\nconst defaultMenuOptions: MenuOptions = {\n dropdown: {\n hoverTimeout: 200,\n zindex: 105,\n },\n accordion: {\n slideSpeed: 250,\n expand: false,\n },\n}\n\ntype PopperPlacement =\n | 'right'\n | 'auto'\n | 'auto-start'\n | 'auto-end'\n | 'top'\n | 'bottom'\n | 'left'\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end'\n | undefined\n\nclass MenuComponent {\n element: HTMLElement\n options: MenuOptions\n instanceUid: string\n triggerElement: HTMLElement | null = null\n\n constructor(_element: HTMLElement, options: MenuOptions) {\n this.element = _element\n this.options = Object.assign(defaultMenuOptions, options)\n this.instanceUid = getUniqueIdWithPrefix('menu')\n // this.element.setAttribute('data-kt-menu', 'true')\n this._setTriggerElement()\n this._update()\n DataUtil.set(this.element, 'menu', this)\n return this\n }\n\n // Set external trigger element\n private _setTriggerElement = () => {\n const target = document.querySelector(\n `[data-kt-menu-target=\"#${this.element.getAttribute('id')}\"`\n )\n\n if (target) {\n this.triggerElement = target as HTMLElement\n } else if (this.element.closest('[data-kt-menu-trigger]')) {\n this.triggerElement = this.element.closest('[data-kt-menu-trigger]') as HTMLElement\n } else if (\n this.element.parentNode &&\n getElementChild(this.element.parentNode as HTMLElement, '[data-kt-menu-trigger]')\n ) {\n const child = getElementChild(\n this.element.parentNode as HTMLElement,\n '[data-kt-menu-trigger]'\n )\n if (child) {\n this.triggerElement = child\n }\n }\n\n if (this.triggerElement) {\n DataUtil.set(this.triggerElement, 'menu', this)\n }\n }\n\n // Test if menu has external trigger element\n private _isTriggerElement = (item: HTMLElement) => {\n return this.triggerElement === item\n }\n\n // Get item option(through html attributes)\n private _getItemOption = (item: HTMLElement, name: string) => {\n let value: string | JSON | null | boolean = null\n if (item && item.hasAttribute('data-kt-menu-' + name)) {\n const attr = item.getAttribute('data-kt-menu-' + name) || ''\n value = getAttributeValueByBreakpoint(attr)\n if (value !== null && String(value) === 'true') {\n value = true\n } else if (value !== null && String(value) === 'false') {\n value = false\n }\n }\n return value\n }\n\n // Get item element\n private _getItemElement = (_element: HTMLElement) => {\n // Element is the external trigger element\n if (this._isTriggerElement(_element)) {\n return _element\n }\n\n // Element has item toggler attribute\n if (_element.hasAttribute('data-kt-menu-trigger')) {\n return _element\n }\n\n // Element has item DOM reference in it's data storage\n const itemElement = DataUtil.get(_element, 'item')\n if (itemElement) {\n return itemElement\n }\n\n // Item is parent of element\n const item = _element.closest('.menu-item[data-kt-menu-trigger]')\n if (item) {\n return item\n }\n\n // Element's parent has item DOM reference in it's data storage\n const sub = _element.closest('.menu-sub')\n if (sub) {\n const subItem = DataUtil.get(sub as HTMLElement, 'item')\n if (subItem) {\n return subItem\n }\n }\n }\n\n // Get item parent element\n private _getItemParentElement = (item: HTMLElement) => {\n const sub = item.closest('.menu-sub')\n if (!sub) {\n return null\n }\n\n const subItem = DataUtil.get(sub as HTMLElement, 'item')\n if (subItem) {\n return subItem\n }\n\n const parentItem = sub.closest('.menu-item[data-kt-menu-trigger]')\n if (sub && parentItem) {\n return parentItem\n }\n\n return null\n }\n\n // Get item parent elements\n private _getItemParentElements = (item: HTMLElement) => {\n const parents: Array = []\n let parent: Element\n let i = 0\n let buffer: HTMLElement = item\n\n do {\n parent = this._getItemParentElement(buffer)\n if (parent) {\n parents.push(parent)\n buffer = parent as HTMLElement\n }\n\n i++\n } while (parent !== null && i < 20)\n\n if (this.triggerElement) {\n parents.unshift(this.triggerElement)\n }\n\n return parents\n }\n\n // Prepare popper config for dropdown(see: https://popper.js.org/docs/v2/)\n private _getDropdownPopperConfig = (item: HTMLElement) => {\n // Placement\n const placementOption = this._getItemOption(item, 'placement')\n let placement: PopperPlacement = 'right'\n if (placementOption) {\n placement = placementOption as PopperPlacement\n }\n\n // Flip\n // const flipValue = this._getItemOption(item, 'flip')\n // const flip = flipValue ? flipValue.toString().split(',') : []\n\n // Offset\n const offsetValue = this._getItemOption(item, 'offset')\n const offset = offsetValue ? offsetValue.toString().split(',') : []\n\n // Strategy\n const strategy: 'absolute' | 'fixed' | undefined =\n this._getItemOption(item, 'overflow') === true ? 'absolute' : 'fixed'\n\n return {\n placement: placement,\n strategy: strategy,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: offset,\n },\n },\n {\n name: 'preventOverflow',\n },\n {\n name: 'flip',\n options: {\n // altBoundary: true,\n // fallbackPlacements: flip,\n flipVariations: false,\n },\n },\n ],\n }\n }\n\n // Get item child element\n private _getItemChildElement = (item: HTMLElement) => {\n let selector = item\n\n const subItem = DataUtil.get(item, 'sub')\n if (subItem) {\n selector = subItem\n }\n\n if (selector) {\n //element = selector.querySelector('.show.menu-item[data-kt-menu-trigger]');\n const element = selector.querySelector('.menu-item[data-kt-menu-trigger]')\n if (element) {\n return element\n }\n }\n return null\n }\n\n // Get item child elements\n private _getItemChildElements = (item: HTMLElement) => {\n const children: Array = []\n let child: Element | null\n let i = 0\n let buffer = item\n do {\n child = this._getItemChildElement(buffer)\n if (child) {\n children.push(child)\n buffer = child as HTMLElement\n }\n\n i++\n } while (child !== null && i < 20)\n\n return children\n }\n\n // Get item sub element\n private _getItemSubElement = (item: HTMLElement) => {\n if (!item) {\n return null\n }\n\n if (this._isTriggerElement(item)) {\n return this.element\n }\n\n if (item.classList.contains('menu-sub')) {\n return item\n } else if (DataUtil.has(item, 'sub')) {\n return DataUtil.get(item, 'sub')\n } else {\n return getElementChild(item, '.menu-sub')\n }\n }\n\n private _getCss = (el: HTMLElement, styleProp: string) => {\n const defaultView = (el.ownerDocument || document).defaultView\n if (!defaultView) {\n return ''\n }\n\n // sanitize property name to css notation\n // (hyphen separated words eg. font-Size)\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase()\n\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp)\n }\n\n // Get item sub type\n private _getItemSubType = (element: HTMLElement) => {\n const sub = this._getItemSubElement(element)\n if (sub && parseInt(this._getCss(sub, 'z-index')) > 0) {\n return 'dropdown'\n } else {\n return 'accordion'\n }\n }\n\n // Test if item's sub is shown\n private _isItemSubShown = (item: HTMLElement) => {\n let sub = this._getItemSubElement(item)\n if (sub) {\n if (this._getItemSubType(item) === 'dropdown') {\n return sub.classList.contains('show') && sub.hasAttribute('data-popper-placement')\n } else {\n return item.classList.contains('show')\n }\n }\n\n return false\n }\n\n // Test if item dropdown is permanent\n private _isItemDropdownPermanent = (item: HTMLElement) => {\n return this._getItemOption(item, 'permanent') === true\n }\n\n // Test if item's parent is shown\n private _isItemParentShown = (item: HTMLElement) => {\n return getElementParents(item, '.menu-item.show').length > 0\n }\n\n // Test of it is item sub element\n private _isItemSubElement = (item: HTMLElement) => {\n return item.classList.contains('menu-sub')\n }\n\n // Test if item has sub\n private _hasItemSub = (item: HTMLElement) => {\n return item.classList.contains('menu-item') && item.hasAttribute('data-kt-menu-trigger')\n }\n\n // Get link element\n private _getItemLinkElement = (item: HTMLElement) => {\n return getElementChild(item, '.menu-link')\n }\n\n // Get toggle element\n private _getItemToggleElement = (item: HTMLElement) => {\n if (this.triggerElement) {\n return this.triggerElement\n }\n\n return this._getItemLinkElement(item)\n }\n\n // Show item dropdown\n private _showDropdown = (item: HTMLElement) => {\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.show') === false) {\n return\n }\n\n // Hide all currently shown dropdowns except current one\n MenuComponent.hideDropdowns(item)\n\n // const toggle = this._isTriggerElement(item) ? item : this._getItemLinkElement(item);\n const sub = this._getItemSubElement(item)\n const width = this._getItemOption(item, 'width')\n const height = this._getItemOption(item, 'height')\n\n let zindex = this.options.dropdown.zindex\n const parentZindex = getHighestZindex(item) // update\n // Apply a new z-index if dropdown's toggle element or it's parent has greater z-index // update\n if (parentZindex !== null && parentZindex >= zindex) {\n zindex = parentZindex + 1\n }\n\n if (zindex) {\n ElementStyleUtil.set(sub, 'z-index', zindex)\n }\n\n if (width) {\n ElementStyleUtil.set(sub, 'width', width)\n }\n\n if (height) {\n ElementStyleUtil.set(sub, 'height', height)\n }\n\n this.initDropdownPopper(item, sub)\n\n item.classList.add('show')\n item.classList.add('menu-dropdown')\n sub.classList.add('show')\n\n // Append the sub the the root of the menu\n if (this._getItemOption(item, 'overflow') === true) {\n document.body.appendChild(sub)\n DataUtil.set(item, 'sub', sub)\n DataUtil.set(sub, 'item', item)\n DataUtil.set(sub, 'menu', this)\n } else {\n DataUtil.set(sub, 'item', item)\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.shown')\n }\n\n // Init dropdown popper(new)\n private initDropdownPopper = (item: HTMLElement, sub: HTMLElement) => {\n // Setup popper instance\n let reference\n const attach = this._getItemOption(item, 'attach') as string\n\n if (attach) {\n if (attach === 'parent') {\n reference = item.parentNode\n } else {\n reference = document.querySelector(attach)\n }\n } else {\n reference = item\n }\n\n if (reference) {\n const popper = createPopper(\n reference as Element | VirtualElement,\n sub,\n this._getDropdownPopperConfig(item)\n )\n DataUtil.set(item, 'popper', popper)\n }\n }\n\n // Hide item dropdown\n private _hideDropdown = (item: HTMLElement) => {\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hide') === false) {\n return\n }\n\n const sub = this._getItemSubElement(item)\n ElementStyleUtil.set(sub, 'z-index', '')\n ElementStyleUtil.set(sub, 'width', '')\n ElementStyleUtil.set(sub, 'height', '')\n item.classList.remove('show')\n item.classList.remove('menu-dropdown')\n sub.classList.remove('show')\n\n // Append the sub back to it's parent\n if (this._getItemOption(item, 'overflow') === true) {\n if (item.classList.contains('menu-item')) {\n item.appendChild(sub)\n } else {\n insertAfterElement(this.element, item)\n }\n\n DataUtil.remove(item, 'sub')\n DataUtil.remove(sub, 'item')\n DataUtil.remove(sub, 'menu')\n }\n\n if (DataUtil.has(item, 'popper') === true) {\n DataUtil.get(item, 'popper').destroy()\n DataUtil.remove(item, 'popper')\n }\n\n // Destroy popper(new)\n this.destroyDropdownPopper(item)\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')\n }\n\n // Destroy dropdown popper(new)\n private destroyDropdownPopper = (item: HTMLElement) => {\n if (DataUtil.has(item, 'popper') === true) {\n DataUtil.get(item, 'popper').destroy()\n DataUtil.remove(item, 'popper')\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')\n }\n\n private _showAccordion = (item: HTMLElement) => {\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.show') === false) {\n return\n }\n\n if (this.options.accordion.expand === false) {\n this._hideAccordions(item)\n }\n\n if (DataUtil.has(item, 'popper') === true) {\n this._hideDropdown(item)\n }\n\n item.classList.add('hover') // updateWW\n item.classList.add('showing')\n\n const subElement = this._getItemSubElement(item)\n if (subElement) {\n const sub = subElement as HTMLElement\n slideDown(sub, this.options.accordion.slideSpeed, () => {\n item.classList.remove('showing')\n item.classList.add('show')\n sub.classList.add('show')\n EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.shown')\n })\n }\n }\n\n private _hideAccordion = (item: HTMLElement) => {\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hide') === false) {\n return\n }\n\n const sub = this._getItemSubElement(item)\n item.classList.add('hiding')\n\n if (sub) {\n slideUp(sub, this.options.accordion.slideSpeed, () => {\n item.classList.remove('hiding')\n item.classList.remove('show')\n sub.classList.remove('show')\n item.classList.remove('hover') // update\n EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hidden')\n })\n }\n }\n\n // Hide all shown accordions of item\n private _hideAccordions = (item: HTMLElement) => {\n const itemsToHide = this.element.querySelectorAll('.show[data-kt-menu-trigger]')\n if (itemsToHide && itemsToHide.length > 0) {\n for (var i = 0, len = itemsToHide.length; i < len; i++) {\n const itemToHide = itemsToHide[i] as HTMLElement\n\n if (\n this._getItemSubType(itemToHide) === 'accordion' &&\n itemToHide !== item &&\n item.contains(itemToHide) === false &&\n itemToHide.contains(item) === false\n ) {\n this._hideAccordion(itemToHide)\n }\n }\n }\n }\n\n // Event Handlers\n // Reset item state classes if item sub type changed\n private _reset = (item: HTMLElement) => {\n if (this._hasItemSub(item) === false) {\n return\n }\n\n const sub = this._getItemSubElement(item)\n\n // Reset sub state if sub type is changed during the window resize\n if (DataUtil.has(item, 'type') && DataUtil.get(item, 'type') !== this._getItemSubType(item)) {\n // updated\n item.classList.remove('hover')\n item.classList.remove('show')\n item.classList.remove('show')\n if (sub && sub.removeClass) {\n sub.removeClass(sub, 'show')\n }\n } // updated\n }\n\n // TODO: not done\n private _destroy = () => {}\n\n // Update all item state classes if item sub type changed\n private _update = () => {\n const items = this.element.querySelectorAll('.menu-item[data-kt-menu-trigger]')\n items.forEach((el) => this._reset(el as HTMLElement))\n }\n\n // Hide item sub\n private _hide = (item: HTMLElement) => {\n if (!item) {\n return\n }\n\n if (this._isItemSubShown(item) === false) {\n return\n }\n\n if (this._getItemSubType(item) === 'dropdown') {\n this._hideDropdown(item)\n } else if (this._getItemSubType(item) === 'accordion') {\n this._hideAccordion(item)\n }\n }\n\n // Show item sub\n private _show = (item: HTMLElement) => {\n if (!item) {\n return\n }\n\n if (this._isItemSubShown(item) === true) {\n return\n }\n\n if (this._getItemSubType(item) === 'dropdown') {\n this._showDropdown(item) // // show current dropdown\n } else if (this._getItemSubType(item) === 'accordion') {\n this._showAccordion(item)\n }\n\n // Remember last submenu type\n\n DataUtil.set(item, 'type', this._getItemSubType(item)) // updated\n }\n\n // Toggle item sub\n private _toggle = (item: HTMLElement) => {\n if (!item) {\n return\n }\n\n if (this._isItemSubShown(item) === true) {\n this._hide(item)\n } else {\n this._show(item)\n }\n }\n\n // Mouseout handle\n private _mouseout = (element: HTMLElement, e: MouseEvent) => {\n const item = this._getItemElement(element)\n if (!item) {\n return\n }\n\n if (this._getItemOption(item, 'trigger') !== 'hover') {\n return\n }\n\n const timeout = setTimeout(() => {\n if (DataUtil.get(item, 'hover') === '1') {\n this._hide(item)\n }\n }, this.options.dropdown.hoverTimeout)\n\n DataUtil.set(item, 'hover', '1')\n DataUtil.set(item, 'timeout', timeout)\n }\n\n // Mouseover handle\n private _mouseover = (element: HTMLElement, e: MouseEvent) => {\n const item = this._getItemElement(element)\n if (!item) {\n return\n }\n\n if (this._getItemOption(item, 'trigger') !== 'hover') {\n return\n }\n\n if (DataUtil.get(item, 'hover') === '1') {\n clearTimeout(DataUtil.get(item, 'timeout'))\n DataUtil.remove(item, 'hover')\n DataUtil.remove(item, 'timeout')\n }\n\n this._show(item)\n }\n\n // Dismiss handler\n private _dismiss = (element: HTMLElement, e: Event) => {\n const item = this._getItemElement(element)\n const items = this._getItemChildElements(item)\n //if ( item !== null && _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {\n const itemSubType = this._getItemSubType(item)\n if (item !== null && itemSubType === 'dropdown') {\n this._hide(item) // hide items dropdown\n\n // Hide all child elements as well\n if (items.length > 0) {\n for (let i = 0, len = items.length; i < len; i++) {\n //if ( _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {\n if (items[i] !== null && this._getItemSubType(items[i] as HTMLElement) === 'dropdown') {\n this._hide(items[i] as HTMLElement)\n }\n }\n }\n }\n }\n\n // Link handler\n private _link = (element: HTMLElement, e: Event) => {\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.link.click') === false) {\n return\n }\n\n // Dismiss all shown dropdowns\n MenuComponent.hideDropdowns(undefined)\n EventHandlerUtil.trigger(this.element, 'kt.menu.link.clicked')\n }\n\n private _click = (element: HTMLElement, e: Event) => {\n e.preventDefault()\n const item = this._getItemElement(element)\n if (this._getItemOption(item, 'trigger') !== 'click') {\n return\n }\n\n if (this._getItemOption(item, 'toggle') === false) {\n this._show(item)\n } else {\n this._toggle(item)\n }\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n public click = (element: HTMLElement, e: Event) => {\n return this._click(element, e)\n }\n\n public link = (element: HTMLElement, e: Event) => {\n return this._link(element, e)\n }\n\n public dismiss = (element: HTMLElement, e: Event) => {\n return this._dismiss(element, e)\n }\n\n public mouseover = (element: HTMLElement, e: Event) => {\n return this._mouseover(element, e as MouseEvent)\n }\n\n public mouseout = (element: HTMLElement, e: Event) => {\n return this._mouseout(element, e as MouseEvent)\n }\n\n // General Methods\n public getItemTriggerType = (item: HTMLElement) => {\n return this._getItemOption(item, 'trigger')\n }\n\n public getItemSubType = (element: HTMLElement) => {\n return this._getItemSubType(element)\n }\n\n public show = (item: HTMLElement) => {\n return this._show(item)\n }\n\n public hide = (item: HTMLElement) => {\n return this._hide(item)\n }\n\n public reset = (item: HTMLElement) => {\n return this._reset(item)\n }\n\n public update = () => {\n return this._update()\n }\n\n public getElement = () => {\n return this.element\n }\n\n public getItemLinkElement = (item: HTMLElement) => {\n return this._getItemLinkElement(item)\n }\n\n public getItemToggleElement = (item: HTMLElement) => {\n return this._getItemToggleElement(item)\n }\n\n public getItemSubElement = (item: HTMLElement) => {\n return this._getItemSubElement(item)\n }\n\n public getItemParentElements = (item: HTMLElement) => {\n return this._getItemParentElements(item)\n }\n\n public isItemSubShown = (item: HTMLElement) => {\n return this._isItemSubShown(item)\n }\n\n public isItemParentShown = (item: HTMLElement) => {\n return this._isItemParentShown(item)\n }\n\n public getTriggerElement = () => {\n return this.triggerElement\n }\n\n public isItemDropdownPermanent = (item: HTMLElement) => {\n return this._isItemDropdownPermanent(item)\n }\n\n // Accordion Mode Methods\n public hideAccordions = (item: HTMLElement) => {\n return this._hideAccordions(item)\n }\n\n // Event API\n public on = (name: string, handler: any) => {\n return EventHandlerUtil.on(this.element, name, handler)\n }\n\n public one = (name: string, handler: any) => {\n return EventHandlerUtil.one(this.element, name, handler)\n }\n\n public off = (name: string) => {\n return EventHandlerUtil.off(this.element, name)\n }\n\n // public static methods\n // Get KTMenu instance by element\n public static getInstance = (element: HTMLElement) => {\n // Element has menu DOM reference in it's DATA storage\n const elementMenu = DataUtil.get(element, 'menu')\n if (elementMenu) {\n return elementMenu\n }\n\n // Element has .menu parent\n const menu = element.closest('.menu')\n if (menu) {\n const menuData = DataUtil.get(menu as HTMLElement, 'menu')\n if (menuData) {\n return menuData\n }\n }\n\n // Element has a parent with DOM reference to .menu in it's DATA storage\n if (element.classList.contains('menu-link')) {\n const sub = element.closest('.menu-sub')\n if (sub) {\n const subMenu = DataUtil.get(sub as HTMLElement, 'menu')\n if (subMenu) {\n return subMenu\n }\n }\n }\n\n return null\n }\n\n // Hide all dropdowns and skip one if provided\n public static hideDropdowns = (skip: HTMLElement | undefined) => {\n const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\n\n if (items && items.length > 0) {\n for (let i = 0, len = items.length; i < len; i++) {\n const item = items[i]\n const menu = MenuComponent.getInstance(item as HTMLElement)\n\n if (menu && menu.getItemSubType(item) === 'dropdown') {\n if (skip) {\n if (\n menu.getItemSubElement(item).contains(skip) === false &&\n item.contains(skip) === false &&\n item !== skip\n ) {\n menu.hide(item)\n }\n } else {\n menu.hide(item)\n }\n }\n }\n }\n }\n\n public static updateDropdowns = () => {\n const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\n if (items && items.length > 0) {\n for (var i = 0, len = items.length; i < len; i++) {\n var item = items[i]\n\n if (DataUtil.has(item as HTMLElement, 'popper')) {\n DataUtil.get(item as HTMLElement, 'popper').forceUpdate()\n }\n }\n }\n }\n\n // Global handlers\n public static createInstances = (selector: string) => {\n // Initialize menus\n document.querySelectorAll(selector).forEach((el) => {\n const menuItem = el as HTMLElement\n let menuInstance = MenuComponent.getInstance(menuItem)\n if (!menuInstance) {\n menuInstance = new MenuComponent(el as HTMLElement, defaultMenuOptions)\n }\n })\n }\n\n public static initGlobalHandlers = () => {\n // Dropdown handler\n document.addEventListener('click', (e) => {\n const menuItems = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\n if (menuItems && menuItems.length > 0) {\n for (let i = 0; i < menuItems.length; i++) {\n const item = menuItems[i] as HTMLElement\n const menuObj = MenuComponent.getInstance(item) as MenuComponent\n if (menuObj && menuObj.getItemSubType(item) === 'dropdown') {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const menu = menuObj.getElement()\n const sub = menuObj.getItemSubElement(item) as HTMLElement\n if (item === e.target || item.contains(e.target as HTMLElement)) {\n continue\n }\n\n if (sub && (sub === e.target || sub.contains(e.target as HTMLElement))) {\n continue\n }\n menuObj.hide(item)\n }\n }\n }\n })\n\n // Sub toggle handler\n DOMEventHandlerUtil.on(\n document.body,\n '.menu-item[data-kt-menu-trigger] > .menu-link, [data-kt-menu-trigger]:not(.menu-item):not([data-kt-menu-trigger=\"auto\"])',\n 'click',\n function (this: HTMLElement, e: Event) {\n const menu = MenuComponent.getInstance(this) as MenuComponent\n if (menu) {\n return menu.click(this, e)\n }\n }\n )\n\n // // Link handler\n DOMEventHandlerUtil.on(\n document.body,\n '.menu-item:not([data-kt-menu-trigger]) > .menu-link',\n 'click',\n function (this: HTMLElement, e: Event) {\n e.stopPropagation()\n const menu = MenuComponent.getInstance(this)\n if (menu && menu.link) {\n return menu.link(this, e)\n }\n }\n )\n\n // Dismiss handler\n DOMEventHandlerUtil.on(\n document.body,\n '[data-kt-menu-dismiss=\"true\"]',\n 'click',\n function (this: HTMLElement, e: Event) {\n const menu = MenuComponent.getInstance(this) as MenuComponent\n if (menu) {\n return menu.dismiss(this, e)\n }\n }\n )\n\n // Mouseover handler\n DOMEventHandlerUtil.on(\n document.body,\n '[data-kt-menu-trigger], .menu-sub',\n 'mouseover',\n function (this: HTMLElement, e: Event) {\n const menu = MenuComponent.getInstance(this) as MenuComponent\n if (menu && menu.getItemSubType(this) === 'dropdown') {\n return menu.mouseover(this, e)\n }\n }\n )\n\n // Mouseout handler\n DOMEventHandlerUtil.on(\n document.body,\n '[data-kt-menu-trigger], .menu-sub',\n 'mouseout',\n function (this: HTMLElement, e: Event) {\n const menu = MenuComponent.getInstance(this) as MenuComponent\n if (menu && menu.getItemSubType(this) === 'dropdown') {\n return menu.mouseout(this, e)\n }\n }\n )\n\n // Resize handler\n window.addEventListener('resize', () => {\n let timer\n throttle(\n timer,\n () => {\n // Locate and update Drawer instances on window resize\n const elements = document.querySelectorAll('[data-kt-menu=\"true\"]')\n elements.forEach((el) => {\n const menu = MenuComponent.getInstance(el as HTMLElement)\n if (menu) {\n menu.update()\n }\n })\n },\n 200\n )\n })\n }\n\n public static bootstrap = () => {\n MenuComponent.initGlobalHandlers()\n MenuComponent.createInstances('[data-kt-menu=\"true\"]')\n }\n\n public static reinitialization = () => {\n MenuComponent.createInstances('[data-kt-menu=\"true\"]')\n }\n\n public static createInsance = (\n selector: string,\n options: MenuOptions = defaultMenuOptions\n ): MenuComponent | undefined => {\n const element = document.body.querySelector(selector)\n if (!element) {\n return\n }\n const item = element as HTMLElement\n let menu = MenuComponent.getInstance(item)\n if (!menu) {\n menu = new MenuComponent(item, options)\n }\n return menu\n }\n}\n\nexport {MenuComponent, defaultMenuOptions}\n","import {\n EventHandlerUtil,\n DataUtil,\n getBreakpoint,\n getAttributeValueByBreakpoint,\n stringSnakeToCamel,\n getObjectPropertyValueByKey,\n getViewPort,\n isVisibleElement,\n throttle,\n} from '../_utils/index'\n\nimport {MenuComponent, defaultMenuOptions} from './MenuComponent'\n\nexport interface ISearchOptions {\n minLength: number // Miniam text lenght to query search\n keypress: boolean // Enable search on keypress\n enter: boolean // Enable search on enter key press\n layout: 'menu' | 'inline' // Use 'menu' or 'inline' layout options to display search results\n responsive?: number // Pass integer value or bootstrap compatible breakpoint key(sm,md,lg,xl,xxl) to enable reponsive form mode for device width below the breakpoint value\n showOnFocus: boolean // Always show menu on input focus\n}\n\nexport interface ISearchQueries {\n componentName: string\n instanseQuery: string\n attrQuery: string\n}\n\nconst defaultSearchOptions: ISearchOptions = {\n minLength: 2, // Miniam text lenght to query search\n keypress: true, // Enable search on keypress\n enter: true, // Enable search on enter key press\n layout: 'menu', // Use 'menu' or 'inline' layout options to display search results\n showOnFocus: true, // Always show menu on input focus\n}\n\nconst defaultSearchQueires: ISearchQueries = {\n componentName: 'search',\n instanseQuery: '[data-kt-search]',\n attrQuery: 'data-kt-search-',\n}\n\nclass SearchComponent {\n element: HTMLElement\n contentElement: HTMLElement\n formElement: HTMLFormElement\n inputElement: HTMLInputElement\n spinnerElement: HTMLElement\n clearElement: HTMLElement\n toggleElement: HTMLElement\n submitElement: HTMLElement\n toolbarElement: HTMLElement\n resultsElement: HTMLElement\n suggestionElement: HTMLElement\n emptyElement: HTMLElement\n layout: any\n\n options: ISearchOptions\n queries: ISearchQueries\n\n processing: boolean = false\n menuObject: MenuComponent | undefined\n\n constructor(_element: HTMLElement, _options: ISearchOptions, _queries: ISearchQueries) {\n // Variables\n this.options = Object.assign(defaultSearchOptions, _options)\n this.queries = _queries\n\n // Elements\n this.element = _element\n this.contentElement = this._getElement('content') as HTMLElement\n this.formElement = this._getElement('form') as HTMLFormElement\n this.inputElement = this._getElement('input') as HTMLInputElement\n this.spinnerElement = this._getElement('spinner') as HTMLElement\n this.clearElement = this._getElement('clear') as HTMLElement\n this.toggleElement = this._getElement('toggle') as HTMLElement\n this.submitElement = this._getElement('submit') as HTMLElement\n this.toolbarElement = this._getElement('toolbar') as HTMLElement\n\n this.resultsElement = this._getElement('results') as HTMLElement\n this.suggestionElement = this._getElement('suggestion') as HTMLElement\n this.emptyElement = this._getElement('empty') as HTMLElement\n\n // Layout\n this.layout = this.getOption('layout')\n if (this.layout === 'menu') {\n this.menuObject = new MenuComponent(this.contentElement, defaultMenuOptions)\n }\n\n // Update\n this.update()\n\n // Event Handlers\n this.handlers()\n\n DataUtil.set(this.element, this.queries.componentName, this)\n }\n\n private _getElement = (name: string) => {\n return this.element.querySelector('[data-kt-search-element=\"' + name + '\"]')\n }\n\n // Get option\n private getOption = (name: string) => {\n const attr = this.element.getAttribute(`${this.queries.attrQuery}${name}`)\n if (attr) {\n let value = getAttributeValueByBreakpoint(attr)\n\n if (value !== null && String(value) === 'true') {\n return true\n } else if (value !== null && String(value) === 'false') {\n return false\n }\n\n return value\n } else {\n const optionName = stringSnakeToCamel(name)\n\n const option = getObjectPropertyValueByKey(this.options, optionName)\n if (option) {\n return getAttributeValueByBreakpoint(option)\n } else {\n return null\n }\n }\n }\n\n // Check if responsive form mode is enabled\n private getResponsiveFormMode = () => {\n const responsive = this.getOption('responsive') as string\n const width = getViewPort().width\n\n if (!responsive) {\n return null\n }\n\n const breakpoint = getBreakpoint(responsive)\n let breakPointNum = -1\n if (!breakpoint) {\n breakPointNum = parseInt(responsive)\n } else {\n breakPointNum = +breakpoint\n }\n\n if (width < breakPointNum) {\n return 'on'\n } else {\n return 'off'\n }\n }\n\n // Focus\n private focus = () => {\n this.element.classList.add('focus')\n\n if (\n this.getOption('show-on-focus') === true ||\n this.inputElement.value.length >= this.options.minLength\n ) {\n this.show()\n }\n }\n\n // Blur\n private blur = () => {\n this.element.classList.remove('focus')\n }\n\n // Enter\n private enter = (e: KeyboardEvent) => {\n const key = e.charCode || e.keyCode || 0\n\n if (key === 13) {\n e.preventDefault()\n\n this.search()\n }\n }\n\n // Input\n private input = () => {\n if (this.getOption('min-length')) {\n const minLength = parseInt(this.getOption('min-length') as string)\n\n if (this.inputElement.value.length >= minLength) {\n this.search()\n } else if (this.inputElement.value.length === 0) {\n this.clear()\n }\n }\n }\n\n private handlers(): void {\n const context = this\n\n // Focus\n this.inputElement.addEventListener('focus', this.focus)\n\n // Blur\n this.inputElement.addEventListener('blur', this.blur)\n\n // Keypress\n if (this.getOption('keypress') === true) {\n this.inputElement.addEventListener('input', this.input)\n }\n\n // Submit\n if (this.submitElement) {\n this.submitElement.addEventListener('click', this.search)\n }\n\n // Enter\n if (this.getOption('enter') === true) {\n this.inputElement.addEventListener('keypress', this.enter)\n }\n\n // Clear\n if (this.clearElement) {\n this.clearElement.addEventListener('click', this.clear)\n }\n\n // Menu\n if (this.menuObject) {\n // Toggle menu\n if (this.toggleElement) {\n this.toggleElement.addEventListener('click', this.show)\n\n this.menuObject.on('kt.menu.dropdown.show', function () {\n // @ts-ignore\n if (isVisibleElement(context.toggleElement)) {\n // @ts-ignore\n context.toggleElement.classList.add('active')\n // @ts-ignore\n context.toggleElement.classList.add('show')\n }\n })\n\n this.menuObject.on('kt.menu.dropdown.hide', function () {\n // @ts-ignore\n if (isVisibleElement(context.toggleElement)) {\n // @ts-ignore\n context.toggleElement.classList.remove('active')\n // @ts-ignore\n context.toggleElement.classList.remove('show')\n }\n })\n }\n\n this.menuObject.on('kt.menu.dropdown.shown', function () {\n // @ts-ignore\n context.inputElement.focus()\n })\n }\n\n // Window resize handling\n window.addEventListener('resize', () => {\n let timer\n\n throttle(\n timer,\n () => {\n this.update()\n },\n 200\n )\n })\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n // Update\n public update = () => {\n // Handle responsive form\n if (this.layout === 'menu') {\n let responsiveFormMode = this.getResponsiveFormMode()\n\n if (responsiveFormMode === 'on' && !this.contentElement.contains(this.formElement)) {\n this.contentElement.prepend(this.formElement)\n this.formElement.classList.remove('d-none')\n } else if (responsiveFormMode === 'off' && this.contentElement.contains(this.formElement)) {\n this.element.prepend(this.formElement)\n this.formElement.classList.add('d-none')\n }\n }\n }\n\n // Show menu\n public show = () => {\n if (this.menuObject) {\n this.update()\n\n this.menuObject.show(this.element)\n }\n }\n\n // Hide menu\n public hide = () => {\n if (this.menuObject) {\n this.update()\n\n this.menuObject.hide(this.element)\n }\n }\n\n // Search\n public search = () => {\n if (!this.processing) {\n // Show search spinner\n if (this.spinnerElement) {\n this.spinnerElement.classList.remove('d-none')\n }\n\n // Hide search clear button\n if (this.clearElement) {\n this.clearElement.classList.add('d-none')\n }\n\n // Hide search toolbar\n if (this.toolbarElement) {\n this.toolbarElement.classList.add('d-none')\n }\n\n // Focus input\n this.inputElement.focus()\n\n this.processing = true\n EventHandlerUtil.trigger(this.element, 'kt.search.process', this)\n }\n }\n\n // Complete\n public complete = () => {\n if (this.spinnerElement) {\n this.spinnerElement.classList.add('d-none')\n }\n\n // Show search toolbar\n if (this.clearElement) {\n this.clearElement.classList.remove('d-none')\n }\n\n if (this.inputElement.value.length === 0) {\n this.clear()\n }\n\n // Focus input\n this.inputElement.focus()\n\n this.show()\n\n this.processing = false\n }\n\n // Clear\n public clear = () => {\n if (EventHandlerUtil.trigger(this.element, 'kt.search.clear') === false) {\n return\n }\n\n // Clear and focus input\n this.inputElement.value = ''\n this.inputElement.focus()\n\n // Hide clear icon\n if (this.clearElement) {\n this.clearElement.classList.add('d-none')\n }\n\n // Show search toolbar\n if (this.toolbarElement) {\n this.toolbarElement.classList.remove('d-none')\n }\n\n // Hide menu\n if (this.getOption('show-on-focus') === false) {\n this.hide()\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.search.cleared')\n }\n\n public isProcessing = () => {\n return this.processing\n }\n\n public getQuery = () => {\n return this.inputElement.value\n }\n\n public getMenu = () => {\n return this.menuObject\n }\n\n public getFormElement = () => {\n return this.formElement\n }\n\n public getInputElement(): HTMLInputElement {\n return this.inputElement\n }\n\n public getContentElement(): HTMLElement {\n return this.contentElement\n }\n\n public getElement(): HTMLElement {\n return this.element\n }\n\n // Event API\n public on = (name: string, handler: Function) => {\n return EventHandlerUtil.on(this.element, name, handler)\n }\n\n public one = (name: string, handler: Function) => {\n return EventHandlerUtil.one(this.element, name, handler)\n }\n\n public off = (name: string) => {\n return EventHandlerUtil.off(this.element, name)\n }\n\n // Static methods\n public static getInstance = (\n el: HTMLElement,\n componentName: string = defaultSearchQueires.componentName\n ) => {\n const Search = DataUtil.get(el, componentName)\n if (Search) {\n return Search\n }\n\n return null\n }\n\n public static createInstances = (\n selector: string = defaultSearchQueires.instanseQuery,\n options: ISearchOptions = defaultSearchOptions,\n queries: ISearchQueries = defaultSearchQueires\n ) => {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((el) => {\n const item = el as HTMLElement\n let Search = SearchComponent.getInstance(item)\n if (!Search) {\n Search = new SearchComponent(item, options, queries)\n }\n })\n }\n\n public static createInsance = (\n selector: string = defaultSearchQueires.instanseQuery,\n options: ISearchOptions = defaultSearchOptions,\n queries: ISearchQueries = defaultSearchQueires\n ): SearchComponent | undefined => {\n const element = document.body.querySelector(selector)\n if (!element) {\n return\n }\n const item = element as HTMLElement\n let Search = SearchComponent.getInstance(item)\n if (!Search) {\n Search = new SearchComponent(item, options, queries)\n }\n return Search\n }\n\n public static bootstrap = (selector: string = defaultSearchQueires.instanseQuery) => {\n SearchComponent.createInstances(selector)\n }\n\n public static reinitialization = (selector: string = defaultSearchQueires.instanseQuery) => {\n SearchComponent.createInstances(selector)\n }\n}\nexport {SearchComponent, defaultSearchOptions, defaultSearchQueires}\n","import axios from 'axios'\n\nexport const FEATUREFLAG_URL = `${process.env.REACT_APP_API_URL}/FeatureFlag`\n\nexport const getFeatures = async () => {\n try {\n const {data} = await axios.get(`${FEATUREFLAG_URL}/features`)\n return data\n } catch (error) {\n return error\n }\n}","import React, {useEffect, useMemo} from 'react'\nimport {getFeatures} from './api/features'\nimport {FEATURE_DEFAULT, IFeature} from './model/feature'\n\ninterface IProps {\n features: IFeature[]\n}\n\nexport const FeatureFlagsContext = React.createContext({\n features: [],\n})\n\nexport const FeatureFlagsProvider: React.FC = ({children}) => {\n const [isLoading, setIsLoading] = React.useState(true)\n const [features, setFeatures] = React.useState([])\n\n useEffect(() => {\n (async () => {\n try {\n const featureNames = await getFeatures();\n if (featureNames) {\n const featureObjects = featureNames.map((featureName: string) => ({\n name: featureName\n }));\n setFeatures(featureObjects);\n }\n } catch (err) {\n console.log(err);\n } finally {\n setIsLoading(false);\n }\n })();\n }, []);\n\n const value: IProps = useMemo(() => {\n return {features}\n }, [features])\n\n return (\n \n {isLoading ? 'Loading...' : children}\n \n )\n}\n\nexport const useFeatureFlags = () => React.useContext(FeatureFlagsContext)","export function getCurrentUrl(pathname: string) {\n return pathname.split(/[?#]/)[0]\n}\n\nexport function checkIsActive(pathname: string, url: string) {\n const current = getCurrentUrl(pathname)\n if (!current || !url) {\n return false\n }\n\n if (current === url) {\n return true\n }\n\n if (current.indexOf(url) > -1) {\n return true\n }\n\n return false\n}\n","import React from 'react'\nimport SVG from 'react-inlinesvg'\nimport {toAbsoluteUrl} from '../AssetHelpers'\ntype Props = {\n className?: string\n path: string\n svgClassName?: string\n}\n\nconst KTSVG: React.FC = ({className = '', path, svgClassName = 'mh-50px'}) => {\n return (\n \n \n \n )\n}\n\nexport {KTSVG}\n","export interface MessageModel {\n user: number\n type: 'in' | 'out'\n text: string\n time: string\n template?: boolean\n}\n\nconst defaultMessages: Array = [\n {\n user: 4,\n type: 'in',\n text: 'How likely are you to recommend our company to your friends and family ?',\n time: '2 mins',\n },\n {\n user: 2,\n type: 'out',\n text: 'Hey there, we’re just writing to let you know that you’ve been subscribed to a repository on GitHub.',\n time: '5 mins',\n },\n {\n user: 4,\n type: 'in',\n text: 'Ok, Understood!',\n time: '1 Hour',\n },\n {\n user: 2,\n type: 'out',\n text: 'You’ll receive notifications for all issues, pull requests!',\n time: '2 Hours',\n },\n {\n user: 4,\n type: 'in',\n text: 'You can unwatch this repository immediately by clicking here: Keenthemes.com',\n time: '3 Hours',\n },\n {\n user: 2,\n type: 'out',\n text: 'Most purchased Business courses during this sale!',\n time: '4 Hours',\n },\n {\n user: 4,\n type: 'in',\n text: 'Company BBQ to celebrate the last quater achievements and goals. Food and drinks provided',\n time: '5 Hours',\n },\n {\n template: true,\n user: 2,\n type: 'out',\n text: '',\n time: 'Just now',\n },\n {\n template: true,\n user: 4,\n type: 'in',\n text: 'Right before vacation season we have the next Big Deal for you.',\n time: 'Just now',\n },\n]\n\nexport interface UserInfoModel {\n initials?: {label: string; state: 'warning' | 'danger' | 'primary' | 'success' | 'info'}\n name: string\n avatar?: string\n email: string\n position: string\n online: boolean\n}\n\nconst defaultUserInfos: Array = [\n {\n name: 'Emma Smith',\n avatar: 'avatars/300-6.jpg',\n email: 'e.smith@kpmg.com.au',\n position: 'Art Director',\n online: false,\n },\n {\n name: 'Melody Macy',\n initials: {label: 'M', state: 'danger'},\n email: 'melody@altbox.com',\n position: 'Marketing Analytic',\n online: true,\n },\n {\n name: 'Max Smith',\n avatar: 'avatars/300-1.jpg',\n email: 'max@kt.com',\n position: 'Software Enginer',\n online: false,\n },\n {\n name: 'Sean Bean',\n avatar: 'avatars/300-5.jpg',\n email: 'sean@dellito.com',\n position: 'Web Developer',\n online: false,\n },\n {\n name: 'Brian Cox',\n avatar: 'avatars/300-25.jpg',\n email: 'brian@exchange.com',\n position: 'UI/UX Designer',\n online: false,\n },\n {\n name: 'Mikaela Collins',\n initials: {label: 'M', state: 'warning'},\n email: 'mikaela@pexcom.com',\n position: 'Head Of Marketing',\n online: true,\n },\n {\n name: 'Francis Mitcham',\n avatar: 'avatars/300-9.jpg',\n email: 'f.mitcham@kpmg.com.au',\n position: 'Software Arcitect',\n online: false,\n },\n\n {\n name: 'Olivia Wild',\n initials: {label: 'O', state: 'danger'},\n email: 'olivia@corpmail.com',\n position: 'System Admin',\n online: true,\n },\n {\n name: 'Neil Owen',\n initials: {label: 'N', state: 'primary'},\n email: 'owen.neil@gmail.com',\n position: 'Account Manager',\n online: true,\n },\n {\n name: 'Dan Wilson',\n avatar: 'avatars/300-23.jpg',\n email: 'dam@consilting.com',\n position: 'Web Desinger',\n online: false,\n },\n {\n name: 'Emma Bold',\n initials: {label: 'E', state: 'danger'},\n email: 'emma@intenso.com',\n position: 'Corporate Finance',\n online: true,\n },\n {\n name: 'Ana Crown',\n avatar: 'avatars/300-12.jpg',\n email: 'ana.cf@limtel.com',\n position: 'Customer Relationship',\n online: false,\n },\n {\n name: 'Robert Doe',\n initials: {label: 'A', state: 'info'},\n email: 'robert@benko.com',\n position: 'Marketing Executive',\n online: true,\n },\n {\n name: 'John Miller',\n avatar: 'avatars/300-13.jpg',\n email: 'miller@mapple.com',\n position: 'Project Manager',\n online: false,\n },\n {\n name: 'Lucy Kunic',\n initials: {label: 'L', state: 'success'},\n email: 'lucy.m@fentech.com',\n position: 'SEO Master',\n online: true,\n },\n {\n name: 'Ethan Wilder',\n avatar: 'avatars/300-21.jpg',\n email: 'ethan@loop.com.au',\n position: 'Accountant',\n online: true,\n },\n]\n\nconst messageFromClient: MessageModel = {\n user: 4,\n type: 'in',\n text: 'Thank you for your awesome support!',\n time: 'Just now',\n}\n\nexport interface AlertModel {\n title: string\n description: string\n time: string\n icon: string\n state: 'primary' | 'danger' | 'warning' | 'success' | 'info'\n}\n\nconst defaultAlerts: Array = [\n {\n title: 'Project Alice',\n description: 'Phase 1 development',\n time: '1 hr',\n icon: 'icons/duotune/technology/teh008.svg',\n state: 'primary',\n },\n {\n title: 'HR Confidential',\n description: 'Confidential staff documents',\n time: '2 hrs',\n icon: 'icons/duotune/general/gen044.svg',\n state: 'danger',\n },\n {\n title: 'Company HR',\n description: 'Corporeate staff profiles',\n time: '5 hrs',\n icon: 'icons/duotune/finance/fin006.svg',\n state: 'warning',\n },\n {\n title: 'Project Redux',\n description: 'New frontend admin theme',\n time: '2 days',\n icon: 'icons/duotune/files/fil023.svg',\n state: 'success',\n },\n {\n title: 'Project Breafing',\n description: 'Product launch status update',\n time: '21 Jan',\n icon: 'icons/duotune/maps/map001.svg',\n state: 'primary',\n },\n {\n title: 'Banner Assets',\n description: 'Collection of banner images',\n time: '21 Jan',\n icon: 'icons/duotune/general/gen006.svg',\n state: 'info',\n },\n {\n title: 'Icon Assets',\n description: 'Collection of SVG icons',\n time: '20 March',\n icon: 'icons/duotune/art/art002.svg',\n state: 'warning',\n },\n]\nexport interface LogModel {\n code: string\n state: 'success' | 'danger' | 'warning'\n message: string\n time: string\n}\n\nconst defaultLogs: Array = [\n {code: '200 OK', state: 'success', message: 'New order', time: 'Just now'},\n {code: '500 ERR', state: 'danger', message: 'New customer', time: '2 hrs'},\n {code: '200 OK', state: 'success', message: 'Payment process', time: '5 hrs'},\n {code: '300 WRN', state: 'warning', message: 'Search query', time: '2 days'},\n {code: '200 OK', state: 'success', message: 'API connection', time: '1 week'},\n {code: '200 OK', state: 'success', message: 'Database restore', time: 'Mar 5'},\n {code: '300 WRN', state: 'warning', message: 'System update', time: 'May 15'},\n {code: '300 WRN', state: 'warning', message: 'Server OS update', time: 'Apr 3'},\n {code: '300 WRN', state: 'warning', message: 'API rollback', time: 'Jun 30'},\n {code: '500 ERR', state: 'danger', message: 'Refund process', time: 'Jul 10'},\n {code: '500 ERR', state: 'danger', message: 'Withdrawal process', time: 'Sep 10'},\n {code: '500 ERR', state: 'danger', message: 'Mail tasks', time: 'Dec 10'},\n]\n\nexport {defaultMessages, defaultUserInfos, defaultAlerts, defaultLogs, messageFromClient}\n","import {FC} from 'react'\nimport {useLang} from './Metronici18n'\nimport { LocalizationProvider } from '@progress/kendo-react-intl';\n\n\nimport {\n loadMessages,\n load\n} from \"@progress/kendo-react-intl\";\nimport { IntlProvider } from 'react-intl';\n\nimport kdEnMessages from './messages/kendo-message/en/datepicker.json'\nimport kdZhMessages from './messages/kendo-message/zh/datepicker.json'\nimport likelySubtags from \"cldr-core/supplemental/likelySubtags.json\";\nimport currencyData from \"cldr-core/supplemental/currencyData.json\";\nimport weekData from \"cldr-core/supplemental/weekData.json\";\nimport numbers from \"cldr-numbers-full/main/zh/numbers.json\";\nimport caGregorian from \"cldr-dates-full/main/zh/ca-gregorian.json\";\nimport dateFields from \"cldr-dates-full/main/zh/dateFields.json\";\nimport timeZoneNames from \"cldr-dates-full/main/zh/timeZoneNames.json\";\n\nload(\n likelySubtags,\n currencyData,\n weekData,\n numbers,\n caGregorian,\n dateFields,\n timeZoneNames\n);\n\nconst KendoToolI18Provider: FC = ({children}) => {\n const locale = useLang()\n\n loadMessages(kdEnMessages, 'en');\n loadMessages(kdZhMessages, 'zh');\n\n // const getKendoLang = (locale: string) => {\n // if (locale === 'en') {\n // return 'en-US'\n // } \n // else if (locale === 'zh') {\n // return 'zh-CN'\n // } else return 'en-US'\n // } \n\n return (\n \n {children}\n \n )\n}\n\nexport { KendoToolI18Provider }\n","import {FC} from 'react'\nimport {useLang} from './Metronici18n'\nimport {IntlProvider as GridIntlProvider, LocalizationProvider } from '@progress/kendo-react-intl';\nimport kdEnMessages from './messages/kendo-message/en/en.json'\nimport kdZhMessages from './messages/kendo-message/zh/zh.json'\n\nimport {\n loadMessages,\n} from \"@progress/kendo-react-intl\";\nimport { IntlProvider } from 'react-intl';\nimport { KendoToolI18Provider } from './kendoToolI18Provider';\n\n\nconst KendoI18Provider: FC = ({children}) => {\n const locale = useLang()\n\n loadMessages(kdEnMessages, 'en');\n loadMessages(kdZhMessages, 'zh');\n\n\n return (\n \n \n \n {children}\n \n \n \n )\n\n}\n\nexport { KendoI18Provider }\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from 'react'\n\nexport function Dropdown1() {\n return (\n
\n
\n
Filter Options
\n
\n\n
\n\n
\n
\n \n\n
\n \n \n \n \n \n \n \n
\n
\n\n
\n \n\n
\n \n\n \n
\n
\n\n
\n \n\n
\n \n \n
\n
\n\n
\n \n Reset\n \n\n \n
\n
\n
\n )\n}\n","import {IAlert} from '../../../shared/components/CustomAlert'\nimport {GridSetup, IBankInfo, IClientBankOption, ITransaction} from '../models/transaction-model'\n\nexport const TRANSACTION_FORM_DEFAULT: ITransaction = {\n id: 0,\n transactionType: 'withdrawal', //pending\n status: '', //withdraw\n orderId: '',\n currency: '',\n amount: 0,\n clientId: '',\n clientName: '',\n referenceId: '',\n bankAccount: '',\n amountFormatted: 'AUD 0.00',\n}\n\nexport const BANK_INFO_DEFAULT: IBankInfo = {\n zaiBankId: '',\n bankName: '',\n bsb: '',\n accountNumber: '',\n accountName: '',\n}\n\nexport const BANK_OPTION_DEFAULT: IClientBankOption = {\n value: '',\n label: '',\n bank: {\n zaiBankId: '',\n bankName: '',\n bsb: '',\n accountName: '',\n accountNumber: '',\n },\n}\nexport const Initial_GridSetup: GridSetup = {\n sort: [{field: 'id', dir: 'desc'}],\n skip: 0,\n take: 10,\n filter: {\n logic: 'and',\n filters: [],\n },\n}\n\nexport const TOASTER_DEFAULT: IAlert = {\n message: ``,\n header: ``,\n type: 'success',\n}\n\nexport const FIELD_COLUMN_MAP = [\n {field: 'id', objectMap: 'id', sortMap: 'id', type: typeof 0},\n {field: 'transactionType', objectMap: 'transactionType', sortMap: 'transactionType', type: ''},\n {field: 'status', objectMap: 'status', sortMap: 'status', type: ''},\n {field: 'clientName', objectMap: 'clientName', sortMap: 'clientName', type: typeof ''},\n {field: 'bankAccount', objectMap: 'bankAccount', sortMap: 'bankAccount', type: typeof ''},\n {field: 'amount', objectMap: 'amount', sortMap: 'amount', type: typeof 0},\n {field: 'currency', objectMap: 'currency', sortMap: 'currency', type: typeof ''},\n {field: 'zaiDisbursementId', objectMap: 'zaiDisbursementId', sortMap: '', type: typeof ''},\n {field: 'zaiReferenceId', objectMap: 'zaiReferenceId', sortMap: '', type: typeof ''},\n]\nexport const FIELD_DEFAULT = {field: 'id', dir: 'asc'}\nexport const FILTER_DEFAULT = 'id > 0 '\n","import {\n IAside,\n IContent,\n IFooter,\n IHeader,\n IToolbar,\n ILayout,\n ILayoutCSSClasses,\n ILayoutHTMLAttributes,\n ILayoutCSSVariables,\n IPageTitle,\n} from './LayoutModels'\nimport {DefaultLayoutConfig} from './DefaultLayoutConfig'\n\nconst LAYOUT_CONFIG_KEY = process.env.REACT_APP_BASE_LAYOUT_CONFIG_KEY || 'LayoutConfig'\n\nexport function getLayout(): ILayout {\n const ls = localStorage.getItem(LAYOUT_CONFIG_KEY)\n if (ls) {\n try {\n return JSON.parse(ls) as ILayout\n } catch (er) {\n console.error(er)\n }\n }\n return DefaultLayoutConfig\n}\n\nfunction setLayout(config: ILayout): void {\n try {\n localStorage.setItem(LAYOUT_CONFIG_KEY, JSON.stringify(config))\n } catch (er) {\n console.error(er)\n }\n}\n\nexport function getEmptyCssClasses() {\n return {\n header: [],\n headerContainer: [],\n headerMobile: [],\n headerMenu: [],\n aside: [],\n asideMenu: [],\n asideToggle: [],\n toolbar: [],\n toolbarContainer: [],\n content: [],\n contentContainer: [],\n footerContainer: [],\n sidebar: [],\n pageTitle: [],\n }\n}\n\nexport function getEmptyHTMLAttributes() {\n return {\n asideMenu: new Map(),\n headerMobile: new Map(),\n headerMenu: new Map(),\n headerContainer: new Map(),\n pageTitle: new Map(),\n }\n}\n\nexport function getEmptyCSSVariables() {\n return {\n body: new Map(),\n }\n}\n\nexport class LayoutSetup {\n public static isLoaded: boolean = false\n public static config: ILayout = getLayout()\n public static classes: ILayoutCSSClasses = getEmptyCssClasses()\n public static attributes: ILayoutHTMLAttributes = getEmptyHTMLAttributes()\n public static cssVariables: ILayoutCSSVariables = getEmptyCSSVariables()\n\n private static initCSSClasses(): void {\n LayoutSetup.classes = getEmptyCssClasses()\n }\n\n private static initHTMLAttributes(): void {\n LayoutSetup.attributes = Object.assign({}, getEmptyHTMLAttributes())\n }\n\n private static initCSSVariables(): void {\n LayoutSetup.cssVariables = getEmptyCSSVariables()\n }\n\n private static initLayout(config: ILayout): void {\n Array.from(document.body.attributes).forEach((attr) => {\n document.body.removeAttribute(attr.name)\n })\n document.body.setAttribute('style', '')\n document.body.setAttribute('id', 'kt_body')\n if (config.main?.body?.backgroundImage) {\n document.body.style.backgroundImage = `url('${config.main.body.backgroundImage}')`\n }\n\n if (config.main?.body?.class) {\n document.body.classList.add(config.main.body.class)\n }\n\n // if (config.loader.display) {\n // document.body.classList.add('page-loading')\n // document.body.classList.add('page-loading-enabled')\n // }\n }\n\n private static initHeader(config: IHeader): void {\n LayoutSetup.classes.headerContainer.push(\n config.width === 'fluid' ? 'container-fluid' : 'container'\n )\n\n if (config.fixed.desktop) {\n document.body.classList.add('header-fixed')\n }\n\n if (config.fixed.tabletAndMobile) {\n document.body.classList.add('header-tablet-and-mobile-fixed')\n }\n }\n\n private static initToolbar(config: IToolbar): void {\n if (!config.display) {\n return\n }\n\n document.body.classList.add('toolbar-enabled')\n LayoutSetup.classes.toolbarContainer.push(\n config.width === 'fluid' ? 'container-fluid' : 'container'\n )\n\n if (config.fixed.desktop) {\n document.body.classList.add('toolbar-fixed')\n }\n\n if (config.fixed.tabletAndMobileMode) {\n document.body.classList.add('toolbar-tablet-and-mobile-fixed')\n }\n\n // Height setup\n const type = config.layout\n const typeOptions = config.layouts[type]\n if (typeOptions) {\n let bodyStyles: string = ''\n if (typeOptions.height) {\n bodyStyles += ` --kt-toolbar-height: ${typeOptions.height};`\n }\n\n if (typeOptions.heightAndTabletMobileMode) {\n bodyStyles += ` --kt-toolbar-height-tablet-and-mobile: ${typeOptions.heightAndTabletMobileMode};`\n }\n document.body.setAttribute('style', bodyStyles)\n }\n }\n\n private static initPageTitle(config: IPageTitle): void {\n if (!config.display) {\n return\n }\n\n if (config.direction === 'column') {\n this.classes.pageTitle.push('flex-column')\n this.classes.pageTitle.push('align-items-start')\n } else {\n this.classes.pageTitle.push('align-items-center')\n this.classes.pageTitle.push('flex-wrap')\n }\n this.classes.pageTitle.push('me-3')\n\n if (config.responsive) {\n this.classes.pageTitle.push('mb-5')\n this.classes.pageTitle.push('mb-lg-0')\n\n LayoutSetup.attributes.pageTitle.set('data-kt-swapper', true)\n LayoutSetup.attributes.pageTitle.set('data-kt-swapper-mode', 'prepend')\n LayoutSetup.attributes.pageTitle.set(\n 'data-kt-swapper-parent',\n `{ default: '#kt_content_container', '${config.responsiveBreakpoint}': '${config.responsiveTarget}'}`\n )\n }\n }\n\n private static initContent(config: IContent): void {\n LayoutSetup.classes.contentContainer.push(\n config.width === 'fluid' ? 'container-fluid' : 'container'\n )\n // if (Theme::getOption('layout', 'content/container-class')) {\n // \tTheme::addHtmlClass('content-container', Theme::getOption('layout', 'content/container-class'));\n // }\n }\n\n private static initAside(config: IAside): void {\n // Check if aside is displayed\n if (!config.display) {\n return\n }\n\n // Enable Aside\n document.body.classList.add('aside-enabled')\n LayoutSetup.classes.aside.push(`aside-${config.theme}`)\n\n // Fixed Aside\n if (config.fixed) {\n document.body.classList.add('aside-fixed')\n }\n\n // Default minimized\n if (config.minimized) {\n document.body.setAttribute('data-kt-aside-minimize', 'on')\n }\n\n // Hoverable on minimize\n if (config.hoverable) {\n LayoutSetup.classes.aside.push('aside-hoverable')\n }\n }\n\n private static initAsideMenu(config: IAside): void {\n // if (Theme::getOption('layout', 'aside/menu') === 'documentation') {\n // \tself::$menu = new Menu( Theme::getOption('menu', 'documentation'), Theme::getPagePath() );\n // } else {\n // \tself::$menu = new Menu( Theme::getOption('menu', 'main'), Theme::getPagePath() );\n // }\n // if (Theme::getOption('layout', 'aside/menu-icons-display') === false) {\n // \tself::$menu->displayIcons(false);\n // }\n // self::$menu->setIconType(Theme::getOption('layout', 'aside/menu-icon'));\n }\n\n // private static initSidebar(sidebarConfig: ISidebarConfig): void {\n // // / Set Sidebar enabled class\n // if (sidebarConfig.display) {\n // document.body.classList.add('sidebar-enabled')\n // } else {\n // return\n // }\n\n // // Set Sidebar shown status\n // if (sidebarConfig.shown) {\n // document.body.setAttribute('data-sidebar', 'on')\n // }\n\n // // Set Sidebar background color class\n // ThemeSetup.classes.sidebar.push(sidebarConfig.bgColor)\n // }\n\n private static initFooter(config: IFooter): void {\n LayoutSetup.classes.footerContainer.push(`container${config.width === 'fluid' ? '-fluid' : ''}`)\n }\n\n private static initConfig(config: ILayout): void {\n if (config.main?.darkSkinEnabled) {\n document.body.classList.add('dark-skin')\n }\n\n // Init layout\n LayoutSetup.initLayout(config)\n if (config.main?.type !== 'default') {\n return\n }\n\n LayoutSetup.initHeader(config.header)\n LayoutSetup.initPageTitle(config.pageTitle as IPageTitle)\n LayoutSetup.initToolbar(config.toolbar)\n LayoutSetup.initContent(config.content)\n LayoutSetup.initAside(config.aside)\n LayoutSetup.initFooter(config.footer)\n LayoutSetup.initAsideMenu(config.aside)\n }\n\n public static updatePartialConfig(fieldsToUpdate: Partial): ILayout {\n const config = LayoutSetup.config\n const updatedConfig = {...config, ...fieldsToUpdate}\n LayoutSetup.initCSSClasses()\n LayoutSetup.initCSSVariables()\n LayoutSetup.initHTMLAttributes()\n LayoutSetup.isLoaded = false\n LayoutSetup.config = updatedConfig\n LayoutSetup.initConfig(Object.assign({}, updatedConfig))\n LayoutSetup.isLoaded = true // remove loading there\n return updatedConfig\n }\n\n public static setConfig(config: ILayout): void {\n setLayout(config)\n }\n\n public static bootstrap = (() => {\n LayoutSetup.updatePartialConfig(LayoutSetup.config)\n })()\n}\n","import { GridCellProps } from '@progress/kendo-react-grid'\nimport { dateFormat } from '../../../service/utils'\n\nexport const DateFormatCell = (props: GridCellProps) => {\n const { dataItem } = props\n const field = props.field || ''\n const dataValue = dataItem ? (dataItem[field] ? dataItem[field] : '') : ''\n\n return (\n \n {dateFormat(dataValue)}\n \n )\n}","import {Action} from '@reduxjs/toolkit'\nimport {persistReducer} from 'redux-persist'\nimport storage from 'redux-persist/lib/storage'\nimport {put, takeLatest, select} from 'redux-saga/effects'\nimport {UserModel} from '../models/UserModel'\nimport {getUserByToken} from \"./AuthCRUD\";\n\nexport interface ActionWithPayload extends Action {\n payload?: T\n}\n\nexport const actionTypes = {\n Login: '[Login] Action',\n Logout: '[Logout] Action',\n Register: '[Register] Action',\n UserRequested: '[Request User] Action',\n UserLoaded: '[Load User] Auth API',\n SetUser: '[Set User] Action',\n}\n\nconst initialAuthState: IAuthState = {\n user: undefined,\n accessToken: undefined,\n}\n\nexport interface IAuthState {\n user?: UserModel\n accessToken?: string\n}\n\nexport const reducer = persistReducer(\n {storage, key: 'isg-next-auth', whitelist: ['user', 'accessToken']},\n (state: IAuthState = initialAuthState, action: ActionWithPayload) => {\n switch (action.type) {\n case actionTypes.Login: {\n const accessToken = action.payload?.accessToken\n return {accessToken, user: undefined}\n }\n\n case actionTypes.Register: {\n const accessToken = action.payload?.accessToken\n return {accessToken, user: undefined}\n }\n\n case actionTypes.Logout: {\n return initialAuthState\n }\n\n case actionTypes.UserLoaded: {\n const user = action.payload?.user\n return {...state, user}\n }\n\n case actionTypes.SetUser: {\n const user = action.payload?.user\n return {...state, user}\n }\n\n default:\n return state\n }\n }\n)\n\nexport const actions = {\n login: (accessToken: string) => ({type: actionTypes.Login, payload: {accessToken}}),\n register: (accessToken: string) => ({\n type: actionTypes.Register,\n payload: {accessToken},\n }),\n logout: () => ({type: actionTypes.Logout}),\n requestUser: () => ({\n type: actionTypes.UserRequested,\n }),\n fulfillUser: (user: UserModel) => ({type: actionTypes.UserLoaded, payload: {user}}),\n setUser: (user: UserModel) => ({type: actionTypes.SetUser, payload: {user}}),\n store: () => ({type: \"def\"}),\n}\n\nexport function* saga() {\n yield takeLatest(actionTypes.Login, function* loginSaga() {\n yield put(actions.requestUser())\n })\n\n yield takeLatest(actionTypes.Register, function* registerSaga() {\n yield put(actions.requestUser())\n })\n\n yield takeLatest(actionTypes.UserRequested, function* userRequested() {\n // @ts-ignore\n const getToken = (state) => state.auth.accessToken;\n // @ts-ignore\n let token = yield select(getToken)\n const {data: user} = yield getUserByToken(token)\n yield put(actions.fulfillUser(user))\n })\n}\n","import axios from 'axios'\nimport {UserModel} from '../models/UserModel'\n\nconst API_URL = process.env.REACT_APP_API_URL\n\nexport const GET_USER_BY_ACCESSTOKEN_URL = `${API_URL}/Authenticate/verify-token`\nexport const LOGIN_URL = `${API_URL}/Authenticate/login`\nexport const LOGIN_2FA_URL = `${API_URL}/Authenticate/login-2FA`\nexport const REGISTER_URL = `${API_URL}/Authenticate/register`\nexport const REQUEST_PASSWORD_URL = `${API_URL}/Authenticate/forgot-password`\nexport const REQUEST_RESET_PASSWORD_URL = `${API_URL}/Authenticate/reset-password`\n\n// Server should return AuthModel\nexport function login(email: string, password: string) {\n return axios.post(LOGIN_URL, {\n email,\n password,\n })\n}\n\nexport function login2Fa(email: string, code: string) {\n return axios.post(LOGIN_2FA_URL, {\n email,\n code,\n })\n}\n\n// Server should return AuthModel\nexport function register(\n email: string,\n firstname: string,\n lastname: string,\n password: string,\n password_confirmation: string\n) {\n return axios.post(REGISTER_URL, {\n email,\n first_name: firstname,\n last_name: lastname,\n password,\n password_confirmation,\n })\n}\n\n// Server should return object => { result: boolean } (Is Email in DB)\nexport function requestPassword(email: string) {\n return axios.post<{result: boolean}>(REQUEST_PASSWORD_URL, {\n email,\n })\n}\nexport function requestResetPassword(uuid: string, password: string) {\n return axios.post<{result: boolean}>(REQUEST_RESET_PASSWORD_URL, {\n uuid, password\n })\n}\n\nexport function getUserByToken(token: string) {\n return axios.post(GET_USER_BY_ACCESSTOKEN_URL, {\n apiToken: token,\n })\n}\n","import {SortDescriptor} from '@progress/kendo-data-query'\nimport {FIELD_COLUMN_MAP, FIELD_DEFAULT} from '../constant/config-default'\n\nexport const transformClientSort = (sort: SortDescriptor[]) => {\n const configSort: any = {\n ...sort[0],\n field: sort[0] ? sort[0].field : FIELD_DEFAULT.field,\n dir: sort[0] ? sort[0].dir : FIELD_DEFAULT.dir,\n }\n const fieldMap = FIELD_COLUMN_MAP.find((cln) => cln.field === configSort.field)\n const sortField = fieldMap ? fieldMap.map : configSort.field\n return {...configSort, field: sortField}\n}\n\nexport const transformClientFilter = (filter: any) => {\n if (!filter) return filter\n\n let newFilter = (filter.filters || []).map((ft: any) => {\n const fieldMap = FIELD_COLUMN_MAP.find((cln) => cln.field === ft.field)\n\n ft = {\n ...ft,\n field: fieldMap?.map,\n type: fieldMap?.type,\n }\n return ft\n })\n\n return {...filter, filters: newFilter}\n}\n\nexport const transformedBankDataList = (dataFromApi: any) => {\n let transformData = dataFromApi.map((item: any, index: any) => ({\n ...item,\n id: item.id,\n text: item.name, // Assuming the 'name' property exists and contains the text for each option\n }))\n return transformData\n}\nexport const transformedBdmDataList = (dataFromApi: any) => {\n let transformData = dataFromApi.map((item: any, index: any) => ({\n ...item,\n id: item.id,\n text: item.name, // Assuming the 'name' property exists and contains the text for each option\n }))\n return transformData\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, {useState, useEffect} from 'react'\nimport {useDispatch} from 'react-redux'\nimport {useFormik} from 'formik'\nimport * as Yup from 'yup'\nimport clsx from 'clsx'\nimport * as auth from '../redux/AuthRedux'\nimport {register} from '../redux/AuthCRUD'\nimport {Link} from 'react-router-dom'\nimport {toAbsoluteUrl} from '../../../../_metronic/helpers'\nimport {PasswordMeterComponent} from '../../../../_metronic/assets/ts/components'\n\nconst initialValues = {\n firstname: '',\n lastname: '',\n email: '',\n password: '',\n changepassword: '',\n acceptTerms: false,\n}\n\nconst registrationSchema = Yup.object().shape({\n firstname: Yup.string()\n .min(3, 'Minimum 3 symbols')\n .max(50, 'Maximum 50 symbols')\n .required('First name is required'),\n email: Yup.string()\n .email('Wrong email format')\n .min(3, 'Minimum 3 symbols')\n .max(50, 'Maximum 50 symbols')\n .required('Email is required'),\n lastname: Yup.string()\n .min(3, 'Minimum 3 symbols')\n .max(50, 'Maximum 50 symbols')\n .required('Last name is required'),\n password: Yup.string()\n .min(3, 'Minimum 3 symbols')\n .max(50, 'Maximum 50 symbols')\n .required('Password is required'),\n changepassword: Yup.string()\n .required('Password confirmation is required')\n .when('password', {\n is: (val: string) => (val && val.length > 0 ? true : false),\n then: Yup.string().oneOf([Yup.ref('password')], \"Password and Confirm Password didn't match\"),\n }),\n acceptTerms: Yup.bool().required('You must accept the terms and conditions'),\n})\n\nexport function Registration() {\n const [loading, setLoading] = useState(false)\n const dispatch = useDispatch()\n const formik = useFormik({\n initialValues,\n validationSchema: registrationSchema,\n onSubmit: (values, {setStatus, setSubmitting}) => {\n setLoading(true)\n setTimeout(() => {\n register(\n values.email,\n values.firstname,\n values.lastname,\n values.password,\n values.changepassword\n )\n .then(({data: {api_token}}) => {\n setLoading(false)\n dispatch(auth.actions.register(api_token))\n })\n .catch(() => {\n setLoading(false)\n setSubmitting(false)\n setStatus('Registration process has broken')\n })\n }, 1000)\n },\n })\n\n useEffect(() => {\n PasswordMeterComponent.bootstrap()\n }, [])\n\n return (\n \n {/* begin::Heading */}\n
\n {/* begin::Title */}\n

Create an Account

\n {/* end::Title */}\n\n {/* begin::Link */}\n
\n Already have an account?\n \n Forgot Password ?\n \n
\n {/* end::Link */}\n
\n {/* end::Heading */}\n\n {/* begin::Action */}\n \n {/* end::Action */}\n\n
\n
\n OR\n
\n
\n\n {formik.status && (\n
\n
{formik.status}
\n
\n )}\n\n {/* begin::Form group Firstname */}\n
\n
\n \n \n {formik.touched.firstname && formik.errors.firstname && (\n
\n
\n {formik.errors.firstname}\n
\n
\n )}\n
\n
\n {/* begin::Form group Lastname */}\n
\n \n \n {formik.touched.lastname && formik.errors.lastname && (\n
\n
\n {formik.errors.lastname}\n
\n
\n )}\n
\n {/* end::Form group */}\n
\n
\n {/* end::Form group */}\n\n {/* begin::Form group Email */}\n
\n \n \n {formik.touched.email && formik.errors.email && (\n
\n
\n {formik.errors.email}\n
\n
\n )}\n
\n {/* end::Form group */}\n\n {/* begin::Form group Password */}\n
\n
\n \n
\n \n {formik.touched.password && formik.errors.password && (\n
\n
\n {formik.errors.password}\n
\n
\n )}\n
\n {/* begin::Meter */}\n \n
\n
\n
\n
\n
\n {/* end::Meter */}\n
\n
\n Use 8 or more characters with a mix of letters, numbers & symbols.\n
\n \n {/* end::Form group */}\n\n {/* begin::Form group Confirm password */}\n
\n \n \n {formik.touched.changepassword && formik.errors.changepassword && (\n
\n
\n {formik.errors.changepassword}\n
\n
\n )}\n
\n {/* end::Form group */}\n\n {/* begin::Form group */}\n
\n
\n \n \n I Agree the{' '}\n \n terms and conditions\n \n .\n \n {formik.touched.acceptTerms && formik.errors.acceptTerms && (\n
\n
\n {formik.errors.acceptTerms}\n
\n
\n )}\n
\n
\n {/* end::Form group */}\n\n {/* begin::Form group */}\n
\n \n {!loading && Submit}\n {loading && (\n \n Please wait...{' '}\n \n \n )}\n \n \n \n Cancel\n \n \n
\n {/* end::Form group */}\n \n )\n}\n","import { useState } from 'react'\nimport * as Yup from 'yup'\nimport clsx from 'clsx'\nimport { Link } from 'react-router-dom'\nimport { useFormik } from 'formik'\nimport { requestPassword } from '../redux/AuthCRUD'\nimport { getErrorMessage } from '../../../shared/service/utils'\n\nconst initialValues = {\n email: '',\n}\n\nconst forgotPasswordSchema = Yup.object().shape({\n email: Yup.string()\n .email('Wrong email format')\n .min(3, 'Minimum 3 symbols')\n .max(50, 'Maximum 50 symbols')\n .required('Email is required'),\n})\n\nexport function ForgotPassword() {\n const [loading, setLoading] = useState(false)\n const [hasErrors, setHasErrors] = useState(undefined)\n const formik = useFormik({\n initialValues,\n validationSchema: forgotPasswordSchema,\n onSubmit: (values, { setStatus, setSubmitting }) => {\n setLoading(true)\n setHasErrors(undefined)\n setTimeout(() => {\n requestPassword(values.email)\n .then(({ data: { result } }) => {\n setHasErrors(false)\n setLoading(false)\n })\n .catch((error) => {\n const errorMessage = getErrorMessage(error, 'Sorry, looks like there are some errors detected, please try again.')\n setHasErrors(true)\n setLoading(false)\n setSubmitting(false)\n setStatus(errorMessage)\n })\n }, 1000)\n },\n })\n\n return (\n <>\n \n
\n {/* begin::Title */}\n

Forgot Password ?

\n {/* end::Title */}\n\n {/* begin::Link */}\n
Enter your email to reset your password.
\n {/* end::Link */}\n
\n\n {/* begin::Title */}\n {hasErrors === true && (\n
\n
{formik.status}
\n
\n )}\n\n {hasErrors === false && (\n
\n
Sent password reset link. Please check your email
\n
\n )}\n {/* end::Title */}\n\n {/* begin::Form group */}\n
\n \n \n {formik.touched.email && formik.errors.email && (\n
\n
\n {formik.errors.email}\n
\n
\n )}\n
\n {/* end::Form group */}\n\n {/* begin::Form group */}\n
\n \n Submit\n {loading && (\n \n Please wait...\n \n \n )}\n \n \n \n Cancel\n \n {' '}\n
\n {/* end::Form group */}\n \n \n )\n}\n","import {useState} from 'react'\nimport * as Yup from 'yup'\nimport clsx from 'clsx'\nimport {useHistory, useParams} from 'react-router-dom'\nimport {useFormik} from 'formik'\nimport {requestResetPassword} from '../redux/AuthCRUD'\n\nconst initialValues = {\n newPassword: '',\n confirmPassword: '',\n}\n\n// Define form validation schema using Yup\nconst resetPasswordSchema = Yup.object().shape({\n newPassword: Yup.string().min(6, 'Password must be at least 6 characters').required('Required'),\n confirmPassword: Yup.string()\n .oneOf([Yup.ref('newPassword'), null], 'Passwords must match')\n .required('Required'),\n})\n\nexport function ResetPassword() {\n const history = useHistory()\n // Access the 'uuid' parameter from the URL\n const {uuid}: {uuid: string} = useParams()\n\n const [loading, setLoading] = useState(false)\n const [hasErrors, setHasErrors] = useState(false)\n const formik = useFormik({\n initialValues,\n validationSchema: resetPasswordSchema,\n onSubmit: async (values, {setStatus, setSubmitting}) => {\n setLoading(true)\n\n // Here, you would typically send a request to reset the password\n // and handle the redirection logic\n // After a successful password reset, you can redirect to the login page\n try {\n // Send a request to reset the password\n const resp = await requestResetPassword(uuid, values.newPassword)\n // Password reset was successful\n history.push('/login')\n } catch (error: any) {\n // Handle network errors or other exceptions\n setHasErrors(true)\n setLoading(false)\n setSubmitting(false)\n setStatus(error.message)\n }\n },\n })\n const isSubmitButtonVisible =\n formik.values.newPassword !== '' &&\n formik.values.confirmPassword !== '' &&\n ((!formik.errors.newPassword && !formik.errors.confirmPassword) || loading)\n\n return (\n <>\n \n
\n {/* begin::Title */}\n

Reset Password ?

\n {/* end::Title */}\n\n {/* begin::Link */}\n
Enter your new password.
\n {/* end::Link */}\n
\n\n {/* begin::Title */}\n {hasErrors && (\n
\n
\n Sorry, looks like there are some errors detected, Please try again later or contact\n the server manager for assistance.\n
\n
\n )}\n {/* end::Title */}\n\n {/* begin::Form group */}\n
\n \n \n {formik.touched.newPassword && formik.errors.newPassword && (\n
\n
\n {formik.errors.newPassword}\n
\n
\n )}\n
\n
\n \n \n {formik.touched.confirmPassword && formik.errors.confirmPassword && (\n
\n
\n {formik.errors.confirmPassword}\n
\n
\n )}\n
\n {/* end::Form group */}\n\n {/* begin::Form group */}\n
\n {isSubmitButtonVisible && (\n \n Submit\n {loading && (\n \n Please wait...\n \n \n )}\n \n )}\n
\n {/* end::Form group */}\n \n \n )\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, {useState} from 'react'\nimport {useDispatch} from 'react-redux'\nimport * as Yup from 'yup'\nimport clsx from 'clsx'\nimport {Link} from 'react-router-dom'\nimport {useFormik} from 'formik'\nimport * as auth from '../redux/AuthRedux'\nimport {login2Fa} from '../redux/AuthCRUD'\nimport {toAbsoluteUrl} from '../../../../_metronic/helpers'\nimport {useIntl} from 'react-intl'\n\nconst loginSchema = Yup.object().shape({\n email: Yup.string(),\n code: Yup.string(),\n})\n\nconst initialValues = {\n email: '',\n code: '',\n}\n\n/*\n Formik+YUP+Typescript:\n https://jaredpalmer.com/formik/docs/tutorial#getfieldprops\n https://medium.com/@maurice.de.beijer/yup-validation-and-typescript-and-formik-6c342578a20e\n*/\n\ninterface IProps {\n email: string\n cancelHandler: () => void\n}\n\nconst Login2Fa: React.FC = ({email, cancelHandler}) => {\n //export function Login2Fa() {\n const [loading, setLoading] = useState(false)\n const dispatch = useDispatch()\n const intl = useIntl()\n initialValues.email = email\n\n const formik = useFormik({\n initialValues,\n validationSchema: loginSchema,\n onSubmit: (values, {setStatus, setSubmitting}) => {\n setLoading(true)\n setTimeout(() => {\n login2Fa(values.email, values.code)\n .then(({data: {token, twoFactorEnabled}}) => {\n setLoading(false)\n dispatch(auth.actions.login(token))\n })\n .catch((err) => {\n console.log(err)\n setLoading(false)\n setSubmitting(false)\n setStatus('The verification code is incorrect')\n })\n }, 1000)\n },\n })\n\n return (\n \n {/* begin::Heading */}\n
\n

Authenticate your account

\n
\n Please confirm your account by entering your authorization code sent to email \"{email}\"\n
\n
\n {/* begin::Heading */}\n\n {formik.status ? (\n
\n
{formik.status}
\n
\n ) : (\n <>\n )}\n\n {/* begin::Form group */}\n
\n \n \n {formik.touched.code && formik.errors.code && (\n
\n {formik.errors.code}\n
\n )}\n
\n {/* end::Form group */}\n\n {/* begin::Action */}\n
\n \n {!loading && Submit}\n {loading && (\n \n Please wait...\n \n \n )}\n \n \n
\n {/* end::Action */}\n \n )\n}\n\nexport {Login2Fa}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, { useState } from 'react'\nimport { useDispatch } from 'react-redux'\nimport * as Yup from 'yup'\nimport clsx from 'clsx'\nimport { Link } from 'react-router-dom'\nimport { useFormik } from 'formik'\nimport * as auth from '../redux/AuthRedux'\nimport { login } from '../redux/AuthCRUD'\n// import {useAuth0} from '@auth0/auth0-react'\nimport { toAbsoluteUrl } from '../../../../_metronic/helpers'\nimport { useIntl } from 'react-intl'\nimport { getErrorMessage, serializeErrorResponse } from '../../../shared/service/utils'\n\nconst loginSchema = Yup.object().shape({\n email: Yup.string()\n .email('Wrong email format')\n .min(3, 'Minimum 3 symbols')\n .max(50, 'Maximum 50 symbols')\n .required('Email is required'),\n password: Yup.string()\n .min(3, 'Minimum 3 symbols')\n .max(50, 'Maximum 50 symbols')\n .required('Password is required'),\n})\n\nconst initialValues = {\n email: '',\n password: '',\n}\n\n/*\n Formik+YUP+Typescript:\n https://jaredpalmer.com/formik/docs/tutorial#getfieldprops\n https://medium.com/@maurice.de.beijer/yup-validation-and-typescript-and-formik-6c342578a20e\n*/\n\ninterface IProps {\n handleShow2fa: (email: string) => void\n}\n\n//export function Login() {\nconst Login: React.FC = ({ handleShow2fa }) => {\n const [loading, setLoading] = useState(false)\n const [showVerificationCode, setShowVerificationCode] = useState(false)\n const [verificationCode, setVerificationCode] = useState('')\n const dispatch = useDispatch()\n const intl = useIntl()\n\n const formik = useFormik({\n initialValues,\n validationSchema: loginSchema,\n onSubmit: (values, { setStatus, setSubmitting }) => {\n setLoading(true)\n setTimeout(() => {\n login(values.email, values.password)\n .then(({ data: { token, twoFactorEnabled } }) => {\n setLoading(false)\n\n if (!twoFactorEnabled) dispatch(auth.actions.login(token))\n else {\n handleShow2fa(values.email)\n setShowVerificationCode(true)\n }\n })\n .catch((error) => {\n const errorMessage = getErrorMessage(error, 'The login detail is incorrect')\n setLoading(false)\n setSubmitting(false)\n setStatus(errorMessage)\n })\n }, 1000)\n },\n })\n\n return (\n \n {/* begin::Heading */}\n
\n

\n Welcome to  \n {intl.formatMessage({ id: 'APP.NAME' })}\n

\n
\n {/* New Here?{' '} */}\n {/* \n Create an Account\n */}\n
\n
\n {/* begin::Heading */}\n\n {\n formik.status ? (\n
\n
{formik.status}
\n
\n ) : (\n
\n )\n // (\n //
\n //
\n // Use account admin@demo.com and password demo to\n // continue.\n //
\n //
\n // )\n }\n\n {/* begin::Form group */}\n
\n \n \n {formik.touched.email && formik.errors.email && (\n
\n {formik.errors.email}\n
\n )}\n
\n {/* end::Form group */}\n\n {/* begin::Form group */}\n
\n
\n
\n {/* begin::Label */}\n \n {/* end::Label */}\n {/* begin::Link */}\n \n {intl.formatMessage({ id: 'AUTH.GENERAL.FORGOT_BUTTON' })} ?\n \n {/* end::Link */}\n
\n
\n \n {formik.touched.password && formik.errors.password && (\n
\n
\n {formik.errors.password}\n
\n
\n )}\n
\n {/* end::Form group */}\n\n {/* begin::Action */}\n
\n \n {!loading && (\n {intl.formatMessage({ id: 'AUTH.LOGIN.BUTTON' })}\n )}\n {loading && (\n \n Please wait...\n \n \n )}\n \n
\n {/* end::Action */}\n \n )\n}\n\nexport { Login }\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, {useState} from 'react'\nimport {Login2Fa} from './Login2Fa'\nimport {Login} from './Login'\n\nexport function LoginPage() {\n const [show2Fa, setShow2Fa] = useState(false)\n const [email, setEmail] = useState('')\n\n const show2faHandler = (email: string) => {\n setEmail(email)\n setShow2Fa(true)\n }\n\n const cancelHandler = () => {\n setShow2Fa(false)\n }\n\n return !show2Fa ? (\n \n ) : (\n \n )\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, { useEffect } from 'react'\nimport { Redirect, Route, Switch } from 'react-router-dom'\nimport { Registration } from './components/Registration'\nimport { ForgotPassword } from './components/ForgotPassword'\nimport { ResetPassword } from './components/ResetPassword'\nimport { Login } from './components/Login'\nimport { toAbsoluteUrl } from '../../../_metronic/helpers'\nimport { Login2Fa } from './components/Login2Fa'\nimport { LoginPage } from './components/LoginPage'\n\nexport function AuthPage() {\n useEffect(() => {\n document.body.classList.add('bg-white')\n return () => {\n document.body.classList.remove('bg-white')\n }\n }, [])\n\n return (\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n {/* begin::Content */}\n
\n {/* begin::Logo */}\n \n Logo\n \n {/* end::Logo */}\n {/* begin::Wrapper */}\n
\n \n \n \n \n \n \n \n \n
\n {/* end::Wrapper */}\n
\n {/* end::Content */}\n
\n
\n
\n
\n

Welcome to Relayoo

\n {/*

\n The ultimate Bootstrap, Angular 8, React & VueJS admin theme\n

*/}\n
\n
\n
\n
\n\n {/* begin::Footer */}\n {/* */}\n {/* end::Footer */}\n \n )\n}\n","import React, {useEffect} from 'react'\nimport {useDispatch} from 'react-redux'\nimport {Redirect, Switch} from 'react-router-dom'\nimport * as auth from './redux/AuthRedux'\n\nexport function Logout() {\n const dispatch = useDispatch()\n \n useEffect(() => { \n dispatch(auth.actions.logout())\n document.location.reload()\n }, [dispatch])\n\n return (\n \n \n \n )\n}\n","import {FC, useRef, useEffect, useState} from 'react'\nimport {shallowEqual, useSelector, connect, useDispatch, ConnectedProps} from 'react-redux'\nimport {LayoutSplashScreen} from '../../../../_metronic/layout/core'\nimport * as auth from './AuthRedux'\nimport {getUserByToken} from './AuthCRUD'\nimport {RootState} from '../../../../setup'\n// import {useAuth0} from '@auth0/auth0-react'\n// import {UserModel} from '../models/UserModel'\n\nconst mapState = (state: RootState) => ({auth: state.auth})\nconst connector = connect(mapState, auth.actions)\ntype PropsFromRedux = ConnectedProps\n\nconst AuthInit: FC = (props) => {\n const didRequest = useRef(false)\n const dispatch = useDispatch()\n const [showSplashScreen, setShowSplashScreen] = useState(true)\n const accessToken = useSelector(({auth}) => auth.accessToken, shallowEqual)\n // const {user: auth0User, isLoading, isAuthenticated} = useAuth0()\n\n // We should request user by authToken before rendering the application\n useEffect(() => {\n const requestUser = async () => {\n try {\n if (!didRequest.current) {\n const {data: user} = await getUserByToken(accessToken as string)\n dispatch(props.fulfillUser(user))\n }\n } catch (error) {\n console.error(error)\n if (!didRequest.current) {\n dispatch(props.logout())\n }\n } finally {\n setShowSplashScreen(false)\n }\n\n return () => (didRequest.current = true)\n }\n\n if (accessToken) {\n requestUser()\n } else {\n dispatch(props.logout())\n setShowSplashScreen(false)\n }\n // eslint-disable-next-line\n }, [])\n\n return showSplashScreen ? : <>{props.children}\n}\n\nexport default connector(AuthInit)\n","import {all} from 'redux-saga/effects'\nimport {combineReducers} from 'redux'\n\nimport * as auth from '../../app/modules/auth'\n\nexport const rootReducer = combineReducers({\n auth: auth.reducer,\n})\n\nexport type RootState = ReturnType\n\nexport function* rootSaga() {\n yield all([auth.saga()])\n}\n","import {configureStore, getDefaultMiddleware} from '@reduxjs/toolkit'\nimport createSagaMiddleware from 'redux-saga'\nimport {reduxBatch} from '@manaflair/redux-batch'\nimport {persistStore} from 'redux-persist'\nimport {rootReducer, rootSaga} from './RootReducer'\n\nconst sagaMiddleware = createSagaMiddleware()\nconst middleware = [\n ...getDefaultMiddleware({\n immutableCheck: false,\n serializableCheck: false,\n thunk: true,\n }),\n sagaMiddleware,\n]\n\nconst store = configureStore({\n reducer: rootReducer,\n middleware,\n devTools: process.env.NODE_ENV !== 'production',\n enhancers: [reduxBatch],\n})\n\nexport type AppDispatch = typeof store.dispatch\n\n/**\n * @see https://github.com/rt2zz/redux-persist#persiststorestore-config-callback\n * @see https://github.com/rt2zz/redux-persist#persistor-object\n */\nexport const persistor = persistStore(store)\n\nsagaMiddleware.run(rootSaga)\n\nexport default store\n","import {FC} from 'react'\nimport {useLang} from './Metronici18n'\nimport {IntlProvider} from 'react-intl'\nimport '@formatjs/intl-relativetimeformat/polyfill'\nimport '@formatjs/intl-relativetimeformat/locale-data/en'\nimport '@formatjs/intl-relativetimeformat/locale-data/de'\nimport '@formatjs/intl-relativetimeformat/locale-data/es'\nimport '@formatjs/intl-relativetimeformat/locale-data/fr'\nimport '@formatjs/intl-relativetimeformat/locale-data/ja'\nimport '@formatjs/intl-relativetimeformat/locale-data/zh'\n\nimport deMessages from './messages/de.json'\nimport enMessages from './messages/en.json'\nimport esMessages from './messages/es.json'\nimport frMessages from './messages/fr.json'\nimport jaMessages from './messages/ja.json'\nimport zhMessages from './messages/zh.json'\n\nconst allMessages = {\n de: deMessages,\n en: enMessages,\n es: esMessages,\n fr: frMessages,\n ja: jaMessages,\n zh: zhMessages,\n}\n\nconst I18nProvider: FC = ({children}) => {\n const locale = useLang()\n const messages = allMessages[locale]\n\n return (\n \n {children}\n \n )\n}\n\nexport {I18nProvider}\n","import React, { useEffect, useState } from 'react'\nimport clsx from 'clsx'\nimport {Link} from 'react-router-dom'\nimport {useLocation} from 'react-router'\nimport {checkIsActive, KTSVG} from '../../../helpers'\nimport {useLayout, usePageData} from '../../core'\nimport { PAGE_PERMISSION } from '../../../../app/modules/roles/constant/role-default'\n\ntype Props = {\n to: string\n title: string\n icon?: string\n fontIcon?: string\n hasBullet?: boolean,\n pagePermission?: PAGE_PERMISSION | null\n}\n\nconst AsideMenuItem: React.FC = ({\n children,\n to,\n title,\n icon,\n fontIcon,\n hasBullet = false,\n pagePermission = null,\n}) => {\n const {pathname} = useLocation()\n const isActive = checkIsActive(pathname, to)\n const {config} = useLayout()\n const {aside} = config\n const [canView, setCanView] = useState(true);\n const { currentUser: { activePages } } = usePageData();\n\n\n useEffect(() => {\n if (!!pagePermission) {\n const allowed = activePages.some(page => page.name === pagePermission);\n setCanView(allowed);\n }\n }, [pagePermission, activePages]);\n\n if (!canView)\n return <> \n\n\n return (\n
\n \n {hasBullet && (\n \n \n \n )}\n {icon && aside.menuIcon === 'svg' && (\n \n \n \n )}\n {fontIcon && aside.menuIcon === 'font' && }\n {title}\n \n {children}\n
\n )\n}\n\nexport {AsideMenuItem}\n","import React, { useEffect, useState } from 'react'\nimport clsx from 'clsx'\nimport {useLocation} from 'react-router'\nimport {checkIsActive, KTSVG} from '../../../helpers'\nimport {useLayout, usePageData} from '../../core'\nimport { PAGE_PERMISSION } from '../../../../app/modules/roles/constant/role-default'\n\ntype Props = {\n to: string\n title: string\n icon?: string\n fontIcon?: string\n hasBullet?: boolean,\n pagePermissions?: PAGE_PERMISSION[]\n}\n\nconst AsideMenuItemWithSub: React.FC = ({\n children,\n to,\n title,\n icon,\n fontIcon,\n hasBullet,\n pagePermissions = []\n}) => {\n const {pathname} = useLocation()\n const isActive = checkIsActive(pathname, to)\n const {config} = useLayout()\n const {aside} = config\n const [canView, setCanView] = useState(true);\n const { currentUser: { activePages } } = usePageData();\n\n useEffect(() => {\n\n if (pagePermissions.length > 0 && activePages) {\n const allowed = pagePermissions.some(page => activePages.some(activePage => activePage.name === page));\n setCanView(allowed);\n }\n\n }, [pagePermissions, activePages]);\n\n if (!canView)\n return <> ;\n\n return (\n \n \n {hasBullet && (\n \n \n \n )}\n {icon && aside.menuIcon === 'svg' && (\n \n \n \n )}\n {fontIcon && aside.menuIcon === 'font' && }\n {title}\n \n \n
\n {children}\n
\n \n )\n}\n\nexport {AsideMenuItemWithSub}\n","/* eslint-disable react/jsx-no-target-blank */\nimport { useIntl } from 'react-intl'\nimport { shallowEqual, useSelector } from 'react-redux'\n\nimport { AsideMenuItem } from './AsideMenuItem'\nimport { UserModel } from '../../../../app/modules/auth/models/UserModel'\nimport { RootState } from '../../../../setup'\nimport { FeatureFlagProvider } from '../../../../app/modules/feature-flag/FeatureFlagProvider'\nimport { AsideMenuItemWithSub } from './AsideMenuItemWithSub'\nimport { PAGE_PERMISSION } from '../../../../app/modules/roles/constant/role-default'\n\nexport function AsideMenuMain() {\n const intl = useIntl()\n const user: UserModel = useSelector(({ auth }) => auth.user, shallowEqual) as UserModel\n\n return (\n <>\n {user.isCreatedByDebit && (\n \n )}\n {!user.isCreatedByDebit && (\n \n )}\n \n {user.isCreatedByDebit && (\n \n )}\n {/* */}\n {!user.isCreatedByDebit && (\n \n )}\n {!user.isCreatedByDebit && (\n \n )}\n {!user.isCreatedByDebit && (\n \n )}\n \n \n \n\n \n\n \n\n \n\n {/*\n
\n
\n \n {intl.formatMessage({id: 'MENU.ADMINISTRATION'})}\n \n
\n
\n \n {/* \n
\n
\n
\n
\n
*/}\n \n )\n}\n","import React, {useRef, useEffect} from 'react'\nimport {useLocation} from 'react-router'\nimport clsx from 'clsx'\nimport {AsideMenuMain} from './AsideMenuMain'\nimport {DrawerComponent, ScrollComponent, ToggleComponent} from '../../../assets/ts/components'\n\ntype Props = {\n asideMenuCSSClasses: string[]\n}\n\nconst AsideMenu: React.FC = ({asideMenuCSSClasses}) => {\n const scrollRef = useRef(null)\n const {pathname} = useLocation()\n\n useEffect(() => {\n setTimeout(() => {\n DrawerComponent.reinitialization()\n ToggleComponent.reinitialization()\n ScrollComponent.reinitialization()\n if (scrollRef.current) {\n scrollRef.current.scrollTop = 0\n }\n }, 50)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pathname])\n\n return (\n \n \n \n \n \n )\n}\n\nexport {AsideMenu}\n","/* eslint-disable react/jsx-no-target-blank */\n/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, {FC} from 'react'\nimport {Link} from 'react-router-dom'\nimport clsx from 'clsx'\nimport {useLayout} from '../../core'\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\nimport {AsideMenu} from './AsideMenu'\n\nconst AsideDefault: FC = () => {\n const {config, classes} = useLayout()\n const {aside} = config\n\n return (\n \n {/* begin::Brand */}\n \n )}\n {/* end::Aside toggler */}\n \n {/* end::Brand */}\n\n {/* begin::Aside menu */}\n
\n \n
\n {/* end::Aside menu */}\n\n {/* begin::Footer */}\n {/* */}\n {/* end::Footer */}\n \n )\n}\n\nexport {AsideDefault}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport {FC} from 'react'\nimport {useIntl} from 'react-intl'\nimport {useLayout} from '../core'\n\nconst Footer: FC = () => {\n const {classes} = useLayout()\n const intl = useIntl()\n\n return (\n \n {/* end::Container */}\n \n )\n}\n\nexport {Footer}","import React, {FC} from 'react'\nimport {MenuInner} from './MenuInner'\n\nconst Header: FC = () => {\n return (\n \n \n {/* */}\n \n \n )\n}\n\nexport {Header}\n","import clsx from 'clsx'\nimport React, {FC} from 'react'\nimport {Link} from 'react-router-dom'\nimport {useLayout} from '../../../core/LayoutProvider'\nimport {usePageData} from '../../../core/PageData'\n\nconst DefaultTitle: FC = () => {\n const {pageTitle, pageDescription, pageBreadcrumbs} = usePageData()\n const {config, classes} = useLayout()\n return (\n \n {/* begin::Title */}\n {pageTitle && (\n

\n {pageTitle}\n {pageDescription && config.pageTitle && config.pageTitle.description && (\n <>\n \n {pageDescription}\n \n )}\n

\n )}\n {/* end::Title */}\n\n {pageBreadcrumbs &&\n pageBreadcrumbs.length > 0 &&\n config.pageTitle &&\n config.pageTitle.breadCrumbs && (\n <>\n {config.pageTitle.direction === 'row' && (\n \n )}\n
    \n {Array.from(pageBreadcrumbs).map((item, index) => (\n \n {!item.isSeparator ? (\n \n {item.title}\n \n ) : (\n \n )}\n \n ))}\n
  • {pageTitle}
  • \n
\n \n )}\n \n )\n}\n\nexport {DefaultTitle}\n","import clsx from 'clsx'\nimport React, {FC} from 'react'\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\nimport {HeaderNotificationsMenu, HeaderUserMenu, QuickLinks, Search} from '../../../partials'\nimport {useLayout} from '../../core'\n\nconst toolbarButtonMarginClass = 'ms-1 ms-lg-3',\n toolbarButtonHeightClass = 'w-30px h-30px w-md-40px h-md-40px',\n toolbarUserAvatarHeightClass = 'symbol-30px symbol-md-40px',\n toolbarButtonIconSizeClass = 'svg-icon-1'\n\nconst Topbar: FC = () => {\n const {config} = useLayout()\n\n return (\n
\n {/* Search */}\n {/*
\n \n
*/}\n {/* Activities */}\n
\n {/* begin::Drawer toggle */}\n {/* \n \n
*/}\n {/* end::Drawer toggle */}\n
\n\n {/* begin::User */}\n \n {/* begin::Toggle */}\n \n metronic\n \n \n {/* end::Toggle */}\n \n {/* end::User */}\n\n {/* begin::Aside Toggler */}\n {config.header.left === 'menu' && (\n
\n \n \n
\n \n )}\n \n )\n}\n\nexport {Topbar}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport clsx from 'clsx'\nimport React from 'react'\nimport {Link} from 'react-router-dom'\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\nimport {useLayout} from '../../core'\nimport {Header} from './Header'\nimport {DefaultTitle} from './page-title/DefaultTitle'\nimport {Topbar} from './Topbar'\n\nexport function HeaderWrapper() {\n const {config, classes, attributes} = useLayout()\n const {header, aside} = config\n\n return (\n \n \n {/* begin::Aside mobile toggle */}\n {aside.display && (\n
\n \n \n
\n \n )}\n {/* end::Aside mobile toggle */}\n {/* begin::Logo */}\n {!aside.display && (\n
\n \n Logo\n \n
\n )}\n {/* end::Logo */}\n\n {aside.display && (\n
\n \n Logo\n \n
\n )}\n\n {/* begin::Wrapper */}\n
\n {/* begin::Navbar */}\n {header.left === 'menu' && (\n
\n
\n
\n )}\n\n {header.left === 'page-title' && (\n
\n \n
\n )}\n\n
\n \n
\n
\n {/* end::Wrapper */}\n \n \n )\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport clsx from 'clsx'\nimport React, {FC} from 'react'\nimport {KTSVG} from '../../../helpers'\nimport {useLayout} from '../../core'\nimport {DefaultTitle} from '../header/page-title/DefaultTitle'\n\nconst Toolbar1: FC = () => {\n const {classes} = useLayout()\n\n return (\n
\n {/* begin::Container */}\n \n \n
\n {/* end::Container */}\n \n )\n}\n\nexport {Toolbar1}\n","import React from 'react'\nimport {useLayout} from '../../core/LayoutProvider'\nimport {Toolbar1} from './Toolbar1'\n\nconst Toolbar = () => {\n const {config} = useLayout()\n\n switch (config.toolbar.layout) {\n case 'toolbar1':\n return \n\n default:\n return \n }\n}\n\nexport {Toolbar}\n","import React, {useEffect} from 'react'\nimport {useLocation} from 'react-router'\nimport clsx from 'clsx'\nimport {useLayout} from '../core'\nimport {DrawerComponent} from '../../assets/ts/components'\n\nconst Content: React.FC = ({children}) => {\n const {classes} = useLayout()\n const location = useLocation()\n useEffect(() => {\n DrawerComponent.hideAll()\n }, [location])\n\n return (\n
\n {children}\n
\n )\n}\n\nexport {Content}\n","import React, {useEffect} from 'react'\nimport {AsideDefault} from './components/aside/AsideDefault'\nimport {Footer} from './components/Footer'\nimport {HeaderWrapper} from './components/header/HeaderWrapper'\nimport {Toolbar} from './components/toolbar/Toolbar'\nimport {RightToolbar} from '../partials/layout/RightToolbar'\nimport {ScrollTop} from './components/ScrollTop'\nimport {Content} from './components/Content'\nimport {PageDataProvider} from './core'\nimport {useLocation} from 'react-router-dom'\nimport {DrawerMessenger, ActivityDrawer, Main, InviteUsers, UpgradePlan} from '../partials'\nimport {MenuComponent} from '../assets/ts/components'\n\nconst MasterLayout: React.FC = ({children}) => {\n const location = useLocation()\n useEffect(() => {\n setTimeout(() => {\n MenuComponent.reinitialization()\n }, 500)\n }, [])\n\n useEffect(() => {\n setTimeout(() => {\n MenuComponent.reinitialization()\n }, 500)\n }, [location.key])\n\n return (\n \n
\n \n
\n \n\n
\n \n
\n {children}\n
\n
\n
\n
\n
\n\n {/* begin:: Drawers */}\n {/* \n \n */}\n {/* end:: Drawers */}\n\n {/* begin:: Modals */}\n
\n {/* \n */}\n {/* end:: Modals */}\n {/* */}\n \n )\n}\n\nexport {MasterLayout}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport {FC} from 'react'\nimport SVG from 'react-inlinesvg'\nimport {toAbsoluteUrl} from '../../_metronic/helpers'\n\nconst MenuTestPage: FC = () => {\n return (\n
\n
\n
\n
\n \n \n
\n \n Dashboard\n \n
\n \n \n Pages\n \n \n \n \n \n \n \n \n \n \n Profile\n \n \n \n
\n \n \n \n \n Overview\n \n
\n
\n \n \n \n \n Projects\n \n
\n
\n \n \n \n \n Campaigns\n \n
\n \n \n \n \n \n \n \n Profile -\n \n \n
\n
\n \n \n \n \n Overview\n \n
\n
\n \n \n \n \n Projects\n \n
\n
\n \n \n \n \n Campaigns\n \n
\n
\n \n \n \n \n Documents\n \n
\n
\n \n \n \n \n Followers\n \n
\n
\n \n \n \n \n Activity\n \n
\n
\n \n \n \n \n Dashboard\n \n
\n
\n
\n
\n \n \n \n \n Documents\n \n
\n
\n \n \n \n \n Followers\n \n
\n \n \n \n \n \n \n \n Profile -\n \n \n
\n
\n \n \n \n \n Overview\n \n
\n
\n \n \n \n \n Projects\n \n
\n
\n \n \n \n \n Campaigns\n \n
\n
\n \n \n \n \n Documents\n \n
\n
\n \n \n \n \n Followers\n \n
\n
\n \n \n \n \n Activity\n \n
\n
\n \n \n \n \n Dashboard\n \n
\n
\n
\n
\n \n \n \n \n Activity\n \n
\n
\n \n \n \n \n Dashboard\n \n
\n
\n
\n \n \n \n \n \n \n \n Projects\n \n \n
\n
\n \n \n \n \n Overview\n \n
\n
\n \n \n \n \n Lists\n \n
\n
\n \n \n \n \n Activity\n \n
\n
\n \n \n \n \n Files\n \n
\n
\n \n \n \n \n Users\n \n
\n
\n \n \n \n \n Targets\n \n
\n
\n \n
\n \n \n \n \n \n \n Wizards\n \n \n
\n
\n \n \n \n \n Wizard Vertical\n \n
\n
\n \n \n \n \n Wizard Horizontal\n \n
\n
\n
\n
\n \n \n \n \n \n \n Search\n \n \n
\n
\n \n \n \n \n Search Horizontal\n \n
\n
\n \n \n \n \n Search Vertical\n \n
\n
\n
\n \n \n \n \n Resources\n \n \n \n
\n \n \n \n \n \n \n Documentation\n \n
\n
\n \n \n \n \n \n \n Layout Builder\n \n
\n
\n \n \n \n \n \n \n Changelog\n \n
\n \n \n \n \n Mega Menu\n \n \n \n
\n \n \n
\n It is a long established fact that a reader will be distracted by the\n readable content of a page when looking at its layout. The point of using\n Lorem Ipsum is that it has a more-or-less normal distribution of letters, as\n opposed to using 'Content here, content here', making it look like readable\n English.\n
\n
\n \n \n \n \n \n\n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n \n \n {}}\n />\n \n \n \n \n \n \n \n \n
\n
\n\n
Suggestions
\n
\n Sorry, no results found\n
\n \n \n \n
\n \n
\n \n \n \n \n \n \n Dashboard\n \n
\n
\n
\n Custom\n
\n
\n
\n \n \n \n \n \n \n Pages\n \n \n
\n \n \n \n \n \n Profile\n \n \n
\n
\n \n \n \n \n Overview\n \n
\n
\n \n \n \n \n Projects\n \n
\n
\n \n \n \n \n Campaigns\n \n
\n
\n \n \n \n \n Documents\n \n
\n
\n \n \n \n \n Followers\n \n
\n
\n \n \n \n \n Activity\n \n
\n
\n \n \n \n \n Dashboard\n \n
\n
\n
\n
\n \n \n \n \n Projects\n \n \n
\n
\n \n \n \n \n Overview\n \n
\n
\n \n \n \n \n Lists\n \n
\n
\n \n \n \n \n Activity\n \n
\n
\n \n \n \n \n Files\n \n
\n
\n \n \n \n \n Users\n \n
\n
\n \n \n \n \n Targets\n \n
\n
\n
\n
\n \n \n \n \n Wizards\n \n \n
\n
\n \n \n \n \n Wizard Vertical\n \n
\n
\n \n \n \n \n Wizard Horizontal\n \n
\n
\n
\n
\n \n \n \n \n Search\n \n \n
\n
\n \n \n \n \n Search Horizontal\n \n
\n
\n \n \n \n \n Search Vertical\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n Documentation\n \n
\n
\n \n \n \n \n {' '}\n \n Layout Builder\n \n
\n
\n \n \n \n \n \n \n Changelog\n \n
\n \n \n \n \n \n )\n}\n\nexport {MenuTestPage}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, {FC} from 'react'\nimport {useIntl} from 'react-intl'\nimport {PageTitle} from '../../../_metronic/layout/core'\nimport {\n MixedWidget2,\n MixedWidget10,\n MixedWidget11,\n ListsWidget2,\n ListsWidget3,\n ListsWidget4,\n ListsWidget5,\n ListsWidget6,\n TablesWidget5,\n TablesWidget10,\n MixedWidget8,\n} from '../../../_metronic/partials/widgets'\n\n\nconst ItemPage: FC = () => (\n \n <>\n {/* begin::Row */}\n {/*
\n
\n \n
\n
\n \n
\n
\n \n \n
\n
*/}\n {/* end::Row */}\n\n {/* begin::Row */}\n {/*
\n
\n \n
\n
\n \n
\n
*/}\n {/* end::Row */}\n\n {/* begin::Row */}\n {/*
\n
\n \n
\n
\n \n
\n
\n \n
\n
*/}\n {/* end::Row */}\n\n {/*
\n
\n \n
\n
\n \n
\n
*/}\n \n)\n\n\n\nconst ItemWrapper: FC = () => {\n const intl = useIntl();\n\n return (\n <>\n {intl.formatMessage({id: 'MENU.ITEM'})}\n \n \n )\n}\n\nexport {ItemWrapper}\n","import React, {useEffect, useState} from 'react'\nimport {useIntl} from 'react-intl'\n\nimport {IDebitWallet} from '../../models/debit-wallet'\n\ninterface IProps {\n debitData: IDebitWallet | undefined\n}\n\nconst NppDetail: React.FC = ({debitData}) => {\n const intl = useIntl()\n const [bpayDetails, setBpayDetails] = useState({biller_code: '', reference: ''})\n\n useEffect(() => {\n if (debitData?.walletBpayResponse) {\n setBpayDetails({\n biller_code: debitData?.walletBpayResponse.biller_code,\n reference: debitData?.walletBpayResponse.reference,\n })\n }\n }, [debitData?.walletBpayResponse])\n\n return (\n \n

{intl.formatMessage({id: 'ECOMMERCE.FIELD.BPAYINFORMATION'})}

\n {!debitData?.walletBpayResponse ? (\n
\n \n
\n ) : (\n
\n
\n

{intl.formatMessage({id: 'ECOMMERCE.FIELD.BILLERCODE'})}

\n
\n
{bpayDetails.biller_code}
\n
\n

{intl.formatMessage({id: 'ECOMMERCE.FIELD.REFERENCE'})}

\n
\n
{bpayDetails.reference}
\n
\n )}\n
\n )\n}\nexport {NppDetail}\n","import axios from 'axios'\n\nexport const CLIENT_URL = `${process.env.REACT_APP_API_URL}/Client`\n\nexport const getClientBPayByEmail = async (email: string) => {\n try {\n const {data} = await axios.get(\n `${CLIENT_URL}/getClientBPayByEmail?email=${email}`\n )\n return [data, null]\n } catch (error) {\n return [null, error]\n }\n}\n","import {Grid, GridColumn as Column, GridCellProps} from '@progress/kendo-react-grid'\n\nimport {useIntl} from 'react-intl'\n\nimport {AmountFormatCell} from '../../../../shared/components/kendo/format/AmountFormatCell'\nimport {UppercaseFirstLetter} from '../../../../shared/components/kendo/format/UppercaseFirstLetter'\nimport {KendoI18Provider} from '../../../../../_metronic/i18n/kendoI18Provider'\nimport {DateFormatCell} from '../../../../shared/components/kendo/format/DateFormatCell'\nimport {IDebitWallet} from '../../models/debit-wallet'\n\ninterface IProps {\n debitData: IDebitWallet | undefined\n}\n\nconst OrderList: React.FC = ({debitData}) => {\n const intl = useIntl()\n\n const amountFormatCell = (dataProps: GridCellProps) => (\n \n )\n\n return (\n \n

{intl.formatMessage({id: 'ECOMMERCE.FIELD.RECENTORDER'})}

\n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default OrderList\n","import { FC, Fragment, useEffect, useState } from 'react'\nimport { shallowEqual, useSelector } from 'react-redux'\n\nimport { NppDetail } from './BPayDetail'\nimport { UserModel } from '../../../auth/models/UserModel'\nimport { RootState } from '../../../../../setup'\nimport { CustomAlert, IAlert } from '../../../../shared/components/CustomAlert'\nimport { getErrorMessage } from '../../../../shared/service/utils'\nimport { getClientBPayByEmail } from '../../api'\nimport { IDebitWallet } from '../../models/debit-wallet'\nimport OrderList from './OrderList'\n\nconst loadingPanel = (\n
\n Loading\n
\n
\n
\n)\n\nconst Form: FC = () => {\n const [debitData, setDebitData] = useState(undefined)\n const [isLoading, setIsLoading] = useState(false)\n const [formNotification, setformNotification] = useState()\n\n const user: UserModel = useSelector(({ auth }) => auth.user, shallowEqual) as UserModel\n\n useEffect(() => {\n fetchData()\n }, [user])\n\n const fetchData = async () => {\n setIsLoading(true)\n\n const [data, error] = await getClientBPayByEmail(user.email)\n if (data) {\n setDebitData(data)\n\n if (data?.errorMessages?.length > 0) {\n setformNotification({\n message: data.errorMessages.join(', '),\n header: `Error Information`,\n type: 'danger',\n })\n }\n } else {\n if (error) {\n const errorMessage = getErrorMessage(error)\n setformNotification({\n message: errorMessage,\n header: `Error BPay Information`,\n type: 'danger',\n })\n }\n }\n\n setIsLoading(false)\n }\n\n return (\n \n {isLoading && loadingPanel}\n {formNotification && (\n setformNotification(undefined)} />\n )}\n {debitData !== null && (\n \n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n )}\n
\n )\n}\nexport { Form }\n","import {FC} from 'react'\n\nimport {Form} from './partials/Form'\n\nconst MasterWalletWrapper: FC = () => {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport default MasterWalletWrapper\n","import {IAlert} from '../../../shared/components/CustomAlert'\n\nexport const TOASTER_DEFAULT: IAlert = {\n message: ``,\n header: ``,\n type: 'success',\n}\n","import React, {useMemo, useState} from 'react'\nimport {IAlert} from '../../../shared/components/CustomAlert'\nimport {TOASTER_DEFAULT} from '../constant/default'\n\ninterface IProps {\n contextToaster: IAlert\n setContextToaster: (alert: IAlert) => void\n}\n\nexport const Context = React.createContext({\n contextToaster: TOASTER_DEFAULT,\n setContextToaster: (data: IAlert) => {},\n})\n\nexport const ContextProvider: React.FC = ({children}) => {\n const [contextToaster, setContextToaster] = useState(TOASTER_DEFAULT)\n\n const value: IProps = useMemo(() => {\n return {\n contextToaster,\n setContextToaster,\n }\n }, [contextToaster, setContextToaster])\n\n return {children}\n}\n","import {FC, Fragment} from 'react'\nimport {useIntl} from 'react-intl'\n\nimport Wrapper from './components/Wrapper'\nimport {ContextProvider} from './context'\nimport {UserModel} from '../auth/models/UserModel'\nimport {RootState} from '../../../setup'\nimport {shallowEqual, useSelector} from 'react-redux'\nimport {toAbsoluteUrl} from '../../../_metronic/helpers'\n\nconst Page: FC = () => {\n const intl = useIntl()\n const user: UserModel = useSelector(({auth}) => auth.user, shallowEqual) as UserModel\n\n return (\n \n
\n \n
\n

\n All queries about payments should be directed to{' '}\n \n \n ricardoreadingmouse@teachers.org\n \n \n

\n

\n If you have any questions or wish to amend your payment with Hosanna (HOSANNA TRIUMPHANT\n SHOUT CHILDREN PTY LTD - ABN 36 618 922 580), please contact us via email\n \n \n ricardoreadingmouse@teachers.org\n \n \n

\n
\n
\n

\n {intl.formatMessage({id: 'ECOMMERCE.FIELD.WELCOME'})}{' '}\n {user.firstName}{' '}\n {user.lastName}!\n

\n

{user.email}

\n \n \n \n
\n )\n}\n\nexport default Page\n","import {IAlert} from '../../../shared/components/CustomAlert'\nimport {IClientBankData, IClients, IClientsData, IGridSetup} from '../models/client'\nimport { PAYINS_FIELD_DEFAULT } from './config-default'\n\nexport const CLIENT_FORM_DEFAULT: IClients = {\n color_2: '',\n created_at: '',\n custom_descriptor: '',\n drivers_license: '',\n email: '',\n first_name: '',\n full_name: '',\n government_number: '',\n id: '',\n last_name: '',\n location: '',\n mobile: '',\n updated_at: '',\n addressLine1: '',\n addressLine2: '',\n dateOfBirth: null,\n suburb: '',\n state: '',\n postCode: '',\n country: 'AUS',\n lastName: '',\n firstName: '',\n debitAmount: 0,\n paymentCycle: 0\n}\n\nexport const CLIENT_DATA_FORM_DEFAULT: IClientsData = {\n id: '',\n clientType: 1,\n firstName: '',\n lastName: '',\n englishName: '',\n sex: 'Male',\n occupation: '',\n dateOfBirth: null,\n mobile: 0,\n email: '',\n addressLine1: '',\n addressLine2: '',\n suburb: '',\n state: '',\n postCode: '',\n country: 'AUS',\n identity: 1,\n issuedBy: '',\n issuedDate: null,\n identityNumber: '',\n created: null,\n expiryDate: null,\n holderName: '',\n bankName: '',\n bsb1: '',\n bsb2: '',\n bankAccountNumber: '',\n bankAccountName: '',\n bankBranch: '',\n bankDescription: '',\n status: 1,\n businessDevelopmentManager: '',\n remarks: '',\n companyName: '',\n abnacn: '',\n walletBalance: 0,\n debitInformation: '',\n debitAmount: 0,\n paymentCycle: 0,\n paymentCycleDayOfMonth: 0,\n paymentCycleDayOfWeek: 0,\n paymentCycleStartDate: null,\n paymentCycleStartDateUtc: null,\n paymentCycleEndDate: null,\n paymentCycleOccurrence: 0,\n paymentCycleDescription: '',\n banks: [],\n isUploadFileFeatureEnabled: false,\n isPlentyPayHideFeatureEnabled: false,\n isClientDataFeatureEnabled: false,\n isIdentityDataFeatureEnabled: false,\n isHideBDMDropdownFeatureEnabled: false,\n isDirectDebitFormFeatureEnabled: false,\n isClientTypeSelectionFeatureEnabled: false,\n isMultiplePOCFeatureEnabled: false,\n passportCountry: 'AUS'\n}\n\nexport const BANKDATA_DEFAULT: IClientBankData = {\n id: 0,\n bankName: '',\n bankAccountName: '',\n bankAccountNumber: '',\n bankBranch: '',\n bankDescription: '',\n bsb1: '',\n bsb2: '',\n isAllowedNoBankFeatureEnable: false\n}\n\nexport const TOASTER_DEFAULT: IAlert = {\n message: ``,\n header: ``,\n type: 'success',\n}\n\n\nexport const Initial_GridSetup: IGridSetup = {\n sort: [{ field: PAYINS_FIELD_DEFAULT.field, dir: 'desc' }],\n skip: 0,\n take: 10,\n filter: {\n logic: \"and\",\n filters: [],\n }\n}","import { FC } from 'react'\nimport { ErrorMessage } from '@hookform/error-message'\nimport { blockNonNumericChars } from '../../../../shared/service/utils'\n\ninterface IProps {\n register: any\n control: any\n setValue: any\n intl: any\n errors: any\n}\n\nconst PersonalData: FC = ({\n register,\n control,\n setValue,\n intl,\n errors,\n}) => {\n return (\n
\n
\n
\n \n \n } />\n
\n
\n \n \n } />\n
\n
\n\n
\n
\n \n *\n \n } />\n
\n
\n \n *\n \n } />\n
\n
\n
\n )\n}\n\nexport default PersonalData\n","import {Country} from '../models/client'\n\nexport const countriesData: Country[] = [\n {text: 'Afghanistan', id: 'AFG'},\n {text: 'Albania', id: 'ALB'},\n {text: 'Algeria', id: 'DZA'},\n {text: 'Andorra', id: 'AND'},\n {text: 'Angola', id: 'AGO'},\n {text: 'Antigua and Barbuda', id: 'ATG'},\n {text: 'Argentina', id: 'ARG'},\n {text: 'Armenia', id: 'ARM'},\n {text: 'Australia', id: 'AUS'},\n {text: 'Austria', id: 'AUT'},\n {text: 'Azerbaijan', id: 'AZE'},\n {text: 'Bahamas', id: 'BHS'},\n {text: 'Bahrain', id: 'BHR'},\n {text: 'Bangladesh', id: 'BGD'},\n {text: 'Barbados', id: 'BRB'},\n {text: 'Belarus', id: 'BLR'},\n {text: 'Belgium', id: 'BEL'},\n {text: 'Belize', id: 'BLZ'},\n {text: 'Benin', id: 'BEN'},\n {text: 'Bhutan', id: 'BTN'},\n {text: 'Bolivia (Plurinational State of)', id: 'BOL'},\n {text: 'Bosnia and Herzegovina', id: 'BIH'},\n {text: 'Botswana', id: 'BWA'},\n {text: 'Brazil', id: 'BRA'},\n {text: 'Brunei Darussalam', id: 'BRN'},\n {text: 'Bulgaria', id: 'BGR'},\n {text: 'Burkina Faso', id: 'BFA'},\n {text: 'Burundi', id: 'BDI'},\n {text: 'Cabo Verde', id: 'CPV'},\n {text: 'Cambodia', id: 'KHM'},\n {text: 'Cameroon', id: 'CMR'},\n {text: 'Canada', id: 'CAN'},\n {text: 'Central African Republic', id: 'CAF'},\n {text: 'Chad', id: 'TCD'},\n {text: 'Chile', id: 'CHL'},\n {text: 'China', id: 'CHN'},\n {text: 'Colombia', id: 'COL'},\n {text: 'Comoros', id: 'COM'},\n {text: 'Congo', id: 'COG'},\n {text: 'Costa Rica', id: 'CRI'},\n {text: \"Côte d'Ivoire\", id: 'CIV'},\n {text: 'Croatia', id: 'HRV'},\n {text: 'Cuba', id: 'CUB'},\n {text: 'Cyprus', id: 'CYP'},\n {text: 'Czechia', id: 'CZE'},\n {text: \"Democratic People's Republic of Korea\", id: 'PRK'},\n {text: 'Democratic Republic of the Congo', id: 'COD'},\n {text: 'Denmark', id: 'DNK'},\n {text: 'Djibouti', id: 'DJI'},\n {text: 'Dominica', id: 'DMA'},\n {text: 'Dominican Republic', id: 'DOM'},\n {text: 'Ecuador', id: 'ECU'},\n {text: 'Egypt', id: 'EGY'},\n {text: 'El Salvador', id: 'SLV'},\n {text: 'Equatorial Guinea', id: 'GNQ'},\n {text: 'Eritrea', id: 'ERI'},\n {text: 'Estonia', id: 'EST'},\n {text: 'Eswatini', id: 'SWZ'},\n {text: 'Ethiopia', id: 'ETH'},\n {text: 'Fiji', id: 'FJI'},\n {text: 'Finland', id: 'FIN'},\n {text: 'France', id: 'FRA'},\n {text: 'Gabon', id: 'GAB'},\n {text: 'Gambia', id: 'GMB'},\n {text: 'Georgia', id: 'GEO'},\n {text: 'Germany', id: 'DEU'},\n {text: 'Ghana', id: 'GHA'},\n {text: 'Greece', id: 'GRC'},\n {text: 'Grenada', id: 'GRD'},\n {text: 'Guatemala', id: 'GTM'},\n {text: 'Guinea', id: 'GIN'},\n {text: 'Guinea-Bissau', id: 'GNB'},\n {text: 'Guyana', id: 'GUY'},\n {text: 'Haiti', id: 'HTI'},\n {text: 'Honduras', id: 'HND'},\n {text: 'Hungary', id: 'HUN'},\n {text: 'Iceland', id: 'ISL'},\n {text: 'India', id: 'IND'},\n {text: 'Indonesia', id: 'IDN'},\n {text: 'Iran (Islamic Republic of)', id: 'IRN'},\n {text: 'Iraq', id: 'IRQ'},\n {text: 'Ireland', id: 'IRL'},\n {text: 'Israel', id: 'ISR'},\n {text: 'Italy', id: 'ITA'},\n {text: 'Jamaica', id: 'JAM'},\n {text: 'Japan', id: 'JPN'},\n {text: 'Jordan', id: 'JOR'},\n {text: 'Kazakhstan', id: 'KAZ'},\n {text: 'Kenya', id: 'KEN'},\n {text: 'Kiribati', id: 'KIR'},\n {text: 'Kuwait', id: 'KWT'},\n {text: 'Kyrgyzstan', id: 'KGZ'},\n {text: \"Lao People's Democratic Republic\", id: 'LAO'},\n {text: 'Latvia', id: 'LVA'},\n {text: 'Lebanon', id: 'LBN'},\n {text: 'Lesotho', id: 'LSO'},\n {text: 'Liberia', id: 'LBR'},\n {text: 'Libya', id: 'LBY'},\n {text: 'Liechtenstein', id: 'LIE'},\n {text: 'Lithuania', id: 'LTU'},\n {text: 'Luxembourg', id: 'LUX'},\n {text: 'Madagascar', id: 'MDG'},\n {text: 'Malawi', id: 'MWI'},\n {text: 'Malaysia', id: 'MYS'},\n {text: 'Maldives', id: 'MDV'},\n {text: 'Mali', id: 'MLI'},\n {text: 'Malta', id: 'MLT'},\n {text: 'Marshall Islands', id: 'MHL'},\n {text: 'Mauritania', id: 'MRT'},\n {text: 'Mauritius', id: 'MUS'},\n {text: 'Mexico', id: 'MEX'},\n {text: 'Micronesia (Federated States of)', id: 'FSM'},\n {text: 'Monaco', id: 'MCO'},\n {text: 'Mongolia', id: 'MNG'},\n {text: 'Montenegro', id: 'MNE'},\n {text: 'Morocco', id: 'MAR'},\n {text: 'Mozambique', id: 'MOZ'},\n {text: 'Myanmar', id: 'MMR'},\n {text: 'Namibia', id: 'NAM'},\n {text: 'Nauru', id: 'NRU'},\n {text: 'Nepal', id: 'NPL'},\n {text: 'Netherlands', id: 'NLD'},\n {text: 'New Zealand', id: 'NZL'},\n {text: 'Nicaragua', id: 'NIC'},\n {text: 'Niger', id: 'NER'},\n {text: 'Nigeria', id: 'NGA'},\n {text: 'North Macedonia', id: 'MKD'},\n {text: 'Norway', id: 'NOR'},\n {text: 'Oman', id: 'OMN'},\n {text: 'Pakistan', id: 'PAK'},\n {text: 'Palau', id: 'PLW'},\n {text: 'Panama', id: 'PAN'},\n {text: 'Papua New Guinea', id: 'PNG'},\n {text: 'Paraguay', id: 'PRY'},\n {text: 'Peru', id: 'PER'},\n {text: 'Philippines', id: 'PHL'},\n {text: 'Poland', id: 'POL'},\n {text: 'Portugal', id: 'PRT'},\n {text: 'Qatar', id: 'QAT'},\n {text: 'Republic of Korea', id: 'KOR'},\n {text: 'Republic of Moldova', id: 'MDA'},\n {text: 'Romania', id: 'ROU'},\n {text: 'Russian Federation', id: 'RUS'},\n {text: 'Rwanda', id: 'RWA'},\n {text: 'Saint Kitts and Nevis', id: 'KNA'},\n {text: 'Saint Lucia', id: 'LCA'},\n {text: 'Saint Vincent and the Grenadines', id: 'VCT'},\n {text: 'Samoa', id: 'WSM'},\n {text: 'San Marino', id: 'SMR'},\n {text: 'Sao Tome and Principe', id: 'STP'},\n {text: 'Saudi Arabia', id: 'SAU'},\n {text: 'Senegal', id: 'SEN'},\n {text: 'Serbia', id: 'SRB'},\n {text: 'Seychelles', id: 'SYC'},\n {text: 'Sierra Leone', id: 'SLE'},\n {text: 'Singapore', id: 'SGP'},\n {text: 'Slovakia', id: 'SVK'},\n {text: 'Slovenia', id: 'SVN'},\n {text: 'Solomon Islands', id: 'SLB'},\n {text: 'Somalia', id: 'SOM'},\n {text: 'South Africa', id: 'ZAF'},\n {text: 'South Sudan', id: 'SSD'},\n {text: 'Spain', id: 'ESP'},\n {text: 'Sri Lanka', id: 'LKA'},\n {text: 'Sudan', id: 'SDN'},\n {text: 'Suriname', id: 'SUR'},\n {text: 'Sweden', id: 'SWE'},\n {text: 'Switzerland', id: 'CHE'},\n {text: 'Syrian Arab Republic', id: 'SYR'},\n {text: 'Tajikistan', id: 'TJK'},\n {text: 'Thailand', id: 'THA'},\n {text: 'Timor-Leste', id: 'TLS'},\n {text: 'Togo', id: 'TGO'},\n {text: 'Tonga', id: 'TON'},\n {text: 'Trinidad and Tobago', id: 'TTO'},\n {text: 'Tunisia', id: 'TUN'},\n {text: 'Turkey', id: 'TUR'},\n {text: 'Turkmenistan', id: 'TKM'},\n {text: 'Tuvalu', id: 'TUV'},\n {text: 'Uganda', id: 'UGA'},\n {text: 'Ukraine', id: 'UKR'},\n {text: 'United Arab Emirates', id: 'ARE'},\n {text: 'United Kingdom of Great Britain and Northern Ireland', id: 'GBR'},\n {text: 'United Republic of Tanzania', id: 'TZA'},\n {text: 'United States of America', id: 'USA'},\n {text: 'Uruguay', id: 'URY'},\n {text: 'Uzbekistan', id: 'UZB'},\n {text: 'Vanuatu', id: 'VUT'},\n {text: 'Venezuela (Bolivarian Republic of)', id: 'VEN'},\n {text: 'Viet Nam', id: 'VNM'},\n {text: 'Yemen', id: 'YEM'},\n {text: 'Zambia', id: 'ZMB'},\n {text: 'Zimbabwe', id: 'ZWE'},\n // Add more countries as needed\n]\n","import {DropDownList} from '@progress/kendo-react-dropdowns'\n\nimport {FC} from 'react'\nimport {Controller} from 'react-hook-form'\nimport {ErrorMessage} from '@hookform/error-message'\nimport { countriesData } from '../../../client/constant/countries'\n\ninterface IProps {\n register: any\n control: any\n setValue: any\n intl: any\n errors: any\n}\n\nconst PersonalCommonData: FC = ({\n register,\n control,\n setValue,\n intl,\n errors,\n}) => {\n // Based on the alternative code structure, hard-coded with several conditional renderings.\n return (\n
\n
\n
\n \n *\n \n } />\n
\n
\n \n \n
\n
\n
\n
\n \n \n } />\n
\n
\n \n \n } />\n
\n
\n \n \n } />\n
\n
\n
\n
\n \n {\n return (\n {\n onChange(e.value.id)\n }}\n defaultValue={countriesData.find((x) => x.id === value)}\n style={{width: '100%'}}\n />\n )\n }}\n />\n } />\n
\n
\n
\n )\n}\n\nexport default PersonalCommonData\n","import {\n ComboBox,\n ComboBoxFilterChangeEvent,\n ComboBoxPageChangeEvent,\n} from '@progress/kendo-react-dropdowns'\n\nimport { useCallback, useEffect, useState, useRef, FC } from 'react'\nimport { Controller, useFieldArray } from 'react-hook-form'\n\nimport { useFeatureFlags } from '../../../../context/FeatureFlags'\nimport { Item } from '../../../client/models/item'\nimport { getBankList } from '../../../client/api/ClientApi'\nimport { transformedBankDataList } from '../../../client/transformer/client-transform'\nimport { IClientBankData } from '../../../client/models/client'\nimport { blockNonNumericChars } from '../../../../shared/service/utils'\n\ninterface IProps {\n register: any\n control: any\n setValue: any\n intl: any\n errors: any\n}\n\nconst BankDetailsSection: FC = ({\n register,\n control,\n setValue,\n intl,\n errors,\n}) => {\n const { features } = useFeatureFlags()\n\n const [bankListData, setBankListData] = useState([])\n const [bankFilter, setBankFilter] = useState('')\n const [bankTotal, setBankTotal] = useState(0)\n const { fields, append, remove } = useFieldArray({ name: 'banks', control })\n\n const textField = 'name'\n const bankPageSize = 50\n const bankSkipRef = useRef(0)\n const emptyBankItem: Item = { [textField]: 'loading ...', id: 0 }\n const requestStarted = useRef(false)\n const pendingRequest = useRef()\n const dataCaching = useRef([])\n const loadingData: Item[] = []\n while (loadingData.length < bankPageSize) {\n loadingData.push({ ...emptyBankItem })\n }\n const [isMultipleBankAccountsFeatureEnabled, setIsMultipleBankAccountsFeatureEnabled] =\n useState(false)\n const [isAllowedNoBankFeatureEnable, setisAllowedNoBankFeatureEnable] =\n useState(false)\n\n useEffect(() => {\n if (features.some((feature) => feature.name === 'MultipleBankAccountsFeature')) {\n setIsMultipleBankAccountsFeatureEnabled(true)\n }\n if (features.some((feature) => feature.name === 'AllowedNonBankFeatureEnable')) {\n setisAllowedNoBankFeatureEnable(true)\n }\n }, [features])\n\n useEffect(() => {\n requestData(0, bankFilter)\n return () => {\n resetCach()\n }\n }, [bankFilter])\n\n useEffect(() => {\n if (fields.length === 0) {\n addBankDetail()\n }\n }, [fields])\n\n const requestData = useCallback((skip: number, filter: string) => {\n if (requestStarted.current) {\n clearTimeout(pendingRequest.current)\n pendingRequest.current = setTimeout(() => {\n requestData(skip, filter)\n }, 50)\n return\n }\n\n fetchDropdownDataBank(bankPageSize, skip, filter)\n }, [])\n\n const onFilterChange = useCallback((event: ComboBoxFilterChangeEvent) => {\n const filter = event.filter.value\n resetCach()\n requestData(0, filter)\n setBankListData(loadingData)\n bankSkipRef.current = 0\n setBankFilter(filter)\n }, [])\n\n const shouldRequestData = useCallback((skip) => {\n for (let i = 0; i < bankPageSize; i++) {\n if (!dataCaching.current[skip + i]) {\n return true\n }\n }\n return false\n }, [])\n\n const getCachedData = useCallback((skip) => {\n const data: Array = []\n for (let i = 0; i < bankPageSize; i++) {\n data.push(dataCaching.current[i + skip] || { ...emptyBankItem })\n }\n return data\n }, [])\n\n const pageChange = useCallback(\n (event: ComboBoxPageChangeEvent) => {\n if (event.page.skip) {\n const newSkip = event.page.skip || 0\n\n if (shouldRequestData(newSkip)) {\n requestData(newSkip, bankFilter)\n }\n\n const data = getCachedData(newSkip)\n\n setBankListData(data)\n bankSkipRef.current = newSkip\n }\n },\n [getCachedData, requestData, shouldRequestData, bankFilter]\n )\n\n const fetchDropdownDataBank = async (take: any, skip: any, search: any) => {\n const dataFromApi = await getBankList(take, skip, search) // Replace 'getBankList()' with your API call\n const transFormBankData = transformedBankDataList(dataFromApi)\n transFormBankData.forEach((element: any, index: any) => {\n dataCaching.current[index + skip] = element\n })\n\n if (skip === bankSkipRef.current) {\n setBankListData(transFormBankData)\n setBankTotal(bankTotal)\n }\n requestStarted.current = false\n setBankListData(transFormBankData)\n }\n\n const resetCach = () => {\n dataCaching.current.length = 0\n }\n\n const getResourceBankData = (value: any) => {\n return bankListData.find((resource) => resource.name === value)\n }\n\n const addBankDetail = () => {\n const newField: IClientBankData = {\n id: 0,\n bankName: '',\n bsb1: '',\n bsb2: '',\n bankAccountNumber: '',\n bankAccountName: '',\n bankBranch: '',\n bankDescription: '',\n isAllowedNoBankFeatureEnable: isAllowedNoBankFeatureEnable\n }\n append(newField)\n }\n\n return (\n
\n \n {fields.map((field, index) => (\n
\n
\n
\n \n \n\n (\n {\n const selectedItem = event.target.value\n\n if (selectedItem) {\n const value = selectedItem\n ? event.target.value.name + '||' + event.target.value.id\n : 'undefined'\n if (typeof event.target.value === 'object') {\n // Code block to handle the case when event.target.value is an object\n onChange(event.target.value.text)\n } else if (typeof event.target.value === 'string') {\n // Code block to handle the case when event.target.value is a string\n onChange(selectedItem)\n } else {\n // Code block for other data types (e.g., numbers, arrays, etc.)\n onChange(value)\n }\n } else {\n onChange('')\n }\n }}\n onPageChange={pageChange}\n />\n )}\n rules={{ required: 'Resource is required' }}\n />\n {errors.banks && errors.banks[index] && errors.banks[index].bankName && (\n \n {errors.banks[index].bankName.message}\n \n )}\n\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n \n
\n {errors.banks && errors.banks[index] && errors.banks[index].bsb1 && (\n {errors.banks[index].bsb1.message}\n )}\n {errors.banks && errors.banks[index] && errors.banks[index].bsb2 && (\n {errors.banks[index].bsb2.message}\n )}\n
\n
\n
\n
\n
\n \n \n {errors.banks && errors.banks[index] && errors.banks[index].bankAccountNumber && (\n \n {errors.banks[index].bankAccountNumber.message}\n \n )}\n
\n
\n \n \n {errors.banks && errors.banks[index] && errors.banks[index].bankAccountName && (\n \n {errors.banks[index].bankAccountName.message}\n \n )}\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n ))}\n
\n )\n}\n\nexport default BankDetailsSection\n","import { ChangeEvent, FC, useEffect, useState } from 'react'\nimport { Controller } from 'react-hook-form'\nimport { DatePicker } from '@progress/kendo-react-dateinputs'\nimport { ErrorMessage } from '@hookform/error-message'\nimport { NumericTextBox } from '@progress/kendo-react-inputs'\n\ninterface IProps {\n register: any\n control: any\n setValue: any\n intl: any\n watch: any\n errors: any\n}\n\nconst DirectDebit: FC = ({\n register,\n control,\n setValue,\n intl,\n watch,\n errors,\n}) => {\n // Based on the alternative code structure, hard-coded with several conditional renderings.\n return (\n
\n \n
\n
\n \n
\n
\n
\n
\n \n {\n return (\n \n )\n }}\n />\n }\n />\n
\n
\n
\n )\n}\n\nexport default DirectDebit\n","import {PaymentCycle, Week} from '../models/client'\n\nexport const weekData: Week[] = [\n {text: 'Sunday', id: 'SUN'},\n {text: 'Monday', id: 'MON'},\n {text: 'Tuesday', id: 'TUE'},\n {text: 'Wednesday', id: 'WED'},\n {text: 'Thursday', id: 'THU'},\n {text: 'Friday', id: 'FRI'},\n {text: 'Saturday', id: 'SAT'},\n]\n\nexport const paymentCycleOptions: PaymentCycle[] = [\n {value: '0', label: 'Select'},\n {value: '1', label: 'One Time'},\n {value: '2', label: 'Weekly'},\n {value: '3', label: 'Fortnite'},\n {value: '4', label: 'Monthly'},\n]\n","import {\n Calendar,\n CalendarCell,\n CalendarCellProps,\n CalendarProps,\n} from '@progress/kendo-react-dateinputs'\n\nimport React from 'react'\n\nimport { PaymentCycleType } from '../../../client/constant/config-default'\n\ninterface CustomCalendarProps extends CalendarProps {\n selectedPaymentCycleType: number\n paymentCycleStartDate: Date\n}\n\nconst CustomCalendar: React.FC = ({\n selectedPaymentCycleType,\n paymentCycleStartDate,\n ...props\n}) => {\n const customCell = (cellProps: CalendarCellProps) => {\n const style: React.CSSProperties = {}\n const startDate = new Date(paymentCycleStartDate)\n\n const paymentCycleDayOfWeek = startDate.getDay()\n // Check if the date is on the specified day of the week\n const dayOfWeek = cellProps.value.getDay()\n\n if (parseInt(selectedPaymentCycleType.toString()) === PaymentCycleType.Weekly) {\n if (dayOfWeek === paymentCycleDayOfWeek && cellProps.value > startDate) {\n style.fontWeight = 'bold'\n style.color = 'red' // Emphasize by changing text color\n return \n }\n } else if (parseInt(selectedPaymentCycleType.toString()) === PaymentCycleType.Fortnite) {\n // Calculate the difference in days between the current date and startDate\n const timeDifference = cellProps.value.getTime() - startDate.getTime()\n const daysDifference = Math.floor(timeDifference / (1000 * 60 * 60 * 24))\n\n // Check if the days difference is a multiple of 14 (per 2 weeks) and the date is greater than startDate\n if (daysDifference >= 0 && daysDifference % 14 === 0 && cellProps.value > startDate) {\n style.fontWeight = 'bold'\n style.color = 'red' // Emphasize by changing text color\n return \n }\n } else if (parseInt(selectedPaymentCycleType.toString()) === PaymentCycleType.Monthly) {\n const currentDate = cellProps.value\n const dayOfMonth = startDate.getDate()\n\n // Calculate the difference in months\n const monthsDifference =\n (currentDate.getFullYear() - startDate.getFullYear()) * 12 +\n currentDate.getMonth() -\n startDate.getMonth()\n\n // Check if it's the same day of the month as startDate\n if (\n monthsDifference >= 0 &&\n monthsDifference % 1 === 0 &&\n currentDate.getDate() === dayOfMonth\n ) {\n style.fontWeight = 'bold'\n style.color = 'red' // Emphasize by changing text color\n return \n }\n }\n return \n }\n\n return \n}\n\nexport default CustomCalendar\n","import { ChangeEvent, FC, useEffect, useState } from 'react'\nimport { Controller } from 'react-hook-form'\nimport { DatePicker } from '@progress/kendo-react-dateinputs'\nimport { ErrorMessage } from '@hookform/error-message'\nimport moment from 'moment'\n\nimport { paymentCycleOptions } from '../../../client/constant/date'\nimport CustomCalendar from './CustomCalendar'\nimport { IClientsData } from '../../../client/models/client'\nimport { PaymentCycleType } from '../../../client/constant/config-default'\n\ninterface IProps {\n clientData: IClientsData | undefined\n register: any\n control: any\n setValue: any\n intl: any\n watch: any\n errors: any\n}\n\nconst PaymentTerm: FC = ({\n clientData,\n register,\n control,\n setValue,\n intl,\n watch,\n errors,\n}) => {\n const [selectedPaymentCycleType, setSelectedPaymentCycleType] = useState(0)\n const paymentCycleStartDate = watch('paymentCycleStartDate')\n const [isInitialLoad, setisInitialLoad] = useState(true)\n\n useEffect(() => {\n // It first monitors PaymentCycleStartDate 3 times, so you should configure the initial load to establish the initial PaymentCycleEndDate.\n setTimeout(() => {\n setisInitialLoad(false)\n }, 500)\n }, [])\n\n useEffect(() => {\n if (clientData) setSelectedPaymentCycleType(clientData?.paymentCycle || 0)\n }, [clientData])\n\n useEffect(() => {\n // Update the end date / day of week based on the start date\n // selectedPaymentCycleType = 0, 1 doesn't have end date, so ignored\n if (\n !isInitialLoad &&\n paymentCycleStartDate &&\n selectedPaymentCycleType > PaymentCycleType.OneTime\n ) {\n setValue('paymentCycleEndDate', calcEndDate())\n }\n }, [paymentCycleStartDate, selectedPaymentCycleType])\n\n const handleChangePaymentCycle = (event: ChangeEvent) => {\n const value = event.target.value\n setSelectedPaymentCycleType(parseInt(value))\n setValue('paymentCycle', value)\n }\n\n const calcEndDate = () => {\n // Calculate the end date (x days from the selected start date and selectedPaymentCycleType)\n const endOfWeekDate = new Date(paymentCycleStartDate)\n if (parseInt(selectedPaymentCycleType.toString()) !== PaymentCycleType.Monthly) {\n const endList = [7, 14]\n const caledEndDate = endOfWeekDate.getDate() + endList[selectedPaymentCycleType - 2]\n endOfWeekDate.setDate(caledEndDate)\n } else {\n endOfWeekDate.setMonth(endOfWeekDate.getMonth() + 1)\n }\n\n return endOfWeekDate\n }\n // Based on the alternative code structure, hard-coded with several conditional renderings.\n return (\n
\n
\n
\n \n
\n
\n
\n
\n \n \n {paymentCycleOptions.map((option) => (\n \n ))}\n \n }\n />\n
\n
\n {selectedPaymentCycleType > 0 && (\n
\n
\n \n {\n var date = moment(value)\n return (\n \n )\n }}\n />\n }\n />\n
\n {selectedPaymentCycleType > 1 && (\n
\n \n {\n var date = moment(value)\n\n return (\n (\n \n )}\n />\n )\n }}\n />\n }\n />\n
\n )}\n
\n )}\n
\n \n \n }\n />\n
\n
\n )\n}\n\nexport default PaymentTerm\n","import { FC } from 'react'\nimport { IClientsData } from '../../../client/models/client'\nimport { paymentCycleOptions } from '../../../client/constant/date'\n\ninterface IProps {\n clientData: IClientsData | undefined\n}\n\nconst Agreement: FC = ({\n clientData\n}) => {\n const formattedDate = () => {\n const paymentCycleStartDate = clientData?.paymentCycleStartDate || new Date();\n const options = { day: 'numeric', month: 'long', year: 'numeric' } as const;\n const dateParts = new Date(paymentCycleStartDate).toLocaleDateString('en-GB', options).split(' ');\n const formattedDate = `${dateParts[0]}-${dateParts[1]}-${dateParts[2]}`;\n\n return formattedDate;\n }\n\n // Based on the alternative code structure, hard-coded with several conditional renderings.\n return (\n
\n

Direct Debit Agreement

\n

\n 'HOSANNA' TRIUMPHANT SHOUT CHILDREN PTY LTD (ABN: 36 618 922 580) uses Zai Australia Pty\n Ltd. to process Direct Debits on its behalf.\n

\n

\n This is your Direct Debit Request Service Agreement with Zai Australia Pty. Ltd., (User\n ID’s 342203 and 481561) & ABN 96637632645. It explains what your obligations are when\n undertaking a Direct Debit arrangement with us. It also details what our obligations are\n to you as your Direct Debit provider.\n

\n

\n Please keep this agreement for future reference. It forms part of the terms and conditions\n of your Direct Debit Request (DDR) and should be read in conjunction with your DDR\n authorisation.\n

\n
\n
Definitions
\n
    \n
  • \n account means the account held at your financial institution from\n which we are authorised to arrange for funds to be debited.\n
  • \n
  • \n agreement means this Direct Debit Request Service Agreement between\n you and us.\n
  • \n
  • \n banking day means a day other than a Saturday or a Sunday or a public\n holiday listed throughout Australia.\n
  • \n
  • \n debit day means the day that payment by you to us is due.\n
  • \n
  • \n debit payment means a particular transaction where a debit is made.\n
  • \n
  • \n direct debit request means the Direct Debit Request between us and\n you.\n
  • \n
  • \n us or we means{' '}\n Zai Australia Pty. Ltd. trading as Zai (the Debit User) you have\n authorised by requesting a Direct Debit Request.\n
  • \n
  • \n you means the customer who has signed or authorised by other means\n the Direct Debit Request.\n
  • \n
  • \n your financial institution means the financial institution nominated\n by you on the DDR at which the account is maintained.\n
  • \n
\n
\n\n
\n
Debiting your account
\n
    \n
  1. \n By signing a Direct Debit Request or by providing us with a valid instruction, you\n have authorised us to arrange for funds to be debited from your account. You should\n refer to the Direct Debit Request and this agreement for the terms of the arrangement\n between us and you.\n
  2. \n
  3. \n We will only arrange for funds to be debited from your account as authorised in the\n Direct Debit Request.

    \n or

    \n We will only arrange for funds to be debited from your account if we have sent to the\n address nominated by you in the Direct Debit Request, a billing advice which specifies\n the amount payable by you to us and when it is due.\n
  4. \n
  5. \n If the debit day falls on a day that is not a banking day, we may direct your\n financial institution to debit your account on the following banking day. If you are\n unsure about which day your account has or will be debited you should ask your\n financial institution.\n
  6. \n
\n
\n\n
\n
Amendments by us
\n

\n We may vary any details of this agreement or a Direct Debit Request at any time by\n giving you at least fourteen (14) days written notice.\n

\n
\n\n
\n
Amendments by you
\n

\n You may change*, stop or defer a debit payment, or terminate this agreement by providing\n us with at least fourteen (14 days) notification by writing to:\n

\n

\n \n Accounts Department\n
\n Zai\n
\n Level 18,\n
\n 120 Spencer Street,\n
\n Melbourne VIC 3000\n
\n Australia\n
\n

\n

\n or by emailing us at helpdesk@hellozai.com{' '}\n during business hours; or arranging it through your own financial institution, which is\n required to act promptly on your instructions.\n

\n

\n *Note: in relation to the above reference to ‘change’, your financial institution may\n ‘change’ your debit payment only to the extent of advising us of your new account\n details.\n

\n
\n\n
\n
Your obligations
\n

\n It is your responsibility to ensure that there are sufficient clear funds available in\n your account to allow a debit payment to be made in accordance with the Direct Debit\n Request.\n

\n

If there are insufficient clear funds in your account to meet a debit payment:

\n

\n (a) you may be charged a fee and/or interest by your financial institution;\n
\n (b) you may also incur fees or charges imposed or incurred by us; and\n
\n (c) you must arrange for the debit payment to be made by another method or arrange for\n sufficient clear funds to be in your account by an agreed time so that we can process\n the debit payment.\n

\n

\n You should check your account statement to verify that the amounts debited from your\n account are correct\n

\n
\n\n
\n
Dispute
\n
    \n
  1. \n If you believe that there has been an error in debiting your account, you should\n notify us directly at helpdesk@hellozai.com{' '}\n and confirm that notice in writing with us as soon as possible so that we can resolve\n your query more quickly. Alternatively, you can take it up directly with your\n financial institution.\n
  2. \n
  3. \n If we conclude as a result of our investigations that your account has been\n incorrectly debited we will respond to your query by arranging for your financial\n institution to adjust your account (including interest and charges) accordingly. We\n will also notify you in writing of the amount by which your account has been adjusted.\n
  4. \n
  5. \n If we conclude as a result of our investigations that your account has not been\n incorrectly debited we will respond to your query by providing you with reasons and\n any evidence for this finding in writing.\n
  6. \n
\n
\n\n
\n
Accounts
\n

You should check:

\n
    \n
  1. \n with your financial institution whether direct debiting is available from your account\n as direct debiting is not available on all accounts offered by financial institutions.\n
  2. \n
  3. \n your account details which you have provided to us are correct by checking them\n against a recent account statement; and\n
  4. \n
  5. \n with your financial institution before completing the Direct Debit Request if you have\n any queries about how to complete the Direct Debit Request.\n
  6. \n
\n
\n\n
\n
Confidentiality
\n
    \n
  1. \n We will keep any information (including your account details) in your Direct Debit\n Request confidential. We will make reasonable efforts to keep any such information\n that we have about you secure and to ensure that any of our employees or agents who\n have access to information about you do not make any unauthorised use, modification,\n reproduction, or disclosure of that information.\n
  2. \n
  3. We will only disclose information that we have about you:
  4. \n
      \n
    1. to the extent specifically required by law;
    2. \n
    3. \n or for the purposes of this agreement (including disclosing information in\n connection with any query or claim).\n
    4. \n
    \n
\n
\n\n
\n
Notice
\n

\n If you wish to notify us in writing about anything relating to this agreement, you\n should write to\n

\n

\n \n Accounts Department\n
\n Zai\n
\n Level 18,\n
\n 120 Spencer Street,\n
\n Melbourne VIC 3000\n
\n Australia\n
\n

\n

\n helpdesk@hellozai.com\n

\n

\n We will notify you by sending a notice in the ordinary post to the address you have\n given us in the Direct Debit Request.\n

\n

\n Any notice will be deemed to have been received on the third banking day after posting.\n

\n
\n\n
\n
\n
\n Request and Authority to debit the account named below to pay Zai Australia Pty. Ltd.\n trading as Zai.\n
\n
\n

Request and Authority to debit

\n

\n \n Your Surname or company name {clientData?.lastName}\n \n

\n
\n

\n \n Your Given names or ABN/ARBN {clientData?.firstName}\n \n

\n
\n

\n request and authorise{' '}\n Zai Australia Pty. Ltd. trading as Zai & User ID's 342203 and 481561 to\n arrange, through its own financial institution, a debit to your nominated account any\n amount Zai Australia Pty. Ltd. trading as Zai, has deemed payable by\n you. You acknowledge that Zai Australia Pty. Ltd. trading as Zai has different user id’s\n depending on the financial institution it uses.\n

\n

\n This debit or charge will be made through the Bulk Electronic Clearing System (BECS)\n from your account held at the financial institution you have nominated below and will be\n subject to the terms and conditions of the Direct Debit Request Service Agreement.\n

\n
\n\n
\n
Financial details
\n

\n \n Financial institution name {clientData?.banks[0]?.bankName}\n \n

\n
\n

\n \n Address {clientData?.banks[0]?.bankBranch}\n \n

\n
\n

\n \n Name/s on account {clientData?.banks[0]?.bankAccountName}\n \n

\n
\n

\n \n BSB number (Must be 6 Digits){' '}\n {clientData?.banks[0]?.bsb1 + '-' + clientData?.banks[0]?.bsb2}\n \n

\n
\n

\n \n Account number {clientData?.banks[0]?.bankAccountNumber}\n \n

\n
\n

\n \n Direct Debit Amount $ {clientData?.debitAmount?.toFixed(2)}\n \n

\n
\n

\n \n Payment Cycle{' '}\n \n {\n paymentCycleOptions?.find(\n (option) => option.value === clientData?.paymentCycle?.toString()\n )?.label\n }\n \n \n

\n
\n

\n \n Start Date {formattedDate()}\n \n

\n
\n
\n\n
\n
Acknowledgment
\n

\n By signing and/or providing us with a valid instruction in respect to your Direct Debit\n Request, you have understood and agreed to the terms and conditions governing the debit\n arrangements between you and Zai Australia Pty. Ltd. trading as Zai as set out in this\n Request and in your Direct Debit Request Service Agreement.\n

\n
\n
\n )\n}\n\nexport default Agreement\n","import {IAlert} from '../../../shared/components/CustomAlert'\n\nexport const TOASTER_DEFAULT: IAlert = {\n message: ``,\n header: ``,\n type: 'success',\n}\n","import React, {useMemo, useState} from 'react'\nimport {IAlert} from '../../../shared/components/CustomAlert'\nimport {TOASTER_DEFAULT} from '../constant/default'\n\ninterface IProps {\n contextToaster: IAlert\n setContextToaster: (alert: IAlert) => void\n}\n\nexport const Context = React.createContext({\n contextToaster: TOASTER_DEFAULT,\n setContextToaster: (data: IAlert) => {},\n})\n\nexport const ContextProvider: React.FC = ({children}) => {\n const [contextToaster, setContextToaster] = useState(TOASTER_DEFAULT)\n\n const value: IProps = useMemo(() => {\n return {\n contextToaster,\n setContextToaster,\n }\n }, [contextToaster, setContextToaster])\n\n return {children}\n}\n","import {useIntl} from 'react-intl'\nimport * as yup from 'yup'\n\nconst ClientFormValidationSchema = () => {\n const intl = useIntl()\n\n return yup.object().shape({\n firstName: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.FIRSTNAMEREQUIRED'})),\n lastName: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.LASTNAMEREQUIRED'})),\n sex: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.SEXREQUIRED'}))\n .oneOf(\n ['Male', 'Female', 'Not To Say'],\n intl.formatMessage({id: 'ECOMMERCE.VALIDATION.SEXREQUIRED'})\n ),\n email: yup\n .string()\n .email(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.WRONGEMAILFORMAT'}))\n .max(50, intl.formatMessage({id: 'ECOMMERCE.VALIDATION.MAXIMUMSIMBOL'}))\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.EMAILREQUIRED'})),\n addressLine1: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ADDRESSREQUIRED'})),\n suburb: yup.string().required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.SUBURBREQUIRED'})),\n state: yup.string().required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STATEREQUIRED'})),\n postCode: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.POSTCODEREQUIRED'})),\n dateOfBirth: yup.mixed().when('isClientDataFeatureEnabled', {\n is: false,\n then: yup.mixed().test({\n test: function (value) {\n if (!value)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.DOBREQUIRED'}),\n })\n if (new Date(value) < new Date(1900, 0, 1))\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.DOBINVALID'}),\n })\n if (new Date(value) > new Date(2900, 0, 1))\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.DOBINVALID'}),\n })\n return true\n },\n }),\n }),\n clientType: yup.mixed().test({\n test: function (value) {\n if (value || value === 0) return true\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.CLIENTYPEREQUIRED'}),\n })\n },\n }),\n mobile: yup.mixed().test({\n test: function (value) {\n const digitPattern = /^[0-9]+$/\n if (!value)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.MOBILEREQUIRED'}),\n })\n else if (value.length > 20)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.MOBILEMUSTBE'}),\n })\n else if (!digitPattern.test(value))\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.MOBILENUMBERIC'}),\n })\n return true\n },\n }),\n country: yup.mixed().test({\n test: function (value) {\n if (!value)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.COUNTRYREQUIRED'}),\n })\n return true\n },\n }),\n debitAmount: yup.mixed().when('isDirectDebitFormFeatureEnabled', {\n is: function (isDirectDebitFormFeatureEnabled: any) {\n return isDirectDebitFormFeatureEnabled !== undefined && isDirectDebitFormFeatureEnabled\n },\n then: yup\n .number()\n .typeError(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.DEBITAMOUNTINVALID'}))\n .test({\n name: 'debitAmount',\n test: function (value) {\n if (!value || value === 0) {\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.DEBITAMOUNTREQUIRED'}),\n })\n }\n return true\n },\n })\n .nullable(),\n }),\n paymentCycle: yup.mixed().when('isDirectDebitFormFeatureEnabled', {\n is: function (isDirectDebitFormFeatureEnabled: any) {\n return isDirectDebitFormFeatureEnabled !== undefined && isDirectDebitFormFeatureEnabled\n },\n then: yup\n .number()\n .typeError(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.DEBITAMOUNTINVALID'}))\n .test({\n name: 'paymentCycle',\n test: function (value) {\n if (!value || value === 0) {\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.PAYMENTCYCLEREQUIRED'}),\n })\n }\n\n return true\n },\n })\n .nullable(),\n }),\n paymentCycleStartDate: yup.mixed().when(['isDirectDebitFormFeatureEnabled', 'paymentCycle'], {\n is: (isDirectDebitFormFeatureEnabled: any, paymentCycle: number) => {\n return isDirectDebitFormFeatureEnabled && paymentCycle > 0\n },\n then: yup\n .date()\n .typeError(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STARTDATEINVALID'}))\n .min(\n new Date(1900, 0, 1),\n intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STARTDATEINVALID'})\n )\n .max(\n new Date(2900, 0, 1),\n intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STARTDATEINVALID'})\n )\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STARTDATEREQUIRED'})),\n }),\n paymentCycleEndDate: yup.mixed().when(['isDirectDebitFormFeatureEnabled', 'paymentCycle'], {\n is: (isDirectDebitFormFeatureEnabled: any, paymentCycle: number) => {\n return isDirectDebitFormFeatureEnabled && paymentCycle > 1\n },\n then: yup\n .date()\n .typeError(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ENDDATEINVALID'}))\n .min(new Date(1900, 0, 1), intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ENDDATEINVALID'}))\n .max(new Date(2900, 0, 1), intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ENDDATEINVALID'}))\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ENDDATEREQUIRED'})),\n }),\n banks: yup\n .array()\n .of(\n yup.object().shape({\n bankName: yup\n .mixed()\n .when(['isAllowedNoBankFeatureEnable'], {\n is: false,\n then: yup.string().required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BANKNAMEREQUIRED'})),\n // Otherwise, no validation is applied\n otherwise: yup.string()\n }),\n bsb1: yup\n .mixed()\n .when(['isAllowedNoBankFeatureEnable'], {\n is: false,\n then: yup.string().test({\n test: function (value) {\n const digitPattern = /^[0-9]+$/\n if (value == null || value === '')\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB1REQUIRED'}),\n })\n else if (!digitPattern.test(value))\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB1MUSTBENUMERIC'}),\n })\n else if (value.length !== 3)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB1MUSTBEREQUIRED'}),\n })\n return true\n },\n })\n }),\n bsb2: yup\n .mixed()\n .when(['isAllowedNoBankFeatureEnable'], {\n is: false,\n then: yup.string().test({\n test: function (value) {\n const digitPattern = /^[0-9]+$/\n if (value == null || value === '')\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB2REQUIRED'}),\n })\n else if (!digitPattern.test(value))\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB2MUSTBENUMERIC'}),\n })\n else if (value.length !== 3)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB2MUSTBEREQUIRED'}),\n })\n return true\n },\n }),\n }),\n bankAccountName: yup\n .mixed()\n .when(['isAllowedNoBankFeatureEnable'], {\n is: false,\n then: yup.string().required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BANKACCOUNTNAMEREQUIRED'})),\n }),\n bankAccountNumber: yup\n .mixed()\n .when(['isAllowedNoBankFeatureEnable'], {\n is: false,\n then: yup.string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BANKACCOUNTNUMBERREQUIRED'}))\n .matches(\n /^\\d*$/,\n intl.formatMessage({\n id: 'ECOMMERCE.VALIDATION.BANKACCOUNTNUMBERSHOULDONLYCONTAINNUMBERS',\n })\n ),\n })\n })\n )\n .min(1, 'at least 1'),\n })\n}\n\nexport default ClientFormValidationSchema\n","export const config = {\n primaryColor: '#002C71',\n primaryRGB: [0, 44, 113],\n accentColor: '#F3B229',\n blackColor: '#000000',\n grayColor: '#444444',\n lightGrayColor: '#777777',\n sectionTitleFontSize: 13,\n fieldTitleFontSize: 11,\n normalFontSize: 10,\n fontFamily: 'Poppins',\n dateFormat: 'MMMM DD, YYYY'\n}\n","import React from 'react'\nimport { Text, StyleSheet } from '@react-pdf/renderer'\nimport { config } from './config'\n\nconst styles = StyleSheet.create({\n title: {\n fontFamily: config.fontFamily,\n fontSize: 24,\n fontWeight: 600,\n width: '100%',\n textAlign: 'center',\n marginBottom: 20,\n }\n})\n\nconst Title = ({ children }: any) => {children}\n\nexport default Title\n","import React from 'react'\nimport { View } from '@react-pdf/renderer'\n\nconst Row = ({ children, style }: any) => (\n \n {children}\n \n)\n\nexport default Row\n","import React from 'react'\nimport { Text, StyleSheet } from '@react-pdf/renderer'\nimport { config } from './config'\n\nconst styles = StyleSheet.create({\n sectionHeader: {\n fontWeight: 'bold',\n margin: '5px 0',\n }\n})\n\nconst SectionHeader = ({ children, secondary = false, style = {} }: any) => (\n \n {children}\n \n)\n\nexport default SectionHeader\n","import React from 'react'\nimport { Text, StyleSheet, View } from '@react-pdf/renderer'\nimport { config } from './config'\n\nconst styles = StyleSheet.create({\n field: {\n fontFamily: config.fontFamily,\n fontSize: config.normalFontSize + 1,\n marginBottom: 8,\n width: '100%',\n },\n label: {\n marginBottom: 1,\n color: config.blackColor\n },\n value: {\n color: config.grayColor,\n fontSize: config.normalFontSize,\n margin: 0\n }\n})\n\nconst Field = ({ children, label, style }: any) => (\n \n {label && {label}}\n {children}\n \n)\n\nexport default Field\n","import React from 'react'\nimport { Text, StyleSheet } from '@react-pdf/renderer'\nimport { config } from './config'\n\nconst styles = StyleSheet.create({\n label: {\n color: config.blackColor,\n fontSize: config.normalFontSize + 1,\n fontWeight: 'bold'\n }\n})\n\nconst Label = ({ children, style = {} }: any) => (\n {children}\n)\n\nexport default Label\n","import React from 'react'\nimport { Text, StyleSheet, View } from '@react-pdf/renderer'\nimport { config } from '../common/config'\n\nconst styles = StyleSheet.create({\n field: {\n flexDirection: \"row\",\n fontFamily: config.fontFamily,\n fontSize: config.normalFontSize + 1,\n width: '100%',\n },\n listTypeText: {\n color: config.grayColor,\n marginHorizontal: 8,\n fontSize: config.normalFontSize,\n },\n title: {\n fontWeight: 'bold',\n marginRight: 5\n },\n value: {\n color: config.grayColor,\n fontSize: config.normalFontSize,\n margin: 0\n }\n})\n\nconst ListText = ({ children, listTypeText, boldLabel, style }: any) => (\n \n {listTypeText}\n \n {boldLabel}\n \n {children || 'Not provided'}\n \n \n \n)\n\nexport default ListText\n","import React, { FC } from 'react'\nimport { Document, Page, StyleSheet, Text, Font, View } from '@react-pdf/renderer'\nimport Title from './common/Title'\nimport { config } from './common/config'\nimport Subtext from './common/Subtext'\nimport { IClientsData } from '../../../models/client'\nimport Row from './common/Row'\nimport SectionHeader from './common/SectionHeader'\nimport Field from './common/Field'\nimport Label from './common/Label'\nimport Table from './common/Table'\nimport ListText from './components/ListText'\nimport { paymentCycleOptions } from '../../../constant/date'\n\nFont.register({\n family: 'Poppins',\n fonts: [\n { src: 'https://cdn.jsdelivr.net/gh/webfontworld/Poppins/Poppins-Regular.ttf' },\n ]\n});\n\nconst styles = StyleSheet.create({\n page: {\n padding: 40,\n paddingTop: 50,\n paddingRight: 50,\n fontFamily: config.fontFamily,\n fontSize: config.normalFontSize\n },\n subtext: {\n marginBottom: 10\n },\n signatures: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n width: '100%'\n },\n signature: {\n width: '150px',\n paddingTop: '10px',\n borderTopWidth: 2,\n borderTopColor: config.primaryColor,\n borderTopStyle: 'solid',\n textAlign: 'center',\n fontSize: 12\n },\n header: {\n fontWeight: 'bold',\n marginBottom: '5px'\n },\n})\n\ninterface IProps {\n formData: IClientsData\n}\n\nconst DirectDebitTestPDF: FC = ({\n formData,\n}) => {\n const formattedDate = () => {\n const paymentCycleStartDate = formData?.paymentCycleStartDate || new Date();\n const options = { day: 'numeric', month: 'long', year: 'numeric' } as const;\n const dateParts = new Date(paymentCycleStartDate).toLocaleDateString('en-GB', options).split(' ');\n const formattedDate = `${dateParts[0]}-${dateParts[1]}-${dateParts[2]}`;\n\n return formattedDate;\n }\n\n return (\n \n \n Direct Debit Agreement\n\n\n \n 'HOSANNA' TRIUMPHANT SHOUT CHILDREN PTY LTD (ABN: 36 618 922 580) uses Zai Australia Pty\n Ltd. to process Direct Debits on its behalf.\n \n \n This is your Direct Debit Request Service Agreement with Zai Australia Pty. Ltd., (User\n ID’s 342203 and 481561) & ABN 96637632645. It explains what your obligations are when\n undertaking a Direct Debit arrangement with us. It also details what our obligations are\n to you as your Direct Debit provider.\n \n \n Please keep this agreement for future reference. It forms part of the terms and conditions\n of your Direct Debit Request (DDR) and should be read in conjunction with your DDR\n authorisation.\n \n\n\n Definitions\n \n {'\\u00A0'}means the account held at your financial institution from\n which we are authorised to arrange for funds to be debited.\n \n \n {'\\u00A0'}means this Direct Debit Request Service Agreement between you and us.\n \n \n {'\\u00A0'}means a day other than a Saturday or a Sunday or a public\n holiday listed throughout Australia.\n \n \n {'\\u00A0'}means the day that payment by you to us is due.\n \n \n {'\\u00A0'}means a particular transaction where a debit is made.\n \n \n \n \n us\n \n {'\\u00A0'}or{'\\u00A0'}\n \n \n we\n \n {'\\u00A0'}means{'\\u00A0'}\n \n \n Zai Australia Pty. Ltd. trading as Zai\n \n {'\\u00A0'}(the Debit User) you have\n authorised by requesting a Direct Debit Request.\n \n \n \n \n \n \n {'\\u00A0'}means the customer who has signed or authorised by other means\n the Direct Debit Request.\n \n \n {'\\u00A0'}means the financial institution nominated\n by you on the DDR at which the account is maintained.\n \n\n\n Debiting your account\n \n By signing a Direct Debit Request or by providing us with a valid instruction,\n you have authorised us to arrange for funds to be debited from your account.\n You should refer to the Direct Debit Request and this agreement for the terms of the arrangement between us and you.\n \n \n 2.\n \n \n We will only arrange for funds to be debited from your account as authorised in the\n Direct Debit Request.\n \n \n or\n \n \n We will only arrange for funds to be debited from your account if we have sent to the\n address nominated by you in the Direct Debit Request, a billing advice which specifies\n the amount payable by you to us and when it is due.\n \n \n \n \n If the debit day falls on a day that is not a banking day, we may direct your\n financial institution to debit your account on the following banking day. If you are\n unsure about which day your account has or will be debited you should ask your\n financial institution.\n \n\n\n Amendments by us\n \n We may vary any details of this agreement or a Direct Debit Request at any time by giving you at least fourteen (14) days written notice.\n \n\n\n Amendments by you\n \n You may change*, stop or defer a debit payment, or terminate this agreement by providing us with at least fourteen (14 days) notification by writing to:\n \n \n \n \n \n \n \n \n or by emailing us at{'\\u00A0'}helpdesk@hellozai.com{'\\u00A0'}\n during business hours; or arranging it through your own financial institution, which is\n required to act promptly on your instructions.\n \n \n *Note: in relation to the above reference to ‘change’, your financial institution may\n ‘change’ your debit payment only to the extent of advising us of your new account\n details.\n \n\n\n Your obligations\n \n It is your responsibility to ensure that there are sufficient clear funds available in your account to allow a debit payment to be made in accordance with the Direct Debit Request.\n \n \n If there are insufficient clear funds in your account to meet a debit payment:\n \n \n you may be charged a fee and/or interest by your financial institution;\n \n \n you may also incur fees or charges imposed or incurred by us; and\n \n \n you must arrange for the debit payment to be made by another method or arrange for\n sufficient clear funds to be in your account by an agreed time so that we can process\n the debit payment.\n \n \n You should check your account statement to verify that the amounts debited from your account are correct\n \n\n\n Dispute\n \n If you believe that there has been an error in debiting your account, you should\n notify us directly at{'\\u00A0'}helpdesk@hellozai.com{'\\u00A0'}\n and confirm that notice in writing with us as soon as possible so that we can resolve\n your query more quickly. Alternatively, you can take it up directly with your\n financial institution.\n \n \n If we conclude as a result of our investigations that your account has been\n incorrectly debited we will respond to your query by arranging for your financial\n institution to adjust your account (including interest and charges) accordingly. We\n will also notify you in writing of the amount by which your account has been adjusted.\n \n \n If we conclude as a result of our investigations that your account has not been\n incorrectly debited we will respond to your query by providing you with reasons and\n any evidence for this finding in writing.\n \n\n\n Accounts\n \n You should check:\n \n \n with your financial institution whether direct debiting is available from your account\n as direct debiting is not available on all accounts offered by financial institutions.\n \n \n your account details which you have provided to us are correct by checking them\n against a recent account statement; and\n \n \n with your financial institution before completing the Direct Debit Request if you have\n any queries about how to complete the Direct Debit Request.\n \n\n\n Confidentiality\n \n We will keep any information (including your account details) in your Direct Debit\n Request confidential. We will make reasonable efforts to keep any such information\n that we have about you secure and to ensure that any of our employees or agents who\n have access to information about you do not make any unauthorised use, modification,\n reproduction, or disclosure of that information.\n \n \n We will only disclose information that we have about you:\n \n \n to the extent specifically required by law;\n \n \n or for the purposes of this agreement (including disclosing information in\n connection with any query or claim).\n \n\n\n Notice\n \n If you wish to notify us in writing about anything relating to this agreement, you should write to\n \n \n \n \n \n \n \n \n helpdesk@hellozai.com\n \n \n We will notify you by sending a notice in the ordinary post to the address you have\n given us in the Direct Debit Request.\n \n \n Any notice will be deemed to have been received on the third banking day after posting.\n \n\n\n Request and Authority to debit the account named below to pay Zai Australia Pty. Ltd. trading as Zai.\n \n Request and Authority to debit\n \n \n \n \n \n \n \n \n \n \n \n request and authorise\n \n {'\\u00A0'}Zai Australia Pty. Ltd. trading as Zai & User ID's 342203 and 481561{'\\u00A0'}\n \n \n to arrange, through its own financial institution, a debit to your nominated account any amount\n \n {'\\u00A0'}Zai Australia Pty. Ltd. trading as Zai\n \n \n , has deemed payable by\n you. You acknowledge that Zai Australia Pty. Ltd. trading as Zai has different user id’s\n depending on the financial institution it uses.\n \n \n \n \n \n This debit or charge will be made through the Bulk Electronic Clearing System (BECS)\n from your account held at the financial institution you have nominated below and will be\n subject to the terms and conditions of the Direct Debit Request Service Agreement.\n \n\n\n Financial details\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n Acknowledgment\n \n By signing and/or providing us with a valid instruction in respect to your Direct Debit\n Request, you have understood and agreed to the terms and conditions governing the debit\n arrangements between you and Zai Australia Pty. Ltd. trading as Zai as set out in this\n Request and in your Direct Debit Request Service Agreement.\n \n \n \n\n\n )\n}\n\nexport default DirectDebitTestPDF\n","import {\n TabStrip,\n TabStripSelectEventArguments,\n TabStripTab,\n} from \"@progress/kendo-react-layout\";\n\nimport { FC, Fragment, useContext, useEffect, useRef, useState } from 'react'\nimport { useIntl } from 'react-intl'\nimport { yupResolver } from '@hookform/resolvers/yup'\nimport { Resolver, useForm } from \"react-hook-form\";\nimport { useHistory } from \"react-router-dom\";\nimport { PDFDownloadLink } from '@react-pdf/renderer';\n\nimport { CustomAlert, IAlert } from '../../../../shared/components/CustomAlert'\nimport { IClientsData } from \"../../../client/models/client\";\nimport { CLIENT_DATA_FORM_DEFAULT } from \"../../../client/constant/client-default\";\nimport PersonalData from \"./PersonalData\";\nimport PersonalCommonData from \"./PersonalCommonData\";\nimport BankDetailsSection from \"./BankDetailSection\";\nimport DirectDebit from \"./DirectDebit\";\nimport PaymentTerm from \"./PaymentTerm\";\nimport Agreement from \"./Agreement\";\nimport { Context } from \"../../context\";\nimport { shallowEqual, useSelector } from \"react-redux\";\nimport { RootState } from \"../../../../../setup\";\nimport { UserModel } from \"../../../auth/models/UserModel\";\nimport { getClientById, updateClient } from \"../../../client/api/ClientApi\";\nimport { getErrorMessage, getUTCDate } from \"../../../../shared/service/utils\";\nimport ClientFormValidationSchema from \"../../validators/client-form\";\nimport DirectDebitAgreementPDF from \"../../../client/components/partials/debit-pdf-form/DirectDebitAgreementPDF\";\n\nconst loadingPanel = (\n
\n Loading\n
\n
\n
\n)\n\nconst Form: FC = () => {\n const intl = useIntl()\n const history = useHistory()\n const user: UserModel = useSelector(({ auth }) => auth.user, shallowEqual) as UserModel\n const { setContextToaster } = useContext(Context)\n const pdfDownloadLinkRef = useRef(null);\n\n const [isLoading, setIsLoading] = useState(false)\n const [formNotification, setformNotification] = useState()\n const [selected, setSelected] = useState(0);\n const [selectedClient, setSelectedClient] = useState(undefined)\n\n const clientFormValidationSchema = ClientFormValidationSchema()\n const {\n register,\n control,\n handleSubmit,\n formState: { errors },\n reset,\n watch,\n setValue,\n getValues,\n trigger,\n } = useForm({\n defaultValues: CLIENT_DATA_FORM_DEFAULT,\n reValidateMode: 'onSubmit',\n resolver: yupResolver(clientFormValidationSchema) as unknown as Resolver,\n })\n\n useEffect(() => {\n if (user.unqId) {\n setIsLoading(true)\n getClientById(user.unqId)\n .then((result: any) => {\n setSelectedClient(result)\n setIsLoading(false)\n })\n .catch(() => {\n history.push('/dashboard')\n setIsLoading(false)\n })\n }\n }, [user.unqId])\n\n useEffect(() => {\n // Initialize the clients / hook form inputs\n if (selectedClient && selectedClient.length > 0) {\n const files = selectedClient[0]?.files || []\n const updatedClient = {\n ...selectedClient[0],\n clientType: selectedClient[0].clientType || 1,\n companyName: selectedClient[0].companyName || '',\n abnacn: selectedClient[0].abnacn || '',\n mobile: selectedClient[0].mobile || 0,\n email: selectedClient[0].email || '',\n dateOfBirth: new Date(selectedClient[0].dateOfBirth || ''),\n issuedDate: new Date(selectedClient[0].issuedDate || ''),\n expiryDate: new Date(selectedClient[0].expiryDate || ''),\n paymentCycleStartDate: new Date(selectedClient[0].paymentCycleStartDate || ''),\n paymentCycleEndDate: new Date(selectedClient[0].paymentCycleEndDate || ''),\n frontImageFileName: files.find(\n (f) => f.cType === selectedClient[0].identity && f.cIndex === 1\n )?.name,\n backImageFileName: files.find((f) => f.cType === selectedClient[0].identity && f.cIndex === 2)\n ?.name,\n }\n\n reset(updatedClient)\n } else {\n reset(CLIENT_DATA_FORM_DEFAULT)\n }\n }, [selectedClient, reset])\n\n const handleSelect = (e: TabStripSelectEventArguments) => {\n setSelected(e.selected);\n };\n\n const onReset = () => {\n reset(CLIENT_DATA_FORM_DEFAULT)\n }\n\n const onSubmit = async (values: IClientsData) => {\n setIsLoading(true)\n try {\n values.paymentCycleStartDateUtc = values.paymentCycleStartDate ? getUTCDate(values.paymentCycleStartDate) : null\n await createOrUpdateClient(updateClient, values)\n\n setformNotification({\n message: 'Client Update successfully.',\n header: 'Client Update',\n type: 'primary',\n })\n } catch (error) {\n const errorMessage = getErrorMessage(error)\n setformNotification({\n message: errorMessage,\n header: `Error Updating Client`,\n type: 'danger',\n })\n }\n\n setIsLoading(false)\n }\n\n const createOrUpdateClient = async (apiFunction: any, payload: any) => {\n try {\n const formData = new FormData()\n\n for (const key in payload) {\n if (payload.hasOwnProperty(key)) {\n if (key === 'banks') {\n for (let j = 0; j < payload.banks.length; j++) {\n const bank = payload.banks[j]\n for (const bankKey in bank) {\n formData.append(`clients[0].banks[${j}].${bankKey}`, bank[bankKey])\n }\n }\n } else {\n if (key.indexOf('date') > -1 || key.indexOf('Date') > -1) {\n const dateObject = new Date(payload[key])\n var dateString = dateObject.toDateString()\n var timeString =\n ('0' + dateObject.getHours()).slice(-2) +\n ':' +\n ('0' + dateObject.getMinutes()).slice(-2) +\n ':' +\n ('0' + dateObject.getSeconds()).slice(-2)\n\n var formattedDate = dateString + ' ' + timeString\n\n formData.append(`clients[0].${key}`, formattedDate)\n } else {\n formData.append(`clients[0].${key}`, payload[key] == null ? '' : payload[key])\n }\n }\n }\n }\n\n const [data, error] = await apiFunction(formData)\n\n if (data) {\n return data\n }\n\n if (error) {\n throw error\n }\n } catch (error) {\n throw error\n }\n }\n\n // Function to generate the file name\n const generateFileName = (formData: IClientsData) => {\n const currentDate = new Date();\n const formattedDate = `${currentDate.getFullYear()}-${(currentDate.getMonth() + 1)\n .toString()\n .padStart(2, '0')}-${currentDate.getDate().toString().padStart(2, '0')}`;\n\n // Combine all parts of the file name\n const fileName = `Direct Debit Agreement_${formattedDate}_${formData.banks[0].bankName}_${formData.lastName}_${formData.firstName}.pdf`;\n\n return fileName;\n };\n\n const handleSavePDF = () => {\n if (pdfDownloadLinkRef.current) {\n pdfDownloadLinkRef.current.click();\n }\n }\n\n return (\n \n {isLoading && loadingPanel}\n {formNotification && (\n setformNotification(undefined)} />\n )}\n \n \n \n
\n {\n history.push('/dashboard')\n setContextToaster({\n message: ``,\n header: ``,\n type: 'primary',\n })\n }}\n >\n {intl.formatMessage({ id: 'ECOMMERCE.ACTION.CANCEL' })}\n \n \n
\n \n \n\n
\n
\n\n \n\n
\n
\n \n\n
\n
\n \n \n
\n \n
\n \n
\n \n {selectedClient?.[0] &&\n // } fileName={generateFileName(selectedClient?.[0])}>\n } fileName={generateFileName(selectedClient?.[0])}>\n {({ blob, url, loading, error }) =>\n loading ? \"Loading...\" :\n \n Print\n \n }\n \n }\n
\n
\n
\n )\n}\nexport { Form }\n","import { FC } from 'react'\n\nimport { Form } from './partials/Form'\n\nconst MasterWalletWrapper: FC = () => {\n return (\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport default MasterWalletWrapper\n","import { FC, Fragment } from 'react'\nimport { useIntl } from 'react-intl'\n\nimport Wrapper from './components/Wrapper'\nimport { PageTitle } from '../../../_metronic/layout/core'\nimport { ContextProvider } from './context'\n\nconst Page: FC = () => {\n const intl = useIntl()\n\n return (\n \n {intl.formatMessage({ id: 'MENU.MYPROFILE' })}\n \n \n \n \n )\n}\n\nexport default Page\n","import React, {useMemo, useState} from 'react'\n\nimport {IAlert} from '../../../shared/components/CustomAlert'\nimport {CLIENT_DATA_FORM_DEFAULT, TOASTER_DEFAULT} from '../constant/client-default'\nimport {IOption, IClientsData} from '../models/client'\n\ninterface IProps {\n selectedData: IClientsData\n setSelectedData: (data: IClientsData) => void\n contextToaster: IAlert\n setContextToaster: (alert: IAlert) => void\n roleOptions: IOption[]\n // getAllRolesAsync: (...args: any[]) => Promise\n // fetchingRole: boolean\n}\n\nexport const ClientContext = React.createContext({\n selectedData: CLIENT_DATA_FORM_DEFAULT,\n setSelectedData: (data: IClientsData) => {},\n contextToaster: TOASTER_DEFAULT,\n setContextToaster: (data: IAlert) => {},\n roleOptions: [],\n // getAllRolesAsync: async (...args: any[]) => {},\n // fetchingRole: false,\n})\n\nexport const ClientContextProvider: React.FC = ({children}) => {\n const [selectedData, setSelectedData] = useState(CLIENT_DATA_FORM_DEFAULT)\n const [contextToaster, setContextToaster] = useState(TOASTER_DEFAULT)\n const [roleOptions, setRoleOptions] = useState([])\n\n // const [{loading: fetchingRole}, getAllRolesAsync] = useAsyncFn(\n // async (...args) => {\n // const [keyword] = args\n // const response = await getAllRoles(keyword)\n // const roles = transformDataRoles(response.data)\n // setRoleOptions(roles as any)\n // },\n // [setRoleOptions]\n // )\n\n const value: IProps = useMemo(() => {\n return {\n selectedData,\n setSelectedData,\n contextToaster,\n setContextToaster,\n roleOptions,\n // getAllRolesAsync,\n // fetchingRole,\n }\n }, [\n selectedData,\n setSelectedData,\n contextToaster,\n setContextToaster,\n roleOptions,\n // getAllRolesAsync,\n // fetchingRole,\n ])\n\n return {children}\n}\n","import { GridCellProps } from '@progress/kendo-react-grid'\n\nexport const NoValueFormatCell = (props: GridCellProps) => {\n const { dataItem } = props;\n const field = props.field || '';\n const dataValue = dataItem ? (dataItem[field] ? dataItem[field] : '') : '';\n \n return (\n \n {dataValue.trim() ? dataValue : 'N/A'}\n \n );\n };","import {\n Grid,\n GridColumn as Column,\n GridCellProps,\n GridFilterChangeEvent,\n} from '@progress/kendo-react-grid'\n\nimport {useCallback, useContext, useEffect, useState} from 'react'\nimport {useHistory} from 'react-router-dom'\nimport {useIntl} from 'react-intl'\n\nimport {getClientListWithPagination} from '../../api/ClientApi'\nimport {GridSetup} from '../../../users/models/user-model'\nimport {CLIENT_DATA_FORM_DEFAULT} from '../../constant/client-default'\nimport {FILTER_DEFAULT, Initial_GridSetup} from '../../constant/config-default'\nimport {IClientsData} from '../../models/client'\nimport {DateFormatCell} from '../../../../shared/components/kendo/format/DateFormatCell'\nimport {ClientContext} from '../../context/ClientContext'\nimport {transformClientFilter, transformClientSort} from '../../transformer/client-transform'\nimport {hasPermission, toLinQExpression} from '../../../../shared/service/utils'\nimport {NoValueFormatCell} from '../../../../shared/components/kendo/format/NoValueFormatCell'\nimport {AmountFormatCell} from '../../../../shared/components/kendo/format/AmountFormatCell'\nimport {DropDownList, DropDownListChangeEvent} from '@progress/kendo-react-dropdowns'\nimport {KendoI18Provider} from '../../../../../_metronic/i18n/kendoI18Provider'\nimport {useFeatureFlags} from '../../../../context/FeatureFlags'\nimport { usePageData } from '../../../../../_metronic/layout/core'\nimport { PAGE_PERMISSION } from '../../../roles/constant/role-default'\n\nconst loadingPanel = (\n
\n Loading\n
\n
\n
\n)\n\nconst ClientList: React.FC = () => {\n const intl = useIntl()\n const history = useHistory()\n const {features} = useFeatureFlags()\n\n const { currentUser: { activePages } } = usePageData();\n\n const [gridSetup, setGridSetup] = useState(Initial_GridSetup)\n const [tableData, setTableData] = useState([])\n const [totalRows, setTotalRows] = useState(0)\n const {setSelectedData} = useContext(ClientContext)\n const [isLoading, setIsLoading] = useState(false)\n const [clientType, setClientType] = useState('1')\n const [isDirectDebitFormFeatureEnabled, setIsDirectDebitFormFeatureEnabled] = useState(false)\n const [isClientTypeSelectionFeatureEnabled, setIsClientTypeSelectionFeatureEnabled] =\n useState(false)\n\n const defaultItem = {text: `${intl.formatMessage({id: 'ECOMMERCE.ACTION'})}`}\n const isCompanyNameVisible = clientType !== '1'\n\n const fetchData = useCallback(() => {\n setIsLoading(true)\n const {sort, skip, take} = gridSetup\n var filter = transformClientFilter(gridSetup.filter)\n var data = toLinQExpression(filter)\n const sortField = transformClientSort(sort)\n getClientListWithPagination(skip, take, sortField, data || FILTER_DEFAULT, Number(clientType))\n .then((response: any) => {\n setTableData(response.items)\n setTotalRows(response.totalCount)\n setIsLoading(false)\n })\n .catch(() => {\n setIsLoading(false)\n })\n }, [gridSetup, clientType])\n\n useEffect(() => {\n if (features.some((feature) => feature.name === 'DirectDebitFormFeature')) {\n setIsDirectDebitFormFeatureEnabled(true)\n }\n if (features.some((feature) => feature.name === 'ClientTypeSelectionFeature')) {\n setIsClientTypeSelectionFeatureEnabled(true)\n }\n }, [features])\n\n useEffect(() => {\n fetchData()\n }, [gridSetup, fetchData, clientType])\n\n const handlePageChange = (pageProps: any) => {\n setGridSetup({\n ...gridSetup,\n skip: pageProps.page.skip,\n take: pageProps.page.take,\n })\n }\n\n const handleSortChange = (pageProps: any) => {\n setGridSetup({\n ...gridSetup,\n sort: pageProps.sort,\n })\n }\n\n const handleFilter = (filter: GridFilterChangeEvent) => {\n setGridSetup({\n ...Initial_GridSetup,\n filter: filter.filter,\n })\n }\n\n const filterOperators = {\n text: [\n {\n text: 'grid.filterContainsOperator',\n operator: 'contains',\n },\n ],\n boolean: [\n {\n text: 'grid.filterEqOperator',\n operator: 'eq',\n },\n ],\n }\n\n const handleClientTypeChange = (event: any) => {\n setGridSetup({...gridSetup, skip: 0})\n setClientType(event.target.value)\n }\n\n const amountFormatCell = (dataProps: GridCellProps) => (\n \n )\n\n const goToViewProfile = (companyUnqId: string) => {\n history.push({\n pathname: '/client/profile',\n search: `?companyId=${companyUnqId}`,\n })\n }\n\n const goToEditProfile = (id: string) => {\n history.push({\n pathname: '/client/edit',\n search: `?id=${id}`,\n })\n }\n\n const commandChangeHandler = (event: DropDownListChangeEvent) => {\n const {\n text,\n value: {dataItem},\n } = event.target.value\n if (text === `${intl.formatMessage({id: 'ECOMMERCE.ACTION.EDIT'})}`) {\n setSelectedData(dataItem)\n goToEditProfile(dataItem.unqId)\n }\n if (text === `${intl.formatMessage({id: 'ECOMMERCE.ACTION.VIEWPROFILE'})}`) {\n goToViewProfile(dataItem.companyUnqId)\n }\n }\n\n const actionCellButtonDropdown = (props: GridCellProps) => {\n let action = [\n {text: `${intl.formatMessage({id: 'ECOMMERCE.ACTION.VIEWPROFILE'})}`, value: props},\n ];\n\n\n if(hasPermission(PAGE_PERMISSION.Clients_Edit, activePages)) { \n action = [\n {text: `${intl.formatMessage({id: 'ECOMMERCE.ACTION.EDIT'})}`, value: props},\n {text: `${intl.formatMessage({id: 'ECOMMERCE.ACTION.VIEWPROFILE'})}`, value: props},\n ];\n }\n\n\n return(\n \n \n \n )\n }\n\n return (\n <>\n
\n
\n\n {hasPermission(PAGE_PERMISSION.Clients_Add, activePages) && (\n {\n setSelectedData(CLIENT_DATA_FORM_DEFAULT)\n history.push('/client/new')\n }}\n >\n {intl.formatMessage({id: 'ACTION.NEWCLIENT'})}\n \n )}\n \n
\n {!isClientTypeSelectionFeatureEnabled ? (\n
\n
\n
\n \n
\n
\n \n \n \n \n
\n
\n
\n ) : null}\n
\n {isLoading && loadingPanel}\n \n \n \n {isCompanyNameVisible && (\n \n )}\n\n \n \n \n {isDirectDebitFormFeatureEnabled ? (\n \n ) : null}\n {isDirectDebitFormFeatureEnabled ? (\n \n ) : null}\n\n \n \n \n \n \n \n )\n}\n\nexport default ClientList\n","import { useIntl } from \"react-intl\";\nimport * as yup from 'yup'\n\nexport const BankFormValidationSchema = () => {\n const intl = useIntl()\n return yup.object().shape({\n bankName: yup\n .mixed()\n .when(['isAllowedNoBankFeatureEnable'], {\n is: (isAllowedNoBankFeatureEnable: any) => {\n return !isAllowedNoBankFeatureEnable\n }, \n then: yup.string().required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BANKNAMEREQUIRED'}))\n }),\n // .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BANKNAMEREQUIRED'})),\n bsb1: yup\n .mixed()\n .when(['isAllowedNoBankFeatureEnable', 'bankName'], {\n is: (isAllowedNoBankFeatureEnable: any, bsb2: string) => {\n return !isAllowedNoBankFeatureEnable || \n bsb2.length > 0 \n }, \n then: yup.mixed().test({\n test: function (value) {\n const digitPattern = /^[0-9]+$/\n if (value == null || value === '')\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB1REQUIRED'}),\n })\n else if (!digitPattern.test(value))\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB1MUSTBENUMERIC'}),\n })\n else if (value.length !== 3)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB1MUSTBEREQUIRED'}),\n })\n return true\n },\n })\n }),\n bsb2: yup\n .mixed()\n .when(['isAllowedNoBankFeatureEnable', 'bsb1'], {\n is: (isAllowedNoBankFeatureEnable: any, bsb1: string) => {\n return !isAllowedNoBankFeatureEnable || \n bsb1.length > 0 \n }, \n then: yup.mixed().test({\n test: function (value) {\n const digitPattern = /^[0-9]+$/\n if (value == null || value === '')\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB2REQUIRED'}),\n })\n else if (!digitPattern.test(value))\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB2MUSTBENUMERIC'}),\n })\n else if (value.length !== 3)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB2MUSTBEREQUIRED'}),\n })\n return true\n },\n }),\n }),\n bankAccountName: yup\n .mixed()\n .when(['isAllowedNoBankFeatureEnable', 'bankAccountNumber'], {\n is: (isAllowedNoBankFeatureEnable: any, bankAccountNumber: string) => {\n return !isAllowedNoBankFeatureEnable || bankAccountNumber.length > 0\n }, \n then: yup.string().required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BANKACCOUNTNAMEREQUIRED'})),\n }),\n \n bankAccountNumber: yup\n .mixed()\n .when(['isAllowedNoBankFeatureEnable', 'bsb2'], {\n is: (isAllowedNoBankFeatureEnable: any, bsb2: string) => {\n return !isAllowedNoBankFeatureEnable || bsb2.length > 0 \n }, \n then: yup.string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BANKACCOUNTNUMBERREQUIRED'}))\n .matches(\n /^\\d*$/,\n intl.formatMessage({\n id: 'ECOMMERCE.VALIDATION.BANKACCOUNTNUMBERSHOULDONLYCONTAINNUMBERS',\n })\n ),\n })\n })\n}\n ","import {useIntl} from 'react-intl'\nimport * as yup from 'yup'\nimport { BankFormValidationSchema as bankFormValidationSchema } from './bank-form'\n\nconst ClientFormValidationSchema = () => {\n const intl = useIntl()\n const bankSchema = bankFormValidationSchema()\n const schema = yup.object().shape({\n firstName: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.FIRSTNAMEREQUIRED'})),\n lastName: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.LASTNAMEREQUIRED'})),\n sex: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.SEXREQUIRED'}))\n .oneOf(\n ['Male', 'Female', 'Not To Say'],\n intl.formatMessage({id: 'ECOMMERCE.VALIDATION.SEXREQUIRED'})\n ),\n email: yup\n .string()\n .email(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.WRONGEMAILFORMAT'}))\n .max(50, intl.formatMessage({id: 'ECOMMERCE.VALIDATION.MAXIMUMSIMBOL'}))\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.EMAILREQUIRED'})),\n addressLine1: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ADDRESSREQUIRED'})),\n suburb: yup.string().required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.SUBURBREQUIRED'})),\n state: yup.string().required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STATEREQUIRED'})),\n postCode: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.POSTCODEREQUIRED'})),\n isUploadFileFeatureEnabled: yup.boolean(),\n frontImageFile: yup.mixed().when('isUploadFileFeatureEnabled', {\n is: function (isUploadFileFeatureEnabled: any) {\n return isUploadFileFeatureEnabled !== undefined && isUploadFileFeatureEnabled\n },\n then: yup.mixed().when(['frontImageFileName'], {\n is: (value: any) => {\n return !value\n },\n then: yup.mixed().test({\n test: function (value) {\n if (value && value !== '') return true // Skip the validation if value not empty\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.FRONTIMAGEREQUIRED'}),\n })\n },\n }),\n }),\n }),\n // backImageFile: yup.mixed().when(['identity', 'isUploadFileFeatureEnabled'], {\n // is: function (isUploadFileFeatureEnabled: any) {\n // return isUploadFileFeatureEnabled !== undefined && isUploadFileFeatureEnabled\n // },\n // then: yup.mixed().when(['backImageFileName'], {\n // is: (value: any) => {\n // return !value\n // },\n // then: yup.mixed().test({\n // test: function (value) {\n // const {identity} = this.parent\n // if (value && value !== '' && parseInt(identity) === 1) return true // Skip the validation if value not empty\n // return this.createError({\n // message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.FRONTIMAGEREQUIRED'}),\n // })\n // },\n // }),\n // }),\n // }),\n companyName: yup.mixed().when('clientType', {\n is: 2,\n then: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.COMPANYNAMEREQUIRED'})),\n otherwise: yup.string().nullable(),\n }),\n abnacn: yup.mixed().when('clientType', {\n is: 2,\n then: yup.string().required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ABNACNREQUIRED'})),\n }),\n dateOfBirth: yup.mixed().when('isClientDataFeatureEnabled', {\n is: false,\n then: yup.mixed().test({\n test: function (value) {\n if (!value)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.DOBREQUIRED'}),\n })\n if (new Date(value) < new Date(1900, 0, 1))\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.DOBINVALID'}),\n })\n if (new Date(value) > new Date(2900, 0, 1))\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.DOBINVALID'}),\n })\n return true\n },\n }),\n }),\n clientType: yup.mixed().test({\n test: function (value) {\n if (value || value === 0) return true\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.CLIENTYPEREQUIRED'}),\n })\n },\n }),\n identityNumber: yup.string().when('isIdentityDataFeatureEnabled', {\n is: function (isIdentityDataFeatureEnabled: any) {\n return isIdentityDataFeatureEnabled === undefined || !isIdentityDataFeatureEnabled\n },\n then: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.IDENTITYREQUIRED'})),\n otherwise: yup.string(), // Return a string schema for the \"else\" case.\n }),\n passportCountry: yup.mixed().when(['identity', 'isIdentityDataFeatureEnabled'], {\n is: (identity: any, isIdentityDataFeatureEnabled: any) => {\n return (\n identity && (isIdentityDataFeatureEnabled === undefined || !isIdentityDataFeatureEnabled)\n )\n },\n then: yup.mixed().test({\n test: function (value) {\n const {identity} = this.parent\n if (parseInt(identity) === 1 && !value) {\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.PASSPORTCOUNTRYREQUIRED'}),\n })\n }\n return true\n },\n }),\n }),\n issuedBy: yup.string().when('isIdentityDataFeatureEnabled', {\n is: function (isIdentityDataFeatureEnabled: any) {\n return isIdentityDataFeatureEnabled === undefined || !isIdentityDataFeatureEnabled\n },\n then: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ISSUEDBYREQUIRED'})),\n otherwise: yup.string(), // Return a string schema for the \"else\" case.\n }),\n issuedDate: yup.mixed().when('isIdentityDataFeatureEnabled', {\n is: function (isIdentityDataFeatureEnabled: any) {\n return isIdentityDataFeatureEnabled === undefined || !isIdentityDataFeatureEnabled\n },\n then: yup.mixed().test({\n test: function (value) {\n if (!value)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ISSUEDREQUIRED'}),\n })\n if (new Date(value) < new Date(1900, 0, 1))\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ISSUEDATEINVALID'}),\n })\n if (new Date(value) > new Date(2900, 0, 1))\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ISSUEDATEINVALID'}),\n })\n return true\n },\n }),\n }),\n expiryDate: yup.mixed().when('isIdentityDataFeatureEnabled', {\n is: function (isIdentityDataFeatureEnabled: any) {\n return isIdentityDataFeatureEnabled === undefined || !isIdentityDataFeatureEnabled\n },\n then: yup.mixed().test({\n test: function (value) {\n if (!value)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.EXPIRYDATEREQUIRED'}),\n })\n return true\n },\n }),\n }),\n mobile: yup.mixed().test({\n test: function (value) {\n const digitPattern = /^[0-9]+$/\n if (!value)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.MOBILEREQUIRED'}),\n })\n else if (value.length > 20)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.MOBILEMUSTBE'}),\n })\n else if (!digitPattern.test(value))\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.MOBILENUMBERIC'}),\n })\n return true\n },\n }),\n country: yup.mixed().test({\n test: function (value) {\n if (!value)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.COUNTRYREQUIRED'}),\n })\n return true\n },\n }),\n\n status: yup\n .number()\n .test(\n 'is-not-zero',\n intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STATUSREQUIRED'}),\n (value) => value !== 0\n )\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STATUSREQUIRED'})),\n businessDevelopmentManager: yup.mixed().when('isHideBDMDropdownFeatureEnabled', {\n is: function (isHideBDMDropdownFeatureEnabled: any) {\n return isHideBDMDropdownFeatureEnabled === undefined || !isHideBDMDropdownFeatureEnabled\n },\n then: yup.mixed().test({\n test: function (value) {\n if (!value)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BDMREQUIRED'}),\n })\n return true\n },\n }),\n }),\n debitAmount: yup.mixed().when('isDirectDebitFormFeatureEnabled', {\n is: function (isDirectDebitFormFeatureEnabled: any) {\n return isDirectDebitFormFeatureEnabled !== undefined && isDirectDebitFormFeatureEnabled\n },\n then: yup\n .number()\n .typeError(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.DEBITAMOUNTINVALID'}))\n .test({\n name: 'debitAmount',\n test: function (value) {\n if (!value || value === 0) {\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.DEBITAMOUNTREQUIRED'}),\n })\n }\n return true\n },\n })\n .nullable(),\n }),\n paymentCycle: yup.mixed().when('isDirectDebitFormFeatureEnabled', {\n is: function (isDirectDebitFormFeatureEnabled: any) {\n return isDirectDebitFormFeatureEnabled !== undefined && isDirectDebitFormFeatureEnabled\n },\n then: yup\n .number()\n .typeError(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.DEBITAMOUNTINVALID'}))\n .test({\n name: 'paymentCycle',\n test: function (value) {\n if (!value || value === 0) {\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.PAYMENTCYCLEREQUIRED'}),\n })\n }\n\n return true\n },\n })\n .nullable(),\n }),\n paymentCycleStartDate: yup.mixed().when(['isDirectDebitFormFeatureEnabled', 'paymentCycle'], {\n is: (isDirectDebitFormFeatureEnabled: any, paymentCycle: number) => {\n return isDirectDebitFormFeatureEnabled && paymentCycle > 0\n },\n then: yup\n .date()\n .typeError(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STARTDATEINVALID'}))\n .min(\n new Date(1900, 0, 1),\n intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STARTDATEINVALID'})\n )\n .max(\n new Date(2900, 0, 1),\n intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STARTDATEINVALID'})\n )\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STARTDATEREQUIRED'})),\n }),\n paymentCycleEndDate: yup.mixed().when(['isDirectDebitFormFeatureEnabled', 'paymentCycle'], {\n is: (isDirectDebitFormFeatureEnabled: any, paymentCycle: number) => {\n return isDirectDebitFormFeatureEnabled && paymentCycle > 1\n },\n then: yup\n .date()\n .typeError(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ENDDATEINVALID'}))\n .min(new Date(1900, 0, 1), intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ENDDATEINVALID'}))\n .max(new Date(2900, 0, 1), intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ENDDATEINVALID'}))\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ENDDATEREQUIRED'})),\n }),\n banks: yup\n .array()\n .of(bankSchema)\n .min(1, 'at least 1'),\n })\n \n return schema;\n}\n\nexport default ClientFormValidationSchema\n","import {DatePicker} from '@progress/kendo-react-dateinputs'\n\nimport {FC, useEffect, useState} from 'react'\nimport {Controller} from 'react-hook-form'\nimport {ErrorMessage} from '@hookform/error-message'\n\nimport {IClientsData} from '../../../models/client'\nimport {useFeatureFlags} from '../../../../../context/FeatureFlags'\nimport {blockNonNumericChars} from '../../../../../shared/service/utils'\n\ninterface IProps {\n clientData: IClientsData | undefined\n register: any\n control: any\n setValue: any\n intl: any\n errors: any\n companyDetails: boolean\n isClientDataFeatureEnabled: boolean\n}\n\nconst PersonalData: FC = ({\n clientData,\n register,\n control,\n setValue,\n intl,\n errors,\n companyDetails,\n isClientDataFeatureEnabled,\n}) => {\n return (\n
\n
\n
\n \n \n } />\n
\n
\n \n \n } />\n
\n
\n {!isClientDataFeatureEnabled && (\n <>\n
\n
\n \n \n
\n
\n
\n \n \n \n \n \n
\n } />\n
\n
\n
\n
\n
\n \n \n
\n
\n \n *\n {\n return (\n \n )\n }}\n />\n }\n />\n
\n
\n \n )}\n {!companyDetails && (\n
\n
\n \n *\n \n } />\n
\n
\n \n *\n \n } />\n
\n
\n )}\n \n )\n}\n\nexport default PersonalData\n","import {DatePicker} from '@progress/kendo-react-dateinputs'\nimport {DropDownList} from '@progress/kendo-react-dropdowns'\n\nimport {ChangeEvent, FC, useEffect, useRef, useState} from 'react'\nimport {Controller} from 'react-hook-form'\nimport {ErrorMessage} from '@hookform/error-message'\n\nimport {Country, IClientsData} from '../../../models/client'\nimport {countriesData} from '../../../constant/countries'\n\ninterface IProps {\n clientData: IClientsData | undefined\n register: any\n control: any\n setValue: any\n intl: any\n errors: any\n getValues: any\n watch: any\n isUploadFileFeatureEnabled: boolean\n}\n\nconst IdentifyData: FC = ({\n clientData,\n register,\n control,\n setValue,\n intl,\n errors,\n getValues,\n watch,\n isUploadFileFeatureEnabled,\n}) => {\n const frontImageFileInputRef = useRef(null)\n const backImageFileInputRef = useRef(null)\n\n const [showBackImage, setShowBackImage] = useState(false)\n const [frontImageFile, setFrontImageFile] = useState(null)\n const [frontImageFileName, setFrontImageFileName] = useState('')\n const [backImageFile, setBackImageFile] = useState(null)\n const [backImageFileName, setBackImageFileName] = useState('')\n\n const [previewFrontImage, setPreviewFrontImage] = useState('')\n const [previewBackImage, setPreviewBackImage] = useState('')\n const [previewSavedFrontImage, setPreviewSavedFrontImage] = useState('')\n const [previewSavedBackImage, setPreviewSavedBackImage] = useState('')\n const [minExpiryDate, setMinExpiryDate] = useState(new Date())\n const [maxIssueDate, setMaxIssueDate] = useState(new Date())\n\n useEffect(() => {\n const subscription = watch((data: any) => {\n initImages(data)\n })\n return () => subscription.unsubscribe()\n }, [watch])\n\n useEffect(() => {\n if (clientData) {\n const identify = clientData.identity.toString()\n setShowBackImage(parseInt(identify) !== 1)\n }\n }, [clientData])\n\n const initImages = (data: IClientsData) => {\n if (data['frontImageFile'] === null || data['frontImageFile'] === undefined) {\n setPreviewFrontImage('')\n setPreviewSavedFrontImage('')\n setFrontImageFile(null)\n setFrontImageFileName(null)\n } else {\n const file = data['frontImageFile']\n const objectUrl = URL.createObjectURL(file)\n setPreviewFrontImage(objectUrl)\n setPreviewSavedFrontImage(objectUrl)\n }\n\n if (data['backImageFile'] === null || data['backImageFile'] === undefined) {\n setPreviewBackImage('')\n setPreviewSavedBackImage('')\n setBackImageFile(null)\n setBackImageFileName(null)\n } else {\n const file = data['backImageFile']\n if (file) {\n const objectUrl = URL.createObjectURL(file)\n setPreviewBackImage(objectUrl)\n setPreviewSavedBackImage(objectUrl)\n }\n }\n\n // Initially Saved Image load\n if (\n !data.hasOwnProperty('frontImageFile') &&\n data['frontImageFileName'] &&\n data.files &&\n data.files.length > 0\n ) {\n data.files.forEach((file) => {\n if (file.cIndex === 1) {\n setPreviewSavedFrontImage(file.presignedUrl)\n setPreviewFrontImage(file.presignedUrl)\n } else {\n setPreviewSavedBackImage(file.presignedUrl)\n setPreviewBackImage(file.presignedUrl)\n }\n })\n }\n }\n\n const identityCardHandleChange = (event: ChangeEvent) => {\n const value = event.target.value\n setValue('identity', +value)\n\n if (clientData && +value === 1) {\n setValue('passportCountry', 'AUS')\n }\n\n const isShowBackImage = value !== '1'\n setShowBackImage(isShowBackImage)\n }\n\n const onSaveFrontImageFile = (e: any) => {\n setValue('frontImageFile', e.target.files[0])\n setFrontImageFile(e.target.files[0])\n setFrontImageFileName(e.target.files[0].name)\n\n const objectUrl = URL.createObjectURL(e.target.files[0])\n setPreviewFrontImage(objectUrl)\n setPreviewSavedFrontImage(objectUrl)\n }\n\n const uploadFrontImageFileHandleClick = () => {\n if (frontImageFileInputRef.current) {\n frontImageFileInputRef.current.click()\n }\n }\n\n const uploadBackImageFileHandleClick = () => {\n if (backImageFileInputRef.current) {\n backImageFileInputRef.current.click()\n }\n }\n\n const deleteFrontImageFileHandleClick = () => {\n if (frontImageFileInputRef.current) {\n frontImageFileInputRef.current.value = ''\n }\n\n const updatedFiles = clientData?.files?.find((f) => f?.cIndex !== 1)\n setValue('files', updatedFiles)\n setValue('frontImageFile', null)\n setValue('frontImageFileName', null)\n setFrontImageFile(null)\n setFrontImageFileName(null)\n }\n\n const deleteBackImageFileHandleClick = () => {\n if (backImageFileInputRef.current) {\n backImageFileInputRef.current.value = ''\n }\n\n const updatedFiles = clientData?.files?.find((f) => f?.cIndex !== 2)\n setValue('files', updatedFiles)\n setValue('backImageFile', null)\n setValue('backImageFileName', null)\n setBackImageFile(null)\n setBackImageFileName(null)\n }\n\n const onSaveBackImageFile = (e: any) => {\n setValue('backImageFile', e.target.files[0])\n setBackImageFile(e.target.files[0])\n setBackImageFileName(e.target.files[0].name)\n\n const objectUrl = URL.createObjectURL(e.target.files[0])\n setPreviewBackImage(objectUrl)\n setPreviewSavedBackImage(objectUrl)\n }\n\n // Based on the alternative code structure, hard-coded with several conditional renderings.\n return (\n
\n
\n
\n \n \n \n \n \n \n \n }\n />\n
\n
\n {+getValues('identity') === 1 && (\n
\n
\n \n {\n return (\n {\n onChange(e.value.id)\n }}\n value={value && countriesData.find((x) => x.id === value)}\n style={{width: '100%'}}\n />\n )\n }}\n />\n }\n />\n
\n
\n )}\n
\n
\n \n \n }\n />\n
\n
\n \n {\n return (\n {\n onChange(e)\n const selectedDate = e.value\n if (selectedDate !== null && selectedDate > minExpiryDate)\n setMinExpiryDate(selectedDate)\n else setMinExpiryDate(new Date())\n }}\n />\n )\n }}\n />\n }\n />\n
\n
\n
\n
\n \n \n }\n />\n
\n
\n \n {\n return (\n \n )\n }}\n />\n }\n />\n
\n
\n
\n
\n \n \n
\n\n {isUploadFileFeatureEnabled && (\n
\n \n *\n {previewSavedFrontImage !== '' ? (\n
\n \n {\n setPreviewSavedFrontImage('')\n setPreviewFrontImage('')\n deleteFrontImageFileHandleClick()\n }}\n />\n
\n ) : (\n <>\n \n }\n />\n {!frontImageFile && (\n \n )}\n {previewFrontImage && (\n
\n {frontImageFileName}\n \n
\n )}\n \n )}\n\n {showBackImage && previewSavedBackImage !== '' ? (\n
\n
\n {intl.formatMessage({id: 'ECOMMERCE.FIELD.BACKIMAGE'})}\n
\n \n {\n if (previewSavedFrontImage !== '') {\n setShowBackImage(true)\n }\n\n setPreviewSavedBackImage('')\n deleteBackImageFileHandleClick()\n }}\n />\n
\n ) : (\n <>\n {showBackImage && (\n
\n \n \n {!backImageFile && (\n \n )}\n\n {backImageFile && (\n
\n {backImageFileName}\n \n
\n )}\n
\n )}\n \n )}\n
\n )}\n
\n
\n )\n}\n\nexport default IdentifyData\n","import {\n ComboBox,\n ComboBoxFilterChangeEvent,\n ComboBoxPageChangeEvent,\n} from '@progress/kendo-react-dropdowns'\n\nimport {FC, useCallback, useEffect, useRef, useState} from 'react'\nimport {Controller} from 'react-hook-form'\nimport {ErrorMessage} from '@hookform/error-message'\n\nimport {getBDMList} from '../../../api/ClientApi'\nimport {IClientsData} from '../../../models/client'\nimport {Item} from '../../../models/item'\nimport {transformedBdmDataList} from '../../../transformer/client-transform'\nimport {useFeatureFlags} from '../../../../../context/FeatureFlags'\n\ninterface IProps {\n clientData: IClientsData | undefined\n register: any\n control: any\n setValue: any\n intl: any\n errors: any\n}\n\nconst textField = 'name'\nconst keyField = 'id'\n\nconst emptyItem: Item = {[textField]: 'loading ...', id: 0}\nconst emptyItemBdm: Item = {[textField]: 'loading ...', id: 0}\n\nconst pageSize = 50\nconst pageSizeBdm = 50\n\nconst loadingData: Item[] = []\nwhile (loadingData.length < pageSize) {\n loadingData.push({...emptyItem})\n}\nconst loadingDataBdm: Item[] = []\nwhile (loadingDataBdm.length < pageSizeBdm) {\n loadingDataBdm.push({...emptyItemBdm})\n}\n\nconst StatusData: FC = ({\n clientData,\n register,\n control,\n setValue,\n intl,\n errors,\n}) => {\n const {features} = useFeatureFlags()\n const dataCachingBdm = useRef([])\n const requestStartedBdm = useRef(false)\n const pendingRequestBdm = useRef()\n const skipRef = useRef(0)\n const skipRefBdm = useRef(0)\n const pendingRequest = useRef()\n const requestStarted = useRef(false)\n\n const [dataBDM, setDataBDM] = useState([])\n const [filterBdm, setFilterBdm] = useState('')\n const [totalBdm, setTotalBdm] = useState(0)\n const [isHideBDMDropdownFeatureEnabled, setIsHideBDMDropdownFeatureEnabled] = useState(false)\n\n useEffect(() => {\n requestDataBDM(0, '')\n return () => {\n resetCachBdm()\n }\n }, [filterBdm])\n\n useEffect(() => {\n if (features.some((feature) => feature.name === 'HideBDMDropdownFeature')) {\n setIsHideBDMDropdownFeatureEnabled(true)\n }\n }, [features])\n\n useEffect(() => {\n setValue('isHideBDMDropdownFeatureEnabled', isHideBDMDropdownFeatureEnabled)\n }, [isHideBDMDropdownFeatureEnabled])\n\n const requestData = useCallback((skip: number, filter: string) => {\n if (requestStarted.current) {\n clearTimeout(pendingRequest.current)\n pendingRequest.current = setTimeout(() => {\n requestData(skip, filter)\n }, 50)\n return\n }\n }, [])\n\n const resetCachBdm = () => {\n dataCachingBdm.current.length = 0\n }\n\n const requestDataBDM = useCallback((skip: number, filter: string) => {\n if (requestStartedBdm.current) {\n clearTimeout(pendingRequestBdm.current)\n pendingRequestBdm.current = setTimeout(() => {\n requestDataBDM(skip, filter)\n }, 50)\n return\n }\n\n fetchDropdownDataBdm(pageSizeBdm, skip, filter)\n }, [])\n\n const getResourceBDMData = (value: any) => {\n return dataBDM.find((resource) => resource.name === value)\n }\n\n const onFilterChangeBdm = useCallback((event: ComboBoxFilterChangeEvent) => {\n const filter = event.filter.value\n\n resetCachBdm()\n requestDataBDM(0, filter)\n\n setDataBDM(loadingDataBdm)\n skipRefBdm.current = 0\n setFilterBdm(filterBdm)\n }, [])\n\n const fetchDropdownDataBdm = async (take: any, skip: any, search: any) => {\n const dataFromApi = await getBDMList(take, skip, search) // Replace 'getBankList()' with your API call\n const transFormBdmData = transformedBdmDataList(dataFromApi)\n transFormBdmData.forEach((element: any, index: any) => {\n dataCachingBdm.current[index + skip] = element\n })\n if (skip === skipRef.current) {\n setDataBDM(transFormBdmData)\n setTotalBdm(totalBdm)\n }\n requestStartedBdm.current = false\n setDataBDM(transFormBdmData)\n }\n\n const shouldRequestDataBdm = useCallback((skip) => {\n for (let i = 0; i < pageSizeBdm; i++) {\n if (!dataCachingBdm.current[skip + i]) {\n return true\n }\n }\n return false\n }, [])\n\n const getCachedDataBdm = useCallback((skip) => {\n const data: Array = []\n for (let i = 0; i < pageSizeBdm; i++) {\n data.push(dataCachingBdm.current[i + skip] || {...emptyItemBdm})\n }\n return data\n }, [])\n\n const pageChangeBdm = useCallback(\n (event: ComboBoxPageChangeEvent) => {\n const newSkip = event.page.skip\n\n if (shouldRequestDataBdm(newSkip)) {\n requestDataBDM(newSkip, filterBdm)\n }\n\n const dataBdm = getCachedDataBdm(newSkip)\n\n setDataBDM(dataBdm)\n skipRefBdm.current = newSkip\n },\n [getCachedDataBdm, requestDataBDM, shouldRequestDataBdm, filterBdm]\n )\n\n // Based on the alternative code structure, hard-coded with several conditional renderings.\n return (\n
\n
\n
\n
\n \n \n \n \n \n }\n />\n
\n {!isHideBDMDropdownFeatureEnabled ? (\n
\n \n (\n {\n const selectedItem = event.target.value\n\n if (selectedItem) {\n const value = selectedItem\n ? event.target.value.name + '||' + event.target.value.id\n : 'undefined'\n if (typeof event.target.value === 'object') {\n // Code block to handle the case when event.target.value is an object\n onChange(event.target.value.text)\n } else if (typeof event.target.value === 'string') {\n // Code block to handle the case when event.target.value is a string\n onChange(selectedItem)\n } else {\n // Code block for other data types (e.g., numbers, arrays, etc.)\n onChange(value)\n }\n } else {\n onChange('')\n }\n }}\n onPageChange={pageChangeBdm}\n />\n )}\n rules={{required: 'Resource is required'}}\n />\n }\n />\n
\n ) : null}\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n )\n}\n\nexport default StatusData\n","import {ChangeEvent, FC, useEffect, useState} from 'react'\nimport {Controller} from 'react-hook-form'\nimport {DatePicker} from '@progress/kendo-react-dateinputs'\nimport {ErrorMessage} from '@hookform/error-message'\nimport {NumericTextBox} from '@progress/kendo-react-inputs'\n\nimport CustomCalendar from './CustomCalendar'\nimport {PaymentCycleType} from '../../../constant/config-default'\nimport {IClientsData} from '../../../models/client'\n\ninterface IProps {\n clientData: IClientsData | undefined\n register: any\n control: any\n setValue: any\n intl: any\n watch: any\n errors: any\n}\n\nconst DirectDebit: FC = ({\n clientData,\n register,\n control,\n setValue,\n intl,\n watch,\n errors,\n}) => {\n // Based on the alternative code structure, hard-coded with several conditional renderings.\n return (\n
\n \n
\n
\n \n
\n
\n
\n
\n \n {\n return (\n \n )\n }}\n />\n }\n />\n
\n
\n
\n )\n}\n\nexport default DirectDebit\n","import {\n ComboBox,\n ComboBoxFilterChangeEvent,\n ComboBoxPageChangeEvent,\n} from '@progress/kendo-react-dropdowns'\n\nimport {useCallback, useEffect, useState, useRef, FC} from 'react'\nimport {Controller, useFieldArray} from 'react-hook-form'\n\nimport {IClientBankData} from '../../../models/client'\nimport {IClientsData} from '../../../models/client'\nimport {Item} from '../../../models/item'\nimport {getBankList} from '../../../api/ClientApi'\nimport {transformedBankDataList} from '../../../transformer/client-transform'\nimport {blockNonNumericChars} from '../../../../../shared/service/utils'\nimport {useFeatureFlags} from '../../../../../context/FeatureFlags'\nimport { boolean } from 'yup'\n\ninterface IProps {\n clientData: IClientsData | undefined\n register: any\n control: any\n setValue: any\n intl: any\n errors: any\n duplicatedBankIndexes: {\n clientIndex: number\n conflictingIndexes: number[]\n wrongNameIndexes: number[]\n }[]\n onSetBankListData(items: any): any\n isAllowedNoBankFeatureEnable: boolean\n}\n\nconst BankDetailsSection: FC = ({\n clientData,\n register,\n control,\n setValue,\n intl,\n errors,\n duplicatedBankIndexes,\n onSetBankListData,\n isAllowedNoBankFeatureEnable\n}) => {\n const {features} = useFeatureFlags()\n\n const [bankListData, setBankListData] = useState([])\n const [bankFilter, setBankFilter] = useState('')\n const [bankTotal, setBankTotal] = useState(0)\n const {fields, append, remove} = useFieldArray({name: 'banks', control})\n\n const textField = 'name'\n const bankPageSize = 50\n const bankSkipRef = useRef(0)\n const emptyBankItem: Item = {[textField]: 'loading ...', id: 0}\n const requestStarted = useRef(false)\n const pendingRequest = useRef()\n const dataCaching = useRef([])\n const loadingData: Item[] = []\n while (loadingData.length < bankPageSize) {\n loadingData.push({...emptyBankItem})\n }\n const [isMultipleBankAccountsFeatureEnabled, setIsMultipleBankAccountsFeatureEnabled] =\n useState(false)\n\n useEffect(() => {\n if (features.some((feature) => feature.name === 'MultipleBankAccountsFeature')) {\n setIsMultipleBankAccountsFeatureEnabled(true)\n }\n }, [features])\n\n useEffect(() => {\n requestData(0, bankFilter)\n return () => {\n resetCach()\n }\n }, [bankFilter])\n\n useEffect(() => {\n if (fields.length === 0) {\n addBankDetail()\n }\n }, [fields])\n\n const requestData = useCallback((skip: number, filter: string) => {\n if (requestStarted.current) {\n clearTimeout(pendingRequest.current)\n pendingRequest.current = setTimeout(() => {\n requestData(skip, filter)\n }, 50)\n return\n }\n\n fetchDropdownDataBank(bankPageSize, skip, filter)\n }, [])\n\n const onFilterChange = useCallback((event: ComboBoxFilterChangeEvent) => {\n const filter = event.filter.value\n resetCach()\n requestData(0, filter)\n setBankListData(loadingData)\n onSetBankListData(loadingData)\n bankSkipRef.current = 0\n setBankFilter(filter)\n }, [])\n\n const shouldRequestData = useCallback((skip) => {\n for (let i = 0; i < bankPageSize; i++) {\n if (!dataCaching.current[skip + i]) {\n return true\n }\n }\n return false\n }, [])\n\n const getCachedData = useCallback((skip) => {\n const data: Array = []\n for (let i = 0; i < bankPageSize; i++) {\n data.push(dataCaching.current[i + skip] || {...emptyBankItem})\n }\n return data\n }, [])\n\n const pageChange = useCallback(\n (event: ComboBoxPageChangeEvent) => {\n if (event.page.skip) {\n const newSkip = event.page.skip || 0\n\n if (shouldRequestData(newSkip)) {\n requestData(newSkip, bankFilter)\n }\n\n const data = getCachedData(newSkip)\n\n setBankListData(data)\n onSetBankListData(data)\n bankSkipRef.current = newSkip\n }\n },\n [getCachedData, requestData, shouldRequestData, bankFilter]\n )\n\n const fetchDropdownDataBank = async (take: any, skip: any, search: any) => {\n const dataFromApi = await getBankList(take, skip, search) // Replace 'getBankList()' with your API call\n const transFormBankData = transformedBankDataList(dataFromApi)\n transFormBankData.forEach((element: any, index: any) => {\n dataCaching.current[index + skip] = element\n })\n\n if (skip === bankSkipRef.current) {\n setBankListData(transFormBankData)\n setBankTotal(bankTotal)\n }\n requestStarted.current = false\n setBankListData(transFormBankData)\n onSetBankListData(transFormBankData)\n }\n\n const resetCach = () => {\n dataCaching.current.length = 0\n }\n\n const getResourceBankData = (value: any) => {\n return bankListData.find((resource) => resource.name === value)\n }\n\n const addBankDetail = () => {\n const newField: IClientBankData = {\n id: 0,\n bankName: '',\n bsb1: '',\n bsb2: '',\n bankAccountNumber: '',\n bankAccountName: '',\n bankBranch: '',\n bankDescription: '',\n isAllowedNoBankFeatureEnable: isAllowedNoBankFeatureEnable\n }\n append(newField)\n }\n\n return (\n
\n \n {!isMultipleBankAccountsFeatureEnabled && (\n
\n
\n \n
\n
\n \n {intl.formatMessage({id: 'ECOMMERCE.FIELD.BANKADD'})}\n \n
\n
\n )}\n {fields.map((field, index) => (\n
\n
\n
\n \n \n\n (\n item.conflictingIndexes && item.conflictingIndexes.length > 0\n ) ||\n duplicatedBankIndexes.some(\n (item) => item.wrongNameIndexes && item.wrongNameIndexes.length > 0\n )))\n ? ' border-danger'\n : ''\n }`}\n onChange={(event) => {\n const selectedItem = event.target.value\n\n if (selectedItem) {\n const value = selectedItem\n ? event.target.value.name + '||' + event.target.value.id\n : 'undefined'\n if (typeof event.target.value === 'object') {\n // Code block to handle the case when event.target.value is an object\n onChange(event.target.value.text)\n } else if (typeof event.target.value === 'string') {\n // Code block to handle the case when event.target.value is a string\n onChange(selectedItem)\n } else {\n // Code block for other data types (e.g., numbers, arrays, etc.)\n onChange(value)\n }\n } else {\n onChange('')\n }\n }}\n onPageChange={pageChange}\n />\n )}\n rules={{required: 'Resource is required'}}\n />\n {errors.banks && errors.banks[index] && errors.banks[index].bankName && (\n \n {errors.banks[index].bankName.message}\n \n )}\n {duplicatedBankIndexes.length > 0 &&\n duplicatedBankIndexes.some(\n (item) => item.conflictingIndexes && item.conflictingIndexes.length > 0\n ) && (\n \n {intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BANKNAMEUNIQUE'})}\n \n )}\n {duplicatedBankIndexes.length > 0 &&\n duplicatedBankIndexes.some(\n (item) => item.wrongNameIndexes && item.wrongNameIndexes.length > 0\n ) && (\n \n {intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BANKNAMEREQUIRED'})}\n \n )}\n
\n
\n
\n \n
\n item.conflictingIndexes && item.conflictingIndexes.length > 0\n ))\n ? ' border-danger'\n : ''\n }`}\n maxLength={3}\n {...register(`banks[${index}].bsb1`)}\n />\n
\n
\n \n
\n
\n item.conflictingIndexes && item.conflictingIndexes.length > 0\n ))\n ? ' border-danger'\n : ''\n }`}\n maxLength={3}\n {...register(`banks[${index}].bsb2`)}\n />\n
\n {errors.banks && errors.banks[index] && errors.banks[index].bsb1 && (\n {errors.banks[index].bsb1.message}\n )}\n {errors.banks && errors.banks[index] && errors.banks[index].bsb2 && (\n {errors.banks[index].bsb2.message}\n )}\n {duplicatedBankIndexes.length > 0 &&\n duplicatedBankIndexes.some(\n (item) => item.conflictingIndexes && item.conflictingIndexes.length > 0\n ) && (\n \n {intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BANKBSBUNIQUE'})}\n \n )}\n
\n
\n
\n {fields.length > 1 ? (\n remove(index)}\n >\n {intl.formatMessage({id: 'ACTION.REMOVE'})}\n \n ) : null}\n
\n
\n
\n
\n \n item.conflictingIndexes && item.conflictingIndexes.length > 0\n ))\n ? ' border-danger'\n : ''\n }`}\n placeholder={\n intl.formatMessage({id: 'ECOMMERCE.FIELD.ENTER'}) +\n ' ' +\n intl.formatMessage({id: 'ECOMMERCE.FIELD.BANKACCOUNTNUMBER'})\n }\n onKeyPress={blockNonNumericChars}\n {...register(`banks[${index}].bankAccountNumber`)}\n />\n {errors.banks && errors.banks[index] && errors.banks[index].bankAccountNumber && (\n \n {errors.banks[index].bankAccountNumber.message}\n \n )}\n {duplicatedBankIndexes.length > 0 &&\n duplicatedBankIndexes.some(\n (item) => item.conflictingIndexes && item.conflictingIndexes.length > 0\n ) && (\n \n {intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BANKACCOUNTNUMBERUNIQUE'})}\n \n )}\n
\n
\n \n item.conflictingIndexes && item.conflictingIndexes.length > 0\n ))\n ? ' border-danger'\n : ''\n }`}\n placeholder={\n intl.formatMessage({id: 'ECOMMERCE.FIELD.ENTER'}) +\n ' ' +\n intl.formatMessage({id: 'ECOMMERCE.FIELD.BANKACCOUNTNAME'})\n }\n {...register(`banks[${index}].bankAccountName`)}\n />\n {errors.banks && errors.banks[index] && errors.banks[index].bankAccountName && (\n \n {errors.banks[index].bankAccountName.message}\n \n )}\n {duplicatedBankIndexes.length > 0 &&\n duplicatedBankIndexes.some(\n (item) => item.conflictingIndexes && item.conflictingIndexes.length > 0\n ) && (\n \n {intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BANKACCOUNTNAMEUNIQUE'})}\n \n )}\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n ))}\n
\n )\n}\n\nexport default BankDetailsSection\n","import {DropDownList} from '@progress/kendo-react-dropdowns'\nimport {DatePicker} from '@progress/kendo-react-dateinputs'\n\nimport {FC} from 'react'\nimport {Controller} from 'react-hook-form'\nimport {ErrorMessage} from '@hookform/error-message'\n\nimport {IClientsData} from '../../../models/client'\nimport {countriesData} from '../../../constant/countries'\n\ninterface IProps {\n clientData: IClientsData | undefined\n register: any\n control: any\n setValue: any\n intl: any\n errors: any\n}\n\nconst PersonalCommonData: FC = ({\n clientData,\n register,\n control,\n setValue,\n intl,\n errors,\n}) => {\n // Based on the alternative code structure, hard-coded with several conditional renderings.\n return (\n
\n
\n
\n \n *\n \n } />\n
\n
\n \n \n
\n
\n
\n
\n \n \n } />\n
\n
\n \n \n } />\n
\n
\n \n \n } />\n
\n
\n
\n
\n \n {\n return (\n {\n onChange(e.value.id)\n }}\n defaultValue={countriesData.find((x) => x.id === value)}\n style={{width: '100%'}}\n />\n )\n }}\n />\n } />\n
\n
\n
\n )\n}\n\nexport default PersonalCommonData\n","import React from 'react'\nimport {\n Calendar,\n CalendarCell,\n CalendarCellProps,\n CalendarProps,\n} from '@progress/kendo-react-dateinputs'\nimport {PaymentCycleType} from '../../../constant/config-default'\n\ninterface CustomCalendarProps extends CalendarProps {\n selectedPaymentCycleType: number\n paymentCycleStartDate: Date\n}\n\nconst CustomCalendar: React.FC = ({\n selectedPaymentCycleType,\n paymentCycleStartDate,\n ...props\n}) => {\n const customCell = (cellProps: CalendarCellProps) => {\n const style: React.CSSProperties = {}\n const startDate = new Date(paymentCycleStartDate)\n\n const paymentCycleDayOfWeek = startDate.getDay()\n // Check if the date is on the specified day of the week\n const dayOfWeek = cellProps.value.getDay()\n\n if (parseInt(selectedPaymentCycleType.toString()) === PaymentCycleType.Weekly) {\n if (dayOfWeek === paymentCycleDayOfWeek && cellProps.value > startDate) {\n style.fontWeight = 'bold'\n style.color = 'red' // Emphasize by changing text color\n return \n }\n } else if (parseInt(selectedPaymentCycleType.toString()) === PaymentCycleType.Fortnite) {\n // Calculate the difference in days between the current date and startDate\n const timeDifference = cellProps.value.getTime() - startDate.getTime()\n const daysDifference = Math.floor(timeDifference / (1000 * 60 * 60 * 24))\n\n // Check if the days difference is a multiple of 14 (per 2 weeks) and the date is greater than startDate\n if (daysDifference >= 0 && daysDifference % 14 === 0 && cellProps.value > startDate) {\n style.fontWeight = 'bold'\n style.color = 'red' // Emphasize by changing text color\n return \n }\n } else if (parseInt(selectedPaymentCycleType.toString()) === PaymentCycleType.Monthly) {\n const currentDate = cellProps.value\n const dayOfMonth = startDate.getDate()\n\n // Calculate the difference in months\n const monthsDifference =\n (currentDate.getFullYear() - startDate.getFullYear()) * 12 +\n currentDate.getMonth() -\n startDate.getMonth()\n\n // Check if it's the same day of the month as startDate\n if (\n monthsDifference >= 0 &&\n monthsDifference % 1 === 0 &&\n currentDate.getDate() === dayOfMonth\n ) {\n style.fontWeight = 'bold'\n style.color = 'red' // Emphasize by changing text color\n return \n }\n }\n return \n }\n\n return \n}\n\nexport default CustomCalendar\n","import {ChangeEvent, FC, useEffect, useState} from 'react'\nimport {Controller} from 'react-hook-form'\nimport {DatePicker} from '@progress/kendo-react-dateinputs'\nimport {ErrorMessage} from '@hookform/error-message'\nimport {NumericTextBox} from '@progress/kendo-react-inputs'\n\nimport CustomCalendar from './CustomCalendar'\nimport {PaymentCycleType} from '../../../constant/config-default'\nimport {IClientsData} from '../../../models/client'\nimport moment from 'moment'\nimport {paymentCycleOptions} from '../../../constant/date'\n\ninterface IProps {\n clientData: IClientsData | undefined\n register: any\n control: any\n setValue: any\n intl: any\n watch: any\n errors: any\n}\n\nconst PaymentTerm: FC = ({\n clientData,\n register,\n control,\n setValue,\n intl,\n watch,\n errors,\n}) => {\n const [selectedPaymentCycleType, setSelectedPaymentCycleType] = useState(0)\n const paymentCycleStartDate = watch('paymentCycleStartDate')\n const [isInitialLoad, setisInitialLoad] = useState(true)\n const [maxPaymentCycleStartDate, setMaxPaymentCycleStartDate] = useState(new Date())\n\n useEffect(() => {\n // It first monitors PaymentCycleStartDate 3 times, so you should configure the initial load to establish the initial PaymentCycleEndDate.\n setTimeout(() => {\n setisInitialLoad(false)\n }, 500)\n }, [])\n\n useEffect(() => {\n if (clientData) setSelectedPaymentCycleType(clientData?.paymentCycle || 0)\n }, [clientData])\n\n useEffect(() => {\n // Update the end date / day of week based on the start date\n // selectedPaymentCycleType = 0, 1 doesn't have end date, so ignored\n if (\n !isInitialLoad &&\n paymentCycleStartDate &&\n selectedPaymentCycleType > PaymentCycleType.OneTime\n ) {\n setValue('paymentCycleEndDate', calcEndDate())\n }\n }, [paymentCycleStartDate, selectedPaymentCycleType])\n\n const handleChangePaymentCycle = (event: ChangeEvent) => {\n const value = event.target.value\n setSelectedPaymentCycleType(parseInt(value))\n setValue('paymentCycle', value)\n }\n\n const calcEndDate = () => {\n // Calculate the end date (x days from the selected start date and selectedPaymentCycleType)\n const endOfWeekDate = new Date(paymentCycleStartDate)\n if (parseInt(selectedPaymentCycleType.toString()) !== PaymentCycleType.Monthly) {\n const endList = [7, 14]\n const caledEndDate = endOfWeekDate.getDate() + endList[selectedPaymentCycleType - 2]\n endOfWeekDate.setDate(caledEndDate)\n } else {\n endOfWeekDate.setMonth(endOfWeekDate.getMonth() + 1)\n }\n\n return endOfWeekDate\n }\n\n // Based on the alternative code structure, hard-coded with several conditional renderings.\n return (\n
\n
\n
\n \n
\n
\n
\n
\n \n \n {paymentCycleOptions.map((option) => (\n \n ))}\n \n }\n />\n
\n
\n {selectedPaymentCycleType > 0 && (\n
\n
\n \n {\n var date = moment(value)\n return (\n \n )\n }}\n />\n }\n />\n
\n {selectedPaymentCycleType > 1 && (\n
\n \n {\n var date = moment(value)\n\n return (\n (\n \n )}\n />\n )\n }}\n />\n }\n />\n
\n )}\n
\n )}\n
\n \n \n }\n />\n
\n
\n )\n}\n\nexport default PaymentTerm\n","import {FC} from 'react'\n\nimport PersonalData from './client-form/PersonalData'\nimport IdentifyData from './client-form/IdentifyData'\nimport StatusData from './client-form/StatusData'\nimport DirectDebit from './client-form/DirectDebit'\nimport BankDetailsSection from './client-form/BankDetailSection'\nimport {IClientsData} from '../../models/client'\nimport PersonalCommonData from './client-form/PersonalCommonData'\nimport PaymentTerm from './client-form/PaymentTerm'\n\ninterface IProps {\n clientData: IClientsData | undefined\n register: any\n control: any\n setValue: any\n intl: any\n errors: any\n watch: any\n companyDetails: boolean\n getValues: any\n isIdentityDataFeatureEnabled: boolean\n isDirectDebitFormFeatureEnabled: boolean\n isUploadFileFeatureEnabled: boolean\n isClientDataFeatureEnabled: boolean\n duplicatedBankIndexes: {clientIndex: number; conflictingIndexes: number[], wrongNameIndexes: number[]}[]\n onSetBankListData(items: any): any\n isAllowedNoBankFeatureEnable: boolean\n}\n\nconst ClientFormFields: FC = ({\n register,\n control,\n intl,\n errors,\n setValue,\n clientData,\n watch,\n companyDetails,\n getValues,\n isIdentityDataFeatureEnabled,\n isDirectDebitFormFeatureEnabled,\n isUploadFileFeatureEnabled,\n isClientDataFeatureEnabled,\n duplicatedBankIndexes,\n onSetBankListData,\n isAllowedNoBankFeatureEnable\n}) => {\n return (\n <>\n \n {!companyDetails && (\n \n )}\n {!isIdentityDataFeatureEnabled && (\n <>\n
\n
\n \n \n )}\n\n {companyDetails && (\n <>\n
\n
\n \n \n )}\n\n
\n
\n\n \n
\n
\n\n \n \n {clientData && isDirectDebitFormFeatureEnabled && (\n <>\n
\n
\n \n \n )}\n\n {clientData && isDirectDebitFormFeatureEnabled && (\n <>\n
\n
\n \n \n )}\n \n )\n}\n\nexport default ClientFormFields\n","import { FC, useContext } from 'react'\nimport { Modal } from 'react-bootstrap-v5'\nimport { useIntl } from 'react-intl'\n\nimport { IClientsData } from '../../models/client'\nimport { ClientContext } from '../../context/ClientContext'\nimport { deleteClient } from '../../api/ClientApi'\nimport { ButtonModal } from '../../../../../_metronic/partials/content/button/modal/ButtonModal'\nimport { getErrorMessage } from '../../../../shared/service/utils'\n\ninterface IProps {\n show: boolean\n handleClose: () => void\n clientData?: IClientsData\n deleteCallback: (errorMessage?: string) => void\n}\n\nconst DeleteClientModal: FC = ({ show, handleClose, clientData, deleteCallback }) => {\n const intl = useIntl()\n const { setContextToaster } = useContext(ClientContext)\n\n const deleteUserHandler = async () => {\n if (clientData) {\n try {\n const [, error] = await deleteClient(clientData?.unqId || '')\n\n setContextToaster({\n message: intl.formatMessage({ id: 'CLIENT.DELETEMESSAGE' }),\n header: intl.formatMessage({ id: 'CLIENT.DELETEHEADER' }),\n type: 'primary',\n })\n\n if (error) {\n throw error\n } else {\n deleteCallback()\n }\n } catch (error) {\n const errorMessage = getErrorMessage(error)\n deleteCallback(errorMessage)\n setContextToaster({\n message: errorMessage,\n header: `Error Removing Client`,\n type: 'danger',\n })\n }\n }\n }\n\n return (\n \n \n {intl.formatMessage({ id: 'CLIENT.DELETEUSER' })}\n \n \n

{intl.formatMessage({ id: 'CLIENT.DELETEWARNNING' })}

\n
\n \n \n \n
\n )\n}\n\nexport { DeleteClientModal }\n","import { Notification, NotificationGroup } from '@progress/kendo-react-notification'\nimport { Slide } from '@progress/kendo-react-animation'\n\nimport { FC, Fragment, useEffect, useContext, useState } from 'react'\nimport { Resolver, useForm } from 'react-hook-form'\nimport { useHistory } from 'react-router-dom'\nimport { useIntl } from 'react-intl'\nimport { ErrorMessage } from '@hookform/error-message'\nimport { yupResolver } from '@hookform/resolvers/yup'\nimport * as yup from 'yup'\n\nimport { CustomAlert, IAlert } from '../../../../shared/components/CustomAlert'\nimport { CLIENT_DATA_FORM_DEFAULT } from '../../constant/client-default'\nimport { ClientContext } from '../../context/ClientContext'\nimport { IClientsData } from '../../models/client'\nimport { createClient, updateClient } from '../../api/ClientApi'\nimport {\n getUTCDate,\n blockNonNumericChars,\n getErrorMessage,\n} from '../../../../shared/service/utils'\nimport { ClientType } from '../../constant/config-default'\nimport ClientFormValidationSchema from '../../validators/client-form'\nimport ClientFormFields from './ClientFormFields'\nimport { DeleteClientModal } from './DeleteClientModal'\nimport { useFeatureFlags } from '../../../../context/FeatureFlags'\nimport { Item } from '../../models/item'\n\ninterface IProps {\n clientData?: IClientsData[]\n}\n\nconst loadingPanel = (\n
\n Loading\n
\n
\n
\n)\n\nconst PocFields: Array = [\n 'firstName',\n 'lastName',\n 'englishName',\n 'sex',\n 'occupation',\n 'dateOfBirth',\n 'identity',\n 'passportCountry',\n 'issuedBy',\n 'issuedDate',\n 'identityNumber',\n 'expiryDate',\n 'holderName',\n 'frontImageFileName',\n 'backImageFileName',\n 'files',\n 'frontImageFile',\n 'backImageFile',\n]\n\nconst excludeFields: Array = [\n 'id',\n 'unqId',\n 'created',\n 'bankName',\n 'bsb1',\n 'bsb2',\n 'bankAccountNumber',\n 'bankAccountName',\n 'bankBranch',\n 'bankDescription',\n]\n\nconst keysToInclude: Array = [\n 'debitAmount',\n 'paymentCycle',\n 'paymentCycleDayOfMonth',\n 'paymentCycleDayOfWeek',\n 'paymentCycleOccurrence',\n 'paymentCycleDescription',\n 'paymentCycleStartDate',\n 'paymentCycleEndDate',\n]\n\nconst ClientForm: FC = ({ clientData }) => {\n const intl = useIntl()\n const history = useHistory()\n const { features } = useFeatureFlags()\n const { setContextToaster } = useContext(ClientContext)\n\n const [formNotification, setformNotification] = useState()\n const [isSaving, setIsSaving] = useState(false)\n const [companyDetails, setcompanyDetails] = useState(false)\n const [isAllowNoBank, setIsAllowNoBank] = useState(false)\n\n const [selectedClientType, setSelectedClientType] = useState('')\n\n const [isClientTypeSelectionFeatureEnabled, setIsClientTypeSelectionFeatureEnabled] =\n useState(false)\n const [isMultiplePOCFeatureEnabled, setIsMultiplePOCFeatureEnabled] = useState(false)\n\n const [errorMessage, setErrorMessage] = useState({\n error: false,\n message: '',\n })\n const [hasError, setHasError] = useState<{\n tabIndexs: number[]\n status: boolean\n bankIndexes: { clientIndex: number; conflictingIndexes: number[]; wrongNameIndexes: number[] }[]\n }>({\n tabIndexs: [],\n status: false,\n bankIndexes: [],\n })\n const [activeTabIndex, setActiveTabIndex] = useState(0)\n const [showAddButton, setShowAddButton] = useState(true)\n const [clients, setClients] = useState([])\n const [showDeleteModal, setShowDeleteModal] = useState({ isDelete: false, index: -1 })\n const [isIdentityDataFeatureEnabled, setIsIdentityDataFeatureEnabled] = useState(false)\n const [isDirectDebitFormFeatureEnabled, setIsDirectDebitFormFeatureEnabled] = useState(false)\n const [isUploadFileFeatureEnabled, setIsUploadFileFeatureEnabled] = useState(false)\n const [isClientDataFeatureEnabled, setIsClientDataFeatureEnabled] = useState(false)\n const [bankListData, setBankListData] = useState([])\n\n const defaultValues =\n Array.isArray(clientData) && clientData.length > 0 ? clientData[activeTabIndex] : undefined\n const [isAllowedNoBankFeatureEnable, setIsAllowedNoBankFeatureEnable] = useState(false)\n const clientFormValidationSchema = ClientFormValidationSchema()\n const {\n register,\n control,\n handleSubmit,\n formState: { errors },\n reset,\n watch,\n setValue,\n getValues,\n trigger,\n } = useForm({\n defaultValues,\n reValidateMode: 'onSubmit',\n resolver: yupResolver(clientFormValidationSchema) as unknown as Resolver,\n })\n\n const clientType = watch('clientType')\n\n useEffect(() => {\n if (errors && Object.keys(errors || {}).length !== 0) {\n checkErrors([])\n }\n }, [errors])\n\n useEffect(() => {\n if (clientType === ClientType.Company) {\n setcompanyDetails(true)\n }\n setSelectedClientType(clientType === ClientType.Company ? 'Company' : 'Individual')\n }, [clientType])\n\n useEffect(() => {\n // Initialize the clients / hook form inputs\n if (clientData) {\n let allClientsData: IClientsData[] = [...clientData]\n for (let index = 0; index < clientData.length; index++) {\n const currentClient = clientData[index]\n const files = currentClient?.files || []\n const updatedClient = {\n ...currentClient,\n clientType: currentClient.clientType || 1,\n companyName: currentClient.companyName || '',\n abnacn: currentClient.abnacn || '',\n mobile: currentClient.mobile || 0,\n email: currentClient.email || '',\n dateOfBirth: new Date(currentClient.dateOfBirth || ''),\n issuedDate: new Date(currentClient.issuedDate || ''),\n expiryDate: new Date(currentClient.expiryDate || ''),\n paymentCycleStartDate: new Date(currentClient.paymentCycleStartDate || ''),\n paymentCycleEndDate: new Date(currentClient.paymentCycleEndDate || ''),\n country: currentClient.country || 'AUS',\n passportCountry: currentClient.passportCountry || 'AUS',\n frontImageFileName: files.find(\n (f) => f.cType === currentClient.identity && f.cIndex === 1\n )?.name,\n backImageFileName: files.find((f) => f.cType === currentClient.identity && f.cIndex === 2)\n ?.name,\n isUploadFileFeatureEnabled:\n features.some((feature) => feature.name === 'UploadFileFeature') || false,\n isPlentyPayHideFeatureEnabled:\n features.some((feature) => feature.name === 'PlentyPayHideFeature') || false,\n isClientDataFeatureEnabled:\n features.some((feature) => feature.name === 'ClientDataFeature') || false,\n isIdentityDataFeatureEnabled:\n features.some((feature) => feature.name === 'IdentityDataFeature') || false,\n isHideBDMDropdownFeatureEnabled:\n features.some((feature) => feature.name === 'HideBDMDropdownFeature') || false,\n isDirectDebitFormFeatureEnabled:\n features.some((feature) => feature.name === 'DirectDebitFormFeature') || false,\n isClientTypeSelectionFeatureEnabled:\n features.some((feature) => feature.name === 'ClientTypeSelectionFeature') || false,\n isMultiplePOCFeatureEnabled:\n features.some((feature) => feature.name === 'MultiplePOCFeature') || false,\n isAllowedNoBankFeatureEnable:\n features.some((feature) => feature.name === 'AllowedNonBankFeatureEnable') || false\n }\n\n // Update the specific client within the array\n allClientsData[index] = {\n ...allClientsData[index],\n ...updatedClient,\n }\n }\n\n // Update the specific client data in the copied array\n setClients(allClientsData)\n reset(allClientsData[activeTabIndex])\n } else {\n setClients([...clients, CLIENT_DATA_FORM_DEFAULT])\n reset(CLIENT_DATA_FORM_DEFAULT)\n }\n }, [clientData, features, reset])\n\n // useEffect(() => {\n // // Whenever you switch tabs, populate the input fields with the selected client's data.\n // reset(clients[activeTabIndex])\n // }, [activeTabIndex, reset])\n\n useEffect(() => {\n if (hasError.status && hasError.tabIndexs.includes(activeTabIndex)) trigger(PocFields)\n }, [activeTabIndex, hasError])\n\n useEffect(() => {\n if (clients && clients.length > 2) setShowAddButton(false)\n }, [clients])\n\n useEffect(() => {\n // Manually set the flags for the current client form.\n if (features.some((feature) => feature.name === 'UploadFileFeature')) {\n setIsUploadFileFeatureEnabled(true)\n setValue('isUploadFileFeatureEnabled', true)\n }\n if (features.some((feature) => feature.name === 'ClientTypeSelectionFeature')) {\n setIsClientTypeSelectionFeatureEnabled(true)\n setValue('isClientTypeSelectionFeatureEnabled', true)\n }\n if (features.some((feature) => feature.name === 'MultiplePOCFeature')) {\n setIsMultiplePOCFeatureEnabled(true)\n setValue('isMultiplePOCFeatureEnabled', true)\n }\n if (features.some((feature) => feature.name === 'DirectDebitFormFeature')) {\n setIsDirectDebitFormFeatureEnabled(true)\n setValue('isDirectDebitFormFeatureEnabled', true)\n }\n if (features.some((feature) => feature.name === 'IdentityDataFeature')) {\n setIsIdentityDataFeatureEnabled(true)\n setValue('isIdentityDataFeatureEnabled', true)\n }\n if (features.some((feature) => feature.name === 'HideBDMDropdownFeature')) {\n setValue('isHideBDMDropdownFeatureEnabled', true)\n }\n if (features.some((feature) => feature.name === 'ClientDataFeature')) {\n setIsClientDataFeatureEnabled(true)\n setValue('isClientDataFeatureEnabled', true)\n }\n if (features.some((feature) => feature.name === 'AllowedNoBankFeatureEnable')) {\n setIsAllowedNoBankFeatureEnable(true)\n }\n }, [features, activeTabIndex])\n\n useEffect(() => {\n handleClientImageNames()\n }, [clients, activeTabIndex])\n\n useEffect(() => {\n // Update clients by input changes\n const subscription = watch((value) => {\n const fields = Object.keys(value)\n\n // Create a deep copy of clients to avoid mutation\n const updatedClientsData = [...clients]\n\n if (\n updatedClientsData.length > 0 &&\n !areObjectsEqual(updatedClientsData[activeTabIndex], value)\n ) {\n fields.forEach((fieldName) => {\n const _value = value[fieldName as keyof IClientsData]\n\n // Create a deep copy of the current client data to update\n const updatedClientData = {\n ...updatedClientsData[activeTabIndex],\n [fieldName]: _value,\n }\n\n // Update the specific client data in the copied array\n updatedClientsData[activeTabIndex] = updatedClientData\n })\n // Update the clients state outside of the loop\n setClients(updatedClientsData)\n }\n })\n\n return () => subscription.unsubscribe()\n }, [watch, activeTabIndex, clients]) // Include clients as a dependency\n\n const handleClientImageNames = () => {\n // When updating the tab index, please check the files and set the imageFileNames to bypass the frontImageFile validation.\n const activeClient = clients[activeTabIndex]\n const files = activeClient?.files || []\n\n if (files.length > 0) {\n setValue(\n 'frontImageFileName',\n files.find((f) => f?.cType === activeClient.identity && f?.cIndex === 1)?.name\n )\n setValue(\n 'backImageFileName',\n files.find((f) => f?.cType === activeClient.identity && f?.cIndex === 2)?.name\n )\n }\n }\n\n const areObjectsEqual = (obj1: IClientsData, obj2: any) => {\n const stringifiedObj1 = JSON.stringify(obj1)\n const stringifiedObj2 = JSON.stringify(obj2)\n return stringifiedObj1 === stringifiedObj2\n }\n\n const checkErrors = (\n errorIndexes: number[],\n errorBankDetails: { clientIndex: number; conflictingIndexes: number[] }[] | null = null\n ) => {\n let errorMessage = 'Validation errors have been detected.'\n if (errorIndexes.length > 0 && clients.length > 0) {\n const errorFirstNames = errorIndexes.map((index) => clients[index].firstName)\n errorMessage = `Validation errors have been detected on ${errorFirstNames.join(', ')}.`\n }\n if (\n errorIndexes.length > 0 &&\n clients.length > 0 &&\n errorBankDetails &&\n errorBankDetails.some((item) => item.conflictingIndexes && item.conflictingIndexes.length > 0)\n ) {\n errorMessage = `Duplicate bank accounts have been identified.`\n }\n\n setformNotification({\n message: errorMessage,\n header: `Error ${clientData === undefined ? 'Saving' : 'Updating'} Client`,\n type: 'danger',\n })\n }\n\n const onSubmit = async (values: IClientsData) => {\n setIsSaving(true)\n const tempValues = getValues()\n let pocValidation = false\n let bankValidation = false\n try {\n if (!clientData) {\n const updatedClients = handleCloneNonPocValues(values)\n pocValidation = await handlePocValidation(updatedClients)\n bankValidation = await handleBankValidation(updatedClients)\n if (pocValidation && bankValidation)\n await createOrUpdateClient(createClient, updatedClients)\n } else {\n const nonPocValues = handleCloneNonPocValues(values)\n const updatedClients = nonPocValues.map((c: IClientsData) => {\n // Check if paymentCycle is 0; if so, omit the specified keys\n if (c.paymentCycle === 0) {\n keysToInclude.forEach((key) => delete (c as any)[key])\n }\n return c\n })\n pocValidation = await handlePocValidation(updatedClients)\n bankValidation = await handleBankValidation(updatedClients)\n if (pocValidation && bankValidation)\n await createOrUpdateClient(updateClient, updatedClients)\n }\n\n if (pocValidation && bankValidation) {\n history.push('/client/list')\n setContextToaster({\n message: `${clientData === undefined ? 'Client Add' : 'Client Update'} successfully.`,\n header: `${clientData === undefined ? 'Client Add' : 'Client Update'}`,\n type: 'primary',\n })\n }\n } catch (error) {\n const errorMessage = getErrorMessage(error)\n setformNotification({\n message: errorMessage,\n header: `Error ${clientData === undefined ? 'Saving' : 'Updating'} Client`,\n type: 'danger',\n })\n }\n\n // Need to reset the last form values if the submission fails.\n reset(tempValues)\n setIsSaving(false)\n }\n\n const handleCloneNonPocValues = (values: IClientsData) => {\n const updatedClients = clients.map((client: IClientsData) => {\n // Clone the client object\n const updatedClient = { ...client }\n\n const excludeKeys = [\n ...excludeFields,\n ...PocFields, // Include PocFields in exclusion\n ]\n\n // Iterate through excludeFields and exclude those fields\n excludeKeys.forEach((field) => {\n delete values[field]\n })\n\n // Merge in the values from the parameter\n return {\n ...updatedClient,\n ...values,\n paymentCycleStartDateUtc: client.paymentCycleStartDate\n ? getUTCDate(client.paymentCycleStartDate)\n : null,\n }\n })\n\n return updatedClients\n }\n\n const createOrUpdateClient = async (apiFunction: any, payload: any[]) => {\n try {\n const formData = new FormData()\n\n for (let i = 0; i < payload.length; i++) {\n const item = payload[i]\n for (const key in item) {\n if (item.hasOwnProperty(key)) {\n if (key === 'banks') {\n for (let j = 0; j < item.banks.length; j++) {\n const bank = item.banks[j]\n for (const bankKey in bank) {\n formData.append(`clients[${i}].banks[${j}].${bankKey}`, bank[bankKey])\n }\n }\n } else {\n if (key.indexOf('date') > -1 || key.indexOf('Date') > -1) {\n const dateObject = new Date(item[key])\n var dateString = dateObject.toDateString()\n var timeString =\n ('0' + dateObject.getHours()).slice(-2) +\n ':' +\n ('0' + dateObject.getMinutes()).slice(-2) +\n ':' +\n ('0' + dateObject.getSeconds()).slice(-2)\n\n var formattedDate = dateString + ' ' + timeString\n\n formData.append(`clients[${i}].${key}`, formattedDate)\n } else {\n formData.append(`clients[${i}].${key}`, item[key] == null ? '' : item[key])\n }\n }\n }\n }\n }\n const [data, error] = await apiFunction(formData)\n\n if (data) {\n return data\n }\n\n if (error) {\n throw error\n }\n } catch (error) {\n throw error\n }\n }\n\n const onReset = () => {\n reset(CLIENT_DATA_FORM_DEFAULT)\n }\n\n const handleClientTypeChange = (event: any) => {\n const clientType =\n event.target.value === 'Individual' ? ClientType.Individual : ClientType.Company\n setValue('clientType', clientType)\n\n if (clientType === ClientType.Individual) {\n setcompanyDetails(false)\n }\n if (clientType === ClientType.Company) {\n setcompanyDetails(true)\n }\n }\n\n const handleTabClick = async (index: number) => {\n await trigger(PocFields)\n let currentFormData = getValues()\n // Update clients if the active tab has non POC vlaues\n const updatedClients = handleCloneNonPocValues(currentFormData)\n\n setClients([...updatedClients])\n setErrorMessage({ error: false, message: '' })\n setActiveTabIndex(index)\n reset(updatedClients[index])\n }\n\n const handleAddClient = async () => {\n await trigger(PocFields)\n const newIndex = clients.length\n\n let currentFormData = getValues()\n\n const resetFields = {\n firstName: '',\n lastName: '',\n englishName: '',\n sex: 'Male',\n occupation: '',\n dateOfBirth: null,\n identity: 1,\n passportCountry: 'AUS',\n issuedBy: '',\n issuedDate: null,\n identityNumber: '',\n expiryDate: null,\n holderName: '',\n frontImageFileName: null,\n backImageFileName: null,\n files: undefined,\n frontImageFile: null,\n backImageFile: null,\n unqId: undefined,\n country: 'AUS'\n }\n currentFormData = {\n ...currentFormData,\n ...resetFields,\n }\n\n clients[newIndex] = currentFormData\n\n if (newIndex < 3) {\n setClients([...clients])\n setActiveTabIndex(newIndex)\n }\n if (newIndex === 2) {\n setShowAddButton(false)\n }\n\n setErrorMessage({ error: false, message: '' })\n\n reset(currentFormData)\n }\n\n const handlePocValidation = async (updateClients: IClientsData[]) => {\n const errorIndexs = []\n\n for (let index = 0; index < updateClients.length; index++) {\n const formValues = updateClients[index]\n\n try {\n await clientFormValidationSchema.validate(formValues, {\n abortEarly: false,\n })\n } catch (validationError) {\n if (validationError instanceof yup.ValidationError) {\n errorIndexs.push(index)\n } else {\n // Handle other errors or general validation errors\n console.error('Validation failed for client at tab', activeTabIndex, ':', validationError)\n }\n }\n }\n\n if (errorIndexs.length > 0) {\n checkErrors(errorIndexs)\n setHasError({ ...hasError, tabIndexs: errorIndexs, status: true })\n return false\n }\n\n return true\n }\n\n const handleBankValidation = async (updateClients: IClientsData[]) => {\n const errorIndexs = []\n const errorDetails: {\n clientIndex: number\n conflictingIndexes: number[]\n wrongNameIndexes: number[]\n }[] = []\n\n for (let i = 0; i < updateClients.length; i++) {\n const banks = updateClients[i].banks\n\n const conflictingIndexes: number[] = []\n const wrongNameIndexes: number[] = []\n\n for (let j = 0; j < banks.length; j++) {\n const currentBank = banks[j]\n\n for (let k = j + 1; k < banks.length; k++) {\n const comparedBank = banks[k]\n\n // Check if all specified properties have the same values\n const isDuplicate1 =\n currentBank.bankName === comparedBank.bankName &&\n currentBank.bsb1 === comparedBank.bsb1 &&\n currentBank.bsb2 === comparedBank.bsb2 &&\n currentBank.bankAccountNumber === comparedBank.bankAccountNumber\n\n const isDuplicate2 =\n currentBank.bankName !== comparedBank.bankName &&\n currentBank.bsb1 === comparedBank.bsb1 &&\n currentBank.bsb2 === comparedBank.bsb2\n\n const isDuplicate3 =\n currentBank.bankName === comparedBank.bankName &&\n currentBank.bsb1 !== comparedBank.bsb1 &&\n currentBank.bsb2 !== comparedBank.bsb2 &&\n currentBank.bankAccountNumber === comparedBank.bankAccountNumber\n\n const isDuplicate4 =\n currentBank.bankName === comparedBank.bankName &&\n currentBank.bsb1 === comparedBank.bsb1 &&\n currentBank.bsb2 !== comparedBank.bsb2 &&\n currentBank.bankAccountNumber === comparedBank.bankAccountNumber\n\n const isDuplicate5 =\n currentBank.bankName === comparedBank.bankName &&\n currentBank.bsb1 === comparedBank.bsb1 &&\n currentBank.bsb2 !== comparedBank.bsb2 &&\n currentBank.bankAccountNumber === comparedBank.bankAccountNumber\n\n if (isDuplicate1 || isDuplicate2 || isDuplicate3 || isDuplicate4 || isDuplicate5) {\n conflictingIndexes.push(j, k)\n }\n }\n \n let matchingBank = bankListData.find((b) => b.name === currentBank.bankName)\n let allowedEmptyBank = currentBank.bankName == '' && isAllowedNoBankFeatureEnable\n const isWrongBankname = !matchingBank\n if (isWrongBankname && !allowedEmptyBank) {\n wrongNameIndexes.push(j)\n }\n }\n\n if (conflictingIndexes.length > 0 || wrongNameIndexes.length > 0) {\n errorDetails.push({ clientIndex: i, conflictingIndexes, wrongNameIndexes })\n // Handle duplicate banks as needed\n errorIndexs.push(i)\n }\n }\n\n if (errorDetails.length > 0) {\n checkErrors(errorIndexs, errorDetails)\n setHasError({ tabIndexs: errorIndexs, status: true, bankIndexes: errorDetails })\n return false\n }\n\n return true\n }\n\n const handleDeleteCallback = (errorMessage?: string) => {\n if (!errorMessage) handleRemoveClient(showDeleteModal.index)\n else {\n setShowDeleteModal({ ...showDeleteModal, isDelete: !showDeleteModal.isDelete })\n setformNotification({\n message: errorMessage,\n header: `Error Removing Client`,\n type: 'danger',\n })\n }\n }\n\n const handleRemoveClient = (index: number) => {\n const updatedClients = clients.filter((_, i) => i !== index)\n // Set the state with the updated clients array\n setClients(updatedClients)\n\n setShowDeleteModal({ isDelete: !showDeleteModal.isDelete, index })\n setShowAddButton(true)\n if (activeTabIndex > index) {\n setActiveTabIndex(index)\n // reset(updatedClients[index])\n }\n }\n\n return (\n \n {isSaving && loadingPanel}\n {formNotification && (\n setformNotification(undefined)} />\n )}\n {\n setShowDeleteModal({ ...showDeleteModal, isDelete: !showDeleteModal.isDelete })\n }}\n clientData={clients[showDeleteModal.index]}\n deleteCallback={(errorMessage) => {\n handleDeleteCallback(errorMessage)\n }}\n />\n \n
\n
\n \n \n {\n history.push('/client/list')\n setContextToaster({\n message: ``,\n header: ``,\n type: 'primary',\n })\n }}\n >\n {intl.formatMessage({ id: 'ECOMMERCE.ACTION.CANCEL' })}\n \n \n
\n
\n

\n {intl.formatMessage({ id: 'CLIENT.FIELDWITH' })} *{' '}\n {intl.formatMessage({ id: 'CLIENT.AREREQUIREDFIELDS' })}\n

\n
\n \n\n {!isClientTypeSelectionFeatureEnabled ? (\n
\n \n
\n \n \n
\n }\n />\n
\n ) : null}\n
\n {companyDetails && (\n <>\n
\n
\n \n \n }\n />\n
\n
\n \n \n }\n />\n
\n
\n
\n
\n \n *\n \n }\n />\n
\n
\n \n *\n \n }\n />\n
\n
\n
\n
\n\n {clients.map((_, index) => (\n \n {index !== activeTabIndex && (\n \n setShowDeleteModal({ isDelete: !showDeleteModal.isDelete, index })\n }\n >\n )}\n handleTabClick(index)}>\n {(clients[index] && clients[index]['lastName']) || ''}{' '}\n {(clients[index] && clients[index]['firstName']) || ''}\n \n \n ))}\n {!isMultiplePOCFeatureEnabled && showAddButton && (\n \n \n \n )}\n \n )}\n
\n \n
\n \n \n \n {errorMessage.error && (\n setErrorMessage({ ...errorMessage, error: false, message: '' })}\n >\n {errorMessage.message}\n \n )}\n \n \n
\n )\n}\n\nexport { ClientForm }\n","import React from 'react'\nimport {useIntl} from 'react-intl'\n\nimport {PageLink, PageTitle} from '../../../_metronic/layout/core'\nimport {ClientForm} from './components/partials/ClientForm'\n\nconst CreateClientPage: React.FC = () => {\n const intl = useIntl()\n\n const widgetsBreadCrumbs: Array = [\n {\n title: intl.formatMessage({id: 'MENU.CLIENTS'}),\n path: '/client',\n isSeparator: false,\n isActive: false,\n },\n {\n title: 'New',\n path: '/client/new',\n isSeparator: true,\n isActive: false,\n },\n ]\n\n return (\n
\n
\n
\n
\n \n {intl.formatMessage({id: 'ACTION.NEWCLIENT'})}\n \n \n
\n
\n
\n
\n )\n}\n\nexport default CreateClientPage\n","import React, {useEffect, useState} from 'react'\nimport {useHistory, useLocation} from 'react-router-dom'\nimport {useIntl} from 'react-intl'\n\nimport {PageLink, PageTitle} from '../../../_metronic/layout/core'\nimport {ClientForm} from './components/partials/ClientForm'\nimport {IClientsData} from './models/client'\nimport {getClientById} from './api/ClientApi'\n\nconst loadingPanel = (\n
\n Loading\n
\n
\n
\n)\n\nconst EditClientPage: React.FC = () => {\n const intl = useIntl()\n const history = useHistory()\n\n const search = useLocation().search\n const idParam: string | null = new URLSearchParams(search).get('id')\n\n const [selectedClient, setSelectedClient] = useState(undefined)\n const [isLoading, setIsLoading] = useState(false)\n\n const widgetsBreadCrumbs: Array = [\n {\n title: intl.formatMessage({id: 'MENU.CLIENTS'}),\n path: '/client',\n isSeparator: false,\n isActive: false,\n },\n ]\n\n useEffect(() => {\n if (idParam) {\n setIsLoading(true)\n getClientById(idParam)\n .then((result: any) => {\n setSelectedClient(result)\n setIsLoading(false)\n })\n .catch(() => {\n history.push('/client/list')\n setIsLoading(false)\n })\n }\n }, [idParam])\n\n return (\n
\n
\n
\n
\n \n {intl.formatMessage({id: 'ACTION.EDITCLIENT'})}\n \n {isLoading && loadingPanel}\n {selectedClient && }\n
\n
\n
\n
\n )\n}\n\nexport default EditClientPage\n","import {TabStrip, TabStripSelectEventArguments, TabStripTab} from '@progress/kendo-react-layout'\n\nimport {FC, useCallback, useEffect, useState} from 'react'\nimport {useIntl} from 'react-intl'\nimport moment from 'moment'\n\nimport {IClientsData} from '../../../models/client'\nimport {IClientWalletNpp} from '../../../models/client-wallet'\nimport {IClientVirtualAccount} from '../../../models/client-virtual-account'\nimport {createVirtualAccount, getBankList} from '../../../api/ClientApi'\nimport {transformedBankDataList} from '../../../transformer/client-transform'\nimport {Item} from '../../../models/item'\nimport { useFeatureFlags } from '../../../../../context/FeatureFlags'\n\ninterface IProps {\n clientData?: IClientsData[]\n clientWalletNpp?: IClientWalletNpp\n clientVirtualAccounts?: IClientVirtualAccount[]\n}\n\nconst bankPageSize = 50\n\nconst ClientProfile: FC = ({clientData, clientWalletNpp, clientVirtualAccounts}) => {\n const intl = useIntl()\n const {features} = useFeatureFlags()\n const [selected, setSelected] = useState({virtual: 0, bank: 0})\n const [bankListData, setBankListData] = useState([])\n const [isLoading, setIsloading] = useState(false)\n const [isPayInsFeatureEnabled, setPayInsFeatureEnabled] = useState(false)\n\n useEffect(() => {\n if (features.some((feature) => feature.name === 'PayInsFeature')) {\n setPayInsFeatureEnabled(true)\n }\n })\n \n\n useEffect(() => {\n requestData(0)\n }, [clientData])\n\n const requestData = useCallback((skip: number) => {\n fetchDropdownDataBank(bankPageSize, skip, '')\n }, [])\n\n const handleSelect = (e: TabStripSelectEventArguments, type: string) => {\n if (type === 'bank') setSelected({...selected, bank: e.selected})\n else setSelected({...selected, virtual: e.selected})\n }\n\n const fetchDropdownDataBank = async (take: any, skip: any, search: any) => {\n const dataFromApi = await getBankList(take, skip, search) // Replace 'getBankList()' with your API call\n const transFormBankData = transformedBankDataList(dataFromApi)\n setBankListData(transFormBankData)\n }\n\n const newVirtualAccountHandler = useCallback(() => {\n createVirtualAccountAsync()\n }, [])\n\n const createVirtualAccountAsync = async () => {\n if (clientData && clientData.length > 0) {\n setIsloading(true)\n let clientId = +(clientData[0].id || 0) \n const {response}: any = await createVirtualAccount(clientId)\n if (response) {\n setIsloading(false)\n return;\n }\n document.location.reload()\n }\n }\n \n\n return (\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n { clientVirtualAccounts && clientVirtualAccounts.length > 0 ? (\n handleSelect(e, 'account')}>\n {clientVirtualAccounts.map((account, index) => (\n \n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n ))}\n
\n ) : (\n
\n {/* */}\n {\n isPayInsFeatureEnabled ? (\n \n ) : (\n
\n \n
\n )\n } \n \n
\n )}\n\n
\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n\n {clientData && clientData[0].banks.length > 0 ? (\n handleSelect(e, 'bank')}>\n {clientData[0].banks.map((bank, index) => (\n \n
\n \n \n
\n
\n \n b.name === bank.bankName) ? bank.bankName : ''}\n disabled\n />\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n ))}\n
\n ) : (\n
\n \n \n
\n )}\n
\n
\n )\n}\n\nexport default ClientProfile\n","import {Grid, GridColumn as Column, GridCellProps} from '@progress/kendo-react-grid'\n\nimport {FC, useEffect, useState} from 'react'\n\nimport {IClientWallet, IClientWalletBpay} from '../../../models/client-wallet'\nimport {AmountFormatCell} from '../../../../../shared/components/kendo/format/AmountFormatCell'\nimport {DateFormatCell} from '../../../../../shared/components/kendo/format/DateFormatCell'\nimport {useIntl} from 'react-intl'\nimport {KendoI18Provider} from '../../../../../../_metronic/i18n/kendoI18Provider'\n\ninterface IProps {\n clientWallet: IClientWallet | undefined\n clientWalletBpay?: IClientWalletBpay\n balance: number\n}\n\nconst ClientWallet: FC = ({clientWallet, balance, clientWalletBpay}) => {\n const intl = useIntl()\n const [tableData, setTableData] = useState([])\n\n useEffect(() => {\n if (clientWallet && clientWalletBpay) {\n var newTable = []\n clientWallet.balance = balance\n clientWallet.biller_code = clientWalletBpay.biller_code\n clientWallet.reference = clientWalletBpay.reference\n newTable.push(clientWallet)\n setTableData(newTable)\n }\n }, [clientWallet, clientWalletBpay])\n\n const amountFormatCell = (dataProps: GridCellProps) => (\n \n )\n\n const activeFormatCell = (dataProps: GridCellProps) => (\n {dataProps.dataItem.active ? 'Yes' : 'No'}\n )\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default ClientWallet\n","import {Grid, GridColumn as Column, GridCellProps} from '@progress/kendo-react-grid'\n\nimport React, {useEffect, useState} from 'react'\nimport {useIntl} from 'react-intl'\n\nimport {AmountFormatCell} from '../../../../../shared/components/kendo/format/AmountFormatCell'\nimport {DateFormatCell} from '../../../../../shared/components/kendo/format/DateFormatCell'\nimport {IItemsData} from '../../../../orders/models/items'\nimport {KendoI18Provider} from '../../../../../../_metronic/i18n/kendoI18Provider'\n\ninterface IProps {\n clientOrders: IItemsData[] | undefined\n}\n\nconst ClientOrders: React.FC = ({clientOrders}) => {\n const intl = useIntl()\n const [tableData, setTableData] = useState([])\n\n useEffect(() => {\n if (clientOrders) {\n setTableData(clientOrders)\n }\n }, [clientOrders])\n\n const amountFormatCell = (dataProps: GridCellProps) => (\n \n )\n\n const paymentTypeFormatCell = (dataProps: GridCellProps) => (\n {dataProps.dataItem.paymentType === 2 ? 'Express' : dataProps.dataItem.paymentType}\n )\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default ClientOrders\n","import {Grid, GridColumn as Column, GridCellProps} from '@progress/kendo-react-grid'\n\nimport {FC, Fragment, useCallback, useEffect, useState} from 'react'\nimport {useIntl} from 'react-intl'\n\nimport {DateFormatCell} from '../../../../../shared/components/kendo/format/DateFormatCell'\nimport {ITransaction, ITransactionData} from '../../../../transactions/models/transaction-model'\nimport {transactionStatusMasking} from '../../../../../shared/service/utils'\nimport {UppercaseFirstLetter} from '../../../../../shared/components/kendo/format/UppercaseFirstLetter'\nimport {AuthorizeTransactionModal} from '../../../../transactions/components/partials/AuthorizeTransactionModal'\nimport {TRANSACTION_FORM_DEFAULT} from '../../../../transactions/constants/default'\nimport {getClientTransactions} from '../../../api/ClientApi'\nimport {KendoI18Provider} from '../../../../../../_metronic/i18n/kendoI18Provider'\n\ninterface IProps {\n clientTransactions: ITransactionData[] | undefined\n clientId: string\n}\n\nconst ClientTransactions: FC = ({clientTransactions, clientId}) => {\n const intl = useIntl()\n const [tableData, setTableData] = useState([])\n const [modalAuthorizeTransactionShow, setModalAuthorizeTransactionShow] = useState(false)\n const [selectedTransaction, setSelectedTransaction] =\n useState(TRANSACTION_FORM_DEFAULT)\n\n const fetchData = useCallback(() => {\n getClientTransactions(clientId)\n .then((response: any) => {\n setTableData(response.data.items)\n })\n .catch(() => {})\n }, [])\n\n useEffect(() => {\n if (clientTransactions) {\n setTableData(clientTransactions)\n }\n }, [clientTransactions])\n\n const statusCell = (props: GridCellProps) => {\n return (\n \n \n {transactionStatusMasking(props.dataItem.status)}\n \n \n )\n }\n\n const handleAuthorizeButton = (data: ITransaction) => {\n setSelectedTransaction(data)\n setModalAuthorizeTransactionShow(true)\n }\n\n const actionCellButton = (props: GridCellProps) => {\n return props.dataItem.statusName === 'awaitingapproval' ? (\n \n handleAuthorizeButton(props.dataItem)}\n >\n {intl.formatMessage({id: 'ECOMMERCE.FIELD.AUTHORIZETRANSACTION'})}\n \n \n ) : (\n \n )\n }\n\n const closeAuthorizeTransactionModal = (refresh: boolean = false) => {\n setModalAuthorizeTransactionShow(false)\n if (refresh && selectedTransaction.id) {\n fetchData()\n }\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default ClientTransactions\n","import {Grid, GridColumn as Column, GridCellProps} from '@progress/kendo-react-grid'\n\nimport React, {useState} from 'react'\nimport {useIntl} from 'react-intl'\n\nimport {IClientFile} from '../../../models/client-file'\nimport {KendoI18Provider} from '../../../../../../_metronic/i18n/kendoI18Provider'\nimport {IClientsData} from '../../../models/client'\n\ninterface IProps {\n clientFiles?: IClientFile[][]\n clientData?: IClientsData[]\n}\n\nconst ClientFile: React.FC = ({clientData, clientFiles}) => {\n const intl = useIntl()\n const [activeTabIndex, setActiveTabIndex] = useState(0)\n\n const imageFormatCell = (dataProps: GridCellProps) => (\n \n {dataProps.dataItem.presignedUrl && (\n \n )}\n \n )\n\n return (\n \n \n {clientData &&\n clientData.length > 0 &&\n clientData[0].clientType === 2 &&\n clientData.map((_, index) => (\n \n setActiveTabIndex(index)}>\n {(clientData[index] && clientData[index]['lastName']) || ''}{' '}\n {(clientData[index] && clientData[index]['firstName']) || ''}\n \n \n ))}\n \n \n \n \n \n \n \n )\n}\n\nexport default ClientFile\n","import {FC, useState} from 'react'\nimport {useIntl} from 'react-intl'\nimport moment from 'moment'\n\nimport {IClientsData} from '../../../models/client'\n\ninterface IProps {\n clientData?: IClientsData[]\n}\n\nconst ClientPoc: FC = ({clientData}) => {\n const intl = useIntl()\n\n const [activeTabIndex, setActiveTabIndex] = useState(0)\n\n return (\n
\n
\n {clientData?.map((_, index) => (\n \n setActiveTabIndex(index)}>\n {(clientData[index] && clientData[index]['lastName']) || ''}{' '}\n {(clientData[index] && clientData[index]['firstName']) || ''}\n \n \n ))}\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n )\n}\n\nexport default ClientPoc\n","import {Grid, GridColumn as Column, GridPageChangeEvent} from '@progress/kendo-react-grid'\nimport { KendoI18Provider } from \"../../../../../../_metronic/i18n/kendoI18Provider\"\nimport { useIntl } from 'react-intl'\nimport { IClientPayIn } from '../../../models/client-payin'\nimport { useCallback, useEffect, useState } from 'react'\nimport { getPayIdsByClientPagination } from '../../../api/ClientApi'\nimport { Initial_GridSetup } from '../../../constant/config-default'\nimport { IGridSetup } from '../../../models/client'\nimport { DateFormatCell } from '../../../../../shared/components/kendo/format/DateFormatCell'\n\ninterface IProps {\n clientId: number\n }\n \n const ClientPayIns: React.FC = ({clientId}) => {\n const intl = useIntl()\n const [tableData, setTableData] = useState([])\n const [gridSetup, setGridSetup] = useState(Initial_GridSetup)\n const [totalRows, setTotalRows] = useState(0)\n \n useEffect(() => {\n requestData()\n }, [gridSetup])\n\n const requestData = useCallback(() => {\n fetchPayIds()\n }, [])\n \n const fetchPayIds = async () => {\n const { skip, take } = gridSetup\n const dataFromApi = await getPayIdsByClientPagination(clientId, skip, take)\n if (dataFromApi.items) {\n setTableData(dataFromApi.items)\n setTotalRows(dataFromApi.totalCount)\n }\n }\n\n const handlePageChange = (pageProps: GridPageChangeEvent) => {\n setGridSetup({\n ...gridSetup,\n skip: pageProps.page.skip,\n take: pageProps.page.take,\n })\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n\n export {ClientPayIns}","import {FC, Fragment, useEffect, useState} from 'react'\nimport {useIntl} from 'react-intl'\n\nimport ClientProfile from './ClientProfile'\nimport {IClientProfile} from '../../../models/client-profile'\nimport {ClientProfileTab} from '../../../constant/config-default'\nimport ClientWallet from './ClientWallet'\nimport ClientOrders from './ClientOrders'\nimport ClientTransactions from './ClientTransactions'\nimport ClientFile from './ClientFile'\nimport ClientPoc from './ClientPoc'\nimport {useFeatureFlags} from '../../../../../context/FeatureFlags'\nimport { ClientPayIns } from './ClientPayIns'\nimport { FeatureFlagProvider } from '../../../../feature-flag/FeatureFlagProvider'\n\ninterface IProps {\n clientData?: IClientProfile\n}\n\nconst ClientProfileDashboard: React.FC = ({clientData}) => {\n const intl = useIntl()\n const [selectedTab, setSelectedTab] = useState(ClientProfileTab.Profile)\n const handleSelect = (e: any) => {\n setSelectedTab(e.selected)\n }\n const {features} = useFeatureFlags()\n const [isPlentyPayHideFeatureEnabled, setIsPlentyPayHideFeatureEnabled] = useState(false)\n const [isIdentityDataFeatureEnabled, setIsIdentityDataFeatureEnabled] = useState(false)\n const [isMultiplePOCFeatureEnabled, setIsMultiplePOCFeatureEnabled] = useState(false)\n\n useEffect(() => {\n if (features.some((feature) => feature.name === 'PlentyPayHideFeature')) {\n setIsPlentyPayHideFeatureEnabled(true)\n }\n if (features.some((feature) => feature.name === 'IdentityDataFeature')) {\n setIsIdentityDataFeatureEnabled(true)\n }\n if (features.some((feature) => feature.name === 'MultiplePOCFeature')) {\n setIsMultiplePOCFeatureEnabled(true)\n }\n }, [features])\n\n return (\n \n
\n

\n {clientData?.client[0].clientType === 2\n ? clientData?.client[0].companyName\n : clientData?.client[0].firstName + ' ' + clientData?.client[0].lastName}\n

\n
{clientData?.client[0].email}
\n
{clientData?.client[0].country}
\n
{clientData?.client[0].mobile}
\n
\n
\n
\n
\n setSelectedTab(ClientProfileTab.Profile)}\n >\n {intl.formatMessage({id: 'MENU.CLIENTPROFILE.PROFILE'})}\n \n {!isMultiplePOCFeatureEnabled && clientData?.client[0].clientType === 2 && (\n setSelectedTab(ClientProfileTab.Poc)}\n >\n {intl.formatMessage({id: 'MENU.CLIENTPROFILE.POC'})}\n \n )}\n setSelectedTab(ClientProfileTab.Wallet)}\n >\n {intl.formatMessage({id: 'MENU.CLIENTPROFILE.WALLET'})}\n \n setSelectedTab(ClientProfileTab.Orders)}\n >\n {intl.formatMessage({id: 'MENU.CLIENTPROFILE.ORDERS'})}\n \n setSelectedTab(ClientProfileTab.Transactions)}\n >\n {intl.formatMessage({id: 'MENU.CLIENTPROFILE.TRANSACTIONS'})}\n \n {!isIdentityDataFeatureEnabled && !isPlentyPayHideFeatureEnabled && (\n setSelectedTab(ClientProfileTab.file)}\n >\n {intl.formatMessage({id: 'MENU.CLIENTPROFILE.FILES'})}\n \n )}\n \n {\n clientData && clientData?.virtualAccounts.length > 0 && (\n setSelectedTab(ClientProfileTab.payIns)}\n >\n {intl.formatMessage({id: 'MENU.CLIENTPROFILE.PAYINS'})}\n \n )\n }\n \n \n
\n\n {selectedTab === ClientProfileTab.Profile && (\n \n )}\n\n {selectedTab === ClientProfileTab.Poc && clientData?.client[0].clientType === 2 && (\n \n )}\n\n {selectedTab === ClientProfileTab.Wallet && (\n \n )}\n {selectedTab === ClientProfileTab.Orders && (\n \n )}\n {selectedTab === ClientProfileTab.Transactions && (\n \n )}\n {selectedTab === ClientProfileTab.file && (\n \n )}\n \n {selectedTab === ClientProfileTab.payIns && (clientData && clientData?.virtualAccounts.length > 0) && (\n \n )}\n \n\n \n
\n
\n
\n )\n}\n\nexport default ClientProfileDashboard\n","import { FC, useState } from 'react'\nimport { useLocation } from 'react-router-dom'\nimport { useEffectOnce } from 'react-use'\nimport { getClientProfileById } from '../api/ClientApi'\nimport { IClientProfile } from '../models/client-profile'\nimport ClientProfileDashboard from './partials/client-profile/ClientProfileDashboard'\nimport { getErrorMessage } from '../../../shared/service/utils'\nimport { CustomAlert, IAlert } from '../../../shared/components/CustomAlert'\n\nconst loadingPanel = (\n
\n Loading\n
\n
\n
\n)\nconst ClientProfileWrapper: FC = () => {\n const search = useLocation().search\n const idParam: string | null = new URLSearchParams(search).get('companyId')\n const [selectedClient, setSelectedClient] = useState()\n const [isLoading, setIsLoading] = useState(false)\n const [formNotification, setformNotification] = useState()\n\n useEffectOnce(() => {\n getClientProfile()\n })\n\n const getClientProfile = async () => {\n if (idParam) {\n setIsLoading(true)\n const [data, error] = await getClientProfileById(idParam)\n\n if (data) {\n setSelectedClient(data as any)\n } else {\n if (error) {\n const errorMessage = getErrorMessage(error)\n setformNotification({\n message: errorMessage,\n header: `Error Profile Information`,\n type: 'danger',\n })\n }\n }\n setIsLoading(false)\n }\n }\n\n return (\n <>\n {isLoading && loadingPanel}\n {formNotification && (\n setformNotification(undefined)} />\n )}\n {selectedClient && }\n \n )\n}\n\nexport default ClientProfileWrapper\n","import React from 'react'\nimport {useIntl} from 'react-intl'\n\nimport {PageLink, PageTitle} from '../../../_metronic/layout/core'\nimport ClientProfileWrapper from './components/ClientProfileWrapper'\n\nconst ClientProfilePage: React.FC = () => {\n const intl = useIntl()\n\n const widgetsBreadCrumbs: Array = [\n {\n title: intl.formatMessage({id: 'MENU.CLIENTS'}),\n path: '/client',\n isSeparator: false,\n isActive: false,\n },\n {\n title: 'View',\n path: '/client/profile',\n isSeparator: true,\n isActive: false,\n },\n ]\n\n return (\n
\n
\n
\n
\n \n {intl.formatMessage({id: 'ACTION.CLIENTPROFILE'})}\n \n \n
\n
\n
\n
\n )\n}\n\nexport default ClientProfilePage\n","import {FC} from 'react'\nimport {useIntl} from 'react-intl'\nimport {Redirect, Route, Switch} from 'react-router-dom'\n\nimport {PageLink, PageTitle} from '../../../_metronic/layout/core'\nimport {ClientContextProvider} from './context/ClientContext'\nimport ClientList from './components/partials/ClientList'\nimport CreateClientPage from './CreateClientPage'\nimport EditClientPage from './EditClientPage'\nimport ClientProfilePage from './ClientProfilePage'\n\nconst widgetsBreadCrumbs: Array = [\n {\n title: 'Clients',\n path: '/client/list',\n isSeparator: false,\n isActive: false,\n },\n {\n title: '',\n path: '',\n isSeparator: true,\n isActive: false,\n },\n]\n\nconst ClientPage: FC = () => {\n const intl = useIntl()\n\n return (\n \n \n \n \n {intl.formatMessage({id: 'MENU.CLIENTS'})}\n \n \n \n \n {intl.formatMessage({id: 'ACTION.NEWCLIENT'})}\n \n \n \n \n \n {intl.formatMessage({id: 'ACTION.EDITCLIENT'})}\n \n \n \n \n \n {intl.formatMessage({id: 'ACTION.CLIENTPROFILE'})}\n \n \n \n \n \n )\n}\n\nexport default ClientPage\n","import React from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport { Page } from '../modules/roles/models/role-model';\nimport { PAGE_PERMISSION } from '../modules/roles/constant/role-default';\n\ntype Props = {\n component: React.ComponentType;\n path: string;\n exact?: boolean;\n permission: PAGE_PERMISSION,\n activePages: Page[]\n};\n\nconst ActivatedPageRoute: React.FC = ({\n component: Component,\n permission,\n activePages,\n ...rest\n}) => {\n\n return (\n {\n var allowed = activePages.some(page => page.name === permission);\n return allowed ? (\n \n ) : (\n \n );\n }}\n />\n );\n};\n\nexport default ActivatedPageRoute;\n","import { Redirect } from 'react-router-dom';\nimport { usePageData } from '../../_metronic/layout/core';\nimport { PAGE_PERMISSION } from '../modules/roles/constant/role-default';\n\nconst ActivePageBasedRedirect = () => {\n\n const { currentUser: { activePages } } = usePageData();\n\n if (!activePages || activePages.length === 0) {\n return ;\n }\n\n const permissionsOrder = [\n { permission: PAGE_PERMISSION.Clients_ViewPage, route: '/client' },\n { permission: PAGE_PERMISSION.Orders_ViewPage, route: '/order' },\n { permission: PAGE_PERMISSION.Transactions_ViewPage, route: '/transaction' },\n { permission: PAGE_PERMISSION.MasterWallet, route: '/master-wallet' },\n { permission: PAGE_PERMISSION.User_ViewPage, route: '/user' },\n { permission: PAGE_PERMISSION.PayIns_ViewPage, route: '/payins' },\n { permission: PAGE_PERMISSION.Administrator_Roles_ViewPage, route: '/role' },\n ];\n for (let { permission, route } of permissionsOrder) {\n if (activePages.some(page => page.name === permission)) {\n return ;\n }\n }\n\n return null;\n\n};\n\nexport default ActivePageBasedRedirect;\n","import React, {Suspense, lazy} from 'react'\nimport {Redirect, Route, Switch} from 'react-router-dom'\nimport {shallowEqual, useSelector} from 'react-redux'\n\nimport {FallbackView} from '../../_metronic/partials'\n// import {DashboardWrapper} from '../pages/dashboard/DashboardWrapper'\nimport {MenuTestPage} from '../pages/MenuTestPage'\nimport {ClientWrapper} from '../pages/client/ClientWrapper'\nimport {ItemWrapper} from '../pages/item/ItemWrapper'\nimport {OrderWrapper} from '../pages/order/OrderWrapper'\nimport DebitDashboardPage from '../modules/debit-dashboard/DebitDashboardPage'\nimport MyProfilePage from '../modules/my-profile/MyProfilePage'\nimport OrderPage from '../modules/orders/OrdersPage'\nimport TransactionsPage from '../modules/transactions/TransactionsPage'\nimport ClientPage from '../modules/client/ClientPage'\nimport MasterWalletPage from '../modules/master-wallet/MasterWalletPage'\nimport {UserModel} from '../modules/auth/models/UserModel'\nimport {RootState} from '../../setup'\nimport PayInsPage from '../modules/pay-ins/PayInsPage'\nimport { Page } from '../modules/roles/models/role-model'\nimport ActivatedPageRoute from './ActivatedPageRoute'\nimport { PAGE_PERMISSION } from '../modules/roles/constant/role-default'\nimport ActivePageBasedRedirect from './ActivePageBasedRedirect'\n\ntype Props = {\n activePages: Page[]\n};\n\n\nconst PrivateRoutes: React.FC = ({ activePages = [] }) => {\n const BuilderPageWrapper = lazy(() => import('../pages/layout-builder/BuilderPageWrapper'))\n const ProfilePage = lazy(() => import('../modules/profile/ProfilePage'))\n const WizardsPage = lazy(() => import('../modules/wizards/WizardsPage'))\n const AccountPage = lazy(() => import('../modules/accounts/AccountPage'))\n const WidgetsPage = lazy(() => import('../modules/widgets/WidgetsPage'))\n const ChatPage = lazy(() => import('../modules/apps/chat/ChatPage'))\n const UserPage = lazy(() => import('../modules/users/UserPage'))\n const RolePage = lazy(() => import('../modules/roles/RolePage'))\n const MasterWalletPage = lazy(() => import('../modules/master-wallet/MasterWalletPage'))\n const PayInsPage = lazy(() => import('../modules/pay-ins/PayInsPage'))\n const TransactionPage = lazy(() => import('../modules/transactions/TransactionsPage'))\n const OrderPage = lazy(() => import('../modules/orders/OrdersPage'))\n\n const user: UserModel = useSelector(({auth}) => auth.user, shallowEqual) as UserModel\n\n return (\n }>\n \n {/* */}\n \n {/* */}\n\n \n\n \n\n \n\n\n \n\n } />\n\n \n\n \n\n \n\n {\n return user.isCreatedByDebit ? (\n \n ) : (\n \n );\n }}\n />\n\n \n \n \n \n \n \n \n\n {!user.isCreatedByDebit && (\n <>\n {/* \n */}\n \n \n \n )}\n {user.isCreatedByDebit && (\n <>\n \n \n \n )}\n \n \n \n )\n}\n\nexport default PrivateRoutes;\n","import {FC} from 'react'\n\nconst Error500: FC = () => {\n return (\n <>\n

System Error

\n\n
\n You don't have a permission to view this page.
Please contact your administrator.\n
\n \n )\n}\n\nexport {Error500}\n","import {FC} from 'react'\n\nconst Error404: FC = () => {\n return (\n <>\n

Permission Not Found

\n\n
\n You don't have a permission to view this page.
Please contact your administrator.\n
\n \n )\n}\n\nexport {Error404}\n\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from 'react'\nimport {Redirect, Route, Switch, useHistory} from 'react-router-dom'\nimport {Error500} from './components/Error500'\nimport {Error404} from './components/Error404'\nimport {toAbsoluteUrl} from '../../../_metronic/helpers'\n\nconst ErrorsPage: React.FC = () => {\n const history = useHistory()\n const redirectToDashboard = () => {\n history.push('/')\n }\n\n return (\n
\n \n
\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n\n \n
\n
\n
\n\n \n \n \n )\n}\n\nexport {ErrorsPage}\n","import {useEffect, useRef} from 'react'\nimport {\n MenuComponent,\n DrawerComponent,\n ScrollComponent,\n ScrollTopComponent,\n StickyComponent,\n ToggleComponent,\n SwapperComponent,\n} from '../assets/ts/components'\n\nimport {useLayout} from './core'\n\nexport function MasterInit() {\n const {config} = useLayout()\n const isFirstRun = useRef(true)\n const pluginsInitialization = () => {\n isFirstRun.current = false\n setTimeout(() => {\n ToggleComponent.bootstrap()\n ScrollTopComponent.bootstrap()\n DrawerComponent.bootstrap()\n StickyComponent.bootstrap()\n MenuComponent.bootstrap()\n ScrollComponent.bootstrap()\n SwapperComponent.bootstrap()\n }, 500)\n }\n\n useEffect(() => {\n if (isFirstRun.current) {\n isFirstRun.current = false\n pluginsInitialization()\n }\n }, [config])\n\n return <>\n}\n","import {useIntl} from 'react-intl'\nimport * as yup from 'yup'\n\nconst DirectdebitFormValidationSchema = () => {\n const intl = useIntl()\n\n return yup.object().shape({\n firstName: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.FIRSTNAMEREQUIRED'})),\n lastName: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.LASTNAMEREQUIRED'})),\n email: yup\n .string()\n .email(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.WRONGEMAILFORMAT'}))\n .max(50, intl.formatMessage({id: 'ECOMMERCE.VALIDATION.MAXIMUMSIMBOL'}))\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.EMAILREQUIRED'})),\n addressLine1: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.ADDRESSREQUIRED'})),\n suburb: yup.string().required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.SUBURBREQUIRED'})),\n state: yup.string().required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STATEREQUIRED'})),\n postCode: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.POSTCODEREQUIRED'})),\n mobile: yup.mixed().test({\n test: function (value) {\n const digitPattern = /^[0-9]+$/\n if (!value)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.MOBILEREQUIRED'}),\n })\n else if (value.length > 20)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.MOBILEMUSTBE'}),\n })\n else if (!digitPattern.test(value))\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.MOBILENUMBERIC'}),\n })\n return true\n },\n }),\n country: yup.mixed().test({\n test: function (value) {\n if (!value)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.COUNTRYREQUIRED'}),\n })\n return true\n },\n }),\n bankName: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BANKNAMEREQUIRED'})),\n bankAccountName: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BANKACCOUNTNAMEREQUIRED'})),\n bankAccountNumber: yup\n .string()\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BANKACCOUNTNUMBERREQUIRED'}))\n .matches(\n /^\\d*$/,\n intl.formatMessage({\n id: 'ECOMMERCE.VALIDATION.BANKACCOUNTNUMBERSHOULDONLYCONTAINNUMBERS',\n })\n ),\n bsb1: yup.mixed().test({\n test: function (value) {\n const digitPattern = /^[0-9]+$/\n if (value == null || value === '')\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB1REQUIRED'}),\n })\n else if (!digitPattern.test(value))\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB1MUSTBENUMERIC'}),\n })\n else if (value.length !== 3)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB1MUSTBEREQUIRED'}),\n })\n return true\n },\n }),\n bsb2: yup.mixed().test({\n test: function (value) {\n const digitPattern = /^[0-9]+$/\n if (value == null || value === '')\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB2REQUIRED'}),\n })\n else if (!digitPattern.test(value))\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB2MUSTBENUMERIC'}),\n })\n else if (value.length !== 3)\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.BSB2MUSTBEREQUIRED'}),\n })\n return true\n },\n }),\n debitAmount: yup\n .number()\n .typeError(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.DEBITAMOUNTINVALID'}))\n .test({\n name: 'debitAmount',\n test: function (value) {\n if (!value || value === 0) {\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.DEBITAMOUNTREQUIRED'}),\n })\n }\n return true\n },\n })\n .nullable(),\n paymentCycle: yup\n .number()\n .typeError(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.DEBITAMOUNTINVALID'}))\n .test({\n name: 'paymentCycle',\n test: function (value) {\n if (!value || value === 0) {\n return this.createError({\n message: intl.formatMessage({id: 'ECOMMERCE.VALIDATION.PAYMENTCYCLEREQUIRED'}),\n })\n }\n\n return true\n },\n })\n .nullable(),\n paymentCycleStartDate: yup\n .date()\n .typeError(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STARTDATEINVALID'}))\n .min(new Date(1900, 0, 1), intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STARTDATEINVALID'}))\n .max(new Date(2900, 0, 1), intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STARTDATEINVALID'}))\n .required(intl.formatMessage({id: 'ECOMMERCE.VALIDATION.STARTDATEREQUIRED'})),\n })\n}\n\nexport default DirectdebitFormValidationSchema\n","import React, { useRef } from 'react'\nimport { Modal, Button } from 'react-bootstrap-v5'\nimport { PDFDownloadLink, pdf } from '@react-pdf/renderer';\n\nimport { IClientsData, PaymentCycle } from '../../../app/modules/client/models/client'\nimport DirectDebitAgreementPDF from '../../../app/modules/client/components/partials/debit-pdf-form/DirectDebitAgreementPDF'\n\ninterface ModalProps {\n show: boolean\n formData: IClientsData\n paymentCycleOptions: PaymentCycle[]\n onAccept: (blobPdf: Blob, fileName: string) => void\n onDecline: () => void\n}\n\nconst DirectDebitModal: React.FC = ({\n show,\n formData,\n paymentCycleOptions,\n onAccept,\n onDecline,\n}) => {\n const pdfDownloadLinkRef = useRef(null);\n\n const formattedDate = () => {\n const day = String(formData.paymentCycleStartDate?.getDate()).padStart(2, '0')\n const month = new Intl.DateTimeFormat('en-US', { month: 'long' }).format(\n formData.paymentCycleStartDate ?? new Date()\n )\n const year = formData.paymentCycleStartDate?.getFullYear()\n\n const formattedDate = `${day}-${month}-${year}`\n return formattedDate\n }\n\n // Function to generate the file name\n const generateFileName = () => {\n const currentDate = new Date();\n const formattedDate = `${currentDate.getFullYear()}-${(currentDate.getMonth() + 1)\n .toString()\n .padStart(2, '0')}-${currentDate.getDate().toString().padStart(2, '0')}`;\n\n // Combine all parts of the file name\n const fileName = `Direct Debit Agreement_${formattedDate}_${formData.bankName}_${formData.lastName}_${formData.firstName}.pdf`;\n\n return fileName;\n };\n\n const getPdfBlob = async () => {\n const blobPdf = await pdf().toBlob();\n return blobPdf\n }\n\n const handleAccept = async () => {\n // Trigger the print button click when Accept is clicked\n if (pdfDownloadLinkRef.current) {\n pdfDownloadLinkRef.current.click();\n const blobPdf = await getPdfBlob()\n onAccept(blobPdf, generateFileName())\n }\n }\n\n return (\n \n \n Direct Debit Agreement\n \n \n

\n 'HOSANNA' TRIUMPHANT SHOUT CHILDREN PTY LTD (ABN: 36 618 922 580) uses Zai Australia Pty\n Ltd. to process Direct Debits on its behalf.\n

\n

\n This is your Direct Debit Request Service Agreement with Zai Australia Pty. Ltd., (User\n ID’s 342203 and 481561) & ABN 96637632645. It explains what your obligations are when\n undertaking a Direct Debit arrangement with us. It also details what our obligations are\n to you as your Direct Debit provider.\n

\n

\n Please keep this agreement for future reference. It forms part of the terms and conditions\n of your Direct Debit Request (DDR) and should be read in conjunction with your DDR\n authorisation.\n

\n
\n
Definitions
\n
    \n
  • \n account means the account held at your financial institution from\n which we are authorised to arrange for funds to be debited.\n
  • \n
  • \n agreement means this Direct Debit Request Service Agreement between\n you and us.\n
  • \n
  • \n banking day means a day other than a Saturday or a Sunday or a public\n holiday listed throughout Australia.\n
  • \n
  • \n debit day means the day that payment by you to us is due.\n
  • \n
  • \n debit payment means a particular transaction where a debit is made.\n
  • \n
  • \n direct debit request means the Direct Debit Request between us and\n you.\n
  • \n
  • \n us or we means{' '}\n Zai Australia Pty. Ltd. trading as Zai (the Debit User) you have\n authorised by requesting a Direct Debit Request.\n
  • \n
  • \n you means the customer who has signed or authorised by other means\n the Direct Debit Request.\n
  • \n
  • \n your financial institution means the financial institution nominated\n by you on the DDR at which the account is maintained.\n
  • \n
\n
\n\n
\n
Debiting your account
\n
    \n
  1. \n By signing a Direct Debit Request or by providing us with a valid instruction, you\n have authorised us to arrange for funds to be debited from your account. You should\n refer to the Direct Debit Request and this agreement for the terms of the arrangement\n between us and you.\n
  2. \n
  3. \n We will only arrange for funds to be debited from your account as authorised in the\n Direct Debit Request.

    \n or

    \n We will only arrange for funds to be debited from your account if we have sent to the\n address nominated by you in the Direct Debit Request, a billing advice which specifies\n the amount payable by you to us and when it is due.\n
  4. \n
  5. \n If the debit day falls on a day that is not a banking day, we may direct your\n financial institution to debit your account on the following banking day. If you are\n unsure about which day your account has or will be debited you should ask your\n financial institution.\n
  6. \n
\n
\n\n
\n
Amendments by us
\n

\n We may vary any details of this agreement or a Direct Debit Request at any time by\n giving you at least fourteen (14) days written notice.\n

\n
\n\n
\n
Amendments by you
\n

\n You may change*, stop or defer a debit payment, or terminate this agreement by providing\n us with at least fourteen (14 days) notification by writing to:\n

\n

\n \n Accounts Department\n
\n Zai\n
\n Level 18,\n
\n 120 Spencer Street,\n
\n Melbourne VIC 3000\n
\n Australia\n
\n

\n

\n or by emailing us at helpdesk@hellozai.com{' '}\n during business hours; or arranging it through your own financial institution, which is\n required to act promptly on your instructions.\n

\n

\n *Note: in relation to the above reference to ‘change’, your financial institution may\n ‘change’ your debit payment only to the extent of advising us of your new account\n details.\n

\n
\n\n
\n
Your obligations
\n

\n It is your responsibility to ensure that there are sufficient clear funds available in\n your account to allow a debit payment to be made in accordance with the Direct Debit\n Request.\n

\n

If there are insufficient clear funds in your account to meet a debit payment:

\n

\n (a) you may be charged a fee and/or interest by your financial institution;\n
\n (b) you may also incur fees or charges imposed or incurred by us; and\n
\n (c) you must arrange for the debit payment to be made by another method or arrange for\n sufficient clear funds to be in your account by an agreed time so that we can process\n the debit payment.\n

\n

\n You should check your account statement to verify that the amounts debited from your\n account are correct\n

\n
\n\n
\n
Dispute
\n
    \n
  1. \n If you believe that there has been an error in debiting your account, you should\n notify us directly at helpdesk@hellozai.com{' '}\n and confirm that notice in writing with us as soon as possible so that we can resolve\n your query more quickly. Alternatively, you can take it up directly with your\n financial institution.\n
  2. \n
  3. \n If we conclude as a result of our investigations that your account has been\n incorrectly debited we will respond to your query by arranging for your financial\n institution to adjust your account (including interest and charges) accordingly. We\n will also notify you in writing of the amount by which your account has been adjusted.\n
  4. \n
  5. \n If we conclude as a result of our investigations that your account has not been\n incorrectly debited we will respond to your query by providing you with reasons and\n any evidence for this finding in writing.\n
  6. \n
\n
\n\n
\n
Accounts
\n

You should check:

\n
    \n
  1. \n with your financial institution whether direct debiting is available from your account\n as direct debiting is not available on all accounts offered by financial institutions.\n
  2. \n
  3. \n your account details which you have provided to us are correct by checking them\n against a recent account statement; and\n
  4. \n
  5. \n with your financial institution before completing the Direct Debit Request if you have\n any queries about how to complete the Direct Debit Request.\n
  6. \n
\n
\n\n
\n
Confidentiality
\n
    \n
  1. \n We will keep any information (including your account details) in your Direct Debit\n Request confidential. We will make reasonable efforts to keep any such information\n that we have about you secure and to ensure that any of our employees or agents who\n have access to information about you do not make any unauthorised use, modification,\n reproduction, or disclosure of that information.\n
  2. \n
  3. We will only disclose information that we have about you:
  4. \n
      \n
    1. to the extent specifically required by law;
    2. \n
    3. \n or for the purposes of this agreement (including disclosing information in\n connection with any query or claim).\n
    4. \n
    \n
\n
\n\n
\n
Notice
\n

\n If you wish to notify us in writing about anything relating to this agreement, you\n should write to\n

\n

\n \n Accounts Department\n
\n Zai\n
\n Level 18,\n
\n 120 Spencer Street,\n
\n Melbourne VIC 3000\n
\n Australia\n
\n

\n

\n helpdesk@hellozai.com\n

\n

\n We will notify you by sending a notice in the ordinary post to the address you have\n given us in the Direct Debit Request.\n

\n

\n Any notice will be deemed to have been received on the third banking day after posting.\n

\n
\n\n
\n
\n
\n Request and Authority to debit the account named below to pay Zai Australia Pty. Ltd.\n trading as Zai.\n
\n
\n

Request and Authority to debit

\n

\n \n Your Surname or company name {formData.lastName}\n \n

\n
\n

\n \n Your Given names or ABN/ARBN {formData.firstName}\n \n

\n
\n

\n request and authorise{' '}\n Zai Australia Pty. Ltd. trading as Zai & User ID's 342203 and 481561 to\n arrange, through its own financial institution, a debit to your nominated account any\n amount Zai Australia Pty. Ltd. trading as Zai, has deemed payable by\n you. You acknowledge that Zai Australia Pty. Ltd. trading as Zai has different user id’s\n depending on the financial institution it uses.\n

\n

\n This debit or charge will be made through the Bulk Electronic Clearing System (BECS)\n from your account held at the financial institution you have nominated below and will be\n subject to the terms and conditions of the Direct Debit Request Service Agreement.\n

\n
\n\n
\n
Financial details
\n

\n \n Financial institution name {formData.bankName}\n \n

\n
\n

\n \n Address {formData.bankBranch}\n \n

\n
\n

\n \n Name/s on account {formData.bankAccountName}\n \n

\n
\n

\n \n BSB number (Must be 6 Digits){' '}\n {formData.bsb1 + '-' + formData.bsb2}\n \n

\n
\n

\n \n Account number {formData.bankAccountNumber}\n \n

\n
\n

\n \n Direct Debit Amount $ {formData.debitAmount?.toFixed(2)}\n \n

\n
\n

\n \n Payment Cycle{' '}\n \n {\n paymentCycleOptions?.find(\n (option) => option.value === formData.paymentCycle?.toString()\n )?.label\n }\n \n \n

\n
\n

\n \n Start Date {formattedDate()}\n \n

\n
\n
\n\n
\n
Acknowledgment
\n

\n By signing and/or providing us with a valid instruction in respect to your Direct Debit\n Request, you have understood and agreed to the terms and conditions governing the debit\n arrangements between you and Zai Australia Pty. Ltd. trading as Zai as set out in this\n Request and in your Direct Debit Request Service Agreement.\n

\n
\n
\n \n \n Accept\n \n \n {formData &&\n } fileName={generateFileName()}>\n {({ blob, url, loading, error }) =>\n loading ? \"Loading...\" :\n \n Print\n \n }\n \n }\n \n
\n )\n}\n\nexport { DirectDebitModal }\n","import { DatePicker } from '@progress/kendo-react-dateinputs'\nimport { ComboBoxFilterChangeEvent, ComboBoxPageChangeEvent, DropDownList } from '@progress/kendo-react-dropdowns'\nimport { NumericTextBox } from '@progress/kendo-react-inputs'\nimport { yupResolver } from '@hookform/resolvers/yup'\n\nimport { useEffect, useState, FC, useRef, useCallback, Fragment, ChangeEvent } from 'react'\nimport { Controller, Resolver, useForm } from 'react-hook-form'\nimport { useIntl } from 'react-intl'\nimport { ErrorMessage } from '@hookform/error-message'\n\nimport { CustomAlert, IAlert } from '../../../../shared/components/CustomAlert'\nimport { CLIENT_DATA_FORM_DEFAULT } from '../../constant/client-default'\nimport { IClientsData } from '../../models/client'\nimport DirectdebitFormValidationSchema from '../../validators/direct-debit-form'\nimport { getBankList, directDebitCreateClient } from '../../api/ClientApi'\nimport {\n blockNonNumericChars,\n getErrorMessage,\n getUTCDate,\n} from '../../../../shared/service/utils'\nimport { countriesData } from '../../constant/countries'\nimport { transformedBankDataList } from '../../transformer/client-transform'\nimport { toAbsoluteUrl } from '../../../../../_metronic/helpers/AssetHelpers'\nimport { DirectDebitModal } from '../../../../../_metronic/partials/modals/DirectDebitModal'\nimport { paymentCycleOptions } from '../../constant/date'\n\ninterface IProps {\n clientData?: IClientsData\n isDirectDebitAgreementFeatureEnabled?: boolean\n}\n\ninterface Item {\n id: number\n name: string\n}\n\ninterface IPdf {\n blobPdf: Blob\n fileName: string\n}\n\nconst textField = 'name'\nconst keyField = 'id'\n\nconst emptyItem: Item = { [textField]: 'loading ...', id: 0 }\n\nconst pageSize = 50\n\nconst loadingPanel = (\n
\n Loading\n
\n
\n
\n)\n\nconst DirectDebitForm: FC = ({ clientData, isDirectDebitAgreementFeatureEnabled }) => {\n const intl = useIntl()\n const skipRef = useRef(0)\n\n const [formNotification, setformNotification] = useState()\n const [isDisabled] = useState(false)\n const [isSaving, setIsSaving] = useState(false)\n\n const [showModal, setShowModal] = useState(false)\n const [isChecked, setIsChecked] = useState(false)\n\n const directdebitFormValidationSchema = DirectdebitFormValidationSchema()\n const {\n register,\n control,\n handleSubmit,\n formState: { errors, isValid },\n getValues,\n reset,\n trigger,\n setValue,\n } = useForm({\n defaultValues: clientData,\n reValidateMode: 'onSubmit',\n resolver: yupResolver(directdebitFormValidationSchema) as unknown as Resolver,\n })\n\n const loadingData: Item[] = []\n while (loadingData.length < pageSize) {\n loadingData.push({ ...emptyItem })\n }\n\n const dataCaching = useRef([])\n const pendingRequest = useRef()\n const requestStarted = useRef(false)\n const [data, setData] = useState([])\n const [total, setTotal] = useState(0)\n const [filter, setFilter] = useState('')\n const [pdfBlobData, setPdfBlobData] = useState()\n\n const resetCach = () => {\n dataCaching.current.length = 0\n }\n\n const requestData = useCallback((skip: number, filter: string) => {\n if (requestStarted.current) {\n clearTimeout(pendingRequest.current)\n pendingRequest.current = setTimeout(() => {\n requestData(skip, filter)\n }, 50)\n return\n }\n\n fetchDropdownDataBank(pageSize, skip, filter)\n }, [])\n\n const onSubmit = async (values: IClientsData) => {\n const payload: IClientsData = values\n setIsSaving(true)\n\n const formData = new FormData()\n\n formData.append('abnacn', payload.abnacn === undefined ? '' : payload.abnacn.toString())\n formData.append('addressLine1', payload.addressLine1)\n formData.append('addressLine2', payload.addressLine2 === undefined ? '' : payload.addressLine2)\n formData.append('bankAccountName', payload.bankAccountName)\n formData.append('bankAccountNumber', payload.bankAccountNumber)\n formData.append('bankName', payload.bankName)\n formData.append(\n 'bankBranch',\n payload.bankBranch === undefined ? '' : payload.bankBranch.toString()\n )\n formData.append(\n 'bankDescription',\n payload.bankDescription === undefined ? '' : payload.bankDescription.toString()\n )\n formData.append('bsb1', payload.bsb1)\n formData.append('bsb2', payload.bsb2)\n formData.append('businessDevelopmentManager', payload.businessDevelopmentManager)\n formData.append(\n 'clientType',\n payload.clientType === undefined ? '' : payload.clientType.toString()\n )\n formData.append('companyName', payload.companyName === undefined ? '' : payload.companyName)\n formData.append('country', payload.country)\n formData.append(\n 'dateOfBirth',\n payload.dateOfBirth === undefined || payload.dateOfBirth === null\n ? new Date().toISOString()\n : payload.dateOfBirth.toDateString()\n )\n formData.append('email', payload.email)\n formData.append('englishName', payload.englishName)\n formData.append(\n 'expiryDate',\n payload.expiryDate === undefined || payload.expiryDate === null\n ? ''\n : payload.expiryDate.toDateString()\n )\n formData.append('firstName', payload.firstName)\n formData.append('holderName', payload.holderName === undefined ? '' : payload.holderName)\n formData.append('id', payload.id === undefined ? '' : payload.id)\n formData.append('identity', payload.identity === undefined ? '' : payload.identity.toString())\n formData.append(\n 'identityNumber',\n payload.identityNumber === undefined ? '' : payload.identityNumber\n )\n formData.append('issuedBy', payload.issuedBy === undefined ? '' : payload.issuedBy)\n formData.append(\n 'issuedDate',\n payload.issuedDate === undefined || payload.issuedDate === null\n ? ''\n : payload.issuedDate.toDateString()\n )\n formData.append('lastName', payload.lastName)\n formData.append('mobile', payload.mobile === undefined ? '' : payload.mobile.toString())\n formData.append('occupation', payload.occupation || 'N/A')\n formData.append('postCode', payload.postCode)\n formData.append('remarks', payload.remarks === undefined ? '' : payload.remarks)\n formData.append('sex', payload.sex || 'Not To Say')\n formData.append('state', payload.state)\n formData.append('status', payload.status === undefined ? '' : payload.status.toString())\n formData.append('suburb', payload.suburb)\n formData.append('unqId', payload.unqId === undefined ? '' : payload.unqId)\n formData.append(\n 'debitAmount',\n payload.debitAmount === undefined ? '' : payload.debitAmount.toString()\n )\n formData.append(\n 'paymentCycle',\n payload.paymentCycle === undefined ? '' : payload.paymentCycle.toString()\n )\n formData.append(\n 'paymentCycleStartDate',\n payload.paymentCycleStartDate === undefined || payload.paymentCycleStartDate === null\n ? new Date().toISOString()\n : payload.paymentCycleStartDate.toDateString()\n )\n formData.append(\n 'PaymentCycleStartDateUtc',\n payload.paymentCycleStartDate === undefined || payload.paymentCycleStartDate === null\n ? new Date().toISOString()\n : getUTCDate(payload.paymentCycleStartDate).toDateString()\n )\n formData.append('blobPdf', pdfBlobData?.blobPdf === undefined ? '' : pdfBlobData.blobPdf)\n formData.append('fileName', pdfBlobData?.fileName === undefined ? '' : pdfBlobData.fileName)\n\n const [data, error] = await directDebitCreateClient(formData)\n if (data) {\n setformNotification({\n message: `Client saved successfully.`,\n header: `Direct debit`,\n type: 'primary',\n })\n setIsSaving(false)\n // reset(CLIENT_DATA_FORM_DEFAULT)\n } else {\n if (error) {\n const errorMessage = getErrorMessage(error)\n setformNotification({\n message: errorMessage,\n header: `Error Saving Client`,\n type: 'danger',\n })\n }\n setIsSaving(false)\n }\n }\n\n const onReset = () => {\n reset(CLIENT_DATA_FORM_DEFAULT)\n }\n\n const fetchDropdownDataBank = async (take: any, skip: any, search: any) => {\n const dataFromApi = await getBankList(take, skip, search)\n const transFormBankData = transformedBankDataList(dataFromApi)\n transFormBankData.forEach((element: any, index: any) => {\n dataCaching.current[index + skip] = element\n })\n if (skip === skipRef.current) {\n setData(transFormBankData)\n setTotal(total)\n }\n requestStarted.current = false\n setData(transFormBankData)\n }\n useEffect(() => {\n requestData(0, filter)\n return () => {\n resetCach()\n }\n }, [filter, requestData])\n\n const onFilterChange = useCallback((event: ComboBoxFilterChangeEvent) => {\n const filter = event.filter.value\n\n resetCach()\n requestData(0, filter)\n\n setData(loadingData)\n skipRef.current = 0\n setFilter(filter)\n }, [])\n\n const shouldRequestData = useCallback((skip) => {\n for (let i = 0; i < pageSize; i++) {\n if (!dataCaching.current[skip + i]) {\n return true\n }\n }\n return false\n }, [])\n\n const getCachedData = useCallback((skip) => {\n const data: Array = []\n for (let i = 0; i < pageSize; i++) {\n data.push(dataCaching.current[i + skip] || { ...emptyItem })\n }\n return data\n }, [])\n\n const pageChange = useCallback(\n (event: ComboBoxPageChangeEvent) => {\n const newSkip = event.page.skip\n\n if (shouldRequestData(newSkip)) {\n requestData(newSkip, filter)\n }\n\n const data = getCachedData(newSkip)\n\n setData(data)\n skipRef.current = newSkip\n },\n [getCachedData, requestData, shouldRequestData, filter]\n )\n\n const getResourceBankData = (value: any) => {\n return data.find((resource) => resource.name === value)\n }\n\n const handleShowModal = () => {\n trigger() // Manual form validation\n if (isValid) setShowModal(true)\n }\n\n const handleCloseModal = () => {\n setShowModal(false)\n }\n\n const handleAccept = (blobPdf: Blob, fileName: string) => {\n setIsChecked(true)\n setPdfBlobData({ blobPdf, fileName })\n handleCloseModal()\n }\n\n const handleDecline = () => {\n setIsChecked(false)\n handleCloseModal()\n }\n\n const handleChangePaymentCycle = (event: ChangeEvent) => {\n const value = parseInt(event.target.value)\n setValue('paymentCycle', value)\n }\n\n return (\n \n {isSaving && loadingPanel}\n {formNotification && (\n setformNotification(undefined)} />\n )}\n
\n
\n
\n \n
\n
\n

\n {intl.formatMessage({ id: 'DIRECTDEBIT.DIRECTDEBITFORM' })}\n

\n
\n
\n
\n \n \n }\n />\n
\n
\n \n \n }\n />\n
\n
\n
\n
\n \n \n }\n />\n
\n
\n \n \n }\n />\n
\n
\n
\n
\n \n \n }\n />\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n }\n />\n
\n
\n \n \n }\n />\n
\n
\n \n \n }\n />\n
\n
\n
\n
\n \n {\n const countriesWithPlaceholder = [\n ...countriesData,\n ]\n return (\n {\n onChange(e.value.id)\n }}\n defaultValue={countriesWithPlaceholder.find((x) => x.id === 'AUS')}\n style={{ width: '100%', border: '1px solid #000' }}\n />\n )\n }}\n />\n }\n />\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {\n return (\n \n )\n }}\n />\n }\n />\n
\n
\n \n \n {paymentCycleOptions.map((option) => (\n \n ))}\n \n }\n />\n
\n
\n \n {\n return (\n \n )\n }}\n />\n }\n />\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n (\n {\n const selectedItem = event.target.value\n\n if (selectedItem) {\n const value = selectedItem\n ? event.target.value.name + '||' + event.target.value.id\n : 'undefined'\n if (typeof event.target.value === 'object') {\n // Code block to handle the case when event.target.value is an object\n onChange(event.target.value.text)\n } else if (typeof event.target.value === 'string') {\n // Code block to handle the case when event.target.value is a string\n onChange(selectedItem)\n } else {\n // Code block for other data types (e.g., numbers, arrays, etc.)\n onChange(value)\n }\n } else {\n onChange('')\n }\n }}\n />\n )}\n rules={{ required: 'Resource is required' }}\n />\n }\n />\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n \n
\n }\n />\n }\n />\n
\n
\n
\n
\n
\n \n \n }\n />\n
\n
\n \n \n }\n />\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n {isDirectDebitAgreementFeatureEnabled && (\n
\n
\n \n \n
\n \n
\n )}\n
\n
\n
\n \n {intl.formatMessage({ id: 'DIRECTDEBIT.FIELD.SUBMIT' })}\n \n
\n
\n
\n
\n )\n}\n\nexport { DirectDebitForm }\nfunction fetchDropdownDataBank(pageSize: number, skip: number, filter: string) {\n throw new Error('Function not implemented.')\n}\n","import {FC, useEffect, useState} from 'react'\nimport {useIntl} from 'react-intl'\n\nimport {PageLink, PageTitle} from '../../../_metronic/layout/core'\nimport {DirectDebitForm} from './components/partials/DirectDebitForm'\nimport {useFeatureFlags} from '../../context/FeatureFlags'\n\nconst CreateClientPage: FC = () => {\n const intl = useIntl()\n const {features} = useFeatureFlags()\n\n const [isDirectDebitFormFeatureEnabled, setIsDirectDebitFormFeatureEnabled] = useState(false)\n const [isDirectDebitAgreementFeatureEnabled, setIsDirectDebitAgreementFeatureEnabled] =\n useState(false)\n const widgetsBreadCrumbs: Array = []\n\n useEffect(() => {\n if (features.some((feature) => feature.name === 'DirectDebitFormFeature')) {\n setIsDirectDebitFormFeatureEnabled(true)\n }\n if (features.some((feature) => feature.name === 'DirectDebitAgreementFeature')) {\n setIsDirectDebitAgreementFeatureEnabled(true)\n }\n }, [features])\n\n return (\n <>\n {isDirectDebitFormFeatureEnabled ? (\n
\n
\n
\n
\n \n {intl.formatMessage({id: 'ACTION.NEWDIRECTDEBIT'})}\n \n \n
\n
\n
\n
\n ) : (\n
Direct Debit Form feature is not enabled.
\n )}\n \n )\n}\n\nexport default CreateClientPage\n","/**\n * High level router.\n *\n * Note: It's recommended to compose related routes in internal router\n * components (e.g: `src/app/modules/Auth/pages/AuthPage`, `src/app/BasePage`).\n */\n\nimport {FC} from 'react'\nimport {Redirect, Switch, Route} from 'react-router-dom'\nimport {shallowEqual, useSelector} from 'react-redux'\n\nimport {MasterLayout} from '../../_metronic/layout/MasterLayout'\nimport PrivateRoutes from './PrivateRoutes'\nimport {Logout, AuthPage} from '../modules/auth'\nimport {ErrorsPage} from '../modules/errors/ErrorsPage'\nimport {RootState} from '../../setup'\nimport {MasterInit} from '../../_metronic/layout/MasterInit'\nimport DirectDebitPage from '../modules/client/DirectDebitPage'\n\nconst Routes: FC = () => {\n const user = useSelector(({ auth }) => auth.user, shallowEqual) as any;\n\n return (\n <>\n \n {!user ? (\n } />\n ) : (\n /*Otherwise redirect to root page (`/`)*/\n \n )}\n\n {!user ? (\n /*Render auth page when user at `/auth` and not authorized.*/\n \n \n \n ) : (\n /*Otherwise redirect to root page (`/`)*/\n \n )}\n\n \n \n\n {!user ? (\n /*Redirect to `/auth` when user is not authorized*/\n \n ) : (\n <>\n \n \n \n \n )}\n \n \n \n )\n}\n\nexport {Routes}\n","import React, {Suspense} from 'react'\nimport {useHistory, BrowserRouter} from 'react-router-dom'\nimport {I18nProvider} from '../_metronic/i18n/i18nProvider'\nimport {LayoutProvider, LayoutSplashScreen} from '../_metronic/layout/core'\nimport AuthInit from './modules/auth/redux/AuthInit'\nimport {Routes} from './routing/Routes'\nimport {FeatureFlagsProvider} from './context/FeatureFlags'\n// import { Auth0Provider } from \"@auth0/auth0-react\";\ntype Props = {\n basename: string\n}\n\nconst App: React.FC = ({basename}) => {\n const domain = process.env.REACT_APP_AUTH0_DOMAIN || \"\";\n const clientId = process.env.REACT_APP_AUTH0_CLIENT_ID || \"\";\n const audience = process.env.REACT_APP_AUTH0_AUDIENCE || \"\";\n const scope = process.env.REACT_APP_AUTH0_AUDIENCE || \"\";\n\n return (\n }>\n \n {/* */}\n \n \n \n \n \n \n \n \n \n {/* */}\n \n \n )\n}\n\nexport {App}\n","import React from 'react'\nimport ReactDOM from 'react-dom'\n// Redux\n// https://github.com/rt2zz/redux-persist\nimport {PersistGate} from 'redux-persist/integration/react'\nimport {Provider} from 'react-redux'\nimport * as _redux from './setup'\nimport store, {persistor} from './setup/redux/Store'\n// Axios\nimport axios from 'axios'\nimport {Chart, registerables} from 'chart.js'\n\n// Apps\nimport {App} from './app/App'\nimport {MetronicI18nProvider} from './_metronic/i18n/Metronici18n'\n\n/**\n * TIP: Replace this style import with dark styles to enable dark mode\n *\n * import './_metronic/assets/sass/style.dark.scss'\n *\n * TIP: Replace this style import with rtl styles to enable rtl mode\n *\n * import './_metronic/assets/css/style.rtl.css'\n **/\nimport './_metronic/assets/sass/style.scss'\nimport './_metronic/assets/sass/style.react.scss'\nimport '@progress/kendo-theme-default/dist/all.css'\nimport { KendoToolI18Provider } from './_metronic/i18n/kendoToolI18Provider'\nimport { KendoI18Provider } from './_metronic/i18n/kendoI18Provider'\n\n/**\n * Base URL of the website.\n *\n * @see https://facebook.github.io/create-react-app/docs/using-the-public-folder\n */\nconst {PUBLIC_URL} = process.env\n/**\n * Creates `axios-mock-adapter` instance for provided `axios` instance, add\n * basic Metronic mocks and returns it.\n *\n * @see https://github.com/ctimmerm/axios-mock-adapter\n */\n\n/**\n * Inject Metronic interceptors for axios.\n *\n * @see https://github.com/axios/axios#interceptors\n */\n_redux.setupAxios(axios, store)\n\nChart.register(...registerables)\n\nReactDOM.render(\n \n \n \n {/* Asynchronously persist redux stores and show `SplashScreen` while it's loading. */}\n Loading...}>\n \n \n \n \n ,\n document.getElementById('root')\n)\n","import { useDispatch } from \"react-redux\"\nimport * as auth from '../../app//modules/auth/redux/AuthRedux'\nimport { Logout } from \"../../app/modules/auth\"\n\n\nexport default function setupAxios(axios: any, store: any) {\n axios.defaults.headers.Accept = 'application/json'\n axios.interceptors.request.use(\n (config: any) => {\n const {\n auth: {accessToken},\n } = store.getState()\n\n if (accessToken) {\n config.headers.Authorization = `Bearer ${accessToken}`\n }\n\n return config\n },\n (err: any) => {\n console.log(err)\n Promise.reject(err)\n }\n )\n axios.interceptors.response.use(\n (response: any) => {\n return response\n },\n function (error: any) {\n const originalRequest = error.config\n if (\n error.response.status === 401\n ) {\n // If the auth received unauthorize must be redirect\n \n localStorage.setItem('persist:isg-next-auth', '')\n document.location.reload()\n return Promise.reject(error)\n }\n\n return Promise.reject(error)\n }\n )\n}\n","import React from 'react'\nimport {KTSVG} from '../../../_metronic/helpers'\n\nexport interface IAlert {\n className?: string\n message: string\n header?: string\n type: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'light' | 'dark'\n closeToaster?: () => void\n}\n\nconst CustomAlert: React.FC = ({type, message, header, className, closeToaster}) => {\n return (\n \n \n
\n {header &&
{header}
}\n {message}\n
\n {\n if (closeToaster) closeToaster()\n }}\n >\n \n \n \n )\n}\n\nexport {CustomAlert}\n"],"sourceRoot":""}