{"version":3,"sources":["_metronic/layout/components/aside/style.module.scss","utils/json.js","app/modules/Auth/_redux/authCrud.js","api/endpoints/workflow.js","api/endpoints/workflow-definition.js","api/endpoints/options.js","api/endpoints/entry-module.js","api/endpoints/task-scheduler.js","api/endpoints/task.js","api/endpoints/approval-signal.js","api/endpoints/dataset.js","api/endpoints/data-connector.js","api/endpoints/timezone.js","api/endpoints/textract.js","api/endpoints/user-preference.js","api/endpoints/audit-trail.js","api/endpoints/webhooks.js","api/endpoints/index.js","api/index.js","utils/validation.js","redux/actions/organizationActions.js","app/BasePage.js","utils/encryption.js","app/modules/Auth/pages/Login.js","app/modules/Auth/pages/ForgotPassword.js","app/modules/Auth/pages/MfaPage.js","app/modules/Auth/pages/Sso.js","app/modules/Auth/pages/AuthPage.js","app/modules/Auth/pages/Logout.js","app/modules/ErrorsExamples/Maintenance.js","app/modules/ErrorsExamples/Forbidden.js","app/Routes.js","_metronic/i18n/Metronici18n.js","_metronic/i18n/I18nProvider.js","app/components/Refresher.js","app/modules/Auth/pages/LoginDomain.js","app/App.js","serviceWorkerRegistration.js","index.js","app/components/Aroute.js","app/constants/datatable.js","utils/form-editor/operator-map.js","utils/form-editor/normalize-payload.js","utils/form-editor/normalize-response.js","_metronic/_assets/js/components/offcanvas.js","redux/reducers/formEditorReducer.js","redux/reducers/workflowReducer.js","redux/reducers/optionsReducer.js","redux/reducers/timezoneReducer.js","redux/reducers/organizationReducer.js","redux/rootReducer.js","redux/store.js","app/constants/permission/values.js","redux/setupAxios.js","app/components/form/RenderField.js","app/modules/ApplicationMenu/service/index.js","app/modules/ApplicationMenu/_redux/applicationMenuActions.js","utils/Q.js","app/constants/validation/conditions.js","utils/parse-value.js","utils/actionMethods.js","utils/darkOrLight.js","app/components/Ava.js","_metronic/_assets/js/components/cookie.js","utils/hooks/useApiRequest.js","app/components/form-editor/const.js","utils/string/index.js","app/components/Head.js","app/layouts/AuthLayout.js","_metronic/_helpers/AssetsHelpers.js","_metronic/_helpers/RouterHelpers.js","_metronic/_helpers/TablePaginationHelpers.js","_metronic/_assets/js/components/menu.js","_metronic/_assets/js/components/toggle.js","app/AuthorizeRoute.js","app/components/Flex.js","utils/form-details/permission.js","redux/actions/preferenceActions.js","_metronic/_assets/js/components/util.js","app/components/form-editor/utils.js","app/components/Img.js","utils/requestData.js","utils/number.js","app/components/QueryBuilder/utils/security.js","app/components/QueryBuilder/adapter/index.js","providers/VisibilityProvider.js","utils/collection-q.js","utils/states/NewDataTable.state.js","utils/message.js","utils/hooks/useDatasetApi.js","app/components/bot-user-license/BotLicenseTooltip.js","utils/hooks/useFormActions.js","app/components/IconPicker.js","app/constants/SIDEBAR_ICONS.js","app/components/ErrorComponent.js","app/components/Password.js","app/pages/NotificationPage/services.js","api/endpoints/form-editor.js","_metronic/layout/_core/HTMLClassService.js","_metronic/layout/_core/MetronicLayout.js","_metronic/layout/_core/LayoutConfig.js","_metronic/_partials/dropdowns/DropdownCustomToggler.js","_metronic/_partials/dropdowns/DropdownTopbarItemToggler.js","_metronic/layout/components/extras/dropdowns/UserNotificationsDropdown.js","_metronic/layout/components/extras/dropdowns/QuickActionsDropdown.js","_metronic/layout/components/extras/dropdowns/UserProfileDropdown.js","_metronic/layout/components/extras/QuiclUserToggler.js","app/constants/links.js","_metronic/layout/components/extras/dropdowns/HelpDropdown.js","_metronic/layout/components/header/Topbar.js","_metronic/layout/components/header/header-menu/HeaderMenu.js","_metronic/layout/components/header/header-menu/HeaderMenuWrapper.js","_metronic/_partials/controls/AnimateLoading.js","_metronic/layout/components/header/Header.js","_metronic/layout/components/header-mobile/HeaderMobile.js","_metronic/layout/components/brand/Brand.js","_metronic/layout/components/aside/aside-menu/AsideMenuList.js","_metronic/layout/components/aside/aside-menu/AsideMenu.js","_metronic/layout/components/aside/Aside.js","_metronic/layout/components/footer/Footer.js","_metronic/_assets/js/layout/base/header.js","_metronic/_assets/js/layout/base/header-menu.js","_metronic/_assets/js/layout/base/header-topbar.js","_metronic/_assets/js/layout/base/brand.js","_metronic/_assets/js/layout/base/aside-menu.js","_metronic/_assets/js/layout/base/aside.js","_metronic/_assets/js/layout/base/subheader.js","_metronic/_assets/js/layout/base/sticky-card.js","_metronic/_assets/js/layout/base/aside-toggle.js","_metronic/_assets/js/layout/base/footer.js","_metronic/_assets/js/layout/base/content.js","_metronic/_assets/js/layout/extended/scrolltop.js","_metronic/_assets/js/layout/base/stretched-card.js","_metronic/_assets/js/layout/extended/quick-panel.js","_metronic/_assets/js/layout/extended/quick-user.js","_metronic/layout/components/LayoutInit.js","_metronic/layout/components/subheader/components/BreadCrumbs.js","_metronic/layout/_core/MetronicSubheader.js","_metronic/layout/components/subheader/SubHeader.js","_metronic/layout/components/extras/ScrollTop.js","app/modules/ErrorsExamples/NotFound.js","_metronic/layout/components/Layout.js","_metronic/layout/components/content/Content.js","_metronic/layout/components/content/ContentRoute.js","_metronic/layout/_core/MetronicSplashScreen.js","_metronic/layout/_core/MaterialThemeProvider.js","data/appData.js","_metronic/layout/components/aside/aside-menu/CreateModule.js","app/components/form-editor/components/CreateFromScratchModal/index.js","app/modules/ErrorsExamples/UnderConstruction.js","utils/hooks/useRefresh.js","_metronic/layout/components/extras/dropdowns/style.module.scss","_metronic/_assets/js/components/card.js","_metronic/_assets/js/components/scrolltop.js","app/modules/Auth/_redux/authRedux.js","app/modules/ApplicationMenu/_redux/applicationMenuSlice.js","redux/actions/formEditorActions.js"],"names":["module","exports","isJsonString","str","JSON","parse","e","parseJsonString","AUTH_URL","login","values","axios","post","concat","headers","loginWith2Fa","isAuthenticated","get","validateStatus","status","getInfo2fa","forgotPassword","username","params","validationToken","refreshToken","currentToken","jwt","workflowEndpoints","getShareSettings","url","method","getAssignee","getAssigneeByRecord","getPermissibleFields","workflowDefinitionEndpoints","createWorkflowDefinition","getWorkflowInstanceDetails","id","optionsEndpoints","getDatasetFields","entryModuleEndpoints","saveEntry","_ref","moduleId","data","getModuleRecord","_ref2","recordId","getModuleSummary","_ref3","userId","sendComment","_ref4","taskId","getOldComments","_ref5","loadComments","_ref6","submitEntry","_ref7","restartProcess","_ref8","deleteEntry","_ref9","deleteEntries","_ref10","recordIds","getModuleItems","_ref11","getDrafts","_ref12","submitTask","_ref13","task_id","accepted","rejectTask","_ref14","description","reassignTask","_ref15","assignTo","message","comments","reassignMultiTasks","_ref16","taskIds","assigneeData","_objectSpread","value","reassignMultiTasksInApp","_ref17","withdrawTask","_ref18","sendBackTask","_ref19","goBackToActivityId","getGovHeaders","getWorkflowHistory","_ref20","taskSchedulerEndpoints","saveTaskScheduler","taskSchedulerId","getTaskScheduler","loadRecordTaskScheduler","deleteTaskSchedulerEntries","loadSchedulerLogs","schedulerId","_ref5$page","page","_ref5$length","length","taskScheduleAction","schedule_id","taskEndpoints","getModuleTasks","getTasksCount","getModuleTasksDynamic","getTasksByUser","getTasksByTeam","teamId","getTaskDetails","approvalSignalEndpoints","datasetEndpoints","getDatasetList","getDataByKey","getDatasetTable","_ref$data","getDataset","addEntry","referencedataId","saveRefDataEntry","dataConnectorEndpoints","saveSecurityHeader","fetchSecurityHeader","postSecurityHeaderDatatables","fetchDataConnectorById","saveDataConnector","duplicateDataConnector","fetchDataConnectors","fetchDataConnectorDatatables","deleteDataConnectorsByIds","deleteDataConnectorById","runDataConnector","dataConnectorId","_ref9$data","dataConnectorExecute","_ref10$data","timezoneEndpoints","getOrgTimeZone","setUserTimeZone","setOrgTimeZone","getTimeZones","textractEndpoints","getMLProviders","getMLServices","filter","logic","filters","field","providerId","operator","getMLService","getAIServices","mlServiceId","getAIService","uploadFile","_ref3$data","getOcrResponseById","getProviderKey","providerName","updateProviderKey","token","userPreferenceEndpoints","getUserInfo","getQuickLaunch","setQuickLaunch","getQuickLaunchApps","columns","auditTrailEndpoints","getAuditTrail","webhooksEndpoints","getWebhookDetail","getWebhookLog","saveWebhook","getWebhookDataTables","bulkDeleteWebhook","deleteWebhook","endpoints","formEditorEndpoints","getElsaPage","getEntity","client","create","interceptors","request","use","requestInterceptor","store","requestRejectInterceptor","response","responseInterceptor","responseRejectInterceptor","defaults","timeout","api","Object","keys","reduce","collections","path","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","abrupt","sent","stop","_x","apply","arguments","bypassField","val","moment","isValid","test","valArr","String","split","validateSpecialChars","SPECIAL_CHAR_REGEX","validateMax40Chars","validateStartingSpace","match","validateStartingNumber","inputValueValidation","yup","this","matches","createError","_validateMax40Chars","_validateSpecialChars","_validateStartingSpac","_validateStartingNumb","validation","_validation","Yup","setOrganizationPreference","payload","dispatch","type","organizationActions","getCurrentOrganization","result","initRequest","preference","OrganizationInfo","lazy","ApplicationMenuPage","ApplicationUserPage","OrganizationsPage","OrganizationDetailPage","UserProfile","UserDetailPage","FormEditorPage","AppEditorPage","ReportsPage","DashboardPage","ModuleDetailPage","ItemEditorPage","TaskEditorPage","ScheduleEditorPage","DatasetPage","Webhooks","FormWebhook","DatasetDetailPage","NotificationPage","RolesPermissions","TeamManagement","TeamDetailPage","DataConnectorPage","AddDataConnectorPage","TasksPage","DashboardListPage","ReportPage","AuditPage","ReportDesignerPage","ReportViewerPage","EasyQueryAdvanceSearchPage","ComingSoonPage","PermalinkPage","ElsaPage","BasePage","useDispatch","_useSelector","useSelector","auth","config","isFullUser","isConsultant","isSysAdmin","isAdministrator","userInfo","optionsReducer","useEffect","preferenceActions","getUserPreference","sysAdminRoutes","component","restrictedRoutes","exact","restrictedAdminRoutes","unrestrictedRoutes","_jsx","Suspense","fallback","LayoutSplashScreen","children","_jsxs","Switch","_userInfo$preference","route","launchPage","isEmpty","launch_page","toLowerCase","Redirect","from","to","handleDefaultLaunchUrl","map","item","index","AuthorizeRoute","generateKey","Date","toISOString","slice","replace","padEnd","initialValues","styled","display","width","color","marginRight","email","password","injectIntl","connect","state","authLoading","redirectUrl","props","intl","_useState","useState","_useState2","_slicedToArray","setMessage","URLSearchParams","window","location","search","redirectTo","history","push","disableLoading","setLoading","formik","useFormik","validationSchema","object","shape","string","required","formatMessage","min","max","onSubmit","setStatus","setSubmitting","plainText","secretKey","key","encUTF8","iv","AES","encrypt","toString","stringify","then","_ref2$data","success","requiresTwoFactor","catch","className","APP_NAME","noValidate","handleSubmit","isSubmitting","disabled","spellCheck","placeholder","formikValidClass","name","autoComplete","getFieldProps","touched","errors","Password","onChange","handleChange","Link","FormattedMessage","Button","block","Flex","style","gap","href","alt","src","height","target","rel","loadingIcon","LoadingOutlined","fontSize","spin","fieldname","isRequested","setIsRequested","ForgotPasswordSchema","res","_res$data","_res$data2","_res$data3","_message","error","_Fragment","Spin","indicator","loading","_useState3","_useState4","user","setUser","console","log","twoFactorCode","rememberMachine","enableLoading","isPersistent","setTimeout","loginMfa","onKeyDown","includes","preventDefault","Form","Check","label","justify","align","tip","size","AuthPage","shallowEqual","AuthLayout","MfaPage","ContentRoute","Login","ForgotPassword","SsoPage","Logout","refreshDatatable","useInvalidateAllModuleDatatableQueries","hasAuthToken","Boolean","authToken","doLogout","actions","logout","Maintenance","dir","backgroundImage","Forbidden","ResetPasswordPage","WHITE_LIST_SIDEBAR","Routes","isAuthorized","useLocation","returnUrl","pathname","hash","encodeURI","Route","UnderConstruction","matchRoute","useRouteMatch","Layout","authLayoutBase","I18N_CONFIG_KEY","process","REACT_APP_I18N_CONFIG_KEY","initialState","selectedLang","getConfig","ls","localStorage","getItem","er","I18nContext","createContext","Consumer","MetronicI18nProvider","lang","useMemo","Provider","allMessages","de","en","es","fr","ja","zh","I18nProvider","locale","useContext","messages","IntlProvider","Refresher","queryClient","useQueryClient","useHistory","useRefresh","authConfig","_useJwt","useJwt","decodedToken","reEvaluateToken","isInactive","setIsInactive","events","isInactiveRef","useRef","timerRef","inactivityTimeout","modalTimeout","bc","BroadcastChannel","addEventListener","event","newToken","Modal","destroyAll","clearInterval","current","setActive","forEach","removeEventListener","appMenu","service","postMessage","showModalAfterLogout","t0","showModalAlert","expired","confirm","icon","maskClosable","closable","content","Countdown","eventTime","interval","okText","cancelButtonProps","title","onOk","info","today","utc","exp","isBefore","minutesUntilExpired","diff","clearTimeout","_callee2","_context2","_callee3","_context3","arg","activity_id","notification","open","invalidateQueries","predicate","query","_query$queryKey$","queryKey","calculateDuration","duration","Math","floor","now","setDuration","timerCallback","useCallback","asSeconds","setInterval","minutes","seconds","HelpIcon","APP_DOMAIN","LoginDomain","ktLoginStyle","toAbsoluteUrl","asideContent","Card","onFinish","Item","rules","Input","addonBefore","addonAfter","EmailOutlined","PhoneOutlined","BookOutlined","QueryClient","defaultOptions","queries","staleTime","Infinity","suspense","refetchOnWindowFocus","refetchOnmount","refetchOnReconnect","retry","count","App","persistor","basename","QueryClientProvider","PersistGate","React","BrowserRouter","MaterialThemeProvider","VisibilityProvider","host","hostname","Honeybadger","configure","apiKey","environment","breadcrumbsEnabled","dom","network","navigation","URL","webkitURL","_redux","isMobile","setClass","document","body","ReactDOM","render","MetronicLayoutProvider","MetronicSubheaderProvider","MetronicSplashScreenProvider","ErrorBoundary","honeybadger","getElementById","navigator","serviceWorker","ready","registration","unregister","Aroute","forwardRef","ref","_Cx","kind","nav","btn","outline","dropdown","listGroup","noLine","stretched","role","tabIndex","noNewTab","_ref$onMouseEnter","onMouseEnter","_ref$onClick","onClick","_ref$onContextMenu","onContextMenu","etc","_objectWithoutProperties","_excluded","NavLink","setAttr","et","hasClass","click","Cx","_defineProperty","SIZE_PER_PAGE","SIZE_PER_PAGE_LIST","text","STATUS_DRAFT","STATUS_IN_PROGRESS","STATUS_COMPLETED","STATUS_FAULTED","STATUS_STARTING","STATUS_RETURNED","WORKFLOW_STATUSES","DEFAULT_COLUMNS_COUNT","operatorMap","op","sortTypesMap","extractFieldValue","formValues","table","rowIndex","isNaN","dataTablePayload","_filters$rules","_payload$fields","fields","_payload$page","_payload$orders","orders","_payload$filters","_payload$sizePerPage","sizePerPage","fieldId","dataField","searchable","orderable","searchValue","searchRegex","remoteLookupPayload","_callee6","_ref2$formValues","_ref2$govHeaders","govHeaders","_payload$url","httpMethod","contentType","tokenizer","submitAllFields","_payload$headers","_payload$body","_payload$params","addGovHeaders","urlObject","parsedUrl","getFieldValue","getDatasetValue","fieldsWalker","headersWalker","postBody","urlParams","requestHeaders","modifiedUrl","_context6","requestType","responseFormat","responsePath","queryString","hasOwnProperty","datasetKey","datasetColumn","referenceDataId","_x2","Promise","all","_x4","_x3","_callee5","_context5","_callee4","_context4","_x6","_x5","t1","t2","t3","t4","t5","t6","omit","t7","t8","_toConsumableArray","t9","t10","t11","call","stringifyUrl","shift","selectMultiple","bodyContent","lookupPayload","timezone","fieldType","flowToLookUp","isTableLookup","tableName","isDataset","sortBy","sortValuesBy","sortType","rawFilters","selectFieldsByThisProcess","_ref10$combinator","combinator","fieldNames","fieldName","isTable","matchesAll","valueFieldType","parseValue","undefined","ignoreCase","aggregateLookupPayload","fieldToAggregate","aggregateType","aggregationType","userLookupPayload","_ref12$combinator","workflowPayload","elements","validUserFields","validateAssignee","rawActivity","assignToCollectionExpression","expression","validAssignee","assignee","assigneeField","approver_id","draft","activities","el","source","act","position","activity","_excluded3","_ref14$raw","raw","rawProperties","nodeDescription","_excluded4","properties","entries","acc","prop","_prop","propName","startCase","syntaxValue","syntax","SupportedStatusCodes","Branches","OutcomeNames","PossibleOutcomes","expValue","Array","isArray","v","parsePropValue","elsaPropName","ConditionExpression","ModuleId","ValueExpression","elsaProp","expressions","IfElse","activityId","displayName","left","x","top","y","persistWorkflow","loadWorkflowContext","saveWorkflowContext","connections","conn","sourceHandle","_excluded5","outcome","sourceActivityId","targetActivityId","formPayload","sections","flowData","fieldGroups","section","secIdx","sectionIndex","rows","rest","rowFields","row","mapFieldTypes","columnIndex","_excluded2","strToSnakeCase","editorType","reservedFieldNames","orderIndex","minimumRowCount","maximumRowCount","formName","isPublished","listKeyValuePayload","categories","items","key_name","join","syncWorkflowItems","workflow","wf","goto","find","step","_wf$goto","fieldsToColumn","isDraft","excludedColumns","hidden","void","classes","headerClassNames","fieldColumns","_data$","dataColumns","dataToColumn","defaultDraftColumn","defaultOtherColumn","ocrDocumentColumn","flowToElements","instances","_instances$activities","_instances$connection","If","destinationActivityId","arrowHeadType","mapWorkflowHistory","workflow_history","activityType","_item$data","_item$data$Results","_item$data2","_item$data3","_item$data3$Assignee","_item$data4","_item$data5","_item$data5$ApprovalH","_item$data5$ApprovalH2","_item$data6","_item$data6$ApprovalH","_item$data6$ApprovalH2","_item$data7","_item$data7$ApprovalH","_item$data7$ApprovalH2","_item$data8","_item$data8$ApprovalH","_item$data8$ApprovalH2","_item$data9","_item$data9$Outcomes","results","Results","executeAssignment","Assignee","a","approver_name","performedBy","author_name","actionType","ActionType","resumeAssignment","ApprovalHistory","assigned_to","reassignAssignment","reassigned_to","reassignStart","reAssignedTo","approvedBy","current_approver","initiatedBy","Outcomes","variant","mapRecordStatus","workflow_status","workflow_completed_on","workflow_started_on","workflow_faulted_on","workflow_instance_id","mapRecordDisplayStatus","finalStatuses","elsaWorkflowToReactFlow","flow","xmlToJson","rawData","onConvertToJson","mapSidebarMenuTrees","dataSidebar","searchTerm","sidebar","_item$text","matchedChildren","KTOffcanvas","elementId","options","the","element","KTUtil","getById","getBody","attrCustom","Plugin","construct","has","init","build","set","deepExtend","classBase","baseClass","classShown","classOverlay","toggleBy","addEvent","toggle","i","closeBy","hide","isShown","eventTrigger","show","toggleClass","attr","addClass","classCustom","overlay","insertAfter","createElement","removeAttr","removeClass","remove","mode","args","one","handler","fired","setDefaults","on","lastHistory","tab","permissibleList","permissibleListCategoryOptions","permissibleListItems","permissibleListCategories","formPreview","formDetails","formFields","tableFields","formList","moduleItems","moduleTasks","moduleLookup","columnLookup","moduleCategories","dataConnectorDetails","mlProviders","mlServices","aiServices","formEditorReducer","action","formId","formState","_step","rawFields","uniqueRawFields","_iterator","_createForOfIteratorHelper","_loop","fid","s","n","done","err","f","listId","forms","deleteIndex","findIndex","form","splice","moduleFavourite","moduleList","tasksCount","quickApp","details","editWorkflow","permissibleFields","workflowSchemas","workflowInstanceDetails","workflowReducer","workflowId","schema","optionKey","optionList","time_zone","date_format","datetime_format","time_format","timezoneReducer","timeZone","dateFormat","setItem","organizationReducer","_action$payload","rootSaga","rootReducer","combineReducers","applicationMenu","appMenuSlice","reducer","organization","_marked","sagaMiddleware","createSagaMiddleware","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","thunk","configureStore","devTools","enhancers","reduxBatch","persistStore","run","VISIBLE","EDITABLE","READONLY","HIDDEN","reject","_config$headers","_config$headers$confi","getState","Authorization","code","setupAxios","RenderField","_useField","useField","_useField2","meta","helpers","typeProp","as","onSelect","selected","isMulti","selectedValues","setValue","selectedValue","onChecked","checked","isLoading","fieldProp","Skeleton","active","Select","isClearable","TreeSelect","treeData","showSearch","treeNodeFilterProp","allowClear","tempProp","Control","isInvalid","renderInput","Feedback","APP_MENU_URL","CATEGORY_URL","mapTreeNodes","nodes","isMenu","FolderOutlined","FileOutlined","categoryIcon","fetchTrees","startCall","callType","callTypes","list","treesFetched","onSnackbarOpen","catchError","fetchMenus","menu","menusFetched","unControlMenu","deleteMenu","appMenuService","_response$data","clearState","_error$message","param","put","_response$data2","clientMessage","saveMenu","_response$data3","_message2","onSnackbarClose","cached","fn","cache","isStr","isObj","constructor","isFunc","isNum","cls","domQ","q","querySelector","domQall","querySelectorAll","c","_el$classList","classList","contains","setAttribute","removeAttribute","warn","Qid","S4","random","substring","preventQ","stopPropagation","obj","omitKeys","k","indexOf","jsonParse","returnErr","makeEl","t","userAgent","getInitials","no","_name$split","_name$split2","first","last","obj2formData","fd","FormData","append","touch","getParam","unescapeHTML","tag","calcHeight","h","getWidth","offsetWidth","getComputedStyle","parseFloat","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","getHeight","offsetHeight","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","getOuterWidth","margin","getBoundingClientRect","marginLeft","getOuterHeight","marginTop","marginBottom","simplifyErrorMsg","_err$sourceError","_err$sourceError$mess","_err$sourceError$mess2","errMsg","sourceError","replaceAll","_unused","customEqCellRenderer","column","cellElement","rowElement","_strValue2","_strValue3","_strValue","_objValue$Object$keys","_strValue4","strValue","toLocaleString","objValue","_val$Object$keys$","startsWith","endsWith","innerHTML","innerText","findDuplicates","array","Set","mergeColumns","defaultData","secondayData","matchingObj","mergeColumnsTable","columnWidth","mergeReferenceTable","defaultColumns","configColumns","merged","unmerged","foundIdx","mapGroupOptionsTree","trees","CONDITIONS","defFields","MAX_FILE_SIZE","zeroPrefix","totalLength","hfInstance","isParsingPayload","parsedValue","toValidMoment","Number","dateObj","hfDate","numberToDateTime","year","month","day","showTime","valueFormat","parsedTime","hours","nSeconds","nMinutes","parseTime","dateTimeString","format","displayFormat","normalizer","onSuccess","onComplete","_ref2$method","requestMethod","requestData","requestCall","apiResponse","_data","_args","finish","darkOrLight","r","g","b","sqrt","Ava","_ref$w","w","_ref$h","_ref$alt","_ref$loading","_ref$drag","drag","frameClass","frameProps","bg","labelColor","circle","rounded","contain","onError","onLoad","LOAD_CX","removeLoader","draggable","fs","num","trm","trim","bgColor","sl","charCodeAt","j","substr","str2Hex","KTCookie","getCookie","cookie","RegExp","decodeURIComponent","setCookie","assign","expires","toUTCString","updatedCookie","encodeURIComponent","optionValue","deleteCookie","useApiRequest","_options$redux","redux","_options$fieldId","reduxState","reduxDispatch","_useReducer","useReducer","_useReducer2","dispatcher","loadingState","INIT_COL","INIT_FIELD_TYPES","helpText","isComputedField","formula","regex","decimalPlaces","listToUse","hideFieldsDuringSelection","hideFields","autoSelectFirstValueByFilters","dataType","resultType","rawRequestConfig","minValue","maxValue","intervalSize","multiUserSelected","autoSelectFirstValueByFilter","canAddChecklistValues","canDeleteChecklistValues","canAddRenameChecklist","fieldToResult","renderType","renderTarget","showInModal","showAsLink","stepSequence","isSendEmail","barcodeValue","fieldOptions","editable","F_TIME","F_OPTIONS","F_LAUNCH_OPTIONS","normalizeJsonString","stripHTML","_el$body","DOMParser","parseFromString","textContent","Head","Helmet","defaultTitle","titleTemplate","_ref$title","backgroundColor","maxWidth","borderRadius","transform","APP_YEAR","checkIsActive","getCurrentUrl","getPagesCount","totalSize","ceil","getPages","pagesCount","paginationSize","shiftCount","getByTagName","len","closest","parentNode","getSubmenuMode","hideDropdowns","KTMenu","scroll","rememberPosition","accordion","slideSpeed","autoScroll","autoScrollSpeed","expandAll","reset","eventHandlers","pauseDropdownHoverTime","uid","getUniqueID","update","reload","resetSubmenuProps","handleSubmenuAccordion","isConditionalSubmenuDropdown","handleSubmenuDrodownHoverEnter","handleSubmenuDrodownHoverExit","handleSubmenuDropdownClick","handleSubmenuDropdownTabClick","handleLinkClick","scrollInit","off","scrollDestroy","mobileNativeScroll","windowScroll","resetHeightOnDestroy","handleWindowResize","scrollUpdate","scrollTop","isBreakpointUp","hasAttr","isset","submenu","hasClasses","desktop","default","isBreakpointDown","tablet","mobile","submenus","findAll","css","hasAttribute","getAttribute","resumeDropdownHover","showSubmenuDropdown","time","hideSubmenuDropdown","hideSubmenuDropdowns","handleSubmenuDropdownClose","shown","li","child","speed","subnav","closables","el_","submenu_","slideUp","slideDown","scrollToItem","scrollTo","classAlso","cnt","isOffscreen","createSubmenuDropdownClickDropoff","zIndex","dropoff","appendChild","pauseDropdownHover","date","getTime","resetActiveItem","parents","i_","len_","setActiveItem","getBreadcrumbs","breadcrumbs","link","submenuLink","reverse","getPageTitle","removeEvent","scrollReInit","hideDropdown","addResizeHandler","KTToggle","targetToggleMode","targetState","toggleState","toggleOn","toggleOff","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","authenticated","_createClass","populateAuthenticationState","_populateAuthenticationState","setState","_authenticationChanged","_this$state","_this$props","Component","_Component2","_ref$As","As","_ref$inline","inline","_ref$hidden","nowrap","self","fill","grow","shrink","isSection","setDefaultPermission","permission","rule","rawEntries","mapControl","entry","_entry","editability","visibility","defaultVisibility","rootVisibility","root","defaultEditability","rootEditability","controls","rootPredicate","findByValueActivityId","control","permissionCodes","rawToRules","rawPermission","setTimeZone","setUserInfo","_data$user","Element","prototype","msMatchesSelector","webkitMatchesSelector","ancestor","documentElement","parentElement","elem","removeChild","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","callback","currTime","timeToCall","Document","DocumentFragment","defineProperty","configurable","enumerable","writable","argArr","docFrag","createDocumentFragment","argItem","isNode","Node","createTextNode","insertBefore","firstChild","getAttributeNames","attributes","KTUtilElementDataStore","KTUtilElementDataStoreID","KTUtilDelegatedEventHandlers","resizeHandlers","breakpoints","sm","md","lg","xl","_windowResizeHandler","throttle","timer","_runResizeHandlers","settings","removeResizeHandler","runResizeHandlers","resize","Event","dispatchEvent","evt","createEvent","initUIEvent","getURLParam","paramName","unescape","isMobileDevice","getViewPort","getBreakpoint","isDesktopDevice","isInResponsiveRange","breakpoint","prefix","stone","Error","getHighestZindex","parseInt","hasFixedPositionedParent","sleep","milliseconds","start","getRandomInt","isAngularVersion","Zone","merge","extend","out","getByTag","getElementsByTagName","getByClass","getElementsByClassName","classesArr","classNames","add","triggerCustomEvent","eventName","CustomEvent","detail","initCustomEvent","triggerEvent","node","doc","ownerDocument","nodeType","eventClass","bubbles","initEvent","synthetic","fireEvent","createEventObject","eventTriggered","currentTarget","dataset","triggered","parent","referenceNode","nextSibling","selector","matchesSelector","mozMatchesSelector","oMatchesSelector","childNodes","l","p","tagName","customDataTag","outerWidth","offset","rect","win","getClientRects","defaultView","pageYOffset","pageXOffset","outerHeight","withMargic","visible","animate","easing","easings","linear","d","rAF","change","performance","loop","timestamp","actualCss","HTMLElement","cssText","actualHeight","actualWidth","getScroll","browserSupportsBoxModel","styleProp","getPropertyValue","currentStyle","letter","toUpperCase","oldLeft","oldRsLeft","runtimeStyle","pixelLeft","slide","recalcMaxHeight","calcPaddingTop","calcPaddingBottom","overflow","eventId","targets","callee","animateClass","animationName","animation","animations","OAnimation","MozAnimation","WebkitAnimation","msAnimation","transitionEnd","transition","transitions","OTransition","MozTransition","WebkitTransition","msTransition","animationEnd","animateDelay","animateDuration","targetPos","scrollPos","attachEvent","readyState","numberString","nStr","x1","x2","rgx","detectIE","ua","msie","rv","edge","isRTL","html","wheelSpeed","swipeEasing","wheelPropagation","minScrollbarLength","maxScrollbarLength","suppressScrollX","ps","attrs","attrName","optionName","filterBoolean","Function","mobileHeight","disableForMobile","desktopNativeScroll","PerfectScrollbar","pos","destroy","scrollUpdateAll","scrollers","resetAll","setProperty","setHTML","getHTML","getDocumentHeight","scrollHeight","clientHeight","getScrollTop","scrollingElement","colorDarken","amount","subtractLight","cc","colorLighten","addLight","func","delay","debounce","btnWait","caption","btnRelease","direction","windowWidth","windowHeight","KTAppSettings","onload","scrollFocusEl","lastEl","preventScroll","tabFieldSet","scrollBy","behavior","focus","awsFile","parseFieldUploadData","isFile","_parseJsonString","genValue","_jsonParse","_jsonParse$","pop","fileKey","mapNewData","oldData","newData","iterateNewFields","fieldData","normalizedFieldData","sectionId","sectionRowId","newSectionData","rowIdx","isStaticField","isDisabled","isCalculated","newRowKeys","generateDateTime","toLocalMoment","_generateDateTime","isActual","_toLocalMoment","_toLocalMoment2","_f$value","filterFields","_f$fieldType","Img","_ref$draggable","_ref$wrapAs","wrapAs","wrapProps","fluid","thumb","round","frame","_ref$frameClassPrefix","frameClassPrefix","captionClass","bsFigure","setCx","Load","img","cursor","isValidConnector","connector","connectorType","connector_type","request_data","security","json_workflow","resolve","parseString","explicitRoot","explicitArray","_err","byString","o","num2Hex","calculatePercentageValue","restorePercentageValue","isPercentage","numberValue","toFixed","getNumberSeparators","thousand","decimal","handleSecurityRules","mapControls","mapDefaultControls","populateControl","ruleFound","rl","defaultControl","currentVisibility","_rawPermission$name","_rawPermission$name$v","_rawPermission$name$v2","visibilityRules","defaultVisibilityControl","evaluateRawVisibility","currentEditability","_rawPermission$name2","_rawPermission$name2$","_rawPermission$name2$2","editabilityRules","defaultEditabilityControl","evaluateRawEditability","_p$fields","_p$fieldGroups","conditions","visibilityAdapter","mapCombinators","and","or","mapValueTypes","conditional","isMatchesVisible","populateRule","valueType","valueExpression","other","insertRules","validationAdapter","validations","customError","filterAdapter","selectedField","valueEditorType","tableFilterAdapter","_r$value","_r$value2","populateRules","newRules","_rule$rules","securityAdapter","activityList","existingActivity","_existingActivity$act","_existingActivity$fie","_existingActivity$fie2","requestAdapter","_root$rules","stateMapper","targetArray","upsertObject","VisibilityContext","visibilityState","updateVisibility","arrMove","arr","startIndex","endIndex","_arr$splice","arrMoveMutate","addInto","groupBy","fetchDataTable","getDataTableQueryKey","useDataTableQuery","useQuery","enabled","useInvalidateModuleDatatableQueries","msg","antdMessage","warning","useDatasetApi","_useApiRequest","BotLicenseTooltip","licenseName","_props$withIcon","withIcon","Tooltip","useFormActions","useParams","getFormDetails","formDetail","formEditorActions","getFormDetail","loadListApplications","getListApplications","deleteForm","getModuleCategories","getModuleLookup","getColumnLookup","parseObjPath","_path$split","IconPicker","icons","_ref$type","_ref$storageKey","storageKey","_ref$cache","_ref$autoFocus","autoFocus","_ref$autoClose","autoClose","_ref$preview","preview","_ref$pageSize","pageSize","_ref$onClickIcon","onClickIcon","_ref$onHoverIcon","onHoverIcon","findRef","load","setLoad","setData","_useState5","_useState6","setMeta","_useState7","_useState8","setShow","_useState9","_useState10","view","setView","_useState11","_useState12","findVal","setFindVal","onHover","valCondition","toView","filteredData","pref","_meta$prefix","fetchIcon","dataIcon","metas","metadata","preferences","fontPref","objStorage","_dataIcon","_dataIcon2","centered","scrollable","onHide","Header","closeButton","Title","List","awaitMore","itemCount","itemsRenderer","notFound","renderItem","filename","SIDEBAR_ICONS","ErrorComponent","_ref$prefixClass","prefixClass","fallbackRender","onLine","wrapClass","prepend","inputSize","btnProps","_ref$variant","see","setSee","autoCapitalize","API","clearNotifBadge","sub","btnNotif","badge","notif","onReadDetail","isRead","ID","useGetNotification","notifs","setNotifs","setDetail","setPage","CancelToken","cancelToken","notifDetail","read_on","isCancel","cancel","onDetail","onMarkReadAll","loadMoreData","lenght","createProcessFromScratch","saveForm","applyConfigAllUser","setUserConfig","tabConfig","publish","saveRecordTemplate","templateId","templateName","getSavedRecordTemplate","loadRecordTemplate","renameRecordTemplate","deleteRecordTemplate","setOrderIndexRecordTemplate","getPermissibleList","addPermissibleList","getPermissibleListCategoryOptions","addPermissibleListCategoryOption","getPermissibleListItems","getFormList","getFormListTable","_ref11$data","getStiReportListTable","_ref12$data","getEditorModules","_ref13$data","getEmailTemplateFields","updateEmailTemplate","deleteFileUrl","getFileUrl","uploadUrl","uploadBase64Url","uploadEntry","requestParams","remoteLookup","lookup","recordModuleLookup2","aggregateLookup","_ref21","userLookup","_ref22","userLookup2","_ref23","reservedModuleNames","getMostUsedList","copyModule","_ref24","updateModule","_ref25","getFavouriteList","addRemoveFavouriteModule","_ref26","isAdd","setOrderListApplications","_ref27","setModuleReassignment","_ref28","isReassignmentDisabled","getModuleConfig","dataEntryLookup","HtmlClassService","layoutConfig","preInit","header","header_container","header_mobile","header_menu","aside","aside_menu","subheader","subheader_container","content_container","footer_container","initLayout","initLoader","initHeader","initSubheader","initContent","initAside","initFooter","initTheme","updatedConfig","headerSelfFixedDesktop","objectPath","fixed","logo","getLogo","selfBodyBackgroundImage","_selfBodyClass","cssClass","headerMenuSelfLayout","headerMenuLayoutCssClass","subheaderFixed","subheaderStyle","subheaderClass","asideSelfDisplay","asideMenuDropdown","asideSubmenuDHoverTimeout","brandSelfTheme","headerSelfTheme","LAYOUT_CONFIG_KEY","REACT_APP_LAYOUT_CONFIG_KEY","demo","js","xxl","colors","theme","base","light","inverse","gray","fontFamily","loader","toolbar","layout","arrow","displayDesc","displayDaterangepicker","clear","brand","minimize","hoverable","footer","extras","offcanvas","notifications","directions","languages","cart","chat","scrolltop","HtmlClassServiceContext","useHtmlClassService","lc","hcs","setConfig","DropdownTopbarItemToggler","UserNotificationsDropdown","uiService","layoutProps","loadNotifs","_auth$config","_auth$config$userInfo","SVG","Dropdown","onToggle","alignRight","drop","Toggle","OverlayTrigger","placement","unread","Menu","maxHeight","_v$task_id","_v$time_since","isStartProcess","current_step","notification_type_name","editorPage","routeTo","module_id","record_id","sinceString","time_since","moreThan1daySince","fontWeight","record_created_by","notification_content","dateTime","created_on","avatar","paragraph","QuickActionsDropdown","menus","_auth$config$appMenu","lists","_menu$items","_menu$items2","itemVal","idx","renderPanel","UserProfileDropdown","_auth$config2","_auth$config2$userInf","_auth$config3","_auth$config4","_auth$config5","_auth$config5$userInf","imgUrl","QuickUserToggler","HELP_URL","HelpDropdown","Topbar","viewNotificationsDisplay","viewQuickActionsDisplay","viewQuickPanelDisplay","viewUserDisplay","HeaderMenu","userExtRefId","setUserExtRefId","getMenuItemActive","fetchUserExtRefId","_yield$getDataset","headerMenus","hMenus","m","GenerateMenu","Fragment","ktMenuClasses","headerMenuAttributes","ulClasses","menuDesktopToggle","rootArrowEnabled","HeaderMenuWrapper","resetLastHistory","setLastHistory","getClasses","getAttributes","disabledAsideSelfDisplay","getHeaderLogo","AnimateLoading","_React$Component","_len","_key","routeChanged","nextProps","scrollToTop","scrollToTopBtn","_this2","animateTimeout","stopAnimate","_this3","animateInterval","stopAnimateTimeout","ProgressBar","withRouter","headerClasses","headerAttributes","headerContainerClasses","menuHeaderDisplay","HeaderMobile","headerLogo","asideDisplay","headerMenuSelfDisplay","headerMobileCssClasses","headerMobileAttributes","Brand","brandClasses","asideSelfMinimizeToggle","headerStickyLogo","getStickyLogo","AsideMenuList","menuTrees","_useSelector2","favouriteList","setDataSidebar","loadingSide","setLoadingSide","createFromScratch","setCreateFromScratch","setSearchTerm","hasSubmenu","loadFavouriteList","getFavouriteModule","loadTasksCount","loadMenuTree","appMenuActions","useDebounceEffect","_menuTrees$","wait","leading","listLoaded","STATIC_MENUS","isFullUserMenu","RenderMenuIcon","_ref6$iconPrefix","iconPrefix","_ref6$menuClass","menuClass","RenderMenuGroup","_item$children","subMenu","cIdx","RenderModuleItem","detailPage","isActive","suffix","Badge","overflowCount","category_icon","display_name","CreateModule","onClose","AsideMenu","disableScroll","asideMenuAttr","asideClassesFromConfig","Aside","disableAsideSelfDisplay","Footer","footerClasses","footerContainerClasses","KTLayoutHeader","_element","_elementForMobile","idForMobile","isFixed","isFixedForMobile","getElement","getElementForMobile","getHeader","_getHeight","getHeightForMobile","KTLayoutHeaderMenu","_menuElement","_menuObject","_offcanvasElement","_offcanvasObject","menuId","offcanvasId","getMenuElement","getOffcanvasElement","getMenu","getOffcanvas","closeMobileOffcanvas","KTLayoutHeaderTopbar","_toggleElement","getToggleElement","KTLayoutBrand","KTLayoutAsideMenu","menuDesktopMode","KTLayoutAside","isMinimized","isHoverable","_init","_body","insideTm","outsideTm","offcanvasClass","KTLayoutSubheader","KTLayoutStickyCard","_object","KTCard","sticky","card","right","cardWidth","initSticky","updateSticky","KTLayoutAsideToggle","_toggleObject","getToggle","KTLayoutFooter","KTLayoutContent","KTLayoutScrolltop","KTScrolltop","KTLayoutStretchedCard","cardBody","cardHeader","KTLayoutQuickPanel","_notificationsElement","_logsElement","_settingsElement","_getContentHeight","KTLayoutQuickUser","LayoutInit","useLayoutEffect","BreadCrumbs","getBreadcrumbsAndTitle","pathName","activeLinks","titleSpans","titleSpan","breadCrumbs","getTitle","SubheaderContext","setTitle","setBreadcrumbs","SubHeader","subheaderMobileToggle","subheaderCssClasses","subheaderContainerCssClasses","ScrollTop","NotFound","_useHistory","isFullPage","selfLayout","subheaderDisplay","desktopHeaderDisplay","contentCssClasses","contentContainerClasses","contentExtended","Content","animationEndClass","cssClassesState","setCssClassesState","fullClasses","startAnimation","timeOutId","routeProps","MetronicSplashScreenContext","setCount","splashScreen","_ref2$visible","createMuiTheme","typography","palette","primary","main","secondary","MuiButtonBase","disableRipple","MuiPopover","elevation","ThemeProvider","APP_TODAY","getFullYear","INIT_FORM_FIELD","mapDispatchToProps","_ref$show","_ref$onClose","onCreateFromScratch","newFields","_yield$props$createPr","machineLearningServiceId","setFields","_data$data","modal","CreateFromScratchModal","onCreate","formType","RenderForm","botLicensed","_useFormActions","_useFormActions$mlSer","_useFormActions$mlPro","treesLoading","listLoading","groupTree","setReservedModuleNames","formikProps","enableReinitialize","validNaming","validChars","notSpaceStarting","categoryId","getReservedModuleNames","Formik","_formik$values","mlServiceOptions","opt","_mlProviders$find","ocrProviderId","serviceName","autonomousProcessName","FormWrapper","styles","menuPortal","menuPortalTarget","menuPosition","closeMenuOnScroll","_e$target","_e$target$classList","menuPlacement","classNamePrefix","_mlProviders$find2","setFieldValue","_e$target2","_e$target2$classList","ocrProviderName","isOptionDisabled","option","appIcon","dropDownProp","dropDownToggleProps","copy","selectedIcon","addToQuickLaunch","_ref5$title","_ref5$show","_ref5$botLicensed","backdrop","keyboard","Body","lastValidMessage","setLastValidMessage","_useWebSocket","useWebSocket","queryParams","shouldReconnect","closeEvent","reconnectAttempts","reconnectInterval","attemptNumber","pow","sendMessage","lastMessage","ReadyState","OPEN","dataString","newDataJson","toggleSpeed","releseOnReverse","onScrollSticky","st","resetSticky","setContent","getSelf","expand","collapse","destroySticky","handle","saga","actionTypes","LoginWith2Fa","setAuthLoading","getInfo","TokenRequested","TokenLoaded","RefreshToken","initialAuthState","persistReducer","storage","whitelist","requestToken","fulfillInfo","fulfillToken","redirect","getRequiresTwoFactor","takeLatest","loginWithoutMfaSaga","select","menuActions","loginSaga","userRequested","_yield$isAuthenticate","isMachineRemembered","is2faEnabled","accessToken","fullname","LogRocket","identify","setupLogRocketReact","createSlice","actionsLoading","menuLoading","appMenuForEdit","menu_name","action_url","icon_class","is_group","show_on_seed","lastError","statusCode","snackbarType","showSnackbar","reducers","detailFetched","controlMenu","category_name","category_description","_callee7","_getState","sectionsPublished","publishedFields","publishedTableFields","defaultConfig","workflowData","modulePublished","isReassignmentEnabled","emailTemplates","_context7","allFields","allRowFields","is_reassignment_disabled","responseData","_workflowDraft$connec","_workflowDraft$connec2","moduleDraft","workflowDraft","populateSections","_modulePublished","_modulePublished2","_modulePublished3","_modulePublished4","_data$help_file_url","isConfigDraft","permissionDraft","permissionPublished","file","mapEditorTypes","remoteurl","rowField","currentConfig","isEqual","module_published","help_file_url","created_by","modified_by","modified_on","module_version","formCategories","application_module_category_id","formDescription","module_description","helpFileUrl","awsHelpUrl","ocr_provider_id","ocr_provider_name","ml_service_id","app_icon","add_to_quick_launch","submit_subject_email_template","reassign_subject_email_template","rejected_subject_email_template","restart_subject_email_template","sendback_subject_email_template","completed_subject_email_template","approve_subject_email_template","submit_body_email_template","reassign_body_email_template","rejected_body_email_template","restart_body_email_template","sendback_body_email_template","completed_body_email_template","approve_body_email_template","_x7","_x8","_callee9","_context9","_callee8","_context8","_x10","_x9","_callee11","_getState2","isEdit","_context11","normalizePayload","_callee10","editedListIndex","_list","_args10","_context10","_x11","_x12","_callee13","_context13","_callee12","_context12","_x14","_x13","categoryName","category","_callee14","_yield$api$addPermiss","_context14","_x15","_callee15","_yield$api$getPermiss","_context15","_x16","setPermissibleListItems","_callee16","_context16","_x17","setPermissibleListCategories","_ref29","_callee17","_context17","_x18","setFormPreview","_ref30","_callee18","_payload$permission","_workflow$elements","_getState3","_context18","_x19","_x20","_callee19","_context19","_callee20","_context20","_ref33","_ref34","_callee21","_getState4","temp","_context21","_x21","_x22","_callee22","_context22","_ref36","_callee24","_getState5","_context24","_ref37","_callee23","existingModule","moduleIndex","newModule","_context23","_x25","_x23","_x24","_ref38","_ref38$columns","_ref39","_callee26","_context26","_ref40","_callee25","_ref41","_ref41$success","_ref41$data","_context25","_x27","_x26","_ref42","_ref42$columns","_ref42$filters","_ref43","_callee27","_context27","recordsFiltered","recordsTotal","_x28","_ref44","_callee28","_context28","_x29","_ref45","_callee29","_context29","_x30","_ref46","_callee30","_context30","_x31","_ref47","_callee31","_context31","_x32","_ref48","_callee32","_context32","_x33","_ref49","_callee33","_context33","_x34","_ref50","_callee34","_context34","_x35","_ref51","_callee35","_context35","_x36","setModuleItems","_ref52","_ref53","_callee36","_context36","_ref54","_ref54$message","responseMessage","_x37","_ref55","_callee37","_getState7","records","_context37","_ref56","_ref56$message","_x38","_x39","_ref57","_callee38","_getState8","_context38","_ref58","_ref59","_ref59$message","_x40","_x41","_ref60","_callee39","_context39","_ref61","_ref61$data","istable","is_table","_x42","_ref62","_callee40","_context40","_ref63","_ref63$data","_x43","_ref64","_callee42","returnData","_context42","_ref65","_callee41","_context41","_x45","_x44","_ref66","_callee44","_context44","_ref67","_callee43","_context43","_x47","_x46","_ref68","_ref69","_callee46","_context46","_ref70","_callee45","_context45","_x49","_x48","_ref71","_ref72","_callee48","_context48","_ref73","_callee47","sortedData","_context47","ai_service_name","ai_service_code","_x51","_x50","_ref74","_callee50","_getState9","_formEditorReducer$mo","_context50","_callee49","newFavList","resultModule","selectedFav","_args49","_context49","_ref76","_ref77","_x52","_x53","_ref78","_callee52","_context52","_callee51","newSuccess","_args51","_context51","_x54","getConnectorRecords","_ref80","_callee54","_context54","_callee53","_args53","_context53","_x55","getDataConnectorDetail","_ref82","_callee55","loadingId","_yield$api$fetchDataC","display_columns","available","_context55","_x56","_ref85","_callee56","_context56","_x57","_ref86","_callee57","_getState10","_context57","_ref87","_ref88","_ref88$message","_x58","_x59","_ref89","_callee59","_context59","_ref90","_callee58","_ref91","_ref91$success","_context58","_x61","_x60"],"mappings":"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","file":"static/js/main.f74abf9c.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"bg-sidenav\":\"style_bg-sidenav__3tVXR\",\"nav-green--bg\":\"style_nav-green--bg__luXoc\",\"nav-green--txt\":\"style_nav-green--txt__30fUK\",\"order-apps\":\"style_order-apps__1Zlxl\",\"size-brand\":\"style_size-brand__3JJGO\",\"nav-container\":\"style_nav-container__1elA4\",\"favourite-icon\":\"style_favourite-icon__1B-7l\",\"line\":\"style_line__1Hlfr\",\"circle\":\"style_circle__20-Gq\",\"circle-active\":\"style_circle-active__16KRq\",\"list-search\":\"style_list-search__2vbeQ\",\"menu-search\":\"style_menu-search__xuVTB\",\"ant-input\":\"style_ant-input__uE5rA\",\"aside-menu\":\"style_aside-menu__1DNNH\",\"menu-nav\":\"style_menu-nav__APZuj\",\"menu-item\":\"style_menu-item__3ByLM\",\"menu-heading\":\"style_menu-heading__2R7DU\",\"menu-text\":\"style_menu-text__2Q9Jr\",\"menu-link\":\"style_menu-link__UjflG\",\"order-menu\":\"style_order-menu__3xVx_\",\"plus-minus-menu\":\"style_plus-minus-menu__2SBBG\",\"margin-text\":\"style_margin-text__2bEBD\"};","export const isJsonString = (str) => {\r\n try {\r\n return typeof JSON.parse(str) === \"object\"; \r\n } catch (e) { \r\n return false;\r\n }\r\n}\r\n\r\nexport const parseJsonString = (str) => {\r\n if (isJsonString(str)) {\r\n return JSON.parse(str);\r\n }\r\n return str;\r\n}","import axios from \"axios\";\r\n\r\nexport const AUTH_URL = \"/api/identity/Authentication\";\r\n\r\nexport function login(values) {\r\n return axios.post(`${AUTH_URL}/authenticateiso`, values, { headers: {'Content-Type': 'application/json-patch+json'}});\r\n}\r\n\r\nexport function loginWith2Fa(values) {\r\n return axios.post(`${AUTH_URL}/loginWith2Fa`, values);\r\n}\r\n\r\nexport function isAuthenticated() {\r\n return axios.get(`${AUTH_URL}/isAuthenticated`, {validateStatus: (status)=> {\r\n return (status === 200 || status === 204 || status === 400 || status === 401 || status === 403)\r\n }});\r\n}\r\n\r\nexport function getInfo2fa() {\r\n return axios.get(`${AUTH_URL}/getInfo2fa`);\r\n}\r\n\r\nexport function requestPassword(email, type) {\r\n return axios.get('/api/email/requestpassword', { params: { email, type } });\r\n}\r\n\r\nexport function forgotPassword(username) {\r\n return axios.get('/api/email/forgotpassword', { params: { username }});\r\n}\r\n\r\nexport function validationToken() {\r\n return axios.post(`${AUTH_URL}/tokenValidation`);\r\n}\r\n\r\nexport function refreshToken(currentToken) {\r\n return axios.post(`${AUTH_URL}/refreshToken`, { jwt: currentToken});\r\n}\r\n","const workflowEndpoints = {\r\n getShareSettings(params) {\r\n return {\r\n url: '/api/workflow/share',\r\n method: 'GET',\r\n params,\r\n }\r\n },\r\n getAssignee(params) {\r\n return {\r\n url: '/api/form/Editor/LookupAssignee',\r\n method: 'GET',\r\n params,\r\n }\r\n },\r\n getAssigneeByRecord(params) {\r\n return {\r\n url: '/api/form/Editor/LookupAssigneeByRecord',\r\n method: 'GET',\r\n params,\r\n }\r\n },\r\n getPermissibleFields(params) {\r\n return {\r\n url: '/api/workflow/permissible-fields',\r\n method: 'GET',\r\n params,\r\n }\r\n },\r\n}\r\n\r\nexport default workflowEndpoints","const workflowDefinitionEndpoints = {\r\n createWorkflowDefinition(params) {\r\n return {\r\n url: '/Elsa/workflow-definition/create',\r\n method: 'POST',\r\n params,\r\n }\r\n },\r\n getWorkflowInstanceDetails(id) {\r\n return {\r\n url: `/Elsa/workflow-instance/details/c4ec1273869d4d25bc442088bb37f943`,\r\n method: 'GET',\r\n }\r\n },\r\n}\r\n\r\nexport default workflowDefinitionEndpoints","const optionsEndpoints = {\r\n getDatasetFields(params) {\r\n return {\r\n url: '/api/permissible-list/dataset',\r\n method: 'GET',\r\n params,\r\n }\r\n },\r\n}\r\n\r\nexport default optionsEndpoints","const entryModuleEndpoints = {\r\n saveEntry({ moduleId, data }) {\r\n return {\r\n url: '/api/EntryModule/save',\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n },\r\n data,\r\n }\r\n },\r\n getModuleRecord({ moduleId, recordId }) {\r\n return {\r\n url: `/api/EntryModule/${recordId}/detail`,\r\n method: 'GET',\r\n params: {\r\n moduleId,\r\n },\r\n }\r\n },\r\n getModuleSummary({ moduleId, userId }) {\r\n return {\r\n url: `/api/entrymodule/summary/${moduleId}`,\r\n method: 'GET',\r\n params: {\r\n userId,\r\n },\r\n }\r\n },\r\n sendComment({ moduleId, recordId, taskId, data }) {\r\n return {\r\n url: `/api/EntryModule/sendComment`,\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n recordId,\r\n taskId\r\n },\r\n data \r\n }\r\n },\r\n getOldComments({ moduleId, recordId }) {\r\n return {\r\n url: `/api/EntryModule/${recordId}/comments`,\r\n method: 'GET',\r\n params: {\r\n moduleId\r\n },\r\n }\r\n },\r\n loadComments({ recordId }) {\r\n return {\r\n url: `/api/EntryModule/loadcomment`,\r\n method: 'GET',\r\n params: {\r\n recordId\r\n },\r\n }\r\n },\r\n submitEntry({ moduleId, recordId, data, taskId }) {\r\n return {\r\n url: '/api/EntryModule/submit',\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n recordId: recordId || data?.id,\r\n taskId \r\n },\r\n data,\r\n }\r\n },\r\n restartProcess({ moduleId, recordId }) {\r\n return {\r\n url: '/api/EntryModule/workflow/restart',\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n recordId,\r\n 'api-version': '2.2.0',\r\n },\r\n }\r\n },\r\n deleteEntry({ moduleId, recordId: id }) {\r\n return {\r\n url: '/api/EntryModule/deletebyId',\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n id,\r\n },\r\n }\r\n },\r\n deleteEntries({ moduleId, recordIds }) {\r\n return {\r\n url: '/api/EntryModule/deletebyIds',\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n },\r\n data: recordIds,\r\n }\r\n },\r\n getModuleItems({ moduleId, data }) {\r\n return {\r\n url: '/api/EntryModule/datatables',\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n },\r\n data,\r\n }\r\n },\r\n getDrafts({ moduleId, data }) {\r\n return {\r\n url: '/api/EntryModule/draftdatatables',\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n },\r\n data,\r\n }\r\n },\r\n submitTask({ taskId }) {\r\n return {\r\n url: '/api/EntryModule/approve',\r\n method: 'POST',\r\n data: {\r\n task_id: taskId,\r\n accepted: true\r\n },\r\n }\r\n },\r\n rejectTask({ taskId, description }) {\r\n return {\r\n url: '/api/EntryModule/approve',\r\n method: 'POST',\r\n data: {\r\n task_id: taskId,\r\n accepted: false,\r\n description,\r\n },\r\n }\r\n },\r\n reassignTask({ taskId, assignTo, comments }) {\r\n return {\r\n url: '/api/EntryModule/reassignment',\r\n method: 'POST',\r\n params: {\r\n taskId,\r\n assignTo\r\n },\r\n data:{ \r\n message: comments\r\n }\r\n }\r\n },\r\n reassignMultiTasks({ taskIds, assigneeData }) {\r\n const { assignTo, comments } = assigneeData\r\n return {\r\n url: '/api/EntryModule/reassignmentByAdmin',\r\n method: 'POST',\r\n params: {\r\n assignTo: assignTo?.value,\r\n ...comments ? { message: comments } : {},\r\n },\r\n data: taskIds\r\n }\r\n },\r\n reassignMultiTasksInApp({ taskIds, assigneeData }) {\r\n const { assignTo, comments, moduleId } = assigneeData\r\n return {\r\n url: '/api/EntryModule/reassigntasks',\r\n method: 'POST',\r\n data: {\r\n taskId: taskIds,\r\n moduleId,\r\n assignTo: assignTo?.value,\r\n ...comments ? { message: comments } : {},\r\n }\r\n }\r\n },\r\n withdrawTask({ moduleId, recordId }) {\r\n return {\r\n url: '/api/EntryModule/withdraw',\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n recordId\r\n }\r\n }\r\n },\r\n sendBackTask({ taskId, goBackToActivityId, message }) {\r\n return {\r\n url: '/api/EntryModule/goback',\r\n method: 'POST',\r\n params: {\r\n taskId,\r\n goBackToActivityId,\r\n },\r\n data:{\r\n message: message\r\n }\r\n }\r\n },\r\n getGovHeaders() {\r\n return {\r\n url: '/api/EntryModule/govheaders',\r\n method: 'GET',\r\n }\r\n },\r\n getWorkflowHistory({ moduleId, recordId }) {\r\n return {\r\n url: `/api/EntryModule/${moduleId}/workflowhistory`,\r\n method: 'GET',\r\n params: {\r\n recordId,\r\n },\r\n }\r\n }\r\n}\r\n\r\nexport default entryModuleEndpoints","const taskSchedulerEndpoints = {\r\n saveTaskScheduler({ taskSchedulerId, data }) {\r\n return {\r\n url: '/api/TaskScheduler/save',\r\n method: 'POST',\r\n params: {\r\n taskSchedulerId,\r\n },\r\n data,\r\n }\r\n },\r\n getTaskScheduler({ moduleId, data }) {\r\n return {\r\n url: '/api/TaskScheduler/datatables',\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n },\r\n data,\r\n }\r\n },\r\n loadRecordTaskScheduler({ recordId }) {\r\n return {\r\n url: `/api/TaskScheduler/${recordId}/detail`,\r\n method: 'GET',\r\n params: {\r\n recordId,\r\n },\r\n }\r\n },\r\n deleteTaskSchedulerEntries({ moduleId, recordIds }) {\r\n return {\r\n url: '/api/TaskScheduler/delete',\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n },\r\n data: recordIds,\r\n }\r\n },\r\n loadSchedulerLogs({ schedulerId, page = 1, length = 10 }) {\r\n return {\r\n url: `/api/TaskScheduler/activities`,\r\n method: 'GET',\r\n params: {\r\n schedulerId,\r\n page,\r\n length,\r\n },\r\n }\r\n },\r\n taskScheduleAction({ schedule_id, status }) {\r\n return {\r\n url: `/api/TaskScheduler/action`,\r\n method: 'POST',\r\n data: {\r\n schedule_id: schedule_id,\r\n status: status\r\n },\r\n }\r\n },\r\n}\r\n\r\nexport default taskSchedulerEndpoints","const taskEndpoints = {\r\n getModuleTasks({ moduleId, data }) {\r\n return {\r\n url: '/api/Task/datatables',\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n },\r\n data,\r\n }\r\n },\r\n getTasksCount() {\r\n return {\r\n url: '/api/Task/total',\r\n method: 'GET'\r\n }\r\n },\r\n getModuleTasksDynamic({ moduleId, data }) {\r\n return {\r\n url: '/api/Task/dynamicdatatables',\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n },\r\n data,\r\n }\r\n },\r\n getTasksByUser({ userId, data }) {\r\n return {\r\n url: '/api/Task/dataTablesByUserId',\r\n method: 'POST',\r\n params: {\r\n userId,\r\n },\r\n data\r\n }\r\n },\r\n getTasksByTeam({ teamId, data }) {\r\n return {\r\n url: '/api/Task/dataTablesByTeamId',\r\n method: 'POST',\r\n params: {\r\n teamId,\r\n },\r\n data\r\n }\r\n },\r\n getTaskDetails({ taskId }) {\r\n return {\r\n url: `/api/Task/${taskId}/detail`,\r\n method: 'GET',\r\n }\r\n },\r\n}\r\n\r\nexport default taskEndpoints","const approvalSignalEndpoints = {\r\n}\r\n\r\nexport default approvalSignalEndpoints","const datasetEndpoints = {\r\n getDatasetList(params) {\r\n return {\r\n url: '/api/ReferenceData/ListDataset',\r\n method: 'GET',\r\n params,\r\n }\r\n },\r\n getDataByKey(params) {\r\n return {\r\n url: '/api/ReferenceDataEntry/GetDataByKey',\r\n method: 'GET',\r\n params,\r\n }\r\n },\r\n getDatasetTable({ data = {}}) {\r\n return {\r\n url: '/api/ReferenceData/datatables',\r\n method: 'POST',\r\n data,\r\n }\r\n },\r\n getDataset(params) {\r\n return {\r\n url: '/api/ReferenceData/getDataset',\r\n method: 'GET',\r\n params\r\n }\r\n },\r\n addEntry({referencedataId, data}) {\r\n return {\r\n url: `/api/ReferenceDataEntry/AddRow?referencedataId=${referencedataId}&totalRow=1`,\r\n method: 'POST',\r\n data\r\n }\r\n },\r\n saveRefDataEntry({referencedataId, data}) {\r\n return {\r\n url: '/api/ReferenceDataEntry/batch?referencedataId='+referencedataId,\r\n method: 'POST',\r\n data\r\n }\r\n }\r\n}\r\n\r\nexport default datasetEndpoints","const dataConnectorEndpoints = {\r\n saveSecurityHeader({ data }) {\r\n return {\r\n url: '/api/dataconnector/securityheader/save',\r\n method: 'POST',\r\n data,\r\n }\r\n },\r\n fetchSecurityHeader() {\r\n return {\r\n url: `/api/dataconnector/securityheader/fetch`,\r\n method: 'GET',\r\n }\r\n },\r\n postSecurityHeaderDatatables({ data }) {\r\n return {\r\n url: '/api/dataconnector/securityheader/datatables',\r\n method: 'POST',\r\n data,\r\n }\r\n },\r\n fetchDataConnectorById({ recordId }) {\r\n return {\r\n url: `/api/dataconnector/${recordId}/detail`,\r\n method: 'GET',\r\n }\r\n },\r\n saveDataConnector({ data }) {\r\n return {\r\n url: '/api/dataconnector/save',\r\n method: 'POST',\r\n data\r\n }\r\n },\r\n duplicateDataConnector({ data }) {\r\n return {\r\n url: '/api/dataconnector/copyfrom',\r\n method: 'POST',\r\n data\r\n }\r\n },\r\n fetchDataConnectors() {\r\n return {\r\n url: '/api/dataconnector/fetch',\r\n method: 'GET',\r\n }\r\n },\r\n fetchDataConnectorDatatables({ data }) {\r\n return {\r\n url: '/api/dataconnector/datatables',\r\n method: 'POST',\r\n data,\r\n }\r\n },\r\n deleteDataConnectorsByIds({ data }) {\r\n return {\r\n url: '/api/dataconnector/deletebyids',\r\n method: 'POST',\r\n data\r\n }\r\n },\r\n deleteDataConnectorById({ recordId: id }) {\r\n return {\r\n url: '/api/dataconnector/deletebyid',\r\n method: 'POST',\r\n params: {\r\n id\r\n },\r\n }\r\n },\r\n runDataConnector({ id: dataConnectorId, data = {} }) {\r\n return {\r\n url: `/api/workflowapi/rundataconnector`,\r\n method: 'POST',\r\n params: {\r\n dataConnectorId,\r\n },\r\n data,\r\n }\r\n },\r\n dataConnectorExecute({ id: dataConnectorId, data = {} }) {\r\n return {\r\n url: `/api/workflowapi/dataconnectorexecute`,\r\n method: 'POST',\r\n params: {\r\n dataConnectorId,\r\n },\r\n data,\r\n }\r\n },\r\n}\r\n\r\nexport default dataConnectorEndpoints;","const timezoneEndpoints = {\r\n getOrgTimeZone() {\r\n return {\r\n url: '/api/sys/organization/current',\r\n method: 'GET'\r\n }\r\n },\r\n setUserTimeZone({ data }) {\r\n return {\r\n url: '/api/identity/manageauthenticator/setusertimezone',\r\n method: 'POST',\r\n data\r\n }\r\n },\r\n setOrgTimeZone({ data }) {\r\n return {\r\n url: '/api/sys/organization/setorganizationtimezone',\r\n method: 'POST',\r\n data\r\n }\r\n },\r\n getTimeZones() {\r\n return {\r\n url: '/api/identity/manageauthenticator/timezone?iana=true',\r\n method: 'GET'\r\n }\r\n },\r\n}\r\n\r\nexport default timezoneEndpoints","const textractEndpoints = { \r\n getMLProviders(data){\r\n return{\r\n url: '/api/ocrprovider/lookup',\r\n method: 'POST',\r\n data: data ?? {}\r\n }\r\n },\r\n getMLServices({providerId}) {\r\n return {\r\n url: '/api/ocr/machinelearninglookup',\r\n method: 'POST',\r\n data: {\r\n filter: {\r\n logic: \"AND\",\r\n filters: [\r\n { field: \"ocr_provider_id\", value: providerId, operator: \"eq\" }\r\n ]\r\n } \r\n }\r\n }\r\n },\r\n getMLService(id) {\r\n return {\r\n url: `/api/ocr/getmlservice`,\r\n method: 'GET',\r\n params: {id}\r\n }\r\n },\r\n getAIServices({mlServiceId}) {\r\n return {\r\n url: `/api/ocr/getaiservices`,\r\n method: 'GET',\r\n params:{ mlServiceId }\r\n }\r\n },\r\n getAIService(id) {\r\n return {\r\n url: `/api/ocr/getaiservice`,\r\n method: 'GET',\r\n params: {id}\r\n }\r\n },\r\n uploadFile({ data = {} }) {\r\n return {\r\n url: '/api/ocr/upload',\r\n method: 'POST',\r\n data,\r\n }\r\n },\r\n getOcrResponseById(id) {\r\n return {\r\n url: `/api/ocr/getresponsebyid`,\r\n method: 'GET',\r\n params: {id}\r\n }\r\n },\r\n getProviderKey(providerName){\r\n return{\r\n url: `/api/ocrprovider/getbyname?ocr_provider_name=${providerName}`,\r\n method: 'GET'\r\n }\r\n },\r\n updateProviderKey({id, token}){\r\n return{\r\n url: `/api/ocrprovider/update/token?id=${id}&token=${token}`,\r\n method: 'PATCH'\r\n }\r\n },\r\n}\r\n\r\nexport default textractEndpoints","const userPreferenceEndpoints = {\r\n getUserInfo() {\r\n return {\r\n url: '/api/identity/manageauthenticator/userinfo',\r\n method: 'GET'\r\n }\r\n },\r\n getQuickLaunch() {\r\n return {\r\n url: '/api/form/Editor/userpreference/get/quicklaunch',\r\n }\r\n },\r\n setQuickLaunch({data}) {\r\n return {\r\n url: '/api/form/Editor/userpreference/set/quicklaunch',\r\n method: 'PUT',\r\n data\r\n }\r\n },\r\n getQuickLaunchApps() {\r\n return {\r\n url: '/api/form/Editor/quicklaunchapps/datatables',\r\n method: 'POST',\r\n data: {columns:[]}\r\n }\r\n }\r\n}\r\n\r\nexport default userPreferenceEndpoints;","const auditTrailEndpoints = {\r\n getAuditTrail({ data = {}}) {\r\n return {\r\n url: '/audittrail/datatables',\r\n method: 'POST',\r\n data,\r\n }\r\n },\r\n}\r\n\r\nexport default auditTrailEndpoints","const webhooksEndpoints = {\r\n getWebhookDetail(id) {\r\n return {\r\n url: `/api/webhook/${id}/detail`,\r\n method: 'GET'\r\n }\r\n },\r\n getWebhookLog(params) {\r\n return {\r\n url: `/api/webhook/executionlog`,\r\n method: 'GET',\r\n params\r\n }\r\n },\r\n saveWebhook(data) {\r\n return {\r\n url: '/api/webhook/save',\r\n method: 'POST',\r\n data\r\n }\r\n },\r\n getWebhookDataTables(data) {\r\n return {\r\n url: '/api/webhook/datatables',\r\n method: 'POST',\r\n data: data.data\r\n }\r\n },\r\n bulkDeleteWebhook(data) {\r\n return {\r\n url: '/api/webhook/deletebyids',\r\n method: 'POST',\r\n data\r\n }\r\n },\r\n deleteWebhook(id) {\r\n return {\r\n url: '/api/webhook/deletebyid',\r\n method: 'POST',\r\n params: {\r\n id,\r\n },\r\n }\r\n },\r\n}\r\n\r\nexport default webhooksEndpoints","import formEditorEndpoints from \"./form-editor\";\r\nimport workflowEndpoints from \"./workflow\";\r\nimport workflowDefinitionEndpoints from \"./workflow-definition\";\r\nimport optionsEndpoints from \"./options\";\r\nimport entryModuleEndpoints from \"./entry-module\";\r\nimport taskSchedulerEndpoints from \"./task-scheduler\";\r\nimport taskEndpoints from \"./task\";\r\nimport approvalSignalEndpoints from \"./approval-signal\";\r\nimport datasetEndpoints from \"./dataset\";\r\nimport dataConnectorEndpoints from \"./data-connector\";\r\nimport timezoneEndpoints from \"./timezone\";\r\nimport textractEndpoints from \"./textract\";\r\nimport userPreferenceEndpoints from \"./user-preference\";\r\nimport auditTrailEndpoints from \"./audit-trail\"\r\nimport webhooksEndpoints from \"./webhooks\"\r\n\r\nconst elsaEndpoint = {\r\n getElsaPage() {\r\n return {\r\n url: `/elsa/dashboard/`,\r\n method: 'GET'\r\n }\r\n }\r\n}\r\n\r\nconst auditTrailEndpoint = {\r\n getEntity() {\r\n return {\r\n url: \"/audittrail/entity/get\",\r\n }\r\n }\r\n}\r\nconst endpoints = {\r\n ...formEditorEndpoints,\r\n ...workflowEndpoints,\r\n ...workflowDefinitionEndpoints,\r\n ...optionsEndpoints,\r\n ...entryModuleEndpoints,\r\n ...taskSchedulerEndpoints,\r\n ...taskEndpoints,\r\n ...approvalSignalEndpoints,\r\n ...datasetEndpoints,\r\n ...dataConnectorEndpoints,\r\n ...timezoneEndpoints,\r\n ...elsaEndpoint,\r\n ...textractEndpoints,\r\n ...auditTrailEndpoint,\r\n ...auditTrailEndpoints,\r\n ...userPreferenceEndpoints,\r\n ...webhooksEndpoints\r\n}\r\n\r\nexport default endpoints","import axios from 'axios'\r\nimport store from '../redux/store';\r\nimport { requestInterceptor, requestRejectInterceptor, responseInterceptor, responseRejectInterceptor } from '../redux/setupAxios';\r\nimport endpoints from './endpoints'\r\n\r\nexport const client = axios.create()\r\n\r\nclient.interceptors.request.use(requestInterceptor(store), requestRejectInterceptor)\r\nclient.interceptors.response.use(responseInterceptor, responseRejectInterceptor)\r\nclient.defaults.timeout = 3600000\r\n\r\nconst api = Object.keys(endpoints).reduce((collections, path) => {\r\n collections[path] = async params => {\r\n return await client.request(endpoints[path](params))\r\n }\r\n return collections\r\n}, {})\r\n\r\nexport default api","\r\nimport { parseJsonString } from \"@utils/json\";\r\nimport * as yup from \"yup\";\r\nimport { SPECIAL_CHAR_REGEX } from \"@constants/validation/conditions\";\r\n\r\nconst bypassField = (val) => {\r\n try{\r\n const isJSONObj = parseJsonString(val)\r\n if(typeof isJSONObj === 'object') return true; //bypass object\r\n if(moment(val).isValid()) return true; //bypass date\r\n if((/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])(:[0-5][0-9])?$/).test(val)) return true; //bypass time\r\n const valArr = String(val).split(',')\r\n if(moment(valArr[0]).isValid() && moment(valArr[1]).isValid()) return true; //bypass date between\r\n } catch (e) {}\r\n return false\r\n}\r\n\r\nconst validateSpecialChars = (value) => {\r\n if (value && SPECIAL_CHAR_REGEX.test(value)) {\r\n // We can use ${path} here or get field by the id using the path.\r\n return {\r\n isValid:false,\r\n message:'Cannot contain special characters'\r\n }\r\n }\r\n return {isValid:true}; // Valid\r\n}\r\n\r\nconst validateMax40Chars = (value) => {\r\n if (value && value.length > 40) {\r\n return {\r\n isValid:false,\r\n message:\"Cannot exceed 40 characters\"\r\n }\r\n }\r\n return {isValid:true}; \r\n}\r\n\r\nconst validateStartingSpace = (value) => {\r\n if (value && value.match(/^ /)) {\r\n return {\r\n isValid:false,\r\n message:\"Cannot start with a space\"\r\n }\r\n }\r\n return {isValid:true}; \r\n}\r\n\r\nconst validateStartingNumber = (value) => {\r\n if (value && value.match(/^\\d/)) {\r\n return {\r\n isValid:false,\r\n message:\"Cannot start with a number\"\r\n }\r\n }\r\n return {isValid:true}; \r\n}\r\n\r\nexport const inputValueValidation = (value) => {\r\n if(value && typeof value === 'string'){\r\n if(bypassField(value)){\r\n return false;\r\n }\r\n if(value.match(/^ /)){\r\n return \"Value cannot start with a space\"\r\n }\r\n if(value.match(SPECIAL_CHAR_REGEX)){\r\n return \"Value cannot contain special characters\"\r\n }\r\n }\r\n return false\r\n}\r\n\r\nyup.addMethod(yup.string, 'integer', function () {\r\n return this.matches(/^\\d+$/, 'The field should have digits only')\r\n})\r\n\r\nyup.addMethod(yup.string, 'max40Chars', function (message) {\r\n return this.test('max40Chars', message, function (value) {\r\n const { path, createError } = this;\r\n if(bypassField(value)) return true;\r\n const {isValid, message} = validateMax40Chars(value);\r\n return isValid ? true : createError({ path, message });\r\n });\r\n});\r\n\r\nyup.addMethod(yup.string, 'validChars', function (message) {\r\n return this.test('valid-chars', message, function (value) {\r\n const { path, createError } = this;\r\n if(bypassField(value)) return true;\r\n const {isValid, message} = validateSpecialChars(value);\r\n return isValid ? true : createError({ path, message });\r\n });\r\n});\r\n\r\nyup.addMethod(yup.string, 'notSpaceStarting', function (message) {\r\n return this.test('notSpaceStarting', message, function (value) {\r\n const { path, createError } = this;\r\n if(bypassField(value)) return true;\r\n const {isValid, message} = validateStartingSpace(value);\r\n return isValid ? true : createError({ path, message });\r\n });\r\n});\r\n\r\nyup.addMethod(yup.string, 'notNumberStarting', function (message) {\r\n return this.test('notNumberStarting', message, function (value) {\r\n const { path, createError } = this;\r\n if(bypassField(value)) return true;\r\n const {isValid, message} = validateStartingNumber(value);\r\n return isValid ? true : createError({ path, message });\r\n });\r\n});\r\n\r\nyup.addMethod(yup.string, 'validNaming', function (message) {\r\n return this.test('validNaming', message, function (value) {\r\n const { path, createError } = this;\r\n let validation = validateSpecialChars(value);\r\n validation = validation.isValid ? validateMax40Chars(value) : validation;\r\n validation = validation.isValid ? validateSpecialChars(value) : validation;\r\n validation = validation.isValid ? validateStartingSpace(value) : validation;\r\n validation = validation.isValid ? validateStartingNumber(value) : validation;\r\n \r\n const {isValid, message} = validation;\r\n return isValid ? true : createError({ path, message });\r\n });\r\n});\r\n\r\nexport const Yup = yup;","import { initRequest } from \"@utils/actionMethods\";\r\nimport { parseJsonString } from \"@utils/json\";\r\n\r\nconst setOrganizationPreference = (payload) => {\r\n return dispatch => dispatch({\r\n type: 'SET_ORGANIZATION_PREFERENCE',\r\n payload\r\n })\r\n}\r\nconst getCurrentOrganization = () => {\r\n return async dispatch => {\r\n const request = initRequest(dispatch)\r\n let result = {}\r\n await request('getOrgTimeZone',null,\r\n ({ data }) => {\r\n const { preference } = data || {};\r\n result = parseJsonString(preference);\r\n }\r\n )\r\n dispatch(setOrganizationPreference(result)); \r\n }\r\n}\r\nconst organizationActions = {\r\n setOrganizationPreference,\r\n getCurrentOrganization\r\n}\r\n\r\nexport default organizationActions","import React, { Suspense, lazy, useEffect } from \"react\";\r\nimport { Redirect, Switch } from \"react-router-dom\";\r\n\r\nimport AuthorizeRoute from \"./AuthorizeRoute\";\r\nimport { LayoutSplashScreen } from \"../_metronic/layout\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\nimport preferenceActions from \"@actions/preferenceActions\";\r\nimport organizationActions from \"@actions/organizationActions\";\r\nimport { isEmpty } from \"lodash\";\r\n\r\nconst OrganizationInfo = lazy(() => import('./modules/Organization/pages/info'));\r\nconst ApplicationMenuPage = lazy(() => import('./modules/ApplicationMenu/pages'));\r\nconst ApplicationUserPage = lazy(() => import('./modules/Settings/pages/ApplicationUser'));\r\n\r\nconst OrganizationsPage = lazy(() => import('./modules/Settings/pages/organization'));\r\nconst OrganizationDetailPage = lazy(() => import('./modules/Settings/pages/organization/DetailPage'));\r\n\r\nconst UserProfile = lazy(() => import('./modules/Profiles/pages/profile'));\r\nconst UserDetailPage = lazy(() => import('./modules/Settings/pages/ApplicationUser/detail'));\r\nconst FormEditorPage = lazy(() => import(\"./modules/FormEditor/pages\"));\r\nconst AppEditorPage = lazy(() => import(\"./pages/AppEditorPage\"))\r\nconst ReportsPage = lazy(() => import(\"./pages/ReportsPage\"))\r\nconst DashboardPage = lazy(() => import(\"./pages/dashboard\")); // \"./pages/DashboardPage\"\r\nconst ModuleDetailPage = lazy(() => import(\"./pages/ModuleDetailPage\"));\r\nconst ItemEditorPage = lazy(() => import(\"./pages/ItemEditorPage\"));\r\nconst TaskEditorPage = lazy(() => import(\"./pages/TaskEditorPage\"));\r\nconst ScheduleEditorPage = lazy(() => import(\"./pages/ScheduleEditorPage\"));\r\nconst DatasetPage = lazy(() => import(\"./pages/DatasetPage\"));\r\nconst Webhooks = lazy(() => import(\"./pages/Webhooks\"));\r\nconst FormWebhook = lazy(() => import(\"./pages/Webhooks/FormWebhook\"));\r\nconst DatasetDetailPage = lazy(() => import(\"./pages/DatasetPage/Detail\"));\r\nconst NotificationPage = lazy(() => import(\"./pages/NotificationPage\"));\r\nconst RolesPermissions = lazy(() => import(\"./modules/Settings/pages/RolesPermissions\"));\r\nconst TeamManagement = lazy(() => import(\"./modules/Settings/pages/TeamManagement\"));\r\nconst TeamDetailPage = lazy(() => import(\"./modules/Settings/pages/TeamManagement/detail\"));\r\nconst DataConnectorPage = lazy(() => import(\"./pages/DataConnectorPage\"));\r\nconst AddDataConnectorPage = lazy(() => import(\"./pages/DataConnectorPage/AddDataConnectorPage\"));\r\n\r\nconst TasksPage = lazy(() => import('./pages/tasks'));\r\nconst DashboardListPage = lazy(() => import('./pages/dashboard-list'));\r\nconst ReportPage = lazy(() => import('./modules/Reports/Pages'));\r\nconst AuditPage = lazy(() => import('./modules/AuditTrail/pages'));\r\nconst ReportDesignerPage = lazy(() => import('./pages/report-designer'));\r\nconst ReportViewerPage = lazy(() => import('./pages/report-viewer'));\r\n\r\nconst EasyQueryAdvanceSearchPage = lazy(() => import('./pages/EasyQueryAdvanceSearchPage'));\r\nconst ComingSoonPage = lazy(() => import('./pages/ComingSoonPage'));\r\nconst PermalinkPage = lazy(() => import('./pages/PermalinkPage'));\r\nconst ElsaPage = lazy(() => import('./pages/ElsaPage'));\r\n\r\n// DEVS ONLY: \r\n// const TestComponent = lazy(() => import(\"./pages/TestComponent\"));\r\n\r\nexport default function BasePage() {\r\n\tconst dispatch = useDispatch();\r\n\tconst { isFullUser, isConsultant, isSysAdmin, isAdministrator } = useSelector(({auth}) => auth.config || {});\r\n\tconst { userInfo } = useSelector(({ optionsReducer }) => optionsReducer || {});\r\n\t\r\n\tuseEffect(() => {\r\n\t\tdispatch(preferenceActions.getUserPreference());\r\n\t\tdispatch(organizationActions.getCurrentOrganization());\r\n\t\tdispatch(preferenceActions.getQuickLaunchApps());\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, []) // [] - is required if you need only one call\r\n\t// https://reactjs.org/docs/hooks-reference.html#useeffect\r\n\r\n\tlet sysAdminRoutes = [\t\t\r\n\t\t{path:\"/process-engine\", component:ElsaPage},\r\n\t\t{path:\"/app/audit\", component:AuditPage}\r\n\t]\r\n\r\n\tlet restrictedRoutes = [\r\n\t\t{path:\"/business-intelligence\", component:ReportPage}, // /reports\r\n\t\t{path:\"/business-intelligence-landing\", component:ComingSoonPage}, // /reports\r\n\t\t{path:\"/list-dashboard\", component:DashboardListPage},\r\n\t\t{path:\"/report-designer\", component:ReportDesignerPage},\r\n\t\t{path:\"/report-viewer\", component:ReportViewerPage},\r\n\t\t{path:\"/reports\", component:EasyQueryAdvanceSearchPage}, // reports/ad-hoc-report\r\n\t\t{path:\"/inquiry\", component:EasyQueryAdvanceSearchPage}, //reports/advance-search\r\n\t\t{path:\"/dashboard\", component:DashboardPage},\r\n\t\t{path:\"/dashboard-landing\", component:ComingSoonPage},\r\n\t\t{path:\"/bi-reports\", component:ComingSoonPage},\r\n\t\t{path:\"/permalink/file\", component:PermalinkPage},\r\n\t\t{exact:true, path:\"/form-editor\", component:AppEditorPage},\r\n\t\t{path:\"/form-editor/show\", component:FormEditorPage},\r\n\t\t{exact: true, path:\"/referencedata\", component:DatasetPage},\r\n\t\t{path:\"/referencedata/:id\", component:DatasetDetailPage}, // /:view\r\n\t\t{exact: true, path:\"/data-connector\", component:DataConnectorPage},\r\n\t\t{exact: true, path:\"/data-connector/:dcType\", component:AddDataConnectorPage},\r\n\t\t{exact: true, path:\"/data-connector/:dcType/:recordId\", component:AddDataConnectorPage},\r\n\t]\r\n\r\n\tlet restrictedAdminRoutes = [\r\n\t\t{path:\"/settings/menu\", component:ApplicationMenuPage},\r\n\t\t{path:\"/app/organization\", component:OrganizationInfo}, // organizationInfo\r\n\t\t{path:\"/settings/roles-permissions\", component:RolesPermissions},\r\n\t\t{exact: true, path:\"/settings/user-management\", component:ApplicationUserPage},\r\n\t\t{exact: true, path:\"/settings/user-management/:license\", component:ApplicationUserPage},\r\n\t\t{path:\"/settings/user-detail\", component:UserDetailPage},\r\n\t\t{path:\"/settings/organization\", component:OrganizationsPage},\r\n\t\t{exact:true, path:\"/settings/team-management\", component:TeamManagement},\r\n\t\t{path:\"/settings/team-management/detail\", component:TeamDetailPage},\r\n\t\t{path:\"/organization\", component:OrganizationDetailPage}, // /:ID\r\n\t\t{exact: true, path:\"/module-categories\", component:ApplicationMenuPage},\r\n\t\t{exact: true, path:\"/webhooks\", component:Webhooks},\r\n\t\t{exact: true, path:\"/webhooks/add\", component:FormWebhook},\r\n\t\t{exact: true, path:\"/webhooks/:id\", component:FormWebhook}\r\n\t]\r\n\r\n\tif(isSysAdmin || isAdministrator || isConsultant){\r\n\t\trestrictedRoutes = restrictedRoutes.concat(restrictedAdminRoutes)\r\n\t}\r\n\r\n\tlet unrestrictedRoutes = [\r\n\t\t{path:\"/tasks\", component:TasksPage},\r\n\t\t{path:\"/app/user/profile\", component:UserProfile},\r\n\t\t{path:\"/applications\", component:ReportsPage},\r\n\t\t{path:\"/module/:moduleId\", component:ModuleDetailPage},\r\n\t\t{exact: true, path:\"/item-editor/:moduleId\", component:ItemEditorPage},\r\n\t\t{path:\"/item-editor/:moduleId/:recordId/:taskId?\", component:ItemEditorPage},\r\n\t\t{path:\"/task-editor/:moduleId/:recordId?/:taskId?\", component:TaskEditorPage},\r\n\t\t{exact: true, path:\"/schedule-editor/:moduleId/:recordId/\", component:ScheduleEditorPage},\r\n\t\t{exact: true, path:\"/schedule-editor/:moduleId\", component:ScheduleEditorPage},\r\n\t\t{path:\"/notifications\", component:NotificationPage},\r\n\t]\r\n\r\n\tconst handleDefaultLaunchUrl = () => {\r\n\t\tlet route = '/tasks'\r\n\t\tconst launchPage = !isEmpty(userInfo) ? userInfo.preference?.launch_page : null\r\n\t\tif (isFullUser || isAdministrator) {\r\n\t\t\tif (launchPage) {\r\n\t\t\t\tif (launchPage.type.toLowerCase() === 'dashboard&reports') {\r\n\t\t\t\t\troute = '/dashboard'\r\n\t\t\t\t}else if(launchPage.type.toLowerCase() === 'quickreport') {\r\n\t\t\t\t\troute = '/inquiry'\r\n\t\t\t\t}else if(launchPage.type.toLowerCase() === 'apps') {\r\n\t\t\t\t\troute = '/applications'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn \r\n\t}\r\n\t\r\n\treturn (\r\n\t\t}>\r\n\t\t\t\r\n\t\t\t\t{handleDefaultLaunchUrl()}\r\n\t\t\t\t{\r\n\t\t\t\t\tunrestrictedRoutes.map((item, index) => {\r\n\t\t\t\t\t\treturn \r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\t{\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Restrict credit users from accessing\r\n\t\t\t\t\t * these routes:\r\n\t\t\t\t\t */\r\n\r\n\t\t\t\t\tisFullUser || isConsultant\r\n\t\t\t\t\t\t? (\r\n\t\t\t\t\t\t\trestrictedRoutes.map((item, index) => {\r\n\t\t\t\t\t\t\t\treturn \r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t: \r\n\t\t\t\t}\r\n\t\t\t\t{\r\n\t\t\t\t\tisSysAdmin ?\r\n\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\tsysAdminRoutes.map((item, index) => {\r\n\t\t\t\t\t\t\t\treturn \r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t: \r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}","import AES from \"crypto-js/aes\";\r\nimport encUTF8 from \"crypto-js/enc-utf8\";\r\n\r\nexport const generateKey = () => {\r\n\tconst dateTime = new Date();\r\n\tconst formattedDate = dateTime\r\n\t .toISOString()\r\n\t .slice(0, 16)\r\n\t .replace(/[-T:]/g, \"\"); // Sesuaikan format tanggal\r\n\treturn formattedDate.padEnd(16, \"0\");\r\n};\r\n\r\nexport const encrypt = (plainText, secretKey) => {\r\n if(!secretKey) secretKey = generateKey()\r\n const key = encUTF8.parse(secretKey);\r\n const iv = key; // Sesuaikan ukuran IV dengan ukuran blok\r\n\r\n const encryptedData = AES.encrypt(plainText, key, { iv });\r\n\r\n return encryptedData.toString();\r\n};\r\n\r\nexport const decrypt = (cipherText, secretKey) => {\r\n if(!secretKey) secretKey = generateKey()\r\n const key = encUTF8.parse(secretKey);\r\n const iv = key; // Sesuaikan ukuran IV dengan ukuran blok\r\n\r\n const decryptedData = AES.decrypt(cipherText, key, { iv });\r\n\r\n return decryptedData.toString(encUTF8);\r\n};","import React, { useEffect, useState } from \"react\";// , { useState }\r\nimport { Link } from \"react-router-dom\";\r\nimport { useFormik } from \"formik\";\r\nimport { Yup } from \"@utils/validation\";\r\nimport { connect } from \"react-redux\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport Button from \"react-bootstrap/Button\";\r\n\r\nimport * as auth from \"../_redux/authRedux\";\r\nimport { login } from \"../_redux/authCrud\";\r\nimport { formikValidClass } from '../../../../utils/Q';\r\nimport { APP_NAME } from '../../../../data/appData';\r\nimport Password from '../../../components/Password';\r\nimport { styled } from \"@material-ui/core\";\r\nimport { encrypt } from \"../../../../utils/encryption\";\r\nimport Flex from \"../../../components/Flex\";\r\n\r\nconst HelpIcon = styled('span')(() => ({\r\n\tdisplay: 'inline-block',\r\n\twidth: '16px',\r\n\tcolor: '#B5B5C3',\r\n\tmarginRight: '.5rem',\r\n\t'& svg': {\r\n\t\twidth: '16px',\r\n\t}\r\n}))\r\n\r\n/*\r\n\tINTL (i18n) docs:\r\n\thttps://github.com/formatjs/react-intl/blob/master/docs/Components.md#formattedmessage\r\n*/\r\n/*\r\n\tFormik+YUP:\r\n\thttps://jaredpalmer.com/formik/docs/tutorial#getfieldprops\r\n*/\r\n\r\nconst initialValues = {\r\n\temail: \"\", // system\r\n\tpassword: \"\", // system\r\n};\r\n\r\nfunction Login(props) {\r\n\tconst { intl, authLoading, redirectUrl } = props;\r\n\tconst [message, setMessage] = useState(null);\r\n\tconst status = new URLSearchParams(window.location.search).get('status');\r\n\tconst redirectTo = new URLSearchParams(window.location.search).get('ReturnUrl');\r\n\r\n useEffect(()=>{\r\n if (redirectUrl) {\r\n props.history.push(redirectUrl)\r\n }\r\n }, [redirectUrl])\r\n\tconst enableLoading = () => {\r\n\t\tprops.setLoading(true);\r\n\t};\r\n\r\n\tconst disableLoading = () => {\r\n\t\tprops.setLoading(false);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (status) {\r\n\t\t\tsetMessage(status);\r\n\t\t}\r\n\t}, [status]);\r\n\t// const getInputClasses = (fieldname) => {\r\n\t// if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n\t// return \"is-invalid\";\r\n\t// }\r\n\t// if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n\t// return \"is-valid\";\r\n\t// }\r\n\t// return \"\";\r\n\t// };\r\n\r\n\tconst formik = useFormik({\r\n\t\tinitialValues,\r\n\t\tvalidationSchema: Yup.object().shape({\r\n\t\t\temail: Yup.string()\r\n\t\t\t\t.required(\r\n\t\t\t\t\tintl.formatMessage({\r\n\t\t\t\t\t\tid: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n\t\t\t\t\t})\r\n\t\t\t\t),\r\n\t\t\tpassword: Yup.string()\r\n\t\t\t\t.min(3, \"Minimum 3 characters\")\r\n\t\t\t\t.max(50, \"Maximum 50 characters\")\r\n\t\t\t\t.required(\r\n\t\t\t\t\tintl.formatMessage({\r\n\t\t\t\t\t\tid: \"AUTH.VALIDATION.REQUIRED_FIELD\",\r\n\t\t\t\t\t})\r\n\t\t\t\t),\r\n\t\t}),\r\n\t\tonSubmit: (values, { setStatus, setSubmitting }) => {\r\n\t\t\tenableLoading();\r\n\t\t\tsetStatus(\"\");\r\n\t\t\tsetMessage(null);\r\n\t\t\tconst data = `\"${encrypt(JSON.stringify({ username: values.email, password: values.password }))}\"`;\r\n\t\t\tlogin(data)\r\n\t\t\t\t.then(({ data: { success, message, data } }) => {\r\n\t\t\t\t\t// setSubmitting(false);\r\n\t\t\t\t\tif (success) {\r\n\t\t\t\t\t\tprops.login(data.requiresTwoFactor);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdisableLoading();\r\n\t\t\t\t\t\tsetStatus(message);\r\n\t\t\t\t\t\tsetSubmitting(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch(() => {\r\n\t\t\t\t\t// console.log(\"masuk sini\");\r\n\t\t\t\t\tdisableLoading();\r\n\t\t\t\t\tsetSubmitting(false);\r\n\t\t\t\t\tsetStatus(\r\n\t\t\t\t\t\tintl.formatMessage({\r\n\t\t\t\t\t\t\tid: \"AUTH.VALIDATION.INVALID_LOGIN\",\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t\t},\r\n\t});\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t

Sign in To {APP_NAME}

\r\n\t\t\t\t

Enter your details to login to your account:

\r\n\t\t\t
\r\n\t\t\t{/*begin::Form*/}\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{(message || formik.status) && (\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
{message ?? formik.status}
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{formik.touched.email && formik.errors.email ? (\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
{formik.errors.email}
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t{formik.touched.password && formik.errors.password && (\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
{formik.errors.password}
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t{/*Commit Id a848055df4a0b7c72256c2bb2c213d81f123fd34*/}\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
{/* opacity-60 */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tSign In\r\n\t\t\t\t\t\t\t{authLoading && }\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tSign In With \"login_microsoft\"\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tSign In With \"login_saml\"\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\tNeed Help?\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t{/*end::Form*/}\r\n\t\t
\r\n\t);\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n\treturn {\r\n\t\tauthLoading: state.auth.authLoading,\r\n\t\tredirectUrl: state.auth.redirectUrl,\r\n\t}\r\n}\r\n\r\nexport default injectIntl(connect(mapStateToProps, auth.actions)(Login));\r\n","import React, { useState } from \"react\";\r\nimport { useFormik } from \"formik\";\r\nimport { connect } from \"react-redux\";\r\nimport { Link, Redirect } from \"react-router-dom\";\r\nimport { Yup } from \"@utils/validation\";\r\nimport { injectIntl } from \"react-intl\";\r\nimport * as auth from \"../_redux/authRedux\";\r\nimport { forgotPassword } from \"../_redux/authCrud\";\r\nimport { Spin } from 'antd';\r\nimport _message from '@utils/message';\r\n\r\nimport { LoadingOutlined } from '@ant-design/icons';\r\nconst loadingIcon = ;\r\n\r\nconst initialValues = {\r\n username: \"\",\r\n};\r\n\r\nfunction ForgotPassword(props) {\r\n const { intl } = props;\r\n const [isRequested, setIsRequested] = useState(false);\r\n const ForgotPasswordSchema = Yup.object().shape({\r\n username: Yup.string()\r\n //.email(\"Wrong username format\")\r\n .min(3, \"Minimum 3 characters\")\r\n .max(50, \"Maximum 50 characters\")\r\n .required(\"Username is required\"),\r\n });\r\n\r\n const getInputClasses = (fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return \"is-invalid\";\r\n }\r\n\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return \"is-valid\";\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema: ForgotPasswordSchema,\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n forgotPassword(values.username)\r\n .then(res => {\r\n setIsRequested(true)\r\n if (res?.data?.success) {\r\n _message.success(res?.data?.message);\r\n } else {\r\n _message.error(res?.data?.message);\r\n }\r\n }).catch(() => {\r\n setIsRequested(false);\r\n setSubmitting(false);\r\n setStatus(\r\n intl.formatMessage(\r\n { id: \"AUTH.VALIDATION.NOT_FOUND\" },\r\n { name: values.username }\r\n )\r\n );\r\n });\r\n },\r\n });\r\n\r\n return (\r\n <>\r\n {isRequested && }\r\n {!isRequested && (\r\n
\r\n
\r\n

Forgotten Password ?

\r\n
\r\n Enter your username to reset your password\r\n
\r\n
\r\n \r\n {formik.status && (\r\n
\r\n
\r\n {formik.status}\r\n
\r\n
\r\n )}\r\n
\r\n \r\n {formik.touched.username && formik.errors.username ? (\r\n
\r\n
{formik.errors.username}
\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n\r\n \r\n {formik.isSubmitting ? <>\r\n Loading\r\n : \"Submit\"}\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n Cancel\r\n \r\n \r\n
\r\n
\r\n {/*
\r\n
*/}\r\n \r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default injectIntl(connect(null, auth.actions)(ForgotPassword));\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useFormik } from \"formik\";\r\nimport { Form } from \"react-bootstrap\";\r\nimport { connect } from \"react-redux\";\r\nimport * as auth from \"../_redux/authRedux\";\r\nimport { loginWith2Fa, getInfo2fa } from \"../_redux/authCrud\";\r\n\r\nfunction MfaPage(props) {\r\n const [loading, setLoading] = useState(false);\r\n const [user, setUser] = useState(null);\r\n\r\n useEffect(() => {\r\n getInfo2fa().then(e => {\r\n if (e) {\r\n const { data } = e.data;\r\n setUser(data);\r\n }\r\n }).catch(e => console.log(e));\r\n }, [setUser]);\r\n\r\n const formik = useFormik({\r\n initialValues: { twoFactorCode: \"\", rememberMachine: false },\r\n onSubmit: (values, { setStatus, setSubmitting }) => {\r\n enableLoading();\r\n setStatus(\"\");\r\n loginWith2Fa({ ...values, isPersistent: true }).then(res => {\r\n const { success, message } = res.data;\r\n if (!success) {\r\n setStatus(message);\r\n } else {\r\n setTimeout(() => {\r\n props.loginMfa();\r\n }, 1000);\r\n }\r\n disableLoading();\r\n setSubmitting(false);\r\n }).catch(e => {\r\n setStatus(e.message);\r\n disableLoading();\r\n setSubmitting(false);\r\n });\r\n }\r\n });\r\n\r\n const enableLoading = () => {\r\n setLoading(true);\r\n };\r\n\r\n const disableLoading = () => {\r\n setLoading(false);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

MFA Code

\r\n
Your login is protected with an authenticator app.
Enter your authenticator code below.
\r\n\r\n \r\n
\r\n {formik.status &&
\r\n
{formik.status}
\r\n
}\r\n \r\n
\r\n [\".\", \",\", \"-\", \"e\"].includes(e.key) && e.preventDefault()}\r\n {...formik.getFieldProps(\"twoFactorCode\")}\r\n />\r\n {formik.touched.twoFactorCode && formik.errors.twoFactorCode ? (\r\n
\r\n
{formik.errors.twoFactorCode}
\r\n
\r\n ) : null}\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default connect(null, auth.actions)(MfaPage);","import React, { useEffect } from 'react';\r\nimport { Spin } from 'antd';\r\nimport { connect } from \"react-redux\";\r\n\r\nimport Flex from '../../../components/Flex';\r\nimport * as auth from \"../_redux/authRedux\";\r\n\r\nfunction SsoPage(props) {\r\n\tuseEffect(() => {\r\n\t\tprops.loginMfa();\r\n\t}, [props]);// \r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default connect(null, auth.actions)(SsoPage);\r\n\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { Switch, Redirect } from \"react-router-dom\";// , useHistory\r\n\r\nimport { toAbsoluteUrl } from \"../../../../_metronic/_helpers\";\r\nimport { ContentRoute } from \"../../../../_metronic/layout\"\r\nimport Login from \"./Login\";\r\nimport ForgotPassword from \"./ForgotPassword\";\r\nimport MfaPage from \"./MfaPage\";\r\nimport SsoPage from \"./Sso\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport \"../../../../_metronic/_assets/sass/pages/login/classic/login-1.scss\";\r\nimport AuthLayout from \"../../../layouts/AuthLayout\";\r\n\r\nexport function AuthPage(props) {\r\n\t// const history = useHistory();\r\n\tconst { requiresTwoFactor } = useSelector(\r\n\t\t({ auth }) => ({\r\n\t\t\trequiresTwoFactor: auth.requiresTwoFactor,\r\n\t\t}),\r\n\t\tshallowEqual\r\n\t);\r\n\r\n\tconst { redirectUrl } = props;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{requiresTwoFactor ?\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { useDispatch, useSelector, shallowEqual } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { useInvalidateAllModuleDatatableQueries } from \"../../../../utils/states/NewDataTable.state\";\r\nimport { LayoutSplashScreen } from \"../../../../_metronic/layout\";\r\nimport { actions } from \"../_redux/authRedux\";\r\n\r\nconst Logout = () => {\r\n const refreshDatatable = useInvalidateAllModuleDatatableQueries()\r\n const dispatch = useDispatch()\r\n const { hasAuthToken } = useSelector(\r\n ({ auth }) => ({\r\n hasAuthToken: Boolean(auth.authToken),\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const doLogout = async () => {\r\n await refreshDatatable()\r\n dispatch(actions.logout())\r\n }\r\n\r\n useEffect(() => {\r\n doLogout()\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n return hasAuthToken \r\n ? \r\n : \r\n}\r\n\r\nexport default Logout\r\n","import React from 'react'\r\nimport Flex from '../../components/Flex'\r\n\r\nexport default function Maintenance() {\r\n return (\r\n \r\n \r\n
\r\n

{/* fs-25r
*/}\r\n UniFi\r\n

\r\n\r\n

We apologize for any inconvenience, but our website is currently undergoing scheduled maintenance to improve your browsing experience.

\r\n

During this time, our team is working diligently to ensure that our website runs smoothly and efficiently. We appreciate your patience and understanding as we work to make our site even better for you.

\r\n

Please check back shortly, and we'll be back online as soon as possible.

\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\n\r\n","import React from 'react'\r\nimport Flex from '../../components/Flex'\r\n\r\nexport default function Forbidden() {\r\n return (\r\n \r\n \r\n
\r\n

{/* fs-25r
*/}\r\n 403 Forbidden\r\n

\r\n

You do not have permission to access this resource.

\r\n

This may be due to one of the following reasons:

\r\n
    \r\n
  • You might not have the necessary credentials or authorization to view this page.
  • \r\n
  • Your access may be restricted based on your IP address, user role, or other security settings.
  • \r\n
  • The resource you're trying to access may be temporarily unavailable or private.
  • \r\n
\r\n

Please ensure you have the correct permissions. If you believe this is an error, kindly contact the website administrator or support team for assistance.

\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n}","/**\r\n * High level router.\r\n *\r\n * Note: It's recommended to compose related routes in internal router\r\n * components (e.g: `src/app/modules/Auth/pages/AuthPage`, `src/app/BasePage`).\r\n*/\r\nimport React, { lazy, Suspense } from \"react\";\r\nimport { Switch, Route, Redirect, useLocation, useRouteMatch } from \"react-router-dom\";// \r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\n\r\nimport { Layout, LayoutSplashScreen } from \"../_metronic/layout\";\r\nimport BasePage from \"./BasePage\";\r\nimport { Logout, AuthPage } from \"./modules/Auth\";\r\nimport UnderConstruction from \"./modules/ErrorsExamples/UnderConstruction\";\r\nimport Maintenance from './modules/ErrorsExamples/Maintenance'\r\nimport Forbidden from \"./modules/ErrorsExamples/Forbidden\";\r\n\r\nconst ResetPasswordPage = lazy(() => import('./modules/Auth/pages/ResetPassword'));\r\n\r\nconst WHITE_LIST_SIDEBAR = ['/item-editor/:id', '/task-editor/:id', '/form-editor/:id']\r\n\r\nexport function Routes() {\r\n\tconst { isAuthorized } = useSelector(\r\n\t\t({ auth }) => ({\r\n\t\t\tisAuthorized: auth.authToken != null,\r\n\t\t}),\r\n\t\tshallowEqual\r\n\t);\r\n\r\n\tconst location = useLocation();\r\n\tconst returnUrl = `${location.pathname}${location.search}${location.hash}`;\r\n\t// eslint-disable-next-line\r\n\tconst redirectUrl = location.pathname === \"/\" || location.pathname === \"/logout\" ? '/authentication/login' : `/authentication/login?ReturnUrl=${encodeURI(returnUrl)}`;\r\n\r\n\tconst redirectTo = new URLSearchParams(window.location.search).get('ReturnUrl');\r\n\r\n\tconst authLayoutBase = () => {\r\n\t\tconst matchRoute = useRouteMatch(WHITE_LIST_SIDEBAR)\r\n\t\tif (!isAuthorized) {\r\n\t\t\treturn \r\n\t\t}else if(matchRoute !== null){\r\n\t\t\treturn \r\n\t\t}else{\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)\r\n\t\t}\r\n\t}\r\n\r\n\treturn (\r\n\t\t}>\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t{!isAuthorized ? (\r\n\t\t\t\t\t/* Render auth page when user at `/auth` and not authorized */\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t/* Otherwise redirect to root page (`/`) */\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t{authLayoutBase()}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}","import React, {createContext} from \"react\";\r\nimport {useMemo} from \"react\";\r\nimport {useContext} from \"react\";\r\n\r\nconst I18N_CONFIG_KEY = process.env.REACT_APP_I18N_CONFIG_KEY || \"i18nConfig\";\r\nconst initialState = {\r\n selectedLang: \"en\"\r\n };\r\n\r\nfunction getConfig() {\r\n const ls = localStorage.getItem(I18N_CONFIG_KEY);\r\n if (ls) {\r\n try {\r\n return JSON.parse(ls);\r\n } catch (er) {\r\n console.error(er);\r\n }\r\n }\r\n return initialState;\r\n}\r\n\r\n// Side effect\r\nexport function setLanguage(lang) {\r\n localStorage.setItem(I18N_CONFIG_KEY, JSON.stringify({ selectedLang: lang }));\r\n window.location.reload();\r\n}\r\n\r\nconst I18nContext = createContext();\r\n\r\nexport function useLang() {\r\n return useContext(I18nContext).selectedLang;\r\n}\r\n\r\nexport function withI18n(Component) {\r\n class WithI18n extends React.Component {\r\n static displayName = `WithI18n(${Component.displayName || Component.name})`;\r\n\r\n static contextType = I18nContext;\r\n\r\n render() {\r\n return ;\r\n }\r\n }\r\n\r\n return WithI18n;\r\n}\r\n\r\nexport const I18nConsumer = I18nContext.Consumer;\r\n\r\nexport function MetronicI18nProvider({ children }) {\r\n const lang = useMemo(getConfig, []);\r\n\r\n return {children};\r\n}\r\n","import React from \"react\";\r\nimport {useLang} from \"./Metronici18n\";\r\nimport {IntlProvider} from \"react-intl\";\r\nimport \"@formatjs/intl-relativetimeformat/polyfill\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/en\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/de\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/es\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/fr\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/ja\";\r\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/zh\";\r\n\r\nimport deMessages from \"./messages/de\";\r\nimport enMessages from \"./messages/en\";\r\nimport esMessages from \"./messages/es\";\r\nimport frMessages from \"./messages/fr\";\r\nimport jaMessages from \"./messages/ja\";\r\nimport zhMessages from \"./messages/zh\";\r\n\r\nconst allMessages = {\r\n de: deMessages,\r\n en: enMessages,\r\n es: esMessages,\r\n fr: frMessages,\r\n ja: jaMessages,\r\n zh: zhMessages\r\n};\r\n\r\nexport function I18nProvider({ children }) {\r\n const locale = useLang();\r\n const messages = allMessages[locale];\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","import { useQueryClient } from \"@tanstack/react-query\";\r\nimport useRefresh from \"@utils/hooks/useRefresh\";\r\nimport { notification, Modal } from \"antd\";\r\nimport { useEffect, useState, useRef, useCallback } from \"react\";\r\nimport { actions } from \"../modules/Auth/_redux/authRedux\";\r\nimport { useJwt } from \"react-jwt\";\r\nimport moment from \"moment\";\r\nimport * as service from \"../modules/Auth/_redux/authCrud\";\r\nimport { useSelector, useDispatch } from \"react-redux\"; \r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst Refresher = ({ children }) => {\r\n const queryClient = useQueryClient()\r\n\tconst history = useHistory();\r\n const message = useRefresh()\r\n const { authToken, authConfig } = useSelector(({auth}) => ({ authToken: auth?.authToken, authConfig: auth?.config }));\r\n const dispatch = useDispatch();\r\n const { decodedToken, reEvaluateToken } = useJwt(authToken ?? '');\r\n const [isInactive, setIsInactive] = useState(false)\r\n const events = ['click', 'keypress', 'scroll']\r\n const isInactiveRef = useRef(isInactive);\r\n const timerRef = useRef(0);\r\n const inactivityTimeout = useRef();\r\n const modalTimeout = useRef();\r\n\r\n const bc = new BroadcastChannel(\"auth_channel\");\r\n bc.addEventListener(\"message\", (event) => {\r\n const newToken = event.data;\r\n if(newToken){\r\n Modal.destroyAll()\r\n clearInterval(timerRef.current)\r\n reEvaluateToken(newToken)\r\n }\r\n });\r\n \r\n const startInactivityCheck = () => {\r\n isInactiveRef.current = true;\r\n setIsInactive(true)\r\n }\r\n const setActive = () => {\r\n isInactiveRef.current = false;\r\n setIsInactive(false)\r\n refreshToken()\r\n }\r\n\r\n useEffect(() => {\r\n if(isInactive){\r\n events.forEach(event => {\r\n window.addEventListener(event, setActive)\r\n });\r\n } else {\r\n events.forEach(event => {\r\n window.removeEventListener(event, setActive)\r\n });\r\n }\r\n return () => {\r\n events.forEach(event => {\r\n window.removeEventListener(event, setActive)\r\n });\r\n }\r\n }, [isInactive])\r\n\r\n const refreshToken = async () => {\r\n try{\r\n if(authToken && authConfig?.appMenu){\r\n clearInterval(timerRef.current)\r\n const response = await service.refreshToken(authToken);\r\n const { data } = response || {};\r\n const newToken = data.data.jwt\r\n bc.postMessage(newToken)\r\n dispatch(actions.refreshToken({authToken: newToken, config: authConfig}))\r\n } else {\r\n Modal.destroyAll()\r\n showModalAfterLogout(\"Failed to refresh access token\")\r\n history.push(\"/logout\")\r\n }\r\n } catch (e) {\r\n console.error(\"~ Refresher ~ refreshToken ~ error:\", e)\r\n }\r\n }\r\n\r\n const showModalAlert = (expired) => {\r\n Modal.confirm({\r\n icon: null,\r\n maskClosable: false,\r\n closable: false,\r\n content: ,\r\n okText: \"Continue session\",\r\n cancelButtonProps:{style:{display: 'none'}},\r\n title: \"Your session is expiring soon\",\r\n onOk: refreshToken,\r\n });\r\n };\r\n const showModalAfterLogout = (title) => {\r\n Modal.info({\r\n icon: null,\r\n content: \"You have logged out. please log in again\",\r\n cancelButtonProps:{style:{display: 'none'}},\r\n title: title || \"Your session has expired\",\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n try{\r\n if(decodedToken){\r\n const today = moment().utc()\r\n const expired = moment(decodedToken.exp * 1000).utc()\r\n if(expired.isBefore(today)){\r\n Modal.destroyAll()\r\n history.push(\"/logout\")\r\n } else {\r\n const minutesUntilExpired = expired.diff(today, 'minutes')\r\n clearTimeout(inactivityTimeout.current);\r\n clearTimeout(modalTimeout.current);\r\n inactivityTimeout.current = setTimeout(async () => {\r\n // check inactivity 35 minutes before expired\r\n startInactivityCheck()\r\n }, (minutesUntilExpired - 35) * 60000)\r\n modalTimeout.current = setTimeout(async () => {\r\n if(isInactiveRef.current){\r\n // remove listener when modal exists\r\n setIsInactive(false)\r\n // 5 minutes before expired, show modal if inactive\r\n showModalAlert(decodedToken.exp)\r\n }\r\n }, (minutesUntilExpired - 5) * 60000)\r\n }\r\n }\r\n } catch (e) {\r\n console.error(\"~ Refresher ~ handleRefreshToken ~ error:\", e)\r\n }\r\n return () => {\r\n clearTimeout(inactivityTimeout.current);\r\n clearTimeout(modalTimeout.current);\r\n }\r\n }, [decodedToken])\r\n \r\n const openNotification = (description) => {\r\n\t\tnotification.open({\r\n\t\t\tmessage: \"Notification\",\r\n\t\t\tdescription,\r\n\t\t});\r\n\t};\r\n\r\n useEffect(() => {\r\n const target = message.target\r\n try{\r\n if(message.arguments && message.arguments.length > 0){\r\n const arg = message.arguments[0]\r\n const { content, moduleId, activity_id } = arg\r\n setTimeout(() => {\r\n if(content){\r\n openNotification(content);\r\n }\r\n if(moduleId){\r\n queryClient.invalidateQueries({\r\n predicate: query => {\r\n return (query.queryKey[0] || '').match(/getModuleTasksDynamic|getDrafts|getModuleItems|getTasksByUser|getTaskScheduler/) && \r\n query.queryKey[1]?.moduleId === moduleId\r\n }\r\n })\r\n queryClient.invalidateQueries(['module-summary', moduleId])\r\n queryClient.invalidateQueries(['module-history', moduleId])\r\n queryClient.invalidateQueries(['module-record', moduleId])\r\n }\r\n }, 7500); \r\n } \r\n } catch(e) {\r\n console.error(\"~ Refresher ~ useEffect ~ error:\", e)\r\n }\r\n }, [message])\r\n \r\n const calculateDuration = eventTime => moment.duration(Math.max(eventTime - (Math.floor(Date.now() / 1000)), 0), 'seconds');\r\n\r\n const Countdown = ({ eventTime, interval, timerRef }) => {\r\n const [duration, setDuration] = useState(calculateDuration(eventTime));\r\n const timerCallback = useCallback(() => {\r\n try{\r\n if(calculateDuration(eventTime).asSeconds() <= 0){\r\n clearInterval(timerRef.current);\r\n // logout if expired\r\n Modal.destroyAll()\r\n showModalAfterLogout()\r\n history.push(\"/logout\")\r\n }\r\n setDuration(calculateDuration(eventTime));\r\n } catch (e){\r\n console.error(\"~ Countdown ~ timerCallback ~ error:\", e)\r\n }\r\n }, [eventTime])\r\n\r\n useEffect(() => {\r\n timerRef.current = setInterval(timerCallback, interval);\r\n\r\n return () => {\r\n clearInterval(timerRef.current);\r\n }\r\n }, [eventTime]);\r\n\r\n return (\r\n
\r\n You will be logged out in {duration.minutes()} Minutes {duration.seconds()} Seconds\r\n
\r\n )\r\n }\r\n\r\n return children\r\n}\r\n\r\nexport default Refresher","import { Input, Card, Form } from \"antd\"\r\nimport Button from \"react-bootstrap/Button\";\r\n\r\nimport { APP_NAME, APP_DOMAIN } from '../../../../data/appData';\r\nimport { BookOutlined, PhoneOutlined } from \"@ant-design/icons\";\r\nimport { EmailOutlined } from \"@material-ui/icons\";\r\nimport { styled } from \"@material-ui/core\";\r\nimport AuthLayout from \"../../../layouts/AuthLayout\"\r\nimport { toAbsoluteUrl } from \"../../../../_metronic/_helpers\"\r\n\r\nconst HelpIcon = styled('span')(() => ({\r\n\tdisplay: 'inline-block',\r\n\twidth: '16px',\r\n\tcolor: '#B5B5C3',\r\n\tmarginRight: '.5rem',\r\n\t'& svg': {\r\n\t\twidth: '16px',\r\n\t}\r\n}))\r\n\r\nconst onSubmit = (value) => {\r\n\twindow.location.href = `https://${value?.url}${APP_DOMAIN}`\r\n}\r\n\r\nfunction LoginDomain() {\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t

\r\n\t\t\t\t\t\tOne system, limitless use cases.\r\n\t\t\t\t\t

\r\n\t\t\t\t\t

\r\n\t\t\t\t\t\tFor finance and beyond!\r\n\t\t\t\t\t

\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t>\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t

Welcome to {APP_NAME}

\r\n\t\t\t\t\t\t\t\t\t

Please enter your {APP_NAME} login domain

\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tContinue\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

If you need help logging in, please have your username ready and contact UniFi on:

\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tsupport@unifiplatform.com\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t+44 20 7456 9839\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tNeed help ?\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\nexport default LoginDomain\r\n","/** Entry application component used to compose providers and render Routes. */\r\nimport React from 'react';\r\nimport { Provider } from 'react-redux';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { PersistGate } from 'redux-persist/integration/react';\r\nimport { QueryClientProvider, QueryClient } from '@tanstack/react-query';\r\nimport { Routes } from '../app/Routes';\r\nimport { I18nProvider } from '../_metronic/i18n';\r\nimport { LayoutSplashScreen, MaterialThemeProvider } from '../_metronic/layout';\r\nimport { VisibilityProvider } from '../providers/VisibilityProvider';\r\nimport Refresher from './components/Refresher';\r\nimport LoginDomain from './modules/Auth/pages/LoginDomain';\r\n\r\nconst queryClient = new QueryClient({\r\n defaultOptions: {\r\n queries: {\r\n staleTime: Infinity,\r\n suspense: true,\r\n refetchOnWindowFocus: false,\r\n refetchOnmount: false,\r\n refetchOnReconnect: false,\r\n retry: (count, { response: { status } }) =>\r\n status !== 401 && status !== 403 && count < 3,\r\n },\r\n },\r\n})\r\n\r\nexport default function App({ store, persistor, basename }) {\r\n\r\n const renderLoginDomain = () => {\r\n const isLoginHost = window.location.host.split('.')[0] === 'login'\r\n if (isLoginHost) {\r\n return \r\n }\r\n return \r\n }\r\n\r\n return (\r\n /* Provide Redux store */\r\n \r\n \r\n {/* Asynchronously persist redux stores and show `SplashScreen` while it's loading. */}\r\n }>\r\n {/* Add high level `Suspense` in case if was not handled inside the React tree. */}\r\n }>\r\n {/* Override `basename` (e.g: `homepage` in `package.json`) */}\r\n \r\n {/*This library only returns the location that has been active before the recent location change in the current window lifetime.*/}\r\n \r\n {/* Provide `react-intl` context synchronized with Redux state. */}\r\n \r\n \r\n {/* Render routes with provided `Layout`. */}\r\n \r\n {renderLoginDomain()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://cra.link/PWA\r\n\r\n const isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n );\r\n \r\n export function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n \r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n \r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n \r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://cra.link/PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n }\r\n \r\n function registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://cra.link/PWA.'\r\n );\r\n \r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n \r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n }\r\n \r\n function checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log('No internet connection found. App is running in offline mode.');\r\n });\r\n }\r\n \r\n export function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then((registration) => {\r\n registration.unregister();\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n });\r\n }\r\n }\r\n ","/**\r\n * Create React App entry point. This and `public/index.html` files can not be\r\n * changed or moved.\r\n*/\r\nimport \"react-app-polyfill/ie11\";\r\nimport \"react-app-polyfill/stable\";\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport axios from \"axios\";\r\nimport * as _redux from \"./redux\";\r\nimport store, { persistor } from \"./redux/store\";\r\nimport App from \"./app/App\";\r\n// import 'antd/dist/antd.css'; // MOVED TO _metronic/_assets/sass/finansys\r\nimport \"./index.scss\"; // Standard version\r\n// import \"./sass/style.react.rtl.css\"; // RTL version\r\nimport \"./_metronic/_assets/plugins/keenthemes-icons/font/ki.css\";\r\nimport \"socicon/css/socicon.css\";\r\n// import \"@fortawesome/fontawesome-free/css/all.min.css\"; // MOVED TO _metronic/_assets/sass/finansys\r\nimport \"./_metronic/_assets/plugins/flaticon/flaticon.css\";\r\nimport \"./_metronic/_assets/plugins/flaticon2/flaticon.css\";\r\n// Datepicker\r\n// import \"react-datepicker/dist/react-datepicker.css\";\r\nimport {\r\n MetronicLayoutProvider,\r\n MetronicSplashScreenProvider,\r\n MetronicSubheaderProvider\r\n} from \"./_metronic/layout\";\r\nimport { MetronicI18nProvider } from \"./_metronic/i18n\";\r\n\r\n// FS-CUSTOM:\r\nimport { isMobile, setClass } from './utils/Q';// makeEl, \r\n// import getScript from './utils/load/getScript';\r\nimport Honeybadger from \"@honeybadger-io/js\";\r\nimport { HoneybadgerErrorBoundary as ErrorBoundary } from \"@honeybadger-io/react\";\r\nimport * as serviceWorkerRegistration from \"./serviceWorkerRegistration\";\r\n\r\nHoneybadger.configure({\r\n apiKey: 'hbp_3f8b86HDFYGjKdbG4YwWApQ2lHu4J43OndQ9',\r\n environment: process.env.NODE_ENV || 'production',\r\n breadcrumbsEnabled: {\r\n dom: true,\r\n network: true,\r\n navigation: true,\r\n console: process.env.REACT_APP_HB_IN_CONSOLE,\r\n }\r\n})\r\n\r\nwindow.URL = window.URL || window.webkitURL;\r\n\r\n/**\r\n * Base URL of the website.\r\n *\r\n * @see https://facebook.github.io/create-react-app/docs/using-the-public-folder\r\n*/\r\nconst { PUBLIC_URL } = process.env;\r\n\r\n/**\r\n * Creates `axios-mock-adapter` instance for provided `axios` instance, add\r\n * basic Metronic mocks and returns it.\r\n *\r\n * @see https://github.com/ctimmerm/axios-mock-adapter\r\n */\r\n/* const mock = */\r\n\r\n/**\r\n * Inject metronic interceptors for axios.\r\n *\r\n * @see https://github.com/axios/axios#interceptors\r\n*/\r\n_redux.setupAxios(axios, store);\r\n\r\n// FS-CUSTOM: Add SUPPORT focus preventScroll\r\n// let focusOptions = false;\r\n// makeEl('div').focus({\r\n// get preventScroll() {\r\n// focusOptions = true;\r\n// return false;\r\n// }\r\n// });\r\n// if(!focusOptions){\r\n// getScript({ src: \"/js/libs/polyfill/focus-options.js\" }).then(v => console.log(v)).catch(e => console.warn(e));\r\n// }\r\n\r\n// Detect mobile device:\r\nisMobile() && setClass(document.body, \"isMobile\");\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://cra.link/PWA\r\nserviceWorkerRegistration.unregister();","import React, { forwardRef } from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\n\r\nimport { Cx, hasClass, setAttr } from '../../utils/Q';\r\n\r\nconst Aroute = forwardRef(\r\n\t({\r\n\t\tto, \r\n\t\tkind, \r\n\t\tnav, \r\n\t\tbtn, \r\n\t\tsize, \r\n\t\toutline, \r\n\t\tdropdown, \r\n\t\tlistGroup, \r\n\t\tnoLine, \r\n\t\tstretched, \r\n\t\tclassName, \r\n\t\tdisabled, \r\n\t\trole, \r\n\t\ttabIndex, \r\n\t\tnoNewTab, \r\n\t\tchildren, \r\n\t\tonMouseEnter = () => {}, \r\n\t\tonClick = () => {}, \r\n\t\tonContextMenu = () => {},\r\n\t\t...etc\r\n\t}, \r\n\tref\r\n) => {\r\n\tconst MouseEnter = e => {\t\t\r\n\t\tif(noNewTab){\r\n\t\t\tsetAttr(e.target, \"href\");\r\n\t\t}\r\n\r\n\t\tonMouseEnter(e);\r\n\t}\r\n\r\n\tconst Click = e => {\r\n\t\tconst et = e.target;\r\n\r\n if(disabled){\r\n e.preventDefault();\r\n return;\r\n }\r\n\t\t// Close Dropdown menu if component in \r\n if(hasClass(et, \"dropdown-item\")){\r\n\t\t\tdocument.body.click();\r\n\t\t}\r\n\r\n\t\tonClick(e);\r\n\t}\r\n\r\n\tconst CtxMenu = e => {\r\n\t\tif(disabled){\r\n\t\t\te.preventDefault();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tonContextMenu(e);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\r\n\t);\r\n});\r\n\r\nexport default Aroute;\r\n","export const SIZE_PER_PAGE = 10\r\nexport const SIZE_PER_PAGE_LIST = [{\r\n text: '10 / page', value: 10\r\n }, {\r\n text: '20 / page', value: 20\r\n }, {\r\n text: '50 / page', value: 50\r\n }, {\r\n text: '100 / page', value: 100\r\n }]\r\nexport const STATUS_DRAFT = 'Draft';\r\nexport const STATUS_IN_PROGRESS = 'In Progress';\r\nexport const STATUS_COMPLETED = 'Completed';\r\nexport const STATUS_FAULTED = 'Faulted';\r\nexport const STATUS_STARTING = 'Starting';\r\nexport const STATUS_RETURNED = 'Returned';\r\nexport const WORKFLOW_STATUSES = [\r\n STATUS_DRAFT,\r\n STATUS_IN_PROGRESS,\r\n STATUS_COMPLETED,\r\n STATUS_FAULTED,\r\n STATUS_STARTING,\r\n STATUS_RETURNED,\r\n]\r\nexport const DEFAULT_COLUMNS_COUNT = 25","export const operatorMap = (op) => {\r\n const map = {\r\n 'Equal to': 'eq',\r\n 'Not equal to': 'neq',\r\n 'Is null': 'isnull',\r\n 'Is not null': 'isnotnull',\r\n 'Less than': 'lt',\r\n 'Less than or equal to': 'lte',\r\n 'Greater than': 'gt',\r\n 'Greater than or equal to': 'gte',\r\n 'Starts with': 'startswith',\r\n 'Ends with': 'endswith',\r\n 'Contains': 'contains',\r\n 'Does not contain': 'doesnotcontain',\r\n 'Min length': 'minlength',\r\n 'Max length': 'maxlength',\r\n 'Part of': 'partof',\r\n 'Not part of': 'notpartof',\r\n 'Is empty': 'isempty',\r\n 'Is not empty': 'isnotempty',\r\n 'In': 'isin',\r\n }\r\n return map[op]\r\n}\r\n\r\nexport default { operatorMap }","import queryString from \"query-string\";\r\nimport { startCase } from \"lodash/string\";\r\nimport { strToSnakeCase } from \"../string\";\r\nimport { omit } from \"../Q\";\r\nimport { operatorMap } from \"./operator-map\";\r\nimport parseValue from \"../parse-value\";\r\nimport { initRequest } from \"../actionMethods\";\r\n\r\nconst sortTypesMap = {\r\n 'Ascending': 'asc',\r\n 'Descending': 'desc'\r\n}\r\n\r\nconst extractFieldValue = (formValues, table, rowIndex) => (field) => {\r\n if(!formValues) return null;\r\n return table && !isNaN(rowIndex) && formValues[table] && formValues[table][rowIndex]\r\n ? formValues[table][rowIndex][field]\r\n : formValues[field]\r\n}\r\nexport const formPayload = payload => {\r\n const { sections, flowData } = payload;\r\n\r\n const fieldGroups = sections.map((section, secIdx) => {\r\n const {\r\n displayName,\r\n sectionIndex,\r\n rows,\r\n fields,\r\n ...rest\r\n } = section;\r\n const rowFields = rows.reduce((result, row, rowIndex) => {\r\n const mapFieldTypes = {\r\n 'remote-lookup': 'remoteurl'\r\n };\r\n return [\r\n ...result,\r\n ...row.fields.map(({ id, headers, fieldType, fieldName, ...field }, columnIndex) => {\r\n return {\r\n ...field,\r\n ...(id || fieldName ? { name: strToSnakeCase(id || fieldName) } : {}),\r\n ...(headers?.length ? { headers } : {}),\r\n isTable: field.isTable,\r\n displayName: fieldName,\r\n editorType: mapFieldTypes[fieldType] || fieldType,\r\n rowIndex,\r\n columnIndex,\r\n reservedFieldNames: [],\r\n }\r\n })\r\n ]\r\n }, []);\r\n\r\n return {\r\n ...rest,\r\n displayName,\r\n sectionIndex,\r\n name: rest.name ? rest.name : strToSnakeCase(displayName) + \"_\" + secIdx,\r\n orderIndex: sectionIndex,\r\n minimumRowCount: 0,\r\n maximumRowCount: 0,\r\n fields: rowFields,\r\n }\r\n });\r\n\r\n return {\r\n // strToSnakeCase(flowData.displayName)\r\n // flowData.formName ? flowData.formName : strToSnakeCase(flowData.displayName)\r\n formName: strToSnakeCase(flowData.formName),\r\n displayName: flowData.displayName,\r\n isPublished: Boolean(flowData.isPublished),\r\n fieldGroups,\r\n }\r\n}\r\n\r\nexport const listKeyValuePayload = payload => {\r\n const { id, categories, values, items, name: key_name, description } = payload\r\n\r\n return {\r\n ...(id ? { id } : {}),\r\n key_name,\r\n categories: categories.join(', '),\r\n values: values || items,\r\n description,\r\n }\r\n}\r\n\r\nexport const dataTablePayload = payload => {\r\n const { fields = [], query, page = 1, orders = [], filters = {}, sizePerPage = 10 } = payload;\r\n const columns = fields.map((field) => {\r\n const fieldId = field.id || field.dataField || String(field);\r\n return {\r\n data: fieldId,\r\n name: fieldId,\r\n searchable: true,\r\n orderable: true,\r\n searchValue: null,\r\n searchRegex: false\r\n }\r\n })\r\n return {\r\n page,\r\n columns,\r\n orders,\r\n search: filters?.rules?.length ? null : {\r\n searchValue: query || '',\r\n searchRegex: false\r\n },\r\n length: sizePerPage || 10,\r\n filters\r\n }\r\n}\r\n\r\nexport const remoteLookupPayload = async ({ payload, formValues = {}, table, rowIndex, govHeaders = [] }) => {\r\n const {\r\n url = '',\r\n requestType: httpMethod,\r\n responseFormat: contentType,\r\n responsePath: tokenizer,\r\n submitAllFields,\r\n id,\r\n headers = [],\r\n body = [],\r\n params = [],\r\n addGovHeaders,\r\n } = payload\r\n const urlObject = url ? new URL(url) : {}\r\n const parsedUrl = queryString.parse(urlObject?.search)\r\n const getFieldValue = (field) => {\r\n return table &&\r\n !isNaN(rowIndex) &&\r\n formValues[table] &&\r\n formValues[table][rowIndex]\r\n && !formValues.hasOwnProperty(field)\r\n ? formValues[table][rowIndex][field]\r\n : formValues[field]\r\n }\r\n const getDatasetValue = async ({ value, datasetKey, datasetColumn }) => {\r\n const request = initRequest()\r\n const response = await request('getDataByKey', { referenceDataId: value, key: getFieldValue(datasetKey) })\r\n if (response?.data && response?.data[datasetColumn]) {\r\n return response.data[datasetColumn]\r\n }\r\n return null\r\n }\r\n const fieldsWalker = async fields => {\r\n let result = {}\r\n if (fields.length) {\r\n await Promise.all(fields.map(async field => {\r\n try {\r\n if (field.type === 'data') {\r\n const response = await getDatasetValue(field)\r\n if (response) {\r\n result[field.name] = response\r\n } else {\r\n result[field.name] = field.value\r\n }\r\n } else if (field.type === 'field') {\r\n result[field.name] = getFieldValue(field.value)\r\n } else {\r\n result[field.name] = field.value\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n }))\r\n }\r\n return result\r\n }\r\n const headersWalker = async fields => {\r\n let result = []\r\n if (fields.length) {\r\n await Promise.all(fields.map(async field => {\r\n try {\r\n if (field.type === 'data') {\r\n const response = await getDatasetValue(field)\r\n if (response) {\r\n result.push({\r\n key: field.name,\r\n value: response,\r\n })\r\n } else {\r\n result.push({\r\n key: field.name,\r\n value: field.value,\r\n })\r\n }\r\n } else if (field.type === 'field') {\r\n result.push({\r\n key: field.name,\r\n value: getFieldValue(field.value),\r\n })\r\n } else {\r\n result.push({\r\n key: field.name,\r\n value: field.value,\r\n })\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n }))\r\n }\r\n return result\r\n }\r\n\r\n const postBody = {\r\n ...(httpMethod === 'POST' ? await fieldsWalker(body) : {}),\r\n ...(httpMethod === 'POST' && submitAllFields\r\n ? omit(formValues, id)\r\n : {}\r\n )\r\n }\r\n\r\n const urlParams = await fieldsWalker(params)\r\n const requestHeaders = [\r\n ...await headersWalker(headers),\r\n ...(addGovHeaders && govHeaders?.length ? govHeaders : []),\r\n ]\r\n const modifiedUrl = url\r\n ? queryString.stringifyUrl({\r\n url: url.split('?').shift(),\r\n query: {\r\n ...(parsedUrl || {}),\r\n ...urlParams,\r\n }\r\n })\r\n : ''\r\n\r\n return {\r\n httpMethod,\r\n tokenizer,\r\n url: modifiedUrl,\r\n contentType: contentType?.toLowerCase(),\r\n selectMultiple: true,\r\n ...(\r\n requestHeaders.length\r\n ? { headers: requestHeaders }\r\n : {}\r\n ),\r\n ...(\r\n Object.keys(postBody).length\r\n ? { bodyContent: JSON.stringify(postBody) }\r\n : {}\r\n ),\r\n urlParams\r\n }\r\n}\r\n\r\nexport const lookupPayload = (payload, formValues, table, rowIndex, timezone) => {\r\n const {\r\n fieldType,\r\n flowToLookUp,\r\n moduleId,\r\n isTableLookup,\r\n tableName,\r\n filters,\r\n isDataset,\r\n sortValuesBy: sortBy,\r\n sortType,\r\n rawFilters,\r\n selectFieldsByThisProcess\r\n } = payload\r\n\r\n const getFieldValue = extractFieldValue(formValues, table, rowIndex)\r\n const { combinator = '' } = rawFilters || {}\r\n const fieldNames = fieldType === \"pull-data\" ? ['id', ...selectFieldsByThisProcess] : [\"*\"];\r\n return {\r\n moduleId: moduleId || flowToLookUp,\r\n fieldName: fieldNames,\r\n isTable: isTableLookup,\r\n tableName,\r\n isDataset,\r\n ...(sortBy ? {\r\n sortBy,\r\n sortType: sortTypesMap[sortType],\r\n }: {}),\r\n ...((filters || []).length ? {\r\n filter: {\r\n matchesAll: combinator.toLowerCase() === 'and',\r\n filters: filters.map(filter => {\r\n const { field, fieldType, operator, type, value, valueFieldType } = filter\r\n return {\r\n field,\r\n value: type === 'Field'\r\n ? parseValue(getFieldValue(value), fieldType || valueFieldType, undefined, timezone, true)\r\n : parseValue(value, fieldType || valueFieldType, undefined, timezone, true),\r\n operator: operatorMap(operator),\r\n ignoreCase: true,\r\n }\r\n })\r\n }\r\n } : {})\r\n }\r\n}\r\n\r\nexport const aggregateLookupPayload = (payload, matchesAll = true) => {\r\n const {\r\n moduleId,\r\n isTableLookup,\r\n tableName,\r\n fieldToAggregate: field,\r\n aggregationType: aggregateType,\r\n sortValuesBy: sortBy,\r\n sortType,\r\n filters,\r\n } = payload;\r\n\r\n return {\r\n field,\r\n moduleId,\r\n isTable: isTableLookup,\r\n tableName,\r\n aggregateType: String(aggregateType).toLowerCase(),\r\n ...(sortBy ? {\r\n sortBy,\r\n sortType,\r\n } : {}),\r\n ...((filters || []).length ? {\r\n filter: {\r\n matchesAll: matchesAll,\r\n filters: filters.map(({ field, operator, value }) => ({\r\n field,\r\n value,\r\n operator: operatorMap(operator),\r\n ignoreCase: true,\r\n }))\r\n }\r\n } : {})\r\n }\r\n}\r\n\r\nexport const userLookupPayload = (payload, formValues, timezone) => {\r\n const {\r\n filters,\r\n rawFilters,\r\n } = payload\r\n const { combinator = '' } = rawFilters || {}\r\n const getFieldValue = extractFieldValue(formValues)\r\n return {\r\n ...((filters || []).length ? {\r\n matchesAll: combinator.toLowerCase() === 'and',\r\n filters: filters.map(filter => {\r\n const { field, fieldType, operator, type, value } = filter\r\n return {\r\n field,\r\n value: type === 'Field'\r\n ? parseValue(getFieldValue(value), fieldType, undefined, timezone, true)\r\n : parseValue(value, fieldType, undefined, timezone, true),\r\n operator: operatorMap(operator),\r\n ignoreCase: true,\r\n }\r\n })\r\n } : {})\r\n }\r\n}\r\n\r\nexport const syncWorkflowItems = workflow => {\r\n workflow.map(wf => {\r\n if (wf.type === 'goto') {\r\n const goto = workflow.find(step => step.id === wf.goto?.value)\r\n if (goto && goto.name !== wf.goto.label) {\r\n wf.goto.label = goto.name\r\n }\r\n }\r\n return wf;\r\n })\r\n\r\n return workflow\r\n}\r\n\r\nexport const workflowPayload = (payload) => {\r\n const { elements, validUserFields } = payload || [] \r\n const validateAssignee = (rawActivity) =>{ \r\n const { name, assignToCollectionExpression } = rawActivity;\r\n if(assignToCollectionExpression){\r\n const { expression } = assignToCollectionExpression;\r\n let assigneeList = JSON.parse(expression);\r\n let validAssignee = assigneeList.reduce((result, assignee) => {\r\n let assigneeField = assignee.approver_id.split(\".\")[1];\r\n if (!assigneeField || (assigneeField && validUserFields?.includes(assigneeField))) {\r\n result.push(assignee);\r\n }\r\n return result;\r\n }, [])\r\n if (validAssignee.length === 0) {\r\n throw { message: `Assignee for ${name} is no longer available` }\r\n }\r\n return {\r\n ...rawActivity,\r\n assignToCollectionExpression: {\r\n ...assignToCollectionExpression,\r\n expression: JSON.stringify(validAssignee)\r\n }\r\n } \r\n } \r\n return rawActivity;\r\n } \r\n const activities = elements.filter(el => !el.source && !el.target).map(act => {\r\n const { position, data, id, ...activity } = act\r\n const { raw = {} } = data || {}\r\n const { name, title, description, nodeDescription, ...rawProperties } = raw\r\n const properties = Object.entries(rawProperties).reduce((acc, prop) => {\r\n const [key, value] = prop\r\n const propName = startCase(key).replace(/\\s/g, '')\r\n const expressionTypeMap = {\r\n SupportedStatusCodes: 'Json',\r\n Branches: 'Json',\r\n OutcomeNames: 'Json',\r\n PossibleOutcomes: 'Json',\r\n }\r\n const propNameMap = {\r\n ConditionExpression: 'Condition',\r\n ModuleId: 'ApplicationModuleId',\r\n ValueExpression: 'Value',\r\n }\r\n const excludeSyntax = [\r\n 'SourceType',\r\n 'QueryExpressionType',\r\n 'SingleResult',\r\n ]\r\n const parsePropValue = value => {\r\n switch (true) {\r\n case Array.isArray(value):\r\n return JSON.stringify(value.filter(v => Boolean(v)))\r\n case typeof value === 'string':\r\n default:\r\n return value\r\n }\r\n }\r\n const syntaxValue = value?.syntax || expressionTypeMap[propName] || 'Literal'\r\n const expValue = parsePropValue(\r\n ![undefined, null].includes(value?.expression)\r\n ? value.expression\r\n : value\r\n )\r\n const elsaPropName = propNameMap[propName] || propName\r\n const elsaProp = {\r\n name: elsaPropName,\r\n ...excludeSyntax.includes(elsaPropName)\r\n ? {}\r\n : { syntax: value?.syntax },\r\n expressions: ![undefined, null].includes(expValue)\r\n ? { [syntaxValue]: expValue }\r\n : {},\r\n }\r\n return [\r\n ...acc,\r\n elsaProp,\r\n ]\r\n }, [])\r\n const activityTypeMap = {\r\n IfElse: 'If',\r\n }\r\n return {\r\n ...activity,\r\n name,\r\n type: activityTypeMap[activity?.type] || activity?.type,\r\n activityId: id,\r\n displayName: title || name || activity?.type,\r\n description: raw?.nodeDescription,\r\n left: position?.x,\r\n top: position?.y,\r\n state: validateAssignee(raw),\r\n properties,\r\n persistWorkflow: false,\r\n loadWorkflowContext: false,\r\n saveWorkflowContext: false,\r\n }\r\n })\r\n const connections = elements.filter(el => el.source && el.target).map(conn => {\r\n const { sourceHandle, source, target, ...state } = conn\r\n return {\r\n state,\r\n outcome: sourceHandle || 'Done',\r\n sourceActivityId: source,\r\n targetActivityId: target,\r\n }\r\n })\r\n return {\r\n draft: {\r\n activities,\r\n connections,\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n formPayload,\r\n listKeyValuePayload,\r\n dataTablePayload,\r\n remoteLookupPayload,\r\n lookupPayload,\r\n syncWorkflowItems,\r\n workflowPayload,\r\n}\r\n","import {STATUS_COMPLETED, STATUS_DRAFT, STATUS_IN_PROGRESS, STATUS_FAULTED, STATUS_STARTING} from \"@constants/datatable\";\r\nimport { isJsonString } from \"@utils/json\";\r\nimport { DEFAULT_COLUMNS_COUNT } from \"../../app/constants/datatable\";\r\nimport { onConvertToJson } from \"../requestData\";\r\n\r\nexport const fieldsToColumn = (fields = [], data = [], isDraft = false) => {\r\n const excludedColumns = ['richtext']\r\n return [{\r\n dataField: 'entry-module',\r\n hidden: true,\r\n }, \r\n // there needs to be at least 1 column defined for the datatable\r\n ...isDraft\r\n ? [{\r\n dataField: 'workflow_status',\r\n text: 'Status',\r\n hidden: false,\r\n }]\r\n : [{\r\n dataField: 'workflow_status',\r\n text: 'Status',\r\n hidden: false,\r\n editorType: 'workflow-item-status',\r\n }, {\r\n dataField: 'tasks',\r\n void: true,\r\n text: '',\r\n classes: 'text-center w-60px',\r\n headerClassNames: 'w-60px',\r\n editorType: 'workflow-item-tasks',\r\n }, {\r\n dataField: 'workflow_activity_name',\r\n text: 'Process Step',\r\n hidden: false,\r\n editorType: 'text',\r\n }, {\r\n dataField: 'workflow_started_on',\r\n text: 'Process Started on',\r\n hidden: false,\r\n editorType: 'datetime',\r\n }, {\r\n dataField: 'workflow_initiator_user',\r\n text: 'Process Initiator',\r\n hidden: false,\r\n editorType: 'text',\r\n }, {\r\n dataField: 'workflow_initiator_email',\r\n text: 'Initiator Email',\r\n hidden: false,\r\n editorType: 'text',\r\n }, {\r\n dataField: 'workflow_completed_on',\r\n text: 'Process Completed on',\r\n hidden: false,\r\n editorType: 'datetime',\r\n }],\r\n ...(fields\r\n .map((field, index) => {\r\n let fieldColumns = null\r\n try {\r\n const dataColumns = data?.[0]?.[`${field.id}_columns`]\r\n if (isJsonString(dataColumns)) {\r\n fieldColumns = {\r\n columns: JSON.parse(dataColumns),\r\n }\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n return {\r\n dataField: field.id,\r\n editorType: field.fieldType,\r\n text: field.fieldName,\r\n icon: field.icon,\r\n hidden: index > DEFAULT_COLUMNS_COUNT,\r\n config: field,\r\n ...fieldColumns\r\n ? fieldColumns\r\n : {}\r\n }\r\n })\r\n .filter(field => !excludedColumns.includes(field.editorType))\r\n )\r\n ]\r\n}\r\n\r\nexport const dataToColumn = () => {\r\n return [{\r\n dataField: 'entry-module',\r\n hidden: true,\r\n }, \r\n {\r\n dataField: 'display_name',\r\n text: 'App Name',\r\n hidden: false,\r\n }, {\r\n dataField: 'activity_title',\r\n text: 'Process Step',\r\n hidden: false,\r\n }, {\r\n dataField: 'task_type',\r\n text: 'Task Type',\r\n hidden: false,\r\n }, {\r\n dataField: 'assigned_from_user',\r\n text: 'Task Source',\r\n hidden: false,\r\n }, {\r\n dataField: 'record_started_by',\r\n text: 'Started by',\r\n hidden: false,\r\n }, {\r\n dataField: 'started_on',\r\n text: 'Started at',\r\n editorType: 'datetime',\r\n hidden: false,\r\n }, {\r\n dataField: 'workflow_status',\r\n text: 'Status',\r\n hidden: true,\r\n editorType: 'workflow-item-status',\r\n }, {\r\n dataField: 'workflow_started_on',\r\n text: 'Process Started on',\r\n hidden: true,\r\n editorType: 'datetime',\r\n }, {\r\n dataField: 'workflow_initiator_user',\r\n text: 'Process Initiator',\r\n hidden: true,\r\n editorType: 'text',\r\n }, {\r\n dataField: 'workflow_initiator_email',\r\n text: 'Initiator Email',\r\n hidden: true,\r\n editorType: 'text',\r\n }, {\r\n dataField: 'workflow_completed_on',\r\n text: 'Process Completed on',\r\n hidden: true,\r\n editorType: 'datetime',\r\n }]\r\n}\r\n\r\nexport const defaultDraftColumn = () => {\r\n return [{\r\n dataField: 'entry-module',\r\n hidden: true,\r\n }, {\r\n dataField: 'workflow_status',\r\n text: 'Status',\r\n editorType: 'workflow-item-status',\r\n hidden: false,\r\n }]\r\n}\r\n\r\nexport const defaultOtherColumn = () => {\r\n return [{\r\n dataField: 'entry-module',\r\n hidden: true,\r\n }, {\r\n dataField: 'workflow_status',\r\n text: 'Status',\r\n hidden: false,\r\n editorType: 'workflow-item-status',\r\n }, {\r\n dataField: 'tasks',\r\n void: true,\r\n text: '',\r\n classes: 'text-center w-60px',\r\n headerClassNames: 'w-60px',\r\n editorType: 'workflow-item-tasks',\r\n }, {\r\n dataField: 'workflow_activity_name',\r\n text: 'Process Step',\r\n hidden: false,\r\n editorType: 'text',\r\n }, {\r\n dataField: 'workflow_started_on',\r\n text: 'Process Started on',\r\n hidden: false,\r\n editorType: 'datetime',\r\n }, {\r\n dataField: 'workflow_initiator_user',\r\n text: 'Process Initiator',\r\n hidden: false,\r\n editorType: 'text',\r\n }, {\r\n dataField: 'workflow_initiator_email',\r\n text: 'Initiator Email',\r\n hidden: false,\r\n editorType: 'text',\r\n }, {\r\n dataField: 'workflow_completed_on',\r\n text: 'Process Completed on',\r\n hidden: false,\r\n editorType: 'datetime',\r\n }]\r\n}\r\n\r\nexport const ocrDocumentColumn = () => {\r\n return {\r\n id: \"_ocr_file_path\",\r\n dataField: \"_ocr_file_path\",\r\n fieldName: \"View Document\",\r\n editorType: \"file\",\r\n fieldType: \"file\",\r\n text: \"View Document\",\r\n label: \"View Document\",\r\n hidden: false\r\n }\r\n}\r\n\r\nexport const flowToElements = instances => {\r\n const { activities = [], connections = [] } = instances\r\n\r\n return activities.filter(act => {\r\n return act?.type && act?.type !== 'default'\r\n }).map(act => {\r\n const { state, left, top, displayName, ...activity } = act\r\n const { title, name } = state\r\n const activityTypeMap = {\r\n If: 'IfElse',\r\n }\r\n return {\r\n ...activity,\r\n type: activityTypeMap[activity?.type] || activity?.type,\r\n position: {\r\n x: left,\r\n y: top,\r\n },\r\n data: {\r\n label: displayName || name || title || act.type,\r\n raw: state,\r\n },\r\n }\r\n }).concat(connections.map(conn => {\r\n const { sourceActivityId, destinationActivityId, targetActivityId, outcome, state } = conn\r\n return {\r\n ...state,\r\n sourceHandle: outcome,\r\n source: sourceActivityId,\r\n target: targetActivityId || destinationActivityId,\r\n arrowHeadType: state.arrowHeadType || 'arrowclosed',\r\n }\r\n }))\r\n}\r\n\r\nexport const mapWorkflowHistory = workflow_history => {\r\n let assignmentWorkflow = workflow_history.filter((item)=>{\r\n return (item.activityType==='Assignment') || ['StartProcess','CompletedProcess'].includes(item.activityType)\r\n });\r\n return assignmentWorkflow.map((item)=>{\r\n let results = item.data?.Results?.[0] || item.data?.Results;\r\n let executeAssignment = item.data?.Assignee?.map((a)=>{ return a.approver_name});\r\n let performedBy = results?.author_name || '';\r\n let actionType = item.data?.ActionType || '';\r\n let message = results?.message;\r\n let resumeAssignment = item?.data?.ApprovalHistory?.assigned_to?.map(v => v.approver_name)\r\n let reassignAssignment = item.data?.ApprovalHistory?.reassigned_to?.map((a)=>{ return a.to.approver_name})\r\n const reassignStart = item.data?.ApprovalHistory?.reAssignedTo?.map((a)=>{ return a.to.approver_name})\r\n const approvedBy = item?.data?.ApprovalHistory?.current_approver?.approver_name\r\n return {\r\n ...item,\r\n initiatedBy: item.initiatedBy,\r\n executeAssignment: executeAssignment?.length ? executeAssignment.join(', '):'',\r\n resumeAssignment: resumeAssignment?.length ? resumeAssignment.join(', ') : '',\r\n outcome : item.data?.Outcomes?.[0] || '',\r\n variant: item.activityType==='StartProcess'?'start':item.activityType==='CompletedProcess'?'step':'goto',\r\n performedBy,\r\n message,\r\n approvedBy,\r\n actionType,\r\n reassignAssignment,\r\n reassignStart\r\n }; \r\n })\r\n}\r\nexport const mapRecordStatus = item => {\r\n let status\r\n switch (true) {\r\n case Boolean(item.workflow_status === STATUS_FAULTED):\r\n status = STATUS_FAULTED\r\n break\r\n case Boolean(item.workflow_completed_on):\r\n status = STATUS_COMPLETED\r\n break\r\n case Boolean(item.workflow_started_on) &&\r\n item.workflow_faulted_on === null &&\r\n item.workflow_completed_on === null:\r\n status = STATUS_IN_PROGRESS\r\n break\r\n case item.workflow_instance_id === null &&\r\n item.workflow_started_on === null:\r\n default:\r\n status = STATUS_DRAFT\r\n break\r\n }\r\n return {\r\n ...item,\r\n status,\r\n }\r\n}\r\n\r\nexport const mapRecordDisplayStatus = item => {\r\n const finalStatuses = [\r\n STATUS_COMPLETED,\r\n STATUS_STARTING,\r\n ]\r\n return {\r\n ...item,\r\n status: `${item.status}${finalStatuses.includes(item.workflow_status) || !item.workflow_status ? '' : ` - ${item.workflow_status}`}`,\r\n }\r\n}\r\n\r\nexport const elsaWorkflowToReactFlow = flow => {\r\n return {\r\n ...flow,\r\n activities: flow.activities.map(({activityId, ...act}) => ({\r\n ...act,\r\n id: act.id || activityId,\r\n type: act.type === 'Finish'? 'FinishDataconnector': act.type,\r\n })),\r\n connections: flow.connections.map(({targetActivityId, ...conn}) => ({\r\n ...conn,\r\n destinationActivityId: conn.destinationActivityId || targetActivityId,\r\n }))\r\n }\r\n}\r\n\r\nexport const xmlToJson = async response => {\r\n // onConvertToJson return stringified JSON object from the xml result\r\n // it is wrapped within a top level property.\r\n // this following line extract values from the object.\r\n try {\r\n const isXML = (response?.data || '').match(``)\r\n const [rawData] = isXML\r\n ? Object.values(\r\n JSON.parse(\r\n await onConvertToJson(response?.data)\r\n )\r\n )\r\n : response?.data\r\n return rawData\r\n } catch {}\r\n}\r\n\r\nexport const mapSidebarModules = (dataSidebar, search = false) => {\r\n const sidebar = []\r\n const filterSidebar = dataSidebar && Object.keys(dataSidebar).length && Object.keys(dataSidebar).filter((data) => data !== \"Favourites\")\r\n filterSidebar.map((item, key) => {\r\n const nameCategory = item;\r\n const dataKey = nameCategory + key;\r\n const dataMenu = !search ? dataSidebar?.[item] : (dataSidebar?.[item] || [])?.filter(search);\r\n const categoryId = () => {\r\n if (dataMenu?.length > 0 && dataMenu?.[0]?.application_module_category_id !== null) {\r\n return dataMenu?.[0]?.application_module_category_id\r\n }\r\n return dataKey\r\n }\r\n const categoryIcon = () => {\r\n if (dataMenu?.length > 0 && dataMenu?.[0]?.category_icon !== null) {\r\n return dataMenu?.[0]?.category_icon\r\n } else {\r\n if (nameCategory === \"Favourites\") {\r\n return \"navicon-Favourites\"\r\n }\r\n return \"fa-list-ul\"\r\n }\r\n }\r\n if (dataMenu.length > 0) {\r\n sidebar.push({\r\n name: nameCategory,\r\n icon: categoryIcon(),\r\n id: categoryId(),\r\n children: !search ? dataMenu : dataMenu.filter(search)\r\n })\r\n }\r\n })\r\n return sidebar\r\n}\r\nexport const mapSidebarMenuTrees = (dataSidebar, searchTerm) => {\r\n const sidebar = [];\r\n try{\r\n dataSidebar.forEach((item) => {\r\n const match = searchTerm ? item.text?.toLowerCase().includes(searchTerm.toLowerCase()) : true;\r\n const matchedChildren = match ? mapSidebarMenuTrees(item.children) : mapSidebarMenuTrees(item.children, searchTerm);\r\n if (item.type === \"Module\" && match) {\r\n sidebar.push(item);\r\n } else if (matchedChildren?.length) {\r\n sidebar.push({\r\n ...item,\r\n children: matchedChildren\r\n })\r\n }\r\n })\r\n } catch (e) { console.error(e.message) }\r\n return sidebar\r\n}\r\n\r\nexport default {\r\n fieldsToColumn,\r\n dataToColumn,\r\n flowToElements,\r\n mapRecordStatus,\r\n mapWorkflowHistory,\r\n elsaWorkflowToReactFlow,\r\n mapSidebarModules,\r\n mapSidebarMenuTrees\r\n}\r\n","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./util\";\r\n\r\n// Component Definition\r\nvar KTOffcanvas = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n attrCustom: ''\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('offcanvas')) {\r\n the = KTUtil.data(element).get('offcanvas');\r\n } else {\r\n // Reset offcanvas\r\n Plugin.init(options);\r\n\r\n // Build offcanvas\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('offcanvas', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n init: function(options) {\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n the.classBase = the.options.baseClass;\r\n the.attrCustom = the.options.attrCustom;\r\n the.classShown = the.classBase + '-on';\r\n the.classOverlay = the.classBase + '-overlay';\r\n the.target;\r\n\r\n the.state = KTUtil.hasClass(element, the.classShown) ? 'shown' : 'hidden';\r\n },\r\n\r\n build: function() {\r\n // offcanvas toggle\r\n if (the.options.toggleBy) {\r\n if (typeof the.options.toggleBy === 'string') {\r\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n } else if (the.options.toggleBy && the.options.toggleBy[0]) {\r\n if (the.options.toggleBy[0].target) {\r\n for (var i in the.options.toggleBy) {\r\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy[i].target), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n }\r\n } else {\r\n for (var i in the.options.toggleBy) {\r\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy[i]), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n }\r\n }\r\n\r\n } else if (the.options.toggleBy && the.options.toggleBy.target) {\r\n KTUtil.addEvent( KTUtil.getById(the.options.toggleBy.target), 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.toggle();\r\n });\r\n }\r\n }\r\n\r\n // offcanvas close\r\n var closeBy = KTUtil.getById(the.options.closeBy);\r\n if (closeBy) {\r\n KTUtil.addEvent(closeBy, 'click', function(e) {\r\n e.preventDefault();\r\n the.target = this;\r\n Plugin.hide();\r\n });\r\n }\r\n },\r\n\r\n isShown: function() {\r\n return (the.state == 'shown' ? true : false);\r\n },\r\n\r\n toggle: function() {;\r\n Plugin.eventTrigger('toggle');\r\n\r\n if (the.state == 'shown') {\r\n Plugin.hide();\r\n } else {\r\n Plugin.show();\r\n }\r\n },\r\n\r\n show: function() {\r\n if (the.state == 'shown') {\r\n return;\r\n }\r\n\r\n Plugin.eventTrigger('beforeShow');\r\n\r\n Plugin.toggleClass('show');\r\n\r\n // Offcanvas panel\r\n KTUtil.attr(body, 'data-offcanvas-' + the.classBase, 'on');\r\n KTUtil.addClass(element, the.classShown);\r\n\r\n if (the.attrCustom.length > 0) {\r\n KTUtil.attr(body, 'data-offcanvas-' + the.classCustom, 'on');\r\n //KTUtil.addClass(body, the.classCustom);\r\n }\r\n\r\n the.state = 'shown';\r\n\r\n if (the.options.overlay) {\r\n the.overlay = KTUtil.insertAfter(document.createElement('DIV') , element );\r\n KTUtil.addClass(the.overlay, the.classOverlay);\r\n\r\n KTUtil.addEvent(the.overlay, 'click', function(e) {\r\n //e.stopPropagation();\r\n e.preventDefault();\r\n Plugin.hide(the.target);\r\n });\r\n }\r\n\r\n Plugin.eventTrigger('afterShow');\r\n },\r\n\r\n hide: function() {\r\n if (the.state == 'hidden') {\r\n return;\r\n }\r\n\r\n Plugin.eventTrigger('beforeHide');\r\n\r\n Plugin.toggleClass('hide');\r\n\r\n KTUtil.removeAttr(body, 'data-offcanvas-' + the.classBase);\r\n KTUtil.removeClass(element, the.classShown);\r\n\r\n if (the.attrCustom.length > 0) {\r\n KTUtil.removeAttr(body, 'data-offcanvas-' + the.attrCustom);\r\n }\r\n\r\n the.state = 'hidden';\r\n\r\n if (the.options.overlay && the.overlay) {\r\n KTUtil.remove(the.overlay);\r\n }\r\n\r\n Plugin.eventTrigger('afterHide');\r\n },\r\n\r\n toggleClass: function(mode) {\r\n var id = KTUtil.attr(the.target, 'id');\r\n var toggleBy;\r\n\r\n if (the.options.toggleBy && the.options.toggleBy[0] && the.options.toggleBy[0].target) {\r\n for (var i in the.options.toggleBy) {\r\n if (the.options.toggleBy[i].target === id) {\r\n toggleBy = the.options.toggleBy[i];\r\n }\r\n }\r\n } else if (the.options.toggleBy && the.options.toggleBy.target) {\r\n toggleBy = the.options.toggleBy;\r\n }\r\n\r\n if (toggleBy) {\r\n var el = KTUtil.getById(toggleBy.target);\r\n\r\n if (mode === 'show') {\r\n KTUtil.addClass(el, toggleBy.state);\r\n }\r\n\r\n if (mode === 'hide') {\r\n KTUtil.removeClass(el, toggleBy.state);\r\n }\r\n }\r\n },\r\n\r\n eventTrigger: function(name, args) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the, args);\r\n }\r\n } else {\r\n return event.handler.call(this, the, args);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n * @param options\r\n */\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Check if canvas is shown\r\n * @returns {boolean}\r\n */\r\n the.isShown = function() {\r\n return Plugin.isShown();\r\n };\r\n\r\n /**\r\n * Set to hide the canvas\r\n */\r\n the.hide = function() {\r\n return Plugin.hide();\r\n };\r\n\r\n /**\r\n * Set to show the canvas\r\n */\r\n the.show = function() {\r\n return Plugin.show();\r\n };\r\n\r\n /**\r\n * Attach event\r\n * @param name\r\n * @param handler\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n * @param name\r\n * @param handler\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTOffcanvas;\r\n}\r\n\r\nexport default KTOffcanvas;","const initialState = {\r\n fields: [],\r\n lastHistory: {\r\n tab: 'Tasks',\r\n moduleId: '',\r\n page: 1,\r\n size: null\r\n },\r\n permissibleList: [],\r\n permissibleListCategoryOptions: [],\r\n permissibleListItems: {},\r\n permissibleListCategories: {},\r\n formPreview: {},\r\n formDetails: {},\r\n formFields: {},\r\n tableFields: {},\r\n formList: [],\r\n loading: {},\r\n moduleItems: {},\r\n moduleTasks: {},\r\n moduleLookup: [],\r\n columnLookup: [],\r\n moduleCategories: [],\r\n dataConnectorDetails: {},\r\n mlProviders: [],\r\n mlServices: [],\r\n aiServices: []\r\n}\r\n\r\nconst formEditorReducer = (state = initialState, action) => {\r\n const { formId, formState, formDetails, formFields, tableFields, moduleItems, moduleTasks } = action.payload || {}\r\n switch (action.type) {\r\n case 'SET_LAST_HISTORY':\r\n return {\r\n ...state,\r\n lastHistory: action.payload\r\n }\r\n case 'SET_FIELDS':\r\n const rawFields = action.payload\r\n let uniqueRawFields = [];\r\n for(let field of rawFields){\r\n if(!uniqueRawFields.find((item)=> item.fid === field.fid)){\r\n uniqueRawFields.push(field);\r\n }\r\n }\r\n return {\r\n ...state,\r\n fields: uniqueRawFields\r\n }\r\n case 'SET_PERMISSIBLE_LIST':\r\n return {\r\n ...state,\r\n permissibleList: action.payload\r\n }\r\n case 'ADD_PERMISSIBLE_LIST':\r\n return {\r\n ...state,\r\n permissibleList: [\r\n ...state.permissibleList,\r\n action.payload\r\n ]\r\n }\r\n case 'SET_PERMISSIBLE_LIST_CATEGORY_OPTIONS':\r\n return {\r\n ...state,\r\n permissibleListCategoryOptions: action.payload\r\n }\r\n case 'ADD_PERMISSIBLE_LIST_CATEGORY_OPTIONS':\r\n return {\r\n ...state,\r\n permissibleListCategoryOptions: [\r\n ...state.permissibleListCategoryOptions,\r\n action.payload\r\n ]\r\n }\r\n case 'SET_PERMISSIBLE_LIST_ITEMS':\r\n return {\r\n ...state,\r\n permissibleListItems: {\r\n ...state.permissibleListItems,\r\n [action.payload.listId]: action.payload.items\r\n }\r\n }\r\n case 'SET_PERMISSIBLE_LIST_CATEGORIES':\r\n return {\r\n ...state,\r\n permissibleListCategories: {\r\n ...state.permissibleListCategories,\r\n [action.payload.listId]: action.payload.categories\r\n }\r\n }\r\n case 'SET_FORM_DETAILS':\r\n return {\r\n ...state,\r\n formDetails: {\r\n ...state.formDetails,\r\n [formId]: {\r\n ...(state.formDetails[formId] || {}),\r\n ...formDetails,\r\n }\r\n }\r\n }\r\n case 'SET_FORM_FIELDS':\r\n return {\r\n ...state,\r\n formFields: {\r\n ...state.formFields,\r\n [formId]: formFields,\r\n }\r\n }\r\n case 'SET_TABLE_FIELDS':\r\n return {\r\n ...state,\r\n tableFields: {\r\n ...state.tableFields,\r\n [formId]: tableFields,\r\n }\r\n }\r\n case 'SET_PREVIEW_FORM':\r\n return {\r\n ...state,\r\n formPreview: {\r\n ...state.formPreview,\r\n [formId]: {\r\n ...(state.formPreview[formId] || {}),\r\n ...formState\r\n }\r\n }\r\n }\r\n case 'SET_MODULE_ITEMS':\r\n return {\r\n ...state,\r\n moduleItems: {\r\n ...state.moduleItems,\r\n [formId]: moduleItems,\r\n }\r\n }\r\n case 'SET_MODULE_TASKS':\r\n return {\r\n ...state,\r\n moduleTasks: {\r\n ...state.moduleTasks,\r\n [formId]: moduleTasks,\r\n }\r\n }\r\n case 'SET_FORM_LIST':\r\n return {\r\n ...state,\r\n formList: action.payload,\r\n }\r\n case 'DELETE_FORM_LIST_ITEM':\r\n const forms = [...state.formList]\r\n const deleteIndex = forms.findIndex(form => form.id === formId)\r\n forms.splice(deleteIndex, 1)\r\n return {\r\n ...state,\r\n formList: forms,\r\n }\r\n case 'SET_MODULE_LOOKUP':\r\n return {\r\n ...state,\r\n moduleLookup: action.payload,\r\n }\r\n case 'SET_COLUMN_LOOKUP':\r\n return {\r\n ...state,\r\n columnLookup: action.payload,\r\n }\r\n case 'SET_MODULE_CATEGORIES':\r\n return {\r\n ...state,\r\n moduleCategories: action.payload,\r\n }\r\n case 'SET_ML_PROVIDERS':\r\n return {\r\n ...state,\r\n mlProviders: action.payload,\r\n }\r\n case 'SET_ML_SERVICES':\r\n return {\r\n ...state,\r\n mlServices: action.payload,\r\n }\r\n case 'SET_AI_SERVICES':\r\n return {\r\n ...state,\r\n aiServices: action.payload,\r\n }\r\n case 'SET_LOADING':\r\n return {\r\n ...state,\r\n loading: {\r\n ...state.loading,\r\n [action.payload.key]: action.payload.status,\r\n }\r\n }\r\n case 'SET_FAVOURITE_MODULE':\r\n return {\r\n ...state,\r\n moduleFavourite: action.payload\r\n }\r\n case 'SET_APPLICATIONS_MODULE':\r\n return {\r\n ...state,\r\n moduleList: action.payload\r\n }\r\n case 'SET_TASKS_COUNT':\r\n return {\r\n ...state,\r\n tasksCount: action.payload\r\n }\r\n case 'SET_QUICK_APP_MODULE':\r\n return {\r\n ...state,\r\n quickApp: action.payload\r\n }\r\n case 'SET_DATA_CONNECTOR_DETAILS':\r\n return {\r\n ...state,\r\n dataConnectorDetails: {\r\n ...state.dataConnectorDetails,\r\n [action.payload.id]: action.payload.details,\r\n }\r\n }\r\n default:\r\n return { ...state }\r\n }\r\n}\r\n\r\nexport default formEditorReducer","const initialState = {\r\n loading: {},\r\n workflow: {},\r\n editWorkflow: null,\r\n permissibleFields: [],\r\n workflowSchemas: {},\r\n activities: [],\r\n connections: [],\r\n sourceActivityId: null,\r\n workflowInstanceDetails: {},\r\n assignee: [],\r\n}\r\n\r\nconst workflowReducer = (state = initialState, action) => {\r\n const { key, status, moduleId, workflowId, schema, details } = action.payload || {}\r\n\r\n switch (action.type) {\r\n case 'SET_LOADING':\r\n return {\r\n ...state,\r\n loading: {\r\n ...state.loading,\r\n [key]: status,\r\n }\r\n }\r\n case 'SET_WORKFLOW':\r\n return {\r\n ...state,\r\n workflow: action.payload,\r\n }\r\n case 'SET_ACTIVITIES':\r\n return {\r\n ...state,\r\n activities: action.payload,\r\n }\r\n case 'SET_CONNECTIONS':\r\n return {\r\n ...state,\r\n connections: action.payload,\r\n }\r\n case 'SET_EDIT_WORKFLOW':\r\n return {\r\n ...state,\r\n editWorkflow: action.payload,\r\n }\r\n case 'SET_PERMISSIBLE_FIELDS':\r\n return {\r\n ...state,\r\n permissibleFields: action.payload,\r\n }\r\n case 'SET_WORKFLOW_SCHEMA':\r\n return {\r\n ...state,\r\n workflowSchemas: {\r\n ...state.workflowSchemas,\r\n [moduleId]: schema,\r\n },\r\n }\r\n case 'SET_SOURCE_ACTIVITY_ID':\r\n return {\r\n ...state,\r\n sourceActivityId: action.payload,\r\n }\r\n case 'SET_WORKFLOW_INSTANCE_DETAILS':\r\n return {\r\n ...state,\r\n workflowInstanceDetails: {\r\n ...state.workflowInstanceDetails,\r\n [workflowId]: details,\r\n },\r\n }\r\n case 'SET_ASSIGNEE':\r\n return {\r\n ...state,\r\n assignee: action.payload,\r\n }\r\n default:\r\n return { ...state }\r\n }\r\n}\r\n\r\nexport default workflowReducer","const initialState = {\r\n loading: {},\r\n options: {},\r\n govHeaders: null,\r\n userInfo: {}\r\n}\r\n\r\nconst optionsReducer = (state = initialState, action) => {\r\n const { key, status, optionKey, optionList } = action.payload || {}\r\n\r\n switch (action.type) {\r\n case 'SET_LOADING':\r\n return {\r\n ...state,\r\n loading: {\r\n ...state.loading,\r\n [key]: status,\r\n }\r\n }\r\n case 'SET_OPTIONS':\r\n return {\r\n ...state,\r\n options: {\r\n ...state.options,\r\n [optionKey]: optionList,\r\n }\r\n }\r\n case 'SET_GOV_HEADERS':\r\n return {\r\n ...state,\r\n govHeaders: action.payload,\r\n }\r\n case 'SET_USER_INFO':\r\n return {\r\n ...state,\r\n userInfo: action.payload,\r\n }\r\n default:\r\n return { ...state }\r\n }\r\n}\r\n\r\nexport default optionsReducer","\r\nconst initialState = {\r\n time_zone: null,\r\n date_format: 'YYYY-MM-DD',\r\n datetime_format: 'YYYY-MM-DD HH:mm:ss',\r\n time_format: 'HH:mm:ss'\r\n}\r\n\r\nconst timezoneReducer = (state = initialState, action) => {\r\n const {date_format, time_zone} = action.payload || {};\r\n switch (action.type) {\r\n case 'SET_TIME_ZONE':\r\n const timeZone = time_zone ?? state.time_zone;\r\n const dateFormat = date_format ?? state.date_format;\r\n\r\n localStorage.setItem('fsa-time-zone', JSON.stringify({\r\n ...state,\r\n time_zone: timeZone,\r\n date_format: dateFormat,\r\n datetime_format: dateFormat + ' HH:mm:ss',\r\n time_format: 'HH:mm:ss' \r\n }))\r\n return {\r\n ...state,\r\n time_zone: timeZone,\r\n date_format: dateFormat,\r\n datetime_format: dateFormat + ' HH:mm:ss',\r\n time_format: 'HH:mm:ss' \r\n }\r\n default:\r\n localStorage.setItem('fsa-time-zone', JSON.stringify({\r\n ...state \r\n }))\r\n return { ...state }\r\n }\r\n}\r\n\r\nexport default timezoneReducer","\r\nconst initialState = {\r\n preference: {}\r\n}\r\n\r\nconst organizationReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case 'SET_ORGANIZATION_PREFERENCE':\r\n const preference = action.payload ?? preference; \r\n return {\r\n ...state,\r\n preference: preference\r\n }\r\n default:\r\n return { ...state }\r\n }\r\n}\r\n\r\nexport default organizationReducer","import { all } from \"redux-saga/effects\";\r\nimport { combineReducers } from \"redux\";\r\nimport * as auth from \"../app/modules/Auth/_redux/authRedux\";\r\nimport { appMenuSlice } from \"../app/modules/ApplicationMenu/_redux/applicationMenuSlice\";\r\nimport formEditorReducer from \"./reducers/formEditorReducer\";\r\nimport workflowReducer from \"./reducers/workflowReducer\";\r\nimport optionsReducer from \"./reducers/optionsReducer\";\r\nimport timezoneReducer from \"./reducers/timezoneReducer\";\r\nimport organizationReducer from \"./reducers/organizationReducer\";\r\n\r\nexport const rootReducer = combineReducers({\r\n auth: auth.reducer,\r\n applicationMenu: appMenuSlice.reducer,\r\n formEditorReducer,\r\n workflowReducer,\r\n optionsReducer,\r\n timezoneReducer,\r\n organization: organizationReducer\r\n});\r\n\r\nexport function* rootSaga() {\r\n yield all([auth.saga()]);\r\n}\r\n","import { configureStore, getDefaultMiddleware } from \"@reduxjs/toolkit\";\r\nimport createSagaMiddleware from \"redux-saga\";\r\nimport { reduxBatch } from \"@manaflair/redux-batch\";\r\nimport { persistStore } from \"redux-persist\";\r\nimport { rootReducer, rootSaga } from \"./rootReducer\";\r\n\r\nconst sagaMiddleware = createSagaMiddleware();\r\nconst middleware = [\r\n ...getDefaultMiddleware({\r\n immutableCheck: false,\r\n serializableCheck: false,\r\n thunk: true\r\n }),\r\n sagaMiddleware\r\n];\r\n\r\nconst store = configureStore({\r\n reducer: rootReducer,\r\n middleware,\r\n devTools: process.env.NODE_ENV !== \"production\",\r\n enhancers: [reduxBatch]\r\n});\r\n\r\n/**\r\n * @see https://github.com/rt2zz/redux-persist#persiststorestore-config-callback\r\n * @see https://github.com/rt2zz/redux-persist#persistor-object\r\n */\r\nexport const persistor = persistStore(store);\r\n\r\nsagaMiddleware.run(rootSaga);\r\n\r\nexport default store;\r\n","export const VISIBLE = 0;\r\nexport const EDITABLE = 1;\r\nexport const READONLY = 2;\r\nexport const HIDDEN = 3;","import store from \"./store\";\r\nimport { actions } from \"../app/modules/Auth/_redux/authRedux\";\r\nimport message from \"../utils/message\";\r\n\r\nexport const requestRejectInterceptor = err => Promise.reject(err)\r\nexport const requestInterceptor = store => config => {\r\n const {\r\n auth: { authToken }\r\n } = store.getState();\r\n\r\n if (authToken && config?.headers?.[config?.method]?.['Content-Type'] !== \"application/xml\") {\r\n config.headers.Authorization = `Bearer ${authToken}`;\r\n }\r\n\r\n if (process.env.REACT_APP_BASE_API_URL.match(/\\/DUMMY/) && !config.url.match(/\\/api/)) {\r\n config.url = `${config.url}.json`\r\n config.method = 'GET'\r\n }\r\n\r\n return config;\r\n}\r\nexport const responseRejectInterceptor = err => {\r\n if (err.response) {\r\n const { status } = err.response;\r\n if (status === 401) {\r\n store.dispatch(actions.logout())\r\n }\r\n if (status === 504) {\r\n message.error(\"Request timeout\")\r\n }\r\n }\r\n if (err.code === 'ECONNABORTED') {\r\n message.error(err.message)\r\n }\r\n}\r\nexport const responseInterceptor = response => response\r\n\r\nexport default function setupAxios(axios, store) {\r\n axios.interceptors.request.use(requestInterceptor(store));\r\n\r\n axios.interceptors.response.use(\r\n responseInterceptor,\r\n responseRejectInterceptor\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { useField } from \"formik\";\r\nimport Select from \"react-select\";\r\nimport { Switch, TreeSelect, Skeleton } from 'antd';\r\nimport Form from \"react-bootstrap/Form\";\r\n\r\nexport default function RenderField(prop){\r\n const [field, meta, helpers] = useField(prop);\r\n const { touched, error } = meta;\r\n const typeProp = prop.type === 'text' ? { type: 'text' } : { as: prop.type };\r\n const onSelect = selected => {\r\n let val = null;\r\n if(selected){\r\n if (prop.isMulti) {\r\n const selectedValues = selected.map(({ value }) => value);\r\n helpers.setValue(selectedValues);\r\n val = selectedValues;\r\n } else {\r\n helpers.setValue(selected.value)\r\n val = selected.value;\r\n }\r\n }else{\r\n helpers.setValue(null)\r\n }\r\n prop.onChange && prop.onChange(val);\r\n };\r\n const selectedValue = (prop.options || []).filter(({ value }) => {\r\n return (field.value || []).includes(value) || field.value === value\r\n });\r\n\r\n const onChecked = (checked) => {\r\n helpers.setValue(checked)\r\n }\r\n\r\n const renderInput = () => {\r\n const {isLoading, ...fieldProp} = prop;\r\n if (isLoading) return \r\n switch (prop.type) {\r\n case 'dropdown':\r\n return (\r\n \r\n )\r\n case 'treeselect' :\r\n return (\r\n \r\n )\r\n case 'switch':\r\n const { label, ...tempProp } = prop\r\n return (\r\n \r\n )\r\n default:\r\n return (\r\n \r\n )\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n {renderInput()}\r\n {(touched && error) && \r\n \r\n { error }\r\n \r\n }\r\n
\r\n
\r\n );\r\n}\r\n","import axios from 'axios';\r\nexport const APP_MENU_URL = \"/api/sys/permissions/menu\";\r\nexport const CATEGORY_URL = \"/api/form/Editor/category\";\r\n\r\nexport function getTree() {\r\n return axios.get(`${APP_MENU_URL}/sidebar/tree`);\r\n}\r\n\r\nexport function getMenu() {\r\n return axios.get(`${APP_MENU_URL}/sidebar`);\r\n}\r\n\r\nexport function orderIndex(param) {\r\n return axios.put(`${APP_MENU_URL}/sidebar/order`, param);\r\n}\r\n\r\nexport function saveMenu(menu) {\r\n return axios.post(`${CATEGORY_URL}/save`, menu);\r\n}\r\n\r\nexport function deleteMenu(id) {\r\n return axios.post(`${CATEGORY_URL}/${id}/delete`);\r\n}\r\n\r\nexport function getDetail(id) {\r\n return axios.get(`${CATEGORY_URL}/${id}/detail`);\r\n}\r\n\r\nexport function publish(id) {\r\n return axios.post(`${APP_MENU_URL}/Publish`, id);\r\n}","import * as appMenuService from \"../service/index.js\";\r\nimport { appMenuSlice, callTypes } from \"./applicationMenuSlice\";\r\nimport _message from \"@utils/message\";\r\nimport { FolderOutlined, FileOutlined } from '@ant-design/icons';\r\n\r\nconst { actions } = appMenuSlice;\r\nconst mapTreeNodes = (nodes, isMenu) =>{\r\n return nodes.map((v) => {\r\n return {\r\n ...v,\r\n title : v.text,\r\n name : v.text,\r\n key : v.id,\r\n icon: isMenu ? v.icon : v.type !== \"Module\"? : ,\r\n categoryIcon : v.icon,\r\n description : v.description,\r\n children: mapTreeNodes(v.children, isMenu)\r\n }});\r\n}\r\nexport const fetchTrees = () => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return appMenuService\r\n .getTree()\r\n .then(({ data }) => {\r\n dispatch(actions.treesFetched({ data:mapTreeNodes(data) }));\r\n })\r\n .catch((error) => {\r\n dispatch(actions.onSnackbarOpen({ message: error.message, type: \"error\" }));\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const fetchMenus = () => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.menu }));\r\n return appMenuService\r\n .getMenu()\r\n .then(({ status, data }) => {\r\n switch (status) {\r\n case 200:\r\n dispatch(actions.menusFetched({ data:mapTreeNodes(data, 'menu') }));\r\n break;\r\n case 401:\r\n let error = \"401: Unauthorized\";\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n break;\r\n default:\r\n break;\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(actions.onSnackbarOpen({ message: error.message, type: \"error\" }));\r\n dispatch(actions.catchError({ error, callType: callTypes.menu }));\r\n });\r\n};\r\n\r\nexport const controlMenu = path => dispatch => {\r\n dispatch(actions.controlMenu({ path }));\r\n}\r\n\r\nexport const unControlMenu = () => dispatch => {\r\n dispatch(actions.unControlMenu());\r\n}\r\n\r\nexport const fetchDetail = id => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return appMenuService\r\n .getDetail(id)\r\n .then(({ data }) => {\r\n if (data.success) {\r\n const { data: detail } = data;\r\n dispatch(actions.detailFetched({\r\n data: detail\r\n }));\r\n } else {\r\n const error = data.message;\r\n dispatch(actions.onSnackbarOpen({ message: `ERROR: ${error}` ?? \"Unexpected error\", type: 'error' }));\r\n }\r\n })\r\n .catch((error) => {\r\n error.clientMessage = \"Can't load data\";\r\n dispatch(actions.onSnackbarOpen({ message: `ERROR: ${error.message}` ?? \"Unexpected error\", type: 'error' }));\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n}\r\n\r\nexport const deleteMenu = id => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return appMenuService\r\n .deleteMenu(id)\r\n .then(response => {\r\n const { success, message } = response?.data;\r\n if (success) {\r\n _message.success(message ?? \"Group has been deleted\");\r\n } else {\r\n _message.error(message ?? \"Failed to delete group\");\r\n }\r\n dispatch(actions.clearState());\r\n })\r\n .catch(error => {\r\n _message.error(error.message ?? \"Failed to delete group\");\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n}\r\n\r\nexport const orderIndex = data => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return appMenuService\r\n .orderIndex(data)\r\n .then(response => {\r\n const { success, message } = response?.data;\r\n if (!success) {\r\n _message.error(message ?? \"Failed to order App Group\");\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n } else {\r\n _message.success(message ?? \"App group order saved\");\r\n dispatch(fetchTrees());\r\n dispatch(fetchMenus());\r\n }\r\n })\r\n .catch(error => {\r\n error.clientMessage = \"Can't order index\";\r\n dispatch(actions.onSnackbarOpen({ message: `ERROR: ${error.message}`, type: 'error' }));\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const saveMenu = menu => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.action }));\r\n return appMenuService\r\n .saveMenu(menu)\r\n .then(response => {\r\n const { success, message } = response?.data;\r\n if (!success) {\r\n _message.error(message ?? \"Failed to save group\");\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n } else {\r\n _message.success(message ?? \"Group has been saved\");\r\n dispatch(fetchTrees());\r\n dispatch(fetchMenus());\r\n }\r\n dispatch(actions.clearState());\r\n })\r\n .catch(error => {\r\n _message.error(message ?? \"Failed to save group\");\r\n dispatch(actions.catchError({ error, callType: callTypes.action }));\r\n });\r\n};\r\n\r\nexport const onSnackbarClose = () => dispatch => {\r\n dispatch(actions.onSnackbarClose());\r\n return;\r\n}\r\n\r\nexport const clear = () => dispatch => {\r\n dispatch(actions.clearState());\r\n return;\r\n}","import cls from 'classnames';\r\nimport { isJsonString } from '@utils/json';\r\n\r\n/** Check support native lazy loading image, iframe */\r\n// const SUPPORT_LOADING = 'loading' in HTMLImageElement.prototype;\r\n\r\n// https://medium.com/javascript-in-plain-english/you-must-understand-these-14-javasript-functions-1f4fa1c620e2\r\n/** FROM: Vue.js */\r\nfunction cached(fn){\r\n\tlet cache = Object.create(null);\r\n\treturn (function cachedFn(s){\r\n\t\tlet hit = cache[s];\r\n\t\treturn hit || (cache[s] = fn(s))\r\n\t})\r\n}\r\n\r\n/** Number format */\r\nexport const numberFormat = (lang = \"en-GB\", options = {}, value = 1) => new Intl.NumberFormat(lang, options).format(value);\r\n\r\n/** === Type checking === */\r\nfunction isStr(v){\r\n\treturn typeof v === 'string' || v instanceof String;\r\n}\r\nfunction isObj(v){\r\n\treturn v && typeof v === 'object' && v.constructor === Object;\r\n}\r\nfunction isFunc(v){\r\n\treturn v && typeof v === 'function';\r\n}\r\nfunction isBool(v){\r\n\treturn typeof v === \"boolean\";\r\n}\r\nfunction isNum(v){\r\n\treturn typeof v === \"number\" && !isNaN(v);\r\n}\r\n/** === END Type checking === */\r\n\r\n/** classnames return undefined if length < 1 for prevent react render class=\"\" */\r\nfunction Cx(){\r\n\treturn cls.apply(null, arguments) || undefined;\r\n}\r\n\r\n/** == dom function === */\r\nfunction domQ(q, dom = document){\r\n return dom.querySelector(q);\r\n}\r\nfunction domQall(q, dom = document){\r\n\treturn dom.querySelectorAll(q);\r\n}\r\n/** @USAGE:\r\n\tadd = setClass(element, \"btn active\");\r\n\tremove = setClass(element, \"btn active\", 'remove'); */\r\nfunction setClass(el, c, fn = \"add\"){\r\n let cls = c.split(\" \");\r\n el.classList[fn](...cls);\r\n}\r\nfunction hasClass(el, c){\r\n return el.classList.contains(c);\r\n}\r\nfunction toggleClass(el, c, cek){\r\n el.classList.toggle(c, cek);\r\n}\r\nfunction hasAttr(el, a) {\r\n\tif (el && a) return el.hasAttribute(a);\r\n\treturn false;\r\n}\r\nfunction getAttr(el, a){\r\n return el.getAttribute(a);\r\n}\r\n/**\r\n\t@el \t: DOM element / node\r\n\t@attr : valid attribute name & value (Object)\r\n*/\r\nfunction setAttr(el, attr){\r\n\tif(el){\r\n\t\tif(isObj(attr)){\r\n\t\t\tfor(let key in attr){\r\n\t\t\t\tel.setAttribute(key, attr[key]);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if(isStr(attr)) attr.split(\" \").forEach(v => el.removeAttribute(v));\r\n\t\telse console.warn('setAttr() : params 2 required Object to add / string to remove, To remove several attributes, separate the attribute names with a space.');\r\n\t}\r\n}\r\n/** === END dom function === */\r\n\r\n/** === Generate id === */\r\nfunction Qid(){\r\n \tfunction S4(){\r\n \treturn (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1)\r\n \t}\r\n \treturn 'fs-' + (S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4());\r\n}\r\n\r\n/** No Action */\r\nfunction preventQ(e){\r\n e.preventDefault();\r\n e.stopPropagation();\r\n}\r\n//function noop(){};\r\n/** END No Action */\r\n\r\n/** Bind multiple class component methods:\r\n\t* @param {this} context\r\n\t* @param {Array} functions\r\n\tconstructor(){\r\n\t\t...\r\n\t\tbindFuncs.call(this,['onClick','onModal']);\r\n\t} */\r\n//function bindFuncs(fns){\r\n//\tfns.forEach(f => (this[f] = this[f].bind(this)));\r\n//}\r\n\r\n/** FROM reactstrap utils */\r\nfunction omit(obj, omitKeys){\r\n let res = {};\r\n Object.keys(obj).forEach(k => {\r\n if(omitKeys.indexOf(k) === -1) res[k] = obj[k];\r\n });\r\n return res;\r\n}\r\n/** END reactstrap utils */\r\n\r\nfunction jsonParse(val, returnErr = {}){\r\n try{\r\n return isStr(val) ? JSON.parse(val) : returnErr;\r\n }catch(e){\r\n return returnErr;\r\n }\r\n}\r\n\r\nconst makeEl = t => document.createElement(t);\r\n\r\n/** String Function */\r\nfunction toCapital(s) {\r\n\treturn s[0].toUpperCase() + s.slice(1);\r\n}\r\n\r\n// Check mobile device:\r\nfunction isMobile(){\r\n return !!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n}\r\n\r\n// function isSupportLocaleDateString(date){\r\n // try {\r\n // date.toLocaleDateString('i');// new Date().toLocaleDateString('i');\r\n // }catch(e){\r\n // return e.name === 'RangeError';\r\n // }\r\n // return false;\r\n// }\r\n\r\n// function isValidLang(lang){\r\n// \tif(!window.Intl) return;\r\n// \ttry {\r\n// \t\tlet supportLocOf = Intl.DateTimeFormat.supportedLocalesOf(lang, {localeMatcher:'lookup'});// lookup | best fit\r\n// \t\tlet isOk = supportLocOf && Intl.getCanonicalLocales(lang) ? supportLocOf.length : false;\r\n// \t\treturn isOk;\r\n// \t}catch(e){\r\n// \t\tconsole.warn(e.message);// expected output: RangeError: invalid language tag: lang\r\n// \t}\r\n// }\r\n\r\n/** Check html tagName **/\r\n/* function isTag(t){ // tagCheck\r\n\t// let c = document.createElement(t),\r\n\t\t\t// b = c.toString() !== \"[object HTMLUnknownElement]\"\r\n // return {valid:b, el:c};\r\n\treturn document.createElement(t).toString() !== \"[object HTMLUnknownElement]\";\r\n} */\r\n\r\n//const newURL = (path = \"/\") => new URL(path, window.location.origin);\r\n\r\n// FROM https://github.com/chakra-ui/chakra-ui/blob/master/packages/chakra-ui/src/Avatar/index.js\r\nconst getInitials = (name, no = \"?\") => {\r\n\tif(!name || !isStr(name) || name === \" \" || name.length < 1) return no;\r\n\t// Destruct \r\n let [first, last] = name.split(\" \");\r\n\r\n if(first && last){\r\n return first[0] + last[0];\r\n }\r\n\treturn first[0];\r\n};\r\n\r\nconst obj2formData = (obj) => {\r\n\tlet fd = new FormData();\r\n\tfor(let key in obj){\r\n\t\tfd.append(key, obj[key]);\r\n\t}\r\n\treturn fd;\r\n}\r\n\r\nconst formikValidClass = (formik, field) => {\r\n\tlet touch = formik.touched[field];\r\n\tlet err = formik.errors[field];\r\n\tif (touch && err) {\r\n\t\treturn \" is-invalid\";\r\n\t}\r\n\tif (touch && !err) {\r\n\t\treturn \" is-valid\";\r\n\t}\r\n\treturn \"\";\r\n};\r\n\r\nconst getParam = (key) => new URLSearchParams(window.location.search).get(key);\r\n\r\nfunction getLocalISOString() {\r\n\t// Get local time as ISO string with offset at the end\r\n\tlet now = new Date();\r\n\tlet tzo = -now.getTimezoneOffset();\r\n\tlet dif = tzo >= 0 ? '+' : '-';\r\n\tlet pad = function(n, width) {\r\n\t\t\twidth = width || 2;\r\n\t\t\tn = Math.abs(Math.floor(n)) + '';\r\n\t\t\treturn n.length >= width ? n : new Array(width - n.length + 1).join('0') + n;\r\n\t};\r\n\treturn now.getFullYear() \r\n\t\t\t+ '-' + pad(now.getMonth()+1)\r\n\t\t\t+ '-' + pad(now.getDate())\r\n\t\t\t+ 'T' + pad(now.getHours())\r\n\t\t\t+ ':' + pad(now.getMinutes()) \r\n\t\t\t+ ':' + pad(now.getSeconds())\r\n\t\t\t+ '.' + pad(now.getMilliseconds(),3)\r\n\t\t\t+ dif + pad(tzo / 60) \r\n\t\t\t+ ':' + pad(tzo % 60);\r\n}\r\n\r\n// const unescapeHTML = str => str.replace(\r\n// \t/&|<|>|'|"/g,\r\n// \ttag => ({\r\n// \t\t\t'&': '&',\r\n// \t\t\t'<': '<',\r\n// \t\t\t'>': '>',\r\n// \t\t\t''': \"'\",\r\n// \t\t\t'"': '\"'\r\n// \t\t}[tag] || tag)\r\n// );\r\nconst unescapeHTML = str => str.replace(/&|'|"/g, tag => ({\r\n\t\t'&': '&',\r\n\t\t''': \"'\",\r\n\t\t'"': '\"'\r\n\t}[tag] || tag)\r\n);\r\n\r\nconst calcHeight = cached((h) => ({ height: `calc(100vh - ${h})` }));\r\n\r\nfunction moveCursorToEnd(el){\r\n\tif(el){\r\n\t\t// hack for no type=\"text\"\r\n\t\tlet type = el.type;\r\n\t\tlet notext = 0;\r\n\t\tif(type !== \"textarea\" && type !== \"text\"){\r\n\t\t\tel.type = \"text\";\r\n\t\t\tnotext = 1;\r\n\t\t}\r\n\r\n\t\tlet len = el.value?.length;\r\n\t\tif (el.setSelectionRange) {\r\n\t\t\tel.focus();\r\n\t\t\tel.setSelectionRange(len, len);\r\n\t\t} else if (el.createTextRange) {\r\n\t\t\tlet t = el.createTextRange();\r\n\t\t\tt.collapse(true);\r\n\t\t\tt.moveEnd('character', len);\r\n\t\t\tt.moveStart('character', len);\r\n\t\t\tt.select();\r\n\t\t}\r\n\r\n\t\tif(notext) el.type = type;\r\n\t}\r\n}\r\n\r\nfunction isEmpty(value) {\r\n\treturn (\r\n\t\tvalue === null || value === undefined || value === '' ||\r\n\t\t(Array.isArray(value) && value.length === 0) || \r\n\t\t(!(value instanceof Date) && typeof value === 'object' && Object.keys(value).length === 0)\r\n\t);\r\n}\r\n\r\nfunction getWidth(el) {\r\n\tif (el) {\r\n\t\tlet width = el.offsetWidth;\r\n\t\tlet style = getComputedStyle(el);\r\n\r\n\t\twidth -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight) + parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);\r\n\r\n\t\treturn width;\r\n\t}\r\n\treturn 0;\r\n}\r\n\r\nfunction getHeight(el) {\r\n\tif (el) {\r\n\t\tlet height = el.offsetHeight;\r\n\t\tlet style = getComputedStyle(el);\r\n\r\n\t\theight -= parseFloat(style.paddingTop) + parseFloat(style.paddingBottom) + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\r\n\r\n\t\treturn height;\r\n\t}\r\n\treturn 0;\r\n}\r\n\r\nfunction getOuterWidth(el, margin) {\r\n\tif (el) {\r\n\t\tlet width = el.offsetWidth || el.getBoundingClientRect().width;\r\n\r\n\t\tif (margin) {\r\n\t\t\tlet style = getComputedStyle(el);\r\n\t\t\twidth += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\r\n\t\t}\r\n\r\n\t\treturn width;\r\n\t}\r\n\treturn 0;\r\n}\r\n\r\nfunction getOuterHeight(el, margin) {\r\n\tif (el) {\r\n\t\tlet height = el.offsetHeight || el.getBoundingClientRect().height;\r\n\r\n\t\tif (margin) {\r\n\t\t\tlet style = getComputedStyle(el);\r\n\t\t\theight += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\r\n\t\t}\r\n\r\n\t\treturn height;\r\n\t}\r\n\treturn 0;\r\n}\r\nconst simplifyErrorMsg = (err) =>{ \r\n\tlet errMsg = err.sourceError?.message?.split(';')?.find(x=>x.includes('Error:'));\r\n\tif(errMsg) {\r\n\t errMsg = errMsg.replace('Error:',''); \r\n\t let tmp = errMsg.split(' '); \r\n\t return tmp.map(x=>{ \r\n\t\ttry{ \r\n\t\t x = x.toLowerCase().includes('finansys_app') ? '' : x ; \r\n\t\t return x.replaceAll('\"',''); \r\n\t\t}catch{ \r\n\t\t return x; \r\n\t\t} \r\n\t }).join(' ');\r\n\t} else{\r\n\t return \"Failed to process query.\"\r\n\t} \r\n }\r\n\r\nconst customEqCellRenderer = (value, column, cellElement, rowElement) => {\r\n\tvar strValue = value?.toLocaleString();\r\n\tvar objValue = isJsonString(value) ? JSON.parse(value) : null;\r\n\tif (objValue) {\r\n\t\tif (objValue.length) {\r\n\t\t\tstrValue = objValue.map((val) => {\r\n\t\t\t\tif (typeof val === \"object\") {\r\n\t\t\t\t\tif (val.type === \"User\") {\r\n\t\t\t\t\t\treturn val[\"fullname\"] || val[\"email_address\"];\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn val[Object.keys(val)[0]]?.toLocaleString();\r\n\t\t\t\t}\r\n\t\t\t\treturn val;\r\n\t\t\t}).join(', ');\r\n\t\t} else if (objValue.type === \"User\") {\r\n\t\t\tstrValue = objValue[\"fullname\"] || objValue[\"email_address\"];\r\n\t\t} \r\n\t\tstrValue = strValue ?? objValue[Object.keys(objValue)[0]]?.toLocaleString();\r\n\t}\r\n\tif(strValue?.startsWith('')){\r\n\t\tcellElement.innerHTML = strValue;\r\n\t}else{\r\n\t\tcellElement.innerText = strValue ?? '';\r\n\t}\r\n}\r\n\r\nfunction findDuplicates(array, insensitive = false) {\r\n\tconst data = insensitive ? array.map(item => item.toLowerCase()) : array\r\n\treturn [...new Set(data.filter(item => !!item && item !== '\"\"').filter((item, index) => data.indexOf(item) !== index))]\r\n}\r\n\r\n\r\nconst compareArrays = (arr1 = [], arr2 = []) => {\r\n\tlet diff = [];\r\n\ttry {\r\n\t\tif (arr1.length > 0 && arr2.length > 0) {\r\n\t\t\tarr1.forEach((element) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\t!arr2.some(\r\n\t\t\t\t\t(e) =>\r\n\t\t\t\t\t\tJSON.stringify(e.dataField) === JSON.stringify(element.dataField)\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\tdiff.push(element);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t\r\n\t\treturn diff;\r\n\t} catch (e) {\r\n\t\treturn diff\r\n\t}\r\n };\r\n\r\n const mergeColumns = (defaultData, secondayData) => {\r\n\tconst merged = defaultData.map(obj => {\r\n\t\tconst matchingObj = secondayData?.find(item => item.dataField === obj.dataField);\r\n\t\tif (matchingObj) {\r\n\t\t return { ...obj, hidden: matchingObj.hidden || false, text: obj.text };\r\n\t\t}\r\n\t\treturn obj;\r\n\t });\r\n\treturn merged\r\n } \r\n\r\n const mergeColumnsTable = (defaultData, secondayData) => {\r\n\tconst data = []\r\n\tsecondayData?.map(obj => {\r\n\t\tconst matchingObj = defaultData?.find(item => item.dataField === obj.dataField);\r\n\t\tif (matchingObj) {\r\n\t\t data.push({ ...matchingObj, hidden: obj.hidden, text: obj.text, columnWidth: obj.columnWidth });\r\n\t\t}\r\n\t});\r\n\treturn data\r\n\r\n } \r\n\r\n const mergeReferenceTable = (defaultColumns, configColumns) => {\r\n\tlet merged = [];\r\n\tlet unmerged = defaultColumns;\r\n\tconfigColumns?.map(obj => {\r\n\t\tconst foundIdx = unmerged?.findIndex(item => item.dataField === obj.dataField);\r\n\t\tif (foundIdx >= 0) {\r\n\t\t\tmerged.push({ \r\n\t\t\t\t...unmerged[foundIdx], \r\n\t\t\t\thidden: obj.hidden, \r\n\t\t\t\tcolumnWidth: obj.columnWidth \r\n\t\t\t});\r\n\t\t\tunmerged.splice(foundIdx, 1);\r\n\t\t}\r\n\t});\r\n\tmerged = merged.concat(unmerged);\r\n\treturn merged;\r\n }\r\n\r\n const mapGroupOptionsTree = (trees) =>{\r\n\treturn (trees || []).reduce((result,v) => {\r\n\t if(v.type === \"Module\" || !v.id || v.id === \"#\") return result;\r\n\t return [\r\n\t\t...result, {\r\n\t\t ...v,\r\n\t\t title: v.text,\r\n\t\t value: v.id,\r\n\t\t children: mapGroupOptionsTree(v.children)\r\n\t\t}];\r\n\t},[])\r\n }\r\nexport {\r\n\t// SUPPORT_LOADING, \r\n\tcached, \r\n\tisStr, isObj, isFunc, isBool, isNum, \r\n\tCx, domQ, domQall, setClass, toggleClass, hasClass, hasAttr, getAttr, setAttr, \r\n\tQid, \r\n\tpreventQ, \r\n\t// noop, \r\n\t// bindFuncs, \r\n\tomit, \r\n\tmakeEl, \r\n\t// newURL, \r\n\ttoCapital, \r\n\tgetInitials, \r\n\tobj2formData, \r\n\tformikValidClass, \r\n\tgetParam, \r\n\tgetLocalISOString, \r\n\tisMobile, \r\n\tunescapeHTML, \r\n\tcalcHeight, \r\n\tmoveCursorToEnd, \r\n\tjsonParse, \r\n\tisEmpty, \r\n\tgetWidth, \r\n\tgetHeight, \r\n\tgetOuterWidth, \r\n\tgetOuterHeight, \r\n\tsimplifyErrorMsg,\r\n\tcustomEqCellRenderer,\r\n\tfindDuplicates,\r\n\tcompareArrays,\r\n\tmergeColumns,\r\n\tmergeColumnsTable,\r\n\tmergeReferenceTable,\r\n\tmapGroupOptionsTree\r\n};\r\n\r\n","const DEFAULT_FIELDS = [\r\n // /* 0 */ {value:'defName', label:'Name',type:'text'},\r\n /* 1 */ {value:'defCreated_By', label:'Created By', type:'user'}, // change fieldtype for testing purpose\r\n /* 2 */ {value:'defModified_By', label:'Modified By', type:'user'},\r\n /* 3 */ {value:'defCreated_At', label:'Created At', type:'datetime'},\r\n /* 4 */ {value:'defModified_At', label:'Modified At', type:'datetime'},\r\n /* 5 */ {value:'defFlow_Name', label:'Flow Name', type:'text'},\r\n /* 6 */ {value:'defCompleted_At', label:'Completed At', type:'datetime'},\r\n // /* 7 */ {value:'defStatus', label:'Status', type:'text'},\r\n /* 8 */ {value:'defSubmitted_At', label:'Submitted At', type:'datetime'},\r\n // /* 9 */ {value:'defRequest_Number', label:'Request Number', type:'number'},\r\n // /* 10 */ {value:'defIs_Public_Form', label:'Is Public Form', type:'switch'},\r\n // /* 11 */ {value:'defCounter', label:'Counter', type:'number'},\r\n /* 12 */ {value:'defExpire_At', label:'Expire At', type:'datetime'},\r\n // /* -- */ {value:'defCurrent_User', label:'Current User', fieldType:'user'} <--- added from Visibility/index.js\r\n];\r\n\r\nconst CONDITIONS = {\r\n defFields: DEFAULT_FIELDS\r\n};\r\n\r\nexport const MAX_FILE_SIZE = 20;\r\nexport const SPECIAL_CHAR_REGEX = /(--)/;\r\n\r\nexport default CONDITIONS;","import moment from \"moment\"\r\n\r\nconst stringify = val => {\r\n try {\r\n switch (typeof val) {\r\n case 'boolean':\r\n case 'number':\r\n return String(val)\r\n case 'object':\r\n return JSON.stringify(val)\r\n default:\r\n return val\r\n }\r\n } catch(e) {\r\n console.error(e)\r\n }\r\n}\r\nconst zeroPrefix = (value, totalLength) =>{\r\n let result = value ? value.toString() : '';\r\n while(result.length < totalLength) {\r\n result = '0'+result;\r\n }\r\n return result;\r\n}\r\nconst parseTime = (hours, minutes, seconds) =>{\r\n let nSeconds = seconds === 60 ? 0 : seconds;\r\n let nMinutes = seconds === 60 ? minutes + 1 : minutes;\r\n let nHours = nMinutes === 60 ? hours + 1 : hours;\r\n return `${zeroPrefix(nHours,2)}:${zeroPrefix(nMinutes,2)}:${zeroPrefix(nSeconds,2)}`;\r\n}\r\n\r\nconst parseValue = (value = '', fieldType, hfInstance, timezone, isParsingPayload) => {\r\n if (['object', 'boolean'].includes(typeof value) && !Array.isArray(value) && fieldType !== 'calculation-text') {\r\n return value\r\n }\r\n if(fieldType === 'calculation-element'){\r\n return ![undefined, null].includes(value) ? stringify(value) : ''\r\n }\r\n let parsedValue = ![undefined, null].includes(value) ? String(value).replace(/^\"|\"$/g, ''): value\r\n const {date_format,datetime_format, toValidMoment} = timezone || {};\r\n switch (fieldType) {\r\n case 'number':\r\n case 'currency':\r\n case 'calculation-number':\r\n case 'calculation-currency':\r\n parsedValue = parsedValue ? Number(parsedValue) : 0\r\n break;\r\n case 'calculation-date':\r\n case 'calculation-date-time':\r\n let dateObj = null\r\n try {\r\n if (hfInstance && parsedValue) {\r\n const hfDate = hfInstance.numberToDateTime(\r\n Number(String(parsedValue))\r\n )\r\n if (\r\n !isNaN(hfDate?.year) &&\r\n !isNaN(hfDate?.month) &&\r\n !isNaN(hfDate?.day)\r\n ) {\r\n dateObj = hfDate\r\n }\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n // console.log('fieldType============',fieldType)\r\n const showTime = fieldType.includes(\"time\");\r\n const valueFormat = showTime ? datetime_format : date_format;\r\n const {year, month, day, hours, minutes, seconds} = dateObj || {}; \r\n const parsedTime = parseTime(hours, minutes, seconds);\r\n const dateTimeString = `${zeroPrefix(year,4)}-${zeroPrefix(month,2)}-${zeroPrefix(day,2)}`+ \r\n (showTime ? ` ${parsedTime}`:'');\r\n if (dateObj) {\r\n parsedValue = toValidMoment(dateTimeString).format(valueFormat)\r\n } else {\r\n if (parsedValue && parsedValue.match(/\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/)) { // match in example 2023-09-11T00:00:00 string date value\r\n const timezone = localStorage.getItem('fsa-time-zone') ? JSON.parse(localStorage.getItem('fsa-time-zone')) : { date_format: 'YYYY-MM-DD', datetime_format: 'YYYY-MM-DD HH:mm:ss' };\r\n const displayFormat = showTime ? timezone.datetime_format : timezone.date_format;\r\n parsedValue = moment(parsedValue).format(displayFormat);\r\n }else{\r\n parsedValue = parsedValue || ''\r\n }\r\n }\r\n break;\r\n case 'date':\r\n if(isParsingPayload){\r\n if(parsedValue && toValidMoment){\r\n parsedValue = toValidMoment(parsedValue).utc(true).toISOString();\r\n } else {\r\n parsedValue = ![undefined, null].includes(parsedValue) ? stringify(parsedValue) : ''\r\n }\r\n }\r\n break;\r\n default:\r\n parsedValue = ![undefined, null].includes(parsedValue) ? stringify(parsedValue) : ''\r\n break;\r\n }\r\n return parsedValue\r\n}\r\n\r\nexport default parseValue","import api, {client} from \"@api\";\r\n\r\nexport const setLoading = (key, status) => ({\r\n type: 'SET_LOADING',\r\n payload: {\r\n key,\r\n status,\r\n }\r\n})\r\n\r\nexport const initRequest = (dispatch = () => {}, fieldId = '', normalizer) => async (path, payload = {}, onSuccess, onComplete) => {\r\n let response = null;\r\n await dispatch(setLoading(`${path}${fieldId}`, true))\r\n try {\r\n const { method: requestMethod = '', data: requestData, params, contentType } = payload || {}\r\n let requestCall = () => api[path](payload)\r\n if (!api[path]) {\r\n const method = requestMethod.toLowerCase()\r\n if (contentType) {\r\n client.interceptors.request.use(config => {\r\n config.headers[method]['Content-Type'] = contentType;\r\n config.headers[method]['soapAction'] = 'http://systemsunion.com/connect/webservices/Authenticate';\r\n return config;\r\n });\r\n }\r\n requestCall = () => client.request({\r\n url: path,\r\n method: method,\r\n ...['post', 'put'].includes(method) && requestData\r\n ? { data: requestData }\r\n : {},\r\n ...method === 'get' && params\r\n ? { params }\r\n : {},\r\n })\r\n }\r\n const apiResponse = await requestCall();\r\n const { data } = apiResponse || {}\r\n response = data || {};\r\n onSuccess && onSuccess(data || {});\r\n } catch (e) {\r\n response = { success: false, message: e.message }\r\n console.error(e)\r\n } finally {\r\n dispatch(setLoading(`${path}${fieldId}`, false));\r\n onComplete && onComplete(response)\r\n }\r\n if (typeof normalizer === 'function') {\r\n const data = await normalizer(response)\r\n response = { data }\r\n }\r\n return response\r\n}\r\n\r\nexport default {\r\n setLoading,\r\n initRequest,\r\n}","import { cached } from './Q';\r\n// \r\n// https://codepen.io/andreaswik/pen/YjJqpK\r\nconst darkOrLight = cached(color => {\r\n\tlet r, g, b, hsp;\r\n // Check the format of the color, HEX or RGB?\r\n if(color.match(/^rgb/)){\r\n // If HEX --> store the red, green, blue values in separate variables\r\n color = color.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/);\r\n\r\n r = color[1];\r\n g = color[2];\r\n b = color[3];\r\n }else{\r\n // If RGB --> Convert it to HEX: http://gist.github.com/983661\r\n color = +(\"0x\" + color.slice(1).replace(color.length < 5 && /./g, '$&$&'));\r\n\r\n r = color >> 16;\r\n g = (color >> 8) & 255;\r\n b = color & 255;\r\n }\r\n // HSP (Highly Sensitive Poo) equation from http://alienryderflex.com/hsp.html\r\n hsp = Math.sqrt(\r\n 0.299 * (r * r) + \r\n 0.587 * (g * g) + \r\n 0.114 * (b * b)\r\n );\r\n\r\n // Using the HSP value, determine whether the color is light or dark\r\n if(hsp > 127.5) return 'light';\r\n return 'dark';\r\n});\r\n\r\nexport default darkOrLight;","import React from 'react';\r\n\r\nimport darkOrLight from '../../utils/darkOrLight';\r\nimport { isNum, Cx, hasClass, setClass, setAttr, getInitials } from '../../utils/Q';\r\n\r\n// FROM: chakra-ui\r\nfunction str2Hex(str, no = \"5a6268\") {\r\n\tif (!str || str.length < 1) return no;\r\n\r\n\tlet hash = 0,\r\n\t\t\tsl = str.length;\r\n\r\n\tfor (let i = 0; i < sl; i++) {\r\n\t\thash = str.charCodeAt(i) + ((hash << 5) - hash);\r\n\t\thash = hash & hash;\r\n\t}\r\n\r\n\tlet color = \"\";// #\r\n\tfor (let j = 0; j < 3; j++) {\r\n\t\tlet val = (hash >> (j * 8)) & 255;\r\n\t\tcolor += (\"00\" + val.toString(16)).substr(-2);\r\n\t}\r\n\treturn color;\r\n}\r\n\r\nexport default function Ava({\r\n\tw = 30,\r\n\th = 30, \r\n\talt = \" \",\r\n\tloading = \"lazy\",\r\n\tdrag = false,\r\n\tclassName, \r\n\tframeClass, \r\n\tframeProps, \r\n\tbg, // Define Error background-color\r\n\tlabelColor, // DEFINE text color\r\n\tcircle, \r\n\trounded, \r\n\tcontain,\r\n\tonError, \r\n\tonLoad, \r\n\tchildren, // OPTION\r\n\t...etc\r\n}){\r\n\tconst LOAD_CX = \"ant-skeleton-avatar\";\r\n\tconst removeLoader = (et) => setClass(et, LOAD_CX, \"remove\");\r\n\r\n\tconst Err = e => {\r\n\t\tlet et = e.target;\r\n\r\n\t\tremoveLoader(et);\r\n\r\n\t\tif (hasClass(et, \"text-dark\")) setClass(et, \"text-dark\", \"remove\");\r\n\t\tif (hasClass(et, \"text-white\")) setClass(et, \"text-white\", \"remove\");\r\n\r\n\t\tlet fs = '--fs:calc(';\r\n\t\tif (isNum(w)) {\r\n\t\t\tfs += w + \"px / 2.25);\";\r\n\t\t} else {\r\n\t\t\tlet num = parseFloat(w);\r\n\t\t\tlet unit = w.replace(\"\" + num, \"\");\r\n\t\t\tfs += num + unit + \" / 2.25);\";\r\n\t\t}\r\n\r\n\t\tlet trm = alt ? alt.trim() : \"N\";\r\n\t\tlet bgColor = bg ? bg.replace(\"#\", \"\") : str2Hex(trm);\r\n\r\n\t\tsetAttr(et, {\r\n\t\t\t\"aria-label\": getInitials(trm), \r\n\t\t\tstyle: fs + \"--bg:#\" + bgColor\r\n\t\t});\r\n\r\n\t\tsetClass(et, labelColor ? labelColor : darkOrLight(bgColor) === \"dark\" ? \"text-white\" : \"text-dark\");\r\n\r\n\t\tif (onError) onError(e);\r\n\r\n\t\t// DEV OPTION: Change src with svg\r\n\t\t// et.src = `data:image/svg+xml,%3Csvg width=\"100%25\" height=\"100%25\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMidYMid slice\"%3E%3Cstyle%3E%0Asvg%7Bfont-family:sans-serif;font-size:1rem;text-anchor:middle%7D%0A%3C/style%3E%3Crect width=\"100%25\" height=\"100%25\" fill=\"%2355595c\"%3E%3C/rect%3E%3Ctext x=\"50%25\" y=\"50%25\" fill=\"%23eceeef\" dy=\".35em\"%3E${getInitials(alt)}%3C/text%3E%3C/svg%3E`;\r\n\r\n\t\t// FROM MDN https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror = return null;\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst Load = e => {\r\n\t\tremoveLoader(e.target);\r\n\t\tif (onLoad) onLoad(e);\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\r\n\t\t\t{children}\r\n\t\t
\r\n\t);\r\n}\r\n","/* eslint-disable */\r\n\"use strict\";\r\n// DOCS: https://javascript.info/cookie\r\n\r\n// Component Definition \r\nexport var KTCookie = function() {\r\n return {\r\n // returns the cookie with the given name,\r\n // or undefined if not found\r\n getCookie: function(name) {\r\n var matches = document.cookie.match(new RegExp(\r\n \"(?:^|; )\" + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + \"=([^;]*)\"\r\n ));\r\n return matches ? decodeURIComponent(matches[1]) : undefined;\r\n },\r\n // Please note that a cookie value is encoded,\r\n // so getCookie uses a built-in decodeURIComponent function to decode it.\r\n setCookie: function(name, value, options) {\r\n if (!options) {\r\n options = {};\r\n }\r\n\r\n options = Object.assign({}, {path: '/'}, options);\r\n\r\n if (options.expires instanceof Date) {\r\n options.expires = options.expires.toUTCString();\r\n }\r\n\r\n var updatedCookie = encodeURIComponent(name) + \"=\" + encodeURIComponent(value);\r\n\r\n for (var optionKey in options) {\r\n if (!options.hasOwnProperty(optionKey)) {\r\n continue;\r\n }\r\n updatedCookie += \"; \" + optionKey;\r\n var optionValue = options[optionKey];\r\n if (optionValue !== true) {\r\n updatedCookie += \"=\" + optionValue;\r\n }\r\n }\r\n\r\n document.cookie = updatedCookie;\r\n },\r\n // To delete a cookie, we can call it with a negative expiration date:\r\n deleteCookie: function(name) {\r\n setCookie(name, \"\", {\r\n 'max-age': -1\r\n })\r\n }\r\n }\r\n}();\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTCookie;\r\n}\r\n","import { useReducer } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { initRequest } from \"../actionMethods\";\r\n\r\nconst initialState = { loading: {} };\r\nconst reducer = (state, action) => {\r\n const { key, status } = action.payload\r\n switch (action.type) {\r\n case 'SET_LOADING':\r\n return {\r\n loading: {\r\n ...state.loading,\r\n [key]: status,\r\n }\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\nconst useApiRequest = (options = {}) => {\r\n const { redux = false, fieldId = '', normalizer } = options\r\n const reduxState = useSelector(state => state.formEditorReducer);\r\n const reduxDispatch = useDispatch()\r\n const [state, dispatch] = useReducer(reducer, initialState)\r\n const dispatcher = redux ? reduxDispatch : dispatch\r\n const loadingState = redux ? reduxState : state\r\n const request = initRequest(dispatcher, fieldId, normalizer)\r\n return {\r\n request,\r\n loading: loadingState.loading,\r\n }\r\n}\r\n\r\nexport default useApiRequest","// import { Qid } from '../../utils/Q';\r\n\r\nconst INIT_COL = 4; // // INITIAL FIELD COLUMN SIZE\r\n// const UNTITLED = \"Untitled field\";\r\n\r\nconst INIT_FIELD_TYPES = [\r\n {\r\n label: \"Text\",\r\n icon: \"text-size\",\r\n fieldType: \"text\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n isComputedField: false, // LABEL: Is this a computed field?\r\n formula: null,\r\n regex: null,\r\n }, {\r\n label: \"Text Area\",\r\n icon: \"align-left\",\r\n fieldType: \"textarea\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n regex: null,\r\n // value: \"\"\r\n }, {\r\n label: \"Number\",\r\n icon: \"number\",\r\n fieldType: \"number\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n isComputedField: false,\r\n formula: null,\r\n decimalPlaces: \"\",\r\n format: 'None',\r\n regex: null,\r\n }, {\r\n label: \"Date\",\r\n icon: \"calendar\",\r\n fieldType: \"date\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n isComputedField: false,\r\n formula: null,\r\n today: false,\r\n regex: null,\r\n }, {\r\n label: \"Date & Time\",\r\n icon: \"calendar-alt\",\r\n fieldType: \"datetime\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n isComputedField: false,\r\n formula: null,\r\n regex: null,\r\n }, {\r\n label: \"Time\",\r\n icon: \"time\",\r\n fieldType: \"time\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n isComputedField: false,\r\n formula: null\r\n }, {\r\n label: \"Basic\", // BEFORE = Dropdown\r\n icon: \"dropdown-basic\",\r\n fieldType: \"dropdown\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: null, // Dropdown / Select items | OPTION value: undefined / []\r\n listToUse: null, // BEFORE : // selectList: \"\", // LABEL: Which list to use? | \"\"\r\n // LABEL: Values to choose from\r\n // ...\r\n regex: null,\r\n }, {\r\n label: \"Reference\", // BEFORE = Lookup\r\n icon: \"dropdown-reference\",\r\n fieldType: \"lookup\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n flowToLookUp: null, // LABEL: Choose a flow to look up | @TYPE: Select / Dropdown\r\n selectFieldsByThisProcess: [], // LABEL: Select all fields that will be used by this process | @TYPE: Multi select dropdown\r\n hideFieldsDuringSelection: false, // LABEL: Hide fields from displaying during selection | @TYPE: Checkbox\r\n hideFields: [],\r\n sortValuesBy: null,// LABEL: Sort values by | @TYPE: Select / Dropdown\r\n sortType: \"Ascending\", // LABEL: Sort type | @TYPE: Select / Dropdown\r\n filters: null, // LABEL: Restrict the values shown based on these filters | @TYPE: Button ...MORE\r\n autoSelectFirstValueByFilters: false, // LABEL: Auto-select value based on the filters | @TYPE: Checkbox\r\n isTable: false,\r\n isTableLookup: false,\r\n moduleId: null,\r\n tableName: '',\r\n }, {\r\n label: \"External\", // BEFORE = Remote Lookup\r\n icon: \"dropdown-external\",\r\n fieldType: \"remote-lookup\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n selectFieldsByThisProcess: [], // LABEL: Select all fields that will be used by this process | @TYPE: Multi select dropdown\r\n hideFieldsDuringSelection: false, // LABEL: Hide fields from displaying during selection | @TYPE: Checkbox\r\n hideFields: [],\r\n url: \"\",\r\n requestType: \"GET\",\r\n headers: [],\r\n body: [],\r\n params: [],\r\n responseFormat: \"JSON\",\r\n responsePath: \"\",\r\n dataType: \"text\",\r\n resultType: \"select\",\r\n addGovHeaders: false,\r\n autoSelectFirstValueByFilters: false,\r\n rawRequestConfig: {},\r\n }, {\r\n label: \"Image\",\r\n icon: \"image\",\r\n fieldType: \"image\",\r\n required: false,\r\n id: null,\r\n helpText: null\r\n }, {\r\n label: \"Document\",\r\n icon: \"paperclip\",\r\n fieldType: \"file\", // attachment | file\r\n required: false,\r\n id: null,\r\n helpText: null\r\n }, {\r\n label: \"Multiple Upload\",\r\n icon: \"paperclip\",\r\n fieldType: \"multi-file\",\r\n required: false,\r\n id: null,\r\n helpText: null\r\n }, {\r\n label: \"Signature\",\r\n icon: \"signature\",\r\n fieldType: \"signature\",\r\n required: false,\r\n id: null,\r\n helpText: null\r\n }, {\r\n label: \"Email\",\r\n icon: \"envelope\",\r\n fieldType: \"email\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n regex: null,\r\n }, {\r\n label: \"Slider\",\r\n icon: \"sliders-h\",\r\n fieldType: \"slider\",\r\n id: null,\r\n helpText: null,\r\n value: 0, // Slider step length\r\n minValue: null, // LABEL: Minimum value | Number minimum value\r\n maxValue: \"\", // LABEL: Maximum value | Number maximum value\r\n intervalSize: \"\" // LABEL: Interval size | Number Interval Size value\r\n }, {\r\n label: \"Toggle\",\r\n icon: \"toggle-on\",\r\n fieldType: \"switch\",\r\n id: null,\r\n helpText: null,\r\n value: false, // With Switch\r\n }, {\r\n label: \"Rating\",\r\n icon: \"star\",\r\n fieldType: \"rating\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: 0, // Rating star length\r\n }, {\r\n label: \"User\",\r\n icon: \"user-circle\",\r\n fieldType: \"user\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n regex: null,\r\n // Checkbox:\r\n // LABEL: Allow multiple users to be selected:\r\n multiUserSelected: false, // NOTE: IF CHECKED autoSelectFirstValueByFilter disabled\r\n autoSelectFirstValueByFilter: false, // LABEL: Auto-select value based on the filter(s):\r\n // LABEL: Filters ???\r\n }, {\r\n label: \"Multi-select: Basic\",\r\n icon: \"multiselect-basic\",\r\n fieldType: \"checkbox\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n // value: null, // Dropdown / Select items\r\n\r\n // LABEL: Show field as: For display Checkboxs as Dropdown / Checkbox\r\n // showFieldAs: \"multi-select\", // multi-select-dropdown | Radio\r\n listToUse: null, // LABEL: Which list to use? | \"\"\r\n // LABEL: Values to choose from:\r\n // valuesToChooseFrom: \"\",\r\n }, {\r\n label: \"Checklist\",\r\n icon: \"tasks\",\r\n fieldType: \"checklist\",\r\n id: null,\r\n helpText: null,\r\n canAddChecklistValues: false, // LABEL: User can add their own checklist values | @TYPE: Checkbox\r\n canDeleteChecklistValues: false, // LABEL: User can delete checklist values | @TYPE: Checkbox\r\n canAddRenameChecklist: false, \r\n listToUse: null, // LABEL: Which list to use? (Dropdown / Select) | @TYPE: Array | null\r\n // LABEL: Values to choose from\r\n // ...\r\n }, {\r\n label: \"Button\",\r\n icon: \"mouse\",\r\n fieldType: \"button\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n url: \"\",\r\n requestType: \"GET\",\r\n headers: [],\r\n body: [],\r\n params: [],\r\n responseFormat: \"JSON\",\r\n responsePath: \"\",\r\n dataType: \"text\",\r\n resultType: \"\",\r\n fieldToResult: null,\r\n renderType: \"none\",\r\n renderTarget: null,\r\n showInModal: false,\r\n submitAllFields: false,\r\n addGovHeaders: false,\r\n showAsLink: false,\r\n }, {\r\n label: \"Pull Data\",\r\n icon: \"pulldata\",\r\n fieldType: \"pull-data\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n flowToLookUp: null,\r\n selectFieldsByThisProcess: [],\r\n hideFieldsDuringSelection: false,\r\n hideFields: [],\r\n filters: null,\r\n autoSelectFirstValueByFilters: false,\r\n isTable: false,\r\n isTableLookup: false,\r\n moduleId: null,\r\n renderTarget: null,\r\n tableName: '',\r\n }, {\r\n label: \"Text Area (Rich)\",\r\n icon: \"edit\",\r\n fieldType: \"richtext\",\r\n }, {\r\n label: \"Text Area (HTML)\",\r\n icon: \"richtext-html\",\r\n fieldType: \"richtext-html\",\r\n }, {\r\n label: \"Auto Number\",\r\n icon: \"auto-number\", // sequence-number fsi\r\n fieldType: \"sequence-number\",\r\n id: null,\r\n helpText: null,\r\n format: \"01\",\r\n formula: \"\", // OPTION key = prefix | OPTION value = null\r\n stepSequence: \"Start\", // Extends from Process\r\n // ...MORE\r\n }, {\r\n label: \"Multi-select: User\",\r\n icon: \"multiselect-user\",\r\n fieldType: \"multi-select-user\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n regex: null,\r\n // Checkbox:\r\n // LABEL: Allow multiple users to be selected:\r\n multiUserSelected: true, // NOTE: IF CHECKED autoSelectFirstValueByFilter disabled\r\n autoSelectFirstValueByFilter: false, // LABEL: Auto-select value based on the filter(s):\r\n // LABEL: Filters ???\r\n },\r\n {\r\n label: \"Calculated Text\",\r\n icon: \"calculation-text\",\r\n fieldType: \"calculation-text\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n isComputedField: true,\r\n isSendEmail: false,\r\n formula: null\r\n }, {\r\n label: \"Calculated Number\",\r\n icon: \"calculation-number\",\r\n fieldType: \"calculation-number\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n isComputedField: true,\r\n formula: null,\r\n decimalPlaces: \"\",\r\n }, {\r\n label: \"Calculated Currency\",\r\n icon: \"calculation-currency\",\r\n fieldType: \"calculation-currency\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n isComputedField: true,\r\n formula: null,\r\n decimalPlaces: \"\",\r\n }, {\r\n label: \"Calculated Date\",\r\n icon: \"calculation-date\",\r\n fieldType: \"calculation-date\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n isComputedField: true,\r\n formula: null\r\n }, {\r\n label: \"Calculated Date & Time\",\r\n icon: \"calculation-date-time\",\r\n fieldType: \"calculation-date-time\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n isComputedField: true,\r\n formula: null\r\n }, {\r\n label: \"Calculated Email\",\r\n icon: \"calculation-email\",\r\n fieldType: \"calculation-email\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n isComputedField: true,\r\n formula: null\r\n }, {\r\n label: \"Calculated Time\",\r\n icon: \"calculation-time\",\r\n fieldType: \"calculation-time\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n isComputedField: true,\r\n formula: null\r\n }, {\r\n label: \"Calculated Toggle\",\r\n icon: \"toggle-on\",\r\n fieldType: \"calculation-switch\",\r\n id: null,\r\n helpText: null,\r\n value: true,\r\n isComputedField: true,\r\n formula: null\r\n }, {\r\n label: \"Password\",\r\n icon: \"password\",\r\n fieldType: \"password\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n isComputedField: false,\r\n formula: null,\r\n regex: null,\r\n }, {\r\n label: \"Barcode\",\r\n icon: \"barcode\",\r\n fieldType: \"barcode\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n barcodeValue: \"\",\r\n isComputedField: true,\r\n formula: null\r\n }, {\r\n label: \"QR/Barcode Scanner\",\r\n icon: \"barcode\",\r\n fieldType: \"barcode-scanner\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n barcodeValue: \"\",\r\n isComputedField: false,\r\n formula: null\r\n },\r\n {\r\n label: \"Multi-select: Reference\", // BEFORE = Lookup\r\n icon: \"multiselect-reference\",\r\n fieldType: \"multi-select-reference\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n flowToLookUp: null, // LABEL: Choose a flow to look up | @TYPE: Select / Dropdown\r\n selectFieldsByThisProcess: [], // LABEL: Select all fields that will be used by this process | @TYPE: Multi select dropdown\r\n hideFieldsDuringSelection: false, // LABEL: Hide fields from displaying during selection | @TYPE: Checkbox\r\n hideFields: [],\r\n fieldOptions: [],\r\n sortValuesBy: null,// LABEL: Sort values by | @TYPE: Select / Dropdown\r\n sortType: \"Ascending\", // LABEL: Sort type | @TYPE: Select / Dropdown\r\n filters: null, // LABEL: Restrict the values shown based on these filters | @TYPE: Button ...MORE\r\n autoSelectFirstValueByFilters: false, // LABEL: Auto-select value based on the filters | @TYPE: Checkbox\r\n isTable: false,\r\n isTableLookup: false,\r\n moduleId: null,\r\n tableName: '',\r\n },\r\n {\r\n label: \"Multi-select: External\", // BEFORE = Remote Lookup\r\n icon: \"multiselect-external\",\r\n fieldType: \"multi-select-external\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n selectFieldsByThisProcess: [], // LABEL: Select all fields that will be used by this process | @TYPE: Multi select dropdown\r\n hideFieldsDuringSelection: false, // LABEL: Hide fields from displaying during selection | @TYPE: Checkbox\r\n hideFields: [],\r\n url: \"\",\r\n requestType: \"GET\",\r\n headers: [],\r\n body: [],\r\n params: [],\r\n responseFormat: \"JSON\",\r\n responsePath: \"\",\r\n dataType: \"text\",\r\n resultType: \"select\",\r\n addGovHeaders: false,\r\n autoSelectFirstValueByFilters: false,\r\n },\r\n {\r\n label: \"Get External Data\", // BEFORE = Remote Lookup\r\n icon: \"get-external-data\",\r\n fieldType: \"input-external\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n selectFieldsByThisProcess: [], // LABEL: Select all fields that will be used by this process | @TYPE: Multi select dropdown\r\n hideFieldsDuringSelection: false, // LABEL: Hide fields from displaying during selection | @TYPE: Checkbox\r\n hideFields: [],\r\n url: \"\",\r\n requestType: \"GET\",\r\n headers: [],\r\n body: [],\r\n params: [],\r\n responseFormat: \"JSON\",\r\n responsePath: \"\",\r\n dataType: \"text\",\r\n resultType: \"select\",\r\n addGovHeaders: false,\r\n autoSelectFirstValueByFilters: false,\r\n },{\r\n label: \"Calculated User\",\r\n icon: \"user-circle\",\r\n fieldType: \"calculation-user\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n regex: null,\r\n multiUserSelected: false, // NOTE: IF CHECKED autoSelectFirstValueByFilter disabled\r\n autoSelectFirstValueByFilter: true, // LABEL: Auto-select value based on the filter(s):\r\n },{\r\n label: \"Calculated External\", // BEFORE = Remote Lookup\r\n icon: \"dropdown-external\",\r\n fieldType: \"calculation-remote-lookup\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n selectFieldsByThisProcess: [], // LABEL: Select all fields that will be used by this process | @TYPE: Multi select dropdown\r\n hideFieldsDuringSelection: false, // LABEL: Hide fields from displaying during selection | @TYPE: Checkbox\r\n hideFields: [],\r\n url: \"\",\r\n requestType: \"GET\",\r\n headers: [],\r\n body: [],\r\n params: [],\r\n responseFormat: \"JSON\",\r\n responsePath: \"\",\r\n dataType: \"text\",\r\n resultType: \"select\",\r\n addGovHeaders: false,\r\n autoSelectFirstValueByFilters: true,\r\n rawRequestConfig: {},\r\n },{\r\n label: \"Calculated Reference\", // BEFORE = Lookup\r\n icon: \"dropdown-reference\",\r\n fieldType: \"calculation-lookup\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n flowToLookUp: null, // LABEL: Choose a flow to look up | @TYPE: Select / Dropdown\r\n selectFieldsByThisProcess: [], // LABEL: Select all fields that will be used by this process | @TYPE: Multi select dropdown\r\n hideFieldsDuringSelection: false, // LABEL: Hide fields from displaying during selection | @TYPE: Checkbox\r\n hideFields: [],\r\n sortValuesBy: null,// LABEL: Sort values by | @TYPE: Select / Dropdown\r\n sortType: \"Ascending\", // LABEL: Sort type | @TYPE: Select / Dropdown\r\n filters: null, // LABEL: Restrict the values shown based on these filters | @TYPE: Button ...MORE\r\n autoSelectFirstValueByFilters: true, // LABEL: Auto-select value based on the filters | @TYPE: Checkbox\r\n isTable: false,\r\n isTableLookup: false,\r\n moduleId: null,\r\n tableName: '',\r\n },{\r\n label: \"Calculated Element\",\r\n icon: \"calculation-element\",\r\n fieldType: \"calculation-element\",\r\n required: false,\r\n id: null,\r\n helpText: null,\r\n value: \"\",\r\n isComputedField: true,\r\n formula: null\r\n }\r\n].map(item => ({\r\n ...item,\r\n columnWidth: INIT_COL,\r\n fieldName: \"Untitled field\",\r\n editable: true, // For edit id only once when add new field\r\n}));\r\n\r\nconst F_DATE = \"yyyy-MM-DD\";// MM/DD/YYYY\r\nconst F_DATETIME = \"yyyy-MM-DD HH:mm:ss\";\r\nconst F_DATE_DISPLAY = \"yyyy-MM-DD\";// MM/DD/YYYY\r\nconst F_DATETIME_DISPLAY = \"yyyy-MM-DD HH:mm:ss\";\r\nconst F_TIME = \"HH:mm:ss\";\r\nconst F_OPTIONS = [\r\n {value:'YYYY-MM-DD', text:'YYYY-MM-DD (International)'},\r\n {value:'DD-MM-YYYY', text:'DD-MM-YYYY (European)'},\r\n {value:'MM-DD-YYYY', text:'MM-DD-YYYY (US)'}\r\n]\r\nconst F_LAUNCH_OPTIONS = [\r\n { label: \"Home\", value: \"home\" },\r\n { label: \"Dashboard & Reports\", value: \"dashboard&reports\" },\r\n { label: \"Quick Report\", value: \"quickreport\" },\r\n { label: \"Apps\", value: \"apps\" },\r\n ]\r\nexport {\r\n INIT_COL,\r\n INIT_FIELD_TYPES,\r\n F_DATE,\r\n F_DATETIME,\r\n F_DATE_DISPLAY,\r\n F_DATETIME_DISPLAY,\r\n F_TIME,\r\n F_OPTIONS,\r\n F_LAUNCH_OPTIONS\r\n};\r\n","export const strToSnakeCase = (str = '') => {\r\n return str.replace(/\\s/g, '_').toLowerCase();\r\n}\r\n\r\nexport const normalizeJsonString = str => {\r\n return str.replace(/\\\\+(?=\")/g, '\\\\')\r\n}\r\n\r\nexport const stripHTML = (string) => {\r\n let el = new DOMParser().parseFromString(string, 'text/html');\r\n return el?.body?.textContent || \"\";\r\n}\r\n\r\nexport default {\r\n strToSnakeCase, \r\n normalizeJsonString,\r\n stripHTML,\r\n}\r\n\r\n","import React from 'react';\r\nimport { Helmet } from 'react-helmet';\r\n\r\nimport { APP_NAME } from '../../data/appData';// ../data/appData\r\n\r\nexport default function Head({ title, children }){\r\n return (\r\n \r\n {title && {title}}\r\n\r\n {children}\r\n \r\n )\r\n}\r\n","import React from 'react';\r\n\r\nimport Flex from '../components/Flex';\r\nimport Head from '../components/Head';\r\nimport { toAbsoluteUrl } from '../../_metronic/_helpers';\r\nimport { APP_NAME, APP_YEAR } from '../../data/appData';\r\nimport { EmailOutlined } from '@material-ui/icons';\r\nimport { styled } from \"@material-ui/core\";\r\nimport { PhoneOutlined } from '@ant-design/icons';\r\n\r\nconst HelpIcon = styled('span')(() => ({\r\n\tdisplay: 'inline-block',\r\n\twidth: '16px',\r\n\tcolor: '#B5B5C3',\r\n\tmarginRight: '.5rem',\r\n\t'& svg': {\r\n\t\twidth: '16px',\r\n\t}\r\n}))\r\n\r\nexport default function AuthLayout({\r\n title = \"\",\r\n children,\r\n}) {\r\n const isLoginHost = window.location.host.split('.')[0] === 'login'\r\n const logo = isLoginHost ? toAbsoluteUrl(\"/media/logos/UniFi-White.svg\") : toAbsoluteUrl(\"/media/logos/FinanSys-Apps-White.svg\")\r\n return (\r\n \r\n {title && }\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n support@unifiplatform.com\r\n
\r\n
|
\r\n
\r\n \r\n \r\n \r\n +44 20 7456 9839\r\n
\r\n
|
\r\n
\r\n © {APP_YEAR} FinanSys Limited\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\n","export function removeCSSClass(ele, cls) {\r\n const reg = new RegExp(\"(\\\\s|^)\" + cls + \"(\\\\s|$)\");\r\n ele.className = ele.className.replace(reg, \" \");\r\n}\r\n\r\nexport function addCSSClass(ele, cls) {\r\n ele.classList.add(cls);\r\n}\r\n\r\nexport const toAbsoluteUrl = pathname => process.env.PUBLIC_URL + pathname;\r\n","import * as utils from \"./LocalStorageHelpers\";\r\n\r\nconst localStorageLastLocationKey = \"metronic-lastLocation\";\r\n\r\nfunction acceptLocation(lastLocation) {\r\n if (\r\n lastLocation &&\r\n lastLocation.pathname &&\r\n lastLocation.pathname !== \"/\" &&\r\n lastLocation.pathname.indexOf(\"auth\") === -1 &&\r\n lastLocation.pathname !== \"/logout\"\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nexport function saveLastLocation(lastLocation) {\r\n if (acceptLocation(lastLocation)) {\r\n utils.setStorage(\r\n localStorageLastLocationKey,\r\n JSON.stringify(lastLocation),\r\n 120\r\n );\r\n }\r\n}\r\n\r\nexport function forgotLastLocation() {\r\n utils.removeStorage(localStorageLastLocationKey);\r\n}\r\n\r\nexport function getLastLocation() {\r\n const defaultLocation = { pathname: \"/\", title: \"Dashboard\"};\r\n const localStorateLocations = utils.getStorage(localStorageLastLocationKey);\r\n if (!localStorateLocations) {\r\n return { pathname: \"/\", title: \"Dashboard\"};\r\n }\r\n\r\n try {\r\n const result = JSON.parse(localStorateLocations);\r\n return result;\r\n } catch (error) {\r\n console.error(error);\r\n return defaultLocation;\r\n }\r\n}\r\n\r\nexport function getCurrentUrl(location) {\r\n return location.pathname.split(/[?#]/)[0];\r\n}\r\n\r\nexport function checkIsActive(location, url) {\r\n const current = getCurrentUrl(location);\r\n return current && url && current === url;\r\n}\r\n","/* Pagination Helprs */\r\nimport React from \"react\";\r\n\r\nexport const getPagesCount = (totalSize, sizePerPage) => {\r\n return Math.ceil(totalSize / sizePerPage);\r\n};\r\n\r\nexport const getPages = (page, pagesCount, paginationSize) => {\r\n const result = [];\r\n if (!page) {\r\n return result;\r\n }\r\n\r\n if (pagesCount === 1) {\r\n result.push(1);\r\n return result;\r\n }\r\n\r\n if (pagesCount < page) {\r\n return result;\r\n }\r\n\r\n if (pagesCount < paginationSize + 1) {\r\n for (let i = 1; i < pagesCount + 1; i++) {\r\n result.push(i);\r\n }\r\n return result;\r\n }\r\n\r\n if (page === 1) {\r\n for (let i = 1; i < paginationSize + 1; i++) {\r\n if (i < pagesCount) {\r\n result.push(i);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n if (page === pagesCount) {\r\n for (let i = pagesCount - paginationSize + 1; i <= pagesCount; i++) {\r\n if (i <= pagesCount) {\r\n result.push(i);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n const shiftCount = Math.floor(paginationSize / 2);\r\n if (shiftCount < 1) {\r\n result.push(page);\r\n return result;\r\n }\r\n\r\n //\r\n if (page < shiftCount + 2) {\r\n for (let i = 1; i < paginationSize + 1; i++) {\r\n result.push(i);\r\n }\r\n return result;\r\n }\r\n\r\n if (pagesCount - page < shiftCount + 2) {\r\n for (let i = pagesCount - paginationSize; i < pagesCount + 1; i++) {\r\n result.push(i);\r\n }\r\n return result;\r\n }\r\n\r\n for (let i = page - shiftCount; i < page; i++) {\r\n if (i > 0) {\r\n result.push(i);\r\n }\r\n }\r\n result.push(page);\r\n for (let i = page + 1; i < page + shiftCount + 1; i++) {\r\n if (i <= pagesCount) {\r\n result.push(i);\r\n }\r\n }\r\n\r\n return result;\r\n};\r\n\r\nexport function getHandlerTableChange(setQueryParams) {\r\n return (type, { page, sizePerPage, sortField, sortOrder, data }) => {\r\n const pageNumber = page || 1;\r\n setQueryParams((prev) =>\r\n type === \"sort\"\r\n ? { ...prev, sortOrder, sortField }\r\n : type === \"pagination\"\r\n ? { ...prev, pageNumber, pageSize: sizePerPage }\r\n : prev\r\n );\r\n };\r\n}\r\n\r\nexport function PleaseWaitMessage({ entities }) {\r\n return <>{entities === null &&
Please wait...
};\r\n}\r\n\r\nexport function NoRecordsFoundMessage({ entities }) {\r\n const customersList = entities === null ? [] : entities;\r\n return (\r\n <>\r\n {customersList.length === 0 && entities !== null && (\r\n
No records found
\r\n )}\r\n \r\n );\r\n}\r\n","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./util\";\r\n\r\n// Component Definition\r\nvar KTMenu = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n // scrollable area with Perfect Scroll\r\n scroll: {\r\n rememberPosition: false\r\n },\r\n\r\n // accordion submenu mode\r\n accordion: {\r\n slideSpeed: 200, // accordion toggle slide speed in milliseconds\r\n autoScroll: false, // enable auto scrolling(focus) to the clicked menu item\r\n autoScrollSpeed: 1200,\r\n expandAll: true // allow having multiple expanded accordions in the menu\r\n },\r\n\r\n // dropdown submenu mode\r\n dropdown: {\r\n timeout: 500 // timeout in milliseconds to show and hide the hoverable submenu dropdown\r\n }\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Run plugin\r\n * @returns {KTMenu}\r\n */\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('menu')) {\r\n the = KTUtil.data(element).get('menu');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // reset menu\r\n Plugin.reset();\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('menu', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles submenu click toggle\r\n * @returns {KTMenu}\r\n */\r\n init: function(options) {\r\n the.events = [];\r\n\r\n the.eventHandlers = {};\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n // pause menu\r\n the.pauseDropdownHoverTime = 0;\r\n\r\n the.uid = KTUtil.getUniqueID();\r\n },\r\n\r\n update: function(options) {\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n // pause menu\r\n the.pauseDropdownHoverTime = 0;\r\n\r\n // reset menu\r\n Plugin.reset();\r\n\r\n the.eventHandlers = {};\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('menu', the);\r\n },\r\n\r\n reload: function() {\r\n // reset menu\r\n Plugin.reset();\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n // reset submenu props\r\n Plugin.resetSubmenuProps();\r\n },\r\n\r\n /**\r\n * Reset menu\r\n * @returns {KTMenu}\r\n */\r\n build: function() {\r\n // General accordion submenu toggle\r\n the.eventHandlers['event_1'] = KTUtil.on( element, '.menu-toggle', 'click', Plugin.handleSubmenuAccordion);\r\n\r\n // Dropdown mode(hoverable)\r\n if (Plugin.getSubmenuMode() === 'dropdown' || Plugin.isConditionalSubmenuDropdown()) {\r\n // dropdown submenu - hover toggle\r\n the.eventHandlers['event_2'] = KTUtil.on( element, '[data-menu-toggle=\"hover\"]', 'mouseover', Plugin.handleSubmenuDrodownHoverEnter);\r\n the.eventHandlers['event_3'] = KTUtil.on( element, '[data-menu-toggle=\"hover\"]', 'mouseout', Plugin.handleSubmenuDrodownHoverExit);\r\n\r\n // dropdown submenu - click toggle\r\n the.eventHandlers['event_4'] = KTUtil.on( element, '[data-menu-toggle=\"click\"] > .menu-toggle, [data-menu-toggle=\"click\"] > .menu-link .menu-toggle', 'click', Plugin.handleSubmenuDropdownClick);\r\n the.eventHandlers['event_5'] = KTUtil.on( element, '[data-menu-toggle=\"tab\"] > .menu-toggle, [data-menu-toggle=\"tab\"] > .menu-link .menu-toggle', 'click', Plugin.handleSubmenuDropdownTabClick);\r\n }\r\n\r\n // Handle general link click\r\n the.eventHandlers['event_6'] = KTUtil.on(element, '.menu-item > .menu-link:not(.menu-toggle):not(.menu-link-toggle-skip)', 'click', Plugin.handleLinkClick);\r\n\r\n // Init scrollable menu\r\n if (the.options.scroll && the.options.scroll.height) {\r\n Plugin.scrollInit();\r\n }\r\n },\r\n\r\n /**\r\n * Reset menu\r\n * @returns {KTMenu}\r\n */\r\n reset: function() {\r\n KTUtil.off( element, 'click', the.eventHandlers['event_1']);\r\n\r\n // dropdown submenu - hover toggle\r\n KTUtil.off( element, 'mouseover', the.eventHandlers['event_2']);\r\n KTUtil.off( element, 'mouseout', the.eventHandlers['event_3']);\r\n\r\n // dropdown submenu - click toggle\r\n KTUtil.off( element, 'click', the.eventHandlers['event_4']);\r\n KTUtil.off( element, 'click', the.eventHandlers['event_5']);\r\n\r\n // handle link click\r\n KTUtil.off(element, 'click', the.eventHandlers['event_6']);\r\n },\r\n\r\n /**\r\n * Init scroll menu\r\n *\r\n */\r\n scrollInit: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollDestroy(element, true);\r\n KTUtil.scrollInit(element, {mobileNativeScroll: true, windowScroll: false, resetHeightOnDestroy: true, handleWindowResize: true, height: the.options.scroll.height, rememberPosition: the.options.scroll.rememberPosition});\r\n } else {\r\n KTUtil.scrollDestroy(element, true);\r\n }\r\n },\r\n\r\n /**\r\n * Update scroll menu\r\n */\r\n scrollUpdate: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollUpdate(element);\r\n }\r\n },\r\n\r\n /**\r\n * Scroll top\r\n */\r\n scrollTop: function() {\r\n if ( the.options.scroll && the.options.scroll.height ) {\r\n KTUtil.scrollTop(element);\r\n }\r\n },\r\n\r\n /**\r\n * Get submenu mode for current breakpoint and menu state\r\n * @returns {KTMenu}\r\n */\r\n getSubmenuMode: function(el) {\r\n if ( KTUtil.isBreakpointUp('lg') ) {\r\n if (el && KTUtil.hasAttr(el, 'data-menu-toggle') && KTUtil.attr(el, 'data-menu-toggle') == 'hover') {\r\n return 'dropdown';\r\n }\r\n\r\n if ( KTUtil.isset(the.options.submenu, 'desktop.state.body') ) {\r\n if ( KTUtil.hasClasses(body, the.options.submenu.desktop.state.body) ) {\r\n return the.options.submenu.desktop.state.mode;\r\n } else {\r\n return the.options.submenu.desktop.default;\r\n }\r\n } else if ( KTUtil.isset(the.options.submenu, 'desktop') ) {\r\n return the.options.submenu.desktop;\r\n }\r\n } else if ( KTUtil.isBreakpointUp('md') && KTUtil.isBreakpointDown('lg') && KTUtil.isset(the.options.submenu, 'tablet') ) {\r\n return the.options.submenu.tablet;\r\n } else if ( KTUtil.isBreakpointDown('md') && KTUtil.isset(the.options.submenu, 'mobile') ) {\r\n return the.options.submenu.mobile;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n /**\r\n * Get submenu mode for current breakpoint and menu state\r\n * @returns {KTMenu}\r\n */\r\n isConditionalSubmenuDropdown: function() {\r\n if ( KTUtil.isBreakpointUp('lg') && KTUtil.isset(the.options.submenu, 'desktop.state.body') ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n\r\n /**\r\n * Reset submenu attributes\r\n * @returns {KTMenu}\r\n */\r\n resetSubmenuProps: function(e) {\r\n var submenus = KTUtil.findAll(element, '.menu-submenu');\r\n if ( submenus ) {\r\n for (var i = 0, len = submenus.length; i < len; i++) {\r\n var submenu = submenus[0];\r\n\r\n KTUtil.css(submenu, 'display', '');\r\n KTUtil.css(submenu, 'overflow', '');\r\n\r\n if (submenu.hasAttribute('data-hor-direction')) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-left');\r\n KTUtil.removeClass(submenu, 'menu-submenu-right');\r\n KTUtil.addClass(submenu, submenu.getAttribute('data-hor-direction'));\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDrodownHoverEnter: function(e) {\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n if ( the.resumeDropdownHover() === false ) {\r\n return;\r\n }\r\n\r\n var item = this;\r\n\r\n if ( item.getAttribute('data-hover') == '1' ) {\r\n item.removeAttribute('data-hover');\r\n clearTimeout( item.getAttribute('data-timeout') );\r\n item.removeAttribute('data-timeout');\r\n }\r\n\r\n Plugin.showSubmenuDropdown(item);\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDrodownHoverExit: function(e) {\r\n if ( the.resumeDropdownHover() === false ) {\r\n return;\r\n }\r\n\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n var item = this;\r\n var time = the.options.dropdown.timeout;\r\n\r\n var timeout = setTimeout(function() {\r\n if ( item.getAttribute('data-hover') == '1' ) {\r\n Plugin.hideSubmenuDropdown(item, true);\r\n }\r\n }, time);\r\n\r\n item.setAttribute('data-hover', '1');\r\n item.setAttribute('data-timeout', timeout);\r\n },\r\n\r\n /**\r\n * Handles submenu click toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownClick: function(e) {\r\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\r\n return;\r\n }\r\n\r\n var item = this.closest('.menu-item');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( item.getAttribute('data-menu-submenu-mode') == 'accordion' ) {\r\n return;\r\n }\r\n\r\n if ( KTUtil.hasClass(item, 'menu-item-hover') === false ) {\r\n KTUtil.addClass(item, 'menu-item-open-dropdown');\r\n Plugin.showSubmenuDropdown(item);\r\n } else {\r\n KTUtil.removeClass(item, 'menu-item-open-dropdown' );\r\n Plugin.hideSubmenuDropdown(item, true);\r\n }\r\n\r\n e.preventDefault();\r\n },\r\n\r\n /**\r\n * Handles tab click toggle\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownTabClick: function(e) {\r\n if (Plugin.getSubmenuMode(this) === 'accordion') {\r\n return;\r\n }\r\n var item = this.closest('.menu-item');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if (item.getAttribute('data-menu-submenu-mode') == 'accordion') {\r\n return;\r\n }\r\n\r\n if (KTUtil.hasClass(item, 'menu-item-hover') == false) {\r\n KTUtil.addClass(item, 'menu-item-open-dropdown');\r\n Plugin.showSubmenuDropdown(item);\r\n }\r\n\r\n e.preventDefault();\r\n },\r\n\r\n /**\r\n * Handles link click\r\n * @returns {KTMenu}\r\n */\r\n handleLinkClick: function(e) {\r\n var submenu = this.closest('.menu-item.menu-item-submenu');\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('linkClick', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( submenu && Plugin.getSubmenuMode(submenu) === 'dropdown' ) {\r\n Plugin.hideSubmenuDropdowns();\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu dropdown close on link click\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuDropdownClose: function(e, el) {\r\n // exit if its not submenu dropdown mode\r\n if (Plugin.getSubmenuMode(el) === 'accordion') {\r\n return;\r\n }\r\n\r\n var shown = element.querySelectorAll('.menu-item.menu-item-submenu.menu-item-hover:not(.menu-item-tabs)');\r\n\r\n // check if currently clicked link's parent item ha\r\n if (shown.length > 0 && KTUtil.hasClass(el, 'menu-toggle') === false && el.querySelectorAll('.menu-toggle').length === 0) {\r\n // close opened dropdown menus\r\n for (var i = 0, len = shown.length; i < len; i++) {\r\n Plugin.hideSubmenuDropdown(shown[0], true);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * helper functions\r\n * @returns {KTMenu}\r\n */\r\n handleSubmenuAccordion: function(e, el) {\r\n var query;\r\n var item = el ? el : this;\r\n\r\n // Trigger click event handlers\r\n var result = Plugin.eventTrigger('submenuToggle', this, e);\r\n if (result === false) {\r\n return;\r\n }\r\n\r\n if ( Plugin.getSubmenuMode(el) === 'dropdown' && (query = item.closest('.menu-item') ) ) {\r\n if (query.getAttribute('data-menu-submenu-mode') != 'accordion' ) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n var li = item.closest('.menu-item');\r\n var submenu = KTUtil.child(li, '.menu-submenu, .menu-inner');\r\n\r\n if (KTUtil.hasClass(item.closest('.menu-item'), 'menu-item-open-always')) {\r\n return;\r\n }\r\n\r\n if ( li && submenu ) {\r\n e.preventDefault();\r\n var speed = the.options.accordion.slideSpeed;\r\n var hasClosables = false;\r\n\r\n if ( KTUtil.hasClass(li, 'menu-item-open') === false ) {\r\n // hide other accordions\r\n if ( the.options.accordion.expandAll === false ) {\r\n var subnav = item.closest('.menu-nav, .menu-subnav');\r\n var closables = KTUtil.children(subnav, '.menu-item.menu-item-open.menu-item-submenu:not(.menu-item-here):not(.menu-item-open-always)');\r\n\r\n if ( subnav && closables ) {\r\n for (var i = 0, len = closables.length; i < len; i++) {\r\n var el_ = closables[0];\r\n var submenu_ = KTUtil.child(el_, '.menu-submenu');\r\n if ( submenu_ ) {\r\n KTUtil.slideUp(submenu_, speed, function() {\r\n Plugin.scrollUpdate();\r\n KTUtil.removeClass(el_, 'menu-item-open');\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n KTUtil.slideDown(submenu, speed, function() {\r\n Plugin.scrollToItem(item);\r\n Plugin.scrollUpdate();\r\n\r\n Plugin.eventTrigger('submenuToggle', submenu, e);\r\n });\r\n\r\n KTUtil.addClass(li, 'menu-item-open');\r\n\r\n } else {\r\n KTUtil.slideUp(submenu, speed, function() {\r\n Plugin.scrollToItem(item);\r\n Plugin.eventTrigger('submenuToggle', submenu, e);\r\n });\r\n\r\n KTUtil.removeClass(li, 'menu-item-open');\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * scroll to item function\r\n * @returns {KTMenu}\r\n */\r\n scrollToItem: function(item) {\r\n // handle auto scroll for accordion submenus\r\n if ( KTUtil.isBreakpointUp('lg') && the.options.accordion.autoScroll && element.getAttribute('data-menu-scroll') !== '1' ) {\r\n KTUtil.scrollTo(item, the.options.accordion.autoScrollSpeed);\r\n }\r\n },\r\n\r\n /**\r\n * Hide submenu dropdown\r\n * @returns {KTMenu}\r\n */\r\n hideSubmenuDropdown: function(item, classAlso) {\r\n // remove submenu activation class\r\n if ( classAlso ) {\r\n KTUtil.removeClass(item, 'menu-item-hover');\r\n KTUtil.removeClass(item, 'menu-item-active-tab');\r\n }\r\n\r\n // clear timeout\r\n item.removeAttribute('data-hover');\r\n\r\n if ( item.getAttribute('data-menu-toggle-class') ) {\r\n KTUtil.removeClass(body, item.getAttribute('data-menu-toggle-class'));\r\n }\r\n\r\n var timeout = item.getAttribute('data-timeout');\r\n item.removeAttribute('data-timeout');\r\n clearTimeout(timeout);\r\n },\r\n\r\n /**\r\n * Hide submenu dropdowns\r\n * @returns {KTMenu}\r\n */\r\n hideSubmenuDropdowns: function() {\r\n var items;\r\n if ( items = element.querySelectorAll('.menu-item-submenu.menu-item-hover:not(.menu-item-tabs):not([data-menu-toggle=\"tab\"])') ) {\r\n for (var j = 0, cnt = items.length; j < cnt; j++) {\r\n Plugin.hideSubmenuDropdown(items[j], true);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * helper functions\r\n * @returns {KTMenu}\r\n */\r\n showSubmenuDropdown: function(item) {\r\n // close active submenus\r\n var list = element.querySelectorAll('.menu-item-submenu.menu-item-hover, .menu-item-submenu.menu-item-active-tab');\r\n\r\n if ( list ) {\r\n for (var i = 0, len = list.length; i < len; i++) {\r\n var el = list[i];\r\n if ( item !== el && el.contains(item) === false && item.contains(el) === false ) {\r\n Plugin.hideSubmenuDropdown(el, true);\r\n }\r\n }\r\n }\r\n\r\n // add submenu activation class\r\n KTUtil.addClass(item, 'menu-item-hover');\r\n\r\n // Change the alignment of submenu is offscreen.\r\n var submenu = KTUtil.find(item, '.menu-submenu');\r\n\r\n if (submenu && submenu.hasAttribute('data-hor-direction') === false) {\r\n if (KTUtil.hasClass(submenu, 'menu-submenu-left')) {\r\n submenu.setAttribute('data-hor-direction', 'menu-submenu-left');\r\n } else if (KTUtil.hasClass(submenu, 'menu-submenu-right')) {\r\n submenu.setAttribute('data-hor-direction', 'menu-submenu-right');\r\n }\r\n }\r\n\r\n if ( submenu && KTUtil.isOffscreen(submenu, 'left', 15) === true ) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-left');\r\n KTUtil.addClass(submenu, 'menu-submenu-right');\r\n } else if ( submenu && KTUtil.isOffscreen(submenu, 'right', 15) === true ) {\r\n KTUtil.removeClass(submenu, 'menu-submenu-right');\r\n KTUtil.addClass(submenu, 'menu-submenu-left');\r\n }\r\n\r\n if ( item.getAttribute('data-menu-toggle-class') ) {\r\n KTUtil.addClass(body, item.getAttribute('data-menu-toggle-class'));\r\n }\r\n },\r\n\r\n /**\r\n * Handles submenu slide toggle\r\n * @returns {KTMenu}\r\n */\r\n createSubmenuDropdownClickDropoff: function(el) {\r\n var query;\r\n var zIndex = (query = KTUtil.child(el, '.menu-submenu') ? KTUtil.css(query, 'z-index') : 0) - 1;\r\n\r\n var dropoff = document.createElement('
');\r\n\r\n body.appendChild(dropoff);\r\n\r\n KTUtil.addEvent(dropoff, 'click', function(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n KTUtil.remove(this);\r\n Plugin.hideSubmenuDropdown(el, true);\r\n });\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n pauseDropdownHover: function(time) {\r\n var date = new Date();\r\n\r\n the.pauseDropdownHoverTime = date.getTime() + time;\r\n },\r\n\r\n /**\r\n * Handles submenu hover toggle\r\n * @returns {KTMenu}\r\n */\r\n resumeDropdownHover: function() {\r\n var date = new Date();\r\n\r\n return (date.getTime() > the.pauseDropdownHoverTime ? true : false);\r\n },\r\n\r\n /**\r\n * Reset menu's current active item\r\n * @returns {KTMenu}\r\n */\r\n resetActiveItem: function(item) {\r\n var list;\r\n var parents;\r\n\r\n list = element.querySelectorAll('.menu-item-active');\r\n\r\n for (var i = 0, len = list.length; i < len; i++) {\r\n var el = list[0];\r\n KTUtil.removeClass(el, 'menu-item-active');\r\n KTUtil.hide( KTUtil.child(el, '.menu-submenu') );\r\n parents = KTUtil.parents(el, '.menu-item-submenu') || [];\r\n\r\n for (var i_ = 0, len_ = parents.length; i_ < len_; i_++) {\r\n var el_ = parents[i];\r\n KTUtil.removeClass(el_, 'menu-item-open');\r\n KTUtil.hide( KTUtil.child(el_, '.menu-submenu') );\r\n }\r\n }\r\n\r\n // close open submenus\r\n if ( the.options.accordion.expandAll === false ) {\r\n if ( list = element.querySelectorAll('.menu-item-open') ) {\r\n for (var i = 0, len = list.length; i < len; i++) {\r\n KTUtil.removeClass(parents[0], 'menu-item-open');\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Sets menu's active item\r\n * @returns {KTMenu}\r\n */\r\n setActiveItem: function(item) {\r\n // reset current active item\r\n Plugin.resetActiveItem();\r\n\r\n var parents = KTUtil.parents(item, '.menu-item-submenu') || [];\r\n for (var i = 0, len = parents.length; i < len; i++) {\r\n KTUtil.addClass(parents[i], 'menu-item-open');\r\n }\r\n\r\n KTUtil.addClass(item, 'menu-item-active');\r\n },\r\n\r\n /**\r\n * Returns page breadcrumbs for the menu's active item\r\n * @returns {KTMenu}\r\n */\r\n getBreadcrumbs: function(item) {\r\n var query;\r\n var breadcrumbs = [];\r\n var link = KTUtil.child(item, '.menu-link');\r\n\r\n breadcrumbs.push({\r\n text: (query = KTUtil.child(link, '.menu-text') ? query.innerHTML : ''),\r\n title: link.getAttribute('title'),\r\n href: link.getAttribute('href')\r\n });\r\n\r\n var parents = KTUtil.parents(item, '.menu-item-submenu');\r\n for (var i = 0, len = parents.length; i < len; i++) {\r\n var submenuLink = KTUtil.child(parents[i], '.menu-link');\r\n\r\n breadcrumbs.push({\r\n text: (query = KTUtil.child(submenuLink, '.menu-text') ? query.innerHTML : ''),\r\n title: submenuLink.getAttribute('title'),\r\n href: submenuLink.getAttribute('href')\r\n });\r\n }\r\n\r\n return breadcrumbs.reverse();\r\n },\r\n\r\n /**\r\n * Returns page title for the menu's active item\r\n * @returns {KTMenu}\r\n */\r\n getPageTitle: function(item) {\r\n var query;\r\n\r\n return (query = KTUtil.child(item, '.menu-text') ? query.innerHTML : '');\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name, target, e) {\r\n for (var i = 0; i < the.events.length; i++ ) {\r\n var event = the.events[i];\r\n if ( event.name == name ) {\r\n if ( event.one == true ) {\r\n if ( event.fired == false ) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, target, e);\r\n }\r\n } else {\r\n return event.handler.call(this, target, e);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n },\r\n\r\n removeEvent: function(name) {\r\n if (the.events[name]) {\r\n delete the.events[name];\r\n }\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Update scroll\r\n */\r\n the.scrollUpdate = function() {\r\n return Plugin.scrollUpdate();\r\n };\r\n\r\n /**\r\n * Re-init scroll\r\n */\r\n the.scrollReInit = function() {\r\n return Plugin.scrollInit();\r\n };\r\n\r\n /**\r\n * Scroll top\r\n */\r\n the.scrollTop = function() {\r\n return Plugin.scrollTop();\r\n };\r\n\r\n /**\r\n * Set active menu item\r\n */\r\n the.setActiveItem = function(item) {\r\n return Plugin.setActiveItem(item);\r\n };\r\n\r\n the.reload = function() {\r\n return Plugin.reload();\r\n };\r\n\r\n the.update = function(options) {\r\n return Plugin.update(options);\r\n };\r\n\r\n /**\r\n * Set breadcrumb for menu item\r\n */\r\n the.getBreadcrumbs = function(item) {\r\n return Plugin.getBreadcrumbs(item);\r\n };\r\n\r\n /**\r\n * Set page title for menu item\r\n */\r\n the.getPageTitle = function(item) {\r\n return Plugin.getPageTitle(item);\r\n };\r\n\r\n /**\r\n * Get submenu mode\r\n */\r\n the.getSubmenuMode = function(el) {\r\n return Plugin.getSubmenuMode(el);\r\n };\r\n\r\n /**\r\n * Hide dropdown\r\n * @returns {Object}\r\n */\r\n the.hideDropdown = function(item) {\r\n Plugin.hideSubmenuDropdown(item, true);\r\n };\r\n\r\n /**\r\n * Hide dropdowns\r\n * @returns {Object}\r\n */\r\n the.hideDropdowns = function() {\r\n Plugin.hideSubmenuDropdowns();\r\n };\r\n\r\n /**\r\n * Disable menu for given time\r\n * @returns {Object}\r\n */\r\n the.pauseDropdownHover = function(time) {\r\n Plugin.pauseDropdownHover(time);\r\n };\r\n\r\n /**\r\n * Disable menu for given time\r\n * @returns {Object}\r\n */\r\n the.resumeDropdownHover = function() {\r\n return Plugin.resumeDropdownHover();\r\n };\r\n\r\n /**\r\n * Register event\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n the.off = function(name) {\r\n return Plugin.removeEvent(name);\r\n };\r\n\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Handle plugin on window resize\r\n KTUtil.addResizeHandler(function() {\r\n if (init) {\r\n the.reload();\r\n }\r\n });\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTMenu;\r\n}\r\n\r\n// Plugin global lazy initialization\r\ndocument.addEventListener(\"click\", function (e) {\r\n var body = KTUtil.getByTagName('body')[0];\r\n var query;\r\n if ( query = body.querySelectorAll('.menu-nav .menu-item.menu-item-submenu.menu-item-hover:not(.menu-item-tabs)[data-menu-toggle=\"click\"]') ) {\r\n for (var i = 0, len = query.length; i < len; i++) {\r\n var element = query[i].closest('.menu-nav').parentNode;\r\n\r\n if ( element ) {\r\n var the = KTUtil.data(element).get('menu');\r\n\r\n if ( !the ) {\r\n break;\r\n }\r\n\r\n if ( !the || the.getSubmenuMode() !== 'dropdown' ) {\r\n break;\r\n }\r\n\r\n if ( e.target !== element && element.contains(e.target) === false ) {\r\n the.hideDropdowns();\r\n }\r\n }\r\n }\r\n }\r\n});\r\n\r\nexport default KTMenu;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./util\";\r\n\r\n// Component Definition\r\nvar KTToggle = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n targetToggleMode: 'class' // class|attribute\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Construct\r\n */\r\n\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('toggle')) {\r\n the = KTUtil.data(element).get('toggle');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('toggle', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles subtoggle click toggle\r\n */\r\n init: function(options) {\r\n the.element = element;\r\n the.events = [];\r\n\r\n // Merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n\r\n //alert(the.options.target.tagName);\r\n the.target = KTUtil.getById(options.target);\r\n\r\n the.targetState = the.options.targetState;\r\n the.toggleState = the.options.toggleState;\r\n\r\n if (the.options.targetToggleMode == 'class') {\r\n the.state = KTUtil.hasClasses(the.target, the.targetState) ? 'on' : 'off';\r\n } else {\r\n the.state = KTUtil.hasAttr(the.target, 'data-' + the.targetState) ? KTUtil.attr(the.target, 'data-' + the.targetState) : 'off';\r\n }\r\n },\r\n\r\n /**\r\n * Setup toggle\r\n */\r\n build: function() {\r\n KTUtil.addEvent(element, 'click', Plugin.toggle);// DEFAULT = mouseup\r\n },\r\n\r\n /**\r\n * Handles offcanvas click toggle\r\n */\r\n toggle: function(e) {\r\n Plugin.eventTrigger('beforeToggle');\r\n\r\n if (the.state == 'off') {\r\n Plugin.toggleOn();\r\n } else {\r\n Plugin.toggleOff();\r\n }\r\n\r\n Plugin.eventTrigger('afterToggle');\r\n\r\n e.preventDefault();\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles toggle click toggle\r\n */\r\n toggleOn: function() {\r\n Plugin.eventTrigger('beforeOn');\r\n\r\n if (the.options.targetToggleMode == 'class') {\r\n KTUtil.addClass(the.target, the.targetState);\r\n } else {\r\n KTUtil.attr(the.target, 'data-' + the.targetState, 'on');\r\n }\r\n\r\n if (the.toggleState) {\r\n KTUtil.addClass(element, the.toggleState);\r\n }\r\n\r\n the.state = 'on';\r\n\r\n Plugin.eventTrigger('afterOn');\r\n\r\n Plugin.eventTrigger('toggle');\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles toggle click toggle\r\n */\r\n toggleOff: function() {\r\n Plugin.eventTrigger('beforeOff');\r\n\r\n if (the.options.targetToggleMode == 'class') {\r\n KTUtil.removeClass(the.target, the.targetState);\r\n } else {\r\n KTUtil.removeAttr(the.target, 'data-' + the.targetState);\r\n }\r\n\r\n if (the.toggleState) {\r\n KTUtil.removeClass(element, the.toggleState);\r\n }\r\n\r\n the.state = 'off';\r\n\r\n Plugin.eventTrigger('afterOff');\r\n\r\n Plugin.eventTrigger('toggle');\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the);\r\n }\r\n } else {\r\n return event.handler.call(this, the);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n\r\n return the;\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Get toggle state\r\n */\r\n the.getState = function() {\r\n return the.state;\r\n };\r\n\r\n /**\r\n * Toggle\r\n */\r\n the.toggle = function() {\r\n return Plugin.toggle();\r\n };\r\n\r\n /**\r\n * Toggle on\r\n */\r\n the.toggleOn = function() {\r\n return Plugin.toggleOn();\r\n };\r\n\r\n /**\r\n * Toggle off\r\n */\r\n the.toggleOff = function() {\r\n return Plugin.toggleOff();\r\n };\r\n\r\n /**\r\n * Attach event\r\n * @returns {KTToggle}\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n * @returns {KTToggle}\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n // Construct plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTToggle;\r\n}\r\n\r\nexport default KTToggle;","import React, { Component } from 'react';\r\n// import { Redirect } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as service from \"./modules/Auth/_redux/authCrud\";\r\nimport * as auth from \"./modules/Auth/_redux/authRedux\";\r\nimport { ContentRoute } from \"../_metronic/layout\";\r\n\r\nclass AuthorizeRoute extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n ready: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateAuthenticationState();\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const response = await service.validationToken();\r\n const { status } = response || {};\r\n if(status === 401) this.props.logout();\r\n this.setState({ ready: true, authenticated: status !== 401 });\r\n }\r\n\r\n async authenticationChanged() {\r\n this.setState({ ready: false, authenticated: false });\r\n await this.populateAuthenticationState();\r\n }\r\n\r\n render() {\r\n const { ready, authenticated } = this.state;\r\n // console.log('authenticated: ', authenticated);\r\n /* \r\n let link = document.createElement(\"a\");\r\n link.href = this.props.path;\r\n const returnUrl = `${link.protocol}//${link.host}${link.pathname}${link.search}${link.hash}`;\r\n // eslint-disable-next-line\r\n const redirectUrl = `/authentication/login?ReturnUrl=${encodeURI(returnUrl)}`;\r\n */\r\n if (!ready) {\r\n return null; //
\r\n } else {\r\n const { component: Component, ...rest } = this.props;\r\n return (\r\n {\r\n if (authenticated) {\r\n return \r\n } \r\n }} \r\n />\r\n )\r\n }\r\n }\r\n}\r\n\r\nexport default connect(null, auth.actions)(AuthorizeRoute);\r\n","import React, { forwardRef } from 'react';\r\n// import { mapToCssModules } from './utils';\r\nimport { Cx } from '../../utils/Q';\r\n\r\n// cssModule\r\nconst Flex = forwardRef(\r\n\t({\r\n\t\tAs = \"div\", \r\n\t\tinline = false, \r\n\t\thidden = false,\r\n\t\tdir, \r\n\t\twrap, \r\n\t\tnowrap, \r\n\t\tjustify, \r\n\t\talign, \r\n\t\tself, \r\n\t\tfill, \r\n\t\tgrow, \r\n\t\tshrink, \r\n\t\tcontent, \r\n\t\tclassName, \r\n\t\t...etc\r\n\t}, \r\n\tref\r\n) => {\r\n\treturn (\r\n\t\t\r\n\t);\r\n});\r\n\r\nexport default Flex;\r\n\r\n// Flex.defaultProps = {\r\n// \tAs: 'div',\r\n// \tinline: false\r\n// };\r\n\r\n/* Flex.propTypes = {\r\n\t// as: P.oneOfType([P.func, P.string]),\r\n\t// type: P.string,\r\n\tdir: P.oneOf(['row', 'row-reverse', 'column', 'column-reverse']),\r\n\tjustify: P.oneOf(['start', 'end', 'center', 'between', 'around', 'even', 'stretch']),\r\n\talign: P.oneOf(['start', 'end', 'center', 'baseline', 'stretch']),\r\n\tclassName: P.string,\r\n\tcssModule: P.object\r\n}; */\r\n","import { permissionCodes } from \"@components/QueryBuilder/adapter\";\r\n\r\nexport const findByName = field => obj => {\r\n return obj.name === field.name\r\n}\r\n\r\nexport const findByValueActivityId = rule => obj => {\r\n return obj.value === rule.activityId\r\n}\r\nexport const isSection = ({ name, sections }) => {\r\n return sections.findIndex(s => s.name === name) > -1;\r\n}\r\n\r\nexport const rawToRules = ({ raw, rules, sections }) => {\r\n return rules.map(r => {\r\n const rule = {...r}\r\n const rawEntries = Object.entries(raw)\r\n const mapControl = entry => {\r\n const [name, config] = entry\r\n const { editability, visibility } = config\r\n const { defaultVisibility, root: rootVisibility } = visibility || {};\r\n const { defaultEditability, root: rootEditability } = editability || {};\r\n const visibilityControls = ['visible', 'hidden']\r\n const editabilityControls = ['editable', 'readonly']\r\n const controls = [\r\n defaultVisibility,\r\n defaultEditability,\r\n ]\r\n const rootPredicate = findByValueActivityId(rule)\r\n if (rootVisibility?.rules.findIndex(rootPredicate) !== -1) {\r\n controls.splice(controls.findIndex(c => c === defaultVisibility), 1)\r\n controls.push(visibilityControls.find(c => c !== defaultVisibility))\r\n }\r\n if (rootEditability?.rules.findIndex(rootPredicate) !== -1) {\r\n controls.splice(controls.findIndex(c => c === defaultEditability), 1)\r\n controls.push(editabilityControls.find(c => c !== defaultEditability))\r\n }\r\n\r\n return {\r\n name,\r\n control: Math.max(\r\n ...controls.map(c => {\r\n return permissionCodes.findIndex(code => code === c)\r\n })\r\n ),\r\n }\r\n }\r\n\r\n rule.fields = rawEntries.filter(([name]) => {\r\n return !isSection({ name, sections })\r\n }).map(mapControl)\r\n\r\n rule.fieldGroups = rawEntries.filter(([name]) => {\r\n return isSection({ name, sections })\r\n }).map(mapControl)\r\n\r\n return rule\r\n })\r\n}\r\n\r\nexport const setDefaultPermission = ({ permission, sections }) => {\r\n let result = {...permission}\r\n result.rules = rawToRules({ \r\n raw: permission.rawPermission, \r\n rules: permission.rules, \r\n sections,\r\n })\r\n return result\r\n}","import { initRequest } from \"@utils/actionMethods\";\r\nimport { parseJsonString } from \"@utils/json\"\r\n\r\nconst setTimeZone = (payload) => {\r\n return dispatch => dispatch({\r\n type: 'SET_TIME_ZONE',\r\n payload\r\n })\r\n}\r\nconst setQuickLaunch = (payload) => {\r\n return dispatch => dispatch({\r\n type: 'SET_QUICK_APP_MODULE',\r\n payload\r\n })\r\n}\r\nconst setUserInfo = (data) => {\r\n data.preference = parseJsonString(data?.preference)\r\n return dispatch => dispatch({\r\n type: 'SET_USER_INFO',\r\n payload: data\r\n })\r\n}\r\nconst getUserPreference = () => {\r\n return async dispatch => {\r\n const request = initRequest(dispatch)\r\n let result = { date_format:null, time_zone:null};\r\n await request( 'getUserInfo',null,\r\n ({ data }) => {\r\n result.date_format = data?.user?.date_format; \r\n dispatch(setUserInfo(data?.user));\r\n }\r\n )\r\n await request('getOrgTimeZone',null,\r\n ({ data }) => {\r\n const { date_format, time_zone } = data || {};\r\n result.date_format = result.date_format || date_format;\r\n result.time_zone = (!time_zone || time_zone === \"GMT Standard Time\") ? \"Etc/UTC\" : time_zone;\r\n }\r\n )\r\n dispatch(setTimeZone(result)); \r\n }\r\n}\r\n\r\nconst getQuickLaunchApps = () => {\r\n return async dispatch => {\r\n const request = initRequest(dispatch)\r\n await request( 'getQuickLaunchApps',null,\r\n ({ data }) => {\r\n if(data){ \r\n dispatch(setQuickLaunch(data));\r\n }\r\n }\r\n ) \r\n }\r\n}\r\nconst preferenceActions = {\r\n setTimeZone,\r\n setQuickLaunch,\r\n getUserPreference,\r\n getQuickLaunchApps\r\n}\r\n\r\nexport default preferenceActions","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport PerfectScrollbar from \"perfect-scrollbar\";\r\n\r\nimport { KTCookie } from \"./cookie.js\";\r\nimport { merge } from 'lodash'\r\n\r\n/**\r\n * @class KTUtil base utilize class that privides helper functions\r\n */\r\n\r\n// Polyfills\r\n/**\r\n * Element.matches() polyfill (simple version)\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\r\n */\r\nif (!Element.prototype.matches) {\r\n\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n}\r\n\r\n/**\r\n * Element.closest() polyfill\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill\r\n */\r\nif (!Element.prototype.closest) {\r\n\tif (!Element.prototype.matches) {\r\n\t\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n\t}\r\n\tElement.prototype.closest = function (s) {\r\n\t\tvar el = this;\r\n\t\tvar ancestor = this;\r\n\t\tif (!document.documentElement.contains(el)) return null;\r\n\t\tdo {\r\n\t\t\tif (ancestor.matches(s)) return ancestor;\r\n\t\t\tancestor = ancestor.parentElement;\r\n\t\t} while (ancestor !== null);\r\n\t\treturn null;\r\n\t};\r\n}\r\n\r\n/**\r\n * ChildNode.remove() polyfill\r\n * https://gomakethings.com/removing-an-element-from-the-dom-the-es6-way/\r\n * @author Chris Ferdinandi\r\n * @license MIT\r\n */\r\n(function (elem) {\r\n\tfor (var i = 0; i < elem.length; i++) {\r\n\t\tif (!window[elem[i]] || 'remove' in window[elem[i]].prototype) continue;\r\n\t\twindow[elem[i]].prototype.remove = function () {\r\n\t\t\tthis.parentNode.removeChild(this);\r\n\t\t};\r\n\t}\r\n})(['Element', 'CharacterData', 'DocumentType']);\r\n\r\n\r\n//\r\n// requestAnimationFrame polyfill by Erik Möller.\r\n// With fixes from Paul Irish and Tino Zijdel\r\n//\r\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\r\n//\r\n// MIT license\r\n//\r\n(function() {\r\n var lastTime = 0;\r\n var vendors = ['webkit', 'moz'];\r\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame =\r\n window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n\r\n if (!window.requestAnimationFrame)\r\n window.requestAnimationFrame = function(callback) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = window.setTimeout(function() {\r\n callback(currTime + timeToCall);\r\n }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n\r\n if (!window.cancelAnimationFrame)\r\n window.cancelAnimationFrame = function(id) {\r\n clearTimeout(id);\r\n };\r\n}());\r\n\r\n// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/prepend()/prepend().md\r\n(function(arr) {\r\n arr.forEach(function(item) {\r\n if (item.hasOwnProperty('prepend')) {\r\n return;\r\n }\r\n Object.defineProperty(item, 'prepend', {\r\n configurable: true,\r\n enumerable: true,\r\n writable: true,\r\n value: function prepend() {\r\n var argArr = Array.prototype.slice.call(arguments),\r\n docFrag = document.createDocumentFragment();\r\n\r\n argArr.forEach(function(argItem) {\r\n var isNode = argItem instanceof Node;\r\n docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));\r\n });\r\n\r\n this.insertBefore(docFrag, this.firstChild);\r\n }\r\n });\r\n });\r\n})([Element.prototype, Document.prototype, DocumentFragment.prototype]);\r\n\r\n// getAttributeNames\r\nif (Element.prototype.getAttributeNames == undefined) {\r\n Element.prototype.getAttributeNames = function () {\r\n var attributes = this.attributes;\r\n var length = attributes.length;\r\n var result = new Array(length);\r\n for (var i = 0; i < length; i++) {\r\n result[i] = attributes[i].name;\r\n }\r\n return result;\r\n };\r\n}\r\n\r\n// Global variables\r\nwindow.KTUtilElementDataStore = {};\r\nwindow.KTUtilElementDataStoreID = 0;\r\nwindow.KTUtilDelegatedEventHandlers = {};\r\n\r\nexport var KTUtil = function() {\r\n var resizeHandlers = [];\r\n\r\n /** @type {object} breakpoints The device width breakpoints **/\r\n var breakpoints = {\r\n sm: 544, // Small screen / phone\r\n md: 768, // Medium screen / tablet\r\n lg: 992, // Large screen / desktop\r\n xl: 1200 // Extra large screen / wide desktop\r\n };\r\n\r\n /**\r\n * Handle window resize event with some\r\n * delay to attach event handlers upon resize complete\r\n */\r\n var _windowResizeHandler = function() {\r\n var _runResizeHandlers = function() {\r\n // reinitialize other subscribed elements\r\n for (var i = 0; i < resizeHandlers.length; i++) {\r\n var each = resizeHandlers[i];\r\n each.call();\r\n }\r\n };\r\n\r\n var timer;\r\n\r\n window.addEventListener('resize', function() {\r\n KTUtil.throttle(timer, function() {\r\n _runResizeHandlers();\r\n }, 200);\r\n });\r\n };\r\n\r\n return {\r\n /**\r\n * Class main initializer.\r\n * @param {object} settings.\r\n * @returns null\r\n */\r\n //main function to initiate the theme\r\n init: function(settings) {\r\n if (settings && settings.breakpoints) {\r\n breakpoints = settings.breakpoints;\r\n }\r\n\r\n _windowResizeHandler();\r\n },\r\n\r\n /**\r\n * Adds window resize event handler.\r\n * @param {function} callback function.\r\n */\r\n addResizeHandler: function(callback) {\r\n resizeHandlers.push(callback);\r\n },\r\n\r\n /**\r\n * Removes window resize event handler.\r\n * @param {function} callback function.\r\n */\r\n removeResizeHandler: function(callback) {\r\n for (var i = 0; i < resizeHandlers.length; i++) {\r\n if (callback === resizeHandlers[i]) {\r\n delete resizeHandlers[i];\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Trigger window resize handlers.\r\n */\r\n runResizeHandlers: function() {\r\n _runResizeHandlers();\r\n },\r\n\r\n resize: function() {\r\n if (typeof(Event) === 'function') {\r\n // modern browsers\r\n window.dispatchEvent(new Event('resize'));\r\n } else {\r\n // for IE and other old browsers\r\n // causes deprecation warning on modern browsers\r\n var evt = window.document.createEvent('UIEvents');\r\n evt.initUIEvent('resize', true, false, window, 0);\r\n window.dispatchEvent(evt);\r\n }\r\n },\r\n\r\n /**\r\n * Get GET parameter value from URL.\r\n * @param {string} paramName Parameter name.\r\n * @returns {string}\r\n */\r\n getURLParam: function(paramName) {\r\n var searchString = window.location.search.substring(1),\r\n i, val, params = searchString.split(\"&\");\r\n\r\n for (i = 0; i < params.length; i++) {\r\n val = params[i].split(\"=\");\r\n if (val[0] == paramName) {\r\n return unescape(val[1]);\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * Checks whether current device is mobile touch.\r\n * @returns {boolean}\r\n */\r\n isMobileDevice: function() {\r\n var test = (this.getViewPort().width < this.getBreakpoint('lg') ? true : false);\r\n\r\n if (test === false) {\r\n // For use within normal web clients\r\n test = navigator.userAgent.match(/iPad/i) != null;\r\n }\r\n\r\n return test;\r\n },\r\n\r\n /**\r\n * Checks whether current device is desktop.\r\n * @returns {boolean}\r\n */\r\n isDesktopDevice: function() {\r\n return KTUtil.isMobileDevice() ? false : true;\r\n },\r\n\r\n /**\r\n * Gets browser window viewport size. Ref:\r\n * http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/\r\n * @returns {object}\r\n */\r\n getViewPort: function() {\r\n var e = window,\r\n a = 'inner';\r\n if (!('innerWidth' in window)) {\r\n a = 'client';\r\n e = document.documentElement || document.body;\r\n }\r\n\r\n return {\r\n width: e[a + 'Width'],\r\n height: e[a + 'Height']\r\n };\r\n },\r\n\r\n /**\r\n * Checks whether given device mode is currently activated.\r\n * @param {string} mode Responsive mode name(e.g: desktop,\r\n * desktop-and-tablet, tablet, tablet-and-mobile, mobile)\r\n * @returns {boolean}\r\n */\r\n isInResponsiveRange: function(mode) {\r\n var breakpoint = this.getViewPort().width;\r\n\r\n if (mode == 'general') {\r\n return true;\r\n } else if (mode == 'desktop' && breakpoint >= (this.getBreakpoint('lg') + 1)) {\r\n return true;\r\n } else if (mode == 'tablet' && (breakpoint >= (this.getBreakpoint('md') + 1) && breakpoint < this.getBreakpoint('lg'))) {\r\n return true;\r\n } else if (mode == 'mobile' && breakpoint <= this.getBreakpoint('md')) {\r\n return true;\r\n } else if (mode == 'desktop-and-tablet' && breakpoint >= (this.getBreakpoint('md') + 1)) {\r\n return true;\r\n } else if (mode == 'tablet-and-mobile' && breakpoint <= this.getBreakpoint('lg')) {\r\n return true;\r\n } else if (mode == 'minimal-desktop-and-below' && breakpoint <= this.getBreakpoint('xl')) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n\t\t/**\r\n * Checks whether given device mode is currently activated.\r\n * @param {string} mode Responsive mode name(e.g: desktop,\r\n * desktop-and-tablet, tablet, tablet-and-mobile, mobile)\r\n * @returns {boolean}\r\n */\r\n isBreakpointUp: function(mode) {\r\n var width = this.getViewPort().width;\r\n\t\t\tvar breakpoint = this.getBreakpoint(mode);\r\n\r\n\t\t\treturn (width >= breakpoint);\r\n },\r\n\r\n\t\tisBreakpointDown: function(mode) {\r\n var width = this.getViewPort().width;\r\n\t\t\tvar breakpoint = this.getBreakpoint(mode);\r\n\r\n\t\t\treturn (width < breakpoint);\r\n },\r\n\r\n /**\r\n * Generates unique ID for give prefix.\r\n * @param {string} prefix Prefix for generated ID\r\n * @returns {boolean}\r\n */\r\n getUniqueID: function(prefix) {\r\n return prefix + Math.floor(Math.random() * (new Date()).getTime());\r\n },\r\n\r\n /**\r\n * Gets window width for give breakpoint mode.\r\n * @param {string} mode Responsive mode name(e.g: xl, lg, md, sm)\r\n * @returns {number}\r\n */\r\n getBreakpoint: function(mode) {\r\n return breakpoints[mode];\r\n },\r\n\r\n /**\r\n * Checks whether object has property matchs given key path.\r\n * @param {object} obj Object contains values paired with given key path\r\n * @param {string} keys Keys path seperated with dots\r\n * @returns {object}\r\n */\r\n isset: function(obj, keys) {\r\n var stone;\r\n\r\n keys = keys || '';\r\n\r\n if (keys.indexOf('[') !== -1) {\r\n throw new Error('Unsupported object path notation.');\r\n }\r\n\r\n keys = keys.split('.');\r\n\r\n do {\r\n if (obj === undefined) {\r\n return false;\r\n }\r\n\r\n stone = keys.shift();\r\n\r\n if (!obj.hasOwnProperty(stone)) {\r\n return false;\r\n }\r\n\r\n obj = obj[stone];\r\n\r\n } while (keys.length);\r\n\r\n return true;\r\n },\r\n\r\n /**\r\n * Gets highest z-index of the given element parents\r\n * @param {object} el jQuery element object\r\n * @returns {number}\r\n */\r\n getHighestZindex: function(el) {\r\n var position, value;\r\n\r\n while (el && el !== document) {\r\n // Ignore z-index if position is set to a value where z-index is ignored by the browser\r\n // This makes behavior of this function consistent across browsers\r\n // WebKit always returns auto if the element is positioned\r\n position = KTUtil.css(el, 'position');\r\n\r\n if (position === \"absolute\" || position === \"relative\" || position === \"fixed\") {\r\n // IE returns 0 when zIndex is not specified\r\n // other browsers return a string\r\n // we ignore the case of nested elements with an explicit value of 0\r\n //
\r\n value = parseInt(KTUtil.css(el, 'z-index'));\r\n\r\n if (!isNaN(value) && value !== 0) {\r\n return value;\r\n }\r\n }\r\n\r\n el = el.parentNode;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * Checks whether the element has any parent with fixed positionfreg\r\n * @param {object} el jQuery element object\r\n * @returns {boolean}\r\n */\r\n hasFixedPositionedParent: function(el) {\r\n var position;\r\n\r\n while (el && el !== document) {\r\n position = KTUtil.css(el, 'position');\r\n\r\n if (position === \"fixed\") {\r\n return true;\r\n }\r\n\r\n el = el.parentNode;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n /**\r\n * Simulates delay\r\n */\r\n sleep: function(milliseconds) {\r\n var start = new Date().getTime();\r\n for (var i = 0; i < 1e7; i++) {\r\n if ((new Date().getTime() - start) > milliseconds) {\r\n break;\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Gets randomly generated integer value within given min and max range\r\n * @param {number} min Range start value\r\n * @param {number} max Range end value\r\n * @returns {number}\r\n */\r\n getRandomInt: function(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n },\r\n\r\n /**\r\n * Checks whether Angular library is included\r\n * @returns {boolean}\r\n */\r\n isAngularVersion: function() {\r\n return window.Zone !== undefined ? true : false;\r\n },\r\n\r\n // jQuery Workarounds\r\n\r\n // Deep extend: $.extend(true, {}, objA, objB);\r\n deepExtend: function(...args) {\r\n return merge(...args)\r\n },\r\n\r\n // extend: $.extend({}, objA, objB);\r\n extend: function(out) {\r\n out = out || {};\r\n\r\n for (var i = 1; i < arguments.length; i++) {\r\n if (!arguments[i])\r\n continue;\r\n\r\n for (var key in arguments[i]) {\r\n if (arguments[i].hasOwnProperty(key))\r\n out[key] = arguments[i][key];\r\n }\r\n }\r\n\r\n return out;\r\n },\r\n\r\n getById: function(el) {\r\n if (typeof el === 'string') {\r\n return document.getElementById(el);\r\n } else {\r\n return el;\r\n }\r\n },\r\n\r\n getByTag: function(query) {\r\n return document.getElementsByTagName(query);\r\n },\r\n\r\n getByTagName: function(query) {\r\n return document.getElementsByTagName(query);\r\n },\r\n\r\n getByClass: function(query) {\r\n return document.getElementsByClassName(query);\r\n },\r\n\r\n getBody: function() {\r\n return document.getElementsByTagName('body')[0];\r\n },\r\n\r\n /**\r\n * Checks whether the element has given classes\r\n * @param {object} el jQuery element object\r\n * @param {string} Classes string\r\n * @returns {boolean}\r\n */\r\n hasClasses: function(el, classes) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n var classesArr = classes.split(\" \");\r\n\r\n for (var i = 0; i < classesArr.length; i++) {\r\n if (KTUtil.hasClass(el, KTUtil.trim(classesArr[i])) == false) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n hasClass: function(el, className) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n return el.classList ? el.classList.contains(className) : new RegExp('\\\\b' + className + '\\\\b').test(el.className);\r\n },\r\n\r\n addClass: function(el, className) {\r\n if (!el || typeof className === 'undefined') {\r\n return;\r\n }\r\n\r\n var classNames = className.split(' ');\r\n\r\n if (el.classList) {\r\n for (var i = 0; i < classNames.length; i++) {\r\n if (classNames[i] && classNames[i].length > 0) {\r\n el.classList.add(KTUtil.trim(classNames[i]));\r\n }\r\n }\r\n } else if (!KTUtil.hasClass(el, className)) {\r\n for (var x = 0; x < classNames.length; x++) {\r\n el.className += ' ' + KTUtil.trim(classNames[x]);\r\n }\r\n }\r\n },\r\n\r\n removeClass: function(el, className) {\r\n if (!el || typeof className === 'undefined') {\r\n return;\r\n }\r\n\r\n var classNames = className.split(' ');\r\n\r\n if (el.classList) {\r\n for (var i = 0; i < classNames.length; i++) {\r\n el.classList.remove(KTUtil.trim(classNames[i]));\r\n }\r\n } else if (KTUtil.hasClass(el, className)) {\r\n for (var x = 0; x < classNames.length; x++) {\r\n el.className = el.className.replace(new RegExp('\\\\b' + KTUtil.trim(classNames[x]) + '\\\\b', 'g'), '');\r\n }\r\n }\r\n },\r\n\r\n triggerCustomEvent: function(el, eventName, data) {\r\n var event;\r\n if (window.CustomEvent) {\r\n event = new CustomEvent(eventName, {\r\n detail: data\r\n });\r\n } else {\r\n event = document.createEvent('CustomEvent');\r\n event.initCustomEvent(eventName, true, true, data);\r\n }\r\n\r\n el.dispatchEvent(event);\r\n },\r\n\r\n triggerEvent: function(node, eventName) {\r\n // Make sure we use the ownerDocument from the provided node to avoid cross-window problems\r\n var doc;\r\n if (node.ownerDocument) {\r\n doc = node.ownerDocument;\r\n } else if (node.nodeType == 9) {\r\n // the node may be the document itself, nodeType 9 = DOCUMENT_NODE\r\n doc = node;\r\n } else {\r\n throw new Error(\"Invalid node passed to fireEvent: \" + node.id);\r\n }\r\n\r\n if (node.dispatchEvent) {\r\n // Gecko-style approach (now the standard) takes more work\r\n var eventClass = \"\";\r\n\r\n // Different events have different event classes.\r\n // If this switch statement can't map an eventName to an eventClass,\r\n // the event firing is going to fail.\r\n switch (eventName) {\r\n case \"click\": // Dispatching of 'click' appears to not work correctly in Safari. Use 'mousedown' or 'mouseup' instead.\r\n case \"mouseenter\":\r\n case \"mouseleave\":\r\n case \"mousedown\":\r\n case \"mouseup\":\r\n eventClass = \"MouseEvents\";\r\n break;\r\n\r\n case \"focus\":\r\n case \"change\":\r\n case \"blur\":\r\n case \"select\":\r\n eventClass = \"HTMLEvents\";\r\n break;\r\n\r\n default:\r\n throw \"fireEvent: Couldn't find an event class for event '\" + eventName + \"'.\";\r\n break;\r\n }\r\n var event = doc.createEvent(eventClass);\r\n\r\n var bubbles = eventName == \"change\" ? false : true;\r\n event.initEvent(eventName, bubbles, true); // All events created as bubbling and cancelable.\r\n\r\n event.synthetic = true; // allow detection of synthetic events\r\n // The second parameter says go ahead with the default action\r\n node.dispatchEvent(event, true);\r\n } else if (node.fireEvent) {\r\n // IE-old school style\r\n var event = doc.createEventObject();\r\n event.synthetic = true; // allow detection of synthetic events\r\n node.fireEvent(\"on\" + eventName, event);\r\n }\r\n },\r\n\r\n index: function( el ){\r\n var c = el.parentNode.children, i = 0;\r\n for(; i < c.length; i++ )\r\n if( c[i] == el ) return i;\r\n },\r\n\r\n trim: function(string) {\r\n return string.trim();\r\n },\r\n\r\n eventTriggered: function(e) {\r\n if (e.currentTarget.dataset.triggered) {\r\n return true;\r\n } else {\r\n e.currentTarget.dataset.triggered = true;\r\n\r\n return false;\r\n }\r\n },\r\n\r\n remove: function(el) {\r\n if (el && el.parentNode) {\r\n el.parentNode.removeChild(el);\r\n }\r\n },\r\n\r\n find: function(parent, query) {\r\n parent = KTUtil.getById(parent);\r\n if (parent) {\r\n return parent.querySelector(query);\r\n }\r\n },\r\n\r\n findAll: function(parent, query) {\r\n parent = KTUtil.getById(parent);\r\n if (parent) {\r\n return parent.querySelectorAll(query);\r\n }\r\n },\r\n\r\n insertAfter: function(el, referenceNode) {\r\n return referenceNode.parentNode.insertBefore(el, referenceNode.nextSibling);\r\n },\r\n\r\n parents: function(elem, selector) {\r\n // Element.matches() polyfill\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches =\r\n Element.prototype.matchesSelector ||\r\n Element.prototype.mozMatchesSelector ||\r\n Element.prototype.msMatchesSelector ||\r\n Element.prototype.oMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector ||\r\n function(s) {\r\n var matches = (this.document || this.ownerDocument).querySelectorAll(s),\r\n i = matches.length;\r\n while (--i >= 0 && matches.item(i) !== this) {}\r\n return i > -1;\r\n };\r\n }\r\n\r\n // Set up a parent array\r\n var parents = [];\r\n\r\n // Push each parent element to the array\r\n for ( ; elem && elem !== document; elem = elem.parentNode ) {\r\n if (selector) {\r\n if (elem.matches(selector)) {\r\n parents.push(elem);\r\n }\r\n continue;\r\n }\r\n parents.push(elem);\r\n }\r\n\r\n // Return our parent array\r\n return parents;\r\n },\r\n\r\n children: function(el, selector, log) {\r\n if (!el || !el.childNodes) {\r\n return;\r\n }\r\n\r\n var result = [],\r\n i = 0,\r\n l = el.childNodes.length;\r\n\r\n for (var i; i < l; ++i) {\r\n if (el.childNodes[i].nodeType == 1 && KTUtil.matches(el.childNodes[i], selector, log)) {\r\n result.push(el.childNodes[i]);\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n\r\n child: function(el, selector, log) {\r\n var children = KTUtil.children(el, selector, log);\r\n\r\n return children ? children[0] : null;\r\n },\r\n\r\n matches: function(el, selector, log) {\r\n var p = Element.prototype;\r\n var f = p.matches || p.webkitMatchesSelector || p.mozMatchesSelector || p.msMatchesSelector || function(s) {\r\n return [].indexOf.call(document.querySelectorAll(s), this) !== -1;\r\n };\r\n\r\n if (el && el.tagName) {\r\n return f.call(el, selector);\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n data: function(el) {\r\n return {\r\n set: function(name, data) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (el.customDataTag === undefined) {\r\n window.KTUtilElementDataStoreID++;\r\n el.customDataTag = window.KTUtilElementDataStoreID;\r\n }\r\n\r\n if (window.KTUtilElementDataStore[el.customDataTag] === undefined) {\r\n window.KTUtilElementDataStore[el.customDataTag] = {};\r\n }\r\n\r\n window.KTUtilElementDataStore[el.customDataTag][name] = data;\r\n },\r\n\r\n get: function(name) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (el.customDataTag === undefined) {\r\n return null;\r\n }\r\n\r\n return this.has(name) ? window.KTUtilElementDataStore[el.customDataTag][name] : null;\r\n },\r\n\r\n has: function(name) {\r\n if (!el) {\r\n return false;\r\n }\r\n\r\n if (el.customDataTag === undefined) {\r\n return false;\r\n }\r\n\r\n return (window.KTUtilElementDataStore[el.customDataTag] && window.KTUtilElementDataStore[el.customDataTag][name]) ? true : false;\r\n },\r\n\r\n remove: function(name) {\r\n if (el && this.has(name)) {\r\n delete window.KTUtilElementDataStore[el.customDataTag][name];\r\n }\r\n }\r\n };\r\n },\r\n\r\n outerWidth: function(el, margin) {\r\n var width;\r\n\r\n if (margin === true) {\r\n width = parseFloat(el.offsetWidth);\r\n width += parseFloat(KTUtil.css(el, 'margin-left')) + parseFloat(KTUtil.css(el, 'margin-right'));\r\n\r\n return parseFloat(width);\r\n } else {\r\n width = parseFloat(el.offsetWidth);\r\n\r\n return width;\r\n }\r\n },\r\n\r\n offset: function(el) {\r\n var rect, win;\r\n\r\n if ( !el ) {\r\n return;\r\n }\r\n\r\n // Return zeros for disconnected and hidden (display: none) elements (gh-2310)\r\n // Support: IE <=11 only\r\n // Running getBoundingClientRect on a\r\n // disconnected node in IE throws an error\r\n\r\n if ( !el.getClientRects().length ) {\r\n return { top: 0, left: 0 };\r\n }\r\n\r\n // Get document-relative position by adding viewport scroll to viewport-relative gBCR\r\n rect = el.getBoundingClientRect();\r\n win = el.ownerDocument.defaultView;\r\n\r\n return {\r\n top: rect.top + win.pageYOffset,\r\n left: rect.left + win.pageXOffset\r\n };\r\n },\r\n\r\n height: function(el) {\r\n return KTUtil.css(el, 'height');\r\n },\r\n\r\n outerHeight: function(el, withMargic = false) {\r\n var height = el.offsetHeight;\r\n var style;\r\n\r\n if (withMargic) {\r\n style = getComputedStyle(el);\r\n height += parseInt(style.marginTop) + parseInt(style.marginBottom);\r\n\r\n return height;\r\n } else {\r\n return height;\r\n }\r\n },\r\n\r\n visible: function(el) {\r\n return !(el.offsetWidth === 0 && el.offsetHeight === 0);\r\n },\r\n\r\n attr: function(el, name, value) {\r\n if (el == undefined) {\r\n return;\r\n }\r\n\r\n if (value !== undefined) {\r\n el.setAttribute(name, value);\r\n } else {\r\n return el.getAttribute(name);\r\n }\r\n },\r\n\r\n hasAttr: function(el, name) {\r\n if (el == undefined) {\r\n return;\r\n }\r\n\r\n return el.getAttribute(name) ? true : false;\r\n },\r\n\r\n removeAttr: function(el, name) {\r\n if (el == undefined) {\r\n return;\r\n }\r\n\r\n el.removeAttribute(name);\r\n },\r\n\r\n animate: function(from, to, duration, update, easing, done) {\r\n /**\r\n * TinyAnimate.easings\r\n * Adapted from jQuery Easing\r\n */\r\n var easings = {};\r\n var easing;\r\n\r\n easings.linear = function(t, b, c, d) {\r\n return c * t / d + b;\r\n };\r\n\r\n easing = easings.linear;\r\n\r\n // Early bail out if called incorrectly\r\n if (typeof from !== 'number' ||\r\n typeof to !== 'number' ||\r\n typeof duration !== 'number' ||\r\n typeof update !== 'function') {\r\n return;\r\n }\r\n\r\n // Create mock done() function if necessary\r\n if (typeof done !== 'function') {\r\n done = function() {};\r\n }\r\n\r\n // Pick implementation (requestAnimationFrame | setTimeout)\r\n var rAF = window.requestAnimationFrame || function(callback) {\r\n window.setTimeout(callback, 1000 / 50);\r\n };\r\n\r\n // Animation loop\r\n var canceled = false;\r\n var change = to - from;\r\n\r\n function loop(timestamp) {\r\n var time = (timestamp || +new Date()) - start;\r\n\r\n if (time >= 0) {\r\n update(easing(time, from, change, duration));\r\n }\r\n if (time >= 0 && time >= duration) {\r\n update(to);\r\n done();\r\n } else {\r\n rAF(loop);\r\n }\r\n }\r\n\r\n update(from);\r\n\r\n // Start animation loop\r\n var start = window.performance && window.performance.now ? window.performance.now() : +new Date();\r\n\r\n rAF(loop);\r\n },\r\n\r\n actualCss: function(el, prop, cache) {\r\n var css = '';\r\n\r\n if (el instanceof HTMLElement === false) {\r\n return;\r\n }\r\n\r\n if (!el.getAttribute('kt-hidden-' + prop) || cache === false) {\r\n var value;\r\n\r\n // the element is hidden so:\r\n // making the el block so we can meassure its height but still be hidden\r\n css = el.style.cssText;\r\n el.style.cssText = 'position: absolute; visibility: hidden; display: block;';\r\n\r\n if (prop == 'width') {\r\n value = el.offsetWidth;\r\n } else if (prop == 'height') {\r\n value = el.offsetHeight;\r\n }\r\n\r\n el.style.cssText = css;\r\n\r\n // store it in cache\r\n el.setAttribute('kt-hidden-' + prop, value);\r\n\r\n return parseFloat(value);\r\n } else {\r\n // store it in cache\r\n return parseFloat(el.getAttribute('kt-hidden-' + prop));\r\n }\r\n },\r\n\r\n actualHeight: function(el, cache) {\r\n return KTUtil.actualCss(el, 'height', cache);\r\n },\r\n\r\n actualWidth: function(el, cache) {\r\n return KTUtil.actualCss(el, 'width', cache);\r\n },\r\n\r\n getScroll: function(element, method) {\r\n // The passed in `method` value should be 'Top' or 'Left'\r\n method = 'scroll' + method;\r\n return (element == window || element == document) ? (\r\n self[(method == 'scrollTop') ? 'pageYOffset' : 'pageXOffset'] ||\r\n (browserSupportsBoxModel && document.documentElement[method]) ||\r\n document.body[method]\r\n ) : element[method];\r\n },\r\n\r\n css: function(el, styleProp, value) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (value !== undefined) {\r\n el.style[styleProp] = value;\r\n } else {\r\n var defaultView = (el.ownerDocument || document).defaultView;\r\n // W3C standard way:\r\n if (defaultView && defaultView.getComputedStyle) {\r\n // sanitize property name to css notation\r\n // (hyphen separated words eg. font-Size)\r\n styleProp = styleProp.replace(/([A-Z])/g, \"-$1\").toLowerCase();\r\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);\r\n } else if (el.currentStyle) { // IE\r\n // sanitize property name to camelCase\r\n styleProp = styleProp.replace(/\\-(\\w)/g, function(str, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = el.currentStyle[styleProp];\r\n // convert other units to pixels on IE\r\n if (/^\\d+(em|pt|%|ex)?$/i.test(value)) {\r\n return (function(value) {\r\n var oldLeft = el.style.left,\r\n oldRsLeft = el.runtimeStyle.left;\r\n el.runtimeStyle.left = el.currentStyle.left;\r\n el.style.left = value || 0;\r\n value = el.style.pixelLeft + \"px\";\r\n el.style.left = oldLeft;\r\n el.runtimeStyle.left = oldRsLeft;\r\n return value;\r\n })(value);\r\n }\r\n return value;\r\n }\r\n }\r\n },\r\n\r\n slide: function(el, dir, speed, callback, recalcMaxHeight) {\r\n if (!el || (dir == 'up' && KTUtil.visible(el) === false) || (dir == 'down' && KTUtil.visible(el) === true)) {\r\n return;\r\n }\r\n\r\n speed = (speed ? speed : 600);\r\n var calcHeight = KTUtil.actualHeight(el);\r\n var calcPaddingTop = false;\r\n var calcPaddingBottom = false;\r\n\r\n if (KTUtil.css(el, 'padding-top') && KTUtil.data(el).has('slide-padding-top') !== true) {\r\n KTUtil.data(el).set('slide-padding-top', KTUtil.css(el, 'padding-top'));\r\n }\r\n\r\n if (KTUtil.css(el, 'padding-bottom') && KTUtil.data(el).has('slide-padding-bottom') !== true) {\r\n KTUtil.data(el).set('slide-padding-bottom', KTUtil.css(el, 'padding-bottom'));\r\n }\r\n\r\n if (KTUtil.data(el).has('slide-padding-top')) {\r\n calcPaddingTop = parseInt(KTUtil.data(el).get('slide-padding-top'));\r\n }\r\n\r\n if (KTUtil.data(el).has('slide-padding-bottom')) {\r\n calcPaddingBottom = parseInt(KTUtil.data(el).get('slide-padding-bottom'));\r\n }\r\n\r\n if (dir == 'up') { // up\r\n el.style.cssText = 'display: block; overflow: hidden;';\r\n\r\n if (calcPaddingTop) {\r\n KTUtil.animate(0, calcPaddingTop, speed, function(value) {\r\n el.style.paddingTop = (calcPaddingTop - value) + 'px';\r\n }, 'linear');\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n KTUtil.animate(0, calcPaddingBottom, speed, function(value) {\r\n el.style.paddingBottom = (calcPaddingBottom - value) + 'px';\r\n }, 'linear');\r\n }\r\n\r\n KTUtil.animate(0, calcHeight, speed, function(value) {\r\n el.style.height = (calcHeight - value) + 'px';\r\n }, 'linear', function() {\r\n el.style.height = '';\r\n el.style.display = 'none';\r\n\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n });\r\n\r\n\r\n } else if (dir == 'down') { // down\r\n el.style.cssText = 'display: block; overflow: hidden;';\r\n\r\n if (calcPaddingTop) {\r\n KTUtil.animate(0, calcPaddingTop, speed, function(value) {//\r\n el.style.paddingTop = value + 'px';\r\n }, 'linear', function() {\r\n el.style.paddingTop = '';\r\n });\r\n }\r\n\r\n if (calcPaddingBottom) {\r\n KTUtil.animate(0, calcPaddingBottom, speed, function(value) {\r\n el.style.paddingBottom = value + 'px';\r\n }, 'linear', function() {\r\n el.style.paddingBottom = '';\r\n });\r\n }\r\n\r\n KTUtil.animate(0, calcHeight, speed, function(value) {\r\n el.style.height = value + 'px';\r\n }, 'linear', function() {\r\n el.style.height = '';\r\n el.style.display = '';\r\n el.style.overflow = '';\r\n\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n });\r\n }\r\n },\r\n\r\n slideUp: function(el, speed, callback) {\r\n KTUtil.slide(el, 'up', speed, callback);\r\n },\r\n\r\n slideDown: function(el, speed, callback) {\r\n KTUtil.slide(el, 'down', speed, callback);\r\n },\r\n\r\n show: function(el, display) {\r\n if (typeof el !== 'undefined') {\r\n el.style.display = (display ? display : 'block');\r\n }\r\n },\r\n\r\n hide: function(el) {\r\n if (typeof el !== 'undefined') {\r\n el.style.display = 'none';\r\n }\r\n },\r\n\r\n addEvent: function(el, type, handler, one) {\r\n if (typeof el !== 'undefined' && el !== null) {\r\n el.addEventListener(type, handler);\r\n }\r\n },\r\n\r\n removeEvent: function(el, type, handler) {\r\n if (el !== null) {\r\n el.removeEventListener(type, handler);\r\n }\r\n },\r\n\r\n on: function(element, selector, event, handler) {\r\n if (!selector) {\r\n return;\r\n }\r\n\r\n var eventId = KTUtil.getUniqueID('event');\r\n\r\n window.KTUtilDelegatedEventHandlers[eventId] = function(e) {\r\n var targets = element.querySelectorAll(selector);\r\n var target = e.target;\r\n\r\n while (target && target !== element) {\r\n for (var i = 0, j = targets.length; i < j; i++) {\r\n if (target === targets[i]) {\r\n handler.call(target, e);\r\n }\r\n }\r\n\r\n target = target.parentNode;\r\n }\r\n }\r\n\r\n KTUtil.addEvent(element, event, window.KTUtilDelegatedEventHandlers[eventId]);\r\n\r\n return eventId;\r\n },\r\n\r\n off: function(element, event, eventId) {\r\n if (!element || !window.KTUtilDelegatedEventHandlers[eventId]) {\r\n return;\r\n }\r\n\r\n KTUtil.removeEvent(element, event, window.KTUtilDelegatedEventHandlers[eventId]);\r\n\r\n delete window.KTUtilDelegatedEventHandlers[eventId];\r\n },\r\n\r\n one: function onetime(el, type, callback) {\r\n el.addEventListener(type, function callee(e) {\r\n // remove event\r\n if (e.target && e.target.removeEventListener) {\r\n e.target.removeEventListener(e.type, callee);\r\n }\r\n\r\n // need to verify from https://themeforest.net/author_dashboard#comment_23615588\r\n if (el && el.removeEventListener) {\r\n\t\t\t\t e.currentTarget.removeEventListener(e.type, callee);\r\n\t\t\t }\r\n\r\n // call handler\r\n return callback(e);\r\n });\r\n },\r\n\r\n hash: function(str) {\r\n var hash = 0,\r\n i, chr;\r\n\r\n if (str.length === 0) return hash;\r\n for (i = 0; i < str.length; i++) {\r\n chr = str.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + chr;\r\n hash |= 0; // Convert to 32bit integer\r\n }\r\n\r\n return hash;\r\n },\r\n\r\n animateClass: function(el, animationName, callback) {\r\n var animation;\r\n var animations = {\r\n animation: 'animationend',\r\n OAnimation: 'oAnimationEnd',\r\n MozAnimation: 'mozAnimationEnd',\r\n WebkitAnimation: 'webkitAnimationEnd',\r\n msAnimation: 'msAnimationEnd',\r\n };\r\n\r\n for (var t in animations) {\r\n if (el.style[t] !== undefined) {\r\n animation = animations[t];\r\n }\r\n }\r\n\r\n KTUtil.addClass(el, 'animated ' + animationName);\r\n\r\n KTUtil.one(el, animation, function() {\r\n KTUtil.removeClass(el, 'animated ' + animationName);\r\n });\r\n\r\n if (callback) {\r\n KTUtil.one(el, animation, callback);\r\n }\r\n },\r\n\r\n transitionEnd: function(el, callback) {\r\n var transition;\r\n var transitions = {\r\n transition: 'transitionend',\r\n OTransition: 'oTransitionEnd',\r\n MozTransition: 'mozTransitionEnd',\r\n WebkitTransition: 'webkitTransitionEnd',\r\n msTransition: 'msTransitionEnd'\r\n };\r\n\r\n for (var t in transitions) {\r\n if (el.style[t] !== undefined) {\r\n transition = transitions[t];\r\n }\r\n }\r\n\r\n KTUtil.one(el, transition, callback);\r\n },\r\n\r\n animationEnd: function(el, callback) {\r\n var animation;\r\n var animations = {\r\n animation: 'animationend',\r\n OAnimation: 'oAnimationEnd',\r\n MozAnimation: 'mozAnimationEnd',\r\n WebkitAnimation: 'webkitAnimationEnd',\r\n msAnimation: 'msAnimationEnd'\r\n };\r\n\r\n for (var t in animations) {\r\n if (el.style[t] !== undefined) {\r\n animation = animations[t];\r\n }\r\n }\r\n\r\n KTUtil.one(el, animation, callback);\r\n },\r\n\r\n animateDelay: function(el, value) {\r\n var vendors = ['webkit-', 'moz-', 'ms-', 'o-', ''];\r\n for (var i = 0; i < vendors.length; i++) {\r\n KTUtil.css(el, vendors[i] + 'animation-delay', value);\r\n }\r\n },\r\n\r\n animateDuration: function(el, value) {\r\n var vendors = ['webkit-', 'moz-', 'ms-', 'o-', ''];\r\n for (var i = 0; i < vendors.length; i++) {\r\n KTUtil.css(el, vendors[i] + 'animation-duration', value);\r\n }\r\n },\r\n\r\n scrollTo: function(target, offset, duration) {\r\n var duration = duration ? duration : 500;\r\n var targetPos = target ? KTUtil.offset(target).top : 0;\r\n var scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n var from, to;\r\n\r\n if (offset) {\r\n scrollPos += offset;\r\n }\r\n\r\n from = scrollPos;\r\n to = targetPos;\r\n\r\n KTUtil.animate(from, to, duration, function(value) {\r\n document.documentElement.scrollTop = value;\r\n document.body.parentNode.scrollTop = value;\r\n document.body.scrollTop = value;\r\n }); //, easing, done\r\n },\r\n\r\n scrollTop: function(offset, duration) {\r\n KTUtil.scrollTo(null, offset, duration);\r\n },\r\n\r\n isArray: function(obj) {\r\n return obj && Array.isArray(obj);\r\n },\r\n\r\n ready: function(callback) {\r\n if (document.attachEvent ? document.readyState === \"complete\" : document.readyState !== \"loading\") {\r\n callback();\r\n } else {\r\n document.addEventListener('DOMContentLoaded', callback);\r\n }\r\n },\r\n\r\n isEmpty: function(obj) {\r\n for (var prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n numberString: function(nStr) {\r\n nStr += '';\r\n var x = nStr.split('.');\r\n var x1 = x[0];\r\n var x2 = x.length > 1 ? '.' + x[1] : '';\r\n var rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + x2;\r\n },\r\n\r\n detectIE: function() {\r\n var ua = window.navigator.userAgent;\r\n\r\n // Test values; Uncomment to check result …\r\n\r\n // IE 10\r\n // ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';\r\n\r\n // IE 11\r\n // ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';\r\n\r\n // Edge 12 (Spartan)\r\n // ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';\r\n\r\n // Edge 13\r\n // ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586';\r\n\r\n var msie = ua.indexOf('MSIE ');\r\n if (msie > 0) {\r\n // IE 10 or older => return version number\r\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\r\n }\r\n\r\n var trident = ua.indexOf('Trident/');\r\n if (trident > 0) {\r\n // IE 11 => return version number\r\n var rv = ua.indexOf('rv:');\r\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\r\n }\r\n\r\n var edge = ua.indexOf('Edge/');\r\n if (edge > 0) {\r\n // Edge (IE 12+) => return version number\r\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\r\n }\r\n\r\n // other browser\r\n return false;\r\n },\r\n\r\n isRTL: function() {\r\n var html = KTUtil.getByTagName('html')[0];\r\n\r\n if (html) {\r\n return (KTUtil.attr(html, 'direction') == 'rtl');\r\n }\r\n },\r\n\r\n // Scroller\r\n scrollInit: function(element, options) {\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Learn more: https://github.com/mdbootstrap/perfect-scrollbar#options\r\n var pluginDefOptions = {\r\n wheelSpeed: 0.5,\r\n swipeEasing: true,\r\n wheelPropagation: false,\r\n minScrollbarLength: 40,\r\n maxScrollbarLength: 300,\r\n suppressScrollX: true\r\n };\r\n\r\n options = KTUtil.deepExtend({}, pluginDefOptions, options);\r\n\r\n // Define init function\r\n function init() {\r\n var ps;\r\n var height;\r\n\r\n // Get extra options via data attributes\r\n var attrs = element.getAttributeNames();\r\n if (attrs.length > 0) {\r\n attrs.forEach(function(attrName) {\r\n \t\t\t// more options; https://github.com/ganlanyuan/tiny-slider#options\r\n \t\t\tif ((/^data-.*/g).test(attrName)) {\r\n if (['scroll', 'height', 'mobile-height'].includes(optionName) == false) {\r\n var optionName = attrName.replace('data-', '').toLowerCase().replace(/(?:[\\s-])\\w/g, function(match) {\r\n \t\t\t\t\treturn match.replace('-', '').toUpperCase();\r\n \t\t\t\t});\r\n\r\n options[optionName] = KTUtil.filterBoolean(element.getAttribute(attrName));\r\n }\r\n \t\t\t}\r\n \t\t});\r\n }\r\n\r\n if (options.height instanceof Function) {\r\n height = options.height.call();\r\n } else {\r\n if (KTUtil.isMobileDevice() === true && options.mobileHeight) {\r\n height = parseInt(options.mobileHeight);\r\n } else {\r\n height = parseInt(options.height);\r\n }\r\n }\r\n\r\n if (height === false) {\r\n KTUtil.scrollDestroy(element, true);\r\n\r\n return;\r\n }\r\n\r\n height = parseInt(height);\r\n\r\n // Destroy scroll on table and mobile modes\r\n if ((options.mobileNativeScroll || options.disableForMobile) && KTUtil.isMobileDevice() === true) {\r\n ps = KTUtil.data(element).get('ps');\r\n if (ps) {\r\n if (options.resetHeightOnDestroy) {\r\n KTUtil.css(element, 'height', 'auto');\r\n } else {\r\n KTUtil.css(element, 'overflow', 'auto');\r\n if (height > 0) {\r\n KTUtil.css(element, 'height', height + 'px');\r\n }\r\n }\r\n\r\n ps.destroy();\r\n ps = KTUtil.data(element).remove('ps');\r\n } else if (height > 0){\r\n KTUtil.css(element, 'overflow', 'auto');\r\n KTUtil.css(element, 'height', height + 'px');\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (height > 0) {\r\n KTUtil.css(element, 'height', height + 'px');\r\n }\r\n\r\n if (options.desktopNativeScroll) {\r\n KTUtil.css(element, 'overflow', 'auto');\r\n return;\r\n }\r\n\r\n // Pass options via HTML Attributes\r\n if (KTUtil.attr(element, 'data-window-scroll') == 'true') {\r\n options.windowScroll = true;\r\n }\r\n\r\n // Init scroll\r\n ps = KTUtil.data(element).get('ps');\r\n\r\n if (ps) {\r\n ps.update();\r\n } else {\r\n KTUtil.css(element, 'overflow', 'hidden');\r\n KTUtil.addClass(element, 'scroll');\r\n\r\n ps = new PerfectScrollbar(element, options);\r\n\r\n KTUtil.data(element).set('ps', ps);\r\n }\r\n\r\n // Remember scroll position in cookie\r\n var uid = KTUtil.attr(element, 'id');\r\n try {\r\n if (uid) {\r\n var cookie = KTCookie.getCookie(uid);\r\n if (options.rememberPosition === true && cookie) {\r\n var pos = parseInt(cookie);\r\n if (pos > 0) {\r\n element.scrollTop = pos;\r\n }\r\n element.addEventListener('ps-scroll-y', function() {\r\n KTCookie.setCookie(uid, element.scrollTop, {});\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n // Consider using Localstorage\r\n //if (options.rememberPosition === true && Cookies && uid) {\r\n // if (KTCookie.getCookie(uid)) {\r\n // var pos = parseInt(KTCookie.getCookie(uid));\r\n //\r\n // if (pos > 0) {\r\n // element.scrollTop = pos;\r\n // }\r\n // }\r\n //\r\n // element.addEventListener('ps-scroll-y', function() {\r\n // KTCookie.setCookie(uid, element.scrollTop);\r\n // });\r\n //}\r\n }\r\n\r\n // Init\r\n init();\r\n\r\n // Handle window resize\r\n if (options.handleWindowResize) {\r\n KTUtil.addResizeHandler(function() {\r\n init();\r\n });\r\n }\r\n },\r\n\r\n scrollUpdate: function(element) {\r\n var ps = KTUtil.data(element).get('ps');\r\n if (ps) {\r\n ps.update();\r\n }\r\n },\r\n\r\n scrollUpdateAll: function(parent) {\r\n var scrollers = KTUtil.findAll(parent, '.ps');\r\n for (var i = 0, len = scrollers.length; i < len; i++) {\r\n KTUtil.scrollUpdate(scrollers[i]);\r\n }\r\n },\r\n\r\n scrollDestroy: function(element, resetAll) {\r\n var ps = KTUtil.data(element).get('ps');\r\n\r\n if (ps) {\r\n ps.destroy();\r\n ps = KTUtil.data(element).remove('ps');\r\n }\r\n\r\n if (element && resetAll) {\r\n element.style.setProperty('overflow', '');\r\n element.style.setProperty('height', '');\r\n }\r\n },\r\n\r\n filterBoolean: function(val) {\r\n // Convert string boolean\r\n\t\t\tif (val === true || val === 'true') {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (val === false || val === 'false') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n return val;\r\n },\r\n\r\n setHTML: function(el, html) {\r\n el.innerHTML = html;\r\n },\r\n\r\n getHTML: function(el) {\r\n if (el) {\r\n return el.innerHTML;\r\n }\r\n },\r\n\r\n getDocumentHeight: function() {\r\n var body = document.body;\r\n var html = document.documentElement;\r\n\r\n return Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );\r\n },\r\n\r\n getScrollTop: function() {\r\n return (document.scrollingElement || document.documentElement).scrollTop;\r\n },\r\n\r\n colorDarken: function(color, amount) {\r\n var subtractLight = function(color, amount){\r\n var cc = parseInt(color,16) - amount;\r\n var c = (cc < 0) ? 0 : (cc);\r\n c = (c.toString(16).length > 1 ) ? c.toString(16) : `0${c.toString(16)}`;\r\n\r\n return c;\r\n }\r\n\r\n color = (color.indexOf(\"#\")>=0) ? color.substring(1,color.length) : color;\r\n amount = parseInt((255*amount)/100);\r\n\r\n return color = `#${subtractLight(color.substring(0,2), amount)}${subtractLight(color.substring(2,4), amount)}${subtractLight(color.substring(4,6), amount)}`;\r\n },\r\n\r\n colorLighten: function(color, amount) {\r\n var addLight = function(color, amount){\r\n var cc = parseInt(color,16) + amount;\r\n var c = (cc > 255) ? 255 : (cc);\r\n c = (c.toString(16).length > 1 ) ? c.toString(16) : `0${c.toString(16)}`;\r\n\r\n return c;\r\n }\r\n\r\n color = (color.indexOf(\"#\")>=0) ? color.substring(1,color.length) : color;\r\n amount = parseInt((255*amount)/100);\r\n\r\n return color = `#${addLight(color.substring(0,2), amount)}${addLight(color.substring(2,4), amount)}${addLight(color.substring(4,6), amount)}`;\r\n },\r\n\r\n // Throttle function: Input as function which needs to be throttled and delay is the time interval in milliseconds\r\n throttle: function (timer, func, delay) {\r\n \t// If setTimeout is already scheduled, no need to do anything\r\n \tif (timer) {\r\n \t\treturn;\r\n \t}\r\n\r\n \t// Schedule a setTimeout after delay seconds\r\n \ttimer = setTimeout(function () {\r\n \t\tfunc();\r\n\r\n \t\t// Once setTimeout function execution is finished, timerId = undefined so that in
\r\n \t\t// the next scroll event function execution can be scheduled by the setTimeout\r\n \t\ttimer = undefined;\r\n \t}, delay);\r\n },\r\n\r\n // Debounce function: Input as function which needs to be debounced and delay is the debounced time in milliseconds\r\n debounce: function (timer, func, delay) {\r\n \t// Cancels the setTimeout method execution\r\n \tclearTimeout(timer)\r\n\r\n \t// Executes the func after delay time.\r\n \ttimer = setTimeout(func, delay);\r\n },\r\n\r\n btnWait: function(el, cls, message, disable = true) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (disable) {\r\n KTUtil.attr(el, \"disabled\", true);\r\n }\r\n\r\n if (cls) {\r\n KTUtil.addClass(el, cls);\r\n KTUtil.attr(el, \"wait-class\", cls);\r\n }\r\n\r\n if (message) {\r\n var caption = KTUtil.find(el, '.btn-caption');\r\n\r\n if (caption) {\r\n KTUtil.data(caption).set('caption', KTUtil.getHTML(caption));\r\n KTUtil.setHTML(caption, message);\r\n } else {\r\n KTUtil.data(el).set('caption', KTUtil.getHTML(el));\r\n KTUtil.setHTML(el, message);\r\n }\r\n }\r\n },\r\n\r\n btnRelease: function(el) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n /// Show loading state on button\r\n KTUtil.removeAttr(el, \"disabled\");\r\n\r\n if (KTUtil.hasAttr(el, \"wait-class\")) {\r\n KTUtil.removeClass(el, KTUtil.attr(el, \"wait-class\"));\r\n }\r\n\r\n var caption = KTUtil.find(el, '.btn-caption');\r\n\r\n if (caption && KTUtil.data(caption).has('caption')) {\r\n KTUtil.setHTML(caption, KTUtil.data(caption).get('caption'));\r\n } else if (KTUtil.data(el).has('caption')) {\r\n KTUtil.setHTML(el, KTUtil.data(el).get('caption'));\r\n }\r\n },\r\n\r\n isOffscreen: function(el, direction, offset = 0) {\r\n var windowWidth = KTUtil.getViewPort().width;\r\n var windowHeight = KTUtil.getViewPort().height;\r\n\r\n var top = KTUtil.offset(el).top;\r\n var height = KTUtil.outerHeight(el) + offset;\r\n var left = KTUtil.offset(el).left;\r\n var width = KTUtil.outerWidth(el) + offset;\r\n\r\n if (direction == 'bottom') {\r\n if (windowHeight < top + height) {\r\n return true;\r\n } else if (windowHeight > top + height * 1.5) {\r\n return true;\r\n }\r\n }\r\n\r\n if (direction == 'top') {\r\n if (top < 0) {\r\n return true;\r\n } else if (top > height) {\r\n return true;\r\n }\r\n }\r\n\r\n if (direction == 'left') {\r\n if (left < 0) {\r\n return true;\r\n } else if (left * 2 > width) {\r\n //console.log('left 2');\r\n //return true;\r\n }\r\n }\r\n\r\n if (direction == 'right') {\r\n if (windowWidth < left + width) {\r\n return true;\r\n } else {\r\n //console.log('right 2');\r\n //return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n }\r\n}();\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTUtil;\r\n}\r\n\r\n// Initialize KTUtil class on document ready\r\nKTUtil.ready(function() {\r\n\tif (typeof KTAppSettings !== 'undefined') {\r\n\t\tKTUtil.init(KTAppSettings);\r\n\t} else {\r\n\t\tKTUtil.init();\r\n\t}\r\n});\r\n\r\n// CSS3 Transitions only after page load(.page-loading class added to body tag and remove with JS on page load)\r\nwindow.onload = function() {\r\n var result = KTUtil.getByTagName('body');\r\n if (result && result[0]) {\r\n KTUtil.removeClass(result[0], 'page-loading');\r\n }\r\n}\r\n","import { isStr, jsonParse } from \"@utils/Q\";\r\nimport { parseJsonString } from \"@utils/json\";\r\n\r\n// Scroll tab content & focus new item\r\nexport function scrollFocusEl(et, lastEl, preventScroll = true) {\r\n const tabFieldSet = et?.closest(\".tab-content-fieldset\");\r\n\r\n if (tabFieldSet) {\r\n tabFieldSet.scrollBy({\r\n top: tabFieldSet.scrollHeight,\r\n // left: 0,\r\n behavior: \"smooth\",\r\n });\r\n\r\n // const lastEl = et.closest('.dd-add-validrule').previousElementSibling;\r\n // console.log('scrollFocusEl lastEl: ', lastEl);\r\n if (lastEl) lastEl.focus({ preventScroll }); // OPTION preventScroll: true\r\n }\r\n}\r\n\r\n// Set focus other input to validate\r\nexport function onChangeToFocus(cls = \".fs-filterValue\") {\r\n let filterValue = document.querySelector(cls);\r\n if (filterValue) {\r\n filterValue.tagName === \"DIV\"\r\n ? filterValue.firstChild.firstChild.focus()\r\n : filterValue.focus();\r\n }\r\n}\r\n\r\n// AWS File\r\nexport const awsFile = (key, token) =>\r\n \"/api/form/AWSS3/GetFile?key=\" +\r\n encodeURIComponent(key) +\r\n \"&x-token=\" +\r\n token;\r\n\r\n// Parsing fieldType file, image\r\nexport function parseFieldUploadData(isFile, value, token) {\r\n let parseValue;\r\n\r\n // when value is null, or\r\n // parsed value from stringified format ('[]') is of an empty array, or\r\n // is an empty array\r\n if (\r\n !value ||\r\n parseJsonString(value)?.length === 0 ||\r\n (Array.isArray(value) && value.length === 0)\r\n ) {\r\n return null;\r\n }\r\n\r\n const genValue = (value, type) => {\r\n let data;\r\n try {\r\n if (type === \"url\") {\r\n data = value\r\n ? Array.isArray(value)\r\n ? awsFile(value?.[0], token)\r\n : value && jsonParse(value, value || [])\r\n ? awsFile(jsonParse(value, value || [])?.[0], token)\r\n : awsFile(value, token)\r\n : value;\r\n } else {\r\n data = Array.isArray(value)\r\n ? (value[0] || \"\")?.split(\"/\").pop()\r\n : value && jsonParse(value, value || [])\r\n ? jsonParse(value, value || [])[0]\r\n ?.split(\"/\")\r\n .pop()\r\n : isStr(value)\r\n ? value.split(\"/\").pop()\r\n : String(value);\r\n }\r\n } catch (e) {}\r\n return data;\r\n };\r\n if (isStr(value) || Array.isArray(value)) {\r\n // (isStr(value) ? jsonParse(value, []) : value)\r\n parseValue = isFile\r\n ? jsonParse(value, value || []).map((v) => {\r\n if (isStr(v)) {\r\n // From backend\r\n return {\r\n uid: v,\r\n url: awsFile(v, token),\r\n name: v.split(\"/\").pop(),\r\n status: \"done\",\r\n fileKey: v,\r\n };\r\n }\r\n return {\r\n ...v,\r\n url: awsFile(v.fileKey, token),\r\n };\r\n })\r\n : value && {\r\n uid: \"imageSingleUpload\",\r\n url: genValue(value, \"url\"),\r\n name: genValue(value, \"name\"),\r\n status: \"done\",\r\n fileKey: \"imageSingleUpload\",\r\n };\r\n } else if (value?.fileKey) {\r\n parseValue = {\r\n ...value,\r\n url: awsFile(value.fileKey, token),\r\n };\r\n }\r\n\r\n return parseValue;\r\n}\r\n\r\nexport const mapNewData = (predicate, oldData, newData) => {\r\n if (predicate) {\r\n return typeof newData === \"function\" ? newData() : newData;\r\n }\r\n return oldData;\r\n};\r\n\r\nexport const iterateNewFields = ({\r\n fieldData,\r\n normalizedFieldData,\r\n section,\r\n sectionId,\r\n sectionRowId,\r\n}) => (element, index) => {\r\n return mapNewData(index === sectionId, element, () => {\r\n const rows = section.rows[sectionRowId];\r\n let fields = [normalizedFieldData];\r\n if (Array.isArray(rows?.fields)) {\r\n fields = rows.fields.map((item) => {\r\n return mapNewData(\r\n item.fid === fieldData.fid,\r\n item,\r\n normalizedFieldData\r\n );\r\n });\r\n }\r\n\r\n let newSectionData = {\r\n ...element,\r\n rows: element.rows.map((row, rowIdx) => {\r\n return mapNewData(rowIdx === sectionRowId, row, { ...row, fields });\r\n }),\r\n };\r\n\r\n if (element.rows.length < 1 && element.fields < 1) {\r\n newSectionData = {\r\n ...element,\r\n fields: [normalizedFieldData],\r\n rows: [\r\n {\r\n rowIndex: \"0\",\r\n fields: [normalizedFieldData],\r\n },\r\n ],\r\n };\r\n }\r\n\r\n return newSectionData;\r\n });\r\n};\r\n\r\nexport const isStaticField = ({ isDisabled, fieldType }) => {\r\n const isCalculated = [\r\n \"calculation-remote-lookup\",\r\n \"calculation-lookup\",\r\n \"image\",\r\n \"file\",\r\n \"multi-file\",\r\n 'input-external',\r\n ].includes(fieldType);\r\n return isDisabled && !isCalculated;\r\n};\r\n\r\nexport const newRowKeys = (columns, timezone) => {\r\n let keys = {}; \r\n const { generateDateTime, toLocalMoment, datetime_format, date_format, time_format } = timezone || {};\r\n (columns || []).forEach((f) => {\r\n if (f.fieldType === \"calculation-number\") {\r\n keys[f.id] = f.value.length > 0 ? f.value : 0;\r\n } else if (f.fieldType === \"number\") {\r\n keys[f.id] = f.value;\r\n } else if (f.fieldType === \"date\") {\r\n keys[f.id] = f.value ? generateDateTime({ value: f.value, isActual: f.today })?.format(date_format) : null;\r\n } else if (f.fieldType === \"datetime\") {\r\n keys[f.id] = f.value ? toLocalMoment(generateDateTime({ value: f.value, isActual: f.today }))?.format(datetime_format) : null;\r\n } else if (f.fieldType === \"time\") {\r\n keys[f.id] = f.value ? toLocalMoment(generateDateTime({ value: f.value, isActual: f.now }))?.format(time_format) : null;\r\n } else {\r\n keys[f.id] = f.value ?? \"\";\r\n }\r\n });\r\n return keys\r\n}\r\n\r\nexport const filterFields = (sections, key) => {\r\n return sections?.reduce((result, section) => {\r\n const { rows } = section;\r\n return [\r\n ...result,\r\n ...rows.reduce((res, row) => {\r\n return [\r\n ...res,\r\n ...row.fields.filter((f) => f.fieldType?.includes(key)).map((f) => {\r\n return f;\r\n })\r\n ]\r\n }, [])\r\n ]\r\n }, []);\r\n}","import React, { forwardRef } from 'react';// , { useState }\r\n\r\nimport { Cx, setClass } from '../../utils/Q';\r\n\r\nconst Img = forwardRef(\r\n\t({\r\n \talt = \"\", \r\n\t\tloading = \"lazy\",\r\n\t\tdraggable = false, \r\n\t\twrapAs = \"div\", \r\n\t\tonClick = null,\r\n\t\twrapProps, \r\n \tw, h, \r\n\t\tfluid, thumb, circle, round, \r\n\t\tclassName, frameClass, \r\n\t\tframe, \r\n\t\tframeClassPrefix = \"img-frame\", \r\n\t\tcaption, captionClass, \r\n\t\tonLoad, onError,\r\n\t\tchildren, \r\n\t\t...etc\r\n\t}, \r\n\tref\r\n) => {\r\n\tconst LOAD_CX = \"ant-skeleton-avatar\";\r\n\tconst bsFigure = frame === \"bs\";\r\n\tconst As = bsFigure ? \"figure\" : wrapAs;\r\n\t\r\n\tconst setCx = et => {\r\n\t\tsetClass(et, LOAD_CX, \"remove\"); // bg-secondary\r\n\t}\r\n\t\r\n\tconst Load = e => {\r\n\t\tsetCx(e.target);\r\n\t\tif(onLoad) onLoad(e);\r\n\t}\r\n\t\r\n\tconst Error = e => {\r\n\t\tconst et = e.target;\r\n\t\t\r\n\t\tsetCx(et);\r\n\t\t\r\n\t\t// DEV: \r\n\t\t// et.src = \"data:image/svg+xml,%3Csvg width='100%25' height='150' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='xMidYMid slice' style='font-family:sans-serif;font-size:1.125rem;text-anchor:middle'%3E%3Crect width='100%25' height='100%25' fill='%23b3d6f4'%3E%3C/rect%3E%3Ctext x='50%25' y='50%25' fill='%23777' dy='.3em'%3E\" + alt + \"%3C/text%3E%3C/svg%3E\";\r\n\t\tet.src = \"/media/misc/img_err.svg\";\r\n\r\n\t\tif(onError) onError(e);\r\n\t\t\r\n\t\treturn;// null\r\n\t}\r\n\r\n\tconst img = () => (\r\n\t\t\r\n\t);\r\n\t\r\n\tif(frame){\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{img()}\r\n\r\n\t\t\t\t{(bsFigure && caption) &&
{caption}
}\r\n\r\n\t\t\t\t{children}\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n\r\n return img();\r\n});\r\n\r\nexport default Img;\r\n","import { parseString } from \"xml2js\";\r\nimport { JSONPath } from \"jsonpath-plus\";\r\nimport Handlebars from \"handlebars\";\r\nimport { flowToElements } from \"@utils/form-editor/normalize-response\";\r\n\r\nconst activities = [\r\n 'SendHttpRequest',\r\n 'IfElse',\r\n 'SetVariable',\r\n 'Join',\r\n 'Fork',\r\n 'TextParser'\r\n]\r\n\r\nexport const isValidConnector = (connector) => {\r\n const { connector_type: connectorType, request_data: requestData, security, json_workflow } = connector\r\n return (!['SOAP'].includes(connectorType) || (Boolean(requestData) && Boolean(security)) || json_workflow)\r\n}\r\n\r\nexport const onConvertToJson = async (string) => {\r\n return new Promise((resolve) => {\r\n parseString(string, { \r\n explicitRoot: false,\r\n explicitArray: false,\r\n }, (_err, result) => {\r\n if (_err) {\r\n resolve(string);\r\n }\r\n resolve(JSON.stringify(result));\r\n });\r\n })\r\n}\r\n\r\nconst findNestedObj = (entireObj, keyToFind, valToFind) => {\r\n let foundObj;\r\n JSON.stringify(entireObj, (_, nestedValue) => {\r\n if (nestedValue && nestedValue[keyToFind] === valToFind) {\r\n foundObj = nestedValue;\r\n }\r\n return nestedValue;\r\n });\r\n return foundObj;\r\n};\r\n\r\nObject.byString = function(o, s) {\r\n s = s.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties\r\n s = s.replace(/^\\./, ''); // strip a leading dot\r\n var a = s.split('.');\r\n for (var i = 0, n = a.length; i < n; ++i) {\r\n var k = a[i];\r\n if (k in o) {\r\n o = o[k];\r\n } else {\r\n return;\r\n }\r\n }\r\n return o;\r\n}\r\n\r\nconst checkIfUndefined = (val) => {\r\n return val ? val : \"{}\"\r\n}\r\n\r\nexport const findActivity = async ({\r\n activity,\r\n responses,\r\n elements,\r\n connections,\r\n request,\r\n}) => {\r\n const { activityId } = activity\r\n const connect = connections.find((con) => con.sourceActivityId === activityId && con.outcome === \"Done\");\r\n const element = elements.find((el) => el.id === connect.targetActivityId);\r\n const { raw } = element.data;\r\n if (activities.includes(element.type)) return { element }\r\n if (raw && raw.url) {\r\n const requestData = {\r\n url: checkIfUndefined(raw.url?.expression),\r\n method: raw.method,\r\n headers: checkIfUndefined(raw.requestHeaders?.expression),\r\n template: checkIfUndefined(raw.content?.expression),\r\n input: checkIfUndefined(raw.input?.expression),\r\n path: raw.query?.expression,\r\n multipleResult: Boolean(raw.multipleResult)\r\n }\r\n const res = await callHttpReq({ requestData, params: responses, request, connectorType: \"SOAP\" })\r\n responses[element.name] = res\r\n return {\r\n params: { [element.name]: res },\r\n element\r\n }\r\n }\r\n return {\r\n element: null\r\n }\r\n}\r\n\r\nexport const getActivityResponses = async ({ connector, request }) => {\r\n try {\r\n if (!isValidConnector(connector)) return\r\n const { json_workflow = \"{}\" } = connector;\r\n const { activities, connections } = JSON.parse(json_workflow);\r\n const elements = flowToElements(JSON.parse(json_workflow));\r\n let responses = {};\r\n let lastActivity\r\n let activity = activities.find((act) => act.type === \"StartProcess\");\r\n if (!activity) return\r\n while (activity) {\r\n const res = await findActivity({activity, responses, elements, connections, request})\r\n if (res.element) {\r\n activity = res.element\r\n lastActivity = res.element\r\n } else {\r\n activity = null\r\n }\r\n }\r\n return {\r\n responses,\r\n lastActivity\r\n }\r\n } catch (err) { console.error(err, 'getActivityResponses') }\r\n}\r\n\r\nexport const callHttpReq = async ({ requestData, params, connectorType, request }) => {\r\n if (!requestData || !requestData.url) return\r\n try {\r\n const {\r\n url,\r\n method,\r\n headers,\r\n template,\r\n input,\r\n path,\r\n multipleResult\r\n } = requestData;\r\n const bodyTemplate = Handlebars.compile(template);\r\n let vars = {};\r\n try {\r\n if (input.length > 0) {\r\n vars = JSON.parse(input);\r\n }\r\n } catch (_) {}\r\n vars = {\r\n ...vars,\r\n ...params\r\n }\r\n let headersData = typeof headers === \"object\" ? headers : JSON.parse(headers);\r\n const headerKeys = Object.keys(headersData) ?? {};\r\n const headersArr = headerKeys.map((Key) => ({\r\n Key,\r\n Value: headersData[Key]\r\n })) || [];\r\n const payload = {\r\n data: {\r\n url,\r\n httpMethod: method,\r\n contentType: \"xml\",\r\n headers: headersArr,\r\n bodyContent: bodyTemplate(vars),\r\n tokenizer: \"\",\r\n selectMultiple: connectorType !== 'SOAP' || multipleResult\r\n }\r\n }\r\n const response = await request(\r\n 'remoteLookup',\r\n payload,\r\n );\r\n const { success, data } = response;\r\n if (success && data) {\r\n let jsonResponse = await onConvertToJson(data);\r\n let responseVal = findNestedObj(JSON.parse(jsonResponse), 'response')\r\n if (responseVal.startsWith(\" {\r\n const {\r\n url,\r\n method,\r\n headers,\r\n template,\r\n username = \"SSC\",\r\n password = \"K1$$flow\",\r\n path: tokenizer,\r\n multipleResult\r\n } = security;\r\n if (!security || !url) return\r\n try {\r\n const bodyTemplate = Handlebars.compile(template);\r\n const requestVariables = {\r\n username,\r\n password,\r\n };\r\n let headersData = typeof headers === \"object\" ? headers : JSON.parse(headers);\r\n const headerKeys = Object.keys(headersData) ?? {};\r\n const headersArr = headerKeys.map((Key) => ({\r\n Key,\r\n Value: headersData[Key]\r\n })) || [];\r\n const payload = {\r\n data: {\r\n url,\r\n httpMethod: method,\r\n contentType: \"xml\",\r\n headers: headersArr,\r\n bodyContent: bodyTemplate(requestVariables),\r\n tokenizer,\r\n selectMultiple: connectorType !== 'SOAP' || multipleResult\r\n }\r\n }\r\n const response = await request(\r\n 'remoteLookup',\r\n payload,\r\n );\r\n const { data, success } = response;\r\n if (success && data) {\r\n return data;\r\n }\r\n return false;\r\n } catch (err) {\r\n console.error({ err });\r\n throw new Error(\"Failed authenticating\");\r\n }\r\n}\r\n\r\nexport const callRequestData = async (request_data, connectorType, request, auth, params) => {\r\n const {\r\n url,\r\n method,\r\n headers,\r\n template,\r\n input,\r\n path: tokenizer,\r\n multipleResult\r\n } = request_data;\r\n if (!request_data || !url) return\r\n try {\r\n const bodyTemplate = Handlebars.compile(template);\r\n let vars = {};\r\n try {\r\n if (input.length > 0) {\r\n vars = JSON.parse(input);\r\n }\r\n vars = {\r\n ...vars,\r\n ...params\r\n }\r\n } catch (_) {}\r\n const requestVariables = {\r\n auth,\r\n ...vars\r\n };\r\n let headersData = typeof headers === \"object\" ? headers : JSON.parse(headers);\r\n const headerKeys = Object.keys(headersData) ?? {};\r\n const headersArr = headerKeys.map((Key) => ({\r\n Key,\r\n Value: headersData[Key]\r\n })) || [];\r\n const payload = {\r\n data: {\r\n url,\r\n httpMethod: method,\r\n contentType: \"xml\",\r\n headers: headersArr,\r\n bodyContent: bodyTemplate(requestVariables),\r\n tokenizer,\r\n selectMultiple: connectorType !== 'SOAP' || multipleResult\r\n }\r\n }\r\n const response = await request(\r\n 'remoteLookup',\r\n payload,\r\n );\r\n const { success, data } = response;\r\n if (success && data) {\r\n const jsonResponse = await onConvertToJson(data);\r\n return JSON.parse(jsonResponse);\r\n }\r\n return false;\r\n } catch (err) {\r\n console.error({ err });\r\n return false;\r\n }\r\n}","// Number methods:\r\nexport function num2Hex(n){\r\n\treturn n.toString(16);\r\n}\r\n\r\nexport function calculatePercentageValue(value, format) {\r\n\tconst isPercentage = format === 'Percentage'\r\n\treturn value && isPercentage\r\n\t\t? Number(value) / 100\r\n\t\t: value\r\n}\r\n\r\nexport function restorePercentageValue(value, format, decimalPlaces = 1) {\r\n\tconst isPercentage = format === 'Percentage'\r\n const numberValue = Number((value * 100))\r\n const isInt = numberValue % 1 === 0\r\n\treturn value && isPercentage\r\n\t\t? isInt\r\n ? numberValue\r\n : numberValue.toFixed(decimalPlaces)\r\n\t\t: value\r\n}\r\n\r\nexport function getNumberSeparators(value){\r\n\tif (/^(-)?\\d{1,3}(,\\d{3})*(\\.\\d*)?$/.test(value) || /^(-)?\\d*(\\.\\d*)?$/.test(value)) {\r\n return { thousand: ',', decimal: '.' };\r\n } \r\n\treturn { thousand: '.', decimal: ',' };\r\n}\r\n\r\nexport default {\r\n\tnum2Hex,\r\n\tcalculatePercentageValue,\r\n\trestorePercentageValue,\r\n\tgetNumberSeparators\r\n};","import { permissionCodes } from \"../adapter\"\r\nimport { VISIBLE, EDITABLE, READONLY, HIDDEN } from \"@constants/permission/values\";\r\n\r\nexport const handleNoSecurityRules = ({ permission, config }) => {\r\n const { key, type, name, defaultEditability } = config\r\n const excludeControls = (key === 'visibility'\r\n ? ['visible', 'hidden']\r\n : ['editable', 'readonly']).map(code => permissionCodes.findIndex(c => c === code))\r\n return permission.map(p => {\r\n let conditions = type === 'field'\r\n ? p.fields\r\n : p.fieldGroups\r\n conditions = (conditions || []).filter(f => {\r\n return (f.name !== name) || !excludeControls.includes(f?.control)\r\n })\r\n\r\n // 2: Read-Only\r\n if (\r\n defaultEditability === permissionCodes[2] &&\r\n conditions.findIndex(c => c?.name === name) < 0\r\n ) {\r\n conditions.push({\r\n name,\r\n control: 2,\r\n })\r\n }\r\n \r\n return {\r\n ...p,\r\n ...type === 'field'\r\n ? {\r\n fields: conditions,\r\n fieldGroups: p.fieldGroups || [],\r\n }\r\n : {\r\n fieldGroups: conditions,\r\n fields: p.fields || [],\r\n },\r\n }\r\n })\r\n}\r\nexport const handleSecurityRules = ({ permission, config, rules }) => {\r\n const {\r\n defaultVisibility,\r\n defaultEditability,\r\n name,\r\n key,\r\n type,\r\n values\r\n } = config\r\n const rawPermission = values?.rawPermission || {}\r\n const mapControls = {\r\n visibility: defaultVisibility === 'visible' ? 'hidden' : 'visible',\r\n editability: defaultEditability === 'editable' ? 'readonly' : 'editable',\r\n }\r\n const mapDefaultControls = {\r\n visibility: defaultVisibility,\r\n editability: defaultEditability,\r\n } \r\n const evaluateRawVisibility = (activityId) =>{\r\n const visibilityRules = rawPermission?.[name]?.visibility?.root?.rules;\r\n const defaultVisibilityControl = permissionCodes.findIndex(c => { return c === defaultVisibility});\r\n const ruleFound = visibilityRules?.find(rl => rl?.value === activityId);\r\n const result = ruleFound ? (defaultVisibility === 'visible' ? HIDDEN : VISIBLE) : defaultVisibilityControl;\r\n return result;\r\n }\r\n const evaluateRawEditability = (activityId) =>{\r\n const editabilityRules = rawPermission?.[name]?.editability?.root?.rules;\r\n const defaultEditabilityControl = permissionCodes.findIndex(c => { return c === defaultEditability});\r\n const ruleFound = editabilityRules?.find(rl => rl?.value === activityId);\r\n const result = ruleFound ? (defaultEditability === 'editable' ? READONLY : EDITABLE) : defaultEditabilityControl;\r\n return result;\r\n }\r\n const populateControl = (activityId) => {\r\n const ruleFound = rules?.find(rl => rl?.value === activityId); \r\n const defaultControl = permissionCodes.findIndex(c => { return c === mapDefaultControls[key]});\r\n let result = ruleFound ? permissionCodes.findIndex(c => { return c === mapControls[key]}) : defaultControl;\r\n if(key === \"editability\"){\r\n const currentVisibility = evaluateRawVisibility(activityId);\r\n //hidden condition should remain hidden regardless of editability rules\r\n result = currentVisibility === HIDDEN ? HIDDEN : result;\r\n }else if(key === \"visibility\"){\r\n const currentEditability = evaluateRawEditability(activityId);\r\n //visible (0) condition should not overwrite readonly (2) condition\r\n result = result > currentEditability ? result : currentEditability;\r\n }\r\n return result;\r\n }\r\n \r\n return permission.map(p => {\r\n const { fields = [], activityId, fieldGroups = [] } = p\r\n let conditions = type === 'field'\r\n ? fields\r\n : fieldGroups\r\n if (conditions.length === 0 || !conditions.find(c => c?.name === name)) {\r\n conditions.push({ name })\r\n }\r\n conditions = conditions.map((f) => {\r\n if (f?.name !== name) {\r\n return f\r\n }\r\n return {\r\n name: f?.name,\r\n control: populateControl(activityId)\r\n }\r\n }).filter( c => c.control);\r\n return {\r\n activityId: activityId || 'fs-complete',\r\n ...type === 'field'\r\n ? {\r\n fields: conditions,\r\n fieldGroups: fieldGroups || [],\r\n }\r\n : {\r\n fieldGroups: conditions,\r\n fields: fields || [],\r\n },\r\n }\r\n })\r\n}\r\n","import { handleSecurityRules } from \"../utils/security\"\r\n\r\nexport const permissionCodes = [\r\n 'visible',\r\n 'editable',\r\n 'readonly',\r\n 'hidden',\r\n]\r\n\r\nexport const visibilityAdapter = ({ defaultVisibility, onChange }) => root => {\r\n const {rules, combinator} = root\r\n const mapCombinators = {\r\n and: 0,\r\n or: 1,\r\n }\r\n const mapValueTypes = {\r\n value: 0,\r\n field: 1,\r\n }\r\n const conditional = defaultVisibility === 'visible'\r\n ? 'invisible'\r\n : 'visible'\r\n const visibility = [{\r\n conditional,\r\n matches: mapCombinators[combinator],\r\n isMatchesVisible: true,\r\n conditions: [],\r\n raw: root,\r\n }]\r\n const populateRule = r => {\r\n const {field, value, operator} = r\r\n const [valueType, valueExpression] = !value\r\n ? ['value', '']\r\n : value\r\n return {\r\n field,\r\n operator,\r\n type: mapValueTypes[valueType],\r\n other: valueExpression,\r\n }\r\n }\r\n rules.forEach(rule => {\r\n if (rule?.rules && rule?.rules.length) {\r\n const insertRules = rule.rules.reduce((acc, r) => {\r\n return [\r\n ...acc,\r\n populateRule(r),\r\n ]\r\n }, [])\r\n visibility.push({\r\n conditional,\r\n matches: mapCombinators[rule?.combinator],\r\n isMatchesVisible: true,\r\n conditions: insertRules,\r\n })\r\n } else {\r\n visibility[0].conditions.push(\r\n populateRule(rule)\r\n )\r\n }\r\n })\r\n onChange(visibility)\r\n}\r\nexport const validationAdapter = ({ onChange }) => root => {\r\n const {rules} = root\r\n let validations = []\r\n const populateRule = r => {\r\n const {value, operator} = r\r\n const [valueType, valueExpression, valueMessage] = !value\r\n ? ['value', '', '']\r\n : value\r\n return {\r\n rule: operator,\r\n type: valueType,\r\n value: valueExpression,\r\n customError: valueMessage,\r\n }\r\n }\r\n rules.forEach(rule => {\r\n if (rule?.rules && rule?.rules.length) {\r\n const insertRules = rule.rules.reduce((acc, r) => {\r\n return [\r\n ...acc,\r\n populateRule(r),\r\n ]\r\n }, [])\r\n validations = [\r\n ...validations,\r\n ...insertRules,\r\n ]\r\n } else {\r\n validations = [\r\n ...validations,\r\n populateRule(rule),\r\n ]\r\n }\r\n })\r\n onChange && onChange(validations, root)\r\n}\r\nexport const filterAdapter = ({ onChange }) => (root, fields) => {\r\n let filters = []\r\n const {rules, combinator} = root\r\n const mapCombinators = {\r\n and: 0,\r\n or: 1,\r\n }\r\n const mapValueTypes = {\r\n value: 'Value',\r\n field: 'Field',\r\n }\r\n const populateRule = r => {\r\n const {field, value, operator} = r\r\n const selectedField = fields.find(f => f?.name === field)\r\n const [valueType, valueExpression, valueFieldType] = !value\r\n ? ['value', '']\r\n : value\r\n return {\r\n operator,\r\n field,\r\n value: valueExpression,\r\n type: mapValueTypes[valueType],\r\n ...selectedField?.valueEditorType\r\n ? { fieldType: selectedField.valueEditorType }\r\n : {},\r\n ...valueFieldType\r\n ? { valueFieldType }\r\n : {},\r\n }\r\n }\r\n rules.forEach(rule => {\r\n if (rule?.rules && rule?.rules.length) {\r\n const insertRules = rule.rules.reduce((acc, r) => {\r\n return [\r\n ...acc,\r\n populateRule(r),\r\n ]\r\n }, [])\r\n filters = [\r\n ...filters,\r\n ...insertRules,\r\n ]\r\n } else {\r\n filters = [\r\n ...filters,\r\n populateRule(rule),\r\n ]\r\n }\r\n })\r\n onChange({\r\n filters,\r\n rawFilters: root,\r\n matches: mapCombinators[combinator],\r\n })\r\n}\r\nexport const tableFilterAdapter = ({ onChange }) => (root) => {\r\n const populateRule = r => {\r\n return {\r\n ...r,\r\n value: r.value?.[1] || '',\r\n fieldType: r.value?.[2] || ''\r\n }\r\n }\r\n const populateRules = (rules) => {\r\n let newRules = [];\r\n rules.forEach(rule => {\r\n if (rule?.rules?.length) {\r\n newRules = [\r\n ...newRules,\r\n {\r\n ...rule,\r\n rules : populateRules(rule.rules),\r\n }\r\n ]\r\n } else {\r\n newRules = [\r\n ...newRules,\r\n populateRule(rule),\r\n ]\r\n }\r\n })\r\n return newRules;\r\n }\r\n onChange({\r\n filters:{ \r\n ...root,\r\n rules: populateRules(root.rules)\r\n },\r\n rawFilters: root\r\n })\r\n}\r\nexport const securityAdapter = (config) => root => {\r\n const {\r\n activityList,\r\n defaultVisibility,\r\n defaultEditability,\r\n name,\r\n key,\r\n values,\r\n onChange,\r\n } = config\r\n const rawPermission = values?.rawPermission || {}\r\n const {rules} = root\r\n let permission = activityList.map(c => {\r\n const existingActivity = values?.permission.find(p => p?.activityId === c.value) || {}\r\n const {\r\n activityId = c.value,\r\n fieldGroups = [],\r\n fields = [],\r\n } = existingActivity\r\n return {\r\n activityId,\r\n fieldGroups,\r\n fields,\r\n }\r\n })\r\n\r\n permission = handleSecurityRules({permission, config, rules});\r\n onChange({\r\n permission,\r\n rawPermission: {\r\n ...rawPermission,\r\n ...key\r\n ? {\r\n [name]: {\r\n ...rawPermission[name],\r\n [key] : {\r\n root,\r\n ...key === 'visibility'\r\n ? { defaultVisibility }\r\n : { defaultEditability }\r\n },\r\n }\r\n }\r\n : {}\r\n },\r\n })\r\n}\r\nexport const requestAdapter = (config) => root => {\r\n const {\r\n onChange,\r\n } = config\r\n const {rules = []} = root\r\n let result = []\r\n const populateRule = r => {\r\n const [name, type, value, datasetKey, datasetColumn] = !r?.value\r\n ? ['', 'value', '', '', '']\r\n : r.value\r\n return {\r\n name,\r\n type,\r\n value,\r\n ...datasetKey ? { datasetKey } : {},\r\n ...datasetColumn ? { datasetColumn } : {},\r\n }\r\n }\r\n if (rules.length > 0) {\r\n rules.forEach(rule => {\r\n if (rule?.rules && rule?.rules.length) {\r\n rule.rules.forEach(r => {\r\n if (r?.value) result.push(populateRule(r))\r\n })\r\n } else {\r\n if (rule?.value) result.push(populateRule(rule))\r\n }\r\n })\r\n } else {\r\n result = []\r\n }\r\n onChange({\r\n result,\r\n root,\r\n })\r\n}","import React, { createContext, useReducer } from \"react\";\r\n\r\nexport const upsertObject = (targetArray = [], index, value) => {\r\n if (targetArray[index]) {\r\n targetArray.splice(index, 1, {\r\n ...targetArray[index],\r\n ...value,\r\n })\r\n } else {\r\n targetArray.push(value)\r\n }\r\n return targetArray\r\n}\r\n\r\nexport const stateMapper = (payload, state) => {\r\n const { key, index, value } = payload\r\n const hasIndex = index !== undefined\r\n if (hasIndex) {\r\n return {\r\n ...state,\r\n [key]: upsertObject(state[key], index, value),\r\n }\r\n }\r\n \r\n return {\r\n ...state,\r\n ...value,\r\n }\r\n}\r\n\r\nconst initialState = {\r\n visibility: {},\r\n};\r\n\r\nconst reducer = (state, action) => {\r\n switch(action.type) {\r\n case 'UPDATE_VISIBILITY':\r\n return {\r\n ...state,\r\n visibility: stateMapper(\r\n action.payload,\r\n state.visibility,\r\n ),\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const VisibilityContext = createContext()\r\nexport const VisibilityProvider = ({ children }) => {\r\n const [state, dispatch] = useReducer(reducer, initialState)\r\n const updateVisibility = payload => {\r\n dispatch({\r\n type: 'UPDATE_VISIBILITY',\r\n payload,\r\n })\r\n }\r\n return (\r\n \r\n { children }\r\n \r\n )\r\n}\r\n","import { isObj } from './Q';\r\n\r\n// === Array / Object Manipulation ===\r\nfunction arrMoveMutate(arr, fr, to){\r\n\t// arr.splice(to < 0 ? arr.length + to : to, 0, arr.splice(fr, 1)[0]);\r\n\r\n\tconst startIndex = fr < 0 ? arr.length + fr : fr;\r\n\tif (startIndex >= 0 && startIndex < arr.length) {\r\n\t\tconst endIndex = to < 0 ? arr.length + to : to;\r\n\r\n\t\tconst [item] = arr.splice(fr, 1);\r\n\t\tarr.splice(endIndex, 0, item);\r\n\t}\r\n}\r\n\r\nfunction arrMove(arr, fr, to){ // arrayMove\r\n\tarr = [...arr]; // arr.slice();\r\n\tarrMoveMutate(arr, fr, to);\r\n\treturn arr;\r\n}\r\n\r\n/** \r\n\t@arr\t: Array to add \r\n\t@i\t\t: index position to add item \r\n\t@v\t\t: value new item \r\n*/\r\nfunction addInto(arr, i, v){\r\n\tarr = [...arr]; // arr.slice();\r\n\tarr.splice(i, 0, v);\r\n\treturn arr;\r\n}\r\n\r\nfunction cloneDeep(val){\r\n\treturn (isObj(val) || Array.isArray(val)) && JSON.parse(JSON.stringify(val));\r\n}\r\n\r\n/** \r\n\t@data\t\t: Array object rescursive\r\n\t@key\t\t: key name to search\r\n\t@keyVal\t: key value to compare search\r\n\t@child\t: Children key name with Array value to search more\r\n*/\r\n/* const recursiveFindIndex = (data, key, keyVal, child = \"files\") => {\r\n\tif(!data) return;\r\n\r\n\tlet idx;\r\n\r\n\tdata.forEach((el, i) => {// findIndex\r\n\t\tif(el[child]){\r\n\t\t\tconst getIdx = el[child].findIndex(f => f[key] === keyVal);\r\n\t\t\tif(Q.isNum(getIdx) && getIdx >= 0){ // Q.isNum(getIdx)\r\n\t\t\t\tidx = getIdx;\r\n\t\t\t}else{\r\n\t\t\t\trecursiveFindIndex(el[child], key, keyVal, child);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if(el[key] === keyVal){\r\n\t\t\tidx = i;\r\n\t\t}\r\n\t});\r\n\r\n\treturn Q.isNum(idx) && idx >= 0 ? idx : false;\r\n} */\r\n\r\n/** \r\n\t@data\t\t\t : Array object rescursive\r\n\t@key\t\t\t : Children key name with Array value to search more\r\n\t@parentObj : Object to add in parent\r\n\t@childObj\t : Object to add in children\r\n*/\r\n// OPTION Name: recursiveUpdate\r\n\r\n/* function recursiveEdit(data, {\r\n\tkey = \"files\", \r\n\tparentObj = Q.noop, // {}\r\n\tchildObj = Q.noop\r\n} = {}){ \r\n\tif(!data) return [];\r\n\r\n\tlet tree = [];\r\n\t\r\n\tdata.forEach((item) => {\r\n\t\tlet pObj = parentObj ? parentObj(item) : {};\r\n\t\tlet obj = {\r\n\t\t\t...item, \r\n\t\t\t...pObj\r\n\t\t};\r\n\r\n\t\tif(Array.isArray(item[key])){\r\n\t\t\t\t...item, \r\n\t\t\ttree.push({\r\n\t\t\t\t...pObj, \r\n\t\t\t\t[key]: recursiveEdit(item[key], key)\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tlet cObj = childObj ? childObj(item) : {};\r\n\t\t\ttree.push({\r\n\t\t\t\t...item, // pObj\r\n\t\t\t\t...cObj\r\n\t\t\t\t// icon: \"i-color qi-\" + item.name.split(\".\").pop() // getExt(item.name)\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\t\r\n\treturn tree;\r\n} */\r\n\r\n// https://github.com/xnf/recursively\r\n// function recursiveEdit(arr, cb, keyChild = \"children\"){\r\n// \tif(Array.isArray(arr)){\r\n// \t\tlet res = cloneDeep(arr);// [ ...arr ];\r\n// \t\tres.forEach((item, idx) => {\r\n// \t\t\tif(Array.isArray(item)){\r\n// \t\t\t\trecursiveEdit(item, cb, keyChild);\r\n// \t\t\t}else{\r\n// \t\t\t\tlet cbResult = cb(item, idx, res);\r\n// \t\t\t\tif(typeof cbResult !== 'undefined'){\r\n// \t\t\t\t\tres[idx] = cbResult;\r\n// \t\t\t\t}\r\n// \t\t\t\tif(item && Array.isArray(item[keyChild])){\r\n// \t\t\t\t\trecursiveEdit(item[keyChild], cb, keyChild);\r\n// \t\t\t\t}\r\n// \t\t\t}\r\n// \t\t});\r\n\r\n// \t\treturn res;\r\n// \t}\r\n// }\r\n\r\n// OK\r\n// function recursiveFind(arr, key, findVal, keyChild = \"files\"){\r\n// \t// The downside of reduce() is you're forced to iterate to the end of each array at each level of recursion. A simple for loop does not have that limitation\r\n// // return arr.reduce((a, item) => {\r\n// // if (a) return a;\r\n// // if (item.id === id) return item;\r\n// // if (item.files) return findId(id, item.files);\r\n// // }, null);\r\n\r\n// for(let node of arr){\r\n// if(node[key] === findVal) return node;\r\n// if(node[keyChild]){\r\n// let child = recursiveFind(node[keyChild], key, findVal, keyChild);\r\n// if(child) return child;\r\n// }\r\n// }\r\n// }\r\n\r\n// function sortDirBy(datas, by = \"directory\"){ // sortByFile\r\n// if(Array.isArray(datas)){\r\n// return datas.sort((a, b) => {\r\n// //let nameA = a.name.toUpperCase(); // ignore upper and lowercase\r\n// //let nameB = b.name.toUpperCase(); // ignore upper and lowercase\r\n// if(a.type === by){ // nameA < nameB\r\n// return -1;\r\n// }\r\n// if(b.type === (by === \"file\" ? \"directory\" : \"file\")){\r\n// return 1;\r\n// }\r\n// return 0;// names must be equal\r\n// });\r\n// // console.log('res: ', res);\r\n// // return res;\r\n// }\r\n// }\r\n\r\n// function recursiveSortDir(datas, {\r\n// \tkey = \"children\", \r\n// \tby = \"directory\"\r\n// } = {}){ \r\n// \tif(Array.isArray(datas)){\r\n// // let data = sortDirBy(cloneDeep(datas), by);\r\n// let tree = [];\r\n \r\n// sortDirBy(cloneDeep(datas), by).forEach((item) => {\r\n// if(Array.isArray(item[key])){\r\n// tree.push({\r\n// ...item, \r\n// [key]: recursiveSortDir(item[key], { key, by })\r\n// });\r\n// }else{\r\n// tree.push(item);\r\n// }\r\n// });\r\n \r\n// return tree;// .reverse()\r\n// }\r\n// }\r\n\r\n// https://stackoverflow.com/questions/64370762/moving-an-object-in-a-recursive-array\r\n/* const findById = (data, key, findVal, keyChild = \"files\") => data.reduce((r, x) => r != null ? r : x[key] === findVal ? x : findById(x[keyChild], key, findVal, keyChild) || null, null);\r\n\r\nconst removeById = (data, key, findVal, keyChild = \"files\") => data.reduce((r, x) => x[key] === findVal ? r : [ ...r, { ...x, [keyChild]: removeById(x[keyChild], key, findVal, keyChild)}], [])\r\n\r\nconst addById = (data, key, findVal, newVal, keyChild = \"files\") => data.reduce((r, x) => [ ...r, { ...x, [keyChild]: [ ...addById(x[keyChild], key, findVal, newVal, keyChild), ...(x[key] === findVal ? [newVal] : [])]}], [])\r\n\r\n// Main function\r\nconst moveById = (data, {\r\n\t// id, \r\n\ttoId, \r\n\tfindVal, \r\n\tkey = \"path\", \r\n\tkeyChild = \"files\"\r\n} = {}) => addById(findById(data, key, findVal, keyChild), key, findVal, removeById(data, key, findVal, keyChild), keyChild, toId); */\r\n\r\n// const findById = (data, id) => data.reduce((r, x) => r != null ? r : x.id === id ? x : findById(x.files, id) || null, null);\r\n\r\n// const removeById = (data, id) => data.reduce((r, x) => x.path === id ? r : [ ...r, { ...x, files: removeById(x.files, id)}], []);\r\n\r\n// const addById = (data, id, newVal) => data.reduce((r, x) => [ ...r, { ...x, files: [ ...addById(id, newVal, x.files), ...(x.id === id ? [newVal] : [])]}], []);\r\n\r\n// // Main function\r\n// const moveById = (data, id, toId) => addById(findById(id, data), removeById(id, data), toId);\r\n\r\n// https://gist.github.com/psandeepunni/80f5a62f0540b7989729\r\n/* function flatArrObj(tree, keyChild, id){\r\n\tif(!tree[keyChild] || tree[keyChild].length === 0) return;\r\n\t\r\n\tlet obj = {};\r\n\tfor(var i=0; i < tree[keyChild].length; i++){\r\n\t\tlet child = tree[keyChild][i]\r\n\t\tobj[child[id]] = child;\r\n\t\tbfs(child, keyChild, id);\r\n\t}\r\n\treturn Object.entries(obj);\r\n} */\r\n\r\n/**\r\n *\r\n * @param arr\r\n * @param len\r\n * @returns {*[]}\r\n */\r\nfunction chunk (arr, len) {\r\n\tlet chunks = [],\r\n\t\ti = 0,\r\n\t\tn = arr.length;\r\n\twhile (i < n) {\r\n\t\tchunks.push(arr.slice(i, i += len));\r\n\t}\r\n\treturn chunks;\r\n}\r\n\r\n/**\r\n *\r\n * @param arr\r\n * @param key\r\n * @returns {*}\r\n */\r\nfunction groupBy (arr, key) {\r\n\treturn arr.reduce((res, item) => {\r\n\t\t(res[item[key]] = res[item[key]] || []).push(item);\r\n\t\treturn res;\r\n\t}, {})\r\n}\r\n\r\nexport { \r\n\tarrMove, \r\n\tarrMoveMutate, \r\n\taddInto,\r\n\tchunk,\r\n\tgroupBy, \r\n\tcloneDeep, \r\n\t// recursiveFind, \r\n\t// recursiveFindIndex, \r\n\t// recursiveEdit, \r\n\t// sortDirBy, \r\n\t// recursiveSortDir, \r\n\t// findById, removeById, addById, moveById, \r\n};\r\n\r\n","import { useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport useApiRequest from \"../hooks/useApiRequest\";\r\n\r\nexport const fetchDataTable = (path, params, request) => {\r\n if (params) {\r\n return request(path, params)\r\n }\r\n return null\r\n}\r\n\r\nexport const getDataTableQueryKey = (path, params) => path && params ? [path, params] : []\r\n\r\nexport const useDataTableQuery = (path, params) => {\r\n const { request } = useApiRequest()\r\n const queryKey = getDataTableQueryKey(path, params)\r\n return useQuery(\r\n queryKey, \r\n () => fetchDataTable(path, params, request),\r\n {\r\n suspense: true,\r\n enabled: typeof params !== undefined,\r\n }\r\n )\r\n}\r\n\r\nexport const useOptimisticDataTableQuery = (path, params) => {\r\n const queryClient = useQueryClient()\r\n const queryKey = getDataTableQueryKey(path, params)\r\n return data => queryClient.setQueryData(queryKey, data)\r\n}\r\n\r\nexport const useInvalidateModuleDatatableQueries = (moduleId) => {\r\n const queryClient = useQueryClient()\r\n return () => {\r\n queryClient.invalidateQueries({\r\n predicate: query => {\r\n return (query.queryKey[0] || '').match(/getModuleTasksDynamic|getDrafts|getModuleItems|getTasksByUser|getTaskScheduler|getTasksByTeam/) && \r\n query.queryKey[1]?.moduleId === moduleId\r\n }\r\n })\r\n queryClient.invalidateQueries(['module-summary', moduleId])\r\n queryClient.invalidateQueries(['module-history', moduleId])\r\n queryClient.invalidateQueries(['module-record', moduleId])\r\n }\r\n}\r\n\r\nexport const useInvalidateAllModuleDatatableQueries = () => {\r\n const queryClient = useQueryClient()\r\n return () => {\r\n queryClient.invalidateQueries({\r\n predicate: query => {\r\n return (query.queryKey[0] || '').match(/getModuleTasksDynamic|getDrafts|getModuleItems|getTaskScheduler/)\r\n }\r\n })\r\n queryClient.invalidateQueries(['module-summary'])\r\n queryClient.invalidateQueries(['module-history'])\r\n queryClient.invalidateQueries(['module-record'])\r\n }\r\n}","import { message as antdMessage } from \"antd\";\r\n\r\nconst message = {}\r\nmessage.error = (msg, duration = 0) => {\r\n if (typeof msg === 'object') {\r\n return antdMessage.error({\r\n content: msg, \r\n duration: duration, \r\n onClick: () => {\r\n antdMessage.destroy()\r\n }\r\n })\r\n }\r\n return antdMessage.error({\r\n content: msg, \r\n duration: duration, \r\n onClick: () => {\r\n antdMessage.destroy()\r\n }\r\n })\r\n}\r\nmessage.success = antdMessage.success\r\nmessage.warning = antdMessage.warning\r\n\r\nexport default message","import useApiRequest from \"./useApiRequest\";\r\n\r\nconst useDatasetApi = () => {\r\n const { request, loading } = useApiRequest()\r\n const getDatasetList = params => {\r\n return request('getDatasetList', params)\r\n }\r\n const getDataByKey = params => {\r\n return request('getDataByKey', params)\r\n }\r\n const getDataset = params => {\r\n return request('getDataset', params)\r\n }\r\n const saveEntry = params => {\r\n return request('saveRefDataEntry', params)\r\n }\r\n const addEntry = (params) => {\r\n return request('addEntry', params);\r\n }\r\n return {\r\n loading,\r\n getDatasetList,\r\n getDataByKey,\r\n getDataset,\r\n addEntry,\r\n saveEntry\r\n }\r\n}\r\n\r\nexport default useDatasetApi","import { Tooltip } from \"antd\"\r\n\r\nexport default function BotLicenseTooltip(props) {\r\n const {licenseName, children, withIcon = true, ...rest} = props\r\n return (\r\n \r\n {children} {withIcon && }\r\n \r\n )\r\n}","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport formEditorActions from \"@actions/formEditorActions\";\r\n\r\nconst useFormActions = () => {\r\n const dispatch = useDispatch()\r\n const { moduleId } = useParams()\r\n const { formFields, tableFields, formDetails, moduleCategories, loading, moduleLookup, columnLookup, mlProviders, mlServices, aiServices } = useSelector(state => state.formEditorReducer);\r\n const deleteForm = (moduleId, onSuccess) => dispatch(formEditorActions.deleteForm({ moduleId, onSuccess }))\r\n const getFormDetails = async (id, reload) => {\r\n const formId = id || moduleId\r\n const formDetail = formDetails[formId]\r\n if (!formDetail || reload) {\r\n return dispatch(formEditorActions.getFormDetail(formId))\r\n } else {\r\n return formDetail\r\n }\r\n }\r\n const getModuleCategories = () => {\r\n dispatch(formEditorActions.getModuleCategories());\r\n }\r\n const getMLProviders = () =>{\r\n dispatch(formEditorActions.getMLProviders());\r\n }\r\n const getMLServices = ({providerId}) =>{\r\n dispatch(formEditorActions.getMLServices({providerId}));\r\n }\r\n const getAIServices = ({mlServiceId}) =>{\r\n dispatch(formEditorActions.getAIServices({mlServiceId}));\r\n }\r\n const getModuleLookup = (id) => {\r\n if (moduleLookup.length <= 0) {\r\n dispatch(formEditorActions.getModuleLookup(id));\r\n }\r\n }\r\n const getColumnLookup = (id) => {\r\n if (columnLookup.length <= 0) {\r\n dispatch(formEditorActions.getColumnLookup(id));\r\n }\r\n }\r\n const loadListApplications = async () => {\r\n dispatch(formEditorActions.getListApplications())\r\n }\r\n\r\n return {\r\n deleteForm,\r\n getFormDetails,\r\n getModuleCategories,\r\n formDetails,\r\n formFields,\r\n tableFields,\r\n moduleCategories,\r\n loading,\r\n moduleLookup,\r\n columnLookup,\r\n getModuleLookup,\r\n getColumnLookup,\r\n mlProviders,\r\n getMLProviders,\r\n mlServices,\r\n getMLServices,\r\n aiServices,\r\n getAIServices,\r\n loadListApplications\r\n }\r\n}\r\n\r\nexport default useFormActions","import React, { useRef, useState, useEffect } from 'react';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport axios from 'axios';\r\nimport Button from 'react-bootstrap/Button';\r\nimport List from '@researchgate/react-intersection-list';\r\nimport Flex from './Flex';\r\nimport Img from './Img';\r\nimport { num2Hex } from '@utils/number';\r\nimport { Cx } from '@utils/Q';\r\n\r\nconst parseObjPath = (path) => ({ path, name: path?.split(\"/\")?.pop() });\r\n\r\nexport default function IconPicker({\r\n icons, // Object data \r\n url, // String url fetch\r\n type = null,\r\n storageKey = \"icons\",\r\n cache = true, // DEV OPTION: Caching used\r\n autoFocus = false,\r\n autoClose = true,\r\n preview = {\r\n name: \"home\",\r\n code: \"e933\"\r\n },\r\n pageSize = 50,\r\n onClickIcon = () => { }, // Q.noop\r\n onHoverIcon = () => { },\r\n}) {\r\n const findRef = useRef(null);\r\n const [load, setLoad] = useState(false);\r\n const [data, setData] = useState(icons);\r\n const [meta, setMeta] = useState(null);\r\n const [show, setShow] = useState(false);\r\n const [view, setView] = useState(preview);\r\n const [findVal, setFindVal] = useState(\"\");\r\n const onHover = (v, e) => {\r\n const valCondition = type === \"font\" ? v?.name : v\r\n const toView = meta ? v : parseObjPath(valCondition); // { path: v, name: v.split(\"/\").pop() }\r\n if (preview && view.name !== v.name) {\r\n setView(toView);\r\n }\r\n\r\n onHoverIcon(toView, e);\r\n }\r\n\r\n const onClick = (icon) => {\r\n onClickIcon(icon); // { path: v, name: v.split(\"/\").pop() }\r\n\r\n if (autoClose) { // OPTION: Close Dropdown.Menu\r\n setShow(false);\r\n\r\n if (findVal.length > 0) { // Reset find\r\n setFindVal(\"\");\r\n }\r\n }\r\n }\r\n\r\n const onFind = (e) => {\r\n const val = e.target.value || '';\r\n setFindVal(val);\r\n }\r\n\r\n const getFilteredData = d => {\r\n const iconName = (d?.name || '').toLowerCase()\r\n return iconName.match(findVal.toLowerCase())\r\n }\r\n\r\n const filteredData = [...(data || [])].filter(getFilteredData)\r\n\r\n const itemsRenderer = (items, ref) => {\r\n const notFound = findVal.length > 0 && filteredData.length === 0;\r\n return (\r\n \r\n \r\n {notFound ? [] : items}\r\n \r\n \r\n );\r\n }\r\n\r\n const renderItem = (index, key) => {\r\n const list = filteredData\r\n const v = list[index];\r\n const title = \"name: \" + v.name + (v.code ? \"\\ncode: \" + v.code : \"\");\r\n if (type === \"font\") {\r\n return (\r\n
\r\n \r\n \r\n );\r\n}\r\n","const SIDEBAR_ICONS = {\r\n icons: [\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-address-book\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-address-card\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-archive\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-badge\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-badge-check\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-badge-dollar\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-badge-percent\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-balance-scale\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-balance-scale-left\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-balance-scale-right\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-birthday-cake\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-book\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-briefcase\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-building\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bullhorn\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bullseye\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-business-time\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-cabinet-filing\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-calculator\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-calendar\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-calendar-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-certificate\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-chart-area\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-chart-bar\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-chart-line\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-chart-line-down\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-chart-network\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-chart-pie\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-chart-pie-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-chart-scatter\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-city\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-clipboard\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-coffee\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-coffee-pot\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-columns\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-compass\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-computer-classic\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-copy\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-copyright\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-cut\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-edit\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-envelope\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-envelope-open\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-envelope-square\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-eraser\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-fax\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-file\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-file-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-file-chart-line\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-file-chart-pie\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-file-spreadsheet\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-file-user\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-folder\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-folder-download\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-folder-minus\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-folder-open\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-folder-plus\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-folder-times\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-folder-tree\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-folder-upload\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-folders\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-glasses\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-globe\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-highlighter\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-industry\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-industry-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-keynote\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-lamp-desk\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-landmark\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-laptop-house\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-marker\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-mind-share\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-money-check-edit\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-money-check-edit-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-paperclip\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-paste\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-pen\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-pen-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-pen-fancy\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-pen-nib\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-pen-square\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-pencil\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-pencil-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-percent\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-phone\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-phone-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-phone-office\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-phone-slash\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-phone-square\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-phone-square-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-phone-volume\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-podium\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-presentation\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-print\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-print-slash\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-project-diagram\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-projector\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-registered\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-router\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-save\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-scanner-image\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-shredder\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-sitemap\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-socks\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-sticky-note\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-stream\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-table\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-tag\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-tags\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-tasks\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-tasks-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-thumbtack\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-trademark\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-user-chart\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-wallet\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-abacus\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-acorn\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-ad\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-address-book\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-address-card\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-adjust\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-air-conditioner\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-air-freshener\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-alarm-clock\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-alarm-exclamation\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-alarm-plus\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-alarm-snooze\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-album\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-album-collection\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-alicorn\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-alien\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-alien-monster\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-align-center\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-align-justify\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-align-left\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-align-right\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-align-slash\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-allergies\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-ambulance\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-american-sign-language-interpreting\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-amp-guitar\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-analytics\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-anchor\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-angel\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-angle-double-down\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-angle-double-left\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-angle-double-right\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-angle-double-up\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-angle-down\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-angle-left\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-angle-right\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-angle-up\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-angry\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-ankh\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-apple-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-apple-crate\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-archive\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-archway\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-circle-down\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-circle-left\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-circle-right\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-circle-up\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-down\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-from-bottom\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-from-left\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-from-right\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-from-top\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-left\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-right\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-square-down\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-square-left\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-square-right\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-square-up\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-to-bottom\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-to-left\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-to-right\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-to-top\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-alt-up\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-circle-down\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-circle-left\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-circle-right\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-circle-up\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-down\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-from-bottom\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-from-left\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-from-right\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-from-top\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-left\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-right\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-square-down\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-square-left\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-square-right\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-square-up\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-to-bottom\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-to-left\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-to-right\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-to-top\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrow-up\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrows\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrows-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrows-alt-h\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrows-alt-v\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrows-h\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-arrows-v\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-assistive-listening-systems\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-asterisk\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-at\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-atlas\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-atom\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-atom-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-audio-description\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-award\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-axe\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-axe-battle\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-baby\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-baby-carriage\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-backpack\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-backspace\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-backward\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bacon\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bacteria\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bacterium\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-badge\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-badge-check\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-badge-dollar\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-badge-percent\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-badge-sheriff\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-badger-honey\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bags-shopping\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bahai\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-balance-scale\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-balance-scale-left\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-balance-scale-right\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-ball-pile\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-ballot\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-ballot-check\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-ban\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-band-aid\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-banjo\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-barcode\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-barcode-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-barcode-read\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-barcode-scan\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bars\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-baseball\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-baseball-ball\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-basketball-ball\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-basketball-hoop\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bat\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bath\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-battery-bolt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-battery-empty\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-battery-full\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-battery-half\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-battery-quarter\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-battery-slash\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-battery-three-quarters\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bed\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bed-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bed-bunk\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bed-empty\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-beer\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bell\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bell-exclamation\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bell-on\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bell-plus\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bell-school\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bell-school-slash\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bell-slash\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bells\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-betamax\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bezier-curve\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bible\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bicycle\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-biking\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-biking-mountain\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-binoculars\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-biohazard\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-birthday-cake\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-blanket\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-blender\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-blender-phone\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-blind\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-blinds\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-blinds-open\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-blinds-raised\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-blog\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bold\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bolt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bomb\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bone\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bone-break\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bong\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-book\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-book-alt\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-bug\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-baby-carriage\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-carrot\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-spider\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-spider-black-widow\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-trumpet\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-virus\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-virus-slash\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-viruses\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-debug\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-seedling\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-signal\"\r\n },\r\n {\r\n \"prefix\": \"far\",\r\n \"name\": \"fa-shield-check\"\r\n }\r\n ]\r\n}\r\n\r\nexport default SIDEBAR_ICONS;","import React from 'react';// , { useState }\r\nimport { ErrorBoundary } from 'react-error-boundary';\r\nimport Button from 'react-bootstrap/Button';\r\n// import { Alert } from 'antd';\r\n\r\nimport Flex from './Flex';\r\nimport { Cx } from '@utils/Q';\r\n\r\nexport default function ErrorComponent({\r\n className, \r\n prefixClass = \"alert\", \r\n type = \"light\", \r\n // children, \r\n ...etc \r\n}){\r\n // const [explode, setExplode] = useState(false);// Not work for all errors\r\n\r\n return (\r\n ( // { error }\r\n \r\n

⚠ Something went wrong.

\r\n {/*

{navigator.onLine ? error.message : \"Your internet connection is offline.\"}

*/}\r\n\r\n {navigator.onLine ? \r\n \r\n : \r\n

Your internet connection is offline.

\r\n }\r\n \r\n {/* {navigator.onLine && \r\n \r\n } */}\r\n
\r\n )} \r\n onError={(err, info) => {\r\n // setExplode(true);// Not work for all errors\r\n console.log('onError Component error: ', err);\r\n console.log('onError Component info: ', info);\r\n }} \r\n // onReset={() => setExplode(false)} // Not work for all errors\r\n // resetKeys={[explode]} // Not work for all errors\r\n {...etc}\r\n />\r\n )\r\n}\r\n\r\n/*\r\n window.location.reload()} variant=\"outline-dark\" className=\"ml-3\">Reload\r\n }\r\n className={Cx(\"text-break ovauto w-100\", className)} \r\n/>\r\n*/\r\n\r\n// function ErrorFallback({ error }){ // , resetErrorBoundary\r\n// return (\r\n// \r\n//

⚠ Something went wrong.

\r\n//

{navigator.onLine ? error.message : \"Your internet connection is offline.\"}

\r\n \r\n// {navigator.onLine && \r\n// \r\n// }\r\n//
\r\n// )\r\n// }\r\n\r\n// {navigator.onLine && \r\n//
\r\n// \r\n// Or\r\n// \r\n//
\r\n// }\r\n\r\n// {!explode && children}\r\n\r\n// fallbackRender={({ error, resetErrorBoundary }) => (\r\n//
⚠ Something went wrong. \r\n//

{navigator.onLine ? error.message : \"Your internet connection is offline.\"}

\r\n// Or \r\n// \r\n//
\r\n// )} \r\n","import React, { forwardRef, useState } from 'react';// { useState, useEffect }\r\nimport Button from 'react-bootstrap/Button';\r\n\r\nimport { Cx } from '../../utils/Q';\r\n\r\nconst Password = forwardRef(\r\n\t({\r\n\t\twrapClass, \r\n\t\tclassName, \r\n\t\tprepend, \r\n\t\tappend, \r\n\t\tinputSize, \r\n\t\t// children, \r\n\t\tbtnProps, \r\n\t\tvariant = \"light\", \r\n\t\t...etc\r\n\t}, \r\n\tref\r\n) => {\r\n const [see, setSee] = useState(false);\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n});\r\n\r\nexport default Password;\r\n\r\n","import { useEffect, useState } from 'react';\r\nimport { message as _message } from 'antd';\r\nimport axios from 'axios';\r\n\r\nconst API = \"/api/Notification\";\r\n\r\nconst clearNotifBadge = (sub) => {\r\n\tconst btnNotif = document.getElementById(\"kt_quick_notifications_toggle\");\r\n\tif (btnNotif) {\r\n\t\tconst badge = btnNotif.querySelector(\".badge\");\r\n\t\tif (badge) {\r\n\t\t\tconst notif = badge.innerText;\r\n\t\t\tbadge.innerText = sub ? Number(notif) - 1 : \"\";\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst onReadDetail = (isRead, ID) => {\r\n\tif (!isRead) {\r\n\t\taxios.post(API + \"/read?id=\" + ID)\r\n\t\t\t.then(r => {\r\n\t\t\t\t// console.log('onReadDetail r: ', r);\r\n\t\t\t\tif (r.data && r.data.success) clearNotifBadge(true);\r\n\t\t\t})\r\n\t\t\t.catch(e => console.log(e));\r\n\t}\r\n}\r\n\r\nexport default function useGetNotification(ID) {\r\n\tconst [load, setLoad] = useState(true);\r\n\tconst [notifs, setNotifs] = useState({ notif: [] });\r\n\tconst [detail, setDetail] = useState({});\r\n\tconst [page, setPage] = useState(1);\r\n\r\n\tconst loadMoreData = () => {\r\n\t\tconst CancelToken = axios.CancelToken;\r\n\t\tconst source = CancelToken.source();\r\n\r\n\t\tsetNotifs({ ...notifs, notif: notifs.notif.concat([...new Array(10)].map(() => ({ loading: true }))) });\r\n\t\t\r\n\t\taxios.get(API, { cancelToken: source.token, params: { page, lenght: 10 } })\r\n\t\t\t.then(res => {\r\n\t\t\t\tconst { success, message, data: { notif } } = res?.data || {};\r\n\t\t\t\tif (success) {\r\n\t\t\t\t\tsetNotifs({ ...notifs, notif: [...notifs.notif, ...notif] });\r\n\t\t\t\t\tsetPage(page + 1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_message.error(message);\r\n\t\t\t\t}\r\n\t\t\t}).catch(e => {\r\n\t\t\t\t// console.log('catch e: ', e);\r\n\t\t\t\t_message.error(e.message);\r\n\t\t\t\tif (axios.isCancel(e)) {\r\n\t\t\t\t\tconsole.log('Request canceled: ', e.message);\r\n\t\t\t\t}\r\n\t\t\t}).then(() => setLoad(false));\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tconst CancelToken = axios.CancelToken;\r\n\t\tconst source = CancelToken.source();\r\n\r\n\t\taxios.get(API, { cancelToken: source.token })\r\n\t\t\t.then(res => {\r\n\t\t\t\tconst { success, data } = res?.data || {};\r\n\t\t\t\t// console.log('data: ', data);\r\n\t\t\t\tif (success && data) {\r\n\t\t\t\t\tsetNotifs(data);\r\n\t\t\t\t\tsetPage(page + 1);\r\n\t\t\t\t\tif (ID) {\r\n\t\t\t\t\t\tconst notifDetail = data.notif.find(f => f.id === ID);\r\n\t\t\t\t\t\t// console.log('notifDetail: ', notifDetail);\r\n\t\t\t\t\t\tif (notifDetail) {\r\n\t\t\t\t\t\t\tonReadDetail(notifDetail.read_on, ID);\r\n\t\t\t\t\t\t\tsetDetail(notifDetail);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}).catch(e => {\r\n\t\t\t\t// console.log('catch e: ', e);\r\n\t\t\t\tif (axios.isCancel(e)) {\r\n\t\t\t\t\tconsole.log('Request canceled: ', e.message);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.then(() => setLoad(false));\r\n\r\n\t\treturn () => {\r\n\t\t\tsource.cancel();// cancel the request (the message parameter is optional)\r\n\t\t}\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, []);\r\n\r\n\tconst onDetail = (v) => {\r\n\t\tconsole.log(v);\r\n\t\tonReadDetail(v.read_on, v.id);\r\n\t\tsetDetail(v);\r\n\t\tsetNotifs({\r\n\t\t\t...notifs,\r\n\t\t\tnotif: (notifs.notif || []).map(item => (item.id === v.id ? { ...item, read_on: true } : item))\r\n\t\t});\r\n\t}\r\n\r\n\tconst onMarkReadAll = () => {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\taxios.post(API + \"/MarkAllAsRead\")\r\n\t\t\t\t.then(r => {\r\n\t\t\t\t\tif (r.data && r.data.success) {\r\n\t\t\t\t\t\tdocument.querySelectorAll(\".notifItem\").forEach(el => el.classList.remove(\"unviewed\"));\r\n\t\t\t\t\t\tclearNotifBadge();\r\n\t\t\t\t\t\tresolve(true);\r\n\t\t\t\t\t} else if (!r.data.success) {\r\n\t\t\t\t\t\treject(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch(e => console.log(e));\r\n\t\t});\r\n\t}\r\n\r\n\treturn {\r\n\t\tload,\r\n\t\tnotifs,\r\n\t\tdetail,\r\n\t\tonDetail,\r\n\t\tonMarkReadAll,\r\n\t\tloadMoreData\r\n\t}\r\n}\r\n","const formEditorEndpoints = {\r\n createProcessFromScratch(data) {\r\n return {\r\n url: '/api/form/Editor/CreateProcessFromScratch',\r\n method: 'POST',\r\n data\r\n // data: {\r\n // name: data.formName,\r\n // categoryId: data.formCategories,\r\n // description: data.description,\r\n // },\r\n }\r\n },\r\n saveForm({ id, data }) {\r\n return {\r\n url: '/api/form/Editor/SaveForm',\r\n method: 'POST',\r\n params: {\r\n id,\r\n },\r\n data,\r\n }\r\n },\r\n applyConfigAllUser({ moduleId }) {\r\n return {\r\n url: '/api/form/Editor/applyconfigalluser',\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n }\r\n }\r\n },\r\n setUserConfig({ moduleId, tabConfig, data }) {\r\n return {\r\n url: '/api/form/Editor/setuserconfig',\r\n method: 'PUT',\r\n params: {\r\n moduleId,\r\n tabConfig,\r\n },\r\n data\r\n }\r\n },\r\n deleteForm(moduleId) {\r\n return {\r\n url: '/api/form/Editor/DeleteForm',\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n },\r\n }\r\n },\r\n publish({ id }) {\r\n return {\r\n url: '/api/form/Editor/publish',\r\n method: 'POST',\r\n params: {\r\n id,\r\n },\r\n }\r\n },\r\n saveRecordTemplate({ moduleId, templateId, templateName, data }) {\r\n return {\r\n url: '/api/form/Editor/recordtemplate',\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n templateId,\r\n templateName,\r\n },\r\n data,\r\n }\r\n },\r\n getSavedRecordTemplate(id) {\r\n return {\r\n url: `/api/form/Editor/recordtemplate/${id}`,\r\n method: 'GET',\r\n }\r\n },\r\n loadRecordTemplate({ moduleId, templateId }) {\r\n return {\r\n url: `/api/form/Editor/recordtemplate/${moduleId}/${templateId}`,\r\n method: 'GET',\r\n params: {\r\n moduleId,\r\n templateId,\r\n },\r\n }\r\n },\r\n renameRecordTemplate({ templateId, templateName }) {\r\n return {\r\n url: '/api/form/Editor/recordtemplate/rename',\r\n method: 'POST',\r\n params: {\r\n templateId,\r\n name: templateName,\r\n },\r\n }\r\n },\r\n deleteRecordTemplate({ moduleId, templateId }) {\r\n return {\r\n url: `/api/form/Editor/recordtemplate/${moduleId}/${templateId}`,\r\n method: 'DELETE',\r\n params: {\r\n moduleId,\r\n templateId,\r\n },\r\n }\r\n },\r\n setOrderIndexRecordTemplate({ templateId, index }) {\r\n return {\r\n url: \"/api/form/Editor/recordtemplate/orderindex\",\r\n method: 'POST',\r\n params: {\r\n templateId,\r\n index,\r\n },\r\n }\r\n },\r\n getPermissibleList(params) {\r\n return {\r\n url: '/api/form/ListKeyValue/getList',\r\n method: 'GET',\r\n params,\r\n }\r\n },\r\n addPermissibleList(data) {\r\n return {\r\n url: '/api/form/ListKeyValue/save',\r\n method: 'POST',\r\n data,\r\n }\r\n },\r\n getPermissibleListCategoryOptions(params) {\r\n return {\r\n url: '/api/form/ListKeyValue/category/list',\r\n method: 'GET',\r\n params,\r\n }\r\n },\r\n addPermissibleListCategoryOption(name) {\r\n return {\r\n url: '/api/form/ListKeyValue/category/add',\r\n method: 'POST',\r\n params: {\r\n name,\r\n },\r\n };\r\n },\r\n getPermissibleListItems(listId) {\r\n return {\r\n url: '/api/form/ListKeyValue/detail',\r\n method: 'GET',\r\n params: {\r\n id: listId,\r\n },\r\n }\r\n },\r\n getFormList({ searchTerm }) {\r\n return {\r\n url: '/api/form/Editor/ListForms',\r\n method: 'GET',\r\n params: {\r\n searchTerm\r\n },\r\n }\r\n },\r\n getFormListTable({ data = {} }) {\r\n return {\r\n url: '/api/form/editor/applications/datatables',\r\n method: 'POST',\r\n data,\r\n }\r\n },\r\n getStiReportListTable({ data = {} }) {\r\n return {\r\n url: '/api/form/report/datatables',\r\n method: 'POST',\r\n data,\r\n }\r\n },\r\n getEditorModules({ data = {} }) {\r\n return {\r\n url: '/api/form/editor/modules/datatables',\r\n method: 'POST',\r\n data,\r\n }\r\n },\r\n getFormDetail({ id }) {\r\n return {\r\n url: '/api/form/Editor/GetForm',\r\n method: 'GET',\r\n params: {\r\n id,\r\n },\r\n }\r\n },\r\n getEmailTemplateFields({moduleId}) {\r\n return {\r\n url: '/api/form/Editor/getEmailTemplateFields',\r\n method: 'GET',\r\n params: {\r\n moduleId,\r\n },\r\n }\r\n },\r\n updateEmailTemplate({data}) {\r\n return {\r\n url: '/api/form/Editor/updateEmailTemplate',\r\n method: 'POST',\r\n data\r\n }\r\n },\r\n deleteFileUrl() {\r\n return '/api/form/AWSS3/RemoveFileByKey';\r\n },\r\n getFileUrl() {\r\n return '/api/form/AWSS3/GetFile';\r\n },\r\n uploadUrl() {\r\n return '/api/form/AWSS3/Upload';\r\n },\r\n uploadBase64Url() {\r\n return '/api/form/AWSS3/UploadBase64';\r\n },\r\n uploadEntry({ data }) {\r\n return {\r\n url: '/api/form/AWSS3/Upload',\r\n method: 'POST',\r\n data\r\n }\r\n },\r\n moduleLookup(id) {\r\n return {\r\n url: '/api/form/Editor/ModuleLookup',\r\n method: 'GET',\r\n params: {\r\n id,\r\n },\r\n }\r\n },\r\n columnLookup(requestParams) {\r\n const params = typeof requestParams === 'object'\r\n ? requestParams\r\n : { id: requestParams }\r\n return {\r\n url: '/api/form/Editor/ColumnLookup',\r\n method: 'GET',\r\n params,\r\n }\r\n },\r\n remoteLookup({ data }) {\r\n return {\r\n url: '/api/form/Editor/RemoteUrl',\r\n method: 'POST',\r\n data,\r\n }\r\n },\r\n lookup({ data }) {\r\n return {\r\n url: '/api/EntryModule/RecordModuleLookup',\r\n method: 'POST',\r\n data,\r\n }\r\n },\r\n recordModuleLookup2({ params }) {\r\n return {\r\n url: '/api/EntryModule/recordModuleLookup2',\r\n method: 'GET',\r\n params,\r\n }\r\n },\r\n aggregateLookup({ data }) {\r\n return {\r\n url: '/api/EntryModule/AggregateLookup',\r\n method: 'POST',\r\n data,\r\n }\r\n },\r\n userLookup({ data }) {\r\n return {\r\n url: '/api/form/Editor/UserLookup',\r\n method: 'POST',\r\n data,\r\n }\r\n },\r\n userLookup2({ params }) {\r\n return {\r\n url: '/api/form/Editor/UserLookup2',\r\n method: 'GET',\r\n params,\r\n }\r\n },\r\n reservedFieldNames() {\r\n return {\r\n url: '/api/form/Editor/ReservedFieldNames',\r\n method: 'GET'\r\n }\r\n },\r\n reservedModuleNames() {\r\n return {\r\n url: '/api/form/Editor/ReservedModuleNames',\r\n method: 'GET'\r\n }\r\n },\r\n getMostUsedList() {\r\n return {\r\n url: '/api/form/Editor/ListMostUsed',\r\n }\r\n },\r\n getModuleCategories() {\r\n return {\r\n url: '/api/sys/permissions/menu/sidebar',\r\n }\r\n },\r\n copyModule({ params }) {\r\n return {\r\n url: '/api/form/Editor/CopyFrom',\r\n method: 'POST',\r\n params,\r\n }\r\n },\r\n updateModule({ params }) {\r\n return {\r\n url: '/api/form/Editor/UpdateModule',\r\n method: 'POST',\r\n params,\r\n }\r\n },\r\n getFavouriteList() {\r\n return {\r\n url: 'api/form/Editor/Favourite/list',\r\n }\r\n },\r\n addRemoveFavouriteModule({moduleId, isAdd}) {\r\n return {\r\n url: `/api/form/Editor/favourite/${isAdd ? \"add\" : \"remove\"}`,\r\n method: 'POST',\r\n params: {\r\n moduleId,\r\n }\r\n }\r\n },\r\n getListApplications() {\r\n return {\r\n url: '/api/form/Editor/ListApplications',\r\n }\r\n },\r\n setOrderListApplications({ data }) {\r\n return {\r\n url: '/api/sys/user/preference/sortupdate',\r\n method: 'PATCH',\r\n data\r\n }\r\n },\r\n setModuleReassignment({moduleId, isReassignmentDisabled}) {\r\n return {\r\n url: '/api/form/Editor/setmodulereassignment',\r\n method: 'POST', \r\n params: {\r\n moduleId,\r\n isReassignmentDisabled\r\n },\r\n }\r\n },\r\n getModuleConfig(id) {\r\n return {\r\n url: '/api/form/Editor/getmoduleconfig?moduleId='+id,\r\n method: 'GET'\r\n }\r\n },\r\n dataEntryLookup(params){\r\n return {\r\n url: '/api/form/editor/dataentrylookup',\r\n method: 'GET',\r\n params,\r\n }\r\n }\r\n}\r\n\r\nexport default formEditorEndpoints","import objectPath from \"object-path\";\r\nimport {toAbsoluteUrl} from \"../../_helpers\";\r\n\r\nexport class HtmlClassService {\r\n // Public properties\r\n config;\r\n classes;\r\n attributes;\r\n\r\n /**\r\n * Build html element classes from layout config\r\n * @param layoutConfig\r\n */\r\n setConfig(layoutConfig) {\r\n this.config = this.preInit(layoutConfig);\r\n\r\n // scope list of classes\r\n this.classes = {\r\n header: [],\r\n header_container: [],\r\n header_mobile: [],\r\n header_menu: [],\r\n aside: [],\r\n aside_menu: [],\r\n subheader: [],\r\n subheader_container: [],\r\n content: [],\r\n content_container: [],\r\n footer_container: []\r\n };\r\n\r\n this.attributes = {\r\n aside_menu: {},\r\n header_mobile: {},\r\n header_menu: {}\r\n };\r\n\r\n // init base layout\r\n this.initLayout();\r\n this.initLoader();\r\n\r\n // init header and subheader menu\r\n this.initHeader();\r\n this.initSubheader();\r\n\r\n this.initContent();\r\n // init aside and aside menu\r\n this.initAside();\r\n\r\n // init footer\r\n this.initFooter();\r\n\r\n // init theme\r\n this.initTheme();\r\n }\r\n\r\n preInit(layoutConfig) {\r\n const updatedConfig = Object.assign({}, layoutConfig);\r\n const headerSelfFixedDesktop = objectPath.get(updatedConfig, \"header.self.fixed.desktop\");\r\n const subheaderFixed = objectPath.get(updatedConfig, \"subheader.fixed\");\r\n if (subheaderFixed && headerSelfFixedDesktop) {\r\n // Page::setOption('layout', 'subheader/style', 'solid');\r\n updatedConfig.subheader.style = \"solid\"; \r\n } else {\r\n // Page::setOption('layout', 'subheader/fixed', false);\r\n updatedConfig.subheader.fixed = false;\r\n }\r\n return updatedConfig;\r\n }\r\n\r\n /**\r\n * Returns Classes\r\n *\r\n * @param path: string\r\n * @param toString boolean\r\n */\r\n getClasses(path, toString) {\r\n if (path) {\r\n const classes = objectPath.get(this.classes, path) || \"\";\r\n if (toString && Array.isArray(classes)) {\r\n return classes.join(\" \");\r\n }\r\n return classes.toString();\r\n }\r\n return this.classes;\r\n }\r\n\r\n getAttributes(path) {\r\n if (path) {\r\n const attributes = objectPath.get(this.attributes, path) || [];\r\n return attributes;\r\n }\r\n return [];\r\n }\r\n\r\n getLogo() {\r\n const brandSkin = objectPath.get(this.config, \"brand.self.theme\");\r\n if (brandSkin === \"light\") {\r\n return toAbsoluteUrl(\"/media/logos/logo-dark.png\");\r\n } else {\r\n return toAbsoluteUrl(\"/media/logos/logo-light.png\");\r\n }\r\n }\r\n\r\n getStickyLogo() {\r\n let logo = objectPath.get(this.config, \"self.logo.sticky\");\r\n if (typeof logo === \"undefined\") {\r\n logo = this.getLogo();\r\n }\r\n return logo + \"\";\r\n }\r\n\r\n /**\r\n * Init Layout\r\n */\r\n initLayout() {\r\n const selfBodyBackgroundImage = objectPath.get(this.config, \"self.body.background-image\");\r\n if (selfBodyBackgroundImage) {\r\n document.body.style.backgroundImage = `url(\"${selfBodyBackgroundImage}'\")`;\r\n }\r\n\r\n const _selfBodyClass = objectPath.get(this.config, \"self.body.class\");\r\n if (_selfBodyClass) {\r\n const bodyClasses = _selfBodyClass.toString().split(\" \");\r\n bodyClasses.forEach(cssClass => document.body.classList.add(cssClass));\r\n }\r\n\r\n // Offcanvas directions\r\n document.body.classList.add(\"quick-panel-right\");\r\n document.body.classList.add(\"demo-panel-right\");\r\n document.body.classList.add(\"offcanvas-right\");\r\n }\r\n\r\n /**\r\n * Init Loader\r\n */\r\n initLoader() {}\r\n\r\n /**\r\n * Init Header\r\n */\r\n initHeader() {\r\n // Fixed header\r\n const headerSelfFixedDesktop = objectPath.get(this.config, \"header.self.fixed.desktop\");\r\n if (headerSelfFixedDesktop) {\r\n document.body.classList.add(\"header-fixed\");\r\n objectPath.push(this.classes, \"header\", \"header-fixed\");\r\n } else {\r\n document.body.classList.add(\"header-static\");\r\n }\r\n\r\n const headerSelfFixedMobile = objectPath.get(this.config, \"header.self.fixed.mobile\");\r\n if (headerSelfFixedMobile) {\r\n document.body.classList.add(\"header-mobile-fixed\");\r\n objectPath.push(this.classes, \"header_mobile\", \"header-mobile-fixed\");\r\n }\r\n\r\n // Menu\r\n const headerMenuSelfDisplay = objectPath.get(this.config, \"header.menu.self.display\");\r\n if (headerMenuSelfDisplay) {\r\n const headerMenuSelfLayout = objectPath.get(this.config, \"header.menu.self.layout\");\r\n const headerMenuLayoutCssClass = `header-menu-layout-${headerMenuSelfLayout}`;\r\n objectPath.push(this.classes, \"header_menu\", headerMenuLayoutCssClass);\r\n\r\n if (objectPath.get(this.config, \"header.menu.self.root-arrow\")) {\r\n objectPath.push(this.classes, \"header_menu\", \"header-menu-root-arrow\");\r\n }\r\n }\r\n\r\n const headerSelfWidth = objectPath.get(this.config, \"header.self.width\");\r\n if (headerSelfWidth === \"fluid\") {\r\n objectPath.push(this.classes, \"header_container\", \"container-fluid\");\r\n } else {\r\n objectPath.push(this.classes, \"header_container\", \"container\");\r\n }\r\n }\r\n\r\n /**\r\n * Init Subheader\r\n */\r\n initSubheader() {\r\n const subheaderDisplay = objectPath.get(this.config, \"subheader.display\");\r\n if (subheaderDisplay) {\r\n document.body.classList.add(\"subheader-enabled\");\r\n } else {\r\n return;\r\n }\r\n\r\n // Fixed content head\r\n const subheaderFixed = objectPath.get(this.config, \"subheader.fixed\");\r\n const headerSelfFixedDesktop = objectPath.get(this.config, \"header.self.fixed.desktop\");\r\n if (subheaderFixed && headerSelfFixedDesktop) {\r\n document.body.classList.add(\"subheader-fixed\");\r\n // Page::setOption('layout', 'subheader/style', 'solid'); => See preInit()\r\n } else {\r\n // Page::setOption('layout', 'subheader/fixed', false); => See preInit()\r\n }\r\n\r\n const subheaderStyle = objectPath.get(this.config, \"subheader.style\");\r\n if (subheaderStyle) {\r\n const subheaderClass = `subheader-${subheaderStyle}`;\r\n objectPath.push(this.classes, \"subheader\", subheaderClass);\r\n }\r\n\r\n const subheaderWidth = objectPath.get(this.config, \"subheader.width\");\r\n if (subheaderWidth === \"fluid\") {\r\n objectPath.push(this.classes, \"subheader_container\", \"container-fluid\");\r\n } else {\r\n objectPath.push(this.classes, \"subheader_container\", \"container\");\r\n }\r\n\r\n if (objectPath.get(this.config, \"subheader.clear\")) {\r\n objectPath.push(this.classes, \"subheader\", \"mb-0\");\r\n }\r\n }\r\n\r\n /**\r\n * Init Content\r\n */\r\n initContent() {\r\n if (objectPath.get(this.config, \"content.fit-top\")) {\r\n objectPath.push(this.classes, \"content\", \"pt-0\");\r\n }\r\n\r\n if (objectPath.get(this.config, \"content.fit-bottom\")) {\r\n objectPath.push(this.classes, \"content\", \"pb-0\");\r\n }\r\n\r\n if (objectPath.get(this.config, \"content.width\") === \"fluid\") {\r\n objectPath.push(this.classes, \"content_container\", \"container-fluid\");\r\n } else {\r\n objectPath.push(this.classes, \"content_container\", \"container content__container\");\r\n }\r\n }\r\n\r\n /**\r\n * Init Aside\r\n */\r\n initAside() {\r\n // Check Aside\r\n const asideSelfDisplay = objectPath.get(this.config, \"aside.self.display\");\r\n if (!asideSelfDisplay) {\r\n return;\r\n }\r\n\r\n // Enable Aside\r\n document.body.classList.add(\"aside-enabled\");\r\n\r\n // Fixed Aside\r\n const asideSelfFixed = objectPath.get(this.config, \"aside.self.fixed\");\r\n if (asideSelfFixed) {\r\n document.body.classList.add(\"aside-fixed\");\r\n objectPath.push(this.classes, \"aside\", \"aside-fixed\");\r\n } else {\r\n document.body.classList.add(\"aside-static\");\r\n }\r\n\r\n // Check Aside\r\n if (!asideSelfDisplay) {\r\n return;\r\n }\r\n\r\n // Default fixed\r\n if (objectPath.get(this.config, \"aside.self.minimize.default\")) {\r\n document.body.classList.add(\"aside-minimize\");\r\n }\r\n\r\n if (objectPath.get(this.config, \"aside.self.minimize.hoverable\")) {\r\n document.body.classList.add(\"aside-minimize-hoverable\");\r\n }\r\n\r\n // Menu\r\n // Dropdown Submenu\r\n const asideMenuDropdown = objectPath.get(this.config, \"aside.menu.dropdown\");\r\n if (asideMenuDropdown) {\r\n objectPath.push(this.classes, \"aside_menu\", \"aside-menu-dropdown\");\r\n this.attributes.aside_menu[\"data-menu-dropdown\"] = \"1\";\r\n }\r\n\r\n // Scrollable Menu\r\n this.attributes.aside_menu[\"data-menu-scroll\"] = asideMenuDropdown ? \"0\" : \"1\";\r\n\r\n const asideSubmenuDHoverTimeout = objectPath.get(\r\n this.config,\r\n \"aside.menu.submenu.dropdown.hover-timeout\"\r\n );\r\n if (asideSubmenuDHoverTimeout) {\r\n this.attributes.aside_menu[\r\n \"data-menu-dropdown-timeout\"\r\n ] = asideSubmenuDHoverTimeout;\r\n }\r\n }\r\n\r\n /**\r\n * Init Footer\r\n */\r\n initFooter() {\r\n // Fixed header\r\n if (objectPath.get(this.config, \"footer.fixed\")) {\r\n document.body.classList.add(\"footer-fixed\");\r\n }\r\n\r\n if (objectPath.get(this.config, \"footer.self.width\") === \"fluid\") {\r\n objectPath.push(this.classes, \"footer_container\", \"container-fluid\");\r\n } else {\r\n objectPath.push(this.classes, \"footer_container\", \"container\");\r\n }\r\n }\r\n\r\n /** Init Theme */\r\n initTheme() {\r\n const asideSelfDisplay = objectPath.get(this.config, \"aside.self.display\");\r\n if (!asideSelfDisplay) {\r\n const headerSelfTheme = objectPath.get(this.config, \"header.self.theme\");\r\n document.body.classList.add(`brand-${headerSelfTheme}`);\r\n } else {\r\n const brandSelfTheme = objectPath.get(this.config, \"brand.self.theme\");\r\n document.body.classList.add(`brand-${brandSelfTheme}`);\r\n }\r\n }\r\n}\r\n","import React, { createContext, useContext, useMemo } from \"react\";\r\nimport { getInitLayoutConfig } from \"./LayoutConfig\";\r\nimport { HtmlClassService } from \"./HTMLClassService\";\r\n\r\nconst LAYOUT_CONFIG_KEY =\r\n process.env.REACT_APP_LAYOUT_CONFIG_KEY || \"LayoutConfig\";\r\n\r\nfunction getConfig() {\r\n const ls = localStorage.getItem(LAYOUT_CONFIG_KEY);\r\n if (ls) {\r\n try {\r\n return JSON.parse(ls);\r\n } catch (er) {\r\n console.error(er);\r\n }\r\n }\r\n return getInitLayoutConfig();\r\n}\r\n\r\n// Side effect\r\nexport function setLayoutConfig(config) {\r\n localStorage.setItem(LAYOUT_CONFIG_KEY, JSON.stringify(config));\r\n window.location.reload();\r\n}\r\n\r\nconst HtmlClassServiceContext = createContext();\r\n\r\n/**\r\n *\r\n *\r\n * @export\r\n * @returns Layout context from 'localStorage'\r\n */\r\nexport function useHtmlClassService() {\r\n return useContext(HtmlClassServiceContext);\r\n}\r\n\r\nexport function withHtmlClassService(Component) {\r\n class WithHtmlClassService extends React.Component {\r\n static displayName = `WithHtmlClassService(${Component.displayName ||\r\n Component.name})`;\r\n\r\n static contextType = HtmlClassServiceContext;\r\n\r\n render() {\r\n return ;\r\n }\r\n }\r\n\r\n return WithHtmlClassService;\r\n}\r\n\r\nexport const HtmlClassServiceConsumer = HtmlClassServiceContext.Consumer;\r\n\r\nexport function MetronicLayoutProvider({ children }) {\r\n const lc = useMemo(getConfig, []);\r\n const hcs = useMemo(() => {\r\n const service = new HtmlClassService();\r\n\r\n service.setConfig(lc);\r\n\r\n return service;\r\n }, [lc]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","import { toAbsoluteUrl } from \"../../_helpers\";\r\n\r\nexport function getInitLayoutConfig() {\r\n return {\r\n demo: \"demo1\",\r\n js: {\r\n breakpoints : {\r\n sm: \"576\",\r\n md: \"768\",\r\n lg: \"992\",\r\n xl: \"1200\",\r\n xxl: \"1200\"\r\n },\r\n colors: {\r\n theme: {\r\n base: {\r\n \"white\": \"#ffffff\",\r\n \"primary\": \"#6993FF\",\r\n \"secondary\": \"#E5EAEE\",\r\n \"success\": \"#1BC5BD\",\r\n \"info\": \"#8950FC\",\r\n \"warning\": \"#FFA800\",\r\n \"danger\": \"#F64E60\",\r\n \"light\": \"#F3F6F9\",\r\n \"dark\": \"#212121\"\r\n },\r\n light: {\r\n \"white\": \"#ffffff\",\r\n \"primary\": \"#E1E9FF\",\r\n \"secondary\": \"#ECF0F3\",\r\n \"success\": \"#C9F7F5\",\r\n \"info\": \"#EEE5FF\",\r\n \"warning\": \"#FFF4DE\",\r\n \"danger\": \"#FFE2E5\",\r\n \"light\": \"#F3F6F9\",\r\n \"dark\": \"#D6D6E0\"\r\n },\r\n inverse: {\r\n \"white\": \"#ffffff\",\r\n \"primary\": \"#ffffff\",\r\n \"secondary\": \"#212121\",\r\n \"success\": \"#ffffff\",\r\n \"info\": \"#ffffff\",\r\n \"warning\": \"#ffffff\",\r\n \"danger\": \"#ffffff\",\r\n \"light\": \"#464E5F\",\r\n \"dark\": \"#ffffff\"\r\n }\r\n },\r\n gray: {\r\n \"gray100\": \"#F3F6F9\",\r\n \"gray200\": \"#ECF0F3\",\r\n \"gray300\": \"#E5EAEE\",\r\n \"gray400\": \"#D6D6E0\",\r\n \"gray500\": \"#B5B5C3\",\r\n \"gray600\": \"#80808F\",\r\n \"gray700\": \"#464E5F\",\r\n \"gray800\": \"#1B283F\",\r\n \"gray900\": \"#212121\"\r\n }\r\n },\r\n fontFamily: \"Poppins\"\r\n },\r\n // == Page Splash Screen loading\r\n loader: {\r\n enabled: true,\r\n type: \"\", // default|spinner-message|spinner-logo\r\n logo: toAbsoluteUrl(\"/media/logos/UniFi.svg\"), // logo-dark-sm.png\r\n message: \"Please wait...\"\r\n },\r\n // page toolbar\r\n toolbar: {\r\n display: true\r\n },\r\n header: {\r\n self: {\r\n width: \"fluid\", // fixed|fluid\r\n theme: \"light\", // light|dark\r\n fixed: {\r\n desktop: true,\r\n mobile: true\r\n }\r\n },\r\n menu: {\r\n self: {\r\n display: true,\r\n layout: \"default\", // tab/default\r\n \"root-arrow\": false,\r\n \"icon-style\": \"duotone\" // duotone, line, bold, solid\r\n },\r\n desktop: {\r\n arrow: true,\r\n toggle: \"click\",\r\n submenu: {\r\n theme: \"light\", // light|dark\r\n arrow: true\r\n }\r\n },\r\n mobile: {\r\n submenu: {\r\n theme: \"dark\",\r\n accordion: true\r\n }\r\n }\r\n }\r\n },\r\n subheader: {\r\n display: true,\r\n displayDesc: false,\r\n displayDaterangepicker: false, // true\r\n layout: \"subheader-v1\",\r\n fixed: true, // true\r\n width: \"fluid\", // fixed/fluid,\r\n clear: false,\r\n style: \"solid\" // solid/transparent\r\n },\r\n content: {\r\n width: \"fluid\" // fluid|fixed\r\n },\r\n brand: {\r\n self: {\r\n theme: \"dark\" // light/dark\r\n }\r\n },\r\n aside: {\r\n self: {\r\n theme: \"dark\", // light/dark\r\n display: true,\r\n fixed: true,\r\n minimize: {\r\n toggle: true, // allow toggle\r\n default: false, // default state\r\n hoverable: true // allow hover\r\n }\r\n },\r\n footer: {\r\n self: {\r\n display: true\r\n }\r\n },\r\n menu: {\r\n dropdown: false, // ok\r\n scroll: true, // ok\r\n \"icon-style\": \"duotone\", // duotone, line, bold, solid\r\n submenu: {\r\n accordion: true,\r\n dropdown: {\r\n arrow: true,\r\n \"hover-timeout\": 500 // in milliseconds\r\n }\r\n }\r\n }\r\n },\r\n footer: {\r\n self: {\r\n fixed: true,\r\n width: \"fluid\"\r\n }\r\n },\r\n extras: {\r\n search: {\r\n display: true,\r\n layout: \"dropdown\", // offcanvas, dropdown\r\n offcanvas: {\r\n direction: \"right\"\r\n }\r\n },\r\n notifications: {\r\n display: true, // true | false // EDIT HERE\r\n layout: \"dropdown\", // offcanvas, dropdown\r\n dropdown: {\r\n style: \"dark\" // light, dark\r\n },\r\n offcanvas: {\r\n directions: \"right\"\r\n }\r\n },\r\n \"quick-actions\": {\r\n display: true, \r\n layout: \"dropdown\", // offcanvas, dropdown,\r\n dropdown: {\r\n style: \"dark\", // light, dark\r\n },\r\n offcanvas: {\r\n directions: \"right\"\r\n }\r\n },\r\n user: {\r\n display: true,\r\n layout: \"dropdown\", // offcanvas, dropdown\r\n dropdown: {\r\n style: \"dark\"\r\n },\r\n offcanvas: {\r\n directions: \"right\"\r\n }\r\n },\r\n languages: {\r\n display: true\r\n },\r\n cart: {\r\n display: false, // true\r\n dropdown: {\r\n style: \"dark\", // ligth, dark\r\n }\r\n },\r\n \"quick-panel\": {\r\n display: false, // true\r\n offcanvas: {\r\n directions: \"right\"\r\n }\r\n },\r\n chat: {\r\n display: false // true\r\n },\r\n toolbar: {\r\n display: true\r\n },\r\n scrolltop: {\r\n display: true\r\n }\r\n }\r\n };\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\n\r\nexport const DropdownCustomToggler = React.forwardRef((props, ref) => {\r\n return (\r\n {\r\n e.preventDefault();\r\n props.onClick(e);\r\n }}\r\n >\r\n {props.children}\r\n \r\n );\r\n});\r\n","import React, { forwardRef } from \"react\";\r\n\r\nexport const DropdownTopbarItemToggler = forwardRef((props, ref) => {\r\n return (\r\n {\r\n e.preventDefault();\r\n props.onClick(e);\r\n }}\r\n >\r\n {props.children}\r\n \r\n );\r\n});\r\n\r\nDropdownTopbarItemToggler.displayName = 'DropdownTopbarItemToggler';\r\n","/* eslint-disable no-unused-vars */\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useMemo, useEffect } from \"react\";\r\nimport { Dropdown, OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\n// import PerfectScrollbar from \"react-perfect-scrollbar\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport objectPath from \"object-path\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { Skeleton } from \"antd\";\r\nimport axios from \"axios\";\r\n\r\nimport { useHtmlClassService } from \"../../../_core/MetronicLayout\";\r\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\r\nimport { DropdownTopbarItemToggler } from \"../../../../_partials/dropdowns\";\r\nimport Aroute from '../../../../../app/components/Aroute';\r\nimport { Link } from \"react-router-dom\";\r\nimport useGetNotification from '@pages/NotificationPage/services';\r\n\r\n// const perfectScrollbarOptions = {\r\n// wheelSpeed: 2,\r\n// wheelPropagation: false,\r\n// };\r\n\r\nexport function UserNotificationsDropdown() {\r\n const [load, setLoad] = useState(false);\r\n const [notifs, setNotifs] = useState(null);\r\n const uiService = useHtmlClassService();\r\n const { onDetail } = useGetNotification();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n offcanvas: objectPath.get(uiService.config, \"extras.notifications.layout\") === \"offcanvas\",\r\n };\r\n }, [uiService]);\r\n\r\n const { uid } = useSelector(\r\n ({ auth }) => ({\r\n uid: auth?.config?.userInfo?.uid,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const loadNotifs = () => {\r\n const CancelToken = axios.CancelToken;\r\n const source = CancelToken.source();\r\n setLoad(false);\r\n axios.get(\"/api/Notification\", { cancelToken: source.token })\r\n .then(res => {\r\n const { success, data } = res.data;\r\n // console.log('data: ', data);\r\n if (success && data) {\r\n setNotifs(data);\r\n }\r\n }).catch(e => {\r\n // console.log('catch e: ', e);\r\n if (axios.isCancel(e)) {\r\n console.log('Request canceled: ', e.message);\r\n }\r\n })\r\n .then(() => setLoad(true));\r\n\r\n return () => {\r\n source.cancel();// cancel the request (the message parameter is optional)\r\n }\r\n }\r\n useEffect(() => {\r\n loadNotifs();\r\n }, []); // pageFocus, once\r\n\r\n const onToggle = (open) => {\r\n if (open) {\r\n loadNotifs();\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {layoutProps.offcanvas && (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n )}\r\n\r\n {!layoutProps.offcanvas && (\r\n \r\n \r\n Notifications\r\n }\r\n >\r\n \r\n \r\n {/* */}\r\n {(notifs?.unread > 0 && !notifs.open) && {notifs.unread}}\r\n \r\n\r\n {(notifs?.unread > 0 && !notifs.open) && }\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n

Notifications

\r\n
\r\n\r\n \r\n {load && notifs ?\r\n notifs.notif.length > 0 ?\r\n (notifs.notif).map((v, i) => {\r\n const isStartProcess = v.current_step === \"StartProcess\" || v.notification_type_name === \"restart\";\r\n const editorPage = v.task_id && !isStartProcess ? 'task-editor' : 'item-editor';\r\n const routeTo = v.module_id && v.record_id ?\r\n `/${editorPage}/${v.module_id}/${v.record_id}/${v.task_id ?? ''}`\r\n : `/notifications/${v.id}`;\r\n const sinceString = v.time_since ?? '';\r\n const moreThan1daySince = sinceString.includes('days') && sinceString.split(' ')[0] > 1;\r\n\r\n return (\r\n {\r\n onDetail(v)\r\n }}\r\n >\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{v.record_created_by}

\r\n {v.notification_content &&
{v.notification_content}
}\r\n {v.time_since && }\r\n
\r\n
\r\n
\r\n )\r\n }\r\n )\r\n :\r\n No new notifications\r\n :\r\n
\r\n {[1, 2, 3].map((v) =>\r\n \r\n )}\r\n
\r\n }\r\n \r\n\r\n
{/* d-flex align-items-center */}\r\n Show all\r\n {/* */}\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\n/*\r\n{load ? \r\n notifs ? \r\n (notifs.notif || []).map((v, i) => \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {v.notification_content &&
{v.notification_content}
}\r\n {v.time_since &&
{v.time_since}
}\r\n
\r\n
\r\n
\r\n )\r\n :\r\n No new notifications\r\n : \r\n
\r\n {[1,2,3].map((v) => \r\n \r\n )}\r\n
\r\n}\r\n\r\n\r\n setKey(_key)}\r\n >\r\n \r\n \r\n Alerts\r\n \r\n \r\n \r\n \r\n Events\r\n \r\n \r\n \r\n \r\n Logs\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Briviba SaaS\r\n \r\n \r\n PHP, SQLite, Artisan CLIмм\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Briviba SaaS\r\n \r\n \r\n PHP, SQLite, Artisan CLIмм\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Briviba SaaS\r\n \r\n \r\n PHP, SQLite, Artisan CLIмм\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Briviba SaaS\r\n \r\n \r\n PHP, SQLite, Artisan CLIмм\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Briviba SaaS\r\n \r\n \r\n PHP, SQLite, Artisan CLIмм\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Briviba SaaS\r\n \r\n \r\n PHP, SQLite, Artisan CLIмм\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Briviba SaaS\r\n \r\n \r\n PHP, SQLite, Artisan CLIмм\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n New report has been received\r\n
\r\n
23 hrs ago
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Finance report has been generated\r\n
\r\n
25 hrs ago
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n New order has been received\r\n
\r\n
2 hrs ago
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n New customer is registered\r\n
\r\n
3 hrs ago
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Application has been approved\r\n
\r\n
3 hrs ago
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n New file has been uploaded\r\n
\r\n
5 hrs ago
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n New user feedback received\r\n
\r\n
8 hrs ago
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n System reboot has been successfully completed\r\n
\r\n
12 hrs ago
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n New order has been placed\r\n
\r\n
15 hrs ago
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Company meeting canceled\r\n
\r\n
19 hrs ago
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n New report has been received\r\n
\r\n
23 hrs ago
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Finance report has been generated\r\n
\r\n
25 hrs ago
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n New customer comment recieved\r\n
\r\n
2 days ago
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n New customer is registered\r\n
\r\n
3 days ago
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n All caught up!\r\n
\r\n No new notifications.\r\n
\r\n
\r\n
\r\n
\r\n*/","/* eslint-disable no-restricted-imports */\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useMemo } from \"react\";\r\nimport Dropdown from \"react-bootstrap/Dropdown\";\r\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\r\nimport Tooltip from \"react-bootstrap/Tooltip\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport objectPath from \"object-path\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nimport { useHtmlClassService } from \"../../../_core/MetronicLayout\";\r\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\r\nimport { DropdownTopbarItemToggler } from \"../../../../_partials/dropdowns\";\r\nimport { Cx } from \"@utils/Q\";\r\nimport style from \"./style.module.scss\";\r\n\r\nexport function QuickActionsDropdown() {\r\n // const bgImage = toAbsoluteUrl(\"/media/misc/bg-2.jpg\");\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n offcanvas: objectPath.get(uiService.config, \"extras.quick-actions.layout\") === \"offcanvas\",\r\n };\r\n }, [uiService]);\r\n\r\n const { menus } = useSelector(\r\n ({ auth }) => ({\r\n menus: (auth.config?.appMenu?.lists || []).filter((val) => val.href === \"/settings\"),\r\n }),\r\n shallowEqual\r\n );\r\n\r\n const renderPanel = (menu) => {\r\n return menu?.items?.length > 0\r\n ? (\r\n \r\n \r\n {menu.title}}\r\n >\r\n
\r\n \r\n {/* svg-icon-primary */}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n {menu.title}\r\n

\r\n {/* \r\n 23 tasks pending\r\n */}\r\n
\r\n \r\n
{/* row-paddingless */}\r\n {menu?.items?.map((itemVal, idx) => {\r\n if (itemVal.href === \"/settings/user-management\") {\r\n itemVal.href = \"/settings/user-management/FULL_USER\"\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {itemVal.title}\r\n \r\n {/* \r\n {menu.title}\r\n */}\r\n \r\n
\r\n )})}\r\n
\r\n
\r\n
\r\n
\r\n )\r\n : null;\r\n };\r\n\r\n return (\r\n <>\r\n {layoutProps.offcanvas && (\r\n Quick actions}\r\n >\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n )}\r\n \r\n {!layoutProps.offcanvas && (menus || []).map((val) => renderPanel(val))}\r\n \r\n );\r\n}\r\n","/* eslint-disable no-restricted-imports */\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useMemo } from \"react\";\r\nimport { useHistory } from \"react-router-dom\"; // , Link\r\nimport Dropdown from \"react-bootstrap/Dropdown\";\r\nimport Button from \"react-bootstrap/Button\";\r\nimport { useSelector, shallowEqual } from \"react-redux\";\r\nimport objectPath from \"object-path\";\r\n// import SVG from \"react-inlinesvg\";\r\n\r\nimport { useHtmlClassService } from \"../../../_core/MetronicLayout\";\r\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\r\nimport { DropdownTopbarItemToggler } from \"../../../../_partials/dropdowns\";\r\nimport Aroute from \"../../../../../app/components/Aroute\";\r\nimport Ava from \"../../../../../app/components/Ava\";\r\n\r\nexport function UserProfileDropdown() {\r\n\tconst history = useHistory();\r\n\t// const { user } = useSelector(state => state.auth);\r\n\tconst { user, imgUrl, email, isSysAdmin, isAdministrator } = useSelector(\r\n\t\t({ auth }) => ({\r\n\t\t\tuser: auth?.config?.userInfo?.username,\r\n\t\t\temail: auth?.config?.userInfo?.email,\r\n\t\t\tisSysAdmin: auth?.config?.isSysAdmin,\r\n\t\t\tisAdministrator: auth?.config?.isAdministrator,\r\n\t\t\timgUrl: \"/api/sys/User/ProfilePicture?id=\" + auth?.config?.userInfo?.uid + \"&x-token=\" + auth.authToken,\r\n\t\t}),\r\n\t\tshallowEqual\r\n\t);\r\n\r\n\tconst uiService = useHtmlClassService();\r\n\tconst layoutProps = useMemo(() => {\r\n\t\treturn {\r\n\t\t\tlight: objectPath.get(uiService.config, \"extras.user.dropdown.style\") === \"light\",\r\n\t\t};\r\n\t}, [uiService]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t
{/* clean */}\r\n\t\t\t\t\tHi,\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{user}\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t<>\r\n\t\t\t\t\t{/** ClassName should be 'dropdown-menu p-0 m-0 dropdown-menu-right dropdown-menu-anim dropdown-menu-top-unround dropdown-menu-xl' */}\r\n\t\t\t\t\t{layoutProps.light && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\"\"\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
{user}
\r\n\t\t\t\t\t\t\t\t{/* 3 messages */}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{!layoutProps.light && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{user}\r\n\r\n\t\t\t\t\t\t\t\t{email &&
{email}
}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tMy Profile\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tAccount settings and more\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t{(isSysAdmin) && \r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tAudit Trail\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tAudit record of Additions/creation, Deletions, Amendments\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
}\r\n\r\n\t\t\t\t\t{isSysAdmin && \r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
Process
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tProcess Engine Definitions, Instances\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
}\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t{/* \r\n Upgrade Plan\r\n */}\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n}\r\n\r\n//
","/* eslint-disable no-restricted-imports */\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useMemo } from \"react\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport objectPath from \"object-path\";\r\n\r\nimport { useHtmlClassService } from \"../../_core/MetronicLayout\";\r\nimport { UserProfileDropdown } from \"./dropdowns/UserProfileDropdown\";\r\nimport Ava from \"../../../../app/components/Ava\";\r\n\r\nexport function QuickUserToggler() {\r\n // const { user } = useSelector((state) => state.auth.config);\r\n const { user, imgUrl } = useSelector(\r\n ({ auth }) => ({\r\n user: auth?.config?.userInfo?.username,\r\n imgUrl: \"/api/sys/User/ProfilePicture?id=\" + auth?.config?.userInfo?.uid + \"&x-token=\" + auth.authToken,\r\n }),\r\n shallowEqual\r\n );\r\n // console.log(\"teh data user = \", token, uid, username);\r\n\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n // console.log(\"services = \",uiService)\r\n return {\r\n offcanvas: objectPath.get(uiService.config, \"extras.user.layout\") === \"offcanvas\",\r\n };\r\n }, [uiService]);\r\n\r\n // console.log('user: ', user);\r\n\r\n return (\r\n <>\r\n {layoutProps.offcanvas && (\r\n View user}\r\n >\r\n
\r\n \r\n \r\n Hi,\r\n \r\n \r\n {user}\r\n \r\n {/* \r\n \r\n A\r\n \r\n */}\r\n \r\n {/* */}\r\n \r\n
\r\n
\r\n \r\n )}\r\n\r\n {!layoutProps.offcanvas && }\r\n \r\n );\r\n}\r\n","export const HELP_URL = 'https://docs.unifiplatform.com'","/* eslint-disable no-restricted-imports */\r\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useMemo } from \"react\";\r\nimport { OverlayTrigger, Tooltip, Dropdown } from \"react-bootstrap\";\r\n//import { shallowEqual, useSelector } from \"react-redux\";\r\n// import { NavLink } from \"react-router-dom\";\r\n//import SVG from \"react-inlinesvg\";\r\nimport objectPath from \"object-path\";\r\n\r\nimport { useHtmlClassService } from \"../../../_core/MetronicLayout\";\r\n//import { toAbsoluteUrl } from \"../../../../_helpers\";\r\nimport { DropdownTopbarItemToggler } from \"../../../../_partials/dropdowns\";\r\nimport { HELP_URL } from \"../../../../../app/constants/links\";\r\n\r\nexport function HelpDropdown() {\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n offcanvas: objectPath.get(uiService.config, \"extras.quick-actions.layout\") === \"offcanvas\",\r\n };\r\n }, [uiService]);\r\n\r\n //const { menus } = useSelector(({ applicationMenu }) => ({\r\n // menus: applicationMenu.menus,\r\n //}), shallowEqual);\r\n //console.log('QuickActionsDropdown menus: ', menus);\r\n\r\n return (\r\n <>\r\n {layoutProps.offcanvas && (\r\n Help}\r\n >\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n )}\r\n\r\n {!layoutProps.offcanvas && (\r\n \r\n \r\n Help}\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n

\r\n Help\r\n

\r\n
\r\n\r\n
\r\n {\r\n [\r\n // { href: \"/settings/application-menu\", title: \"Application Menu\", icon: \"/media/svg/icons/Design/Layers.svg\" },,\r\n { href: HELP_URL, title: \"Online Documentation\", icon: \"fal fa-atlas\", target: \"_blank\", rel: \"noopener noreferrer\" },\r\n { href: \"mailto:support@finansys.com\", title: \"support@finansys.com\", icon: \"fal fa-envelope\" }, // eslint-disable-next-line\r\n { href: \"https://www.teamviewer.com/en-us/download/windows/\", title: \"TeamViewer Client\", icon: \"fal fa-user-md-chat\", target: \"_blank\", rel: \"noopener noreferrer\" },\r\n { href: \"tel:+44-20-7456-9839\", title: \"+44-20-7456-9839\", icon: \"fal fa-phone\" }, // label: \"+44-20-7456-9839\", \r\n ].map((v, i) => \r\n \r\n \r\n {v.title}{/* text-break */}\r\n {/* {v.label} */}\r\n \r\n )}\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\n\r\n","import React, { useMemo } from \"react\"; // , useEffect\r\nimport objectPath from \"object-path\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\n\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\nimport { useHtmlClassService } from \"../../_core/MetronicLayout\";\r\n// import { SearchDropdown } from \"../extras/dropdowns/search/SearchDropdown\";\r\nimport { UserNotificationsDropdown } from \"../extras/dropdowns/UserNotificationsDropdown\";\r\nimport { QuickActionsDropdown } from \"../extras/dropdowns/QuickActionsDropdown\";\r\n// import { MyCartDropdown } from \"../extras/dropdowns/MyCartDropdown\";\r\n// import { LanguageSelectorDropdown } from \"../extras/dropdowns/LanguageSelectorDropdown\";\r\nimport { QuickUserToggler } from \"../extras/QuiclUserToggler\";\r\n\r\n// FS-CUSTOM : \r\nimport { HelpDropdown } from \"../extras/dropdowns/HelpDropdown\";\r\n\r\nexport function Topbar() {\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n // viewSearchDisplay: objectPath.get(\r\n // uiService.config,\r\n // \"extras.search.display\"\r\n // ),\r\n viewNotificationsDisplay: objectPath.get(\r\n uiService.config,\r\n \"extras.notifications.display\"\r\n ),\r\n viewQuickActionsDisplay: objectPath.get(\r\n uiService.config,\r\n \"extras.quick-actions.display\"\r\n ),\r\n // viewCartDisplay: objectPath.get(uiService.config, \"extras.cart.display\"), \r\n viewQuickPanelDisplay: objectPath.get(\r\n uiService.config,\r\n \"extras.quick-panel.display\"\r\n ),\r\n // viewLanguagesDisplay: objectPath.get(\r\n // uiService.config,\r\n // \"extras.languages.display\"\r\n // ),\r\n viewUserDisplay: objectPath.get(uiService.config, \"extras.user.display\"),\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n
\r\n {/* {layoutProps.viewSearchDisplay && } */}\r\n\r\n {layoutProps.viewNotificationsDisplay && }\r\n\r\n {layoutProps.viewQuickActionsDisplay && }\r\n\r\n \r\n\r\n {/* {layoutProps.viewCartDisplay && } */}\r\n\r\n {layoutProps.viewQuickPanelDisplay && (\r\n Quick panel}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n )}\r\n\r\n {/* {layoutProps.viewLanguagesDisplay && } */}\r\n\r\n {layoutProps.viewUserDisplay && }\r\n \r\n );\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useMemo, useEffect, useState } from \"react\";\r\n// import { useLocation } from \"react-router\";\r\nimport { NavLink, useLocation } from \"react-router-dom\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport SVG from \"react-inlinesvg\";\r\nimport useDatasetApi from \"@utils/hooks/useDatasetApi\";\r\n\r\nimport { toAbsoluteUrl, checkIsActive } from \"../../../../_helpers\";\r\n\r\nexport function HeaderMenu({ layoutProps }) {\r\n const location = useLocation();\r\n const { getDataset } = useDatasetApi();\r\n const [ userExtRefId, setUserExtRefId ] = useState(\"\");\r\n const getMenuItemActive = (url) => {\r\n return checkIsActive(location, url) ? \" menu-item-active\" : \"\";\r\n };\r\n\r\n const { menus, isSysAdmin, isAdministrator, isConsultant } = useSelector(\r\n ({ auth }) => ({\r\n menus: auth?.config?.appMenu?.lists.filter((val) => val.href !== \"/settings\"),\r\n ...auth?.config\r\n }),\r\n shallowEqual\r\n );\r\n const fetchUserExtRefId = async () => {\r\n const { data } = await getDataset({ id: \"application_user_extension\" }); \r\n setUserExtRefId(data?.id);\r\n } \r\n\r\n useEffect(() => {\r\n if(isSysAdmin || isAdministrator || isConsultant) {\r\n fetchUserExtRefId();\r\n }\r\n },[isSysAdmin, isAdministrator])\r\n\r\n const headerMenus = useMemo( () => {\r\n let hMenus = menus;\r\n if(userExtRefId){\r\n hMenus.push(\r\n {\r\n title: \"User Extension\",\r\n href: `/referencedata/${userExtRefId}`\r\n }\r\n )\r\n }\r\n if (isSysAdmin || isAdministrator) {\r\n hMenus.push(\r\n {\r\n id: \"_webhooks\",\r\n title: \"Webhooks\",\r\n href: `/webhooks`\r\n }\r\n )\r\n }\r\n if(!isSysAdmin && !isAdministrator && !isConsultant){\r\n hMenus = hMenus.filter( m => m.href !== \"/module-categories\");\r\n }\r\n return hMenus;\r\n },[menus, userExtRefId, isSysAdmin, isAdministrator, isConsultant])\r\n\r\n const GenerateRootMenu = (item) => {\r\n if (item.items && item.items.length > 0) {\r\n return (\r\n \r\n \r\n {item.title}\r\n \r\n \r\n
\r\n
    \r\n {item.items.map((i) =>\r\n i.items.length === 0 ? (\r\n \r\n \r\n {i.title}\r\n \r\n \r\n ) : (\r\n \r\n {i.items.map((r) => GenerateMenu(r))}\r\n \r\n )\r\n )}\r\n
\r\n
\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n \r\n {item.title}\r\n {layoutProps.rootArrowEnabled && }\r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n const GenerateMenu = (item) => {\r\n return (\r\n \r\n \r\n {item.icon && (\r\n \r\n \r\n \r\n )}\r\n {item.title}\r\n \r\n \r\n
\r\n
    \r\n {item.items && item.items.length > 0 ? (\r\n GenerateMenu(item)\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n {item.title}\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n return (\r\n \r\n
    \r\n {(headerMenus || []).map((m) => GenerateRootMenu(m))}\r\n
\r\n \r\n );\r\n}\r\n","import React, {useMemo} from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport objectPath from \"object-path\";\r\nimport {Link} from \"react-router-dom\";\r\nimport {toAbsoluteUrl} from \"../../../../_helpers\";\r\nimport {useHtmlClassService} from \"../../../_core/MetronicLayout\";\r\nimport {HeaderMenu} from \"./HeaderMenu\";\r\nimport formEditorActions from \"@actions/formEditorActions\";\r\n\r\nexport function HeaderMenuWrapper() {\r\n const uiService = useHtmlClassService();\r\n const dispatch = useDispatch();\r\n\r\n const resetLastHistory = () => {\r\n\t\tdispatch(formEditorActions.setLastHistory({\r\n\t\t moduleId: '',\r\n\t\t\ttab: 'Tasks',\r\n\t\t\tpage: 1\r\n\t\t}))\r\n\t}\r\n \r\n const layoutProps = useMemo(() => {\r\n return {\r\n config: uiService.config,\r\n ktMenuClasses: uiService.getClasses(\"header_menu\", true),\r\n rootArrowEnabled: objectPath.get(\r\n uiService.config,\r\n \"header.menu.self.root-arrow\"\r\n ),\r\n menuDesktopToggle: objectPath.get(uiService.config, \"header.menu.desktop.toggle\"),\r\n headerMenuAttributes: uiService.getAttributes(\"header_menu\"),\r\n headerSelfTheme: objectPath.get(uiService.config, \"header.self.theme\"),\r\n ulClasses: uiService.getClasses(\"header_menu_nav\", true),\r\n disabledAsideSelfDisplay:\r\n objectPath.get(uiService.config, \"aside.self.display\") === false,\r\n action: resetLastHistory\r\n };\r\n }, [uiService]);\r\n const getHeaderLogo = () => {\r\n let result = \"logo-light.png\";\r\n if (layoutProps.headerSelfTheme && layoutProps.headerSelfTheme !== \"dark\") {\r\n result = \"logo-dark.png\";\r\n }\r\n return toAbsoluteUrl(`/media/logos/${result}`);\r\n };\r\n\r\n return <>\r\n {/*begin::Header Menu Wrapper*/}\r\n
\r\n {layoutProps.disabledAsideSelfDisplay && (\r\n <>\r\n {/*begin::Header Logo*/}\r\n
\r\n \r\n \"logo\"\r\n \r\n
\r\n {/*end::Header Logo*/}\r\n \r\n )}\r\n {/*begin::Header Menu*/}\r\n \r\n {/*end::Header Menu*/}\r\n
\r\n {/*Header Menu Wrapper*/}\r\n \r\n}\r\n","import React from \"react\";\r\nimport {withRouter} from \"react-router-dom\";\r\nimport {ProgressBar} from \"react-bootstrap\";\r\n\r\n// TODO: Should be rewrited to pure function\r\nclass AnimateLoading extends React.Component {\r\n animateTimeout;\r\n stopAnimateTimeout;\r\n state = {\r\n width: 0,\r\n routeChanged: false\r\n };\r\n\r\n componentDidUpdate(nextProps) {\r\n if (this.props.location.pathname !== nextProps.location.pathname) {\r\n this.animate();\r\n this.scrollToTop();\r\n }\r\n }\r\n\r\n scrollToTop() {\r\n const scrollToTopBtn = document.getElementById(\"kt_scrolltop\");\r\n if (scrollToTopBtn) {\r\n scrollToTopBtn.click();\r\n }\r\n }\r\n\r\n animate() {\r\n this.animateTimeout = setTimeout(() => {\r\n if (this.state.width <= 100) {\r\n this.setState({ width: this.state.width + 10 });\r\n this.animate();\r\n } else {\r\n this.stopAnimate();\r\n }\r\n }, 30);\r\n }\r\n stopAnimate() {\r\n clearTimeout(this.animateInterval);\r\n this.stopAnimateTimeout = setTimeout(() => {\r\n this.setState({ width: 0 });\r\n }, 300);\r\n }\r\n componentWillUnmount() {\r\n if (this.stopAnimateTimeout) {\r\n clearTimeout(this.stopAnimateTimeout);\r\n }\r\n if (this.animateTimeout) {\r\n clearTimeout(this.animateTimeout);\r\n }\r\n }\r\n render() {\r\n return (\r\n \r\n {this.state.width > 0 && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AnimateLoading);\r\n","import React, {useMemo} from \"react\";\r\nimport objectPath from \"object-path\";\r\n\r\nimport { useHtmlClassService } from \"../../_core/MetronicLayout\";\r\nimport { Topbar } from \"./Topbar\";\r\nimport { HeaderMenuWrapper } from \"./header-menu/HeaderMenuWrapper\";\r\nimport { AnimateLoading } from \"../../../_partials/controls\";\r\n\r\nexport function Header() {\r\n const uiService = useHtmlClassService();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n headerClasses: uiService.getClasses(\"header\", true),\r\n headerAttributes: uiService.getAttributes(\"header\"),\r\n headerContainerClasses: uiService.getClasses(\"header_container\", true),\r\n menuHeaderDisplay: objectPath.get(\r\n uiService.config,\r\n \"header.menu.self.display\"\r\n )\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n
\r\n {/*begin::Container*/}\r\n
\r\n \r\n {/*begin::Header Menu Wrapper*/}\r\n {layoutProps.menuHeaderDisplay && }\r\n {!layoutProps.menuHeaderDisplay &&
}\r\n {/*end::Header Menu Wrapper*/}\r\n\r\n {/*begin::Topbar*/}\r\n \r\n {/*end::Topbar*/}\r\n
\r\n {/*end::Container*/}\r\n
\r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport objectPath from \"object-path\";\r\n// import SVG from \"react-inlinesvg\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\nimport { useHtmlClassService } from \"../../_core/MetronicLayout\";\r\nimport { APP_NAME } from '../../../../data/appData';\r\n\r\nexport function HeaderMobile() {\r\n const uiService = useHtmlClassService();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n headerLogo: toAbsoluteUrl(\"/media/logos/UniFi-White.svg\"),\r\n // headerLogo: uiService.getStickyLogo(),\r\n asideDisplay: objectPath.get(uiService.config, \"aside.self.display\"),\r\n headerMenuSelfDisplay:\r\n objectPath.get(uiService.config, \"header.menu.self.display\") === true,\r\n headerMobileCssClasses: uiService.getClasses(\"header_mobile\", true),\r\n headerMobileAttributes: uiService.getAttributes(\"header_mobile\"),\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n
\r\n \r\n \r\n {/* \"logo\" */}\r\n \r\n\r\n {/*begin::Toolbar*/}\r\n
\r\n {layoutProps.asideDisplay && (\r\n <>\r\n {/*begin::Aside Mobile Toggle*/}\r\n \r\n \r\n \r\n {/*end::Aside Mobile Toggle*/}\r\n \r\n )}\r\n\r\n {layoutProps.headerMenuSelfDisplay && (\r\n <>\r\n {/*begin::Header Menu Mobile Toggle*/}\r\n \r\n \r\n \r\n {/*end::Header Menu Mobile Toggle*/}\r\n \r\n )}\r\n\r\n {/*begin::Topbar Mobile Toggle*/}\r\n \r\n {/* \r\n \r\n */}\r\n\r\n \r\n \r\n {/*end::Topbar Mobile Toggle*/}\r\n
\r\n {/*end::Toolbar*/}\r\n
\r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport objectPath from \"object-path\";\r\n\r\nimport { useHtmlClassService } from \"../../_core/MetronicLayout\";\r\nimport { toAbsoluteUrl } from \"../../../_helpers\";\r\nimport { APP_NAME } from \"../../../../data/appData\";\r\nimport style from \"../aside/style.module.scss\";\r\n\r\nexport function Brand() {\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n brandClasses: uiService.getClasses(\"brand\", true),\r\n asideSelfMinimizeToggle: objectPath.get(\r\n uiService.config,\r\n \"aside.self.minimize.toggle\"\r\n ),\r\n // headerLogo: uiService.getLogo(),\r\n headerLogo: toAbsoluteUrl(\"/media/logos/UniFi-White.svg\"), // finansys_flow_white_2.svg\r\n headerStickyLogo: uiService.getStickyLogo(),\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n {layoutProps.asideSelfMinimizeToggle && (\r\n \r\n )}\r\n
\r\n );\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { useLocation, NavLink } from \"react-router-dom\";\r\nimport { useDebounceEffect } from \"ahooks\";\r\nimport { Input, Badge } from \"antd\";\r\nimport { checkIsActive } from \"@metronic/_helpers\"; // toAbsoluteUrl, \r\nimport formEditorActions from \"@actions/formEditorActions\";\r\nimport { mapSidebarMenuTrees } from \"@utils/form-editor/normalize-response\";\r\nimport CreateModule from \"./CreateModule\";\r\nimport style from \"../style.module.scss\";\r\nimport * as appMenuActions from \"@modules/ApplicationMenu/_redux/applicationMenuActions\";\r\nimport { SPECIAL_CHAR_REGEX } from \"@constants/validation/conditions\";\r\nimport _message from \"@utils/message\";\r\n\r\nexport function AsideMenuList({ layoutProps }) {\r\n const dispatch = useDispatch();\r\n const location = useLocation();\r\n const { moduleFavourite, tasksCount, menuTrees } = useSelector(\r\n (state) => ({\r\n ...state.formEditorReducer,\r\n menuTrees: state.applicationMenu.menus\r\n })\r\n );\r\n const { isFullUser, isConsultant } = useSelector(({ auth }) => auth.config || {});\r\n const favouriteList = moduleFavourite || [];\r\n const [dataSidebar, setDataSidebar] = useState([]);\r\n const [loadingSide, setLoadingSide] = useState(false);\r\n const [createFromScratch, setCreateFromScratch] = useState(false);\r\n const [searchTerm, setSearchTerm] = useState(\"\");\r\n const getMenuItemActive = (url, hasSubmenu = false) => {\r\n return checkIsActive(location, url) ? ` ${!hasSubmenu && \"menu-item-active\"} menu-item-open ` : \"\";\r\n };\r\n\r\n const resetLastHistory = () => {\r\n dispatch(formEditorActions.setLastHistory({\r\n moduleId: '',\r\n tab: 'Tasks',\r\n page: 1\r\n }))\r\n }\r\n\r\n\r\n const loadFavouriteList = async () => {\r\n await dispatch(formEditorActions.getFavouriteModule());\r\n };\r\n\r\n const loadTasksCount = async () => {\r\n await dispatch(formEditorActions.getTasksCount())\r\n };\r\n\r\n const loadMenuTree = async () => {\r\n await dispatch(appMenuActions.fetchMenus())\r\n }\r\n\r\n useDebounceEffect(() => {\r\n if (SPECIAL_CHAR_REGEX.test(searchTerm)) {\r\n _message.error('Search value cannot contain special characters')\r\n return;\r\n }\r\n if (menuTrees?.[0]?.id) {\r\n setDataSidebar(mapSidebarMenuTrees(menuTrees, searchTerm))\r\n }\r\n // eslint-disable-next-line\r\n }, [menuTrees, searchTerm], {\r\n wait: 500,\r\n leading: false,\r\n })\r\n\r\n useEffect(() => {\r\n let listLoaded = false;\r\n if (!listLoaded) {\r\n loadMenuTree();\r\n loadFavouriteList();\r\n setLoadingSide(false);\r\n loadTasksCount();\r\n }\r\n return () => {\r\n listLoaded = true;\r\n };\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const STATIC_MENUS = [\r\n { url: \"/tasks\", label: \"Home\", icon: \"fa-home\", isFullUserMenu: false, action: resetLastHistory },\r\n { url: \"/dashboard\", label: \"Dashboards & Reports\", icon: \"fa-tachometer\", isFullUserMenu: true },\r\n { url: \"/business-intelligence\", label: \"Business Intelligence\", icon: \"fa-chart-line\", isFullUserMenu: true },\r\n { url: \"/inquiry\", label: \"Quick Report\", icon: \"fa-search-plus\", isFullUserMenu: true }, // Advanced Search\r\n { url: \"/applications\", label: \"Apps\", icon: \"fa-columns\", isFullUserMenu: false }\r\n ];\r\n const RenderMenuIcon = ({ icon, iconPrefix = '', menuClass = '' }) => {\r\n return icon?.match('fa-')\r\n ? \r\n : \r\n }\r\n const RenderMenuGroup = ({ item, idx, subMenu }) => {\r\n return \r\n \r\n {subMenu && }\r\n
\r\n \r\n {item?.name}\r\n
\r\n {!!item?.children?.length &&
}\r\n
\r\n
\r\n
    \r\n {(item?.children || []).map((val, cIdx) => {\r\n return val?.type !== \"Module\" ?\r\n RenderMenuGroup({ item: val, idx: cIdx, subMenu: true })\r\n :\r\n RenderModuleItem({ val, idx: cIdx })\r\n })}\r\n
\r\n
\r\n \r\n }\r\n const RenderModuleItem = ({ val, idx }) => {\r\n const detailPage = `/module/${val?.id}?from=sidebar`;\r\n const isActive = checkIsActive(location, detailPage);\r\n return (\r\n \r\n \r\n \r\n {isActive ? : }\r\n \r\n {val?.text}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n
  • \r\n }\r\n onChange={(e) => setSearchTerm(e.target.value)}\r\n />\r\n
  • \r\n\r\n {STATIC_MENUS.map(v => // \"menu-item \" + getMenuItemActive(v.url, false)\r\n (((isFullUser || isConsultant) && v.isFullUserMenu) || !v.isFullUserMenu) && (\r\n
  • \r\n {v.url.includes('dashboard') ? \r\n \r\n {v.label}\r\n : \r\n \r\n {v.label}\r\n {v.label === \"Home\" && !!tasksCount &&\r\n \r\n }\r\n }\r\n
  • \r\n )\r\n )}\r\n {favouriteList.length > 0 ? (\r\n <>\r\n \r\n \r\n \r\n Favourites\r\n \r\n {/* */}\r\n \r\n\r\n {favouriteList.map((module) => {\r\n const detailPage = `/module/${module.id}?from=sidebar`;\r\n const categoryIcon = module?.category_icon ? module?.category_icon : 'navicon-Favourites';\r\n return (\r\n
    \r\n
      \r\n \r\n \r\n \r\n {module.title || module.display_name}\r\n \r\n \r\n
    \r\n
    \r\n );\r\n })}\r\n \r\n \r\n ) : null}\r\n {!loadingSide ? (\r\n <>\r\n {dataSidebar.length > 0 ? dataSidebar.map((item, idx) => {\r\n return item?.id ?\r\n RenderMenuGroup({ item, idx })\r\n : null;\r\n }) : null}\r\n \r\n ) : null}\r\n
\r\n {\r\n (isFullUser || isConsultant)\r\n ? (\r\n
    \r\n
  • \r\n setCreateFromScratch(true)}\r\n className={\"btn btn-link text-decoration-none fa-lg fal fa-plus-circle \" + style[\"nav-green--txt\"]}\r\n >\r\n Create App\r\n \r\n
  • \r\n
\r\n )\r\n : null\r\n }\r\n\r\n setCreateFromScratch(false)}\r\n />\r\n \r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\n\r\nimport {AsideMenuList} from \"./AsideMenuList\";\r\nimport {useHtmlClassService} from \"../../../_core/MetronicLayout\";\r\n\r\nexport function AsideMenu({ disableScroll }) {\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n layoutConfig: uiService.config,\r\n asideMenuAttr: uiService.getAttributes(\"aside_menu\"),\r\n ulClasses: uiService.getClasses(\"aside_menu_nav\", true),\r\n asideClassesFromConfig: uiService.getClasses(\"aside_menu\", true)\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React, {useMemo} from \"react\";\r\nimport {Link} from \"react-router-dom\";\r\nimport objectPath from \"object-path\";\r\n\r\nimport { Brand } from \"../brand/Brand\";\r\nimport { AsideMenu } from \"./aside-menu/AsideMenu\";\r\nimport { useHtmlClassService } from \"../../_core/MetronicLayout\";\r\n\r\nexport function Aside() {\r\n const uiService = useHtmlClassService();\r\n const layoutProps = useMemo(() => {\r\n return {\r\n disableScroll: objectPath.get(uiService.config, \"aside.menu.dropdown\") === \"true\" || false,\r\n asideClassesFromConfig: uiService.getClasses(\"aside\", true),\r\n disableAsideSelfDisplay: objectPath.get(uiService.config, \"aside.self.display\") === false,\r\n headerLogo: uiService.getLogo()\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n
\r\n \r\n\r\n {/* begin::Aside Menu */}\r\n
\r\n {/* begin::Header Logo */}\r\n {layoutProps.disableAsideSelfDisplay && (\r\n
\r\n \r\n \"logo\"\r\n \r\n
\r\n )}\r\n\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, {useMemo} from \"react\";\r\n\r\nimport {useHtmlClassService} from \"../../_core/MetronicLayout\";\r\nimport { APP_NAME, APP_YEAR } from '../../../../data/appData';\r\n\r\nexport function Footer() {\r\n // const today = new Date().getFullYear();\r\n const uiService = useHtmlClassService();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n footerClasses: uiService.getClasses(\"footer\", true),\r\n footerContainerClasses: uiService.getClasses(\"footer_container\", true)\r\n };\r\n }, [uiService]);\r\n\r\n return (\r\n \r\n \r\n
\r\n {APP_YEAR} ©{\" \"}\r\n \r\n FinanSys Limited\r\n \r\n
\r\n\r\n {/*
\r\n \r\n About\r\n \r\n \r\n Team\r\n \r\n \r\n Contact\r\n \r\n
*/}\r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutHeader = function() {\r\n // Private properties\r\n var _element;\r\n var _elementForMobile;\r\n var _object;\r\n\r\n\t// Private functions\r\n // Get Height\r\n var _getHeight = function() {\r\n var height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element) + 1;\r\n }\r\n\r\n return height;\r\n }\r\n\r\n // Get Height\r\n var _getHeightForMobile = function() {\r\n var height;\r\n\r\n height = KTUtil.actualHeight(_elementForMobile);\r\n\r\n return height;\r\n }\r\n\r\n // Public Methods\r\n\treturn {\r\n\t\tinit: function(id, idForMobile) {\r\n _element = KTUtil.getById(id);\r\n _elementForMobile = KTUtil.getById(idForMobile);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\t\t},\r\n\r\n isFixed: function() {\r\n return KTUtil.hasClass(KTUtil.getBody(), 'header-fixed')\r\n },\r\n\r\n isFixedForMobile: function() {\r\n return KTUtil.hasClass(KTUtil.getBody(), 'header-mobile-fixed')\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getElementForMobile: function() {\r\n return _elementForMobile;\r\n },\r\n\r\n getHeader: function() {\r\n return _object;\r\n },\r\n\r\n getHeight: function() {\r\n return _getHeight();\r\n },\r\n\r\n getHeightForMobile: function() {\r\n return _getHeightForMobile();\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutHeader;\r\n}\r\n\r\nexport default KTLayoutHeader;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\r\nimport KTMenu from \"./../../components/menu.js\";\r\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutHeaderMenu = function() {\r\n // Private properties\r\n\tvar _menuElement;\r\n var _menuObject;\r\n var _offcanvasElement;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n\tvar _init = function() {\r\n\t\t_offcanvasObject = new KTOffcanvas(_offcanvasElement, {\r\n\t\t\toverlay: true,\r\n\t\t\tbaseClass: 'header-menu-wrapper',\r\n\t\t\tcloseBy: 'kt_header_menu_mobile_close_btn',\r\n\t\t\ttoggleBy: {\r\n\t\t\t\ttarget: 'kt_header_mobile_toggle',\r\n\t\t\t\tstate: 'mobile-toggle-active'\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\t_menuObject = new KTMenu(_menuElement, {\r\n\t\t\tsubmenu: {\r\n\t\t\t\tdesktop: 'dropdown',\r\n\t\t\t\ttablet: 'accordion',\r\n\t\t\t\tmobile: 'accordion'\r\n\t\t\t},\r\n\t\t\taccordion: {\r\n\t\t\t\tslideSpeed: 200, // accordion toggle slide speed in milliseconds\r\n\t\t\t\texpandAll: false // allow having multiple expanded accordions in the menu\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Close aside offcanvas panel before page reload On tablet and mobile\r\n _menuObject.on('linkClick', function(menu) {\r\n if (KTUtil.isBreakpointDown('lg')) { // Tablet and mobile mode\r\n _offcanvasObject.hide(); // Hide offcanvas after general link click\r\n }\r\n });\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n init: function(menuId, offcanvasId) {\r\n _menuElement = KTUtil.getById(menuId);\r\n _offcanvasElement = KTUtil.getById(offcanvasId);\r\n\r\n if (!_menuElement) {\r\n return;\r\n }\r\n\r\n // Initialize menu\r\n _init();\r\n\t\t},\r\n\r\n\t\tgetMenuElement: function() {\r\n\t\t\treturn _menuElement;\r\n\t\t},\r\n\r\n getOffcanvasElement: function() {\r\n\t\t\treturn _offcanvasElement;\r\n\t\t},\r\n\r\n getMenu: function() {\r\n\t\t\treturn _menuObject;\r\n\t\t},\r\n\r\n\t\tpauseDropdownHover: function(time) {\r\n\t\t\tif (_menuObject) {\r\n\t\t\t\t_menuObject.pauseDropdownHover(time);\r\n\t\t\t}\r\n\t\t},\r\n\r\n getOffcanvas: function() {\r\n\t\t\treturn _offcanvasObject;\r\n\t\t},\r\n\r\n\t\tcloseMobileOffcanvas: function() {\r\n\t\t\tif (_menuObject && KTUtil.isMobileDevice()) {\r\n\t\t\t\t_offcanvasObject.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutHeaderMenu;\r\n}\r\n\r\nexport default KTLayoutHeaderMenu;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport KTToggle from \"./../../components/toggle.js\";\r\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutHeaderTopbar = function() {\r\n // Private properties\r\n\tvar _toggleElement;\r\n var _toggleObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n\t\t\t_toggleObject = new KTToggle(_toggleElement, {\r\n\t\t\t\ttarget: KTUtil.getBody(),\r\n\t\t\t\ttargetState: 'topbar-mobile-on',\r\n\t\t\t\ttoggleState: 'active',\r\n\t\t\t});\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _toggleElement = KTUtil.getById(id);\r\n\r\n\t\t\tif (!_toggleElement) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n\t\t},\r\n\r\n getToggleElement: function() {\r\n return _toggleElement;\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutHeaderTopbar;\r\n}\r\n\r\nexport default KTLayoutHeaderTopbar;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutBrand = function() {\r\n // Private properties\r\n var _element;\r\n\r\n // Private functions\r\n var _getHeight = function() {\r\n var height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element);\r\n }\r\n\r\n return height;\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getHeight: function() {\r\n return _getHeight();\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutBrand;\r\n}\r\n\r\nexport default KTLayoutBrand;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTLayoutBrand from \"./brand.js\";\r\nimport KTMenu from \"./../../components/menu.js\";\r\nimport KTLayoutAside from \"./aside.js\";\r\n\r\nvar KTLayoutAsideMenu = function() {\r\n // Private properties\r\n var _element;\r\n var _menuObject;\r\n\r\n\t// Initialize\r\n\tvar _init = function() {\r\n\t\tvar menuDesktopMode = (KTUtil.attr(_element, 'data-menu-dropdown') === '1' ? 'dropdown' : 'accordion');\r\n var scroll;\r\n\r\n\t\tif (KTUtil.attr(_element, 'data-menu-scroll') === '1') {\r\n\t\t\tscroll = {\r\n\t\t\t\trememberPosition: true, // remember position on page reload\r\n\t\t\t\theight: function() { // calculate available scrollable area height\r\n\t\t\t\t\tvar height = parseInt(KTUtil.getViewPort().height);\r\n\r\n\t\t\t\t\tif (KTUtil.isBreakpointUp('lg')) {\r\n\t\t\t\t\t\theight = height - KTLayoutBrand.getHeight();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\theight = height - (parseInt(KTUtil.css(_element, 'marginBottom')) + parseInt(KTUtil.css(_element, 'marginTop')));\r\n\r\n\t\t\t\t\treturn height;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t_menuObject = new KTMenu(_element, {\r\n\t\t\t// Vertical scroll\r\n\t\t\tscroll: scroll,\r\n\r\n\t\t\t// Submenu setup\r\n\t\t\tsubmenu: {\r\n\t\t\t\tdesktop: menuDesktopMode,\r\n\t\t\t\ttablet: 'accordion', // menu set to accordion in tablet mode\r\n\t\t\t\tmobile: 'accordion' // menu set to accordion in mobile mode\r\n\t\t\t},\r\n\r\n\t\t\t// Accordion setup\r\n\t\t\taccordion: {\r\n\t\t\t\texpandAll: false // allow having multiple expanded accordions in the menu\r\n\t\t\t}\r\n\t\t});\r\n\r\n // Disable menu click if aside is fixed and minimized\r\n _menuObject.on('submenuToggle', function(menu) {\r\n if (KTLayoutAside.isMinimized() === true && KTLayoutAside.isHoverable() === false) {\r\n return false;\r\n }\r\n });\r\n\r\n // Close aside offcanvas panel before page reload On tablet and mobile\r\n _menuObject.on('linkClick', function(menu) {\r\n if (KTUtil.isBreakpointDown('lg')) { // Tablet and mobile mode\r\n KTLayoutAside.getOffcanvas().hide(); // Hide offcanvas after general link click\r\n }\r\n });\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize menu\r\n _init();\r\n\t\t},\r\n\r\n\t\tgetElement: function() {\r\n\t\t\treturn _element;\r\n\t\t},\r\n\r\n getMenu: function() {\r\n\t\t\treturn _menuObject;\r\n\t\t},\r\n\r\n pauseDropdownHover: function(time) {\r\n\t\t\tif (_menuObject) {\r\n\t\t\t\t_menuObject.pauseDropdownHover(time);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcloseMobileOffcanvas: function() {\r\n\t\t\tif (_menuObject && KTUtil.isMobileDevice()) {\r\n\t\t\t\t_menuObject.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutAsideMenu;\r\n}\r\n\r\nexport default KTLayoutAsideMenu;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\r\nimport KTLayoutAsideMenu from \"./aside-menu.js\";\r\n\r\nvar KTLayoutAside = function() {\r\n // Private properties\r\n var _body;\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n\t// Initialize\r\n\tvar _init = function() {\r\n\t\tvar offcanvasClass = KTUtil.hasClass(_element, 'aside-offcanvas-default') ? 'aside-offcanvas-default' : 'aside';\r\n\r\n // Initialize mobile aside offcanvas\r\n\t\t_offcanvasObject = new KTOffcanvas(_element, {\r\n\t\t\tbaseClass: offcanvasClass,\r\n\t\t\toverlay: true,\r\n\t\t\tcloseBy: 'kt_aside_close_btn',\r\n\t\t\ttoggleBy: {\r\n\t\t\t\ttarget: 'kt_aside_mobile_toggle',\r\n\t\t\t\tstate: 'mobile-toggle-active'\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Handle Minimized Aside Hover\r\n\t\tif (KTUtil.hasClass(_body, 'aside-fixed') && KTUtil.hasClass(_body, 'aside-minimize-hoverable')) {\r\n\t\t\tvar insideTm;\r\n\t\t\tvar outsideTm;\r\n\r\n // Handle Aside Hover Mode\r\n\t\t\tKTUtil.addEvent(_element, 'mouseenter', function(e) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif (KTUtil.isBreakpointUp('lg') === false) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (outsideTm) {\r\n\t\t\t\t\tclearTimeout(outsideTm);\r\n\t\t\t\t\toutsideTm = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinsideTm = setTimeout(function() {\r\n\t\t\t\t\tif (KTUtil.hasClass(_body, 'aside-minimize') && KTUtil.isBreakpointUp('lg')) {\r\n\t\t\t\t\t\tKTUtil.removeClass(_body, 'aside-minimize');\r\n\r\n\t\t\t\t\t\t// Hover class\r\n\t\t\t\t\t\tKTUtil.addClass(_body, 'aside-minimize-hover');\r\n\r\n\t\t\t\t\t\tKTLayoutAsideMenu.getMenu().scrollUpdate();\r\n\t\t\t\t\t\tKTLayoutAsideMenu.getMenu().scrollTop();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 50);\r\n\t\t\t});\r\n\r\n\t\t\tKTUtil.addEvent(_element, 'mouseleave', function(e) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif (KTUtil.isBreakpointUp('lg') === false) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (insideTm) {\r\n\t\t\t\t\tclearTimeout(insideTm);\r\n\t\t\t\t\tinsideTm = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toutsideTm = setTimeout(function() {\r\n\t\t\t\t if (KTUtil.hasClass(_body, 'aside-minimize-hover') && KTUtil.isBreakpointUp('lg')) {\r\n\t\t\t\t\t KTUtil.removeClass(_body, 'aside-minimize-hover');\r\n\t\t\t\t\t KTUtil.addClass(_body, 'aside-minimize');\r\n\r\n\t\t\t\t\t\t// Hover class\r\n KTLayoutAsideMenu.getMenu().scrollUpdate();\r\n\t\t\t\t\t\tKTLayoutAsideMenu.getMenu().scrollTop();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 100);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n _body = KTUtil.getBody();\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getOffcanvas: function() {\r\n return _offcanvasObject;\r\n },\r\n\r\n isFixed: function() {\r\n return KTUtil.hasClass(_body, 'aside-fixed');\r\n },\r\n\r\n isMinimized: function() {\r\n return (KTUtil.hasClass(_body, 'aside-fixed') && KTUtil.hasClass(_body, 'aside-minimize'));\r\n },\r\n\r\n isHoverable: function() {\r\n return (KTUtil.hasClass(_body, 'aside-fixed') && KTUtil.hasClass(_body, 'aside-minimize-hoverable'));\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutAside;\r\n}\r\n\r\nexport default KTLayoutAside;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutSubheader = function() {\r\n // Private properties\r\n var _element;\r\n\r\n // Private functions\r\n var _getHeight = function() {\r\n var height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element);\r\n }\r\n\r\n return height;\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\t\t},\r\n\r\n isFixed: function() {\r\n return KTUtil.hasClass(KTUtil.getBody(), 'subheader-fixed');\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getHeight: function() {\r\n return _getHeight();\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutSubheader;\r\n}\r\n\r\nexport default KTLayoutSubheader;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport KTLayoutHeader from \"./header.js\";\r\nimport KTCard from \"./../../components/card.js\";\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTLayoutSubheader from \"./subheader.js\";\r\n\r\nvar KTLayoutStickyCard = function() {\r\n // Private properties\r\n\tvar _element;\r\n var _object;\r\n\r\n\t// Private functions\r\n\tvar _init = function() {\r\n\t\tvar offset = 300;\r\n\r\n\t\tif (typeof KTLayoutHeader !== 'undefined') {\r\n\t\t\toffset = KTLayoutHeader.getHeight();\r\n\t\t}\r\n\r\n _object = new KTCard(_element, {\r\n\t\t\tsticky: {\r\n\t\t\t\toffset: offset,\r\n\t\t\t\tzIndex: 90,\r\n\t\t\t\tposition: {\r\n\t\t\t\t\ttop: function() {\r\n\t\t\t\t\t\tvar pos = 0;\r\n var body = KTUtil.getBody();\r\n\r\n\t\t\t\t\t\tif (KTUtil.isBreakpointUp('lg')) {\r\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixed()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeight();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (typeof KTLayoutSubheader !== 'undefined' && KTLayoutSubheader.isFixed()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutSubheader.getHeight();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixedForMobile()) {\r\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeightForMobile();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tpos = pos - 1; // remove header border width\r\n\r\n\t\t\t\t\t\treturn pos;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tleft: function(card) {\r\n\t\t\t\t\t\treturn KTUtil.offset(_element).left;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tright: function(card) {\r\n\t\t\t\t\t\tvar body = KTUtil.getBody();\r\n\r\n\t\t\t\t\t\tvar cardWidth = parseInt(KTUtil.css(_element, 'width'));\r\n\t\t\t\t\t\tvar bodyWidth = parseInt(KTUtil.css(body, 'width'));\r\n\t\t\t\t\t\tvar cardOffsetLeft = KTUtil.offset(_element).left;\r\n\r\n\t\t\t\t\t\treturn bodyWidth - cardWidth - cardOffsetLeft;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t_object.initSticky();\r\n\r\n\t\tKTUtil.addResizeHandler(function() {\r\n\t\t\t_object.updateSticky();\r\n\t\t});\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n\t\t\t_init();\r\n\t\t},\r\n\r\n\t\tupdate: function() {\r\n\t\t\tif (_object) {\r\n\t\t\t\t_object.updateSticky();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutStickyCard;\r\n}\r\n\r\nexport default KTLayoutStickyCard;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport KTToggle from \"./../../components/toggle.js\";\r\nimport KTLayoutStickyCard from \"./sticky-card.js\";\r\nimport KTLayoutHeaderMenu from \"./header-menu.js\";\r\nimport KTLayoutAsideMenu from \"./aside-menu.js\";\r\nimport { KTCookie } from \"./../../components/cookie.js\";\r\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutAsideToggle = function() {\r\n // Private properties\r\n var _body;\r\n var _element;\r\n var _toggleObject;\r\n\r\n\t// Initialize\r\n\tvar _init = function() {\r\n\t\t_toggleObject = new KTToggle(_element, {\r\n\t\t\ttarget: _body,\r\n\t\t\ttargetState: 'aside-minimize',\r\n\t\t\ttoggleState: 'active'\r\n\t\t});\r\n\r\n\t\t_toggleObject.on('toggle', function(toggle) {\r\n // Update sticky card\r\n if (typeof KTLayoutStickyCard !== 'undefined') {\r\n KTLayoutStickyCard.update();\r\n }\r\n\r\n // Pause header menu dropdowns\r\n if (typeof KTLayoutHeaderMenu !== 'undefined') {\r\n KTLayoutHeaderMenu.pauseDropdownHover(800);\r\n }\r\n\r\n // Pause aside menu dropdowns\r\n if (typeof KTLayoutAsideMenu !== 'undefined') {\r\n KTLayoutAsideMenu.pauseDropdownHover(800);\r\n }\r\n\r\n // Remember state in cookie\r\n\t\t\tKTCookie.setCookie('kt_aside_toggle_state', toggle.getState());\r\n\t\t\t// to set default minimized left aside use this cookie value in your\r\n\t\t\t// server side code and add \"kt-primary--minimize aside-minimize\" classes to\r\n\t\t\t// the body tag in order to initialize the minimized left aside mode during page loading.\r\n\t\t});\r\n\r\n\t\t_toggleObject.on('beforeToggle', function(toggle) {\r\n\t\t\tif (KTUtil.hasClass(_body, 'aside-minimize') === false && KTUtil.hasClass(_body, 'aside-minimize-hover')) {\r\n\t\t\t\tKTUtil.removeClass(_body, 'aside-minimize-hover');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n _body = KTUtil.getBody();\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n },\r\n\r\n getToggle: function() {\r\n\t\t\treturn _toggleObject;\r\n\t\t},\r\n\r\n\t\tonToggle: function(handler) {\r\n\t\t\tif (typeof _toggleObject.element !== 'undefined') {\r\n\t\t\t\t_toggleObject.on('toggle', handler);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutAsideToggle;\r\n}\r\n\r\nexport default KTLayoutAsideToggle;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutFooter = function() {\r\n // Private properties\r\n var _element;\r\n\r\n\t// Private functions\r\n\tvar _getHeight = function() {\r\n\t\tvar height = 0;\r\n\r\n if (_element) {\r\n height = KTUtil.actualHeight(_element);\r\n }\r\n\r\n\t\treturn height;\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\t\t},\r\n\r\n\t\tgetHeight: function() {\r\n\t\t\treturn _getHeight();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutFooter;\r\n}\r\n\r\nexport default KTLayoutFooter;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTLayoutHeader from \"./header.js\";\r\nimport KTLayoutSubheader from \"./subheader.js\";\r\nimport KTLayoutFooter from \"./footer.js\";\r\n\r\nvar KTLayoutContent = function() {\r\n // Private properties\r\n var _element;\r\n\r\n\t// Private functions\r\n\tvar _getHeight = function() {\r\n\t\tvar height;\r\n\r\n\t\theight = KTUtil.getViewPort().height;\r\n\r\n if (_element) {\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop')) - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n }\r\n\r\n height = height - KTLayoutHeader.getHeight();\r\n height = height - KTLayoutSubheader.getHeight();\r\n height = height - KTLayoutFooter.getHeight();\r\n\r\n\t\treturn height;\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\t\t},\r\n\r\n\t\tgetHeight: function() {\r\n\t\t\treturn _getHeight();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutContent;\r\n}\r\n\r\nexport default KTLayoutContent;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport KTScrolltop from \"./../../components/scrolltop.js\";\r\nimport { KTUtil } from \"./../../components/util.js\";\r\n\r\nvar KTLayoutScrolltop = function() {\r\n // Private properties\r\n var _element;\r\n var _object;\r\n\r\n // Private functions\r\n var _init = function() {\r\n _object = new KTScrolltop(_element, {\r\n offset: 120, // 300\r\n speed: 300, // 600\r\n });\r\n }\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n\t\t},\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutScrolltop;\r\n}\r\n\r\nexport default KTLayoutScrolltop;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTLayoutContent from \"./content.js\";\r\n\r\nvar KTLayoutStretchedCard = function() {\r\n // Private properties\r\n\tvar _element;\r\n\r\n\t// Private functions\r\n\tvar _init = function() {\r\n\t\tvar scroll = KTUtil.find(_element, '.card-scroll');\r\n\t\tvar cardBody = KTUtil.find(_element, '.card-body');\r\n\t\tvar cardHeader = KTUtil.find(_element, '.card-header');\r\n\r\n\t\tvar height = KTLayoutContent.getHeight();\r\n\r\n\t\theight = height - parseInt(KTUtil.actualHeight(cardHeader));\r\n\r\n\t\theight = height - parseInt(KTUtil.css(_element, 'marginTop')) - parseInt(KTUtil.css(_element, 'marginBottom'));\r\n\t\theight = height - parseInt(KTUtil.css(_element, 'paddingTop')) - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'paddingTop')) - parseInt(KTUtil.css(cardBody, 'paddingBottom'));\r\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'marginTop')) - parseInt(KTUtil.css(cardBody, 'marginBottom'));\r\n\r\n\t\theight = height - 3;\r\n\r\n\t\tKTUtil.css(scroll, 'height', height + 'px');\r\n\t}\r\n\r\n // Public methods\r\n\treturn {\r\n\t\tinit: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n\t\t\t_init();\r\n\r\n // Re-calculate on window resize\r\n KTUtil.addResizeHandler(function() {\r\n\t\t\t\t_init();\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tupdate: function() {\r\n\t\t\t_init();\r\n\t\t}\r\n\t};\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutStretchedCard;\r\n}\r\n\r\nexport default KTLayoutStretchedCard;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\r\n\r\nvar KTLayoutQuickPanel = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n var _notificationsElement;\r\n var _logsElement;\r\n var _settingsElement;\r\n\r\n // Private functions\r\n var _getContentHeight = function() {\r\n var height;\r\n\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n\r\n var _init = function() {\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_panel_close',\r\n toggleBy: 'kt_quick_panel_toggle'\r\n });\r\n }\r\n\r\n var _initNotifications = function() {\r\n KTUtil.scrollInit(_notificationsElement, {\r\n mobileNativeScroll: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n return _getContentHeight();\r\n }\r\n });\r\n }\r\n\r\n var _initLogs = function() {\r\n KTUtil.scrollInit(_logsElement, {\r\n mobileNativeScroll: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n return _getContentHeight();\r\n }\r\n });\r\n }\r\n\r\n var _initSettings = function() {\r\n KTUtil.scrollInit(_settingsElement, {\r\n mobileNativeScroll: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n return _getContentHeight();\r\n }\r\n });\r\n }\r\n\r\n var _updateScrollbars = function() {\r\n $(_element).find('a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {\r\n KTUtil.scrollUpdate(_notificationsElement);\r\n KTUtil.scrollUpdate(_logsElement);\r\n KTUtil.scrollUpdate(_settingsElement);\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n _notificationsElement = KTUtil.getById('kt_quick_panel_notifications');\r\n _logsElement = KTUtil.getById('kt_quick_panel_logs');\r\n _settingsElement = KTUtil.getById('kt_quick_panel_settings');\r\n\r\n _init();\r\n _initNotifications();\r\n _initLogs();\r\n _initSettings();\r\n\r\n \r\n }\r\n };\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutQuickPanel;\r\n}\r\n\r\nexport default KTLayoutQuickPanel;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./../../components/util.js\";\r\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\r\n\r\nvar KTLayoutQuickUser = function() {\r\n // Private properties\r\n var _element;\r\n var _offcanvasObject;\r\n\r\n // Private functions\r\n var _init = function() {\r\n var header = KTUtil.find(_element, '.offcanvas-header');\r\n var content = KTUtil.find(_element, '.offcanvas-content');\r\n\r\n _offcanvasObject = new KTOffcanvas(_element, {\r\n overlay: true,\r\n baseClass: 'offcanvas',\r\n placement: 'right',\r\n closeBy: 'kt_quick_user_close',\r\n toggleBy: 'kt_quick_user_toggle'\r\n });\r\n\r\n KTUtil.scrollInit(content, {\r\n disableForMobile: true,\r\n resetHeightOnDestroy: true,\r\n handleWindowResize: true,\r\n height: function() {\r\n var height = parseInt(KTUtil.getViewPort().height);\r\n\r\n if (header) {\r\n height = height - parseInt(KTUtil.actualHeight(header));\r\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\r\n }\r\n\r\n if (content) {\r\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\r\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\r\n }\r\n\r\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\r\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\r\n\r\n height = height - 2;\r\n\r\n return height;\r\n }\r\n });\r\n }\r\n\r\n // Public methods\r\n return {\r\n init: function(id) {\r\n _element = KTUtil.getById(id);\r\n\r\n if (!_element) {\r\n return;\r\n }\r\n\r\n // Initialize\r\n _init();\r\n },\r\n\r\n getElement: function() {\r\n return _element;\r\n }\r\n };\r\n}();\r\n\r\n// Webpack support\r\nif (typeof module !== 'undefined') {\r\n\t// module.exports = KTLayoutQuickUser;\r\n}\r\n\r\nexport default KTLayoutQuickUser;","import React, {useLayoutEffect} from \"react\";\r\nimport {KTUtil} from \"../../_assets/js/components/util\";\r\nimport KTLayoutHeader from \"../../_assets/js/layout/base/header\";\r\nimport KTLayoutHeaderMenu from \"../../_assets/js/layout/base/header-menu\";\r\nimport KTLayoutHeaderTopbar from \"../../_assets/js/layout/base/header-topbar\";\r\nimport KTLayoutBrand from \"../../_assets/js/layout/base/brand\";\r\nimport KTLayoutAside from \"../../_assets/js/layout/base/aside\";\r\nimport KTLayoutAsideToggle from \"../../_assets/js/layout/base/aside-toggle\";\r\nimport KTLayoutAsideMenu from \"../../_assets/js/layout/base/aside-menu\";\r\nimport KTLayoutContent from \"../../_assets/js/layout/base/content\";\r\nimport KTLayoutFooter from \"../../_assets/js/layout/base/footer\";\r\nimport KTLayoutSubheader from \"../../_assets/js/layout/base/subheader\";\r\nimport KTLayoutScrolltop from \"../../_assets/js/layout/extended/scrolltop\";\r\nimport KTLayoutStickyCard from \"../../_assets/js/layout/base/sticky-card\";\r\nimport KTLayoutStretchedCard from \"../../_assets/js/layout/base/stretched-card\";\r\nimport KTLayoutQuickPanel from \"../../_assets/js/layout/extended/quick-panel\";\r\nimport KTLayoutQuickUser from \"../../_assets/js/layout/extended/quick-user\";\r\n\r\nexport function LayoutInit() {\r\n useLayoutEffect(() => {\r\n // Initialization\r\n KTUtil.ready(function () {\r\n ////////////////////////////////////////////////////\r\n // Layout Base Partials(mandatory for core layout)//\r\n ////////////////////////////////////////////////////\r\n // Init Desktop & Mobile Headers\r\n KTLayoutHeader.init('kt_header', 'kt_header_mobile');\r\n\r\n // Init Header Menu\r\n KTLayoutHeaderMenu.init('kt_header_menu', 'kt_header_menu_wrapper');\r\n // Init Header Topbar For Mobile Mode\r\n KTLayoutHeaderTopbar.init('kt_header_mobile_topbar_toggle');\r\n // Init Brand Panel For Logo\r\n KTLayoutBrand.init('kt_brand');\r\n // Init Aside\r\n KTLayoutAside.init('kt_aside');\r\n\r\n // Init Aside Menu Toggle\r\n KTLayoutAsideToggle.init('kt_aside_toggle');\r\n //\r\n // Init Aside Menu\r\n KTLayoutAsideMenu.init('kt_aside_menu');\r\n\r\n // Init Content\r\n KTLayoutContent.init('kt_content');\r\n\r\n // Init Footer\r\n KTLayoutFooter.init('kt_footer');\r\n\r\n\r\n //////////////////////////////////////////////\r\n // Layout Extended Partials(optional to use)//\r\n //////////////////////////////////////////////\r\n KTLayoutSubheader.init('kt_subheader');\r\n\r\n // Init Scrolltop\r\n KTLayoutScrolltop.init('kt_scrolltop');\r\n\r\n // Init Sticky Card\r\n KTLayoutStickyCard.init('kt_page_sticky_card');\r\n\r\n // Init Stretched Card\r\n KTLayoutStretchedCard.init('kt_page_stretched_card');\r\n\r\n // Init Quick Offcanvas Panel\r\n KTLayoutQuickPanel.init('kt_quick_panel');\r\n\r\n // Init Quick User Panel\r\n KTLayoutQuickUser.init('kt_quick_user');\r\n });\r\n }, []);\r\n return <>;\r\n}\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n// FS-CUSTOM\r\nimport { unescapeHTML } from '../../../../../utils/Q';\r\n\r\nexport function BreadCrumbs({ items }) {\r\n if (!items || !items.length) {\r\n return \"\";\r\n }\r\n\r\n return (\r\n
    \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n\r\n {items.map((item, index) => (\r\n
  • \r\n \r\n {item.title && unescapeHTML(item.title)}\r\n \r\n
  • \r\n ))}\r\n
\r\n );\r\n}\r\n","import React, { createContext, useState, useContext } from \"react\";\r\n\r\nexport function getBreadcrumbsAndTitle(menuId, pathName) {\r\n const result = {\r\n breadcrumbs: [],\r\n title: \"\",\r\n };\r\n\r\n const menu = document.getElementById(menuId);\r\n if (!menu) {\r\n return result;\r\n }\r\n\r\n const activeLinksArray = Array.from(\r\n menu.getElementsByClassName(\"active\") || []\r\n );\r\n const activeLinks = activeLinksArray.filter((el) => el.tagName === \"A\");\r\n if (!activeLinks) {\r\n return result;\r\n }\r\n\r\n activeLinks.forEach((link) => {\r\n const titleSpans = link.getElementsByClassName(\"menu-text\");\r\n if (titleSpans) {\r\n const titleSpan = Array.from(titleSpans).find(\r\n (t) => t.innerHTML && t.innerHTML.trim().length > 0\r\n );\r\n if (titleSpan) {\r\n result.breadcrumbs.push({\r\n pathname: link.pathname,\r\n title: titleSpan.innerHTML,\r\n });\r\n }\r\n }\r\n });\r\n result.title = getTitle(result.breadcrumbs, pathName);\r\n return result;\r\n}\r\n\r\nexport function getTitle(breadCrumbs, pathname) {\r\n if (!breadCrumbs || !pathname) {\r\n return \"\";\r\n }\r\n\r\n const length = breadCrumbs.length;\r\n if (!length) {\r\n return \"\";\r\n }\r\n\r\n return breadCrumbs[length - 1].title;\r\n}\r\n\r\nconst SubheaderContext = createContext();\r\n\r\nexport function useSubheader() {\r\n return useContext(SubheaderContext);\r\n}\r\n\r\nexport const SubheaderConsumer = SubheaderContext.Consumer;\r\n\r\nexport function MetronicSubheaderProvider({ children }) {\r\n const [title, setTitle] = useState(\"\");\r\n const [breadcrumbs, setBreadcrumbs] = useState([]);\r\n const value = { title, setTitle, breadcrumbs, setBreadcrumbs };\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\r\nimport React, {useMemo, useLayoutEffect, useEffect} from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\n// import { QuickActions } from \"./components/QuickActions\";\r\nimport { BreadCrumbs } from \"./components/BreadCrumbs\";\r\nimport { getBreadcrumbsAndTitle, useSubheader } from \"../../_core/MetronicSubheader\";\r\nimport { useHtmlClassService } from \"../../_core/MetronicLayout\";\r\n\r\n// FS-CUSTOM\r\nimport { unescapeHTML } from '../../../../utils/Q';\r\n\r\nexport function SubHeader() {\r\n const uiService = useHtmlClassService();\r\n const location = useLocation();\r\n const subheader = useSubheader();\r\n\r\n const layoutProps = useMemo(() => {\r\n return {\r\n config: uiService.config,\r\n subheaderMobileToggle: objectPath.get(uiService.config, \"subheader.mobile-toggle\"),\r\n subheaderCssClasses: uiService.getClasses(\"subheader\", true),\r\n subheaderContainerCssClasses: uiService.getClasses(\"subheader_container\", true)\r\n };\r\n }, [uiService]);\r\n\r\n useLayoutEffect(() => {\r\n const aside = getBreadcrumbsAndTitle(\"kt_aside_menu\", location.pathname);\r\n const header = getBreadcrumbsAndTitle(\"kt_header_menu\", location.pathname);\r\n const breadcrumbs = (aside && aside.breadcrumbs.length > 0) ? aside.breadcrumbs : header.breadcrumbs;\r\n subheader.setBreadcrumbs(breadcrumbs);\r\n subheader.setTitle((aside && aside.title && aside.title.length > 0) ? aside.title : header.title);\r\n // eslint-disable-next-line\r\n }, [location.pathname]);\r\n\r\n // Do not remove this useEffect, need from update title/breadcrumbs outside (from the page)\r\n useEffect(() => {}, [subheader]);\r\n\r\n return (\r\n \r\n \r\n {/* Info */}\r\n
\r\n {layoutProps.subheaderMobileToggle && (\r\n \r\n )}\r\n\r\n {subheader.title && \r\n
\r\n
\r\n {unescapeHTML(subheader.title)}\r\n\r\n {/* <>\r\n {subheader.title}\r\n */}\r\n
\r\n
\r\n }\r\n\r\n \r\n
\r\n\r\n
\r\n\r\n {/* Toolbar */}\r\n {/*
\r\n \r\n Today\r\n Aug 16\r\n \r\n\r\n \r\n
*/}\r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\n// import SVG from \"react-inlinesvg\";\r\n\r\n// import { toAbsoluteUrl } from \"../../../_helpers\";\r\n\r\nexport function ScrollTop() {\r\n return (\r\n
\r\n {/* \r\n \r\n {\" \"} */}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport Flex from '../../components/Flex';\r\nimport Aroute from '../../components/Aroute';\r\nimport { toAbsoluteUrl } from '../../../_metronic/_helpers';\r\nimport { APP_NAME, APP_YEAR } from '../../../data/appData';\r\n\r\nexport default function NotFound() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n

Page Not Found

\r\n

The page that you're looking for does not exist or you do not have sufficient permission to access it.

\r\n \r\n Back to the Homepage\r\n \r\n
\r\n\r\n
\r\n
{/* opacity-70 */}\r\n © {APP_YEAR} FinanSys Limited\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\n","import React, { useMemo } from \"react\";\r\nimport objectPath from \"object-path\";\r\nimport { useHistory } from \"react-router-dom\"; // For FS-CUSTOM\r\n// LayoutContext\r\nimport { useHtmlClassService } from \"../_core/MetronicLayout\";\r\n// Import Layout components\r\nimport { Header } from \"./header/Header\";\r\nimport { HeaderMobile } from \"./header-mobile/HeaderMobile\";\r\nimport { Aside } from \"./aside/Aside\";\r\nimport { Footer } from \"./footer/Footer\";\r\nimport { LayoutInit } from \"./LayoutInit\";\r\nimport { SubHeader } from \"./subheader/SubHeader\";\r\nimport { ScrollTop } from \"./extras/ScrollTop\";\r\nimport NotFound from \"../../../app/modules/ErrorsExamples/NotFound\";\r\n// import { StickyToolbar } from \"./extras/StickyToolbar\";\r\n\r\nexport function Layout({ children }) {\r\n // For FS-CUSTOM\r\n const { location, action } = useHistory();\r\n let isFullPage = new URLSearchParams(location.search).get(\"layout\");\r\n\r\n const uiService = useHtmlClassService();\r\n // Layout settings (cssClasses/cssAttributes)\r\n const layoutProps = useMemo(() => {\r\n return {\r\n layoutConfig: uiService.config,\r\n selfLayout: objectPath.get(uiService.config, \"self.layout\"),\r\n asideDisplay: objectPath.get(uiService.config, \"aside.self.display\"),\r\n subheaderDisplay: objectPath.get(uiService.config, \"subheader.display\"),\r\n desktopHeaderDisplay: objectPath.get(uiService.config, \"header.self.fixed.desktop\"),\r\n contentCssClasses: uiService.getClasses(\"content\", true),\r\n contentContainerClasses: uiService.getClasses(\"content_container\", true),\r\n contentExtended: objectPath.get(uiService.config, \"content.extended\")\r\n };\r\n }, [uiService]);\r\n\r\n // For FS-CUSTOM\r\n if((action === \"POP\" || action === \"REPLACE\") && isFullPage === \"full\"){\r\n return children;\r\n }\r\n\r\n if (location?.pathname === '/404') {\r\n return \r\n }\r\n\r\n return layoutProps.selfLayout !== \"blank\" ? (\r\n <>\r\n {/*begin::Main*/}\r\n \r\n\r\n
\r\n {/*begin::Page*/}\r\n
\r\n {layoutProps.asideDisplay && (
\r\n {/*end::Wrapper*/}\r\n
\r\n {/*end::Page*/}\r\n \r\n \r\n \r\n\r\n {/* */}\r\n\r\n {/* end::Main */}\r\n \r\n \r\n ) : (\r\n // BLANK LAYOUT\r\n
{children}
\r\n );\r\n}\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {useRouteMatch} from \"react-router-dom\";\r\n\r\nexport function Content({ children }) {\r\n const match = useRouteMatch() || {};\r\n const animationEndClass = \"grid-animateContent-finished\";\r\n const [cssClassesState, setCssClassesState] = useState([\r\n \"grid-animateContent\",\r\n animationEndClass\r\n ]);\r\n\r\n useEffect(() => {\r\n // for animation start should toggle 'grid-animateContent-finished' css class\r\n // TODO: change useMemo\r\n const fullClasses = [...cssClassesState];\r\n const startAnimation = fullClasses.filter(el => el !== animationEndClass);\r\n setCssClassesState(startAnimation);\r\n const timeOutId = setTimeout(() => {\r\n setCssClassesState(fullClasses);\r\n }, 200);\r\n\r\n return () => {\r\n clearTimeout(timeOutId);\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [match.url]);\r\n\r\n return <>{children};\r\n}\r\n","import React from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\n\r\nimport { Content } from \"./Content\";\r\n// import AuthorizeRoute from \"../../../../app/AuthorizeRoute\";\r\nimport ErrorComponent from '../../../../app/components/ErrorComponent';\r\n\r\nexport function ContentRoute({ children, component, render, ...props }) {\r\n return (\r\n \r\n \r\n {routeProps => {\r\n if (typeof children === \"function\") {\r\n return {children(routeProps)};\r\n }\r\n\r\n if (!routeProps.match) {\r\n return null;\r\n }\r\n\r\n if (children) {\r\n return {children};\r\n }\r\n\r\n if (component) {\r\n return (\r\n {React.createElement(component, routeProps)}\r\n );\r\n }\r\n\r\n if (render) {\r\n return {render(routeProps)};\r\n }\r\n\r\n return null;\r\n }}\r\n \r\n \r\n );\r\n}\r\n","import React, {createContext, useContext, useState, useEffect} from \"react\";\r\n\r\nconst MetronicSplashScreenContext = createContext();\r\n\r\nexport function MetronicSplashScreenProvider({ children }) {\r\n const [count, setCount] = useState(0);\r\n let visible = count > 0;\r\n\r\n useEffect(() => {\r\n const splashScreen = document.getElementById(\"splash-screen\");\r\n\r\n // Show SplashScreen\r\n if (splashScreen && visible) {\r\n splashScreen.classList.remove(\"hidden\");\r\n\r\n return () => {\r\n splashScreen.classList.add(\"hidden\");\r\n };\r\n }\r\n\r\n // Hide SplashScreen\r\n let timeout;\r\n if (splashScreen && !visible) {\r\n timeout = setTimeout(() => {\r\n splashScreen.classList.add(\"hidden\");\r\n }, 3000);\r\n }\r\n\r\n return () => {\r\n clearTimeout(timeout);\r\n };\r\n }, [visible]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport function LayoutSplashScreen({ visible = true }) {\r\n // Everything are ready - remove splashscreen\r\n const setCount = useContext(MetronicSplashScreenContext);\r\n\r\n useEffect(() => {\r\n if (!visible) {\r\n return;\r\n }\r\n\r\n setCount(prev => {\r\n return prev + 1;\r\n });\r\n\r\n return () => {\r\n setCount(prev => {\r\n return prev - 1;\r\n });\r\n };\r\n }, [setCount, visible]);\r\n\r\n return null;\r\n}\r\n","import React from \"react\";\r\nimport {createMuiTheme, ThemeProvider} from \"@material-ui/core\";\r\n\r\nconst theme = createMuiTheme(\r\n /**\r\n * @see https://material-ui.com/customization/themes/#theme-configuration-variables\r\n */\r\n {\r\n // direction: \"rtl\",\r\n typography: {\r\n fontFamily: [\"Poppins\"].join(\",\")\r\n },\r\n\r\n palette: {\r\n primary: {\r\n // light: will be calculated from palette.primary.main,\r\n main: \"#17c191\",\r\n // dark: will be calculated from palette.primary.main,\r\n // contrastText: \"#fff\" //will be calculated to contrast with palette.primary.main\r\n },\r\n secondary: {\r\n // light: will be calculated from palette.primary.main,\r\n main: \"#3783e7\",\r\n // dark: will be calculated from palette.primary.main,\r\n // contrastText: \"#fff\" //will be calculated to contrast with palette.primary.main\r\n },\r\n error: {\r\n // light: will be calculated from palette.primary.main,\r\n main: \"#f018a6\",\r\n // dark: will be calculated from palette.primary.main,\r\n // contrastText: \"#fff\" //will be calculated to contrast with palette.primary.main\r\n }\r\n },\r\n\r\n /**\r\n * @see https://material-ui.com/customization/globals/#default-props\r\n */\r\n props: {\r\n // Name of the component ⚛️\r\n MuiButtonBase: {\r\n // The properties to apply\r\n disableRipple: false // No more ripple, on the whole application 💣!\r\n },\r\n\r\n // Set default elevation to 1 for popovers.\r\n MuiPopover: {\r\n elevation: 1\r\n }\r\n }\r\n }\r\n);\r\n\r\nexport function MaterialThemeProvider(props) {\r\n const { children } = props;\r\n\r\n return {children};\r\n}\r\n","// \r\n// const COMPANY_NAME = 'FinanSys';\r\nconst APP_TODAY = new Date()\r\nconst APP_NAME = \"UniFi\";\r\nconst APP_DOMAIN = \".unifiplatform.com\";\r\nconst APP_YEAR = APP_TODAY.getFullYear();\r\n\r\nconst FOOTER_LINKS = [\r\n { href: \"https://finansys.com/privacy\", label: \"Privacy\" },\r\n // { href: \"/legal\", label: \"Legal\" },\r\n { href: \"https://finansys.com/contact\", label: \"Contact\" }\r\n];\r\n\r\nexport {\r\n // COMPANY_NAME,\r\n APP_DOMAIN,\r\n APP_NAME,\r\n APP_YEAR,\r\n FOOTER_LINKS,\r\n}\r\n","import React from \"react\";// , , { useState }\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport message from \"@utils/message\";\r\nimport formEditorActions from '@actions/formEditorActions';\r\nimport CreateFromScratchModal from \"../../../../../app/components/form-editor/components/CreateFromScratchModal\";\r\nimport { Qid } from '@utils/Q';\r\nimport { INIT_FIELD_TYPES } from \"../../../../../app/components/form-editor/const\";\r\n\r\nconst INIT_FORM_FIELD = { ...INIT_FIELD_TYPES[0] }; // fid: Qid()\r\n// const INIT_EMPTY_COL = { columnWidth: 8, fieldType: \"empty-col\" };\r\n\r\nconst CreateModule = ({\r\n show = false, \r\n onClose = () => {}, \r\n ...props\r\n}) => {\r\n // const [loadingForms, setLoadingForms] = useState(false);\r\n // const [newModulePayload, setNewModulePayload] = useState({});\r\n\r\n const onCreateFromScratch = async (payload, fn) => {\r\n const newFields = [{ ...INIT_FORM_FIELD, fid: Qid() }];\r\n\r\n payload.machineLearningServiceId = JSON.stringify(payload.machineLearningServiceId); \r\n const { data } = await props.createProcessFromScratch(payload);\r\n if (data?.success) {\r\n await props.getFormList();\r\n props.setFields(newFields);\r\n fn.setSubmitting(false);\r\n \r\n onClose();\r\n setTimeout(() => {\r\n props.history.push({\r\n pathname: \"/form-editor/show/\" + data?.data?.id,\r\n state: { modal: {} },\r\n });\r\n }, 150);\r\n }else{\r\n message.error(data?.message);\r\n fn.setSubmitting(false);\r\n }\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n fields: state.formEditorReducer.fields,\r\n formDetails: state.formEditorReducer.formDetails,\r\n formList: state.formEditorReducer.formList,\r\n moduleCategories: state.formEditorReducer.moduleCategories,\r\n});\r\nconst mapDispatchToProps = {\r\n ...formEditorActions,\r\n};\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(CreateModule));\r\n","import React, { useEffect, useState, useMemo } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport {Modal, Button, Form} from \"react-bootstrap\";\r\nimport Flex from \"../../../Flex\";\r\nimport { Form as FormWrapper, Formik } from \"formik\";\r\nimport { Yup } from \"@utils/validation\";\r\nimport RenderField from \"../../../form/RenderField\";\r\nimport IconPicker from \"../../../IconPicker\";\r\nimport useFormActions from \"@utils/hooks/useFormActions\";\r\nimport SIDEBAR_ICONS from \"@constants/SIDEBAR_ICONS\";\r\nimport { initRequest } from \"@utils/actionMethods\";\r\nimport message from \"@utils/message\";\r\nimport * as appMenuActions from \"@modules/ApplicationMenu/_redux/applicationMenuActions\";\r\nimport { mapGroupOptionsTree } from \"@utils/Q\";\r\nimport BotLicenseTooltip from \"../../../bot-user-license/BotLicenseTooltip\";\r\n\r\nconst RenderForm = ({ formId, onCreate, formType, botLicensed }) => {\r\n const { loading, mlServices = [], getMLServices, mlProviders = [], getMLProviders } = useFormActions();\r\n \r\n const dispatch = useDispatch();\r\n const { trees, treesLoading } = useSelector(\r\n (state) => ({\r\n trees: state.applicationMenu.trees,\r\n treesLoading: state.applicationMenu.listLoading\r\n }) \r\n );\r\n const groupTree = useMemo(()=>{\r\n return mapGroupOptionsTree(trees);\r\n },[trees]);\r\n\r\n const [reservedModuleNames, setReservedModuleNames] = useState([]);\r\n const INIT_ICON = \"fa-browser\";\r\n const formikProps = {\r\n enableReinitialize: true,\r\n validationSchema: Yup.object({\r\n name: Yup.string().required(\"This field is required\")\r\n .validNaming(),\r\n description: Yup.string().max(250, \"Value can not exceed 250 characters\")\r\n .validChars()\r\n .notSpaceStarting()\r\n }),\r\n initialValues: {\r\n name: \"\", // formName\r\n description: \"\",\r\n categoryId: \"\", // formCategories\r\n },\r\n onSubmit: (values, fn) => {\r\n // const payload = {...values};\r\n // fn.setSubmitting(false);\r\n if (reservedModuleNames.includes(values['name'])) {\r\n message.error(\"Name: \" + values['name'] + ' is reserved system name, please use another name')\r\n fn.setSubmitting(false);\r\n } else {\r\n onCreate && onCreate(values, fn); // payload\r\n }\r\n },\r\n };\r\n\r\n useEffect(() => {\r\n let init = false;\r\n if (!init) {\r\n if (trees.length <=1 ) dispatch(appMenuActions.fetchTrees());\r\n if (mlProviders.length === 0) getMLProviders();\r\n }\r\n return () => {\r\n init = true;\r\n };\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const request = initRequest()\r\n const getReservedModuleNames = async () => {\r\n try {\r\n const response = await request('reservedModuleNames')\r\n const { data, success } = response || {}\r\n if (success && data) {\r\n setReservedModuleNames(data)\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n }\r\n \r\n useEffect(() => {\r\n getReservedModuleNames()\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n {(formik) => {\r\n const mlServiceOptions = mlServices.map((opt)=> {\r\n const providerName = mlProviders.find(p => p.value === formik.values.ocrProviderId)?.label;\r\n const serviceName = opt.label;\r\n if(providerName){\r\n const autonomousProcessName = (`AI_${providerName}_${serviceName}`).replaceAll(' ', '_').toUpperCase()\r\n if(botLicensed?.[autonomousProcessName]){\r\n return {\r\n label: opt.label,\r\n value: opt.value,\r\n disabled: false,\r\n }\r\n } else {\r\n return {\r\n label: {opt.label},\r\n value: opt.value,\r\n }\r\n }\r\n }\r\n })\r\n \r\n return (\r\n \r\n {formik.isSubmitting && (\r\n
\r\n )}\r\n\r\n \r\n \r\n \r\n \r\n { formType === \"APP\" && <>\r\n ({ ...base, zIndex: 9999 }) }}\r\n menuPortalTarget={document.body}\r\n menuPosition=\"fixed\"\r\n closeMenuOnScroll={(e) => !e?.target?.classList?.contains(\"fs-r-select__menu-list\")}\r\n menuPlacement=\"auto\"\r\n className=\"selectCategoryModule\"\r\n classNamePrefix=\"fs-r-select\"\r\n onChange={(val) =>{\r\n formik.setFieldValue(\"machineLearningServiceId\",null);\r\n const providerName = mlProviders.find(p => p.value === val)?.label;\r\n formik.setFieldValue(\"ocrProviderName\", providerName);\r\n getMLServices({providerId:val});\r\n }}\r\n /> \r\n {\r\n formik.values.ocrProviderId &&\r\n ({ ...base, zIndex: 9999 }) }}\r\n menuPortalTarget={document.body}\r\n menuPosition=\"fixed\"\r\n closeMenuOnScroll={(e) => !e?.target?.classList?.contains(\"fs-r-select__menu-list\")}\r\n menuPlacement=\"auto\"\r\n className=\"selectCategoryModule\"\r\n classNamePrefix=\"fs-r-select\"\r\n isMulti={formik.values.ocrProviderName !== \"OpenAI\"}\r\n isOptionDisabled={(option) => option.disabled}\r\n />\r\n }\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n let selectedIcon = icon?.path || icon?.name;\r\n formik.setFieldValue(\"appIcon\", selectedIcon);\r\n }}\r\n />\r\n \r\n
\r\n
\r\n \r\n } \r\n \r\n \r\n )}}\r\n \r\n\r\n {/* setModal(false)}\r\n >\r\n \r\n {(formik) => (\r\n <>\r\n \r\n Create new group\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {formik.errors.category_name && formik.touched.category_name && (\r\n
{formik.errors.category_name}
\r\n )}\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n { // , e\r\n // console.log('onHoverIcon icon: ', icon);\r\n // // console.log('onHoverIcon e: ', e);\r\n // }}\r\n onClickIcon={({ icon }) => {\r\n // console.log('onClickIcon icon: ', icon);\r\n // let selectedIcon = icon?.path || icon?.name;\r\n formik.setFieldValue(\"category_icon\", icon?.path || icon?.name);\r\n }}\r\n />\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n */}\r\n \r\n );\r\n};\r\n\r\nconst CreateFromScratchModal = ({\r\n onClose,\r\n onCreate,\r\n title = \"Create App\",\r\n show = false,\r\n formType,\r\n botLicensed = {},\r\n}) => {\r\n const formId = \"form-create-from-scratch_\" + Date.now();\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nCreateFromScratchModal.propTypes = {\r\n onClose: PropTypes.func,\r\n onCreate: PropTypes.func,\r\n};\r\n\r\nexport default CreateFromScratchModal;\r\n","import React from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n// import { useLocation } from 'react-router-dom';// Route,\r\n\r\nimport Flex from '../../components/Flex';\r\n// import Head from '../../components/Head';\r\nimport Aroute from '../../components/Aroute';\r\n// import { Img } from '../../components/Img';\r\n\r\nexport default function UnderConstruction(){\r\n\t// let location = useLocation();\r\n\r\n const { isAuthorized, } = useSelector(\r\n ({ auth }) => ({\r\n isAuthorized: auth.user != null\r\n }),\r\n shallowEqual\r\n\t);\r\n\r\n\t// Not Found - 404\r\n\treturn (\r\n\t\t\r\n\t\t\t{/* */}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t

{/* fs-25r
*/}\r\n\t\t\t\t\t\tMaking Tax Digital for Corporation\r\n\t\t\t\t\t

\r\n\r\n\t\t\t\t\t

MTD for Corporation Tax is part of the planned expansion of the UK Governments MTD service. However, at this stage there are no confirmed dates when this will become available. We will update you when more information is known.

\r\n\t\t\t\t\t

UniFi are committed to providing MTD apps as the services become available, and all apps will be a standard part of UniFi and available to all users free of charge.

\r\n\t\t\t\t\t{/* /dashboard */}\r\n\t\t\t\t\tBack to home\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t{/* /media/misc/under_construction_pc.png */}\r\n\t\t\t\t\t\"PC\" e.target.classList.add(\"img-fluid\")} \r\n\t\t\t\t\t/>\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n}\r\n\r\n\r\n\r\n","import useWebSocket, { ReadyState } from 'react-use-websocket';\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { useEffect } from 'react';\r\nimport { parseJsonString } from '../json';\r\nimport { useState } from 'react';\r\n\r\nconst useRefresh = () => {\r\n const { uid } = useSelector(\r\n\t\t({ auth }) => ({\r\n\t\t\tuid: auth?.config?.userInfo?.uid,\r\n\t\t}),\r\n\t\tshallowEqual\r\n\t);\r\n const [lastValidMessage, setLastValidMessage] = useState({})\r\n\r\n const { sendMessage, lastMessage, readyState } = useWebSocket(`wss://${window.location.host}/TaskHub`, {\r\n queryParams: {\r\n userId: uid\r\n },\r\n shouldReconnect: (closeEvent) => true,\r\n reconnectAttempts: 10,\r\n reconnectInterval: (attemptNumber) => Math.min(Math.pow(2, attemptNumber) * 1000, 10000),\r\n })\r\n\r\n useEffect(() => {\r\n if(uid && readyState === ReadyState.OPEN){\r\n sendMessage(`{\"protocol\":\"json\",\"version\":1}\\u001E`)\r\n sendMessage(`{\"arguments\":[],\"invocationId\":\"0\",\"streamIds\":[],\"target\":\"GetConnectionId\",\"type\":1}\\u001E`)\r\n }\r\n }, [uid, readyState])\r\n\r\n useEffect(() => {\r\n if(lastMessage && lastMessage.data){\r\n let dataString = lastMessage.data.replace('\\u001e', '')\r\n let newDataJson = parseJsonString(dataString)\r\n if(newDataJson.type !== 6){\r\n setLastValidMessage(newDataJson)\r\n }\r\n }\r\n }, [lastMessage])\r\n \r\n return lastValidMessage\r\n}\r\n\r\nexport default useRefresh","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content-quick-setting\":\"style_content-quick-setting__UkkUc\"};","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./util\";\r\n\r\n// Component Definition\r\nvar KTCard = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n toggleSpeed: 400,\r\n sticky: {\r\n releseOnReverse: false,\r\n offset: 300,\r\n zIndex: 101\r\n }\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Construct\r\n */\r\n\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('card')) {\r\n the = KTUtil.data(element).get('card');\r\n } else {\r\n // reset menu\r\n Plugin.init(options);\r\n\r\n // build menu\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('card', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Init card\r\n */\r\n init: function(options) {\r\n the.element = element;\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n the.header = KTUtil.child(element, '.card-header');\r\n the.footer = KTUtil.child(element, '.card-footer');\r\n\r\n if (KTUtil.child(element, '.card-body')) {\r\n the.body = KTUtil.child(element, '.card-body');\r\n } else if (KTUtil.child(element, '.form')) {\r\n the.body = KTUtil.child(element, '.form');\r\n }\r\n },\r\n\r\n /**\r\n * Build Form Wizard\r\n */\r\n build: function() {\r\n // Remove\r\n var remove = KTUtil.find(the.header, '[data-card-tool=remove]');\r\n if (remove) {\r\n KTUtil.addEvent(remove, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.remove();\r\n });\r\n }\r\n\r\n // Reload\r\n var reload = KTUtil.find(the.header, '[data-card-tool=reload]');\r\n if (reload) {\r\n KTUtil.addEvent(reload, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.reload();\r\n });\r\n }\r\n\r\n // Toggle\r\n var toggle = KTUtil.find(the.header, '[data-card-tool=toggle]');\r\n if (toggle) {\r\n KTUtil.addEvent(toggle, 'click', function(e) {\r\n e.preventDefault();\r\n Plugin.toggle();\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * Enable stickt mode\r\n */\r\n initSticky: function() {\r\n var lastScrollTop = 0;\r\n var offset = the.options.sticky.offset;\r\n\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n\t window.addEventListener('scroll', Plugin.onScrollSticky);\r\n },\r\n\r\n\t /**\r\n\t * Window scroll handle event for sticky card\r\n\t */\r\n\t onScrollSticky: function(e) {\r\n\t\t var offset = the.options.sticky.offset;\r\n\r\n\t\t if(isNaN(offset)) return;\r\n\r\n\t\t var st = KTUtil.getScrollTop();\r\n\r\n\t\t if (st >= offset && KTUtil.hasClass(body, 'card-sticky-on') === false) {\r\n\t\t\t Plugin.eventTrigger('stickyOn');\r\n\r\n\t\t\t KTUtil.addClass(body, 'card-sticky-on');\r\n\r\n\t\t\t Plugin.updateSticky();\r\n\r\n\t\t } else if ((st*1.5) <= offset && KTUtil.hasClass(body, 'card-sticky-on')) {\r\n\t\t\t // Back scroll mode\r\n\t\t\t Plugin.eventTrigger('stickyOff');\r\n\r\n\t\t\t KTUtil.removeClass(body, 'card-sticky-on');\r\n\r\n\t\t\t Plugin.resetSticky();\r\n\t\t }\r\n\t },\r\n\r\n updateSticky: function() {\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n var top;\r\n\r\n if (KTUtil.hasClass(body, 'card-sticky-on')) {\r\n if (the.options.sticky.position.top instanceof Function) {\r\n top = parseInt(the.options.sticky.position.top.call(this, the));\r\n } else {\r\n top = parseInt(the.options.sticky.position.top);\r\n }\r\n\r\n var left;\r\n if (the.options.sticky.position.left instanceof Function) {\r\n left = parseInt(the.options.sticky.position.left.call(this, the));\r\n } else {\r\n left = parseInt(the.options.sticky.position.left);\r\n }\r\n\r\n var right;\r\n if (the.options.sticky.position.right instanceof Function) {\r\n right = parseInt(the.options.sticky.position.right.call(this, the));\r\n } else {\r\n right = parseInt(the.options.sticky.position.right);\r\n }\r\n\r\n KTUtil.css(the.header, 'z-index', the.options.sticky.zIndex);\r\n KTUtil.css(the.header, 'top', top + 'px');\r\n KTUtil.css(the.header, 'left', left + 'px');\r\n KTUtil.css(the.header, 'right', right + 'px');\r\n }\r\n },\r\n\r\n resetSticky: function() {\r\n if (!the.header) {\r\n return;\r\n }\r\n\r\n if (KTUtil.hasClass(body, 'card-sticky-on') === false) {\r\n KTUtil.css(the.header, 'z-index', '');\r\n KTUtil.css(the.header, 'top', '');\r\n KTUtil.css(the.header, 'left', '');\r\n KTUtil.css(the.header, 'right', '');\r\n }\r\n },\r\n\r\n /**\r\n * Remove card\r\n */\r\n remove: function() {\r\n if (Plugin.eventTrigger('beforeRemove') === false) {\r\n return;\r\n }\r\n\r\n KTUtil.remove(element);\r\n\r\n Plugin.eventTrigger('afterRemove');\r\n },\r\n\r\n /**\r\n * Set content\r\n */\r\n setContent: function(html) {\r\n if (html) {\r\n the.body.innerHTML = html;\r\n }\r\n },\r\n\r\n /**\r\n * Get body\r\n */\r\n getBody: function() {\r\n return the.body;\r\n },\r\n\r\n /**\r\n * Get self\r\n */\r\n getSelf: function() {\r\n return element;\r\n },\r\n\r\n /**\r\n * Reload\r\n */\r\n reload: function() {\r\n Plugin.eventTrigger('reload');\r\n },\r\n\r\n /**\r\n * Toggle\r\n */\r\n toggle: function() {\r\n if (KTUtil.hasClass(element, 'card-collapse') || KTUtil.hasClass(element, 'card-collapsed')) {\r\n Plugin.expand();\r\n } else {\r\n Plugin.collapse();\r\n }\r\n },\r\n\r\n /**\r\n * Collapse\r\n */\r\n collapse: function() {\r\n if (Plugin.eventTrigger('beforeCollapse') === false) {\r\n return;\r\n }\r\n\r\n KTUtil.slideUp(the.body, the.options.toggleSpeed, function() {\r\n Plugin.eventTrigger('afterCollapse');\r\n });\r\n\r\n KTUtil.addClass(element, 'card-collapse');\r\n },\r\n\r\n /**\r\n * Expand\r\n */\r\n expand: function() {\r\n if (Plugin.eventTrigger('beforeExpand') === false) {\r\n return;\r\n }\r\n\r\n KTUtil.slideDown(the.body, the.options.toggleSpeed, function() {\r\n Plugin.eventTrigger('afterExpand');\r\n });\r\n\r\n KTUtil.removeClass(element, 'card-collapse');\r\n KTUtil.removeClass(element, 'card-collapsed');\r\n },\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name) {\r\n //KTUtil.triggerCustomEvent(name);\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the);\r\n }\r\n } else {\r\n return event.handler.call(this, the);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n\r\n return the;\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Remove card\r\n */\r\n the.remove = function() {\r\n return Plugin.remove(html);\r\n };\r\n\r\n /**\r\n * Init sticky card\r\n */\r\n the.initSticky = function() {\r\n return Plugin.initSticky();\r\n };\r\n\r\n /**\r\n * Rerender sticky layout\r\n */\r\n the.updateSticky = function() {\r\n return Plugin.updateSticky();\r\n };\r\n\r\n /**\r\n * Reset the sticky\r\n */\r\n the.resetSticky = function() {\r\n return Plugin.resetSticky();\r\n };\r\n\r\n\t/**\r\n\t * Destroy sticky card\r\n\t */\r\n\tthe.destroySticky = function() {\r\n\t\tPlugin.resetSticky();\r\n\t\twindow.removeEventListener('scroll', Plugin.onScrollSticky);\r\n\t};\r\n\r\n /**\r\n * Reload card\r\n */\r\n the.reload = function() {\r\n return Plugin.reload();\r\n };\r\n\r\n /**\r\n * Set card content\r\n */\r\n the.setContent = function(html) {\r\n return Plugin.setContent(html);\r\n };\r\n\r\n /**\r\n * Toggle card\r\n */\r\n the.toggle = function() {\r\n return Plugin.toggle();\r\n };\r\n\r\n /**\r\n * Collapse card\r\n */\r\n the.collapse = function() {\r\n return Plugin.collapse();\r\n };\r\n\r\n /**\r\n * Expand card\r\n */\r\n the.expand = function() {\r\n return Plugin.expand();\r\n };\r\n\r\n /**\r\n * Get cardbody\r\n * @returns {jQuery}\r\n */\r\n the.getBody = function() {\r\n return Plugin.getBody();\r\n };\r\n\r\n /**\r\n * Get cardbody\r\n * @returns {jQuery}\r\n */\r\n the.getSelf = function() {\r\n return Plugin.getSelf();\r\n };\r\n\r\n /**\r\n * Attach event\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Attach event that will be fired once\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n // Construct plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTCard;\r\n}\r\n\r\nexport default KTCard;","/* eslint-disable */\r\n\"use strict\";\r\n\r\nimport { KTUtil } from \"./util\";\r\n\r\n// Component Definition\r\nvar KTScrolltop = function(elementId, options) {\r\n // Main object\r\n var the = this;\r\n var init = false;\r\n\r\n // Get element object\r\n var element = KTUtil.getById(elementId);\r\n var body = KTUtil.getBody();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // Default options\r\n var defaultOptions = {\r\n offset: 300,\r\n speed: 6000\r\n };\r\n\r\n ////////////////////////////\r\n // ** Private Methods ** //\r\n ////////////////////////////\r\n\r\n var Plugin = {\r\n /**\r\n * Run plugin\r\n * @returns {mscrolltop}\r\n */\r\n construct: function(options) {\r\n if (KTUtil.data(element).has('scrolltop')) {\r\n the = KTUtil.data(element).get('scrolltop');\r\n } else {\r\n // reset scrolltop\r\n Plugin.init(options);\r\n\r\n // build scrolltop\r\n Plugin.build();\r\n\r\n KTUtil.data(element).set('scrolltop', the);\r\n }\r\n\r\n return the;\r\n },\r\n\r\n /**\r\n * Handles subscrolltop click toggle\r\n * @returns {mscrolltop}\r\n */\r\n init: function(options) {\r\n the.events = [];\r\n\r\n // merge default and user defined options\r\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\r\n },\r\n\r\n build: function() {\r\n var timer;\r\n\r\n window.addEventListener('scroll', function() {\r\n KTUtil.throttle(timer, function() {\r\n Plugin.handle();\r\n }, 200);\r\n });\r\n\r\n // handle button click\r\n KTUtil.addEvent(element, 'click', Plugin.scroll);\r\n },\r\n\r\n /**\r\n * Handles scrolltop click scrollTop\r\n */\r\n handle: function() {\r\n var pos = KTUtil.getScrollTop(); // current vertical position\r\n\r\n if (pos > the.options.offset) {\r\n if (body.hasAttribute('data-scrolltop') === false) {\r\n body.setAttribute('data-scrolltop', 'on');\r\n }\r\n } else {\r\n if (body.hasAttribute('data-scrolltop') === true) {\r\n body.removeAttribute('data-scrolltop');\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Handles scrolltop click scrollTop\r\n */\r\n scroll: function(e) {\r\n e.preventDefault();\r\n\r\n KTUtil.scrollTop(0, the.options.speed);\r\n },\r\n\r\n\r\n /**\r\n * Trigger events\r\n */\r\n eventTrigger: function(name, args) {\r\n for (var i = 0; i < the.events.length; i++) {\r\n var event = the.events[i];\r\n if (event.name == name) {\r\n if (event.one == true) {\r\n if (event.fired == false) {\r\n the.events[i].fired = true;\r\n return event.handler.call(this, the, args);\r\n }\r\n } else {\r\n return event.handler.call(this, the, args);\r\n }\r\n }\r\n }\r\n },\r\n\r\n addEvent: function(name, handler, one) {\r\n the.events.push({\r\n name: name,\r\n handler: handler,\r\n one: one,\r\n fired: false\r\n });\r\n }\r\n };\r\n\r\n //////////////////////////\r\n // ** Public Methods ** //\r\n //////////////////////////\r\n\r\n /**\r\n * Set default options\r\n */\r\n\r\n the.setDefaults = function(options) {\r\n defaultOptions = options;\r\n };\r\n\r\n /**\r\n * Get subscrolltop mode\r\n */\r\n the.on = function(name, handler) {\r\n return Plugin.addEvent(name, handler);\r\n };\r\n\r\n /**\r\n * Set scrolltop content\r\n * @returns {mscrolltop}\r\n */\r\n the.one = function(name, handler) {\r\n return Plugin.addEvent(name, handler, true);\r\n };\r\n\r\n ///////////////////////////////\r\n // ** Plugin Construction ** //\r\n ///////////////////////////////\r\n\r\n // Run plugin\r\n Plugin.construct.apply(the, [options]);\r\n\r\n // Init done\r\n init = true;\r\n\r\n // Return plugin instance\r\n return the;\r\n};\r\n\r\n// webpack support\r\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\r\n // module.exports = KTScrolltop;\r\n}\r\n\r\nexport default KTScrolltop;","import { persistReducer } from \"redux-persist\";\r\nimport storage from \"redux-persist/lib/storage\";\r\nimport { put, takeLatest, select } from \"redux-saga/effects\";\r\nimport { isAuthenticated } from './authCrud';\r\nimport * as menuActions from \"../../ApplicationMenu/_redux/applicationMenuActions\";\r\nimport LogRocket from 'logrocket';\r\nimport setupLogRocketReact from 'logrocket-react';\r\n\r\nexport const actionTypes = {\r\n Login: \"[Login] Action\",\r\n Logout: \"[Logout] Action\",\r\n LoginWith2Fa: \"[LoginWith2Fa] Action\",\r\n setAuthLoading: \"[LOADING] ACTION\",\r\n getInfo: \"[getInfo] Action\",\r\n TokenRequested: \"[Request Token] Action\",\r\n TokenLoaded: \"[Token User] Auth API\",\r\n RefreshToken: \"[RefreshToken] Action\",\r\n Redirect: \"[Redirect] Action\",\r\n};\r\n\r\nconst initialAuthState = {\r\n requiresTwoFactor: false,\r\n authLoading: false,\r\n config: {},\r\n user: undefined,\r\n authToken: undefined,\r\n redirectUrl: undefined,\r\n};\r\n\r\nexport const reducer = persistReducer(\r\n { storage, key: \"v706-auth\", whitelist: [\"config\", \"authToken\"] },\r\n (state = initialAuthState, action) => {\r\n switch (action.type) {\r\n case actionTypes.Login: {\r\n const { requiresTwoFactor } = action.payload;\r\n\r\n return { authLoading: true, requiresTwoFactor };\r\n }\r\n\r\n case actionTypes.TokenLoaded: {\r\n const { token, config } = action.payload;\r\n\r\n return { ...initialAuthState, authToken: token, authLoading: false, config };\r\n }\r\n\r\n case actionTypes.setAuthLoading: {\r\n const { loading } = action.payload;\r\n\r\n return { ...initialAuthState, authLoading: loading };\r\n }\r\n\r\n case actionTypes.getInfo: {\r\n const { user } = action.payload;\r\n\r\n return { ...initialAuthState, user, authLoading: false };\r\n }\r\n\r\n case actionTypes.Logout: {\r\n // TODO: Change this code. Actions in reducer aren't allowed.\r\n return initialAuthState;\r\n }\r\n\r\n case actionTypes.RefreshToken: {\r\n const { token } = action.payload;\r\n \r\n return { ...state, ...token };\r\n }\r\n\r\n case actionTypes.Redirect: {\r\n const { redirectUrl } = action.payload;\r\n return { ...state, redirectUrl: redirectUrl };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n }\r\n);\r\n\r\nexport const actions = {\r\n login: requiresTwoFactor => ({ type: actionTypes.Login, payload: { requiresTwoFactor } }),\r\n loginMfa: () => ({ type: actionTypes.LoginWith2Fa }),\r\n logout: () => ({ type: actionTypes.Logout }),\r\n setLoading: (loading) => ({ type: actionTypes.setAuthLoading, payload: { loading } }),\r\n requestToken: token => ({ type: actionTypes.TokenRequested, payload: { token } }),\r\n fulfillInfo: user => ({ type: actionTypes.getInfo, payload: { user } }),\r\n fulfillToken: (token, config) => ({ type: actionTypes.TokenLoaded, payload: { token, config } }),\r\n refreshToken: token => ({ type: actionTypes.RefreshToken, payload: { token } }),\r\n redirect: redirectUrl => ({ type: actionTypes.Redirect, payload: { redirectUrl } }),\r\n};\r\n\r\nconst getRequiresTwoFactor = ({ auth }) => auth.requiresTwoFactor;\r\n\r\nexport function* saga() {\r\n\r\n yield takeLatest(actionTypes.Login, function* loginWithoutMfaSaga() {\r\n const auth = yield select(getRequiresTwoFactor);\r\n if (!auth) {\r\n yield put(actions.requestToken());\r\n }\r\n });\r\n\r\n yield takeLatest(actionTypes.Logout, function* logout() {\r\n yield put(menuActions.unControlMenu());\r\n });\r\n\r\n yield takeLatest(actionTypes.LoginWith2Fa, function* loginSaga() {\r\n yield put(actions.requestToken());\r\n });\r\n\r\n\r\n yield takeLatest(actionTypes.TokenRequested, function* userRequested() {\r\n const { data, status } = yield isAuthenticated();\r\n if(status === 403){\r\n yield put(actions.redirect(\"/403\"));\r\n } else {\r\n const { success, data: token } = data;\r\n if (success) {\r\n const config = { \r\n appMenu: token.config.appMenu, \r\n isSysAdmin: token.isSysAdmin, \r\n isAdministrator: token.isAdministrator, \r\n isFullUser: token.isFullUser, \r\n isConsultant: token.isConsultant,\r\n isMachineRemembered: token.isMachineRemembered, \r\n is2faEnabled: token.is2faEnabled, \r\n accessToken: token.accessToken, \r\n userInfo: { \r\n uid: token.uid, \r\n username: token.username, \r\n email: token.email, \r\n fullname: token.fullname,\r\n config: token.config\r\n } \r\n }\r\n if (\r\n process.env.NODE_ENV !== 'development' &&\r\n !window.location.host.match(/demo|localhost/) &&\r\n !!token\r\n ) {\r\n try {\r\n LogRocket.init('tb7dmt/fsa');\r\n LogRocket.identify(token.uid, {\r\n email: token.email, \r\n name: token.fullname,\r\n });\r\n setupLogRocketReact(LogRocket);\r\n } catch (e) { }\r\n }\r\n yield put(actions.fulfillToken(token.token, config));\r\n }\r\n }\r\n });\r\n}\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n// import { actions } from \"../../Auth/_redux/authRedux\";\r\n\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\",\r\n menu: \"menu\"\r\n};\r\n\r\nconst initialAppMenuState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n menuLoading: false,\r\n appMenuForEdit: {\r\n menu_name: \"\",\r\n action_url: \"/\",\r\n icon_class: \"/media/svg/icons/Design/Layers.svg\",\r\n is_group: false,\r\n show_on_seed: false\r\n },\r\n trees: [{ key: \"\", title: \"\" }],\r\n menus: [],\r\n path: null,\r\n lastError: null,\r\n statusCode: null,\r\n snackbarType: \"success\",\r\n showSnackbar: false,\r\n};\r\n\r\nexport const appMenuSlice = createSlice({\r\n name: \"application_menu\",\r\n initialState: initialAppMenuState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = `${action.type}: ${action.payload.error}`;\r\n state.statusCode = action.payload.status;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else if (action.payload.callType === callTypes.menu) {\r\n state.menuLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = null;\r\n state.statusCode = null;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else if (action.payload.callType === callTypes.menu) {\r\n state.menuLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n onSnackbarClose: (state) => {\r\n state.lastError = null;\r\n state.showSnackbar = false;\r\n },\r\n onSnackbarOpen: (state, action) => {\r\n state.lastError = action.payload.message;\r\n state.snackbarType = action.payload.type;\r\n state.showSnackbar = true;\r\n },\r\n treesFetched: (state, action) => {\r\n const { data } = action.payload;\r\n state.listLoading = false;\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.trees = data;\r\n },\r\n menusFetched: (state, action) => {\r\n const { data } = action.payload;\r\n state.menuLoading = false;\r\n state.error = null;\r\n state.menus = data;\r\n },\r\n detailFetched: (state, action) => {\r\n const { data } = action.payload;\r\n state.actionsLoading = false;\r\n state.error = null;\r\n state.appMenuForEdit = data;\r\n },\r\n controlMenu: (state, action) => {\r\n const { path } = action.payload;\r\n state.path = path;\r\n },\r\n unControlMenu: (state, action) => {\r\n state.path = null;\r\n },\r\n clearState: (state, action) => {\r\n state.actionsLoading = false;\r\n state.appMenuForEdit = {\r\n category_name: \"\",\r\n category_description: \"\",\r\n category_icon: \"\"\r\n };\r\n state.lastError = null;\r\n state.statusCode = null;\r\n state.snackbarType = \"success\";\r\n state.showSnackbar = false;\r\n }\r\n }\r\n});","import { omit, mapGroupOptionsTree } from \"@utils/Q\";\r\nimport { groupBy } from \"@utils/collection-q\";\r\nimport normalizePayload from \"@utils/form-editor/normalize-payload\";\r\nimport {\r\n flowToElements,\r\n elsaWorkflowToReactFlow,\r\n mapRecordDisplayStatus,\r\n} from \"@utils/form-editor/normalize-response\";\r\nimport { initRequest, setLoading } from \"@utils/actionMethods\";\r\nimport { setDefaultPermission } from \"@utils/form-details/permission\";\r\nimport message from \"@utils/message\";\r\nimport api from \"@api\";\r\nimport { INIT_FIELD_TYPES } from \"@components/form-editor/const\";\r\nimport { awsFile } from \"../../app/components/form-editor/utils\";\r\nimport { isEqual, sortBy } from \"lodash\";\r\n\r\nconst formEditorActions = {\r\n setLastHistory({ moduleId, tab, page, size }) {\r\n return (dispatch) => {\r\n dispatch({\r\n type: \"SET_LAST_HISTORY\",\r\n payload: {\r\n moduleId,\r\n tab,\r\n page,\r\n size,\r\n },\r\n });\r\n };\r\n },\r\n createProcessFromScratch(payload) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n let result = {};\r\n await request(\"createProcessFromScratch\", payload, async (response) => {\r\n result = { data: response };\r\n });\r\n return result;\r\n };\r\n },\r\n getFormList(params = {}) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n let formList = []; // {}\r\n await request(\"getFormList\", params, async (data) => {\r\n // (data?.data || []).map(item => ({\r\n // id: item.id,\r\n // title: item.display_name, // item['display_name']\r\n // status: item.status\r\n // }))\r\n formList = (data?.data || []).map((item) => ({\r\n // ...omit(item, ['display_name']),\r\n ...item,\r\n title: item.display_name,\r\n }));\r\n dispatch({\r\n type: \"SET_FORM_LIST\",\r\n payload: formList,\r\n });\r\n });\r\n return formList;\r\n };\r\n },\r\n setFields(payload) {\r\n return (dispatch) => {\r\n dispatch({\r\n type: \"SET_FIELDS\",\r\n payload,\r\n });\r\n };\r\n },\r\n getFormDetail(id, token) {\r\n return async (dispatch, getState) => {\r\n if (!id) return;\r\n const request = initRequest(dispatch);\r\n const { formEditorReducer } = getState();\r\n const { formList } = formEditorReducer;\r\n let sections = [];\r\n let sectionsPublished = [];\r\n let fields = [];\r\n let tableFields = [];\r\n let publishedFields = [];\r\n let publishedTableFields = [];\r\n let flowData = {};\r\n let defaultConfig = null;\r\n let permission = [];\r\n let rawPermission = {};\r\n let workflowData = {};\r\n let modulePublished = {};\r\n let info = {};\r\n let isReassignmentEnabled = true;\r\n let emailTemplates = {};\r\n const fieldsWalker = (arr) => {\r\n return arr.reduce((allFields, section) => {\r\n const rowFields = section.rows.reduce((allRowFields, row) => {\r\n return [...allRowFields, ...row.fields];\r\n }, []);\r\n return [...allFields, ...rowFields];\r\n }, []);\r\n };\r\n await dispatch(setLoading(\"getFormDetail\", true));\r\n await request(\"getModuleConfig\", id, ({ data }) => {\r\n isReassignmentEnabled = data?.is_reassignment_disabled ? false : true;\r\n });\r\n await request(\r\n \"getFormDetail\",\r\n { id },\r\n async (responseData) => {\r\n const { data } = responseData;\r\n const moduleDraft =\r\n data && data[\"module_draft\"]\r\n ? JSON.parse(data[\"module_draft\"])\r\n : null;\r\n const workflowDraft =\r\n data && data[\"workflow_draft\"]\r\n ? JSON.parse(data[\"workflow_draft\"])\r\n : null;\r\n modulePublished = data ? JSON.parse(data[\"module_published\"]) : null;\r\n const populateSections = (schema) => {\r\n return (schema?.fieldGroups || []).length\r\n ? (schema.fieldGroups || []).map((s) => ({\r\n ...s,\r\n rows: Object.entries(groupBy(s.fields, \"rowIndex\")).map(\r\n ([rowIndex, rowFields]) => {\r\n const mapEditorTypes = {\r\n remoteurl: \"remote-lookup\",\r\n };\r\n return {\r\n rowIndex,\r\n fields: rowFields.map((rowField) => {\r\n const {\r\n editorType,\r\n name,\r\n displayName,\r\n label,\r\n ...f\r\n } = rowField;\r\n const currentConfig = INIT_FIELD_TYPES.find(\r\n ({ fieldType }) => {\r\n return (\r\n fieldType ===\r\n (mapEditorTypes[editorType] || editorType)\r\n );\r\n }\r\n );\r\n return {\r\n ...f,\r\n id: name,\r\n fieldType: mapEditorTypes[editorType] || editorType,\r\n fieldName: displayName,\r\n label: currentConfig ? currentConfig.label : label,\r\n };\r\n }),\r\n };\r\n }\r\n ),\r\n }))\r\n : [];\r\n };\r\n if (moduleDraft) {\r\n const isConfigDraft = isEqual(moduleDraft?.defaultConfig, modulePublished?.defaultConfig)\r\n defaultConfig = isConfigDraft ? modulePublished?.defaultConfig : moduleDraft?.defaultConfig\r\n sections = populateSections(moduleDraft);\r\n sectionsPublished = populateSections(modulePublished);\r\n fields = fieldsWalker(\r\n sections.filter(({ isTable }) => !isTable)\r\n ).filter((field) => field.fieldType !== \"empty-col\");\r\n tableFields = fieldsWalker(\r\n sections.filter(({ isTable }) => isTable)\r\n );\r\n publishedFields = fieldsWalker(\r\n sectionsPublished.filter(({ isTable }) => !isTable)\r\n ).filter((field) => field.fieldType !== \"empty-col\");\r\n publishedTableFields = fieldsWalker(\r\n sectionsPublished.filter(({ isTable }) => isTable)\r\n );\r\n\r\n let isPublished = Boolean(data.module_published); // data['module_published']\r\n const permissionDraft =\r\n typeof moduleDraft?.permission === \"string\"\r\n ? setDefaultPermission({\r\n permission: JSON.parse(moduleDraft.permission),\r\n sections: sections,\r\n })\r\n : null;\r\n const permissionPublished =\r\n typeof modulePublished?.permission === \"string\"\r\n ? setDefaultPermission({\r\n permission: JSON.parse(modulePublished?.permission),\r\n sections: sectionsPublished,\r\n })\r\n : null;\r\n permission = permissionDraft?.rules || [];\r\n rawPermission = permissionDraft?.rawPermission || {};\r\n const file =\r\n data.help_file_url && data.help_file_url?.length > 0\r\n ? await awsFile(data.help_file_url, token)\r\n : null;\r\n flowData = {\r\n ...omit(moduleDraft, [\"fieldGroups\"]),\r\n id,\r\n isPublished,\r\n created_by: data.created_by,\r\n created_on: data.created_on,\r\n modified_by: data.modified_by,\r\n modified_on: data.modified_on,\r\n module_version: data.module_version,\r\n status: isPublished ? \"Published\" : \"Draft\", // data.status,\r\n formCategories: data.application_module_category_id || \"\",\r\n formDescription: data.module_description || \"\",\r\n formName: data.display_name || \"\",\r\n description: data.module_description || \"\",\r\n displayName: data.display_name || \"\",\r\n permission: permissionPublished?.rules || [],\r\n helpFileUrl: data.help_file_url,\r\n awsHelpUrl: file,\r\n ocrProviderId: data.ocr_provider_id,\r\n ocrProviderName: data.ocr_provider_name,\r\n machineLearningServiceId: data.ml_service_id,\r\n appIcon: data.app_icon,\r\n addToQuickLaunch: data.add_to_quick_launch\r\n };\r\n }\r\n if (\r\n workflowDraft &&\r\n (workflowDraft?.connections || []).length > 0 &&\r\n (workflowDraft.connections[0]?.destinationActivityId ||\r\n workflowDraft.connections[0]?.targetActivityId)\r\n ) {\r\n workflowData = elsaWorkflowToReactFlow(workflowDraft);\r\n }\r\n if (data) {\r\n emailTemplates = {\r\n id,\r\n submit_subject_email_template: data.submit_subject_email_template,\r\n reassign_subject_email_template:\r\n data.reassign_subject_email_template,\r\n rejected_subject_email_template:\r\n data.rejected_subject_email_template,\r\n restart_subject_email_template:\r\n data.restart_subject_email_template,\r\n sendback_subject_email_template:\r\n data.sendback_subject_email_template,\r\n completed_subject_email_template:\r\n data.completed_subject_email_template,\r\n approve_subject_email_template:\r\n data.approve_subject_email_template,\r\n submit_body_email_template: data.submit_body_email_template,\r\n reassign_body_email_template: data.reassign_body_email_template,\r\n rejected_body_email_template: data.rejected_body_email_template,\r\n restart_body_email_template: data.restart_body_email_template,\r\n sendback_body_email_template: data.sendback_body_email_template,\r\n completed_body_email_template: data.completed_body_email_template,\r\n approve_body_email_template: data.approve_body_email_template,\r\n };\r\n }\r\n },\r\n async (response) => {\r\n await dispatch(setLoading(\"getFormDetail\", false));\r\n await dispatch({\r\n type: \"SET_FIELDS\",\r\n payload: fields,\r\n });\r\n await dispatch({\r\n type: \"SET_FORM_FIELDS\",\r\n payload: {\r\n formId: id,\r\n formFields: fields,\r\n },\r\n });\r\n await dispatch({\r\n type: \"SET_TABLE_FIELDS\",\r\n payload: {\r\n formId: id,\r\n tableFields: tableFields,\r\n },\r\n });\r\n await dispatch({\r\n type: \"SET_FORM_DETAILS\",\r\n payload: {\r\n formId: id,\r\n formDetails: {\r\n sections,\r\n sectionsPublished,\r\n flowData,\r\n defaultConfig,\r\n permission,\r\n rawPermission,\r\n workflowData,\r\n modulePublished,\r\n info,\r\n fields,\r\n tableFields,\r\n publishedFields,\r\n publishedTableFields,\r\n isReassignmentEnabled,\r\n },\r\n },\r\n });\r\n await dispatch({\r\n type: \"SET_WORKFLOW\",\r\n payload: {\r\n elements: flowToElements(workflowData),\r\n },\r\n });\r\n\r\n if (\r\n response?.data?.id &&\r\n formList.length &&\r\n !formList.find((item) => item.id === response.data.id)\r\n ) {\r\n dispatch({\r\n type: \"SET_FORM_LIST\",\r\n payload: [\r\n ...formList,\r\n {\r\n ...flowData,\r\n title: response.data.display_name,\r\n },\r\n ],\r\n });\r\n }\r\n }\r\n );\r\n return {\r\n sections,\r\n sectionsPublished,\r\n flowData,\r\n defaultConfig,\r\n permission,\r\n rawPermission,\r\n modulePublished,\r\n info,\r\n fields,\r\n tableFields,\r\n publishedFields,\r\n publishedTableFields,\r\n isReassignmentEnabled,\r\n emailTemplates,\r\n };\r\n };\r\n },\r\n getPermissibleList() {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n await request(\"getPermissibleList\", {}, async (res) => {\r\n // { data }\r\n if (res && res.data) {\r\n const payload = (res.data || []).map((option) => ({\r\n ...option,\r\n value: option.id,\r\n label: option.key_name, // option[\"key_name\"]\r\n }));\r\n await dispatch({\r\n type: \"SET_PERMISSIBLE_LIST\",\r\n payload,\r\n });\r\n }\r\n });\r\n };\r\n },\r\n addPermissibleList(list) {\r\n return async (dispatch, getState) => {\r\n const request = initRequest(dispatch);\r\n const { formEditorReducer } = getState();\r\n const { permissibleList } = formEditorReducer;\r\n const body = normalizePayload.listKeyValuePayload(list);\r\n const isEdit = body?.id;\r\n let result = {};\r\n await dispatch(setLoading(\"getPermissibleListItems\", true));\r\n await request(\"addPermissibleList\", body, async (data = []) => {\r\n if (data?.data && data?.success) {\r\n const optionValue = {\r\n value: data?.data[\"record_id\"],\r\n label: body[\"key_name\"],\r\n };\r\n result = optionValue;\r\n\r\n if (isEdit) {\r\n const editedListIndex = permissibleList.findIndex(\r\n ({ value }) => value === body?.id\r\n );\r\n const list = [...permissibleList];\r\n list.splice(editedListIndex, 1, optionValue);\r\n await dispatch({\r\n type: \"SET_PERMISSIBLE_LIST\",\r\n payload: list,\r\n });\r\n } else {\r\n await dispatch({\r\n type: \"ADD_PERMISSIBLE_LIST\",\r\n payload: {\r\n ...list,\r\n ...optionValue,\r\n },\r\n });\r\n }\r\n }\r\n });\r\n return result;\r\n };\r\n },\r\n getPermissibleListCategoryOptions() {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n await request(\"getPermissibleListCategoryOptions\", {}, async (res) => {\r\n // { data }\r\n if (res && res.data) {\r\n const payload = (res.data || []).map((option) => ({\r\n value: option.id,\r\n label: option.category_name, // option[\"category_name\"]\r\n }));\r\n await dispatch({\r\n type: \"SET_PERMISSIBLE_LIST_CATEGORY_OPTIONS\",\r\n payload,\r\n });\r\n }\r\n });\r\n };\r\n },\r\n addPermissibleListCategoryOption({ category: categoryName }) {\r\n return async (dispatch) => {\r\n try {\r\n const { data } = await api.addPermissibleListCategoryOption(\r\n categoryName\r\n );\r\n const { record_id: categoryId } = data?.data || {};\r\n\r\n return dispatch({\r\n type: \"ADD_PERMISSIBLE_LIST_CATEGORY_OPTIONS\",\r\n payload: {\r\n value: categoryId,\r\n label: categoryName,\r\n },\r\n });\r\n } catch (e) {}\r\n };\r\n },\r\n getPermissibleListItems(listId) {\r\n return async (dispatch) => {\r\n try {\r\n await dispatch(setLoading(\"getPermissibleListItems\", true));\r\n const { data } = await api.getPermissibleListItems(listId);\r\n const items = data ? data.data?.values : [];\r\n await dispatch({\r\n type: \"SET_PERMISSIBLE_LIST_ITEMS\",\r\n payload: {\r\n listId,\r\n items,\r\n },\r\n });\r\n await dispatch(setLoading(\"getPermissibleListItems\", false));\r\n } catch (e) {\r\n } finally {\r\n dispatch(setLoading(\"getPermissibleListItems\", false));\r\n }\r\n };\r\n },\r\n setPermissibleListItems(listId, items) {\r\n return async (dispatch) => {\r\n try {\r\n await dispatch({\r\n type: \"SET_PERMISSIBLE_LIST_ITEMS\",\r\n payload: {\r\n listId,\r\n items,\r\n },\r\n });\r\n } catch (e) {}\r\n };\r\n },\r\n setPermissibleListCategories(listId, categories) {\r\n return async (dispatch) => {\r\n try {\r\n await dispatch({\r\n type: \"SET_PERMISSIBLE_LIST_CATEGORIES\",\r\n payload: {\r\n listId,\r\n categories,\r\n },\r\n });\r\n } catch (e) {}\r\n };\r\n },\r\n setFormPreview(payload) {\r\n return (dispatch) => {\r\n dispatch({\r\n type: \"SET_PREVIEW_FORM\",\r\n payload,\r\n });\r\n };\r\n },\r\n saveForm(payload) {\r\n return async (dispatch, getState) => {\r\n const { workflowReducer } = getState();\r\n const { workflow } = workflowReducer;\r\n const { validUserFields } = payload;\r\n const moduleId = payload.flowData.id;\r\n return api.saveForm({\r\n id: moduleId,\r\n data: {\r\n ...normalizePayload.formPayload(payload),\r\n ...(payload?.permission?.length > 0 && {\r\n permission: JSON.stringify({\r\n rules: payload.permission,\r\n rawPermission: payload.rawPermission,\r\n }),\r\n }),\r\n ...(workflow?.elements?.length > 0 && {\r\n workflow: normalizePayload.workflowPayload({\r\n ...workflow,\r\n validUserFields,\r\n }),\r\n }),\r\n defaultConfig: payload.defaultConfig\r\n },\r\n });\r\n };\r\n },\r\n applyConfigAllUser(moduleId) {\r\n return async () => {\r\n return api.applyConfigAllUser({\r\n moduleId\r\n });\r\n };\r\n },\r\n setUserConfig(payload) {\r\n const { moduleId, tabConfig, data } = payload\r\n return async () => {\r\n return api.setUserConfig({\r\n moduleId,\r\n tabConfig,\r\n data\r\n });\r\n };\r\n },\r\n deleteForm({ moduleId, onSuccess }) {\r\n return async (dispatch, getState) => {\r\n const { formEditorReducer } = getState();\r\n const { formList } = formEditorReducer;\r\n const temp = [...formList];\r\n const request = initRequest(dispatch);\r\n await dispatch({\r\n type: \"DELETE_FORM_LIST_ITEM\",\r\n payload: {\r\n formId: moduleId,\r\n },\r\n });\r\n return request(\"deleteForm\", moduleId, (result) => {\r\n const { success } = result;\r\n if (success) {\r\n onSuccess && onSuccess(result);\r\n } else {\r\n dispatch({\r\n type: \"SET_FORM_LIST\",\r\n payload: temp,\r\n });\r\n }\r\n });\r\n };\r\n },\r\n setModuleReassignment(payload) {\r\n return async () => {\r\n return api.setModuleReassignment(payload);\r\n };\r\n },\r\n publish(payload) {\r\n return async (dispatch, getState) => {\r\n let result = {};\r\n const request = initRequest(dispatch);\r\n const { formEditorReducer } = getState();\r\n const { formList } = formEditorReducer;\r\n await request(\"publish\", { id: payload.flowData.id }, async (response) => {\r\n result = { data: response };\r\n const list = [...formList];\r\n const existingModule = (module) => module.id === payload.flowData.id;\r\n const moduleIndex = list.findIndex(existingModule);\r\n if (moduleIndex !== -1) {\r\n const newModule = {\r\n ...list[moduleIndex],\r\n ...payload.flowData,\r\n defaultConfig: payload.defaultConfig,\r\n title: payload.flowData.displayName,\r\n isPublished: true,\r\n status: \"Published\",\r\n };\r\n list.splice(moduleIndex, 1, newModule);\r\n await dispatch({\r\n type: \"SET_FORM_LIST\",\r\n payload: list,\r\n });\r\n }\r\n });\r\n return result;\r\n };\r\n },\r\n getModuleItems({ moduleId, query, page, orders, columns = [] }) {\r\n return (dispatch) => {\r\n const request = initRequest(dispatch);\r\n return request(\r\n \"getModuleItems\",\r\n {\r\n moduleId,\r\n data: normalizePayload.dataTablePayload({\r\n fields: columns,\r\n query,\r\n page,\r\n orders,\r\n }),\r\n },\r\n (response) => {\r\n const { data = [] } = response;\r\n dispatch({\r\n type: \"SET_MODULE_ITEMS\",\r\n payload: {\r\n moduleItems: {\r\n ...response,\r\n data: data.map(mapRecordDisplayStatus),\r\n page,\r\n },\r\n formId: moduleId,\r\n },\r\n });\r\n }\r\n );\r\n };\r\n },\r\n getListApplications(){\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n await request(\"getListApplications\", \r\n {},\r\n async (res) => {\r\n const { success = false, data = [] } = res || {};\r\n if (success && data) {\r\n await dispatch({\r\n type: \"SET_APPLICATIONS_MODULE\",\r\n payload: data\r\n });\r\n }\r\n }\r\n );\r\n };\r\n},\r\n getModuleTasks({\r\n moduleId,\r\n query,\r\n page,\r\n orders,\r\n columns = [],\r\n filters = {},\r\n }) {\r\n return (dispatch) => {\r\n const request = initRequest(dispatch);\r\n return request(\r\n \"getModuleTasks\",\r\n {\r\n moduleId,\r\n data: normalizePayload.dataTablePayload({\r\n fields: columns,\r\n query,\r\n page,\r\n orders,\r\n filters,\r\n }),\r\n },\r\n async (response) => {\r\n if (\r\n (query || filters?.rules?.length) &&\r\n response.recordsFiltered !== undefined\r\n ) {\r\n response.recordsTotal = response.recordsFiltered;\r\n }\r\n await dispatch({\r\n type: \"SET_MODULE_TASKS\",\r\n payload: {\r\n moduleTasks: {\r\n ...response,\r\n page,\r\n },\r\n formId: moduleId || \"all\",\r\n },\r\n });\r\n }\r\n );\r\n };\r\n },\r\n uploadEntry(payload) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n return request(\"uploadEntry\", payload);\r\n };\r\n },\r\n saveEntry(payload) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n return request(\"saveEntry\", payload);\r\n };\r\n },\r\n saveRecordTemplate(payload) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n return request(\"saveRecordTemplate\", payload);\r\n };\r\n },\r\n getSavedRecordTemplate(id) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n return request(\"getSavedRecordTemplate\", id);\r\n };\r\n },\r\n renameRecordTemplate(payload) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n return request(\"renameRecordTemplate\", payload);\r\n };\r\n },\r\n deleteRecordTemplate(payload) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n return request(\"deleteRecordTemplate\", payload);\r\n };\r\n },\r\n setOrderIndexRecordTemplate(payload) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n return request(\"setOrderIndexRecordTemplate\", payload);\r\n };\r\n },\r\n submitEntry(payload) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n return request(\"submitEntry\", payload);\r\n };\r\n },\r\n setModuleItems({ moduleId, items }) {\r\n return (dispatch, getState) => {\r\n const { formEditorReducer } = getState();\r\n const { moduleItems } = formEditorReducer;\r\n dispatch({\r\n type: \"SET_MODULE_ITEMS\",\r\n payload: {\r\n moduleItems: {\r\n ...moduleItems[moduleId],\r\n data: items,\r\n },\r\n formId: moduleId,\r\n },\r\n });\r\n };\r\n },\r\n restartProcess(payload) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n return request(\"restartProcess\", payload, null, (data) => {\r\n const {\r\n success,\r\n message: responseMessage = \"Error restarting process\",\r\n } = data || {};\r\n if (!success) {\r\n message.error(responseMessage);\r\n } else {\r\n message.success(responseMessage);\r\n }\r\n });\r\n };\r\n },\r\n deleteEntry(payload) {\r\n const { moduleId, recordId } = payload;\r\n return async (dispatch, getState) => {\r\n const { formEditorReducer } = getState();\r\n const { moduleItems } = formEditorReducer;\r\n const records = [...((moduleItems[moduleId] || {}).data || [])];\r\n const request = initRequest(dispatch);\r\n const items = [...records];\r\n items.splice(\r\n items.findIndex((item) => item.id === recordId),\r\n 1\r\n );\r\n\r\n await dispatch(this.setModuleItems({ moduleId, items }));\r\n return request(\"deleteEntry\", payload, null, (data) => {\r\n const { success, message: responseMessage = \"Error deleting entry\" } =\r\n data || {};\r\n if (!success) {\r\n message.error(responseMessage);\r\n dispatch(this.setModuleItems({ moduleId, items: records }));\r\n } else {\r\n message.success(responseMessage);\r\n }\r\n });\r\n };\r\n },\r\n deleteEntries(payload) {\r\n const { moduleId, recordIds } = payload;\r\n return async (dispatch, getState) => {\r\n const { formEditorReducer } = getState();\r\n const { moduleItems } = formEditorReducer;\r\n const request = initRequest(dispatch);\r\n const records = [...((moduleItems[moduleId] || {}).data || [])];\r\n const items = records.filter(({ id }) => !recordIds.includes(id));\r\n\r\n await dispatch(this.setModuleItems({ moduleId, items }));\r\n return request(\"deleteEntries\", payload, null, (data) => {\r\n const { success, message: responseMessage = \"Error deleting entry\" } =\r\n data || {};\r\n if (!success) {\r\n message.error(responseMessage);\r\n dispatch(this.setModuleItems({ moduleId, items: records }));\r\n } else {\r\n message.success(responseMessage);\r\n }\r\n });\r\n };\r\n },\r\n lookup(payload) {\r\n const data = normalizePayload.lookupPayload(payload);\r\n\r\n return (dispatch) => {\r\n const request = initRequest(dispatch);\r\n return request(\"lookup\", { data });\r\n };\r\n },\r\n aggregateLookup(payload) {\r\n const data = normalizePayload.aggregateLookupPayload(payload);\r\n\r\n return (dispatch) => {\r\n const request = initRequest(dispatch);\r\n return request(\"aggregateLookup\", { data });\r\n };\r\n },\r\n getModuleLookup(id) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n await request(\"moduleLookup\", id, ({ data = [] }) => {\r\n const options = data.map((item) => ({\r\n value: item.module_id,\r\n label: item.display_name,\r\n istable: item.is_table,\r\n }));\r\n dispatch({\r\n type: \"SET_MODULE_LOOKUP\",\r\n payload: options,\r\n });\r\n });\r\n };\r\n },\r\n getColumnLookup(id) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n await request(\"columnLookup\", id, ({ data = [] }) => {\r\n const options = data.map((item) => ({\r\n value: item,\r\n label: item,\r\n }));\r\n dispatch({\r\n type: \"SET_COLUMN_LOOKUP\",\r\n payload: options,\r\n });\r\n });\r\n };\r\n },\r\n getModuleCategories() {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n let returnData = {};\r\n \r\n await request(\"getModuleCategories\", {}, async (data) => {\r\n const payload = mapGroupOptionsTree(data);\r\n await dispatch({\r\n type: \"SET_MODULE_CATEGORIES\",\r\n payload,\r\n });\r\n returnData = data;\r\n });\r\n return returnData;\r\n };\r\n },\r\n getMLProviders() {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n let returnData = {};\r\n await request(\"getMLProviders\", {}, async (data) => {\r\n const payload = (data?.items || []).map((option) => ({\r\n value: option.id,\r\n label: option[\"ocr_provider_name\"],\r\n }));\r\n await dispatch({\r\n type: \"SET_ML_PROVIDERS\",\r\n payload,\r\n });\r\n returnData = data;\r\n });\r\n return returnData;\r\n };\r\n },\r\n getMLServices({providerId}) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n let returnData = {};\r\n await request(\"getMLServices\", {providerId}, async (data) => {\r\n const payload = (data?.items || []).map((option) => ({\r\n value: option.id,\r\n label: option[\"ml_service_name\"],\r\n }));\r\n await dispatch({\r\n type: \"SET_ML_SERVICES\",\r\n payload,\r\n });\r\n returnData = data;\r\n });\r\n return returnData;\r\n };\r\n },\r\n getAIServices({mlServiceId}) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n let returnData = {};\r\n await request(\"getAIServices\", {mlServiceId}, async (data) => {\r\n const sortedData = sortBy(data?.data || [], (i) => i.ai_service_name);\r\n const options = sortedData.map((option) => ({\r\n value: option.id,\r\n label: option.ai_service_name,\r\n code: option.ai_service_code\r\n }));\r\n await dispatch({\r\n type: \"SET_AI_SERVICES\",\r\n payload:{\r\n mlServiceId,\r\n options\r\n },\r\n });\r\n returnData = data;\r\n });\r\n return returnData;\r\n };\r\n },\r\n addRemoveFavouriteModule(moduleId, isAdd) {\r\n return async (dispatch, getState) => {\r\n const request = initRequest(dispatch);\r\n const { formEditorReducer } = getState();\r\n const { moduleFavourite = [], formList } = formEditorReducer;\r\n // const body = normalizePayload.listKeyValuePayload(list)\r\n const body = { moduleId, isAdd };\r\n // const isEdit = body?.id\r\n let result = {};\r\n // await dispatch(setLoading('getPermissibleListItems', true))\r\n await request(\"addRemoveFavouriteModule\", body, async (data = []) => {\r\n if (data?.success) {\r\n let newFavList, resultModule;\r\n if (isAdd) {\r\n const selectedFav = formList.find(\r\n ({ id }) => id === body?.moduleId\r\n );\r\n newFavList = [...moduleFavourite, selectedFav];\r\n resultModule = { [body?.moduleId]: true };\r\n } else {\r\n newFavList = moduleFavourite?.filter(\r\n ({ id }) => id !== body?.moduleId\r\n );\r\n resultModule = { [body?.moduleId]: false };\r\n }\r\n result = {\r\n success: data?.success,\r\n data: newFavList,\r\n responseMessage: data?.message,\r\n ...resultModule,\r\n };\r\n await dispatch({\r\n type: \"SET_FAVOURITE_MODULE\",\r\n payload: newFavList,\r\n });\r\n }\r\n });\r\n return result;\r\n };\r\n },\r\n getFavouriteModule() {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n await request(\r\n \"getFavouriteList\",\r\n {},\r\n async (data = [], success = false) => {\r\n let newData = data?.data ? data.data : data,\r\n newSuccess = data?.success ? data.success : success;\r\n // console.log(data);\r\n const payload = newSuccess ? newData || [] : [];\r\n await dispatch({\r\n type: \"SET_FAVOURITE_MODULE\",\r\n payload,\r\n });\r\n }\r\n );\r\n };\r\n },\r\n getConnectorRecords() {\r\n return async (dispatch) => {\r\n console.log(\"this is called\");\r\n const request = initRequest(dispatch);\r\n await request(\r\n \"fetchDataConnectors\",\r\n {},\r\n async (data = [], success = false) => {\r\n let newData = data?.data ? data.data : data,\r\n newSuccess = data?.success ? data.success : success;\r\n console.log({ newData, newSuccess });\r\n // console.log(data);\r\n // const payload = newSuccess ? newData || [] : [];\r\n // await dispatch({\r\n // type: \"SET_FAVOURITE_MODULE\",\r\n // payload,\r\n // });\r\n }\r\n );\r\n };\r\n },\r\n getDataConnectorDetail(id) {\r\n return async (dispatch) => {\r\n const loadingId = `data-connector-${id}`;\r\n try {\r\n await dispatch(setLoading(loadingId, true));\r\n const { data } = await api.fetchDataConnectorById({ recordId: id });\r\n const { data: details } = data || {};\r\n const { display_columns } = details;\r\n const { available } = display_columns ?? {};\r\n await dispatch({\r\n type: \"SET_DATA_CONNECTOR_DETAILS\",\r\n payload: {\r\n id,\r\n details: {\r\n ...details,\r\n hideFields: available || [],\r\n },\r\n },\r\n });\r\n } catch (e) {\r\n } finally {\r\n dispatch(setLoading(loadingId, false));\r\n }\r\n };\r\n },\r\n saveTaskScheduler(payload) {\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n return request(\"saveTaskScheduler\", payload);\r\n };\r\n },\r\n deleteTaskSchedulerEntries(payload) {\r\n const { moduleId, recordIds } = payload;\r\n return async (dispatch, getState) => {\r\n const { formEditorReducer } = getState();\r\n const { moduleItems } = formEditorReducer;\r\n const request = initRequest(dispatch);\r\n const records = [...((moduleItems[moduleId] || {}).data || [])];\r\n const items = records.filter(({ id }) => !recordIds.includes(id));\r\n\r\n await dispatch(this.setModuleItems({ moduleId, items }));\r\n return request(\r\n \"deleteTaskSchedulerEntries\",\r\n payload,\r\n null,\r\n data => {\r\n const { success, message: responseMessage = 'Error deleting entry' } = data || {}\r\n if (!success) {\r\n message.error(responseMessage)\r\n dispatch(this.setModuleItems({ moduleId, items: records }))\r\n } else {\r\n message.success(responseMessage)\r\n }\r\n }\r\n );\r\n };\r\n },\r\n getTasksCount(){\r\n return async (dispatch) => {\r\n const request = initRequest(dispatch);\r\n await request(\"getTasksCount\", {} ,async (res) => {\r\n const { success = false, data } = res || {};\r\n if (success && data) {\r\n await dispatch({\r\n type: \"SET_TASKS_COUNT\",\r\n payload: data\r\n });\r\n }\r\n }\r\n );\r\n };\r\n }\r\n};\r\n\r\nexport default formEditorActions;\r\n"],"sourceRoot":""}