{"version":3,"sources":["api/user/login/actions.js","api/catalog/newElement/actions.js","api/userManagement/newElement/actions.js","infrastructure/errorHandling/actionTypes.js","components/Forms/validators.js","components/Forms/FormInput.js","components/Forms/FormCustomInput.js","components/Forms/Dropdown.js","infrastructure/localization/ResourcesProvider.js","infrastructure/localization/ResourcesProvider.container.js","infrastructure/localization/withResources.js","store/catalog/productTree/selectors.js","store/userManagement/userManagementTree/selectors.js","api/layout/actions.js","api/catalog/exportElement/actions.js","api/catalog/deleteElement/actions.js","api/catalog/copyElement/actions.js","api/catalog/changeElementId/actions.js","api/catalog/elementActivationOptions/actions.js","api/userManagement/deleteElement/actions.js","api/userManagement/copyElement/actions.js","api/userManagement/changeElementId/actions.js","api/userManagement/changeUserEmail/actions.js","api/userManagement/elementActivationOptions/actions.js","store/user/selectors.js","infrastructure/helpers/tools.js","store/cms/cmsTree/selectors.js","api/actions/actions.js","api/dataManagement/actions.js","api/propertyValueSuggestions/actions.js","infrastructure/messaging/actions.js","infrastructure/messaging/actionTypes.js","api/catalog/changeElementType/actions.js","api/userManagement/changeElementType/actions.js","api/userManagement/passwordUpdate/actions.js","infrastructure/messaging/messageTypes.js","infrastructure/errorHandling/actions.js","api/catalog/productTree/actionTypes.js","api/cms/cmsTree/actionTypes.js","api/userManagement/userManagementTree/actionTypes.js","store/languageManagement/selectors.js","general/AppMain/templates.js","general/AppMain/appMainComponents.js","general/AppMain/containers/PageTitle.js","views/LoginPage/components/LoginForm.js","views/LoginPage/containers/LoginForm.js","views/LoginPage/components/LoginPanel.js","views/LoginPage/components/LoginPage.js","views/LoginPage/containers/LoginPage.js","views/LoginPage/loginPageComponents.js","views/LoginPage/templates.js","views/LoginPage/index.js","components/LoaderElement/LoaderElement.js","components/PrivateRoute/PrivateRoute.js","general/AppMain/components/AppMain.js","general/AppMain/containers/AppMain.js","general/AppMain/index.js","api/search/actionTypes.js","store/layout/selectors.js","api/languageManagement/actionTypes.js","api/media/actions.js","api/catalog/newElement/actionTypes.js","store/propertyValueSuggestions/selectors.js","general/AppMain/components/PageTitle.js","api/catalog/element/actionTypes.js","api/userManagement/newElement/actionTypes.js","api/userManagement/element/actionTypes.js","assets/utils/images/sidebar/city1.jpg","api/user/login/actionTypes.js","api/catalog/exportElement/actionTypes.js","api/catalog/productTree/actions.js","api/userManagement/userManagementTree/actions.js","infrastructure/http/http.js","infrastructure/authentication/authenticationContext.js","api/cms/cmsTree/actions.js","api/themeOptions/actionTypes.js","api/catalog/deleteElement/actionTypes.js","api/catalog/copyElement/actionTypes.js","api/catalog/changeElementType/actionTypes.js","api/catalog/changeElementId/actionTypes.js","api/catalog/elementActivationOptions/actionTypes.js","api/userManagement/deleteElement/actionTypes.js","api/userManagement/copyElement/actionTypes.js","api/userManagement/changeElementType/actionTypes.js","api/userManagement/changeElementId/actionTypes.js","api/userManagement/changeUserEmail/actionTypes.js","api/userManagement/elementActivationOptions/actionTypes.js","infrastructure/http/index.js","api/userManagement/element/actions.js","store/themeOptions/reducers.js","store/defaultStore.js","store/layout/reducers.js","store/catalog/productTree/reducers.js","store/catalog/reducers.js","store/catalog/element/reducers.js","store/catalog/newElement/reducers.js","store/catalog/deleteElement/reducers.js","store/catalog/copyElement/reducers.js","store/catalog/changeElementType/reducers.js","store/catalog/changeElementId/reducers.js","store/catalog/elementActivationOptions/reducers.js","store/catalog/exportElement/reducers.js","store/user/reducers/userReducer.js","store/user/reducers/loginReducer.js","store/media/reducers.js","store/cms/cmsTree/reducers.js","store/cms/reducers.js","store/userManagement/userManagementTree/reducers.js","store/userManagement/reducers.js","store/userManagement/element/reducers.js","store/userManagement/newElement/reducers.js","store/userManagement/deleteElement/reducers.js","store/userManagement/copyElement/reducers.js","store/userManagement/changeElementType/reducers.js","store/userManagement/changeElementId/reducers.js","store/userManagement/changeUserEmail/reducers.js","store/userManagement/passwordUpdate/reducers.js","store/userManagement/elementActivationOptions/reducers.js","store/search/reducers.js","store/languageManagement/reducers.js","store/dataManagement/reducers.js","store/action/reducers.js","store/configuration/reducers.js","api/configuration/actionTypes.js","store/propertyValueSuggestions/reducers.js","store/rootReducer.js","infrastructure/authentication/authenticationRemoteApi.js","infrastructure/helpers/sagasHelper.js","api/layout/remoteApi.js","api/layout/sagas.js","api/user/login/sagas.js","api/catalog/productTree/remoteApi.js","api/catalog/productTree/sagas.js","api/languageManagement/remoteApi.js","views/fileOpener.js","api/languageManagement/sagas.js","api/catalog/exportElement/remoteApi.js","api/catalog/exportElement/sagas.js","api/catalog/newElement/remoteApi.js","api/catalog/newElement/sagas.js","api/catalog/element/remoteApi.js","api/catalog/element/sagas.js","infrastructure/helpers/metaTypes.js","api/catalog/changeElementType/remoteApi.js","api/catalog/changeElementType/sagas.js","api/catalog/deleteElement/remoteApi.js","api/catalog/sagaHelpers.js","api/catalog/deleteElement/sagas.js","api/catalog/copyElement/remoteApi.js","api/catalog/copyElement/sagas.js","api/catalog/changeElementId/remoteApi.js","api/catalog/changeElementId/sagas.js","api/catalog/elementActivationOptions/remoteApi.js","api/catalog/elementActivationOptions/sagas.js","api/media/remoteApi.js","api/media/sagas.js","api/cms/cmsTree/remoteApi.js","api/cms/cmsTree/sagas.js","api/userManagement/userManagementTree/remoteApi.js","api/userManagement/userManagementTree/sagas.js","api/userManagement/newElement/remoteApi.js","api/userManagement/newElement/sagas.js","api/userManagement/element/remoteApi.js","api/userManagement/element/sagas.js","api/userManagement/changeElementType/remoteApi.js","api/userManagement/changeElementType/sagas.js","api/userManagement/deleteElement/remoteApi.js","api/userManagement/sagaHelpers.js","api/userManagement/deleteElement/sagas.js","api/userManagement/copyElement/remoteApi.js","api/userManagement/copyElement/sagas.js","api/userManagement/changeElementId/remoteApi.js","api/userManagement/changeElementId/sagas.js","api/userManagement/changeUserEmail/remoteApi.js","api/userManagement/changeUserEmail/sagas.js","api/userManagement/elementActivationOptions/remoteApi.js","api/userManagement/elementActivationOptions/sagas.js","api/search/remoteApi.js","api/search/sagas.js","api/userManagement/passwordUpdate/remoteApi.js","api/userManagement/passwordUpdate/sagas.js","api/actions/remoteApi.js","api/actions/sagas.js","api/configuration/actions.js","api/configuration/remoteApi.js","api/configuration/sagas.js","api/dataManagement/remoteApi.js","api/dataManagement/sagas.js","api/propertyValueSuggestions/remoteApi.js","api/propertyValueSuggestions/sagas.js","store/rootSaga.js","infrastructure/errorHandling/errorCodes.js","infrastructure/errorHandling/errorHandler.js","general/Main/index.js","clientData.js","index.js","store/configureStore.js","store/globalActions.js","api/userManagement/passwordUpdate/actionTypes.js","api/media/actionTypes.js","api/catalog/element/actions.js","api/search/actions.js","api/layout/actionTypes.js","api/actions/actionTypes.js","api/languageManagement/actions.js","api/dataManagement/actionTypes.js","api/propertyValueSuggestions/actionTypes.js","infrastructure/templates/templatesEngine.js"],"names":["loginUser","userName","password","successRedirect","type","actionTypes","startUserLogin","finishUserLogin","userAuthenticationSucceeded","userAuthenticationFailed","logoutUser","startUserLogout","finishUserLogout","fetchAvailableTypesForParentMetaType","metaTypeName","startFetchingAvailableTypesForParentMetaType","initAvailableTypesForParentMetaType","types","finishFetchingAvailableTypesForParentMetaType","createNewElement","newElementData","currentElement","elementArea","startCreatingNewElement","finishCreatingNewElement","openNewElementModal","closeNewElementModal","toggleNewElementModal","cleanNewElementModal","RAISE_MESSAGE","CLEAR_MESSAGE","RAISE_ERROR","CLEAR_ERROR","validatorTypeFactories","message","value","undefined","test","maxLengthMessage","replace","length","additionalProperties","allValues","matchingParameter","regex","minValue","minLengthMessage","Object","values","some","val","validators","validatorFactory","validatorType","validatorTypeFactory","key","keys","join","validatorTypes","VALIDATOR_TYPE_REQUIRED","ID_ALLOWED_CHARACTERS","MAX_LENGTH_200","PROPERTIES_MATCH","REGEX_VALIDATION","MIN_LENGTH_VALIDATION","AT_LAST_ONE_CHECKBOX_REQUIRED","FormInput","input","label","meta","error","warning","touched","invalid","valid","rest","Input","FormFeedback","FormCustomInput","className","CustomInput","Dropdown","displayName","ResourcesProvider","resources","this","props","children","React","Component","childContextTypes","PropTypes","shape","connect","state","layout","layoutInfo","withResources","Child","context","contextTypes","getIsFetchingState","catalog","productTree","isFetching","getIsFetchingWholeTreeState","isFetchingWholeTree","getTreeState","tree","getTreeConfig","config","getThreeDotsActions","treeConfig","elementType","elementMetaType","foundAction","actions","find","a","toLowerCase","actionPlacements","getElementParents","elementId","filter","x","nodeName","map","parentName","parentMetaTypeName","userManagement","userManagementTree","fetchLayoutInfo","startFetchingLayoutInfo","finishFetchingLayoutInfo","initLayoutInfo","setSelectedLanguages","selectedLanguage","openExportElementModal","closeExportElementModal","toggleExportElementModal","initAvailableExportDefinitions","exportDefinitions","fetchAvailableExportDefinitions","addNewExportJob","exportDefinition","startAddingNewExportJob","finishAddingNewExportJob","deleteElement","deletionMethod","startDeleteElement","finishDeleteElement","openDeleteElementModal","closeDeleteElementModal","toggleDeleteElementModal","cleanDeleteElementModal","copyElement","copyOption","newElementId","startCopyElement","finishCopyElement","openCopyElementModal","closeCopyElementModal","toggleCopyElementModal","cleanCopyElementModal","changeElementId","startChangingElementId","finishChangingElementId","openChangeElementIdModal","closeChangeElementIdModal","toggleChangeElementIdModal","cleanChangeElementIdModal","updateActivationOptions","activationOptions","openingSource","startUpdatingActivationOptions","finishUpdatingActivationOptions","openActivationOptionsModal","closeActivationOptionsModal","toggleActivationOptionsModal","cleanActivationOptionsModal","changeUserEmail","newUserEmail","startChangingUserEmail","finishChangingUserEmail","openChangeUserEmailModal","closeChangeUserEmailModal","toggleChangeUserEmailModal","cleanChangeUserEmailModal","getUserData","user","data","getAuthenticationFailed","login","authenticationFailed","getIsAuthenticating","isAuthenticating","getLoginPath","localized","window","clientData","currentLanguage","encodeURIComponent","location","pathname","search","convertStringToBool","passwordValidationRegex","emailValidationRegex","generateRandomPassword","generator","generate","min","max","Math","floor","random","symbols","lowercase","uppercase","numbers","strict","getStringWithReplacedSpecialChars","getResourceByName","resourceName","cms","cmsTree","getCmsTreeState","getCmsTreeConfig","fetchActions","initActions","runAction","actionToRun","startRunAction","finishRunAction","startFetchingAllExports","finishFetchingAllExports","fetchAllExports","initAllExports","startFetchingFieldSuggestions","finishFetchingFieldSuggestions","initFieldSuggestions","metatypeName","propertyName","searchPhrase","suggestions","fetchFieldSuggestions","query","raiseMessage","messageType","raiseError","errorCode","push","startsWith","routerPush","setUserData","clearUserData","fetchAvailableTypes","initAvailableTypes","updateElementType","newElementType","openChangeTypeModal","closeChangeTypeModal","toggleChangeTypeModal","openPasswordUpdateModal","togglePasswordUpdateModal","startUpdatingPassword","finishUpdatingPassword","updatePassword","newPassword","ERROR_MESSAGE_TYPE","INFO_MESSAGE_TYPE","SUCCESS_MESSAGE_TYPE","clearMessage","FETCH_TREE_ELEMENTS","START_FETCHING_TREE_ELEMENTS","FINISH_FETCHING_TREE_ELEMENTS","INIT_TREE_ELEMENTS","EXPAND_TREE_ELEMENT","COLLAPSE_TREE_ELEMENT","REFRESH_TREE_ELEMENT","START_REFRESHING_TREE_ELEMENTS","FINISH_REFRESHING_TREE_ELEMENTS","INIT_REFRESHING_TREE_ELEMENTS","CHANGE_ELEMENT_ID_IN_TREE","FETCH_TREE_CONFIG","START_FETCHING_TREE_CONFIG","FINISH_FETCHING_TREE_CONFIG","INIT_TREE_CONFIG","FETCH_CMS_TREE_ELEMENTS","START_FETCHING_CMS_TREE_ELEMENTS","FINISH_FETCHING_CMS_TREE_ELEMENTS","INIT_CMS_TREE_ELEMENTS","EXPAND_CMS_TREE_ELEMENT","COLLAPSE_CMS_TREE_ELEMENT","REFRESH_CMS_TREE_ELEMENT","START_REFRESHING_CMS_TREE_ELEMENTS","FINISH_REFRESHING_CMS_TREE_ELEMENTS","INIT_REFRESHING_CMS_TREE_ELEMENTS","CHANGE_ELEMENT_CMS_ID_IN_TREE","FETCH_CMS_TREE_CONFIG","START_FETCHING_CMS_TREE_CONFIG","FINISH_FETCHING_CMS_TREE_CONFIG","INIT_CMS_TREE_CONFIG","getSearchTerm","languageManagement","searchTerm","getAllElements","getIsFetchingElements","isFetchingElements","getExport","export","templatesEngine","registerTemplates","getTemplates","PageTitle","PageTitleInner","appMainComponents","enablePageTitleIcon","ThemeOptions","enablePageTitleSubheading","dispatch","LoginForm","handleSubmit","useState","isPasswordHidden","setIsPasswordHidden","requiredEmail","emailRequiredText","requiredPassword","passwordRequiredText","onSubmit","Alert","color","wrongAuthenticationText","Row","form","Col","md","FormGroup","Label","for","emailText","Field","component","name","id","placeholder","emailPlaceholderText","required","validate","passwordText","onClick","icon","faEye","faEyeSlash","Button","disabled","loginText","ownProps","formValues","email","redirectUrl","reduxForm","LoginPanel","URLSearchParams","get","lg","sm","welcomeText","signInRequestText","LoginPage","loginPageComponents","LoginFormInner","LoginPageInner","registerDefaultComponents","LoaderElement","fallback","PrivateRoute","isAuthenticated","Redirect","to","tools","Route","propTypes","bool","isRequired","MainAppPanes","lazy","AppMain","Switch","path","render","withRouter","FETCH_SEARCH_RESULTS","START_FETCHING_SEARCH_RESULTS","FINISH_FETCHING_SEARCH_RESULTS","INIT_SEARCH_RESULTS","TOGGLE_SEARCH_ELEMENT_SELECTION","CLEAR_SEARCH_RESULTS","CHANGE_SEARCH_PHRASE","INIT_SEARCH_PHRASE","START_FETCHING_SEARCH_SUGGESTIONS","INIT_SEARCH_SUGGESTIONS","FINISH_FETCHING_SEARCH_SUGGESTIONS","FETCH_PREDEFINED_SEARCH_RESULTS","FETCH_PREDEFINED_SEARCH_OPTIONS","INIT_PREDEFINED_SEARCH_OPTIONS","SET_PAGINATION","getLayoutInfoMenuState","menu","getLanguagesState","languages","getResourcesState","getCurrentLanguage","l","isActive","getFormattingCulture","formattingCulture","getSupportedTranslations","supportedTranslations","getMessagePlaceholder","messagePlaceholder","START_FETCHING_SEARCH_TERM","FINISH_FETCHING_SEARCH_TERM","FETCH_SEARCH_TERM","INIT_SEARCH_TERM_DATA","INIT_SEARCH_TERM","START_FETCHING_ALL_ELEMENTS","FINISH_FETCHING_ALL_ELEMENTS","FETCH_ALL_ELEMENTS","INIT_ALL_ELEMENTS","START_FETCHING_EXPORT","FINISH_FETCHING_EXPORT","FETCH_EXPORT","INIT_EXPORT","UPDATE_RESOURCE","fetchFileNamesInfo","fileNames","startFetchingFileNamesInfo","finishFetchingFileNamesInfo","initFileNamesInfo","fileNamesInfo","startFetchingMediaElements","fetchMediaElements","finishFetchingMediaElements","initMediaElements","elements","isPrependingMedia","loadMoreMediaElements","initMediaFilters","filterExtensions","toggleMediaElementSelection","elementName","selectionMode","fetchMediaData","startFetchingMediaData","finishFetchingMediaData","initMediaData","elementData","fetchMediaConfiguration","startFetchingMediaConfiguration","finishFetchingMediaConfiguration","initMediaConfiguration","mediaConfigurationData","saveMediaFormData","formName","startSavingMediaData","finishSavingMediaData","deleteMediaElements","requestData","startDeleteMediaElements","finishDeleteMediaElements","fetchMediaInfos","files","startFetchingMediaInfos","finishFetchingMediaInfos","initMediaInfos","mediaInfos","fetchAttachmentAssociations","startFetchingAttachmentAssociations","finishFetchingAttachmentAssociations","initAttachmentAssociations","attachmentAssociations","fetchSupportedExtensions","startFetchingSupportedExtensions","finishFetchingSupportedExtensions","initSupportedExtensions","supportedExtensions","FETCH_AVAILABLE_TYPES_FOR_PARENT_METATYPE","START_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE","INIT_AVAILABLE_TYPES_FOR_PARENT_METATYPE","FINISH_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE","CREATE_NEW_ELEMENT","START_CREATING_NEW_ELEMENT","FINISH_CREATING_NEW_ELEMENT","OPEN_NEW_ELEMENT_MODAL","CLOSE_NEW_ELEMENT_MODAL","TOGGLE_NEW_ELEMENT_MODAL","CLEAN_NEW_ELEMENT_MODAL","getFieldSuggestions","element","propertyData","suggestionsElements","getIsFetchingFieldSuggestions","isFetchingSuggestions","getFieldElementData","myArray","heading","subheading","cx","START_FETCHING_ELEMENT_DATA","FINISH_FETCHING_ELEMENT_DATA","INIT_ELEMENT_DATA","FETCH_ELEMENT_DATA","FETCH_ELEMENT_CONFIGURATION","START_FETCHING_ELEMENT_CONFIGURATION","FINISH_FETCHING_ELEMENT_CONFIGURATION","INIT_ELEMENT_CONFIGURATION","START_SAVING_ELEMENT_DATA","FINISH_SAVING_ELEMENT_DATA","SAVE_ELEMENT_FORM_DATA","module","exports","START_USER_LOGIN","FINISH_USER_LOGIN","LOGIN_USER","USER_AUTHENTICATION_SUCCEEDED","USER_AUTHENTICATION_FAILED","LOGOUT_USER","START_USER_LOGOUT","FINISH_USER_LOGOUT","SHOW_ACTIVATE_SUCCESS_MESSAGE","SET_USER_DATA","CLEAR_USER_DATA","OPEN_EXPORT_ELEMENT_MODAL","CLOSE_EXPORT_ELEMENT_MODAL","TOGGLE_EXPORT_ELEMENT_MODAL","CLEAN_EXPORT_ELEMENT_MODAL","FETCH_AVAILABLE_EXPORT_DEFINITIONS","INIT_AVAILABLE_EXPORT_DEFINITIONS","ADD_NEW_EXPORT_JOB","START_ADDING_EXPORT_ELEMENT","FINISH_ADDING_EXPORT_ELEMENT","fetchTreeElements","rootKey","startFetchingTreeElements","currentNode","finishFetchingTreeElements","initTreeElements","expandTreeElement","needsAddingNewElements","collapseTreeElement","refreshTreeElement","nodeType","startRefreshingElements","initRefreshingTreeElements","changeElementIdInTree","currentElementId","fetchTreeConfig","startFetchingTreeConfig","finishFetchingTreeConfig","initTreeConfig","Http","headers","Accept","dataType","parameters","queryString","reduce","prev","current","currentValue","Array","isArray","prevElement","route","params","routeWithParams","createQueryString","xhr","verb","options","method","credentials","body","JSON","stringify","token","authenticationContext","getToken","Authorization","fetch","then","resp","ok","status","json","errorJson","catch","toMinutes","miliseconds","getLastCall","storedLastCall","localStorage","getItem","Date","sessionExpired","jwtToken","lastCallDate","sessionLength","jwt","jwtDecode","expirationDate","setUTCSeconds","exp","setToken","setItem","removeToken","removeItem","shouldRefreshToken","minutesToExpiration","setLastCall","dateTime","removeLastCall","getUserTokenData","firstName","lastName","requiresPasswordChange","userLanguage","fetchCmsTreeElements","startFetchingCmsTreeElements","finishFetchingCmsTreeElements","initCmsTreeElements","expandCmsTreeElement","collapseCmsTreeElement","refreshCmsTreeElement","startRefreshingCmsTreeElements","initRefreshingCmsTreeElements","fetchCmsTreeConfig","startFetchingCmsTreeConfig","finishFetchingCmsTreeConfig","initCmsTreeConfig","SET_ENABLE_BACKGROUND_IMAGE","SET_ENABLE_MOBILE_MENU","SET_ENABLE_MOBILE_MENU_SMALL","SET_ENABLE_FIXED_HEADER","SET_ENABLE_HEADER_SHADOW","SET_ENABLE_SIDEBAR_SHADOW","SET_ENABLE_FIXED_SIDEBAR","SET_ENABLE_CLOSED_SIDEBAR","SET_ENABLE_FIXED_FOOTER","SET_ENABLE_PAGETITLE_ICON","SET_ENABLE_PAGETITLE_SUBHEADING","SET_ENABLE_PAGE_TABS_ALT","SET_BACKGROUND_IMAGE","SET_BACKGROUND_COLOR","SET_COLOR_SCHEME","SET_BACKGROUND_IMAGE_OPACITY","SET_HEADER_BACKGROUND_COLOR","DELETE_ELEMENT","START_DELETING_ELEMENT","FINISH_DELETING_ELEMENT","OPEN_DELETE_ELEMENT_MODAL","CLOSE_DELETE_ELEMENT_MODAL","TOGGLE_DELETE_ELEMENT_MODAL","CLEAN_DELETE_ELEMENT_MODAL","COPY_ELEMENT","START_COPYING_ELEMENT","FINISH_COPYING_ELEMENT","OPEN_COPY_ELEMENT_MODAL","CLOSE_COPY_ELEMENT_MODAL","TOGGLE_COPY_ELEMENT_MODAL","CLEAN_COPY_ELEMENT_MODAL","FETCH_AVAILABLE_TYPES","START_FETCHING_AVAILABLE_TYPES","INIT_AVAILABLE_TYPES","FINISH_FETCHING_AVAILABLE_TYPES","UPDATE_ELEMENT_TYPE","OPEN_CHANGE_TYPE_MODAL","CLOSE_CHANGE_TYPE_MODAL","TOGGLE_CHANGE_TYPE_MODAL","CHANGE_ELEMENT_ID","START_CHANGING_ELEMENT_ID","FINISH_CHANGING_ELEMENT_ID","OPEN_CHANGE_ELEMENT_ID_MODAL","CLOSE_CHANGE_ELEMENT_ID_MODAL","TOGGLE_CHANGE_ELEMENT_ID_MODAL","CLEAN_CHANGE_ELEMENT_ID_MODAL","UPDATE_ACTIVATION_OPTIONS","START_UPDATING_ACTIVATION_OPTIONS","FINISH_UPDATING_ACTIVATION_OPTIONS","OPEN_UPDATING_ACTIVATION_OPTIONS_MODAL","CLOSE_UPDATING_ACTIVATION_OPTIONS_MODAL","TOGGLE_UPDATING_ACTIVATION_OPTIONS_MODAL","CLEAN_UPDATING_ACTIVATION_OPTIONS_MODAL","CHANGE_USER_EMAIL","START_CHANGING_USER_EMAIL","FINISH_CHANGING_USER_EMAIL","OPEN_CHANGE_USER_EMAIL_MODAL","CLOSE_CHANGE_USER_EMAIL_MODAL","TOGGLE_CHANGE_USER_EMAIL_MODAL","CLEAN_CHANGE_USER_EMAIL_MODAL","fetchElementData","startFetchingElementData","finishFetchingElementData","initElementData","fetchElementConfiguration","startFetchingElementConfiguration","finishFetchingElementConfiguration","initElementConfiguration","elementConfigurationData","saveElementFormData","startSavingElementData","finishSavingElementData","themeOptionsReducer","backgroundColor","headerBackgroundColor","enableMobileMenuSmall","enableBackgroundImage","enableClosedSidebar","enableFixedHeader","enableHeaderShadow","enableSidebarShadow","enableFixedFooter","enableFixedSidebar","colorScheme","backgroundImage","sideBar6","backgroundImageOpacity","enablePageTabsAlt","action","enableMobileMenu","show","messages","infrastructure","image","configuration","isLoggingOut","associationGroups","startDate","endDate","isFetchingData","isSavingData","elementTypeConfiguration","metaType","typeName","sections","properties","isFetchingConfigurationData","isRefreshing","isConfig","newElement","availableTypes","isFetchingAvailableTypes","isCreatingNewElement","isModalOpen","isDeletingElement","isCopyingElement","changeElementType","isChangingElementId","exportElement","isAddingExport","availableExportDefinitions","isUpdatingActivationOptions","media","elementsData","medias","totalCount","pageIndex","isSaving","isFetchingAssociations","uploadFiles","namesInfo","deleteMediaElement","newMedias","extensions","isFetchingSearchTermData","isFetchingExport","dataManagement","exportData","isFetchingExports","isChangingUserEmail","passwordUpdate","isUpdatingPassword","searchResults","searchElements","modifiedElements","searchSuggestions","predefinedSearch","searchType","predefinedSearchOptions","pageSize","headingKey","subheadingKey","layoutReducer","defaultStore","messagePlaceholderReducer","messageCode","index","indexOf","newMessages","splice","getFetchedElementWithPath","preexistingElements","e","isExpanded","pE","expanded","title","isDirectory","childrenCount","parent","getStubElements","preexisitingElements","d","parentKey","subtitle","getTreeWithFetchingNode","newTree","_","cloneDeep","nodePath","currentNodeId","findIndex","getTreeWithExpandedNode","catalogReducer","combineReducers","stubElements","fetchedElements","expandStubElements","expandFetchedElements","newTreeWithoutLoadingChildren","refreshingNodes","refreshingNodeIds","refreshResults","refreshingNode","refreshedStubElements","refreshedFetchedElements","refreshedElementIds","flat","newTreeWithoutNodeChildren","includes","newTreeWithoutIdDuplicates","expandedNodes","expandedNodeNames","newTreeWithoutObsoleteStubs","isFetchingConfig","userReducer","mediaReducer","mediaElement","selected","isFetchingNamesInfo","isFetchingSupportedExtensions","cmsReducer","userManagementReducer","searchReducer","existingElement","languageManagementReducer","dataManagementReducer","actionReducer","entries","entry","isEnabled","configurationReducer","propertyValueSuggestionsReducer","rootReducer","history","router","connectRouter","formReducer","authenticateUser","post","refreshToken","i","guardedGenerator","apiCall","redirectToDifferentCulture","errorHandler","result","select","put","call","messageTypes","errorMessage","console","log","guardedTakeEvery","actionType","generatorFn","takeEvery","inner","userTokenData","newCulture","newUrl","href","getLayoutApi","getLayoutInfo","watchFetchLayoutInfo","watchLoginUser","performLogout","watchLogoutUser","isFullRedirect","authenticateUserApi","authenticationResult","isBadRequest","userCulture","logoutUserApi","getTreeElementsApi","http","fetchTreeConfigApi","getTreeElements","watchFetchTreeElements","getRefreshedTree","refreshTreeElements","watchRefreshTreeElements","fetchTreeConfigFromApi","watchFetchTreeConfig","refresh","getOnlineTranslationApi","getSearchTermApi","getExportDataApi","exportValues","updateResourceApi","lang","showFile","base64FileContent","filename","newBlob","b64toBlob","navigator","msSaveOrOpenBlob","URL","createObjectURL","link","document","createElement","target","download","appendChild","click","setTimeout","removeChild","revokeObjectURL","fetchAllElementsFromApi","fetchAllElements","watchFetchAllElements","fetchSearchTermElementsFromApi","fetchSearchTermData","watchFetchSearchTermData","fetchExportFromApi","fetchExport","watchFetchExport","updateResource","updateResourceAction","watchUpdateResource","bytes","fileName","fileType","fetchAvailableExportDefinitionsApi","createNewExportJob","requestBody","fetchAvailableExportDefinitionsFromApi","watchFetchAvailableExportDefinitions","addNewExportJobProcess","watchAddNewExportJob","addNewExportJobBody","elementMetaTypeName","fetchAvailableTypesForParentMetaTypeFromApi","watchFetchAvailableTypesForParentMetaType","createNewElementInApi","watchCreateNewElement","fetchAvailableTypesForParentMetaTypeApi","parentData","parentElementId","createNewElementApi","rootConfig","catalogTreeConfiguration","topElementName","cmsTreeConfiguration","getElementDataApi","getElementConfigurationApi","saveElementDataApi","formData","elementNotFound","getElementDataInApi","getElementData","watchFetchElementData","getElementConfiguration","watchFetchElementConfiguration","saveElementDataApiCall","watchSaveElementFormData","404","getFormInitialValues","initialValues","delta","diff","associationsDelta","associations","propertiesData","saveElement_SuccessMessage","isMetaTypeCategory","isMetaTypeArticle","isMetaTypeUser","isMetaTypeRole","fetchAvailableTypesApi","updateArticleTypeApi","patch","updateCategoryTypeApi","fetchAvailableTypesFromApi","watchFetchAvailableTypes","updateElementTypeInApi","watchUpdateElementType","changeElementTypeRequestBody","newElementTypeId","changeElementType_SuccessMessage","deleteElementArticle","articleName","deleteElementData","uri","delete","deleteElementCategory","categoryName","refreshCatalogCmsParents","catalogArea","getProductTreeElementParents","elementParents","elementParent","getCmsTreeElementParents","deleteElementInApi","watchDeleteElement","deleteElementCategoryApi","deleteElementArticleApi","deleteElement_SuccessMessage","sourceElementId","copyElementRequest","copyElementInApi","watchCopyElement","copyElementApi","copyElement_SuccessMessage","changeArticleIdApi","changeCategoryIdApi","changeElementIdInApi","watchChangeElementId","changeElementIdRequestBody","changeElementId_SuccessMessage","updateArticleActivationOptionsApi","updateCategoryActivationOptionsApi","updateActivationOptionsInApi","watchUpdateActivationOptions","updateElementActivationOptions_SuccessMessage","getMediaApi","getFileNamesInfoApi","getMediaDataApi","getMediaConfigurationApi","saveMediaDataApi","deleteMediaElementsApi","getMediaInfosApi","getAttachmentAssociationsApi","getSupportedExtensionsApi","getMediaElements","watchFetchMediaElements","getFileNamesInfo","watchFileNamesInfo","getMediaData","watchFetchMediaData","getMediaConfiguration","watchFetchMediaConfiguration","watchSaveMediaFormData","deleteMediaElementsInApi","watchDeleteMediaElement","getMediaInfos","watchMediaInfos","getAttachmentAssociations","watchFetchAttachmentAssociations","getSupportedExtensions","watchSupportedExtensions","mediaData","deleteMediaElementMessage","watchFetchCmsTreeElements","watchRefreshCmsTreeElements","watchFetchCmsTreeConfig","userManagementTreeConfiguration","getElementDataApiCall","updateUserTypeApi","updateRoleTypeApi","deleteElementUser","deleteElementRole","roleName","refreshUserRoleParents","changeUserIdApi","changeRoleIdApi","changeUserEmailApi","userId","changeUserEmailInApi","watchChangeUserEmail","changeUserEmailRequestBody","changeUserEmail_SuccessMessage","updateUserActivationOptionsApi","updateRoleActivationOptionsApi","getSearchResultsApi","searchRequest","getSearchSuggestionsApi","q","getPredefinedSearchResultsApi","getPredefinedSearchOptionsApi","getSearchResults","fetchSearchResults","watchFetchSearchResults","getPredefinedSearchResultsApiCall","fetchPredefinedSearchResults","watchPredefinedFetchSearchResults","getPredefinedSearchOptionsApiCall","fetchPredefinedSearchOptions","watchPredefinedFetchSearchOptions","getSearchSuggestions","changeSearchPhrase","watchChangeSearchPhrase","searchMetaTypes","sortInfo","searchLanguage","results","predefinedSearchId","updatePasswordApi","executePasswordUpdate","updatePasswordGenerator","watchUpdatePassword","fetchActionsApiCall","fetchActionsGenerator","watchFetchActions","runActionApiCall","runActionGenerator","watchRunAction","runActionSuccess","initConfiguration","getConfigurationApi","getConfiguration","fetchConfiguration","watchFetchConfiguration","getExportsApi","fetchAllExportsFromApi","watchFetchAllExports","t","p","getFieldSuggestionsApi","changeFieldSuggestions","watchChangeFieldSuggestions","rootSaga","all","watchFetchProductTreeElements","watchRefreshProductTreeElements","watchFetchProductTreeConfig","watchFetchAvailableCatalogTypesForParentMetaType","watchCreateNewCatalogElement","watchFetchCatalogElementData","watchFetchCatalogElementConfiguration","watchSaveCatalogElementFormData","watchFetchAvailableCatalogTypes","watchUpdateCatalogElementType","watchDeleteCatalogElement","watchCopyCatalogElement","watchChangeCatalogElementId","watchUpdateCatalogActivationOptions","watchFetchUserManagementTreeElements","watchRefreshUserManagementTreeElements","watchFetchUserManagementTreeConfig","watchFetchAvailableUserManagementTypesForParentMetaType","watchCreateNewUserManagementElement","watchDeleteUserManagementElement","watchCopyUserManagementElement","watchFetchUserManagementElementData","watchFetchUserManagementElementConfiguration","watchSaveUserManagementElementFormData","watchChangeUserManagementElementId","watchChangeUserManagementUserEmail","watchFetchAvailableUserManagementTypes","watchUpdateUserManagementElementType","watchUpdateUserManagementActivationOptions","Main","closedSmallerSidebar","handleWidth","width","supportedLanguages","en","de","fr","it","startupData","library","add","fal","far","fas","fad","initialClientData","urlSplit","split","supportedLanguage","substr","registerLocale","code","setDefaultLocale","setClientData","createBrowserHistory","store","sagaMiddleware","createSagaMiddleware","routerMiddleware","__REDUX_DEVTOOLS_EXTENSION__","compose","applyMiddleware","logger","reduxCatch","storeEnhancer","createStore","run","configureStore","dispatchGlobalActions","ReactDOM","DndProvider","backend","HTML5Backend","getElementById","OPEN_PASSWORD_UPDATE_MODAL","CLOSE_PASSWORD_UPDATE_MODAL","TOGGLE_PASSWORD_UPDATE_MODAL","UPDATE_PASSWORD","START_UPDATING_PASSWORD","FINISH_UPDATING_PASSWORD","FETCH_MEDIA_ELEMENTS","START_FETCHING_MEDIA_ELEMENTS","FINISH_FETCHING_MEDIA_ELEMENTS","INIT_MEDIA_ELEMENTS","LOAD_MORE_MEDIA","INIT_FILTERS","TOGGLE_MEDIA_ELEMENT_SELECTION","FETCH_FILE_NAMES_INFO","START_FETCHING_FILE_NAMES_INFO","FINISH_FETCHING_FILE_NAMES_INFO","INIT_FILE_NAMES_INFO","FETCH_MEDIA_DATA","FETCH_MEDIA_CONFIGURATION","START_FETCHING_MEDIA_CONFIGURATION","FINISH_FETCHING_MEDIA_CONFIGURATION","INIT_MEDIA_CONFIGURATION","START_SAVING_MEDIA_DATA","FINISH_SAVING_MEDIA_DATA","SAVE_MEDIA_FORM_DATA","START_FETCHING_MEDIA_DATA","FINISH_FETCHING_MEDIA_DATA","INIT_MEDIA_DATA","DELETE_MEDIA_ELEMENTS","START_DELETING_MEDIA_ELEMENTS","FINISH_DELETING_MEDIA_ELEMENTS","FETCH_MEDIA_INFOS","START_FETCHING_MEDIA_INFOS","FINISH_FETCHING_MEDIA_INFOS","INIT_MEDIA_INFOS","FETCH_ATTACHMENT_ASSOCIATIONS","START_FETCHING_ATTACHMENT_ASSOCIATIONS","FINISH_FETCHING_ATTACHMENT_ASSOCIATIONS","INIT_ATTACHMENT_ASSOCIATIONS","FETCH_SUPPORTED_EXTENSIONS","START_FETCHING_SUPPORTED_EXTENSIONS","FINISH_FETCHING_SUPPORTED_EXTENSIONS","INIT_SUPPORTED_EXTENSIONS","startFetchingSearchResults","finishFetchingSearchResults","initSearchResults","toggleSearchElementSelection","clearSearchResults","initSearchPhrase","startFetchingSearchSuggestions","initSearchSuggestions","finishFetchingSearchSuggestions","initPredefinedSearchOptions","setPagination","FETCH_LAYOUT_INFO","START_FETCHING_LAYOUT_INFO","FINISH_FETCHING_LAYOUT_INFO","INIT_LAYOUT_INFO","SET_SELECTED_LANGUAGES","FETCH_ACTIONS","INIT_ACTIONS","RUN_ACTION","START_RUN_ACTION","FINISH_RUN_ACTION","startFetchingSearchTermData","finishFetchingSearchTermData","initSearchTermData","initSearchTerm","startFetchingAllElements","finishFetchingAllElements","initAllElements","startFetchingExport","finishFetchingExport","START_FETCHING_ALL_EXPORTS","FINISH_FETCHING_ALL_EXPORTS","FETCH_ALL_EXPORTS","INIT_ALL_EXPORTS","START_FETCHING_FIELD_SUGGESTIONS","FINISH_FETCHING_FIELD_SUGGESTIONS","INIT_FIELD_SUGGESTIONS","FETCH_FIELD_SUGGESTIONS","templates","components","defaultTemplate","prepareTemplates","descriptors","acc","componentName","ArrayComponent","defaultProps","InnerComponent","createTemplate","mergeComponentsWithOverrides","defaultComponents","overrides","mergedComponents","registeredImplementations","impl","registerComponentsOverrides","dynamicRegisterComponents","templatesNew","forEach"],"mappings":"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","file":"static/js/main.77d4c312.chunk.js","sourcesContent":["import * as actionTypes from './actionTypes';\r\n\r\nexport const loginUser = (userName, password, successRedirect) => ({\r\n type: actionTypes.LOGIN_USER,\r\n userName,\r\n password,\r\n successRedirect\r\n});\r\nexport const startUserLogin = () => ({ type: actionTypes.START_USER_LOGIN });\r\nexport const finishUserLogin = () => ({ type: actionTypes.FINISH_USER_LOGIN });\r\nexport const userAuthenticationSucceeded = () => ({ type: actionTypes.USER_AUTHENTICATION_SUCCEEDED });\r\nexport const userAuthenticationFailed = () => ({ type: actionTypes.USER_AUTHENTICATION_FAILED });\r\nexport const logoutUser = () => ({ type: actionTypes.LOGOUT_USER });\r\nexport const startUserLogout = () => ({ type: actionTypes.START_USER_LOGOUT });\r\nexport const finishUserLogout = () => ({ type: actionTypes.FINISH_USER_LOGOUT });\r\nexport const showActivateSuccessMessageAction = () => ({ type: actionTypes.SHOW_ACTIVATE_SUCCESS_MESSAGE });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const fetchAvailableTypesForParentMetaType = (metaTypeName) => ({ type: actionTypes.FETCH_AVAILABLE_TYPES_FOR_PARENT_METATYPE, metaTypeName });\r\nexport const startFetchingAvailableTypesForParentMetaType = () => ({ type: actionTypes.START_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE });\r\nexport const initAvailableTypesForParentMetaType = (types) => ({ type: actionTypes.INIT_AVAILABLE_TYPES_FOR_PARENT_METATYPE, types });\r\nexport const finishFetchingAvailableTypesForParentMetaType = () => ({ type: actionTypes.FINISH_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE });\r\n\r\nexport const createNewElement = (newElementData, currentElement, elementArea) => ({ type: actionTypes.CREATE_NEW_ELEMENT, newElementData, currentElement, elementArea });\r\nexport const startCreatingNewElement = () => ({ type: actionTypes.START_CREATING_NEW_ELEMENT });\r\nexport const finishCreatingNewElement = () => ({ type: actionTypes.FINISH_CREATING_NEW_ELEMENT });\r\n\r\nexport const openNewElementModal = (currentElement) => ({ type: actionTypes.OPEN_NEW_ELEMENT_MODAL, currentElement });\r\nexport const closeNewElementModal = () => ({ type: actionTypes.CLOSE_NEW_ELEMENT_MODAL });\r\nexport const toggleNewElementModal = () => ({ type: actionTypes.TOGGLE_NEW_ELEMENT_MODAL });\r\nexport const cleanNewElementModal = () => ({ type: actionTypes.CLEAN_NEW_ELEMENT_MODAL });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const fetchAvailableTypesForParentMetaType = (metaTypeName) => ({ type: actionTypes.FETCH_AVAILABLE_TYPES_FOR_PARENT_METATYPE, metaTypeName });\r\nexport const startFetchingAvailableTypesForParentMetaType = () => ({ type: actionTypes.START_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE });\r\nexport const initAvailableTypesForParentMetaType = (types) => ({ type: actionTypes.INIT_AVAILABLE_TYPES_FOR_PARENT_METATYPE, types });\r\nexport const finishFetchingAvailableTypesForParentMetaType = () => ({ type: actionTypes.FINISH_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE });\r\n\r\nexport const createNewElement = (newElementData, currentElement, elementArea) => ({ type: actionTypes.CREATE_NEW_ELEMENT, newElementData, currentElement, elementArea });\r\nexport const startCreatingNewElement = () => ({ type: actionTypes.START_CREATING_NEW_ELEMENT });\r\nexport const finishCreatingNewElement = () => ({ type: actionTypes.FINISH_CREATING_NEW_ELEMENT });\r\n\r\nexport const openNewElementModal = (currentElement) => ({ type: actionTypes.OPEN_NEW_ELEMENT_MODAL, currentElement });\r\nexport const closeNewElementModal = () => ({ type: actionTypes.CLOSE_NEW_ELEMENT_MODAL });\r\nexport const toggleNewElementModal = () => ({ type: actionTypes.TOGGLE_NEW_ELEMENT_MODAL });\r\nexport const cleanNewElementModal = () => ({ type: actionTypes.CLEAN_NEW_ELEMENT_MODAL });\r\n","export const RAISE_MESSAGE = 'RAISE_MESSAGE';\r\nexport const CLEAR_MESSAGE = 'CLEAR_MESSAGE';\r\nexport const RAISE_ERROR = 'RAISE_ERROR';\r\nexport const CLEAR_ERROR = 'CLEAR_ERROR';\r\n\r\nexport const SET_USER_DATA = 'SET_USER_DATA';\r\nexport const CLEAR_USER_DATA = 'CLEAR_USER_DATA';\r\nexport const ADDRESSES_CHANGED = 'ADDRESSES_CHANGED';\r\n","const requiredTypeFactory = (message) => (value) => (value ? undefined : message);\r\n\r\nconst requiredAtLeastOneCheckbox = (message) => (value) => (value && Object.values(value).some((val) => val === true) ? undefined : message);\r\n\r\nconst properitesMatch = (message, additionalProperties) => (value, allValues) => (value !== allValues[additionalProperties.matchingParameter] ? message : undefined);\r\n\r\nconst minLentgh = (message, additionalProperties) => (value) => {\r\n const { minValue } = additionalProperties;\r\n const minLengthMessage = message?.replace(/{MIN}/i, minValue);\r\n return (value && value.length < minValue ? minLengthMessage : undefined);\r\n};\r\n\r\nconst regexValidation = (message, additionalProperties) => (value) => {\r\n const { regex } = additionalProperties;\r\n return regex.test(value)\r\n ? undefined\r\n : message;\r\n};\r\n\r\nconst idAllowedCharactersFactory = (message) => (value) => {\r\n const regex = /^([a-zA-Z0-9_.@-]+)$/;\r\n return regex.test(value)\r\n ? undefined\r\n : message;\r\n};\r\n\r\nconst maxLength200 = (message) => (value) => {\r\n const maxLengthMessage = message?.replace(/{MAX}/i, 200);\r\n return (value && value.length > 200 ? maxLengthMessage : undefined);\r\n};\r\n\r\nconst VALIDATOR_TYPE_REQUIRED = 'required';\r\nconst ID_ALLOWED_CHARACTERS = 'id-allowed-characters';\r\nconst MAX_LENGTH_200 = 'max-length-200';\r\nconst PROPERTIES_MATCH = 'properitesMatch';\r\nconst REGEX_VALIDATION = 'regexValidation';\r\nconst MIN_LENGTH_VALIDATION = 'minLengthValidation';\r\nconst AT_LAST_ONE_CHECKBOX_REQUIRED = 'atLeastOneCheckboxRequired';\r\n\r\nconst validatorTypeFactories = {\r\n [VALIDATOR_TYPE_REQUIRED]: requiredTypeFactory,\r\n [ID_ALLOWED_CHARACTERS]: idAllowedCharactersFactory,\r\n [MAX_LENGTH_200]: maxLength200,\r\n [PROPERTIES_MATCH]: properitesMatch,\r\n [REGEX_VALIDATION]: regexValidation,\r\n [MIN_LENGTH_VALIDATION]: minLentgh,\r\n [AT_LAST_ONE_CHECKBOX_REQUIRED]: requiredAtLeastOneCheckbox\r\n};\r\n\r\nconst validators = {};\r\nexport const validatorFactory = (message, validatorType, additionalProperties) => {\r\n const validatorTypeFactory = validatorTypeFactories[validatorType];\r\n if (validatorTypeFactory) {\r\n let key = `${validatorType}_${message}`;\r\n if (additionalProperties) {\r\n key = `${key}_${Object.keys(additionalProperties).join('_')}_${Object.values(additionalProperties).join('_')}`;\r\n }\r\n if (!validators[key]) {\r\n if (additionalProperties) {\r\n validators[key] = validatorTypeFactory(message, additionalProperties);\r\n } else {\r\n validators[key] = validatorTypeFactory(message);\r\n }\r\n }\r\n\r\n return validators[key];\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport const validatorTypes = {\r\n VALIDATOR_TYPE_REQUIRED,\r\n ID_ALLOWED_CHARACTERS,\r\n MAX_LENGTH_200,\r\n PROPERTIES_MATCH,\r\n REGEX_VALIDATION,\r\n MIN_LENGTH_VALIDATION,\r\n AT_LAST_ONE_CHECKBOX_REQUIRED\r\n};\r\n","import React from 'react';\r\nimport { Input, FormFeedback } from 'reactstrap';\r\n\r\nconst FormInput = ({\r\n input,\r\n label,\r\n meta: { error, warning, touched, invalid, valid },\r\n type,\r\n ...rest }) => {\r\n return (\r\n <>\r\n \r\n {touched && {error || warning}}\r\n \r\n );\r\n};\r\n\r\nexport default FormInput;\r\n","import React from 'react';\r\nimport { FormFeedback, CustomInput } from 'reactstrap';\r\n\r\nconst FormCustomInput = ({ input, meta: { error, warning, touched, invalid }, type, ...rest }) => (\r\n
\r\n \r\n {error || warning}\r\n
\r\n);\r\n\r\nexport default FormCustomInput;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { FormFeedback } from 'reactstrap';\r\nimport DropdownList from 'react-widgets/lib/DropdownList';\r\n\r\nconst Dropdown = ({ input, meta: { error, warning, touched, invalid, valid }, ...rest }) => (\r\n <>\r\n \r\n {touched && {error || warning}}\r\n \r\n);\r\n\r\nDropdown.displayName = 'Dropdown';\r\n\r\nDropdown.propTypes = {\r\n meta: PropTypes.shape({\r\n invalid: PropTypes.bool,\r\n error: PropTypes.string,\r\n warning: PropTypes.string,\r\n touched: PropTypes.bool,\r\n valid: PropTypes.bool,\r\n }).isRequired,\r\n input: PropTypes.shape({\r\n component: PropTypes.shape({}).isRequired,\r\n name: PropTypes.string.isRequired,\r\n id: PropTypes.string.isRequired,\r\n textField: PropTypes.string,\r\n valueField: PropTypes.string,\r\n groupComponent: PropTypes.string,\r\n groupBy: PropTypes.string,\r\n data: PropTypes.arrayOf.isRequired,\r\n onBlur: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nexport default Dropdown;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nclass ResourcesProvider extends React.Component {\r\n // eslint-disable-next-line react/static-property-placement\r\n static childContextTypes = {\r\n resources: PropTypes.shape({})\r\n }\r\n\r\n getChildContext() {\r\n // eslint-disable-next-line react/destructuring-assignment\r\n return { resources: this.props.resources };\r\n }\r\n\r\n render() {\r\n // eslint-disable-next-line react/destructuring-assignment\r\n return this.props.children;\r\n }\r\n}\r\n\r\nResourcesProvider.propTypes = {\r\n resources: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types\r\n children: PropTypes.node.isRequired\r\n};\r\n\r\nexport default ResourcesProvider;\r\n","import { connect } from 'react-redux';\r\nimport ResourcesProvider from './ResourcesProvider';\r\n\r\nconst mapStateToProps = (state) => ({\r\n resources: state.layout.layoutInfo.resources\r\n});\r\n\r\nexport default connect(mapStateToProps)(ResourcesProvider);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// eslint-disable-next-line react/prefer-stateless-function\r\nconst withResources = (Child) => class extends React.Component {\r\n // eslint-disable-next-line react/static-property-placement\r\n static displayName = `withResources(${Child.displayName})`;\r\n\r\n // eslint-disable-next-line react/static-property-placement\r\n static contextTypes = {\r\n resources: PropTypes.shape({})\r\n };\r\n\r\n render() {\r\n return ;\r\n }\r\n};\r\n\r\nexport default withResources;\r\n","export const getIsFetchingState = (state) => state.catalog.productTree.isFetching;\r\nexport const getIsFetchingWholeTreeState = (state) => state.catalog.productTree.isFetchingWholeTree;\r\nexport const getTreeState = (state) => state.catalog.productTree.tree;\r\nexport const getTreeConfig = (state) => state.catalog.productTree.config;\r\nexport const getThreeDotsActions = (treeConfig, elementType, elementMetaType) => {\r\n let foundAction = treeConfig.actions.find((a) => elementType && a.elementType.toLowerCase() === elementType.toLowerCase()\r\n && a.elementMetaType.toLowerCase() === elementMetaType.toLowerCase());\r\n\r\n if (!foundAction) {\r\n foundAction = treeConfig.actions.find((a) => a.elementType.toLowerCase() === 'default'\r\n && a.elementMetaType.toLowerCase() === 'default');\r\n }\r\n\r\n return foundAction.actionPlacements;\r\n};\r\nexport const getElementParents = (state, elementId) => state.catalog.productTree.tree\r\n .filter((x) => x.nodeName === elementId)\r\n .map((x) => ({ parentName: x.parentName, parentMetaTypeName: x.parentMetaTypeName }));\r\n","export const getIsFetchingState = (state) => state.userManagement.userManagementTree.isFetching;\r\nexport const getIsFetchingWholeTreeState = (state) => state.userManagement.userManagementTree.isFetchingWholeTree;\r\nexport const getTreeState = (state) => state.userManagement.userManagementTree.tree;\r\nexport const getTreeConfig = (state) => state.userManagement.userManagementTree.config;\r\nexport const getThreeDotsActions = (treeConfig, elementType, elementMetaType) => {\r\n let foundAction = treeConfig.actions.find((a) => a.elementType.toLowerCase() === elementType.toLowerCase()\r\n && a.elementMetaType.toLowerCase() === elementMetaType.toLowerCase());\r\n\r\n if (!foundAction) {\r\n foundAction = treeConfig.actions.find((a) => a.elementType.toLowerCase() === 'default'\r\n && a.elementMetaType.toLowerCase() === elementMetaType.toLowerCase());\r\n }\r\n\r\n if (!foundAction) {\r\n foundAction = treeConfig.actions.find((a) => a.elementType.toLowerCase() === 'default'\r\n && a.elementMetaType.toLowerCase() === 'default');\r\n }\r\n\r\n return foundAction.actionPlacements;\r\n};\r\n\r\nexport const getElementParents = (state, elementId) => state.userManagement.userManagementTree.tree\r\n .filter((x) => x.nodeName === elementId)\r\n .map((x) => ({ parentName: x.parentName, parentMetaTypeName: x.parentMetaTypeName }));\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const fetchLayoutInfo = () => ({ type: actionTypes.FETCH_LAYOUT_INFO });\r\nexport const startFetchingLayoutInfo = () => ({ type: actionTypes.START_FETCHING_LAYOUT_INFO });\r\nexport const finishFetchingLayoutInfo = () => ({ type: actionTypes.FINISH_FETCHING_LAYOUT_INFO });\r\nexport const initLayoutInfo = (layoutInfo) => ({ type: actionTypes.INIT_LAYOUT_INFO, layoutInfo });\r\nexport const setSelectedLanguages = (selectedLanguage) => ({ type: actionTypes.SET_SELECTED_LANGUAGES, selectedLanguage });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const openExportElementModal = (currentElement) => ({ type: actionTypes.OPEN_EXPORT_ELEMENT_MODAL, currentElement });\r\nexport const closeExportElementModal = () => ({ type: actionTypes.CLOSE_EXPORT_ELEMENT_MODAL });\r\nexport const toggleExportElementModal = () => ({ type: actionTypes.TOGGLE_EXPORT_ELEMENT_MODAL });\r\nexport const cleanExportElementModal = () => ({ type: actionTypes.CLEAN_EXPORT_ELEMENT_MODAL });\r\n\r\nexport const initAvailableExportDefinitions = (exportDefinitions) => ({ type: actionTypes.INIT_AVAILABLE_EXPORT_DEFINITIONS, exportDefinitions });\r\nexport const fetchAvailableExportDefinitions = () => ({ type: actionTypes.FETCH_AVAILABLE_EXPORT_DEFINITIONS });\r\nexport const addNewExportJob = (currentElement, elementMetaType, exportDefinition) => ({ type: actionTypes.ADD_NEW_EXPORT_JOB, currentElement, elementMetaType, exportDefinition });\r\nexport const startAddingNewExportJob = () => ({ type: actionTypes.START_ADDING_EXPORT_ELEMENT });\r\nexport const finishAddingNewExportJob = () => ({ type: actionTypes.FINISH_ADDING_EXPORT_ELEMENT });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const deleteElement = (currentElement, deletionMethod, elementArea) => ({ type: actionTypes.DELETE_ELEMENT, currentElement, deletionMethod, elementArea });\r\nexport const startDeleteElement = () => ({ type: actionTypes.START_DELETING_ELEMENT });\r\nexport const finishDeleteElement = () => ({ type: actionTypes.FINISH_DELETING_ELEMENT });\r\n\r\nexport const openDeleteElementModal = (currentElement) => ({ type: actionTypes.OPEN_DELETE_ELEMENT_MODAL, currentElement });\r\nexport const closeDeleteElementModal = () => ({ type: actionTypes.CLOSE_DELETE_ELEMENT_MODAL });\r\nexport const toggleDeleteElementModal = () => ({ type: actionTypes.TOGGLE_DELETE_ELEMENT_MODAL });\r\nexport const cleanDeleteElementModal = () => ({ type: actionTypes.CLEAN_DELETE_ELEMENT_MODAL });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const copyElement = (currentElement, copyOption, newElementId, elementArea) => ({ type: actionTypes.COPY_ELEMENT, currentElement, copyOption, newElementId, elementArea });\r\nexport const startCopyElement = () => ({ type: actionTypes.START_COPYING_ELEMENT });\r\nexport const finishCopyElement = () => ({ type: actionTypes.FINISH_COPYING_ELEMENT });\r\n\r\nexport const openCopyElementModal = (currentElement) => ({ type: actionTypes.OPEN_COPY_ELEMENT_MODAL, currentElement });\r\nexport const closeCopyElementModal = () => ({ type: actionTypes.CLOSE_COPY_ELEMENT_MODAL });\r\nexport const toggleCopyElementModal = () => ({ type: actionTypes.TOGGLE_COPY_ELEMENT_MODAL });\r\nexport const cleanCopyElementModal = () => ({ type: actionTypes.CLEAN_COPY_ELEMENT_MODAL });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const changeElementId = (currentElement, newElementId, elementArea) => ({ type: actionTypes.CHANGE_ELEMENT_ID, currentElement, newElementId, elementArea });\r\nexport const startChangingElementId = () => ({ type: actionTypes.START_CHANGING_ELEMENT_ID });\r\nexport const finishChangingElementId = () => ({ type: actionTypes.FINISH_CHANGING_ELEMENT_ID });\r\n\r\nexport const openChangeElementIdModal = (currentElement) => ({ type: actionTypes.OPEN_CHANGE_ELEMENT_ID_MODAL, currentElement });\r\nexport const closeChangeElementIdModal = () => ({ type: actionTypes.CLOSE_CHANGE_ELEMENT_ID_MODAL });\r\nexport const toggleChangeElementIdModal = () => ({ type: actionTypes.TOGGLE_CHANGE_ELEMENT_ID_MODAL });\r\nexport const cleanChangeElementIdModal = () => ({ type: actionTypes.CLEAN_CHANGE_ELEMENT_ID_MODAL });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const updateActivationOptions = (currentElement, activationOptions, elementArea, openingSource) => ({ type: actionTypes.UPDATE_ACTIVATION_OPTIONS, currentElement, activationOptions, elementArea, openingSource });\r\n\r\nexport const startUpdatingActivationOptions = () => ({ type: actionTypes.START_UPDATING_ACTIVATION_OPTIONS });\r\nexport const finishUpdatingActivationOptions = () => ({ type: actionTypes.FINISH_UPDATING_ACTIVATION_OPTIONS });\r\n\r\nexport const openActivationOptionsModal = (currentElement, openingSource) => ({ type: actionTypes.OPEN_UPDATING_ACTIVATION_OPTIONS_MODAL, currentElement, openingSource });\r\nexport const closeActivationOptionsModal = () => ({ type: actionTypes.CLOSE_UPDATING_ACTIVATION_OPTIONS_MODAL });\r\nexport const toggleActivationOptionsModal = () => ({ type: actionTypes.TOGGLE_UPDATING_ACTIVATION_OPTIONS_MODAL });\r\nexport const cleanActivationOptionsModal = () => ({ type: actionTypes.CLEAN_UPDATING_ACTIVATION_OPTIONS_MODAL });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const deleteElement = (currentElement, deletionMethod, elementArea) => ({ type: actionTypes.DELETE_ELEMENT, currentElement, deletionMethod, elementArea });\r\nexport const startDeleteElement = () => ({ type: actionTypes.START_DELETING_ELEMENT });\r\nexport const finishDeleteElement = () => ({ type: actionTypes.FINISH_DELETING_ELEMENT });\r\n\r\nexport const openDeleteElementModal = (currentElement) => ({ type: actionTypes.OPEN_DELETE_ELEMENT_MODAL, currentElement });\r\nexport const closeDeleteElementModal = () => ({ type: actionTypes.CLOSE_DELETE_ELEMENT_MODAL });\r\nexport const toggleDeleteElementModal = () => ({ type: actionTypes.TOGGLE_DELETE_ELEMENT_MODAL });\r\nexport const cleanDeleteElementModal = () => ({ type: actionTypes.CLEAN_DELETE_ELEMENT_MODAL });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const copyElement = (currentElement, copyOption, newElementId, elementArea) => ({ type: actionTypes.COPY_ELEMENT, currentElement, copyOption, newElementId, elementArea });\r\nexport const startCopyElement = () => ({ type: actionTypes.START_COPYING_ELEMENT });\r\nexport const finishCopyElement = () => ({ type: actionTypes.FINISH_COPYING_ELEMENT });\r\n\r\nexport const openCopyElementModal = (currentElement) => ({ type: actionTypes.OPEN_COPY_ELEMENT_MODAL, currentElement });\r\nexport const closeCopyElementModal = () => ({ type: actionTypes.CLOSE_COPY_ELEMENT_MODAL });\r\nexport const toggleCopyElementModal = () => ({ type: actionTypes.TOGGLE_COPY_ELEMENT_MODAL });\r\nexport const cleanCopyElementModal = () => ({ type: actionTypes.CLEAN_COPY_ELEMENT_MODAL });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const changeElementId = (currentElement, newElementId, elementArea) => ({ type: actionTypes.CHANGE_ELEMENT_ID, currentElement, newElementId, elementArea });\r\nexport const startChangingElementId = () => ({ type: actionTypes.START_CHANGING_ELEMENT_ID });\r\nexport const finishChangingElementId = () => ({ type: actionTypes.FINISH_CHANGING_ELEMENT_ID });\r\n\r\nexport const openChangeElementIdModal = (currentElement) => ({ type: actionTypes.OPEN_CHANGE_ELEMENT_ID_MODAL, currentElement });\r\nexport const closeChangeElementIdModal = () => ({ type: actionTypes.CLOSE_CHANGE_ELEMENT_ID_MODAL });\r\nexport const toggleChangeElementIdModal = () => ({ type: actionTypes.TOGGLE_CHANGE_ELEMENT_ID_MODAL });\r\nexport const cleanChangeElementIdModal = () => ({ type: actionTypes.CLEAN_CHANGE_ELEMENT_ID_MODAL });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const changeUserEmail = (currentElement, newUserEmail, elementArea) => ({ type: actionTypes.CHANGE_USER_EMAIL, currentElement, newUserEmail, elementArea });\r\nexport const startChangingUserEmail = () => ({ type: actionTypes.START_CHANGING_USER_EMAIL });\r\nexport const finishChangingUserEmail = () => ({ type: actionTypes.FINISH_CHANGING_USER_EMAIL });\r\n\r\nexport const openChangeUserEmailModal = (currentElement) => ({ type: actionTypes.OPEN_CHANGE_USER_EMAIL_MODAL, currentElement });\r\nexport const closeChangeUserEmailModal = () => ({ type: actionTypes.CLOSE_CHANGE_USER_EMAIL_MODAL });\r\nexport const toggleChangeUserEmailModal = () => ({ type: actionTypes.TOGGLE_CHANGE_USER_EMAIL_MODAL });\r\nexport const cleanChangeUserEmailModal = () => ({ type: actionTypes.CLEAN_CHANGE_USER_EMAIL_MODAL });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const updateActivationOptions = (currentElement, activationOptions, openingSource) => ({ type: actionTypes.UPDATE_ACTIVATION_OPTIONS, currentElement, activationOptions, openingSource });\r\n\r\nexport const startUpdatingActivationOptions = () => ({ type: actionTypes.START_UPDATING_ACTIVATION_OPTIONS });\r\nexport const finishUpdatingActivationOptions = () => ({ type: actionTypes.FINISH_UPDATING_ACTIVATION_OPTIONS });\r\n\r\nexport const openActivationOptionsModal = (currentElement, openingSource) => ({ type: actionTypes.OPEN_UPDATING_ACTIVATION_OPTIONS_MODAL, currentElement, openingSource });\r\nexport const closeActivationOptionsModal = () => ({ type: actionTypes.CLOSE_UPDATING_ACTIVATION_OPTIONS_MODAL });\r\nexport const toggleActivationOptionsModal = () => ({ type: actionTypes.TOGGLE_UPDATING_ACTIVATION_OPTIONS_MODAL });\r\nexport const cleanActivationOptionsModal = () => ({ type: actionTypes.CLEAN_UPDATING_ACTIVATION_OPTIONS_MODAL });\r\n","export const getUserData = (state) => state.user.data;\r\nexport const getAuthenticationFailed = (state) => state.user.login.authenticationFailed;\r\nexport const getIsAuthenticating = (state) => state.user.login.isAuthenticating;\r\n","import generator from 'generate-password';\r\n\r\nexport const getUniqueValuesFromArray = (array, byFunc) => {\r\n if (array === null) {\r\n return [];\r\n }\r\n // eslint-disable-next-line\r\n const objectWithUniqueKeys = array.reduce((result, next) => { result[byFunc(next)] = true; return result; }, {});\r\n return Object.keys(objectWithUniqueKeys);\r\n};\r\n\r\nexport const getUniqueObjectsFromArray = (array, byFunc) => array.filter((e, i) => array.findIndex((a) => byFunc(a) === byFunc(e)) === i);\r\n\r\nexport const notEmptyOrUndefined = (value) => value !== undefined && value !== '';\r\n\r\nexport const isNullOrUndefined = (value) => value === undefined || value === null;\r\n\r\nexport const isNullOrUndefinedOrEmpty = (value) => isNullOrUndefined(value) || value === '';\r\n\r\nexport const parseFloatWithServerDelimiter = (floatString) => (floatString !== undefined && floatString !== null ? parseFloat(floatString.replace(window.clientData.numberGroupSeparator, '').replace(window.clientData.decimalSeparator, '.')) : floatString);\r\n\r\nexport const getLoginPath = (localized = false) => `/${localized ? `${window.clientData.currentLanguage}/` : ''}login?successredirect=${encodeURIComponent(window.location.pathname + window.location.search)}`;\r\n\r\nexport const getLocalizedPath = (path) => `/${window.clientData.currentLanguage}/${path}`;\r\n\r\nexport const decimalFormat = (value, precision) => {\r\n if (value === null || value === '') {\r\n return '';\r\n }\r\n\r\n return precision !== undefined ? value.toFixed(precision).replace('.', window.clientData.decimalSeparator) : value.toString().replace('.', window.clientData.decimalSeparator);\r\n};\r\n\r\nconst formatters = [];\r\nexport const currencyFormat = (currency, currencyLocal, value) => {\r\n const currencyCurrencyLocal = `${currency}_${currencyLocal}`;\r\n let foundFormatter = formatters.find((formatter) => formatter.id === currencyCurrencyLocal);\r\n\r\n if (foundFormatter == null) {\r\n const newFormatter = { id: currencyCurrencyLocal, formatterObject: new Intl.NumberFormat(currencyLocal, { style: 'currency', currency }) };\r\n formatters.push(newFormatter);\r\n foundFormatter = newFormatter;\r\n }\r\n\r\n return foundFormatter.formatterObject.format(value).replace(currency, '');\r\n};\r\n\r\nexport const format = (...values) => {\r\n let theString = values[0];\r\n\r\n for (let i = 1; i < values.length; i += 1) {\r\n const regEx = new RegExp(`\\\\{${i - 1}\\\\}`, 'gm');\r\n theString = theString.replace(regEx, values[i]);\r\n }\r\n\r\n return theString;\r\n};\r\n\r\nexport const isWeekday = (date) => {\r\n const day = date.day();\r\n\r\n return day !== 0 && day !== 6;\r\n};\r\n\r\nexport const convertStringToBool = (value) => (value\r\n ? value.toLowerCase() === 'true'\r\n : false);\r\n\r\nexport const passwordValidationRegex = () => ({ regex: /(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\\d]){1,})(?=(.*[\\W]){1,})(?!.*\\s)/ });\r\n\r\nexport const emailValidationRegex = () => ({ regex: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/ });\r\n\r\nexport const randomIntFromInterval = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);\r\n\r\nexport const generateRandomPassword = () => generator.generate({\r\n length: randomIntFromInterval(8, 24),\r\n symbols: true,\r\n lowercase: true,\r\n uppercase: true,\r\n numbers: true,\r\n strict: true\r\n});\r\nexport const getStringWithReplacedSpecialChars = (value) => (value ? value.replace(/[^a-zA-Z0-9]/g, '_') : null);\r\n\r\nexport const getResourceByName = (resources, resourceName) => {\r\n if (resourceName) {\r\n if (resourceName in resources) {\r\n return resources[resourceName];\r\n }\r\n\r\n return resourceName;\r\n }\r\n\r\n return '';\r\n};\r\n","export const getIsFetchingState = (state) => state.cms.cmsTree.isFetching;\r\nexport const getIsFetchingWholeTreeState = (state) => state.cms.cmsTree.isFetchingWholeTree;\r\nexport const getCmsTreeState = (state) => state.cms.cmsTree.tree;\r\nexport const getCmsTreeConfig = (state) => state.cms.cmsTree.config;\r\nexport const getThreeDotsActions = (treeConfig, elementType, elementMetaType) => {\r\n let foundAction = treeConfig.actions.find((a) => a.elementType.toLowerCase() === elementType.toLowerCase()\r\n && a.elementMetaType.toLowerCase() === elementMetaType.toLowerCase());\r\n\r\n if (!foundAction) {\r\n foundAction = treeConfig.actions.find((a) => a.elementType.toLowerCase() === 'default'\r\n && a.elementMetaType.toLowerCase() === 'default');\r\n }\r\n\r\n return foundAction.actionPlacements;\r\n};\r\nexport const getElementParents = (state, elementId) => state.cms.cmsTree.tree\r\n .filter((x) => x.nodeName === elementId)\r\n .map((x) => ({ parentName: x.parentName, parentMetaTypeName: x.parentMetaTypeName }));\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const fetchActions = () => ({ type: actionTypes.FETCH_ACTIONS });\r\nexport const initActions = (actions) => ({ type: actionTypes.INIT_ACTIONS, actions });\r\nexport const runAction = (actionToRun) => ({ type: actionTypes.RUN_ACTION, actionToRun });\r\nexport const startRunAction = (actionToRun) => ({ type: actionTypes.START_RUN_ACTION, actionToRun });\r\nexport const finishRunAction = (actionToRun) => ({ type: actionTypes.FINISH_RUN_ACTION, actionToRun });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const startFetchingAllExports = () => ({ type: actionTypes.START_FETCHING_ALL_EXPORTS });\r\nexport const finishFetchingAllExports = () => ({ type: actionTypes.FINISH_FETCHING_ALL_EXPORTS });\r\nexport const fetchAllExports = () => ({ type: actionTypes.FETCH_ALL_EXPORTS });\r\nexport const initAllExports = (data) => ({ type: actionTypes.INIT_ALL_EXPORTS, data });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const startFetchingFieldSuggestions = () => ({ type: actionTypes.START_FETCHING_FIELD_SUGGESTIONS });\r\nexport const finishFetchingFieldSuggestions = () => ({ type: actionTypes.FINISH_FETCHING_FIELD_SUGGESTIONS });\r\nexport const initFieldSuggestions = (metatypeName, propertyName, searchPhrase, suggestions) => ({ type: actionTypes.INIT_FIELD_SUGGESTIONS, metatypeName, propertyName, searchPhrase, suggestions });\r\nexport const fetchFieldSuggestions = (metatypeName, propertyName, query) => ({ type: actionTypes.FETCH_FIELD_SUGGESTIONS, metatypeName, propertyName, query });\r\n","import { push as routerPush, replace as routerReplace } from 'react-router-redux';\r\nimport {\r\n RAISE_MESSAGE,\r\n CLEAR_MESSAGE,\r\n RAISE_ERROR,\r\n CLEAR_ERROR,\r\n SET_USER_DATA,\r\n CLEAR_USER_DATA,\r\n ADDRESSES_CHANGED\r\n} from './actionTypes';\r\n\r\nexport const raiseMessage = (messageType, message) => ({ type: RAISE_MESSAGE, messageType, message });\r\nexport const clearMessage = (message) => ({ type: CLEAR_MESSAGE, message });\r\nexport const raiseError = (errorCode) => ({ type: RAISE_ERROR, errorCode });\r\nexport const clearError = () => ({ type: CLEAR_ERROR });\r\n\r\nexport const push = (location) => {\r\n if (location.startsWith(`/${window.clientData.currentLanguage}`)) {\r\n return routerPush(location);\r\n }\r\n return routerPush(`/${window.clientData.currentLanguage}${location}`.toLowerCase());\r\n};\r\nexport const replace = (location) => routerReplace(`/${window.clientData.currentLanguage}${location}`);\r\n\r\nexport const setUserData = (data) => ({ type: SET_USER_DATA, data });\r\nexport const clearUserData = () => ({ type: CLEAR_USER_DATA });\r\nexport const addressesChanged = () => ({ type: ADDRESSES_CHANGED });\r\n","export const RAISE_MESSAGE = 'RAISE_MESSAGE';\r\nexport const CLEAR_MESSAGE = 'CLEAR_MESSAGE';\r\nexport const RAISE_ERROR = 'RAISE_ERROR';\r\nexport const CLEAR_ERROR = 'CLEAR_ERROR';\r\n\r\nexport const SET_USER_DATA = 'SET_USER_DATA';\r\nexport const CLEAR_USER_DATA = 'CLEAR_USER_DATA';\r\nexport const ADDRESSES_CHANGED = 'ADDRESSES_CHANGED';\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const fetchAvailableTypes = (metaTypeName) => ({ type: actionTypes.FETCH_AVAILABLE_TYPES, metaTypeName });\r\nexport const startFetchingAvailableTypes = () => ({ type: actionTypes.START_FETCHING_AVAILABLE_TYPES });\r\nexport const initAvailableTypes = (types) => ({ type: actionTypes.INIT_AVAILABLE_TYPES, types });\r\nexport const finishFetchingAvailableTypes = () => ({ type: actionTypes.FINISH_FETCHING_AVAILABLE_TYPES });\r\nexport const updateElementType = (currentElement, newElementType) => ({ type: actionTypes.UPDATE_ELEMENT_TYPE, currentElement, newElementType });\r\n\r\nexport const openChangeTypeModal = (currentElement) => ({ type: actionTypes.OPEN_CHANGE_TYPE_MODAL, currentElement });\r\nexport const closeChangeTypeModal = () => ({ type: actionTypes.CLOSE_CHANGE_TYPE_MODAL });\r\nexport const toggleChangeTypeModal = () => ({ type: actionTypes.TOGGLE_CHANGE_TYPE_MODAL });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const fetchAvailableTypes = (metaTypeName) => ({ type: actionTypes.FETCH_AVAILABLE_TYPES, metaTypeName });\r\nexport const startFetchingAvailableTypes = () => ({ type: actionTypes.START_FETCHING_AVAILABLE_TYPES });\r\nexport const initAvailableTypes = (types) => ({ type: actionTypes.INIT_AVAILABLE_TYPES, types });\r\nexport const finishFetchingAvailableTypes = () => ({ type: actionTypes.FINISH_FETCHING_AVAILABLE_TYPES });\r\nexport const updateElementType = (currentElement, newElementType) => ({ type: actionTypes.UPDATE_ELEMENT_TYPE, currentElement, newElementType });\r\n\r\nexport const openChangeTypeModal = (currentElement) => ({ type: actionTypes.OPEN_CHANGE_TYPE_MODAL, currentElement });\r\nexport const closeChangeTypeModal = () => ({ type: actionTypes.CLOSE_CHANGE_TYPE_MODAL });\r\nexport const toggleChangeTypeModal = () => ({ type: actionTypes.TOGGLE_CHANGE_TYPE_MODAL });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const openPasswordUpdateModal = (elementId) => ({ type: actionTypes.OPEN_PASSWORD_UPDATE_MODAL, elementId });\r\nexport const closePasswordUpdateModal = () => ({ type: actionTypes.CLOSE_PASSWORD_UPDATE_MODAL });\r\nexport const togglePasswordUpdateModal = () => ({ type: actionTypes.TOGGLE_PASSWORD_UPDATE_MODAL });\r\n\r\nexport const startUpdatingPassword = () => ({ type: actionTypes.START_UPDATING_PASSWORD });\r\nexport const finishUpdatingPassword = () => ({ type: actionTypes.FINISH_UPDATING_PASSWORD });\r\n\r\nexport const updatePassword = (elementId, newPassword) => ({ type: actionTypes.UPDATE_PASSWORD, elementId, newPassword });\r\n","export const ERROR_MESSAGE_TYPE = 'ERROR';\r\nexport const INFO_MESSAGE_TYPE = 'INFO';\r\nexport const SUCCESS_MESSAGE_TYPE = 'SUCCESS';\r\n","import {\r\n RAISE_MESSAGE,\r\n CLEAR_MESSAGE,\r\n RAISE_ERROR,\r\n CLEAR_ERROR\r\n} from './actionTypes';\r\n\r\nexport const raiseMessage = (messageType, message) => ({ type: RAISE_MESSAGE, messageType, message });\r\nexport const clearMessage = (message) => ({ type: CLEAR_MESSAGE, message });\r\nexport const raiseError = (errorCode) => ({ type: RAISE_ERROR, errorCode });\r\nexport const clearError = () => ({ type: CLEAR_ERROR });\r\n","export const FETCH_TREE_ELEMENTS = 'FETCH_TREE_ELEMENTS';\r\nexport const START_FETCHING_TREE_ELEMENTS = 'START_FETCHING_TREE_ELEMENTS';\r\nexport const FINISH_FETCHING_TREE_ELEMENTS = 'FINISH_FETCHING_TREE_ELEMENTS';\r\nexport const INIT_TREE_ELEMENTS = 'INIT_TREE_ELEMENTS';\r\nexport const EXPAND_TREE_ELEMENT = 'EXPAND_TREE_ELEMENT';\r\nexport const COLLAPSE_TREE_ELEMENT = 'COLLAPSE_TREE_ELEMENT';\r\nexport const REFRESH_TREE_ELEMENT = 'REFRESH_TREE_ELEMENT';\r\nexport const START_REFRESHING_TREE_ELEMENTS = 'START_REFRESHING_TREE_ELEMENTS';\r\nexport const FINISH_REFRESHING_TREE_ELEMENTS = 'FINISH_REFRESHING_TREE_ELEMENTS';\r\nexport const INIT_REFRESHING_TREE_ELEMENTS = 'INIT_REFRESHING_TREE_ELEMENTS';\r\nexport const CHANGE_ELEMENT_ID_IN_TREE = 'CHANGE_ELEMENT_ID_IN_TREE';\r\n\r\nexport const FETCH_TREE_CONFIG = 'FETCH_TREE_CONFIG';\r\nexport const START_FETCHING_TREE_CONFIG = 'START_FETCHING_TREE_CONFIG';\r\nexport const FINISH_FETCHING_TREE_CONFIG = 'FINISH_FETCHING_TREE_CONFIG';\r\nexport const INIT_TREE_CONFIG = 'INIT_TREE_CONFIG';\r\n","export const FETCH_CMS_TREE_ELEMENTS = 'FETCH_CMS_TREE_ELEMENTS';\r\nexport const START_FETCHING_CMS_TREE_ELEMENTS = 'START_FETCHING_CMS_TREE_ELEMENTS';\r\nexport const FINISH_FETCHING_CMS_TREE_ELEMENTS = 'FINISH_FETCHING_CMS_TREE_ELEMENTS';\r\nexport const INIT_CMS_TREE_ELEMENTS = 'INIT_CMS_TREE_ELEMENTS';\r\nexport const EXPAND_CMS_TREE_ELEMENT = 'EXPAND_CMS_TREE_ELEMENT';\r\nexport const COLLAPSE_CMS_TREE_ELEMENT = 'COLLAPSE_CMS_TREE_ELEMENT';\r\nexport const REFRESH_CMS_TREE_ELEMENT = 'REFRESH_CMS_TREE_ELEMENT';\r\nexport const START_REFRESHING_CMS_TREE_ELEMENTS = 'START_REFRESHING_CMS_TREE_ELEMENTS';\r\nexport const FINISH_REFRESHING_CMS_TREE_ELEMENTS = 'FINISH_REFRESHING_CMS_TREE_ELEMENTS';\r\nexport const INIT_REFRESHING_CMS_TREE_ELEMENTS = 'INIT_REFRESHING_CMS_TREE_ELEMENTS';\r\nexport const CHANGE_ELEMENT_CMS_ID_IN_TREE = 'CHANGE_ELEMENT_CMS_ID_IN_TREE';\r\n\r\nexport const FETCH_CMS_TREE_CONFIG = 'FETCH_CMS_TREE_CONFIG';\r\nexport const START_FETCHING_CMS_TREE_CONFIG = 'START_FETCHING_CMS_TREE_CONFIG';\r\nexport const FINISH_FETCHING_CMS_TREE_CONFIG = 'FINISH_FETCHING_CMS_TREE_CONFIG';\r\nexport const INIT_CMS_TREE_CONFIG = 'INIT_CMS_TREE_CONFIG';\r\n","export const FETCH_TREE_ELEMENTS = 'FETCH_U_M_TREE_ELEMENTS';\r\nexport const START_FETCHING_TREE_ELEMENTS = 'START_FETCHING_U_M_TREE_ELEMENTS';\r\nexport const FINISH_FETCHING_TREE_ELEMENTS = 'FINISH_FETCHING_U_M_TREE_ELEMENTS';\r\nexport const INIT_TREE_ELEMENTS = 'INIT_U_M_TREE_ELEMENTS';\r\nexport const EXPAND_TREE_ELEMENT = 'EXPAND_U_M_TREE_ELEMENT';\r\nexport const COLLAPSE_TREE_ELEMENT = 'COLLAPSE_U_M_TREE_ELEMENT';\r\nexport const REFRESH_TREE_ELEMENT = 'REFRESH_U_M_TREE_ELEMENT';\r\nexport const START_REFRESHING_TREE_ELEMENTS = 'START_REFRESHING_U_M_TREE_ELEMENTS';\r\nexport const FINISH_REFRESHING_TREE_ELEMENTS = 'FINISH_REFRESHING_U_M_TREE_ELEMENTS';\r\nexport const INIT_REFRESHING_TREE_ELEMENTS = 'INIT_REFRESHING_U_M_TREE_ELEMENTS';\r\nexport const CHANGE_ELEMENT_ID_IN_TREE = 'CHANGE_ELEMENT_ID_U_M_IN_TREE';\r\n\r\nexport const FETCH_TREE_CONFIG = 'FETCH_U_M_TREE_CONFIG';\r\nexport const START_FETCHING_TREE_CONFIG = 'START_FETCHING_U_M_TREE_CONFIG';\r\nexport const FINISH_FETCHING_TREE_CONFIG = 'FINISH_FETCHING_U_M_TREE_CONFIG';\r\nexport const INIT_TREE_CONFIG = 'INIT_U_M_TREE_CONFIG';\r\n","export const getSearchTerm = (state) => state.languageManagement.filter.searchTerm;\r\nexport const getAllElements = (state) => state.languageManagement.data.data;\r\nexport const getIsFetchingElements = (state) => state.languageManagement.data.isFetchingElements;\r\n\r\nexport const getExport = (state) => state.languageManagement.export.data;\r\n","import { templatesEngine } from 'infrastructure/templates';\r\n\r\ntemplatesEngine.registerTemplates('general.appMain', [\r\n 'PageTitle',\r\n 'PageTitleInner'\r\n]);\r\n\r\nexport const { PageTitle, PageTitleInner } = templatesEngine.getTemplates('general.appMain');\r\n","import PageTitleInner from './components/PageTitle';\r\nimport PageTitle from './containers/PageTitle';\r\n\r\nexport const appMainComponents = {\r\n PageTitle,\r\n PageTitleInner\r\n};\r\n","import { connect } from 'react-redux';\r\n\r\nimport { PageTitleInner } from '../templates';\r\n\r\nconst mapStateToProps = (state) => ({\r\n enablePageTitleIcon: state.ThemeOptions.enablePageTitleIcon,\r\n enablePageTitleSubheading: state.ThemeOptions.enablePageTitleSubheading,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PageTitleInner);\r\n","import React, { useState } from 'react';\r\nimport { func, string, bool, shape } from 'prop-types';\r\nimport { Col, Row, Button, FormGroup, Label, Alert } from 'reactstrap';\r\nimport { Field } from 'redux-form';\r\nimport { FormInput, validatorTypes, validatorFactory } from 'components/Forms';\r\nimport { faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nconst LoginForm = ({ handleSubmit, authenticationFailed, resources, isAuthenticating }) => {\r\n const [isPasswordHidden, setIsPasswordHidden] = useState(true);\r\n const togglePassword = () => setIsPasswordHidden(!isPasswordHidden);\r\n const requiredEmail = validatorFactory(resources.emailRequiredText, validatorTypes.VALIDATOR_TYPE_REQUIRED);\r\n const requiredPassword = validatorFactory(resources.passwordRequiredText, validatorTypes.VALIDATOR_TYPE_REQUIRED);\r\n\r\n return (\r\n
\r\n
\r\n {authenticationFailed\r\n && {resources.wrongAuthenticationText}}\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\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\nLoginForm.propTypes = {\r\n handleSubmit: func.isRequired,\r\n authenticationFailed: bool.isRequired,\r\n isAuthenticating: bool.isRequired,\r\n resources: shape({\r\n emailText: string,\r\n passwordPlaceholderText: string,\r\n passwordText: string,\r\n emailPlaceholderText: string,\r\n wrongAuthenticationText: string,\r\n restorePasswordText: string,\r\n loginText: string,\r\n emailRequiredText: string,\r\n passwordRequiredText: string,\r\n }).isRequired\r\n};\r\nexport default LoginForm;\r\n","import { connect } from 'react-redux';\r\nimport { withResources } from 'infrastructure/localization';\r\nimport { getAuthenticationFailed, getIsAuthenticating } from 'store/user/selectors';\r\nimport { loginUser } from 'api/user/login/actions';\r\nimport { reduxForm } from 'redux-form';\r\nimport LoginForm from '../components/LoginForm';\r\n\r\nconst mapStateToProps = (state) => ({\r\n authenticationFailed: getAuthenticationFailed(state),\r\n isAuthenticating: getIsAuthenticating(state)\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => ({\r\n onSubmit: (formValues) => {\r\n dispatch(loginUser(formValues.email, formValues.password, ownProps.redirectUrl));\r\n }\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(reduxForm({ form: 'login' })(withResources(LoginForm)));\r\n","import React from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\nimport { shape, string } from 'prop-types';\r\nimport LoginForm from '../containers/LoginForm';\r\n\r\nconst LoginPanel = ({ location, resources }) => {\r\n const params = new URLSearchParams(location.search.toLowerCase());\r\n const redirectUrl = params.get('successredirect');\r\n\r\n return (\r\n \r\n
\r\n

{resources.welcomeText}

\r\n

{resources.signInRequestText}

\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nLoginPanel.propTypes = {\r\n resources: shape({\r\n welcomeText: string,\r\n signInRequestText: string,\r\n singUpText: string\r\n }).isRequired,\r\n location: shape({\r\n search: string\r\n }).isRequired\r\n};\r\nexport default LoginPanel;\r\n","import React from 'react';\r\nimport { string, shape } from 'prop-types';\r\n\r\nimport { Col, Row } from 'reactstrap';\r\n\r\nimport LoginPanel from './LoginPanel';\r\n\r\nconst LoginPage = ({ location, resources }) => (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n);\r\n\r\nLoginPage.propTypes = {\r\n location: shape({\r\n location: string\r\n }).isRequired,\r\n resources: shape({\r\n didYouKnowText: string,\r\n syllableText: string,\r\n caloriesText: string,\r\n clocksText: string\r\n }).isRequired\r\n};\r\n\r\nexport default LoginPage;\r\n","import { withResources } from 'infrastructure/localization';\r\nimport LoginPage from '../components/LoginPage';\r\n\r\nexport default (withResources(LoginPage));\r\n","import LoginForm from './containers/LoginForm';\r\nimport LoginFormInner from './components/LoginForm';\r\nimport LoginPage from './containers/LoginPage';\r\nimport LoginPageInner from './components/LoginPage';\r\nimport LoginPanel from './components/LoginPanel';\r\n\r\nexport const loginPageComponents = {\r\n LoginForm,\r\n LoginFormInner,\r\n LoginPage,\r\n LoginPageInner,\r\n LoginPanel\r\n};\r\n","import { templatesEngine } from 'infrastructure/templates';\r\n\r\ntemplatesEngine.registerTemplates('views.loginPage', [\r\n 'LoginForm',\r\n 'LoginFormInner',\r\n 'LoginPage',\r\n 'LoginPageInner',\r\n 'LoginPanel'\r\n]);\r\n\r\nexport const { LoginForm, LoginFormInner, LoginPage, LoginPageInner, LoginPanel } = templatesEngine.getTemplates('views.loginPage');\r\n","import { templatesEngine } from 'infrastructure/templates';\r\nimport { loginPageComponents } from './loginPageComponents';\r\n\r\ntemplatesEngine.registerDefaultComponents('views.loginPage', loginPageComponents);\r\n\r\nexport { LoginPage } from './templates';\r\n","import React, { Suspense } from 'react';\r\n\r\nconst LoaderElement = ({ children }) => (\r\n \r\n
\r\n
\r\n {/* */}\r\n Here should be the loader element.\r\n
\r\n
\r\n Please wait\r\n Page is loading\r\n
\r\n
\r\n
\r\n )}\r\n >\r\n {children}\r\n \r\n);\r\n\r\nexport default LoaderElement;\r\n","import React from 'react';\r\nimport { Route, Redirect } from 'react-router';\r\nimport * as tools from 'infrastructure/helpers/tools';\r\nimport { bool } from 'prop-types';\r\n\r\nclass PrivateRoute extends Route {\r\n render() {\r\n const { isAuthenticated, ...rest } = this.props;\r\n return (\r\n isAuthenticated\r\n ? \r\n : \r\n );\r\n }\r\n}\r\n\r\nPrivateRoute.propTypes = {\r\n isAuthenticated: bool.isRequired\r\n};\r\n\r\nexport default PrivateRoute;\r\n","import { Route, Switch } from 'react-router-dom';\r\nimport React, { lazy } from 'react';\r\n\r\nimport { bool } from 'prop-types';\r\nimport {\r\n ToastContainer,\r\n} from 'react-toastify';\r\nimport { LoginPage } from 'views/LoginPage';\r\nimport LoaderElement from 'components/LoaderElement/LoaderElement';\r\nimport { PrivateRoute } from 'components/PrivateRoute';\r\n\r\nconst MainAppPanes = lazy(() => import('./MainAppPanes'));\r\n\r\nconst AppMain = ({ isAuthenticated }) => (\r\n <>\r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n);\r\n\r\nAppMain.propTypes = {\r\n isAuthenticated: bool.isRequired\r\n};\r\nexport default AppMain;\r\n","import { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\nimport { getUserData } from 'store/user/selectors';\r\nimport AppMain from '../components/AppMain';\r\n\r\nconst mapStateToProps = (state) => ({\r\n isAuthenticated: getUserData(state).isAuthenticated,\r\n});\r\n\r\nexport default withRouter(connect(mapStateToProps)(AppMain));\r\n","import { templatesEngine } from 'infrastructure/templates';\r\nimport { appMainComponents } from './appMainComponents';\r\n\r\nexport { default as AppMain } from './containers/AppMain';\r\n\r\ntemplatesEngine.registerDefaultComponents('general.appMain', appMainComponents);\r\n\r\nexport { PageTitle, PageTitleInner } from './templates';\r\n","export const FETCH_SEARCH_RESULTS = 'FETCH_SEARCH_RESULTS';\r\nexport const START_FETCHING_SEARCH_RESULTS = 'START_FETCHING_SEARCH_RESULTS';\r\nexport const FINISH_FETCHING_SEARCH_RESULTS = 'FINISH_FETCHING_SEARCH_RESULTS';\r\nexport const INIT_SEARCH_RESULTS = 'INIT_SEARCH_RESULTS';\r\nexport const TOGGLE_SEARCH_ELEMENT_SELECTION = 'TOGGLE_SEARCH_ELEMENT_SELECTION';\r\nexport const CLEAR_SEARCH_RESULTS = 'CLEAR_SEARCH_RESULTS';\r\nexport const CHANGE_SEARCH_PHRASE = 'CHANGE_SEARCH_PHRASE';\r\nexport const INIT_SEARCH_PHRASE = 'INIT_SEARCH_PHRASE';\r\nexport const START_FETCHING_SEARCH_SUGGESTIONS = 'START_FETCHING_SEARCH_SUGGESTIONS';\r\nexport const INIT_SEARCH_SUGGESTIONS = 'INIT_SEARCH_SUGGESTIONS';\r\nexport const FINISH_FETCHING_SEARCH_SUGGESTIONS = 'FINISH_FETCHING_SEARCH_SUGGESTIONS';\r\nexport const FETCH_PREDEFINED_SEARCH_RESULTS = 'FETCH_PREDEFINED_SEARCH_RESULTS';\r\nexport const FETCH_PREDEFINED_SEARCH_OPTIONS = 'FETCH_PREDEFINED_SEARCH_OPTIONS';\r\nexport const INIT_PREDEFINED_SEARCH_OPTIONS = 'INIT_PREDEFINED_SEARCH_OPTIONS';\r\nexport const SET_PAGINATION = 'SET_PAGINATION';\r\n","export const getLayoutInfoState = (state) => state.layout.layoutInfo;\r\nexport const getIsFetchingState = (state) => state.layout.isFetching;\r\nexport const getLayoutInfoMenuState = (state) => state.layout.layoutInfo.menu;\r\nexport const getLanguagesState = (state) => state.layout.layoutInfo.languages;\r\nexport const getResourcesState = (state) => state.layout.layoutInfo.resources;\r\nexport const getCurrentLanguage = (state) => state.layout.layoutInfo.languages?.find((l) => l.isActive)?.name;\r\nexport const getFormattingCulture = (state) => state.layout.layoutInfo.formattingCulture;\r\nexport const getSupportedTranslations = (state) => state.layout.layoutInfo.supportedTranslations;\r\nexport const getMessagePlaceholder = (state) => state.messagePlaceholder;\r\n","export const START_FETCHING_SEARCH_TERM = 'START_FETCHING_SEARCH_TERM';\r\nexport const FINISH_FETCHING_SEARCH_TERM = 'FINISH_FETCHING_SEARCH_TERM';\r\nexport const FETCH_SEARCH_TERM = 'FETCH_SEARCH_TERM';\r\nexport const INIT_SEARCH_TERM_DATA = 'INIT_SEARCH_TERM_DATA';\r\n\r\nexport const INIT_SEARCH_TERM = 'INIT_SEARCH_TERM';\r\n\r\nexport const START_FETCHING_ALL_ELEMENTS = 'START_FETCHING_ALL_ELEMENTS';\r\nexport const FINISH_FETCHING_ALL_ELEMENTS = 'FINISH_FETCHING_ALL_ELEMENTS';\r\nexport const FETCH_ALL_ELEMENTS = 'FETCH_ALL_ELEMENTS';\r\nexport const INIT_ALL_ELEMENTS = 'INIT_ALL_ELEMENTS';\r\n\r\nexport const START_FETCHING_EXPORT = 'START_FETCHING_EXPORT';\r\nexport const FINISH_FETCHING_EXPORT = 'FINISH_FETCHING_EXPORT';\r\nexport const FETCH_EXPORT = 'FETCH_EXPORT';\r\nexport const INIT_EXPORT = 'INIT_EXPORT';\r\n\r\nexport const UPDATE_RESOURCE = 'UPDATE_RESOURCE';\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const fetchFileNamesInfo = (fileNames) => ({ type: actionTypes.FETCH_FILE_NAMES_INFO, fileNames });\r\nexport const startFetchingFileNamesInfo = () => ({ type: actionTypes.START_FETCHING_FILE_NAMES_INFO });\r\nexport const finishFetchingFileNamesInfo = () => ({ type: actionTypes.FINISH_FETCHING_FILE_NAMES_INFO });\r\nexport const initFileNamesInfo = (fileNamesInfo) => ({ type: actionTypes.INIT_FILE_NAMES_INFO, fileNamesInfo });\r\n\r\nexport const startFetchingMediaElements = () => ({ type: actionTypes.START_FETCHING_MEDIA_ELEMENTS });\r\nexport const fetchMediaElements = (data) => ({ type: actionTypes.FETCH_MEDIA_ELEMENTS, data });\r\nexport const finishFetchingMediaElements = () => ({ type: actionTypes.FINISH_FETCHING_MEDIA_ELEMENTS });\r\nexport const initMediaElements = (elements, isPrependingMedia) => ({ type: actionTypes.INIT_MEDIA_ELEMENTS, elements, isPrependingMedia });\r\nexport const loadMoreMediaElements = () => ({ type: actionTypes.LOAD_MORE_MEDIA });\r\nexport const initMediaFilters = (searchTerm, filterExtensions) => ({ type: actionTypes.INIT_FILTERS, searchTerm, filterExtensions });\r\nexport const toggleMediaElementSelection = (elementName, selectionMode) => ({ type: actionTypes.TOGGLE_MEDIA_ELEMENT_SELECTION, elementName, selectionMode });\r\n\r\nexport const fetchMediaData = (elementId) => ({ type: actionTypes.FETCH_MEDIA_DATA, elementId });\r\nexport const startFetchingMediaData = () => ({ type: actionTypes.START_FETCHING_MEDIA_DATA });\r\nexport const finishFetchingMediaData = () => ({ type: actionTypes.FINISH_FETCHING_MEDIA_DATA });\r\nexport const initMediaData = (elementData) => ({ type: actionTypes.INIT_MEDIA_DATA, elementData });\r\n\r\nexport const fetchMediaConfiguration = (elementType) => ({ type: actionTypes.FETCH_MEDIA_CONFIGURATION, elementType });\r\nexport const startFetchingMediaConfiguration = () => ({ type: actionTypes.START_FETCHING_MEDIA_CONFIGURATION });\r\nexport const finishFetchingMediaConfiguration = () => ({ type: actionTypes.FINISH_FETCHING_MEDIA_CONFIGURATION });\r\nexport const initMediaConfiguration = (mediaConfigurationData) => ({ type: actionTypes.INIT_MEDIA_CONFIGURATION, mediaConfigurationData });\r\n\r\nexport const saveMediaFormData = (elementId, formName, form) => ({ type: actionTypes.SAVE_MEDIA_FORM_DATA, elementId, formName, form });\r\n\r\nexport const startSavingMediaData = () => ({ type: actionTypes.START_SAVING_MEDIA_DATA });\r\nexport const finishSavingMediaData = () => ({ type: actionTypes.FINISH_SAVING_MEDIA_DATA });\r\n\r\nexport const deleteMediaElements = (fileNames, requestData) => ({ type: actionTypes.DELETE_MEDIA_ELEMENTS, fileNames, requestData });\r\nexport const startDeleteMediaElements = () => ({ type: actionTypes.START_DELETING_MEDIA_ELEMENTS });\r\nexport const finishDeleteMediaElements = () => ({ type: actionTypes.FINISH_DELETING_MEDIA_ELEMENTS });\r\n\r\nexport const fetchMediaInfos = (files) => ({ type: actionTypes.FETCH_MEDIA_INFOS, files });\r\nexport const startFetchingMediaInfos = () => ({ type: actionTypes.START_FETCHING_MEDIA_INFOS });\r\nexport const finishFetchingMediaInfos = () => ({ type: actionTypes.FINISH_FETCHING_MEDIA_INFOS });\r\nexport const initMediaInfos = (mediaInfos) => ({ type: actionTypes.INIT_MEDIA_INFOS, mediaInfos });\r\n\r\nexport const fetchAttachmentAssociations = (elementId) => ({ type: actionTypes.FETCH_ATTACHMENT_ASSOCIATIONS, elementId });\r\nexport const startFetchingAttachmentAssociations = () => ({ type: actionTypes.START_FETCHING_ATTACHMENT_ASSOCIATIONS });\r\nexport const finishFetchingAttachmentAssociations = () => ({ type: actionTypes.FINISH_FETCHING_ATTACHMENT_ASSOCIATIONS });\r\nexport const initAttachmentAssociations = (attachmentAssociations) => ({ type: actionTypes.INIT_ATTACHMENT_ASSOCIATIONS, attachmentAssociations });\r\n\r\nexport const fetchSupportedExtensions = () => ({ type: actionTypes.FETCH_SUPPORTED_EXTENSIONS });\r\nexport const startFetchingSupportedExtensions = () => ({ type: actionTypes.START_FETCHING_SUPPORTED_EXTENSIONS });\r\nexport const finishFetchingSupportedExtensions = () => ({ type: actionTypes.FINISH_FETCHING_SUPPORTED_EXTENSIONS });\r\nexport const initSupportedExtensions = (supportedExtensions) => ({ type: actionTypes.INIT_SUPPORTED_EXTENSIONS, supportedExtensions });\r\n","export const FETCH_AVAILABLE_TYPES_FOR_PARENT_METATYPE = 'FETCH_AVAILABLE_TYPES_FOR_PARENT_METATYPE';\r\nexport const START_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE = 'START_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE';\r\nexport const INIT_AVAILABLE_TYPES_FOR_PARENT_METATYPE = 'INIT_AVAILABLE_TYPES_FOR_PARENT_METATYPE';\r\nexport const FINISH_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE = 'STOP_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE';\r\n\r\nexport const CREATE_NEW_ELEMENT = 'CREATE_NEW_ELEMENT';\r\nexport const START_CREATING_NEW_ELEMENT = 'START_CREATING_NEW_ELEMENT';\r\nexport const FINISH_CREATING_NEW_ELEMENT = 'FINISH_CREATING_NEW_ELEMENT';\r\n\r\nexport const OPEN_NEW_ELEMENT_MODAL = 'OPEN_NEW_ELEMENT_MODAL';\r\nexport const CLOSE_NEW_ELEMENT_MODAL = 'CLOSE_NEW_ELEMENT_MODAL';\r\nexport const TOGGLE_NEW_ELEMENT_MODAL = 'TOGGLE_NEW_ELEMENT_MODAL';\r\nexport const CLEAN_NEW_ELEMENT_MODAL = 'CLEAN_NEW_ELEMENT_MODAL';\r\n","export const getFieldSuggestions = (state) => state.element.propertyData.suggestions.suggestionsElements;\r\nexport const getIsFetchingFieldSuggestions = (state) => state.element.propertyData.isFetchingSuggestions;\r\nexport const getFieldElementData = (state) => state.element;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport cx from 'classnames';\r\n\r\nclass PageTitle extends Component {\r\n randomize(myArray) {\r\n return myArray[Math.floor(Math.random() * myArray.length)];\r\n }\r\n\r\n render() {\r\n const {\r\n enablePageTitleIcon,\r\n enablePageTitleSubheading,\r\n\r\n heading,\r\n icon,\r\n subheading\r\n } = this.props;\r\n\r\n return (\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {heading}\r\n \r\n {subheading}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default PageTitle;\r\n","export const START_FETCHING_ELEMENT_DATA = 'START_FETCHING_ELEMENT_DATA';\r\nexport const FINISH_FETCHING_ELEMENT_DATA = 'FINISH_FETCHING_ELEMENT_DATA';\r\nexport const INIT_ELEMENT_DATA = 'INIT_ELEMENT_DATA';\r\nexport const FETCH_ELEMENT_DATA = 'FETCH_ELEMENT_DATA';\r\n\r\nexport const FETCH_ELEMENT_CONFIGURATION = 'FETCH_ELEMENT_CONFIGURATION';\r\nexport const START_FETCHING_ELEMENT_CONFIGURATION = 'START_FETCHING_ELEMENT_CONFIGURATION';\r\nexport const FINISH_FETCHING_ELEMENT_CONFIGURATION = 'FINISH_FETCHING_ELEMENT_CONFIGURATION';\r\nexport const INIT_ELEMENT_CONFIGURATION = 'INIT_ELEMENT_CONFIGURATION';\r\n\r\nexport const START_SAVING_ELEMENT_DATA = 'START_SAVING_ELEMENT_DATA';\r\nexport const FINISH_SAVING_ELEMENT_DATA = 'FINISH_SAVING_ELEMENT_DATA';\r\n\r\nexport const SAVE_ELEMENT_FORM_DATA = 'SAVE_ELEMENT_FORM_DATA';\r\n","export const FETCH_AVAILABLE_TYPES_FOR_PARENT_METATYPE = 'FETCH_AVAILABLE_U_M_TYPES_FOR_PARENT_METATYPE';\r\nexport const START_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE = 'START_FETCHING_AVAILABLE_U_M_TYPES_FOR_PARENT_METATYPE';\r\nexport const INIT_AVAILABLE_TYPES_FOR_PARENT_METATYPE = 'INIT_AVAILABLE_U_M_TYPES_FOR_PARENT_METATYPE';\r\nexport const FINISH_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE = 'STOP_FETCHING_AVAILABLE_U_M_TYPES_FOR_PARENT_METATYPE';\r\n\r\nexport const CREATE_NEW_ELEMENT = 'CREATE_NEW_U_M_ELEMENT';\r\nexport const START_CREATING_NEW_ELEMENT = 'START_CREATING_NEW_U_M_ELEMENT';\r\nexport const FINISH_CREATING_NEW_ELEMENT = 'FINISH_CREATING_NEW_U_M_ELEMENT';\r\n\r\nexport const OPEN_NEW_ELEMENT_MODAL = 'OPEN_NEW_U_M_ELEMENT_MODAL';\r\nexport const CLOSE_NEW_ELEMENT_MODAL = 'CLOSE_NEW_U_M_ELEMENT_MODAL';\r\nexport const TOGGLE_NEW_ELEMENT_MODAL = 'TOGGLE_NEW_U_M_ELEMENT_MODAL';\r\nexport const CLEAN_NEW_ELEMENT_MODAL = 'CLEAN_NEW_U_M_ELEMENT_MODAL';\r\n","export const START_FETCHING_ELEMENT_DATA = 'START_FETCHING_U_M_ELEMENT_DATA';\r\nexport const FINISH_FETCHING_ELEMENT_DATA = 'FINISH_FETCHING_U_M_ELEMENT_DATA';\r\nexport const INIT_ELEMENT_DATA = 'INIT_U_M_ELEMENT_DATA';\r\nexport const FETCH_ELEMENT_DATA = 'FETCH_U_M_ELEMENT_DATA';\r\n\r\nexport const FETCH_ELEMENT_CONFIGURATION = 'FETCH_U_M_ELEMENT_CONFIGURATION';\r\nexport const START_FETCHING_ELEMENT_CONFIGURATION = 'START_FETCHING_U_M_ELEMENT_CONFIGURATION';\r\nexport const FINISH_FETCHING_ELEMENT_CONFIGURATION = 'FINISH_FETCHING_U_M_ELEMENT_CONFIGURATION';\r\nexport const INIT_ELEMENT_CONFIGURATION = 'INIT_U_M_ELEMENT_CONFIGURATION';\r\n\r\nexport const START_SAVING_ELEMENT_DATA = 'START_SAVING_U_M_ELEMENT_DATA';\r\nexport const FINISH_SAVING_ELEMENT_DATA = 'FINISH_SAVING_U_M_ELEMENT_DATA';\r\n\r\nexport const SAVE_ELEMENT_FORM_DATA = 'SAVE_U_M_ELEMENT_FORM_DATA';\r\n","module.exports = __webpack_public_path__ + \"static/media/city1.ebc5562d.jpg\";","export const START_USER_LOGIN = 'START_USER_LOGIN';\r\nexport const FINISH_USER_LOGIN = 'FINISH_USER_LOGIN';\r\nexport const LOGIN_USER = 'LOGIN_USER';\r\nexport const USER_AUTHENTICATION_SUCCEEDED = 'USER_AUTHENTICATION_SUCCEEDED';\r\nexport const USER_AUTHENTICATION_FAILED = 'USER_AUTHENTICATION_FAILED';\r\nexport const LOGOUT_USER = 'LOGOUT_USER';\r\nexport const START_USER_LOGOUT = 'START_USER_LOGOUT';\r\nexport const FINISH_USER_LOGOUT = 'FINISH_USER_LOGOUT';\r\nexport const SHOW_ACTIVATE_SUCCESS_MESSAGE = 'SHOW_ACTIVATE_SUCCESS_MESSAGE';\r\nexport const SET_USER_DATA = 'SET_USER_DATA';\r\nexport const CLEAR_USER_DATA = 'CLEAR_USER_DATA';\r\n","export const OPEN_EXPORT_ELEMENT_MODAL = 'OPEN_EXPORT_ELEMENT_MODAL';\r\nexport const CLOSE_EXPORT_ELEMENT_MODAL = 'CLOSE_EXPORT_ELEMENT_MODAL';\r\nexport const TOGGLE_EXPORT_ELEMENT_MODAL = 'TOGGLE_EXPORT_ELEMENT_MODAL';\r\nexport const CLEAN_EXPORT_ELEMENT_MODAL = 'CLEAN_EXPORT_ELEMENT_MODAL';\r\n\r\nexport const FETCH_AVAILABLE_EXPORT_DEFINITIONS = 'FETCH_AVAILABLE_EXPORT_DEFINITIONS';\r\nexport const START_FETCHING_AVAILABLE_EXPORT_DEFINITIONS = 'START_FETCHING_AVAILABLE_EXPORT_DEFINITIONS';\r\nexport const INIT_AVAILABLE_EXPORT_DEFINITIONS = 'INIT_AVAILABLE_EXPORT_DEFINITIONS';\r\nexport const FINISH_FETCHING_AVAILABLE_EXPORT_DEFINITIONS = 'FINISH_FETCHING_AVAILABLE_EXPORT_DEFINITIONS';\r\nexport const ADD_NEW_EXPORT_JOB = 'ADD_NEW_EXPORT_JOB';\r\nexport const START_ADDING_EXPORT_ELEMENT = 'START_ADDING_EXPORT_ELEMENT';\r\nexport const FINISH_ADDING_EXPORT_ELEMENT = 'FINISH_ADDING_EXPORT_ELEMENT';\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const fetchTreeElements = (data, rootKey) => ({ type: actionTypes.FETCH_TREE_ELEMENTS, data, rootKey });\r\nexport const startFetchingTreeElements = (currentNode) => ({ type: actionTypes.START_FETCHING_TREE_ELEMENTS, currentNode });\r\nexport const finishFetchingTreeElements = (currentNode) => ({ type: actionTypes.FINISH_FETCHING_TREE_ELEMENTS, currentNode });\r\nexport const initTreeElements = (elements, data, rootKey) => ({ type: actionTypes.INIT_TREE_ELEMENTS, elements, data, rootKey });\r\nexport const expandTreeElement = (elements, currentNode, needsAddingNewElements) => ({ type: actionTypes.EXPAND_TREE_ELEMENT, elements, currentNode, needsAddingNewElements });\r\nexport const collapseTreeElement = (currentNode) => ({ type: actionTypes.COLLAPSE_TREE_ELEMENT, currentNode });\r\n\r\nexport const refreshTreeElement = (nodeName, nodeType) => ({ type: actionTypes.REFRESH_TREE_ELEMENT, nodeName, nodeType });\r\nexport const startRefreshingElements = () => ({ type: actionTypes.START_REFRESHING_TREE_ELEMENTS });\r\nexport const finishRefreshingElements = () => ({ type: actionTypes.FINISH_REFRESHING_TREE_ELEMENTS });\r\nexport const initRefreshingTreeElements = (elements, data) => ({ type: actionTypes.INIT_REFRESHING_TREE_ELEMENTS, elements, data });\r\nexport const changeElementIdInTree = (currentElementId, newElementId) => ({ type: actionTypes.CHANGE_ELEMENT_ID_IN_TREE, currentElementId, newElementId });\r\n\r\nexport const fetchTreeConfig = () => ({ type: actionTypes.FETCH_TREE_CONFIG });\r\nexport const startFetchingTreeConfig = () => ({ type: actionTypes.START_FETCHING_TREE_CONFIG });\r\nexport const finishFetchingTreeConfig = () => ({ type: actionTypes.FINISH_FETCHING_TREE_CONFIG });\r\nexport const initTreeConfig = (config) => ({ type: actionTypes.INIT_TREE_CONFIG, config });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const fetchTreeElements = (data, rootKey) => ({ type: actionTypes.FETCH_TREE_ELEMENTS, data, rootKey });\r\nexport const startFetchingTreeElements = (currentNode) => ({ type: actionTypes.START_FETCHING_TREE_ELEMENTS, currentNode });\r\nexport const finishFetchingTreeElements = (currentNode) => ({ type: actionTypes.FINISH_FETCHING_TREE_ELEMENTS, currentNode });\r\nexport const initTreeElements = (elements, data, rootKey) => ({ type: actionTypes.INIT_TREE_ELEMENTS, elements, data, rootKey });\r\nexport const expandTreeElement = (elements, currentNode, needsAddingNewElements) => ({ type: actionTypes.EXPAND_TREE_ELEMENT, elements, currentNode, needsAddingNewElements });\r\nexport const collapseTreeElement = (currentNode) => ({ type: actionTypes.COLLAPSE_TREE_ELEMENT, currentNode });\r\nexport const refreshTreeElement = (nodeName, nodeType) => ({ type: actionTypes.REFRESH_TREE_ELEMENT, nodeName, nodeType });\r\nexport const startRefreshingElements = () => ({ type: actionTypes.START_REFRESHING_TREE_ELEMENTS });\r\nexport const finishRefreshingElements = () => ({ type: actionTypes.FINISH_REFRESHING_TREE_ELEMENTS });\r\nexport const initRefreshingTreeElements = (elements, data) => ({ type: actionTypes.INIT_REFRESHING_TREE_ELEMENTS, elements, data });\r\nexport const changeElementIdInTree = (currentElementId, newElementId) => ({ type: actionTypes.CHANGE_ELEMENT_ID_IN_TREE, currentElementId, newElementId });\r\n\r\nexport const fetchTreeConfig = () => ({ type: actionTypes.FETCH_TREE_CONFIG });\r\nexport const startFetchingTreeConfig = () => ({ type: actionTypes.START_FETCHING_TREE_CONFIG });\r\nexport const finishFetchingTreeConfig = () => ({ type: actionTypes.FINISH_FETCHING_TREE_CONFIG });\r\nexport const initTreeConfig = (config) => ({ type: actionTypes.INIT_TREE_CONFIG, config });\r\n","import { authenticationContext } from '../authentication/authenticationContext';\r\n\r\nclass Http {\r\n headers = {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n // 'Accept-Language': window.clientData.currentLanguage,\r\n dataType: 'json'\r\n };\r\n\r\n createQueryString(parameters) {\r\n const queryString = Object.keys(parameters).reduce((prev, current) => {\r\n const currentValue = parameters[current];\r\n if (currentValue === undefined) {\r\n return prev;\r\n }\r\n\r\n if (Array.isArray(currentValue)) {\r\n const query = currentValue.reduce((prevElement, currentElement) => (prevElement !== '' ? `${prevElement}&${current.toLowerCase()}=${currentElement}` : `${current.toLowerCase()}=${currentElement}`), '');\r\n return prev !== '' ? `${prev}&${query}` : query;\r\n }\r\n\r\n return prev !== '' ? `${prev}&${current.toLowerCase()}=${currentValue}` : `${current.toLowerCase()}=${currentValue}`;\r\n }, '');\r\n return queryString !== '' ? `?${queryString}` : '';\r\n }\r\n\r\n get(route, params) {\r\n const routeWithParams = params ? `${route.toLowerCase()}${this.createQueryString(params)}` : route.toLowerCase();\r\n return this.xhr(routeWithParams, null, 'GET');\r\n }\r\n\r\n put(route, params) {\r\n return this.xhr(route.toLowerCase(), params, 'PUT');\r\n }\r\n\r\n post(route, params) {\r\n return this.xhr(route.toLowerCase(), params, 'POST');\r\n }\r\n\r\n delete(route, params) {\r\n return this.xhr(route.toLowerCase(), params, 'DELETE');\r\n }\r\n\r\n patch(route, params) {\r\n return this.xhr(route.toLowerCase(), params, 'PATCH');\r\n }\r\n\r\n xhr(route, params, verb) {\r\n const options = { method: verb, headers: this.headers, credentials: 'include', ...(params ? { body: JSON.stringify(params) } : null) };\r\n const token = authenticationContext.getToken();\r\n\r\n if (token) {\r\n options.headers = { ...options.headers, Authorization: `Bearer ${token}` };\r\n }\r\n\r\n return fetch(route, options).then((resp) => {\r\n if (resp.ok) {\r\n if (resp.status === 204 || resp.headers.get('Content-Length') === '0') {\r\n return;\r\n }\r\n\r\n const json = resp.json();\r\n return json;\r\n }\r\n\r\n const json = resp.json();\r\n return json\r\n .then((errorJson) => {\r\n // errorJson represents error object returned from servers error handler middleware\r\n const error = { errorCode: resp.status, ...errorJson };\r\n throw error;\r\n })\r\n .catch((error) => {\r\n if (error.errorCode) {\r\n throw error;\r\n }\r\n const newError = { errorCode: resp.status };\r\n throw newError;\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default new Http();\r\n","import jwtDecode from 'jwt-decode';\r\n\r\nconst AUTHTOKEN_STORAGE_NAME = 'authToken';\r\nconst LASTCALL_STORAGE_NAME = 'lastCall';\r\n\r\nconst NAME_CLAIM_NAME = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name';\r\nconst EMAIL_CLAIM_NAME = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress';\r\nconst FIRSTNAME_CLAIM_NAME = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname';\r\nconst LASTNAME_CLAIM_NAME = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname';\r\nconst REQUIRES_PASSWORD_CHANGE_CLAIM_NAME = 'requiresPasswordChange';\r\nconst USER_LANGUAGE_CLAIM_NAME = 'userLanguage';\r\n\r\nconst toMinutes = (miliseconds) => miliseconds / (1000 * 60);\r\n\r\nconst setLastCall = (dateTime) => localStorage.setItem(LASTCALL_STORAGE_NAME, dateTime);\r\n\r\nconst removeLastCall = () => localStorage.removeItem(LASTCALL_STORAGE_NAME);\r\n\r\nconst getLastCall = () => {\r\n const storedLastCall = localStorage.getItem(LASTCALL_STORAGE_NAME);\r\n if (storedLastCall) {\r\n return new Date(storedLastCall);\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nconst setToken = (token) => localStorage.setItem(AUTHTOKEN_STORAGE_NAME, token);\r\n\r\nconst removeToken = () => localStorage.removeItem(AUTHTOKEN_STORAGE_NAME);\r\n\r\nconst getToken = () => localStorage.getItem(AUTHTOKEN_STORAGE_NAME);\r\n\r\nconst sessionExpired = () => {\r\n const jwtToken = getToken();\r\n const lastCallDate = getLastCall();\r\n\r\n // checking session expiration only makes sense if user was previousely logged in (token is provided)\r\n if (jwtToken && lastCallDate) {\r\n const currentSessionLength = toMinutes(new Date() - lastCallDate);\r\n return currentSessionLength > window.clientData.sessionLength;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst shouldRefreshToken = () => {\r\n const jwtToken = getToken();\r\n const lastCallDate = getLastCall();\r\n\r\n if (!jwtToken || !lastCallDate) {\r\n return false;\r\n }\r\n\r\n const jwt = jwtDecode(jwtToken);\r\n const expirationDate = new Date(0);\r\n expirationDate.setUTCSeconds(jwt.exp);\r\n const minutesToExpiration = toMinutes(expirationDate - new Date());\r\n\r\n return !sessionExpired() && minutesToExpiration > 0 && minutesToExpiration < window.clientData.sessionLength;\r\n};\r\n\r\nconst isAuthenticated = () => {\r\n const jwtToken = getToken();\r\n\r\n if (!jwtToken) {\r\n return false;\r\n }\r\n\r\n const jwt = jwtDecode(jwtToken);\r\n const expirationDate = new Date(0);\r\n expirationDate.setUTCSeconds(jwt.exp);\r\n return expirationDate > new Date();\r\n};\r\n\r\nconst getUserTokenData = () => {\r\n const jwtToken = getToken();\r\n\r\n if (!jwtToken) {\r\n return undefined;\r\n }\r\n\r\n const jwt = jwtDecode(jwtToken);\r\n return {\r\n userName: jwt[NAME_CLAIM_NAME],\r\n email: jwt[EMAIL_CLAIM_NAME],\r\n firstName: jwt[FIRSTNAME_CLAIM_NAME],\r\n lastName: jwt[LASTNAME_CLAIM_NAME],\r\n requiresPasswordChange: jwt[REQUIRES_PASSWORD_CHANGE_CLAIM_NAME] === 'true',\r\n userLanguage: jwt[USER_LANGUAGE_CLAIM_NAME]\r\n };\r\n};\r\n\r\nexport const authenticationContext = {\r\n isAuthenticated,\r\n setToken,\r\n removeToken,\r\n getToken,\r\n shouldRefreshToken,\r\n setLastCall,\r\n removeLastCall,\r\n getLastCall,\r\n getUserTokenData,\r\n sessionExpired\r\n};\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const fetchCmsTreeElements = (data, rootKey) => ({ type: actionTypes.FETCH_CMS_TREE_ELEMENTS, data, rootKey });\r\nexport const startFetchingCmsTreeElements = (currentNode) => ({ type: actionTypes.START_FETCHING_CMS_TREE_ELEMENTS, currentNode });\r\nexport const finishFetchingCmsTreeElements = (currentNode) => ({ type: actionTypes.FINISH_FETCHING_CMS_TREE_ELEMENTS, currentNode });\r\nexport const initCmsTreeElements = (elements, data, rootKey) => ({ type: actionTypes.INIT_CMS_TREE_ELEMENTS, elements, data, rootKey });\r\nexport const expandCmsTreeElement = (elements, currentNode, needsAddingNewElements) => ({ type: actionTypes.EXPAND_CMS_TREE_ELEMENT, elements, currentNode, needsAddingNewElements });\r\nexport const collapseCmsTreeElement = (currentNode) => ({ type: actionTypes.COLLAPSE_CMS_TREE_ELEMENT, currentNode });\r\nexport const refreshCmsTreeElement = (nodeName, nodeType) => ({ type: actionTypes.REFRESH_CMS_TREE_ELEMENT, nodeName, nodeType });\r\nexport const startRefreshingCmsTreeElements = () => ({ type: actionTypes.START_REFRESHING_CMS_TREE_ELEMENTS });\r\nexport const finishRefreshingCmsTreeElements = () => ({ type: actionTypes.FINISH_REFRESHING_CMS_TREE_ELEMENTS });\r\nexport const initRefreshingCmsTreeElements = (elements, data) => ({ type: actionTypes.INIT_REFRESHING_CMS_TREE_ELEMENTS, elements, data });\r\nexport const changeElementCmsIdInTree = (currentElementId, newElementId) => ({ type: actionTypes.CHANGE_ELEMENT_CMS_ID_IN_TREE, currentElementId, newElementId });\r\n\r\nexport const fetchCmsTreeConfig = () => ({ type: actionTypes.FETCH_CMS_TREE_CONFIG });\r\nexport const startFetchingCmsTreeConfig = () => ({ type: actionTypes.START_FETCHING_CMS_TREE_CONFIG });\r\nexport const finishFetchingCmsTreeConfig = () => ({ type: actionTypes.FINISH_FETCHING_CMS_TREE_CONFIG });\r\nexport const initCmsTreeConfig = (config) => ({ type: actionTypes.INIT_CMS_TREE_CONFIG, config });\r\n","export const SET_ENABLE_BACKGROUND_IMAGE = 'THEME_OPTIONS/SET_ENABLE_BACKGROUND_IMAGE';\r\n\r\nexport const SET_ENABLE_MOBILE_MENU = 'THEME_OPTIONS/SET_ENABLE_MOBILE_MENU';\r\nexport const SET_ENABLE_MOBILE_MENU_SMALL = 'THEME_OPTIONS/SET_ENABLE_MOBILE_MENU_SMALL';\r\n\r\nexport const SET_ENABLE_FIXED_HEADER = 'THEME_OPTIONS/SET_ENABLE_FIXED_HEADER';\r\nexport const SET_ENABLE_HEADER_SHADOW = 'THEME_OPTIONS/SET_ENABLE_HEADER_SHADOW';\r\nexport const SET_ENABLE_SIDEBAR_SHADOW = 'THEME_OPTIONS/SET_ENABLE_SIDEBAR_SHADOW';\r\nexport const SET_ENABLE_FIXED_SIDEBAR = 'THEME_OPTIONS/SET_ENABLE_FIXED_SIDEBAR';\r\nexport const SET_ENABLE_CLOSED_SIDEBAR = 'THEME_OPTIONS/SET_ENABLE_CLOSED_SIDEBAR';\r\nexport const SET_ENABLE_FIXED_FOOTER = 'THEME_OPTIONS/SET_ENABLE_FIXED_FOOTER';\r\n\r\nexport const SET_ENABLE_PAGETITLE_ICON = 'THEME_OPTIONS/SET_ENABLE_PAGETITLE_ICON';\r\nexport const SET_ENABLE_PAGETITLE_SUBHEADING = 'THEME_OPTIONS/SET_ENABLE_PAGETITLE_SUBHEADING';\r\nexport const SET_ENABLE_PAGE_TABS_ALT = 'THEME_OPTIONS/SET_ENABLE_PAGE_TABS_ALT';\r\n\r\nexport const SET_BACKGROUND_IMAGE = 'THEME_OPTIONS/SET_BACKGROUND_IMAGE';\r\nexport const SET_BACKGROUND_COLOR = 'THEME_OPTIONS/SET_BACKGROUND_COLOR';\r\nexport const SET_COLOR_SCHEME = 'THEME_OPTIONS/SET_COLOR_SCHEME';\r\nexport const SET_BACKGROUND_IMAGE_OPACITY = 'THEME_OPTIONS/SET_BACKGROUND_IMAGE_OPACITY';\r\n\r\nexport const SET_HEADER_BACKGROUND_COLOR = 'THEME_OPTIONS/SET_HEADER_BACKGROUND_COLOR';\r\n","export const DELETE_ELEMENT = 'DELETE_ELEMENT';\r\nexport const START_DELETING_ELEMENT = 'START_DELETING_ELEMENT';\r\nexport const FINISH_DELETING_ELEMENT = 'FINISH_DELETING_ELEMENT';\r\n\r\nexport const OPEN_DELETE_ELEMENT_MODAL = 'OPEN_DELETE_ELEMENT_MODAL';\r\nexport const CLOSE_DELETE_ELEMENT_MODAL = 'CLOSE_DELETE_ELEMENT_MODAL';\r\nexport const TOGGLE_DELETE_ELEMENT_MODAL = 'TOGGLE_DELETE_ELEMENT_MODAL';\r\nexport const CLEAN_DELETE_ELEMENT_MODAL = 'CLEAN_DELETE_ELEMENT_MODAL';\r\n","export const COPY_ELEMENT = 'COPY_ELEMENT';\r\nexport const START_COPYING_ELEMENT = 'START_COPYING_ELEMENT';\r\nexport const FINISH_COPYING_ELEMENT = 'FINISH_COPYING_ELEMENT';\r\n\r\nexport const OPEN_COPY_ELEMENT_MODAL = 'OPEN_COPY_ELEMENT_MODAL';\r\nexport const CLOSE_COPY_ELEMENT_MODAL = 'CLOSE_COPY_ELEMENT_MODAL';\r\nexport const TOGGLE_COPY_ELEMENT_MODAL = 'TOGGLE_COPY_ELEMENT_MODAL';\r\nexport const CLEAN_COPY_ELEMENT_MODAL = 'CLEAN_COPY_ELEMENT_MODAL';\r\n","export const FETCH_AVAILABLE_TYPES = 'FETCH_AVAILABLE_TYPES';\r\nexport const START_FETCHING_AVAILABLE_TYPES = 'START_FETCHING_AVAILABLE_TYPES';\r\nexport const INIT_AVAILABLE_TYPES = 'INIT_AVAILABLE_TYPES';\r\nexport const FINISH_FETCHING_AVAILABLE_TYPES = 'FINISH_FETCHING_AVAILABLE_TYPES';\r\nexport const UPDATE_ELEMENT_TYPE = 'UPDATE_ELEMENT_TYPE';\r\n\r\nexport const OPEN_CHANGE_TYPE_MODAL = 'OPEN_CHANGE_TYPE_MODAL';\r\nexport const CLOSE_CHANGE_TYPE_MODAL = 'CLOSE_CHANGE_TYPE_MODAL';\r\nexport const TOGGLE_CHANGE_TYPE_MODAL = 'TOGGLE_CHANGE_TYPE_MODAL';\r\n","export const CHANGE_ELEMENT_ID = 'CHANGE_ELEMENT_ID';\r\nexport const START_CHANGING_ELEMENT_ID = 'START_CHANGING_ELEMENT_ID';\r\nexport const FINISH_CHANGING_ELEMENT_ID = 'FINISH_CHANGING_ELEMENT_ID';\r\n\r\nexport const OPEN_CHANGE_ELEMENT_ID_MODAL = 'OPEN_CHANGE_ELEMENT_ID_MODAL';\r\nexport const CLOSE_CHANGE_ELEMENT_ID_MODAL = 'CLOSE_CHANGE_ELEMENT_ID_MODAL';\r\nexport const TOGGLE_CHANGE_ELEMENT_ID_MODAL = 'TOGGLE_CHANGE_ELEMENT_ID_MODAL';\r\nexport const CLEAN_CHANGE_ELEMENT_ID_MODAL = 'CLEAN_CHANGE_ELEMENT_ID_MODAL';\r\n","export const UPDATE_ACTIVATION_OPTIONS = 'UPDATE_ACTIVATION_OPTIONS';\r\n\r\nexport const START_UPDATING_ACTIVATION_OPTIONS = 'START_UPDATING_ACTIVATION_OPTIONS';\r\nexport const FINISH_UPDATING_ACTIVATION_OPTIONS = 'FINISH_UPDATING_ACTIVATION_OPTIONS';\r\n\r\nexport const OPEN_UPDATING_ACTIVATION_OPTIONS_MODAL = 'OPEN_UPDATING_ACTIVATION_OPTIONS_MODAL';\r\nexport const CLOSE_UPDATING_ACTIVATION_OPTIONS_MODAL = 'CLOSE_UPDATING_ACTIVATION_OPTIONS_MODAL';\r\nexport const TOGGLE_UPDATING_ACTIVATION_OPTIONS_MODAL = 'TOGGLE_UPDATING_ACTIVATION_OPTIONS_MODAL';\r\nexport const CLEAN_UPDATING_ACTIVATION_OPTIONS_MODAL = 'CLEAN_UPDATING_ACTIVATION_OPTIONS_MODAL';\r\n","export const DELETE_ELEMENT = 'DELETE_U_M_ELEMENT';\r\nexport const START_DELETING_ELEMENT = 'START_DELETING_U_M_ELEMENT';\r\nexport const FINISH_DELETING_ELEMENT = 'FINISH_DELETING_U_M_ELEMENT';\r\n\r\nexport const OPEN_DELETE_ELEMENT_MODAL = 'OPEN_DELETE_U_M_ELEMENT_MODAL';\r\nexport const CLOSE_DELETE_ELEMENT_MODAL = 'CLOSE_DELETE_U_M_ELEMENT_MODAL';\r\nexport const TOGGLE_DELETE_ELEMENT_MODAL = 'TOGGLE_DELETE_U_M_ELEMENT_MODAL';\r\nexport const CLEAN_DELETE_ELEMENT_MODAL = 'CLEAN_DELETE_U_M_ELEMENT_MODAL';\r\n","export const COPY_ELEMENT = 'COPY_U_M_ELEMENT';\r\nexport const START_COPYING_ELEMENT = 'START_COPYING_U_M_ELEMENT';\r\nexport const FINISH_COPYING_ELEMENT = 'FINISH_COPYING_U_M_ELEMENT';\r\n\r\nexport const OPEN_COPY_ELEMENT_MODAL = 'OPEN_COPY_U_M_ELEMENT_MODAL';\r\nexport const CLOSE_COPY_ELEMENT_MODAL = 'CLOSE_COPY_U_M_ELEMENT_MODAL';\r\nexport const TOGGLE_COPY_ELEMENT_MODAL = 'TOGGLE_COPY_U_M_ELEMENT_MODAL';\r\nexport const CLEAN_COPY_ELEMENT_MODAL = 'CLEAN_COPY_U_M_ELEMENT_MODAL';\r\n","export const FETCH_AVAILABLE_TYPES = 'FETCH_AVAILABLE_U_M_TYPES';\r\nexport const START_FETCHING_AVAILABLE_TYPES = 'START_FETCHING_AVAILABLE_U_M_TYPES';\r\nexport const INIT_AVAILABLE_TYPES = 'INIT_AVAILABLE_U_M_TYPES';\r\nexport const FINISH_FETCHING_AVAILABLE_TYPES = 'FINISH_FETCHING_AVAILABLE_U_M_TYPES';\r\nexport const UPDATE_ELEMENT_TYPE = 'UPDATE_U_M_ELEMENT_TYPE';\r\n\r\nexport const OPEN_CHANGE_TYPE_MODAL = 'OPEN_CHANGE_U_M_TYPE_MODAL';\r\nexport const CLOSE_CHANGE_TYPE_MODAL = 'CLOSE_CHANGE_U_M_TYPE_MODAL';\r\nexport const TOGGLE_CHANGE_TYPE_MODAL = 'TOGGLE_CHANGE_U_M_TYPE_MODAL';\r\n","export const CHANGE_ELEMENT_ID = 'CHANGE_U_M_ELEMENT_ID';\r\nexport const START_CHANGING_ELEMENT_ID = 'START_CHANGING_U_M_ELEMENT_ID';\r\nexport const FINISH_CHANGING_ELEMENT_ID = 'FINISH_CHANGING_U_M_ELEMENT_ID';\r\n\r\nexport const OPEN_CHANGE_ELEMENT_ID_MODAL = 'OPEN_CHANGE_U_M_ELEMENT_ID_MODAL';\r\nexport const CLOSE_CHANGE_ELEMENT_ID_MODAL = 'CLOSE_CHANGE_U_M_ELEMENT_ID_MODAL';\r\nexport const TOGGLE_CHANGE_ELEMENT_ID_MODAL = 'TOGGLE_CHANGE_U_M_ELEMENT_ID_MODAL';\r\nexport const CLEAN_CHANGE_ELEMENT_ID_MODAL = 'CLEAN_CHANGE_U_M_ELEMENT_ID_MODAL';\r\n","export const CHANGE_USER_EMAIL = 'CHANGE_USER_EMAIL';\r\n\r\nexport const START_CHANGING_USER_EMAIL = 'START_CHANGING_USER_EMAIL';\r\nexport const FINISH_CHANGING_USER_EMAIL = 'FINISH_CHANGING_USER_EMAIL';\r\n\r\nexport const OPEN_CHANGE_USER_EMAIL_MODAL = 'OPEN_CHANGE_USER_EMAIL_MODAL';\r\nexport const CLOSE_CHANGE_USER_EMAIL_MODAL = 'CLOSE_CHANGE_USER_EMAIL_MODAL';\r\nexport const TOGGLE_CHANGE_USER_EMAIL_MODAL = 'TOGGLE_CHANGE_USER_EMAIL_MODAL';\r\nexport const CLEAN_CHANGE_USER_EMAIL_MODAL = 'CLEAN_CHANGE_USER_EMAIL_MODAL';\r\n","export const UPDATE_ACTIVATION_OPTIONS = 'UPDATE_U_M_ACTIVATION_OPTIONS';\r\n\r\nexport const START_UPDATING_ACTIVATION_OPTIONS = 'START_UPDATING_U_M_ACTIVATION_OPTIONS';\r\nexport const FINISH_UPDATING_ACTIVATION_OPTIONS = 'FINISH_UPDATING_U_M_ACTIVATION_OPTIONS';\r\n\r\nexport const OPEN_UPDATING_ACTIVATION_OPTIONS_MODAL = 'OPEN_UPDATING_U_M_ACTIVATION_OPTIONS_MODAL';\r\nexport const CLOSE_UPDATING_ACTIVATION_OPTIONS_MODAL = 'CLOSE_UPDATING_U_M_ACTIVATION_OPTIONS_MODAL';\r\nexport const TOGGLE_UPDATING_ACTIVATION_OPTIONS_MODAL = 'TOGGLE_UPDATING_U_M_ACTIVATION_OPTIONS_MODAL';\r\nexport const CLEAN_UPDATING_ACTIVATION_OPTIONS_MODAL = 'CLEAN_UPDATING_U_M_ACTIVATION_OPTIONS_MODAL';\r\n","export { default as http } from './http';\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const fetchElementData = (elementId, elementMetaType) => ({ type: actionTypes.FETCH_ELEMENT_DATA, elementId, elementMetaType });\r\nexport const startFetchingElementData = () => ({ type: actionTypes.START_FETCHING_ELEMENT_DATA });\r\nexport const finishFetchingElementData = () => ({ type: actionTypes.FINISH_FETCHING_ELEMENT_DATA });\r\nexport const initElementData = (elementData) => ({ type: actionTypes.INIT_ELEMENT_DATA, elementData });\r\n\r\nexport const fetchElementConfiguration = (elementMetaType, elementType) => ({ type: actionTypes.FETCH_ELEMENT_CONFIGURATION, elementMetaType, elementType });\r\nexport const startFetchingElementConfiguration = () => ({ type: actionTypes.START_FETCHING_ELEMENT_CONFIGURATION });\r\nexport const finishFetchingElementConfiguration = () => ({ type: actionTypes.FINISH_FETCHING_ELEMENT_CONFIGURATION });\r\nexport const initElementConfiguration = (elementConfigurationData) => ({ type: actionTypes.INIT_ELEMENT_CONFIGURATION, elementConfigurationData });\r\n\r\nexport const saveElementFormData = (elementMetaType, elementId, formName, form, elementArea) => ({ type: actionTypes.SAVE_ELEMENT_FORM_DATA, elementMetaType, elementId, formName, form, elementArea });\r\n\r\nexport const startSavingElementData = () => ({ type: actionTypes.START_SAVING_ELEMENT_DATA });\r\nexport const finishSavingElementData = () => ({ type: actionTypes.FINISH_SAVING_ELEMENT_DATA });\r\n","import sideBar6 from 'assets/utils/images/sidebar/city1.jpg';\r\nimport * as actionTypes from 'api/themeOptions/actionTypes';\r\n\r\nexport const themeOptionsReducer = (state = {\r\n backgroundColor: '',\r\n headerBackgroundColor: '',\r\n enableMobileMenuSmall: false,\r\n enableBackgroundImage: false,\r\n enableClosedSidebar: false,\r\n enableFixedHeader: true,\r\n enableHeaderShadow: true,\r\n enableSidebarShadow: true,\r\n enableFixedFooter: true,\r\n enableFixedSidebar: true,\r\n colorScheme: 'white',\r\n backgroundImage: sideBar6,\r\n backgroundImageOpacity: 'opacity-06',\r\n enablePageTitleIcon: true,\r\n enablePageTitleSubheading: true,\r\n enablePageTabsAlt: true,\r\n}, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_ENABLE_BACKGROUND_IMAGE:\r\n return {\r\n ...state,\r\n enableBackgroundImage: action.enableBackgroundImage\r\n };\r\n\r\n case actionTypes.SET_ENABLE_FIXED_HEADER:\r\n return {\r\n ...state,\r\n enableFixedHeader: action.enableFixedHeader\r\n };\r\n\r\n case actionTypes.SET_ENABLE_HEADER_SHADOW:\r\n return {\r\n ...state,\r\n enableHeaderShadow: action.enableHeaderShadow\r\n };\r\n\r\n case actionTypes.SET_ENABLE_SIDEBAR_SHADOW:\r\n return {\r\n ...state,\r\n enableSidebarShadow: action.enableSidebarShadow\r\n };\r\n\r\n case actionTypes.SET_ENABLE_PAGETITLE_ICON:\r\n return {\r\n ...state,\r\n enablePageTitleIcon: action.enablePageTitleIcon\r\n };\r\n\r\n case actionTypes.SET_ENABLE_PAGETITLE_SUBHEADING:\r\n return {\r\n ...state,\r\n enablePageTitleSubheading: action.enablePageTitleSubheading\r\n };\r\n\r\n case actionTypes.SET_ENABLE_PAGE_TABS_ALT:\r\n return {\r\n ...state,\r\n enablePageTabsAlt: action.enablePageTabsAlt\r\n };\r\n\r\n case actionTypes.SET_ENABLE_FIXED_SIDEBAR:\r\n return {\r\n ...state,\r\n enableFixedSidebar: action.enableFixedSidebar\r\n };\r\n\r\n case actionTypes.SET_ENABLE_MOBILE_MENU:\r\n return {\r\n ...state,\r\n enableMobileMenu: action.enableMobileMenu\r\n };\r\n\r\n case actionTypes.SET_ENABLE_MOBILE_MENU_SMALL:\r\n return {\r\n ...state,\r\n enableMobileMenuSmall: action.enableMobileMenuSmall\r\n };\r\n\r\n case actionTypes.SET_ENABLE_CLOSED_SIDEBAR:\r\n return {\r\n ...state,\r\n enableClosedSidebar: action.enableClosedSidebar\r\n };\r\n\r\n case actionTypes.SET_ENABLE_FIXED_FOOTER:\r\n return {\r\n ...state,\r\n enableFixedFooter: action.enableFixedFooter\r\n };\r\n\r\n case actionTypes.SET_BACKGROUND_COLOR:\r\n return {\r\n ...state,\r\n backgroundColor: action.backgroundColor\r\n };\r\n\r\n case actionTypes.SET_HEADER_BACKGROUND_COLOR:\r\n return {\r\n ...state,\r\n headerBackgroundColor: action.headerBackgroundColor\r\n };\r\n\r\n case actionTypes.SET_COLOR_SCHEME:\r\n return {\r\n ...state,\r\n colorScheme: action.colorScheme\r\n };\r\n\r\n case actionTypes.SET_BACKGROUND_IMAGE:\r\n return {\r\n ...state,\r\n backgroundImage: action.backgroundImage\r\n };\r\n\r\n case actionTypes.SET_BACKGROUND_IMAGE_OPACITY:\r\n return {\r\n ...state,\r\n backgroundImageOpacity: action.backgroundImageOpacity\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { authenticationContext } from 'infrastructure/authentication/authenticationContext';\r\n\r\nexport default {\r\n messagePlaceholder: {\r\n show: false,\r\n messages: [],\r\n message: '',\r\n messageType: ''\r\n },\r\n infrastructure: {\r\n image: ''\r\n },\r\n layout: {\r\n layoutInfo: {\r\n resources: {},\r\n menu: [],\r\n languages: [],\r\n supportedTranslations: []\r\n },\r\n isFetching: false\r\n },\r\n configuration: {\r\n },\r\n user: {\r\n data: {\r\n ...authenticationContext.getUserTokenData(),\r\n isAuthenticated: authenticationContext.isAuthenticated()\r\n },\r\n login: {\r\n isAuthenticating: false,\r\n authenticationFailed: false,\r\n isLoggingOut: false\r\n }\r\n },\r\n catalog: {\r\n element: {\r\n elementData: {\r\n name: '',\r\n displayName: '',\r\n associationGroups: [],\r\n startDate: '',\r\n endDate: '',\r\n isActive: false\r\n },\r\n isFetchingData: false,\r\n isSavingData: false\r\n },\r\n elementTypeConfiguration: {\r\n elementConfigurationData: {\r\n metaType: '',\r\n typeName: '',\r\n sections: [],\r\n properties: []\r\n },\r\n isFetchingConfigurationData: false\r\n },\r\n productTree: {\r\n tree: [],\r\n isFetching: false,\r\n isFetchingWholeTree: true,\r\n isRefreshing: true,\r\n config: null,\r\n isConfig: false\r\n },\r\n newElement: {\r\n availableTypes: [],\r\n isFetchingAvailableTypes: false,\r\n isCreatingNewElement: false,\r\n isModalOpen: false,\r\n currentElement: null\r\n },\r\n deleteElement: {\r\n isDeletingElement: false,\r\n isModalOpen: false,\r\n currentElement: null,\r\n deletionMethod: null\r\n },\r\n copyElement: {\r\n isCopyingElement: false,\r\n isModalOpen: false,\r\n currentElement: null,\r\n copyOption: null\r\n },\r\n changeElementType: {\r\n isModalOpen: false,\r\n availableTypes: [],\r\n isFetchingAvailableTypes: false,\r\n currentElement: null\r\n },\r\n changeElementId: {\r\n isModalOpen: false,\r\n isChangingElementId: false,\r\n currentElement: null\r\n },\r\n exportElement: {\r\n isModalOpen: false,\r\n isAddingExport: false,\r\n currentElement: null,\r\n availableExportDefinitions: []\r\n },\r\n activationOptions: {\r\n isModalOpen: false,\r\n isUpdatingActivationOptions: false,\r\n currentElement: null,\r\n openingSource: ''\r\n }\r\n },\r\n media: {\r\n elements: {\r\n elementsData: {\r\n medias: [],\r\n totalCount: 0\r\n },\r\n pageIndex: 0,\r\n isFetching: false,\r\n isSaving: false\r\n },\r\n element: {\r\n elementData: {\r\n name: '',\r\n displayName: '',\r\n associationGroups: [],\r\n startDate: '',\r\n endDate: '',\r\n isActive: false\r\n },\r\n isFetchingData: false,\r\n isSavingData: false,\r\n attachmentAssociations: [],\r\n isFetchingAssociations: false,\r\n },\r\n elementTypeConfiguration: {\r\n elementConfigurationData: {\r\n metaType: '',\r\n typeName: '',\r\n sections: [],\r\n properties: []\r\n },\r\n isFetchingConfigurationData: false\r\n },\r\n filter: {\r\n searchTerm: ''\r\n },\r\n uploadFiles: {\r\n namesInfo: null\r\n },\r\n deleteMediaElement: {\r\n isModalOpen: false\r\n },\r\n newMedias: {\r\n isFetching: false,\r\n mediaInfos: []\r\n },\r\n extensions: {\r\n supportedExtensions: []\r\n }\r\n },\r\n languageManagement: {\r\n filter: {\r\n searchTerm: ''\r\n },\r\n data: {\r\n isFetchingElements: false,\r\n isFetchingSearchTermData: false,\r\n data: []\r\n },\r\n export: {\r\n isFetchingExport: false,\r\n data: []\r\n }\r\n },\r\n dataManagement: {\r\n exportData: {\r\n isFetchingExports: false,\r\n data: []\r\n }\r\n },\r\n cms: {\r\n cmsTree: {\r\n tree: [],\r\n isFetching: false,\r\n isFetchingWholeTree: true,\r\n isRefreshing: true,\r\n config: null,\r\n isConfig: false\r\n }\r\n },\r\n userManagement: {\r\n element: {\r\n elementData: {\r\n name: '',\r\n displayName: '',\r\n associationGroups: [],\r\n startDate: '',\r\n endDate: '',\r\n isActive: false\r\n },\r\n isFetchingData: false,\r\n isSavingData: false\r\n },\r\n elementTypeConfiguration: {\r\n elementConfigurationData: {\r\n metaType: '',\r\n typeName: '',\r\n sections: [],\r\n properties: []\r\n },\r\n isFetchingConfigurationData: false\r\n },\r\n userManagementTree: {\r\n tree: [],\r\n isFetching: false,\r\n isFetchingWholeTree: true,\r\n isRefreshing: true,\r\n config: null,\r\n isConfig: false\r\n },\r\n newElement: {\r\n availableTypes: [],\r\n isFetchingAvailableTypes: false,\r\n isCreatingNewElement: false,\r\n isModalOpen: false,\r\n currentElement: null\r\n },\r\n deleteElement: {\r\n isDeletingElement: false,\r\n isModalOpen: false,\r\n currentElement: null,\r\n deletionMethod: null\r\n },\r\n copyElement: {\r\n isCopyingElement: false,\r\n isModalOpen: false,\r\n currentElement: null,\r\n copyOption: null\r\n },\r\n changeElementType: {\r\n isModalOpen: false,\r\n availableTypes: [],\r\n isFetchingAvailableTypes: false,\r\n currentElement: null\r\n },\r\n changeElementId: {\r\n isModalOpen: false,\r\n isChangingElementId: false,\r\n currentElement: null\r\n },\r\n changeUserEmail: {\r\n isModalOpen: false,\r\n isChangingUserEmail: false,\r\n currentElement: null\r\n },\r\n passwordUpdate: {\r\n isModalOpen: false,\r\n isUpdatingPassword: false,\r\n elementId: null\r\n },\r\n activationOptions: {\r\n isModalOpen: false,\r\n isUpdatingActivationOptions: false,\r\n currentElement: null,\r\n openingSource: ''\r\n }\r\n },\r\n search: {\r\n searchPhrase: '',\r\n isFetching: false,\r\n searchResults: {\r\n searchElements: [],\r\n totalCount: 0,\r\n modifiedElements: []\r\n },\r\n searchSuggestions: {},\r\n predefinedSearch: '',\r\n searchType: 'standard',\r\n predefinedSearchOptions: [],\r\n pageIndex: 0,\r\n pageSize: 20,\r\n isFetchingSuggestions: false\r\n },\r\n actions: {\r\n actions: [],\r\n icon: 'fal fa-magic text-primary',\r\n headingKey: 'actionManagementTitle',\r\n subheadingKey: 'actionManagementSubTitle'\r\n },\r\n element: {\r\n metatypeName: '',\r\n propertyData: {\r\n propertyName: '',\r\n suggestions: { searchPhrase: '', suggestionsElements: {} },\r\n isFetchingSuggestions: false\r\n }\r\n }\r\n};","import * as actionTypes from 'api/layout/actionTypes';\r\nimport { RAISE_MESSAGE, CLEAR_MESSAGE } from 'infrastructure/errorHandling/actionTypes';\r\nimport defaultStore from '../defaultStore';\r\n\r\nexport const layoutReducer = (state = defaultStore.layout, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_LAYOUT_INFO: {\r\n return { ...state, isFetching: true };\r\n }\r\n case actionTypes.INIT_LAYOUT_INFO: {\r\n return { ...state, layoutInfo: action.layoutInfo };\r\n }\r\n case actionTypes.FINISH_FETCHING_LAYOUT_INFO: {\r\n return { ...state, isFetching: false };\r\n }\r\n case actionTypes.SET_SELECTED_LANGUAGES: {\r\n const { name, isActive } = action.selectedLanguage;\r\n return {\r\n ...state,\r\n layoutInfo: {\r\n ...state.layoutInfo,\r\n supportedTranslations: state.layoutInfo.supportedTranslations.map((x) => (x.name === name ? { ...x, isActive } : { ...x }))\r\n }\r\n };\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n};\r\n\r\nexport const messagePlaceholderReducer = (state = defaultStore.messagePlaceholder, action) => {\r\n switch (action.type) {\r\n case RAISE_MESSAGE:\r\n return { messages: [...state.messages, { messageType: action.messageType, message: action.message, show: true, messageCode: action.messageCode }], };\r\n case CLEAR_MESSAGE: {\r\n const index = state.messages.indexOf(action.message);\r\n const newMessages = [...state.messages];\r\n newMessages.splice(index, 1);\r\n\r\n return { show: false, messages: newMessages };\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n","import _ from 'lodash';\r\nimport * as actionTypes from 'api/catalog/productTree/actionTypes';\r\nimport defaultStore from 'store/defaultStore';\r\n\r\nconst nodeNameIdString = '__&__';\r\n\r\nconst getFetchedElementWithPath = (elements, path, preexistingElements) => {\r\n const result = elements.map((e) => {\r\n const isExpanded = (preexistingElements && preexistingElements.some((pE) => `${path}${nodeNameIdString}${e.id}${nodeNameIdString}` === pE.id && pE.expanded));\r\n return ({\r\n ...e,\r\n title: e.isDirectory && e.childrenCount\r\n ? `${e.title} (${e.childrenCount})`\r\n : e.title,\r\n nodeName: e.id,\r\n elementId: e.id,\r\n id: `${path}${nodeNameIdString}${e.id}${nodeNameIdString}`,\r\n parentName: e.parent,\r\n parent: path,\r\n expanded: isExpanded\r\n });\r\n });\r\n return result;\r\n};\r\n\r\nconst getStubElements = (elements, path, preexisitingElements) => {\r\n const result = elements.filter((e) => e.isDirectory\r\n && (!preexisitingElements || !preexisitingElements.some((pE) => `${path}${nodeNameIdString}${e.id}${nodeNameIdString}` === pE.id && pE.expanded))).map((d) => {\r\n const parentKey = `${path}${nodeNameIdString}${d.id}${nodeNameIdString}`;\r\n return ({\r\n id: `stubId${parentKey}`,\r\n title: 'loading',\r\n subtitle: false,\r\n isDirectory: false,\r\n parent: `${parentKey}`,\r\n parentName: d.id\r\n });\r\n });\r\n return result;\r\n};\r\n\r\nconst getTreeWithFetchingNode = (tree, currentNode, isFetching) => {\r\n const newTree = _.cloneDeep(tree);\r\n if (currentNode && currentNode.nodePath) {\r\n const currentNodeId = tree.findIndex((e) => e.id === currentNode.nodePath);\r\n newTree[currentNodeId] = { ...newTree[currentNodeId], isFetching, expanded: currentNode.expanded };\r\n }\r\n return newTree;\r\n};\r\n\r\nconst getTreeWithExpandedNode = (tree, currentNode) => {\r\n const newTree = _.cloneDeep(tree);\r\n const currentNodeId = tree.findIndex((e) => e.id === currentNode.nodePath);\r\n newTree[currentNodeId] = { ...newTree[currentNodeId], expanded: currentNode.expanded };\r\n return newTree;\r\n};\r\n\r\nexport const productTreeReducer = (state = defaultStore.catalog.productTree, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_TREE_ELEMENTS: {\r\n if (state.isFetchingWholeTree) {\r\n return { ...state, isFetching: true, isFetchingWholeTree: true, tree: [...getTreeWithFetchingNode(state.tree, action.currentNode, true)] };\r\n }\r\n return { ...state, isFetching: true, tree: [...getTreeWithFetchingNode(state.tree, action.currentNode, true)] };\r\n }\r\n case actionTypes.INIT_TREE_ELEMENTS:\r\n {\r\n const stubElements = getStubElements(action.elements, action.rootKey);\r\n const fetchedElements = getFetchedElementWithPath(action.elements, action.rootKey);\r\n\r\n if (state.tree && state.tree.length > 0) {\r\n return state;\r\n }\r\n return { ...state, tree: [...fetchedElements, ...stubElements] };\r\n }\r\n case actionTypes.COLLAPSE_TREE_ELEMENT:\r\n {\r\n return { ...state, tree: [...getTreeWithExpandedNode(state.tree, action.currentNode)] };\r\n }\r\n case actionTypes.EXPAND_TREE_ELEMENT:\r\n {\r\n const path = action.currentNode.nodePath;\r\n const expandStubElements = getStubElements(action.elements, path);\r\n const expandFetchedElements = getFetchedElementWithPath(action.elements, path);\r\n\r\n const newTree = getTreeWithExpandedNode(state.tree, action.currentNode);\r\n if (action.needsAddingNewElements) {\r\n const newTreeWithoutLoadingChildren = [...newTree.filter((e) => e.parent !== path)];\r\n return { ...state, tree: [...newTreeWithoutLoadingChildren, ...expandFetchedElements, ...expandStubElements] };\r\n }\r\n return { ...state, tree: [...newTree] };\r\n }\r\n case actionTypes.FINISH_FETCHING_TREE_ELEMENTS: {\r\n return { ...state, isFetching: false, tree: [...getTreeWithFetchingNode(state.tree, action.currentNode, false, false)], isFetchingWholeTree: false };\r\n }\r\n case actionTypes.START_REFRESHING_TREE_ELEMENTS:\r\n {\r\n return { ...state, isRefreshing: true };\r\n }\r\n case actionTypes.INIT_REFRESHING_TREE_ELEMENTS:\r\n {\r\n let refreshingNodes = state.tree.filter((x) => x.elementId === action.data.nodeName);\r\n if (refreshingNodes === null || refreshingNodes.length === 0) {\r\n refreshingNodes = [{ id: action.data.nodeName }];\r\n }\r\n\r\n const refreshingNodeIds = refreshingNodes.map((x) => x.id);\r\n let refreshResults = refreshingNodes.map((refreshingNode) => {\r\n const refreshedStubElements = getStubElements(action.elements, refreshingNode.id, state.tree);\r\n const refreshedFetchedElements = getFetchedElementWithPath(action.elements, refreshingNode.id, state.tree);\r\n return [...refreshedStubElements, ...refreshedFetchedElements];\r\n });\r\n\r\n refreshResults = refreshResults.flat();\r\n const refreshedElementIds = refreshResults.map((x) => x.id);\r\n\r\n const newTreeWithoutNodeChildren = [...state.tree.filter((e) => !refreshingNodeIds.includes(e.parent))];\r\n const newTreeWithoutIdDuplicates = [...newTreeWithoutNodeChildren.filter((e) => !refreshedElementIds.includes(e.id))];\r\n\r\n const expandedNodes = newTreeWithoutIdDuplicates.filter((e) => e.expanded);\r\n const expandedNodeNames = expandedNodes.map((e) => e.nodeName);\r\n const newTreeWithoutObsoleteStubs = [...newTreeWithoutIdDuplicates.filter((e) => !(expandedNodeNames.includes(e.parentName) && e.id.startsWith('stubId')))];\r\n\r\n return { ...state, tree: [...newTreeWithoutObsoleteStubs, ...refreshResults] };\r\n }\r\n case actionTypes.CHANGE_ELEMENT_ID_IN_TREE: {\r\n const { currentElementId, newElementId } = action;\r\n return {\r\n ...state,\r\n tree: state.tree.map((x) => ({\r\n ...x,\r\n id: x.id.replace(`${nodeNameIdString}${currentElementId}${nodeNameIdString}`, `${nodeNameIdString}${newElementId}${nodeNameIdString}`),\r\n parent: x.parent.replace(`${nodeNameIdString}${currentElementId}${nodeNameIdString}`, `${nodeNameIdString}${newElementId}${nodeNameIdString}`),\r\n elementId: x.elementId === currentElementId ? newElementId : x.elementId,\r\n nodeName: x.nodeName === currentElementId ? newElementId : x.nodeName,\r\n parentName: x.parentName === currentElementId ? newElementId : x.parentName\r\n }))\r\n };\r\n }\r\n case actionTypes.FINISH_REFRESHING_TREE_ELEMENTS:\r\n {\r\n return { ...state, isRefreshing: false };\r\n }\r\n case actionTypes.START_FETCHING_TREE_CONFIG:\r\n return { ...state, isFetchingConfig: true };\r\n case actionTypes.FINISH_FETCHING_TREE_CONFIG:\r\n return { ...state, isFetchingConfig: false };\r\n case actionTypes.INIT_TREE_CONFIG:\r\n return { ...state, config: action.config };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { combineReducers } from 'redux';\r\nimport { productTreeReducer } from './productTree/reducers';\r\nimport { newElementReducer } from './newElement/reducers';\r\nimport { elementReducer, elementTypeConfigurationReducer } from './element/reducers';\r\nimport { deleteElementReducer } from './deleteElement/reducers';\r\nimport { copyElementReducer } from './copyElement/reducers';\r\nimport { changeElementTypeReducer } from './changeElementType/reducers';\r\nimport { changeElementIdReducer } from './changeElementId/reducers';\r\nimport { activationOptionsReducer } from './elementActivationOptions/reducers';\r\nimport { exportElementReducer } from './exportElement/reducers';\r\n\r\nexport const catalogReducer = combineReducers({\r\n element: elementReducer,\r\n elementTypeConfiguration: elementTypeConfigurationReducer,\r\n productTree: productTreeReducer,\r\n newElement: newElementReducer,\r\n deleteElement: deleteElementReducer,\r\n copyElement: copyElementReducer,\r\n changeElementType: changeElementTypeReducer,\r\n changeElementId: changeElementIdReducer,\r\n activationOptions: activationOptionsReducer,\r\n exportElement: exportElementReducer\r\n});\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/catalog/element/actionTypes';\r\n\r\nexport const elementReducer = (state = defaultStore.catalog.element, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_ELEMENT_DATA:\r\n return { ...state, isFetchingData: true };\r\n case actionTypes.FINISH_FETCHING_ELEMENT_DATA:\r\n return { ...state, isFetchingData: false };\r\n case actionTypes.START_SAVING_ELEMENT_DATA:\r\n return { ...state, isSavingData: true };\r\n case actionTypes.FINISH_SAVING_ELEMENT_DATA:\r\n return { ...state, isSavingData: false };\r\n case actionTypes.INIT_ELEMENT_DATA:\r\n return { ...state, elementData: action.elementData };\r\n default:\r\n return state;\r\n }\r\n};\r\nexport const elementTypeConfigurationReducer = (state = defaultStore.catalog.elementTypeConfiguration, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_ELEMENT_CONFIGURATION:\r\n return { ...state, isFetchingConfigurationData: true };\r\n case actionTypes.FINISH_FETCHING_ELEMENT_CONFIGURATION:\r\n return { ...state, isFetchingConfigurationData: false };\r\n case actionTypes.INIT_ELEMENT_CONFIGURATION:\r\n return { ...state, elementConfigurationData: action.elementConfigurationData };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/catalog/newElement/actionTypes';\r\n\r\nexport const newElementReducer = (state = defaultStore.catalog.newElement, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE:\r\n return { ...state, isFetchingAvailableTypes: true };\r\n case actionTypes.FINISH_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE:\r\n return { ...state, isFetchingAvailableTypes: false };\r\n case actionTypes.INIT_AVAILABLE_TYPES_FOR_PARENT_METATYPE:\r\n return { ...state, availableTypes: action.types };\r\n case actionTypes.START_CREATING_NEW_ELEMENT:\r\n return { ...state, isCreatingNewElement: true };\r\n case actionTypes.FINISH_CREATING_NEW_ELEMENT:\r\n return { ...state, isCreatingNewElement: false };\r\n case actionTypes.OPEN_NEW_ELEMENT_MODAL:\r\n return { ...state, isModalOpen: true, currentElement: { ...action.currentElement } };\r\n case actionTypes.CLOSE_NEW_ELEMENT_MODAL:\r\n return { ...state, isModalOpen: false, currentElement: null };\r\n case actionTypes.TOGGLE_NEW_ELEMENT_MODAL:\r\n return {\r\n ...state,\r\n isModalOpen: !state.isModalOpen,\r\n currentElement: state.isModalOpen ? null : state.currentElement\r\n };\r\n case actionTypes.CLEAN_NEW_ELEMENT_MODAL:\r\n return {\r\n ...state,\r\n availableTypes: defaultStore.catalog.newElement.availableTypes,\r\n currentElement: null\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/catalog/deleteElement/actionTypes';\r\n\r\nexport const deleteElementReducer = (state = defaultStore.catalog.deleteElement, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_DELETING_ELEMENT:\r\n return { ...state, isDeletingElement: true };\r\n case actionTypes.FINISH_DELETING_ELEMENT:\r\n return { ...state, isDeletingElement: false };\r\n case actionTypes.OPEN_DELETE_ELEMENT_MODAL:\r\n return { ...state, isModalOpen: true, currentElement: { ...action.currentElement } };\r\n case actionTypes.CLOSE_DELETE_ELEMENT_MODAL:\r\n return { ...state, isModalOpen: false, currentElement: null };\r\n case actionTypes.TOGGLE_DELETE_ELEMENT_MODAL:\r\n return {\r\n ...state,\r\n isModalOpen: !state.isModalOpen,\r\n currentElement: state.isModalOpen ? null : state.currentElement\r\n };\r\n case actionTypes.CLEAN_DELETE_ELEMENT_MODAL:\r\n return {\r\n ...state,\r\n currentElement: null,\r\n deletionMethod: { ...action.deletionMethod }\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/catalog/copyElement/actionTypes';\r\n\r\nexport const copyElementReducer = (state = defaultStore.catalog.copyElement, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_COPYING_ELEMENT:\r\n return { ...state, isCopyingElement: true };\r\n case actionTypes.FINISH_COPYING_ELEMENT:\r\n return { ...state, isCopyingElement: false };\r\n case actionTypes.OPEN_COPY_ELEMENT_MODAL:\r\n return { ...state, isModalOpen: true, currentElement: { ...action.currentElement } };\r\n case actionTypes.CLOSE_COPY_ELEMENT_MODAL:\r\n return { ...state, isModalOpen: false, currentElement: null };\r\n case actionTypes.TOGGLE_COPY_ELEMENT_MODAL:\r\n return {\r\n ...state,\r\n isModalOpen: !state.isModalOpen,\r\n currentElement: state.isModalOpen ? null : state.currentElement\r\n };\r\n case actionTypes.CLEAN_COPY_ELEMENT_MODAL:\r\n return {\r\n ...state,\r\n currentElement: null,\r\n copyOption: { ...action.copyOption }\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/catalog/changeElementType/actionTypes';\r\n\r\nexport const changeElementTypeReducer = (state = defaultStore.catalog.changeElementType, action) => {\r\n switch (action.type) {\r\n case actionTypes.INIT_AVAILABLE_TYPES:\r\n return { ...state, availableTypes: action.types };\r\n case actionTypes.OPEN_CHANGE_TYPE_MODAL:\r\n return { ...state, isModalOpen: true, currentElement: { ...action.currentElement } };\r\n case actionTypes.CLOSE_CHANGE_TYPE_MODAL:\r\n return { ...state, isModalOpen: false };\r\n case actionTypes.TOGGLE_CHANGE_TYPE_MODAL:\r\n return {\r\n ...state,\r\n isModalOpen: !state.isModalOpen,\r\n currentElement: state.isModalOpen ? null : state.currentElement\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/catalog/changeElementId/actionTypes';\r\n\r\nexport const changeElementIdReducer = (state = defaultStore.catalog.changeElementId, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_CHANGING_ELEMENT_ID:\r\n return { ...state, isChangingElementId: true };\r\n case actionTypes.FINISH_CHANGING_ELEMENT_ID:\r\n return { ...state, isChangingElementId: false };\r\n case actionTypes.OPEN_CHANGE_ELEMENT_ID_MODAL:\r\n return { ...state, isModalOpen: true, currentElement: { ...action.currentElement } };\r\n case actionTypes.CLOSE_CHANGE_ELEMENT_ID_MODAL:\r\n return { ...state, isModalOpen: false, currentElement: null };\r\n case actionTypes.TOGGLE_CHANGE_ELEMENT_ID_MODAL:\r\n return {\r\n ...state,\r\n isModalOpen: !state.isModalOpen,\r\n currentElement: state.isModalOpen ? null : state.currentElement\r\n };\r\n case actionTypes.CLEAN_CHANGE_ELEMENT_ID_MODAL:\r\n return {\r\n ...state,\r\n currentElement: null\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/catalog/elementActivationOptions/actionTypes';\r\n\r\nexport const activationOptionsReducer = (state = defaultStore.catalog.activationOptions, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_UPDATING_ACTIVATION_OPTIONS:\r\n return { ...state, isUpdatingActivationOptions: true };\r\n case actionTypes.FINISH_UPDATING_ACTIVATION_OPTIONS:\r\n return { ...state, isUpdatingActivationOptions: false };\r\n case actionTypes.OPEN_UPDATING_ACTIVATION_OPTIONS_MODAL:\r\n return { ...state, isModalOpen: true, currentElement: { ...action.currentElement }, openingSource: action.openingSource };\r\n case actionTypes.CLOSE_UPDATING_ACTIVATION_OPTIONS_MODAL:\r\n return { ...state, isModalOpen: false, currentElement: null, openingSource: '' };\r\n case actionTypes.TOGGLE_UPDATING_ACTIVATION_OPTIONS_MODAL:\r\n return {\r\n ...state,\r\n isModalOpen: !state.isModalOpen,\r\n currentElement: state.isModalOpen ? null : state.currentElement,\r\n openingSource: state.isModalOpen ? null : state.openingSource,\r\n };\r\n case actionTypes.CLEAN_UPDATING_ACTIVATION_OPTIONS_MODAL:\r\n return {\r\n ...state,\r\n currentElement: null,\r\n openingSource: ''\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/catalog/exportElement/actionTypes';\r\n\r\nexport const exportElementReducer = (state = defaultStore.catalog.exportElement, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_ADDING_EXPORT_ELEMENT:\r\n return { ...state, isAddingExport: true };\r\n case actionTypes.FINISH_ADDING_EXPORT_ELEMENT:\r\n return { ...state, isAddingExport: false };\r\n case actionTypes.INIT_AVAILABLE_EXPORT_DEFINITIONS:\r\n return { ...state, availableExportDefinitions: action.exportDefinitions };\r\n case actionTypes.OPEN_EXPORT_ELEMENT_MODAL:\r\n return { ...state, isModalOpen: true, currentElement: { ...action.currentElement } };\r\n case actionTypes.CLOSE_EXPORT_ELEMENT_MODAL:\r\n return { ...state, isModalOpen: false, currentElement: null };\r\n case actionTypes.TOGGLE_EXPORT_ELEMENT_MODAL:\r\n return {\r\n ...state,\r\n isModalOpen: !state.isModalOpen,\r\n currentElement: state.isModalOpen ? null : state.currentElement\r\n };\r\n case actionTypes.CLEAN_EXPORT_ELEMENT_MODAL:\r\n return {\r\n ...state,\r\n currentElement: null\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { combineReducers } from 'redux';\r\nimport defaultStore from 'store/defaultStore';\r\nimport { SET_USER_DATA, CLEAR_USER_DATA } from 'api/user/login/actionTypes';\r\nimport { loginReducer } from './loginReducer';\r\n\r\nconst userDataReducer = (state = defaultStore.user.data, action) => {\r\n switch (action.type) {\r\n case SET_USER_DATA:\r\n return { ...action.data };\r\n case CLEAR_USER_DATA:\r\n return {\r\n isAuthenticated: false\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const userReducer = combineReducers({\r\n data: userDataReducer,\r\n login: loginReducer,\r\n});\r\n","import * as actionTypes from 'api/user/login/actionTypes';\r\nimport defaultStore from '../../defaultStore';\r\n\r\nexport const loginReducer = (state = defaultStore.user.login, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_USER_LOGIN:\r\n return {\r\n ...state,\r\n isAuthenticating: true\r\n };\r\n case actionTypes.FINISH_USER_LOGIN:\r\n return {\r\n ...state,\r\n isAuthenticating: false\r\n };\r\n case actionTypes.USER_AUTHENTICATION_SUCCEEDED:\r\n return {\r\n ...state,\r\n authenticationFailed: false\r\n };\r\n case actionTypes.USER_AUTHENTICATION_FAILED:\r\n return {\r\n ...state,\r\n authenticationFailed: true\r\n };\r\n case actionTypes.START_USER_LOGOUT:\r\n return {\r\n ...state,\r\n isLoggingOut: true\r\n };\r\n case actionTypes.FINISH_USER_LOGOUT:\r\n return {\r\n ...state,\r\n isLoggingOut: false\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { combineReducers } from 'redux';\r\nimport * as actionTypes from 'api/media/actionTypes';\r\nimport defaultStore from '../defaultStore';\r\n\r\nexport const elementReducer = (state = defaultStore.media.element, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_MEDIA_DATA:\r\n return { ...state, isFetchingData: true };\r\n case actionTypes.FINISH_FETCHING_MEDIA_DATA:\r\n return { ...state, isFetchingData: false };\r\n case actionTypes.START_SAVING_MEDIA_DATA:\r\n return { ...state, isSavingData: true };\r\n case actionTypes.FINISH_SAVING_MEDIA_DATA:\r\n return { ...state, isSavingData: false };\r\n case actionTypes.INIT_MEDIA_DATA:\r\n return { ...state, elementData: action.elementData };\r\n case actionTypes.START_FETCHING_ATTACHMENT_ASSOCIATIONS:\r\n return { ...state, isFetchingAssociations: true };\r\n case actionTypes.FINISH_FETCHING_ATTACHMENT_ASSOCIATIONS:\r\n return { ...state, isFetchingAssociations: false };\r\n case actionTypes.INIT_ATTACHMENT_ASSOCIATIONS:\r\n return { ...state, attachmentAssociations: action.attachmentAssociations };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const elementTypeConfigurationReducer = (state = defaultStore.media.elementTypeConfiguration, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_MEDIA_CONFIGURATION:\r\n return { ...state, isFetchingConfigurationData: true };\r\n case actionTypes.FINISH_FETCHING_MEDIA_CONFIGURATION:\r\n return { ...state, isFetchingConfigurationData: false };\r\n case actionTypes.INIT_MEDIA_CONFIGURATION:\r\n return { ...state, elementConfigurationData: action.mediaConfigurationData };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const elementsReducer = (state = defaultStore.media.elements, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_MEDIA_ELEMENTS:\r\n return { ...state, isFetching: true };\r\n case actionTypes.INIT_MEDIA_ELEMENTS:\r\n if (state.pageIndex > 0) {\r\n return {\r\n ...state,\r\n elementsData: {\r\n totalCount: action.elements.totalCount,\r\n medias: action.isPrependingMedia ? [...state.elementsData.medias, ...action.elements.medias] : [...action.elements.medias],\r\n },\r\n };\r\n }\r\n\r\n return { ...state, elementsData: action.elements };\r\n case actionTypes.TOGGLE_MEDIA_ELEMENT_SELECTION:\r\n return {\r\n ...state,\r\n elementsData: {\r\n ...state.elementsData,\r\n medias: state.elementsData.medias.map((mediaElement) => {\r\n if (mediaElement.name === action.elementName) {\r\n return { ...mediaElement, selected: !mediaElement.selected };\r\n }\r\n\r\n return action.selectionMode === 'single' ? { ...mediaElement, selected: false } : mediaElement;\r\n }),\r\n },\r\n };\r\n case actionTypes.LOAD_MORE_MEDIA:\r\n return { ...state, pageIndex: state.pageIndex + 1 };\r\n case actionTypes.INIT_FILTERS:\r\n return { ...state, pageIndex: 0 };\r\n case actionTypes.FINISH_FETCHING_MEDIA_ELEMENTS: {\r\n return { ...state, isFetching: false };\r\n }\r\n case actionTypes.DELETE_MEDIA_ELEMENTS:\r\n return { ...state, fileNames: action.fileNames };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const filterReducer = (state = defaultStore.media.filter, action) => {\r\n switch (action.type) {\r\n case actionTypes.INIT_FILTERS:\r\n return { ...state, searchTerm: action.searchTerm, filterExtensions: action.filterExtensions };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const uploadFilesReducer = (state = defaultStore.media.uploadFiles, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_FILE_NAMES_INFO:\r\n return { ...state, isFetchingNamesInfo: true };\r\n case actionTypes.FINISH_FETCHING_FILE_NAMES_INFO:\r\n return { ...state, isFetchingNamesInfo: false };\r\n case actionTypes.INIT_FILE_NAMES_INFO:\r\n return { ...state, namesInfo: action.fileNamesInfo };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const newMediasReducer = (state = defaultStore.media.newMedias, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_MEDIA_INFOS:\r\n return { ...state, isFetching: true };\r\n case actionTypes.FINISH_FETCHING_MEDIA_INFOS:\r\n return { ...state, isFetching: false };\r\n case actionTypes.INIT_MEDIA_INFOS:\r\n return { ...state, mediaInfos: action.mediaInfos };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const mediaExtensionsReducer = (state = defaultStore.media.extensions, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_SUPPORTED_EXTENSIONS:\r\n return { ...state, isFetchingSupportedExtensions: true };\r\n case actionTypes.FINISH_FETCHING_SUPPORTED_EXTENSIONS:\r\n return { ...state, isFetchingSupportedExtensions: false };\r\n case actionTypes.INIT_SUPPORTED_EXTENSIONS:\r\n return { ...state, supportedExtensions: action.supportedExtensions };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const mediaReducer = combineReducers({\r\n elements: elementsReducer,\r\n element: elementReducer,\r\n elementTypeConfiguration: elementTypeConfigurationReducer,\r\n filter: filterReducer,\r\n uploadFiles: uploadFilesReducer,\r\n newMedias: newMediasReducer,\r\n extensions: mediaExtensionsReducer\r\n});\r\n","import _ from 'lodash';\r\nimport * as actionTypes from 'api/cms/cmsTree/actionTypes';\r\nimport defaultStore from 'store/defaultStore';\r\n\r\nconst nodeNameIdString = '__&__';\r\n\r\nconst getFetchedElementWithPath = (elements, path, preexistingElements) => {\r\n const result = elements.map((e) => {\r\n const isExpanded = (preexistingElements && preexistingElements.some((pE) => `${path}${nodeNameIdString}${e.id}${nodeNameIdString}` === pE.id && pE.expanded));\r\n return ({\r\n ...e,\r\n title: e.isDirectory && e.childrenCount\r\n ? `${e.title} (${e.childrenCount})`\r\n : e.title,\r\n nodeName: e.id,\r\n elementId: e.id,\r\n id: `${path}${nodeNameIdString}${e.id}${nodeNameIdString}`,\r\n parentName: e.parent,\r\n parent: path,\r\n expanded: isExpanded\r\n });\r\n });\r\n return result;\r\n};\r\n\r\nconst getStubElements = (elements, path, preexisitingElements) => {\r\n const result = elements.filter((e) => e.isDirectory\r\n && (!preexisitingElements || !preexisitingElements.some((pE) => `${path}${nodeNameIdString}${e.id}${nodeNameIdString}` === pE.id && pE.expanded))).map((d) => {\r\n const parentKey = `${path}${nodeNameIdString}${d.id}${nodeNameIdString}`;\r\n return ({\r\n id: `stubId${parentKey}`,\r\n title: 'loading',\r\n subtitle: false,\r\n isDirectory: false,\r\n parent: `${parentKey}`,\r\n parentName: d.id\r\n });\r\n });\r\n return result;\r\n};\r\n\r\nconst getTreeWithFetchingNode = (tree, currentNode, isFetching) => {\r\n const newTree = _.cloneDeep(tree);\r\n if (currentNode && currentNode.nodePath) {\r\n const currentNodeId = tree.findIndex((e) => e.id === currentNode.nodePath);\r\n newTree[currentNodeId] = { ...newTree[currentNodeId], isFetching };\r\n }\r\n return newTree;\r\n};\r\n\r\nconst getTreeWithExpandedNode = (tree, currentNode) => {\r\n const newTree = _.cloneDeep(tree);\r\n const currentNodeId = tree.findIndex((e) => e.id === currentNode.nodePath);\r\n newTree[currentNodeId] = { ...newTree[currentNodeId], expanded: currentNode.expanded };\r\n return newTree;\r\n};\r\n\r\nexport const cmsTreeReducer = (state = defaultStore.cms.cmsTree, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_CMS_TREE_ELEMENTS: {\r\n if (state.isFetchingWholeTree) {\r\n return { ...state, isFetching: true, isFetchingWholeTree: true, tree: [...getTreeWithFetchingNode(state.tree, action.currentNode, true)] };\r\n }\r\n return { ...state, isFetching: true, tree: [...getTreeWithFetchingNode(state.tree, action.currentNode, true)] };\r\n }\r\n case actionTypes.INIT_CMS_TREE_ELEMENTS: {\r\n const stubElements = getStubElements(action.elements, action.rootKey);\r\n const fetchedElements = getFetchedElementWithPath(action.elements, action.rootKey);\r\n\r\n if (state.tree && state.tree.length > 0) {\r\n return state;\r\n }\r\n return { ...state, tree: [...fetchedElements, ...stubElements] };\r\n }\r\n case actionTypes.COLLAPSE_CMS_TREE_ELEMENT: {\r\n return { ...state, tree: [...getTreeWithExpandedNode(state.tree, action.currentNode)] };\r\n }\r\n case actionTypes.EXPAND_CMS_TREE_ELEMENT: {\r\n const path = action.currentNode.nodePath;\r\n const expandStubElements = getStubElements(action.elements, path);\r\n const expandFetchedElements = getFetchedElementWithPath(action.elements, path);\r\n\r\n const newTree = getTreeWithExpandedNode(state.tree, action.currentNode);\r\n if (action.needsAddingNewElements) {\r\n const newTreeWithoutLoadingChildren = [...newTree.filter((e) => e.parent !== path)];\r\n return { ...state, tree: [...newTreeWithoutLoadingChildren, ...expandFetchedElements, ...expandStubElements] };\r\n }\r\n return { ...state, tree: [...newTree] };\r\n }\r\n case actionTypes.FINISH_FETCHING_CMS_TREE_ELEMENTS: {\r\n return { ...state, isFetching: false, tree: [...getTreeWithFetchingNode(state.tree, action.currentNode, false, false)], isFetchingWholeTree: false };\r\n }\r\n case actionTypes.START_REFRESHING_CMS_TREE_ELEMENTS: {\r\n return { ...state, isRefreshing: true };\r\n }\r\n case actionTypes.INIT_REFRESHING_CMS_TREE_ELEMENTS: {\r\n let refreshingNodes = state.tree.filter((x) => x.elementId === action.data.nodeName);\r\n if (refreshingNodes === null || refreshingNodes.length === 0) {\r\n refreshingNodes = [{ id: action.data.nodeName }];\r\n }\r\n\r\n const refreshingNodeIds = refreshingNodes.map((x) => x.id);\r\n let refreshResults = refreshingNodes.map((refreshingNode) => {\r\n const refreshedStubElements = getStubElements(action.elements, refreshingNode.id, state.tree);\r\n const refreshedFetchedElements = getFetchedElementWithPath(action.elements, refreshingNode.id, state.tree);\r\n return [...refreshedStubElements, ...refreshedFetchedElements];\r\n });\r\n\r\n refreshResults = refreshResults.flat();\r\n const refreshedElementIds = refreshResults.map((x) => x.id);\r\n\r\n const newTreeWithoutNodeChildren = [...state.tree.filter((e) => !refreshingNodeIds.includes(e.parent))];\r\n const newTreeWithoutIdDuplicates = [...newTreeWithoutNodeChildren.filter((e) => !refreshedElementIds.includes(e.id))];\r\n\r\n const expandedNodes = newTreeWithoutIdDuplicates.filter((e) => e.expanded);\r\n const expandedNodeNames = expandedNodes.map((e) => e.nodeName);\r\n const newTreeWithoutObsoleteStubs = [...newTreeWithoutIdDuplicates.filter((e) => !(expandedNodeNames.includes(e.parentName) && e.id.startsWith('stubId')))];\r\n\r\n return { ...state, tree: [...newTreeWithoutObsoleteStubs, ...refreshResults] };\r\n }\r\n case actionTypes.CHANGE_ELEMENT_CMS_ID_IN_TREE: {\r\n const { currentElementId, newElementId } = action;\r\n return {\r\n ...state,\r\n tree: state.tree.map((x) => ({\r\n ...x,\r\n id: x.id.replace(`${nodeNameIdString}${currentElementId}${nodeNameIdString}`, `${nodeNameIdString}${newElementId}${nodeNameIdString}`),\r\n parent: x.parent.replace(`${nodeNameIdString}${currentElementId}${nodeNameIdString}`, `${nodeNameIdString}${newElementId}${nodeNameIdString}`),\r\n elementId: x.elementId === currentElementId ? newElementId : x.elementId,\r\n nodeName: x.nodeName === currentElementId ? newElementId : x.nodeName,\r\n parentName: x.parentName === currentElementId ? newElementId : x.parentName\r\n }))\r\n };\r\n }\r\n case actionTypes.FINISH_REFRESHING_CMS_TREE_ELEMENTS: {\r\n return { ...state, isRefreshing: false };\r\n }\r\n case actionTypes.START_FETCHING_CMS_TREE_CONFIG:\r\n return { ...state, isFetchingConfig: true };\r\n case actionTypes.FINISH_FETCHING_CMS_TREE_CONFIG:\r\n return { ...state, isFetchingConfig: false };\r\n case actionTypes.INIT_CMS_TREE_CONFIG:\r\n return { ...state, config: action.config };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { combineReducers } from 'redux';\r\nimport { cmsTreeReducer } from './cmsTree/reducers';\r\n\r\nexport const cmsReducer = combineReducers({\r\n cmsTree: cmsTreeReducer,\r\n});\r\n","import _ from 'lodash';\r\nimport * as actionTypes from 'api/userManagement/userManagementTree/actionTypes';\r\nimport defaultStore from 'store/defaultStore';\r\n\r\nconst nodeNameIdString = '__&__';\r\n\r\nconst getFetchedElementWithPath = (elements, path, preexistingElements) => {\r\n const result = elements.map((e) => {\r\n const isExpanded = (preexistingElements && preexistingElements.some((pE) => `${path}${nodeNameIdString}${e.id}${nodeNameIdString}` === pE.id && pE.expanded));\r\n return ({\r\n ...e,\r\n title: e.isDirectory && e.childrenCount\r\n ? `${e.title} (${e.childrenCount})`\r\n : e.title,\r\n nodeName: e.id,\r\n elementId: e.id,\r\n id: `${path}${nodeNameIdString}${e.id}${nodeNameIdString}`,\r\n parentName: e.parent,\r\n parent: path,\r\n expanded: isExpanded\r\n });\r\n });\r\n return result;\r\n};\r\n\r\nconst getStubElements = (elements, path, preexisitingElements) => {\r\n const result = elements.filter((e) => e.isDirectory\r\n && (!preexisitingElements || !preexisitingElements.some((pE) => `${path}${nodeNameIdString}${e.id}${nodeNameIdString}` === pE.id && pE.expanded))).map((d) => {\r\n const parentKey = `${path}${nodeNameIdString}${d.id}${nodeNameIdString}`;\r\n return ({\r\n id: `stubId${parentKey}`,\r\n title: 'loading',\r\n subtitle: false,\r\n isDirectory: false,\r\n parent: `${parentKey}`,\r\n parentName: d.id\r\n });\r\n });\r\n return result;\r\n};\r\n\r\nconst getTreeWithFetchingNode = (tree, currentNode, isFetching) => {\r\n const newTree = _.cloneDeep(tree);\r\n if (currentNode && currentNode.nodePath) {\r\n const currentNodeId = tree.findIndex((e) => e.id === currentNode.nodePath);\r\n newTree[currentNodeId] = { ...newTree[currentNodeId], isFetching };\r\n }\r\n return newTree;\r\n};\r\n\r\nconst getTreeWithExpandedNode = (tree, currentNode) => {\r\n const newTree = _.cloneDeep(tree);\r\n const currentNodeId = tree.findIndex((e) => e.id === currentNode.nodePath);\r\n newTree[currentNodeId] = { ...newTree[currentNodeId], expanded: currentNode.expanded };\r\n return newTree;\r\n};\r\n\r\nexport const userManagementTreeReducer = (state = defaultStore.userManagement.userManagementTree, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_TREE_ELEMENTS: {\r\n if (state.isFetchingWholeTree) {\r\n return { ...state, isFetching: true, isFetchingWholeTree: true, tree: [...getTreeWithFetchingNode(state.tree, action.currentNode, true)] };\r\n }\r\n return { ...state, isFetching: true, tree: [...getTreeWithFetchingNode(state.tree, action.currentNode, true)] };\r\n }\r\n case actionTypes.INIT_TREE_ELEMENTS:\r\n {\r\n const stubElements = getStubElements(action.elements, action.rootKey);\r\n const fetchedElements = getFetchedElementWithPath(action.elements, action.rootKey);\r\n\r\n if (state.tree && state.tree.length > 0) {\r\n return state;\r\n }\r\n return { ...state, tree: [...fetchedElements, ...stubElements] };\r\n }\r\n case actionTypes.COLLAPSE_TREE_ELEMENT:\r\n {\r\n return { ...state, tree: [...getTreeWithExpandedNode(state.tree, action.currentNode)] };\r\n }\r\n case actionTypes.EXPAND_TREE_ELEMENT:\r\n {\r\n const path = action.currentNode.nodePath;\r\n const expandStubElements = getStubElements(action.elements, path);\r\n const expandFetchedElements = getFetchedElementWithPath(action.elements, path);\r\n\r\n const newTree = getTreeWithExpandedNode(state.tree, action.currentNode);\r\n if (action.needsAddingNewElements) {\r\n const newTreeWithoutLoadingChildren = [...newTree.filter((e) => e.parent !== path)];\r\n return { ...state, tree: [...newTreeWithoutLoadingChildren, ...expandFetchedElements, ...expandStubElements] };\r\n }\r\n return { ...state, tree: [...newTree] };\r\n }\r\n case actionTypes.FINISH_FETCHING_TREE_ELEMENTS: {\r\n return { ...state, isFetching: false, tree: [...getTreeWithFetchingNode(state.tree, action.currentNode, false, false)], isFetchingWholeTree: false };\r\n }\r\n case actionTypes.START_REFRESHING_TREE_ELEMENTS:\r\n {\r\n return { ...state, isRefreshing: true };\r\n }\r\n case actionTypes.INIT_REFRESHING_TREE_ELEMENTS:\r\n {\r\n let refreshingNodes = state.tree.filter((x) => x.elementId === action.data.nodeName);\r\n if (refreshingNodes === null || refreshingNodes.length === 0) {\r\n refreshingNodes = [{ id: action.data.nodeName }];\r\n }\r\n\r\n const refreshingNodeIds = refreshingNodes.map((x) => x.id);\r\n let refreshResults = refreshingNodes.map((refreshingNode) => {\r\n const refreshedStubElements = getStubElements(action.elements, refreshingNode.id, state.tree);\r\n const refreshedFetchedElements = getFetchedElementWithPath(action.elements, refreshingNode.id, state.tree);\r\n return [...refreshedStubElements, ...refreshedFetchedElements];\r\n });\r\n\r\n refreshResults = refreshResults.flat();\r\n const refreshedElementIds = refreshResults.map((x) => x.id);\r\n\r\n const newTreeWithoutNodeChildren = [...state.tree.filter((e) => !refreshingNodeIds.includes(e.parent))];\r\n const newTreeWithoutIdDuplicates = [...newTreeWithoutNodeChildren.filter((e) => !refreshedElementIds.includes(e.id))];\r\n\r\n const expandedNodes = newTreeWithoutIdDuplicates.filter((e) => e.expanded);\r\n const expandedNodeNames = expandedNodes.map((e) => e.nodeName);\r\n const newTreeWithoutObsoleteStubs = [...newTreeWithoutIdDuplicates.filter((e) => !(expandedNodeNames.includes(e.parentName) && e.id.startsWith('stubId')))];\r\n\r\n return { ...state, tree: [...newTreeWithoutObsoleteStubs, ...refreshResults] };\r\n }\r\n case actionTypes.CHANGE_ELEMENT_ID_IN_TREE: {\r\n const { currentElementId, newElementId } = action;\r\n return {\r\n ...state,\r\n tree: state.tree.map((x) => ({\r\n ...x,\r\n id: x.id.replace(`${nodeNameIdString}${currentElementId}${nodeNameIdString}`, `${nodeNameIdString}${newElementId}${nodeNameIdString}`),\r\n parent: x.parent.replace(`${nodeNameIdString}${currentElementId}${nodeNameIdString}`, `${nodeNameIdString}${newElementId}${nodeNameIdString}`),\r\n elementId: x.elementId === currentElementId ? newElementId : x.elementId,\r\n nodeName: x.nodeName === currentElementId ? newElementId : x.nodeName,\r\n parentName: x.parentName === currentElementId ? newElementId : x.parentName\r\n }))\r\n };\r\n }\r\n case actionTypes.FINISH_REFRESHING_TREE_ELEMENTS:\r\n {\r\n return { ...state, isRefreshing: false };\r\n }\r\n case actionTypes.START_FETCHING_TREE_CONFIG:\r\n return { ...state, isFetchingConfig: true };\r\n case actionTypes.FINISH_FETCHING_TREE_CONFIG:\r\n return { ...state, isFetchingConfig: false };\r\n case actionTypes.INIT_TREE_CONFIG:\r\n return { ...state, config: action.config };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { combineReducers } from 'redux';\r\nimport { userManagementTreeReducer } from './userManagementTree/reducers';\r\nimport { newElementReducer } from './newElement/reducers';\r\nimport { elementReducer, elementTypeConfigurationReducer } from './element/reducers';\r\nimport { deleteElementReducer } from './deleteElement/reducers';\r\nimport { copyElementReducer } from './copyElement/reducers';\r\nimport { changeElementTypeReducer } from './changeElementType/reducers';\r\nimport { changeElementIdReducer } from './changeElementId/reducers';\r\nimport { changeUserEmailReducer } from './changeUserEmail/reducers';\r\nimport { passwordUpdateReducer } from './passwordUpdate/reducers';\r\nimport { activationOptionsReducer } from './elementActivationOptions/reducers';\r\n\r\nexport const userManagementReducer = combineReducers({\r\n element: elementReducer,\r\n elementTypeConfiguration: elementTypeConfigurationReducer,\r\n userManagementTree: userManagementTreeReducer,\r\n newElement: newElementReducer,\r\n deleteElement: deleteElementReducer,\r\n copyElement: copyElementReducer,\r\n changeElementType: changeElementTypeReducer,\r\n changeElementId: changeElementIdReducer,\r\n changeUserEmail: changeUserEmailReducer,\r\n passwordUpdate: passwordUpdateReducer,\r\n activationOptions: activationOptionsReducer,\r\n});\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/userManagement/element/actionTypes';\r\n\r\nexport const elementReducer = (state = defaultStore.userManagement.element, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_ELEMENT_DATA:\r\n return { ...state, isFetchingData: true };\r\n case actionTypes.FINISH_FETCHING_ELEMENT_DATA:\r\n return { ...state, isFetchingData: false };\r\n case actionTypes.START_SAVING_ELEMENT_DATA:\r\n return { ...state, isSavingData: true };\r\n case actionTypes.FINISH_SAVING_ELEMENT_DATA:\r\n return { ...state, isSavingData: false };\r\n case actionTypes.INIT_ELEMENT_DATA:\r\n return { ...state, elementData: action.elementData };\r\n default:\r\n return state;\r\n }\r\n};\r\nexport const elementTypeConfigurationReducer = (state = defaultStore.userManagement.elementTypeConfiguration, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_ELEMENT_CONFIGURATION:\r\n return { ...state, isFetchingConfigurationData: true };\r\n case actionTypes.FINISH_FETCHING_ELEMENT_CONFIGURATION:\r\n return { ...state, isFetchingConfigurationData: false };\r\n case actionTypes.INIT_ELEMENT_CONFIGURATION:\r\n return { ...state, elementConfigurationData: action.elementConfigurationData };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/userManagement/newElement/actionTypes';\r\n\r\nexport const newElementReducer = (state = defaultStore.userManagement.newElement, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE:\r\n return { ...state, isFetchingAvailableTypes: true };\r\n case actionTypes.FINISH_FETCHING_AVAILABLE_TYPES_FOR_PARENT_METATYPE:\r\n return { ...state, isFetchingAvailableTypes: false };\r\n case actionTypes.INIT_AVAILABLE_TYPES_FOR_PARENT_METATYPE:\r\n return { ...state, availableTypes: action.types };\r\n case actionTypes.START_CREATING_NEW_ELEMENT:\r\n return { ...state, isCreatingNewElement: true };\r\n case actionTypes.FINISH_CREATING_NEW_ELEMENT:\r\n return { ...state, isCreatingNewElement: false };\r\n case actionTypes.OPEN_NEW_ELEMENT_MODAL:\r\n return { ...state, isModalOpen: true, currentElement: { ...action.currentElement } };\r\n case actionTypes.CLOSE_NEW_ELEMENT_MODAL:\r\n return { ...state, isModalOpen: false, currentElement: null };\r\n case actionTypes.TOGGLE_NEW_ELEMENT_MODAL:\r\n return {\r\n ...state,\r\n isModalOpen: !state.isModalOpen,\r\n currentElement: state.isModalOpen ? null : state.currentElement\r\n };\r\n case actionTypes.CLEAN_NEW_ELEMENT_MODAL:\r\n return {\r\n ...state,\r\n availableTypes: defaultStore.userManagement.newElement.availableTypes,\r\n currentElement: null\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/userManagement/deleteElement/actionTypes';\r\n\r\nexport const deleteElementReducer = (state = defaultStore.userManagement.deleteElement, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_DELETING_ELEMENT:\r\n return { ...state, isDeletingElement: true };\r\n case actionTypes.FINISH_DELETING_ELEMENT:\r\n return { ...state, isDeletingElement: false };\r\n case actionTypes.OPEN_DELETE_ELEMENT_MODAL:\r\n return { ...state, isModalOpen: true, currentElement: { ...action.currentElement } };\r\n case actionTypes.CLOSE_DELETE_ELEMENT_MODAL:\r\n return { ...state, isModalOpen: false, currentElement: null };\r\n case actionTypes.TOGGLE_DELETE_ELEMENT_MODAL:\r\n return {\r\n ...state,\r\n isModalOpen: !state.isModalOpen,\r\n currentElement: state.isModalOpen ? null : state.currentElement\r\n };\r\n case actionTypes.CLEAN_DELETE_ELEMENT_MODAL:\r\n return {\r\n ...state,\r\n currentElement: null,\r\n deletionMethod: { ...action.deletionMethod }\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/userManagement/copyElement/actionTypes';\r\n\r\nexport const copyElementReducer = (state = defaultStore.userManagement.copyElement, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_COPYING_ELEMENT:\r\n return { ...state, isCopyingElement: true };\r\n case actionTypes.FINISH_COPYING_ELEMENT:\r\n return { ...state, isCopyingElement: false };\r\n case actionTypes.OPEN_COPY_ELEMENT_MODAL:\r\n return { ...state, isModalOpen: true, currentElement: { ...action.currentElement } };\r\n case actionTypes.CLOSE_COPY_ELEMENT_MODAL:\r\n return { ...state, isModalOpen: false, currentElement: null };\r\n case actionTypes.TOGGLE_COPY_ELEMENT_MODAL:\r\n return {\r\n ...state,\r\n isModalOpen: !state.isModalOpen,\r\n currentElement: state.isModalOpen ? null : state.currentElement\r\n };\r\n case actionTypes.CLEAN_COPY_ELEMENT_MODAL:\r\n return {\r\n ...state,\r\n currentElement: null,\r\n copyOption: { ...action.copyOption }\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/userManagement/changeElementType/actionTypes';\r\n\r\nexport const changeElementTypeReducer = (state = defaultStore.userManagement.changeElementType, action) => {\r\n switch (action.type) {\r\n case actionTypes.INIT_AVAILABLE_TYPES:\r\n return { ...state, availableTypes: action.types };\r\n case actionTypes.OPEN_CHANGE_TYPE_MODAL:\r\n return { ...state, isModalOpen: true, currentElement: { ...action.currentElement } };\r\n case actionTypes.CLOSE_CHANGE_TYPE_MODAL:\r\n return { ...state, isModalOpen: false };\r\n case actionTypes.TOGGLE_CHANGE_TYPE_MODAL:\r\n return {\r\n ...state,\r\n isModalOpen: !state.isModalOpen,\r\n currentElement: state.isModalOpen ? null : state.currentElement\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/userManagement/changeElementId/actionTypes';\r\n\r\nexport const changeElementIdReducer = (state = defaultStore.userManagement.changeElementId, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_CHANGING_ELEMENT_ID:\r\n return { ...state, isChangingElementId: true };\r\n case actionTypes.FINISH_CHANGING_ELEMENT_ID:\r\n return { ...state, isChangingElementId: false };\r\n case actionTypes.OPEN_CHANGE_ELEMENT_ID_MODAL:\r\n return { ...state, isModalOpen: true, currentElement: { ...action.currentElement } };\r\n case actionTypes.CLOSE_CHANGE_ELEMENT_ID_MODAL:\r\n return { ...state, isModalOpen: false, currentElement: null };\r\n case actionTypes.TOGGLE_CHANGE_ELEMENT_ID_MODAL:\r\n return {\r\n ...state,\r\n isModalOpen: !state.isModalOpen,\r\n currentElement: state.isModalOpen ? null : state.currentElement\r\n };\r\n case actionTypes.CLEAN_CHANGE_ELEMENT_ID_MODAL:\r\n return {\r\n ...state,\r\n currentElement: null\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/userManagement/changeUserEmail/actionTypes';\r\n\r\nexport const changeUserEmailReducer = (state = defaultStore.userManagement.changeUserEmail, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_CHANGING_USER_EMAIL:\r\n return { ...state, isChangingUserEmail: true };\r\n case actionTypes.FINISH_CHANGING_USER_EMAIL:\r\n return { ...state, isChangingUserEmail: false };\r\n case actionTypes.OPEN_CHANGE_USER_EMAIL_MODAL:\r\n return { ...state, isModalOpen: true, currentElement: { ...action.currentElement } };\r\n case actionTypes.CLOSE_CHANGE_USER_EMAIL_MODAL:\r\n return { ...state, isModalOpen: false, currentElement: null };\r\n case actionTypes.TOGGLE_CHANGE_USER_EMAIL_MODAL:\r\n return {\r\n ...state,\r\n isModalOpen: !state.isModalOpen,\r\n currentElement: state.isModalOpen ? null : state.currentElement\r\n };\r\n case actionTypes.CLEAN_CHANGE_USER_EMAIL_MODAL:\r\n return {\r\n ...state,\r\n currentElement: null\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/userManagement/passwordUpdate/actionTypes';\r\n\r\nexport const passwordUpdateReducer = (state = defaultStore.userManagement.passwordUpdate, action) => {\r\n switch (action.type) {\r\n case actionTypes.OPEN_PASSWORD_UPDATE_MODAL:\r\n return { ...state, isModalOpen: true, elementId: action.elementId };\r\n case actionTypes.CLOSE_PASSWORD_UPDATE_MODAL:\r\n return { ...state, isModalOpen: false };\r\n case actionTypes.START_UPDATING_PASSWORD:\r\n return { ...state, isUpdatingPassword: true };\r\n case actionTypes.FINISH_UPDATING_PASSWORD:\r\n return { ...state, isUpdatingPassword: false };\r\n case actionTypes.TOGGLE_PASSWORD_UPDATE_MODAL:\r\n return {\r\n ...state,\r\n isModalOpen: !state.isModalOpen,\r\n elementId: state.isModalOpen ? null : state.elementId\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/userManagement/elementActivationOptions/actionTypes';\r\n\r\nexport const activationOptionsReducer = (state = defaultStore.userManagement.activationOptions, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_UPDATING_ACTIVATION_OPTIONS:\r\n return { ...state, isUpdatingActivationOptions: true };\r\n case actionTypes.FINISH_UPDATING_ACTIVATION_OPTIONS:\r\n return { ...state, isUpdatingActivationOptions: false };\r\n case actionTypes.OPEN_UPDATING_ACTIVATION_OPTIONS_MODAL:\r\n return { ...state, isModalOpen: true, currentElement: { ...action.currentElement }, openingSource: action.openingSource };\r\n case actionTypes.CLOSE_UPDATING_ACTIVATION_OPTIONS_MODAL:\r\n return { ...state, isModalOpen: false, currentElement: null };\r\n case actionTypes.TOGGLE_UPDATING_ACTIVATION_OPTIONS_MODAL:\r\n return {\r\n ...state,\r\n isModalOpen: !state.isModalOpen,\r\n currentElement: state.isModalOpen ? null : state.currentElement,\r\n openingSource: state.isModalOpen ? null : state.openingSource,\r\n };\r\n case actionTypes.CLEAN_UPDATING_ACTIVATION_OPTIONS_MODAL:\r\n return {\r\n ...state,\r\n currentElement: null,\r\n openingSource: ''\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/search/actionTypes';\r\n\r\nexport const searchReducer = (state = defaultStore.search, action) => {\r\n switch (action.type) {\r\n case actionTypes.CLEAR_SEARCH_RESULTS:\r\n return {\r\n ...state,\r\n searchResults: {\r\n ...state.searchResults,\r\n searchElements: [],\r\n modifiedElements: [],\r\n totalCount: 0\r\n }\r\n };\r\n case actionTypes.START_FETCHING_SEARCH_RESULTS:\r\n return {\r\n ...state,\r\n isFetching: true\r\n };\r\n case actionTypes.FINISH_FETCHING_SEARCH_RESULTS:\r\n return {\r\n ...state,\r\n isFetching: false\r\n };\r\n case actionTypes.INIT_SEARCH_RESULTS:\r\n return {\r\n ...state,\r\n searchResults: {\r\n ...state.searchResults,\r\n searchElements: action.searchResults.searchElements.map((element) => {\r\n const existingElement = state.searchResults.modifiedElements.find((a) => a.name === element.name);\r\n if (existingElement) {\r\n return { ...element, selected: existingElement.selected };\r\n }\r\n\r\n return element;\r\n }),\r\n totalCount: action.searchResults.totalCount\r\n }\r\n };\r\n case actionTypes.TOGGLE_SEARCH_ELEMENT_SELECTION:\r\n return {\r\n ...state,\r\n searchResults: {\r\n ...state.searchResults,\r\n searchElements: state.searchResults.searchElements.map((element) => {\r\n if (element.name === action.elementName && element.metaType === action.metaType) {\r\n return { ...element, selected: element.selected ? !element.selected : true };\r\n }\r\n\r\n return element;\r\n }),\r\n modifiedElements: [\r\n ...state.searchResults.modifiedElements.filter((e) => e.name !== action.elementName),\r\n {\r\n ...state.searchResults.searchElements.find((e) => e.name === action.elementName),\r\n selected: state.searchResults.searchElements.find((e) => e.name === action.elementName).selected\r\n ? !state.searchResults.searchElements.find((e) => e.name === action.elementName).selected\r\n : true\r\n }\r\n ]\r\n }\r\n };\r\n case actionTypes.INIT_SEARCH_PHRASE:\r\n return {\r\n ...state,\r\n searchPhrase: action.searchPhrase\r\n };\r\n case actionTypes.START_FETCHING_SEARCH_SUGGESTIONS:\r\n return {\r\n ...state,\r\n isFetchingSuggestions: true\r\n };\r\n case actionTypes.INIT_SEARCH_SUGGESTIONS:\r\n return {\r\n ...state,\r\n searchSuggestions: action.searchSuggestions\r\n };\r\n case actionTypes.FINISH_FETCHING_SEARCH_SUGGESTIONS:\r\n return {\r\n ...state,\r\n isFetchingSuggestions: false\r\n };\r\n case actionTypes.INIT_PREDEFINED_SEARCH_OPTIONS:\r\n return {\r\n ...state,\r\n predefinedSearchOptions: action.options.predefinedSearchOptions\r\n };\r\n case actionTypes.SET_PAGINATION:\r\n return {\r\n ...state,\r\n pageIndex: action.pageIndex,\r\n pageSize: action.pageSize\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { combineReducers } from 'redux';\r\nimport * as actionTypes from 'api/languageManagement/actionTypes';\r\nimport defaultStore from 'store/defaultStore';\r\n\r\nexport const fileterReducer = (state = defaultStore.languageManagement.filter, action) => {\r\n switch (action.type) {\r\n case actionTypes.INIT_SEARCH_TERM:\r\n return { ...state, searchTerm: action.searchTerm };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const dataReducer = (state = defaultStore.languageManagement.data, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_ALL_ELEMENTS:\r\n return { ...state, isFetchingElements: true };\r\n case actionTypes.FINISH_FETCHING_ALL_ELEMENTS:\r\n return { ...state, isFetchingElements: false };\r\n case actionTypes.INIT_ALL_ELEMENTS:\r\n return { ...state, data: action.data };\r\n case actionTypes.START_FETCHING_SEARCH_TERM:\r\n return { ...state, isFetchingSearchTermData: true };\r\n case actionTypes.FINISH_FETCHING_SEARCH_TERM:\r\n return { ...state, isFetchingSearchTermData: false };\r\n case actionTypes.INIT_SEARCH_TERM_DATA:\r\n return { ...state, data: action.data };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const exportReducer = (state = defaultStore.languageManagement.export, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_EXPORT:\r\n return { ...state, isFetchingExport: true };\r\n case actionTypes.FINISH_FETCHING_EXPORT:\r\n return { ...state, isFetchingExport: false };\r\n case actionTypes.INIT_EXPORT:\r\n return { ...state, data: action.data };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const languageManagementReducer = combineReducers({\r\n filter: fileterReducer,\r\n data: dataReducer,\r\n export: exportReducer\r\n});\r\n","import { combineReducers } from 'redux';\r\nimport * as actionTypes from 'api/dataManagement/actionTypes';\r\nimport defaultStore from 'store/defaultStore';\r\n\r\nexport const exportDataReducer = (state = defaultStore.dataManagement.exportData, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_ALL_EXPORTS:\r\n return { ...state, isFetchingExports: true };\r\n case actionTypes.FINISH_FETCHING_ALL_EXPORTS:\r\n return { ...state, isFetchingExports: false };\r\n case actionTypes.INIT_ALL_EXPORTS:\r\n return { ...state, data: action.data };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const dataManagementReducer = combineReducers({\r\n exportData: exportDataReducer\r\n});\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/actions/actionTypes';\r\n\r\nexport const actionReducer = (state = defaultStore.actions, action) => {\r\n switch (action.type) {\r\n case actionTypes.INIT_ACTIONS:\r\n return {\r\n ...state,\r\n icon: action.actions.icon,\r\n headingKey: action.actions.headingKey,\r\n subheadingKey: action.actions.subheadingKey,\r\n actions: action.actions.entries\r\n };\r\n case actionTypes.START_RUN_ACTION:\r\n return {\r\n ...state,\r\n actions: state.actions.map((entry) => {\r\n const { name } = action.actionToRun;\r\n return entry.name === name\r\n ? { ...entry, isEnabled: false }\r\n : entry;\r\n })\r\n };\r\n case actionTypes.FINISH_RUN_ACTION:\r\n return {\r\n ...state,\r\n actions: state.actions.map((entry) => {\r\n const { name } = action.actionToRun;\r\n return entry.name === name\r\n ? { ...entry, isEnabled: true }\r\n : entry;\r\n })\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import * as actionTypes from 'api/configuration/actionTypes';\r\nimport defaultStore from '../defaultStore';\r\n\r\nexport const configurationReducer = (state = defaultStore.configuration, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_CONFIGURATION: {\r\n return { ...state, isFetching: true };\r\n }\r\n case actionTypes.INIT_CONFIGURATION: {\r\n return { ...state, ...action.configuration };\r\n }\r\n case actionTypes.FINISH_FETCHING_CONFIGURATION: {\r\n return { ...state, isFetching: false };\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n};","export const FETCH_CONFIGURATION = 'FETCH_CONFIGURATION';\r\nexport const START_FETCHING_CONFIGURATION = 'START_FETCHING_CONFIGURATION';\r\nexport const FINISH_FETCHING_CONFIGURATION = 'FINISH_FETCHING_CONFIGURATION';\r\nexport const INIT_CONFIGURATION = 'INIT_CONFIGURATION';\r\n","import defaultStore from 'store/defaultStore';\r\nimport * as actionTypes from 'api/propertyValueSuggestions/actionTypes';\r\n\r\nexport const propertyValueSuggestionsReducer = (state = defaultStore.element, action) => {\r\n switch (action.type) {\r\n case actionTypes.START_FETCHING_FIELD_SUGGESTIONS: return { ...state, propertyData: { ...state.propertyData, isFetchingSuggestions: true } };\r\n case actionTypes.FINISH_FETCHING_FIELD_SUGGESTIONS: return { ...state, propertyData: { ...state.propertyData, isFetchingSuggestions: false } };\r\n case actionTypes.INIT_FIELD_SUGGESTIONS: return {\r\n ...state,\r\n metatypeName: action.metatypeName,\r\n propertyData: {\r\n ...state.propertyData,\r\n propertyName: action.propertyName,\r\n suggestions: {\r\n searchPhrase: action.searchPhrase,\r\n suggestionsElements: action.suggestions\r\n } } };\r\n default: return state;\r\n }\r\n};\r\n","import { combineReducers } from 'redux';\r\nimport { connectRouter } from 'connected-react-router';\r\nimport { reducer as formReducer } from 'redux-form';\r\nimport { themeOptionsReducer } from './themeOptions/reducers';\r\nimport { layoutReducer, messagePlaceholderReducer } from './layout/reducers';\r\nimport { catalogReducer } from './catalog/reducers';\r\nimport { userReducer } from './user/reducers/userReducer';\r\nimport { mediaReducer } from './media/reducers';\r\nimport { cmsReducer } from './cms/reducers';\r\nimport { userManagementReducer } from './userManagement/reducers';\r\nimport { searchReducer } from './search/reducers';\r\nimport { languageManagementReducer } from './languageManagement/reducers';\r\nimport { dataManagementReducer } from './dataManagement/reducers';\r\nimport { actionReducer } from './action/reducers';\r\nimport { configurationReducer } from './configuration/reducers';\r\nimport { propertyValueSuggestionsReducer } from './propertyValueSuggestions/reducers';\r\n\r\nconst rootReducer = (history) => combineReducers({\r\n router: connectRouter(history),\r\n ThemeOptions: themeOptionsReducer,\r\n layout: layoutReducer,\r\n user: userReducer,\r\n form: formReducer,\r\n catalog: catalogReducer,\r\n media: mediaReducer,\r\n messagePlaceholder: messagePlaceholderReducer,\r\n cms: cmsReducer,\r\n userManagement: userManagementReducer,\r\n search: searchReducer,\r\n languageManagement: languageManagementReducer,\r\n dataManagement: dataManagementReducer,\r\n actions: actionReducer,\r\n configuration: configurationReducer,\r\n element: propertyValueSuggestionsReducer\r\n});\r\n\r\nexport default rootReducer;\r\n","import Http from 'infrastructure/http/http';\r\n\r\nexport const authenticateUser = (email, password) => Http.post('/api/authentication/token', { email, password });\r\nexport const refreshToken = () => Http.post('/api/authentication/refreshtoken');\r\nexport const logoutUser = () => Http.post('/api/authentication/logout');\r\n","import { put, call, takeEvery, select } from 'redux-saga/effects';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport { raiseMessage, raiseError, push, clearUserData, setUserData } from '../messaging/actions';\r\nimport * as messageTypes from '../messaging/messageTypes';\r\nimport { getLoginPath } from './tools';\r\nimport { authenticationContext } from '../authentication/authenticationContext';\r\nimport { refreshToken } from '../authentication/authenticationRemoteApi';\r\n\r\nexport function* guardedGenerator(generator, action, errorHandler) {\r\n try {\r\n const result = yield generator(action);\r\n return result;\r\n } catch (exc) {\r\n switch (exc.errorCode) {\r\n case 404:\r\n if ('404' in errorHandler) {\r\n const resources = yield select(getResourcesState);\r\n yield errorHandler[404](action, resources);\r\n }\r\n yield put(raiseError(exc.errorCode));\r\n break;\r\n case 401:\r\n yield call(authenticationContext.removeToken);\r\n yield call(authenticationContext.removeLastCall);\r\n yield put(clearUserData());\r\n yield put(push(getLoginPath()));\r\n break;\r\n default:\r\n yield put(raiseMessage(messageTypes.ERROR_MESSAGE_TYPE, exc.errorMessage || ''));\r\n if (window.console) {\r\n window.console.log(exc);\r\n }\r\n break;\r\n }\r\n }\r\n}\r\n\r\nexport const guardedTakeEvery = (actionType, generatorFn) => {\r\n const factory = (generator) => function* inner(action) {\r\n yield guardedGenerator(generator, action);\r\n };\r\n return takeEvery(actionType, factory(generatorFn));\r\n};\r\n\r\nexport function* apiCall(method, ...params) {\r\n if (authenticationContext.sessionExpired()) {\r\n yield call(authenticationContext.removeToken);\r\n yield put(clearUserData());\r\n }\r\n\r\n if (authenticationContext.shouldRefreshToken()) {\r\n const token = yield call(refreshToken);\r\n yield call(authenticationContext.setToken, token);\r\n const userTokenData = yield call(authenticationContext.getUserTokenData);\r\n yield put(setUserData({ ...userTokenData, isAuthenticated: true }));\r\n }\r\n\r\n yield call(authenticationContext.setLastCall, new Date());\r\n const result = yield call(method, ...params);\r\n return result;\r\n}\r\n\r\nexport function* redirectToDifferentCulture(newCulture, redirectUrl) {\r\n let newUrl = redirectUrl;\r\n if (!newUrl) {\r\n newUrl = window.location.href;\r\n }\r\n\r\n newUrl = newUrl.replace(window.clientData.currentLanguage, newCulture);\r\n\r\n yield window.location.replace(newUrl);\r\n}\r\n","import Http from 'infrastructure/http/http';\r\n\r\nexport const getLayoutApi = () => Http.get('/api/layout');\r\n","import { put } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall } from 'infrastructure/helpers/sagasHelper';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport { getLayoutApi } from './remoteApi';\r\n\r\nfunction* getLayoutInfo() {\r\n const layoutInfo = yield apiCall(getLayoutApi);\r\n yield put(actions.initLayoutInfo(layoutInfo));\r\n}\r\n\r\nfunction* fetchLayoutInfo() {\r\n yield put(actions.startFetchingLayoutInfo());\r\n yield getLayoutInfo();\r\n yield put(actions.finishFetchingLayoutInfo());\r\n}\r\n\r\nexport function* watchFetchLayoutInfo() {\r\n yield guardedTakeEvery(actionTypes.FETCH_LAYOUT_INFO, fetchLayoutInfo);\r\n}\r\n","import { put, call } from 'redux-saga/effects';\r\nimport { apiCall, guardedGenerator, redirectToDifferentCulture, guardedTakeEvery } from 'infrastructure/helpers/sagasHelper';\r\nimport { authenticateUser as authenticateUserApi, logoutUser as logoutUserApi } from 'infrastructure/authentication/authenticationRemoteApi';\r\nimport { push, setUserData, clearUserData } from 'infrastructure/messaging/actions';\r\nimport { authenticationContext } from 'infrastructure/authentication/authenticationContext';\r\nimport * as actions from './actions';\r\nimport * as actionTypes from './actionTypes';\r\n\r\nfunction shouldRedirectToNewCulture(userCulture) {\r\n return userCulture\r\n && window.clientData\r\n && window.clientData.currentLanguage !== userCulture;\r\n}\r\n\r\nexport function* authenticateUser(action) {\r\n let authenticationResult;\r\n let isFullRedirect = false;\r\n\r\n try {\r\n authenticationResult = yield apiCall(authenticateUserApi, action.userName, action.password);\r\n } catch (exc) {\r\n if (exc.errorCode === 400) {\r\n authenticationResult = { isBadRequest: true };\r\n } else {\r\n throw exc;\r\n }\r\n }\r\n if (authenticationResult.isBadRequest) {\r\n yield put(actions.userAuthenticationFailed());\r\n } else {\r\n yield put(actions.userAuthenticationSucceeded());\r\n yield call(authenticationContext.setToken, authenticationResult);\r\n const userTokenData = yield call(authenticationContext.getUserTokenData);\r\n yield put(setUserData({ ...userTokenData, isAuthenticated: true }));\r\n const successRedirect = action.successRedirect || '/';\r\n\r\n if (shouldRedirectToNewCulture(userTokenData.userLanguage)) {\r\n yield redirectToDifferentCulture(userTokenData.userLanguage, successRedirect);\r\n isFullRedirect = true;\r\n } else {\r\n yield put(push(successRedirect));\r\n }\r\n\r\n return isFullRedirect;\r\n }\r\n}\r\n\r\nfunction* loginUser(action) {\r\n yield put(actions.startUserLogin());\r\n const isFullRedirect = yield guardedGenerator(authenticateUser, action);\r\n if (!isFullRedirect) {\r\n yield put(actions.finishUserLogin());\r\n }\r\n}\r\n\r\nexport function* watchLoginUser() {\r\n yield guardedTakeEvery(actionTypes.LOGIN_USER, loginUser);\r\n}\r\n\r\nfunction* performLogout() {\r\n yield apiCall(logoutUserApi);\r\n yield call(authenticationContext.removeToken);\r\n yield put(clearUserData());\r\n}\r\n\r\nfunction* logoutUser(action) {\r\n yield put(actions.startUserLogout());\r\n yield guardedGenerator(performLogout, action);\r\n yield put(actions.finishUserLogout());\r\n}\r\n\r\nexport function* watchLogoutUser() {\r\n yield guardedTakeEvery(actionTypes.LOGOUT_USER, logoutUser);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const getTreeElementsApi = (data) => (data && data.nodeType && data.nodeName\r\n ? http.get(`/api/catalog-tree/${data.nodeType}/${data.nodeName}/subelements`)\r\n : http.get('/api/catalog-tree/top'));\r\n\r\nexport const fetchTreeConfigApi = () => http.get('/api/catalog-tree/config');\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { getTreeState } from 'store/catalog/productTree/selectors';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport { getTreeElementsApi, fetchTreeConfigApi } from './remoteApi';\r\n\r\nfunction* getTreeElements(action) {\r\n const tree = yield select(getTreeState);\r\n let elements = [];\r\n\r\n const path = action.data && action.data.nodePath ? action.data.nodePath : null;\r\n\r\n if (action.data && action.data.nodePath && tree.findIndex((e) => e.id === action.data.nodePath) >= 0) {\r\n if (action.data.expanded) {\r\n if (tree.find((e) => e.parent === path && e.id === `stubId${action.data.nodePath}`)) {\r\n elements = yield apiCall(getTreeElementsApi, action.data);\r\n yield put(actions.expandTreeElement(elements, action.data, true));\r\n } else {\r\n yield put(actions.expandTreeElement(elements, action.data, false));\r\n }\r\n } else {\r\n yield put(actions.collapseTreeElement(action.data));\r\n }\r\n }\r\n\r\n // eslint-disable-next-line no-mixed-operators\r\n if (path === null && tree && tree.length === 0 || (action.data && action.data.refresh)) {\r\n elements = yield apiCall(getTreeElementsApi, action.data);\r\n yield put(actions.initTreeElements(elements, action.data, action.rootKey));\r\n }\r\n}\r\n\r\nfunction* fetchTreeElements(action) {\r\n yield put(actions.startFetchingTreeElements(action.data));\r\n yield getTreeElements(action);\r\n yield put(actions.finishFetchingTreeElements(action.data));\r\n}\r\n\r\nexport function* watchFetchTreeElements() {\r\n yield guardedTakeEvery(actionTypes.FETCH_TREE_ELEMENTS, fetchTreeElements);\r\n}\r\n\r\nfunction* getRefreshedTree(action) {\r\n const elements = yield apiCall(getTreeElementsApi, action);\r\n yield put(actions.initRefreshingTreeElements(elements, action));\r\n}\r\n\r\nfunction* refreshTreeElements(action) {\r\n yield put(actions.startRefreshingElements());\r\n yield getRefreshedTree(action);\r\n yield put(actions.finishFetchingTreeElements());\r\n}\r\n\r\nexport function* watchRefreshTreeElements() {\r\n yield guardedTakeEvery(actionTypes.REFRESH_TREE_ELEMENT, refreshTreeElements);\r\n}\r\n\r\nfunction* fetchTreeConfigFromApi() {\r\n const config = yield apiCall(fetchTreeConfigApi);\r\n yield put(actions.initTreeConfig(config));\r\n}\r\n\r\nfunction* fetchTreeConfig(action) {\r\n yield put(actions.startFetchingTreeConfig());\r\n yield guardedGenerator(fetchTreeConfigFromApi, action);\r\n yield put(actions.finishFetchingTreeConfig());\r\n}\r\n\r\nexport function* watchFetchTreeConfig() {\r\n yield guardedTakeEvery(actionTypes.FETCH_TREE_CONFIG, fetchTreeConfig);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const getOnlineTranslationApi = () => http.get('/api/language-management/resource');\r\n\r\nexport const getSearchTermApi = (searchTerm) => http.get(`/api/language-management/resource/search/${searchTerm}`);\r\n\r\nexport const getExportDataApi = (exportValues) => http.post('/api/language-management/resource/export', exportValues);\r\n\r\nexport const updateResourceApi = (name, lang, value) => http.put(`/api/language-management/resource/${name}/${lang}`, value);\r\n","import b64toBlob from 'b64-to-blob';\r\n\r\nexport const showFile = (base64FileContent, filename, type) => {\r\n // It is necessary to create a new blob object with mime-type explicitly set\r\n // otherwise only Chrome works like it should\r\n const newBlob = b64toBlob(base64FileContent, type);\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(newBlob);\r\n return;\r\n }\r\n\r\n // For other browsers:\r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n const link = document.createElement('a');\r\n link.href = data;\r\n link.target = '_blank';\r\n link.download = filename;\r\n document.body.appendChild(link);\r\n link.click();\r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n document.body.removeChild(link);\r\n window.URL.revokeObjectURL(data);\r\n }, 100);\r\n};\r\n","import { call, put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport * as actions from 'api/languageManagement/actions';\r\nimport * as actionTypes from 'api/languageManagement/actionTypes';\r\nimport {\r\n getOnlineTranslationApi,\r\n getSearchTermApi,\r\n getExportDataApi,\r\n updateResourceApi\r\n} from 'api/languageManagement/remoteApi';\r\nimport { showFile } from 'views/fileOpener';\r\nimport { getSearchTerm } from 'store/languageManagement/selectors';\r\n\r\nfunction* fetchAllElementsFromApi() {\r\n const data = yield apiCall(getOnlineTranslationApi);\r\n yield put(actions.initAllElements(data));\r\n}\r\n\r\nfunction* fetchAllElements(action) {\r\n yield put(actions.startFetchingAllElements());\r\n yield guardedGenerator(fetchAllElementsFromApi, action);\r\n yield put(actions.finishFetchingAllElements());\r\n}\r\n\r\nexport function* watchFetchAllElements() {\r\n yield guardedTakeEvery(actionTypes.FETCH_ALL_ELEMENTS, fetchAllElements);\r\n}\r\n\r\nfunction* fetchSearchTermElementsFromApi(action) {\r\n let data = {};\r\n if (action.searchTerm) {\r\n data = yield apiCall(getSearchTermApi, action.searchTerm);\r\n } else {\r\n data = yield apiCall(getOnlineTranslationApi);\r\n }\r\n yield put(actions.initSearchTermData(data));\r\n}\r\n\r\nfunction* fetchSearchTermData(action) {\r\n yield put(actions.startFetchingSearchTermData());\r\n yield fetchSearchTermElementsFromApi(action);\r\n yield put(actions.finishFetchingSearchTermData());\r\n}\r\n\r\nexport function* watchFetchSearchTermData() {\r\n yield guardedTakeEvery(actionTypes.INIT_SEARCH_TERM, fetchSearchTermData);\r\n}\r\n\r\nfunction* fetchExportFromApi(action) {\r\n const data = yield apiCall(getExportDataApi, action.exportValues);\r\n\r\n yield call(showFile, data.bytes, data.fileName, data.fileType);\r\n}\r\n\r\nfunction* fetchExport(action) {\r\n yield put(actions.startFetchingExport());\r\n yield fetchExportFromApi(action);\r\n yield put(actions.finishFetchingExport());\r\n}\r\n\r\nexport function* watchFetchExport() {\r\n yield guardedTakeEvery(actionTypes.FETCH_EXPORT, fetchExport);\r\n}\r\n\r\nfunction* updateResource(action) {\r\n yield apiCall(updateResourceApi, action.name, action.lang, action.value);\r\n}\r\n\r\nfunction* updateResourceAction(action) {\r\n yield put(actions.startFetchingAllElements());\r\n yield guardedGenerator(updateResource, action);\r\n const searchTerm = yield select(getSearchTerm);\r\n if (searchTerm) {\r\n yield guardedGenerator(fetchSearchTermElementsFromApi, { ...action, searchTerm });\r\n } else {\r\n yield guardedGenerator(fetchAllElementsFromApi, action);\r\n }\r\n yield put(actions.finishFetchingAllElements());\r\n}\r\n\r\nexport function* watchUpdateResource() {\r\n yield guardedTakeEvery(actionTypes.UPDATE_RESOURCE, updateResourceAction);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const fetchAvailableExportDefinitionsApi = () => http.get('/api/data-management/export/exportdefinitions');\r\n\r\nexport const createNewExportJob = (requestBody) => http.post('api/data-management/export', requestBody);\r\n","import { put } from 'redux-saga/effects';\r\nimport { push } from 'infrastructure/messaging/actions';\r\nimport * as actions from 'api/catalog/exportElement/actions';\r\nimport * as actionTypes from 'api/catalog/exportElement/actionTypes';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { fetchAvailableExportDefinitionsApi, createNewExportJob } from 'api/catalog/exportElement/remoteApi';\r\n\r\nfunction* fetchAvailableExportDefinitionsFromApi() {\r\n const exportDefinitions = yield apiCall(fetchAvailableExportDefinitionsApi);\r\n return exportDefinitions;\r\n}\r\n\r\nfunction* fetchAvailableExportDefinitions(action) {\r\n const exportDefinitions = yield guardedGenerator(fetchAvailableExportDefinitionsFromApi, action);\r\n yield put(actions.initAvailableExportDefinitions(exportDefinitions));\r\n}\r\n\r\nexport function* watchFetchAvailableExportDefinitions() {\r\n yield guardedTakeEvery(actionTypes.FETCH_AVAILABLE_EXPORT_DEFINITIONS, fetchAvailableExportDefinitions);\r\n}\r\n\r\nfunction* addNewExportJobProcess(action) {\r\n const addNewExportJobBody = {\r\n elementName: action.currentElement,\r\n exportDefinition: action.exportDefinition,\r\n elementMetaTypeName: action.elementMetaType\r\n };\r\n yield apiCall(createNewExportJob, addNewExportJobBody);\r\n yield put(actions.closeExportElementModal());\r\n yield (put(push('/data-management/export')));\r\n}\r\n\r\nfunction* addNewExportJob(action) {\r\n yield put(actions.startAddingNewExportJob());\r\n yield guardedGenerator(addNewExportJobProcess, action);\r\n yield put(actions.finishAddingNewExportJob());\r\n}\r\n\r\nexport function* watchAddNewExportJob() {\r\n yield guardedTakeEvery(actionTypes.ADD_NEW_EXPORT_JOB, addNewExportJob);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const fetchAvailableTypesForParentMetaType = (parentMetaTypeName) => (parentMetaTypeName\r\n ? http.get(`/api/catalog/element-type/allowed-children-types/${parentMetaTypeName}`)\r\n : http.get('/api/catalog/element-type/allowed-children-types'));\r\n\r\nexport const createNewElement = (elementData) => http.post('/api/catalog/elements', elementData);\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { push } from 'infrastructure/messaging/actions';\r\nimport { getTreeConfig } from 'store/catalog/productTree/selectors';\r\nimport {\r\n fetchAvailableTypesForParentMetaType as fetchAvailableTypesForParentMetaTypeApi,\r\n createNewElement as createNewElementApi\r\n} from './remoteApi';\r\nimport * as actions from './actions';\r\nimport { refreshTreeElement } from '../productTree/actions';\r\nimport { refreshCmsTreeElement } from '../../cms/cmsTree/actions';\r\nimport * as actionTypes from './actionTypes';\r\n\r\nconst productTreeType = 'catalog';\r\n\r\nfunction* fetchAvailableTypesForParentMetaTypeFromApi(action) {\r\n const types = yield apiCall(fetchAvailableTypesForParentMetaTypeApi, action.metaTypeName);\r\n return types;\r\n}\r\n\r\nfunction* fetchAvailableTypesForParentMetaType(action) {\r\n yield put(actions.startFetchingAvailableTypesForParentMetaType());\r\n const types = yield guardedGenerator(fetchAvailableTypesForParentMetaTypeFromApi, action);\r\n yield put(actions.initAvailableTypesForParentMetaType(types));\r\n yield put(actions.finishFetchingAvailableTypesForParentMetaType());\r\n}\r\n\r\nexport function* watchFetchAvailableTypesForParentMetaType() {\r\n yield guardedTakeEvery(actionTypes.FETCH_AVAILABLE_TYPES_FOR_PARENT_METATYPE, fetchAvailableTypesForParentMetaType);\r\n}\r\n\r\nfunction* createNewElementInApi(action) {\r\n const parentData = action.currentElement\r\n ? {\r\n parentElementId: action.currentElement.id,\r\n parentMetaTypeName: action.currentElement.metaTypeName\r\n }\r\n : {};\r\n const { elementArea } = action;\r\n const newElementData = {\r\n ...action.newElementData,\r\n ...parentData,\r\n elementArea\r\n };\r\n yield apiCall(createNewElementApi, newElementData);\r\n yield put(actions.closeNewElementModal());\r\n yield put(actions.cleanNewElementModal());\r\n const rootConfig = yield select(getTreeConfig);\r\n if (Object.keys(action.currentElement).length !== 0) {\r\n if (action.elementArea === productTreeType) {\r\n yield put(refreshTreeElement(\r\n action.currentElement.id,\r\n action.currentElement.metaTypeName\r\n ));\r\n } else {\r\n yield put(refreshCmsTreeElement(\r\n action.currentElement.id,\r\n action.currentElement.metaTypeName\r\n ));\r\n }\r\n } else if (action.elementArea === productTreeType) {\r\n yield put(refreshTreeElement(rootConfig.catalogTreeConfiguration.topElementName, 'Category'));\r\n } else {\r\n yield put(refreshCmsTreeElement(rootConfig.cmsTreeConfiguration.topElementName, 'Category'));\r\n }\r\n\r\n yield (put(push(`/${action.elementArea}/${action.newElementData.metaTypeName}/${action.newElementData.id}`)));\r\n}\r\n\r\nfunction* createNewElement(action) {\r\n yield put(actions.startCreatingNewElement());\r\n yield guardedGenerator(createNewElementInApi, action);\r\n yield put(actions.finishCreatingNewElement());\r\n}\r\n\r\nexport function* watchCreateNewElement() {\r\n yield guardedTakeEvery(actionTypes.CREATE_NEW_ELEMENT, createNewElement);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const getElementDataApi = (elementId, elementMetaType) => http.get(`/api/catalog/elements/${elementMetaType}/${elementId}`);\r\nexport const getElementConfigurationApi = (elementMetaType, elementType) => http.get(`/api/catalog/element-type/${elementMetaType}/${elementType}`);\r\nexport const saveElementDataApi = (elementMetaType, elementId, formData) => http.put(`/api/catalog/elements/${elementMetaType}/${elementId}`, formData);\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { push } from 'infrastructure/messaging/actions';\r\nimport diff from 'object-diff';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { getFormInitialValues } from 'redux-form';\r\nimport { raiseMessage } from 'infrastructure/errorHandling/actions';\r\nimport * as messageTypes from 'infrastructure/messaging/messageTypes';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport * as actions from './actions';\r\nimport * as actionTypes from './actionTypes';\r\nimport {\r\n getElementDataApi,\r\n getElementConfigurationApi,\r\n saveElementDataApi\r\n} from './remoteApi';\r\n\r\nfunction* elementNotFound(action, resources) {\r\n yield put(raiseMessage(messageTypes.ERROR_MESSAGE_TYPE, resources.elementNotFound));\r\n yield (put(push(`/${action.elementArea}/${action.elementMetaType}`)));\r\n}\r\n\r\nfunction* getElementDataInApi(action) {\r\n const elementData = yield apiCall(getElementDataApi, action.elementId, action.elementMetaType);\r\n if (elementData) {\r\n yield put(actions.initElementData(elementData));\r\n }\r\n}\r\n\r\nfunction* getElementData(action) {\r\n const errorHandler = { 404: elementNotFound };\r\n yield guardedGenerator(getElementDataInApi, action, errorHandler);\r\n}\r\n\r\nfunction* fetchElementData(action) {\r\n yield put(actions.startFetchingElementData());\r\n yield getElementData(action);\r\n yield put(actions.finishFetchingElementData());\r\n}\r\n\r\nexport function* watchFetchElementData() {\r\n yield guardedTakeEvery(actionTypes.FETCH_ELEMENT_DATA, fetchElementData);\r\n}\r\n\r\nfunction* getElementConfiguration(action) {\r\n const elementConfigurationData = yield apiCall(getElementConfigurationApi, action.elementMetaType, action.elementType);\r\n yield put(actions.initElementConfiguration(elementConfigurationData));\r\n}\r\n\r\nfunction* fetchElementConfiguration(action) {\r\n yield put(actions.startFetchingElementConfiguration());\r\n yield getElementConfiguration(action);\r\n yield put(actions.finishFetchingElementConfiguration());\r\n}\r\n\r\nexport function* watchFetchElementConfiguration() {\r\n yield guardedTakeEvery(actionTypes.FETCH_ELEMENT_CONFIGURATION, fetchElementConfiguration);\r\n}\r\n\r\nfunction* saveElementDataApiCall(action) {\r\n const initialValues = yield select(getFormInitialValues(action.formName));\r\n const delta = diff(initialValues, action.form);\r\n const associationsDelta = diff(initialValues.associations, action.form.associations);\r\n const requestBody = {\r\n propertiesData: { ...delta, associations: undefined },\r\n associations: { ...associationsDelta },\r\n elementArea: action.elementArea\r\n };\r\n\r\n yield apiCall(saveElementDataApi, action.elementMetaType, action.elementId, requestBody);\r\n const resources = yield select(getResourcesState);\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, resources.saveElement_SuccessMessage));\r\n const elementData = yield apiCall(getElementDataApi, action.elementId, action.elementMetaType);\r\n yield put(actions.initElementData(elementData));\r\n}\r\n\r\nfunction* saveElementFormData(action) {\r\n yield put(actions.startSavingElementData());\r\n yield guardedGenerator(saveElementDataApiCall, action);\r\n yield put(actions.finishSavingElementData());\r\n}\r\n\r\nexport function* watchSaveElementFormData() {\r\n yield guardedTakeEvery(actionTypes.SAVE_ELEMENT_FORM_DATA, saveElementFormData);\r\n}","export const isMetaTypeCategory = (metaType) => metaType.toLowerCase() === 'category';\r\nexport const isMetaTypeArticle = (metaType) => metaType.toLowerCase() === 'article';\r\nexport const isMetaTypeUser = (metaType) => metaType.toLowerCase() === 'user';\r\nexport const isMetaTypeRole = (metaType) => metaType.toLowerCase() === 'role';\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const fetchAvailableTypesApi = (metaType) => (metaType\r\n ? http.get(`/api/catalog/element-type/${metaType}`)\r\n : http.get('/api/catalog/element-type'));\r\n\r\nexport const updateArticleTypeApi = (elementId, requestBody) => http.patch(`/api/catalog/elements/article/${elementId}/type`, requestBody);\r\nexport const updateCategoryTypeApi = (elementId, requestBody) => http.patch(`/api/catalog/elements/category/${elementId}/type`, requestBody);\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { isMetaTypeArticle, isMetaTypeCategory } from 'infrastructure/helpers/metaTypes';\r\nimport * as actions from 'api/catalog/changeElementType/actions';\r\nimport * as actionTypes from 'api/catalog/changeElementType/actionTypes';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport {\r\n fetchAvailableTypesApi,\r\n updateArticleTypeApi,\r\n updateCategoryTypeApi\r\n} from 'api/catalog/changeElementType/remoteApi';\r\nimport { getElementDataApi } from 'api/catalog/element/remoteApi';\r\nimport { raiseMessage } from 'infrastructure/errorHandling/actions';\r\nimport * as messageTypes from 'infrastructure/messaging/messageTypes';\r\nimport { initElementData } from '../element/actions';\r\n\r\nfunction* fetchAvailableTypesFromApi(action) {\r\n const types = yield apiCall(fetchAvailableTypesApi, action.metaTypeName);\r\n return types;\r\n}\r\n\r\nfunction* fetchAvailableTypes(action) {\r\n const types = yield guardedGenerator(fetchAvailableTypesFromApi, action);\r\n yield put(actions.initAvailableTypes(types));\r\n}\r\n\r\nexport function* watchFetchAvailableTypes() {\r\n yield guardedTakeEvery(actionTypes.FETCH_AVAILABLE_TYPES, fetchAvailableTypes);\r\n}\r\n\r\nfunction* updateElementTypeInApi(action) {\r\n const changeElementTypeRequestBody = {\r\n newElementTypeId: action.newElementType,\r\n };\r\n if (isMetaTypeCategory(action.currentElement.metaTypeName)) {\r\n yield apiCall(updateCategoryTypeApi, action.currentElement.id, changeElementTypeRequestBody);\r\n }\r\n if (isMetaTypeArticle(action.currentElement.metaTypeName)) {\r\n yield apiCall(updateArticleTypeApi, action.currentElement.id, changeElementTypeRequestBody);\r\n }\r\n const resources = yield select(getResourcesState);\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, resources.changeElementType_SuccessMessage));\r\n yield put(actions.closeChangeTypeModal());\r\n const elementData = yield apiCall(getElementDataApi, action.currentElement.id, action.currentElement.metaTypeName);\r\n yield put(initElementData(elementData));\r\n}\r\n\r\nfunction* updateElementType(action) {\r\n yield guardedGenerator(updateElementTypeInApi, action);\r\n}\r\n\r\nexport function* watchUpdateElementType() {\r\n yield guardedTakeEvery(actionTypes.UPDATE_ELEMENT_TYPE, updateElementType);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const deleteElementArticle = (articleName, deletionMethod = 'SingleElement', deleteElementData) => {\r\n const uri = `/api/catalog/elements/article/${articleName}/${deletionMethod}`;\r\n return http.delete(uri, deleteElementData);\r\n};\r\n\r\nexport const deleteElementCategory = (categoryName, deletionMethod = 'SingleElement', deleteElementData) => {\r\n const uri = `/api/catalog/elements/category/${categoryName}/${deletionMethod}`;\r\n return http.delete(uri, deleteElementData);\r\n};\r\n","import { refreshCmsTreeElement } from 'api/cms/cmsTree/actions';\r\nimport { put, select } from 'redux-saga/effects';\r\nimport { getElementParents as getProductTreeElementParents } from 'store/catalog/productTree/selectors';\r\nimport { getElementParents as getCmsTreeElementParents } from 'store/cms/cmsTree/selectors';\r\nimport { refreshTreeElement } from './productTree/actions';\r\n\r\nexport function* refreshCatalogCmsParents(action, catalogArea) {\r\n if (action.currentElement) {\r\n if (action.elementArea === catalogArea) {\r\n const elementParents = yield select(getProductTreeElementParents, action.currentElement.id);\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const elementParent of elementParents) {\r\n yield put(refreshTreeElement(\r\n elementParent.parentName,\r\n elementParent.parentMetaTypeName\r\n ));\r\n }\r\n } else {\r\n const elementParents = yield select(getCmsTreeElementParents, action.currentElement.id);\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const elementParent of elementParents) {\r\n yield put(refreshCmsTreeElement(\r\n elementParent.parentName,\r\n elementParent.parentMetaTypeName\r\n ));\r\n }\r\n }\r\n }\r\n}\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { isMetaTypeArticle, isMetaTypeCategory } from 'infrastructure/helpers/metaTypes';\r\nimport { raiseMessage } from 'infrastructure/errorHandling/actions';\r\nimport * as messageTypes from 'infrastructure/messaging/messageTypes';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport { push } from 'infrastructure/messaging/actions';\r\nimport {\r\n deleteElementArticle as deleteElementArticleApi,\r\n deleteElementCategory as deleteElementCategoryApi\r\n} from './remoteApi';\r\nimport * as actions from './actions';\r\nimport * as actionTypes from './actionTypes';\r\nimport { refreshCatalogCmsParents } from '../sagaHelpers';\r\n\r\nconst productTreeType = 'catalog';\r\n\r\nfunction* deleteElementInApi(action) {\r\n const deleteElementData = {\r\n elementArea: action.elementArea\r\n };\r\n if (isMetaTypeCategory(action.currentElement.metaTypeName)) {\r\n yield apiCall(deleteElementCategoryApi, action.currentElement.id, action.deletionMethod, deleteElementData);\r\n }\r\n if (isMetaTypeArticle(action.currentElement.metaTypeName)) {\r\n yield apiCall(deleteElementArticleApi, action.currentElement.id, action.deletionMethod, deleteElementData);\r\n }\r\n const resources = yield select(getResourcesState);\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, resources.deleteElement_SuccessMessage));\r\n yield put(actions.closeDeleteElementModal());\r\n yield put(actions.cleanDeleteElementModal());\r\n if (action.currentElement) {\r\n yield refreshCatalogCmsParents(action, productTreeType);\r\n }\r\n yield (put(push(`/${action.elementArea}/${action.currentElement.metaTypeName}`)));\r\n}\r\n\r\nfunction* deleteElement(action) {\r\n yield put(actions.startDeleteElement());\r\n yield guardedGenerator(deleteElementInApi, action);\r\n yield put(actions.finishDeleteElement());\r\n}\r\n\r\nexport function* watchDeleteElement() {\r\n yield guardedTakeEvery(actionTypes.DELETE_ELEMENT, deleteElement);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const copyElement = (sourceElementId, metaTypeName, copyElementRequest) => {\r\n const uri = `/api/catalog/elements/${metaTypeName}/${sourceElementId}/copies`;\r\n return http.post(uri, copyElementRequest);\r\n};\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { raiseMessage } from 'infrastructure/errorHandling/actions';\r\nimport * as messageTypes from 'infrastructure/messaging/messageTypes';\r\nimport { push } from 'infrastructure/messaging/actions';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport { copyElement as copyElementApi } from './remoteApi';\r\n\r\nimport * as actions from './actions';\r\nimport * as actionTypes from './actionTypes';\r\nimport { refreshCatalogCmsParents } from '../sagaHelpers';\r\n\r\nconst catalogArea = 'catalog';\r\n\r\nfunction* copyElementInApi(action) {\r\n const copyElementRequest = {\r\n newElementId: action.newElementId,\r\n copyOption: action.copyOption\r\n };\r\n yield apiCall(copyElementApi, action.currentElement.id, action.currentElement.metaTypeName, copyElementRequest);\r\n const resources = yield select(getResourcesState);\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, resources.copyElement_SuccessMessage));\r\n yield put(actions.closeCopyElementModal());\r\n yield put(actions.cleanCopyElementModal());\r\n yield refreshCatalogCmsParents(action, catalogArea);\r\n yield (put(push(`/${action.elementArea}/${action.currentElement.metaTypeName}/${action.newElementId}`)));\r\n}\r\n\r\nfunction* copyElement(action) {\r\n yield put(actions.startCopyElement());\r\n yield guardedGenerator(copyElementInApi, action);\r\n yield put(actions.finishCopyElement());\r\n}\r\n\r\nexport function* watchCopyElement() {\r\n yield guardedTakeEvery(actionTypes.COPY_ELEMENT, copyElement);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const changeArticleIdApi = (elementId, requestBody) => http.patch(`/api/catalog/elements/article/${elementId}/id`, requestBody);\r\nexport const changeCategoryIdApi = (elementId, requestBody) => http.patch(`/api/catalog/elements/category/${elementId}/id`, requestBody);\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { isMetaTypeArticle, isMetaTypeCategory } from 'infrastructure/helpers/metaTypes';\r\nimport { changeElementIdInTree } from 'api/catalog/productTree/actions';\r\nimport { raiseMessage } from 'infrastructure/errorHandling/actions';\r\nimport * as messageTypes from 'infrastructure/messaging/messageTypes';\r\nimport { push } from 'infrastructure/messaging/actions';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport { changeArticleIdApi, changeCategoryIdApi } from './remoteApi';\r\n\r\nfunction* changeElementIdInApi(action) {\r\n const changeElementIdRequestBody = {\r\n newElementId: action.newElementId,\r\n };\r\n if (isMetaTypeCategory(action.currentElement.metaTypeName)) {\r\n yield apiCall(changeCategoryIdApi, action.currentElement.id, changeElementIdRequestBody);\r\n }\r\n if (isMetaTypeArticle(action.currentElement.metaTypeName)) {\r\n yield apiCall(changeArticleIdApi, action.currentElement.id, changeElementIdRequestBody);\r\n }\r\n const resources = yield select(getResourcesState);\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, resources.changeElementId_SuccessMessage));\r\n yield put(actions.closeChangeElementIdModal());\r\n yield put(actions.cleanChangeElementIdModal());\r\n yield put(changeElementIdInTree(action.currentElement.id, action.newElementId));\r\n yield (put(push(`/${action.elementArea}/${action.currentElement.metaTypeName}/${action.newElementId}`)));\r\n}\r\n\r\nfunction* changeElementId(action) {\r\n yield put(actions.startChangingElementId());\r\n yield guardedGenerator(changeElementIdInApi, action);\r\n yield put(actions.finishChangingElementId());\r\n}\r\n\r\nexport function* watchChangeElementId() {\r\n yield guardedTakeEvery(actionTypes.CHANGE_ELEMENT_ID, changeElementId);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const updateArticleActivationOptionsApi = (elementId, requestBody) => http.patch(`/api/catalog/elements/article/${elementId}/activationOptions`, requestBody);\r\nexport const updateCategoryActivationOptionsApi = (elementId, requestBody) => http.patch(`/api/catalog/elements/category/${elementId}/activationOptions`, requestBody);\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { isMetaTypeArticle, isMetaTypeCategory } from 'infrastructure/helpers/metaTypes';\r\nimport { raiseMessage } from 'infrastructure/errorHandling/actions';\r\nimport * as messageTypes from 'infrastructure/messaging/messageTypes';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport { updateArticleActivationOptionsApi, updateCategoryActivationOptionsApi } from './remoteApi';\r\nimport { fetchElementData } from '../element/actions';\r\nimport { refreshCatalogCmsParents } from '../sagaHelpers';\r\n\r\nconst catalogArea = 'catalog';\r\n\r\nfunction* updateActivationOptionsInApi(action) {\r\n if (isMetaTypeArticle(action.currentElement.metaTypeName)) {\r\n yield apiCall(updateArticleActivationOptionsApi, action.currentElement.id, action.activationOptions);\r\n }\r\n if (isMetaTypeCategory(action.currentElement.metaTypeName)) {\r\n yield apiCall(updateCategoryActivationOptionsApi, action.currentElement.id, action.activationOptions);\r\n }\r\n const resources = yield select(getResourcesState);\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, resources.updateElementActivationOptions_SuccessMessage));\r\n yield put(actions.closeActivationOptionsModal());\r\n yield put(actions.cleanActivationOptionsModal());\r\n if (action.openingSource === 'elementForm') {\r\n yield put(fetchElementData(action.currentElement.id, action.currentElement.metaTypeName));\r\n }\r\n yield refreshCatalogCmsParents(action, catalogArea);\r\n}\r\n\r\nfunction* updateActivationOptions(action) {\r\n yield put(actions.startUpdatingActivationOptions());\r\n yield guardedGenerator(updateActivationOptionsInApi, action);\r\n yield put(actions.finishUpdatingActivationOptions());\r\n}\r\n\r\nexport function* watchUpdateActivationOptions() {\r\n yield guardedTakeEvery(actionTypes.UPDATE_ACTIVATION_OPTIONS, updateActivationOptions);\r\n}\r\n","import Http from 'infrastructure/http/http';\r\nimport { http } from 'infrastructure/http';\r\n\r\nexport const getMediaApi = (data) => Http.get('/api/media', data);\r\n\r\nexport const getFileNamesInfoApi = (fileNames) => Http.post('/api/media/filesExist', fileNames);\r\n\r\nexport const getMediaDataApi = (elementId) => http.get(`api/media/elements/${elementId}`);\r\nexport const getMediaConfigurationApi = (elementType) => http.get(`/api/media/element-type/${elementType}`);\r\nexport const saveMediaDataApi = (elementId, formData) => http.put(`/api/media/elements/${elementId}`, formData);\r\n\r\nexport const deleteMediaElementsApi = (fileNames) => Http.delete('/api/media/deleteFiles', fileNames);\r\n\r\nexport const getMediaInfosApi = (data) => Http.get('/api/media/infos', data);\r\n\r\nexport const getAttachmentAssociationsApi = (elementId) => Http.get(`/api/media/elements/${elementId}/associations`);\r\n\r\nexport const getSupportedExtensionsApi = () => Http.get('/api/media/supportedExtensions');\r\n","import { put, select } from 'redux-saga/effects';\r\nimport diff from 'object-diff';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { raiseMessage } from 'infrastructure/errorHandling/actions';\r\nimport * as messageTypes from 'infrastructure/messaging/messageTypes';\r\nimport { getFormInitialValues } from 'redux-form';\r\nimport { push } from 'infrastructure/messaging/actions';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport {\r\n getMediaApi,\r\n getFileNamesInfoApi,\r\n getMediaDataApi,\r\n saveMediaDataApi,\r\n getMediaConfigurationApi,\r\n deleteMediaElementsApi,\r\n getMediaInfosApi,\r\n getAttachmentAssociationsApi,\r\n getSupportedExtensionsApi\r\n} from './remoteApi';\r\n\r\nconst elementArea = 'media';\r\n\r\nfunction* getMediaElements(action) {\r\n const elements = yield apiCall(getMediaApi, action.data);\r\n yield put(actions.initMediaElements(elements, action.data.isPrependingMedia));\r\n}\r\n\r\nfunction* fetchMediaElements(action) {\r\n yield put(actions.startFetchingMediaElements());\r\n yield guardedGenerator(getMediaElements, action);\r\n yield put(actions.finishFetchingMediaElements());\r\n}\r\n\r\nexport function* watchFetchMediaElements() {\r\n yield guardedTakeEvery(actionTypes.FETCH_MEDIA_ELEMENTS, fetchMediaElements);\r\n}\r\n\r\nfunction* getFileNamesInfo(action) {\r\n const fileNamesInfo = yield apiCall(getFileNamesInfoApi, action.fileNames);\r\n yield put(actions.initFileNamesInfo(fileNamesInfo));\r\n}\r\n\r\nfunction* fetchFileNamesInfo(action) {\r\n yield put(actions.startFetchingFileNamesInfo());\r\n yield guardedGenerator(getFileNamesInfo, action);\r\n yield put(actions.finishFetchingFileNamesInfo());\r\n}\r\n\r\nexport function* watchFileNamesInfo() {\r\n yield guardedTakeEvery(actionTypes.FETCH_FILE_NAMES_INFO, fetchFileNamesInfo);\r\n}\r\n\r\nfunction* getMediaData(action) {\r\n const mediaData = yield apiCall(getMediaDataApi, action.elementId);\r\n yield put(actions.initMediaData(mediaData));\r\n}\r\n\r\nfunction* fetchMediaData(action) {\r\n yield put(actions.startFetchingMediaData());\r\n yield getMediaData(action);\r\n yield put(actions.finishFetchingMediaData());\r\n}\r\n\r\nexport function* watchFetchMediaData() {\r\n yield guardedTakeEvery(actionTypes.FETCH_MEDIA_DATA, fetchMediaData);\r\n}\r\n\r\nfunction* getMediaConfiguration(action) {\r\n const mediaConfigurationData = yield apiCall(getMediaConfigurationApi, action.elementType);\r\n yield put(actions.initMediaConfiguration(mediaConfigurationData));\r\n}\r\n\r\nfunction* fetchMediaConfiguration(action) {\r\n yield put(actions.startFetchingMediaConfiguration());\r\n yield getMediaConfiguration(action);\r\n yield put(actions.finishFetchingMediaConfiguration());\r\n}\r\n\r\nexport function* watchFetchMediaConfiguration() {\r\n yield guardedTakeEvery(actionTypes.FETCH_MEDIA_CONFIGURATION, fetchMediaConfiguration);\r\n}\r\n\r\nfunction* saveMediaFormData(action) {\r\n yield put(actions.startSavingMediaData());\r\n const initialValues = yield select(getFormInitialValues(action.formName));\r\n const delta = diff(initialValues, action.form);\r\n const associationsDelta = diff(initialValues.associations, action.form.associations);\r\n const requestBody = {\r\n propertiesData: { ...delta, associations: undefined },\r\n associations: { ...associationsDelta }\r\n };\r\n yield apiCall(saveMediaDataApi, action.elementId, requestBody);\r\n const mediaData = yield apiCall(getMediaDataApi, action.elementId);\r\n yield put(actions.initMediaData(mediaData));\r\n yield put(actions.finishSavingMediaData());\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, 'Element was successfully saved'));\r\n}\r\n\r\nexport function* watchSaveMediaFormData() {\r\n yield guardedTakeEvery(actionTypes.SAVE_MEDIA_FORM_DATA, saveMediaFormData);\r\n}\r\n\r\nfunction* deleteMediaElementsInApi(action) {\r\n yield apiCall(deleteMediaElementsApi, action.fileNames);\r\n const resources = yield select(getResourcesState);\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, resources.deleteMediaElementMessage));\r\n yield (put(push(`/${elementArea}`)));\r\n const elements = yield apiCall(getMediaApi, action.requestData);\r\n yield put(actions.initMediaElements(elements));\r\n}\r\n\r\nfunction* deleteMediaElements(action) {\r\n yield put(actions.startDeleteMediaElements());\r\n yield guardedGenerator(deleteMediaElementsInApi, action);\r\n yield put(actions.finishDeleteMediaElements());\r\n}\r\n\r\nexport function* watchDeleteMediaElement() {\r\n yield guardedTakeEvery(actionTypes.DELETE_MEDIA_ELEMENTS, deleteMediaElements);\r\n}\r\n\r\nfunction* getMediaInfos(action) {\r\n const mediaInfos = yield apiCall(getMediaInfosApi, action.files);\r\n yield put(actions.initMediaInfos(mediaInfos));\r\n}\r\n\r\nfunction* fetchMediaInfos(action) {\r\n yield put(actions.startFetchingMediaInfos());\r\n yield guardedGenerator(getMediaInfos, action);\r\n yield put(actions.finishFetchingMediaInfos());\r\n}\r\n\r\nexport function* watchMediaInfos() {\r\n yield guardedTakeEvery(actionTypes.FETCH_MEDIA_INFOS, fetchMediaInfos);\r\n}\r\n\r\nfunction* getAttachmentAssociations(action) {\r\n yield put(actions.initAttachmentAssociations([]));\r\n const data = yield apiCall(getAttachmentAssociationsApi, action.elementId);\r\n yield put(actions.initAttachmentAssociations(data));\r\n}\r\n\r\nfunction* fetchAttachmentAssociations(action) {\r\n yield put(actions.startFetchingAttachmentAssociations());\r\n yield guardedGenerator(getAttachmentAssociations, action);\r\n yield put(actions.finishFetchingAttachmentAssociations());\r\n}\r\n\r\nexport function* watchFetchAttachmentAssociations() {\r\n yield guardedTakeEvery(actionTypes.FETCH_ATTACHMENT_ASSOCIATIONS, fetchAttachmentAssociations);\r\n}\r\n\r\nfunction* getSupportedExtensions() {\r\n const supportedExtensions = yield apiCall(getSupportedExtensionsApi);\r\n yield put(actions.initSupportedExtensions(supportedExtensions));\r\n}\r\n\r\nfunction* fetchSupportedExtensions() {\r\n yield put(actions.startFetchingSupportedExtensions());\r\n yield guardedGenerator(getSupportedExtensions);\r\n yield put(actions.finishFetchingSupportedExtensions());\r\n}\r\n\r\nexport function* watchSupportedExtensions() {\r\n yield guardedTakeEvery(actionTypes.FETCH_SUPPORTED_EXTENSIONS, fetchSupportedExtensions);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const getTreeElementsApi = (data) => (data && data.nodeType && data.nodeName\r\n ? http.get(`/api/cms-tree/${data.nodeType}/${data.nodeName}/subelements`)\r\n : http.get('/api/cms-tree/top'));\r\n\r\nexport const fetchTreeConfigApi = () => http.get('/api/cms-tree/config');\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { getCmsTreeState } from 'store/cms/cmsTree/selectors';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport { getTreeElementsApi, fetchTreeConfigApi } from './remoteApi';\r\n\r\nfunction* getTreeElements(action) {\r\n const tree = yield select(getCmsTreeState);\r\n let elements = [];\r\n\r\n const path = action.data && action.data.nodePath ? action.data.nodePath : null;\r\n\r\n if (action.data && action.data.nodePath && tree.findIndex((e) => e.id === action.data.nodePath) >= 0) {\r\n if (action.data.expanded) {\r\n if (tree.find((e) => e.parent === path && e.id === `stubId${action.data.nodePath}`)) {\r\n elements = yield apiCall(getTreeElementsApi, action.data);\r\n yield put(actions.expandCmsTreeElement(elements, action.data, true));\r\n } else {\r\n yield put(actions.expandCmsTreeElement(elements, action.data, false));\r\n }\r\n } else {\r\n yield put(actions.collapseCmsTreeElement(action.data));\r\n }\r\n }\r\n\r\n if (path === null && tree && (tree.length === 0 || (action.data && action.data.refresh))) {\r\n elements = yield apiCall(getTreeElementsApi, action.data);\r\n yield put(actions.initCmsTreeElements(elements, action.data, action.rootKey));\r\n }\r\n}\r\n\r\nfunction* fetchTreeElements(action) {\r\n yield put(actions.startFetchingCmsTreeElements(action.data));\r\n yield getTreeElements(action);\r\n yield put(actions.finishFetchingCmsTreeElements(action.data));\r\n}\r\n\r\nexport function* watchFetchCmsTreeElements() {\r\n yield guardedTakeEvery(actionTypes.FETCH_CMS_TREE_ELEMENTS, fetchTreeElements);\r\n}\r\n\r\nfunction* getRefreshedTree(action) {\r\n const elements = yield apiCall(getTreeElementsApi, action);\r\n yield put(actions.initRefreshingCmsTreeElements(elements, action));\r\n}\r\n\r\nfunction* refreshTreeElements(action) {\r\n yield put(actions.startRefreshingCmsTreeElements());\r\n yield getRefreshedTree(action);\r\n yield put(actions.finishFetchingCmsTreeElements());\r\n}\r\n\r\nexport function* watchRefreshCmsTreeElements() {\r\n yield guardedTakeEvery(actionTypes.REFRESH_CMS_TREE_ELEMENT, refreshTreeElements);\r\n}\r\n\r\nfunction* fetchTreeConfigFromApi() {\r\n const config = yield apiCall(fetchTreeConfigApi);\r\n yield put(actions.initCmsTreeConfig(config));\r\n}\r\n\r\nfunction* fetchTreeConfig(action) {\r\n yield put(actions.startFetchingCmsTreeConfig());\r\n yield guardedGenerator(fetchTreeConfigFromApi, action);\r\n yield put(actions.finishFetchingCmsTreeConfig());\r\n}\r\n\r\nexport function* watchFetchCmsTreeConfig() {\r\n yield guardedTakeEvery(actionTypes.FETCH_CMS_TREE_CONFIG, fetchTreeConfig);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const getTreeElementsApi = (data) => (data && data.nodeType && data.nodeName\r\n ? http.get(`/api/user-management-tree/${data.nodeType}/${data.nodeName}/subelements`)\r\n : http.get('/api/user-management-tree/top'));\r\n\r\nexport const fetchTreeConfigApi = () => http.get('/api/user-management-tree/config');\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { getTreeState } from 'store/userManagement/userManagementTree/selectors';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport { getTreeElementsApi, fetchTreeConfigApi } from './remoteApi';\r\n\r\nfunction* getTreeElements(action) {\r\n const tree = yield select(getTreeState);\r\n let elements = [];\r\n\r\n const path = action.data && action.data.nodePath ? action.data.nodePath : null;\r\n\r\n if (action.data && action.data.nodePath && tree.findIndex((e) => e.id === action.data.nodePath) >= 0) {\r\n if (action.data.expanded) {\r\n if (tree.find((e) => e.parent === path && e.id === `stubId${action.data.nodePath}`)) {\r\n elements = yield apiCall(getTreeElementsApi, action.data);\r\n yield put(actions.expandTreeElement(elements, action.data, true));\r\n } else {\r\n yield put(actions.expandTreeElement(elements, action.data, false));\r\n }\r\n } else {\r\n yield put(actions.collapseTreeElement(action.data));\r\n }\r\n }\r\n\r\n if ((path === null && tree && tree.length === 0) || (action.data && action.data.refresh)) {\r\n elements = yield apiCall(getTreeElementsApi, action.data);\r\n yield put(actions.initTreeElements(elements, action.data, action.rootKey));\r\n }\r\n}\r\n\r\nfunction* fetchTreeElements(action) {\r\n yield put(actions.startFetchingTreeElements(action.data));\r\n yield getTreeElements(action);\r\n yield put(actions.finishFetchingTreeElements(action.data));\r\n}\r\n\r\nexport function* watchFetchTreeElements() {\r\n yield guardedTakeEvery(actionTypes.FETCH_TREE_ELEMENTS, fetchTreeElements);\r\n}\r\n\r\nfunction* getRefreshedTree(action) {\r\n const elements = yield apiCall(getTreeElementsApi, action);\r\n yield put(actions.initRefreshingTreeElements(elements, action));\r\n}\r\n\r\nfunction* refreshTreeElements(action) {\r\n yield put(actions.startFetchingTreeElements(action.data));\r\n yield getRefreshedTree(action);\r\n yield put(actions.finishFetchingTreeElements(action.data));\r\n}\r\n\r\nexport function* watchRefreshTreeElements() {\r\n yield guardedTakeEvery(actionTypes.REFRESH_TREE_ELEMENT, refreshTreeElements);\r\n}\r\n\r\nfunction* fetchTreeConfigFromApi() {\r\n const config = yield apiCall(fetchTreeConfigApi);\r\n yield put(actions.initTreeConfig(config));\r\n}\r\n\r\nfunction* fetchTreeConfig(action) {\r\n yield put(actions.startFetchingTreeConfig());\r\n yield guardedGenerator(fetchTreeConfigFromApi, action);\r\n yield put(actions.finishFetchingTreeConfig());\r\n}\r\n\r\nexport function* watchFetchTreeConfig() {\r\n yield guardedTakeEvery(actionTypes.FETCH_TREE_CONFIG, fetchTreeConfig);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const fetchAvailableTypesForParentMetaType = (parentMetaTypeName) => (parentMetaTypeName\r\n ? http.get(`/api/user-management/element-type/allowed-children-types/${parentMetaTypeName}`)\r\n : http.get('/api/user-management/element-type/allowed-children-types'));\r\n\r\nexport const createNewElement = (elementData) => http.post('/api/user-management/elements', elementData);\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { push } from 'infrastructure/messaging/actions';\r\nimport { getTreeConfig } from 'store/userManagement/userManagementTree/selectors';\r\nimport {\r\n fetchAvailableTypesForParentMetaType as fetchAvailableTypesForParentMetaTypeApi,\r\n createNewElement as createNewElementApi\r\n} from './remoteApi';\r\nimport * as actions from './actions';\r\nimport { refreshTreeElement } from '../userManagementTree/actions';\r\nimport * as actionTypes from './actionTypes';\r\n\r\nfunction* fetchAvailableTypesForParentMetaTypeFromApi(action) {\r\n const types = yield apiCall(fetchAvailableTypesForParentMetaTypeApi, action.metaTypeName);\r\n return types;\r\n}\r\n\r\nfunction* fetchAvailableTypesForParentMetaType(action) {\r\n yield put(actions.startFetchingAvailableTypesForParentMetaType());\r\n const types = yield guardedGenerator(fetchAvailableTypesForParentMetaTypeFromApi, action);\r\n yield put(actions.initAvailableTypesForParentMetaType(types));\r\n yield put(actions.finishFetchingAvailableTypesForParentMetaType());\r\n}\r\n\r\nexport function* watchFetchAvailableTypesForParentMetaType() {\r\n yield guardedTakeEvery(actionTypes.FETCH_AVAILABLE_TYPES_FOR_PARENT_METATYPE, fetchAvailableTypesForParentMetaType);\r\n}\r\n\r\nfunction* createNewElementInApi(action) {\r\n const parentData = action.currentElement\r\n ? {\r\n parentElementId: action.currentElement.id,\r\n parentMetaTypeName: action.currentElement.metaTypeName\r\n }\r\n : {};\r\n const { elementArea } = action;\r\n const newElementData = {\r\n ...action.newElementData,\r\n ...parentData,\r\n elementArea\r\n };\r\n yield apiCall(createNewElementApi, newElementData);\r\n yield put(actions.closeNewElementModal());\r\n yield put(actions.cleanNewElementModal());\r\n if (Object.keys(action.currentElement).length !== 0) {\r\n yield put(refreshTreeElement(\r\n action.currentElement.id,\r\n action.currentElement.metaTypeName\r\n ));\r\n } else {\r\n const rootConfig = yield select(getTreeConfig);\r\n yield put(refreshTreeElement(rootConfig.userManagementTreeConfiguration.topElementName, 'Role'));\r\n }\r\n\r\n yield (put(push(`/user-management/${action.newElementData.metaTypeName}/${action.newElementData.id}`)));\r\n}\r\n\r\nfunction* createNewElement(action) {\r\n yield put(actions.startCreatingNewElement());\r\n yield guardedGenerator(createNewElementInApi, action);\r\n yield put(actions.finishCreatingNewElement());\r\n}\r\n\r\nexport function* watchCreateNewElement() {\r\n yield guardedTakeEvery(actionTypes.CREATE_NEW_ELEMENT, createNewElement);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const getElementDataApi = (elementId, elementMetaType) => http.get(`/api/user-management/elements/${elementMetaType}/${elementId}`);\r\nexport const getElementConfigurationApi = (elementMetaType, elementType) => http.get(`/api/user-management/element-type/${elementMetaType}/${elementType}`);\r\nexport const saveElementDataApi = (elementMetaType, elementId, formData) => http.put(`/api/user-management/elements/${elementMetaType}/${elementId}`, formData);\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { push } from 'infrastructure/messaging/actions';\r\nimport diff from 'object-diff';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { getFormInitialValues } from 'redux-form';\r\nimport { raiseMessage } from 'infrastructure/errorHandling/actions';\r\nimport * as messageTypes from 'infrastructure/messaging/messageTypes';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport * as actions from './actions';\r\nimport * as actionTypes from './actionTypes';\r\nimport {\r\n getElementDataApi,\r\n getElementConfigurationApi,\r\n saveElementDataApi\r\n} from './remoteApi';\r\n\r\nconst elmentArea = 'user-management';\r\n\r\nfunction* elementNotFound(action, resources) {\r\n yield put(raiseMessage(messageTypes.ERROR_MESSAGE_TYPE, resources.elementNotFound));\r\n yield (put(push(`/${elmentArea}/${action.elementMetaType}`)));\r\n}\r\n\r\nfunction* getElementDataInApi(action) {\r\n const elementData = yield apiCall(getElementDataApi, action.elementId, action.elementMetaType);\r\n if (elementData) {\r\n yield put(actions.initElementData(elementData));\r\n }\r\n}\r\n\r\nfunction* getElementData(action) {\r\n const errorHandler = { 404: elementNotFound };\r\n yield guardedGenerator(getElementDataInApi, action, errorHandler);\r\n}\r\n\r\nfunction* fetchElementData(action) {\r\n yield put(actions.startFetchingElementData());\r\n yield getElementData(action);\r\n yield put(actions.finishFetchingElementData());\r\n}\r\n\r\nexport function* watchFetchElementData() {\r\n yield guardedTakeEvery(actionTypes.FETCH_ELEMENT_DATA, fetchElementData);\r\n}\r\n\r\nfunction* getElementConfiguration(action) {\r\n const elementConfigurationData = yield apiCall(getElementConfigurationApi, action.elementMetaType, action.elementType);\r\n yield put(actions.initElementConfiguration(elementConfigurationData));\r\n}\r\n\r\nfunction* fetchElementConfiguration(action) {\r\n yield put(actions.startFetchingElementConfiguration());\r\n yield getElementConfiguration(action);\r\n yield put(actions.finishFetchingElementConfiguration());\r\n}\r\n\r\nexport function* watchFetchElementConfiguration() {\r\n yield guardedTakeEvery(actionTypes.FETCH_ELEMENT_CONFIGURATION, fetchElementConfiguration);\r\n}\r\n\r\nfunction* getElementDataApiCall(action) {\r\n const initialValues = yield select(getFormInitialValues(action.formName));\r\n const delta = diff(initialValues, action.form);\r\n const associationsDelta = diff(initialValues.associations, action.form.associations);\r\n const requestBody = {\r\n propertiesData: { ...delta, associations: undefined },\r\n associations: { ...associationsDelta },\r\n elementArea: action.elementArea\r\n };\r\n yield apiCall(saveElementDataApi, action.elementMetaType, action.elementId, requestBody);\r\n const resources = yield select(getResourcesState);\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, resources.saveElement_SuccessMessage));\r\n const elementData = yield apiCall(getElementDataApi, action.elementId, action.elementMetaType);\r\n yield put(actions.initElementData(elementData));\r\n}\r\n\r\nfunction* saveElementFormData(action) {\r\n yield put(actions.startSavingElementData());\r\n yield guardedGenerator(getElementDataApiCall, action);\r\n yield put(actions.finishSavingElementData());\r\n}\r\n\r\nexport function* watchSaveElementFormData() {\r\n yield guardedTakeEvery(actionTypes.SAVE_ELEMENT_FORM_DATA, saveElementFormData);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const fetchAvailableTypesApi = (metaType) => (metaType\r\n ? http.get(`/api/user-management/element-type/${metaType}`)\r\n : http.get('/api/user-management/element-type'));\r\n\r\nexport const updateUserTypeApi = (elementId, requestBody) => http.patch(`/api/user-management/elements/user/${elementId}/type`, requestBody);\r\nexport const updateRoleTypeApi = (elementId, requestBody) => http.patch(`/api/user-management/elements/role/${elementId}/type`, requestBody);\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { isMetaTypeUser, isMetaTypeRole } from 'infrastructure/helpers/metaTypes';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport { getElementDataApi } from 'api/userManagement/element/remoteApi';\r\nimport { raiseMessage } from 'infrastructure/errorHandling/actions';\r\nimport * as messageTypes from 'infrastructure/messaging/messageTypes';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport {\r\n fetchAvailableTypesApi,\r\n updateUserTypeApi,\r\n updateRoleTypeApi\r\n} from './remoteApi';\r\nimport { initElementData } from '../element/actions';\r\n\r\nfunction* fetchAvailableTypesFromApi(action) {\r\n const types = yield apiCall(fetchAvailableTypesApi, action.metaTypeName);\r\n return types;\r\n}\r\n\r\nfunction* fetchAvailableTypes(action) {\r\n const types = yield guardedGenerator(fetchAvailableTypesFromApi, action);\r\n yield put(actions.initAvailableTypes(types));\r\n}\r\n\r\nexport function* watchFetchAvailableTypes() {\r\n yield guardedTakeEvery(actionTypes.FETCH_AVAILABLE_TYPES, fetchAvailableTypes);\r\n}\r\n\r\nfunction* updateElementTypeInApi(action) {\r\n const changeElementTypeRequestBody = {\r\n newElementTypeId: action.newElementType,\r\n };\r\n if (isMetaTypeRole(action.currentElement.metaTypeName)) {\r\n yield apiCall(updateRoleTypeApi, action.currentElement.id, changeElementTypeRequestBody);\r\n }\r\n if (isMetaTypeUser(action.currentElement.metaTypeName)) {\r\n yield apiCall(updateUserTypeApi, action.currentElement.id, changeElementTypeRequestBody);\r\n }\r\n const resources = yield select(getResourcesState);\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, resources.changeElementType_SuccessMessage));\r\n yield put(actions.closeChangeTypeModal());\r\n const elementData = yield apiCall(getElementDataApi, action.currentElement.id, action.currentElement.metaTypeName);\r\n yield put(initElementData(elementData));\r\n}\r\n\r\nfunction* updateElementType(action) {\r\n yield guardedGenerator(updateElementTypeInApi, action);\r\n}\r\n\r\nexport function* watchUpdateElementType() {\r\n yield guardedTakeEvery(actionTypes.UPDATE_ELEMENT_TYPE, updateElementType);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const deleteElementUser = (userName, deletionMethod = 'SingleElement', deleteElementData) => {\r\n const uri = `/api/user-management/elements/user/${userName}/${deletionMethod}`;\r\n return http.delete(uri, deleteElementData);\r\n};\r\n\r\nexport const deleteElementRole = (roleName, deletionMethod = 'SingleElement', deleteElementData) => {\r\n const uri = `/api/user-management/elements/role/${roleName}/${deletionMethod}`;\r\n return http.delete(uri, deleteElementData);\r\n};\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { getElementParents } from 'store/userManagement/userManagementTree/selectors';\r\nimport { refreshTreeElement } from './userManagementTree/actions';\r\n\r\nexport function* refreshUserRoleParents(action) {\r\n const elementParents = yield select(getElementParents, action.currentElement.id);\r\n if (action.currentElement) {\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const elementParent of elementParents) {\r\n yield put(refreshTreeElement(\r\n elementParent.parentName,\r\n elementParent.parentMetaTypeName\r\n ));\r\n }\r\n }\r\n}\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { isMetaTypeUser, isMetaTypeRole } from 'infrastructure/helpers/metaTypes';\r\nimport { raiseMessage } from 'infrastructure/errorHandling/actions';\r\nimport * as messageTypes from 'infrastructure/messaging/messageTypes';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport { push } from 'infrastructure/messaging/actions';\r\nimport {\r\n deleteElementUser,\r\n deleteElementRole\r\n} from './remoteApi';\r\nimport * as actions from './actions';\r\nimport * as actionTypes from './actionTypes';\r\nimport { refreshUserRoleParents } from '../sagaHelpers';\r\n\r\nfunction* deleteElementInApi(action) {\r\n const deleteElementData = {\r\n elementArea: action.elementArea\r\n };\r\n if (isMetaTypeRole(action.currentElement.metaTypeName)) {\r\n yield apiCall(deleteElementRole, action.currentElement.id, action.deletionMethod, deleteElementData);\r\n }\r\n if (isMetaTypeUser(action.currentElement.metaTypeName)) {\r\n yield apiCall(deleteElementUser, action.currentElement.id, action.deletionMethod, deleteElementData);\r\n }\r\n const resources = yield select(getResourcesState);\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, resources.deleteElement_SuccessMessage));\r\n yield put(actions.closeDeleteElementModal());\r\n yield put(actions.cleanDeleteElementModal());\r\n yield refreshUserRoleParents(action);\r\n yield (put(push(`/${action.elementArea}/${action.currentElement.metaTypeName}`)));\r\n}\r\n\r\nfunction* deleteElement(action) {\r\n yield put(actions.startDeleteElement());\r\n yield guardedGenerator(deleteElementInApi, action);\r\n yield put(actions.finishDeleteElement());\r\n}\r\n\r\nexport function* watchDeleteElement() {\r\n yield guardedTakeEvery(actionTypes.DELETE_ELEMENT, deleteElement);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const copyElement = (sourceElementId, metaTypeName, copyElementRequest) => {\r\n const uri = `/api/user-management/elements/${metaTypeName}/${sourceElementId}/copies`;\r\n return http.post(uri, copyElementRequest);\r\n};\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { raiseMessage } from 'infrastructure/errorHandling/actions';\r\nimport * as messageTypes from 'infrastructure/messaging/messageTypes';\r\nimport { push } from 'infrastructure/messaging/actions';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport { copyElement as copyElementApi } from './remoteApi';\r\n\r\nimport * as actions from './actions';\r\nimport * as actionTypes from './actionTypes';\r\nimport { refreshUserRoleParents } from '../sagaHelpers';\r\n\r\nfunction* copyElementInApi(action) {\r\n const copyElementRequest = {\r\n newElementId: action.newElementId,\r\n copyOption: action.copyOption\r\n };\r\n yield apiCall(copyElementApi, action.currentElement.id, action.currentElement.metaTypeName, copyElementRequest);\r\n const resources = yield select(getResourcesState);\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, resources.copyElement_SuccessMessage));\r\n yield put(actions.closeCopyElementModal());\r\n yield put(actions.cleanCopyElementModal());\r\n yield refreshUserRoleParents(action);\r\n yield (put(push(`/user-management/${action.currentElement.metaTypeName}/${action.newElementId}`)));\r\n}\r\n\r\nfunction* copyElement(action) {\r\n yield put(actions.startCopyElement());\r\n yield guardedGenerator(copyElementInApi, action);\r\n yield put(actions.finishCopyElement());\r\n}\r\n\r\nexport function* watchCopyElement() {\r\n yield guardedTakeEvery(actionTypes.COPY_ELEMENT, copyElement);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const changeUserIdApi = (elementId, requestBody) => http.patch(`/api/user-management/elements/user/${elementId}/id`, requestBody);\r\nexport const changeRoleIdApi = (elementId, requestBody) => http.patch(`/api/user-management/elements/role/${elementId}/id`, requestBody);\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { isMetaTypeUser, isMetaTypeRole } from 'infrastructure/helpers/metaTypes';\r\nimport { raiseMessage } from 'infrastructure/errorHandling/actions';\r\nimport * as messageTypes from 'infrastructure/messaging/messageTypes';\r\nimport { push } from 'infrastructure/messaging/actions';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport { changeElementIdInTree } from '../userManagementTree/actions';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport {\r\n changeUserIdApi,\r\n changeRoleIdApi\r\n} from './remoteApi';\r\n\r\nfunction* changeElementIdInApi(action) {\r\n const changeElementIdRequestBody = {\r\n newElementId: action.newElementId,\r\n };\r\n if (isMetaTypeRole(action.currentElement.metaTypeName)) {\r\n yield apiCall(changeRoleIdApi, action.currentElement.id, changeElementIdRequestBody);\r\n }\r\n if (isMetaTypeUser(action.currentElement.metaTypeName)) {\r\n yield apiCall(changeUserIdApi, action.currentElement.id, changeElementIdRequestBody);\r\n }\r\n const resources = yield select(getResourcesState);\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, resources.changeElementId_SuccessMessage));\r\n yield put(actions.closeChangeElementIdModal());\r\n yield put(actions.cleanChangeElementIdModal());\r\n yield put(changeElementIdInTree(action.currentElement.id, action.newElementId));\r\n yield (put(push(`/user-management/${action.currentElement.metaTypeName}/${action.newElementId}`)));\r\n}\r\n\r\nfunction* changeElementId(action) {\r\n yield put(actions.startChangingElementId());\r\n yield guardedGenerator(changeElementIdInApi, action);\r\n yield put(actions.finishChangingElementId());\r\n}\r\n\r\nexport function* watchChangeElementId() {\r\n yield guardedTakeEvery(actionTypes.CHANGE_ELEMENT_ID, changeElementId);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const changeUserEmailApi = (userId, requestBody) => http.patch(`/api/user-management/elements/user/${userId}/email`, requestBody);\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { isMetaTypeUser } from 'infrastructure/helpers/metaTypes';\r\nimport { raiseMessage } from 'infrastructure/errorHandling/actions';\r\nimport * as messageTypes from 'infrastructure/messaging/messageTypes';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport { fetchElementData } from '../element/actions';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport {\r\n changeUserEmailApi\r\n} from './remoteApi';\r\n\r\nfunction* changeUserEmailInApi(action) {\r\n const changeUserEmailRequestBody = {\r\n newUserEmail: action.newUserEmail,\r\n };\r\n if (isMetaTypeUser(action.currentElement.metaTypeName)) {\r\n yield apiCall(changeUserEmailApi, action.currentElement.id, changeUserEmailRequestBody);\r\n }\r\n const resources = yield select(getResourcesState);\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, resources.changeUserEmail_SuccessMessage));\r\n yield put(actions.closeChangeUserEmailModal());\r\n yield put(actions.cleanChangeUserEmailModal());\r\n yield put(fetchElementData(action.currentElement.id, action.currentElement.metaTypeName));\r\n}\r\n\r\nfunction* changeUserEmail(action) {\r\n yield put(actions.startChangingUserEmail());\r\n yield guardedGenerator(changeUserEmailInApi, action);\r\n yield put(actions.finishChangingUserEmail());\r\n}\r\n\r\nexport function* watchChangeUserEmail() {\r\n yield guardedTakeEvery(actionTypes.CHANGE_USER_EMAIL, changeUserEmail);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const updateUserActivationOptionsApi = (elementId, requestBody) => http.patch(`/api/user-management/elements/user/${elementId}/activationOptions`, requestBody);\r\nexport const updateRoleActivationOptionsApi = (elementId, requestBody) => http.patch(`/api/user-management/elements/role/${elementId}/activationOptions`, requestBody);\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { isMetaTypeRole, isMetaTypeUser } from 'infrastructure/helpers/metaTypes';\r\nimport { raiseMessage } from 'infrastructure/errorHandling/actions';\r\nimport * as messageTypes from 'infrastructure/messaging/messageTypes';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport { updateRoleActivationOptionsApi, updateUserActivationOptionsApi } from './remoteApi';\r\nimport { fetchElementData } from '../element/actions';\r\nimport { refreshUserRoleParents } from '../sagaHelpers';\r\n\r\nfunction* updateActivationOptionsInApi(action) {\r\n if (isMetaTypeRole(action.currentElement.metaTypeName)) {\r\n yield apiCall(updateRoleActivationOptionsApi, action.currentElement.id, action.activationOptions);\r\n }\r\n if (isMetaTypeUser(action.currentElement.metaTypeName)) {\r\n yield apiCall(updateUserActivationOptionsApi, action.currentElement.id, action.activationOptions);\r\n }\r\n const resources = yield select(getResourcesState);\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, resources.updateElementActivationOptions_SuccessMessage));\r\n yield put(actions.closeActivationOptionsModal());\r\n yield put(actions.cleanActivationOptionsModal());\r\n if (action.openingSource === 'elementForm') {\r\n yield put(fetchElementData(action.currentElement.id, action.currentElement.metaTypeName));\r\n }\r\n yield refreshUserRoleParents(action);\r\n}\r\n\r\nfunction* updateActivationOptions(action) {\r\n yield put(actions.startUpdatingActivationOptions());\r\n yield guardedGenerator(updateActivationOptionsInApi, action);\r\n yield put(actions.finishUpdatingActivationOptions());\r\n}\r\n\r\nexport function* watchUpdateActivationOptions() {\r\n yield guardedTakeEvery(actionTypes.UPDATE_ACTIVATION_OPTIONS, updateActivationOptions);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const getSearchResultsApi = (searchRequest) => http.post('/api/search', searchRequest);\r\nexport const getSearchSuggestionsApi = (searchPhrase) => http.get('/api/search/suggestions', { q: searchPhrase });\r\nexport const getPredefinedSearchResultsApi = (searchRequest) => http.post('/api/search/predefined', searchRequest);\r\nexport const getPredefinedSearchOptionsApi = () => http.get('api/search/predefined/options');\r\n","import { put } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport { getSearchResultsApi, getSearchSuggestionsApi, getPredefinedSearchResultsApi, getPredefinedSearchOptionsApi } from './remoteApi';\r\n\r\nfunction* getSearchResults(action) {\r\n const searchRequest = {\r\n searchPhrase: action.searchPhrase,\r\n pageIndex: action.pageIndex,\r\n pageSize: action.pageSize,\r\n searchMetaTypes: action.searchMetaTypes,\r\n sortInfo: action.sortInfo,\r\n searchLanguage: action.searchLanguage\r\n };\r\n\r\n const results = yield apiCall(getSearchResultsApi, searchRequest);\r\n yield put(actions.initSearchResults(results));\r\n}\r\n\r\nfunction* fetchSearchResults(action) {\r\n yield put(actions.setPagination(action.pageIndex, action.pageSize));\r\n yield put(actions.startFetchingSearchResults());\r\n yield guardedGenerator(getSearchResults, action);\r\n yield put(actions.finishFetchingSearchResults());\r\n}\r\n\r\nexport function* watchFetchSearchResults() {\r\n yield guardedTakeEvery(actionTypes.FETCH_SEARCH_RESULTS, fetchSearchResults);\r\n}\r\n\r\nfunction* getPredefinedSearchResultsApiCall(action) {\r\n const searchRequest = {\r\n pageIndex: action.pageIndex,\r\n pageSize: action.pageSize,\r\n predefinedSearchId: action.predefinedSearchId\r\n };\r\n\r\n const results = yield apiCall(getPredefinedSearchResultsApi, searchRequest);\r\n yield put(actions.initSearchResults(results));\r\n}\r\n\r\nfunction* fetchPredefinedSearchResults(action) {\r\n yield put(actions.setPagination(action.pageIndex, action.pageSize));\r\n yield put(actions.startFetchingSearchResults());\r\n yield guardedGenerator(getPredefinedSearchResultsApiCall, action);\r\n yield put(actions.finishFetchingSearchResults());\r\n}\r\n\r\nexport function* watchPredefinedFetchSearchResults() {\r\n yield guardedTakeEvery(actionTypes.FETCH_PREDEFINED_SEARCH_RESULTS, fetchPredefinedSearchResults);\r\n}\r\n\r\nfunction* getPredefinedSearchOptionsApiCall() {\r\n const options = yield apiCall(getPredefinedSearchOptionsApi);\r\n yield put(actions.initPredefinedSearchOptions(options));\r\n}\r\n\r\nfunction* fetchPredefinedSearchOptions() {\r\n yield guardedGenerator(getPredefinedSearchOptionsApiCall);\r\n}\r\n\r\nexport function* watchPredefinedFetchSearchOptions() {\r\n yield guardedTakeEvery(actionTypes.FETCH_PREDEFINED_SEARCH_OPTIONS, fetchPredefinedSearchOptions);\r\n}\r\n\r\nfunction* getSearchSuggestions(action) {\r\n const searchSuggestions = yield apiCall(getSearchSuggestionsApi, action.searchPhrase);\r\n yield put(actions.initSearchSuggestions(searchSuggestions));\r\n}\r\n\r\nfunction* changeSearchPhrase(action) {\r\n yield put(actions.startFetchingSearchSuggestions());\r\n yield guardedGenerator(getSearchSuggestions, action);\r\n yield put(actions.finishFetchingSearchSuggestions());\r\n}\r\n\r\nexport function* watchChangeSearchPhrase() {\r\n yield guardedTakeEvery(actionTypes.CHANGE_SEARCH_PHRASE, changeSearchPhrase);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const updatePasswordApi = (elementId, newPassword) => http.put(`api/user-management/elements/user/${elementId}/password`, { newPassword });\r\n","import { put } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport { updatePasswordApi } from './remoteApi';\r\n\r\nfunction* executePasswordUpdate(action) {\r\n yield apiCall(updatePasswordApi, action.elementId, action.newPassword);\r\n}\r\n\r\nfunction* updatePasswordGenerator(action) {\r\n yield put(actions.startUpdatingPassword());\r\n yield guardedGenerator(executePasswordUpdate, action);\r\n yield put(actions.finishUpdatingPassword());\r\n}\r\n\r\nexport function* watchUpdatePassword() {\r\n yield guardedTakeEvery(actionTypes.UPDATE_PASSWORD, updatePasswordGenerator);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const fetchActions = () => http.get('/api/actions');\r\nexport const runAction = (actionToRun) => http.post('/api/actions/runs', actionToRun);\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { getResourcesState } from 'store/layout/selectors';\r\nimport { raiseMessage } from 'infrastructure/errorHandling/actions';\r\nimport * as messageTypes from 'infrastructure/messaging/messageTypes';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport { fetchActions, runAction } from './remoteApi';\r\n\r\nfunction* fetchActionsApiCall() {\r\n const results = yield apiCall(fetchActions);\r\n yield put(actions.initActions(results));\r\n}\r\n\r\nfunction* fetchActionsGenerator() {\r\n yield guardedGenerator(fetchActionsApiCall);\r\n}\r\n\r\nexport function* watchFetchActions() {\r\n yield guardedTakeEvery(actionTypes.FETCH_ACTIONS, fetchActionsGenerator);\r\n}\r\n\r\nfunction* runActionApiCall(action) {\r\n yield apiCall(runAction, action.actionToRun);\r\n const resources = yield select(getResourcesState);\r\n yield put(raiseMessage(messageTypes.SUCCESS_MESSAGE_TYPE, resources.runActionSuccess));\r\n}\r\n\r\nfunction* runActionGenerator(action) {\r\n yield put(actions.startRunAction(action.actionToRun));\r\n yield guardedGenerator(runActionApiCall, action);\r\n yield put(actions.finishRunAction(action.actionToRun));\r\n}\r\n\r\nexport function* watchRunAction() {\r\n yield guardedTakeEvery(actionTypes.RUN_ACTION, runActionGenerator);\r\n}\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const fetchConfiguration = () => ({ type: actionTypes.FETCH_CONFIGURATION });\r\nexport const startFetchingConfiguration = () => ({ type: actionTypes.START_FETCHING_CONFIGURATION });\r\nexport const finishFetchingConfiguration = () => ({ type: actionTypes.FINISH_FETCHING_CONFIGURATION });\r\nexport const initConfiguration = (configuration) => ({ type: actionTypes.INIT_CONFIGURATION, configuration });\r\n","import Http from 'infrastructure/http/http';\r\n\r\nexport const getConfigurationApi = () => Http.get('/api/configuration');\r\n","import { put } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall } from 'infrastructure/helpers/sagasHelper';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport { getConfigurationApi } from './remoteApi';\r\n\r\nfunction* getConfiguration() {\r\n const configuration = yield apiCall(getConfigurationApi);\r\n yield put(actions.initConfiguration(configuration));\r\n}\r\n\r\nfunction* fetchConfiguration() {\r\n yield put(actions.startFetchingConfiguration());\r\n yield getConfiguration();\r\n yield put(actions.finishFetchingConfiguration());\r\n}\r\n\r\nexport function* watchFetchConfiguration() {\r\n yield guardedTakeEvery(actionTypes.FETCH_CONFIGURATION, fetchConfiguration);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const getExportsApi = () => http.get('/api/data-management/export');\r\n","import { put } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport * as actions from 'api/dataManagement/actions';\r\nimport * as actionTypes from 'api/dataManagement/actionTypes';\r\nimport {\r\n getExportsApi\r\n} from 'api/dataManagement/remoteApi';\r\n\r\nfunction* fetchAllExportsFromApi() {\r\n const data = yield apiCall(getExportsApi);\r\n yield put(actions.initAllExports(data));\r\n}\r\n\r\nfunction* fetchAllExports(action) {\r\n yield put(actions.startFetchingAllExports());\r\n yield guardedGenerator(fetchAllExportsFromApi, action);\r\n yield put(actions.finishFetchingAllExports());\r\n}\r\n\r\nexport function* watchFetchAllExports() {\r\n yield guardedTakeEvery(actionTypes.FETCH_ALL_EXPORTS, fetchAllExports);\r\n}\r\n","import { http } from 'infrastructure/http';\r\n\r\nexport const getFieldSuggestions = (metatypeName, propertyName, query) => http.get('/api/propertyvaluesuggestions', { t: metatypeName, p: propertyName, q: query });\r\n","import { put, select } from 'redux-saga/effects';\r\nimport { guardedTakeEvery, apiCall, guardedGenerator } from 'infrastructure/helpers/sagasHelper';\r\nimport { getFieldElementData } from 'store/propertyValueSuggestions/selectors';\r\nimport * as actionTypes from './actionTypes';\r\nimport * as actions from './actions';\r\nimport { getFieldSuggestions } from './remoteApi';\r\n\r\nfunction* getFieldSuggestionsApi(action) {\r\n const suggestions = yield apiCall(getFieldSuggestions, action.metatypeName, action.propertyName, action.query);\r\n yield put(actions.initFieldSuggestions(action.metatypeName, action.propertyName, action.query, suggestions));\r\n}\r\n\r\nfunction* changeFieldSuggestions(action) {\r\n const element = yield (select(getFieldElementData));\r\n if (element.metatypeName === action.metatypeName && element.propertyData.propertyName === action.propertyName && element.propertyData.suggestions.searchPhrase === action.query && !element.propertyData.isFetchingSuggestions) {\r\n return;\r\n }\r\n yield put(actions.startFetchingFieldSuggestions());\r\n yield guardedGenerator(getFieldSuggestionsApi, action);\r\n yield put(actions.finishFetchingFieldSuggestions());\r\n}\r\n\r\nexport function* watchChangeFieldSuggestions() {\r\n yield guardedTakeEvery(actionTypes.FETCH_FIELD_SUGGESTIONS, changeFieldSuggestions);\r\n}\r\n","import { all } from 'redux-saga/effects';\r\nimport { watchFetchLayoutInfo } from 'api/layout/sagas';\r\nimport { watchLoginUser, watchLogoutUser } from 'api/user/login';\r\n// Catalog\r\nimport {\r\n watchFetchTreeElements as watchFetchProductTreeElements,\r\n watchRefreshTreeElements as watchRefreshProductTreeElements,\r\n watchFetchTreeConfig as watchFetchProductTreeConfig,\r\n} from 'api/catalog/productTree/sagas';\r\nimport { watchFetchAllElements, watchFetchSearchTermData, watchFetchExport, watchUpdateResource } from 'api/languageManagement/sagas';\r\nimport { watchFetchAvailableExportDefinitions, watchAddNewExportJob } from 'api/catalog/exportElement/sagas';\r\nimport {\r\n watchFetchAvailableTypesForParentMetaType as watchFetchAvailableCatalogTypesForParentMetaType,\r\n watchCreateNewElement as watchCreateNewCatalogElement,\r\n} from 'api/catalog/newElement/sagas';\r\nimport {\r\n watchFetchElementData as watchFetchCatalogElementData,\r\n watchFetchElementConfiguration as watchFetchCatalogElementConfiguration,\r\n watchSaveElementFormData as watchSaveCatalogElementFormData,\r\n} from 'api/catalog/element/sagas';\r\nimport { watchFetchAvailableTypes as watchFetchAvailableCatalogTypes, watchUpdateElementType as watchUpdateCatalogElementType } from 'api/catalog/changeElementType/sagas';\r\nimport { watchDeleteElement as watchDeleteCatalogElement } from 'api/catalog/deleteElement/sagas';\r\nimport { watchCopyElement as watchCopyCatalogElement } from 'api/catalog/copyElement/sagas';\r\nimport { watchChangeElementId as watchChangeCatalogElementId } from 'api/catalog/changeElementId/sagas';\r\nimport { watchUpdateActivationOptions as watchUpdateCatalogActivationOptions } from 'api/catalog/elementActivationOptions/sagas';\r\n// Media\r\nimport {\r\n watchFetchMediaElements,\r\n watchFileNamesInfo,\r\n watchFetchMediaData,\r\n watchFetchMediaConfiguration,\r\n watchSaveMediaFormData,\r\n watchDeleteMediaElement,\r\n watchMediaInfos,\r\n watchFetchAttachmentAssociations,\r\n watchSupportedExtensions\r\n} from 'api/media/sagas';\r\n// CMS\r\nimport { watchFetchCmsTreeElements, watchRefreshCmsTreeElements, watchFetchCmsTreeConfig } from 'api/cms/cmsTree/sagas';\r\n// UserManagement\r\nimport {\r\n watchFetchTreeElements as watchFetchUserManagementTreeElements,\r\n watchRefreshTreeElements as watchRefreshUserManagementTreeElements,\r\n watchFetchTreeConfig as watchFetchUserManagementTreeConfig,\r\n} from 'api/userManagement/userManagementTree/sagas';\r\nimport {\r\n watchFetchAvailableTypesForParentMetaType as watchFetchAvailableUserManagementTypesForParentMetaType,\r\n watchCreateNewElement as watchCreateNewUserManagementElement,\r\n} from 'api/userManagement/newElement/sagas';\r\nimport {\r\n watchFetchElementData as watchFetchUserManagementElementData,\r\n watchFetchElementConfiguration as watchFetchUserManagementElementConfiguration,\r\n watchSaveElementFormData as watchSaveUserManagementElementFormData,\r\n} from 'api/userManagement/element/sagas';\r\nimport {\r\n watchFetchAvailableTypes as watchFetchAvailableUserManagementTypes,\r\n watchUpdateElementType as watchUpdateUserManagementElementType,\r\n} from 'api/userManagement/changeElementType/sagas';\r\nimport { watchDeleteElement as watchDeleteUserManagementElement } from 'api/userManagement/deleteElement/sagas';\r\nimport { watchCopyElement as watchCopyUserManagementElement } from 'api/userManagement/copyElement/sagas';\r\n\r\nimport { watchChangeElementId as watchChangeUserManagementElementId } from 'api/userManagement/changeElementId/sagas';\r\nimport { watchChangeUserEmail as watchChangeUserManagementUserEmail } from 'api/userManagement/changeUserEmail/sagas';\r\nimport { watchUpdateActivationOptions as watchUpdateUserManagementActivationOptions } from 'api/userManagement/elementActivationOptions/sagas';\r\n// Search\r\nimport { watchPredefinedFetchSearchResults, watchPredefinedFetchSearchOptions, watchFetchSearchResults, watchChangeSearchPhrase } from 'api/search/sagas';\r\nimport { watchUpdatePassword } from 'api/userManagement/passwordUpdate/sagas';\r\nimport { watchFetchActions, watchRunAction } from 'api/actions/sagas';\r\nimport { watchFetchConfiguration } from 'api/configuration/sagas';\r\n// Data Management\r\nimport { watchFetchAllExports } from 'api/dataManagement/sagas';\r\nimport { watchChangeFieldSuggestions } from 'api/propertyValueSuggestions/sagas';\r\n\r\nexport default function* rootSaga() {\r\n yield all([\r\n watchFetchLayoutInfo(),\r\n watchLoginUser(),\r\n watchLogoutUser(),\r\n watchFetchConfiguration(),\r\n // Catalog\r\n watchFetchProductTreeElements(),\r\n watchRefreshProductTreeElements(),\r\n watchFetchProductTreeConfig(),\r\n watchFetchAvailableCatalogTypesForParentMetaType(),\r\n watchCreateNewCatalogElement(),\r\n watchFetchCatalogElementData(),\r\n watchFetchCatalogElementConfiguration(),\r\n watchSaveCatalogElementFormData(),\r\n watchFetchAvailableCatalogTypes(),\r\n watchUpdateCatalogElementType(),\r\n watchDeleteCatalogElement(),\r\n watchCopyCatalogElement(),\r\n watchChangeCatalogElementId(),\r\n watchUpdateCatalogActivationOptions(),\r\n watchFetchAvailableExportDefinitions(),\r\n watchAddNewExportJob(),\r\n // Media\r\n watchFetchMediaElements(),\r\n watchFileNamesInfo(),\r\n watchFetchMediaData(),\r\n watchFetchMediaConfiguration(),\r\n watchSaveMediaFormData(),\r\n watchDeleteMediaElement(),\r\n watchMediaInfos(),\r\n watchFetchAttachmentAssociations(),\r\n watchSupportedExtensions(),\r\n // CMS\r\n watchFetchCmsTreeElements(),\r\n watchRefreshCmsTreeElements(),\r\n watchFetchCmsTreeConfig(),\r\n // UserManagement\r\n watchFetchUserManagementTreeElements(),\r\n watchRefreshUserManagementTreeElements(),\r\n watchFetchUserManagementTreeConfig(),\r\n watchFetchAvailableUserManagementTypesForParentMetaType(),\r\n watchCreateNewUserManagementElement(),\r\n watchDeleteUserManagementElement(),\r\n watchCopyUserManagementElement(),\r\n watchFetchUserManagementElementData(),\r\n watchFetchUserManagementElementConfiguration(),\r\n watchSaveUserManagementElementFormData(),\r\n watchChangeUserManagementElementId(),\r\n watchChangeUserManagementUserEmail(),\r\n watchFetchAvailableUserManagementTypes(),\r\n watchUpdateUserManagementElementType(),\r\n watchUpdatePassword(),\r\n watchUpdateUserManagementActivationOptions(),\r\n // Search\r\n watchPredefinedFetchSearchResults(),\r\n watchPredefinedFetchSearchOptions(),\r\n watchFetchSearchResults(),\r\n watchChangeSearchPhrase(),\r\n watchFetchAllElements(),\r\n watchFetchSearchTermData(),\r\n watchFetchExport(),\r\n // LanguageManagement\r\n watchUpdateResource(),\r\n // DataManagement\r\n watchFetchAllExports(),\r\n // Actions\r\n watchFetchActions(),\r\n watchRunAction(),\r\n // Suggestions\r\n watchChangeFieldSuggestions()\r\n ]);\r\n}\r\n","export const NOT_FOUND = 404;\r\nexport const GENERAL = 500;\r\n","import { raiseError } from './actions';\r\nimport { GENERAL } from './errorCodes';\r\n\r\nexport default (error, dispatch) => {\r\n if (window.console) {\r\n window.console.log(error);\r\n }\r\n\r\n dispatch(raiseError(GENERAL));\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport cx from 'classnames';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { AppMain } from 'general/AppMain';\r\n\r\nimport ResizeDetector from 'react-resize-detector';\r\n\r\nclass Main extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n closedSmallerSidebar: false\r\n };\r\n }\r\n\r\n render() {\r\n const {\r\n colorScheme,\r\n enableFixedHeader,\r\n enableFixedSidebar,\r\n enableFixedFooter,\r\n enableClosedSidebar,\r\n closedSmallerSidebar,\r\n enableMobileMenu,\r\n enablePageTabsAlt,\r\n } = this.props;\r\n\r\n return (\r\n <>\r\n (\r\n <>\r\n
\r\n \r\n
\r\n \r\n )}\r\n />\r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProp = (state) => ({\r\n colorScheme: state.ThemeOptions.colorScheme,\r\n enableFixedHeader: state.ThemeOptions.enableFixedHeader,\r\n enableMobileMenu: state.ThemeOptions.enableMobileMenu,\r\n enableFixedFooter: state.ThemeOptions.enableFixedFooter,\r\n enableFixedSidebar: state.ThemeOptions.enableFixedSidebar,\r\n enableClosedSidebar: state.ThemeOptions.enableClosedSidebar,\r\n enablePageTabsAlt: state.ThemeOptions.enablePageTabsAlt,\r\n\r\n}); export default withRouter(connect(mapStateToProp)(Main));\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { enUS as en, de, fr, it } from 'date-fns/locale';\r\nimport { registerLocale, setDefaultLocale } from 'react-datepicker';\r\nimport http from 'infrastructure/http/http';\r\n\r\nconst supportedLanguages = { en, de, fr, it };\r\nexport const setClientData = (initialClientData) => {\r\n window.clientData = window.clientData || initialClientData || {};\r\n\r\n // language\r\n const url = window.location.pathname;\r\n const urlSplit = url.split('/');\r\n if (urlSplit.length > 1) {\r\n const currentLanguage = urlSplit[1];\r\n window.clientData.currentLanguage = currentLanguage;\r\n http.headers['Accept-Language'] = currentLanguage;\r\n const supportedLanguage = supportedLanguages[currentLanguage.substr(0, 2)];\r\n if (supportedLanguage) {\r\n registerLocale(supportedLanguage.code, supportedLanguage);\r\n setDefaultLocale(supportedLanguage.code);\r\n }\r\n }\r\n};\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport './assets/base.scss';\r\n// import 'react-widgets/dist/css/react-widgets.css';\r\n\r\nimport * as React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { ConnectedRouter } from 'connected-react-router';\r\nimport { createBrowserHistory } from 'history';\r\nimport { ResourcesProvider } from 'infrastructure/localization';\r\nimport { DndProvider } from 'react-dnd';\r\nimport { HTML5Backend } from 'react-dnd-html5-backend';\r\n\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport '@fortawesome/fontawesome-pro';\r\nimport { fal } from '@fortawesome/pro-light-svg-icons';\r\nimport { far } from '@fortawesome/pro-regular-svg-icons';\r\nimport { fas } from '@fortawesome/pro-solid-svg-icons';\r\nimport { fad } from '@fortawesome/pro-duotone-svg-icons';\r\n\r\nimport { http } from 'infrastructure/http';\r\nimport configureStore from './store/configureStore';\r\nimport Main from './general/Main';\r\nimport { dispatchGlobalActions } from './store/globalActions';\r\nimport { setClientData } from './clientData';\r\n\r\nhttp.get('api/startupdata').then((startupData) => {\r\n library.add(fal);\r\n library.add(far);\r\n library.add(fas);\r\n library.add(fad);\r\n setClientData(startupData);\r\n const history = createBrowserHistory();\r\n\r\n // Get the application-wide store instance, prepopulating with state from the server where available.\r\n const store = configureStore(history);\r\n dispatchGlobalActions(store);\r\n\r\n ReactDOM.render(\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 // registerServiceWorker();\r\n});\r\n","import { applyMiddleware, compose, createStore } from 'redux';\r\nimport { routerMiddleware } from 'connected-react-router';\r\nimport logger from 'redux-logger';\r\nimport createSagaMiddleware from 'redux-saga';\r\nimport reduxCatch from 'redux-catch';\r\nimport rootReducer from './rootReducer';\r\nimport rootSaga from './rootSaga';\r\nimport { errorHandler } from '../infrastructure/errorHandling';\r\n\r\nexport default function configureStore(history) {\r\n const sagaMiddleware = createSagaMiddleware();\r\n const router = routerMiddleware(history);\r\n let developmentStoreEnhancer;\r\n\r\n // eslint-disable-next-line no-underscore-dangle\r\n if (window.__REDUX_DEVTOOLS_EXTENSION__) {\r\n developmentStoreEnhancer = compose(\r\n applyMiddleware(sagaMiddleware, logger, router, reduxCatch(errorHandler)),\r\n // eslint-disable-next-line no-underscore-dangle\r\n window.__REDUX_DEVTOOLS_EXTENSION__()\r\n );\r\n } else {\r\n developmentStoreEnhancer = compose(applyMiddleware(sagaMiddleware, logger, router, reduxCatch(errorHandler)));\r\n }\r\n\r\n const productionStoreEnhancer = applyMiddleware(sagaMiddleware, router);\r\n\r\n const storeEnhancer = process.env.NODE_ENV === 'production' ? productionStoreEnhancer : developmentStoreEnhancer;\r\n const store = createStore(rootReducer(history), undefined, storeEnhancer);\r\n\r\n sagaMiddleware.run(rootSaga);\r\n\r\n return store;\r\n}\r\n","import { fetchConfiguration } from 'api/configuration/actions';\r\nimport { fetchLayoutInfo } from '../api/layout/actions';\r\n\r\nexport const dispatchGlobalActions = (store) => {\r\n store.dispatch(fetchLayoutInfo());\r\n store.dispatch(fetchConfiguration());\r\n};\r\n","export const OPEN_PASSWORD_UPDATE_MODAL = 'OPEN_PASSWORD_UPDATE_MODAL';\r\nexport const CLOSE_PASSWORD_UPDATE_MODAL = 'CLOSE_PASSWORD_UPDATE_MODAL';\r\nexport const TOGGLE_PASSWORD_UPDATE_MODAL = 'TOGGLE_PASSWORD_UPDATE_MODAL';\r\nexport const UPDATE_PASSWORD = 'UPDATE_PASSWORD';\r\nexport const START_UPDATING_PASSWORD = 'START_UPDATING_PASSWORD';\r\nexport const FINISH_UPDATING_PASSWORD = 'FINISH_UPDATING_PASSWORD';\r\n","export const FETCH_MEDIA_ELEMENTS = 'FETCH_MEDIA_ELEMENTS';\r\nexport const START_FETCHING_MEDIA_ELEMENTS = 'START_FETCHING_MEDIA_ELEMENTS';\r\nexport const FINISH_FETCHING_MEDIA_ELEMENTS = 'FINISH_FETCHING_MEDIA_ELEMENTS';\r\nexport const INIT_MEDIA_ELEMENTS = 'INIT_MEDIA_ELEMENTS';\r\nexport const LOAD_MORE_MEDIA = 'LOAD_MORE_MEDIA';\r\nexport const INIT_FILTERS = 'INIT_FILTERS';\r\nexport const TOGGLE_MEDIA_ELEMENT_SELECTION = 'TOGGLE_MEDIA_ELEMENT_SELECTION';\r\n\r\nexport const FETCH_FILE_NAMES_INFO = 'FETCH_FILE_NAMES_INFO';\r\nexport const START_FETCHING_FILE_NAMES_INFO = 'START_FETCHING_FILE_NAMES_INFO';\r\nexport const FINISH_FETCHING_FILE_NAMES_INFO = 'FINISH_FETCHING_FILE_NAMES_INFO';\r\nexport const INIT_FILE_NAMES_INFO = 'INIT_FILE_NAMES_INFO';\r\n\r\nexport const FETCH_MEDIA_DATA = 'FETCH_MEDIA_DATA';\r\nexport const FETCH_MEDIA_CONFIGURATION = 'FETCH_MEDIA_CONFIGURATION';\r\n\r\nexport const START_FETCHING_MEDIA_CONFIGURATION = 'START_FETCHING_MEDIA_CONFIGURATION';\r\nexport const FINISH_FETCHING_MEDIA_CONFIGURATION = 'FINISH_FETCHING_MEDIA_CONFIGURATION';\r\nexport const INIT_MEDIA_CONFIGURATION = 'INIT_MEDIA_CONFIGURATION';\r\n\r\nexport const START_SAVING_MEDIA_DATA = 'START_SAVING_MEDIA_DATA';\r\nexport const FINISH_SAVING_MEDIA_DATA = 'FINISH_SAVING_MEDIA_DATA';\r\n\r\nexport const SAVE_MEDIA_FORM_DATA = 'SAVE_MEDIA_FORM_DATA';\r\nexport const START_FETCHING_MEDIA_DATA = 'START_FETCHING_MEDIA_DATA';\r\nexport const FINISH_FETCHING_MEDIA_DATA = 'FINISH_FETCHING_MEDIA_DATA';\r\nexport const INIT_MEDIA_DATA = 'INIT_MEDIA_DATA';\r\n\r\nexport const DELETE_MEDIA_ELEMENTS = 'DELETE_MEDIA_ELEMENTS';\r\nexport const START_DELETING_MEDIA_ELEMENTS = 'START_DELETING_MEDIA_ELEMENTS';\r\nexport const FINISH_DELETING_MEDIA_ELEMENTS = 'FINISH_DELETING_MEDIA_ELEMENTS';\r\n\r\nexport const FETCH_MEDIA_INFOS = 'FETCH_MEDIA_INFOS';\r\nexport const START_FETCHING_MEDIA_INFOS = 'START_FETCHING_MEDIA_INFOS';\r\nexport const FINISH_FETCHING_MEDIA_INFOS = 'FINISH_FETCHING_MEDIA_INFOS';\r\nexport const INIT_MEDIA_INFOS = 'INIT_MEDIA_INFOS';\r\n\r\nexport const FETCH_ATTACHMENT_ASSOCIATIONS = 'FETCH_ATTACHMENT_ASSOCIATIONS';\r\nexport const START_FETCHING_ATTACHMENT_ASSOCIATIONS = 'START_FETCHING_ATTACHMENT_ASSOCIATIONS';\r\nexport const FINISH_FETCHING_ATTACHMENT_ASSOCIATIONS = 'FINISH_FETCHING_ATTACHMENT_ASSOCIATIONS';\r\nexport const INIT_ATTACHMENT_ASSOCIATIONS = 'INIT_ATTACHMENT_ASSOCIATIONS';\r\n\r\nexport const FETCH_SUPPORTED_EXTENSIONS = 'FETCH_SUPPORTED_EXTENSIONS';\r\nexport const START_FETCHING_SUPPORTED_EXTENSIONS = 'START_FETCHING_SUPPORTED_EXTENSIONS';\r\nexport const FINISH_FETCHING_SUPPORTED_EXTENSIONS = 'FINISH_FETCHING_SUPPORTED_EXTENSIONS';\r\nexport const INIT_SUPPORTED_EXTENSIONS = 'INIT_SUPPORTED_EXTENSIONS';\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const fetchElementData = (elementId, elementMetaType, elementArea) => ({ type: actionTypes.FETCH_ELEMENT_DATA, elementId, elementMetaType, elementArea });\r\nexport const startFetchingElementData = () => ({ type: actionTypes.START_FETCHING_ELEMENT_DATA });\r\nexport const finishFetchingElementData = () => ({ type: actionTypes.FINISH_FETCHING_ELEMENT_DATA });\r\nexport const initElementData = (elementData) => ({ type: actionTypes.INIT_ELEMENT_DATA, elementData });\r\n\r\nexport const fetchElementConfiguration = (elementMetaType, elementType) => ({ type: actionTypes.FETCH_ELEMENT_CONFIGURATION, elementMetaType, elementType });\r\nexport const startFetchingElementConfiguration = () => ({ type: actionTypes.START_FETCHING_ELEMENT_CONFIGURATION });\r\nexport const finishFetchingElementConfiguration = () => ({ type: actionTypes.FINISH_FETCHING_ELEMENT_CONFIGURATION });\r\nexport const initElementConfiguration = (elementConfigurationData) => ({ type: actionTypes.INIT_ELEMENT_CONFIGURATION, elementConfigurationData });\r\n\r\nexport const saveElementFormData = (elementMetaType, elementId, formName, form, elementArea) => ({ type: actionTypes.SAVE_ELEMENT_FORM_DATA, elementMetaType, elementId, formName, form, elementArea });\r\n\r\nexport const startSavingElementData = () => ({ type: actionTypes.START_SAVING_ELEMENT_DATA });\r\nexport const finishSavingElementData = () => ({ type: actionTypes.FINISH_SAVING_ELEMENT_DATA });\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const fetchSearchResults = (searchPhrase, pageIndex, pageSize, searchMetaTypes, searchLanguage) => ({\r\n type: actionTypes.FETCH_SEARCH_RESULTS,\r\n searchPhrase,\r\n pageIndex,\r\n pageSize,\r\n searchMetaTypes,\r\n searchLanguage\r\n});\r\nexport const startFetchingSearchResults = () => ({ type: actionTypes.START_FETCHING_SEARCH_RESULTS });\r\nexport const finishFetchingSearchResults = () => ({ type: actionTypes.FINISH_FETCHING_SEARCH_RESULTS });\r\nexport const initSearchResults = (searchResults) => ({ type: actionTypes.INIT_SEARCH_RESULTS, searchResults });\r\nexport const toggleSearchElementSelection = (elementName, metaType) => ({ type: actionTypes.TOGGLE_SEARCH_ELEMENT_SELECTION, elementName, metaType });\r\nexport const clearSearchResults = () => ({ type: actionTypes.CLEAR_SEARCH_RESULTS });\r\nexport const changeSearchPhrase = (searchPhrase) => ({ type: actionTypes.CHANGE_SEARCH_PHRASE, searchPhrase });\r\nexport const initSearchPhrase = (searchPhrase) => ({ type: actionTypes.INIT_SEARCH_PHRASE, searchPhrase });\r\nexport const startFetchingSearchSuggestions = () => ({ type: actionTypes.START_FETCHING_SEARCH_SUGGESTIONS });\r\nexport const initSearchSuggestions = (searchSuggestions) => ({ type: actionTypes.INIT_SEARCH_SUGGESTIONS, searchSuggestions });\r\nexport const finishFetchingSearchSuggestions = () => ({ type: actionTypes.FINISH_FETCHING_SEARCH_SUGGESTIONS });\r\nexport const fetchPredefinedSearchOptions = () => ({ type: actionTypes.FETCH_PREDEFINED_SEARCH_OPTIONS });\r\nexport const initPredefinedSearchOptions = (options) => ({ type: actionTypes.INIT_PREDEFINED_SEARCH_OPTIONS, options });\r\nexport const setPagination = (pageIndex, pageSize) => ({ type: actionTypes.SET_PAGINATION, pageIndex, pageSize });\r\nexport const fetchPredefinedSearchResults = (pageIndex, pageSize, predefinedSearchId) => ({\r\n type: actionTypes.FETCH_PREDEFINED_SEARCH_RESULTS,\r\n pageIndex,\r\n pageSize,\r\n predefinedSearchId\r\n});\r\n","export const FETCH_LAYOUT_INFO = 'FETCH_LAYOUT_INFO';\r\nexport const START_FETCHING_LAYOUT_INFO = 'START_FETCHING_LAYOUT_INFO';\r\nexport const FINISH_FETCHING_LAYOUT_INFO = 'FINISH_FETCHING_LAYOUT_INFO';\r\nexport const INIT_LAYOUT_INFO = 'INIT_LAYOUT_INFO';\r\nexport const SET_SELECTED_LANGUAGES = 'SET_SELECTED_LANGUAGES';\r\n","export const FETCH_ACTIONS = 'FETCH_ACTIONS';\r\nexport const INIT_ACTIONS = 'INIT_ACTIONS';\r\nexport const RUN_ACTION = 'RUN_ACTION';\r\nexport const START_RUN_ACTION = 'START_RUN_ACTION';\r\nexport const FINISH_RUN_ACTION = 'FINISH_RUN_ACTION';\r\n","import * as actionTypes from './actionTypes';\r\n\r\nexport const startFetchingSearchTermData = () => ({ type: actionTypes.START_FETCHING_SEARCH_TERM });\r\nexport const finishFetchingSearchTermData = () => ({ type: actionTypes.FINISH_FETCHING_SEARCH_TERM });\r\nexport const fetchSearchTermData = (searchTerm) => ({ type: actionTypes.FETCH_SEARCH_TERM, searchTerm });\r\nexport const initSearchTermData = (data) => ({ type: actionTypes.INIT_SEARCH_TERM_DATA, data });\r\n\r\nexport const initSearchTerm = (searchTerm) => ({ type: actionTypes.INIT_SEARCH_TERM, searchTerm });\r\n\r\nexport const startFetchingAllElements = () => ({ type: actionTypes.START_FETCHING_ALL_ELEMENTS });\r\nexport const finishFetchingAllElements = () => ({ type: actionTypes.FINISH_FETCHING_ALL_ELEMENTS });\r\nexport const fetchAllElements = () => ({ type: actionTypes.FETCH_ALL_ELEMENTS });\r\nexport const initAllElements = (data) => ({ type: actionTypes.INIT_ALL_ELEMENTS, data });\r\n\r\nexport const startFetchingExport = () => ({ type: actionTypes.START_FETCHING_EXPORT });\r\nexport const finishFetchingExport = () => ({ type: actionTypes.FINISH_FETCHING_EXPORT });\r\nexport const fetchExport = (exportValues) => ({ type: actionTypes.FETCH_EXPORT, exportValues });\r\nexport const initExport = (data) => ({ type: actionTypes.INIT_EXPORT, data });\r\n\r\nexport const updateResource = (name, lang, value) => ({ type: actionTypes.UPDATE_RESOURCE, name, lang, value });\r\n","export const START_FETCHING_ALL_EXPORTS = 'START_FETCHING_ALL_EXPORTS';\r\nexport const FINISH_FETCHING_ALL_EXPORTS = 'FINISH_FETCHING_ALL_EXPORTS';\r\nexport const FETCH_ALL_EXPORTS = 'FETCH_ALL_EXPORTS';\r\nexport const INIT_ALL_EXPORTS = 'INIT_ALL_EXPORTS';\r\n","export const START_FETCHING_FIELD_SUGGESTIONS = 'START_FETCHING_FIELD_SUGGESTIONS';\r\nexport const FINISH_FETCHING_FIELD_SUGGESTIONS = 'FINISH_FETCHING_FIELD_SUGGESTIONS';\r\nexport const INIT_FIELD_SUGGESTIONS = 'INIT_FIELD_SUGGESTIONS';\r\nexport const FETCH_FIELD_SUGGESTIONS = 'FETCH_FIELD_SUGGESTIONS';\r\n","import React, { Fragment } from 'react';\r\n\r\nconst templates = {\r\n\r\n};\r\n\r\nconst components = {\r\n\r\n};\r\n\r\nexport const defaultTemplate = {};\r\n\r\n/* eslint-disable */ \r\nconst createTemplate = (key, componentName) => class extends React.Component {\r\n render() {\r\n const Component = components[key][componentName];\r\n if (!Component)\r\n {\r\n return 'Invalid component';\r\n }\r\n\r\n if (Array.isArray(Component)) {\r\n return (\r\n \r\n {Component.map((ArrayComponent, index) => {\r\n if (typeof ArrayComponent === \"object\") {\r\n const { component: Component, ...defaultProps } = ArrayComponent;\r\n return ();\r\n }\r\n\r\n return ();\r\n })}\r\n \r\n );\r\n }\r\n\r\n if (typeof Component === \"object\") {\r\n const { component: InnerComponent, ...defaultProps } = Component;\r\n return \r\n }\r\n \r\n return ();\r\n }\r\n};\r\n/* eslint-enable */\r\n\r\nconst prepareTemplates = (key, descriptors) => {\r\n const preparedTemplates = descriptors.reduce((acc, entry) => {\r\n acc[entry] = createTemplate(key, entry);\r\n return acc;\r\n }, {});\r\n\r\n return preparedTemplates;\r\n};\r\n\r\nconst mergeComponentsWithOverrides = (defaultComponents, overrides) => {\r\n let mergedComponents = { ...defaultComponents, ...overrides };\r\n mergedComponents = Object.entries(mergedComponents)\r\n .reduce((acc, entry) => {\r\n const componentName = entry[0];\r\n let registeredImplementations = entry[1];\r\n registeredImplementations = Array.isArray(registeredImplementations)\r\n ? registeredImplementations.map((impl) => (impl === defaultTemplate ? defaultComponents[componentName] : impl))\r\n : registeredImplementations;\r\n acc[entry[0]] = registeredImplementations;\r\n return acc;\r\n }, {});\r\n\r\n return mergedComponents;\r\n};\r\n\r\nexport const registerTemplates = (key, descriptors) => {\r\n if (!templates[key]) {\r\n templates[key] = prepareTemplates(key, descriptors);\r\n }\r\n};\r\n\r\nexport const getTemplates = (key) => templates[key];\r\n\r\nexport const registerDefaultComponents = (key, defaultComponents) => {\r\n components[key] = mergeComponentsWithOverrides(defaultComponents, components[key]);\r\n};\r\n\r\nexport const registerComponentsOverrides = (key, overrides) => {\r\n components[key] = mergeComponentsWithOverrides(components[key], overrides);\r\n};\r\n\r\nexport const dynamicRegisterComponents = (key, component, descriptors) => {\r\n components[key] = mergeComponentsWithOverrides(component, components[key]);\r\n const templatesNew = prepareTemplates(key, descriptors);\r\n Object.keys(templatesNew).forEach((t) => { templates[key][t] = templatesNew[t]; });\r\n};\r\n"],"sourceRoot":""}