@reltio/remotes 1.4.1737 → 1.4.1739

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/1088.js +1 -1
  2. package/1088.js.map +1 -1
  3. package/1148.js +1 -1
  4. package/1215.js +1 -1
  5. package/1334.js +1 -1
  6. package/1425.js +1 -1
  7. package/1664.js +1 -1
  8. package/1707.js +1 -1
  9. package/1840.js +1 -1
  10. package/2066.js +1 -1
  11. package/2400.js +1 -1
  12. package/2617.js +1 -1
  13. package/2825.js +1 -1
  14. package/2857.js +1 -1
  15. package/3004.js +1 -1
  16. package/3042.js +1 -1
  17. package/3044.js +1 -1
  18. package/3096.js +1 -1
  19. package/3104.js +1 -1
  20. package/3144.js +1 -1
  21. package/3191.js +1 -1
  22. package/3292.js +1 -1
  23. package/3348.js +1 -1
  24. package/3381.js +1 -1
  25. package/3383.js +1 -1
  26. package/3463.js +1 -1
  27. package/3469.js +1 -1
  28. package/3538.js +1 -1
  29. package/3639.js +1 -1
  30. package/393.js +1 -1
  31. package/4038.js +1 -1
  32. package/415.js +1 -1
  33. package/4212.js +1 -1
  34. package/4265.js +1 -1
  35. package/4390.js +1 -1
  36. package/4444.js +1 -1
  37. package/4481.js +1 -1
  38. package/4780.js +1 -1
  39. package/4780.js.map +1 -1
  40. package/4787.js +1 -1
  41. package/4838.js +1 -1
  42. package/4969.js +1 -1
  43. package/50.js +1 -1
  44. package/5177.js +1 -1
  45. package/5201.js +1 -1
  46. package/5201.js.map +1 -1
  47. package/5292.js +1 -1
  48. package/5368.js +1 -1
  49. package/5368.js.map +1 -1
  50. package/5383.js +1 -1
  51. package/5738.js +1 -1
  52. package/5738.js.map +1 -1
  53. package/5769.js +1 -1
  54. package/6012.js +1 -1
  55. package/62.js +2 -0
  56. package/62.js.map +1 -0
  57. package/6287.js +1 -1
  58. package/6422.js +1 -1
  59. package/6506.js +1 -1
  60. package/6578.js +1 -1
  61. package/6578.js.map +1 -1
  62. package/658.js +1 -1
  63. package/6799.js +1 -1
  64. package/6807.js +1 -1
  65. package/6844.js +1 -1
  66. package/6903.js +1 -1
  67. package/7074.js +1 -1
  68. package/7074.js.map +1 -1
  69. package/7119.js +1 -1
  70. package/7237.js +1 -1
  71. package/7340.js +1 -1
  72. package/735.js +1 -1
  73. package/7401.js +1 -1
  74. package/7401.js.map +1 -1
  75. package/7407.js +1 -1
  76. package/7422.js +1 -1
  77. package/7468.js +1 -1
  78. package/7626.js +2 -2
  79. package/7744.js +1 -1
  80. package/7744.js.map +1 -1
  81. package/7896.js +1 -1
  82. package/8118.js +1 -1
  83. package/820.js +1 -1
  84. package/8207.js +1 -1
  85. package/8216.js +1 -1
  86. package/8741.js +1 -1
  87. package/8786.js +1 -1
  88. package/9016.js +1 -1
  89. package/9032.js +1 -1
  90. package/9050.js +1 -1
  91. package/913.js +1 -1
  92. package/9283.js +1 -1
  93. package/9328.js +1 -1
  94. package/9387.js +1 -1
  95. package/9719.js +1 -1
  96. package/main.js +1 -1
  97. package/package.json +1 -1
  98. package/remoteEntry.js +1 -1
  99. package/remoteEntry.js.map +1 -1
  100. package/1550.js +0 -2
  101. package/1550.js.map +0 -1
package/5738.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"5738.js","mappings":"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","sources":["webpack://@reltio/remotes/../mdm-module/src/dataTenants/constants.js","webpack://@reltio/remotes/../mdm-module/src/utils/index.ts","webpack://@reltio/remotes/../mdm-module/src/dataTenants/actions/index.js","webpack://@reltio/remotes/../mdm-module/src/dataTenants/reducers/index.js","webpack://@reltio/remotes/../mdm-module/src/tenants/constants.ts","webpack://@reltio/remotes/../mdm-module/src/tenants/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/tenants/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/metadata/constants.js","webpack://@reltio/remotes/../mdm-module/src/metadata/actions/index.js","webpack://@reltio/remotes/../mdm-module/src/ui/constants.ts","webpack://@reltio/remotes/../mdm-module/src/metadata/reducers/index.js","webpack://@reltio/remotes/../mdm-module/src/profile/actions/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/dependentLookups/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/dependentLookups/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/dependentLookups/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/mode/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/dependentLookups/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/search/constants.js","webpack://@reltio/remotes/../mdm-module/src/search/actions/index.js","webpack://@reltio/remotes/../mdm-module/src/search/selectors/index.js","webpack://@reltio/remotes/../mdm-module/src/search/sagas/index.js","webpack://@reltio/remotes/../mdm-module/src/search/reducers/index.js","webpack://@reltio/remotes/../mdm-module/src/ui/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/ui/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/ui/reducers/index.js","webpack://@reltio/remotes/../mdm-module/src/user/constants.js","webpack://@reltio/remotes/../mdm-module/src/user/actions/index.js","webpack://@reltio/remotes/../mdm-module/src/user/selectors/index.js","webpack://@reltio/remotes/../mdm-module/src/user/reducers/index.js","webpack://@reltio/remotes/../mdm-module/src/tenant/constants.js","webpack://@reltio/remotes/../mdm-module/src/tenant/actions/index.js","webpack://@reltio/remotes/../mdm-module/src/tenant/selectors/index.js","webpack://@reltio/remotes/../mdm-module/src/tenant/reducers/index.js","webpack://@reltio/remotes/../mdm-module/src/environment/constants.js","webpack://@reltio/remotes/../mdm-module/src/environment/actions/index.js","webpack://@reltio/remotes/../mdm-module/src/environment/selectors/index.js","webpack://@reltio/remotes/../mdm-module/src/environment/reducers/index.js","webpack://@reltio/remotes/../mdm-module/src/selectors.js","webpack://@reltio/remotes/../mdm-module/src/profile/modifiedEntities/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/relations/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/relations/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/dependentLookups/sagas/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/entity/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/entity/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/entity/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/entity/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/errors/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/errors/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/errors/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/errors/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/history/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/history/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/history/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/history/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/lastLoadedTime/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/lastLoadedTime/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/lastLoadedTime/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/lookups/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/lookups/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/lookups/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/mode/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/mode/selectors/index.js","webpack://@reltio/remotes/../mdm-module/src/profile/mode/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/modifiedEntities/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/modifiedEntities/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/modifiedEntities/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/modifiedEntities/sagas/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/relations/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/relations/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/trees/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/trees/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/trees/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/trees/reducers/helpers.js","webpack://@reltio/remotes/../mdm-module/src/profile/trees/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/selectors.ts","webpack://@reltio/remotes/../mdm-module/src/profile/operation/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/operation/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/errors/sagas/helpers.ts","webpack://@reltio/remotes/../mdm-module/src/profile/errors/sagas/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/views/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/sagas/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/operation/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/views/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/views/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/sidePanelViews/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/sidePanelViews/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/sidePanelViews/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/index.ts","webpack://@reltio/remotes/../mdm-module/src/utils/listeners/helpers.ts","webpack://@reltio/remotes/../mdm-module/src/utils/listeners/index.ts","webpack://@reltio/remotes/../mdm-module/src/useMdmModule.ts","webpack://@reltio/remotes/../mdm-module/src/index.js"],"sourcesContent":["export const DATA_TENANTS_UPDATED = 'DATA_TENANTS_UPDATED';\n","import {findIndex, pipe, propEq, view} from 'ramda';\n\nexport const createStandardAction = <T, P>(type: T) => (payload?: P) => ({\n type,\n payload\n});\n\nexport const getIndexByUri = (lens, state, uri) => pipe(view, findIndex(propEq('uri', uri)))(lens, state);","import {DATA_TENANTS_UPDATED} from '../constants';\nimport {createStandardAction} from '../../utils';\n\nexport const dataTenantsUpdated = createStandardAction(DATA_TENANTS_UPDATED);\n","import {DATA_TENANTS_UPDATED} from '../constants';\n\nconst initState = null;\nconst dataTenantsReducer = (state = initState, action) => {\n switch (action.type) {\n case DATA_TENANTS_UPDATED:\n return action.payload || initState;\n default:\n return state;\n }\n};\n\nexport default dataTenantsReducer;\n","export const TENANTS_UPDATED = 'TENANTS_UPDATED';\n","import {TENANTS_UPDATED} from '../constants';\nimport {createStandardAction} from '../../utils';\n\nexport const tenantsUpdated = createStandardAction(TENANTS_UPDATED);\n","import {TENANTS_UPDATED} from '../constants';\n\nconst initState = null;\nconst tenantsReducer = (state = initState, action) => {\n switch (action.type) {\n case TENANTS_UPDATED:\n return action.payload || initState;\n default:\n return state;\n }\n};\n\nexport default tenantsReducer;\n","export const METADATA_LOADED = 'METADATA_LOADED';\n","import {METADATA_LOADED} from '../constants';\n\nexport const updateMetadata = ({tenant, metadata}) => ({\n type: METADATA_LOADED,\n payload: {tenant, metadata}\n});\n","export enum UIActions {\n OPEN_ENTITY = 'OPEN_ENTITY',\n NEW_ENTITY_SHOWN = 'NEW_ENTITY_SHOWN',\n ENTITY_DELETION_FINISHED = 'ENTITY_DELETION_FINISHED',\n OPEN_PERSPECTIVE = 'OPEN_PERSPECTIVE',\n UI_CONFIG_LOADED = 'UI_CONFIG_LOADED',\n NEW_UI_CONFIG_LOADED = 'NEW_UI_CONFIG_LOADED',\n PATHS_SET = 'PATHS_SET',\n LOCALIZATION_LOADED = 'LOCALIZATION_LOADED',\n LOCALE_ATTRIBUTE_PRESENTATION_LOADED = 'LOCALE_ATTRIBUTE_PRESENTATION_LOADED',\n AUTOCLOSE_INTERVAL_LOADED = 'AUTOCLOSE_INTERVAL_LOADED',\n SET_PREFER_REACT = 'SET_PREFER_REACT',\n OPEN_CONSOLE_APP = 'OPEN_CONSOLE_APP',\n OPEN_APP_FROM_CHOCOLATE_BAR = 'OPEN_APP_FROM_CHOCOLATE_BAR',\n NUMBER_FORMAT_UPDATED = 'NUMBER_FORMAT_UPDATED',\n OPEN_GRAPH = 'OPEN_GRAPH',\n DATE_MASK_UPDATED = 'DATE_MASK_UPDATED',\n DATE_TIME_MASK_UPDATED = 'DATE_TIME_MASK_UPDATED',\n OPEN_SEARCH = 'OPEN_SEARCH',\n OPEN_HISTORY_EVENT = 'OPEN_HISTORY_EVENT',\n KEYS_SET = 'KEYS_SET',\n OPEN_PIVOTING_PERSPECTIVE = 'OPEN_PIVOTING_PERSPECTIVE',\n ERROR_SET = 'ERROR_SET',\n SHOW_NOTIFICATION = 'SHOW_NOTIFICATION',\n CLOSE_NOTIFICATION = 'CLOSE_NOTIFICATION',\n CLEAR_NOTIFICATIONS = 'CLEAR_NOTIFICATIONS',\n DOCUMENTATION_SET = 'DOCUMENTATION_SET',\n OPEN_NEW_ENTITY_WITH_AUTHORING = 'OPEN_NEW_ENTITY_WITH_AUTHORING',\n OPEN_PREVIOUS_PAGE = 'OPEN_PREVIOUS_PAGE',\n NAVIGATE = 'NAVIGATE',\n ADD_DASHBOARD_EXTERNAL_VIEW = 'ADD_DASHBOARD_EXTERNAL_VIEW'\n}\n","import {METADATA_LOADED} from '../constants';\nimport {UIActions} from '../../ui/constants';\nimport {localizeMetadata, parseMetadata, normalizeMetadata} from '@reltio/mdm-sdk';\nimport {map, pipe} from 'ramda';\n\nconst initState = {};\n\nconst prepareMetadata = pipe(normalizeMetadata, parseMetadata, localizeMetadata);\n\nconst localizeAllMetadata = map(localizeMetadata);\n\nconst metadataReducer = (state = initState, action) => {\n switch (action.type) {\n case METADATA_LOADED: {\n const {tenant, metadata} = action.payload;\n return {...state, [tenant]: prepareMetadata(metadata)};\n }\n case UIActions.LOCALIZATION_LOADED: {\n return localizeAllMetadata(state);\n }\n default:\n return state;\n }\n};\n\nexport default metadataReducer;\n","import {\n addAttributes,\n addDefaultValuesAction,\n addNextPageOfAttributeValues,\n modifyAttribute,\n removeAttribute,\n requestNextPageOfAttributeValues,\n saveProfile,\n validateProfile\n} from './index';\n\nexport enum ProfileActions {\n ADD_ATTRIBUTES = 'ADD_ATTRIBUTES',\n MODIFY_ATTRIBUTE = 'MODIFY_ATTRIBUTE',\n REMOVE_ATTRIBUTE = 'REMOVE_ATTRIBUTE',\n REQUEST_NEXT_PAGE_ATTRIBUTE_VALUES = 'REQUEST_NEXT_PAGE_ATTRIBUTE_VALUES',\n ADD_NEXT_PAGE_ATTRIBUTE_VALUES = 'ADD_NEXT_PAGE_ATTRIBUTE_VALUES',\n PROCESS_NEXT_PAGE_ATTRIBUTE_VALUES = 'PROCESS_NEXT_PAGE_ATTRIBUTE_VALUES',\n ADD_DEFAULT_VALUES = 'ADD_DEFAULT_VALUES',\n SAVE_PROFILE = 'SAVE_PROFILE',\n SAVE_DRAFT = 'SAVE_DRAFT',\n VALIDATE_PROFILE = 'VALIDATE_PROFILE',\n PROFILE_SAVED = 'PROFILE_SAVED'\n}\n\nexport type ProfileActionTypes =\n | ReturnType<typeof addAttributes>\n | ReturnType<typeof addDefaultValuesAction>\n | ReturnType<typeof modifyAttribute>\n | ReturnType<typeof removeAttribute>\n | ReturnType<typeof addNextPageOfAttributeValues>\n | ReturnType<typeof requestNextPageOfAttributeValues>\n | ReturnType<typeof saveProfile>\n | ReturnType<typeof validateProfile>;\n","import {\n RequestNextPageOfAttributeValuesPayload,\n AddAttributesPayload,\n ModifyAttributePayload,\n RemoveAttributePayload\n} from '@reltio/mdm-sdk';\nimport {AddDefaultValuesActionPayload, AddNextPageOfAttributeValuesPayload} from '../../types/profile';\nimport {createStandardAction} from '../../utils';\nimport {ProfileActions} from './constants';\n\nexport const addAttributes = createStandardAction<ProfileActions.ADD_ATTRIBUTES, AddAttributesPayload>(\n ProfileActions.ADD_ATTRIBUTES\n);\n\nexport const addDefaultValuesAction = createStandardAction<\n ProfileActions.ADD_DEFAULT_VALUES,\n AddDefaultValuesActionPayload\n>(ProfileActions.ADD_DEFAULT_VALUES);\n\nexport const modifyAttribute = createStandardAction<ProfileActions.MODIFY_ATTRIBUTE, ModifyAttributePayload>(\n ProfileActions.MODIFY_ATTRIBUTE\n);\n\nexport const removeAttribute = createStandardAction<ProfileActions.REMOVE_ATTRIBUTE, RemoveAttributePayload>(\n ProfileActions.REMOVE_ATTRIBUTE\n);\n\nexport const addNextPageOfAttributeValues = createStandardAction<\n ProfileActions.ADD_NEXT_PAGE_ATTRIBUTE_VALUES,\n AddNextPageOfAttributeValuesPayload\n>(ProfileActions.ADD_NEXT_PAGE_ATTRIBUTE_VALUES);\n\nexport const processNextPageOfAttributeValues = createStandardAction<\n ProfileActions.PROCESS_NEXT_PAGE_ATTRIBUTE_VALUES,\n AddNextPageOfAttributeValuesPayload\n>(ProfileActions.PROCESS_NEXT_PAGE_ATTRIBUTE_VALUES);\n\nexport const requestNextPageOfAttributeValues = createStandardAction<\n ProfileActions.REQUEST_NEXT_PAGE_ATTRIBUTE_VALUES,\n RequestNextPageOfAttributeValuesPayload\n>(ProfileActions.REQUEST_NEXT_PAGE_ATTRIBUTE_VALUES);\n\nexport const saveProfile = createStandardAction<ProfileActions.SAVE_PROFILE, null>(ProfileActions.SAVE_PROFILE);\n\nexport const saveDraft = createStandardAction<\n ProfileActions.SAVE_DRAFT,\n {dcrUri?: string; userAction: 'save' | 'saveDraft'; taskId?: string}\n>(ProfileActions.SAVE_DRAFT);\n\nexport const profileSaved = createStandardAction<ProfileActions.PROFILE_SAVED, null>(ProfileActions.PROFILE_SAVED);\n\nexport const validateProfile = createStandardAction<ProfileActions.VALIDATE_PROFILE, null>(\n ProfileActions.VALIDATE_PROFILE\n);\n","import {ProfileActionTypes} from '../actions/constants';\nimport {\n dependentLookupsEditorsBlocked,\n dependentLookupsEditorTouched,\n dependentLookupsInitedTypeUrisAdded,\n dependentLookupsStructureSet\n} from './actions';\nimport {ModeActionsTypes} from '../mode/constants';\nimport {ModifiedEntitiesActionsTypes} from '../modifiedEntities/constants';\n\nexport enum DependentLookupsActions {\n DEPENDENT_LOOKUPS_STRUCTURE_SET = 'DEPENDENT_LOOKUPS_STRUCTURE_SET',\n DEPENDENT_LOOKUPS_INITED_TYPE_URIS_ADDED = 'DEPENDENT_LOOKUPS_INITED_TYPE_URIS_ADDED',\n DEPENDENT_LOOKUPS_EDITORS_BLOCKED = 'DEPENDENT_LOOKUPS_EDITORS_BLOCKED',\n DEPENDENT_LOOKUPS_EDITOR_TOUCHED = 'DEPENDENT_LOOKUPS_EDITOR_TOUCHED'\n}\n\nexport type DependentLookupsActionsTypes =\n | ReturnType<typeof dependentLookupsStructureSet>\n | ReturnType<typeof dependentLookupsInitedTypeUrisAdded>\n | ReturnType<typeof dependentLookupsEditorsBlocked>\n | ReturnType<typeof dependentLookupsEditorTouched>\n | ProfileActionTypes\n | ModifiedEntitiesActionsTypes\n | ModeActionsTypes;\n","import {DependentLookupsStructure} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {DependentLookupsActions} from '../constants';\nimport {\n BlockDependentLookupsEditorsPayload,\n TouchDependentLookupsEditorPayload\n} from '../../../types/profile/dependentLookups';\n\nexport const dependentLookupsStructureSet = createStandardAction<\n DependentLookupsActions.DEPENDENT_LOOKUPS_STRUCTURE_SET,\n DependentLookupsStructure\n>(DependentLookupsActions.DEPENDENT_LOOKUPS_STRUCTURE_SET);\n\nexport const dependentLookupsInitedTypeUrisAdded = createStandardAction<\n DependentLookupsActions.DEPENDENT_LOOKUPS_INITED_TYPE_URIS_ADDED,\n string[]\n>(DependentLookupsActions.DEPENDENT_LOOKUPS_INITED_TYPE_URIS_ADDED);\n\nexport const dependentLookupsEditorsBlocked = createStandardAction<\n DependentLookupsActions.DEPENDENT_LOOKUPS_EDITORS_BLOCKED,\n BlockDependentLookupsEditorsPayload\n>(DependentLookupsActions.DEPENDENT_LOOKUPS_EDITORS_BLOCKED);\n\nexport const dependentLookupsEditorTouched = createStandardAction<\n DependentLookupsActions.DEPENDENT_LOOKUPS_EDITOR_TOUCHED,\n TouchDependentLookupsEditorPayload\n>(DependentLookupsActions.DEPENDENT_LOOKUPS_EDITOR_TOUCHED);\n","import {DependentLookupsState, getDependentLookupEditorState, getDependentLookupsStructureNode} from '@reltio/mdm-sdk';\n\nexport const getDependentLookupsStructure = (state: DependentLookupsState) => state.structure;\nexport const getDependentLookupsInitedTypeUris = (state: DependentLookupsState) => state.initedTypeUris;\nexport const getDependentLookupEditorsState = (state: DependentLookupsState) => state.editors;\n\nexport {getDependentLookupEditorState, getDependentLookupsStructureNode};\n","import {modeCancelEditing, modeEditingCanceled, modeUpdated} from './actions';\n\nexport enum ModeActions {\n MODE_UPDATED = 'MODE_UPDATED',\n MODE_CANCEL_EDITING = 'MODE_CANCEL_EDITING',\n MODE_EDITING_CANCELED = 'MODE_EDITING_CANCELED'\n}\n\nexport type ModeActionsTypes =\n | ReturnType<typeof modeUpdated>\n | ReturnType<typeof modeCancelEditing>\n | ReturnType<typeof modeEditingCanceled>;\n","import {assocPath, uniq} from 'ramda';\nimport {isViewMode, DependentLookupsState} from '@reltio/mdm-sdk';\nimport {DependentLookupsActions, DependentLookupsActionsTypes} from '../constants';\nimport {ModeActions} from '../../mode/constants';\n\nconst initState = {\n structure: {},\n editors: {},\n initedTypeUris: []\n} as DependentLookupsState;\n\nconst dependentLookupsReducer = (state = initState, action: DependentLookupsActionsTypes): DependentLookupsState => {\n switch (action.type) {\n case ModeActions.MODE_UPDATED: {\n const {mode, silent} = action.payload;\n return isViewMode(mode) && !silent ? initState : state;\n }\n case DependentLookupsActions.DEPENDENT_LOOKUPS_STRUCTURE_SET: {\n const structure = action.payload;\n return {...state, structure};\n }\n case DependentLookupsActions.DEPENDENT_LOOKUPS_INITED_TYPE_URIS_ADDED: {\n const typeUris = action.payload;\n return {...state, initedTypeUris: uniq(state.initedTypeUris.concat(typeUris))};\n }\n case DependentLookupsActions.DEPENDENT_LOOKUPS_EDITORS_BLOCKED: {\n const {uris, isBlocked} = action.payload;\n const editors = state.editors;\n const newEditors = uris.reduce(\n (editors, uri) => ({\n ...editors,\n [uri]: {\n ...editors[uri],\n isBlocked\n }\n }),\n editors\n );\n return {\n ...state,\n editors: newEditors\n };\n }\n case DependentLookupsActions.DEPENDENT_LOOKUPS_EDITOR_TOUCHED: {\n const {uri, isTouched} = action.payload;\n return assocPath(['editors', uri, 'isTouched'], isTouched, state);\n }\n default:\n return state;\n }\n};\n\nexport default dependentLookupsReducer;\n","export const SEARCH_RESULTS_SET = 'SEARCH_RESULTS_SET';\nexport const KEYWORD_UPDATED = 'KEYWORD_UPDATED';\nexport const UPDATE_STATE = 'UPDATE_STATE';\nexport const SAVE_STATE = 'SAVE_STATE';\nexport const ACTIVITY_FILTER_UPDATED = 'ACTIVITY_FILTER_UPDATED';\nexport const GLOBAL_FILTER_UPDATED = 'GLOBAL_FILTER_UPDATED';\nexport const SEARCH_OPTIONS_UPDATED = 'SEARCH_OPTIONS_UPDATED';\nexport const SET_SEARCH_OPTIONS_CONFIG = 'SET_SEARCH_OPTIONS_CONFIG';\nexport const SET_SEARCH_PROVIDER_DATA = 'SET_SEARCH_PROVIDER_DATA';\nexport const SET_SEARCH_NAVIGATION_DATA = 'SET_SEARCH_NAVIGATION_DATA';\nexport const UPDATE_SEARCH_NAVIGATION_DATA_ON_MERGE = 'UPDATE_SEARCH_NAVIGATION_DATA_ON_MERGE';\nexport const UPDATE_SEARCH_NAVIGATION_DATA_FIELDS = 'UPDATE_SEARCH_NAVIGATION_DATA_FIELDS';\n","import {\n ACTIVITY_FILTER_UPDATED,\n KEYWORD_UPDATED,\n SAVE_STATE,\n SEARCH_RESULTS_SET,\n UPDATE_STATE,\n SEARCH_OPTIONS_UPDATED,\n SET_SEARCH_OPTIONS_CONFIG,\n GLOBAL_FILTER_UPDATED,\n SET_SEARCH_PROVIDER_DATA,\n SET_SEARCH_NAVIGATION_DATA,\n UPDATE_SEARCH_NAVIGATION_DATA_FIELDS,\n UPDATE_SEARCH_NAVIGATION_DATA_ON_MERGE\n} from '../constants';\nimport {createStandardAction} from '../../utils';\n\nexport const searchResultsSet = createStandardAction(SEARCH_RESULTS_SET);\nexport const keywordUpdated = createStandardAction(KEYWORD_UPDATED);\nexport const updateState = createStandardAction(UPDATE_STATE);\nexport const saveState = createStandardAction(SAVE_STATE);\nexport const activityFilterUpdated = createStandardAction(ACTIVITY_FILTER_UPDATED);\nexport const globalFilterUpdated = createStandardAction(GLOBAL_FILTER_UPDATED);\nexport const updateSearchOptions = createStandardAction(SEARCH_OPTIONS_UPDATED);\nexport const setSearchOptionsConfig = createStandardAction(SET_SEARCH_OPTIONS_CONFIG);\nexport const setSearchProviderData = createStandardAction(SET_SEARCH_PROVIDER_DATA);\nexport const setSearchNavigationData = createStandardAction(SET_SEARCH_NAVIGATION_DATA);\nexport const updateSearchNavigationDataFields = createStandardAction(UPDATE_SEARCH_NAVIGATION_DATA_FIELDS);\nexport const updateSearchNavigationDataOnMerge = createStandardAction(UPDATE_SEARCH_NAVIGATION_DATA_ON_MERGE);\n","import {path} from 'ramda';\nimport {\n getGlobalSearchRequestOptions,\n getStringifiedSearchOptions,\n getActivityFilter,\n getGlobalFilterQuery,\n getSearchOptions\n} from '@reltio/mdm-sdk';\n\nexport const getSearchResults = (state) => state.searchResults;\nexport const getKeyword = (state) => state.keyword;\nexport const getGlobalFilter = (state) => state.globalFilter;\nexport const getGlobalFilterSavedSearchesUris = path(['globalFilter', 'savedSearchesUris']);\nexport const getSearchProviderData = (state) => state.searchProviderData;\nexport const getSearchNavigationData = (state) => state.searchNavigationData;\n\nexport {\n getGlobalSearchRequestOptions,\n getStringifiedSearchOptions,\n getActivityFilter,\n getGlobalFilterQuery,\n getSearchOptions\n};\n","import {call, select, takeLatest, put} from 'redux-saga/effects';\nimport mdmModule, {search} from '../../index';\nimport {SET_SEARCH_NAVIGATION_DATA, UPDATE_SEARCH_NAVIGATION_DATA_FIELDS} from '../constants';\nimport {UIActions} from '../../ui/constants';\n\nconst SEARCH_NAVIGATION = 'searchNavigation';\n\nexport function* saveSearchNavigation() {\n const searchNavigationData = yield select(mdmModule.selectors.getSearchNavigationData);\n const searchProviderData = yield select(mdmModule.selectors.getSearchProviderData);\n sessionStorage.setItem(SEARCH_NAVIGATION, JSON.stringify({searchNavigationData, searchProviderData}));\n}\n\nexport function* restoreSearchNavigation() {\n let valueFromStorage;\n try {\n valueFromStorage = JSON.parse(sessionStorage.getItem(SEARCH_NAVIGATION)) || {};\n } catch (e) {\n valueFromStorage = {};\n }\n const {searchNavigationData, searchProviderData} = valueFromStorage;\n if (searchNavigationData && searchProviderData) {\n yield put(search.actions.setSearchProviderData(searchProviderData));\n yield put(search.actions.setSearchNavigationData(searchNavigationData));\n }\n}\n\nexport function* saveSearchNavigationSaga() {\n yield takeLatest(\n [SET_SEARCH_NAVIGATION_DATA, UPDATE_SEARCH_NAVIGATION_DATA_FIELDS, UIActions.OPEN_ENTITY],\n saveSearchNavigation\n );\n}\n\nexport function* restoreSearchNavigationSaga() {\n yield call(restoreSearchNavigation);\n}\n\nconst sagas = [saveSearchNavigationSaga, restoreSearchNavigationSaga];\n\nexport default sagas;\n","import {isNil, isEmpty, pick} from 'ramda';\nimport {\n ACTIVITY_FILTER_UPDATED,\n KEYWORD_UPDATED,\n SEARCH_RESULTS_SET,\n UPDATE_STATE,\n SEARCH_OPTIONS_UPDATED,\n SET_SEARCH_OPTIONS_CONFIG,\n GLOBAL_FILTER_UPDATED,\n SET_SEARCH_PROVIDER_DATA,\n SET_SEARCH_NAVIGATION_DATA,\n UPDATE_SEARCH_NAVIGATION_DATA_FIELDS\n} from '../constants';\nimport {UIActions} from '../../ui/constants';\nimport {isEmptyValue, removeDtssPrefixFromEntityUri} from '@reltio/mdm-sdk';\n\nconst initialState = {\n searchResults: [],\n keyword: null,\n searchOptions: {\n searchByOv: false,\n ovOnly: false\n },\n activityFilter: 'active',\n globalFilter: {\n query: null,\n savedSearchesUris: [],\n isMuted: true\n },\n searchProviderData: null,\n searchNavigationData: null\n};\n\nconst searchReducer = (state = initialState, action) => { //NOSONAR\n switch (action.type) {\n case SEARCH_RESULTS_SET:\n return {...state, searchResults: action.payload};\n case KEYWORD_UPDATED: {\n const keyword = pick(['value', 'isRawFilter'], action.payload || {});\n return {...state, keyword: isEmpty(keyword) ? null : keyword};\n }\n case UPDATE_STATE: {\n return {\n ...initialState,\n keyword:\n isNil(action.payload.keyword) || isEmpty(action.payload.keyword) ? null : action.payload.keyword,\n searchOptions: action.payload.searchOptions || state.searchOptions,\n activityFilter: state.activityFilter,\n globalFilter: state.globalFilter,\n searchNavigationData: state.searchNavigationData,\n searchProviderData: state.searchProviderData\n };\n }\n case ACTIVITY_FILTER_UPDATED:\n return {...state, activityFilter: action.payload};\n case GLOBAL_FILTER_UPDATED:\n return {...state, globalFilter: isEmptyValue(action.payload) ? initialState.globalFilter : action.payload};\n case SEARCH_OPTIONS_UPDATED: {\n return {...state, searchOptions: {...state.searchOptions, ...action.payload}};\n }\n case SET_SEARCH_OPTIONS_CONFIG: {\n const showSearchByOv = !!action.payload.showSearchByOv;\n const searchOptions = {\n searchByOv: showSearchByOv,\n ovOnly: showSearchByOv\n };\n return {...state, searchOptions};\n }\n case SET_SEARCH_PROVIDER_DATA: {\n return {...state, searchProviderData: action.payload};\n }\n case SET_SEARCH_NAVIGATION_DATA: {\n return {...state, searchNavigationData: action.payload};\n }\n case UPDATE_SEARCH_NAVIGATION_DATA_FIELDS: {\n return {...state, searchNavigationData: {...state.searchNavigationData, ...action.payload}};\n }\n case UIActions.OPEN_ENTITY: {\n const entityUriWithoutDtssPrefix = removeDtssPrefixFromEntityUri(action.payload.uri);\n return action.payload.source === 'navigation' ||\n entityUriWithoutDtssPrefix === state.searchNavigationData?.uri\n ? state\n : {...state, searchNavigationData: null};\n }\n default:\n return state;\n }\n};\n\nexport default searchReducer;\n","import {UIActions} from '../constants';\nimport {createStandardAction} from '../../utils';\nimport {\n AttributeType,\n DashboardView,\n Entity,\n GraphLayout,\n HistoryEvent,\n LayoutConfigItem,\n NumberLocale,\n PivotingItem,\n PivotingValue,\n PropertiesConfig,\n SearchState,\n UIPlugin\n} from '@reltio/mdm-sdk';\n\nexport const openEntity = ({uri, viewId, source = null, screen = 'profile'}) => ({\n type: UIActions.OPEN_ENTITY,\n payload: {\n uri,\n viewId,\n source,\n screen\n }\n});\nexport const newEntityShown = ({entity}) => ({\n type: UIActions.NEW_ENTITY_SHOWN,\n payload: {\n entity\n }\n});\nexport const entityDeletionFinished = createStandardAction(UIActions.ENTITY_DELETION_FINISHED);\nexport const openPerspective = ({perspectiveId, viewId}) => ({\n type: UIActions.OPEN_PERSPECTIVE,\n payload: {\n perspectiveId,\n viewId\n }\n});\n\nexport const showNotification = (payload) => ({\n type: UIActions.SHOW_NOTIFICATION,\n payload\n});\n\nexport const closeNotification = (payload) => ({\n type: UIActions.CLOSE_NOTIFICATION,\n payload\n});\n\nexport const clearNotifications = createStandardAction(UIActions.CLEAR_NOTIFICATIONS);\n\ntype NewUIConfig = {\n layout: LayoutConfigItem[];\n pivoting: PivotingItem[];\n properties: PropertiesConfig;\n};\ntype AttributePresentation = Omit<NumberLocale, 'groupSeparator' | 'digitsAfterDecimalSeparator'> & {\n thousandSeparator: NumberLocale['groupSeparator'];\n decimalScale: NumberLocale['digitsAfterDecimalSeparator'];\n};\n\nexport const pathsSet = createStandardAction<UIActions.PATHS_SET, Record<string, string>>(UIActions.PATHS_SET);\nexport const uiConfigLoaded = createStandardAction<UIActions.UI_CONFIG_LOADED, UIPlugin[]>(UIActions.UI_CONFIG_LOADED);\nexport const newUiConfigLoaded = createStandardAction<UIActions.NEW_UI_CONFIG_LOADED, NewUIConfig | undefined>(\n UIActions.NEW_UI_CONFIG_LOADED\n);\nexport const localeAttributePresentationLoaded = createStandardAction<\n UIActions.LOCALE_ATTRIBUTE_PRESENTATION_LOADED,\n AttributePresentation\n>(UIActions.LOCALE_ATTRIBUTE_PRESENTATION_LOADED);\nexport const autocloseIntervalLoaded = createStandardAction<UIActions.AUTOCLOSE_INTERVAL_LOADED, number>(\n UIActions.AUTOCLOSE_INTERVAL_LOADED\n);\nexport const setPreferReact = createStandardAction<UIActions.SET_PREFER_REACT, boolean>(UIActions.SET_PREFER_REACT);\nexport const numberFormatUpdated = createStandardAction<UIActions.NUMBER_FORMAT_UPDATED, string>(\n UIActions.NUMBER_FORMAT_UPDATED\n);\nexport const openConsoleApp = (name: string, path?: string, query?: string) => ({\n type: UIActions.OPEN_CONSOLE_APP,\n payload: {name, path, query}\n});\nexport const openAppFromChocolateBar = createStandardAction<UIActions.OPEN_APP_FROM_CHOCOLATE_BAR, string>(\n UIActions.OPEN_APP_FROM_CHOCOLATE_BAR\n);\nexport const openGraph = createStandardAction<\n UIActions.OPEN_GRAPH,\n {viewId: string; graphType: string; entityUri: string; graphLayout?: GraphLayout}\n>(UIActions.OPEN_GRAPH);\n\nexport const localizationLoaded = createStandardAction<UIActions.LOCALIZATION_LOADED, void>(\n UIActions.LOCALIZATION_LOADED\n);\n\nexport const dateMaskUpdated = createStandardAction<UIActions.DATE_MASK_UPDATED, string>(UIActions.DATE_MASK_UPDATED);\nexport const dateTimeMaskUpdated = createStandardAction<UIActions.DATE_TIME_MASK_UPDATED, string>(\n UIActions.DATE_TIME_MASK_UPDATED\n);\n\ntype SearchPayload = {\n searchState: SearchState;\n saveToRecent?: boolean;\n viewId?: string;\n};\nexport const openSearch = (payload: SearchPayload | SearchPayload['searchState']) => ({\n type: UIActions.OPEN_SEARCH,\n payload: 'searchState' in payload ? payload : {searchState: payload}\n});\n\nexport const openHistoryEvent = createStandardAction<\n UIActions.OPEN_HISTORY_EVENT,\n {entityUri: string; historyEvent: HistoryEvent}\n>(UIActions.OPEN_HISTORY_EVENT);\n\nexport const openNewEntityWithAuthoring = createStandardAction<\n UIActions.OPEN_NEW_ENTITY_WITH_AUTHORING,\n {entity: Entity}\n>(UIActions.OPEN_NEW_ENTITY_WITH_AUTHORING);\n\nexport const openPreviousPage = createStandardAction<UIActions.OPEN_PREVIOUS_PAGE, void>(UIActions.OPEN_PREVIOUS_PAGE);\n\ntype NavigatePayload = {\n url: string;\n searchParams?: Record<string, string>;\n options?: {\n replace?: boolean;\n state?: Record<string, string>;\n };\n};\nexport const navigateTo = createStandardAction<UIActions.NAVIGATE, NavigatePayload>(UIActions.NAVIGATE);\n\nexport const keysSet = createStandardAction<UIActions.KEYS_SET, Record<string, string>>(UIActions.KEYS_SET);\n\nexport const openPivotingPerspective = createStandardAction<\n UIActions.OPEN_PIVOTING_PERSPECTIVE,\n {attributeType: AttributeType; value: PivotingValue[]}\n>(UIActions.OPEN_PIVOTING_PERSPECTIVE);\n\nexport const errorSet = createStandardAction<UIActions.ERROR_SET, string>(UIActions.ERROR_SET);\n\nexport const documentationSet = createStandardAction<UIActions.DOCUMENTATION_SET, Record<string, string>>(\n UIActions.DOCUMENTATION_SET\n);\n\nexport const addDashboardExternalView = createStandardAction<UIActions.ADD_DASHBOARD_EXTERNAL_VIEW, DashboardView>(\n UIActions.ADD_DASHBOARD_EXTERNAL_VIEW\n);\n","import {chain, either, hasPath, ifElse, path, pipe, prop, pathOr} from 'ramda';\nimport {createSelector} from 'reselect';\nimport {\n AttributePresentations,\n getSpecialAttributesPresentation,\n intl,\n CleanseConfiguration,\n getAuthoringItemsFromLayoutByEntityType\n} from '@reltio/mdm-sdk';\n\nexport const getImagePath = path(['paths', 'imagePath']);\nexport const getExportPath = path(['paths', 'exportPath']);\nexport const getApiPath = path(['paths', 'apiPath']);\nexport const getUIPath = path(['paths', 'uiPath']);\nexport const getReltioPath = path(['paths', 'reltioPath']);\nexport const getDtssPath = path(['paths', 'dtssPath']);\nexport const getExportDQPath = path(['paths', 'exportDQPath']);\nexport const getWorkflowPath = either(\n path(['newConfig', 'properties', 'workflow', 'path']),\n path(['paths', 'workflowPath'])\n);\nexport const getPaths = prop('paths');\nexport const getWorkflowEnvironmentURL = path(['paths', 'workflowEnvironmentURL']);\nexport const getCollaborationPath = path(['paths', 'collaborationPath']);\nexport const getImageServicePath = path(['paths', 'imageServicePath']);\nexport const getDVFPath = path(['paths', 'dvfPath']);\nexport const getValidationServicePath = path(['paths', 'validationServicePath']);\nexport const getAdminToolsPath = path(['paths', 'adminToolsPath']);\nexport const getMlDqPath = path(['paths', 'mlDqPath']);\nexport const getRawAttributePresentations = (store) =>\n either(path(['newConfig', 'properties', 'attributePresentations']), path(['attributePresentations']))(store);\nexport const getAttributePresentations = createSelector(\n getRawAttributePresentations,\n () => intl.getLocale(),\n (attributesPresentation: AttributePresentations = {}, locale: string) => ({\n ...attributesPresentation,\n ...getSpecialAttributesPresentation(attributesPresentation, locale)\n })\n);\nexport const getAutoCloseInterval = (state) => state.autoCloseInterval;\nexport const getDefaultMaxValues = either(\n path(['config', 'com.reltio.plugins.entity.EntityRequestSettings', 'defaultMaxValues']),\n path(['newConfig', 'properties', 'entity', 'requestSettings', 'defaultMaxValues'])\n);\nexport const getUiNumberFormat = path(['numberFormat']);\nexport const getDateMask = either(path(['newConfig', 'properties', 'masks', 'dateMask']), path(['dateMask']));\nexport const getNotifications = path(['notifications']);\nexport const getDateTimeMask = either(\n path(['newConfig', 'properties', 'masks', 'dateTimeMask']),\n path(['dateTimeMask'])\n);\nexport const getRequestProviderConfiguration = path(['newConfig', 'properties', 'requestProvider']);\nconst emptyArray = [];\nconst oldPivotingSettingsPath = ['config', 'com.reltio.plugins.pivoting.PivotingSettings', 'pivotingAttributes'];\nconst collectPivotingAttributes = chain(prop('attribute-types'));\nexport const getPivotingAttributes = ifElse(\n hasPath(oldPivotingSettingsPath),\n path(oldPivotingSettingsPath),\n pipe(pathOr(emptyArray, ['newConfig', 'pivoting']), collectPivotingAttributes)\n);\nexport const getImageAttributesFieldsOrder = either(\n path(['config', 'com.reltio.plugins.imageattribute.fieldsorder']),\n path(['newConfig', 'properties', 'image', 'attributeFieldsOrder'])\n);\nexport const getLookupAutocomplete = either(\n path(['config', 'com.reltio.plugins.ui.LookupAutocomplete']),\n path(['newConfig', 'properties', 'lookups', 'autocomplete'])\n);\nexport const getGoogleMapKey = path(['keys', 'googleMapKey']);\nexport const getIcpLicenseKey = path(['keys', 'icpLicenseKey']);\n\nexport const getDocReleaseNotes = pathOr('', ['documentation', 'releaseNotes']);\n\nconst oldValidationSeverityLevelPath = ['config', 'com.reltio.plugins.entity.ValidationServiceLevels', 'levels'];\nexport const getValidationServiceSeverityLevels = ifElse(\n hasPath(oldValidationSeverityLevelPath),\n path(oldValidationSeverityLevelPath),\n path(['newConfig', 'properties', 'validate', 'levels'])\n);\n\nexport const getValidateReadMode = ifElse(\n hasPath(['config', 'com.reltio.plugins.entity.Validation', 'validateReadMode']),\n path(['config', 'com.reltio.plugins.entity.Validation', 'validateReadMode']),\n pathOr(true, ['newConfig', 'properties', 'validate', 'validateReadMode'])\n);\n\nexport const getValidateRelations = pathOr(false, ['newConfig', 'properties', 'validate', 'validateRelations']);\n\nexport const getWorkflowConfigurationEnabled = either(\n path(['config', 'com.reltio.plugins.workflow.configuration', 'enabled']),\n path(['newConfig', 'properties', 'workflow', 'enabled'])\n);\n\nexport const getUiError = path(['error']);\nexport const getServicesPath = path(['paths', 'servicesPath']);\nexport const getUIConfig = path(['newConfig']);\nexport const getUIConfigLayout = path(['newConfig', 'layout']);\nexport const getShowEntityId = pathOr(true, ['newConfig', 'properties', 'showEntityId']);\nexport const getPreview = pathOr(false, ['newConfig', 'properties', 'preview']);\nexport const getLogo = path(['newConfig', 'properties', 'logo']);\nexport const getHeaderColor = path(['newConfig', 'properties', 'headerColor']);\nexport const getShowSearchByOv = path(['newConfig', 'properties', 'showSearchByOv']);\nexport const getShowAttributeDescription = path(['newConfig', 'properties', 'showAttributeDescription']);\nexport const getAttributesSortingStrategy = path(['newConfig', 'properties', 'attributesSorting']);\nexport const getProfileCheckUpdate = path(['newConfig', 'properties', 'profileCheckUpdate']);\nexport const getCleanseConfigurationByEntityType = (state, entityTypeUri): CleanseConfiguration =>\n path(['newConfig', 'properties', 'cleanseConfiguration', entityTypeUri])(state);\n\nexport const getAuthoringByEntityType = (state, entityTypeUri: string) => {\n return getAuthoringItemsFromLayoutByEntityType(getUIConfigLayout(state), entityTypeUri);\n};\n\nexport const getAiAssistantEnabled = pathOr(false, ['newConfig', 'properties', 'aiAssistant', 'enabled']);\nexport const getAiAssistantEntityTypes = pathOr([], ['newConfig', 'properties', 'aiAssistant', 'entityTypes']);\nexport const getAiAssistantLimitPerDay = pathOr(10, ['newConfig', 'properties', 'aiAssistant', 'messagesPerDay']);\n","import {UIActions} from '../constants';\nimport {assoc, evolve, reject, propEq} from 'ramda';\nimport {LOCALE_ATTRIBUTE_PRESENTATION} from '@reltio/mdm-sdk';\n\nconst initState = {};\n\nconst uiReducer = (state = initState, action) => { //NOSONAR\n switch (action.type) {\n case UIActions.PATHS_SET:\n return {...state, paths: action.payload};\n case UIActions.UI_CONFIG_LOADED:\n return {...state, config: action.payload};\n case UIActions.NEW_UI_CONFIG_LOADED:\n return {...state, newConfig: action.payload};\n case UIActions.LOCALE_ATTRIBUTE_PRESENTATION_LOADED:\n return evolve(\n {\n newConfig: {\n properties: {\n attributePresentations: assoc(LOCALE_ATTRIBUTE_PRESENTATION, action.payload)\n }\n }\n },\n state\n );\n case UIActions.AUTOCLOSE_INTERVAL_LOADED:\n return {...state, autoCloseInterval: action.payload};\n case UIActions.NUMBER_FORMAT_UPDATED:\n return {...state, numberFormat: action.payload};\n case UIActions.DATE_MASK_UPDATED:\n return {...state, dateMask: action.payload};\n case UIActions.DATE_TIME_MASK_UPDATED:\n return {...state, dateTimeMask: action.payload};\n case UIActions.KEYS_SET:\n return {...state, keys: action.payload};\n case UIActions.ERROR_SET:\n return {...state, error: action.payload};\n case UIActions.DOCUMENTATION_SET:\n return {...state, documentation: action.payload};\n case UIActions.SHOW_NOTIFICATION:\n return {...state, notifications: [...(state.notifications || []), action.payload]};\n case UIActions.CLOSE_NOTIFICATION:\n return evolve(\n {\n notifications: reject(propEq('id', action.payload))\n },\n state\n );\n case UIActions.CLEAR_NOTIFICATIONS:\n return {...state, notifications: []};\n default:\n return state;\n }\n};\n\nexport default uiReducer;\n","export const USER_UPDATED = 'USER_UPDATED';\n","import {USER_UPDATED} from '../constants';\nimport {createStandardAction} from '../../utils';\n\nexport const userUpdated = createStandardAction(USER_UPDATED);\n","export const getUserName = (state) => state?.username;\nexport const getUserRoles = (state) => state?.roles;\n","import {USER_UPDATED} from '../constants';\n\nconst initState = null;\nconst userReducer = (state = initState, action) => {\n switch (action.type) {\n case USER_UPDATED:\n return action.payload || initState;\n default:\n return state;\n }\n};\n\nexport default userReducer;\n","export const TENANT_UPDATED = 'TENANT_UPDATED';\nexport const TENANT_NAME_UPDATED = 'TENANT_NAME_UPDATED';\n","import {TENANT_NAME_UPDATED, TENANT_UPDATED} from '../constants';\nimport {createStandardAction} from '../../utils';\n\nexport const tenantUpdated = createStandardAction(TENANT_UPDATED);\nexport const tenantNameUpdated = createStandardAction(TENANT_NAME_UPDATED);\n","import {prop} from 'ramda';\n\nexport const getTenantId = prop('id');\nexport const getTenantName = prop('name');\n","import {TENANT_NAME_UPDATED, TENANT_UPDATED} from '../constants';\n\nconst initState = null;\n\nconst tenantReducer = (state = initState, action) => {\n switch (action.type) {\n case TENANT_UPDATED:\n return {\n ...state,\n id: action.payload\n };\n case TENANT_NAME_UPDATED:\n return {\n ...state,\n name: action.payload\n };\n default:\n return state;\n }\n};\n\nexport default tenantReducer;\n","export const ENVIRONMENT_UPDATED = 'ENVIRONMENT_UPDATED';\nexport const ENVIRONMENT_ALIAS_UPDATED = 'ENVIRONMENT_ALIAS_UPDATED';\n","import {ENVIRONMENT_UPDATED, ENVIRONMENT_ALIAS_UPDATED} from '../constants';\nimport {createStandardAction} from '../../utils';\n\nexport const environmentUpdated = createStandardAction(ENVIRONMENT_UPDATED);\nexport const environmentAliasUpdated = createStandardAction(ENVIRONMENT_ALIAS_UPDATED);\n","import {prop} from 'ramda';\n\nexport const getEnvironmentId = prop('id');\n\n// We need environment alias because of terrible misconfiguration:\n// reltioEnvironmentName server property (eu-360) doesn't match adminTools json environment \"name\" field (euprod-01)\n// So, UI-related services like Preferences, ImageHosting, Collaboration, SavedSearches already have records in DB with eu-360 env name\n// At the same time, common services like ConfigService (which is also used in Console apps) used alias name euprod-01 for their data.\nexport const getEnvironmentAlias = prop('alias');\n","import {ENVIRONMENT_ALIAS_UPDATED, ENVIRONMENT_UPDATED} from '../constants';\n\nconst initState = null;\n\nconst environmentReducer = (state = initState, action) => {\n switch (action.type) {\n case ENVIRONMENT_UPDATED:\n return {\n ...state,\n id: action.payload\n };\n case ENVIRONMENT_ALIAS_UPDATED:\n return {\n ...state,\n alias: action.payload\n };\n default:\n return state;\n }\n};\n\nexport default environmentReducer;\n","import {selectors as profileSelectors} from './profile';\nimport {selectors as searchSelectors} from './search';\nimport {selectors as uiSelectors} from './ui';\nimport {selectors as userSelectors} from './user';\nimport {selectors as tenantSelectors} from './tenant';\nimport {selectors as environmentSelectors} from './environment';\nimport {createSelector} from 'reselect';\nimport {\n canUserMakeExport,\n canUserImportEntitiesFromDT,\n canUserReadEntitiesFromDT,\n canUserStartProcessInstanceFromQuery,\n canUserMakeBulkUpdate,\n canUserOpenDataLoader,\n canUserDeleteProfiles,\n canUserMakeActivitiesExport,\n canUserGetDQStatistic,\n canUserReadDVF,\n canUserRegisterConfigEnvironments,\n canUserCreateWorkflowConfigJar,\n canUserCreateWorkflowEnvironmentConfigJar,\n canUserExecuteWorkflowJobs,\n canUserExecuteWorkflowJobsSyncBusinessProcessData,\n canUserExecuteWorkflowJobsTerminateProcessInstance,\n canUserExecuteWorkflowJobsUpdateTasks,\n canUserExecuteWorkflowJobsValidateTasks,\n canUserManageWorkflowDefinition,\n canUserManageWorkflowEnvironmentDefinition,\n canUserReadWorkflowDataTask,\n canUserUpdateProcessInstance,\n canUserUpdateWorkflowDataTask,\n canUserViewProcessInstanceSearchQuery,\n canUserViewWorkflowConfigJar,\n canUserViewWorkflowDefinition,\n canUserViewWorkflowEnvironmentConfigJar,\n canUserViewWorkflowJobs,\n getEntityType,\n checkMetadataForUpdate,\n getProfileEntityWithHistoryDiff,\n getProfileEntityWithoutHistoryDiff,\n getRelationType,\n checkMetadataForCreate,\n Mode,\n isTempUri,\n isEmptyValue\n} from '@reltio/mdm-sdk';\nimport {both} from 'ramda';\n\nexport const getDataTenants = (state) => state.dataTenants;\nexport const getTenants = (state) => state.tenants;\nexport const getMetadata = (state, tenant = getTenant(state)) => state.metadata && state.metadata[tenant];\nexport const getTenantObject = (state) => state.tenant;\nexport const getEnvironmentObject = (state) => state.environment;\nexport const getUser = (state) => state.user;\nexport const getUi = (state) => state.ui;\nexport const getProfile = (state) => state.profile;\nexport const getSearch = (state) => state.search;\n\nexport const getEntity = (state) => profileSelectors.getEntity(getProfile(state));\nexport const getEntityUri = (state) => profileSelectors.getUri(getProfile(state));\nexport const getEntityUriWithDataTenant = (state) => profileSelectors.getUriWithDataTenant(getProfile(state));\nexport const getConnectionsByViewId = (state, id) => profileSelectors.getConnectionsByViewId(getProfile(state), id);\nexport const getEditingOrAddingConnectionByViewIdAndRelationUri = (state, id, relationUri) =>\n profileSelectors.getEditingOrAddingConnectionByViewIdAndRelationUri(getProfile(state), id, relationUri);\nexport const getEditingOrAddingConnectionRelationObjectByViewIdAndRelationUri = (state, id, relationUri) =>\n profileSelectors.getEditingOrAddingConnectionRelationObjectByViewIdAndRelationUri(\n getProfile(state),\n id,\n relationUri\n );\nexport const getConnectionsWithDraftsByViewId = (state, id, parentEntityUri) =>\n profileSelectors.getConnectionsWithDraftsByViewId(getProfile(state), id, parentEntityUri);\nexport const getDraftsForSaveByViewId = (state, id) => profileSelectors.getDraftsForSaveByViewId(getProfile(state), id);\nexport const getConnectionsTemporaryUrisForCreation = (state) =>\n profileSelectors.getConnectionsTemporaryUrisForCreation(getProfile(state));\nexport const getTotalByViewId = (state, id, parentEntityUri) =>\n profileSelectors.getTotalByViewId(getProfile(state), id, parentEntityUri);\nexport const getLookups = (state) => profileSelectors.getLookups(getProfile(state));\nexport const getProfileErrors = (state) => profileSelectors.getErrors(getProfile(state));\nexport const getRelationsViewIds = (state) => profileSelectors.getRelationsViewIds(getProfile(state));\nexport const getHistoryDiff = (state) => profileSelectors.getHistoryDiff(getProfile(state));\nexport const getHistoryEvent = (state) => profileSelectors.getHistoryEvent(getProfile(state));\nexport const getHistorySlice = (state) => profileSelectors.getHistorySlice(getProfile(state));\nexport const getIsHistoryModeEnabled = (state) => profileSelectors.getIsHistoryModeEnabled(getProfile(state));\nexport const getHistoryMode = (state) => profileSelectors.getHistoryMode(getProfile(state));\nexport const getModifiedEntity = (state, uri) => profileSelectors.getModifiedEntity(getProfile(state), uri);\nexport const getModifiedEntityDefaultProfilePic = (state, uri) =>\n profileSelectors.getModifiedEntityDefaultProfilePic(getProfile(state), uri);\nexport const getModifiedEntities = (state) => profileSelectors.getModifiedEntities(getProfile(state));\n\nexport const getAttributeTypeErrors = (state, parentUri, {uri: attributeTypeUri}) =>\n profileSelectors.getAttributeTypeErrors(getProfile(state), parentUri, attributeTypeUri);\nexport const getAttributesErrors = (state, parentUri, {uri: attributeTypeUri}) =>\n profileSelectors.getAttributesErrors(getProfile(state), parentUri, attributeTypeUri);\nexport const getActiveErrorsForAttributesPager = (state, parentUri, attributeType) =>\n profileSelectors.getActiveErrorsForAttributesPager(getProfile(state), parentUri, attributeType);\n\nexport const getImagePath = (state) => uiSelectors.getImagePath(getUi(state));\nexport const getApiPath = (state) => uiSelectors.getApiPath(getUi(state));\nexport const getExportPath = (state) => uiSelectors.getExportPath(getUi(state));\nexport const getUIPath = (state) => uiSelectors.getUIPath(getUi(state));\nexport const getReltioPath = (state) => uiSelectors.getReltioPath(getUi(state));\nexport const getImageServicePath = (state) => uiSelectors.getImageServicePath(getUi(state));\nexport const getAdminToolsPath = (state) => uiSelectors.getAdminToolsPath(getUi(state));\n\nexport const getAttributePresentations = (state) => uiSelectors.getAttributePresentations(getUi(state));\nexport const getUiNumberFormat = (state) => uiSelectors.getUiNumberFormat(getUi(state));\nexport const getDefaultMaxValues = (state) => uiSelectors.getDefaultMaxValues(getUi(state));\nexport const getAutoCloseInterval = (state) => uiSelectors.getAutoCloseInterval(getUi(state));\nexport const getDateMask = (state) => uiSelectors.getDateMask(getUi(state));\nexport const getDateTimeMask = (state) => uiSelectors.getDateTimeMask(getUi(state));\nexport const getRequestProviderConfiguration = (state) => uiSelectors.getRequestProviderConfiguration(getUi(state));\nexport const getNotifications = (state) => uiSelectors.getNotifications(getUi(state));\nexport const getPivotingAttributes = (state) => uiSelectors.getPivotingAttributes(getUi(state));\nexport const getImageAttributesFieldsOrder = (state) => uiSelectors.getImageAttributesFieldsOrder(getUi(state));\nexport const getLookupAutocomplete = (state) => uiSelectors.getLookupAutocomplete(getUi(state));\nexport const getGoogleMapKey = (state) => uiSelectors.getGoogleMapKey(getUi(state));\nexport const getIcpLicenseKey = (state) => uiSelectors.getIcpLicenseKey(getUi(state));\nexport const getValidationServiceSeverityLevels = (state) =>\n uiSelectors.getValidationServiceSeverityLevels(getUi(state));\nexport const getValidateReadMode = (state) => uiSelectors.getValidateReadMode(getUi(state));\nexport const getValidateRelations = (state) => uiSelectors.getValidateRelations(getUi(state));\nexport const getAiAssistantEnabled = (state) => uiSelectors.getAiAssistantEnabled(getUi(state));\nexport const getAiAssistantEntityTypes = (state) => uiSelectors.getAiAssistantEntityTypes(getUi(state));\nexport const getAiAssistantLimitPerDay = (state) => uiSelectors.getAiAssistantLimitPerDay(getUi(state));\n\nexport const getSearchResults = (state) => searchSelectors.getSearchResults(getSearch(state));\nexport const getSearchKeyword = (state) => searchSelectors.getKeyword(getSearch(state));\nexport const getActivityFilter = (state) => searchSelectors.getActivityFilter(getSearch(state));\nexport const getSearchOptions = (state) => searchSelectors.getSearchOptions(getSearch(state));\nexport const getSearchProviderData = (state) => searchSelectors.getSearchProviderData(getSearch(state));\nexport const getSearchNavigationData = (state) => searchSelectors.getSearchNavigationData(getSearch(state));\nexport const getGlobalSearchRequestOptions = (state, omittingFields) =>\n searchSelectors.getGlobalSearchRequestOptions(getSearch(state), omittingFields);\nexport const getStringifiedSearchOptions = (state) => searchSelectors.getStringifiedSearchOptions(getSearch(state));\nexport const getGlobalFilter = (state) => searchSelectors.getGlobalFilter(getSearch(state));\nexport const getGlobalFilterQuery = (state) => searchSelectors.getGlobalFilterQuery(getSearch(state));\nexport const getGlobalFilterSavedSearchesUris = (state) =>\n searchSelectors.getGlobalFilterSavedSearchesUris(getSearch(state));\n\nexport const getMode = (state) => profileSelectors.getMode(getProfile(state));\nexport const getIsEditableMode = (state) => profileSelectors.getIsEditableMode(getProfile(state));\nexport const getIsViewMode = (state) => profileSelectors.getIsViewMode(getProfile(state));\nexport const getIsSuggestMode = (state) => profileSelectors.getIsSuggestMode(getProfile(state));\nexport const getRelations = (state) => profileSelectors.getRelations(getProfile(state));\nexport const getRelationToAddByViewId = (state, id) => profileSelectors.getRelationToAddByViewId(getProfile(state), id);\nexport const getRelationsToEditByViewId = (state, id) =>\n profileSelectors.getRelationsToEditByViewId(getProfile(state), id);\nexport const getAllRelationsToAddAndEdit = (state, viewIds) =>\n profileSelectors.getAllRelationsToAddAndEdit(getProfile(state), viewIds);\nexport const getAllRelationsToSave = (state, viewIds) =>\n profileSelectors.getAllRelationsToSave(getProfile(state), viewIds);\nexport const getAllRelationsByViewIds = (state, viewIds) =>\n profileSelectors.getAllRelationsByViewIds(getProfile(state), viewIds);\nexport const getInitialConnectionTempEntity = (state, viewId, relationUri) =>\n profileSelectors.getInitialConnectionTempEntity(getProfile(state), viewId, relationUri);\nexport const getInitialConnection = (state, viewId, relationUri) =>\n profileSelectors.getInitialConnection(getProfile(state), viewId, relationUri);\nexport const getViewIdsForOpenRelation = (state, relationUri) =>\n profileSelectors.getViewIdsForOpenRelation(getProfile(state), relationUri);\n\nexport const getAbsoluteImagePath = (state) =>\n uiSelectors.getImagePath(getUi(state)) || uiSelectors.getApiPath(getUi(state));\n\nexport const getUserName = (state) => userSelectors.getUserName(getUser(state));\nexport const getUserRoles = (state) => userSelectors.getUserRoles(getUser(state));\nexport const getTrees = (state) => profileSelectors.getTrees(getProfile(state));\nexport const getTree = (state, id) => profileSelectors.getTree(getProfile(state), id);\nexport const getTreeRoot = (state, id) => profileSelectors.getTreeRoot(getProfile(state), id);\nexport const getTreeTotal = (state, id) => profileSelectors.getTreeTotal(getProfile(state), id);\nexport const getTreeCommands = (state) => profileSelectors.getTreeCommands(getProfile(state));\nexport const getTreeEditingConnection = (state, id, relationUri) =>\n profileSelectors.getTreeEditingConnection(getProfile(state), id, relationUri);\nexport const getAllTreesEditingConnections = (state, viewIds) =>\n profileSelectors.getAllTreesEditingConnections(getProfile(state), viewIds);\n\nexport const getProfileLastLoadedTime = (state) => profileSelectors.getLastLoadedTime(getProfile(state));\n\nexport const getProfileOperation = (state) => profileSelectors.getOperation(getProfile(state));\nexport const getProfileViews = (state) => profileSelectors.getViews(getProfile(state));\nexport const getProfileCancelNeedConfirm = (state) => profileSelectors.getProfileCancelNeedConfirm(getProfile(state));\n\nexport const getTenant = (state) => tenantSelectors.getTenantId(getTenantObject(state));\nexport const getTenantName = (state) => tenantSelectors.getTenantName(getTenantObject(state));\nexport const getEnvironment = (state) => environmentSelectors.getEnvironmentId(getEnvironmentObject(state));\nexport const getEnvironmentAlias = (state) => environmentSelectors.getEnvironmentAlias(getEnvironmentObject(state));\nexport const getDtssPath = (state) => uiSelectors.getDtssPath(getUi(state));\nexport const getExportDQPath = (state) => uiSelectors.getExportDQPath(getUi(state));\nexport const getWorkflowPath = (state) => uiSelectors.getWorkflowPath(getUi(state));\nexport const getAllServicesPaths = (state) => uiSelectors.getPaths(getUi(state));\nexport const getWorkflowEnvironmentUrl = (state) => uiSelectors.getWorkflowEnvironmentURL(getUi(state));\nexport const getWorkflowConfigurationEnabled = (state) => uiSelectors.getWorkflowConfigurationEnabled(getUi(state));\nexport const getCollaborationPath = (state) => uiSelectors.getCollaborationPath(getUi(state));\nexport const getDVFPath = (state) => uiSelectors.getDVFPath(getUi(state));\nexport const getValidationServicePath = (state) => uiSelectors.getValidationServicePath(getUi(state));\nexport const getMlDqPath = (state) => uiSelectors.getMlDqPath(getUi(state));\n\nexport const getCanUserRegisterConfigEnvironments = createSelector(\n getUser,\n getTenant,\n canUserRegisterConfigEnvironments\n);\nexport const getCanUserCreateWorkflowConfigJar = createSelector(getUser, getTenant, canUserCreateWorkflowConfigJar);\nexport const getCanUserCreateWorkflowEnvironmentConfigJar = createSelector(\n getUser,\n getTenant,\n canUserCreateWorkflowEnvironmentConfigJar\n);\nexport const getCanUserExecuteWorkflowJobs = createSelector(getUser, getTenant, canUserExecuteWorkflowJobs);\nexport const getCanUserExecuteWorkflowJobsSyncBusinessProcessData = createSelector(\n getUser,\n getTenant,\n canUserExecuteWorkflowJobsSyncBusinessProcessData\n);\nexport const getCanUserExecuteWorkflowJobsTerminateProcessInstance = createSelector(\n getUser,\n getTenant,\n canUserExecuteWorkflowJobsTerminateProcessInstance\n);\nexport const getCanUserExecuteWorkflowJobsUpdateTasks = createSelector(\n getUser,\n getTenant,\n canUserExecuteWorkflowJobsUpdateTasks\n);\nexport const getCanUserExecuteWorkflowJobsValidateTasks = createSelector(\n getUser,\n getTenant,\n canUserExecuteWorkflowJobsValidateTasks\n);\nexport const getCanUserManageWorkflowDefinition = createSelector(getUser, getTenant, canUserManageWorkflowDefinition);\nexport const getCanUserManageWorkflowEnvironmentDefinition = createSelector(\n getUser,\n getTenant,\n canUserManageWorkflowEnvironmentDefinition\n);\nexport const getCanUserReadWorkflowDataTask = createSelector(getUser, getTenant, canUserReadWorkflowDataTask);\nexport const getCanUserUpdateProcessInstance = createSelector(getUser, getTenant, canUserUpdateProcessInstance);\nexport const getCanUserUpdateWorkflowDataTask = createSelector(getUser, getTenant, canUserUpdateWorkflowDataTask);\nexport const getCanUserViewProcessInstanceSearchQuery = createSelector(\n getUser,\n getTenant,\n canUserViewProcessInstanceSearchQuery\n);\nexport const getCanUserViewWorkflowConfigJar = createSelector(getUser, getTenant, canUserViewWorkflowConfigJar);\nexport const getCanUserViewWorkflowDefinition = createSelector(getUser, getTenant, canUserViewWorkflowDefinition);\nexport const getCanUserViewWorkflowEnvironmentConfigJar = createSelector(\n getUser,\n getTenant,\n canUserViewWorkflowEnvironmentConfigJar\n);\nexport const getCanUserViewWorkflowJobs = createSelector(getUser, getTenant, canUserViewWorkflowJobs);\n\nexport const getCanUserMakeExport = createSelector(getUser, getTenant, canUserMakeExport);\nexport const getCanUserMakeActivitiesExport = createSelector(getUser, getTenant, canUserMakeActivitiesExport);\nexport const getCanUserImportEntitiesFromDT = createSelector(getUser, getTenant, canUserImportEntitiesFromDT);\nexport const getCanUserReadEntitiesFromDT = createSelector(getUser, getTenant, canUserReadEntitiesFromDT);\n\nexport const getCanUserStartProcessFromQuery = createSelector(getUser, getTenant, canUserStartProcessInstanceFromQuery);\n\nexport const getCanUserMakeBulkUpdate = createSelector(getUser, getTenant, canUserMakeBulkUpdate);\nexport const getCanUserDeleteProfiles = createSelector(getUser, getTenant, canUserDeleteProfiles);\nexport const getCanUserOpenDataLoader = createSelector(getUser, getTenant, canUserOpenDataLoader);\n\nexport const getCanUserGetDQStatistic = createSelector(getUser, getTenant, canUserGetDQStatistic);\nexport const getCanUserReadDVF = createSelector(getUser, getTenant, canUserReadDVF);\n\nexport const isCollaborationEnabled = createSelector(\n getCollaborationPath,\n getIsHistoryModeEnabled,\n (collaborationPath, isHistoryModeEnabled) => !!collaborationPath && !isHistoryModeEnabled\n);\n\nexport const isWorkflowEnabled = createSelector(\n getWorkflowPath,\n getWorkflowConfigurationEnabled,\n (workflowPath, enabled) => !!workflowPath && !!enabled\n);\n\nconst hasSideView = (state, viewId) =>\n profileSelectors\n .getSidePanelViews(getProfile(state))\n ?.find((el) => el?.id === 'common')\n ?.views?.some((view) => view?.id === viewId) ?? false;\n\nexport const isWorkflowSideViewEnabled = (state) => hasSideView(state, 'com.reltio.plugins.entity.side.WorkflowsView');\n\nexport const isCollaborationSideViewEnabled = (state) =>\n hasSideView(state, 'com.reltio.plugins.entity.collaboration.DiscussionsView');\n\nexport const isDBConnectorSideViewEnabled = (state) =>\n profileSelectors.getSidePanelViews(getProfile(state))?.some((el) => el.id === 'D&B') ?? false;\n\nexport const getDBConnectorSideViews = (state) =>\n profileSelectors.getSidePanelViews(getProfile(state))?.find((el) => el.id === 'D&B')?.views ?? [];\n\nexport const getDependentLookups = (state) => profileSelectors.getDependentLookups(getProfile(state));\nexport const getDependentLookupsStructure = (state) => profileSelectors.getDependentLookupsStructure(getProfile(state));\nexport const getDependentLookupsStructureNode = (state, attributeTypeUri) =>\n profileSelectors.getDependentLookupsStructureNode(getProfile(state), attributeTypeUri);\nexport const getDependentLookupsInitedTypeUris = (state) =>\n profileSelectors.getDependentLookupsInitedTypeUris(getProfile(state));\nexport const getDependentLookupEditorsState = (state) =>\n profileSelectors.getDependentLookupEditorsState(getProfile(state));\nexport const getDependentLookupEditorState = (state, valueUri) =>\n profileSelectors.getDependentLookupEditorState(getProfile(state), valueUri);\nexport const getUiError = (state) => uiSelectors.getUiError(getUi(state));\n\nexport const getCheckIfCanAddRelations = (state, content) => {\n const metadata = getMetadata(state);\n const mode = getMode(state);\n const entity = getEntity(state);\n const authoringItems = getAuthoringByEntityType(state, entity?.type);\n const {nextEntry, inRelations = [], outRelations = []} = content;\n const isEditableMode = mode === Mode.Editing || mode === Mode.Suggesting;\n const isNewEntityAndSuggestingMode = mode === Mode.Suggesting && isTempUri(entity?.uri);\n const isAuthoringMode = !isEmptyValue(authoringItems);\n\n if (!isEditableMode || (isNewEntityAndSuggestingMode && !isAuthoringMode) || nextEntry || !entity) {\n return false;\n } else {\n const canEditEntity = checkMetadataForUpdate(mode, getEntityType(metadata, entity.type));\n const canCreateRelations = inRelations\n .concat(outRelations)\n .map((rel) => getRelationType(metadata, rel.uri || rel))\n .some(both(checkMetadataForCreate(mode), checkMetadataForUpdate(mode)));\n return canEditEntity && canCreateRelations;\n }\n};\n\nexport const getEntityWithDiff = createSelector(\n getEntity,\n getIsViewMode,\n getHistorySlice,\n getHistoryDiff,\n getProfileEntityWithHistoryDiff\n);\n\nexport const getEntityWithoutDiff = createSelector(\n getEntity,\n getIsViewMode,\n getHistorySlice,\n getProfileEntityWithoutHistoryDiff\n);\n\nexport const getServicesPath = (state) => uiSelectors.getServicesPath(getUi(state));\nexport const getUIConfig = (state) => uiSelectors.getUIConfig(getUi(state));\nexport const getUIConfigLayout = (state) => uiSelectors.getUIConfigLayout(getUi(state));\nexport const getShowEntityId = (state) => uiSelectors.getShowEntityId(getUi(state));\nexport const getPreview = (state) => uiSelectors.getPreview(getUi(state));\nexport const getDocReleaseNotes = (state) => uiSelectors.getDocReleaseNotes(getUi(state));\nexport const getLogo = (state) => uiSelectors.getLogo(getUi(state));\nexport const getHeaderColor = (state) => uiSelectors.getHeaderColor(getUi(state));\nexport const getShowSearchByOv = (state) => uiSelectors.getShowSearchByOv(getUi(state));\nexport const getShowAttributeDescription = (state) => uiSelectors.getShowAttributeDescription(getUi(state));\nexport const getAttributesSortingStrategy = (state) => uiSelectors.getAttributesSortingStrategy(getUi(state));\nexport const getProfileCheckUpdate = (state) => uiSelectors.getProfileCheckUpdate(getUi(state));\nexport const getAuthoringByEntityType = (state, entityTypeUri) =>\n uiSelectors.getAuthoringByEntityType(getUi(state), entityTypeUri);\nexport const getCleanseConfigurationByEntityType = (state, entityTypeUri) =>\n uiSelectors.getCleanseConfigurationByEntityType(getUi(state), entityTypeUri);\n","import {Entity} from '@reltio/mdm-sdk';\nimport {ProfileActionTypes} from '../actions/constants';\nimport {entityCreated, entityDeleted, modifiedEntitiesReset, setDefaultProfilePic} from './actions';\nimport {modeUpdated} from '../mode/actions';\n\nexport type ModifiedEntitiesState = {\n [uri: string]: Entity;\n};\n\nexport enum ModifiedEntitiesActions {\n MODIFIED_ENTITY_CREATED = 'MODIFIED_ENTITY_CREATED',\n MODIFIED_ENTITY_DELETED = 'MODIFIED_ENTITY_DELETED',\n MODIFIED_ENTITY_DEFAULT_PROFILE_PIC_SET = 'MODIFIED_ENTITY_DEFAULT_PROFILE_PIC_SET',\n MODIFIED_ENTITIES_RESET = 'MODIFIED_ENTITIES_RESET',\n CLEANSE_LOADING = 'CLEANSE_LOADING'\n}\n\nexport type ModifiedEntitiesActionsTypes =\n | ReturnType<typeof entityCreated>\n | ReturnType<typeof entityDeleted>\n | ReturnType<typeof setDefaultProfilePic>\n | ReturnType<typeof modifiedEntitiesReset>\n | ReturnType<typeof modeUpdated>\n | ProfileActionTypes;\n","import {\n AddRelationPayload,\n CloseRelationEditorPayload,\n EditRelationPayload,\n OpenRelationEditorPayload,\n RemoveRelationPayload,\n SetRelationEntityPayload,\n SetRelationTypePayload,\n IgnoreRelationPayload\n} from '../../types/profile/relations';\nimport {ProfileActionTypes} from '../actions/constants';\nimport {EntityActionsType} from '../entity/constants';\nimport {ModeActionsTypes} from '../mode/constants';\nimport {relationsLoaded, secondLevelRelationsLoaded, setInitialInfo} from './actions';\n\nexport enum RelationsActions {\n RELATIONS_LOADED = 'RELATIONS_LOADED',\n REMOVE_RELATION = 'REMOVE_RELATION',\n EDIT_RELATION = 'EDIT_RELATION',\n ADD_RELATION = 'ADD_RELATION',\n OPEN_RELATION_EDITOR = 'OPEN_RELATION_EDITOR',\n CLOSE_RELATION_EDITOR = 'CLOSE_RELATION_EDITOR',\n SET_RELATION_TYPE = 'SET_RELATION_TYPE',\n SET_RELATION_ENTITY = 'SET_RELATION_ENTITY',\n SET_INITIAL_INFO = 'SET_INITIAL_INFO',\n IGNORE_RELATION = 'IGNORE_RELATION',\n SECOND_LEVEL_RELATIONS_LOADED = 'SECOND_LEVEL_RELATIONS_LOADED'\n}\n\nexport type RemoveRelationReturnType = {type: RelationsActions.REMOVE_RELATION; payload: RemoveRelationPayload};\nexport type IgnoreRelationReturnType = {type: RelationsActions.IGNORE_RELATION; payload: IgnoreRelationPayload};\nexport type AddRelationReturnType = {type: RelationsActions.ADD_RELATION; payload: AddRelationPayload};\nexport type OpenRelationEditorReturnType = {\n type: RelationsActions.OPEN_RELATION_EDITOR;\n payload: OpenRelationEditorPayload;\n};\nexport type SetRelationTypeReturnType = {type: RelationsActions.SET_RELATION_TYPE; payload: SetRelationTypePayload};\n\nexport type RelationsActionsTypes =\n | ReturnType<typeof relationsLoaded>\n | ReturnType<typeof secondLevelRelationsLoaded>\n | ReturnType<typeof setInitialInfo>\n | RemoveRelationReturnType\n | AddRelationReturnType\n | OpenRelationEditorReturnType\n | SetRelationTypeReturnType\n | {type: RelationsActions.EDIT_RELATION; payload: EditRelationPayload}\n | {type: RelationsActions.CLOSE_RELATION_EDITOR; payload: CloseRelationEditorPayload}\n | {type: RelationsActions.SET_RELATION_ENTITY; payload: SetRelationEntityPayload}\n | ModeActionsTypes\n | EntityActionsType\n | ProfileActionTypes\n | IgnoreRelationReturnType;\n","import {\n __,\n always,\n chain,\n concat,\n either,\n eqBy,\n equals,\n filter,\n find,\n identity,\n isNil,\n keys,\n length,\n map,\n path,\n pathOr,\n pick,\n pipe,\n propEq,\n unless,\n when\n} from 'ramda';\nimport {\n Connection,\n ConnectionDrafts,\n isTempUri,\n markEdited,\n markNew,\n markRemoved,\n Relation,\n markIgnored,\n getRelationUriFromConnection,\n getEntityUriFromConnection,\n getRelationObjectFromConnection,\n RelationsState,\n getAllRelationsToAddAndEdit,\n getRelationToAddByViewId,\n getRelationsToEditByViewId,\n getTempRelations,\n getInitialConnection,\n getInitialConnectionTempEntity,\n getAllRelationsToSave,\n getDraftsForSaveByViewId\n} from '@reltio/mdm-sdk';\nimport createCachedSelector from 're-reselect';\n\nexport const findConnectionByRelationUri = (connections: Connection[], relationUri: string) =>\n connections.find(pipe(getRelationUriFromConnection, equals(relationUri)));\n\nexport const getConnectionsByViewId = (state: RelationsState, id: string): Connection[] =>\n path([id, 'connections'], state);\n\nexport const getTotalByViewId = (state: RelationsState, id: string, parentEntityUri?: string): number => {\n const total = parentEntityUri\n ? pipe(\n path([id, 'connections']),\n find(({entity}) => entity.entityUri === parentEntityUri),\n pathOr(0, ['total'])\n )(state)\n : pathOr(0, [id, 'total'], state);\n return total;\n};\nexport const getDraftsByViewId = (state: RelationsState, id: string): ConnectionDrafts => path([id, 'drafts'], state);\n\nexport const getViewIdsForOpenRelation = (state: RelationsState, relationUri: string): string[] => {\n return Object.keys(state).filter((viewId) => {\n const connections = getTempRelations(state, viewId);\n return !!findConnectionByRelationUri(connections, relationUri);\n });\n};\n\nexport const getTotalWithDrafts = (state: RelationsState, id: string, parentEntityUri?: string): number => {\n const addedConnectionsTotal = pipe(\n pathOr([], [id, 'drafts', 'addedConnections']),\n filter(pipe(getRelationUriFromConnection, isTempUri)),\n when(always(parentEntityUri), filter(propEq('parentEntityUri', parentEntityUri))),\n length\n )(state);\n return getTotalByViewId(state, id, parentEntityUri) + addedConnectionsTotal;\n};\n\nexport const getConnectionsWithDrafts = createCachedSelector(\n getConnectionsByViewId,\n getDraftsByViewId,\n (_state, _id, parentEntityUri) => parentEntityUri,\n (connections = [], drafts = {}, parentEntityUri) => {\n const {addedConnections = [], editedConnections = [], removedUris = [], ignoredRelationData = []} = drafts;\n const isRemoved = pipe(getRelationUriFromConnection, equals, find(__, removedUris));\n const ignoredUris = ignoredRelationData.map((item) => item.relationUri);\n const isIgnored = pipe(getRelationUriFromConnection, equals, find(__, ignoredUris));\n const getEditedConnection = (connection) =>\n pipe(\n eqBy(getRelationUriFromConnection),\n find(__, editedConnections),\n unless(isNil, markEdited)\n )(connection);\n\n const connectionsByParentEntityUri = parentEntityUri\n ? connections.find((connection) => connection.entity.entityUri === parentEntityUri)?.connections || []\n : connections;\n\n const addedConnectionsByParentEntityUri = addedConnections.filter(propEq('parentEntityUri', parentEntityUri));\n\n return addedConnectionsByParentEntityUri.map(markNew).concat(\n connectionsByParentEntityUri\n .filter((connection) => {\n return !addedConnectionsByParentEntityUri.some(\n pipe(getRelationUriFromConnection, equals(getRelationUriFromConnection(connection)))\n );\n })\n .map(\n pipe(\n either(getEditedConnection, identity),\n when(isRemoved, markRemoved),\n when(isIgnored, markIgnored)\n )\n )\n );\n }\n)((_, id, parentEntityUri) => id + parentEntityUri);\n\nexport const getEditingOrAddingConnectionByViewIdAndRelationUri = (\n state: RelationsState,\n id: string,\n relationUri: string\n) => {\n const connections = getTempRelations(state, id);\n return findConnectionByRelationUri(connections, relationUri);\n};\n\nexport const getEditingOrAddingConnectionRelationObjectByViewIdAndRelationUri = (\n state: RelationsState,\n id: string,\n relationUri: string\n): Relation => {\n const connection = getEditingOrAddingConnectionByViewIdAndRelationUri(state, id, relationUri);\n return getRelationObjectFromConnection(connection);\n};\n\nexport const getTemporaryUrisForCreation = (state: RelationsState): string[] => {\n return keys(state).reduce((uris, viewId) => {\n const {addedConnections, editedConnections} = getDraftsForSaveByViewId(state, viewId);\n return pipe(\n concat,\n map(getEntityUriFromConnection),\n filter(isTempUri),\n concat(uris)\n )(addedConnections, editedConnections);\n }, []);\n};\n\nconst getAllRelationsByViewIds = (state: RelationsState, viewIds?: string[]): Connection[] =>\n pipe(\n when(always(viewIds), pick(viewIds)),\n keys,\n chain(pipe((viewId: string) => getConnectionsByViewId(state, viewId)))\n )(state);\n\nexport {\n getAllRelationsByViewIds,\n getAllRelationsToAddAndEdit,\n getAllRelationsToSave,\n getDraftsForSaveByViewId,\n getRelationToAddByViewId,\n getRelationsToEditByViewId,\n getInitialConnection,\n getInitialConnectionTempEntity\n};\n","import {call, fork, put, select, take, takeEvery, delay} from 'redux-saga/effects';\nimport {prop} from 'ramda';\nimport {\n addValueToDependentLookups,\n initDependentLookups,\n populateDependentLookupsFromEntity,\n cascadeUpdate as cascadeUpdateRequest,\n CascadeUpdateResponseStateValue,\n CascadeUpdateUpdatedValue,\n ComplexAttributeValue,\n DependentLookupsConfig,\n DependentLookupsStructure,\n EntitiesMap,\n Entity,\n findAttributeTypeByUri,\n findAttributeValueByUri,\n findAttributeValuesByTypeUri,\n findRelatedTemporaryEntities,\n getBaseUri,\n getDependentLookupStateForValueUri,\n getReferencedEntityUriFromAttrValue,\n isAttributeTypeInDependentLookups,\n isComplexAttribute,\n isReference,\n isRelationUri,\n isTempUri,\n Metadata,\n Relation,\n removeValuesFromDependentLookups,\n SimpleAttributeValue,\n syncAttributeTypeWithDependentLookups,\n Connection,\n DependentLookupsEditorsState,\n AttributeType,\n getEntityUriFromConnection\n} from '@reltio/mdm-sdk';\n\nimport * as selectors from '../../../selectors';\nimport {ProfileActions} from '../../actions/constants';\nimport {entityCreated, entityDeleted} from '../../modifiedEntities/actions';\nimport {ModifiedEntitiesActions} from '../../modifiedEntities/constants';\nimport {\n dependentLookupsEditorsBlocked,\n dependentLookupsInitedTypeUrisAdded,\n dependentLookupsStructureSet\n} from '../actions';\nimport {addAttributes, addDefaultValuesAction, modifyAttribute, removeAttribute} from '../../actions';\nimport {closeRelationEditor, openRelationEditor, setRelationType} from '../../relations/actions';\nimport {RelationsActions} from '../../relations/constants';\nimport {findConnectionByRelationUri} from '../../relations/selectors';\nimport {DependentLookupsActions} from '../constants';\n\ntype AlreadyAddedTypeUris = ReturnType<typeof selectors.getDependentLookupsInitedTypeUris>;\n\nexport function* handleCreateEntity(action: ReturnType<typeof entityCreated>) {\n // There are situations when several MODIFIED_ENTITY_CREATED events are fired synchronously (createEntitiesFromAuthoringDraft).\n // See comment in handleModifyAttribute for more information.\n yield delay(0);\n const entity = action.payload;\n const metadata: Metadata = yield select(selectors.getMetadata);\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n const typeUris = [entity.type];\n const alreadyAddedTypeUris: AlreadyAddedTypeUris = yield select(selectors.getDependentLookupsInitedTypeUris);\n const updatedStructure = initDependentLookups({structure, metadata, typeUris, alreadyAddedTypeUris});\n const structureWithValues = populateDependentLookupsFromEntity({\n structure: updatedStructure,\n metadata,\n entityOrRelation: entity\n });\n yield put(dependentLookupsStructureSet(structureWithValues));\n yield put(dependentLookupsInitedTypeUrisAdded(typeUris));\n}\n\nexport function* selectTopLevelObject(uri: string, viewId?: string) {\n const baseUri = getBaseUri(uri);\n const object: Entity | Relation = isRelationUri(baseUri)\n ? yield select(selectors.getEditingOrAddingConnectionRelationObjectByViewIdAndRelationUri, viewId, baseUri)\n : yield select(selectors.getModifiedEntity, baseUri);\n return object;\n}\n\nexport function* handleAddDefaultValues(action: ReturnType<typeof addDefaultValuesAction>) {\n const {attributeType, metadata, parentUri, viewId} = action.payload;\n const entityOrRelation: Entity | Relation = yield call(selectTopLevelObject, parentUri, viewId);\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n if (entityOrRelation) {\n if (attributeType) {\n // adding complex attribute case\n const attributeValue = findAttributeValuesByTypeUri(metadata, entityOrRelation, attributeType.uri).filter(\n ({uri}) => uri.startsWith(parentUri)\n )[0];\n const structureWithValue = addValueToDependentLookups({structure, attributeValue});\n yield put(dependentLookupsStructureSet(structureWithValue));\n } else {\n // open relation editor / change relation type\n const typeUris = [entityOrRelation.type];\n const alreadyAddedTypeUris: AlreadyAddedTypeUris = yield select(\n selectors.getDependentLookupsInitedTypeUris\n );\n const updatedStructure = initDependentLookups({structure, metadata, typeUris, alreadyAddedTypeUris});\n const structureWithValues = populateDependentLookupsFromEntity({\n structure: updatedStructure,\n metadata,\n entityOrRelation\n });\n yield put(dependentLookupsStructureSet(structureWithValues));\n yield put(dependentLookupsInitedTypeUrisAdded(typeUris));\n }\n }\n}\n\nexport function* handleAddAttributes(action: ReturnType<typeof addAttributes>) {\n const addedAttributes = action.payload;\n const metadata: Metadata = yield select(selectors.getMetadata);\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n let updatedStructure = structure;\n for (const {attributeType, parentUri, viewId} of addedAttributes) {\n if (isAttributeTypeInDependentLookups(structure, attributeType.uri)) {\n const entityOrRelation: Entity | Relation = yield call(selectTopLevelObject, parentUri, viewId);\n if (entityOrRelation) {\n updatedStructure = syncAttributeTypeWithDependentLookups({\n structure: updatedStructure,\n entityOrRelation,\n attrTypeUri: attributeType.uri,\n metadata\n });\n }\n }\n }\n if (updatedStructure !== structure) {\n yield put(dependentLookupsStructureSet(updatedStructure));\n }\n}\n\ntype RemoveReferenceAttributeTemporaryEntities = {\n structure: DependentLookupsStructure;\n attributeType: AttributeType;\n value: ComplexAttributeValue;\n};\n\nfunction* removeReferenceAttributeTemporaryEntities({\n structure,\n attributeType,\n value\n}: RemoveReferenceAttributeTemporaryEntities) {\n if (isReference(attributeType) && value) {\n const refEntityUri = getReferencedEntityUriFromAttrValue(value);\n if (isTempUri(refEntityUri)) {\n const updatedStructure = yield call(\n removeTemporaryEntitiesChainFromDependentLookupsStructure,\n structure,\n refEntityUri\n );\n return updatedStructure;\n }\n }\n return structure;\n}\n\ntype SyncComplexAttributeWithDLStructure = {\n structure: DependentLookupsStructure;\n uri: string;\n attributeType: AttributeType;\n value: ComplexAttributeValue;\n};\n\nfunction* syncComplexAttributeWithDLStructure({\n structure,\n uri,\n attributeType,\n value\n}: SyncComplexAttributeWithDLStructure) {\n let updatedStructure = removeValuesFromDependentLookups({\n structure,\n uri\n });\n updatedStructure = yield call(removeReferenceAttributeTemporaryEntities, {\n structure: updatedStructure,\n attributeType,\n value\n });\n updatedStructure = addValueToDependentLookups({structure: updatedStructure, attributeValue: value});\n if (isReference(attributeType) && value) {\n const refEntityUri = getReferencedEntityUriFromAttrValue(value);\n if (isTempUri(refEntityUri)) {\n updatedStructure = yield call(\n addTemporaryEntitiesChainToDependentLookupsStructure,\n updatedStructure,\n refEntityUri\n );\n }\n }\n if (updatedStructure !== structure) {\n yield put(dependentLookupsStructureSet(updatedStructure));\n }\n}\n\nexport function* handleModifyAttribute(action: ReturnType<typeof modifyAttribute>) {\n // There are situations when several MODIFY_ATTRIBUTE events are fired synchronously\n // (for example, it's for...of cycle in cascadeUpdate saga, or, in some conditions, several useEffect callback in useLookupResolver)\n // For each such event an instance of this saga is started, also synchronously\n // In such situations it's not guaranteed that one instance of saga will finish without interruption by another one,\n // it can be interrupted when \"put\" effect is executing (they will be queuing under the hood of redux-saga)\n // So, sequential of one saga instance effects can be interrupted by concurrent saga instance\n // All concurrent instances execute all select effects before the first \"put\" effect, and stop and wait for the queue of \"put\" effects.\n // In this case, all saga instances will use initial DL structure from the store, and ignore updates of each other.\n // It's unacceptable. To avoid this sync queueing inside redux-saga, we can just put this delay (setTimeout) to guarantee that\n // queue of \"put\"s will be empty when selectors works and all effects will be sequential and not be interrupted\n yield delay(0);\n const {attributeType, uri, viewId, silent, value} = action.payload;\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n const entityOrRelation: Entity | Relation = yield call(selectTopLevelObject, uri, viewId);\n if (entityOrRelation && isAttributeTypeInDependentLookups(structure, attributeType.uri)) {\n const {value, lookupCode} = action.payload.value as Partial<SimpleAttributeValue>;\n const lookupValue = lookupCode || (value as string);\n if (!silent) {\n yield fork(cascadeUpdate, structure, {\n type: attributeType.uri,\n uri,\n lookupValue\n });\n }\n const updatedStructure = addValueToDependentLookups({\n structure,\n attributeValue: {\n type: attributeType.uri,\n value: lookupValue,\n uri\n }\n });\n yield put(dependentLookupsStructureSet(updatedStructure));\n }\n if (entityOrRelation && isComplexAttribute(attributeType.type)) {\n yield call(syncComplexAttributeWithDLStructure, {\n structure,\n uri,\n attributeType,\n value: value as ComplexAttributeValue\n });\n }\n}\n\nexport function* addTemporaryEntitiesChainToDependentLookupsStructure(structure, parentEntityUri) {\n const metadata: Metadata = yield select(selectors.getMetadata);\n const parentEntity = yield select(selectors.getModifiedEntity, parentEntityUri);\n if (!parentEntity) {\n return structure;\n }\n const modifiedEntities = yield select(selectors.getModifiedEntities);\n const relatedTempEntities = findRelatedTemporaryEntities(modifiedEntities, parentEntity);\n let updatedStructure = structure;\n for (const tempEntity of [parentEntity, ...relatedTempEntities]) {\n updatedStructure = populateDependentLookupsFromEntity({\n structure: updatedStructure,\n metadata,\n entityOrRelation: tempEntity\n });\n }\n return updatedStructure;\n}\n\nexport function* removeTemporaryEntitiesChainFromDependentLookupsStructure(structure, parentEntityUri) {\n const parentEntity = yield select(selectors.getModifiedEntity, parentEntityUri);\n const modifiedEntities = yield select(selectors.getModifiedEntities);\n const relatedEntitiesUris = findRelatedTemporaryEntities(modifiedEntities, parentEntity).map(prop('uri'));\n let updatedStructure = structure;\n for (const entityUri of [parentEntityUri, ...relatedEntitiesUris]) {\n updatedStructure = removeValuesFromDependentLookups({\n structure: updatedStructure,\n uri: entityUri\n });\n }\n return updatedStructure;\n}\n\nexport function* handleRemoveAttribute(action: ReturnType<typeof removeAttribute>) {\n const {attributeType, uri, attributeValue, viewId} = action.payload;\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n const isDL = isAttributeTypeInDependentLookups(structure, attributeType.uri);\n const entityOrRelation: Entity | Relation = yield call(selectTopLevelObject, uri, viewId);\n if (entityOrRelation) {\n if (isDL) {\n yield fork(cascadeUpdate, structure, {\n type: attributeType.uri,\n uri,\n lookupValue: ''\n });\n }\n let updatedStructure =\n isDL || isComplexAttribute(attributeType)\n ? removeValuesFromDependentLookups({\n structure,\n uri\n })\n : structure;\n updatedStructure = yield call(removeReferenceAttributeTemporaryEntities, {\n structure: updatedStructure,\n attributeType,\n value: attributeValue\n });\n if (updatedStructure !== structure) {\n yield put(dependentLookupsStructureSet(updatedStructure));\n }\n }\n}\n\nexport function* handleDeleteEntity(action: ReturnType<typeof entityDeleted>) {\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n const updatedStructure = yield call(\n removeTemporaryEntitiesChainFromDependentLookupsStructure,\n structure,\n action.payload\n );\n yield put(dependentLookupsStructureSet(updatedStructure));\n}\n\nexport function* cascadeUpdate(structure: DependentLookupsStructure, updatedValue: CascadeUpdateUpdatedValue) {\n const metadata: Metadata = yield select(selectors.getMetadata);\n const modifiedEntities: EntitiesMap = yield select(selectors.getModifiedEntities);\n const connections: Connection[] = yield select(selectors.getAllRelationsToAddAndEdit);\n const entityUri: string = yield select(selectors.getEntityUri);\n const config: DependentLookupsConfig = yield select(selectors.getLookupAutocomplete);\n const editorsState: DependentLookupsEditorsState = yield select(selectors.getDependentLookupEditorsState);\n const stateForValue = getDependentLookupStateForValueUri({\n structure,\n typeUri: updatedValue.type,\n valueUri: updatedValue.uri,\n modifiedEntities,\n connections,\n entityUri,\n config,\n editorsState\n });\n if (stateForValue.length > 0) {\n const affectedEditorsUris = stateForValue.map((value) => value.uri);\n yield put(dependentLookupsEditorsBlocked({uris: affectedEditorsUris, isBlocked: true}));\n try {\n const updatedStateForValue: CascadeUpdateResponseStateValue[] = yield call(\n cascadeUpdateRequest,\n stateForValue,\n updatedValue\n );\n for (const {type, uri, lookupValue, displayName} of updatedStateForValue) {\n // todo: Refactor it! viewId shouldn't be needed to find editing relation\n // We should have single source of truth for all adding/editing relations, not grouped by viewId\n const viewId = (yield select(selectors.getViewIdsForOpenRelation, getBaseUri(uri)))[0];\n const object: Entity | Relation = yield call(selectTopLevelObject, uri, viewId);\n const isExistedValue = object && !!findAttributeValueByUri(object, uri);\n if (isExistedValue && uri !== updatedValue.uri) {\n yield put(\n modifyAttribute({\n attributeType: findAttributeTypeByUri(metadata, type),\n uri,\n value: {\n value: displayName || '',\n lookupCode: lookupValue || ''\n },\n silent: true,\n viewId\n })\n );\n }\n }\n } catch (e) {\n console.warn(e);\n }\n yield put(dependentLookupsEditorsBlocked({uris: affectedEditorsUris, isBlocked: false}));\n }\n}\n\nexport function* handleOpenRelationEditor(action: ReturnType<typeof openRelationEditor>) {\n const connection: Connection = action.payload.connection;\n // relation attributes values filling occurs in handleAddDefaultValues\n // here we should fill DL structure with values of connected entities chain\n const connectedEntityUri = getEntityUriFromConnection(connection);\n const tempEntity = isTempUri(connectedEntityUri) && (yield select(selectors.getModifiedEntity, connectedEntityUri));\n if (tempEntity) {\n // awaiting updated structure from handleAddDefaultValues\n yield take(DependentLookupsActions.DEPENDENT_LOOKUPS_STRUCTURE_SET);\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n const updatedStructure = yield call(\n addTemporaryEntitiesChainToDependentLookupsStructure,\n structure,\n connectedEntityUri\n );\n yield put(dependentLookupsStructureSet(updatedStructure));\n }\n}\n\nexport function* handleSetRelationType(action: ReturnType<typeof setRelationType>) {\n const relationUri: string = action.payload.relationUri;\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n const updatedStructure = removeValuesFromDependentLookups({\n structure,\n uri: relationUri\n });\n yield put(dependentLookupsStructureSet(updatedStructure));\n // relation attributes default values filling occurs in handleAddDefaultValues\n}\n\nexport function* handleCloseRelationEditor(action: ReturnType<typeof closeRelationEditor>) {\n const viewId: string = action.payload.id;\n const relationUri: string = action.payload.relationUri;\n const openViewIds = yield select(selectors.getViewIdsForOpenRelation, relationUri);\n if (openViewIds.length === 0) {\n // if all relation editors for this relationUri are closed\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n let updatedStructure = removeValuesFromDependentLookups({\n structure,\n uri: relationUri\n });\n const connections = yield select(selectors.getConnectionsWithDraftsByViewId, viewId);\n const connection: Connection = findConnectionByRelationUri(connections, relationUri);\n const connectedEntityUri = getEntityUriFromConnection(connection);\n if (isTempUri(connectedEntityUri)) {\n updatedStructure = yield call(\n removeTemporaryEntitiesChainFromDependentLookupsStructure,\n updatedStructure,\n connectedEntityUri\n );\n }\n yield put(dependentLookupsStructureSet(updatedStructure));\n }\n}\n\nexport function* handleCreateEntitySaga() {\n yield takeEvery(ModifiedEntitiesActions.MODIFIED_ENTITY_CREATED, handleCreateEntity);\n}\nexport function* handleDeleteEntitySaga() {\n yield takeEvery(ModifiedEntitiesActions.MODIFIED_ENTITY_DELETED, handleDeleteEntity);\n}\nexport function* handleAddDefaultValuesSaga() {\n yield takeEvery(ProfileActions.ADD_DEFAULT_VALUES, handleAddDefaultValues);\n}\nexport function* handleAddAttributesSaga() {\n yield takeEvery(ProfileActions.ADD_ATTRIBUTES, handleAddAttributes);\n}\nexport function* handleModifyAttributeSaga() {\n yield takeEvery(ProfileActions.MODIFY_ATTRIBUTE, handleModifyAttribute);\n}\nexport function* handleRemoveAttributeSaga() {\n yield takeEvery(ProfileActions.REMOVE_ATTRIBUTE, handleRemoveAttribute);\n}\nexport function* handleOpenRelationEditorSaga() {\n yield takeEvery(RelationsActions.OPEN_RELATION_EDITOR, handleOpenRelationEditor);\n}\nexport function* handleSetRelationTypeSaga() {\n yield takeEvery(RelationsActions.SET_RELATION_TYPE, handleSetRelationType);\n}\nexport function* handleCloseRelationEditorSaga() {\n yield takeEvery(RelationsActions.CLOSE_RELATION_EDITOR, handleCloseRelationEditor);\n}\n\nconst sagas = [\n handleCreateEntitySaga,\n handleDeleteEntitySaga,\n handleAddDefaultValuesSaga,\n handleAddAttributesSaga,\n handleModifyAttributeSaga,\n handleRemoveAttributeSaga,\n handleOpenRelationEditorSaga,\n handleSetRelationTypeSaga,\n handleCloseRelationEditorSaga\n];\n\nexport default sagas;\n","import {\n clearEntity,\n entityCreationRequested,\n entityLoaded,\n entityRemoveRequested,\n entityCloneRequested,\n loadEntity,\n setDefaultProfilePic,\n entityCreationWithAuthoringRequested,\n authoringDraftEntitiesLoaded\n} from './actions';\nimport {addNextPageOfAttributeValues} from '../actions';\n\nexport enum EntityActions {\n ENTITY_LOADED = 'ENTITY_LOADED',\n DEFAULT_PROFILE_PIC_SET = 'DEFAULT_PROFILE_PIC_SET',\n LOAD_ENTITY = 'LOAD_ENTITY',\n ENTITY_CREATION_REQUESTED = 'ENTITY_CREATION_REQUESTED',\n ENTITY_CREATION_WITH_AUTHORING_REQUESTED = 'ENTITY_CREATION_WITH_AUTHORING_REQUESTED',\n ENTITY_REMOVE_REQUESTED = 'ENTITY_REMOVE_REQUESTED',\n CLEAR_ENTITY = 'CLEAR_ENTITY',\n CLONE_ENTITY = 'CLONE_ENTITY',\n ENTITY_AUTHORING_DRAFT_ENTITIES_LOADED = 'ENTITY_AUTHORING_DRAFT_ENTITIES_LOADED'\n}\n\nexport type EntityActionsType =\n | ReturnType<typeof setDefaultProfilePic>\n | ReturnType<typeof entityLoaded>\n | ReturnType<typeof loadEntity>\n | ReturnType<typeof entityCreationRequested>\n | ReturnType<typeof addNextPageOfAttributeValues>\n | ReturnType<typeof entityRemoveRequested>\n | ReturnType<typeof entityCloneRequested>\n | ReturnType<typeof clearEntity>\n | ReturnType<typeof entityCreationWithAuthoringRequested>\n | ReturnType<typeof authoringDraftEntitiesLoaded>;\n","import {Entity, ImageAttributeValue, BaseCloneAction} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {EntityActions} from '../constants';\n\nexport const entityLoaded = createStandardAction<EntityActions.ENTITY_LOADED, Entity>(EntityActions.ENTITY_LOADED);\nexport const setDefaultProfilePic = createStandardAction<\n EntityActions.DEFAULT_PROFILE_PIC_SET,\n ImageAttributeValue | string\n>(EntityActions.DEFAULT_PROFILE_PIC_SET);\n\nexport const loadEntity = createStandardAction<EntityActions.LOAD_ENTITY, {viewId?: string; uri: string}>(\n EntityActions.LOAD_ENTITY\n);\n\nexport const entityCreationRequested = createStandardAction<\n EntityActions.ENTITY_CREATION_REQUESTED,\n {entityTypeUri: string}\n>(EntityActions.ENTITY_CREATION_REQUESTED);\n\nexport const entityCreationWithAuthoringRequested = createStandardAction<\n EntityActions.ENTITY_CREATION_WITH_AUTHORING_REQUESTED,\n {entityTypeUri: string}\n>(EntityActions.ENTITY_CREATION_WITH_AUTHORING_REQUESTED);\n\nexport const authoringDraftEntitiesLoaded = createStandardAction<\n EntityActions.ENTITY_AUTHORING_DRAFT_ENTITIES_LOADED,\n {mainEntityUri: string; tempEntities: Entity[]}\n>(EntityActions.ENTITY_AUTHORING_DRAFT_ENTITIES_LOADED);\n\nexport const entityRemoveRequested = createStandardAction<EntityActions.ENTITY_REMOVE_REQUESTED, {entityUri: string}>(\n EntityActions.ENTITY_REMOVE_REQUESTED\n);\n\ntype CloneActionPayload = {data: BaseCloneAction; entityUri: string};\n\nexport const entityCloneRequested = createStandardAction<EntityActions.CLONE_ENTITY, CloneActionPayload>(\n EntityActions.CLONE_ENTITY\n);\n\nexport const clearEntity = createStandardAction<EntityActions.CLEAR_ENTITY, null>(EntityActions.CLEAR_ENTITY);\n","import {createSelector} from 'reselect';\nimport {Entity, getEntityUriForLink} from '@reltio/mdm-sdk';\n\nexport const getUri = (state: Entity) => state?.uri;\nexport const getDataTenant = (state: Entity) => state?.dataTenant;\nexport const getUriWithDataTenant = createSelector(getDataTenant, getUri, (dataTenant: string, uri: string) =>\n getEntityUriForLink({dataTenant, uri} as Entity)\n);\n","import {Entity, getAttributeSource} from '@reltio/mdm-sdk';\nimport {__, concat, defaultTo, lensPath, over, pipe} from 'ramda';\n\nimport {EntityActions, EntityActionsType} from '../constants';\nimport {ProfileActions} from '../../actions/constants';\n\nconst initState = {} as Entity;\nconst entityReducer = (state = initState, action: EntityActionsType): Entity => {\n switch (action.type) {\n case EntityActions.ENTITY_LOADED:\n return action.payload;\n case EntityActions.DEFAULT_PROFILE_PIC_SET: {\n if (typeof action.payload === 'object' && action.payload !== null) {\n return {\n ...state,\n defaultProfilePic: action.payload.uri,\n defaultProfilePicValue: action.payload\n };\n }\n return state;\n }\n case ProfileActions.ADD_NEXT_PAGE_ATTRIBUTE_VALUES: {\n const {parentUri, attributeTypeName, attributeTypeUri, values} = action.payload;\n const attributeSource = getAttributeSource(attributeTypeUri);\n if (parentUri === state.uri) {\n const lens = lensPath([attributeSource, attributeTypeName]);\n return over(lens, pipe(defaultTo([]), concat(__, values)), state);\n } else {\n return state;\n }\n }\n case EntityActions.CLEAR_ENTITY: {\n return initState;\n }\n default:\n return state;\n }\n};\n\nexport default entityReducer;\n","import {AttributeError} from '@reltio/mdm-sdk';\nimport {errorDeactivated, errorsSet} from './actions';\nimport {removeAttribute} from '../actions';\nimport {modeUpdated} from '../mode/actions';\nimport {entityLoaded} from '../entity/actions';\n\nexport type ErrorsState = AttributeError[];\n\nexport enum ErrorsActions {\n ERRORS_SET = 'ERRORS_SET',\n REMOVE_ERROR = 'REMOVE_ERROR',\n ERROR_DEACTIVATED = 'ERROR_DEACTIVATED'\n}\n\nexport type ErrorsActionsType =\n | ReturnType<typeof errorDeactivated>\n | ReturnType<typeof errorsSet>\n | ReturnType<typeof removeAttribute>\n | ReturnType<typeof modeUpdated>\n | ReturnType<typeof entityLoaded>;\n","import {allPass, filter, isEmpty, join, map, not, pipe, prop, propEq} from 'ramda';\nimport {AttributeError, getCachedActiveErrorsForAttributesPager} from '@reltio/mdm-sdk';\nimport {ErrorsState} from '../constants';\n\nexport const getAttributeTypeErrors = (state: ErrorsState, parentUri: string, attributeTypeUri: string): string => {\n return pipe(\n filter(\n allPass([\n propEq('parentUri', parentUri),\n propEq('attributeTypeUri', attributeTypeUri),\n pipe(prop('uri'), isEmpty)\n ])\n ),\n map(prop('message')),\n join('. ')\n )(state);\n};\n\nexport const getAttributesErrors = (\n state: ErrorsState,\n parentUri: string,\n attributeTypeUri: string\n): AttributeError[] =>\n filter(\n allPass([\n propEq('parentUri', parentUri),\n propEq('attributeTypeUri', attributeTypeUri),\n pipe(prop('uri'), isEmpty, not)\n ])\n )(state);\n\nexport {getCachedActiveErrorsForAttributesPager as getActiveErrorsForAttributesPager};\n","import {AttributeError} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {ErrorsActions} from '../constants';\n\nexport const errorDeactivated = createStandardAction<ErrorsActions.ERROR_DEACTIVATED, string>(\n ErrorsActions.ERROR_DEACTIVATED\n);\n\nexport const errorsSet = createStandardAction<ErrorsActions.ERRORS_SET, AttributeError[]>(ErrorsActions.ERRORS_SET);\n","import {AttributeError, getErrorId, areOneHierarchyUris, isViewMode} from '@reltio/mdm-sdk';\nimport {assoc, lensPath, over} from 'ramda';\nimport {ErrorsActions, ErrorsActionsType, ErrorsState} from '../constants';\nimport {ProfileActions} from '../../actions/constants';\nimport {ModeActions} from '../../mode/constants';\nimport {EntityActions} from '../../entity/constants';\n\nconst initState: ErrorsState = [];\n\nconst errorsReducer = (state = initState, action: ErrorsActionsType): AttributeError[] => {\n switch (action.type) {\n case ErrorsActions.ERRORS_SET: {\n return action.payload;\n }\n case ErrorsActions.ERROR_DEACTIVATED: {\n const id = action.payload;\n const errorIndex = state.findIndex((error) => getErrorId(error) === id);\n const errorL = lensPath([errorIndex]);\n return over(errorL, assoc('deactivated', true), state);\n }\n case ProfileActions.REMOVE_ATTRIBUTE: {\n const {uri} = action.payload;\n return state.map((error) =>\n error.uri === uri || areOneHierarchyUris(error.parentUri, uri)\n ? {\n ...error,\n deactivated: true\n }\n : error\n );\n }\n case ModeActions.MODE_UPDATED: {\n const {mode, silent} = action.payload;\n return isViewMode(mode) && !silent ? initState : state;\n }\n case EntityActions.ENTITY_LOADED: {\n return initState;\n }\n default:\n return state;\n }\n};\n\nexport default errorsReducer;\n","import {UIActions} from '../../ui/constants';\nimport {\n clearHistoryDiff,\n clearHistoryEvent,\n setHistoryDiff,\n setHistoryEvent,\n setHistoryMode,\n setHistorySlice\n} from './actions';\n\nexport enum HistoryActions {\n HISTORY_DIFF_SET = 'HISTORY_DIFF_SET',\n HISTORY_DIFF_CLEARED = 'HISTORY_DIFF_CLEARED',\n HISTORY_EVENT_SET = 'HISTORY_EVENT_SET',\n HISTORY_EVENT_CLEARED = 'HISTORY_EVENT_CLEARED',\n HISTORY_SLICE_SET = 'HISTORY_SLICE_SET',\n HISTORY_MODE_SET = 'HISTORY_MODE_SET'\n}\n\nexport type HistoryActionsTypes =\n | ReturnType<typeof setHistoryDiff>\n | ReturnType<typeof clearHistoryDiff>\n | ReturnType<typeof setHistoryEvent>\n | ReturnType<typeof clearHistoryEvent>\n | ReturnType<typeof setHistorySlice>\n | ReturnType<typeof setHistoryMode>\n | {type: UIActions.OPEN_ENTITY}\n | {type: UIActions.NEW_ENTITY_SHOWN};\n","import {HistoryDiff, HistoryEvent, HistoryMode, HistorySlice} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {HistoryActions} from '../constants';\n\nexport const setHistoryDiff = createStandardAction<HistoryActions.HISTORY_DIFF_SET, HistoryDiff>(\n HistoryActions.HISTORY_DIFF_SET\n);\n\nexport const clearHistoryDiff = createStandardAction<HistoryActions.HISTORY_DIFF_CLEARED, null>(\n HistoryActions.HISTORY_DIFF_CLEARED\n);\n\nexport const setHistoryEvent = createStandardAction<HistoryActions.HISTORY_EVENT_SET, HistoryEvent>(\n HistoryActions.HISTORY_EVENT_SET\n);\n\nexport const clearHistoryEvent = createStandardAction<HistoryActions.HISTORY_EVENT_CLEARED, null>(\n HistoryActions.HISTORY_EVENT_CLEARED\n);\n\nexport const setHistorySlice = createStandardAction<HistoryActions.HISTORY_SLICE_SET, HistorySlice>(\n HistoryActions.HISTORY_SLICE_SET\n);\n\nexport const setHistoryMode = createStandardAction<HistoryActions.HISTORY_MODE_SET, HistoryMode>(\n HistoryActions.HISTORY_MODE_SET\n);\n","import {isEmptyValue, History} from '@reltio/mdm-sdk';\n\nexport const getHistoryDiff = (state: History) => state.diff;\nexport const getHistoryEvent = (state: History) => state.event;\nexport const getHistorySlice = (state: History) => state.slice;\nexport const getIsHistoryModeEnabled = (state: History) => !isEmptyValue(state.slice);\nexport const getHistoryMode = (state: History) => state.mode;\n","import {HistoryActions, HistoryActionsTypes} from '../constants';\nimport {UIActions} from '../../../ui/constants';\nimport {History, HistoryMode} from '@reltio/mdm-sdk';\n\nconst initialState: History = {mode: HistoryMode.Current};\n\nconst historyReducer = (state = initialState, action: HistoryActionsTypes): History => {\n switch (action.type) {\n case HistoryActions.HISTORY_DIFF_SET: {\n return {...state, diff: action.payload};\n }\n case HistoryActions.HISTORY_DIFF_CLEARED: {\n return {...state, diff: initialState.diff};\n }\n case HistoryActions.HISTORY_EVENT_SET: {\n return {...state, event: action.payload};\n }\n case UIActions.NEW_ENTITY_SHOWN:\n case UIActions.OPEN_ENTITY:\n case HistoryActions.HISTORY_EVENT_CLEARED: {\n return {...initialState, mode: state.mode};\n }\n case HistoryActions.HISTORY_SLICE_SET: {\n return {...state, slice: action.payload};\n }\n case HistoryActions.HISTORY_MODE_SET: {\n return {...state, mode: action.payload};\n }\n default:\n return state;\n }\n};\n\nexport default historyReducer;\n","import {profileUpdateLastLoadedTime} from './actions';\nimport {entityLoaded} from '../entity/actions';\n\nexport enum ProfileLastLoadedTimeActions {\n PROFILE_LAST_LOADED_TIME_UPDATE = 'PROFILE_LAST_LOADED_TIME_UPDATE'\n}\n\nexport type ProfileLastLoadedTimeActionsTypes =\n | ReturnType<typeof profileUpdateLastLoadedTime>\n | ReturnType<typeof entityLoaded>;\n","import {createStandardAction} from '../../../utils';\nimport {ProfileLastLoadedTimeActions} from '../constants';\n\nexport const profileUpdateLastLoadedTime = createStandardAction<\n ProfileLastLoadedTimeActions.PROFILE_LAST_LOADED_TIME_UPDATE,\n undefined\n>(ProfileLastLoadedTimeActions.PROFILE_LAST_LOADED_TIME_UPDATE);\n","import {ProfileLastLoadedTimeActions, ProfileLastLoadedTimeActionsTypes} from '../constants';\nimport {EntityActions} from '../../entity/constants';\n\nconst initState = null;\nconst lastLoadedTimeReducer = (state = initState, action: ProfileLastLoadedTimeActionsTypes): number => {\n switch (action.type) {\n case ProfileLastLoadedTimeActions.PROFILE_LAST_LOADED_TIME_UPDATE:\n case EntityActions.ENTITY_LOADED: {\n return Date.now();\n }\n default:\n return state;\n }\n};\n\nexport default lastLoadedTimeReducer;\n","import {lookupsForTypeResolved, lookupsListResolved, lookupsLoaded} from './actions';\n\nexport enum LookupsActions {\n LOOKUPS_LOADED = 'LOOKUPS_LOADED',\n LOOKUPS_FOR_TYPE_RESOLVED = 'LOOKUPS_FOR_TYPE_RESOLVED',\n LOOKUPS_LIST_RESOLVED = 'LOOKUPS_LIST_RESOLVED'\n}\n\nexport type LookupsActionsTypes =\n | ReturnType<typeof lookupsLoaded>\n | ReturnType<typeof lookupsForTypeResolved>\n | ReturnType<typeof lookupsListResolved>\n | {type: 'UI_RESET'}\n","import {Lookups, LookupsForTypeResolvedPayload} from '@reltio/mdm-sdk';\nimport {LookupsActions} from '../constants';\nimport {createStandardAction} from '../../../utils';\n\nexport const lookupsLoaded = createStandardAction<LookupsActions.LOOKUPS_LOADED, Lookups>(\n LookupsActions.LOOKUPS_LOADED\n);\n\nexport const lookupsForTypeResolved = createStandardAction<\n LookupsActions.LOOKUPS_FOR_TYPE_RESOLVED,\n LookupsForTypeResolvedPayload\n>(LookupsActions.LOOKUPS_FOR_TYPE_RESOLVED);\n\nexport const lookupsListResolved = createStandardAction<LookupsActions.LOOKUPS_LIST_RESOLVED, Lookups[]>(\n LookupsActions.LOOKUPS_LIST_RESOLVED\n);\n","import {Lookups} from '@reltio/mdm-sdk';\nimport {LookupsActions, LookupsActionsTypes} from '../constants';\n\nconst initState: Lookups = {};\nconst lookupsReducer = (state = initState, action: LookupsActionsTypes): Lookups => {\n switch (action.type) {\n case LookupsActions.LOOKUPS_LOADED: {\n return action.payload;\n }\n case LookupsActions.LOOKUPS_FOR_TYPE_RESOLVED: {\n const {type, values} = action.payload;\n return {\n ...state,\n [type]: {\n ...state[type],\n ...values\n }\n };\n }\n case LookupsActions.LOOKUPS_LIST_RESOLVED: {\n const lookupsList = action.payload;\n return lookupsList.reduce((state, lookupData) => {\n const types = Object.keys(lookupData);\n return types.reduce(\n (state, type) => ({\n ...state,\n [type]: {\n ...state[type],\n ...lookupData[type]\n }\n }),\n state\n );\n }, state);\n }\n case 'UI_RESET':\n return {...initState};\n default:\n return state;\n }\n};\n\nexport default lookupsReducer;\n","import {Mode} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {ModeActions} from '../constants';\n\nexport const modeUpdated = (mode: Mode, silent?: boolean) => ({\n type: ModeActions.MODE_UPDATED,\n payload: {mode, silent}\n});\n\nexport const modeCancelEditing = createStandardAction<ModeActions.MODE_CANCEL_EDITING, null>(\n ModeActions.MODE_CANCEL_EDITING\n);\nexport const modeEditingCanceled = createStandardAction<ModeActions.MODE_EDITING_CANCELED, null>(\n ModeActions.MODE_EDITING_CANCELED\n);\n","import {isSuggestMode, isEditMode, isViewMode, isEditableMode} from '@reltio/mdm-sdk';\n\nexport const getIsSuggestMode = isSuggestMode;\nexport const getIsEditMode = isEditMode;\nexport const getIsViewMode = isViewMode;\nexport const getIsEditableMode = isEditableMode;\n","import {Mode} from '@reltio/mdm-sdk';\nimport {ModeActions, ModeActionsTypes} from '../constants';\n\nconst initState = Mode.Viewing;\n\nconst modeReducer = (state = initState, action: ModeActionsTypes): Mode => {\n switch (action.type) {\n case ModeActions.MODE_UPDATED: {\n return action.payload.mode;\n }\n default:\n return state;\n }\n};\n\nexport default modeReducer;\n","import {Entity, ImageAttributeValue} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {ModifiedEntitiesActions} from '../constants';\n\ntype SetDefaultProfilePicPayload = {\n entityUri: string;\n value: ImageAttributeValue;\n};\n\ntype CleanseLoadingPayloadType = {\n isLoading: boolean;\n};\n\nexport const entityCreated = createStandardAction<ModifiedEntitiesActions.MODIFIED_ENTITY_CREATED, Entity>(\n ModifiedEntitiesActions.MODIFIED_ENTITY_CREATED\n);\nexport const entityDeleted = createStandardAction<ModifiedEntitiesActions.MODIFIED_ENTITY_DELETED, string>(\n ModifiedEntitiesActions.MODIFIED_ENTITY_DELETED\n);\nexport const setDefaultProfilePic = createStandardAction<\n ModifiedEntitiesActions.MODIFIED_ENTITY_DEFAULT_PROFILE_PIC_SET,\n SetDefaultProfilePicPayload\n>(ModifiedEntitiesActions.MODIFIED_ENTITY_DEFAULT_PROFILE_PIC_SET);\n\nexport const modifiedEntitiesReset = createStandardAction<ModifiedEntitiesActions.MODIFIED_ENTITIES_RESET, null>(\n ModifiedEntitiesActions.MODIFIED_ENTITIES_RESET\n);\n\nexport const cleanseLoading = createStandardAction<ModifiedEntitiesActions.CLEANSE_LOADING, CleanseLoadingPayloadType>(\n ModifiedEntitiesActions.CLEANSE_LOADING\n);\n","import {ModifiedEntitiesState} from '../constants';\n\nexport const getModifiedEntity = (state: ModifiedEntitiesState, uri: string) => uri && state[uri];\nexport const getModifiedEntityDefaultProfilePic = (state: ModifiedEntitiesState, uri: string) =>\n uri && state[uri] && state[uri].defaultProfilePic;\n","import {\n addEntitySpecialAttribute,\n addAttribute,\n AttributeValue,\n editEntitySpecialAttribute,\n editAttribute,\n getAttributeSource,\n getEditableAttributeTypeSubAttributes,\n getBaseUri,\n isEntityUri,\n removeEntitySpecialAttribute,\n removeAttribute,\n isEntitySpecialAttrType,\n addDefaultValuesToComplexAttribute,\n isViewMode\n} from '@reltio/mdm-sdk';\nimport {concat, defaultTo, lensPath, lensProp, omit, over, pipe, __} from 'ramda';\nimport {ProfileActions} from '../../actions/constants';\nimport {ModifiedEntitiesActions, ModifiedEntitiesActionsTypes, ModifiedEntitiesState} from '../constants';\nimport {ModeActions} from '../../mode/constants';\n\nconst initState = {} as ModifiedEntitiesState;\n\nconst modifiedEntitiesReducer = (state = initState, action: ModifiedEntitiesActionsTypes): ModifiedEntitiesState => { //NOSONAR\n switch (action.type) {\n case ModifiedEntitiesActions.MODIFIED_ENTITY_CREATED: {\n const entity = action.payload;\n return {...state, [entity.uri]: entity};\n }\n\n case ModifiedEntitiesActions.MODIFIED_ENTITY_DELETED: {\n const uri = action.payload;\n return omit([uri], state);\n }\n\n case ModifiedEntitiesActions.MODIFIED_ENTITIES_RESET: {\n return initState;\n }\n\n case ModeActions.MODE_UPDATED: {\n const {mode, silent} = action.payload;\n return isViewMode(mode) && !silent ? initState : state;\n }\n\n case ModifiedEntitiesActions.MODIFIED_ENTITY_DEFAULT_PROFILE_PIC_SET: {\n const {entityUri, value} = action.payload;\n if (entityUri) {\n return {\n ...state,\n [entityUri]: {\n ...state[entityUri],\n defaultProfilePic: value.uri,\n defaultProfilePicValue: value\n }\n };\n }\n return state;\n }\n\n case ProfileActions.ADD_ATTRIBUTES: {\n const attributes = action.payload;\n return attributes.reduce((state, attribute) => {\n const {attributeType, parentUri, index} = attribute;\n const entityUri = getBaseUri(parentUri);\n if (isEntityUri(entityUri)) {\n const entity = state[entityUri];\n //DEBUG\n if (!state[entityUri]) {\n console.error(`ADD_ATTRIBUTES. parentUri - ${parentUri}, state: ${JSON.stringify(state)}`);\n }\n if (isEntitySpecialAttrType(attributeType)) {\n return {\n ...state,\n [entityUri]: addEntitySpecialAttribute({entity, attributeType})\n };\n } else {\n return {\n ...state,\n [entityUri]: addAttribute({\n entity,\n attributeType,\n parentUri,\n index\n })\n };\n }\n } else {\n return state;\n }\n }, state);\n }\n\n case ProfileActions.ADD_NEXT_PAGE_ATTRIBUTE_VALUES: {\n const {parentUri, attributeTypeName, attributeTypeUri, values} = action.payload;\n const attributeSource = getAttributeSource(attributeTypeUri);\n if (isEntityUri(parentUri) && parentUri in state) {\n const lens = lensPath([parentUri, attributeSource, attributeTypeName]);\n\n return over(lens, pipe(defaultTo([]), concat(__, values)), state);\n } else {\n return state;\n }\n }\n\n case ProfileActions.MODIFY_ATTRIBUTE: {\n const {attributeType, uri, value} = action.payload;\n const entityUri = getBaseUri(uri);\n if (isEntityUri(entityUri)) {\n const entity = state[entityUri];\n //DEBUG\n if (!state[entityUri]) {\n console.error(`MODIFY_ATTRIBUTE. uri - ${uri}, state: ${JSON.stringify(state)}`);\n }\n if (isEntitySpecialAttrType(attributeType)) {\n return {\n ...state,\n [entityUri]: editEntitySpecialAttribute({\n entity,\n attributeType,\n value: value as number | string[]\n })\n };\n } else {\n return {\n ...state,\n [entityUri]: editAttribute({\n entity,\n attributeType,\n uri,\n value: value as Partial<AttributeValue>\n })\n };\n }\n } else {\n return state;\n }\n }\n\n case ProfileActions.REMOVE_ATTRIBUTE: {\n const {attributeType, uri} = action.payload;\n const entityUri = getBaseUri(uri);\n if (isEntityUri(uri)) {\n const entity = state[entityUri];\n //DEBUG\n if (!state[entityUri]) {\n console.error(`REMOVE_ATTRIBUTE. uri - ${uri}, state: ${JSON.stringify(state)}`);\n }\n if (isEntitySpecialAttrType(attributeType)) {\n return {\n ...state,\n [entityUri]: removeEntitySpecialAttribute({entity, attributeType})\n };\n } else {\n return {\n ...state,\n [entityUri]: removeAttribute({entity, attributeType, uri})\n };\n }\n } else {\n return state;\n }\n }\n\n case ProfileActions.ADD_DEFAULT_VALUES: {\n const {attributeType, parentUri, metadata, mode} = action.payload;\n const entityUri = getBaseUri(parentUri);\n if (isEntityUri(entityUri)) {\n const subAttributes = getEditableAttributeTypeSubAttributes(metadata, attributeType);\n return over(\n lensProp(entityUri),\n addDefaultValuesToComplexAttribute({attributeType, subAttributes, metadata, mode, parentUri}),\n state\n );\n } else {\n return state;\n }\n }\n\n default:\n return state;\n }\n};\n\nexport default modifiedEntitiesReducer;\n","import {\n cleanseData,\n Entity,\n getBaseUri,\n prepareCleansedAttributes,\n getAttributeSource,\n getEntityType,\n getPagedEntity,\n getRequestErrorMessage,\n CLEANSE_STATUS_ERROR_PATH,\n hasCleanseStatus,\n isUnverifiedCleanse,\n getCleanseType,\n hasCleanseTypeInEntityType,\n getCleanseConfigurationAttributes,\n CleanseConfiguration,\n Metadata,\n TEntityType\n} from '@reltio/mdm-sdk';\nimport {intersection, map, path, pathOr, pipe, prop} from 'ramda';\nimport {call, put, select, takeEvery} from 'redux-saga/effects';\nimport * as selectors from '../../../selectors';\nimport {\n addNextPageOfAttributeValues,\n modifyAttribute,\n processNextPageOfAttributeValues,\n requestNextPageOfAttributeValues\n} from '../../actions';\nimport {entityCreated, cleanseLoading} from '../../modifiedEntities/actions';\nimport {ProfileActions} from '../../actions/constants';\nimport {getEntity} from '../../../selectors';\nimport i18n from 'ui-i18n';\nimport {errorSet} from '../../../ui/actions';\n\nexport function* processNextPageValuesAdding(action: ReturnType<typeof processNextPageOfAttributeValues>) {\n const {values, parentUri, attributeTypeUri, attributeTypeName} = action.payload;\n let valuesToAdd = values;\n const entity: Entity = yield select(getEntity);\n if (parentUri === entity.uri) {\n const attributeSource = getAttributeSource(attributeTypeUri);\n const entityValuesUris: string[] = pipe(\n pathOr([], [attributeSource, attributeTypeName]),\n map(prop('uri'))\n )(entity);\n const existingValuesUris: string[] = intersection(entityValuesUris, values.map(prop('uri')));\n valuesToAdd = values.filter((value) => !existingValuesUris.includes(value.uri));\n }\n if (valuesToAdd.length) {\n yield put(addNextPageOfAttributeValues({...action.payload, values: valuesToAdd}));\n }\n}\n\nexport function* requestOptions() {\n const apiPath = yield select(selectors.getApiPath);\n const tenant = yield select(selectors.getTenant);\n\n return {apiPath, tenant};\n}\n\nexport function* requestAttributeValues(action: ReturnType<typeof requestNextPageOfAttributeValues>) {\n const {attributeTypeName, attributeTypeUri} = action.payload;\n const options = yield call(requestOptions);\n try {\n const json = yield call(getPagedEntity, {...action.payload, ...options});\n const attributeSource = getAttributeSource(attributeTypeUri);\n const values = pathOr([], [attributeSource, attributeTypeName], json);\n yield put(processNextPageOfAttributeValues({...action.payload, values}));\n } catch (error) {\n console.warn(error);\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n}\n\nexport function* handleProfileCleanse(action: ReturnType<typeof modifyAttribute>) {\n const {attributeType, value, uri} = action.payload;\n const attributeTypeUri = attributeType.uri;\n const baseTypeUri = getBaseUri(attributeTypeUri);\n const cleanseConfiguration: CleanseConfiguration = yield select(\n selectors.getCleanseConfigurationByEntityType,\n baseTypeUri\n );\n if (!cleanseConfiguration) {\n return;\n }\n const metadata: Metadata = yield select(selectors.getMetadata);\n const entityType: TEntityType = getEntityType(metadata, baseTypeUri);\n const infos = entityType?.cleanseConfig?.infos;\n if (!infos) {\n return;\n }\n const cleanseConfigurationType = getCleanseType(cleanseConfiguration, attributeTypeUri);\n if (!hasCleanseTypeInEntityType(cleanseConfigurationType, infos)) {\n return;\n }\n const cleanseConfigurationAttributes = getCleanseConfigurationAttributes(cleanseConfiguration);\n if (cleanseConfigurationAttributes?.includes(attributeTypeUri)) {\n yield put(cleanseLoading({isLoading: true}));\n try {\n const cleansedEntity: Entity = yield call(cleanseData, {\n cleanseType: cleanseConfigurationType.split('/cleanse/infos/')[1],\n type: baseTypeUri,\n attributes: {\n [attributeType.name]: [\n {\n type: attributeTypeUri as string,\n value: value as string\n }\n ]\n }\n });\n const baseUri = getBaseUri(uri);\n const modifiedEntity = yield select(selectors.getModifiedEntity, baseUri);\n\n if (hasCleanseStatus(cleansedEntity)) {\n if (isUnverifiedCleanse(cleansedEntity)) {\n yield put(errorSet(path(CLEANSE_STATUS_ERROR_PATH, cleansedEntity)));\n } else if (modifiedEntity) {\n const {attributes: cleansedAttributes} = cleansedEntity;\n const attributesToUpdate = prepareCleansedAttributes(baseUri, cleansedAttributes);\n yield put(\n entityCreated({\n ...modifiedEntity,\n attributes: {...modifiedEntity.attributes, ...attributesToUpdate}\n })\n );\n }\n }\n } catch (error) {\n console.warn(error);\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n\n yield put(cleanseLoading({isLoading: false}));\n }\n}\n\nexport function* requestAttributeValuesSaga() {\n yield takeEvery(ProfileActions.REQUEST_NEXT_PAGE_ATTRIBUTE_VALUES, requestAttributeValues);\n}\n\nexport function* processNextPageValuesAddingSaga() {\n yield takeEvery(ProfileActions.PROCESS_NEXT_PAGE_ATTRIBUTE_VALUES, processNextPageValuesAdding);\n}\n\nexport function* handleProfileCleansingSaga() {\n yield takeEvery(ProfileActions.MODIFY_ATTRIBUTE, handleProfileCleanse);\n}\n\nconst sagas = [requestAttributeValuesSaga, processNextPageValuesAddingSaga, handleProfileCleansingSaga];\n\nexport default sagas;\n","import {Connection, Entity, IgnoredRelationData, RelationsLoadedPayload, CompactRelationType} from '@reltio/mdm-sdk';\nimport {curry} from 'ramda';\nimport {SecondLevelRelationsPayload} from '../../../types/profile/relations';\nimport {createStandardAction} from '../../../utils';\nimport {RelationsActions} from '../constants';\n\nexport const relationsLoaded = createStandardAction<RelationsActions.RELATIONS_LOADED, RelationsLoadedPayload>(\n RelationsActions.RELATIONS_LOADED\n);\n\nexport const secondLevelRelationsLoaded = createStandardAction<\n RelationsActions.SECOND_LEVEL_RELATIONS_LOADED,\n SecondLevelRelationsPayload\n>(RelationsActions.SECOND_LEVEL_RELATIONS_LOADED);\n\nexport const removeRelation = curry((id: string, relationUri: string) => ({\n type: RelationsActions.REMOVE_RELATION,\n payload: {id, relationUri}\n}));\n\nexport const ignoreRelation = curry((id: string, ignoredRelationData: IgnoredRelationData) => ({\n type: RelationsActions.IGNORE_RELATION,\n payload: {id, ignoredRelationData}\n}));\n\nexport const addRelation = curry((id: string, connection: Connection) => ({\n type: RelationsActions.ADD_RELATION,\n payload: {id, connection}\n}));\n\nexport const editRelation = curry((id: string, connection: Connection) => ({\n type: RelationsActions.EDIT_RELATION,\n payload: {id, connection}\n}));\n\nexport const openRelationEditor = curry((id: string, connection: Connection) => ({\n type: RelationsActions.OPEN_RELATION_EDITOR,\n payload: {id, connection}\n}));\n\nexport const closeRelationEditor = curry((id: string, relationUri: string) => ({\n type: RelationsActions.CLOSE_RELATION_EDITOR,\n payload: {id, relationUri}\n}));\n\nexport const setRelationType = curry((id: string, relationUri: string, relationType: CompactRelationType) => ({\n type: RelationsActions.SET_RELATION_TYPE,\n payload: {id, relationUri, relationType}\n}));\n\nexport const setRelationEntity = curry((id: string, relationUri: string, entityInfo: Entity) => ({\n type: RelationsActions.SET_RELATION_ENTITY,\n payload: {id, relationUri, entityInfo}\n}));\n\nexport const setInitialInfo = curry((id: string, relationUri: string, tempEntity: Entity, connection: Connection) => ({\n type: RelationsActions.SET_INITIAL_INFO,\n payload: {id, relationUri, tempEntity, connection}\n}));\n","import {\n addEntitySpecialAttribute,\n addAttribute,\n addDefaultValuesToAttributes,\n applyRelationTypeObject,\n AttributeValue,\n editEntitySpecialAttribute,\n editAttribute,\n getAttributeTypeSubAttributes,\n getBaseUri,\n getRelationType,\n isActivenessAttrType,\n isRelationUri,\n isTempUri,\n removeEntitySpecialAttribute,\n removeAttribute,\n addDefaultValuesToComplexAttribute,\n getRelationUriFromConnection,\n RelationsState,\n getRelationsToEditPath,\n getRelationToAddPath,\n isEditableMode\n} from '@reltio/mdm-sdk';\nimport {\n always,\n append,\n assoc,\n assocPath,\n both,\n complement,\n compose,\n defaultTo,\n eqBy,\n equals,\n evolve,\n find,\n hasPath,\n isEmpty,\n isNil,\n lensPath,\n lensProp,\n map,\n omit,\n over,\n path,\n pathEq,\n pipe,\n prepend,\n propSatisfies,\n reject,\n set,\n unless,\n update,\n view,\n when,\n identity\n} from 'ramda';\nimport {ProfileActions} from '../../actions/constants';\nimport {EntityActions} from '../../entity/constants';\nimport {ModeActions} from '../../mode/constants';\nimport {getIsViewMode} from '../../mode/selectors';\nimport {RelationsActions, RelationsActionsTypes} from '../constants';\n\nconst initState = {} as RelationsState;\nconst initDraftsState = {\n removedUris: [],\n addedConnections: [],\n editedConnections: [],\n ignoredRelationData: []\n};\n\nconst getPathToEditingConnection = (viewId: string, relationUri: string, state: RelationsState) => {\n if (pathEq([...getRelationToAddPath(viewId), 'relation', 'relationUri'], relationUri, state)) {\n return getRelationToAddPath(viewId);\n } else {\n const relationsToEdit = path(getRelationsToEditPath(viewId), state) || [];\n const index = relationsToEdit.findIndex(pathEq(['relation', 'relationUri'], relationUri));\n return index >= 0 ? [...getRelationsToEditPath(viewId), index] : null;\n }\n};\n\nconst getRelationLens = (viewId: string, relationUri: string, state: RelationsState) => {\n const pathToRelation = getPathToEditingConnection(viewId, relationUri, state);\n return pathToRelation ? lensPath([...pathToRelation, 'relation']) : null;\n};\n\nconst getRelationObjectLens = pipe(getRelationLens, (relationsLens) => compose(relationsLens, lensProp('object')));\n\nconst relationsReducer = (state = initState, action: RelationsActionsTypes) => { //NOSONAR\n switch (action.type) {\n case EntityActions.ENTITY_LOADED:\n return {};\n\n case RelationsActions.RELATIONS_LOADED: {\n const {id, connections = [], total, mode} = action.payload;\n return pipe(\n assocPath([id, 'connections'], connections),\n assocPath([id, 'total'], total),\n when(\n both(complement(hasPath([id, 'drafts'])), always(isEditableMode(mode))),\n assocPath([id, 'drafts'], initDraftsState)\n )\n )(state);\n }\n\n case RelationsActions.SECOND_LEVEL_RELATIONS_LOADED: {\n const {id, connections, parentEntityUri, total} = action.payload;\n\n const newConnections = path([id, 'connections'], state).map((connection) => {\n const {entityUri} = connection.entity;\n\n if (entityUri === parentEntityUri) {\n return {\n ...connection,\n total,\n connections: connections.map((connection) => {\n return {\n ...connection,\n parentEntityUri\n };\n })\n };\n }\n\n return connection;\n });\n\n return assocPath([id, 'connections'], newConnections, state);\n }\n\n case ModeActions.MODE_UPDATED: {\n const {mode, silent} = action.payload;\n if (silent) return state;\n return map(\n getIsViewMode(mode)\n ? omit(['drafts', 'relationsToEdit', 'relationToAdd'])\n : assoc('drafts', initDraftsState),\n state\n );\n }\n\n case RelationsActions.REMOVE_RELATION: {\n const {id, relationUri} = action.payload;\n const hasRemovedUri = pipe(getRelationUriFromConnection, equals(relationUri));\n const connections = path([id, 'connections'], state);\n const needToAddRemovedUris =\n !isTempUri(relationUri) &&\n !connections?.some(\n (connection) => connection.suggested && connection.relation.relationUri === relationUri\n );\n return evolve(\n {\n [id]: {\n drafts: evolve({\n removedUris: needToAddRemovedUris ? append(relationUri) : identity,\n addedConnections: reject(hasRemovedUri),\n editedConnections: reject(hasRemovedUri)\n })\n }\n },\n state\n );\n }\n\n case RelationsActions.IGNORE_RELATION: {\n const {id, ignoredRelationData} = action.payload;\n\n return evolve(\n {\n [id]: {\n drafts: evolve({\n ignoredRelationData: append(ignoredRelationData)\n })\n }\n },\n state\n );\n }\n\n case RelationsActions.ADD_RELATION: {\n const {id, connection} = action.payload;\n const newConnection = omit(['isNew'], connection);\n return evolve(\n {\n [id]: pipe(\n when(propSatisfies(isNil, 'drafts'), assocPath(['drafts'], initDraftsState)),\n evolve({drafts: {addedConnections: prepend(newConnection)}})\n )\n },\n state\n );\n }\n\n case RelationsActions.EDIT_RELATION: {\n const {id, connection} = action.payload;\n const equalsConnection = eqBy(getRelationUriFromConnection, connection);\n const isNew = isTempUri(getRelationUriFromConnection(connection));\n\n if (isNew) {\n const updateConnection = (connections) => {\n const index = connections.findIndex(equalsConnection);\n return index >= 0 ? update(index, connection, connections) : connections;\n };\n\n return evolve(\n {\n [id]: {\n drafts: evolve({\n addedConnections: updateConnection\n })\n }\n },\n state\n );\n } else {\n const upsertConnection = (connections) => {\n const index = connections.findIndex(equalsConnection);\n return index >= 0 ? update(index, connection, connections) : [...connections, connection];\n };\n\n return evolve(\n {\n [id]: {\n drafts: evolve({\n editedConnections: upsertConnection\n })\n }\n },\n state\n );\n }\n }\n\n case RelationsActions.OPEN_RELATION_EDITOR: {\n const {id, connection} = action.payload;\n const isNew = connection.isNew;\n if (isNew) {\n const relationToAddPath = getRelationToAddPath(id);\n return path(relationToAddPath, state) ? state : assocPath(relationToAddPath, connection, state);\n } else {\n const relationsToEditL = lensPath(getRelationsToEditPath(id));\n const equalsConnection = eqBy(path(['relation', 'relationUri']), connection);\n return over(\n relationsToEditL,\n pipe(defaultTo([]), unless(find(equalsConnection), append(connection))),\n state\n );\n }\n }\n case RelationsActions.SET_INITIAL_INFO: {\n const {id, relationUri, tempEntity, connection} = action.payload;\n const pathToConnection = getPathToEditingConnection(id, relationUri, state);\n const initialInfo = {\n modifiedEntity: tempEntity,\n connection: connection\n };\n return assocPath([...pathToConnection, 'initial'], initialInfo, state);\n }\n\n case RelationsActions.CLOSE_RELATION_EDITOR: {\n const {id, relationUri} = action.payload;\n const hasRemovedUri = pathEq(['relation', 'relationUri'], relationUri);\n return evolve(\n {\n [id]: {\n relationToAdd: when(hasRemovedUri, always(null)),\n relationsToEdit: reject(hasRemovedUri)\n }\n },\n state\n );\n }\n\n case RelationsActions.SET_RELATION_TYPE: {\n const {id, relationUri, relationType} = action.payload;\n const pathToConnection = getPathToEditingConnection(id, relationUri, state);\n if (pathToConnection) {\n const pathToRelation = [...pathToConnection, 'relation'];\n const relationL = lensPath(pathToRelation);\n return over(relationL, applyRelationTypeObject(relationType), state);\n }\n return state;\n }\n\n case ProfileActions.ADD_ATTRIBUTES: {\n const attributes = action.payload;\n return attributes.reduce((state, attribute) => {\n const {attributeType, parentUri, index, viewId} = attribute;\n const relationUri = getBaseUri(parentUri);\n const relationLens = getRelationLens(viewId, relationUri, state);\n if (relationLens && isRelationUri(relationUri)) {\n if (isActivenessAttrType(attributeType)) {\n const relation = view(relationLens, state);\n const newRelation = addEntitySpecialAttribute({entity: relation, attributeType});\n return set(relationLens, newRelation, state);\n } else {\n const relationObjectLens = getRelationObjectLens(viewId, relationUri, state);\n const relationObject = view(relationObjectLens, state);\n //DEBUG\n if (!relationObject) {\n console.error(\n `relations.ADD_ATTRIBUTES. viewId - ${viewId}, relationUri - ${relationUri}, state: ${JSON.stringify(\n state\n )}`\n );\n }\n const newRelationObject = addAttribute({\n entity: relationObject,\n attributeType,\n parentUri,\n index\n });\n return set(relationObjectLens, newRelationObject, state);\n }\n } else {\n return state;\n }\n }, state);\n }\n\n case ProfileActions.ADD_NEXT_PAGE_ATTRIBUTE_VALUES: {\n const {parentUri, attributeTypeName, values, viewId} = action.payload;\n\n if (!isRelationUri(parentUri)) {\n return state;\n }\n\n const relationUri = getBaseUri(parentUri);\n const pathToRelation = getPathToEditingConnection(viewId, relationUri, state);\n\n const relationLens = lensPath([...pathToRelation, 'relation', 'object', 'attributes', attributeTypeName]);\n\n return over(relationLens, pipe(defaultTo([]), append(values)), state);\n }\n\n case ProfileActions.MODIFY_ATTRIBUTE: {\n const {attributeType, viewId, uri, value} = action.payload;\n const relationUri = getBaseUri(uri);\n const relationLens = getRelationLens(viewId, relationUri, state);\n if (relationLens && isRelationUri(relationUri)) {\n if (isActivenessAttrType(attributeType)) {\n const relation = view(relationLens, state);\n const newRelation = editEntitySpecialAttribute({\n entity: relation,\n attributeType,\n value: value as number\n });\n return set(relationLens, newRelation, state);\n } else {\n const relationObjectLens = getRelationObjectLens(viewId, relationUri, state);\n const relationObject = view(relationObjectLens, state);\n //DEBUG\n if (!relationObject) {\n console.error(\n `relations.MODIFY_ATTRIBUTE. viewId - ${viewId}, relationUri - ${relationUri}, state: ${JSON.stringify(\n state\n )}`\n );\n }\n const newRelationObject = editAttribute({\n entity: relationObject,\n attributeType,\n uri,\n value: value as Partial<AttributeValue>\n });\n return set(relationObjectLens, newRelationObject, state);\n }\n } else {\n return state;\n }\n }\n\n case ProfileActions.REMOVE_ATTRIBUTE: {\n const {attributeType, uri, viewId} = action.payload;\n const relationUri = getBaseUri(uri);\n const relationLens = getRelationLens(viewId, relationUri, state);\n if (relationLens && isRelationUri(relationUri)) {\n if (isActivenessAttrType(attributeType)) {\n const relation = view(relationLens, state);\n const newRelation = removeEntitySpecialAttribute({entity: relation, attributeType});\n return set(relationLens, newRelation, state);\n } else {\n const relationObjectLens = getRelationObjectLens(viewId, relationUri, state);\n const relationObject = view(relationObjectLens, state);\n //DEBUG\n if (!relationObject) {\n console.error(\n `relations.REMOVE_ATTRIBUTE. viewId - ${viewId}, relationUri - ${relationUri}, state: ${JSON.stringify(\n state\n )}`\n );\n }\n const newRelationObject = removeAttribute({entity: relationObject, attributeType, uri});\n return set(relationObjectLens, newRelationObject, state);\n }\n } else {\n return state;\n }\n }\n\n case RelationsActions.SET_RELATION_ENTITY: {\n const {id, relationUri, entityInfo} = action.payload;\n const pathToConnection = getPathToEditingConnection(id, relationUri, state);\n if (pathToConnection) {\n const pathToEntity = [...pathToConnection, 'entity'];\n const entityL = lensPath(pathToEntity);\n const {uri, label, type} = entityInfo;\n const newEntity = !isEmpty(entityInfo)\n ? {entityUri: uri, entityLabel: label, entityType: type, object: {uri, label, type}}\n : {};\n return set(entityL, newEntity, state);\n }\n return state;\n }\n\n case ProfileActions.ADD_DEFAULT_VALUES: {\n const {viewId, attributeType, parentUri, metadata, mode} = action.payload;\n const objectUri = getBaseUri(parentUri);\n if (isRelationUri(objectUri)) {\n const pathToConnection = getPathToEditingConnection(viewId, objectUri, state);\n if (pathToConnection) {\n if (attributeType) {\n const pathToObject = [...pathToConnection, 'relation', 'object'];\n const subAttributes = getAttributeTypeSubAttributes(metadata, attributeType);\n return over(\n lensPath(pathToObject),\n addDefaultValuesToComplexAttribute({\n attributeType,\n subAttributes,\n metadata,\n mode,\n parentUri\n }),\n state\n );\n } else {\n const pathToAttributes = [...pathToConnection, 'relation', 'object', 'attributes'];\n const pathToTypeUri = [...pathToConnection, 'relation', 'object', 'type'];\n const type = view(lensPath(pathToTypeUri), state);\n const {attributes: attributeTypes = []} = getRelationType(metadata, type);\n return over(\n lensPath(pathToAttributes),\n addDefaultValuesToAttributes({metadata, mode, attributeTypes, parentUri}),\n state\n );\n }\n } else {\n return state;\n }\n } else {\n return state;\n }\n }\n\n default:\n return state;\n }\n};\n\nexport default relationsReducer;\n","import {ProfileActionTypes} from '../actions/constants';\nimport {ModeActionsTypes} from '../mode/constants';\nimport {EntityActionsType} from '../entity/constants';\nimport * as treesActions from './actions';\n\nexport enum TreesActions {\n TREES_RESET_INITIAL_TREES = 'TREES_RESET_INITIAL_TREES',\n TREES_RESTORE_FROM_INITIAL_TREES = 'TREES_RESTORE_FROM_INITIAL_TREES',\n TREES_STATE_RESTORED = 'TREES_STATE_RESTORED',\n TREES_STATE_SAVED = 'TREES_STATE_SAVED',\n TREE_ACTIVENESS_DATE_CHANGED = 'TREE_ACTIVENESS_DATE_CHANGED',\n TREE_CHANGED = 'TREE_CHANGED',\n TREE_CHILDREN_LOADED = 'TREE_CHILDREN_LOADED',\n TREE_CHILDREN_LOADING = 'TREE_CHILDREN_LOADING',\n TREE_COMMANDS_CLEARED = 'TREE_COMMANDS_CLEARED',\n TREE_CURRENT_ENTITY_SHOWN = 'TREE_CURRENT_ENTITY_SHOWN',\n TREE_ENTITIES_MAPPING_LOADED = 'TREE_ENTITIES_MAPPING_LOADED',\n TREE_LOADED = 'TREE_LOADED',\n TREE_LOADED_WITH_ERROR = 'TREE_LOADED_WITH_ERROR',\n TREE_LOADING = 'TREE_LOADING',\n TREE_NODE_CREATED = 'TREE_NODE_CREATED',\n TREE_NODE_EDITED = 'TREE_NODE_EDITED',\n TREE_NODE_EDITING_APPLIED = 'TREE_NODE_EDITING_APPLIED',\n TREE_NODE_EDITING_CANCELED = 'TREE_NODE_EDITING_CANCELED',\n TREE_NODE_EDITING_STARTED = 'TREE_NODE_EDITING_STARTED',\n TREE_NODE_ENTITY_CHANGED = 'TREE_NODE_ENTITY_CHANGED',\n TREE_NODE_EXPANDED = 'TREE_NODE_EXPANDED',\n TREE_NODE_NEW_CHILD_EDITING_APPLIED = 'TREE_NODE_NEW_CHILD_EDITING_APPLIED',\n TREE_NODE_NEW_CHILD_EDITING_CANCELED = 'TREE_NODE_NEW_CHILD_EDITING_CANCELED',\n TREE_NODE_NEW_CHILD_EDITING_STARTED = 'TREE_NODE_NEW_CHILD_EDITING_STARTED',\n TREE_NODE_NEW_PARENT_EDITING_APPLIED = 'TREE_NODE_NEW_PARENT_EDITING_APPLIED',\n TREE_NODE_NEW_PARENT_EDITING_CANCELED = 'TREE_NODE_NEW_PARENT_EDITING_CANCELED',\n TREE_NODE_NEW_PARENT_EDITING_STARTED = 'TREE_NODE_NEW_PARENT_EDITING_STARTED',\n TREE_NODE_RELATION_TYPE_CHANGED = 'TREE_NODE_RELATION_TYPE_CHANGED',\n TREE_NODE_REMOVED = 'TREE_NODE_REMOVED',\n TREE_SECONDARY_LABEL_SHOWN = 'TREE_SECONDARY_LABEL_SHOWN',\n TREE_SCROLL_TO_NODE_RESET = 'TREE_SCROLL_TO_NODE_RESET',\n TREE_SORTED = 'TREE_SORTED',\n TREE_REFRESHED = 'TREE_REFRESHED',\n TREE_RELATION_CREATED = 'TREE_RELATION_CREATED',\n TREE_RELATION_EDITED = 'TREE_RELATION_EDITED',\n TREE_RELATION_REMOVED = 'TREE_RELATION_REMOVED',\n TREE_RELATION_REPOINTED = 'TREE_RELATION_REPOINTED',\n TREE_CANCEL_CHILDREN_LOADING = 'TREE_CANCEL_CHILDREN_LOADING'\n}\n\nexport type TreesActionsTypes =\n | ReturnType<typeof treesActions.treeLoaded>\n | ReturnType<typeof treesActions.treeLoadedWithError>\n | ReturnType<typeof treesActions.treeLoading>\n | ReturnType<typeof treesActions.resetScrollToNode>\n | ReturnType<typeof treesActions.childrenLoading>\n | ReturnType<typeof treesActions.childrenLoaded>\n | ReturnType<typeof treesActions.entitiesMappingLoaded>\n | ReturnType<typeof treesActions.currentEntityShownInTree>\n | ReturnType<typeof treesActions.treeChanged>\n | ReturnType<typeof treesActions.treeRefreshed>\n | ReturnType<typeof treesActions.nodeExpanded>\n | ReturnType<typeof treesActions.toggleRelationDetails>\n | ReturnType<typeof treesActions.activenessDateChanged>\n | ReturnType<typeof treesActions.treeRelationRepointed>\n | ReturnType<typeof treesActions.treeRelationCreated>\n | ReturnType<typeof treesActions.treeNodeCreated>\n | ReturnType<typeof treesActions.treeRelationRemoved>\n | ReturnType<typeof treesActions.treeNodeRemoved>\n | ReturnType<typeof treesActions.treeRelationChanged>\n | ReturnType<typeof treesActions.treeNodeChanged>\n | ReturnType<typeof treesActions.treeCommandsCleared>\n | ReturnType<typeof treesActions.treeNodeEditingStarted>\n | ReturnType<typeof treesActions.treeNodeEditingApplied>\n | ReturnType<typeof treesActions.treeNodeEditingCanceled>\n | ReturnType<typeof treesActions.treeNodeNewParentEditingStarted>\n | ReturnType<typeof treesActions.treeNodeNewParentEditingApplied>\n | ReturnType<typeof treesActions.treeNodeNewParentEditingCanceled>\n | ReturnType<typeof treesActions.treeNodeNewChildEditingStarted>\n | ReturnType<typeof treesActions.treeNodeNewChildEditingApplied>\n | ReturnType<typeof treesActions.treeNodeNewChildEditingCanceled>\n | ReturnType<typeof treesActions.treeNodeRelationTypeChanged>\n | ReturnType<typeof treesActions.treeNodeEntityChanged>\n | ReturnType<typeof treesActions.treeSorted>\n | ReturnType<typeof treesActions.treeSecondaryLabelShown>\n | ReturnType<typeof treesActions.treesStateSaved>\n | ReturnType<typeof treesActions.treesStateRestored>\n | ReturnType<typeof treesActions.treesRestoreFromInitialTrees>\n | ReturnType<typeof treesActions.treesResetInitialTrees>\n | ReturnType<typeof treesActions.cancelChildrenLoading>\n | EntityActionsType\n | ModeActionsTypes\n | ProfileActionTypes;\n","import {TreesStateToSave} from '@reltio/mdm-sdk';\nimport {\n ActivenessDateChangedPayload,\n ChildrenLoadedPayload,\n ChildrenLoadingPayload,\n CurrentEntityShownInTreePayload,\n EntitiesMappingLoadedPayload,\n NodeExpandedPayload,\n ToggleRelationDetailsPayload,\n TreeChangedPayload,\n TreeLoadedPayload,\n TreeLoadedWithErrorPayload,\n TreeNodeChangedPayload,\n TreeNodeCreatedPayload,\n TreeNodeEditingAppliedPayload,\n TreeNodeEditingCanceledPayload,\n TreeNodeEditingStartedPayload,\n TreeNodeEntityChangedPayload,\n TreeNodeNewChildEditingAppliedPayload,\n TreeNodeNewChildEditingCanceledPayload,\n TreeNodeNewChildEditingStartedPayload,\n TreeNodeNewParentEditingAppliedPayload,\n TreeNodeNewParentEditingCanceledPayload,\n TreeNodeNewParentEditingStartedPayload,\n TreeNodeRelationTypeChangedPayload,\n TreeNodeRemovedPayload,\n TreeRelationChangedPayload,\n TreeRelationCreatedPayload,\n TreeRelationRemovedPayload,\n TreeRelationRepointedPayload,\n TreeSecondaryLabelShownPayload,\n TreeSortedPayload,\n TreesStateSavedPayload,\n CancelChildrenLoadingPayload\n} from '../../../types/profile/trees';\nimport {createStandardAction} from '../../../utils';\nimport {TreesActions} from '../constants';\n\nexport const treeLoaded = createStandardAction<TreesActions.TREE_LOADED, TreeLoadedPayload>(TreesActions.TREE_LOADED);\n\nexport const treeLoadedWithError = createStandardAction<\n TreesActions.TREE_LOADED_WITH_ERROR,\n TreeLoadedWithErrorPayload\n>(TreesActions.TREE_LOADED_WITH_ERROR);\n\nexport const treeLoading = createStandardAction<TreesActions.TREE_LOADING, string>(TreesActions.TREE_LOADING);\n\nexport const resetScrollToNode = createStandardAction<TreesActions.TREE_SCROLL_TO_NODE_RESET, string>(\n TreesActions.TREE_SCROLL_TO_NODE_RESET\n);\n\nexport const treeCommandsCleared = createStandardAction<TreesActions.TREE_COMMANDS_CLEARED, null>(\n TreesActions.TREE_COMMANDS_CLEARED\n);\n\nexport const childrenLoading = createStandardAction<TreesActions.TREE_CHILDREN_LOADING, ChildrenLoadingPayload>(\n TreesActions.TREE_CHILDREN_LOADING\n);\n\nexport const currentEntityShownInTree = createStandardAction<\n TreesActions.TREE_CURRENT_ENTITY_SHOWN,\n CurrentEntityShownInTreePayload\n>(TreesActions.TREE_CURRENT_ENTITY_SHOWN);\n\nexport const treeRefreshed = createStandardAction<TreesActions.TREE_REFRESHED, string>(TreesActions.TREE_REFRESHED);\n\nexport const nodeExpanded = createStandardAction<TreesActions.TREE_NODE_EXPANDED, NodeExpandedPayload>(\n TreesActions.TREE_NODE_EXPANDED\n);\n\nexport const treeRelationRemoved = createStandardAction<TreesActions.TREE_RELATION_REMOVED, TreeRelationRemovedPayload>(\n TreesActions.TREE_RELATION_REMOVED\n);\n\nexport const treeNodeRemoved = createStandardAction<TreesActions.TREE_NODE_REMOVED, TreeNodeRemovedPayload>(\n TreesActions.TREE_NODE_REMOVED\n);\n\nexport const treeSecondaryLabelShown = createStandardAction<\n TreesActions.TREE_SECONDARY_LABEL_SHOWN,\n TreeSecondaryLabelShownPayload\n>(TreesActions.TREE_SECONDARY_LABEL_SHOWN);\n\nexport const entitiesMappingLoaded = createStandardAction<\n TreesActions.TREE_ENTITIES_MAPPING_LOADED,\n EntitiesMappingLoadedPayload\n>(TreesActions.TREE_ENTITIES_MAPPING_LOADED);\n\nexport const treeChanged = createStandardAction<TreesActions.TREE_CHANGED, TreeChangedPayload>(\n TreesActions.TREE_CHANGED\n);\n\nexport const toggleRelationDetails = createStandardAction<TreesActions.TREE_NODE_EDITED, ToggleRelationDetailsPayload>(\n TreesActions.TREE_NODE_EDITED\n);\n\nexport const activenessDateChanged = createStandardAction<\n TreesActions.TREE_ACTIVENESS_DATE_CHANGED,\n ActivenessDateChangedPayload\n>(TreesActions.TREE_ACTIVENESS_DATE_CHANGED);\n\nexport const treeRelationRepointed = createStandardAction<\n TreesActions.TREE_RELATION_REPOINTED,\n TreeRelationRepointedPayload\n>(TreesActions.TREE_RELATION_REPOINTED);\n\nexport const treeRelationCreated = createStandardAction<TreesActions.TREE_RELATION_CREATED, TreeRelationCreatedPayload>(\n TreesActions.TREE_RELATION_CREATED\n);\n\nexport const treeNodeCreated = createStandardAction<TreesActions.TREE_NODE_CREATED, TreeNodeCreatedPayload>(\n TreesActions.TREE_NODE_CREATED\n);\n\nexport const treeRelationChanged = createStandardAction<TreesActions.TREE_RELATION_EDITED, TreeRelationChangedPayload>(\n TreesActions.TREE_RELATION_EDITED\n);\n\nexport const treeNodeChanged = createStandardAction<TreesActions.TREE_NODE_EDITED, TreeNodeChangedPayload>(\n TreesActions.TREE_NODE_EDITED\n);\n\nexport const treeNodeEditingStarted = createStandardAction<\n TreesActions.TREE_NODE_EDITING_STARTED,\n TreeNodeEditingStartedPayload\n>(TreesActions.TREE_NODE_EDITING_STARTED);\n\nexport const treeNodeEditingApplied = createStandardAction<\n TreesActions.TREE_NODE_EDITING_APPLIED,\n TreeNodeEditingAppliedPayload\n>(TreesActions.TREE_NODE_EDITING_APPLIED);\n\nexport const treeNodeEditingCanceled = createStandardAction<\n TreesActions.TREE_NODE_EDITING_CANCELED,\n TreeNodeEditingCanceledPayload\n>(TreesActions.TREE_NODE_EDITING_CANCELED);\n\nexport const treeNodeNewParentEditingStarted = createStandardAction<\n TreesActions.TREE_NODE_NEW_PARENT_EDITING_STARTED,\n TreeNodeNewParentEditingStartedPayload\n>(TreesActions.TREE_NODE_NEW_PARENT_EDITING_STARTED);\n\nexport const treeNodeNewParentEditingApplied = createStandardAction<\n TreesActions.TREE_NODE_NEW_PARENT_EDITING_APPLIED,\n TreeNodeNewParentEditingAppliedPayload\n>(TreesActions.TREE_NODE_NEW_PARENT_EDITING_APPLIED);\n\nexport const treeNodeNewParentEditingCanceled = createStandardAction<\n TreesActions.TREE_NODE_NEW_PARENT_EDITING_CANCELED,\n TreeNodeNewParentEditingCanceledPayload\n>(TreesActions.TREE_NODE_NEW_PARENT_EDITING_CANCELED);\n\nexport const treeNodeNewChildEditingStarted = createStandardAction<\n TreesActions.TREE_NODE_NEW_CHILD_EDITING_STARTED,\n TreeNodeNewChildEditingStartedPayload\n>(TreesActions.TREE_NODE_NEW_CHILD_EDITING_STARTED);\n\nexport const treeNodeNewChildEditingApplied = createStandardAction<\n TreesActions.TREE_NODE_NEW_CHILD_EDITING_APPLIED,\n TreeNodeNewChildEditingAppliedPayload\n>(TreesActions.TREE_NODE_NEW_CHILD_EDITING_APPLIED);\n\nexport const treeNodeNewChildEditingCanceled = createStandardAction<\n TreesActions.TREE_NODE_NEW_CHILD_EDITING_CANCELED,\n TreeNodeNewChildEditingCanceledPayload\n>(TreesActions.TREE_NODE_NEW_CHILD_EDITING_CANCELED);\n\nexport const treeNodeRelationTypeChanged = createStandardAction<\n TreesActions.TREE_NODE_RELATION_TYPE_CHANGED,\n TreeNodeRelationTypeChangedPayload\n>(TreesActions.TREE_NODE_RELATION_TYPE_CHANGED);\n\nexport const treeNodeEntityChanged = createStandardAction<\n TreesActions.TREE_NODE_ENTITY_CHANGED,\n TreeNodeEntityChangedPayload\n>(TreesActions.TREE_NODE_ENTITY_CHANGED);\n\nexport const treeSorted = createStandardAction<TreesActions.TREE_SORTED, TreeSortedPayload>(TreesActions.TREE_SORTED);\n\nexport const treesStateSaved = createStandardAction<TreesActions.TREES_STATE_SAVED, TreesStateSavedPayload>(\n TreesActions.TREES_STATE_SAVED\n);\n\nexport const treesStateRestored = createStandardAction<TreesActions.TREES_STATE_RESTORED, TreesStateToSave>(\n TreesActions.TREES_STATE_RESTORED\n);\n\nexport const childrenLoaded = createStandardAction<TreesActions.TREE_CHILDREN_LOADED, ChildrenLoadedPayload>(\n TreesActions.TREE_CHILDREN_LOADED\n);\n\nexport const treesRestoreFromInitialTrees = createStandardAction<TreesActions.TREES_RESTORE_FROM_INITIAL_TREES, null>(\n TreesActions.TREES_RESTORE_FROM_INITIAL_TREES\n);\n\nexport const treesResetInitialTrees = createStandardAction<TreesActions.TREES_RESET_INITIAL_TREES, null>(\n TreesActions.TREES_RESET_INITIAL_TREES\n);\n\nexport const cancelChildrenLoading = createStandardAction<\n TreesActions.TREE_CANCEL_CHILDREN_LOADING,\n CancelChildrenLoadingPayload\n>(TreesActions.TREE_CANCEL_CHILDREN_LOADING);\n","import {EditingConnection, TreeNode, TreesState} from '@reltio/mdm-sdk';\nimport {always, flatten, isNil, map, path, pick, pipe, prop, reject, values, when} from 'ramda';\n\nexport const getTree = (state: TreesState, id: string) => state.trees[id];\nexport const getTreeRoot = (state: TreesState, id: string): TreeNode => path(['trees', id, 'root'], state);\nexport const getTreeTotal = (state: TreesState, id: string): number => path(['trees', id, 'total'], state);\nexport const getCommands = path(['common', 'commands']);\nexport const getTreeEditingConnection = (state: TreesState, id: string, relationUri: string): EditingConnection =>\n path(['trees', id, 'editingConnections', relationUri], state);\nexport const getAllTreesEditingConnections = (state: TreesState, viewIds: string[]): EditingConnection[] =>\n pipe(\n prop('trees'),\n when(always(viewIds), pick(viewIds)),\n values,\n map(pipe(prop('editingConnections'), values)),\n flatten,\n reject(isNil)\n )(state);\n","import {findParentNodeById} from '@reltio/mdm-sdk';\nimport {identity, lensPath, path, pick, prop, reject, uniq} from 'ramda';\n\nconst syncToCurrentEntity = (node, uri, parents = []) => {\n if (path(['entity', 'uri'], node) === uri) {\n parents.forEach((parent) => (parent.expanded = true));\n return node;\n }\n if (node.children) {\n for (const child of node.children) {\n const result = syncToCurrentEntity(child, uri, parents.concat(node));\n if (result) {\n return result;\n }\n }\n }\n};\n\nconst mergeEntitiesMap = (map, subMap) => {\n const mapWithUpdatedParents = Object.keys(map).reduce((result, entityUri) => {\n const entity = map[entityUri];\n if (subMap[entityUri]) {\n entity.parent = uniq([].concat(entity.parent).concat(subMap[entityUri].parent).filter(identity));\n }\n result[entityUri] = entity;\n return result;\n }, {});\n Object.keys(subMap).forEach((entityUri) => {\n if (!mapWithUpdatedParents[entityUri]) {\n mapWithUpdatedParents[entityUri] = subMap[entityUri];\n }\n });\n return mapWithUpdatedParents;\n};\n\nconst mergeChildren = (oldChildren = [], newChildren = []) => {\n const getLoadedChildren = reject(prop('loading'));\n const result = getLoadedChildren(oldChildren);\n newChildren.forEach((newChild) => {\n if (!oldChildren.find((oldChild) => path(['entity', 'uri'], oldChild) === newChild.entity.uri)) {\n result.push(newChild);\n }\n });\n return result;\n};\n\nconst removeChild = (node, childId) => {\n if (node && node.children) {\n const index = node.children.findIndex(({nodeId}) => nodeId === childId);\n if (index > -1) {\n node.children.splice(index, 1);\n }\n }\n};\nconst insertChild = (node, child, index = 0) => {\n if (node && node.children) {\n node.children.splice(index, 0, child);\n }\n};\n\nconst mutatePath = ({path, value, object}) => {\n let currentLevelObject = object;\n for (let i = 0; i < path.length; i++) {\n const segment = path[i];\n if (i === path.length - 1) {\n currentLevelObject[segment] = typeof value === 'function' ? value(currentLevelObject[segment]) : value;\n } else {\n currentLevelObject[segment] = currentLevelObject[segment] || (typeof segment === 'number' ? [] : {});\n currentLevelObject = currentLevelObject[segment];\n }\n }\n};\n\nconst updateAllNodesWithProp = (node = {}, prop, value) => {\n node[prop] = value;\n\n if (node.children) {\n node.children.forEach((child) => updateAllNodesWithProp(child, prop, value));\n }\n};\n\nconst createConnection = (node) => ({\n entity: node.entity,\n relation: node.relation\n});\n\nconst addToEditingConnections = ({id, draft, node}) => {\n mutatePath({\n path: ['editingConnections', node.relation.uri],\n object: draft[id],\n value: createConnection(node)\n });\n};\n\nconst setConnectionEntity = ({id, draft, node, entity}) => {\n mutatePath({\n path: ['editingConnections', node.relation.uri, 'entity'],\n object: draft[id],\n value: entity\n });\n};\n\nconst setConnectionRelationType = ({id, draft, node, relationTypeUri}) => {\n mutatePath({\n path: ['editingConnections', node.relation.uri, 'relation'],\n object: draft[id],\n value: (relation) => ({...relation, type: relationTypeUri, attributes: {}})\n });\n};\n\nconst removeFromEditingConnections = ({id, draft, relationUri}) => {\n delete draft[id].editingConnections[relationUri];\n};\n\nconst getEditingConnection = ({id, draft, relationUri}) => {\n return draft[id].editingConnections[relationUri];\n};\n\nconst nodeEditingCleanUp = (currentNode) => {\n delete currentNode.editingMode;\n delete currentNode.relatedEntity;\n delete currentNode.initialConnection;\n};\n\nconst addingParentCleanUp = ({id, draft, currentNode}) => {\n const treeRoot = draft[id].root;\n if (treeRoot === currentNode) {\n draft[id].root = currentNode.children[0];\n draft[id].root.children = draft[id].root.children || [];\n draft[id].root.children.push(...currentNode.children.slice(1));\n } else {\n const parentNode = findParentNodeById(treeRoot, currentNode.nodeId);\n removeChild(parentNode, currentNode.nodeId);\n }\n};\n\nconst getRelationLens = (id, relationUri, state) => {\n const pathToRelation = [id, 'editingConnections', relationUri, 'relation'];\n return path(pathToRelation, state) ? lensPath(pathToRelation) : null;\n};\n\nconst getTreeSettingsFields = pick(['showSecondaryLabel', 'sortField', 'sortOrder']);\n\nconst addNodesToEntitiesMap = (entitiesMap, nodes = []) =>\n mergeEntitiesMap(\n entitiesMap,\n nodes.reduce(\n (result, node) => ({\n ...result,\n [node.entity.uri]: pick(['entity', 'parent', 'relations'], node)\n }),\n {}\n )\n );\n\nconst createNodeFromConnection = (connection) => ({\n entity: pick(['uri', 'type', 'label', 'secondaryLabel'], connection.entity),\n parent: [],\n relations: [pick(['uri', 'type'], connection.relation)]\n});\n\nexport {\n syncToCurrentEntity,\n mergeEntitiesMap,\n mergeChildren,\n removeChild,\n insertChild,\n updateAllNodesWithProp,\n createConnection,\n addToEditingConnections,\n addingParentCleanUp,\n nodeEditingCleanUp,\n setConnectionEntity,\n setConnectionRelationType,\n removeFromEditingConnections,\n getEditingConnection,\n getRelationLens,\n getTreeSettingsFields,\n addNodesToEntitiesMap,\n createNodeFromConnection\n};\n","import {compose, lensPath, over, path, prop, reject, set, view} from 'ramda';\nimport {\n addAttribute,\n addDefaultValuesToAttributes,\n addEntitySpecialAttribute,\n AttributeValue,\n createRelationCreateCommand,\n createRelationDeleteCommand,\n createRelationRepointCommand,\n createRelationUpdateCommand,\n editAttribute,\n editEntitySpecialAttribute,\n Entity,\n findNodeById,\n findParentNodeById,\n getAttributeTypeSubAttributes,\n getBaseUri,\n getRelationType,\n isActivenessAttrType,\n isEditableMode,\n isRelationUri,\n isTempUri,\n isViewMode,\n isRelationCommandForUri,\n mapTree,\n NODE_EDITING_MODES,\n removeAttribute,\n removeEntitySpecialAttribute,\n sortTreeChildren,\n TreesState,\n addDefaultValuesToComplexAttribute\n} from '@reltio/mdm-sdk';\nimport produce from 'immer';\nimport {TreesActions, TreesActionsTypes} from '../constants';\nimport {ModeActions} from '../../mode/constants';\nimport {EntityActions} from '../../entity/constants';\nimport {ProfileActions} from '../../actions/constants';\nimport {\n addingParentCleanUp,\n addNodesToEntitiesMap,\n addToEditingConnections,\n createConnection,\n createNodeFromConnection,\n getEditingConnection,\n getRelationLens,\n getTreeSettingsFields,\n insertChild,\n mergeChildren,\n mergeEntitiesMap,\n nodeEditingCleanUp,\n removeChild,\n removeFromEditingConnections,\n setConnectionEntity,\n setConnectionRelationType,\n syncToCurrentEntity,\n updateAllNodesWithProp\n} from './helpers';\n\nconst initialState: TreesState = {\n common: {\n commands: []\n },\n trees: {},\n initialTrees: {}\n};\n\nconst treesReducer = (state = initialState, action: TreesActionsTypes): TreesState =>\n produce(state, (draft) => { //NOSONAR\n switch (action.type) {\n case ModeActions.MODE_UPDATED: {\n const {mode, silent} = action.payload;\n\n if (silent) break;\n\n const draftKeys = Object.keys(draft?.trees);\n draftKeys.forEach((draftKey) => {\n updateAllNodesWithProp(draft.trees[draftKey].root, 'showDetails', false);\n });\n\n if (isViewMode(mode)) {\n draft.common.commands = [];\n draft.initialTrees = {};\n }\n\n if (isEditableMode(mode)) {\n draft.initialTrees = {...draft.trees};\n }\n break;\n }\n case ModeActions.MODE_EDITING_CANCELED:\n case TreesActions.TREES_RESTORE_FROM_INITIAL_TREES:\n draft.trees = {...draft.initialTrees};\n break;\n case TreesActions.TREES_RESET_INITIAL_TREES:\n draft.initialTrees = {};\n break;\n case EntityActions.ENTITY_LOADED:\n return initialState;\n case TreesActions.TREE_LOADED_WITH_ERROR: {\n const {id, errorMessage} = action.payload;\n draft.trees[id] = draft.trees[id] || {};\n draft.trees[id].errorMessage = errorMessage;\n draft.trees[id].loading = false;\n delete draft.trees[id].root;\n delete draft.trees[id].entitiesMap;\n break;\n }\n case TreesActions.TREE_LOADING: {\n const id = action.payload;\n draft.trees[id] = draft.trees[id] || {};\n draft.trees[id].loading = true;\n break;\n }\n case TreesActions.TREE_CHILDREN_LOADING: {\n const {id, parentId, nodeId} = action.payload;\n const treeRoot = draft.trees[id].root;\n const parentNode = findNodeById(treeRoot, parentId);\n parentNode.pending = false;\n parentNode.children = (parentNode.children || []).concat({\n entity: {} as Entity,\n loading: true,\n nodeId\n });\n\n break;\n }\n case TreesActions.TREE_CHILDREN_LOADED: {\n const {children, id, parentId} = action.payload;\n const treeRoot = draft.trees[id].root;\n const parentNode = findNodeById(treeRoot, parentId);\n if (parentNode) {\n parentNode.children = mergeChildren(parentNode.children, children);\n delete parentNode.pending;\n }\n break;\n }\n\n case TreesActions.TREE_NODE_REMOVED: {\n const {id, nodeId} = action.payload;\n const treeRoot = draft.trees[id].root;\n const parentNode = findParentNodeById(treeRoot, nodeId);\n removeChild(parentNode || treeRoot, nodeId);\n break;\n }\n\n case TreesActions.TREE_NODE_CREATED: {\n const {id, parentId, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const parentNode = findNodeById(treeRoot, parentId) || treeRoot;\n const index = parentNode.children.length;\n insertChild(parentNode, node, index);\n break;\n }\n\n case TreesActions.TREE_NODE_EDITED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n const keys = Object.keys(node);\n for (const key of keys) {\n currentNode[key] = node[key];\n }\n break;\n }\n\n case TreesActions.TREE_NODE_EDITING_STARTED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n const parentNode = findParentNodeById(treeRoot, node.nodeId);\n if (currentNode && parentNode) {\n currentNode.editingMode = NODE_EDITING_MODES.editing;\n currentNode.relatedEntity = parentNode.entity;\n delete currentNode.loading;\n currentNode.initialConnection = createConnection(currentNode);\n addToEditingConnections({id, draft: draft.trees, node: currentNode});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_EDITING_APPLIED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n const connection = getEditingConnection({id, draft: draft.trees, relationUri: node.relation.uri});\n if (currentNode && connection) {\n nodeEditingCleanUp(currentNode);\n if (currentNode.entity.uri !== connection.entity.uri && currentNode.children?.length) {\n delete currentNode.children;\n currentNode.pending = true;\n }\n currentNode.entity = connection.entity;\n currentNode.relation = connection.relation;\n removeFromEditingConnections({id, draft: draft.trees, relationUri: node.relation.uri});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_EDITING_CANCELED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n if (currentNode) {\n nodeEditingCleanUp(currentNode);\n removeFromEditingConnections({id, draft: draft.trees, relationUri: node.relation.uri});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_NEW_PARENT_EDITING_STARTED: {\n const {id, node, newNode} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n newNode.relatedEntity = currentNode.entity;\n newNode.relatedNodeId = currentNode.nodeId;\n newNode.editingMode = NODE_EDITING_MODES.addingParent;\n if (treeRoot === currentNode) {\n newNode.children = [treeRoot];\n draft.trees[id].root = newNode;\n } else {\n const parentNode = findParentNodeById(treeRoot, node.nodeId);\n const currentNodeIndex = parentNode.children.findIndex((node) => currentNode === node);\n insertChild(parentNode, newNode, currentNodeIndex);\n }\n newNode.initialConnection = createConnection(newNode);\n addToEditingConnections({id, draft: draft.trees, node: newNode});\n break;\n }\n\n case TreesActions.TREE_NODE_NEW_PARENT_EDITING_APPLIED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n const relatedNode = findNodeById(treeRoot, node.relatedNodeId);\n const connection = getEditingConnection({id, draft: draft.trees, relationUri: node.relation.uri});\n if (currentNode && connection) {\n addingParentCleanUp({id, draft: draft.trees, currentNode});\n relatedNode.parent = relatedNode.parent || [];\n relatedNode.parent.push(connection.entity.uri);\n relatedNode.relations = relatedNode.relations || [];\n relatedNode.relations.push(connection.relation);\n draft.trees[id].entitiesMap = addNodesToEntitiesMap(draft.trees[id].entitiesMap, [\n relatedNode,\n createNodeFromConnection(connection)\n ]);\n removeFromEditingConnections({id, draft: draft.trees, relationUri: currentNode.relation.uri});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_NEW_PARENT_EDITING_CANCELED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n if (currentNode) {\n addingParentCleanUp({id, draft: draft.trees, currentNode});\n removeFromEditingConnections({id, draft: draft.trees, relationUri: currentNode.relation.uri});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_NEW_CHILD_EDITING_STARTED: {\n const {id, node, newNode} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n newNode.relatedEntity = currentNode.entity;\n newNode.editingMode = NODE_EDITING_MODES.addingChild;\n newNode.parent = [currentNode.entity.uri];\n newNode.directParentUri = currentNode.entity.uri;\n currentNode.children = currentNode.children || [];\n currentNode.children.unshift(newNode);\n currentNode.expanded = true;\n newNode.initialConnection = createConnection(newNode);\n addToEditingConnections({id, draft: draft.trees, node: newNode});\n break;\n }\n\n case TreesActions.TREE_NODE_NEW_CHILD_EDITING_APPLIED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const parentNode = findParentNodeById(treeRoot, node.nodeId);\n const currentNode = findNodeById(parentNode, node.nodeId);\n const connection = getEditingConnection({id, draft: draft.trees, relationUri: node.relation.uri});\n if (parentNode && currentNode && connection) {\n nodeEditingCleanUp(currentNode);\n currentNode.entity = connection.entity;\n currentNode.relation = connection.relation;\n currentNode.relations = [connection.relation];\n removeFromEditingConnections({id, draft: draft.trees, relationUri: node.relation.uri});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_NEW_CHILD_EDITING_CANCELED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const parentNode = findParentNodeById(treeRoot, node.nodeId);\n if (parentNode) {\n removeChild(parentNode, node.nodeId);\n removeFromEditingConnections({id, draft: draft.trees, relationUri: node.relation.uri});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_RELATION_TYPE_CHANGED: {\n const {id, node, relationTypeUri} = action.payload;\n const connection = getEditingConnection({id, draft: draft.trees, relationUri: node.relation.uri});\n const currentRelationTypeUri = connection.relation.type;\n if (currentRelationTypeUri !== relationTypeUri) {\n if (currentRelationTypeUri) {\n setConnectionEntity({id, draft: draft.trees, node, entity: null});\n }\n setConnectionRelationType({id, draft: draft.trees, node, relationTypeUri});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_ENTITY_CHANGED: {\n const {id, node, entity} = action.payload;\n setConnectionEntity({id, draft: draft.trees, node, entity});\n break;\n }\n\n case ProfileActions.ADD_ATTRIBUTES: {\n const attributes = action.payload;\n return attributes.reduce((state, attribute) => {\n const {attributeType, parentUri, index, viewId} = attribute;\n const relationUri = getBaseUri(parentUri);\n const relationLens = getRelationLens(viewId, relationUri, state.trees);\n if (relationLens && isRelationUri(relationUri)) {\n const relation = view(relationLens, state.trees);\n if (isActivenessAttrType(attributeType)) {\n const newRelation = addEntitySpecialAttribute({entity: relation, attributeType});\n return {...state, trees: set(relationLens, newRelation, state.trees)};\n } else {\n const newRelation = addAttribute({\n entity: relation,\n attributeType,\n parentUri,\n index\n });\n return {...state, trees: set(relationLens, newRelation, state.trees)};\n }\n } else {\n return state;\n }\n }, state);\n }\n\n case ProfileActions.MODIFY_ATTRIBUTE: {\n const {attributeType, viewId, uri, value} = action.payload;\n const relationUri = getBaseUri(uri);\n const relationLens = getRelationLens(viewId, relationUri, state.trees);\n if (relationLens && isRelationUri(relationUri)) {\n const relation = view(relationLens, state.trees);\n if (isActivenessAttrType(attributeType)) {\n const newRelation = editEntitySpecialAttribute({\n entity: relation,\n attributeType,\n value: value as number\n });\n return {...state, trees: set(relationLens, newRelation, state.trees)};\n } else {\n const newRelation = editAttribute({\n entity: relation,\n attributeType,\n uri,\n value: value as Partial<AttributeValue>\n });\n return {...state, trees: set(relationLens, newRelation, state.trees)};\n }\n } else {\n return state;\n }\n }\n\n case ProfileActions.REMOVE_ATTRIBUTE: {\n const {attributeType, uri, viewId} = action.payload;\n const relationUri = getBaseUri(uri);\n const relationLens = getRelationLens(viewId, relationUri, state.trees);\n if (relationLens && isRelationUri(relationUri)) {\n const relation = view(relationLens, state.trees);\n if (isActivenessAttrType(attributeType)) {\n const newRelation = removeEntitySpecialAttribute({entity: relation, attributeType});\n return {...state, trees: set(relationLens, newRelation, state.trees)};\n } else {\n const newRelation = removeAttribute({entity: relation, attributeType, uri});\n return {...state, trees: set(relationLens, newRelation, state.trees)};\n }\n } else {\n return state;\n }\n }\n\n case ProfileActions.ADD_DEFAULT_VALUES: {\n const {viewId, attributeType, parentUri, metadata, mode} = action.payload;\n const objectUri = getBaseUri(parentUri);\n const relationLens = getRelationLens(viewId, objectUri, state.trees);\n if (isRelationUri(objectUri) && relationLens) {\n if (attributeType) {\n const subAttributes = getAttributeTypeSubAttributes(metadata, attributeType);\n return {\n ...state,\n trees: over(\n relationLens,\n addDefaultValuesToComplexAttribute({\n attributeType,\n subAttributes,\n metadata,\n mode,\n parentUri\n }),\n state.trees\n )\n };\n } else {\n const attributesL = compose(relationLens, lensPath(['attributes']));\n const typeL = compose(relationLens, lensPath(['type']));\n const type = view(typeL, state.trees);\n const {attributes: attributeTypes = []} = getRelationType(metadata, type);\n return {\n ...state,\n trees: over(\n attributesL,\n addDefaultValuesToAttributes({metadata, mode, attributeTypes, parentUri}),\n state.trees\n )\n };\n }\n }\n return state;\n }\n\n case TreesActions.TREE_ENTITIES_MAPPING_LOADED: {\n const {id, entitiesSubMap} = action.payload;\n const entitiesMap = draft.trees[id].entitiesMap;\n draft.trees[id].entitiesMap = mergeEntitiesMap(entitiesMap, entitiesSubMap);\n break;\n }\n case TreesActions.TREE_LOADED: {\n const {tree, id, graphTypes, activenessDate, isReversed} = action.payload;\n const treeSettings = getTreeSettingsFields(draft.trees[id] || {});\n draft.trees[id] = {...treeSettings, ...tree, graphTypes, activenessDate, isReversed};\n delete draft.trees[id].errorMessage;\n draft.trees[id].loading = false;\n break;\n }\n case TreesActions.TREE_SORTED: {\n const {id, typesLabelsMap = {}, sortField, sortOrder} = action.payload;\n draft.trees[id] = draft.trees[id] || {};\n draft.trees[id].sortField = sortField;\n draft.trees[id].sortOrder = sortOrder;\n if (draft.trees[id].root) {\n draft.trees[id].root = mapTree(draft.trees[id].root, {\n childrenProcessing: sortTreeChildren({sortField, sortOrder, typesLabelsMap})\n });\n }\n break;\n }\n case TreesActions.TREE_SECONDARY_LABEL_SHOWN: {\n const {id, show} = action.payload;\n draft.trees[id].showSecondaryLabel = show;\n draft.trees[id].root = {...draft.trees[id].root};\n break;\n }\n\n case TreesActions.TREES_STATE_RESTORED: {\n const state = action.payload;\n Object.keys(state).forEach((id) => {\n draft.trees[id] = draft.trees[id] || {};\n draft.trees[id] = {...draft.trees[id], ...state[id]};\n if (draft.trees[id].root) {\n draft.trees[id].root = {...draft.trees[id].root};\n }\n });\n break;\n }\n\n case TreesActions.TREE_CHANGED: {\n const {id, tree} = action.payload;\n draft.trees[id].root = tree;\n break;\n }\n case TreesActions.TREE_REFRESHED: {\n const id = action.payload;\n draft.trees[id].root = {...draft.trees[id].root};\n break;\n }\n case TreesActions.TREE_NODE_EXPANDED: {\n const {id, nodeId} = action.payload;\n const treeRoot = draft.trees[id].root;\n const node = findNodeById(treeRoot, nodeId);\n node.expanded = true;\n break;\n }\n case TreesActions.TREE_CURRENT_ENTITY_SHOWN: {\n const {id, uri = path(['entity', 'uri'], state)} = action.payload;\n if (draft.trees[id]) {\n const currentNode = syncToCurrentEntity(draft.trees[id].root, uri);\n draft.trees[id].scrollTo = currentNode;\n }\n break;\n }\n case TreesActions.TREE_SCROLL_TO_NODE_RESET: {\n const id = action.payload;\n if (draft.trees[id]) {\n draft.trees[id].scrollTo = null;\n }\n break;\n }\n case TreesActions.TREE_ACTIVENESS_DATE_CHANGED: {\n const {id, activenessDate} = action.payload;\n draft.trees[id].activenessDate = activenessDate;\n break;\n }\n case TreesActions.TREE_RELATION_REPOINTED: {\n const {entity, relation, newParent, isReversed} = action.payload;\n const getUri = prop('uri');\n const entityUri = getUri(entity);\n const newEntityUri = getUri(newParent);\n const command = createRelationRepointCommand({entityUri, relation, newEntityUri, isReversed});\n draft.common.commands.push(command);\n break;\n }\n case TreesActions.TREE_RELATION_REMOVED: {\n const {relationUri} = action.payload;\n if (isTempUri(relationUri)) {\n draft.common.commands = reject(isRelationCommandForUri(relationUri), draft.common.commands);\n } else {\n const command = createRelationDeleteCommand({relationUri});\n draft.common.commands.push(command);\n }\n break;\n }\n\n case TreesActions.TREE_RELATION_CREATED: {\n const {entityUri, relation, parentEntityUri: parentUri} = action.payload;\n const command = createRelationCreateCommand({parentUri, relation, entityUri});\n draft.common.commands.push(command);\n break;\n }\n\n case TreesActions.TREE_RELATION_EDITED: {\n const {oldRelation, newRelation, entityUri, newEntityUri, isReversed} = action.payload;\n const command = newEntityUri\n ? createRelationRepointCommand({entityUri, newEntityUri, relation: newRelation, isReversed})\n : createRelationUpdateCommand({oldRelation, newRelation});\n draft.common.commands.push(command);\n break;\n }\n case TreesActions.TREE_COMMANDS_CLEARED: {\n draft.common.commands = [];\n break;\n }\n case TreesActions.TREE_CANCEL_CHILDREN_LOADING: {\n const {id, parentId} = action.payload;\n const treeRoot = draft.trees[id].root;\n const parentNode = findNodeById(treeRoot, parentId);\n if (parentNode) {\n parentNode.pending = true;\n delete parentNode.expanded;\n delete parentNode.children;\n }\n break;\n }\n }\n });\n\nexport default treesReducer;\n","import {\n AttributeType,\n collectAllDiffs,\n Command,\n getNotAppliedTreeCommands,\n isEmptyValue,\n isTempUri,\n Mode,\n RelationsState\n} from '@reltio/mdm-sdk';\nimport {all, keys, propSatisfies, reject, values} from 'ramda';\nimport {ProfileState} from '../types/profile';\nimport {selectors as entitySelectors} from './entity';\nimport {selectors as errorsSelectors} from './errors';\nimport {selectors as modeSelectors} from './mode';\nimport {selectors as modifiedEntitiesSelectors} from './modifiedEntities';\nimport {selectors as dependentLookupsSelectors} from './dependentLookups';\nimport {selectors as relationsSelectors} from './relations';\nimport {selectors as treesSelectors} from './trees';\nimport {selectors as historySelectors} from './history';\nimport {createSelector} from 'reselect';\n\nexport const getEntity = (state: ProfileState) => state.entity;\nexport const getModifiedEntities = (state: ProfileState) => state.modifiedEntities;\nexport const getErrors = (state: ProfileState) => state.errors;\nexport const getRelations = (state: ProfileState) => state.relations;\nexport const getTrees = (state: ProfileState) => state.trees;\nexport const getLookups = (state: ProfileState) => state.lookups;\nexport const getDependentLookups = (state: ProfileState) => state.dependentLookups;\nexport const getMode = (state: ProfileState) => state.mode;\nexport const getLastLoadedTime = (state: ProfileState) => state.lastLoadedTime;\nexport const getHistory = (state: ProfileState) => state.history;\nexport const getOperation = (state: ProfileState) => state.operation;\nexport const getViews = (state: ProfileState) => state.views;\nexport const getSidePanelViews = (state: ProfileState) => state.sidePanelViews;\n\nexport const getUri = (state: ProfileState) => entitySelectors.getUri(getEntity(state));\nexport const getUriWithDataTenant = (state: ProfileState) => entitySelectors.getUriWithDataTenant(getEntity(state));\n\nexport const getModifiedEntity = (state: ProfileState, uri: string) =>\n modifiedEntitiesSelectors.getModifiedEntity(getModifiedEntities(state), uri);\n\nexport const getModifiedEntityDefaultProfilePic = (state: ProfileState, uri: string) =>\n modifiedEntitiesSelectors.getModifiedEntityDefaultProfilePic(getModifiedEntities(state), uri);\n\nexport const getRelationsViewIds = (state: ProfileState): Array<Exclude<keyof RelationsState, number>> =>\n keys(getRelations(state));\nexport const getConnectionsWithDraftsByViewId = (state: ProfileState, id: string, parentEntityUri?: string) =>\n relationsSelectors.getConnectionsWithDrafts(getRelations(state), id, parentEntityUri);\nexport const getEditingOrAddingConnectionByViewIdAndRelationUri = (\n state: ProfileState,\n id: string,\n relationUri: string\n) => relationsSelectors.getEditingOrAddingConnectionByViewIdAndRelationUri(getRelations(state), id, relationUri);\nexport const getEditingOrAddingConnectionRelationObjectByViewIdAndRelationUri = (\n state: ProfileState,\n id: string,\n relationUri: string\n) =>\n relationsSelectors.getEditingOrAddingConnectionRelationObjectByViewIdAndRelationUri(\n getRelations(state),\n id,\n relationUri\n );\nexport const getTotalByViewId = (state: ProfileState, id: string, parentEntityUri?: string) =>\n relationsSelectors.getTotalWithDrafts(getRelations(state), id, parentEntityUri);\nexport const getConnectionsByViewId = (state: ProfileState, id: string) =>\n relationsSelectors.getConnectionsByViewId(getRelations(state), id);\nexport const getDraftsForSaveByViewId = (state: ProfileState, id: string) =>\n relationsSelectors.getDraftsForSaveByViewId(getRelations(state), id);\nexport const getConnectionsTemporaryUrisForCreation = (state: ProfileState) =>\n relationsSelectors.getTemporaryUrisForCreation(getRelations(state));\n\nexport const getIsEditableMode = (state: ProfileState): boolean => modeSelectors.getIsEditableMode(getMode(state));\nexport const getIsViewMode = (state: ProfileState): boolean => modeSelectors.getIsViewMode(getMode(state));\nexport const getIsSuggestMode = (state: ProfileState): boolean => modeSelectors.getIsSuggestMode(getMode(state));\nexport const getRelationToAddByViewId = (state: ProfileState, id: string) =>\n relationsSelectors.getRelationToAddByViewId(getRelations(state), id);\nexport const getRelationsToEditByViewId = (state: ProfileState, id: string) =>\n relationsSelectors.getRelationsToEditByViewId(getRelations(state), id);\nexport const getAllRelationsToAddAndEdit = (state: ProfileState, viewIds: string[]) =>\n relationsSelectors.getAllRelationsToAddAndEdit(getRelations(state), viewIds);\nexport const getAllRelationsToSave = (state: ProfileState, viewIds?: string[]) =>\n relationsSelectors.getAllRelationsToSave(getRelations(state), viewIds);\nexport const getAllRelationsByViewIds = (state: ProfileState, viewIds?: string[]) =>\n relationsSelectors.getAllRelationsByViewIds(getRelations(state), viewIds);\nexport const getInitialConnectionTempEntity = (state: ProfileState, viewId, relationUri) =>\n relationsSelectors.getInitialConnectionTempEntity(state.relations, viewId, relationUri);\nexport const getInitialConnection = (state: ProfileState, viewId, relationUri) =>\n relationsSelectors.getInitialConnection(state.relations, viewId, relationUri);\n\nexport const getViewIdsForOpenRelation = (state: ProfileState, relationUri: string) =>\n relationsSelectors.getViewIdsForOpenRelation(getRelations(state), relationUri);\n\nexport const getAttributeTypeErrors = (state: ProfileState, parentUri: string, attributeTypeUri: string) =>\n errorsSelectors.getAttributeTypeErrors(getErrors(state), parentUri, attributeTypeUri);\nexport const getAttributesErrors = (state: ProfileState, parentUri: string, attributeTypeUri: string) =>\n errorsSelectors.getAttributesErrors(getErrors(state), parentUri, attributeTypeUri);\nexport const getActiveErrorsForAttributesPager = (\n state: ProfileState,\n parentUri: string,\n attributeType: AttributeType\n) => errorsSelectors.getActiveErrorsForAttributesPager(getErrors(state), parentUri, attributeType);\nexport const getTree = (state: ProfileState, id: string) => treesSelectors.getTree(getTrees(state), id);\nexport const getTreeRoot = (state: ProfileState, id: string) => treesSelectors.getTreeRoot(getTrees(state), id);\nexport const getTreeTotal = (state: ProfileState, id: string) => treesSelectors.getTreeTotal(getTrees(state), id);\nexport const getTreeCommands = (state: ProfileState): Command[] => treesSelectors.getCommands(getTrees(state));\nexport const getTreeEditingConnection = (state: ProfileState, id: string, relationUri: string) =>\n treesSelectors.getTreeEditingConnection(getTrees(state), id, relationUri);\nexport const getAllTreesEditingConnections = (state: ProfileState, viewIds: string[]) =>\n treesSelectors.getAllTreesEditingConnections(getTrees(state), viewIds);\n\nexport const getDependentLookupsStructure = (state: ProfileState) =>\n dependentLookupsSelectors.getDependentLookupsStructure(getDependentLookups(state));\nexport const getDependentLookupsStructureNode = (state: ProfileState, attributeTypeUri: string) =>\n dependentLookupsSelectors.getDependentLookupsStructureNode(getDependentLookups(state), attributeTypeUri);\nexport const getDependentLookupsInitedTypeUris = (state: ProfileState) =>\n dependentLookupsSelectors.getDependentLookupsInitedTypeUris(getDependentLookups(state));\nexport const getDependentLookupEditorsState = (state: ProfileState) =>\n dependentLookupsSelectors.getDependentLookupEditorsState(getDependentLookups(state));\nexport const getDependentLookupEditorState = (state: ProfileState, valueUri: string) =>\n dependentLookupsSelectors.getDependentLookupEditorState(getDependentLookups(state), valueUri);\n\nexport const getHistoryDiff = (state: ProfileState) => historySelectors.getHistoryDiff(getHistory(state));\nexport const getHistoryEvent = (state: ProfileState) => historySelectors.getHistoryEvent(getHistory(state));\nexport const getHistorySlice = (state: ProfileState) => historySelectors.getHistorySlice(getHistory(state));\nexport const getIsHistoryModeEnabled = (state: ProfileState) =>\n historySelectors.getIsHistoryModeEnabled(getHistory(state));\nexport const getHistoryMode = (state: ProfileState) => historySelectors.getHistoryMode(getHistory(state));\n\nexport const getEntityHasChanges = createSelector(\n getEntity,\n (state: ProfileState) => getModifiedEntity(state, getUri(state)),\n (entity, modifiedEntity) => {\n if (entity && modifiedEntity) {\n return !isEmptyValue(collectAllDiffs(entity, modifiedEntity, true));\n }\n return false;\n }\n);\n\nexport const getTreeHasChanges = createSelector(getTrees, (trees) => {\n const treeCommands = treesSelectors.getCommands(trees);\n const notAppliedTreeCommands = getNotAppliedTreeCommands(reject(propSatisfies(isEmptyValue, 'root'), trees.trees));\n return !isEmptyValue(treeCommands) || !isEmptyValue(notAppliedTreeCommands);\n});\n\nexport const getRelationsHasChanges = createSelector(getRelations, (relations) => {\n const relationsViewIds = keys(relations);\n return relationsViewIds.reduce((hasChanges, viewId) => {\n return hasChanges || !all(isEmptyValue)(values(relationsSelectors.getDraftsForSaveByViewId(relations, viewId)));\n }, false);\n});\n\nexport const getProfileHasChanges = createSelector(\n getEntityHasChanges,\n getRelationsHasChanges,\n getTreeHasChanges,\n (entityHasChanges, relationsHasChanges, treeHasChanges) => entityHasChanges || relationsHasChanges || treeHasChanges\n);\n\nexport const getProfileCancelNeedConfirm = createSelector(\n getMode,\n getEntity,\n getProfileHasChanges,\n (mode, entity, profileHasChanges) => {\n if (mode === Mode.Viewing || !entity) return false;\n return isTempUri(entity.uri) || profileHasChanges;\n }\n);\n","import {Operation} from '@reltio/mdm-sdk';\nimport {profileUpdateOperation} from './actions';\n\nexport enum ProfileOperationActions {\n PROFILE_OPERATION_UPDATE = 'PROFILE_OPERATION_UPDATE'\n}\n\nexport type ProfileOperationState = Operation;\nexport type ProfileOperationActionsTypes = ReturnType<typeof profileUpdateOperation>;\n","import {createStandardAction} from '../../../utils';\nimport {ProfileOperationActions} from '../constants';\nimport {Operation} from '@reltio/mdm-sdk';\n\nexport const profileUpdateOperation = createStandardAction<ProfileOperationActions.PROFILE_OPERATION_UPDATE, Operation>(\n ProfileOperationActions.PROFILE_OPERATION_UPDATE\n);\n","import {\n AttributeError,\n AttributeType,\n Connection,\n EntitiesMap,\n Entity,\n ErrorType,\n findAttributeValuesByTypeUri,\n findConnectionRelationObjectByRelationUri,\n getBaseUri,\n getProfileViewsIdsByTypes,\n isEntityUri,\n isRequired,\n Metadata,\n ProfileViewConfig,\n ProfileViewTypes,\n Relation\n} from '@reltio/mdm-sdk';\n\ntype Props = {\n metadata: Metadata;\n modifiedEntities: EntitiesMap;\n connections?: Connection[];\n errors: AttributeError[];\n};\nexport const getMissedAttributesToAdd = ({\n metadata,\n modifiedEntities,\n connections = [],\n errors\n}: Props): {attributeType: AttributeType; parentUri: string}[] =>\n errors\n .filter(\n ({attributeType, type}: AttributeError) =>\n attributeType && !isRequired(attributeType) && type === ErrorType.missed\n )\n .filter(({attributeType, parentUri}: AttributeError) => {\n const baseUri = getBaseUri(parentUri);\n const source: Entity | Relation | undefined = isEntityUri(parentUri)\n ? modifiedEntities[baseUri]\n : findConnectionRelationObjectByRelationUri(connections, baseUri);\n const groups = source && findAttributeValuesByTypeUri(metadata, source, attributeType.uri, true);\n return groups?.some(({parent, attrValues}) => parent.uri === parentUri && attrValues.length === 0);\n })\n .map(({attributeType, parentUri}) => ({attributeType, parentUri}));\n\nexport const getRelationsViewsIds = (profileViews: ProfileViewConfig[]) =>\n getProfileViewsIdsByTypes(profileViews, [ProfileViewTypes.Relations, ProfileViewTypes.RelationsTable]);\n","import {all, call, put, SagaReturnType, select} from 'redux-saga/effects';\nimport {isNil, pipe, reject, uniqBy} from 'ramda';\nimport {\n AttributeError,\n collectDiffForValidation,\n Connection,\n convertValidationServiceErrors,\n EditingConnection,\n EntitiesMap,\n Entity,\n evaluateErrorPath,\n getEntityType,\n getErrorUniqKey,\n getProfileViewsIdsByTypes,\n getRelationUriFromConnection,\n isAvailableAttributeTypeForProfile,\n isCriticalError,\n isTempUri,\n Metadata,\n Mode,\n prepareConnectionsForValidation,\n prepareEntityForValidation,\n ProfileViewConfig,\n ProfileViewTypes,\n shouldUseValidationService,\n TEntityType,\n validateConnection,\n validateEntity,\n validateEntityChanges,\n validateEntityLocally,\n validateHierarchyConnection,\n validateRelations,\n ValidationServiceError,\n ValidationServiceOption\n} from '@reltio/mdm-sdk';\nimport mdmModule, {profile} from '../../../index';\nimport {addAttributes} from '../../actions';\nimport {getMissedAttributesToAdd, getRelationsViewsIds} from './helpers';\nimport {getAllRelationsToSave, getAllRelationsByViewIds} from '../../../selectors';\n\nexport function* getCommonDataForValidation() {\n const entity: Entity = yield select(mdmModule.selectors.getEntity);\n const mode = yield select(mdmModule.selectors.getMode);\n const entityUri: string = yield select(mdmModule.selectors.getEntityUri);\n const metadata: Metadata = yield select(mdmModule.selectors.getMetadata);\n const modifiedEntity: Entity = yield select(mdmModule.selectors.getModifiedEntity, entityUri);\n const modifiedEntities: EntitiesMap = yield select(mdmModule.selectors.getModifiedEntities);\n const profileViews: ProfileViewConfig[] = yield select(mdmModule.selectors.getProfileViews);\n return {\n entity,\n modifiedEntity: mode === Mode.Viewing ? entity : modifiedEntity,\n entityUri,\n metadata,\n modifiedEntities: mode === Mode.Viewing ? {[entityUri]: entity} : modifiedEntities,\n profileViews,\n mode\n };\n}\ntype CommonDataForValidation = SagaReturnType<typeof getCommonDataForValidation>;\n\nexport function* getCommonDataForRemoteValidation() {\n const commonData: CommonDataForValidation = yield call(getCommonDataForValidation);\n const validationServicePath: string = yield select(mdmModule.selectors.getValidationServicePath);\n const tenant = yield select(mdmModule.selectors.getTenant);\n const severity = yield select(mdmModule.selectors.getValidationServiceSeverityLevels);\n return {...commonData, validationServicePath, tenant, severity};\n}\ntype CommonDataForRemoteValidation = SagaReturnType<typeof getCommonDataForRemoteValidation>;\n\nexport function* localValidation() {\n const {entityUri, metadata, modifiedEntities, modifiedEntity, profileViews}: CommonDataForValidation = yield call(\n getCommonDataForValidation\n );\n const relationViewsIds = getRelationsViewsIds(profileViews);\n const treeViewsIds = getProfileViewsIdsByTypes(profileViews, [ProfileViewTypes.HierarchyTree]);\n const relationsConnections: Connection[] = yield select(\n mdmModule.selectors.getAllRelationsToAddAndEdit,\n relationViewsIds\n );\n const relationsState = yield select(mdmModule.selectors.getRelations);\n const treesConnections: EditingConnection[] = yield select(\n mdmModule.selectors.getAllTreesEditingConnections,\n treeViewsIds\n );\n\n const entityErrors: AttributeError[] = validateEntityLocally(\n metadata,\n modifiedEntities,\n modifiedEntity,\n isAvailableAttributeTypeForProfile(profileViews)\n );\n const relationsErrors: AttributeError[] = relationsConnections.flatMap((connection) =>\n validateConnection(metadata, modifiedEntities, connection)\n );\n const treesErrors: AttributeError[] = treesConnections.flatMap((connection) =>\n validateHierarchyConnection(metadata, connection)\n );\n\n return [...entityErrors, ...relationsErrors, ...treesErrors].map((error) => ({\n ...error,\n path: evaluateErrorPath(\n {\n entityUri,\n metadata,\n connections: relationsConnections,\n entitiesMap: modifiedEntities,\n relationsState,\n relationViewsIds\n },\n error.uri || error.parentUri\n )\n }));\n}\n\nexport function* remoteValidation() {\n const {entityUri, metadata, modifiedEntity, mode, validationServicePath}: CommonDataForRemoteValidation =\n yield call(getCommonDataForRemoteValidation);\n const shouldValidate = !!validationServicePath && shouldUseValidationService(metadata, modifiedEntity.type);\n if (shouldValidate) {\n const rawErrors: ValidationServiceError[] = yield call(\n isTempUri(entityUri) ? remoteEntityValidation : remoteEntityDiffValidation\n );\n const {modifiedEntities} = yield call(getCommonDataForValidation);\n const errors: AttributeError[] = pipe(convertValidationServiceErrors, uniqBy(getErrorUniqKey))(rawErrors, {\n entityUri,\n metadata,\n entitiesMap: modifiedEntities\n });\n if (mode !== Mode.Viewing) {\n const attributesToAdd = getMissedAttributesToAdd({metadata, modifiedEntities, errors});\n if (attributesToAdd.length) {\n yield put(addAttributes(attributesToAdd));\n }\n }\n return errors;\n }\n return [];\n}\n\nfunction catchValidationServiceError(e) {\n console.warn('Validation service error', e);\n return [];\n}\n\nexport function* remoteEntityValidation() {\n const {\n mode,\n modifiedEntity,\n modifiedEntities,\n validationServicePath,\n tenant,\n severity\n }: CommonDataForRemoteValidation = yield call(getCommonDataForRemoteValidation);\n const preparedEntity = prepareEntityForValidation(modifiedEntity, modifiedEntities);\n try {\n const errors: SagaReturnType<typeof validateEntity> = yield call(validateEntity, {\n validationServicePath,\n entity: preparedEntity,\n tenant,\n severity,\n options: reject(isNil, [\n ValidationServiceOption.preserveURIs,\n mode === Mode.Editing ? ValidationServiceOption.validateDataPermissions : null\n ])\n });\n return errors;\n } catch (e) {\n return catchValidationServiceError(e);\n }\n}\n\nexport function* remoteEntityDiffValidation() {\n const {\n entityUri,\n mode,\n entity,\n modifiedEntity,\n modifiedEntities,\n validationServicePath,\n metadata,\n tenant,\n severity\n }: CommonDataForRemoteValidation = yield call(getCommonDataForRemoteValidation);\n\n const entityType: TEntityType = getEntityType(metadata, entity.type);\n const forceOvForUiUpdates = entityType?.forceOvForUiUpdates ?? true;\n const attributesDiff =\n mode === Mode.Viewing\n ? []\n : collectDiffForValidation(entity, modifiedEntity, modifiedEntities, forceOvForUiUpdates);\n try {\n const errors: SagaReturnType<typeof validateEntityChanges> = yield call(validateEntityChanges, {\n validationServicePath,\n uri: entityUri,\n diff: attributesDiff,\n tenant,\n severity,\n options: reject(isNil, [\n ValidationServiceOption.preserveURIs,\n ValidationServiceOption.updateAttributeUpdateDates,\n mode === Mode.Editing ? ValidationServiceOption.validateDataPermissions : null\n ])\n });\n return errors;\n } catch (e) {\n return catchValidationServiceError(e);\n }\n}\n\nexport function* remoteRelationsValidation() {\n const {\n entityUri,\n metadata,\n mode,\n modifiedEntity,\n modifiedEntities,\n validationServicePath,\n tenant,\n severity,\n profileViews\n }: CommonDataForRemoteValidation = yield call(getCommonDataForRemoteValidation);\n const shouldValidateRelations = yield select(mdmModule.selectors.getValidateRelations);\n if (validationServicePath && shouldValidateRelations) {\n const relationViewsIds = getRelationsViewsIds(profileViews);\n const allConnections: Connection[] = yield select(getAllRelationsByViewIds, relationViewsIds);\n const connectionsToSave: Connection[] = yield select(getAllRelationsToSave, relationViewsIds);\n const connectionsToValidate = connectionsToSave.filter((connection) =>\n shouldUseValidationService(metadata, connection.relation.relationType)\n );\n const connectionsToValidateUris = connectionsToValidate.map(getRelationUriFromConnection);\n const connections = allConnections.filter((connection) =>\n connectionsToValidateUris.includes(getRelationUriFromConnection(connection))\n );\n if (connectionsToValidate.length > 0) {\n let rawErrors: ValidationServiceError[] = [];\n const body = prepareConnectionsForValidation(\n connectionsToValidate,\n modifiedEntity,\n modifiedEntities,\n connections,\n metadata\n );\n try {\n const response: SagaReturnType<typeof validateRelations> = yield call(validateRelations, {\n validationServicePath,\n body,\n tenant,\n severity,\n options: reject(isNil, [\n ValidationServiceOption.preserveURIs,\n mode === Mode.Editing ? ValidationServiceOption.validateDataPermissions : null\n ])\n });\n rawErrors = Object.values(response.validated).flat();\n } catch (e) {\n return catchValidationServiceError(e);\n }\n const actualModifiedEntities: EntitiesMap = yield select(mdmModule.selectors.getModifiedEntities);\n const relationsState = yield select(mdmModule.selectors.getRelations);\n const errors: AttributeError[] = pipe(convertValidationServiceErrors, uniqBy(getErrorUniqKey))(rawErrors, {\n entityUri,\n metadata,\n entitiesMap: actualModifiedEntities,\n connections: connectionsToValidate,\n relationsState,\n relationViewsIds\n });\n const attributesToAdd = getMissedAttributesToAdd({\n metadata,\n modifiedEntities: actualModifiedEntities,\n connections: connectionsToValidate,\n errors\n });\n if (attributesToAdd.length) {\n yield put(addAttributes(attributesToAdd));\n }\n return errors;\n }\n }\n return [];\n}\n\nexport function* validateProfile() {\n const localErrors: SagaReturnType<typeof localValidation> = yield call(localValidation);\n const [remoteProfileErrors, remoteRelationsErrors]: [AttributeError[], AttributeError[]] = yield all([\n call(remoteValidation),\n call(remoteRelationsValidation)\n ]);\n const allErrors: AttributeError[] = uniqBy(getErrorUniqKey, [\n ...localErrors,\n ...remoteProfileErrors,\n ...remoteRelationsErrors\n ]);\n yield put(profile.errors.actions.errorsSet(allErrors));\n return allErrors.filter(isCriticalError).length === 0;\n}\n","import {ProfileViewConfig} from '@reltio/mdm-sdk';\nimport {profileViewsSet} from './actions';\n\nexport enum ProfileViewsActions {\n PROFILE_VIEWS_SET = 'PROFILE_VIEWS_SET'\n}\n\nexport type ProfileViewsState = ProfileViewConfig[];\nexport type ProfileViewsActionsTypes = ReturnType<typeof profileViewsSet>;\n","import {all, call, delay, fork, put, select, take, takeEvery, takeLatest, takeLeading} from 'redux-saga/effects';\nimport {\n always,\n assoc,\n complement,\n concat,\n equals,\n evolve,\n flatten,\n has,\n isNil,\n map,\n pick,\n pipe,\n partition,\n pluck,\n prop,\n propEq,\n uniq,\n unless,\n values,\n when\n} from 'ramda';\nimport i18n from 'ui-i18n';\nimport mdmModule, {profile} from '../../index';\nimport {addAttributes, addDefaultValuesAction, profileSaved} from '../actions';\nimport {ProfileActions} from '../actions/constants';\nimport {nanoid} from 'nanoid';\nimport {OpenRelationEditorReturnType, RelationsActions, SetRelationTypeReturnType} from '../relations/constants';\nimport {\n addToEntityRequiredAttributes,\n AttributeType,\n checkMetadataForCreate,\n checkMetadataForDelete,\n cloneEntity,\n collectAllDiffs,\n Command,\n createCommandExecutor,\n createRelationsCommandsFromConnections,\n createTemporaryEntity,\n deleteChangeRequestItem,\n EntitiesMap,\n entityCumulativeUpdate,\n findAllTemporaryRefEntityURI,\n getDataChangeRequest,\n getEntityType,\n getNotAppliedTreeCommands,\n getRequestErrorMessage,\n isAvailableAttributeTypeForProfile,\n isChangeRequestUri,\n isComplexAttribute,\n isEmptyEntity,\n isTempUri,\n mapTree,\n Metadata,\n Mode,\n Operation,\n optimizeCommands,\n prepareAttrDiff,\n ProfileViewConfig,\n Relation,\n RelationUriProcessor,\n removeEntity,\n replaceTempUriInCommands,\n runTaskAction,\n saveTemporaryEntities,\n saveTemporaryEntity,\n startProcessInstance,\n TEntityType,\n TreesState,\n updateTreesWithNewEntity\n} from '@reltio/mdm-sdk';\nimport {\n treeChanged,\n treeCommandsCleared,\n treeNodeRelationTypeChanged,\n treesResetInitialTrees,\n treesRestoreFromInitialTrees\n} from '../trees/actions';\nimport {modeEditingCanceled, modeUpdated} from '../mode/actions';\nimport {\n getConnectionsByViewId,\n getConnectionsTemporaryUrisForCreation,\n getDraftsForSaveByViewId,\n getEntity,\n getEntityUri,\n getIsSuggestMode,\n getMetadata,\n getModifiedEntities,\n getModifiedEntity,\n getProfileCancelNeedConfirm,\n getRelationsViewIds,\n getTenant,\n getTreeCommands,\n getTrees,\n getWorkflowEnvironmentUrl,\n getWorkflowPath\n} from '../../selectors';\nimport {\n clearEntity,\n entityCloneRequested,\n entityCreationRequested,\n entityLoaded,\n entityRemoveRequested,\n entityCreationWithAuthoringRequested,\n authoringDraftEntitiesLoaded\n} from '../entity/actions';\nimport {profileUpdateOperation} from '../operation/actions';\nimport {entityCreated} from '../modifiedEntities/actions';\nimport {ModeActions} from '../mode/constants';\nimport {TreesActions} from '../trees/constants';\nimport {EntityActions} from '../entity/constants';\nimport {\n closeNotification,\n entityDeletionFinished,\n errorSet,\n navigateTo,\n newEntityShown,\n openEntity,\n openNewEntityWithAuthoring,\n openPerspective,\n showNotification\n} from '../../ui/actions';\n\nimport {validateProfile} from '../errors/sagas';\nimport {getMissedAttributesToAdd} from '../errors/sagas/helpers';\nimport {ProfileViewsActions} from '../views/constants';\n\ntype AddDefaultValues =\n | OpenRelationEditorReturnType\n | ReturnType<typeof addAttributes>\n | SetRelationTypeReturnType\n | ReturnType<typeof treeNodeRelationTypeChanged>;\n\nfunction* addDefaultValues(action: AddDefaultValues) {\n const metadata = yield select(mdmModule.selectors.getMetadata);\n const mode = yield select(mdmModule.selectors.getMode);\n switch (action.type) {\n case RelationsActions.OPEN_RELATION_EDITOR: {\n const {id, connection} = action.payload;\n if (connection.relation.relationType) {\n yield put(\n addDefaultValuesAction({\n viewId: id,\n metadata,\n mode,\n parentUri: connection.relation.object.uri\n })\n );\n }\n break;\n }\n\n case ProfileActions.ADD_ATTRIBUTES: {\n const attributes = action.payload;\n for (const {attributeType, parentUri, viewId} of attributes) {\n if (isComplexAttribute(attributeType)) {\n yield put(\n addDefaultValuesAction({\n viewId,\n attributeType,\n parentUri,\n metadata,\n mode\n })\n );\n }\n }\n break;\n }\n\n case RelationsActions.SET_RELATION_TYPE: {\n const {id, relationUri} = action.payload;\n yield put(\n addDefaultValuesAction({\n viewId: id,\n metadata,\n mode,\n parentUri: relationUri\n })\n );\n break;\n }\n\n case TreesActions.TREE_NODE_RELATION_TYPE_CHANGED: {\n const {id, node} = action.payload;\n yield put(\n addDefaultValuesAction({\n viewId: id,\n metadata,\n mode,\n parentUri: node?.relation?.uri\n })\n );\n break;\n }\n }\n}\n\nfunction* saveTrees(commandExecutor, tempUrisMap = null) {\n const trees = yield select(getTrees);\n const notAppliedTreeCommands = getNotAppliedTreeCommands(trees?.trees);\n const treeCommands: Command[] = yield select(getTreeCommands);\n const allCommands = optimizeCommands([...treeCommands, ...notAppliedTreeCommands]);\n if (allCommands?.length) {\n const preparedCommands = when(always(tempUrisMap), replaceTempUriInCommands(tempUrisMap))(allCommands);\n yield call(commandExecutor, preparedCommands);\n yield put(treeCommandsCleared());\n }\n}\nfunction* getModifiedEntityDiff(tempUrisMap) {\n const entity = yield select(getEntity);\n const entityUri = yield select(getEntityUri);\n const modifiedEntity = yield select(getModifiedEntity, entityUri);\n const metadata = yield select(getMetadata);\n const entityType: TEntityType = getEntityType(metadata, entity.type);\n const forceOvForUiUpdates = entityType?.forceOvForUiUpdates ?? true;\n const allDiff = collectAllDiffs(entity, modifiedEntity, forceOvForUiUpdates);\n return prepareAttrDiff(tempUrisMap, allDiff);\n}\nfunction* saveTemporaryModifiedEntities(dcrProcessor?) {\n const connectionsUriForCreation = yield select(getConnectionsTemporaryUrisForCreation);\n const modifiedEntities = yield select(getModifiedEntities);\n const entityUri = yield select(getEntityUri);\n const modifiedEntity = yield select(getModifiedEntity, entityUri);\n const entityUrisForCreation = findAllTemporaryRefEntityURI(modifiedEntity);\n const urisForCreation = concat(entityUrisForCreation, connectionsUriForCreation);\n return yield call(saveTemporaryEntities, modifiedEntities, urisForCreation, dcrProcessor);\n}\nfunction* startDataChangeRequestReview(dcrProcessor, entityUri?) {\n const objectURIs = dcrProcessor.getDCRObjectUris();\n const workflowPath = yield select(getWorkflowPath);\n const environment = yield select(getWorkflowEnvironmentUrl);\n const tenant = yield select(getTenant);\n if (objectURIs?.length) {\n const workflowResult = yield call(startProcessInstance, {\n workflowPath,\n processType: 'dataChangeRequestReview',\n objectURIs: uniq([entityUri, ...objectURIs, dcrProcessor.getDCRUri()]).filter(complement(isNil)),\n tenant,\n environment\n });\n if (workflowResult?.status !== 'OK') {\n console.warn(workflowResult);\n }\n }\n}\nfunction* saveRelationsByViewId(commandExecutor, entityUri, viewId, tempUrisMap) {\n const connections = yield select(getConnectionsByViewId, viewId);\n const draftsForSave = yield select(getDraftsForSaveByViewId, viewId);\n const commands = createRelationsCommandsFromConnections(connections, draftsForSave, tempUrisMap, entityUri);\n if (commands.length) {\n yield call(commandExecutor, commands);\n }\n}\nfunction* saveRelations(commandExecutor, tempUrisMap, entityUri?) {\n const viewIds = yield select(getRelationsViewIds);\n const loadedEntityUri = yield select(getEntityUri);\n for (const viewId of viewIds) {\n yield fork(saveRelationsByViewId, commandExecutor, entityUri || loadedEntityUri, viewId, tempUrisMap);\n }\n}\n\nfunction* updateRelationUriInTrees(relationUriProcessor: RelationUriProcessor) {\n if (!relationUriProcessor.hasNewUri()) {\n return;\n }\n\n const treesState: TreesState = yield select(getTrees);\n for (const [treeId, tree] of Object.entries(treesState.trees)) {\n if (tree.root) {\n const processRelation = (relation?: Relation) =>\n when(prop('uri'), assoc('uri', relationUriProcessor.getUri(relation?.uri)))(relation);\n const newRoot = mapTree(tree.root, {\n nodeProcessing: (node) =>\n pipe(\n (node) => ({...node}),\n unless(\n has('editingMode'),\n evolve({\n relation: processRelation,\n relations: map(processRelation)\n })\n )\n )(node)\n });\n\n if (!equals(tree.root, newRoot)) {\n yield put(treeChanged({id: treeId, tree: newRoot}));\n }\n }\n }\n}\n\nfunction* updateProfile() {\n try {\n const isAlwaysCreateDCR = yield select(getIsSuggestMode);\n const {commandExecutor, dcrProcessor, relationUriProcessor} = createCommandExecutor({\n alwaysCreateDCR: isAlwaysCreateDCR,\n dcrUri: null\n });\n const savedEntitiesUrisMap: Record<string, string> = yield call(saveTemporaryModifiedEntities, dcrProcessor);\n yield all([call(saveTrees, commandExecutor), call(saveRelations, commandExecutor, savedEntitiesUrisMap)]);\n yield call(updateRelationUriInTrees, relationUriProcessor);\n const entityDiff = yield call(getModifiedEntityDiff, savedEntitiesUrisMap);\n const entityUri = yield select(getEntityUri);\n let updateResult;\n if (entityDiff?.length) {\n updateResult = yield call(entityCumulativeUpdate, {\n uri: entityUri,\n diff: entityDiff,\n uriPreprocessor: dcrProcessor.enhanceUriWithDCR\n });\n }\n if (isAlwaysCreateDCR || isChangeRequestUri(updateResult?.uri)) {\n updateResult && dcrProcessor.updateDCRUriFromResponse(updateResult);\n yield call(startDataChangeRequestReview, dcrProcessor, entityUri);\n yield put(treesRestoreFromInitialTrees());\n window.alert(i18n.text('Your changes are saved as pending and have been sent for review'));\n } else if (updateResult) {\n yield put(entityLoaded(updateResult));\n const {trees} = yield select(mdmModule.selectors.getTrees);\n const updatedTrees = updateTreesWithNewEntity(\n pick(['uri', 'label', 'secondaryLabel', 'type'], updateResult),\n trees\n );\n for (const tree of updatedTrees) {\n yield put(profile.trees.actions.treeChanged({id: tree.id, tree: tree.root}));\n }\n }\n yield put(modeUpdated(Mode.Viewing));\n yield put(profileSaved());\n } catch (error) {\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n}\n\nfunction* handleNewEntityLoaded() {\n yield take(EntityActions.ENTITY_LOADED);\n yield put(profileSaved());\n}\n\nfunction* saveChanges(dcrUri, isSuggestMode) {\n const entityUri = yield select(getEntityUri);\n const modifiedEntity = yield select(mdmModule.selectors.getModifiedEntity, entityUri);\n const {commandExecutor, dcrProcessor} = createCommandExecutor({\n alwaysCreateDCR: isSuggestMode,\n dcrUri\n });\n const savedEntitiesUrisMap: Record<string, string> = yield call(saveTemporaryModifiedEntities, dcrProcessor);\n const savedEntityUri = yield call(saveTemporaryEntity, modifiedEntity, savedEntitiesUrisMap, dcrProcessor);\n yield all([\n call(saveTrees, commandExecutor, {[entityUri]: savedEntityUri}),\n call(saveRelations, commandExecutor, savedEntitiesUrisMap, savedEntityUri)\n ]); // entityUri as argument\n return {savedEntityUri, dcrProcessor};\n}\n\nfunction* checkIfEntityCanBeSaved() {\n const entityUri = yield select(getEntityUri);\n const modifiedEntity = yield select(mdmModule.selectors.getModifiedEntity, entityUri);\n if (isEmptyEntity(modifiedEntity)) {\n const notificationId = nanoid();\n yield put(\n showNotification({\n id: notificationId,\n text: i18n.text('Please fill out some fields.'),\n actions: []\n })\n );\n return false;\n }\n return true;\n}\nfunction* saveNewProfile() {\n try {\n const isSuggestMode = yield select(getIsSuggestMode);\n const canBeSaved = yield call(checkIfEntityCanBeSaved);\n if (!canBeSaved) {\n return;\n }\n const {dcrProcessor, savedEntityUri} = yield call(saveChanges, null, isSuggestMode);\n if (isSuggestMode) {\n yield call(startDataChangeRequestReview, dcrProcessor);\n window.alert(i18n.text('Your changes are saved as pending and have been sent for review'));\n }\n yield put(modeUpdated(Mode.Viewing));\n if (isSuggestMode) {\n yield put(openPerspective({perspectiveId: null, viewId: null})); // open default perspective\n yield put(clearEntity());\n } else {\n yield put(openEntity({uri: savedEntityUri, viewId: null}));\n yield fork(handleNewEntityLoaded);\n }\n } catch (error) {\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n}\n\nfunction* cleanUpDcr(dcrUri: string) {\n const dcrResponse = yield call(getDataChangeRequest, dcrUri);\n const changeIds: string[] = pipe(prop('changes'), values, flatten, pluck('id'))(dcrResponse);\n try {\n yield all(\n changeIds.map((id) =>\n call(deleteChangeRequestItem, {\n dcrUri,\n changeItemId: id\n })\n )\n );\n } catch (error) {\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n}\n\nfunction* saveExistingDraft(dcrUri: string, taskId: string) {\n yield call(cleanUpDcr, dcrUri);\n const {savedEntityUri} = yield call(saveChanges, dcrUri, true);\n const workflowPath = yield select(getWorkflowPath);\n const environment = yield select(getWorkflowEnvironmentUrl);\n const tenant = yield select(getTenant);\n yield call(runTaskAction, {\n workflowPath,\n environment,\n tenant,\n taskId,\n action: 'Approve'\n });\n yield put(modeUpdated(Mode.Viewing));\n yield put(openEntity({uri: savedEntityUri, viewId: null}));\n yield fork(handleNewEntityLoaded);\n}\n\nfunction* saveDraft(action) {\n const {dcrUri, userAction, taskId} = action.payload;\n try {\n const canBeSaved = yield call(checkIfEntityCanBeSaved);\n if (!canBeSaved) {\n return;\n }\n yield put(modeUpdated(userAction === 'saveDraft' ? Mode.Suggesting : Mode.Editing, true));\n yield put(profileUpdateOperation(Operation.Saving));\n const isValid = yield call(validateProfile);\n if (userAction === 'saveDraft') {\n if (dcrUri) {\n yield call(cleanUpDcr, dcrUri);\n yield call(saveChanges, dcrUri, true);\n } else {\n const {dcrProcessor} = yield call(saveChanges, null, true);\n yield call(startDataChangeRequestReview, dcrProcessor);\n const changeRequest = dcrProcessor.getDCRUri();\n yield put(\n navigateTo({\n url: '../authoring',\n searchParams: {entityUri: `${changeRequest}`},\n options: {replace: true}\n })\n );\n }\n window.alert(i18n.text('Your changes are saved as pending and have been sent for review'));\n } else if (isValid) {\n if (dcrUri) {\n yield call(saveExistingDraft, dcrUri, taskId);\n } else {\n const {savedEntityUri} = yield call(saveChanges, null, false);\n yield put(modeUpdated(Mode.Viewing));\n yield put(openEntity({uri: savedEntityUri, viewId: null}));\n yield fork(handleNewEntityLoaded);\n }\n } else if (!isValid) {\n yield put(modeUpdated(Mode.Suggesting, true));\n }\n } catch (error) {\n yield put(modeUpdated(Mode.Suggesting, true));\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n yield put(profileUpdateOperation(null));\n}\n\nfunction* saveProfile() {\n yield put(profileUpdateOperation(Operation.Saving));\n if (yield call(validateProfile)) {\n const entityUri = yield select(getEntityUri);\n if (isTempUri(entityUri)) {\n yield call(saveNewProfile);\n } else {\n yield call(updateProfile);\n }\n }\n yield put(profileUpdateOperation(null));\n}\n\nfunction* handleModeUpdating(action) {\n const {mode, silent} = action.payload;\n if (mode !== Mode.Viewing && !silent) {\n const entity = yield select(mdmModule.selectors.getEntity);\n const modifiedEntity = yield select(mdmModule.selectors.getModifiedEntity, entity?.uri);\n const metadata = yield select(mdmModule.selectors.getMetadata);\n if (entity && !modifiedEntity && metadata) {\n const profileViews: ProfileViewConfig[] = yield select(mdmModule.selectors.getProfileViews);\n const preparedEntity = addToEntityRequiredAttributes({\n entity,\n metadata,\n mode,\n attrTypeFilter: isAvailableAttributeTypeForProfile(profileViews || [])\n });\n yield put(entityCreated(preparedEntity));\n const modifiedEntities: EntitiesMap = yield select(mdmModule.selectors.getModifiedEntities);\n const errors = yield select(mdmModule.selectors.getProfileErrors);\n const attributesToAdd = getMissedAttributesToAdd({metadata, modifiedEntities, errors});\n if (attributesToAdd.length) {\n yield put(addAttributes(attributesToAdd));\n }\n }\n }\n}\n\nfunction* createProfile(action: ReturnType<typeof entityCreationRequested>) {\n const {entityTypeUri} = action.payload;\n const metadata: Metadata = yield select(mdmModule.selectors.getMetadata);\n const entityType = getEntityType(metadata, entityTypeUri);\n const attributes: AttributeType[] = prop('attributes', entityType);\n const mode = checkMetadataForCreate(Mode.Editing, entityType) ? Mode.Editing : Mode.Suggesting;\n const tempEntity = createTemporaryEntity({entityTypeUri, attributeTypes: attributes, metadata, mode});\n yield put(newEntityShown({entity: tempEntity}));\n yield put(entityLoaded(tempEntity));\n // In situations when we create one profile, and then without saving create another one,\n // we need to update mode to \"Viewing\" for DL/trees/errors profile store slices resetting to init state.\n yield put(modeUpdated(Mode.Viewing));\n // we need this pause to make sure that all views/editors from previous entity were unmounted\n // case: SingleAttributeView, useLookupResolver from required attribute can fire unexpected onChange event\n yield delay(0);\n const profileViews: ProfileViewConfig[] = yield select(mdmModule.selectors.getProfileViews);\n if (!profileViews) {\n // awaiting updated profile views\n yield take(ProfileViewsActions.PROFILE_VIEWS_SET);\n }\n yield put(modeUpdated(mode));\n yield put(treesResetInitialTrees());\n}\n\nfunction* createProfileWithAuthoring(action: ReturnType<typeof entityCreationWithAuthoringRequested>) {\n const {entityTypeUri} = action.payload;\n const metadata: Metadata = yield select(mdmModule.selectors.getMetadata);\n const entityType = getEntityType(metadata, entityTypeUri);\n const attributes: AttributeType[] = prop('attributes', entityType);\n const mode = Mode.Suggesting;\n const tempEntity = createTemporaryEntity({entityTypeUri, attributeTypes: attributes, metadata, mode});\n yield put(openNewEntityWithAuthoring({entity: tempEntity}));\n yield put(entityLoaded(tempEntity));\n yield put(modeUpdated(mode));\n}\n\nfunction* createEntitiesFromAuthoringDraft(action: ReturnType<typeof authoringDraftEntitiesLoaded>) {\n const {mainEntityUri, tempEntities} = action.payload;\n const [[mainEntity], restEntities] = partition(propEq('uri', mainEntityUri), tempEntities);\n for (const tempEntity of restEntities) {\n yield put(entityCreated(tempEntity));\n }\n yield put(entityLoaded(mainEntity));\n yield put(modeUpdated(Mode.Suggesting));\n}\n\nfunction* cloneProfile(action: ReturnType<typeof entityCloneRequested>) {\n const {\n payload: {entityUri, data}\n } = action;\n yield put(profileUpdateOperation(Operation.Cloning));\n try {\n const newEntity = yield call(cloneEntity, entityUri, data);\n yield put(newEntityShown({entity: newEntity}));\n yield put(entityLoaded(newEntity));\n yield put(modeUpdated(Mode.Editing));\n yield put(treesResetInitialTrees());\n const notificationId = nanoid();\n const metadata = yield select(mdmModule.selectors.getMetadata);\n const entityType = getEntityType(metadata, newEntity.type);\n const canRemove = checkMetadataForDelete(Mode.Editing, entityType);\n yield put(\n showNotification({\n id: notificationId,\n type: 'cloneAction',\n autoHideDuration: 10000,\n text: i18n.text('Profile is cloned successfully. You can modify the attributes if required.'),\n actions: canRemove\n ? [\n {\n label: i18n.text('Undo'),\n needConfirmation: true,\n confirmationText: i18n.text('Are you sure you want to undo the cloning process?'),\n confirmationDescription: i18n.text(\n 'Undoing the cloning process will delete the cloned profile. Are you sure you want to proceed?'\n ),\n applyAction: entityRemoveRequested({entityUri: newEntity.uri}),\n cancelAction: closeNotification(notificationId)\n }\n ]\n : []\n })\n );\n } catch (error) {\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n yield put(profileUpdateOperation(null));\n}\n\nfunction* removeProfile(action: ReturnType<typeof entityRemoveRequested>) {\n const {entityUri} = action.payload;\n if (!isTempUri(entityUri)) {\n try {\n yield call(removeEntity, entityUri);\n yield put(entityDeletionFinished());\n } catch (error) {\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n }\n}\n\nfunction* cancelProfileEditing() {\n const needConfirmation = yield select(getProfileCancelNeedConfirm);\n if (needConfirmation && !confirm(i18n.text('Are you sure you want to cancel changes for this Profile?'))) {\n return;\n }\n yield put(modeEditingCanceled());\n}\n\nexport function* saveProfileSaga() {\n yield takeLeading([ProfileActions.SAVE_PROFILE], saveProfile);\n}\n\nexport function* saveDraftSaga() {\n yield takeLeading([ProfileActions.SAVE_DRAFT], saveDraft);\n}\nexport function* addDefaultValuesSaga() {\n yield takeEvery(\n [\n RelationsActions.OPEN_RELATION_EDITOR,\n ProfileActions.ADD_ATTRIBUTES,\n RelationsActions.SET_RELATION_TYPE,\n TreesActions.TREE_NODE_RELATION_TYPE_CHANGED\n ],\n addDefaultValues\n );\n}\nexport function* handleModeUpdatingSaga() {\n yield takeEvery([ModeActions.MODE_UPDATED], handleModeUpdating);\n}\n\nexport function* crateProfileSaga() {\n yield takeEvery([EntityActions.ENTITY_CREATION_REQUESTED], createProfile);\n}\n\nexport function* createProfileWithAuthoringSaga() {\n yield takeEvery([EntityActions.ENTITY_CREATION_WITH_AUTHORING_REQUESTED], createProfileWithAuthoring);\n}\n\nexport function* createEntitiesFromAuthoringDraftSaga() {\n yield takeEvery([EntityActions.ENTITY_AUTHORING_DRAFT_ENTITIES_LOADED], createEntitiesFromAuthoringDraft);\n}\n\nexport function* removeProfileSaga() {\n yield takeEvery([EntityActions.ENTITY_REMOVE_REQUESTED], removeProfile);\n}\n\nexport function* cloneProfileSaga() {\n yield takeEvery([EntityActions.CLONE_ENTITY], cloneProfile);\n}\n\nexport function* handleValidateProfileSaga() {\n yield takeLatest([ProfileActions.VALIDATE_PROFILE], validateProfile);\n}\n\nexport function* cancelProfileEditingSaga() {\n yield takeLeading([ModeActions.MODE_CANCEL_EDITING], cancelProfileEditing);\n}\nconst sagas = [\n cancelProfileEditingSaga,\n addDefaultValuesSaga,\n saveProfileSaga,\n handleModeUpdatingSaga,\n crateProfileSaga,\n handleValidateProfileSaga,\n removeProfileSaga,\n cloneProfileSaga,\n createProfileWithAuthoringSaga,\n createEntitiesFromAuthoringDraftSaga,\n saveDraftSaga\n];\n\nexport default sagas;\n","import {ProfileOperationActions, ProfileOperationActionsTypes, ProfileOperationState} from '../constants';\n\nconst initState = null as ProfileOperationState;\nconst operationReducer = (state = initState, action: ProfileOperationActionsTypes): ProfileOperationState => {\n switch (action.type) {\n case ProfileOperationActions.PROFILE_OPERATION_UPDATE:\n return action.payload;\n default:\n return state;\n }\n};\n\nexport default operationReducer;\n","import {ProfileViewConfig} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {ProfileViewsActions} from '../constants';\n\nexport const profileViewsSet = createStandardAction<ProfileViewsActions.PROFILE_VIEWS_SET, ProfileViewConfig[]>(\n ProfileViewsActions.PROFILE_VIEWS_SET\n);\n","import {ProfileViewsActions, ProfileViewsActionsTypes, ProfileViewsState} from '../constants';\n\nconst initState = null as ProfileViewsState;\nconst profileViewsReducer = (state = initState, action: ProfileViewsActionsTypes): ProfileViewsState => {\n switch (action.type) {\n case ProfileViewsActions.PROFILE_VIEWS_SET:\n return action.payload;\n default:\n return state;\n }\n};\n\nexport default profileViewsReducer;\n","import {sidePanelViewsLoaded} from './actions';\n\nexport enum SidePanelViewsActions {\n SIDE_PANEL_VIEWS_LOADED = 'SIDE_PANEL_VIEWS_LOADED'\n}\nexport type SidePanelViewsActionsTypes = ReturnType<typeof sidePanelViewsLoaded>;\n","import {SidePanelViewConfig} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {SidePanelViewsActions} from '../constants';\n\nexport const sidePanelViewsLoaded = createStandardAction<\n SidePanelViewsActions.SIDE_PANEL_VIEWS_LOADED,\n SidePanelViewConfig[]\n>(SidePanelViewsActions.SIDE_PANEL_VIEWS_LOADED);\n","import {SidePanelViewsActions, SidePanelViewsActionsTypes} from '../constants';\n\nconst initState = [];\n\nconst sidePanelViewsReducer = (state: string[] = initState, action: SidePanelViewsActionsTypes) => {\n switch (action.type) {\n case SidePanelViewsActions.SIDE_PANEL_VIEWS_LOADED:\n return action.payload;\n default:\n return state;\n }\n};\n\nexport default sidePanelViewsReducer;\n","import * as actions from './actions';\nimport * as dependentLookups from './dependentLookups';\nimport * as entity from './entity';\nimport * as errors from './errors';\nimport * as history from './history';\nimport * as lastLoadedTime from './lastLoadedTime';\nimport * as lookups from './lookups';\nimport * as mode from './mode';\nimport * as modifiedEntities from './modifiedEntities';\nimport * as relations from './relations';\nimport * as selectors from './selectors';\nimport * as constants from './actions/constants';\nimport sagas from './sagas';\nimport * as trees from './trees';\nimport * as operation from './operation';\nimport * as views from './views';\nimport * as sidePanelViews from './sidePanelViews';\n\nimport {combineReducers} from 'redux';\n\nconst reducer = combineReducers({\n dependentLookups: dependentLookups.reducer,\n entity: entity.reducer,\n errors: errors.reducer,\n history: history.reducer,\n lastLoadedTime: lastLoadedTime.reducer,\n lookups: lookups.reducer,\n mode: mode.reducer,\n modifiedEntities: modifiedEntities.reducer,\n relations: relations.reducer,\n trees: trees.reducer,\n operation: operation.reducer,\n views: views.reducer,\n sidePanelViews: sidePanelViews.reducer\n});\n\nexport {\n actions,\n constants,\n dependentLookups,\n entity,\n errors,\n history,\n lastLoadedTime,\n lookups,\n mode,\n modifiedEntities,\n reducer,\n relations,\n sagas,\n selectors,\n sidePanelViews,\n trees,\n operation,\n views\n};\n","import {SearchNavigationData} from '@reltio/mdm-sdk';\n\ntype Payload = {\n winnerUri: string;\n losersUris: string[];\n};\n\nconst replaceWithWinnerUri = (searchNavigationData: SearchNavigationData, winnerUri: string): SearchNavigationData => {\n let {uri, index, total, cache} = searchNavigationData;\n if (winnerUri && winnerUri !== uri) {\n if (cache && cache.includes(uri)) {\n cache = [...cache];\n const winnerIndex = cache.indexOf(winnerUri);\n let uriIndex = cache.indexOf(uri);\n if (winnerIndex >= 0) {\n cache.splice(winnerIndex, 1);\n total--;\n if (winnerIndex < uriIndex) {\n index--;\n }\n }\n uriIndex = cache.indexOf(uri);\n cache.splice(uriIndex, 1, winnerUri);\n }\n uri = winnerUri;\n return {\n ...searchNavigationData,\n uri,\n index,\n cache,\n total\n };\n }\n return searchNavigationData;\n};\n\nconst removeLosersUris = (searchNavigationData: SearchNavigationData, losersUris: string[]): SearchNavigationData => {\n const {cache = [], index, total, uri} = searchNavigationData;\n const losersInCache = losersUris.filter((uri) => cache.includes(uri));\n if (losersInCache.length === 0) {\n return searchNavigationData;\n }\n const updatedTotal = total - losersInCache.length;\n const uriIndex = cache.indexOf(uri);\n let updatedIndex = index;\n for (const loser of losersInCache) {\n const loserIndex = cache.indexOf(loser);\n if (loserIndex < uriIndex) {\n updatedIndex--;\n }\n }\n const updatedCache = cache.filter((uri) => !losersInCache.includes(uri));\n\n return {\n ...searchNavigationData,\n cache: updatedCache,\n index: updatedIndex,\n total: updatedTotal\n };\n};\n\nexport const applyMergeToSearchNavigationData = (\n searchNavigationData: SearchNavigationData,\n payload: Payload\n): SearchNavigationData => {\n const {winnerUri, losersUris = []} = payload;\n const updatedSearchNavigationData = replaceWithWinnerUri(searchNavigationData, winnerUri);\n return removeLosersUris(updatedSearchNavigationData, losersUris);\n};\n","import {SearchNavigationData} from '@reltio/mdm-sdk';\nimport {AnyAction} from 'redux';\nimport {constants as searchConstants, actions as searchActions} from '../../search';\nimport {getSearchNavigationData} from '../../selectors';\nimport {applyMergeToSearchNavigationData} from './helpers';\nimport {ProfileActions} from '../../profile/actions/constants';\nimport {ModifiedEntitiesActions} from '../../profile/modifiedEntities/constants';\n\nexport const searchNavigationListener = (action: AnyAction, state, dispatch: (action: AnyAction) => void) => {\n switch (action.type) {\n case searchConstants.UPDATE_SEARCH_NAVIGATION_DATA_ON_MERGE: {\n const searchNavigationData: SearchNavigationData = getSearchNavigationData(state);\n if (searchNavigationData) {\n dispatch(\n searchActions.updateSearchNavigationDataFields(\n applyMergeToSearchNavigationData(searchNavigationData, action.payload)\n )\n );\n }\n break;\n }\n }\n};\n\nexport const expandInvalidRelatonsListener = (callback: () => void) => (action: AnyAction) => {\n if (action.type === ProfileActions.SAVE_PROFILE) {\n callback();\n }\n};\n\nexport const cleanseLoadingListener = (callback: (value: boolean) => void) => (action: AnyAction) => {\n if (action.type === ModifiedEntitiesActions.CLEANSE_LOADING) {\n callback(action.payload.isLoading);\n }\n};\n","import {useDispatch, useSelector} from 'react-redux';\nimport {useCallback} from 'react';\nimport {\n AttributeType,\n Entity,\n HistoryDiff,\n ImageAttributeValue,\n Mode,\n PivotingValue,\n SearchNavigationData,\n SearchState,\n Lookups,\n Connection,\n HistoryEvent,\n HistoryMode,\n HistorySlice,\n AttributeError,\n RequestNextPageOfAttributeValuesPayload,\n LookupsForTypeResolvedPayload,\n RelationsLoadedPayload,\n CompactRelationType,\n AddAttributesPayload,\n ModifyAttributePayload,\n RemoveAttributePayload\n} from '@reltio/mdm-sdk';\nimport {\n getAbsoluteImagePath,\n getApiPath,\n getAttributePresentations,\n getAttributesSortingStrategy,\n getAutoCloseInterval,\n getCollaborationPath,\n getDataTenants,\n getDateMask,\n getDateTimeMask,\n getDefaultMaxValues,\n getDtssPath,\n getEntity,\n getEntityUriWithDataTenant,\n getEntityWithDiff,\n getEnvironment,\n getExportPath,\n getHistoryDiff,\n getHistoryEvent,\n getHistoryMode,\n getHistorySlice,\n getImageAttributesFieldsOrder,\n getImageServicePath,\n getIsEditableMode,\n getIsViewMode,\n getLookupAutocomplete,\n getLookups,\n getMetadata,\n getMode,\n getModifiedEntities,\n getPivotingAttributes,\n getProfileErrors,\n getProfileLastLoadedTime,\n getReltioPath,\n getSearchNavigationData,\n getSearchProviderData,\n getServicesPath,\n getShowEntityId,\n getTenantObject,\n getUIPath,\n getUiError,\n getUser,\n getWorkflowEnvironmentUrl,\n getWorkflowPath,\n isCollaborationEnabled as checkIsCollaborationEnabled,\n isWorkflowEnabled as checkIsWorkflowEnabled,\n getRelations,\n getDependentLookups,\n getSearchOptions,\n getActivityFilter,\n getGlobalFilter,\n getUIConfigLayout\n} from './selectors';\nimport * as searchActions from './search/actions';\nimport * as uiActions from './ui/actions';\nimport * as profileActions from './profile/actions';\nimport * as modifiedEntitiesActions from './profile/modifiedEntities/actions';\nimport * as errorsActions from './profile/errors/actions';\nimport * as entityActions from './profile/entity/actions';\nimport * as dependentLookupsActions from './profile/dependentLookups/actions';\nimport * as lookupsActions from './profile/lookups/actions';\nimport * as historyActions from './profile/history/actions';\nimport * as modeActions from './profile/mode/actions';\nimport * as relationsActions from './profile/relations/actions';\nimport {searchNavigationListener, expandInvalidRelatonsListener, cleanseLoadingListener} from './utils/listeners';\n\nconst actions = {\n search: searchActions,\n ui: uiActions,\n profile: profileActions,\n modifiedEntities: modifiedEntitiesActions,\n errors: errorsActions,\n entity: entityActions,\n dependentLookups: dependentLookupsActions,\n lookups: lookupsActions,\n history: historyActions,\n mode: modeActions,\n relations: relationsActions\n};\n\nconst useMdmValues = () => {\n const autoCloseInterval = useSelector(getAutoCloseInterval);\n const uiError = useSelector(getUiError);\n const workflowEnvironmentUrl = useSelector(getWorkflowEnvironmentUrl);\n const exportPath = useSelector(getExportPath);\n const absoluteImagePath = useSelector(getAbsoluteImagePath);\n const uiPath = useSelector(getUIPath);\n const dtssPath = useSelector(getDtssPath);\n const servicesPath = useSelector(getServicesPath);\n const workflowPath = useSelector(getWorkflowPath);\n const imageServicePath = useSelector(getImageServicePath);\n const reltioPath = useSelector(getReltioPath);\n const apiPath = useSelector(getApiPath);\n const collaborationPath = useSelector(getCollaborationPath);\n const imageAttributesFieldsOrder = useSelector(getImageAttributesFieldsOrder);\n const showEntityId = useSelector(getShowEntityId);\n const pivotingAttributes = useSelector(getPivotingAttributes);\n const dateMask = useSelector(getDateMask);\n const dateTimeMask = useSelector(getDateTimeMask);\n const attributePresentations = useSelector(getAttributePresentations);\n const defaultMaxValues = useSelector(getDefaultMaxValues);\n const attributesSortingStrategy = useSelector(getAttributesSortingStrategy);\n const lookupAutocomplete = useSelector(getLookupAutocomplete);\n const modifiedEntities = useSelector(getModifiedEntities);\n const relations = useSelector(getRelations);\n const profileErrors = useSelector(getProfileErrors);\n const entity = useSelector(getEntity);\n const entityWithDiff = useSelector(getEntityWithDiff);\n const entityUriWithDataTenant = useSelector(getEntityUriWithDataTenant);\n const mode = useSelector(getMode);\n const isViewMode = useSelector(getIsViewMode);\n const isEditableMode = useSelector(getIsEditableMode);\n const historyDiff = useSelector(getHistoryDiff);\n const historyMode = useSelector(getHistoryMode);\n const historySlice = useSelector(getHistorySlice);\n const historyEvent = useSelector(getHistoryEvent);\n const profileLastLoadedTime = useSelector(getProfileLastLoadedTime);\n const lookups = useSelector(getLookups);\n const dependentLookups = useSelector(getDependentLookups);\n const metadata = useSelector(getMetadata);\n const user = useSelector(getUser);\n const tenant = useSelector(getTenantObject);\n const environment = useSelector(getEnvironment);\n const dataTenants = useSelector(getDataTenants);\n const searchNavigationData = useSelector(getSearchNavigationData);\n const searchProviderData = useSelector(getSearchProviderData);\n const searchOptions = useSelector(getSearchOptions);\n const activityFilter = useSelector(getActivityFilter);\n const globalFilter = useSelector(getGlobalFilter);\n const isWorkflowEnabled = useSelector(checkIsWorkflowEnabled);\n const isCollaborationEnabled = useSelector(checkIsCollaborationEnabled);\n const uiConfigLayout = useSelector(getUIConfigLayout);\n\n return {\n autoCloseInterval,\n uiError,\n workflowEnvironmentUrl,\n exportPath,\n absoluteImagePath,\n uiPath,\n dtssPath,\n servicesPath,\n workflowPath,\n imageServicePath,\n reltioPath,\n apiPath,\n collaborationPath,\n imageAttributesFieldsOrder,\n showEntityId,\n pivotingAttributes,\n dateMask,\n dateTimeMask,\n attributePresentations,\n defaultMaxValues,\n attributesSortingStrategy,\n lookupAutocomplete,\n modifiedEntities,\n relations,\n profileErrors,\n entity,\n entityWithDiff,\n entityUriWithDataTenant,\n mode,\n isViewMode,\n isEditableMode,\n historyDiff,\n historyMode,\n historySlice,\n historyEvent,\n profileLastLoadedTime,\n lookups,\n dependentLookups,\n metadata,\n user,\n tenant,\n environment,\n dataTenants,\n globalFilter,\n searchOptions,\n activityFilter,\n searchNavigationData,\n searchProviderData,\n isWorkflowEnabled,\n isCollaborationEnabled,\n uiConfigLayout\n };\n};\n\nconst useMdmActions = () => {\n const dispatch = useDispatch();\n\n const openSearch = useCallback((payload: SearchState) => dispatch(actions.ui.openSearch(payload)), [dispatch]);\n\n const openHistoryEvent = useCallback(\n (payload: {entityUri: string; historyEvent: HistoryEvent}) => dispatch(actions.ui.openHistoryEvent(payload)),\n [dispatch]\n );\n\n const openConsoleApp = useCallback(\n (name: string, path?: string, query?: string) => dispatch(actions.ui.openConsoleApp(name, path, query)),\n [dispatch]\n );\n\n const addAttributes = useCallback(\n (payload: AddAttributesPayload) => dispatch(actions.profile.addAttributes(payload)),\n [dispatch]\n );\n\n const modifyAttribute = useCallback(\n (payload: ModifyAttributePayload) => dispatch(actions.profile.modifyAttribute(payload)),\n [dispatch]\n );\n\n const removeAttribute = useCallback(\n (payload: RemoveAttributePayload) => dispatch(actions.profile.removeAttribute(payload)),\n [dispatch]\n );\n\n const entityDeleted = useCallback(\n (payload: string) => dispatch(actions.modifiedEntities.entityDeleted(payload)),\n [dispatch]\n );\n\n const entityCreated = useCallback(\n (payload: Entity) => dispatch(actions.modifiedEntities.entityCreated(payload)),\n [dispatch]\n );\n\n const errorDeactivated = useCallback(\n (payload: string) => dispatch(actions.errors.errorDeactivated(payload)),\n [dispatch]\n );\n\n const requestNextPageOfAttributeValues = useCallback(\n (payload: RequestNextPageOfAttributeValuesPayload) =>\n dispatch(actions.profile.requestNextPageOfAttributeValues(payload)),\n [dispatch]\n );\n\n const openEntity = useCallback(\n (payload: {uri: string; viewId: string | null; source?: string | null; screen?: string}) =>\n dispatch(actions.ui.openEntity(payload)),\n [dispatch]\n );\n\n const setDefaultProfilePicForModifiedEntity = useCallback(\n (payload: {entityUri: string; value: ImageAttributeValue}) =>\n dispatch(actions.modifiedEntities.setDefaultProfilePic(payload)),\n [dispatch]\n );\n\n const setDefaultProfilePicForEntity = useCallback(\n (payload: ImageAttributeValue | string) => dispatch(actions.entity.setDefaultProfilePic(payload)),\n [dispatch]\n );\n\n const dependentLookupsEditorTouched = useCallback(\n (payload: {uri: string; isTouched: boolean}) =>\n dispatch(actions.dependentLookups.dependentLookupsEditorTouched(payload)),\n [dispatch]\n );\n\n const openPivotingPerspective = useCallback(\n (payload: {attributeType: AttributeType; value: PivotingValue[]}) =>\n dispatch(actions.ui.openPivotingPerspective(payload)),\n [dispatch]\n );\n\n const lookupsLoaded = useCallback(\n (payload: Lookups) => dispatch(actions.lookups.lookupsLoaded(payload)),\n [dispatch]\n );\n\n const lookupsForTypeResolved = useCallback(\n (payload: LookupsForTypeResolvedPayload) => dispatch(actions.lookups.lookupsForTypeResolved(payload)),\n [dispatch]\n );\n\n const errorSet = useCallback((payload: string) => dispatch(actions.ui.errorSet(payload)), [dispatch]);\n\n const setHistoryMode = useCallback(\n (payload: HistoryMode) => dispatch(actions.history.setHistoryMode(payload)),\n [dispatch]\n );\n\n const modeUpdated = useCallback((payload: Mode) => dispatch(actions.mode.modeUpdated(payload)), [dispatch]);\n\n const setHistoryEvent = useCallback(\n (payload: HistoryEvent) => dispatch(actions.history.setHistoryEvent(payload)),\n [dispatch]\n );\n\n const clearHistoryEvent = useCallback(() => dispatch(actions.history.clearHistoryEvent()), [dispatch]);\n\n const setHistoryDiff = useCallback(\n (payload: HistoryDiff) => dispatch(actions.history.setHistoryDiff(payload)),\n [dispatch]\n );\n\n const setHistorySlice = useCallback(\n (payload: HistorySlice) => dispatch(actions.history.setHistorySlice(payload)),\n [dispatch]\n );\n\n const updateSearchNavigationDataFields = useCallback(\n (payload: Partial<SearchNavigationData>) => dispatch(actions.search.updateSearchNavigationDataFields(payload)),\n [dispatch]\n );\n\n const openPerspective = useCallback(\n (payload: {perspectiveId: string; viewId: string}) => dispatch(actions.ui.openPerspective(payload)),\n [dispatch]\n );\n\n const entityDeletionFinished = useCallback(() => dispatch(actions.ui.entityDeletionFinished()), [dispatch]);\n\n const loadEntity = useCallback(\n (payload: {viewId?: string; uri: string}) => dispatch(actions.entity.loadEntity(payload)),\n [dispatch]\n );\n\n const updateSearchNavigationDataOnMerge = useCallback(\n (payload: {winnerUri: string; losersUris: string[]}) =>\n dispatch(actions.search.updateSearchNavigationDataOnMerge(payload)),\n [dispatch]\n );\n\n const lookupsListResolved = useCallback(\n (payload: Lookups[]) => dispatch(actions.lookups.lookupsListResolved(payload)),\n [dispatch]\n );\n\n const relationsLoaded = useCallback(\n (payload: RelationsLoadedPayload) => dispatch(actions.relations.relationsLoaded(payload)),\n [dispatch]\n );\n\n const setInitialInfo = useCallback(\n (id: string, relationUri: string, tempEntity: Entity, connection: Connection) =>\n dispatch(actions.relations.setInitialInfo(id, relationUri, tempEntity, connection)),\n [dispatch]\n );\n\n const setRelationType = useCallback(\n (id: string, relationUri: string, relationType: CompactRelationType) =>\n dispatch(actions.relations.setRelationType(id, relationUri, relationType)),\n [dispatch]\n );\n\n const closeRelationEditor = useCallback(\n (id: string, relationUri: string) => dispatch(actions.relations.closeRelationEditor(id, relationUri)),\n [dispatch]\n );\n\n const openRelationEditor = useCallback(\n (id: string, connection: Connection) => dispatch(actions.relations.openRelationEditor(id, connection)),\n [dispatch]\n );\n\n const setRelationEntity = useCallback(\n (id: string, relationUri: string, entityInfo: Entity) =>\n dispatch(actions.relations.setRelationEntity(id, relationUri, entityInfo)),\n [dispatch]\n );\n\n const errorsSet = useCallback(\n (payload: AttributeError[]) => dispatch(actions.errors.errorsSet(payload)),\n [dispatch]\n );\n\n const addRelation = useCallback(\n (id: string, connection: Connection) => dispatch(actions.relations.addRelation(id, connection)),\n [dispatch]\n );\n\n const editRelation = useCallback(\n (id: string, connection: Connection) => dispatch(actions.relations.editRelation(id, connection)),\n [dispatch]\n );\n\n return {\n openSearch,\n openHistoryEvent,\n openConsoleApp,\n addAttributes,\n modifyAttribute,\n removeAttribute,\n entityDeleted,\n entityCreated,\n errorDeactivated,\n requestNextPageOfAttributeValues,\n openEntity,\n setDefaultProfilePicForModifiedEntity,\n setDefaultProfilePicForEntity,\n dependentLookupsEditorTouched,\n openPivotingPerspective,\n lookupsLoaded,\n lookupsForTypeResolved,\n errorSet,\n setHistoryMode,\n modeUpdated,\n setHistoryEvent,\n clearHistoryEvent,\n setHistoryDiff,\n setHistorySlice,\n updateSearchNavigationDataFields,\n openPerspective,\n entityDeletionFinished,\n loadEntity,\n updateSearchNavigationDataOnMerge,\n lookupsListResolved,\n relationsLoaded,\n setInitialInfo,\n setRelationType,\n closeRelationEditor,\n openRelationEditor,\n setRelationEntity,\n errorsSet,\n addRelation,\n editRelation\n };\n};\n\nexport const useMdmModule = () => {\n const values = useMdmValues();\n const actions = useMdmActions();\n const listeners = {searchNavigationListener, expandInvalidRelatonsListener, cleanseLoadingListener};\n return {values, actions, listeners};\n};\n","import * as dataTenants from './dataTenants';\nimport * as tenants from './tenants';\nimport * as metadata from './metadata';\nimport * as profile from './profile';\nimport * as search from './search';\nimport * as selectors from './selectors';\nimport * as tenant from './tenant';\nimport * as environment from './environment';\nimport * as ui from './ui';\nimport * as user from './user';\n\nexport default {\n getModule: () => ({\n id: 'mdm',\n reducerMap: {\n dataTenants: dataTenants.reducer,\n tenants: tenants.reducer,\n metadata: metadata.reducer,\n profile: profile.reducer,\n tenant: tenant.reducer,\n environment: environment.reducer,\n user: user.reducer,\n ui: ui.reducer,\n search: search.reducer\n },\n sagas: [...profile.modifiedEntities.sagas, ...profile.dependentLookups.sagas, ...profile.sagas, ...search.sagas]\n }),\n selectors\n};\n\nexport * from './types';\nexport {useMdmModule} from './useMdmModule';\n\nexport {dataTenants, tenants, profile, metadata, tenant, environment, user, ui, search};\n"],"names":["DATA_TENANTS_UPDATED","createStandardAction","type","payload","dataTenantsUpdated","initState","state","action","TENANTS_UPDATED","tenantsUpdated","METADATA_LOADED","updateMetadata","tenant","metadata","UIActions","prepareMetadata","pipe","normalizeMetadata","parseMetadata","localizeMetadata","localizeAllMetadata","map","LOCALIZATION_LOADED","ProfileActions","addAttributes","ADD_ATTRIBUTES","addDefaultValuesAction","ADD_DEFAULT_VALUES","modifyAttribute","MODIFY_ATTRIBUTE","removeAttribute","REMOVE_ATTRIBUTE","addNextPageOfAttributeValues","ADD_NEXT_PAGE_ATTRIBUTE_VALUES","processNextPageOfAttributeValues","PROCESS_NEXT_PAGE_ATTRIBUTE_VALUES","requestNextPageOfAttributeValues","REQUEST_NEXT_PAGE_ATTRIBUTE_VALUES","saveProfile","SAVE_PROFILE","saveDraft","SAVE_DRAFT","profileSaved","PROFILE_SAVED","validateProfile","VALIDATE_PROFILE","DependentLookupsActions","dependentLookupsStructureSet","DEPENDENT_LOOKUPS_STRUCTURE_SET","dependentLookupsInitedTypeUrisAdded","DEPENDENT_LOOKUPS_INITED_TYPE_URIS_ADDED","dependentLookupsEditorsBlocked","DEPENDENT_LOOKUPS_EDITORS_BLOCKED","dependentLookupsEditorTouched","DEPENDENT_LOOKUPS_EDITOR_TOUCHED","getDependentLookupsStructure","structure","getDependentLookupsInitedTypeUris","initedTypeUris","getDependentLookupEditorsState","editors","ModeActions","MODE_UPDATED","mode","silent","isViewMode","typeUris","uniq","concat","uris","isBlocked","newEditors","reduce","uri","isTouched","assocPath","SEARCH_RESULTS_SET","KEYWORD_UPDATED","UPDATE_STATE","SAVE_STATE","ACTIVITY_FILTER_UPDATED","GLOBAL_FILTER_UPDATED","SEARCH_OPTIONS_UPDATED","SET_SEARCH_OPTIONS_CONFIG","SET_SEARCH_PROVIDER_DATA","SET_SEARCH_NAVIGATION_DATA","UPDATE_SEARCH_NAVIGATION_DATA_ON_MERGE","UPDATE_SEARCH_NAVIGATION_DATA_FIELDS","searchResultsSet","keywordUpdated","updateState","saveState","activityFilterUpdated","globalFilterUpdated","updateSearchOptions","setSearchOptionsConfig","setSearchProviderData","setSearchNavigationData","updateSearchNavigationDataFields","updateSearchNavigationDataOnMerge","getSearchResults","searchResults","getKeyword","keyword","getGlobalFilter","globalFilter","getGlobalFilterSavedSearchesUris","path","getSearchProviderData","searchProviderData","getSearchNavigationData","searchNavigationData","SEARCH_NAVIGATION","saveSearchNavigation","select","mdmModule","sessionStorage","setItem","JSON","stringify","restoreSearchNavigation","valueFromStorage","parse","getItem","e","put","search","takeLatest","OPEN_ENTITY","call","initialState","searchOptions","searchByOv","ovOnly","activityFilter","query","savedSearchesUris","isMuted","pick","isEmpty","isNil","isEmptyValue","showSearchByOv","entityUriWithoutDtssPrefix","removeDtssPrefixFromEntityUri","source","openEntity","viewId","screen","newEntityShown","entity","NEW_ENTITY_SHOWN","entityDeletionFinished","ENTITY_DELETION_FINISHED","openPerspective","perspectiveId","OPEN_PERSPECTIVE","showNotification","SHOW_NOTIFICATION","closeNotification","CLOSE_NOTIFICATION","clearNotifications","CLEAR_NOTIFICATIONS","pathsSet","PATHS_SET","uiConfigLoaded","UI_CONFIG_LOADED","newUiConfigLoaded","NEW_UI_CONFIG_LOADED","localeAttributePresentationLoaded","LOCALE_ATTRIBUTE_PRESENTATION_LOADED","autocloseIntervalLoaded","AUTOCLOSE_INTERVAL_LOADED","setPreferReact","SET_PREFER_REACT","numberFormatUpdated","NUMBER_FORMAT_UPDATED","openConsoleApp","name","OPEN_CONSOLE_APP","openAppFromChocolateBar","OPEN_APP_FROM_CHOCOLATE_BAR","openGraph","OPEN_GRAPH","localizationLoaded","dateMaskUpdated","DATE_MASK_UPDATED","dateTimeMaskUpdated","DATE_TIME_MASK_UPDATED","openSearch","OPEN_SEARCH","searchState","openHistoryEvent","OPEN_HISTORY_EVENT","openNewEntityWithAuthoring","OPEN_NEW_ENTITY_WITH_AUTHORING","openPreviousPage","OPEN_PREVIOUS_PAGE","navigateTo","NAVIGATE","keysSet","KEYS_SET","openPivotingPerspective","OPEN_PIVOTING_PERSPECTIVE","errorSet","ERROR_SET","documentationSet","DOCUMENTATION_SET","addDashboardExternalView","ADD_DASHBOARD_EXTERNAL_VIEW","getImagePath","getExportPath","getApiPath","getUIPath","getReltioPath","getDtssPath","getExportDQPath","getWorkflowPath","either","getPaths","prop","getWorkflowEnvironmentURL","getCollaborationPath","getImageServicePath","getDVFPath","getValidationServicePath","getAdminToolsPath","getMlDqPath","getRawAttributePresentations","store","getAttributePresentations","createSelector","intl","attributesPresentation","locale","getSpecialAttributesPresentation","getAutoCloseInterval","autoCloseInterval","getDefaultMaxValues","getUiNumberFormat","getDateMask","getNotifications","getDateTimeMask","getRequestProviderConfiguration","oldPivotingSettingsPath","collectPivotingAttributes","chain","getPivotingAttributes","ifElse","hasPath","pathOr","getImageAttributesFieldsOrder","getLookupAutocomplete","getGoogleMapKey","getIcpLicenseKey","getDocReleaseNotes","oldValidationSeverityLevelPath","getValidationServiceSeverityLevels","getValidateReadMode","getValidateRelations","getWorkflowConfigurationEnabled","getUiError","getServicesPath","getUIConfig","getUIConfigLayout","getShowEntityId","getPreview","getLogo","getHeaderColor","getShowSearchByOv","getShowAttributeDescription","getAttributesSortingStrategy","getProfileCheckUpdate","getCleanseConfigurationByEntityType","entityTypeUri","getAuthoringByEntityType","getAuthoringItemsFromLayoutByEntityType","getAiAssistantEnabled","getAiAssistantEntityTypes","getAiAssistantLimitPerDay","paths","config","newConfig","evolve","properties","attributePresentations","assoc","LOCALE_ATTRIBUTE_PRESENTATION","numberFormat","dateMask","dateTimeMask","keys","error","documentation","notifications","reject","propEq","USER_UPDATED","userUpdated","getUserName","username","getUserRoles","roles","TENANT_UPDATED","TENANT_NAME_UPDATED","tenantUpdated","tenantNameUpdated","getTenantId","getTenantName","id","ENVIRONMENT_UPDATED","ENVIRONMENT_ALIAS_UPDATED","environmentUpdated","environmentAliasUpdated","getEnvironmentId","getEnvironmentAlias","alias","getDataTenants","dataTenants","getTenants","tenants","getMetadata","getTenant","getTenantObject","getEnvironmentObject","environment","getUser","user","getUi","ui","getProfile","profile","getSearch","getEntity","profileSelectors","getEntityUri","getEntityUriWithDataTenant","getConnectionsByViewId","getEditingOrAddingConnectionByViewIdAndRelationUri","relationUri","getEditingOrAddingConnectionRelationObjectByViewIdAndRelationUri","getConnectionsWithDraftsByViewId","parentEntityUri","getDraftsForSaveByViewId","getConnectionsTemporaryUrisForCreation","getTotalByViewId","getLookups","getProfileErrors","getRelationsViewIds","getHistoryDiff","getHistoryEvent","getHistorySlice","getIsHistoryModeEnabled","getHistoryMode","getModifiedEntity","getModifiedEntityDefaultProfilePic","getModifiedEntities","getAttributeTypeErrors","parentUri","attributeTypeUri","getAttributesErrors","getActiveErrorsForAttributesPager","attributeType","uiSelectors","searchSelectors","getSearchKeyword","getActivityFilter","getSearchOptions","getGlobalSearchRequestOptions","omittingFields","getStringifiedSearchOptions","getGlobalFilterQuery","getMode","getIsEditableMode","getIsViewMode","getIsSuggestMode","getRelations","getRelationToAddByViewId","getRelationsToEditByViewId","getAllRelationsToAddAndEdit","viewIds","getAllRelationsToSave","getAllRelationsByViewIds","getInitialConnectionTempEntity","getInitialConnection","getViewIdsForOpenRelation","getAbsoluteImagePath","userSelectors","getTrees","getTree","getTreeRoot","getTreeTotal","getTreeCommands","getTreeEditingConnection","getAllTreesEditingConnections","getProfileLastLoadedTime","getProfileOperation","getProfileViews","getProfileCancelNeedConfirm","tenantSelectors","getEnvironment","environmentSelectors","getAllServicesPaths","getWorkflowEnvironmentUrl","getCanUserRegisterConfigEnvironments","canUserRegisterConfigEnvironments","getCanUserCreateWorkflowConfigJar","canUserCreateWorkflowConfigJar","getCanUserCreateWorkflowEnvironmentConfigJar","canUserCreateWorkflowEnvironmentConfigJar","getCanUserExecuteWorkflowJobs","canUserExecuteWorkflowJobs","getCanUserExecuteWorkflowJobsSyncBusinessProcessData","canUserExecuteWorkflowJobsSyncBusinessProcessData","getCanUserExecuteWorkflowJobsTerminateProcessInstance","canUserExecuteWorkflowJobsTerminateProcessInstance","getCanUserExecuteWorkflowJobsUpdateTasks","canUserExecuteWorkflowJobsUpdateTasks","getCanUserExecuteWorkflowJobsValidateTasks","canUserExecuteWorkflowJobsValidateTasks","getCanUserManageWorkflowDefinition","canUserManageWorkflowDefinition","getCanUserManageWorkflowEnvironmentDefinition","canUserManageWorkflowEnvironmentDefinition","getCanUserReadWorkflowDataTask","canUserReadWorkflowDataTask","getCanUserUpdateProcessInstance","canUserUpdateProcessInstance","getCanUserUpdateWorkflowDataTask","canUserUpdateWorkflowDataTask","getCanUserViewProcessInstanceSearchQuery","canUserViewProcessInstanceSearchQuery","getCanUserViewWorkflowConfigJar","canUserViewWorkflowConfigJar","getCanUserViewWorkflowDefinition","canUserViewWorkflowDefinition","getCanUserViewWorkflowEnvironmentConfigJar","canUserViewWorkflowEnvironmentConfigJar","getCanUserViewWorkflowJobs","canUserViewWorkflowJobs","getCanUserMakeExport","canUserMakeExport","getCanUserMakeActivitiesExport","canUserMakeActivitiesExport","getCanUserImportEntitiesFromDT","canUserImportEntitiesFromDT","getCanUserReadEntitiesFromDT","canUserReadEntitiesFromDT","getCanUserStartProcessFromQuery","canUserStartProcessInstanceFromQuery","getCanUserMakeBulkUpdate","canUserMakeBulkUpdate","getCanUserDeleteProfiles","canUserDeleteProfiles","getCanUserOpenDataLoader","canUserOpenDataLoader","getCanUserGetDQStatistic","canUserGetDQStatistic","getCanUserReadDVF","canUserReadDVF","isCollaborationEnabled","collaborationPath","isHistoryModeEnabled","isWorkflowEnabled","workflowPath","enabled","hasSideView","find","el","views","some","view","isWorkflowSideViewEnabled","isCollaborationSideViewEnabled","isDBConnectorSideViewEnabled","getDBConnectorSideViews","getDependentLookups","getDependentLookupsStructureNode","getDependentLookupEditorState","valueUri","getCheckIfCanAddRelations","content","authoringItems","nextEntry","inRelations","outRelations","isEditableMode","Mode","isNewEntityAndSuggestingMode","isTempUri","isAuthoringMode","canEditEntity","checkMetadataForUpdate","getEntityType","canCreateRelations","rel","getRelationType","both","checkMetadataForCreate","getEntityWithDiff","getProfileEntityWithHistoryDiff","getEntityWithoutDiff","getProfileEntityWithoutHistoryDiff","ModifiedEntitiesActions","RelationsActions","findConnectionByRelationUri","connections","getRelationUriFromConnection","equals","entityUri","getDraftsByViewId","Object","filter","getTempRelations","getTotalWithDrafts","addedConnectionsTotal","when","always","length","getConnectionsWithDrafts","createCachedSelector","_state","_id","drafts","addedConnections","editedConnections","removedUris","ignoredRelationData","isRemoved","__","ignoredUris","item","isIgnored","getEditedConnection","connection","eqBy","unless","markEdited","connectionsByParentEntityUri","addedConnectionsByParentEntityUri","markNew","identity","markRemoved","markIgnored","_","getRelationObjectFromConnection","getTemporaryUrisForCreation","getEntityUriFromConnection","handleCreateEntity","delay","selectors","alreadyAddedTypeUris","updatedStructure","initDependentLookups","structureWithValues","populateDependentLookupsFromEntity","entityOrRelation","selectTopLevelObject","baseUri","getBaseUri","isRelationUri","handleAddDefaultValues","attributeValue","findAttributeValuesByTypeUri","startsWith","structureWithValue","addValueToDependentLookups","handleAddAttributes","addedAttributes","isAttributeTypeInDependentLookups","syncAttributeTypeWithDependentLookups","attrTypeUri","removeReferenceAttributeTemporaryEntities","value","isReference","refEntityUri","getReferencedEntityUriFromAttrValue","removeTemporaryEntitiesChainFromDependentLookupsStructure","syncComplexAttributeWithDLStructure","removeValuesFromDependentLookups","addTemporaryEntitiesChainToDependentLookupsStructure","handleModifyAttribute","lookupCode","lookupValue","fork","cascadeUpdate","isComplexAttribute","parentEntity","modifiedEntities","relatedTempEntities","findRelatedTemporaryEntities","tempEntity","relatedEntitiesUris","handleRemoveAttribute","isDL","handleDeleteEntity","updatedValue","editorsState","stateForValue","getDependentLookupStateForValueUri","typeUri","affectedEditorsUris","updatedStateForValue","cascadeUpdateRequest","displayName","object","findAttributeValueByUri","findAttributeTypeByUri","console","warn","handleOpenRelationEditor","connectedEntityUri","take","handleSetRelationType","handleCloseRelationEditor","takeEvery","MODIFIED_ENTITY_CREATED","MODIFIED_ENTITY_DELETED","OPEN_RELATION_EDITOR","SET_RELATION_TYPE","CLOSE_RELATION_EDITOR","EntityActions","entityLoaded","ENTITY_LOADED","setDefaultProfilePic","DEFAULT_PROFILE_PIC_SET","loadEntity","LOAD_ENTITY","entityCreationRequested","ENTITY_CREATION_REQUESTED","entityCreationWithAuthoringRequested","ENTITY_CREATION_WITH_AUTHORING_REQUESTED","authoringDraftEntitiesLoaded","ENTITY_AUTHORING_DRAFT_ENTITIES_LOADED","entityRemoveRequested","ENTITY_REMOVE_REQUESTED","entityCloneRequested","CLONE_ENTITY","clearEntity","CLEAR_ENTITY","getUri","getDataTenant","dataTenant","getUriWithDataTenant","getEntityUriForLink","defaultProfilePic","defaultProfilePicValue","attributeTypeName","values","attributeSource","getAttributeSource","lens","lensPath","over","defaultTo","ErrorsActions","allPass","join","not","errorDeactivated","ERROR_DEACTIVATED","errorsSet","ERRORS_SET","errorIndex","findIndex","getErrorId","errorL","areOneHierarchyUris","deactivated","HistoryActions","setHistoryDiff","HISTORY_DIFF_SET","clearHistoryDiff","HISTORY_DIFF_CLEARED","setHistoryEvent","HISTORY_EVENT_SET","clearHistoryEvent","HISTORY_EVENT_CLEARED","setHistorySlice","HISTORY_SLICE_SET","setHistoryMode","HISTORY_MODE_SET","diff","event","slice","HistoryMode","ProfileLastLoadedTimeActions","profileUpdateLastLoadedTime","PROFILE_LAST_LOADED_TIME_UPDATE","Date","now","LookupsActions","lookupsLoaded","LOOKUPS_LOADED","lookupsForTypeResolved","LOOKUPS_FOR_TYPE_RESOLVED","lookupsListResolved","LOOKUPS_LIST_RESOLVED","lookupData","modeUpdated","modeCancelEditing","MODE_CANCEL_EDITING","modeEditingCanceled","MODE_EDITING_CANCELED","isSuggestMode","getIsEditMode","isEditMode","entityCreated","entityDeleted","MODIFIED_ENTITY_DEFAULT_PROFILE_PIC_SET","modifiedEntitiesReset","MODIFIED_ENTITIES_RESET","cleanseLoading","CLEANSE_LOADING","omit","attribute","index","isEntityUri","isEntitySpecialAttrType","addEntitySpecialAttribute","addAttribute","editEntitySpecialAttribute","editAttribute","removeEntitySpecialAttribute","subAttributes","getEditableAttributeTypeSubAttributes","lensProp","addDefaultValuesToComplexAttribute","processNextPageValuesAdding","valuesToAdd","entityValuesUris","existingValuesUris","intersection","includes","requestOptions","apiPath","requestAttributeValues","options","json","getPagedEntity","getRequestErrorMessage","i18n","handleProfileCleanse","baseTypeUri","cleanseConfiguration","entityType","infos","cleanseConfig","cleanseConfigurationType","getCleanseType","hasCleanseTypeInEntityType","cleanseConfigurationAttributes","getCleanseConfigurationAttributes","isLoading","cleansedEntity","cleanseData","cleanseType","split","attributes","modifiedEntity","hasCleanseStatus","isUnverifiedCleanse","CLEANSE_STATUS_ERROR_PATH","cleansedAttributes","attributesToUpdate","prepareCleansedAttributes","relationsLoaded","RELATIONS_LOADED","secondLevelRelationsLoaded","SECOND_LEVEL_RELATIONS_LOADED","removeRelation","curry","REMOVE_RELATION","ignoreRelation","IGNORE_RELATION","addRelation","ADD_RELATION","editRelation","EDIT_RELATION","openRelationEditor","closeRelationEditor","setRelationType","relationType","setRelationEntity","entityInfo","SET_RELATION_ENTITY","setInitialInfo","SET_INITIAL_INFO","initDraftsState","getPathToEditingConnection","pathEq","getRelationToAddPath","getRelationsToEditPath","getRelationLens","pathToRelation","getRelationObjectLens","relationsLens","compose","total","complement","newConnections","hasRemovedUri","needToAddRemovedUris","suggested","relation","append","newConnection","propSatisfies","prepend","equalsConnection","updateConnection","update","upsertConnection","isNew","relationToAddPath","relationsToEditL","pathToConnection","initialInfo","relationToAdd","relationsToEdit","relationL","applyRelationTypeObject","relationLens","isActivenessAttrType","newRelation","set","relationObjectLens","relationObject","newRelationObject","pathToEntity","entityL","label","newEntity","entityLabel","objectUri","pathToObject","getAttributeTypeSubAttributes","pathToAttributes","pathToTypeUri","attributeTypes","addDefaultValuesToAttributes","TreesActions","treeLoaded","TREE_LOADED","treeLoadedWithError","TREE_LOADED_WITH_ERROR","treeLoading","TREE_LOADING","resetScrollToNode","TREE_SCROLL_TO_NODE_RESET","treeCommandsCleared","TREE_COMMANDS_CLEARED","childrenLoading","TREE_CHILDREN_LOADING","currentEntityShownInTree","TREE_CURRENT_ENTITY_SHOWN","treeRefreshed","TREE_REFRESHED","nodeExpanded","TREE_NODE_EXPANDED","treeRelationRemoved","TREE_RELATION_REMOVED","treeNodeRemoved","TREE_NODE_REMOVED","treeSecondaryLabelShown","TREE_SECONDARY_LABEL_SHOWN","entitiesMappingLoaded","TREE_ENTITIES_MAPPING_LOADED","treeChanged","TREE_CHANGED","toggleRelationDetails","TREE_NODE_EDITED","activenessDateChanged","TREE_ACTIVENESS_DATE_CHANGED","treeRelationRepointed","TREE_RELATION_REPOINTED","treeRelationCreated","TREE_RELATION_CREATED","treeNodeCreated","TREE_NODE_CREATED","treeRelationChanged","TREE_RELATION_EDITED","treeNodeChanged","treeNodeEditingStarted","TREE_NODE_EDITING_STARTED","treeNodeEditingApplied","TREE_NODE_EDITING_APPLIED","treeNodeEditingCanceled","TREE_NODE_EDITING_CANCELED","treeNodeNewParentEditingStarted","TREE_NODE_NEW_PARENT_EDITING_STARTED","treeNodeNewParentEditingApplied","TREE_NODE_NEW_PARENT_EDITING_APPLIED","treeNodeNewParentEditingCanceled","TREE_NODE_NEW_PARENT_EDITING_CANCELED","treeNodeNewChildEditingStarted","TREE_NODE_NEW_CHILD_EDITING_STARTED","treeNodeNewChildEditingApplied","TREE_NODE_NEW_CHILD_EDITING_APPLIED","treeNodeNewChildEditingCanceled","TREE_NODE_NEW_CHILD_EDITING_CANCELED","treeNodeRelationTypeChanged","TREE_NODE_RELATION_TYPE_CHANGED","treeNodeEntityChanged","TREE_NODE_ENTITY_CHANGED","treeSorted","TREE_SORTED","treesStateSaved","TREES_STATE_SAVED","treesStateRestored","TREES_STATE_RESTORED","childrenLoaded","TREE_CHILDREN_LOADED","treesRestoreFromInitialTrees","TREES_RESTORE_FROM_INITIAL_TREES","treesResetInitialTrees","TREES_RESET_INITIAL_TREES","cancelChildrenLoading","TREE_CANCEL_CHILDREN_LOADING","trees","getCommands","flatten","syncToCurrentEntity","node","parents","forEach","parent","expanded","children","child","result","mergeEntitiesMap","subMap","mapWithUpdatedParents","mergeChildren","oldChildren","newChildren","getLoadedChildren","newChild","oldChild","push","removeChild","childId","nodeId","splice","insertChild","mutatePath","currentLevelObject","i","segment","updateAllNodesWithProp","createConnection","addToEditingConnections","draft","setConnectionEntity","setConnectionRelationType","relationTypeUri","removeFromEditingConnections","editingConnections","getEditingConnection","nodeEditingCleanUp","currentNode","editingMode","relatedEntity","initialConnection","addingParentCleanUp","treeRoot","root","parentNode","findParentNodeById","getTreeSettingsFields","addNodesToEntitiesMap","entitiesMap","nodes","createNodeFromConnection","relations","common","commands","initialTrees","produce","draftKey","errorMessage","loading","parentId","findNodeById","pending","key","NODE_EDITING_MODES","newNode","relatedNodeId","currentNodeIndex","relatedNode","directParentUri","unshift","currentRelationTypeUri","attributesL","typeL","entitiesSubMap","tree","graphTypes","activenessDate","isReversed","treeSettings","typesLabelsMap","sortField","sortOrder","mapTree","childrenProcessing","sortTreeChildren","show","showSecondaryLabel","scrollTo","newParent","newEntityUri","command","createRelationRepointCommand","isRelationCommandForUri","createRelationDeleteCommand","createRelationCreateCommand","oldRelation","createRelationUpdateCommand","getErrors","errors","lookups","dependentLookups","getLastLoadedTime","lastLoadedTime","getHistory","history","getOperation","operation","getViews","getSidePanelViews","sidePanelViews","entitySelectors","modifiedEntitiesSelectors","relationsSelectors","modeSelectors","errorsSelectors","treesSelectors","dependentLookupsSelectors","historySelectors","getEntityHasChanges","collectAllDiffs","getTreeHasChanges","treeCommands","notAppliedTreeCommands","getNotAppliedTreeCommands","getRelationsHasChanges","hasChanges","all","getProfileHasChanges","entityHasChanges","relationsHasChanges","treeHasChanges","profileHasChanges","ProfileOperationActions","profileUpdateOperation","PROFILE_OPERATION_UPDATE","getMissedAttributesToAdd","isRequired","ErrorType","findConnectionRelationObjectByRelationUri","groups","attrValues","getRelationsViewsIds","profileViews","getProfileViewsIdsByTypes","ProfileViewTypes","getCommonDataForValidation","getCommonDataForRemoteValidation","validationServicePath","severity","localValidation","relationViewsIds","treeViewsIds","relationsConnections","relationsState","treesConnections","validateEntityLocally","isAvailableAttributeTypeForProfile","flatMap","validateConnection","validateHierarchyConnection","evaluateErrorPath","remoteValidation","shouldUseValidationService","rawErrors","remoteEntityValidation","remoteEntityDiffValidation","convertValidationServiceErrors","uniqBy","getErrorUniqKey","attributesToAdd","catchValidationServiceError","preparedEntity","prepareEntityForValidation","validateEntity","ValidationServiceOption","forceOvForUiUpdates","attributesDiff","collectDiffForValidation","validateEntityChanges","remoteRelationsValidation","shouldValidateRelations","allConnections","connectionsToValidate","connectionsToValidateUris","body","prepareConnectionsForValidation","response","validateRelations","validated","flat","actualModifiedEntities","localErrors","remoteProfileErrors","remoteRelationsErrors","allErrors","isCriticalError","ProfileViewsActions","addDefaultValues","saveTrees","commandExecutor","tempUrisMap","allCommands","optimizeCommands","preparedCommands","replaceTempUriInCommands","getModifiedEntityDiff","allDiff","prepareAttrDiff","saveTemporaryModifiedEntities","dcrProcessor","connectionsUriForCreation","entityUrisForCreation","findAllTemporaryRefEntityURI","urisForCreation","saveTemporaryEntities","startDataChangeRequestReview","objectURIs","getDCRObjectUris","workflowResult","startProcessInstance","processType","getDCRUri","status","saveRelationsByViewId","draftsForSave","createRelationsCommandsFromConnections","saveRelations","loadedEntityUri","updateRelationUriInTrees","relationUriProcessor","hasNewUri","treesState","treeId","entries","processRelation","newRoot","nodeProcessing","has","updateProfile","isAlwaysCreateDCR","createCommandExecutor","alwaysCreateDCR","dcrUri","savedEntitiesUrisMap","entityDiff","updateResult","entityCumulativeUpdate","uriPreprocessor","enhanceUriWithDCR","isChangeRequestUri","updateDCRUriFromResponse","window","alert","updatedTrees","updateTreesWithNewEntity","handleNewEntityLoaded","saveChanges","savedEntityUri","saveTemporaryEntity","checkIfEntityCanBeSaved","isEmptyEntity","notificationId","nanoid","text","actions","saveNewProfile","cleanUpDcr","dcrResponse","getDataChangeRequest","changeIds","pluck","deleteChangeRequestItem","changeItemId","saveExistingDraft","taskId","runTaskAction","userAction","Operation","isValid","changeRequest","url","searchParams","replace","handleModeUpdating","addToEntityRequiredAttributes","attrTypeFilter","createProfile","createTemporaryEntity","PROFILE_VIEWS_SET","createProfileWithAuthoring","createEntitiesFromAuthoringDraft","mainEntityUri","tempEntities","mainEntity","restEntities","partition","cloneProfile","data","cloneEntity","canRemove","checkMetadataForDelete","autoHideDuration","needConfirmation","confirmationText","confirmationDescription","applyAction","cancelAction","removeProfile","removeEntity","cancelProfileEditing","confirm","takeLeading","profileViewsSet","SidePanelViewsActions","sidePanelViewsLoaded","SIDE_PANEL_VIEWS_LOADED","reducer","combineReducers","searchNavigationListener","dispatch","searchConstants","searchActions","winnerUri","losersUris","updatedSearchNavigationData","cache","winnerIndex","indexOf","uriIndex","replaceWithWinnerUri","losersInCache","updatedTotal","updatedIndex","loser","updatedCache","removeLosersUris","applyMergeToSearchNavigationData","expandInvalidRelatonsListener","callback","cleanseLoadingListener","uiActions","profileActions","modifiedEntitiesActions","errorsActions","entityActions","dependentLookupsActions","lookupsActions","historyActions","modeActions","relationsActions","useMdmActions","useDispatch","useCallback","setDefaultProfilePicForModifiedEntity","setDefaultProfilePicForEntity","useMdmModule","useSelector","uiError","workflowEnvironmentUrl","exportPath","absoluteImagePath","uiPath","dtssPath","servicesPath","imageServicePath","reltioPath","imageAttributesFieldsOrder","showEntityId","pivotingAttributes","defaultMaxValues","attributesSortingStrategy","lookupAutocomplete","profileErrors","entityWithDiff","entityUriWithDataTenant","historyDiff","historyMode","historySlice","historyEvent","profileLastLoadedTime","checkIsWorkflowEnabled","checkIsCollaborationEnabled","uiConfigLayout","useMdmValues","listeners","getModule","reducerMap","sagas"],"sourceRoot":""}
1
+ {"version":3,"file":"5738.js","mappings":"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","sources":["webpack://@reltio/remotes/../mdm-module/src/dataTenants/constants.js","webpack://@reltio/remotes/../mdm-module/src/utils/index.ts","webpack://@reltio/remotes/../mdm-module/src/dataTenants/actions/index.js","webpack://@reltio/remotes/../mdm-module/src/dataTenants/reducers/index.js","webpack://@reltio/remotes/../mdm-module/src/tenants/constants.ts","webpack://@reltio/remotes/../mdm-module/src/tenants/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/tenants/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/metadata/constants.js","webpack://@reltio/remotes/../mdm-module/src/metadata/actions/index.js","webpack://@reltio/remotes/../mdm-module/src/ui/constants.ts","webpack://@reltio/remotes/../mdm-module/src/metadata/reducers/index.js","webpack://@reltio/remotes/../mdm-module/src/profile/actions/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/dependentLookups/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/dependentLookups/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/dependentLookups/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/mode/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/dependentLookups/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/search/constants.js","webpack://@reltio/remotes/../mdm-module/src/search/actions/index.js","webpack://@reltio/remotes/../mdm-module/src/search/selectors/index.js","webpack://@reltio/remotes/../mdm-module/src/search/sagas/index.js","webpack://@reltio/remotes/../mdm-module/src/search/reducers/index.js","webpack://@reltio/remotes/../mdm-module/src/ui/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/ui/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/ui/reducers/index.js","webpack://@reltio/remotes/../mdm-module/src/user/constants.js","webpack://@reltio/remotes/../mdm-module/src/user/actions/index.js","webpack://@reltio/remotes/../mdm-module/src/user/selectors/index.js","webpack://@reltio/remotes/../mdm-module/src/user/reducers/index.js","webpack://@reltio/remotes/../mdm-module/src/tenant/constants.js","webpack://@reltio/remotes/../mdm-module/src/tenant/actions/index.js","webpack://@reltio/remotes/../mdm-module/src/tenant/selectors/index.js","webpack://@reltio/remotes/../mdm-module/src/tenant/reducers/index.js","webpack://@reltio/remotes/../mdm-module/src/environment/constants.js","webpack://@reltio/remotes/../mdm-module/src/environment/actions/index.js","webpack://@reltio/remotes/../mdm-module/src/environment/selectors/index.js","webpack://@reltio/remotes/../mdm-module/src/environment/reducers/index.js","webpack://@reltio/remotes/../mdm-module/src/selectors.js","webpack://@reltio/remotes/../mdm-module/src/profile/modifiedEntities/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/relations/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/relations/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/dependentLookups/sagas/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/entity/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/entity/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/entity/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/entity/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/errors/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/errors/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/errors/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/errors/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/history/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/history/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/history/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/history/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/lastLoadedTime/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/lastLoadedTime/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/lastLoadedTime/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/lookups/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/lookups/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/lookups/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/mode/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/mode/selectors/index.js","webpack://@reltio/remotes/../mdm-module/src/profile/mode/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/modifiedEntities/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/modifiedEntities/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/modifiedEntities/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/modifiedEntities/sagas/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/relations/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/relations/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/trees/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/trees/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/trees/selectors/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/trees/reducers/helpers.js","webpack://@reltio/remotes/../mdm-module/src/profile/trees/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/selectors.ts","webpack://@reltio/remotes/../mdm-module/src/profile/operation/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/operation/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/errors/sagas/helpers.ts","webpack://@reltio/remotes/../mdm-module/src/profile/errors/sagas/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/views/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/sagas/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/operation/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/views/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/views/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/sidePanelViews/constants.ts","webpack://@reltio/remotes/../mdm-module/src/profile/sidePanelViews/actions/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/sidePanelViews/reducers/index.ts","webpack://@reltio/remotes/../mdm-module/src/profile/index.ts","webpack://@reltio/remotes/../mdm-module/src/utils/listeners/helpers.ts","webpack://@reltio/remotes/../mdm-module/src/utils/listeners/index.ts","webpack://@reltio/remotes/../mdm-module/src/useMdmModule.ts","webpack://@reltio/remotes/../mdm-module/src/index.js"],"sourcesContent":["export const DATA_TENANTS_UPDATED = 'DATA_TENANTS_UPDATED';\n","import {findIndex, pipe, propEq, view} from 'ramda';\n\nexport const createStandardAction = <T, P>(type: T) => (payload?: P) => ({\n type,\n payload\n});\n\nexport const getIndexByUri = (lens, state, uri) => pipe(view, findIndex(propEq('uri', uri)))(lens, state);","import {DATA_TENANTS_UPDATED} from '../constants';\nimport {createStandardAction} from '../../utils';\n\nexport const dataTenantsUpdated = createStandardAction(DATA_TENANTS_UPDATED);\n","import {DATA_TENANTS_UPDATED} from '../constants';\n\nconst initState = null;\nconst dataTenantsReducer = (state = initState, action) => {\n switch (action.type) {\n case DATA_TENANTS_UPDATED:\n return action.payload || initState;\n default:\n return state;\n }\n};\n\nexport default dataTenantsReducer;\n","export const TENANTS_UPDATED = 'TENANTS_UPDATED';\n","import {TENANTS_UPDATED} from '../constants';\nimport {createStandardAction} from '../../utils';\n\nexport const tenantsUpdated = createStandardAction(TENANTS_UPDATED);\n","import {TENANTS_UPDATED} from '../constants';\n\nconst initState = null;\nconst tenantsReducer = (state = initState, action) => {\n switch (action.type) {\n case TENANTS_UPDATED:\n return action.payload || initState;\n default:\n return state;\n }\n};\n\nexport default tenantsReducer;\n","export const METADATA_LOADED = 'METADATA_LOADED';\n","import {METADATA_LOADED} from '../constants';\n\nexport const updateMetadata = ({tenant, metadata}) => ({\n type: METADATA_LOADED,\n payload: {tenant, metadata}\n});\n","export enum UIActions {\n OPEN_ENTITY = 'OPEN_ENTITY',\n NEW_ENTITY_SHOWN = 'NEW_ENTITY_SHOWN',\n ENTITY_DELETION_FINISHED = 'ENTITY_DELETION_FINISHED',\n OPEN_PERSPECTIVE = 'OPEN_PERSPECTIVE',\n UI_CONFIG_LOADED = 'UI_CONFIG_LOADED',\n NEW_UI_CONFIG_LOADED = 'NEW_UI_CONFIG_LOADED',\n PATHS_SET = 'PATHS_SET',\n LOCALIZATION_LOADED = 'LOCALIZATION_LOADED',\n LOCALE_ATTRIBUTE_PRESENTATION_LOADED = 'LOCALE_ATTRIBUTE_PRESENTATION_LOADED',\n AUTOCLOSE_INTERVAL_LOADED = 'AUTOCLOSE_INTERVAL_LOADED',\n SET_PREFER_REACT = 'SET_PREFER_REACT',\n OPEN_CONSOLE_APP = 'OPEN_CONSOLE_APP',\n OPEN_APP_FROM_CHOCOLATE_BAR = 'OPEN_APP_FROM_CHOCOLATE_BAR',\n NUMBER_FORMAT_UPDATED = 'NUMBER_FORMAT_UPDATED',\n OPEN_GRAPH = 'OPEN_GRAPH',\n DATE_MASK_UPDATED = 'DATE_MASK_UPDATED',\n DATE_TIME_MASK_UPDATED = 'DATE_TIME_MASK_UPDATED',\n OPEN_SEARCH = 'OPEN_SEARCH',\n OPEN_HISTORY_EVENT = 'OPEN_HISTORY_EVENT',\n KEYS_SET = 'KEYS_SET',\n OPEN_PIVOTING_PERSPECTIVE = 'OPEN_PIVOTING_PERSPECTIVE',\n ERROR_SET = 'ERROR_SET',\n SHOW_NOTIFICATION = 'SHOW_NOTIFICATION',\n CLOSE_NOTIFICATION = 'CLOSE_NOTIFICATION',\n CLEAR_NOTIFICATIONS = 'CLEAR_NOTIFICATIONS',\n DOCUMENTATION_SET = 'DOCUMENTATION_SET',\n OPEN_NEW_ENTITY_WITH_AUTHORING = 'OPEN_NEW_ENTITY_WITH_AUTHORING',\n OPEN_PREVIOUS_PAGE = 'OPEN_PREVIOUS_PAGE',\n NAVIGATE = 'NAVIGATE',\n ADD_DASHBOARD_EXTERNAL_VIEW = 'ADD_DASHBOARD_EXTERNAL_VIEW'\n}\n","import {METADATA_LOADED} from '../constants';\nimport {UIActions} from '../../ui/constants';\nimport {localizeMetadata, parseMetadata, normalizeMetadata} from '@reltio/mdm-sdk';\nimport {map, pipe} from 'ramda';\n\nconst initState = {};\n\nconst prepareMetadata = pipe(normalizeMetadata, parseMetadata, localizeMetadata);\n\nconst localizeAllMetadata = map(localizeMetadata);\n\nconst metadataReducer = (state = initState, action) => {\n switch (action.type) {\n case METADATA_LOADED: {\n const {tenant, metadata} = action.payload;\n return {...state, [tenant]: prepareMetadata(metadata)};\n }\n case UIActions.LOCALIZATION_LOADED: {\n return localizeAllMetadata(state);\n }\n default:\n return state;\n }\n};\n\nexport default metadataReducer;\n","import {\n addAttributes,\n addDefaultValuesAction,\n addNextPageOfAttributeValues,\n modifyAttribute,\n removeAttribute,\n requestNextPageOfAttributeValues,\n saveProfile,\n validateProfile\n} from './index';\n\nexport enum ProfileActions {\n ADD_ATTRIBUTES = 'ADD_ATTRIBUTES',\n MODIFY_ATTRIBUTE = 'MODIFY_ATTRIBUTE',\n REMOVE_ATTRIBUTE = 'REMOVE_ATTRIBUTE',\n REQUEST_NEXT_PAGE_ATTRIBUTE_VALUES = 'REQUEST_NEXT_PAGE_ATTRIBUTE_VALUES',\n ADD_NEXT_PAGE_ATTRIBUTE_VALUES = 'ADD_NEXT_PAGE_ATTRIBUTE_VALUES',\n PROCESS_NEXT_PAGE_ATTRIBUTE_VALUES = 'PROCESS_NEXT_PAGE_ATTRIBUTE_VALUES',\n ADD_DEFAULT_VALUES = 'ADD_DEFAULT_VALUES',\n SAVE_PROFILE = 'SAVE_PROFILE',\n SAVE_DRAFT = 'SAVE_DRAFT',\n VALIDATE_PROFILE = 'VALIDATE_PROFILE',\n PROFILE_SAVED = 'PROFILE_SAVED'\n}\n\nexport type ProfileActionTypes =\n | ReturnType<typeof addAttributes>\n | ReturnType<typeof addDefaultValuesAction>\n | ReturnType<typeof modifyAttribute>\n | ReturnType<typeof removeAttribute>\n | ReturnType<typeof addNextPageOfAttributeValues>\n | ReturnType<typeof requestNextPageOfAttributeValues>\n | ReturnType<typeof saveProfile>\n | ReturnType<typeof validateProfile>;\n","import {\n RequestNextPageOfAttributeValuesPayload,\n AddAttributesPayload,\n ModifyAttributePayload,\n RemoveAttributePayload\n} from '@reltio/mdm-sdk';\nimport {AddDefaultValuesActionPayload, AddNextPageOfAttributeValuesPayload} from '../../types/profile';\nimport {createStandardAction} from '../../utils';\nimport {ProfileActions} from './constants';\n\nexport const addAttributes = createStandardAction<ProfileActions.ADD_ATTRIBUTES, AddAttributesPayload>(\n ProfileActions.ADD_ATTRIBUTES\n);\n\nexport const addDefaultValuesAction = createStandardAction<\n ProfileActions.ADD_DEFAULT_VALUES,\n AddDefaultValuesActionPayload\n>(ProfileActions.ADD_DEFAULT_VALUES);\n\nexport const modifyAttribute = createStandardAction<ProfileActions.MODIFY_ATTRIBUTE, ModifyAttributePayload>(\n ProfileActions.MODIFY_ATTRIBUTE\n);\n\nexport const removeAttribute = createStandardAction<ProfileActions.REMOVE_ATTRIBUTE, RemoveAttributePayload>(\n ProfileActions.REMOVE_ATTRIBUTE\n);\n\nexport const addNextPageOfAttributeValues = createStandardAction<\n ProfileActions.ADD_NEXT_PAGE_ATTRIBUTE_VALUES,\n AddNextPageOfAttributeValuesPayload\n>(ProfileActions.ADD_NEXT_PAGE_ATTRIBUTE_VALUES);\n\nexport const processNextPageOfAttributeValues = createStandardAction<\n ProfileActions.PROCESS_NEXT_PAGE_ATTRIBUTE_VALUES,\n AddNextPageOfAttributeValuesPayload\n>(ProfileActions.PROCESS_NEXT_PAGE_ATTRIBUTE_VALUES);\n\nexport const requestNextPageOfAttributeValues = createStandardAction<\n ProfileActions.REQUEST_NEXT_PAGE_ATTRIBUTE_VALUES,\n RequestNextPageOfAttributeValuesPayload\n>(ProfileActions.REQUEST_NEXT_PAGE_ATTRIBUTE_VALUES);\n\nexport const saveProfile = createStandardAction<ProfileActions.SAVE_PROFILE, null>(ProfileActions.SAVE_PROFILE);\n\nexport const saveDraft = createStandardAction<\n ProfileActions.SAVE_DRAFT,\n {dcrUri?: string; userAction: 'save' | 'saveDraft'; taskId?: string}\n>(ProfileActions.SAVE_DRAFT);\n\nexport const profileSaved = createStandardAction<ProfileActions.PROFILE_SAVED, null>(ProfileActions.PROFILE_SAVED);\n\nexport const validateProfile = createStandardAction<ProfileActions.VALIDATE_PROFILE, null>(\n ProfileActions.VALIDATE_PROFILE\n);\n","import {ProfileActionTypes} from '../actions/constants';\nimport {\n dependentLookupsEditorsBlocked,\n dependentLookupsEditorTouched,\n dependentLookupsInitedTypeUrisAdded,\n dependentLookupsStructureSet\n} from './actions';\nimport {ModeActionsTypes} from '../mode/constants';\nimport {ModifiedEntitiesActionsTypes} from '../modifiedEntities/constants';\n\nexport enum DependentLookupsActions {\n DEPENDENT_LOOKUPS_STRUCTURE_SET = 'DEPENDENT_LOOKUPS_STRUCTURE_SET',\n DEPENDENT_LOOKUPS_INITED_TYPE_URIS_ADDED = 'DEPENDENT_LOOKUPS_INITED_TYPE_URIS_ADDED',\n DEPENDENT_LOOKUPS_EDITORS_BLOCKED = 'DEPENDENT_LOOKUPS_EDITORS_BLOCKED',\n DEPENDENT_LOOKUPS_EDITOR_TOUCHED = 'DEPENDENT_LOOKUPS_EDITOR_TOUCHED'\n}\n\nexport type DependentLookupsActionsTypes =\n | ReturnType<typeof dependentLookupsStructureSet>\n | ReturnType<typeof dependentLookupsInitedTypeUrisAdded>\n | ReturnType<typeof dependentLookupsEditorsBlocked>\n | ReturnType<typeof dependentLookupsEditorTouched>\n | ProfileActionTypes\n | ModifiedEntitiesActionsTypes\n | ModeActionsTypes;\n","import {DependentLookupsStructure} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {DependentLookupsActions} from '../constants';\nimport {\n BlockDependentLookupsEditorsPayload,\n TouchDependentLookupsEditorPayload\n} from '../../../types/profile/dependentLookups';\n\nexport const dependentLookupsStructureSet = createStandardAction<\n DependentLookupsActions.DEPENDENT_LOOKUPS_STRUCTURE_SET,\n DependentLookupsStructure\n>(DependentLookupsActions.DEPENDENT_LOOKUPS_STRUCTURE_SET);\n\nexport const dependentLookupsInitedTypeUrisAdded = createStandardAction<\n DependentLookupsActions.DEPENDENT_LOOKUPS_INITED_TYPE_URIS_ADDED,\n string[]\n>(DependentLookupsActions.DEPENDENT_LOOKUPS_INITED_TYPE_URIS_ADDED);\n\nexport const dependentLookupsEditorsBlocked = createStandardAction<\n DependentLookupsActions.DEPENDENT_LOOKUPS_EDITORS_BLOCKED,\n BlockDependentLookupsEditorsPayload\n>(DependentLookupsActions.DEPENDENT_LOOKUPS_EDITORS_BLOCKED);\n\nexport const dependentLookupsEditorTouched = createStandardAction<\n DependentLookupsActions.DEPENDENT_LOOKUPS_EDITOR_TOUCHED,\n TouchDependentLookupsEditorPayload\n>(DependentLookupsActions.DEPENDENT_LOOKUPS_EDITOR_TOUCHED);\n","import {DependentLookupsState, getDependentLookupEditorState, getDependentLookupsStructureNode} from '@reltio/mdm-sdk';\n\nexport const getDependentLookupsStructure = (state: DependentLookupsState) => state.structure;\nexport const getDependentLookupsInitedTypeUris = (state: DependentLookupsState) => state.initedTypeUris;\nexport const getDependentLookupEditorsState = (state: DependentLookupsState) => state.editors;\n\nexport {getDependentLookupEditorState, getDependentLookupsStructureNode};\n","import {modeCancelEditing, modeEditingCanceled, modeUpdated} from './actions';\n\nexport enum ModeActions {\n MODE_UPDATED = 'MODE_UPDATED',\n MODE_CANCEL_EDITING = 'MODE_CANCEL_EDITING',\n MODE_EDITING_CANCELED = 'MODE_EDITING_CANCELED'\n}\n\nexport type ModeActionsTypes =\n | ReturnType<typeof modeUpdated>\n | ReturnType<typeof modeCancelEditing>\n | ReturnType<typeof modeEditingCanceled>;\n","import {assocPath, uniq} from 'ramda';\nimport {isViewMode, DependentLookupsState} from '@reltio/mdm-sdk';\nimport {DependentLookupsActions, DependentLookupsActionsTypes} from '../constants';\nimport {ModeActions} from '../../mode/constants';\n\nconst initState = {\n structure: {},\n editors: {},\n initedTypeUris: []\n} as DependentLookupsState;\n\nconst dependentLookupsReducer = (state = initState, action: DependentLookupsActionsTypes): DependentLookupsState => {\n switch (action.type) {\n case ModeActions.MODE_UPDATED: {\n const {mode, silent} = action.payload;\n return isViewMode(mode) && !silent ? initState : state;\n }\n case DependentLookupsActions.DEPENDENT_LOOKUPS_STRUCTURE_SET: {\n const structure = action.payload;\n return {...state, structure};\n }\n case DependentLookupsActions.DEPENDENT_LOOKUPS_INITED_TYPE_URIS_ADDED: {\n const typeUris = action.payload;\n return {...state, initedTypeUris: uniq(state.initedTypeUris.concat(typeUris))};\n }\n case DependentLookupsActions.DEPENDENT_LOOKUPS_EDITORS_BLOCKED: {\n const {uris, isBlocked} = action.payload;\n const editors = state.editors;\n const newEditors = uris.reduce(\n (editors, uri) => ({\n ...editors,\n [uri]: {\n ...editors[uri],\n isBlocked\n }\n }),\n editors\n );\n return {\n ...state,\n editors: newEditors\n };\n }\n case DependentLookupsActions.DEPENDENT_LOOKUPS_EDITOR_TOUCHED: {\n const {uri, isTouched} = action.payload;\n return assocPath(['editors', uri, 'isTouched'], isTouched, state);\n }\n default:\n return state;\n }\n};\n\nexport default dependentLookupsReducer;\n","export const SEARCH_RESULTS_SET = 'SEARCH_RESULTS_SET';\nexport const KEYWORD_UPDATED = 'KEYWORD_UPDATED';\nexport const UPDATE_STATE = 'UPDATE_STATE';\nexport const SAVE_STATE = 'SAVE_STATE';\nexport const ACTIVITY_FILTER_UPDATED = 'ACTIVITY_FILTER_UPDATED';\nexport const GLOBAL_FILTER_UPDATED = 'GLOBAL_FILTER_UPDATED';\nexport const SEARCH_OPTIONS_UPDATED = 'SEARCH_OPTIONS_UPDATED';\nexport const SET_SEARCH_OPTIONS_CONFIG = 'SET_SEARCH_OPTIONS_CONFIG';\nexport const SET_SEARCH_PROVIDER_DATA = 'SET_SEARCH_PROVIDER_DATA';\nexport const SET_SEARCH_NAVIGATION_DATA = 'SET_SEARCH_NAVIGATION_DATA';\nexport const UPDATE_SEARCH_NAVIGATION_DATA_ON_MERGE = 'UPDATE_SEARCH_NAVIGATION_DATA_ON_MERGE';\nexport const UPDATE_SEARCH_NAVIGATION_DATA_FIELDS = 'UPDATE_SEARCH_NAVIGATION_DATA_FIELDS';\n","import {\n ACTIVITY_FILTER_UPDATED,\n KEYWORD_UPDATED,\n SAVE_STATE,\n SEARCH_RESULTS_SET,\n UPDATE_STATE,\n SEARCH_OPTIONS_UPDATED,\n SET_SEARCH_OPTIONS_CONFIG,\n GLOBAL_FILTER_UPDATED,\n SET_SEARCH_PROVIDER_DATA,\n SET_SEARCH_NAVIGATION_DATA,\n UPDATE_SEARCH_NAVIGATION_DATA_FIELDS,\n UPDATE_SEARCH_NAVIGATION_DATA_ON_MERGE\n} from '../constants';\nimport {createStandardAction} from '../../utils';\n\nexport const searchResultsSet = createStandardAction(SEARCH_RESULTS_SET);\nexport const keywordUpdated = createStandardAction(KEYWORD_UPDATED);\nexport const updateState = createStandardAction(UPDATE_STATE);\nexport const saveState = createStandardAction(SAVE_STATE);\nexport const activityFilterUpdated = createStandardAction(ACTIVITY_FILTER_UPDATED);\nexport const globalFilterUpdated = createStandardAction(GLOBAL_FILTER_UPDATED);\nexport const updateSearchOptions = createStandardAction(SEARCH_OPTIONS_UPDATED);\nexport const setSearchOptionsConfig = createStandardAction(SET_SEARCH_OPTIONS_CONFIG);\nexport const setSearchProviderData = createStandardAction(SET_SEARCH_PROVIDER_DATA);\nexport const setSearchNavigationData = createStandardAction(SET_SEARCH_NAVIGATION_DATA);\nexport const updateSearchNavigationDataFields = createStandardAction(UPDATE_SEARCH_NAVIGATION_DATA_FIELDS);\nexport const updateSearchNavigationDataOnMerge = createStandardAction(UPDATE_SEARCH_NAVIGATION_DATA_ON_MERGE);\n","import {path} from 'ramda';\nimport {\n getGlobalSearchRequestOptions,\n getStringifiedSearchOptions,\n getActivityFilter,\n getGlobalFilterQuery,\n getSearchOptions\n} from '@reltio/mdm-sdk';\n\nexport const getSearchResults = (state) => state.searchResults;\nexport const getKeyword = (state) => state.keyword;\nexport const getGlobalFilter = (state) => state.globalFilter;\nexport const getGlobalFilterSavedSearchesUris = path(['globalFilter', 'savedSearchesUris']);\nexport const getSearchProviderData = (state) => state.searchProviderData;\nexport const getSearchNavigationData = (state) => state.searchNavigationData;\n\nexport {\n getGlobalSearchRequestOptions,\n getStringifiedSearchOptions,\n getActivityFilter,\n getGlobalFilterQuery,\n getSearchOptions\n};\n","import {call, select, takeLatest, put} from 'redux-saga/effects';\nimport mdmModule, {search} from '../../index';\nimport {SET_SEARCH_NAVIGATION_DATA, UPDATE_SEARCH_NAVIGATION_DATA_FIELDS} from '../constants';\nimport {UIActions} from '../../ui/constants';\n\nconst SEARCH_NAVIGATION = 'searchNavigation';\n\nexport function* saveSearchNavigation() {\n const searchNavigationData = yield select(mdmModule.selectors.getSearchNavigationData);\n const searchProviderData = yield select(mdmModule.selectors.getSearchProviderData);\n sessionStorage.setItem(SEARCH_NAVIGATION, JSON.stringify({searchNavigationData, searchProviderData}));\n}\n\nexport function* restoreSearchNavigation() {\n let valueFromStorage;\n try {\n valueFromStorage = JSON.parse(sessionStorage.getItem(SEARCH_NAVIGATION)) || {};\n } catch (e) {\n valueFromStorage = {};\n }\n const {searchNavigationData, searchProviderData} = valueFromStorage;\n if (searchNavigationData && searchProviderData) {\n yield put(search.actions.setSearchProviderData(searchProviderData));\n yield put(search.actions.setSearchNavigationData(searchNavigationData));\n }\n}\n\nexport function* saveSearchNavigationSaga() {\n yield takeLatest(\n [SET_SEARCH_NAVIGATION_DATA, UPDATE_SEARCH_NAVIGATION_DATA_FIELDS, UIActions.OPEN_ENTITY],\n saveSearchNavigation\n );\n}\n\nexport function* restoreSearchNavigationSaga() {\n yield call(restoreSearchNavigation);\n}\n\nconst sagas = [saveSearchNavigationSaga, restoreSearchNavigationSaga];\n\nexport default sagas;\n","import {isNil, isEmpty, pick} from 'ramda';\nimport {\n ACTIVITY_FILTER_UPDATED,\n KEYWORD_UPDATED,\n SEARCH_RESULTS_SET,\n UPDATE_STATE,\n SEARCH_OPTIONS_UPDATED,\n SET_SEARCH_OPTIONS_CONFIG,\n GLOBAL_FILTER_UPDATED,\n SET_SEARCH_PROVIDER_DATA,\n SET_SEARCH_NAVIGATION_DATA,\n UPDATE_SEARCH_NAVIGATION_DATA_FIELDS\n} from '../constants';\nimport {UIActions} from '../../ui/constants';\nimport {isEmptyValue, removeDtssPrefixFromEntityUri} from '@reltio/mdm-sdk';\n\nconst initialState = {\n searchResults: [],\n keyword: null,\n searchOptions: {\n searchByOv: false,\n ovOnly: false\n },\n activityFilter: 'active',\n globalFilter: {\n query: null,\n savedSearchesUris: [],\n isMuted: true\n },\n searchProviderData: null,\n searchNavigationData: null\n};\n\nconst searchReducer = (state = initialState, action) => { //NOSONAR\n switch (action.type) {\n case SEARCH_RESULTS_SET:\n return {...state, searchResults: action.payload};\n case KEYWORD_UPDATED: {\n const keyword = pick(['value', 'isRawFilter'], action.payload || {});\n return {...state, keyword: isEmpty(keyword) ? null : keyword};\n }\n case UPDATE_STATE: {\n return {\n ...initialState,\n keyword:\n isNil(action.payload.keyword) || isEmpty(action.payload.keyword) ? null : action.payload.keyword,\n searchOptions: action.payload.searchOptions || state.searchOptions,\n activityFilter: state.activityFilter,\n globalFilter: state.globalFilter,\n searchNavigationData: state.searchNavigationData,\n searchProviderData: state.searchProviderData\n };\n }\n case ACTIVITY_FILTER_UPDATED:\n return {...state, activityFilter: action.payload};\n case GLOBAL_FILTER_UPDATED:\n return {...state, globalFilter: isEmptyValue(action.payload) ? initialState.globalFilter : action.payload};\n case SEARCH_OPTIONS_UPDATED: {\n return {...state, searchOptions: {...state.searchOptions, ...action.payload}};\n }\n case SET_SEARCH_OPTIONS_CONFIG: {\n const showSearchByOv = !!action.payload.showSearchByOv;\n const searchOptions = {\n searchByOv: showSearchByOv,\n ovOnly: showSearchByOv\n };\n return {...state, searchOptions};\n }\n case SET_SEARCH_PROVIDER_DATA: {\n return {...state, searchProviderData: action.payload};\n }\n case SET_SEARCH_NAVIGATION_DATA: {\n return {...state, searchNavigationData: action.payload};\n }\n case UPDATE_SEARCH_NAVIGATION_DATA_FIELDS: {\n return {...state, searchNavigationData: {...state.searchNavigationData, ...action.payload}};\n }\n case UIActions.OPEN_ENTITY: {\n const entityUriWithoutDtssPrefix = removeDtssPrefixFromEntityUri(action.payload.uri);\n return action.payload.source === 'navigation' ||\n entityUriWithoutDtssPrefix === state.searchNavigationData?.uri\n ? state\n : {...state, searchNavigationData: null};\n }\n default:\n return state;\n }\n};\n\nexport default searchReducer;\n","import {UIActions} from '../constants';\nimport {createStandardAction} from '../../utils';\nimport {\n AttributeType,\n DashboardView,\n Entity,\n GraphLayout,\n HistoryEvent,\n LayoutConfigItem,\n NumberLocale,\n PivotingItem,\n PivotingValue,\n PropertiesConfig,\n SearchState,\n UIPlugin\n} from '@reltio/mdm-sdk';\n\nexport const openEntity = ({uri, viewId, source = null, screen = 'profile'}) => ({\n type: UIActions.OPEN_ENTITY,\n payload: {\n uri,\n viewId,\n source,\n screen\n }\n});\nexport const newEntityShown = ({entity}) => ({\n type: UIActions.NEW_ENTITY_SHOWN,\n payload: {\n entity\n }\n});\nexport const entityDeletionFinished = createStandardAction(UIActions.ENTITY_DELETION_FINISHED);\nexport const openPerspective = ({perspectiveId, viewId}) => ({\n type: UIActions.OPEN_PERSPECTIVE,\n payload: {\n perspectiveId,\n viewId\n }\n});\n\nexport const showNotification = (payload) => ({\n type: UIActions.SHOW_NOTIFICATION,\n payload\n});\n\nexport const closeNotification = (payload) => ({\n type: UIActions.CLOSE_NOTIFICATION,\n payload\n});\n\nexport const clearNotifications = createStandardAction(UIActions.CLEAR_NOTIFICATIONS);\n\ntype NewUIConfig = {\n layout: LayoutConfigItem[];\n pivoting: PivotingItem[];\n properties: PropertiesConfig;\n};\ntype AttributePresentation = Omit<NumberLocale, 'groupSeparator' | 'digitsAfterDecimalSeparator'> & {\n thousandSeparator: NumberLocale['groupSeparator'];\n decimalScale: NumberLocale['digitsAfterDecimalSeparator'];\n};\n\nexport const pathsSet = createStandardAction<UIActions.PATHS_SET, Record<string, string>>(UIActions.PATHS_SET);\nexport const uiConfigLoaded = createStandardAction<UIActions.UI_CONFIG_LOADED, UIPlugin[]>(UIActions.UI_CONFIG_LOADED);\nexport const newUiConfigLoaded = createStandardAction<UIActions.NEW_UI_CONFIG_LOADED, NewUIConfig | undefined>(\n UIActions.NEW_UI_CONFIG_LOADED\n);\nexport const localeAttributePresentationLoaded = createStandardAction<\n UIActions.LOCALE_ATTRIBUTE_PRESENTATION_LOADED,\n AttributePresentation\n>(UIActions.LOCALE_ATTRIBUTE_PRESENTATION_LOADED);\nexport const autocloseIntervalLoaded = createStandardAction<UIActions.AUTOCLOSE_INTERVAL_LOADED, number>(\n UIActions.AUTOCLOSE_INTERVAL_LOADED\n);\nexport const setPreferReact = createStandardAction<UIActions.SET_PREFER_REACT, boolean>(UIActions.SET_PREFER_REACT);\nexport const numberFormatUpdated = createStandardAction<UIActions.NUMBER_FORMAT_UPDATED, string>(\n UIActions.NUMBER_FORMAT_UPDATED\n);\nexport const openConsoleApp = (name: string, path?: string, query?: string) => ({\n type: UIActions.OPEN_CONSOLE_APP,\n payload: {name, path, query}\n});\nexport const openAppFromChocolateBar = createStandardAction<UIActions.OPEN_APP_FROM_CHOCOLATE_BAR, string>(\n UIActions.OPEN_APP_FROM_CHOCOLATE_BAR\n);\nexport const openGraph = createStandardAction<\n UIActions.OPEN_GRAPH,\n {viewId: string; graphType: string; entityUri: string; graphLayout?: GraphLayout}\n>(UIActions.OPEN_GRAPH);\n\nexport const localizationLoaded = createStandardAction<UIActions.LOCALIZATION_LOADED, void>(\n UIActions.LOCALIZATION_LOADED\n);\n\nexport const dateMaskUpdated = createStandardAction<UIActions.DATE_MASK_UPDATED, string>(UIActions.DATE_MASK_UPDATED);\nexport const dateTimeMaskUpdated = createStandardAction<UIActions.DATE_TIME_MASK_UPDATED, string>(\n UIActions.DATE_TIME_MASK_UPDATED\n);\n\ntype SearchPayload = {\n searchState: SearchState;\n saveToRecent?: boolean;\n viewId?: string;\n};\nexport const openSearch = (payload: SearchPayload | SearchPayload['searchState']) => ({\n type: UIActions.OPEN_SEARCH,\n payload: 'searchState' in payload ? payload : {searchState: payload}\n});\n\nexport const openHistoryEvent = createStandardAction<\n UIActions.OPEN_HISTORY_EVENT,\n {entityUri: string; historyEvent: HistoryEvent}\n>(UIActions.OPEN_HISTORY_EVENT);\n\nexport const openNewEntityWithAuthoring = createStandardAction<\n UIActions.OPEN_NEW_ENTITY_WITH_AUTHORING,\n {entity: Entity}\n>(UIActions.OPEN_NEW_ENTITY_WITH_AUTHORING);\n\nexport const openPreviousPage = createStandardAction<UIActions.OPEN_PREVIOUS_PAGE, void>(UIActions.OPEN_PREVIOUS_PAGE);\n\ntype NavigatePayload = {\n url: string;\n searchParams?: Record<string, string>;\n options?: {\n replace?: boolean;\n state?: Record<string, string>;\n };\n};\nexport const navigateTo = createStandardAction<UIActions.NAVIGATE, NavigatePayload>(UIActions.NAVIGATE);\n\nexport const keysSet = createStandardAction<UIActions.KEYS_SET, Record<string, string>>(UIActions.KEYS_SET);\n\nexport const openPivotingPerspective = createStandardAction<\n UIActions.OPEN_PIVOTING_PERSPECTIVE,\n {attributeType: AttributeType; value: PivotingValue[]}\n>(UIActions.OPEN_PIVOTING_PERSPECTIVE);\n\nexport const errorSet = createStandardAction<UIActions.ERROR_SET, string>(UIActions.ERROR_SET);\n\nexport const documentationSet = createStandardAction<UIActions.DOCUMENTATION_SET, Record<string, string>>(\n UIActions.DOCUMENTATION_SET\n);\n\nexport const addDashboardExternalView = createStandardAction<UIActions.ADD_DASHBOARD_EXTERNAL_VIEW, DashboardView>(\n UIActions.ADD_DASHBOARD_EXTERNAL_VIEW\n);\n","import {chain, either, hasPath, ifElse, path, pipe, prop, pathOr} from 'ramda';\nimport {createSelector} from 'reselect';\nimport {\n AttributePresentations,\n getSpecialAttributesPresentation,\n intl,\n CleanseConfiguration,\n getAuthoringItemsFromLayoutByEntityType\n} from '@reltio/mdm-sdk';\n\nexport const getImagePath = path(['paths', 'imagePath']);\nexport const getExportPath = path(['paths', 'exportPath']);\nexport const getApiPath = path(['paths', 'apiPath']);\nexport const getUIPath = path(['paths', 'uiPath']);\nexport const getReltioPath = path(['paths', 'reltioPath']);\nexport const getDtssPath = path(['paths', 'dtssPath']);\nexport const getExportDQPath = path(['paths', 'exportDQPath']);\nexport const getWorkflowPath = either(\n path(['newConfig', 'properties', 'workflow', 'path']),\n path(['paths', 'workflowPath'])\n);\nexport const getPaths = prop('paths');\nexport const getWorkflowEnvironmentURL = path(['paths', 'workflowEnvironmentURL']);\nexport const getCollaborationPath = path(['paths', 'collaborationPath']);\nexport const getImageServicePath = path(['paths', 'imageServicePath']);\nexport const getDVFPath = path(['paths', 'dvfPath']);\nexport const getValidationServicePath = path(['paths', 'validationServicePath']);\nexport const getAdminToolsPath = path(['paths', 'adminToolsPath']);\nexport const getMlDqPath = path(['paths', 'mlDqPath']);\nexport const getRawAttributePresentations = (store) =>\n either(path(['newConfig', 'properties', 'attributePresentations']), path(['attributePresentations']))(store);\nexport const getAttributePresentations = createSelector(\n getRawAttributePresentations,\n () => intl.getLocale(),\n (attributesPresentation: AttributePresentations = {}, locale: string) => ({\n ...attributesPresentation,\n ...getSpecialAttributesPresentation(attributesPresentation, locale)\n })\n);\nexport const getAutoCloseInterval = (state) => state.autoCloseInterval;\nexport const getDefaultMaxValues = either(\n path(['config', 'com.reltio.plugins.entity.EntityRequestSettings', 'defaultMaxValues']),\n path(['newConfig', 'properties', 'entity', 'requestSettings', 'defaultMaxValues'])\n);\nexport const getUiNumberFormat = path(['numberFormat']);\nexport const getDateMask = either(path(['newConfig', 'properties', 'masks', 'dateMask']), path(['dateMask']));\nexport const getNotifications = path(['notifications']);\nexport const getDateTimeMask = either(\n path(['newConfig', 'properties', 'masks', 'dateTimeMask']),\n path(['dateTimeMask'])\n);\nexport const getRequestProviderConfiguration = path(['newConfig', 'properties', 'requestProvider']);\nconst emptyArray = [];\nconst oldPivotingSettingsPath = ['config', 'com.reltio.plugins.pivoting.PivotingSettings', 'pivotingAttributes'];\nconst collectPivotingAttributes = chain(prop('attribute-types'));\nexport const getPivotingAttributes = ifElse(\n hasPath(oldPivotingSettingsPath),\n path(oldPivotingSettingsPath),\n pipe(pathOr(emptyArray, ['newConfig', 'pivoting']), collectPivotingAttributes)\n);\nexport const getImageAttributesFieldsOrder = either(\n path(['config', 'com.reltio.plugins.imageattribute.fieldsorder']),\n path(['newConfig', 'properties', 'image', 'attributeFieldsOrder'])\n);\nexport const getLookupAutocomplete = either(\n path(['config', 'com.reltio.plugins.ui.LookupAutocomplete']),\n path(['newConfig', 'properties', 'lookups', 'autocomplete'])\n);\nexport const getGoogleMapKey = path(['keys', 'googleMapKey']);\nexport const getIcpLicenseKey = path(['keys', 'icpLicenseKey']);\n\nexport const getDocReleaseNotes = pathOr('', ['documentation', 'releaseNotes']);\n\nconst oldValidationSeverityLevelPath = ['config', 'com.reltio.plugins.entity.ValidationServiceLevels', 'levels'];\nexport const getValidationServiceSeverityLevels = ifElse(\n hasPath(oldValidationSeverityLevelPath),\n path(oldValidationSeverityLevelPath),\n path(['newConfig', 'properties', 'validate', 'levels'])\n);\n\nexport const getValidateReadMode = ifElse(\n hasPath(['config', 'com.reltio.plugins.entity.Validation', 'validateReadMode']),\n path(['config', 'com.reltio.plugins.entity.Validation', 'validateReadMode']),\n pathOr(true, ['newConfig', 'properties', 'validate', 'validateReadMode'])\n);\n\nexport const getValidateRelations = pathOr(false, ['newConfig', 'properties', 'validate', 'validateRelations']);\nexport const getValidateReferenceEntityInReadMode = pathOr(false, [\n 'newConfig',\n 'properties',\n 'validate',\n 'validateReferenceEntityInReadMode'\n]);\n\nexport const getWorkflowConfigurationEnabled = either(\n path(['config', 'com.reltio.plugins.workflow.configuration', 'enabled']),\n path(['newConfig', 'properties', 'workflow', 'enabled'])\n);\n\nexport const getUiError = path(['error']);\nexport const getServicesPath = path(['paths', 'servicesPath']);\nexport const getUIConfig = path(['newConfig']);\nexport const getUIConfigLayout = path(['newConfig', 'layout']);\nexport const getShowEntityId = pathOr(true, ['newConfig', 'properties', 'showEntityId']);\nexport const getPreview = pathOr(false, ['newConfig', 'properties', 'preview']);\nexport const getLogo = path(['newConfig', 'properties', 'logo']);\nexport const getHeaderColor = path(['newConfig', 'properties', 'headerColor']);\nexport const getShowSearchByOv = path(['newConfig', 'properties', 'showSearchByOv']);\nexport const getShowAttributeDescription = path(['newConfig', 'properties', 'showAttributeDescription']);\nexport const getAttributesSortingStrategy = path(['newConfig', 'properties', 'attributesSorting']);\nexport const getProfileCheckUpdate = path(['newConfig', 'properties', 'profileCheckUpdate']);\nexport const getCleanseConfigurationByEntityType = (state, entityTypeUri): CleanseConfiguration =>\n path(['newConfig', 'properties', 'cleanseConfiguration', entityTypeUri])(state);\n\nexport const getAuthoringByEntityType = (state, entityTypeUri: string) => {\n return getAuthoringItemsFromLayoutByEntityType(getUIConfigLayout(state), entityTypeUri);\n};\n\nexport const getAiAssistantEnabled = pathOr(false, ['newConfig', 'properties', 'aiAssistant', 'enabled']);\nexport const getAiAssistantEntityTypes = pathOr([], ['newConfig', 'properties', 'aiAssistant', 'entityTypes']);\nexport const getAiAssistantLimitPerDay = pathOr(10, ['newConfig', 'properties', 'aiAssistant', 'messagesPerDay']);\n","import {UIActions} from '../constants';\nimport {assoc, evolve, reject, propEq} from 'ramda';\nimport {LOCALE_ATTRIBUTE_PRESENTATION} from '@reltio/mdm-sdk';\n\nconst initState = {};\n\nconst uiReducer = (state = initState, action) => { //NOSONAR\n switch (action.type) {\n case UIActions.PATHS_SET:\n return {...state, paths: action.payload};\n case UIActions.UI_CONFIG_LOADED:\n return {...state, config: action.payload};\n case UIActions.NEW_UI_CONFIG_LOADED:\n return {...state, newConfig: action.payload};\n case UIActions.LOCALE_ATTRIBUTE_PRESENTATION_LOADED:\n return evolve(\n {\n newConfig: {\n properties: {\n attributePresentations: assoc(LOCALE_ATTRIBUTE_PRESENTATION, action.payload)\n }\n }\n },\n state\n );\n case UIActions.AUTOCLOSE_INTERVAL_LOADED:\n return {...state, autoCloseInterval: action.payload};\n case UIActions.NUMBER_FORMAT_UPDATED:\n return {...state, numberFormat: action.payload};\n case UIActions.DATE_MASK_UPDATED:\n return {...state, dateMask: action.payload};\n case UIActions.DATE_TIME_MASK_UPDATED:\n return {...state, dateTimeMask: action.payload};\n case UIActions.KEYS_SET:\n return {...state, keys: action.payload};\n case UIActions.ERROR_SET:\n return {...state, error: action.payload};\n case UIActions.DOCUMENTATION_SET:\n return {...state, documentation: action.payload};\n case UIActions.SHOW_NOTIFICATION:\n return {...state, notifications: [...(state.notifications || []), action.payload]};\n case UIActions.CLOSE_NOTIFICATION:\n return evolve(\n {\n notifications: reject(propEq('id', action.payload))\n },\n state\n );\n case UIActions.CLEAR_NOTIFICATIONS:\n return {...state, notifications: []};\n default:\n return state;\n }\n};\n\nexport default uiReducer;\n","export const USER_UPDATED = 'USER_UPDATED';\n","import {USER_UPDATED} from '../constants';\nimport {createStandardAction} from '../../utils';\n\nexport const userUpdated = createStandardAction(USER_UPDATED);\n","export const getUserName = (state) => state?.username;\nexport const getUserRoles = (state) => state?.roles;\n","import {USER_UPDATED} from '../constants';\n\nconst initState = null;\nconst userReducer = (state = initState, action) => {\n switch (action.type) {\n case USER_UPDATED:\n return action.payload || initState;\n default:\n return state;\n }\n};\n\nexport default userReducer;\n","export const TENANT_UPDATED = 'TENANT_UPDATED';\nexport const TENANT_NAME_UPDATED = 'TENANT_NAME_UPDATED';\n","import {TENANT_NAME_UPDATED, TENANT_UPDATED} from '../constants';\nimport {createStandardAction} from '../../utils';\n\nexport const tenantUpdated = createStandardAction(TENANT_UPDATED);\nexport const tenantNameUpdated = createStandardAction(TENANT_NAME_UPDATED);\n","import {prop} from 'ramda';\n\nexport const getTenantId = prop('id');\nexport const getTenantName = prop('name');\n","import {TENANT_NAME_UPDATED, TENANT_UPDATED} from '../constants';\n\nconst initState = null;\n\nconst tenantReducer = (state = initState, action) => {\n switch (action.type) {\n case TENANT_UPDATED:\n return {\n ...state,\n id: action.payload\n };\n case TENANT_NAME_UPDATED:\n return {\n ...state,\n name: action.payload\n };\n default:\n return state;\n }\n};\n\nexport default tenantReducer;\n","export const ENVIRONMENT_UPDATED = 'ENVIRONMENT_UPDATED';\nexport const ENVIRONMENT_ALIAS_UPDATED = 'ENVIRONMENT_ALIAS_UPDATED';\n","import {ENVIRONMENT_UPDATED, ENVIRONMENT_ALIAS_UPDATED} from '../constants';\nimport {createStandardAction} from '../../utils';\n\nexport const environmentUpdated = createStandardAction(ENVIRONMENT_UPDATED);\nexport const environmentAliasUpdated = createStandardAction(ENVIRONMENT_ALIAS_UPDATED);\n","import {prop} from 'ramda';\n\nexport const getEnvironmentId = prop('id');\n\n// We need environment alias because of terrible misconfiguration:\n// reltioEnvironmentName server property (eu-360) doesn't match adminTools json environment \"name\" field (euprod-01)\n// So, UI-related services like Preferences, ImageHosting, Collaboration, SavedSearches already have records in DB with eu-360 env name\n// At the same time, common services like ConfigService (which is also used in Console apps) used alias name euprod-01 for their data.\nexport const getEnvironmentAlias = prop('alias');\n","import {ENVIRONMENT_ALIAS_UPDATED, ENVIRONMENT_UPDATED} from '../constants';\n\nconst initState = null;\n\nconst environmentReducer = (state = initState, action) => {\n switch (action.type) {\n case ENVIRONMENT_UPDATED:\n return {\n ...state,\n id: action.payload\n };\n case ENVIRONMENT_ALIAS_UPDATED:\n return {\n ...state,\n alias: action.payload\n };\n default:\n return state;\n }\n};\n\nexport default environmentReducer;\n","import {selectors as profileSelectors} from './profile';\nimport {selectors as searchSelectors} from './search';\nimport {selectors as uiSelectors} from './ui';\nimport {selectors as userSelectors} from './user';\nimport {selectors as tenantSelectors} from './tenant';\nimport {selectors as environmentSelectors} from './environment';\nimport {createSelector} from 'reselect';\nimport {\n canUserMakeExport,\n canUserImportEntitiesFromDT,\n canUserReadEntitiesFromDT,\n canUserStartProcessInstanceFromQuery,\n canUserMakeBulkUpdate,\n canUserOpenDataLoader,\n canUserDeleteProfiles,\n canUserMakeActivitiesExport,\n canUserGetDQStatistic,\n canUserReadDVF,\n canUserRegisterConfigEnvironments,\n canUserCreateWorkflowConfigJar,\n canUserCreateWorkflowEnvironmentConfigJar,\n canUserExecuteWorkflowJobs,\n canUserExecuteWorkflowJobsSyncBusinessProcessData,\n canUserExecuteWorkflowJobsTerminateProcessInstance,\n canUserExecuteWorkflowJobsUpdateTasks,\n canUserExecuteWorkflowJobsValidateTasks,\n canUserManageWorkflowDefinition,\n canUserManageWorkflowEnvironmentDefinition,\n canUserReadWorkflowDataTask,\n canUserUpdateProcessInstance,\n canUserUpdateWorkflowDataTask,\n canUserViewProcessInstanceSearchQuery,\n canUserViewWorkflowConfigJar,\n canUserViewWorkflowDefinition,\n canUserViewWorkflowEnvironmentConfigJar,\n canUserViewWorkflowJobs,\n getEntityType,\n checkMetadataForUpdate,\n getProfileEntityWithHistoryDiff,\n getProfileEntityWithoutHistoryDiff,\n getRelationType,\n checkMetadataForCreate,\n Mode,\n isTempUri,\n isEmptyValue\n} from '@reltio/mdm-sdk';\nimport {both} from 'ramda';\n\nexport const getDataTenants = (state) => state.dataTenants;\nexport const getTenants = (state) => state.tenants;\nexport const getMetadata = (state, tenant = getTenant(state)) => state.metadata && state.metadata[tenant];\nexport const getTenantObject = (state) => state.tenant;\nexport const getEnvironmentObject = (state) => state.environment;\nexport const getUser = (state) => state.user;\nexport const getUi = (state) => state.ui;\nexport const getProfile = (state) => state.profile;\nexport const getSearch = (state) => state.search;\n\nexport const getEntity = (state) => profileSelectors.getEntity(getProfile(state));\nexport const getEntityUri = (state) => profileSelectors.getUri(getProfile(state));\nexport const getEntityUriWithDataTenant = (state) => profileSelectors.getUriWithDataTenant(getProfile(state));\nexport const getConnectionsByViewId = (state, id) => profileSelectors.getConnectionsByViewId(getProfile(state), id);\nexport const getEditingOrAddingConnectionByViewIdAndRelationUri = (state, id, relationUri) =>\n profileSelectors.getEditingOrAddingConnectionByViewIdAndRelationUri(getProfile(state), id, relationUri);\nexport const getEditingOrAddingConnectionRelationObjectByViewIdAndRelationUri = (state, id, relationUri) =>\n profileSelectors.getEditingOrAddingConnectionRelationObjectByViewIdAndRelationUri(\n getProfile(state),\n id,\n relationUri\n );\nexport const getConnectionsWithDraftsByViewId = (state, id, parentEntityUri) =>\n profileSelectors.getConnectionsWithDraftsByViewId(getProfile(state), id, parentEntityUri);\nexport const getDraftsForSaveByViewId = (state, id) => profileSelectors.getDraftsForSaveByViewId(getProfile(state), id);\nexport const getConnectionsTemporaryUrisForCreation = (state) =>\n profileSelectors.getConnectionsTemporaryUrisForCreation(getProfile(state));\nexport const getTotalByViewId = (state, id, parentEntityUri) =>\n profileSelectors.getTotalByViewId(getProfile(state), id, parentEntityUri);\nexport const getLookups = (state) => profileSelectors.getLookups(getProfile(state));\nexport const getProfileErrors = (state) => profileSelectors.getErrors(getProfile(state));\nexport const getRelationsViewIds = (state) => profileSelectors.getRelationsViewIds(getProfile(state));\nexport const getHistoryDiff = (state) => profileSelectors.getHistoryDiff(getProfile(state));\nexport const getHistoryEvent = (state) => profileSelectors.getHistoryEvent(getProfile(state));\nexport const getHistorySlice = (state) => profileSelectors.getHistorySlice(getProfile(state));\nexport const getIsHistoryModeEnabled = (state) => profileSelectors.getIsHistoryModeEnabled(getProfile(state));\nexport const getHistoryMode = (state) => profileSelectors.getHistoryMode(getProfile(state));\nexport const getModifiedEntity = (state, uri) => profileSelectors.getModifiedEntity(getProfile(state), uri);\nexport const getModifiedEntityDefaultProfilePic = (state, uri) =>\n profileSelectors.getModifiedEntityDefaultProfilePic(getProfile(state), uri);\nexport const getModifiedEntities = (state) => profileSelectors.getModifiedEntities(getProfile(state));\n\nexport const getAttributeTypeErrors = (state, parentUri, {uri: attributeTypeUri}) =>\n profileSelectors.getAttributeTypeErrors(getProfile(state), parentUri, attributeTypeUri);\nexport const getAttributesErrors = (state, parentUri, {uri: attributeTypeUri}) =>\n profileSelectors.getAttributesErrors(getProfile(state), parentUri, attributeTypeUri);\nexport const getActiveErrorsForAttributesPager = (state, parentUri, attributeType) =>\n profileSelectors.getActiveErrorsForAttributesPager(getProfile(state), parentUri, attributeType);\n\nexport const getImagePath = (state) => uiSelectors.getImagePath(getUi(state));\nexport const getApiPath = (state) => uiSelectors.getApiPath(getUi(state));\nexport const getExportPath = (state) => uiSelectors.getExportPath(getUi(state));\nexport const getUIPath = (state) => uiSelectors.getUIPath(getUi(state));\nexport const getReltioPath = (state) => uiSelectors.getReltioPath(getUi(state));\nexport const getImageServicePath = (state) => uiSelectors.getImageServicePath(getUi(state));\nexport const getAdminToolsPath = (state) => uiSelectors.getAdminToolsPath(getUi(state));\n\nexport const getAttributePresentations = (state) => uiSelectors.getAttributePresentations(getUi(state));\nexport const getUiNumberFormat = (state) => uiSelectors.getUiNumberFormat(getUi(state));\nexport const getDefaultMaxValues = (state) => uiSelectors.getDefaultMaxValues(getUi(state));\nexport const getAutoCloseInterval = (state) => uiSelectors.getAutoCloseInterval(getUi(state));\nexport const getDateMask = (state) => uiSelectors.getDateMask(getUi(state));\nexport const getDateTimeMask = (state) => uiSelectors.getDateTimeMask(getUi(state));\nexport const getRequestProviderConfiguration = (state) => uiSelectors.getRequestProviderConfiguration(getUi(state));\nexport const getNotifications = (state) => uiSelectors.getNotifications(getUi(state));\nexport const getPivotingAttributes = (state) => uiSelectors.getPivotingAttributes(getUi(state));\nexport const getImageAttributesFieldsOrder = (state) => uiSelectors.getImageAttributesFieldsOrder(getUi(state));\nexport const getLookupAutocomplete = (state) => uiSelectors.getLookupAutocomplete(getUi(state));\nexport const getGoogleMapKey = (state) => uiSelectors.getGoogleMapKey(getUi(state));\nexport const getIcpLicenseKey = (state) => uiSelectors.getIcpLicenseKey(getUi(state));\nexport const getValidationServiceSeverityLevels = (state) =>\n uiSelectors.getValidationServiceSeverityLevels(getUi(state));\nexport const getValidateReadMode = (state) => uiSelectors.getValidateReadMode(getUi(state));\nexport const getValidateRelations = (state) => uiSelectors.getValidateRelations(getUi(state));\nexport const getValidateReferenceEntityInReadMode = (state) =>\n uiSelectors.getValidateReferenceEntityInReadMode(getUi(state));\nexport const getAiAssistantEnabled = (state) => uiSelectors.getAiAssistantEnabled(getUi(state));\nexport const getAiAssistantEntityTypes = (state) => uiSelectors.getAiAssistantEntityTypes(getUi(state));\nexport const getAiAssistantLimitPerDay = (state) => uiSelectors.getAiAssistantLimitPerDay(getUi(state));\n\nexport const getSearchResults = (state) => searchSelectors.getSearchResults(getSearch(state));\nexport const getSearchKeyword = (state) => searchSelectors.getKeyword(getSearch(state));\nexport const getActivityFilter = (state) => searchSelectors.getActivityFilter(getSearch(state));\nexport const getSearchOptions = (state) => searchSelectors.getSearchOptions(getSearch(state));\nexport const getSearchProviderData = (state) => searchSelectors.getSearchProviderData(getSearch(state));\nexport const getSearchNavigationData = (state) => searchSelectors.getSearchNavigationData(getSearch(state));\nexport const getGlobalSearchRequestOptions = (state, omittingFields) =>\n searchSelectors.getGlobalSearchRequestOptions(getSearch(state), omittingFields);\nexport const getStringifiedSearchOptions = (state) => searchSelectors.getStringifiedSearchOptions(getSearch(state));\nexport const getGlobalFilter = (state) => searchSelectors.getGlobalFilter(getSearch(state));\nexport const getGlobalFilterQuery = (state) => searchSelectors.getGlobalFilterQuery(getSearch(state));\nexport const getGlobalFilterSavedSearchesUris = (state) =>\n searchSelectors.getGlobalFilterSavedSearchesUris(getSearch(state));\n\nexport const getMode = (state) => profileSelectors.getMode(getProfile(state));\nexport const getIsEditableMode = (state) => profileSelectors.getIsEditableMode(getProfile(state));\nexport const getIsViewMode = (state) => profileSelectors.getIsViewMode(getProfile(state));\nexport const getIsSuggestMode = (state) => profileSelectors.getIsSuggestMode(getProfile(state));\nexport const getRelations = (state) => profileSelectors.getRelations(getProfile(state));\nexport const getRelationToAddByViewId = (state, id) => profileSelectors.getRelationToAddByViewId(getProfile(state), id);\nexport const getRelationsToEditByViewId = (state, id) =>\n profileSelectors.getRelationsToEditByViewId(getProfile(state), id);\nexport const getAllRelationsToAddAndEdit = (state, viewIds) =>\n profileSelectors.getAllRelationsToAddAndEdit(getProfile(state), viewIds);\nexport const getAllRelationsToSave = (state, viewIds) =>\n profileSelectors.getAllRelationsToSave(getProfile(state), viewIds);\nexport const getAllRelationsByViewIds = (state, viewIds) =>\n profileSelectors.getAllRelationsByViewIds(getProfile(state), viewIds);\nexport const getInitialConnectionTempEntity = (state, viewId, relationUri) =>\n profileSelectors.getInitialConnectionTempEntity(getProfile(state), viewId, relationUri);\nexport const getInitialConnection = (state, viewId, relationUri) =>\n profileSelectors.getInitialConnection(getProfile(state), viewId, relationUri);\nexport const getViewIdsForOpenRelation = (state, relationUri) =>\n profileSelectors.getViewIdsForOpenRelation(getProfile(state), relationUri);\n\nexport const getAbsoluteImagePath = (state) =>\n uiSelectors.getImagePath(getUi(state)) || uiSelectors.getApiPath(getUi(state));\n\nexport const getUserName = (state) => userSelectors.getUserName(getUser(state));\nexport const getUserRoles = (state) => userSelectors.getUserRoles(getUser(state));\nexport const getTrees = (state) => profileSelectors.getTrees(getProfile(state));\nexport const getTree = (state, id) => profileSelectors.getTree(getProfile(state), id);\nexport const getTreeRoot = (state, id) => profileSelectors.getTreeRoot(getProfile(state), id);\nexport const getTreeTotal = (state, id) => profileSelectors.getTreeTotal(getProfile(state), id);\nexport const getTreeCommands = (state) => profileSelectors.getTreeCommands(getProfile(state));\nexport const getTreeEditingConnection = (state, id, relationUri) =>\n profileSelectors.getTreeEditingConnection(getProfile(state), id, relationUri);\nexport const getAllTreesEditingConnections = (state, viewIds) =>\n profileSelectors.getAllTreesEditingConnections(getProfile(state), viewIds);\n\nexport const getProfileLastLoadedTime = (state) => profileSelectors.getLastLoadedTime(getProfile(state));\n\nexport const getProfileOperation = (state) => profileSelectors.getOperation(getProfile(state));\nexport const getProfileViews = (state) => profileSelectors.getViews(getProfile(state));\nexport const getProfileCancelNeedConfirm = (state) => profileSelectors.getProfileCancelNeedConfirm(getProfile(state));\n\nexport const getTenant = (state) => tenantSelectors.getTenantId(getTenantObject(state));\nexport const getTenantName = (state) => tenantSelectors.getTenantName(getTenantObject(state));\nexport const getEnvironment = (state) => environmentSelectors.getEnvironmentId(getEnvironmentObject(state));\nexport const getEnvironmentAlias = (state) => environmentSelectors.getEnvironmentAlias(getEnvironmentObject(state));\nexport const getDtssPath = (state) => uiSelectors.getDtssPath(getUi(state));\nexport const getExportDQPath = (state) => uiSelectors.getExportDQPath(getUi(state));\nexport const getWorkflowPath = (state) => uiSelectors.getWorkflowPath(getUi(state));\nexport const getAllServicesPaths = (state) => uiSelectors.getPaths(getUi(state));\nexport const getWorkflowEnvironmentUrl = (state) => uiSelectors.getWorkflowEnvironmentURL(getUi(state));\nexport const getWorkflowConfigurationEnabled = (state) => uiSelectors.getWorkflowConfigurationEnabled(getUi(state));\nexport const getCollaborationPath = (state) => uiSelectors.getCollaborationPath(getUi(state));\nexport const getDVFPath = (state) => uiSelectors.getDVFPath(getUi(state));\nexport const getValidationServicePath = (state) => uiSelectors.getValidationServicePath(getUi(state));\nexport const getMlDqPath = (state) => uiSelectors.getMlDqPath(getUi(state));\n\nexport const getCanUserRegisterConfigEnvironments = createSelector(\n getUser,\n getTenant,\n canUserRegisterConfigEnvironments\n);\nexport const getCanUserCreateWorkflowConfigJar = createSelector(getUser, getTenant, canUserCreateWorkflowConfigJar);\nexport const getCanUserCreateWorkflowEnvironmentConfigJar = createSelector(\n getUser,\n getTenant,\n canUserCreateWorkflowEnvironmentConfigJar\n);\nexport const getCanUserExecuteWorkflowJobs = createSelector(getUser, getTenant, canUserExecuteWorkflowJobs);\nexport const getCanUserExecuteWorkflowJobsSyncBusinessProcessData = createSelector(\n getUser,\n getTenant,\n canUserExecuteWorkflowJobsSyncBusinessProcessData\n);\nexport const getCanUserExecuteWorkflowJobsTerminateProcessInstance = createSelector(\n getUser,\n getTenant,\n canUserExecuteWorkflowJobsTerminateProcessInstance\n);\nexport const getCanUserExecuteWorkflowJobsUpdateTasks = createSelector(\n getUser,\n getTenant,\n canUserExecuteWorkflowJobsUpdateTasks\n);\nexport const getCanUserExecuteWorkflowJobsValidateTasks = createSelector(\n getUser,\n getTenant,\n canUserExecuteWorkflowJobsValidateTasks\n);\nexport const getCanUserManageWorkflowDefinition = createSelector(getUser, getTenant, canUserManageWorkflowDefinition);\nexport const getCanUserManageWorkflowEnvironmentDefinition = createSelector(\n getUser,\n getTenant,\n canUserManageWorkflowEnvironmentDefinition\n);\nexport const getCanUserReadWorkflowDataTask = createSelector(getUser, getTenant, canUserReadWorkflowDataTask);\nexport const getCanUserUpdateProcessInstance = createSelector(getUser, getTenant, canUserUpdateProcessInstance);\nexport const getCanUserUpdateWorkflowDataTask = createSelector(getUser, getTenant, canUserUpdateWorkflowDataTask);\nexport const getCanUserViewProcessInstanceSearchQuery = createSelector(\n getUser,\n getTenant,\n canUserViewProcessInstanceSearchQuery\n);\nexport const getCanUserViewWorkflowConfigJar = createSelector(getUser, getTenant, canUserViewWorkflowConfigJar);\nexport const getCanUserViewWorkflowDefinition = createSelector(getUser, getTenant, canUserViewWorkflowDefinition);\nexport const getCanUserViewWorkflowEnvironmentConfigJar = createSelector(\n getUser,\n getTenant,\n canUserViewWorkflowEnvironmentConfigJar\n);\nexport const getCanUserViewWorkflowJobs = createSelector(getUser, getTenant, canUserViewWorkflowJobs);\n\nexport const getCanUserMakeExport = createSelector(getUser, getTenant, canUserMakeExport);\nexport const getCanUserMakeActivitiesExport = createSelector(getUser, getTenant, canUserMakeActivitiesExport);\nexport const getCanUserImportEntitiesFromDT = createSelector(getUser, getTenant, canUserImportEntitiesFromDT);\nexport const getCanUserReadEntitiesFromDT = createSelector(getUser, getTenant, canUserReadEntitiesFromDT);\n\nexport const getCanUserStartProcessFromQuery = createSelector(getUser, getTenant, canUserStartProcessInstanceFromQuery);\n\nexport const getCanUserMakeBulkUpdate = createSelector(getUser, getTenant, canUserMakeBulkUpdate);\nexport const getCanUserDeleteProfiles = createSelector(getUser, getTenant, canUserDeleteProfiles);\nexport const getCanUserOpenDataLoader = createSelector(getUser, getTenant, canUserOpenDataLoader);\n\nexport const getCanUserGetDQStatistic = createSelector(getUser, getTenant, canUserGetDQStatistic);\nexport const getCanUserReadDVF = createSelector(getUser, getTenant, canUserReadDVF);\n\nexport const isCollaborationEnabled = createSelector(\n getCollaborationPath,\n getIsHistoryModeEnabled,\n (collaborationPath, isHistoryModeEnabled) => !!collaborationPath && !isHistoryModeEnabled\n);\n\nexport const isWorkflowEnabled = createSelector(\n getWorkflowPath,\n getWorkflowConfigurationEnabled,\n (workflowPath, enabled) => !!workflowPath && !!enabled\n);\n\nconst hasSideView = (state, viewId) =>\n profileSelectors\n .getSidePanelViews(getProfile(state))\n ?.find((el) => el?.id === 'common')\n ?.views?.some((view) => view?.id === viewId) ?? false;\n\nexport const isWorkflowSideViewEnabled = (state) => hasSideView(state, 'com.reltio.plugins.entity.side.WorkflowsView');\n\nexport const isCollaborationSideViewEnabled = (state) =>\n hasSideView(state, 'com.reltio.plugins.entity.collaboration.DiscussionsView');\n\nexport const isDBConnectorSideViewEnabled = (state) =>\n profileSelectors.getSidePanelViews(getProfile(state))?.some((el) => el.id === 'D&B') ?? false;\n\nexport const getDBConnectorSideViews = (state) =>\n profileSelectors.getSidePanelViews(getProfile(state))?.find((el) => el.id === 'D&B')?.views ?? [];\n\nexport const getDependentLookups = (state) => profileSelectors.getDependentLookups(getProfile(state));\nexport const getDependentLookupsStructure = (state) => profileSelectors.getDependentLookupsStructure(getProfile(state));\nexport const getDependentLookupsStructureNode = (state, attributeTypeUri) =>\n profileSelectors.getDependentLookupsStructureNode(getProfile(state), attributeTypeUri);\nexport const getDependentLookupsInitedTypeUris = (state) =>\n profileSelectors.getDependentLookupsInitedTypeUris(getProfile(state));\nexport const getDependentLookupEditorsState = (state) =>\n profileSelectors.getDependentLookupEditorsState(getProfile(state));\nexport const getDependentLookupEditorState = (state, valueUri) =>\n profileSelectors.getDependentLookupEditorState(getProfile(state), valueUri);\nexport const getUiError = (state) => uiSelectors.getUiError(getUi(state));\n\nexport const getCheckIfCanAddRelations = (state, content) => {\n const metadata = getMetadata(state);\n const mode = getMode(state);\n const entity = getEntity(state);\n const authoringItems = getAuthoringByEntityType(state, entity?.type);\n const {nextEntry, inRelations = [], outRelations = []} = content;\n const isEditableMode = mode === Mode.Editing || mode === Mode.Suggesting;\n const isNewEntityAndSuggestingMode = mode === Mode.Suggesting && isTempUri(entity?.uri);\n const isAuthoringMode = !isEmptyValue(authoringItems);\n\n if (!isEditableMode || (isNewEntityAndSuggestingMode && !isAuthoringMode) || nextEntry || !entity) {\n return false;\n } else {\n const canEditEntity = checkMetadataForUpdate(mode, getEntityType(metadata, entity.type));\n const canCreateRelations = inRelations\n .concat(outRelations)\n .map((rel) => getRelationType(metadata, rel.uri || rel))\n .some(both(checkMetadataForCreate(mode), checkMetadataForUpdate(mode)));\n return canEditEntity && canCreateRelations;\n }\n};\n\nexport const getEntityWithDiff = createSelector(\n getEntity,\n getIsViewMode,\n getHistorySlice,\n getHistoryDiff,\n getProfileEntityWithHistoryDiff\n);\n\nexport const getEntityWithoutDiff = createSelector(\n getEntity,\n getIsViewMode,\n getHistorySlice,\n getProfileEntityWithoutHistoryDiff\n);\n\nexport const getServicesPath = (state) => uiSelectors.getServicesPath(getUi(state));\nexport const getUIConfig = (state) => uiSelectors.getUIConfig(getUi(state));\nexport const getUIConfigLayout = (state) => uiSelectors.getUIConfigLayout(getUi(state));\nexport const getShowEntityId = (state) => uiSelectors.getShowEntityId(getUi(state));\nexport const getPreview = (state) => uiSelectors.getPreview(getUi(state));\nexport const getDocReleaseNotes = (state) => uiSelectors.getDocReleaseNotes(getUi(state));\nexport const getLogo = (state) => uiSelectors.getLogo(getUi(state));\nexport const getHeaderColor = (state) => uiSelectors.getHeaderColor(getUi(state));\nexport const getShowSearchByOv = (state) => uiSelectors.getShowSearchByOv(getUi(state));\nexport const getShowAttributeDescription = (state) => uiSelectors.getShowAttributeDescription(getUi(state));\nexport const getAttributesSortingStrategy = (state) => uiSelectors.getAttributesSortingStrategy(getUi(state));\nexport const getProfileCheckUpdate = (state) => uiSelectors.getProfileCheckUpdate(getUi(state));\nexport const getAuthoringByEntityType = (state, entityTypeUri) =>\n uiSelectors.getAuthoringByEntityType(getUi(state), entityTypeUri);\nexport const getCleanseConfigurationByEntityType = (state, entityTypeUri) =>\n uiSelectors.getCleanseConfigurationByEntityType(getUi(state), entityTypeUri);\n","import {Entity} from '@reltio/mdm-sdk';\nimport {ProfileActionTypes} from '../actions/constants';\nimport {entityCreated, entityDeleted, modifiedEntitiesReset, setDefaultProfilePic} from './actions';\nimport {modeUpdated} from '../mode/actions';\n\nexport type ModifiedEntitiesState = {\n [uri: string]: Entity;\n};\n\nexport enum ModifiedEntitiesActions {\n MODIFIED_ENTITY_CREATED = 'MODIFIED_ENTITY_CREATED',\n MODIFIED_ENTITY_DELETED = 'MODIFIED_ENTITY_DELETED',\n MODIFIED_ENTITY_DEFAULT_PROFILE_PIC_SET = 'MODIFIED_ENTITY_DEFAULT_PROFILE_PIC_SET',\n MODIFIED_ENTITIES_RESET = 'MODIFIED_ENTITIES_RESET',\n CLEANSE_LOADING = 'CLEANSE_LOADING'\n}\n\nexport type ModifiedEntitiesActionsTypes =\n | ReturnType<typeof entityCreated>\n | ReturnType<typeof entityDeleted>\n | ReturnType<typeof setDefaultProfilePic>\n | ReturnType<typeof modifiedEntitiesReset>\n | ReturnType<typeof modeUpdated>\n | ProfileActionTypes;\n","import {\n AddRelationPayload,\n CloseRelationEditorPayload,\n EditRelationPayload,\n OpenRelationEditorPayload,\n RemoveRelationPayload,\n SetRelationEntityPayload,\n SetRelationTypePayload,\n IgnoreRelationPayload\n} from '../../types/profile/relations';\nimport {ProfileActionTypes} from '../actions/constants';\nimport {EntityActionsType} from '../entity/constants';\nimport {ModeActionsTypes} from '../mode/constants';\nimport {relationsLoaded, secondLevelRelationsLoaded, setInitialInfo} from './actions';\n\nexport enum RelationsActions {\n RELATIONS_LOADED = 'RELATIONS_LOADED',\n REMOVE_RELATION = 'REMOVE_RELATION',\n EDIT_RELATION = 'EDIT_RELATION',\n ADD_RELATION = 'ADD_RELATION',\n OPEN_RELATION_EDITOR = 'OPEN_RELATION_EDITOR',\n CLOSE_RELATION_EDITOR = 'CLOSE_RELATION_EDITOR',\n SET_RELATION_TYPE = 'SET_RELATION_TYPE',\n SET_RELATION_ENTITY = 'SET_RELATION_ENTITY',\n SET_INITIAL_INFO = 'SET_INITIAL_INFO',\n IGNORE_RELATION = 'IGNORE_RELATION',\n SECOND_LEVEL_RELATIONS_LOADED = 'SECOND_LEVEL_RELATIONS_LOADED'\n}\n\nexport type RemoveRelationReturnType = {type: RelationsActions.REMOVE_RELATION; payload: RemoveRelationPayload};\nexport type IgnoreRelationReturnType = {type: RelationsActions.IGNORE_RELATION; payload: IgnoreRelationPayload};\nexport type AddRelationReturnType = {type: RelationsActions.ADD_RELATION; payload: AddRelationPayload};\nexport type OpenRelationEditorReturnType = {\n type: RelationsActions.OPEN_RELATION_EDITOR;\n payload: OpenRelationEditorPayload;\n};\nexport type SetRelationTypeReturnType = {type: RelationsActions.SET_RELATION_TYPE; payload: SetRelationTypePayload};\n\nexport type RelationsActionsTypes =\n | ReturnType<typeof relationsLoaded>\n | ReturnType<typeof secondLevelRelationsLoaded>\n | ReturnType<typeof setInitialInfo>\n | RemoveRelationReturnType\n | AddRelationReturnType\n | OpenRelationEditorReturnType\n | SetRelationTypeReturnType\n | {type: RelationsActions.EDIT_RELATION; payload: EditRelationPayload}\n | {type: RelationsActions.CLOSE_RELATION_EDITOR; payload: CloseRelationEditorPayload}\n | {type: RelationsActions.SET_RELATION_ENTITY; payload: SetRelationEntityPayload}\n | ModeActionsTypes\n | EntityActionsType\n | ProfileActionTypes\n | IgnoreRelationReturnType;\n","import {\n __,\n always,\n chain,\n concat,\n either,\n eqBy,\n equals,\n filter,\n find,\n identity,\n isNil,\n keys,\n length,\n map,\n path,\n pathOr,\n pick,\n pipe,\n propEq,\n unless,\n when\n} from 'ramda';\nimport {\n Connection,\n ConnectionDrafts,\n isTempUri,\n markEdited,\n markNew,\n markRemoved,\n Relation,\n markIgnored,\n getRelationUriFromConnection,\n getEntityUriFromConnection,\n getRelationObjectFromConnection,\n RelationsState,\n getAllRelationsToAddAndEdit,\n getRelationToAddByViewId,\n getRelationsToEditByViewId,\n getTempRelations,\n getInitialConnection,\n getInitialConnectionTempEntity,\n getAllRelationsToSave,\n getDraftsForSaveByViewId\n} from '@reltio/mdm-sdk';\nimport createCachedSelector from 're-reselect';\n\nexport const findConnectionByRelationUri = (connections: Connection[], relationUri: string) =>\n connections.find(pipe(getRelationUriFromConnection, equals(relationUri)));\n\nexport const getConnectionsByViewId = (state: RelationsState, id: string): Connection[] =>\n path([id, 'connections'], state);\n\nexport const getTotalByViewId = (state: RelationsState, id: string, parentEntityUri?: string): number => {\n const total = parentEntityUri\n ? pipe(\n path([id, 'connections']),\n find(({entity}) => entity.entityUri === parentEntityUri),\n pathOr(0, ['total'])\n )(state)\n : pathOr(0, [id, 'total'], state);\n return total;\n};\nexport const getDraftsByViewId = (state: RelationsState, id: string): ConnectionDrafts => path([id, 'drafts'], state);\n\nexport const getViewIdsForOpenRelation = (state: RelationsState, relationUri: string): string[] => {\n return Object.keys(state).filter((viewId) => {\n const connections = getTempRelations(state, viewId);\n return !!findConnectionByRelationUri(connections, relationUri);\n });\n};\n\nexport const getTotalWithDrafts = (state: RelationsState, id: string, parentEntityUri?: string): number => {\n const addedConnectionsTotal = pipe(\n pathOr([], [id, 'drafts', 'addedConnections']),\n filter(pipe(getRelationUriFromConnection, isTempUri)),\n when(always(parentEntityUri), filter(propEq('parentEntityUri', parentEntityUri))),\n length\n )(state);\n return getTotalByViewId(state, id, parentEntityUri) + addedConnectionsTotal;\n};\n\nexport const getConnectionsWithDrafts = createCachedSelector(\n getConnectionsByViewId,\n getDraftsByViewId,\n (_state, _id, parentEntityUri) => parentEntityUri,\n (connections = [], drafts = {}, parentEntityUri) => {\n const {addedConnections = [], editedConnections = [], removedUris = [], ignoredRelationData = []} = drafts;\n const isRemoved = pipe(getRelationUriFromConnection, equals, find(__, removedUris));\n const ignoredUris = ignoredRelationData.map((item) => item.relationUri);\n const isIgnored = pipe(getRelationUriFromConnection, equals, find(__, ignoredUris));\n const getEditedConnection = (connection) =>\n pipe(\n eqBy(getRelationUriFromConnection),\n find(__, editedConnections),\n unless(isNil, markEdited)\n )(connection);\n\n const connectionsByParentEntityUri = parentEntityUri\n ? connections.find((connection) => connection.entity.entityUri === parentEntityUri)?.connections || []\n : connections;\n\n const addedConnectionsByParentEntityUri = addedConnections.filter(propEq('parentEntityUri', parentEntityUri));\n\n return addedConnectionsByParentEntityUri.map(markNew).concat(\n connectionsByParentEntityUri\n .filter((connection) => {\n return !addedConnectionsByParentEntityUri.some(\n pipe(getRelationUriFromConnection, equals(getRelationUriFromConnection(connection)))\n );\n })\n .map(\n pipe(\n either(getEditedConnection, identity),\n when(isRemoved, markRemoved),\n when(isIgnored, markIgnored)\n )\n )\n );\n }\n)((_, id, parentEntityUri) => id + parentEntityUri);\n\nexport const getEditingOrAddingConnectionByViewIdAndRelationUri = (\n state: RelationsState,\n id: string,\n relationUri: string\n) => {\n const connections = getTempRelations(state, id);\n return findConnectionByRelationUri(connections, relationUri);\n};\n\nexport const getEditingOrAddingConnectionRelationObjectByViewIdAndRelationUri = (\n state: RelationsState,\n id: string,\n relationUri: string\n): Relation => {\n const connection = getEditingOrAddingConnectionByViewIdAndRelationUri(state, id, relationUri);\n return getRelationObjectFromConnection(connection);\n};\n\nexport const getTemporaryUrisForCreation = (state: RelationsState): string[] => {\n return keys(state).reduce((uris, viewId) => {\n const {addedConnections, editedConnections} = getDraftsForSaveByViewId(state, viewId);\n return pipe(\n concat,\n map(getEntityUriFromConnection),\n filter(isTempUri),\n concat(uris)\n )(addedConnections, editedConnections);\n }, []);\n};\n\nconst getAllRelationsByViewIds = (state: RelationsState, viewIds?: string[]): Connection[] =>\n pipe(\n when(always(viewIds), pick(viewIds)),\n keys,\n chain(pipe((viewId: string) => getConnectionsByViewId(state, viewId)))\n )(state);\n\nexport {\n getAllRelationsByViewIds,\n getAllRelationsToAddAndEdit,\n getAllRelationsToSave,\n getDraftsForSaveByViewId,\n getRelationToAddByViewId,\n getRelationsToEditByViewId,\n getInitialConnection,\n getInitialConnectionTempEntity\n};\n","import {call, fork, put, select, take, takeEvery, delay} from 'redux-saga/effects';\nimport {prop} from 'ramda';\nimport {\n addValueToDependentLookups,\n initDependentLookups,\n populateDependentLookupsFromEntity,\n cascadeUpdate as cascadeUpdateRequest,\n CascadeUpdateResponseStateValue,\n CascadeUpdateUpdatedValue,\n ComplexAttributeValue,\n DependentLookupsConfig,\n DependentLookupsStructure,\n EntitiesMap,\n Entity,\n findAttributeTypeByUri,\n findAttributeValueByUri,\n findAttributeValuesByTypeUri,\n findRelatedTemporaryEntities,\n getBaseUri,\n getDependentLookupStateForValueUri,\n getReferencedEntityUriFromAttrValue,\n isAttributeTypeInDependentLookups,\n isComplexAttribute,\n isReference,\n isRelationUri,\n isTempUri,\n Metadata,\n Relation,\n removeValuesFromDependentLookups,\n SimpleAttributeValue,\n syncAttributeTypeWithDependentLookups,\n Connection,\n DependentLookupsEditorsState,\n AttributeType,\n getEntityUriFromConnection\n} from '@reltio/mdm-sdk';\n\nimport * as selectors from '../../../selectors';\nimport {ProfileActions} from '../../actions/constants';\nimport {entityCreated, entityDeleted} from '../../modifiedEntities/actions';\nimport {ModifiedEntitiesActions} from '../../modifiedEntities/constants';\nimport {\n dependentLookupsEditorsBlocked,\n dependentLookupsInitedTypeUrisAdded,\n dependentLookupsStructureSet\n} from '../actions';\nimport {addAttributes, addDefaultValuesAction, modifyAttribute, removeAttribute} from '../../actions';\nimport {closeRelationEditor, openRelationEditor, setRelationType} from '../../relations/actions';\nimport {RelationsActions} from '../../relations/constants';\nimport {findConnectionByRelationUri} from '../../relations/selectors';\nimport {DependentLookupsActions} from '../constants';\n\ntype AlreadyAddedTypeUris = ReturnType<typeof selectors.getDependentLookupsInitedTypeUris>;\n\nexport function* handleCreateEntity(action: ReturnType<typeof entityCreated>) {\n // There are situations when several MODIFIED_ENTITY_CREATED events are fired synchronously (createEntitiesFromAuthoringDraft).\n // See comment in handleModifyAttribute for more information.\n yield delay(0);\n const entity = action.payload;\n const metadata: Metadata = yield select(selectors.getMetadata);\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n const typeUris = [entity.type];\n const alreadyAddedTypeUris: AlreadyAddedTypeUris = yield select(selectors.getDependentLookupsInitedTypeUris);\n const updatedStructure = initDependentLookups({structure, metadata, typeUris, alreadyAddedTypeUris});\n const structureWithValues = populateDependentLookupsFromEntity({\n structure: updatedStructure,\n metadata,\n entityOrRelation: entity\n });\n yield put(dependentLookupsStructureSet(structureWithValues));\n yield put(dependentLookupsInitedTypeUrisAdded(typeUris));\n}\n\nexport function* selectTopLevelObject(uri: string, viewId?: string) {\n const baseUri = getBaseUri(uri);\n const object: Entity | Relation = isRelationUri(baseUri)\n ? yield select(selectors.getEditingOrAddingConnectionRelationObjectByViewIdAndRelationUri, viewId, baseUri)\n : yield select(selectors.getModifiedEntity, baseUri);\n return object;\n}\n\nexport function* handleAddDefaultValues(action: ReturnType<typeof addDefaultValuesAction>) {\n const {attributeType, metadata, parentUri, viewId} = action.payload;\n const entityOrRelation: Entity | Relation = yield call(selectTopLevelObject, parentUri, viewId);\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n if (entityOrRelation) {\n if (attributeType) {\n // adding complex attribute case\n const attributeValue = findAttributeValuesByTypeUri(metadata, entityOrRelation, attributeType.uri).filter(\n ({uri}) => uri.startsWith(parentUri)\n )[0];\n const structureWithValue = addValueToDependentLookups({structure, attributeValue});\n yield put(dependentLookupsStructureSet(structureWithValue));\n } else {\n // open relation editor / change relation type\n const typeUris = [entityOrRelation.type];\n const alreadyAddedTypeUris: AlreadyAddedTypeUris = yield select(\n selectors.getDependentLookupsInitedTypeUris\n );\n const updatedStructure = initDependentLookups({structure, metadata, typeUris, alreadyAddedTypeUris});\n const structureWithValues = populateDependentLookupsFromEntity({\n structure: updatedStructure,\n metadata,\n entityOrRelation\n });\n yield put(dependentLookupsStructureSet(structureWithValues));\n yield put(dependentLookupsInitedTypeUrisAdded(typeUris));\n }\n }\n}\n\nexport function* handleAddAttributes(action: ReturnType<typeof addAttributes>) {\n const addedAttributes = action.payload;\n const metadata: Metadata = yield select(selectors.getMetadata);\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n let updatedStructure = structure;\n for (const {attributeType, parentUri, viewId} of addedAttributes) {\n if (isAttributeTypeInDependentLookups(structure, attributeType.uri)) {\n const entityOrRelation: Entity | Relation = yield call(selectTopLevelObject, parentUri, viewId);\n if (entityOrRelation) {\n updatedStructure = syncAttributeTypeWithDependentLookups({\n structure: updatedStructure,\n entityOrRelation,\n attrTypeUri: attributeType.uri,\n metadata\n });\n }\n }\n }\n if (updatedStructure !== structure) {\n yield put(dependentLookupsStructureSet(updatedStructure));\n }\n}\n\ntype RemoveReferenceAttributeTemporaryEntities = {\n structure: DependentLookupsStructure;\n attributeType: AttributeType;\n value: ComplexAttributeValue;\n};\n\nfunction* removeReferenceAttributeTemporaryEntities({\n structure,\n attributeType,\n value\n}: RemoveReferenceAttributeTemporaryEntities) {\n if (isReference(attributeType) && value) {\n const refEntityUri = getReferencedEntityUriFromAttrValue(value);\n if (isTempUri(refEntityUri)) {\n const updatedStructure = yield call(\n removeTemporaryEntitiesChainFromDependentLookupsStructure,\n structure,\n refEntityUri\n );\n return updatedStructure;\n }\n }\n return structure;\n}\n\ntype SyncComplexAttributeWithDLStructure = {\n structure: DependentLookupsStructure;\n uri: string;\n attributeType: AttributeType;\n value: ComplexAttributeValue;\n};\n\nfunction* syncComplexAttributeWithDLStructure({\n structure,\n uri,\n attributeType,\n value\n}: SyncComplexAttributeWithDLStructure) {\n let updatedStructure = removeValuesFromDependentLookups({\n structure,\n uri\n });\n updatedStructure = yield call(removeReferenceAttributeTemporaryEntities, {\n structure: updatedStructure,\n attributeType,\n value\n });\n updatedStructure = addValueToDependentLookups({structure: updatedStructure, attributeValue: value});\n if (isReference(attributeType) && value) {\n const refEntityUri = getReferencedEntityUriFromAttrValue(value);\n if (isTempUri(refEntityUri)) {\n updatedStructure = yield call(\n addTemporaryEntitiesChainToDependentLookupsStructure,\n updatedStructure,\n refEntityUri\n );\n }\n }\n if (updatedStructure !== structure) {\n yield put(dependentLookupsStructureSet(updatedStructure));\n }\n}\n\nexport function* handleModifyAttribute(action: ReturnType<typeof modifyAttribute>) {\n // There are situations when several MODIFY_ATTRIBUTE events are fired synchronously\n // (for example, it's for...of cycle in cascadeUpdate saga, or, in some conditions, several useEffect callback in useLookupResolver)\n // For each such event an instance of this saga is started, also synchronously\n // In such situations it's not guaranteed that one instance of saga will finish without interruption by another one,\n // it can be interrupted when \"put\" effect is executing (they will be queuing under the hood of redux-saga)\n // So, sequential of one saga instance effects can be interrupted by concurrent saga instance\n // All concurrent instances execute all select effects before the first \"put\" effect, and stop and wait for the queue of \"put\" effects.\n // In this case, all saga instances will use initial DL structure from the store, and ignore updates of each other.\n // It's unacceptable. To avoid this sync queueing inside redux-saga, we can just put this delay (setTimeout) to guarantee that\n // queue of \"put\"s will be empty when selectors works and all effects will be sequential and not be interrupted\n yield delay(0);\n const {attributeType, uri, viewId, silent, value} = action.payload;\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n const entityOrRelation: Entity | Relation = yield call(selectTopLevelObject, uri, viewId);\n if (entityOrRelation && isAttributeTypeInDependentLookups(structure, attributeType.uri)) {\n const {value, lookupCode} = action.payload.value as Partial<SimpleAttributeValue>;\n const lookupValue = lookupCode || (value as string);\n if (!silent) {\n yield fork(cascadeUpdate, structure, {\n type: attributeType.uri,\n uri,\n lookupValue\n });\n }\n const updatedStructure = addValueToDependentLookups({\n structure,\n attributeValue: {\n type: attributeType.uri,\n value: lookupValue,\n uri\n }\n });\n yield put(dependentLookupsStructureSet(updatedStructure));\n }\n if (entityOrRelation && isComplexAttribute(attributeType.type)) {\n yield call(syncComplexAttributeWithDLStructure, {\n structure,\n uri,\n attributeType,\n value: value as ComplexAttributeValue\n });\n }\n}\n\nexport function* addTemporaryEntitiesChainToDependentLookupsStructure(structure, parentEntityUri) {\n const metadata: Metadata = yield select(selectors.getMetadata);\n const parentEntity = yield select(selectors.getModifiedEntity, parentEntityUri);\n if (!parentEntity) {\n return structure;\n }\n const modifiedEntities = yield select(selectors.getModifiedEntities);\n const relatedTempEntities = findRelatedTemporaryEntities(modifiedEntities, parentEntity);\n let updatedStructure = structure;\n for (const tempEntity of [parentEntity, ...relatedTempEntities]) {\n updatedStructure = populateDependentLookupsFromEntity({\n structure: updatedStructure,\n metadata,\n entityOrRelation: tempEntity\n });\n }\n return updatedStructure;\n}\n\nexport function* removeTemporaryEntitiesChainFromDependentLookupsStructure(structure, parentEntityUri) {\n const parentEntity = yield select(selectors.getModifiedEntity, parentEntityUri);\n const modifiedEntities = yield select(selectors.getModifiedEntities);\n const relatedEntitiesUris = findRelatedTemporaryEntities(modifiedEntities, parentEntity).map(prop('uri'));\n let updatedStructure = structure;\n for (const entityUri of [parentEntityUri, ...relatedEntitiesUris]) {\n updatedStructure = removeValuesFromDependentLookups({\n structure: updatedStructure,\n uri: entityUri\n });\n }\n return updatedStructure;\n}\n\nexport function* handleRemoveAttribute(action: ReturnType<typeof removeAttribute>) {\n const {attributeType, uri, attributeValue, viewId} = action.payload;\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n const isDL = isAttributeTypeInDependentLookups(structure, attributeType.uri);\n const entityOrRelation: Entity | Relation = yield call(selectTopLevelObject, uri, viewId);\n if (entityOrRelation) {\n if (isDL) {\n yield fork(cascadeUpdate, structure, {\n type: attributeType.uri,\n uri,\n lookupValue: ''\n });\n }\n let updatedStructure =\n isDL || isComplexAttribute(attributeType)\n ? removeValuesFromDependentLookups({\n structure,\n uri\n })\n : structure;\n updatedStructure = yield call(removeReferenceAttributeTemporaryEntities, {\n structure: updatedStructure,\n attributeType,\n value: attributeValue\n });\n if (updatedStructure !== structure) {\n yield put(dependentLookupsStructureSet(updatedStructure));\n }\n }\n}\n\nexport function* handleDeleteEntity(action: ReturnType<typeof entityDeleted>) {\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n const updatedStructure = yield call(\n removeTemporaryEntitiesChainFromDependentLookupsStructure,\n structure,\n action.payload\n );\n yield put(dependentLookupsStructureSet(updatedStructure));\n}\n\nexport function* cascadeUpdate(structure: DependentLookupsStructure, updatedValue: CascadeUpdateUpdatedValue) {\n const metadata: Metadata = yield select(selectors.getMetadata);\n const modifiedEntities: EntitiesMap = yield select(selectors.getModifiedEntities);\n const connections: Connection[] = yield select(selectors.getAllRelationsToAddAndEdit);\n const entityUri: string = yield select(selectors.getEntityUri);\n const config: DependentLookupsConfig = yield select(selectors.getLookupAutocomplete);\n const editorsState: DependentLookupsEditorsState = yield select(selectors.getDependentLookupEditorsState);\n const stateForValue = getDependentLookupStateForValueUri({\n structure,\n typeUri: updatedValue.type,\n valueUri: updatedValue.uri,\n modifiedEntities,\n connections,\n entityUri,\n config,\n editorsState\n });\n if (stateForValue.length > 0) {\n const affectedEditorsUris = stateForValue.map((value) => value.uri);\n yield put(dependentLookupsEditorsBlocked({uris: affectedEditorsUris, isBlocked: true}));\n try {\n const updatedStateForValue: CascadeUpdateResponseStateValue[] = yield call(\n cascadeUpdateRequest,\n stateForValue,\n updatedValue\n );\n for (const {type, uri, lookupValue, displayName} of updatedStateForValue) {\n // todo: Refactor it! viewId shouldn't be needed to find editing relation\n // We should have single source of truth for all adding/editing relations, not grouped by viewId\n const viewId = (yield select(selectors.getViewIdsForOpenRelation, getBaseUri(uri)))[0];\n const object: Entity | Relation = yield call(selectTopLevelObject, uri, viewId);\n const isExistedValue = object && !!findAttributeValueByUri(object, uri);\n if (isExistedValue && uri !== updatedValue.uri) {\n yield put(\n modifyAttribute({\n attributeType: findAttributeTypeByUri(metadata, type),\n uri,\n value: {\n value: displayName || '',\n lookupCode: lookupValue || ''\n },\n silent: true,\n viewId\n })\n );\n }\n }\n } catch (e) {\n console.warn(e);\n }\n yield put(dependentLookupsEditorsBlocked({uris: affectedEditorsUris, isBlocked: false}));\n }\n}\n\nexport function* handleOpenRelationEditor(action: ReturnType<typeof openRelationEditor>) {\n const connection: Connection = action.payload.connection;\n // relation attributes values filling occurs in handleAddDefaultValues\n // here we should fill DL structure with values of connected entities chain\n const connectedEntityUri = getEntityUriFromConnection(connection);\n const tempEntity = isTempUri(connectedEntityUri) && (yield select(selectors.getModifiedEntity, connectedEntityUri));\n if (tempEntity) {\n // awaiting updated structure from handleAddDefaultValues\n yield take(DependentLookupsActions.DEPENDENT_LOOKUPS_STRUCTURE_SET);\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n const updatedStructure = yield call(\n addTemporaryEntitiesChainToDependentLookupsStructure,\n structure,\n connectedEntityUri\n );\n yield put(dependentLookupsStructureSet(updatedStructure));\n }\n}\n\nexport function* handleSetRelationType(action: ReturnType<typeof setRelationType>) {\n const relationUri: string = action.payload.relationUri;\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n const updatedStructure = removeValuesFromDependentLookups({\n structure,\n uri: relationUri\n });\n yield put(dependentLookupsStructureSet(updatedStructure));\n // relation attributes default values filling occurs in handleAddDefaultValues\n}\n\nexport function* handleCloseRelationEditor(action: ReturnType<typeof closeRelationEditor>) {\n const viewId: string = action.payload.id;\n const relationUri: string = action.payload.relationUri;\n const openViewIds = yield select(selectors.getViewIdsForOpenRelation, relationUri);\n if (openViewIds.length === 0) {\n // if all relation editors for this relationUri are closed\n const structure: DependentLookupsStructure = yield select(selectors.getDependentLookupsStructure);\n let updatedStructure = removeValuesFromDependentLookups({\n structure,\n uri: relationUri\n });\n const connections = yield select(selectors.getConnectionsWithDraftsByViewId, viewId);\n const connection: Connection = findConnectionByRelationUri(connections, relationUri);\n const connectedEntityUri = getEntityUriFromConnection(connection);\n if (isTempUri(connectedEntityUri)) {\n updatedStructure = yield call(\n removeTemporaryEntitiesChainFromDependentLookupsStructure,\n updatedStructure,\n connectedEntityUri\n );\n }\n yield put(dependentLookupsStructureSet(updatedStructure));\n }\n}\n\nexport function* handleCreateEntitySaga() {\n yield takeEvery(ModifiedEntitiesActions.MODIFIED_ENTITY_CREATED, handleCreateEntity);\n}\nexport function* handleDeleteEntitySaga() {\n yield takeEvery(ModifiedEntitiesActions.MODIFIED_ENTITY_DELETED, handleDeleteEntity);\n}\nexport function* handleAddDefaultValuesSaga() {\n yield takeEvery(ProfileActions.ADD_DEFAULT_VALUES, handleAddDefaultValues);\n}\nexport function* handleAddAttributesSaga() {\n yield takeEvery(ProfileActions.ADD_ATTRIBUTES, handleAddAttributes);\n}\nexport function* handleModifyAttributeSaga() {\n yield takeEvery(ProfileActions.MODIFY_ATTRIBUTE, handleModifyAttribute);\n}\nexport function* handleRemoveAttributeSaga() {\n yield takeEvery(ProfileActions.REMOVE_ATTRIBUTE, handleRemoveAttribute);\n}\nexport function* handleOpenRelationEditorSaga() {\n yield takeEvery(RelationsActions.OPEN_RELATION_EDITOR, handleOpenRelationEditor);\n}\nexport function* handleSetRelationTypeSaga() {\n yield takeEvery(RelationsActions.SET_RELATION_TYPE, handleSetRelationType);\n}\nexport function* handleCloseRelationEditorSaga() {\n yield takeEvery(RelationsActions.CLOSE_RELATION_EDITOR, handleCloseRelationEditor);\n}\n\nconst sagas = [\n handleCreateEntitySaga,\n handleDeleteEntitySaga,\n handleAddDefaultValuesSaga,\n handleAddAttributesSaga,\n handleModifyAttributeSaga,\n handleRemoveAttributeSaga,\n handleOpenRelationEditorSaga,\n handleSetRelationTypeSaga,\n handleCloseRelationEditorSaga\n];\n\nexport default sagas;\n","import {\n clearEntity,\n entityCreationRequested,\n entityLoaded,\n entityRemoveRequested,\n entityCloneRequested,\n loadEntity,\n setDefaultProfilePic,\n entityCreationWithAuthoringRequested,\n authoringDraftEntitiesLoaded\n} from './actions';\nimport {addNextPageOfAttributeValues} from '../actions';\n\nexport enum EntityActions {\n ENTITY_LOADED = 'ENTITY_LOADED',\n DEFAULT_PROFILE_PIC_SET = 'DEFAULT_PROFILE_PIC_SET',\n LOAD_ENTITY = 'LOAD_ENTITY',\n ENTITY_CREATION_REQUESTED = 'ENTITY_CREATION_REQUESTED',\n ENTITY_CREATION_WITH_AUTHORING_REQUESTED = 'ENTITY_CREATION_WITH_AUTHORING_REQUESTED',\n ENTITY_REMOVE_REQUESTED = 'ENTITY_REMOVE_REQUESTED',\n CLEAR_ENTITY = 'CLEAR_ENTITY',\n CLONE_ENTITY = 'CLONE_ENTITY',\n ENTITY_AUTHORING_DRAFT_ENTITIES_LOADED = 'ENTITY_AUTHORING_DRAFT_ENTITIES_LOADED'\n}\n\nexport type EntityActionsType =\n | ReturnType<typeof setDefaultProfilePic>\n | ReturnType<typeof entityLoaded>\n | ReturnType<typeof loadEntity>\n | ReturnType<typeof entityCreationRequested>\n | ReturnType<typeof addNextPageOfAttributeValues>\n | ReturnType<typeof entityRemoveRequested>\n | ReturnType<typeof entityCloneRequested>\n | ReturnType<typeof clearEntity>\n | ReturnType<typeof entityCreationWithAuthoringRequested>\n | ReturnType<typeof authoringDraftEntitiesLoaded>;\n","import {Entity, ImageAttributeValue, BaseCloneAction} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {EntityActions} from '../constants';\n\nexport const entityLoaded = createStandardAction<EntityActions.ENTITY_LOADED, Entity>(EntityActions.ENTITY_LOADED);\nexport const setDefaultProfilePic = createStandardAction<\n EntityActions.DEFAULT_PROFILE_PIC_SET,\n ImageAttributeValue | string\n>(EntityActions.DEFAULT_PROFILE_PIC_SET);\n\nexport const loadEntity = createStandardAction<EntityActions.LOAD_ENTITY, {viewId?: string; uri: string}>(\n EntityActions.LOAD_ENTITY\n);\n\nexport const entityCreationRequested = createStandardAction<\n EntityActions.ENTITY_CREATION_REQUESTED,\n {entityTypeUri: string}\n>(EntityActions.ENTITY_CREATION_REQUESTED);\n\nexport const entityCreationWithAuthoringRequested = createStandardAction<\n EntityActions.ENTITY_CREATION_WITH_AUTHORING_REQUESTED,\n {entityTypeUri: string}\n>(EntityActions.ENTITY_CREATION_WITH_AUTHORING_REQUESTED);\n\nexport const authoringDraftEntitiesLoaded = createStandardAction<\n EntityActions.ENTITY_AUTHORING_DRAFT_ENTITIES_LOADED,\n {mainEntityUri: string; tempEntities: Entity[]}\n>(EntityActions.ENTITY_AUTHORING_DRAFT_ENTITIES_LOADED);\n\nexport const entityRemoveRequested = createStandardAction<EntityActions.ENTITY_REMOVE_REQUESTED, {entityUri: string}>(\n EntityActions.ENTITY_REMOVE_REQUESTED\n);\n\ntype CloneActionPayload = {data: BaseCloneAction; entityUri: string};\n\nexport const entityCloneRequested = createStandardAction<EntityActions.CLONE_ENTITY, CloneActionPayload>(\n EntityActions.CLONE_ENTITY\n);\n\nexport const clearEntity = createStandardAction<EntityActions.CLEAR_ENTITY, null>(EntityActions.CLEAR_ENTITY);\n","import {createSelector} from 'reselect';\nimport {Entity, getEntityUriForLink} from '@reltio/mdm-sdk';\n\nexport const getUri = (state: Entity) => state?.uri;\nexport const getDataTenant = (state: Entity) => state?.dataTenant;\nexport const getUriWithDataTenant = createSelector(getDataTenant, getUri, (dataTenant: string, uri: string) =>\n getEntityUriForLink({dataTenant, uri} as Entity)\n);\n","import {Entity, getAttributeSource} from '@reltio/mdm-sdk';\nimport {__, concat, defaultTo, lensPath, over, pipe} from 'ramda';\n\nimport {EntityActions, EntityActionsType} from '../constants';\nimport {ProfileActions} from '../../actions/constants';\n\nconst initState = {} as Entity;\nconst entityReducer = (state = initState, action: EntityActionsType): Entity => {\n switch (action.type) {\n case EntityActions.ENTITY_LOADED:\n return action.payload;\n case EntityActions.DEFAULT_PROFILE_PIC_SET: {\n if (typeof action.payload === 'object' && action.payload !== null) {\n return {\n ...state,\n defaultProfilePic: action.payload.uri,\n defaultProfilePicValue: action.payload\n };\n }\n return state;\n }\n case ProfileActions.ADD_NEXT_PAGE_ATTRIBUTE_VALUES: {\n const {parentUri, attributeTypeName, attributeTypeUri, values} = action.payload;\n const attributeSource = getAttributeSource(attributeTypeUri);\n if (parentUri === state.uri) {\n const lens = lensPath([attributeSource, attributeTypeName]);\n return over(lens, pipe(defaultTo([]), concat(__, values)), state);\n } else {\n return state;\n }\n }\n case EntityActions.CLEAR_ENTITY: {\n return initState;\n }\n default:\n return state;\n }\n};\n\nexport default entityReducer;\n","import {AttributeError} from '@reltio/mdm-sdk';\nimport {errorDeactivated, errorsSet} from './actions';\nimport {removeAttribute} from '../actions';\nimport {modeUpdated} from '../mode/actions';\nimport {entityLoaded} from '../entity/actions';\n\nexport type ErrorsState = AttributeError[];\n\nexport enum ErrorsActions {\n ERRORS_SET = 'ERRORS_SET',\n REMOVE_ERROR = 'REMOVE_ERROR',\n ERROR_DEACTIVATED = 'ERROR_DEACTIVATED'\n}\n\nexport type ErrorsActionsType =\n | ReturnType<typeof errorDeactivated>\n | ReturnType<typeof errorsSet>\n | ReturnType<typeof removeAttribute>\n | ReturnType<typeof modeUpdated>\n | ReturnType<typeof entityLoaded>;\n","import {allPass, filter, isEmpty, join, map, not, pipe, prop, propEq} from 'ramda';\nimport {AttributeError, getCachedActiveErrorsForAttributesPager} from '@reltio/mdm-sdk';\nimport {ErrorsState} from '../constants';\n\nexport const getAttributeTypeErrors = (state: ErrorsState, parentUri: string, attributeTypeUri: string): string => {\n return pipe(\n filter(\n allPass([\n propEq('parentUri', parentUri),\n propEq('attributeTypeUri', attributeTypeUri),\n pipe(prop('uri'), isEmpty)\n ])\n ),\n map(prop('message')),\n join('. ')\n )(state);\n};\n\nexport const getAttributesErrors = (\n state: ErrorsState,\n parentUri: string,\n attributeTypeUri: string\n): AttributeError[] =>\n filter(\n allPass([\n propEq('parentUri', parentUri),\n propEq('attributeTypeUri', attributeTypeUri),\n pipe(prop('uri'), isEmpty, not)\n ])\n )(state);\n\nexport {getCachedActiveErrorsForAttributesPager as getActiveErrorsForAttributesPager};\n","import {AttributeError} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {ErrorsActions} from '../constants';\n\nexport const errorDeactivated = createStandardAction<ErrorsActions.ERROR_DEACTIVATED, string>(\n ErrorsActions.ERROR_DEACTIVATED\n);\n\nexport const errorsSet = createStandardAction<ErrorsActions.ERRORS_SET, AttributeError[]>(ErrorsActions.ERRORS_SET);\n","import {AttributeError, getErrorId, areOneHierarchyUris, isViewMode} from '@reltio/mdm-sdk';\nimport {assoc, lensPath, over} from 'ramda';\nimport {ErrorsActions, ErrorsActionsType, ErrorsState} from '../constants';\nimport {ProfileActions} from '../../actions/constants';\nimport {ModeActions} from '../../mode/constants';\nimport {EntityActions} from '../../entity/constants';\n\nconst initState: ErrorsState = [];\n\nconst errorsReducer = (state = initState, action: ErrorsActionsType): AttributeError[] => {\n switch (action.type) {\n case ErrorsActions.ERRORS_SET: {\n return action.payload;\n }\n case ErrorsActions.ERROR_DEACTIVATED: {\n const id = action.payload;\n const errorIndex = state.findIndex((error) => getErrorId(error) === id);\n const errorL = lensPath([errorIndex]);\n return over(errorL, assoc('deactivated', true), state);\n }\n case ProfileActions.REMOVE_ATTRIBUTE: {\n const {uri} = action.payload;\n return state.map((error) =>\n error.uri === uri || areOneHierarchyUris(error.parentUri, uri)\n ? {\n ...error,\n deactivated: true\n }\n : error\n );\n }\n case ModeActions.MODE_UPDATED: {\n const {mode, silent} = action.payload;\n return isViewMode(mode) && !silent ? initState : state;\n }\n case EntityActions.ENTITY_LOADED: {\n return initState;\n }\n default:\n return state;\n }\n};\n\nexport default errorsReducer;\n","import {UIActions} from '../../ui/constants';\nimport {\n clearHistoryDiff,\n clearHistoryEvent,\n setHistoryDiff,\n setHistoryEvent,\n setHistoryMode,\n setHistorySlice\n} from './actions';\n\nexport enum HistoryActions {\n HISTORY_DIFF_SET = 'HISTORY_DIFF_SET',\n HISTORY_DIFF_CLEARED = 'HISTORY_DIFF_CLEARED',\n HISTORY_EVENT_SET = 'HISTORY_EVENT_SET',\n HISTORY_EVENT_CLEARED = 'HISTORY_EVENT_CLEARED',\n HISTORY_SLICE_SET = 'HISTORY_SLICE_SET',\n HISTORY_MODE_SET = 'HISTORY_MODE_SET'\n}\n\nexport type HistoryActionsTypes =\n | ReturnType<typeof setHistoryDiff>\n | ReturnType<typeof clearHistoryDiff>\n | ReturnType<typeof setHistoryEvent>\n | ReturnType<typeof clearHistoryEvent>\n | ReturnType<typeof setHistorySlice>\n | ReturnType<typeof setHistoryMode>\n | {type: UIActions.OPEN_ENTITY}\n | {type: UIActions.NEW_ENTITY_SHOWN};\n","import {HistoryDiff, HistoryEvent, HistoryMode, HistorySlice} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {HistoryActions} from '../constants';\n\nexport const setHistoryDiff = createStandardAction<HistoryActions.HISTORY_DIFF_SET, HistoryDiff>(\n HistoryActions.HISTORY_DIFF_SET\n);\n\nexport const clearHistoryDiff = createStandardAction<HistoryActions.HISTORY_DIFF_CLEARED, null>(\n HistoryActions.HISTORY_DIFF_CLEARED\n);\n\nexport const setHistoryEvent = createStandardAction<HistoryActions.HISTORY_EVENT_SET, HistoryEvent>(\n HistoryActions.HISTORY_EVENT_SET\n);\n\nexport const clearHistoryEvent = createStandardAction<HistoryActions.HISTORY_EVENT_CLEARED, null>(\n HistoryActions.HISTORY_EVENT_CLEARED\n);\n\nexport const setHistorySlice = createStandardAction<HistoryActions.HISTORY_SLICE_SET, HistorySlice>(\n HistoryActions.HISTORY_SLICE_SET\n);\n\nexport const setHistoryMode = createStandardAction<HistoryActions.HISTORY_MODE_SET, HistoryMode>(\n HistoryActions.HISTORY_MODE_SET\n);\n","import {isEmptyValue, History} from '@reltio/mdm-sdk';\n\nexport const getHistoryDiff = (state: History) => state.diff;\nexport const getHistoryEvent = (state: History) => state.event;\nexport const getHistorySlice = (state: History) => state.slice;\nexport const getIsHistoryModeEnabled = (state: History) => !isEmptyValue(state.slice);\nexport const getHistoryMode = (state: History) => state.mode;\n","import {HistoryActions, HistoryActionsTypes} from '../constants';\nimport {UIActions} from '../../../ui/constants';\nimport {History, HistoryMode} from '@reltio/mdm-sdk';\n\nconst initialState: History = {mode: HistoryMode.Current};\n\nconst historyReducer = (state = initialState, action: HistoryActionsTypes): History => {\n switch (action.type) {\n case HistoryActions.HISTORY_DIFF_SET: {\n return {...state, diff: action.payload};\n }\n case HistoryActions.HISTORY_DIFF_CLEARED: {\n return {...state, diff: initialState.diff};\n }\n case HistoryActions.HISTORY_EVENT_SET: {\n return {...state, event: action.payload};\n }\n case UIActions.NEW_ENTITY_SHOWN:\n case UIActions.OPEN_ENTITY:\n case HistoryActions.HISTORY_EVENT_CLEARED: {\n return {...initialState, mode: state.mode};\n }\n case HistoryActions.HISTORY_SLICE_SET: {\n return {...state, slice: action.payload};\n }\n case HistoryActions.HISTORY_MODE_SET: {\n return {...state, mode: action.payload};\n }\n default:\n return state;\n }\n};\n\nexport default historyReducer;\n","import {profileUpdateLastLoadedTime} from './actions';\nimport {entityLoaded} from '../entity/actions';\n\nexport enum ProfileLastLoadedTimeActions {\n PROFILE_LAST_LOADED_TIME_UPDATE = 'PROFILE_LAST_LOADED_TIME_UPDATE'\n}\n\nexport type ProfileLastLoadedTimeActionsTypes =\n | ReturnType<typeof profileUpdateLastLoadedTime>\n | ReturnType<typeof entityLoaded>;\n","import {createStandardAction} from '../../../utils';\nimport {ProfileLastLoadedTimeActions} from '../constants';\n\nexport const profileUpdateLastLoadedTime = createStandardAction<\n ProfileLastLoadedTimeActions.PROFILE_LAST_LOADED_TIME_UPDATE,\n undefined\n>(ProfileLastLoadedTimeActions.PROFILE_LAST_LOADED_TIME_UPDATE);\n","import {ProfileLastLoadedTimeActions, ProfileLastLoadedTimeActionsTypes} from '../constants';\nimport {EntityActions} from '../../entity/constants';\n\nconst initState = null;\nconst lastLoadedTimeReducer = (state = initState, action: ProfileLastLoadedTimeActionsTypes): number => {\n switch (action.type) {\n case ProfileLastLoadedTimeActions.PROFILE_LAST_LOADED_TIME_UPDATE:\n case EntityActions.ENTITY_LOADED: {\n return Date.now();\n }\n default:\n return state;\n }\n};\n\nexport default lastLoadedTimeReducer;\n","import {lookupsForTypeResolved, lookupsListResolved, lookupsLoaded} from './actions';\n\nexport enum LookupsActions {\n LOOKUPS_LOADED = 'LOOKUPS_LOADED',\n LOOKUPS_FOR_TYPE_RESOLVED = 'LOOKUPS_FOR_TYPE_RESOLVED',\n LOOKUPS_LIST_RESOLVED = 'LOOKUPS_LIST_RESOLVED'\n}\n\nexport type LookupsActionsTypes =\n | ReturnType<typeof lookupsLoaded>\n | ReturnType<typeof lookupsForTypeResolved>\n | ReturnType<typeof lookupsListResolved>\n | {type: 'UI_RESET'}\n","import {Lookups, LookupsForTypeResolvedPayload} from '@reltio/mdm-sdk';\nimport {LookupsActions} from '../constants';\nimport {createStandardAction} from '../../../utils';\n\nexport const lookupsLoaded = createStandardAction<LookupsActions.LOOKUPS_LOADED, Lookups>(\n LookupsActions.LOOKUPS_LOADED\n);\n\nexport const lookupsForTypeResolved = createStandardAction<\n LookupsActions.LOOKUPS_FOR_TYPE_RESOLVED,\n LookupsForTypeResolvedPayload\n>(LookupsActions.LOOKUPS_FOR_TYPE_RESOLVED);\n\nexport const lookupsListResolved = createStandardAction<LookupsActions.LOOKUPS_LIST_RESOLVED, Lookups[]>(\n LookupsActions.LOOKUPS_LIST_RESOLVED\n);\n","import {Lookups} from '@reltio/mdm-sdk';\nimport {LookupsActions, LookupsActionsTypes} from '../constants';\n\nconst initState: Lookups = {};\nconst lookupsReducer = (state = initState, action: LookupsActionsTypes): Lookups => {\n switch (action.type) {\n case LookupsActions.LOOKUPS_LOADED: {\n return action.payload;\n }\n case LookupsActions.LOOKUPS_FOR_TYPE_RESOLVED: {\n const {type, values} = action.payload;\n return {\n ...state,\n [type]: {\n ...state[type],\n ...values\n }\n };\n }\n case LookupsActions.LOOKUPS_LIST_RESOLVED: {\n const lookupsList = action.payload;\n return lookupsList.reduce((state, lookupData) => {\n const types = Object.keys(lookupData);\n return types.reduce(\n (state, type) => ({\n ...state,\n [type]: {\n ...state[type],\n ...lookupData[type]\n }\n }),\n state\n );\n }, state);\n }\n case 'UI_RESET':\n return {...initState};\n default:\n return state;\n }\n};\n\nexport default lookupsReducer;\n","import {Mode} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {ModeActions} from '../constants';\n\nexport const modeUpdated = (mode: Mode, silent?: boolean) => ({\n type: ModeActions.MODE_UPDATED,\n payload: {mode, silent}\n});\n\nexport const modeCancelEditing = createStandardAction<ModeActions.MODE_CANCEL_EDITING, null>(\n ModeActions.MODE_CANCEL_EDITING\n);\nexport const modeEditingCanceled = createStandardAction<ModeActions.MODE_EDITING_CANCELED, null>(\n ModeActions.MODE_EDITING_CANCELED\n);\n","import {isSuggestMode, isEditMode, isViewMode, isEditableMode} from '@reltio/mdm-sdk';\n\nexport const getIsSuggestMode = isSuggestMode;\nexport const getIsEditMode = isEditMode;\nexport const getIsViewMode = isViewMode;\nexport const getIsEditableMode = isEditableMode;\n","import {Mode} from '@reltio/mdm-sdk';\nimport {ModeActions, ModeActionsTypes} from '../constants';\n\nconst initState = Mode.Viewing;\n\nconst modeReducer = (state = initState, action: ModeActionsTypes): Mode => {\n switch (action.type) {\n case ModeActions.MODE_UPDATED: {\n return action.payload.mode;\n }\n default:\n return state;\n }\n};\n\nexport default modeReducer;\n","import {Entity, ImageAttributeValue} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {ModifiedEntitiesActions} from '../constants';\n\ntype SetDefaultProfilePicPayload = {\n entityUri: string;\n value: ImageAttributeValue;\n};\n\ntype CleanseLoadingPayloadType = {\n isLoading: boolean;\n};\n\nexport const entityCreated = createStandardAction<ModifiedEntitiesActions.MODIFIED_ENTITY_CREATED, Entity>(\n ModifiedEntitiesActions.MODIFIED_ENTITY_CREATED\n);\nexport const entityDeleted = createStandardAction<ModifiedEntitiesActions.MODIFIED_ENTITY_DELETED, string>(\n ModifiedEntitiesActions.MODIFIED_ENTITY_DELETED\n);\nexport const setDefaultProfilePic = createStandardAction<\n ModifiedEntitiesActions.MODIFIED_ENTITY_DEFAULT_PROFILE_PIC_SET,\n SetDefaultProfilePicPayload\n>(ModifiedEntitiesActions.MODIFIED_ENTITY_DEFAULT_PROFILE_PIC_SET);\n\nexport const modifiedEntitiesReset = createStandardAction<ModifiedEntitiesActions.MODIFIED_ENTITIES_RESET, null>(\n ModifiedEntitiesActions.MODIFIED_ENTITIES_RESET\n);\n\nexport const cleanseLoading = createStandardAction<ModifiedEntitiesActions.CLEANSE_LOADING, CleanseLoadingPayloadType>(\n ModifiedEntitiesActions.CLEANSE_LOADING\n);\n","import {ModifiedEntitiesState} from '../constants';\n\nexport const getModifiedEntity = (state: ModifiedEntitiesState, uri: string) => uri && state[uri];\nexport const getModifiedEntityDefaultProfilePic = (state: ModifiedEntitiesState, uri: string) =>\n uri && state[uri] && state[uri].defaultProfilePic;\n","import {\n addEntitySpecialAttribute,\n addAttribute,\n AttributeValue,\n editEntitySpecialAttribute,\n editAttribute,\n getAttributeSource,\n getEditableAttributeTypeSubAttributes,\n getBaseUri,\n isEntityUri,\n removeEntitySpecialAttribute,\n removeAttribute,\n isEntitySpecialAttrType,\n addDefaultValuesToComplexAttribute,\n isViewMode\n} from '@reltio/mdm-sdk';\nimport {concat, defaultTo, lensPath, lensProp, omit, over, pipe, __} from 'ramda';\nimport {ProfileActions} from '../../actions/constants';\nimport {ModifiedEntitiesActions, ModifiedEntitiesActionsTypes, ModifiedEntitiesState} from '../constants';\nimport {ModeActions} from '../../mode/constants';\n\nconst initState = {} as ModifiedEntitiesState;\n\nconst modifiedEntitiesReducer = (state = initState, action: ModifiedEntitiesActionsTypes): ModifiedEntitiesState => { //NOSONAR\n switch (action.type) {\n case ModifiedEntitiesActions.MODIFIED_ENTITY_CREATED: {\n const entity = action.payload;\n return {...state, [entity.uri]: entity};\n }\n\n case ModifiedEntitiesActions.MODIFIED_ENTITY_DELETED: {\n const uri = action.payload;\n return omit([uri], state);\n }\n\n case ModifiedEntitiesActions.MODIFIED_ENTITIES_RESET: {\n return initState;\n }\n\n case ModeActions.MODE_UPDATED: {\n const {mode, silent} = action.payload;\n return isViewMode(mode) && !silent ? initState : state;\n }\n\n case ModifiedEntitiesActions.MODIFIED_ENTITY_DEFAULT_PROFILE_PIC_SET: {\n const {entityUri, value} = action.payload;\n if (entityUri) {\n return {\n ...state,\n [entityUri]: {\n ...state[entityUri],\n defaultProfilePic: value.uri,\n defaultProfilePicValue: value\n }\n };\n }\n return state;\n }\n\n case ProfileActions.ADD_ATTRIBUTES: {\n const attributes = action.payload;\n return attributes.reduce((state, attribute) => {\n const {attributeType, parentUri, index} = attribute;\n const entityUri = getBaseUri(parentUri);\n if (isEntityUri(entityUri)) {\n const entity = state[entityUri];\n //DEBUG\n if (!state[entityUri]) {\n console.error(`ADD_ATTRIBUTES. parentUri - ${parentUri}, state: ${JSON.stringify(state)}`);\n }\n if (isEntitySpecialAttrType(attributeType)) {\n return {\n ...state,\n [entityUri]: addEntitySpecialAttribute({entity, attributeType})\n };\n } else {\n return {\n ...state,\n [entityUri]: addAttribute({\n entity,\n attributeType,\n parentUri,\n index\n })\n };\n }\n } else {\n return state;\n }\n }, state);\n }\n\n case ProfileActions.ADD_NEXT_PAGE_ATTRIBUTE_VALUES: {\n const {parentUri, attributeTypeName, attributeTypeUri, values} = action.payload;\n const attributeSource = getAttributeSource(attributeTypeUri);\n if (isEntityUri(parentUri) && parentUri in state) {\n const lens = lensPath([parentUri, attributeSource, attributeTypeName]);\n\n return over(lens, pipe(defaultTo([]), concat(__, values)), state);\n } else {\n return state;\n }\n }\n\n case ProfileActions.MODIFY_ATTRIBUTE: {\n const {attributeType, uri, value} = action.payload;\n const entityUri = getBaseUri(uri);\n if (isEntityUri(entityUri)) {\n const entity = state[entityUri];\n //DEBUG\n if (!state[entityUri]) {\n console.error(`MODIFY_ATTRIBUTE. uri - ${uri}, state: ${JSON.stringify(state)}`);\n }\n if (isEntitySpecialAttrType(attributeType)) {\n return {\n ...state,\n [entityUri]: editEntitySpecialAttribute({\n entity,\n attributeType,\n value: value as number | string[]\n })\n };\n } else {\n return {\n ...state,\n [entityUri]: editAttribute({\n entity,\n attributeType,\n uri,\n value: value as Partial<AttributeValue>\n })\n };\n }\n } else {\n return state;\n }\n }\n\n case ProfileActions.REMOVE_ATTRIBUTE: {\n const {attributeType, uri} = action.payload;\n const entityUri = getBaseUri(uri);\n if (isEntityUri(uri)) {\n const entity = state[entityUri];\n //DEBUG\n if (!state[entityUri]) {\n console.error(`REMOVE_ATTRIBUTE. uri - ${uri}, state: ${JSON.stringify(state)}`);\n }\n if (isEntitySpecialAttrType(attributeType)) {\n return {\n ...state,\n [entityUri]: removeEntitySpecialAttribute({entity, attributeType})\n };\n } else {\n return {\n ...state,\n [entityUri]: removeAttribute({entity, attributeType, uri})\n };\n }\n } else {\n return state;\n }\n }\n\n case ProfileActions.ADD_DEFAULT_VALUES: {\n const {attributeType, parentUri, metadata, mode} = action.payload;\n const entityUri = getBaseUri(parentUri);\n if (isEntityUri(entityUri)) {\n const subAttributes = getEditableAttributeTypeSubAttributes(metadata, attributeType);\n return over(\n lensProp(entityUri),\n addDefaultValuesToComplexAttribute({attributeType, subAttributes, metadata, mode, parentUri}),\n state\n );\n } else {\n return state;\n }\n }\n\n default:\n return state;\n }\n};\n\nexport default modifiedEntitiesReducer;\n","import {\n cleanseData,\n Entity,\n getBaseUri,\n prepareCleansedAttributes,\n getAttributeSource,\n getEntityType,\n getPagedEntity,\n getRequestErrorMessage,\n CLEANSE_STATUS_ERROR_PATH,\n hasCleanseStatus,\n isUnverifiedCleanse,\n getCleanseType,\n hasCleanseTypeInEntityType,\n getCleanseConfigurationAttributes,\n CleanseConfiguration,\n Metadata,\n TEntityType\n} from '@reltio/mdm-sdk';\nimport {intersection, map, path, pathOr, pipe, prop} from 'ramda';\nimport {call, put, select, takeEvery} from 'redux-saga/effects';\nimport * as selectors from '../../../selectors';\nimport {\n addNextPageOfAttributeValues,\n modifyAttribute,\n processNextPageOfAttributeValues,\n requestNextPageOfAttributeValues\n} from '../../actions';\nimport {entityCreated, cleanseLoading} from '../../modifiedEntities/actions';\nimport {ProfileActions} from '../../actions/constants';\nimport {getEntity} from '../../../selectors';\nimport i18n from 'ui-i18n';\nimport {errorSet} from '../../../ui/actions';\n\nexport function* processNextPageValuesAdding(action: ReturnType<typeof processNextPageOfAttributeValues>) {\n const {values, parentUri, attributeTypeUri, attributeTypeName} = action.payload;\n let valuesToAdd = values;\n const entity: Entity = yield select(getEntity);\n if (parentUri === entity.uri) {\n const attributeSource = getAttributeSource(attributeTypeUri);\n const entityValuesUris: string[] = pipe(\n pathOr([], [attributeSource, attributeTypeName]),\n map(prop('uri'))\n )(entity);\n const existingValuesUris: string[] = intersection(entityValuesUris, values.map(prop('uri')));\n valuesToAdd = values.filter((value) => !existingValuesUris.includes(value.uri));\n }\n if (valuesToAdd.length) {\n yield put(addNextPageOfAttributeValues({...action.payload, values: valuesToAdd}));\n }\n}\n\nexport function* requestOptions() {\n const apiPath = yield select(selectors.getApiPath);\n const tenant = yield select(selectors.getTenant);\n\n return {apiPath, tenant};\n}\n\nexport function* requestAttributeValues(action: ReturnType<typeof requestNextPageOfAttributeValues>) {\n const {attributeTypeName, attributeTypeUri} = action.payload;\n const options = yield call(requestOptions);\n try {\n const json = yield call(getPagedEntity, {...action.payload, ...options});\n const attributeSource = getAttributeSource(attributeTypeUri);\n const values = pathOr([], [attributeSource, attributeTypeName], json);\n yield put(processNextPageOfAttributeValues({...action.payload, values}));\n } catch (error) {\n console.warn(error);\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n}\n\nexport function* handleProfileCleanse(action: ReturnType<typeof modifyAttribute>) {\n const {attributeType, value, uri} = action.payload;\n const attributeTypeUri = attributeType.uri;\n const baseTypeUri = getBaseUri(attributeTypeUri);\n const cleanseConfiguration: CleanseConfiguration = yield select(\n selectors.getCleanseConfigurationByEntityType,\n baseTypeUri\n );\n if (!cleanseConfiguration) {\n return;\n }\n const metadata: Metadata = yield select(selectors.getMetadata);\n const entityType: TEntityType = getEntityType(metadata, baseTypeUri);\n const infos = entityType?.cleanseConfig?.infos;\n if (!infos) {\n return;\n }\n const cleanseConfigurationType = getCleanseType(cleanseConfiguration, attributeTypeUri);\n if (!hasCleanseTypeInEntityType(cleanseConfigurationType, infos)) {\n return;\n }\n const cleanseConfigurationAttributes = getCleanseConfigurationAttributes(cleanseConfiguration);\n if (cleanseConfigurationAttributes?.includes(attributeTypeUri)) {\n yield put(cleanseLoading({isLoading: true}));\n try {\n const cleansedEntity: Entity = yield call(cleanseData, {\n cleanseType: cleanseConfigurationType.split('/cleanse/infos/')[1],\n type: baseTypeUri,\n attributes: {\n [attributeType.name]: [\n {\n type: attributeTypeUri as string,\n value: value as string\n }\n ]\n }\n });\n const baseUri = getBaseUri(uri);\n const modifiedEntity = yield select(selectors.getModifiedEntity, baseUri);\n\n if (hasCleanseStatus(cleansedEntity)) {\n if (isUnverifiedCleanse(cleansedEntity)) {\n yield put(errorSet(path(CLEANSE_STATUS_ERROR_PATH, cleansedEntity)));\n } else if (modifiedEntity) {\n const {attributes: cleansedAttributes} = cleansedEntity;\n const attributesToUpdate = prepareCleansedAttributes(baseUri, cleansedAttributes);\n yield put(\n entityCreated({\n ...modifiedEntity,\n attributes: {...modifiedEntity.attributes, ...attributesToUpdate}\n })\n );\n }\n }\n } catch (error) {\n console.warn(error);\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n\n yield put(cleanseLoading({isLoading: false}));\n }\n}\n\nexport function* requestAttributeValuesSaga() {\n yield takeEvery(ProfileActions.REQUEST_NEXT_PAGE_ATTRIBUTE_VALUES, requestAttributeValues);\n}\n\nexport function* processNextPageValuesAddingSaga() {\n yield takeEvery(ProfileActions.PROCESS_NEXT_PAGE_ATTRIBUTE_VALUES, processNextPageValuesAdding);\n}\n\nexport function* handleProfileCleansingSaga() {\n yield takeEvery(ProfileActions.MODIFY_ATTRIBUTE, handleProfileCleanse);\n}\n\nconst sagas = [requestAttributeValuesSaga, processNextPageValuesAddingSaga, handleProfileCleansingSaga];\n\nexport default sagas;\n","import {Connection, Entity, IgnoredRelationData, RelationsLoadedPayload, CompactRelationType} from '@reltio/mdm-sdk';\nimport {curry} from 'ramda';\nimport {SecondLevelRelationsPayload} from '../../../types/profile/relations';\nimport {createStandardAction} from '../../../utils';\nimport {RelationsActions} from '../constants';\n\nexport const relationsLoaded = createStandardAction<RelationsActions.RELATIONS_LOADED, RelationsLoadedPayload>(\n RelationsActions.RELATIONS_LOADED\n);\n\nexport const secondLevelRelationsLoaded = createStandardAction<\n RelationsActions.SECOND_LEVEL_RELATIONS_LOADED,\n SecondLevelRelationsPayload\n>(RelationsActions.SECOND_LEVEL_RELATIONS_LOADED);\n\nexport const removeRelation = curry((id: string, relationUri: string) => ({\n type: RelationsActions.REMOVE_RELATION,\n payload: {id, relationUri}\n}));\n\nexport const ignoreRelation = curry((id: string, ignoredRelationData: IgnoredRelationData) => ({\n type: RelationsActions.IGNORE_RELATION,\n payload: {id, ignoredRelationData}\n}));\n\nexport const addRelation = curry((id: string, connection: Connection) => ({\n type: RelationsActions.ADD_RELATION,\n payload: {id, connection}\n}));\n\nexport const editRelation = curry((id: string, connection: Connection) => ({\n type: RelationsActions.EDIT_RELATION,\n payload: {id, connection}\n}));\n\nexport const openRelationEditor = curry((id: string, connection: Connection) => ({\n type: RelationsActions.OPEN_RELATION_EDITOR,\n payload: {id, connection}\n}));\n\nexport const closeRelationEditor = curry((id: string, relationUri: string) => ({\n type: RelationsActions.CLOSE_RELATION_EDITOR,\n payload: {id, relationUri}\n}));\n\nexport const setRelationType = curry((id: string, relationUri: string, relationType: CompactRelationType) => ({\n type: RelationsActions.SET_RELATION_TYPE,\n payload: {id, relationUri, relationType}\n}));\n\nexport const setRelationEntity = curry((id: string, relationUri: string, entityInfo: Entity) => ({\n type: RelationsActions.SET_RELATION_ENTITY,\n payload: {id, relationUri, entityInfo}\n}));\n\nexport const setInitialInfo = curry((id: string, relationUri: string, tempEntity: Entity, connection: Connection) => ({\n type: RelationsActions.SET_INITIAL_INFO,\n payload: {id, relationUri, tempEntity, connection}\n}));\n","import {\n addEntitySpecialAttribute,\n addAttribute,\n addDefaultValuesToAttributes,\n applyRelationTypeObject,\n AttributeValue,\n editEntitySpecialAttribute,\n editAttribute,\n getAttributeTypeSubAttributes,\n getBaseUri,\n getRelationType,\n isActivenessAttrType,\n isRelationUri,\n isTempUri,\n removeEntitySpecialAttribute,\n removeAttribute,\n addDefaultValuesToComplexAttribute,\n getRelationUriFromConnection,\n RelationsState,\n getRelationsToEditPath,\n getRelationToAddPath,\n isEditableMode\n} from '@reltio/mdm-sdk';\nimport {\n always,\n append,\n assoc,\n assocPath,\n both,\n complement,\n compose,\n defaultTo,\n eqBy,\n equals,\n evolve,\n find,\n hasPath,\n isEmpty,\n isNil,\n lensPath,\n lensProp,\n map,\n omit,\n over,\n path,\n pathEq,\n pipe,\n prepend,\n propSatisfies,\n reject,\n set,\n unless,\n update,\n view,\n when,\n identity\n} from 'ramda';\nimport {ProfileActions} from '../../actions/constants';\nimport {EntityActions} from '../../entity/constants';\nimport {ModeActions} from '../../mode/constants';\nimport {getIsViewMode} from '../../mode/selectors';\nimport {RelationsActions, RelationsActionsTypes} from '../constants';\n\nconst initState = {} as RelationsState;\nconst initDraftsState = {\n removedUris: [],\n addedConnections: [],\n editedConnections: [],\n ignoredRelationData: []\n};\n\nconst getPathToEditingConnection = (viewId: string, relationUri: string, state: RelationsState) => {\n if (pathEq([...getRelationToAddPath(viewId), 'relation', 'relationUri'], relationUri, state)) {\n return getRelationToAddPath(viewId);\n } else {\n const relationsToEdit = path(getRelationsToEditPath(viewId), state) || [];\n const index = relationsToEdit.findIndex(pathEq(['relation', 'relationUri'], relationUri));\n return index >= 0 ? [...getRelationsToEditPath(viewId), index] : null;\n }\n};\n\nconst getRelationLens = (viewId: string, relationUri: string, state: RelationsState) => {\n const pathToRelation = getPathToEditingConnection(viewId, relationUri, state);\n return pathToRelation ? lensPath([...pathToRelation, 'relation']) : null;\n};\n\nconst getRelationObjectLens = pipe(getRelationLens, (relationsLens) => compose(relationsLens, lensProp('object')));\n\nconst relationsReducer = (state = initState, action: RelationsActionsTypes) => { //NOSONAR\n switch (action.type) {\n case EntityActions.ENTITY_LOADED:\n return {};\n\n case RelationsActions.RELATIONS_LOADED: {\n const {id, connections = [], total, mode} = action.payload;\n return pipe(\n assocPath([id, 'connections'], connections),\n assocPath([id, 'total'], total),\n when(\n both(complement(hasPath([id, 'drafts'])), always(isEditableMode(mode))),\n assocPath([id, 'drafts'], initDraftsState)\n )\n )(state);\n }\n\n case RelationsActions.SECOND_LEVEL_RELATIONS_LOADED: {\n const {id, connections, parentEntityUri, total} = action.payload;\n\n const newConnections = path([id, 'connections'], state).map((connection) => {\n const {entityUri} = connection.entity;\n\n if (entityUri === parentEntityUri) {\n return {\n ...connection,\n total,\n connections: connections.map((connection) => {\n return {\n ...connection,\n parentEntityUri\n };\n })\n };\n }\n\n return connection;\n });\n\n return assocPath([id, 'connections'], newConnections, state);\n }\n\n case ModeActions.MODE_UPDATED: {\n const {mode, silent} = action.payload;\n if (silent) return state;\n return map(\n getIsViewMode(mode)\n ? omit(['drafts', 'relationsToEdit', 'relationToAdd'])\n : assoc('drafts', initDraftsState),\n state\n );\n }\n\n case RelationsActions.REMOVE_RELATION: {\n const {id, relationUri} = action.payload;\n const hasRemovedUri = pipe(getRelationUriFromConnection, equals(relationUri));\n const connections = path([id, 'connections'], state);\n const needToAddRemovedUris =\n !isTempUri(relationUri) &&\n !connections?.some(\n (connection) => connection.suggested && connection.relation.relationUri === relationUri\n );\n return evolve(\n {\n [id]: {\n drafts: evolve({\n removedUris: needToAddRemovedUris ? append(relationUri) : identity,\n addedConnections: reject(hasRemovedUri),\n editedConnections: reject(hasRemovedUri)\n })\n }\n },\n state\n );\n }\n\n case RelationsActions.IGNORE_RELATION: {\n const {id, ignoredRelationData} = action.payload;\n\n return evolve(\n {\n [id]: {\n drafts: evolve({\n ignoredRelationData: append(ignoredRelationData)\n })\n }\n },\n state\n );\n }\n\n case RelationsActions.ADD_RELATION: {\n const {id, connection} = action.payload;\n const newConnection = omit(['isNew'], connection);\n return evolve(\n {\n [id]: pipe(\n when(propSatisfies(isNil, 'drafts'), assocPath(['drafts'], initDraftsState)),\n evolve({drafts: {addedConnections: prepend(newConnection)}})\n )\n },\n state\n );\n }\n\n case RelationsActions.EDIT_RELATION: {\n const {id, connection} = action.payload;\n const equalsConnection = eqBy(getRelationUriFromConnection, connection);\n const isNew = isTempUri(getRelationUriFromConnection(connection));\n\n if (isNew) {\n const updateConnection = (connections) => {\n const index = connections.findIndex(equalsConnection);\n return index >= 0 ? update(index, connection, connections) : connections;\n };\n\n return evolve(\n {\n [id]: {\n drafts: evolve({\n addedConnections: updateConnection\n })\n }\n },\n state\n );\n } else {\n const upsertConnection = (connections) => {\n const index = connections.findIndex(equalsConnection);\n return index >= 0 ? update(index, connection, connections) : [...connections, connection];\n };\n\n return evolve(\n {\n [id]: {\n drafts: evolve({\n editedConnections: upsertConnection\n })\n }\n },\n state\n );\n }\n }\n\n case RelationsActions.OPEN_RELATION_EDITOR: {\n const {id, connection} = action.payload;\n const isNew = connection.isNew;\n if (isNew) {\n const relationToAddPath = getRelationToAddPath(id);\n return path(relationToAddPath, state) ? state : assocPath(relationToAddPath, connection, state);\n } else {\n const relationsToEditL = lensPath(getRelationsToEditPath(id));\n const equalsConnection = eqBy(path(['relation', 'relationUri']), connection);\n return over(\n relationsToEditL,\n pipe(defaultTo([]), unless(find(equalsConnection), append(connection))),\n state\n );\n }\n }\n case RelationsActions.SET_INITIAL_INFO: {\n const {id, relationUri, tempEntity, connection} = action.payload;\n const pathToConnection = getPathToEditingConnection(id, relationUri, state);\n const initialInfo = {\n modifiedEntity: tempEntity,\n connection: connection\n };\n return assocPath([...pathToConnection, 'initial'], initialInfo, state);\n }\n\n case RelationsActions.CLOSE_RELATION_EDITOR: {\n const {id, relationUri} = action.payload;\n const hasRemovedUri = pathEq(['relation', 'relationUri'], relationUri);\n return evolve(\n {\n [id]: {\n relationToAdd: when(hasRemovedUri, always(null)),\n relationsToEdit: reject(hasRemovedUri)\n }\n },\n state\n );\n }\n\n case RelationsActions.SET_RELATION_TYPE: {\n const {id, relationUri, relationType} = action.payload;\n const pathToConnection = getPathToEditingConnection(id, relationUri, state);\n if (pathToConnection) {\n const pathToRelation = [...pathToConnection, 'relation'];\n const relationL = lensPath(pathToRelation);\n return over(relationL, applyRelationTypeObject(relationType), state);\n }\n return state;\n }\n\n case ProfileActions.ADD_ATTRIBUTES: {\n const attributes = action.payload;\n return attributes.reduce((state, attribute) => {\n const {attributeType, parentUri, index, viewId} = attribute;\n const relationUri = getBaseUri(parentUri);\n const relationLens = getRelationLens(viewId, relationUri, state);\n if (relationLens && isRelationUri(relationUri)) {\n if (isActivenessAttrType(attributeType)) {\n const relation = view(relationLens, state);\n const newRelation = addEntitySpecialAttribute({entity: relation, attributeType});\n return set(relationLens, newRelation, state);\n } else {\n const relationObjectLens = getRelationObjectLens(viewId, relationUri, state);\n const relationObject = view(relationObjectLens, state);\n //DEBUG\n if (!relationObject) {\n console.error(\n `relations.ADD_ATTRIBUTES. viewId - ${viewId}, relationUri - ${relationUri}, state: ${JSON.stringify(\n state\n )}`\n );\n }\n const newRelationObject = addAttribute({\n entity: relationObject,\n attributeType,\n parentUri,\n index\n });\n return set(relationObjectLens, newRelationObject, state);\n }\n } else {\n return state;\n }\n }, state);\n }\n\n case ProfileActions.ADD_NEXT_PAGE_ATTRIBUTE_VALUES: {\n const {parentUri, attributeTypeName, values, viewId} = action.payload;\n\n if (!isRelationUri(parentUri)) {\n return state;\n }\n\n const relationUri = getBaseUri(parentUri);\n const pathToRelation = getPathToEditingConnection(viewId, relationUri, state);\n\n const relationLens = lensPath([...pathToRelation, 'relation', 'object', 'attributes', attributeTypeName]);\n\n return over(relationLens, pipe(defaultTo([]), append(values)), state);\n }\n\n case ProfileActions.MODIFY_ATTRIBUTE: {\n const {attributeType, viewId, uri, value} = action.payload;\n const relationUri = getBaseUri(uri);\n const relationLens = getRelationLens(viewId, relationUri, state);\n if (relationLens && isRelationUri(relationUri)) {\n if (isActivenessAttrType(attributeType)) {\n const relation = view(relationLens, state);\n const newRelation = editEntitySpecialAttribute({\n entity: relation,\n attributeType,\n value: value as number\n });\n return set(relationLens, newRelation, state);\n } else {\n const relationObjectLens = getRelationObjectLens(viewId, relationUri, state);\n const relationObject = view(relationObjectLens, state);\n //DEBUG\n if (!relationObject) {\n console.error(\n `relations.MODIFY_ATTRIBUTE. viewId - ${viewId}, relationUri - ${relationUri}, state: ${JSON.stringify(\n state\n )}`\n );\n }\n const newRelationObject = editAttribute({\n entity: relationObject,\n attributeType,\n uri,\n value: value as Partial<AttributeValue>\n });\n return set(relationObjectLens, newRelationObject, state);\n }\n } else {\n return state;\n }\n }\n\n case ProfileActions.REMOVE_ATTRIBUTE: {\n const {attributeType, uri, viewId} = action.payload;\n const relationUri = getBaseUri(uri);\n const relationLens = getRelationLens(viewId, relationUri, state);\n if (relationLens && isRelationUri(relationUri)) {\n if (isActivenessAttrType(attributeType)) {\n const relation = view(relationLens, state);\n const newRelation = removeEntitySpecialAttribute({entity: relation, attributeType});\n return set(relationLens, newRelation, state);\n } else {\n const relationObjectLens = getRelationObjectLens(viewId, relationUri, state);\n const relationObject = view(relationObjectLens, state);\n //DEBUG\n if (!relationObject) {\n console.error(\n `relations.REMOVE_ATTRIBUTE. viewId - ${viewId}, relationUri - ${relationUri}, state: ${JSON.stringify(\n state\n )}`\n );\n }\n const newRelationObject = removeAttribute({entity: relationObject, attributeType, uri});\n return set(relationObjectLens, newRelationObject, state);\n }\n } else {\n return state;\n }\n }\n\n case RelationsActions.SET_RELATION_ENTITY: {\n const {id, relationUri, entityInfo} = action.payload;\n const pathToConnection = getPathToEditingConnection(id, relationUri, state);\n if (pathToConnection) {\n const pathToEntity = [...pathToConnection, 'entity'];\n const entityL = lensPath(pathToEntity);\n const {uri, label, type} = entityInfo;\n const newEntity = !isEmpty(entityInfo)\n ? {entityUri: uri, entityLabel: label, entityType: type, object: {uri, label, type}}\n : {};\n return set(entityL, newEntity, state);\n }\n return state;\n }\n\n case ProfileActions.ADD_DEFAULT_VALUES: {\n const {viewId, attributeType, parentUri, metadata, mode} = action.payload;\n const objectUri = getBaseUri(parentUri);\n if (isRelationUri(objectUri)) {\n const pathToConnection = getPathToEditingConnection(viewId, objectUri, state);\n if (pathToConnection) {\n if (attributeType) {\n const pathToObject = [...pathToConnection, 'relation', 'object'];\n const subAttributes = getAttributeTypeSubAttributes(metadata, attributeType);\n return over(\n lensPath(pathToObject),\n addDefaultValuesToComplexAttribute({\n attributeType,\n subAttributes,\n metadata,\n mode,\n parentUri\n }),\n state\n );\n } else {\n const pathToAttributes = [...pathToConnection, 'relation', 'object', 'attributes'];\n const pathToTypeUri = [...pathToConnection, 'relation', 'object', 'type'];\n const type = view(lensPath(pathToTypeUri), state);\n const {attributes: attributeTypes = []} = getRelationType(metadata, type);\n return over(\n lensPath(pathToAttributes),\n addDefaultValuesToAttributes({metadata, mode, attributeTypes, parentUri}),\n state\n );\n }\n } else {\n return state;\n }\n } else {\n return state;\n }\n }\n\n default:\n return state;\n }\n};\n\nexport default relationsReducer;\n","import {ProfileActionTypes} from '../actions/constants';\nimport {ModeActionsTypes} from '../mode/constants';\nimport {EntityActionsType} from '../entity/constants';\nimport * as treesActions from './actions';\n\nexport enum TreesActions {\n TREES_RESET_INITIAL_TREES = 'TREES_RESET_INITIAL_TREES',\n TREES_RESTORE_FROM_INITIAL_TREES = 'TREES_RESTORE_FROM_INITIAL_TREES',\n TREES_STATE_RESTORED = 'TREES_STATE_RESTORED',\n TREES_STATE_SAVED = 'TREES_STATE_SAVED',\n TREE_ACTIVENESS_DATE_CHANGED = 'TREE_ACTIVENESS_DATE_CHANGED',\n TREE_CHANGED = 'TREE_CHANGED',\n TREE_CHILDREN_LOADED = 'TREE_CHILDREN_LOADED',\n TREE_CHILDREN_LOADING = 'TREE_CHILDREN_LOADING',\n TREE_COMMANDS_CLEARED = 'TREE_COMMANDS_CLEARED',\n TREE_CURRENT_ENTITY_SHOWN = 'TREE_CURRENT_ENTITY_SHOWN',\n TREE_ENTITIES_MAPPING_LOADED = 'TREE_ENTITIES_MAPPING_LOADED',\n TREE_LOADED = 'TREE_LOADED',\n TREE_LOADED_WITH_ERROR = 'TREE_LOADED_WITH_ERROR',\n TREE_LOADING = 'TREE_LOADING',\n TREE_NODE_CREATED = 'TREE_NODE_CREATED',\n TREE_NODE_EDITED = 'TREE_NODE_EDITED',\n TREE_NODE_EDITING_APPLIED = 'TREE_NODE_EDITING_APPLIED',\n TREE_NODE_EDITING_CANCELED = 'TREE_NODE_EDITING_CANCELED',\n TREE_NODE_EDITING_STARTED = 'TREE_NODE_EDITING_STARTED',\n TREE_NODE_ENTITY_CHANGED = 'TREE_NODE_ENTITY_CHANGED',\n TREE_NODE_EXPANDED = 'TREE_NODE_EXPANDED',\n TREE_NODE_NEW_CHILD_EDITING_APPLIED = 'TREE_NODE_NEW_CHILD_EDITING_APPLIED',\n TREE_NODE_NEW_CHILD_EDITING_CANCELED = 'TREE_NODE_NEW_CHILD_EDITING_CANCELED',\n TREE_NODE_NEW_CHILD_EDITING_STARTED = 'TREE_NODE_NEW_CHILD_EDITING_STARTED',\n TREE_NODE_NEW_PARENT_EDITING_APPLIED = 'TREE_NODE_NEW_PARENT_EDITING_APPLIED',\n TREE_NODE_NEW_PARENT_EDITING_CANCELED = 'TREE_NODE_NEW_PARENT_EDITING_CANCELED',\n TREE_NODE_NEW_PARENT_EDITING_STARTED = 'TREE_NODE_NEW_PARENT_EDITING_STARTED',\n TREE_NODE_RELATION_TYPE_CHANGED = 'TREE_NODE_RELATION_TYPE_CHANGED',\n TREE_NODE_REMOVED = 'TREE_NODE_REMOVED',\n TREE_SECONDARY_LABEL_SHOWN = 'TREE_SECONDARY_LABEL_SHOWN',\n TREE_SCROLL_TO_NODE_RESET = 'TREE_SCROLL_TO_NODE_RESET',\n TREE_SORTED = 'TREE_SORTED',\n TREE_REFRESHED = 'TREE_REFRESHED',\n TREE_RELATION_CREATED = 'TREE_RELATION_CREATED',\n TREE_RELATION_EDITED = 'TREE_RELATION_EDITED',\n TREE_RELATION_REMOVED = 'TREE_RELATION_REMOVED',\n TREE_RELATION_REPOINTED = 'TREE_RELATION_REPOINTED',\n TREE_CANCEL_CHILDREN_LOADING = 'TREE_CANCEL_CHILDREN_LOADING'\n}\n\nexport type TreesActionsTypes =\n | ReturnType<typeof treesActions.treeLoaded>\n | ReturnType<typeof treesActions.treeLoadedWithError>\n | ReturnType<typeof treesActions.treeLoading>\n | ReturnType<typeof treesActions.resetScrollToNode>\n | ReturnType<typeof treesActions.childrenLoading>\n | ReturnType<typeof treesActions.childrenLoaded>\n | ReturnType<typeof treesActions.entitiesMappingLoaded>\n | ReturnType<typeof treesActions.currentEntityShownInTree>\n | ReturnType<typeof treesActions.treeChanged>\n | ReturnType<typeof treesActions.treeRefreshed>\n | ReturnType<typeof treesActions.nodeExpanded>\n | ReturnType<typeof treesActions.toggleRelationDetails>\n | ReturnType<typeof treesActions.activenessDateChanged>\n | ReturnType<typeof treesActions.treeRelationRepointed>\n | ReturnType<typeof treesActions.treeRelationCreated>\n | ReturnType<typeof treesActions.treeNodeCreated>\n | ReturnType<typeof treesActions.treeRelationRemoved>\n | ReturnType<typeof treesActions.treeNodeRemoved>\n | ReturnType<typeof treesActions.treeRelationChanged>\n | ReturnType<typeof treesActions.treeNodeChanged>\n | ReturnType<typeof treesActions.treeCommandsCleared>\n | ReturnType<typeof treesActions.treeNodeEditingStarted>\n | ReturnType<typeof treesActions.treeNodeEditingApplied>\n | ReturnType<typeof treesActions.treeNodeEditingCanceled>\n | ReturnType<typeof treesActions.treeNodeNewParentEditingStarted>\n | ReturnType<typeof treesActions.treeNodeNewParentEditingApplied>\n | ReturnType<typeof treesActions.treeNodeNewParentEditingCanceled>\n | ReturnType<typeof treesActions.treeNodeNewChildEditingStarted>\n | ReturnType<typeof treesActions.treeNodeNewChildEditingApplied>\n | ReturnType<typeof treesActions.treeNodeNewChildEditingCanceled>\n | ReturnType<typeof treesActions.treeNodeRelationTypeChanged>\n | ReturnType<typeof treesActions.treeNodeEntityChanged>\n | ReturnType<typeof treesActions.treeSorted>\n | ReturnType<typeof treesActions.treeSecondaryLabelShown>\n | ReturnType<typeof treesActions.treesStateSaved>\n | ReturnType<typeof treesActions.treesStateRestored>\n | ReturnType<typeof treesActions.treesRestoreFromInitialTrees>\n | ReturnType<typeof treesActions.treesResetInitialTrees>\n | ReturnType<typeof treesActions.cancelChildrenLoading>\n | EntityActionsType\n | ModeActionsTypes\n | ProfileActionTypes;\n","import {TreesStateToSave} from '@reltio/mdm-sdk';\nimport {\n ActivenessDateChangedPayload,\n ChildrenLoadedPayload,\n ChildrenLoadingPayload,\n CurrentEntityShownInTreePayload,\n EntitiesMappingLoadedPayload,\n NodeExpandedPayload,\n ToggleRelationDetailsPayload,\n TreeChangedPayload,\n TreeLoadedPayload,\n TreeLoadedWithErrorPayload,\n TreeNodeChangedPayload,\n TreeNodeCreatedPayload,\n TreeNodeEditingAppliedPayload,\n TreeNodeEditingCanceledPayload,\n TreeNodeEditingStartedPayload,\n TreeNodeEntityChangedPayload,\n TreeNodeNewChildEditingAppliedPayload,\n TreeNodeNewChildEditingCanceledPayload,\n TreeNodeNewChildEditingStartedPayload,\n TreeNodeNewParentEditingAppliedPayload,\n TreeNodeNewParentEditingCanceledPayload,\n TreeNodeNewParentEditingStartedPayload,\n TreeNodeRelationTypeChangedPayload,\n TreeNodeRemovedPayload,\n TreeRelationChangedPayload,\n TreeRelationCreatedPayload,\n TreeRelationRemovedPayload,\n TreeRelationRepointedPayload,\n TreeSecondaryLabelShownPayload,\n TreeSortedPayload,\n TreesStateSavedPayload,\n CancelChildrenLoadingPayload\n} from '../../../types/profile/trees';\nimport {createStandardAction} from '../../../utils';\nimport {TreesActions} from '../constants';\n\nexport const treeLoaded = createStandardAction<TreesActions.TREE_LOADED, TreeLoadedPayload>(TreesActions.TREE_LOADED);\n\nexport const treeLoadedWithError = createStandardAction<\n TreesActions.TREE_LOADED_WITH_ERROR,\n TreeLoadedWithErrorPayload\n>(TreesActions.TREE_LOADED_WITH_ERROR);\n\nexport const treeLoading = createStandardAction<TreesActions.TREE_LOADING, string>(TreesActions.TREE_LOADING);\n\nexport const resetScrollToNode = createStandardAction<TreesActions.TREE_SCROLL_TO_NODE_RESET, string>(\n TreesActions.TREE_SCROLL_TO_NODE_RESET\n);\n\nexport const treeCommandsCleared = createStandardAction<TreesActions.TREE_COMMANDS_CLEARED, null>(\n TreesActions.TREE_COMMANDS_CLEARED\n);\n\nexport const childrenLoading = createStandardAction<TreesActions.TREE_CHILDREN_LOADING, ChildrenLoadingPayload>(\n TreesActions.TREE_CHILDREN_LOADING\n);\n\nexport const currentEntityShownInTree = createStandardAction<\n TreesActions.TREE_CURRENT_ENTITY_SHOWN,\n CurrentEntityShownInTreePayload\n>(TreesActions.TREE_CURRENT_ENTITY_SHOWN);\n\nexport const treeRefreshed = createStandardAction<TreesActions.TREE_REFRESHED, string>(TreesActions.TREE_REFRESHED);\n\nexport const nodeExpanded = createStandardAction<TreesActions.TREE_NODE_EXPANDED, NodeExpandedPayload>(\n TreesActions.TREE_NODE_EXPANDED\n);\n\nexport const treeRelationRemoved = createStandardAction<TreesActions.TREE_RELATION_REMOVED, TreeRelationRemovedPayload>(\n TreesActions.TREE_RELATION_REMOVED\n);\n\nexport const treeNodeRemoved = createStandardAction<TreesActions.TREE_NODE_REMOVED, TreeNodeRemovedPayload>(\n TreesActions.TREE_NODE_REMOVED\n);\n\nexport const treeSecondaryLabelShown = createStandardAction<\n TreesActions.TREE_SECONDARY_LABEL_SHOWN,\n TreeSecondaryLabelShownPayload\n>(TreesActions.TREE_SECONDARY_LABEL_SHOWN);\n\nexport const entitiesMappingLoaded = createStandardAction<\n TreesActions.TREE_ENTITIES_MAPPING_LOADED,\n EntitiesMappingLoadedPayload\n>(TreesActions.TREE_ENTITIES_MAPPING_LOADED);\n\nexport const treeChanged = createStandardAction<TreesActions.TREE_CHANGED, TreeChangedPayload>(\n TreesActions.TREE_CHANGED\n);\n\nexport const toggleRelationDetails = createStandardAction<TreesActions.TREE_NODE_EDITED, ToggleRelationDetailsPayload>(\n TreesActions.TREE_NODE_EDITED\n);\n\nexport const activenessDateChanged = createStandardAction<\n TreesActions.TREE_ACTIVENESS_DATE_CHANGED,\n ActivenessDateChangedPayload\n>(TreesActions.TREE_ACTIVENESS_DATE_CHANGED);\n\nexport const treeRelationRepointed = createStandardAction<\n TreesActions.TREE_RELATION_REPOINTED,\n TreeRelationRepointedPayload\n>(TreesActions.TREE_RELATION_REPOINTED);\n\nexport const treeRelationCreated = createStandardAction<TreesActions.TREE_RELATION_CREATED, TreeRelationCreatedPayload>(\n TreesActions.TREE_RELATION_CREATED\n);\n\nexport const treeNodeCreated = createStandardAction<TreesActions.TREE_NODE_CREATED, TreeNodeCreatedPayload>(\n TreesActions.TREE_NODE_CREATED\n);\n\nexport const treeRelationChanged = createStandardAction<TreesActions.TREE_RELATION_EDITED, TreeRelationChangedPayload>(\n TreesActions.TREE_RELATION_EDITED\n);\n\nexport const treeNodeChanged = createStandardAction<TreesActions.TREE_NODE_EDITED, TreeNodeChangedPayload>(\n TreesActions.TREE_NODE_EDITED\n);\n\nexport const treeNodeEditingStarted = createStandardAction<\n TreesActions.TREE_NODE_EDITING_STARTED,\n TreeNodeEditingStartedPayload\n>(TreesActions.TREE_NODE_EDITING_STARTED);\n\nexport const treeNodeEditingApplied = createStandardAction<\n TreesActions.TREE_NODE_EDITING_APPLIED,\n TreeNodeEditingAppliedPayload\n>(TreesActions.TREE_NODE_EDITING_APPLIED);\n\nexport const treeNodeEditingCanceled = createStandardAction<\n TreesActions.TREE_NODE_EDITING_CANCELED,\n TreeNodeEditingCanceledPayload\n>(TreesActions.TREE_NODE_EDITING_CANCELED);\n\nexport const treeNodeNewParentEditingStarted = createStandardAction<\n TreesActions.TREE_NODE_NEW_PARENT_EDITING_STARTED,\n TreeNodeNewParentEditingStartedPayload\n>(TreesActions.TREE_NODE_NEW_PARENT_EDITING_STARTED);\n\nexport const treeNodeNewParentEditingApplied = createStandardAction<\n TreesActions.TREE_NODE_NEW_PARENT_EDITING_APPLIED,\n TreeNodeNewParentEditingAppliedPayload\n>(TreesActions.TREE_NODE_NEW_PARENT_EDITING_APPLIED);\n\nexport const treeNodeNewParentEditingCanceled = createStandardAction<\n TreesActions.TREE_NODE_NEW_PARENT_EDITING_CANCELED,\n TreeNodeNewParentEditingCanceledPayload\n>(TreesActions.TREE_NODE_NEW_PARENT_EDITING_CANCELED);\n\nexport const treeNodeNewChildEditingStarted = createStandardAction<\n TreesActions.TREE_NODE_NEW_CHILD_EDITING_STARTED,\n TreeNodeNewChildEditingStartedPayload\n>(TreesActions.TREE_NODE_NEW_CHILD_EDITING_STARTED);\n\nexport const treeNodeNewChildEditingApplied = createStandardAction<\n TreesActions.TREE_NODE_NEW_CHILD_EDITING_APPLIED,\n TreeNodeNewChildEditingAppliedPayload\n>(TreesActions.TREE_NODE_NEW_CHILD_EDITING_APPLIED);\n\nexport const treeNodeNewChildEditingCanceled = createStandardAction<\n TreesActions.TREE_NODE_NEW_CHILD_EDITING_CANCELED,\n TreeNodeNewChildEditingCanceledPayload\n>(TreesActions.TREE_NODE_NEW_CHILD_EDITING_CANCELED);\n\nexport const treeNodeRelationTypeChanged = createStandardAction<\n TreesActions.TREE_NODE_RELATION_TYPE_CHANGED,\n TreeNodeRelationTypeChangedPayload\n>(TreesActions.TREE_NODE_RELATION_TYPE_CHANGED);\n\nexport const treeNodeEntityChanged = createStandardAction<\n TreesActions.TREE_NODE_ENTITY_CHANGED,\n TreeNodeEntityChangedPayload\n>(TreesActions.TREE_NODE_ENTITY_CHANGED);\n\nexport const treeSorted = createStandardAction<TreesActions.TREE_SORTED, TreeSortedPayload>(TreesActions.TREE_SORTED);\n\nexport const treesStateSaved = createStandardAction<TreesActions.TREES_STATE_SAVED, TreesStateSavedPayload>(\n TreesActions.TREES_STATE_SAVED\n);\n\nexport const treesStateRestored = createStandardAction<TreesActions.TREES_STATE_RESTORED, TreesStateToSave>(\n TreesActions.TREES_STATE_RESTORED\n);\n\nexport const childrenLoaded = createStandardAction<TreesActions.TREE_CHILDREN_LOADED, ChildrenLoadedPayload>(\n TreesActions.TREE_CHILDREN_LOADED\n);\n\nexport const treesRestoreFromInitialTrees = createStandardAction<TreesActions.TREES_RESTORE_FROM_INITIAL_TREES, null>(\n TreesActions.TREES_RESTORE_FROM_INITIAL_TREES\n);\n\nexport const treesResetInitialTrees = createStandardAction<TreesActions.TREES_RESET_INITIAL_TREES, null>(\n TreesActions.TREES_RESET_INITIAL_TREES\n);\n\nexport const cancelChildrenLoading = createStandardAction<\n TreesActions.TREE_CANCEL_CHILDREN_LOADING,\n CancelChildrenLoadingPayload\n>(TreesActions.TREE_CANCEL_CHILDREN_LOADING);\n","import {EditingConnection, TreeNode, TreesState} from '@reltio/mdm-sdk';\nimport {always, flatten, isNil, map, path, pick, pipe, prop, reject, values, when} from 'ramda';\n\nexport const getTree = (state: TreesState, id: string) => state.trees[id];\nexport const getTreeRoot = (state: TreesState, id: string): TreeNode => path(['trees', id, 'root'], state);\nexport const getTreeTotal = (state: TreesState, id: string): number => path(['trees', id, 'total'], state);\nexport const getCommands = path(['common', 'commands']);\nexport const getTreeEditingConnection = (state: TreesState, id: string, relationUri: string): EditingConnection =>\n path(['trees', id, 'editingConnections', relationUri], state);\nexport const getAllTreesEditingConnections = (state: TreesState, viewIds: string[]): EditingConnection[] =>\n pipe(\n prop('trees'),\n when(always(viewIds), pick(viewIds)),\n values,\n map(pipe(prop('editingConnections'), values)),\n flatten,\n reject(isNil)\n )(state);\n","import {findParentNodeById} from '@reltio/mdm-sdk';\nimport {identity, lensPath, path, pick, prop, reject, uniq} from 'ramda';\n\nconst syncToCurrentEntity = (node, uri, parents = []) => {\n if (path(['entity', 'uri'], node) === uri) {\n parents.forEach((parent) => (parent.expanded = true));\n return node;\n }\n if (node.children) {\n for (const child of node.children) {\n const result = syncToCurrentEntity(child, uri, parents.concat(node));\n if (result) {\n return result;\n }\n }\n }\n};\n\nconst mergeEntitiesMap = (map, subMap) => {\n const mapWithUpdatedParents = Object.keys(map).reduce((result, entityUri) => {\n const entity = map[entityUri];\n if (subMap[entityUri]) {\n entity.parent = uniq([].concat(entity.parent).concat(subMap[entityUri].parent).filter(identity));\n }\n result[entityUri] = entity;\n return result;\n }, {});\n Object.keys(subMap).forEach((entityUri) => {\n if (!mapWithUpdatedParents[entityUri]) {\n mapWithUpdatedParents[entityUri] = subMap[entityUri];\n }\n });\n return mapWithUpdatedParents;\n};\n\nconst mergeChildren = (oldChildren = [], newChildren = []) => {\n const getLoadedChildren = reject(prop('loading'));\n const result = getLoadedChildren(oldChildren);\n newChildren.forEach((newChild) => {\n if (!oldChildren.find((oldChild) => path(['entity', 'uri'], oldChild) === newChild.entity.uri)) {\n result.push(newChild);\n }\n });\n return result;\n};\n\nconst removeChild = (node, childId) => {\n if (node && node.children) {\n const index = node.children.findIndex(({nodeId}) => nodeId === childId);\n if (index > -1) {\n node.children.splice(index, 1);\n }\n }\n};\nconst insertChild = (node, child, index = 0) => {\n if (node && node.children) {\n node.children.splice(index, 0, child);\n }\n};\n\nconst mutatePath = ({path, value, object}) => {\n let currentLevelObject = object;\n for (let i = 0; i < path.length; i++) {\n const segment = path[i];\n if (i === path.length - 1) {\n currentLevelObject[segment] = typeof value === 'function' ? value(currentLevelObject[segment]) : value;\n } else {\n currentLevelObject[segment] = currentLevelObject[segment] || (typeof segment === 'number' ? [] : {});\n currentLevelObject = currentLevelObject[segment];\n }\n }\n};\n\nconst updateAllNodesWithProp = (node = {}, prop, value) => {\n node[prop] = value;\n\n if (node.children) {\n node.children.forEach((child) => updateAllNodesWithProp(child, prop, value));\n }\n};\n\nconst createConnection = (node) => ({\n entity: node.entity,\n relation: node.relation\n});\n\nconst addToEditingConnections = ({id, draft, node}) => {\n mutatePath({\n path: ['editingConnections', node.relation.uri],\n object: draft[id],\n value: createConnection(node)\n });\n};\n\nconst setConnectionEntity = ({id, draft, node, entity}) => {\n mutatePath({\n path: ['editingConnections', node.relation.uri, 'entity'],\n object: draft[id],\n value: entity\n });\n};\n\nconst setConnectionRelationType = ({id, draft, node, relationTypeUri}) => {\n mutatePath({\n path: ['editingConnections', node.relation.uri, 'relation'],\n object: draft[id],\n value: (relation) => ({...relation, type: relationTypeUri, attributes: {}})\n });\n};\n\nconst removeFromEditingConnections = ({id, draft, relationUri}) => {\n delete draft[id].editingConnections[relationUri];\n};\n\nconst getEditingConnection = ({id, draft, relationUri}) => {\n return draft[id].editingConnections[relationUri];\n};\n\nconst nodeEditingCleanUp = (currentNode) => {\n delete currentNode.editingMode;\n delete currentNode.relatedEntity;\n delete currentNode.initialConnection;\n};\n\nconst addingParentCleanUp = ({id, draft, currentNode}) => {\n const treeRoot = draft[id].root;\n if (treeRoot === currentNode) {\n draft[id].root = currentNode.children[0];\n draft[id].root.children = draft[id].root.children || [];\n draft[id].root.children.push(...currentNode.children.slice(1));\n } else {\n const parentNode = findParentNodeById(treeRoot, currentNode.nodeId);\n removeChild(parentNode, currentNode.nodeId);\n }\n};\n\nconst getRelationLens = (id, relationUri, state) => {\n const pathToRelation = [id, 'editingConnections', relationUri, 'relation'];\n return path(pathToRelation, state) ? lensPath(pathToRelation) : null;\n};\n\nconst getTreeSettingsFields = pick(['showSecondaryLabel', 'sortField', 'sortOrder']);\n\nconst addNodesToEntitiesMap = (entitiesMap, nodes = []) =>\n mergeEntitiesMap(\n entitiesMap,\n nodes.reduce(\n (result, node) => ({\n ...result,\n [node.entity.uri]: pick(['entity', 'parent', 'relations'], node)\n }),\n {}\n )\n );\n\nconst createNodeFromConnection = (connection) => ({\n entity: pick(['uri', 'type', 'label', 'secondaryLabel'], connection.entity),\n parent: [],\n relations: [pick(['uri', 'type'], connection.relation)]\n});\n\nexport {\n syncToCurrentEntity,\n mergeEntitiesMap,\n mergeChildren,\n removeChild,\n insertChild,\n updateAllNodesWithProp,\n createConnection,\n addToEditingConnections,\n addingParentCleanUp,\n nodeEditingCleanUp,\n setConnectionEntity,\n setConnectionRelationType,\n removeFromEditingConnections,\n getEditingConnection,\n getRelationLens,\n getTreeSettingsFields,\n addNodesToEntitiesMap,\n createNodeFromConnection\n};\n","import {compose, lensPath, over, path, prop, reject, set, view} from 'ramda';\nimport {\n addAttribute,\n addDefaultValuesToAttributes,\n addEntitySpecialAttribute,\n AttributeValue,\n createRelationCreateCommand,\n createRelationDeleteCommand,\n createRelationRepointCommand,\n createRelationUpdateCommand,\n editAttribute,\n editEntitySpecialAttribute,\n Entity,\n findNodeById,\n findParentNodeById,\n getAttributeTypeSubAttributes,\n getBaseUri,\n getRelationType,\n isActivenessAttrType,\n isEditableMode,\n isRelationUri,\n isTempUri,\n isViewMode,\n isRelationCommandForUri,\n mapTree,\n NODE_EDITING_MODES,\n removeAttribute,\n removeEntitySpecialAttribute,\n sortTreeChildren,\n TreesState,\n addDefaultValuesToComplexAttribute\n} from '@reltio/mdm-sdk';\nimport produce from 'immer';\nimport {TreesActions, TreesActionsTypes} from '../constants';\nimport {ModeActions} from '../../mode/constants';\nimport {EntityActions} from '../../entity/constants';\nimport {ProfileActions} from '../../actions/constants';\nimport {\n addingParentCleanUp,\n addNodesToEntitiesMap,\n addToEditingConnections,\n createConnection,\n createNodeFromConnection,\n getEditingConnection,\n getRelationLens,\n getTreeSettingsFields,\n insertChild,\n mergeChildren,\n mergeEntitiesMap,\n nodeEditingCleanUp,\n removeChild,\n removeFromEditingConnections,\n setConnectionEntity,\n setConnectionRelationType,\n syncToCurrentEntity,\n updateAllNodesWithProp\n} from './helpers';\n\nconst initialState: TreesState = {\n common: {\n commands: []\n },\n trees: {},\n initialTrees: {}\n};\n\nconst treesReducer = (state = initialState, action: TreesActionsTypes): TreesState =>\n produce(state, (draft) => { //NOSONAR\n switch (action.type) {\n case ModeActions.MODE_UPDATED: {\n const {mode, silent} = action.payload;\n\n if (silent) break;\n\n const draftKeys = Object.keys(draft?.trees);\n draftKeys.forEach((draftKey) => {\n updateAllNodesWithProp(draft.trees[draftKey].root, 'showDetails', false);\n });\n\n if (isViewMode(mode)) {\n draft.common.commands = [];\n draft.initialTrees = {};\n }\n\n if (isEditableMode(mode)) {\n draft.initialTrees = {...draft.trees};\n }\n break;\n }\n case ModeActions.MODE_EDITING_CANCELED:\n case TreesActions.TREES_RESTORE_FROM_INITIAL_TREES:\n draft.trees = {...draft.initialTrees};\n break;\n case TreesActions.TREES_RESET_INITIAL_TREES:\n draft.initialTrees = {};\n break;\n case EntityActions.ENTITY_LOADED:\n return initialState;\n case TreesActions.TREE_LOADED_WITH_ERROR: {\n const {id, errorMessage} = action.payload;\n draft.trees[id] = draft.trees[id] || {};\n draft.trees[id].errorMessage = errorMessage;\n draft.trees[id].loading = false;\n delete draft.trees[id].root;\n delete draft.trees[id].entitiesMap;\n break;\n }\n case TreesActions.TREE_LOADING: {\n const id = action.payload;\n draft.trees[id] = draft.trees[id] || {};\n draft.trees[id].loading = true;\n break;\n }\n case TreesActions.TREE_CHILDREN_LOADING: {\n const {id, parentId, nodeId} = action.payload;\n const treeRoot = draft.trees[id].root;\n const parentNode = findNodeById(treeRoot, parentId);\n parentNode.pending = false;\n parentNode.children = (parentNode.children || []).concat({\n entity: {} as Entity,\n loading: true,\n nodeId\n });\n\n break;\n }\n case TreesActions.TREE_CHILDREN_LOADED: {\n const {children, id, parentId} = action.payload;\n const treeRoot = draft.trees[id].root;\n const parentNode = findNodeById(treeRoot, parentId);\n if (parentNode) {\n parentNode.children = mergeChildren(parentNode.children, children);\n delete parentNode.pending;\n }\n break;\n }\n\n case TreesActions.TREE_NODE_REMOVED: {\n const {id, nodeId} = action.payload;\n const treeRoot = draft.trees[id].root;\n const parentNode = findParentNodeById(treeRoot, nodeId);\n removeChild(parentNode || treeRoot, nodeId);\n break;\n }\n\n case TreesActions.TREE_NODE_CREATED: {\n const {id, parentId, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const parentNode = findNodeById(treeRoot, parentId) || treeRoot;\n const index = parentNode.children.length;\n insertChild(parentNode, node, index);\n break;\n }\n\n case TreesActions.TREE_NODE_EDITED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n const keys = Object.keys(node);\n for (const key of keys) {\n currentNode[key] = node[key];\n }\n break;\n }\n\n case TreesActions.TREE_NODE_EDITING_STARTED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n const parentNode = findParentNodeById(treeRoot, node.nodeId);\n if (currentNode && parentNode) {\n currentNode.editingMode = NODE_EDITING_MODES.editing;\n currentNode.relatedEntity = parentNode.entity;\n delete currentNode.loading;\n currentNode.initialConnection = createConnection(currentNode);\n addToEditingConnections({id, draft: draft.trees, node: currentNode});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_EDITING_APPLIED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n const connection = getEditingConnection({id, draft: draft.trees, relationUri: node.relation.uri});\n if (currentNode && connection) {\n nodeEditingCleanUp(currentNode);\n if (currentNode.entity.uri !== connection.entity.uri && currentNode.children?.length) {\n delete currentNode.children;\n currentNode.pending = true;\n }\n currentNode.entity = connection.entity;\n currentNode.relation = connection.relation;\n removeFromEditingConnections({id, draft: draft.trees, relationUri: node.relation.uri});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_EDITING_CANCELED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n if (currentNode) {\n nodeEditingCleanUp(currentNode);\n removeFromEditingConnections({id, draft: draft.trees, relationUri: node.relation.uri});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_NEW_PARENT_EDITING_STARTED: {\n const {id, node, newNode} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n newNode.relatedEntity = currentNode.entity;\n newNode.relatedNodeId = currentNode.nodeId;\n newNode.editingMode = NODE_EDITING_MODES.addingParent;\n if (treeRoot === currentNode) {\n newNode.children = [treeRoot];\n draft.trees[id].root = newNode;\n } else {\n const parentNode = findParentNodeById(treeRoot, node.nodeId);\n const currentNodeIndex = parentNode.children.findIndex((node) => currentNode === node);\n insertChild(parentNode, newNode, currentNodeIndex);\n }\n newNode.initialConnection = createConnection(newNode);\n addToEditingConnections({id, draft: draft.trees, node: newNode});\n break;\n }\n\n case TreesActions.TREE_NODE_NEW_PARENT_EDITING_APPLIED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n const relatedNode = findNodeById(treeRoot, node.relatedNodeId);\n const connection = getEditingConnection({id, draft: draft.trees, relationUri: node.relation.uri});\n if (currentNode && connection) {\n addingParentCleanUp({id, draft: draft.trees, currentNode});\n relatedNode.parent = relatedNode.parent || [];\n relatedNode.parent.push(connection.entity.uri);\n relatedNode.relations = relatedNode.relations || [];\n relatedNode.relations.push(connection.relation);\n draft.trees[id].entitiesMap = addNodesToEntitiesMap(draft.trees[id].entitiesMap, [\n relatedNode,\n createNodeFromConnection(connection)\n ]);\n removeFromEditingConnections({id, draft: draft.trees, relationUri: currentNode.relation.uri});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_NEW_PARENT_EDITING_CANCELED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n if (currentNode) {\n addingParentCleanUp({id, draft: draft.trees, currentNode});\n removeFromEditingConnections({id, draft: draft.trees, relationUri: currentNode.relation.uri});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_NEW_CHILD_EDITING_STARTED: {\n const {id, node, newNode} = action.payload;\n const treeRoot = draft.trees[id].root;\n const currentNode = findNodeById(treeRoot, node.nodeId);\n newNode.relatedEntity = currentNode.entity;\n newNode.editingMode = NODE_EDITING_MODES.addingChild;\n newNode.parent = [currentNode.entity.uri];\n newNode.directParentUri = currentNode.entity.uri;\n currentNode.children = currentNode.children || [];\n currentNode.children.unshift(newNode);\n currentNode.expanded = true;\n newNode.initialConnection = createConnection(newNode);\n addToEditingConnections({id, draft: draft.trees, node: newNode});\n break;\n }\n\n case TreesActions.TREE_NODE_NEW_CHILD_EDITING_APPLIED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const parentNode = findParentNodeById(treeRoot, node.nodeId);\n const currentNode = findNodeById(parentNode, node.nodeId);\n const connection = getEditingConnection({id, draft: draft.trees, relationUri: node.relation.uri});\n if (parentNode && currentNode && connection) {\n nodeEditingCleanUp(currentNode);\n currentNode.entity = connection.entity;\n currentNode.relation = connection.relation;\n currentNode.relations = [connection.relation];\n removeFromEditingConnections({id, draft: draft.trees, relationUri: node.relation.uri});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_NEW_CHILD_EDITING_CANCELED: {\n const {id, node} = action.payload;\n const treeRoot = draft.trees[id].root;\n const parentNode = findParentNodeById(treeRoot, node.nodeId);\n if (parentNode) {\n removeChild(parentNode, node.nodeId);\n removeFromEditingConnections({id, draft: draft.trees, relationUri: node.relation.uri});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_RELATION_TYPE_CHANGED: {\n const {id, node, relationTypeUri} = action.payload;\n const connection = getEditingConnection({id, draft: draft.trees, relationUri: node.relation.uri});\n const currentRelationTypeUri = connection.relation.type;\n if (currentRelationTypeUri !== relationTypeUri) {\n if (currentRelationTypeUri) {\n setConnectionEntity({id, draft: draft.trees, node, entity: null});\n }\n setConnectionRelationType({id, draft: draft.trees, node, relationTypeUri});\n }\n break;\n }\n\n case TreesActions.TREE_NODE_ENTITY_CHANGED: {\n const {id, node, entity} = action.payload;\n setConnectionEntity({id, draft: draft.trees, node, entity});\n break;\n }\n\n case ProfileActions.ADD_ATTRIBUTES: {\n const attributes = action.payload;\n return attributes.reduce((state, attribute) => {\n const {attributeType, parentUri, index, viewId} = attribute;\n const relationUri = getBaseUri(parentUri);\n const relationLens = getRelationLens(viewId, relationUri, state.trees);\n if (relationLens && isRelationUri(relationUri)) {\n const relation = view(relationLens, state.trees);\n if (isActivenessAttrType(attributeType)) {\n const newRelation = addEntitySpecialAttribute({entity: relation, attributeType});\n return {...state, trees: set(relationLens, newRelation, state.trees)};\n } else {\n const newRelation = addAttribute({\n entity: relation,\n attributeType,\n parentUri,\n index\n });\n return {...state, trees: set(relationLens, newRelation, state.trees)};\n }\n } else {\n return state;\n }\n }, state);\n }\n\n case ProfileActions.MODIFY_ATTRIBUTE: {\n const {attributeType, viewId, uri, value} = action.payload;\n const relationUri = getBaseUri(uri);\n const relationLens = getRelationLens(viewId, relationUri, state.trees);\n if (relationLens && isRelationUri(relationUri)) {\n const relation = view(relationLens, state.trees);\n if (isActivenessAttrType(attributeType)) {\n const newRelation = editEntitySpecialAttribute({\n entity: relation,\n attributeType,\n value: value as number\n });\n return {...state, trees: set(relationLens, newRelation, state.trees)};\n } else {\n const newRelation = editAttribute({\n entity: relation,\n attributeType,\n uri,\n value: value as Partial<AttributeValue>\n });\n return {...state, trees: set(relationLens, newRelation, state.trees)};\n }\n } else {\n return state;\n }\n }\n\n case ProfileActions.REMOVE_ATTRIBUTE: {\n const {attributeType, uri, viewId} = action.payload;\n const relationUri = getBaseUri(uri);\n const relationLens = getRelationLens(viewId, relationUri, state.trees);\n if (relationLens && isRelationUri(relationUri)) {\n const relation = view(relationLens, state.trees);\n if (isActivenessAttrType(attributeType)) {\n const newRelation = removeEntitySpecialAttribute({entity: relation, attributeType});\n return {...state, trees: set(relationLens, newRelation, state.trees)};\n } else {\n const newRelation = removeAttribute({entity: relation, attributeType, uri});\n return {...state, trees: set(relationLens, newRelation, state.trees)};\n }\n } else {\n return state;\n }\n }\n\n case ProfileActions.ADD_DEFAULT_VALUES: {\n const {viewId, attributeType, parentUri, metadata, mode} = action.payload;\n const objectUri = getBaseUri(parentUri);\n const relationLens = getRelationLens(viewId, objectUri, state.trees);\n if (isRelationUri(objectUri) && relationLens) {\n if (attributeType) {\n const subAttributes = getAttributeTypeSubAttributes(metadata, attributeType);\n return {\n ...state,\n trees: over(\n relationLens,\n addDefaultValuesToComplexAttribute({\n attributeType,\n subAttributes,\n metadata,\n mode,\n parentUri\n }),\n state.trees\n )\n };\n } else {\n const attributesL = compose(relationLens, lensPath(['attributes']));\n const typeL = compose(relationLens, lensPath(['type']));\n const type = view(typeL, state.trees);\n const {attributes: attributeTypes = []} = getRelationType(metadata, type);\n return {\n ...state,\n trees: over(\n attributesL,\n addDefaultValuesToAttributes({metadata, mode, attributeTypes, parentUri}),\n state.trees\n )\n };\n }\n }\n return state;\n }\n\n case TreesActions.TREE_ENTITIES_MAPPING_LOADED: {\n const {id, entitiesSubMap} = action.payload;\n const entitiesMap = draft.trees[id].entitiesMap;\n draft.trees[id].entitiesMap = mergeEntitiesMap(entitiesMap, entitiesSubMap);\n break;\n }\n case TreesActions.TREE_LOADED: {\n const {tree, id, graphTypes, activenessDate, isReversed} = action.payload;\n const treeSettings = getTreeSettingsFields(draft.trees[id] || {});\n draft.trees[id] = {...treeSettings, ...tree, graphTypes, activenessDate, isReversed};\n delete draft.trees[id].errorMessage;\n draft.trees[id].loading = false;\n break;\n }\n case TreesActions.TREE_SORTED: {\n const {id, typesLabelsMap = {}, sortField, sortOrder} = action.payload;\n draft.trees[id] = draft.trees[id] || {};\n draft.trees[id].sortField = sortField;\n draft.trees[id].sortOrder = sortOrder;\n if (draft.trees[id].root) {\n draft.trees[id].root = mapTree(draft.trees[id].root, {\n childrenProcessing: sortTreeChildren({sortField, sortOrder, typesLabelsMap})\n });\n }\n break;\n }\n case TreesActions.TREE_SECONDARY_LABEL_SHOWN: {\n const {id, show} = action.payload;\n draft.trees[id].showSecondaryLabel = show;\n draft.trees[id].root = {...draft.trees[id].root};\n break;\n }\n\n case TreesActions.TREES_STATE_RESTORED: {\n const state = action.payload;\n Object.keys(state).forEach((id) => {\n draft.trees[id] = draft.trees[id] || {};\n draft.trees[id] = {...draft.trees[id], ...state[id]};\n if (draft.trees[id].root) {\n draft.trees[id].root = {...draft.trees[id].root};\n }\n });\n break;\n }\n\n case TreesActions.TREE_CHANGED: {\n const {id, tree} = action.payload;\n draft.trees[id].root = tree;\n break;\n }\n case TreesActions.TREE_REFRESHED: {\n const id = action.payload;\n draft.trees[id].root = {...draft.trees[id].root};\n break;\n }\n case TreesActions.TREE_NODE_EXPANDED: {\n const {id, nodeId} = action.payload;\n const treeRoot = draft.trees[id].root;\n const node = findNodeById(treeRoot, nodeId);\n node.expanded = true;\n break;\n }\n case TreesActions.TREE_CURRENT_ENTITY_SHOWN: {\n const {id, uri = path(['entity', 'uri'], state)} = action.payload;\n if (draft.trees[id]) {\n const currentNode = syncToCurrentEntity(draft.trees[id].root, uri);\n draft.trees[id].scrollTo = currentNode;\n }\n break;\n }\n case TreesActions.TREE_SCROLL_TO_NODE_RESET: {\n const id = action.payload;\n if (draft.trees[id]) {\n draft.trees[id].scrollTo = null;\n }\n break;\n }\n case TreesActions.TREE_ACTIVENESS_DATE_CHANGED: {\n const {id, activenessDate} = action.payload;\n draft.trees[id].activenessDate = activenessDate;\n break;\n }\n case TreesActions.TREE_RELATION_REPOINTED: {\n const {entity, relation, newParent, isReversed} = action.payload;\n const getUri = prop('uri');\n const entityUri = getUri(entity);\n const newEntityUri = getUri(newParent);\n const command = createRelationRepointCommand({entityUri, relation, newEntityUri, isReversed});\n draft.common.commands.push(command);\n break;\n }\n case TreesActions.TREE_RELATION_REMOVED: {\n const {relationUri} = action.payload;\n if (isTempUri(relationUri)) {\n draft.common.commands = reject(isRelationCommandForUri(relationUri), draft.common.commands);\n } else {\n const command = createRelationDeleteCommand({relationUri});\n draft.common.commands.push(command);\n }\n break;\n }\n\n case TreesActions.TREE_RELATION_CREATED: {\n const {entityUri, relation, parentEntityUri: parentUri} = action.payload;\n const command = createRelationCreateCommand({parentUri, relation, entityUri});\n draft.common.commands.push(command);\n break;\n }\n\n case TreesActions.TREE_RELATION_EDITED: {\n const {oldRelation, newRelation, entityUri, newEntityUri, isReversed} = action.payload;\n const command = newEntityUri\n ? createRelationRepointCommand({entityUri, newEntityUri, relation: newRelation, isReversed})\n : createRelationUpdateCommand({oldRelation, newRelation});\n draft.common.commands.push(command);\n break;\n }\n case TreesActions.TREE_COMMANDS_CLEARED: {\n draft.common.commands = [];\n break;\n }\n case TreesActions.TREE_CANCEL_CHILDREN_LOADING: {\n const {id, parentId} = action.payload;\n const treeRoot = draft.trees[id].root;\n const parentNode = findNodeById(treeRoot, parentId);\n if (parentNode) {\n parentNode.pending = true;\n delete parentNode.expanded;\n delete parentNode.children;\n }\n break;\n }\n }\n });\n\nexport default treesReducer;\n","import {\n AttributeType,\n collectAllDiffs,\n Command,\n getNotAppliedTreeCommands,\n isEmptyValue,\n isTempUri,\n Mode,\n RelationsState\n} from '@reltio/mdm-sdk';\nimport {all, keys, propSatisfies, reject, values} from 'ramda';\nimport {ProfileState} from '../types/profile';\nimport {selectors as entitySelectors} from './entity';\nimport {selectors as errorsSelectors} from './errors';\nimport {selectors as modeSelectors} from './mode';\nimport {selectors as modifiedEntitiesSelectors} from './modifiedEntities';\nimport {selectors as dependentLookupsSelectors} from './dependentLookups';\nimport {selectors as relationsSelectors} from './relations';\nimport {selectors as treesSelectors} from './trees';\nimport {selectors as historySelectors} from './history';\nimport {createSelector} from 'reselect';\n\nexport const getEntity = (state: ProfileState) => state.entity;\nexport const getModifiedEntities = (state: ProfileState) => state.modifiedEntities;\nexport const getErrors = (state: ProfileState) => state.errors;\nexport const getRelations = (state: ProfileState) => state.relations;\nexport const getTrees = (state: ProfileState) => state.trees;\nexport const getLookups = (state: ProfileState) => state.lookups;\nexport const getDependentLookups = (state: ProfileState) => state.dependentLookups;\nexport const getMode = (state: ProfileState) => state.mode;\nexport const getLastLoadedTime = (state: ProfileState) => state.lastLoadedTime;\nexport const getHistory = (state: ProfileState) => state.history;\nexport const getOperation = (state: ProfileState) => state.operation;\nexport const getViews = (state: ProfileState) => state.views;\nexport const getSidePanelViews = (state: ProfileState) => state.sidePanelViews;\n\nexport const getUri = (state: ProfileState) => entitySelectors.getUri(getEntity(state));\nexport const getUriWithDataTenant = (state: ProfileState) => entitySelectors.getUriWithDataTenant(getEntity(state));\n\nexport const getModifiedEntity = (state: ProfileState, uri: string) =>\n modifiedEntitiesSelectors.getModifiedEntity(getModifiedEntities(state), uri);\n\nexport const getModifiedEntityDefaultProfilePic = (state: ProfileState, uri: string) =>\n modifiedEntitiesSelectors.getModifiedEntityDefaultProfilePic(getModifiedEntities(state), uri);\n\nexport const getRelationsViewIds = (state: ProfileState): Array<Exclude<keyof RelationsState, number>> =>\n keys(getRelations(state));\nexport const getConnectionsWithDraftsByViewId = (state: ProfileState, id: string, parentEntityUri?: string) =>\n relationsSelectors.getConnectionsWithDrafts(getRelations(state), id, parentEntityUri);\nexport const getEditingOrAddingConnectionByViewIdAndRelationUri = (\n state: ProfileState,\n id: string,\n relationUri: string\n) => relationsSelectors.getEditingOrAddingConnectionByViewIdAndRelationUri(getRelations(state), id, relationUri);\nexport const getEditingOrAddingConnectionRelationObjectByViewIdAndRelationUri = (\n state: ProfileState,\n id: string,\n relationUri: string\n) =>\n relationsSelectors.getEditingOrAddingConnectionRelationObjectByViewIdAndRelationUri(\n getRelations(state),\n id,\n relationUri\n );\nexport const getTotalByViewId = (state: ProfileState, id: string, parentEntityUri?: string) =>\n relationsSelectors.getTotalWithDrafts(getRelations(state), id, parentEntityUri);\nexport const getConnectionsByViewId = (state: ProfileState, id: string) =>\n relationsSelectors.getConnectionsByViewId(getRelations(state), id);\nexport const getDraftsForSaveByViewId = (state: ProfileState, id: string) =>\n relationsSelectors.getDraftsForSaveByViewId(getRelations(state), id);\nexport const getConnectionsTemporaryUrisForCreation = (state: ProfileState) =>\n relationsSelectors.getTemporaryUrisForCreation(getRelations(state));\n\nexport const getIsEditableMode = (state: ProfileState): boolean => modeSelectors.getIsEditableMode(getMode(state));\nexport const getIsViewMode = (state: ProfileState): boolean => modeSelectors.getIsViewMode(getMode(state));\nexport const getIsSuggestMode = (state: ProfileState): boolean => modeSelectors.getIsSuggestMode(getMode(state));\nexport const getRelationToAddByViewId = (state: ProfileState, id: string) =>\n relationsSelectors.getRelationToAddByViewId(getRelations(state), id);\nexport const getRelationsToEditByViewId = (state: ProfileState, id: string) =>\n relationsSelectors.getRelationsToEditByViewId(getRelations(state), id);\nexport const getAllRelationsToAddAndEdit = (state: ProfileState, viewIds: string[]) =>\n relationsSelectors.getAllRelationsToAddAndEdit(getRelations(state), viewIds);\nexport const getAllRelationsToSave = (state: ProfileState, viewIds?: string[]) =>\n relationsSelectors.getAllRelationsToSave(getRelations(state), viewIds);\nexport const getAllRelationsByViewIds = (state: ProfileState, viewIds?: string[]) =>\n relationsSelectors.getAllRelationsByViewIds(getRelations(state), viewIds);\nexport const getInitialConnectionTempEntity = (state: ProfileState, viewId, relationUri) =>\n relationsSelectors.getInitialConnectionTempEntity(state.relations, viewId, relationUri);\nexport const getInitialConnection = (state: ProfileState, viewId, relationUri) =>\n relationsSelectors.getInitialConnection(state.relations, viewId, relationUri);\n\nexport const getViewIdsForOpenRelation = (state: ProfileState, relationUri: string) =>\n relationsSelectors.getViewIdsForOpenRelation(getRelations(state), relationUri);\n\nexport const getAttributeTypeErrors = (state: ProfileState, parentUri: string, attributeTypeUri: string) =>\n errorsSelectors.getAttributeTypeErrors(getErrors(state), parentUri, attributeTypeUri);\nexport const getAttributesErrors = (state: ProfileState, parentUri: string, attributeTypeUri: string) =>\n errorsSelectors.getAttributesErrors(getErrors(state), parentUri, attributeTypeUri);\nexport const getActiveErrorsForAttributesPager = (\n state: ProfileState,\n parentUri: string,\n attributeType: AttributeType\n) => errorsSelectors.getActiveErrorsForAttributesPager(getErrors(state), parentUri, attributeType);\nexport const getTree = (state: ProfileState, id: string) => treesSelectors.getTree(getTrees(state), id);\nexport const getTreeRoot = (state: ProfileState, id: string) => treesSelectors.getTreeRoot(getTrees(state), id);\nexport const getTreeTotal = (state: ProfileState, id: string) => treesSelectors.getTreeTotal(getTrees(state), id);\nexport const getTreeCommands = (state: ProfileState): Command[] => treesSelectors.getCommands(getTrees(state));\nexport const getTreeEditingConnection = (state: ProfileState, id: string, relationUri: string) =>\n treesSelectors.getTreeEditingConnection(getTrees(state), id, relationUri);\nexport const getAllTreesEditingConnections = (state: ProfileState, viewIds: string[]) =>\n treesSelectors.getAllTreesEditingConnections(getTrees(state), viewIds);\n\nexport const getDependentLookupsStructure = (state: ProfileState) =>\n dependentLookupsSelectors.getDependentLookupsStructure(getDependentLookups(state));\nexport const getDependentLookupsStructureNode = (state: ProfileState, attributeTypeUri: string) =>\n dependentLookupsSelectors.getDependentLookupsStructureNode(getDependentLookups(state), attributeTypeUri);\nexport const getDependentLookupsInitedTypeUris = (state: ProfileState) =>\n dependentLookupsSelectors.getDependentLookupsInitedTypeUris(getDependentLookups(state));\nexport const getDependentLookupEditorsState = (state: ProfileState) =>\n dependentLookupsSelectors.getDependentLookupEditorsState(getDependentLookups(state));\nexport const getDependentLookupEditorState = (state: ProfileState, valueUri: string) =>\n dependentLookupsSelectors.getDependentLookupEditorState(getDependentLookups(state), valueUri);\n\nexport const getHistoryDiff = (state: ProfileState) => historySelectors.getHistoryDiff(getHistory(state));\nexport const getHistoryEvent = (state: ProfileState) => historySelectors.getHistoryEvent(getHistory(state));\nexport const getHistorySlice = (state: ProfileState) => historySelectors.getHistorySlice(getHistory(state));\nexport const getIsHistoryModeEnabled = (state: ProfileState) =>\n historySelectors.getIsHistoryModeEnabled(getHistory(state));\nexport const getHistoryMode = (state: ProfileState) => historySelectors.getHistoryMode(getHistory(state));\n\nexport const getEntityHasChanges = createSelector(\n getEntity,\n (state: ProfileState) => getModifiedEntity(state, getUri(state)),\n (entity, modifiedEntity) => {\n if (entity && modifiedEntity) {\n return !isEmptyValue(collectAllDiffs(entity, modifiedEntity, true));\n }\n return false;\n }\n);\n\nexport const getTreeHasChanges = createSelector(getTrees, (trees) => {\n const treeCommands = treesSelectors.getCommands(trees);\n const notAppliedTreeCommands = getNotAppliedTreeCommands(reject(propSatisfies(isEmptyValue, 'root'), trees.trees));\n return !isEmptyValue(treeCommands) || !isEmptyValue(notAppliedTreeCommands);\n});\n\nexport const getRelationsHasChanges = createSelector(getRelations, (relations) => {\n const relationsViewIds = keys(relations);\n return relationsViewIds.reduce((hasChanges, viewId) => {\n return hasChanges || !all(isEmptyValue)(values(relationsSelectors.getDraftsForSaveByViewId(relations, viewId)));\n }, false);\n});\n\nexport const getProfileHasChanges = createSelector(\n getEntityHasChanges,\n getRelationsHasChanges,\n getTreeHasChanges,\n (entityHasChanges, relationsHasChanges, treeHasChanges) => entityHasChanges || relationsHasChanges || treeHasChanges\n);\n\nexport const getProfileCancelNeedConfirm = createSelector(\n getMode,\n getEntity,\n getProfileHasChanges,\n (mode, entity, profileHasChanges) => {\n if (mode === Mode.Viewing || !entity) return false;\n return isTempUri(entity.uri) || profileHasChanges;\n }\n);\n","import {Operation} from '@reltio/mdm-sdk';\nimport {profileUpdateOperation} from './actions';\n\nexport enum ProfileOperationActions {\n PROFILE_OPERATION_UPDATE = 'PROFILE_OPERATION_UPDATE'\n}\n\nexport type ProfileOperationState = Operation;\nexport type ProfileOperationActionsTypes = ReturnType<typeof profileUpdateOperation>;\n","import {createStandardAction} from '../../../utils';\nimport {ProfileOperationActions} from '../constants';\nimport {Operation} from '@reltio/mdm-sdk';\n\nexport const profileUpdateOperation = createStandardAction<ProfileOperationActions.PROFILE_OPERATION_UPDATE, Operation>(\n ProfileOperationActions.PROFILE_OPERATION_UPDATE\n);\n","import {\n AttributeError,\n AttributeType,\n Connection,\n EntitiesMap,\n Entity,\n ErrorType,\n findAttributeValuesByTypeUri,\n findConnectionRelationObjectByRelationUri,\n getBaseUri,\n getProfileViewsIdsByTypes,\n isEntityUri,\n isRequired,\n Metadata,\n ProfileViewConfig,\n ProfileViewTypes,\n Relation\n} from '@reltio/mdm-sdk';\n\ntype Props = {\n metadata: Metadata;\n modifiedEntities: EntitiesMap;\n connections?: Connection[];\n errors: AttributeError[];\n};\nexport const getMissedAttributesToAdd = ({\n metadata,\n modifiedEntities,\n connections = [],\n errors\n}: Props): {attributeType: AttributeType; parentUri: string}[] =>\n errors\n .filter(\n ({attributeType, type}: AttributeError) =>\n attributeType && !isRequired(attributeType) && type === ErrorType.missed\n )\n .filter(({attributeType, parentUri}: AttributeError) => {\n const baseUri = getBaseUri(parentUri);\n const source: Entity | Relation | undefined = isEntityUri(parentUri)\n ? modifiedEntities[baseUri]\n : findConnectionRelationObjectByRelationUri(connections, baseUri);\n const groups = source && findAttributeValuesByTypeUri(metadata, source, attributeType.uri, true);\n return groups?.some(({parent, attrValues}) => parent.uri === parentUri && attrValues.length === 0);\n })\n .map(({attributeType, parentUri}) => ({attributeType, parentUri}));\n\nexport const getRelationsViewsIds = (profileViews: ProfileViewConfig[]) =>\n getProfileViewsIdsByTypes(profileViews, [ProfileViewTypes.Relations, ProfileViewTypes.RelationsTable]);\n","import {all, call, put, SagaReturnType, select} from 'redux-saga/effects';\nimport {isNil, pipe, reject, uniqBy} from 'ramda';\nimport {\n AttributeError,\n collectDiffForValidation,\n Connection,\n convertValidationServiceErrors,\n EditingConnection,\n EntitiesMap,\n Entity,\n evaluateErrorPath,\n getEntityType,\n getErrorUniqKey,\n getProfileViewsIdsByTypes,\n getRelationUriFromConnection,\n isAvailableAttributeTypeForProfile,\n isCriticalError,\n isTempUri,\n Metadata,\n Mode,\n prepareConnectionsForValidation,\n prepareEntityForValidation,\n ProfileViewConfig,\n ProfileViewTypes,\n shouldUseValidationService,\n TEntityType,\n validateConnection,\n validateEntity,\n validateEntityChanges,\n validateEntityLocally,\n validateHierarchyConnection,\n validateRelations,\n ValidationServiceError,\n ValidationServiceOption\n} from '@reltio/mdm-sdk';\nimport mdmModule, {profile} from '../../../index';\nimport {addAttributes} from '../../actions';\nimport {getMissedAttributesToAdd, getRelationsViewsIds} from './helpers';\nimport {getAllRelationsToSave, getAllRelationsByViewIds} from '../../../selectors';\n\nexport function* getCommonDataForValidation() {\n const entity: Entity = yield select(mdmModule.selectors.getEntity);\n const mode = yield select(mdmModule.selectors.getMode);\n const entityUri: string = yield select(mdmModule.selectors.getEntityUri);\n const metadata: Metadata = yield select(mdmModule.selectors.getMetadata);\n const modifiedEntity: Entity = yield select(mdmModule.selectors.getModifiedEntity, entityUri);\n const modifiedEntities: EntitiesMap = yield select(mdmModule.selectors.getModifiedEntities);\n const profileViews: ProfileViewConfig[] = yield select(mdmModule.selectors.getProfileViews);\n return {\n entity,\n modifiedEntity: mode === Mode.Viewing ? entity : modifiedEntity,\n entityUri,\n metadata,\n modifiedEntities: mode === Mode.Viewing ? {[entityUri]: entity} : modifiedEntities,\n profileViews,\n mode\n };\n}\ntype CommonDataForValidation = SagaReturnType<typeof getCommonDataForValidation>;\n\nexport function* getCommonDataForRemoteValidation() {\n const commonData: CommonDataForValidation = yield call(getCommonDataForValidation);\n const validationServicePath: string = yield select(mdmModule.selectors.getValidationServicePath);\n const tenant = yield select(mdmModule.selectors.getTenant);\n const severity = yield select(mdmModule.selectors.getValidationServiceSeverityLevels);\n return {...commonData, validationServicePath, tenant, severity};\n}\ntype CommonDataForRemoteValidation = SagaReturnType<typeof getCommonDataForRemoteValidation>;\n\nexport function* localValidation() {\n const {entityUri, metadata, modifiedEntities, modifiedEntity, profileViews}: CommonDataForValidation = yield call(\n getCommonDataForValidation\n );\n const relationViewsIds = getRelationsViewsIds(profileViews);\n const treeViewsIds = getProfileViewsIdsByTypes(profileViews, [ProfileViewTypes.HierarchyTree]);\n const relationsConnections: Connection[] = yield select(\n mdmModule.selectors.getAllRelationsToAddAndEdit,\n relationViewsIds\n );\n const relationsState = yield select(mdmModule.selectors.getRelations);\n const treesConnections: EditingConnection[] = yield select(\n mdmModule.selectors.getAllTreesEditingConnections,\n treeViewsIds\n );\n\n const entityErrors: AttributeError[] = validateEntityLocally(\n metadata,\n modifiedEntities,\n modifiedEntity,\n isAvailableAttributeTypeForProfile(profileViews)\n );\n const relationsErrors: AttributeError[] = relationsConnections.flatMap((connection) =>\n validateConnection(metadata, modifiedEntities, connection)\n );\n const treesErrors: AttributeError[] = treesConnections.flatMap((connection) =>\n validateHierarchyConnection(metadata, connection)\n );\n\n return [...entityErrors, ...relationsErrors, ...treesErrors].map((error) => ({\n ...error,\n path: evaluateErrorPath(\n {\n entityUri,\n metadata,\n connections: relationsConnections,\n entitiesMap: modifiedEntities,\n relationsState,\n relationViewsIds\n },\n error.uri || error.parentUri\n )\n }));\n}\n\nexport function* remoteValidation() {\n const {entityUri, metadata, modifiedEntity, mode, validationServicePath}: CommonDataForRemoteValidation =\n yield call(getCommonDataForRemoteValidation);\n const shouldValidate = !!validationServicePath && shouldUseValidationService(metadata, modifiedEntity.type);\n if (shouldValidate) {\n const rawErrors: ValidationServiceError[] = yield call(\n isTempUri(entityUri) ? remoteEntityValidation : remoteEntityDiffValidation\n );\n const {modifiedEntities} = yield call(getCommonDataForValidation);\n const errors: AttributeError[] = pipe(convertValidationServiceErrors, uniqBy(getErrorUniqKey))(rawErrors, {\n entityUri,\n metadata,\n entitiesMap: modifiedEntities\n });\n if (mode !== Mode.Viewing) {\n const attributesToAdd = getMissedAttributesToAdd({metadata, modifiedEntities, errors});\n if (attributesToAdd.length) {\n yield put(addAttributes(attributesToAdd));\n }\n }\n return errors;\n }\n return [];\n}\n\nfunction catchValidationServiceError(e) {\n console.warn('Validation service error', e);\n return [];\n}\n\nexport function* remoteEntityValidation() {\n const {\n mode,\n modifiedEntity,\n modifiedEntities,\n validationServicePath,\n tenant,\n severity\n }: CommonDataForRemoteValidation = yield call(getCommonDataForRemoteValidation);\n const preparedEntity = prepareEntityForValidation(modifiedEntity, modifiedEntities);\n try {\n const errors: SagaReturnType<typeof validateEntity> = yield call(validateEntity, {\n validationServicePath,\n entity: preparedEntity,\n tenant,\n severity,\n options: reject(isNil, [\n ValidationServiceOption.preserveURIs,\n mode === Mode.Editing ? ValidationServiceOption.validateDataPermissions : null\n ])\n });\n return errors;\n } catch (e) {\n return catchValidationServiceError(e);\n }\n}\n\nexport function* remoteEntityDiffValidation() {\n const {\n entityUri,\n mode,\n entity,\n modifiedEntity,\n modifiedEntities,\n validationServicePath,\n metadata,\n tenant,\n severity\n }: CommonDataForRemoteValidation = yield call(getCommonDataForRemoteValidation);\n const shouldValidateReferenceEntityInReadMode = yield select(\n mdmModule.selectors.getValidateReferenceEntityInReadMode\n );\n const entityType: TEntityType = getEntityType(metadata, entity.type);\n const forceOvForUiUpdates = entityType?.forceOvForUiUpdates ?? true;\n const attributesDiff =\n mode === Mode.Viewing\n ? []\n : collectDiffForValidation(entity, modifiedEntity, modifiedEntities, forceOvForUiUpdates);\n try {\n const errors: SagaReturnType<typeof validateEntityChanges> = yield call(validateEntityChanges, {\n validationServicePath,\n uri: entityUri,\n diff: attributesDiff,\n tenant,\n severity,\n options: reject(isNil, [\n ValidationServiceOption.preserveURIs,\n ValidationServiceOption.updateAttributeUpdateDates,\n mode === Mode.Editing ? ValidationServiceOption.validateDataPermissions : null,\n mode === Mode.Viewing && shouldValidateReferenceEntityInReadMode\n ? ValidationServiceOption.validateReferenceEntityAttribute\n : null\n ])\n });\n return errors;\n } catch (e) {\n return catchValidationServiceError(e);\n }\n}\n\nexport function* remoteRelationsValidation() {\n const {\n entityUri,\n metadata,\n mode,\n modifiedEntity,\n modifiedEntities,\n validationServicePath,\n tenant,\n severity,\n profileViews\n }: CommonDataForRemoteValidation = yield call(getCommonDataForRemoteValidation);\n const shouldValidateRelations = yield select(mdmModule.selectors.getValidateRelations);\n if (validationServicePath && shouldValidateRelations) {\n const relationViewsIds = getRelationsViewsIds(profileViews);\n const allConnections: Connection[] = yield select(getAllRelationsByViewIds, relationViewsIds);\n const connectionsToSave: Connection[] = yield select(getAllRelationsToSave, relationViewsIds);\n const connectionsToValidate = connectionsToSave.filter((connection) =>\n shouldUseValidationService(metadata, connection.relation.relationType)\n );\n const connectionsToValidateUris = connectionsToValidate.map(getRelationUriFromConnection);\n const connections = allConnections.filter((connection) =>\n connectionsToValidateUris.includes(getRelationUriFromConnection(connection))\n );\n if (connectionsToValidate.length > 0) {\n let rawErrors: ValidationServiceError[] = [];\n const body = prepareConnectionsForValidation(\n connectionsToValidate,\n modifiedEntity,\n modifiedEntities,\n connections,\n metadata\n );\n try {\n const response: SagaReturnType<typeof validateRelations> = yield call(validateRelations, {\n validationServicePath,\n body,\n tenant,\n severity,\n options: reject(isNil, [\n ValidationServiceOption.preserveURIs,\n mode === Mode.Editing ? ValidationServiceOption.validateDataPermissions : null\n ])\n });\n rawErrors = Object.values(response.validated).flat();\n } catch (e) {\n return catchValidationServiceError(e);\n }\n const actualModifiedEntities: EntitiesMap = yield select(mdmModule.selectors.getModifiedEntities);\n const relationsState = yield select(mdmModule.selectors.getRelations);\n const errors: AttributeError[] = pipe(convertValidationServiceErrors, uniqBy(getErrorUniqKey))(rawErrors, {\n entityUri,\n metadata,\n entitiesMap: actualModifiedEntities,\n connections: connectionsToValidate,\n relationsState,\n relationViewsIds\n });\n const attributesToAdd = getMissedAttributesToAdd({\n metadata,\n modifiedEntities: actualModifiedEntities,\n connections: connectionsToValidate,\n errors\n });\n if (attributesToAdd.length) {\n yield put(addAttributes(attributesToAdd));\n }\n return errors;\n }\n }\n return [];\n}\n\nexport function* validateProfile() {\n const localErrors: SagaReturnType<typeof localValidation> = yield call(localValidation);\n const [remoteProfileErrors, remoteRelationsErrors]: [AttributeError[], AttributeError[]] = yield all([\n call(remoteValidation),\n call(remoteRelationsValidation)\n ]);\n const allErrors: AttributeError[] = uniqBy(getErrorUniqKey, [\n ...localErrors,\n ...remoteProfileErrors,\n ...remoteRelationsErrors\n ]);\n yield put(profile.errors.actions.errorsSet(allErrors));\n return allErrors.filter(isCriticalError).length === 0;\n}\n","import {ProfileViewConfig} from '@reltio/mdm-sdk';\nimport {profileViewsSet} from './actions';\n\nexport enum ProfileViewsActions {\n PROFILE_VIEWS_SET = 'PROFILE_VIEWS_SET'\n}\n\nexport type ProfileViewsState = ProfileViewConfig[];\nexport type ProfileViewsActionsTypes = ReturnType<typeof profileViewsSet>;\n","import {all, call, delay, fork, put, select, take, takeEvery, takeLatest, takeLeading} from 'redux-saga/effects';\nimport {\n always,\n assoc,\n complement,\n concat,\n equals,\n evolve,\n flatten,\n has,\n isNil,\n map,\n pick,\n pipe,\n partition,\n pluck,\n prop,\n propEq,\n uniq,\n unless,\n values,\n when\n} from 'ramda';\nimport i18n from 'ui-i18n';\nimport mdmModule, {profile} from '../../index';\nimport {addAttributes, addDefaultValuesAction, profileSaved} from '../actions';\nimport {ProfileActions} from '../actions/constants';\nimport {nanoid} from 'nanoid';\nimport {OpenRelationEditorReturnType, RelationsActions, SetRelationTypeReturnType} from '../relations/constants';\nimport {\n addToEntityRequiredAttributes,\n AttributeType,\n checkMetadataForCreate,\n checkMetadataForDelete,\n cloneEntity,\n collectAllDiffs,\n Command,\n createCommandExecutor,\n createRelationsCommandsFromConnections,\n createTemporaryEntity,\n deleteChangeRequestItem,\n EntitiesMap,\n entityCumulativeUpdate,\n findAllTemporaryRefEntityURI,\n getDataChangeRequest,\n getEntityType,\n getNotAppliedTreeCommands,\n getRequestErrorMessage,\n isAvailableAttributeTypeForProfile,\n isChangeRequestUri,\n isComplexAttribute,\n isEmptyEntity,\n isTempUri,\n mapTree,\n Metadata,\n Mode,\n Operation,\n optimizeCommands,\n prepareAttrDiff,\n ProfileViewConfig,\n Relation,\n RelationUriProcessor,\n removeEntity,\n replaceTempUriInCommands,\n runTaskAction,\n saveTemporaryEntities,\n saveTemporaryEntity,\n startProcessInstance,\n TEntityType,\n TreesState,\n updateTreesWithNewEntity\n} from '@reltio/mdm-sdk';\nimport {\n treeChanged,\n treeCommandsCleared,\n treeNodeRelationTypeChanged,\n treesResetInitialTrees,\n treesRestoreFromInitialTrees\n} from '../trees/actions';\nimport {modeEditingCanceled, modeUpdated} from '../mode/actions';\nimport {\n getConnectionsByViewId,\n getConnectionsTemporaryUrisForCreation,\n getDraftsForSaveByViewId,\n getEntity,\n getEntityUri,\n getIsSuggestMode,\n getMetadata,\n getModifiedEntities,\n getModifiedEntity,\n getProfileCancelNeedConfirm,\n getRelationsViewIds,\n getTenant,\n getTreeCommands,\n getTrees,\n getWorkflowEnvironmentUrl,\n getWorkflowPath\n} from '../../selectors';\nimport {\n clearEntity,\n entityCloneRequested,\n entityCreationRequested,\n entityLoaded,\n entityRemoveRequested,\n entityCreationWithAuthoringRequested,\n authoringDraftEntitiesLoaded\n} from '../entity/actions';\nimport {profileUpdateOperation} from '../operation/actions';\nimport {entityCreated} from '../modifiedEntities/actions';\nimport {ModeActions} from '../mode/constants';\nimport {TreesActions} from '../trees/constants';\nimport {EntityActions} from '../entity/constants';\nimport {\n closeNotification,\n entityDeletionFinished,\n errorSet,\n navigateTo,\n newEntityShown,\n openEntity,\n openNewEntityWithAuthoring,\n openPerspective,\n showNotification\n} from '../../ui/actions';\n\nimport {validateProfile} from '../errors/sagas';\nimport {getMissedAttributesToAdd} from '../errors/sagas/helpers';\nimport {ProfileViewsActions} from '../views/constants';\n\ntype AddDefaultValues =\n | OpenRelationEditorReturnType\n | ReturnType<typeof addAttributes>\n | SetRelationTypeReturnType\n | ReturnType<typeof treeNodeRelationTypeChanged>;\n\nfunction* addDefaultValues(action: AddDefaultValues) {\n const metadata = yield select(mdmModule.selectors.getMetadata);\n const mode = yield select(mdmModule.selectors.getMode);\n switch (action.type) {\n case RelationsActions.OPEN_RELATION_EDITOR: {\n const {id, connection} = action.payload;\n if (connection.relation.relationType) {\n yield put(\n addDefaultValuesAction({\n viewId: id,\n metadata,\n mode,\n parentUri: connection.relation.object.uri\n })\n );\n }\n break;\n }\n\n case ProfileActions.ADD_ATTRIBUTES: {\n const attributes = action.payload;\n for (const {attributeType, parentUri, viewId} of attributes) {\n if (isComplexAttribute(attributeType)) {\n yield put(\n addDefaultValuesAction({\n viewId,\n attributeType,\n parentUri,\n metadata,\n mode\n })\n );\n }\n }\n break;\n }\n\n case RelationsActions.SET_RELATION_TYPE: {\n const {id, relationUri} = action.payload;\n yield put(\n addDefaultValuesAction({\n viewId: id,\n metadata,\n mode,\n parentUri: relationUri\n })\n );\n break;\n }\n\n case TreesActions.TREE_NODE_RELATION_TYPE_CHANGED: {\n const {id, node} = action.payload;\n yield put(\n addDefaultValuesAction({\n viewId: id,\n metadata,\n mode,\n parentUri: node?.relation?.uri\n })\n );\n break;\n }\n }\n}\n\nfunction* saveTrees(commandExecutor, tempUrisMap = null) {\n const trees = yield select(getTrees);\n const notAppliedTreeCommands = getNotAppliedTreeCommands(trees?.trees);\n const treeCommands: Command[] = yield select(getTreeCommands);\n const allCommands = optimizeCommands([...treeCommands, ...notAppliedTreeCommands]);\n if (allCommands?.length) {\n const preparedCommands = when(always(tempUrisMap), replaceTempUriInCommands(tempUrisMap))(allCommands);\n yield call(commandExecutor, preparedCommands);\n yield put(treeCommandsCleared());\n }\n}\nfunction* getModifiedEntityDiff(tempUrisMap) {\n const entity = yield select(getEntity);\n const entityUri = yield select(getEntityUri);\n const modifiedEntity = yield select(getModifiedEntity, entityUri);\n const metadata = yield select(getMetadata);\n const entityType: TEntityType = getEntityType(metadata, entity.type);\n const forceOvForUiUpdates = entityType?.forceOvForUiUpdates ?? true;\n const allDiff = collectAllDiffs(entity, modifiedEntity, forceOvForUiUpdates);\n return prepareAttrDiff(tempUrisMap, allDiff);\n}\nfunction* saveTemporaryModifiedEntities(dcrProcessor?) {\n const connectionsUriForCreation = yield select(getConnectionsTemporaryUrisForCreation);\n const modifiedEntities = yield select(getModifiedEntities);\n const entityUri = yield select(getEntityUri);\n const modifiedEntity = yield select(getModifiedEntity, entityUri);\n const entityUrisForCreation = findAllTemporaryRefEntityURI(modifiedEntity);\n const urisForCreation = concat(entityUrisForCreation, connectionsUriForCreation);\n return yield call(saveTemporaryEntities, modifiedEntities, urisForCreation, dcrProcessor);\n}\nfunction* startDataChangeRequestReview(dcrProcessor, entityUri?) {\n const objectURIs = dcrProcessor.getDCRObjectUris();\n const workflowPath = yield select(getWorkflowPath);\n const environment = yield select(getWorkflowEnvironmentUrl);\n const tenant = yield select(getTenant);\n if (objectURIs?.length) {\n const workflowResult = yield call(startProcessInstance, {\n workflowPath,\n processType: 'dataChangeRequestReview',\n objectURIs: uniq([entityUri, ...objectURIs, dcrProcessor.getDCRUri()]).filter(complement(isNil)),\n tenant,\n environment\n });\n if (workflowResult?.status !== 'OK') {\n console.warn(workflowResult);\n }\n }\n}\nfunction* saveRelationsByViewId(commandExecutor, entityUri, viewId, tempUrisMap) {\n const connections = yield select(getConnectionsByViewId, viewId);\n const draftsForSave = yield select(getDraftsForSaveByViewId, viewId);\n const commands = createRelationsCommandsFromConnections(connections, draftsForSave, tempUrisMap, entityUri);\n if (commands.length) {\n yield call(commandExecutor, commands);\n }\n}\nfunction* saveRelations(commandExecutor, tempUrisMap, entityUri?) {\n const viewIds = yield select(getRelationsViewIds);\n const loadedEntityUri = yield select(getEntityUri);\n for (const viewId of viewIds) {\n yield fork(saveRelationsByViewId, commandExecutor, entityUri || loadedEntityUri, viewId, tempUrisMap);\n }\n}\n\nfunction* updateRelationUriInTrees(relationUriProcessor: RelationUriProcessor) {\n if (!relationUriProcessor.hasNewUri()) {\n return;\n }\n\n const treesState: TreesState = yield select(getTrees);\n for (const [treeId, tree] of Object.entries(treesState.trees)) {\n if (tree.root) {\n const processRelation = (relation?: Relation) =>\n when(prop('uri'), assoc('uri', relationUriProcessor.getUri(relation?.uri)))(relation);\n const newRoot = mapTree(tree.root, {\n nodeProcessing: (node) =>\n pipe(\n (node) => ({...node}),\n unless(\n has('editingMode'),\n evolve({\n relation: processRelation,\n relations: map(processRelation)\n })\n )\n )(node)\n });\n\n if (!equals(tree.root, newRoot)) {\n yield put(treeChanged({id: treeId, tree: newRoot}));\n }\n }\n }\n}\n\nfunction* updateProfile() {\n try {\n const isAlwaysCreateDCR = yield select(getIsSuggestMode);\n const {commandExecutor, dcrProcessor, relationUriProcessor} = createCommandExecutor({\n alwaysCreateDCR: isAlwaysCreateDCR,\n dcrUri: null\n });\n const savedEntitiesUrisMap: Record<string, string> = yield call(saveTemporaryModifiedEntities, dcrProcessor);\n yield all([call(saveTrees, commandExecutor), call(saveRelations, commandExecutor, savedEntitiesUrisMap)]);\n yield call(updateRelationUriInTrees, relationUriProcessor);\n const entityDiff = yield call(getModifiedEntityDiff, savedEntitiesUrisMap);\n const entityUri = yield select(getEntityUri);\n let updateResult;\n if (entityDiff?.length) {\n updateResult = yield call(entityCumulativeUpdate, {\n uri: entityUri,\n diff: entityDiff,\n uriPreprocessor: dcrProcessor.enhanceUriWithDCR\n });\n }\n if (isAlwaysCreateDCR || isChangeRequestUri(updateResult?.uri)) {\n updateResult && dcrProcessor.updateDCRUriFromResponse(updateResult);\n yield call(startDataChangeRequestReview, dcrProcessor, entityUri);\n yield put(treesRestoreFromInitialTrees());\n window.alert(i18n.text('Your changes are saved as pending and have been sent for review'));\n } else if (updateResult) {\n yield put(entityLoaded(updateResult));\n const {trees} = yield select(mdmModule.selectors.getTrees);\n const updatedTrees = updateTreesWithNewEntity(\n pick(['uri', 'label', 'secondaryLabel', 'type'], updateResult),\n trees\n );\n for (const tree of updatedTrees) {\n yield put(profile.trees.actions.treeChanged({id: tree.id, tree: tree.root}));\n }\n }\n yield put(modeUpdated(Mode.Viewing));\n yield put(profileSaved());\n } catch (error) {\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n}\n\nfunction* handleNewEntityLoaded() {\n yield take(EntityActions.ENTITY_LOADED);\n yield put(profileSaved());\n}\n\nfunction* saveChanges(dcrUri, isSuggestMode) {\n const entityUri = yield select(getEntityUri);\n const modifiedEntity = yield select(mdmModule.selectors.getModifiedEntity, entityUri);\n const {commandExecutor, dcrProcessor} = createCommandExecutor({\n alwaysCreateDCR: isSuggestMode,\n dcrUri\n });\n const savedEntitiesUrisMap: Record<string, string> = yield call(saveTemporaryModifiedEntities, dcrProcessor);\n const savedEntityUri = yield call(saveTemporaryEntity, modifiedEntity, savedEntitiesUrisMap, dcrProcessor);\n yield all([\n call(saveTrees, commandExecutor, {[entityUri]: savedEntityUri}),\n call(saveRelations, commandExecutor, savedEntitiesUrisMap, savedEntityUri)\n ]); // entityUri as argument\n return {savedEntityUri, dcrProcessor};\n}\n\nfunction* checkIfEntityCanBeSaved() {\n const entityUri = yield select(getEntityUri);\n const modifiedEntity = yield select(mdmModule.selectors.getModifiedEntity, entityUri);\n if (isEmptyEntity(modifiedEntity)) {\n const notificationId = nanoid();\n yield put(\n showNotification({\n id: notificationId,\n text: i18n.text('Please fill out some fields.'),\n actions: []\n })\n );\n return false;\n }\n return true;\n}\nfunction* saveNewProfile() {\n try {\n const isSuggestMode = yield select(getIsSuggestMode);\n const canBeSaved = yield call(checkIfEntityCanBeSaved);\n if (!canBeSaved) {\n return;\n }\n const {dcrProcessor, savedEntityUri} = yield call(saveChanges, null, isSuggestMode);\n if (isSuggestMode) {\n yield call(startDataChangeRequestReview, dcrProcessor);\n window.alert(i18n.text('Your changes are saved as pending and have been sent for review'));\n }\n yield put(modeUpdated(Mode.Viewing));\n if (isSuggestMode) {\n yield put(openPerspective({perspectiveId: null, viewId: null})); // open default perspective\n yield put(clearEntity());\n } else {\n yield put(openEntity({uri: savedEntityUri, viewId: null}));\n yield fork(handleNewEntityLoaded);\n }\n } catch (error) {\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n}\n\nfunction* cleanUpDcr(dcrUri: string) {\n const dcrResponse = yield call(getDataChangeRequest, dcrUri);\n const changeIds: string[] = pipe(prop('changes'), values, flatten, pluck('id'))(dcrResponse);\n try {\n yield all(\n changeIds.map((id) =>\n call(deleteChangeRequestItem, {\n dcrUri,\n changeItemId: id\n })\n )\n );\n } catch (error) {\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n}\n\nfunction* saveExistingDraft(dcrUri: string, taskId: string) {\n yield call(cleanUpDcr, dcrUri);\n const {savedEntityUri} = yield call(saveChanges, dcrUri, true);\n const workflowPath = yield select(getWorkflowPath);\n const environment = yield select(getWorkflowEnvironmentUrl);\n const tenant = yield select(getTenant);\n yield call(runTaskAction, {\n workflowPath,\n environment,\n tenant,\n taskId,\n action: 'Approve'\n });\n yield put(modeUpdated(Mode.Viewing));\n yield put(openEntity({uri: savedEntityUri, viewId: null}));\n yield fork(handleNewEntityLoaded);\n}\n\nfunction* saveDraft(action) {\n const {dcrUri, userAction, taskId} = action.payload;\n try {\n const canBeSaved = yield call(checkIfEntityCanBeSaved);\n if (!canBeSaved) {\n return;\n }\n yield put(modeUpdated(userAction === 'saveDraft' ? Mode.Suggesting : Mode.Editing, true));\n yield put(profileUpdateOperation(Operation.Saving));\n const isValid = yield call(validateProfile);\n if (userAction === 'saveDraft') {\n if (dcrUri) {\n yield call(cleanUpDcr, dcrUri);\n yield call(saveChanges, dcrUri, true);\n } else {\n const {dcrProcessor} = yield call(saveChanges, null, true);\n yield call(startDataChangeRequestReview, dcrProcessor);\n const changeRequest = dcrProcessor.getDCRUri();\n yield put(\n navigateTo({\n url: '../authoring',\n searchParams: {entityUri: `${changeRequest}`},\n options: {replace: true}\n })\n );\n }\n window.alert(i18n.text('Your changes are saved as pending and have been sent for review'));\n } else if (isValid) {\n if (dcrUri) {\n yield call(saveExistingDraft, dcrUri, taskId);\n } else {\n const {savedEntityUri} = yield call(saveChanges, null, false);\n yield put(modeUpdated(Mode.Viewing));\n yield put(openEntity({uri: savedEntityUri, viewId: null}));\n yield fork(handleNewEntityLoaded);\n }\n } else if (!isValid) {\n yield put(modeUpdated(Mode.Suggesting, true));\n }\n } catch (error) {\n yield put(modeUpdated(Mode.Suggesting, true));\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n yield put(profileUpdateOperation(null));\n}\n\nfunction* saveProfile() {\n yield put(profileUpdateOperation(Operation.Saving));\n if (yield call(validateProfile)) {\n const entityUri = yield select(getEntityUri);\n if (isTempUri(entityUri)) {\n yield call(saveNewProfile);\n } else {\n yield call(updateProfile);\n }\n }\n yield put(profileUpdateOperation(null));\n}\n\nfunction* handleModeUpdating(action) {\n const {mode, silent} = action.payload;\n if (mode !== Mode.Viewing && !silent) {\n const entity = yield select(mdmModule.selectors.getEntity);\n const modifiedEntity = yield select(mdmModule.selectors.getModifiedEntity, entity?.uri);\n const metadata = yield select(mdmModule.selectors.getMetadata);\n if (entity && !modifiedEntity && metadata) {\n const profileViews: ProfileViewConfig[] = yield select(mdmModule.selectors.getProfileViews);\n const preparedEntity = addToEntityRequiredAttributes({\n entity,\n metadata,\n mode,\n attrTypeFilter: isAvailableAttributeTypeForProfile(profileViews || [])\n });\n yield put(entityCreated(preparedEntity));\n const modifiedEntities: EntitiesMap = yield select(mdmModule.selectors.getModifiedEntities);\n const errors = yield select(mdmModule.selectors.getProfileErrors);\n const attributesToAdd = getMissedAttributesToAdd({metadata, modifiedEntities, errors});\n if (attributesToAdd.length) {\n yield put(addAttributes(attributesToAdd));\n }\n }\n }\n}\n\nfunction* createProfile(action: ReturnType<typeof entityCreationRequested>) {\n const {entityTypeUri} = action.payload;\n const metadata: Metadata = yield select(mdmModule.selectors.getMetadata);\n const entityType = getEntityType(metadata, entityTypeUri);\n const attributes: AttributeType[] = prop('attributes', entityType);\n const mode = checkMetadataForCreate(Mode.Editing, entityType) ? Mode.Editing : Mode.Suggesting;\n const tempEntity = createTemporaryEntity({entityTypeUri, attributeTypes: attributes, metadata, mode});\n yield put(newEntityShown({entity: tempEntity}));\n yield put(entityLoaded(tempEntity));\n // In situations when we create one profile, and then without saving create another one,\n // we need to update mode to \"Viewing\" for DL/trees/errors profile store slices resetting to init state.\n yield put(modeUpdated(Mode.Viewing));\n // we need this pause to make sure that all views/editors from previous entity were unmounted\n // case: SingleAttributeView, useLookupResolver from required attribute can fire unexpected onChange event\n yield delay(0);\n const profileViews: ProfileViewConfig[] = yield select(mdmModule.selectors.getProfileViews);\n if (!profileViews) {\n // awaiting updated profile views\n yield take(ProfileViewsActions.PROFILE_VIEWS_SET);\n }\n yield put(modeUpdated(mode));\n yield put(treesResetInitialTrees());\n}\n\nfunction* createProfileWithAuthoring(action: ReturnType<typeof entityCreationWithAuthoringRequested>) {\n const {entityTypeUri} = action.payload;\n const metadata: Metadata = yield select(mdmModule.selectors.getMetadata);\n const entityType = getEntityType(metadata, entityTypeUri);\n const attributes: AttributeType[] = prop('attributes', entityType);\n const mode = Mode.Suggesting;\n const tempEntity = createTemporaryEntity({entityTypeUri, attributeTypes: attributes, metadata, mode});\n yield put(openNewEntityWithAuthoring({entity: tempEntity}));\n yield put(entityLoaded(tempEntity));\n yield put(modeUpdated(mode));\n}\n\nfunction* createEntitiesFromAuthoringDraft(action: ReturnType<typeof authoringDraftEntitiesLoaded>) {\n const {mainEntityUri, tempEntities} = action.payload;\n const [[mainEntity], restEntities] = partition(propEq('uri', mainEntityUri), tempEntities);\n for (const tempEntity of restEntities) {\n yield put(entityCreated(tempEntity));\n }\n yield put(entityLoaded(mainEntity));\n yield put(modeUpdated(Mode.Suggesting));\n}\n\nfunction* cloneProfile(action: ReturnType<typeof entityCloneRequested>) {\n const {\n payload: {entityUri, data}\n } = action;\n yield put(profileUpdateOperation(Operation.Cloning));\n try {\n const newEntity = yield call(cloneEntity, entityUri, data);\n yield put(newEntityShown({entity: newEntity}));\n yield put(entityLoaded(newEntity));\n yield put(modeUpdated(Mode.Editing));\n yield put(treesResetInitialTrees());\n const notificationId = nanoid();\n const metadata = yield select(mdmModule.selectors.getMetadata);\n const entityType = getEntityType(metadata, newEntity.type);\n const canRemove = checkMetadataForDelete(Mode.Editing, entityType);\n yield put(\n showNotification({\n id: notificationId,\n type: 'cloneAction',\n autoHideDuration: 10000,\n text: i18n.text('Profile is cloned successfully. You can modify the attributes if required.'),\n actions: canRemove\n ? [\n {\n label: i18n.text('Undo'),\n needConfirmation: true,\n confirmationText: i18n.text('Are you sure you want to undo the cloning process?'),\n confirmationDescription: i18n.text(\n 'Undoing the cloning process will delete the cloned profile. Are you sure you want to proceed?'\n ),\n applyAction: entityRemoveRequested({entityUri: newEntity.uri}),\n cancelAction: closeNotification(notificationId)\n }\n ]\n : []\n })\n );\n } catch (error) {\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n yield put(profileUpdateOperation(null));\n}\n\nfunction* removeProfile(action: ReturnType<typeof entityRemoveRequested>) {\n const {entityUri} = action.payload;\n if (!isTempUri(entityUri)) {\n try {\n yield call(removeEntity, entityUri);\n yield put(entityDeletionFinished());\n } catch (error) {\n yield put(errorSet(getRequestErrorMessage(error, i18n.text('Something went wrong'))));\n }\n }\n}\n\nfunction* cancelProfileEditing() {\n const needConfirmation = yield select(getProfileCancelNeedConfirm);\n if (needConfirmation && !confirm(i18n.text('Are you sure you want to cancel changes for this Profile?'))) {\n return;\n }\n yield put(modeEditingCanceled());\n}\n\nexport function* saveProfileSaga() {\n yield takeLeading([ProfileActions.SAVE_PROFILE], saveProfile);\n}\n\nexport function* saveDraftSaga() {\n yield takeLeading([ProfileActions.SAVE_DRAFT], saveDraft);\n}\nexport function* addDefaultValuesSaga() {\n yield takeEvery(\n [\n RelationsActions.OPEN_RELATION_EDITOR,\n ProfileActions.ADD_ATTRIBUTES,\n RelationsActions.SET_RELATION_TYPE,\n TreesActions.TREE_NODE_RELATION_TYPE_CHANGED\n ],\n addDefaultValues\n );\n}\nexport function* handleModeUpdatingSaga() {\n yield takeEvery([ModeActions.MODE_UPDATED], handleModeUpdating);\n}\n\nexport function* crateProfileSaga() {\n yield takeEvery([EntityActions.ENTITY_CREATION_REQUESTED], createProfile);\n}\n\nexport function* createProfileWithAuthoringSaga() {\n yield takeEvery([EntityActions.ENTITY_CREATION_WITH_AUTHORING_REQUESTED], createProfileWithAuthoring);\n}\n\nexport function* createEntitiesFromAuthoringDraftSaga() {\n yield takeEvery([EntityActions.ENTITY_AUTHORING_DRAFT_ENTITIES_LOADED], createEntitiesFromAuthoringDraft);\n}\n\nexport function* removeProfileSaga() {\n yield takeEvery([EntityActions.ENTITY_REMOVE_REQUESTED], removeProfile);\n}\n\nexport function* cloneProfileSaga() {\n yield takeEvery([EntityActions.CLONE_ENTITY], cloneProfile);\n}\n\nexport function* handleValidateProfileSaga() {\n yield takeLatest([ProfileActions.VALIDATE_PROFILE], validateProfile);\n}\n\nexport function* cancelProfileEditingSaga() {\n yield takeLeading([ModeActions.MODE_CANCEL_EDITING], cancelProfileEditing);\n}\nconst sagas = [\n cancelProfileEditingSaga,\n addDefaultValuesSaga,\n saveProfileSaga,\n handleModeUpdatingSaga,\n crateProfileSaga,\n handleValidateProfileSaga,\n removeProfileSaga,\n cloneProfileSaga,\n createProfileWithAuthoringSaga,\n createEntitiesFromAuthoringDraftSaga,\n saveDraftSaga\n];\n\nexport default sagas;\n","import {ProfileOperationActions, ProfileOperationActionsTypes, ProfileOperationState} from '../constants';\n\nconst initState = null as ProfileOperationState;\nconst operationReducer = (state = initState, action: ProfileOperationActionsTypes): ProfileOperationState => {\n switch (action.type) {\n case ProfileOperationActions.PROFILE_OPERATION_UPDATE:\n return action.payload;\n default:\n return state;\n }\n};\n\nexport default operationReducer;\n","import {ProfileViewConfig} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {ProfileViewsActions} from '../constants';\n\nexport const profileViewsSet = createStandardAction<ProfileViewsActions.PROFILE_VIEWS_SET, ProfileViewConfig[]>(\n ProfileViewsActions.PROFILE_VIEWS_SET\n);\n","import {ProfileViewsActions, ProfileViewsActionsTypes, ProfileViewsState} from '../constants';\n\nconst initState = null as ProfileViewsState;\nconst profileViewsReducer = (state = initState, action: ProfileViewsActionsTypes): ProfileViewsState => {\n switch (action.type) {\n case ProfileViewsActions.PROFILE_VIEWS_SET:\n return action.payload;\n default:\n return state;\n }\n};\n\nexport default profileViewsReducer;\n","import {sidePanelViewsLoaded} from './actions';\n\nexport enum SidePanelViewsActions {\n SIDE_PANEL_VIEWS_LOADED = 'SIDE_PANEL_VIEWS_LOADED'\n}\nexport type SidePanelViewsActionsTypes = ReturnType<typeof sidePanelViewsLoaded>;\n","import {SidePanelViewConfig} from '@reltio/mdm-sdk';\nimport {createStandardAction} from '../../../utils';\nimport {SidePanelViewsActions} from '../constants';\n\nexport const sidePanelViewsLoaded = createStandardAction<\n SidePanelViewsActions.SIDE_PANEL_VIEWS_LOADED,\n SidePanelViewConfig[]\n>(SidePanelViewsActions.SIDE_PANEL_VIEWS_LOADED);\n","import {SidePanelViewsActions, SidePanelViewsActionsTypes} from '../constants';\n\nconst initState = [];\n\nconst sidePanelViewsReducer = (state: string[] = initState, action: SidePanelViewsActionsTypes) => {\n switch (action.type) {\n case SidePanelViewsActions.SIDE_PANEL_VIEWS_LOADED:\n return action.payload;\n default:\n return state;\n }\n};\n\nexport default sidePanelViewsReducer;\n","import * as actions from './actions';\nimport * as dependentLookups from './dependentLookups';\nimport * as entity from './entity';\nimport * as errors from './errors';\nimport * as history from './history';\nimport * as lastLoadedTime from './lastLoadedTime';\nimport * as lookups from './lookups';\nimport * as mode from './mode';\nimport * as modifiedEntities from './modifiedEntities';\nimport * as relations from './relations';\nimport * as selectors from './selectors';\nimport * as constants from './actions/constants';\nimport sagas from './sagas';\nimport * as trees from './trees';\nimport * as operation from './operation';\nimport * as views from './views';\nimport * as sidePanelViews from './sidePanelViews';\n\nimport {combineReducers} from 'redux';\n\nconst reducer = combineReducers({\n dependentLookups: dependentLookups.reducer,\n entity: entity.reducer,\n errors: errors.reducer,\n history: history.reducer,\n lastLoadedTime: lastLoadedTime.reducer,\n lookups: lookups.reducer,\n mode: mode.reducer,\n modifiedEntities: modifiedEntities.reducer,\n relations: relations.reducer,\n trees: trees.reducer,\n operation: operation.reducer,\n views: views.reducer,\n sidePanelViews: sidePanelViews.reducer\n});\n\nexport {\n actions,\n constants,\n dependentLookups,\n entity,\n errors,\n history,\n lastLoadedTime,\n lookups,\n mode,\n modifiedEntities,\n reducer,\n relations,\n sagas,\n selectors,\n sidePanelViews,\n trees,\n operation,\n views\n};\n","import {SearchNavigationData} from '@reltio/mdm-sdk';\n\ntype Payload = {\n winnerUri: string;\n losersUris: string[];\n};\n\nconst replaceWithWinnerUri = (searchNavigationData: SearchNavigationData, winnerUri: string): SearchNavigationData => {\n let {uri, index, total, cache} = searchNavigationData;\n if (winnerUri && winnerUri !== uri) {\n if (cache && cache.includes(uri)) {\n cache = [...cache];\n const winnerIndex = cache.indexOf(winnerUri);\n let uriIndex = cache.indexOf(uri);\n if (winnerIndex >= 0) {\n cache.splice(winnerIndex, 1);\n total--;\n if (winnerIndex < uriIndex) {\n index--;\n }\n }\n uriIndex = cache.indexOf(uri);\n cache.splice(uriIndex, 1, winnerUri);\n }\n uri = winnerUri;\n return {\n ...searchNavigationData,\n uri,\n index,\n cache,\n total\n };\n }\n return searchNavigationData;\n};\n\nconst removeLosersUris = (searchNavigationData: SearchNavigationData, losersUris: string[]): SearchNavigationData => {\n const {cache = [], index, total, uri} = searchNavigationData;\n const losersInCache = losersUris.filter((uri) => cache.includes(uri));\n if (losersInCache.length === 0) {\n return searchNavigationData;\n }\n const updatedTotal = total - losersInCache.length;\n const uriIndex = cache.indexOf(uri);\n let updatedIndex = index;\n for (const loser of losersInCache) {\n const loserIndex = cache.indexOf(loser);\n if (loserIndex < uriIndex) {\n updatedIndex--;\n }\n }\n const updatedCache = cache.filter((uri) => !losersInCache.includes(uri));\n\n return {\n ...searchNavigationData,\n cache: updatedCache,\n index: updatedIndex,\n total: updatedTotal\n };\n};\n\nexport const applyMergeToSearchNavigationData = (\n searchNavigationData: SearchNavigationData,\n payload: Payload\n): SearchNavigationData => {\n const {winnerUri, losersUris = []} = payload;\n const updatedSearchNavigationData = replaceWithWinnerUri(searchNavigationData, winnerUri);\n return removeLosersUris(updatedSearchNavigationData, losersUris);\n};\n","import {SearchNavigationData} from '@reltio/mdm-sdk';\nimport {AnyAction} from 'redux';\nimport {constants as searchConstants, actions as searchActions} from '../../search';\nimport {getSearchNavigationData} from '../../selectors';\nimport {applyMergeToSearchNavigationData} from './helpers';\nimport {ProfileActions} from '../../profile/actions/constants';\nimport {ModifiedEntitiesActions} from '../../profile/modifiedEntities/constants';\n\nexport const searchNavigationListener = (action: AnyAction, state, dispatch: (action: AnyAction) => void) => {\n switch (action.type) {\n case searchConstants.UPDATE_SEARCH_NAVIGATION_DATA_ON_MERGE: {\n const searchNavigationData: SearchNavigationData = getSearchNavigationData(state);\n if (searchNavigationData) {\n dispatch(\n searchActions.updateSearchNavigationDataFields(\n applyMergeToSearchNavigationData(searchNavigationData, action.payload)\n )\n );\n }\n break;\n }\n }\n};\n\nexport const expandInvalidRelatonsListener = (callback: () => void) => (action: AnyAction) => {\n if (action.type === ProfileActions.SAVE_PROFILE) {\n callback();\n }\n};\n\nexport const cleanseLoadingListener = (callback: (value: boolean) => void) => (action: AnyAction) => {\n if (action.type === ModifiedEntitiesActions.CLEANSE_LOADING) {\n callback(action.payload.isLoading);\n }\n};\n","import {useDispatch, useSelector} from 'react-redux';\nimport {useCallback} from 'react';\nimport {\n AttributeType,\n Entity,\n HistoryDiff,\n ImageAttributeValue,\n Mode,\n PivotingValue,\n SearchNavigationData,\n SearchState,\n Lookups,\n Connection,\n HistoryEvent,\n HistoryMode,\n HistorySlice,\n AttributeError,\n RequestNextPageOfAttributeValuesPayload,\n LookupsForTypeResolvedPayload,\n RelationsLoadedPayload,\n CompactRelationType,\n AddAttributesPayload,\n ModifyAttributePayload,\n RemoveAttributePayload\n} from '@reltio/mdm-sdk';\nimport {\n getAbsoluteImagePath,\n getApiPath,\n getAttributePresentations,\n getAttributesSortingStrategy,\n getAutoCloseInterval,\n getCollaborationPath,\n getDataTenants,\n getDateMask,\n getDateTimeMask,\n getDefaultMaxValues,\n getDtssPath,\n getEntity,\n getEntityUriWithDataTenant,\n getEntityWithDiff,\n getEnvironment,\n getExportPath,\n getHistoryDiff,\n getHistoryEvent,\n getHistoryMode,\n getHistorySlice,\n getImageAttributesFieldsOrder,\n getImageServicePath,\n getIsEditableMode,\n getIsViewMode,\n getLookupAutocomplete,\n getLookups,\n getMetadata,\n getMode,\n getModifiedEntities,\n getPivotingAttributes,\n getProfileErrors,\n getProfileLastLoadedTime,\n getReltioPath,\n getSearchNavigationData,\n getSearchProviderData,\n getServicesPath,\n getShowEntityId,\n getTenantObject,\n getUIPath,\n getUiError,\n getUser,\n getWorkflowEnvironmentUrl,\n getWorkflowPath,\n isCollaborationEnabled as checkIsCollaborationEnabled,\n isWorkflowEnabled as checkIsWorkflowEnabled,\n getRelations,\n getDependentLookups,\n getSearchOptions,\n getActivityFilter,\n getGlobalFilter,\n getUIConfigLayout\n} from './selectors';\nimport * as searchActions from './search/actions';\nimport * as uiActions from './ui/actions';\nimport * as profileActions from './profile/actions';\nimport * as modifiedEntitiesActions from './profile/modifiedEntities/actions';\nimport * as errorsActions from './profile/errors/actions';\nimport * as entityActions from './profile/entity/actions';\nimport * as dependentLookupsActions from './profile/dependentLookups/actions';\nimport * as lookupsActions from './profile/lookups/actions';\nimport * as historyActions from './profile/history/actions';\nimport * as modeActions from './profile/mode/actions';\nimport * as relationsActions from './profile/relations/actions';\nimport {searchNavigationListener, expandInvalidRelatonsListener, cleanseLoadingListener} from './utils/listeners';\n\nconst actions = {\n search: searchActions,\n ui: uiActions,\n profile: profileActions,\n modifiedEntities: modifiedEntitiesActions,\n errors: errorsActions,\n entity: entityActions,\n dependentLookups: dependentLookupsActions,\n lookups: lookupsActions,\n history: historyActions,\n mode: modeActions,\n relations: relationsActions\n};\n\nconst useMdmValues = () => {\n const autoCloseInterval = useSelector(getAutoCloseInterval);\n const uiError = useSelector(getUiError);\n const workflowEnvironmentUrl = useSelector(getWorkflowEnvironmentUrl);\n const exportPath = useSelector(getExportPath);\n const absoluteImagePath = useSelector(getAbsoluteImagePath);\n const uiPath = useSelector(getUIPath);\n const dtssPath = useSelector(getDtssPath);\n const servicesPath = useSelector(getServicesPath);\n const workflowPath = useSelector(getWorkflowPath);\n const imageServicePath = useSelector(getImageServicePath);\n const reltioPath = useSelector(getReltioPath);\n const apiPath = useSelector(getApiPath);\n const collaborationPath = useSelector(getCollaborationPath);\n const imageAttributesFieldsOrder = useSelector(getImageAttributesFieldsOrder);\n const showEntityId = useSelector(getShowEntityId);\n const pivotingAttributes = useSelector(getPivotingAttributes);\n const dateMask = useSelector(getDateMask);\n const dateTimeMask = useSelector(getDateTimeMask);\n const attributePresentations = useSelector(getAttributePresentations);\n const defaultMaxValues = useSelector(getDefaultMaxValues);\n const attributesSortingStrategy = useSelector(getAttributesSortingStrategy);\n const lookupAutocomplete = useSelector(getLookupAutocomplete);\n const modifiedEntities = useSelector(getModifiedEntities);\n const relations = useSelector(getRelations);\n const profileErrors = useSelector(getProfileErrors);\n const entity = useSelector(getEntity);\n const entityWithDiff = useSelector(getEntityWithDiff);\n const entityUriWithDataTenant = useSelector(getEntityUriWithDataTenant);\n const mode = useSelector(getMode);\n const isViewMode = useSelector(getIsViewMode);\n const isEditableMode = useSelector(getIsEditableMode);\n const historyDiff = useSelector(getHistoryDiff);\n const historyMode = useSelector(getHistoryMode);\n const historySlice = useSelector(getHistorySlice);\n const historyEvent = useSelector(getHistoryEvent);\n const profileLastLoadedTime = useSelector(getProfileLastLoadedTime);\n const lookups = useSelector(getLookups);\n const dependentLookups = useSelector(getDependentLookups);\n const metadata = useSelector(getMetadata);\n const user = useSelector(getUser);\n const tenant = useSelector(getTenantObject);\n const environment = useSelector(getEnvironment);\n const dataTenants = useSelector(getDataTenants);\n const searchNavigationData = useSelector(getSearchNavigationData);\n const searchProviderData = useSelector(getSearchProviderData);\n const searchOptions = useSelector(getSearchOptions);\n const activityFilter = useSelector(getActivityFilter);\n const globalFilter = useSelector(getGlobalFilter);\n const isWorkflowEnabled = useSelector(checkIsWorkflowEnabled);\n const isCollaborationEnabled = useSelector(checkIsCollaborationEnabled);\n const uiConfigLayout = useSelector(getUIConfigLayout);\n\n return {\n autoCloseInterval,\n uiError,\n workflowEnvironmentUrl,\n exportPath,\n absoluteImagePath,\n uiPath,\n dtssPath,\n servicesPath,\n workflowPath,\n imageServicePath,\n reltioPath,\n apiPath,\n collaborationPath,\n imageAttributesFieldsOrder,\n showEntityId,\n pivotingAttributes,\n dateMask,\n dateTimeMask,\n attributePresentations,\n defaultMaxValues,\n attributesSortingStrategy,\n lookupAutocomplete,\n modifiedEntities,\n relations,\n profileErrors,\n entity,\n entityWithDiff,\n entityUriWithDataTenant,\n mode,\n isViewMode,\n isEditableMode,\n historyDiff,\n historyMode,\n historySlice,\n historyEvent,\n profileLastLoadedTime,\n lookups,\n dependentLookups,\n metadata,\n user,\n tenant,\n environment,\n dataTenants,\n globalFilter,\n searchOptions,\n activityFilter,\n searchNavigationData,\n searchProviderData,\n isWorkflowEnabled,\n isCollaborationEnabled,\n uiConfigLayout\n };\n};\n\nconst useMdmActions = () => {\n const dispatch = useDispatch();\n\n const openSearch = useCallback((payload: SearchState) => dispatch(actions.ui.openSearch(payload)), [dispatch]);\n\n const openHistoryEvent = useCallback(\n (payload: {entityUri: string; historyEvent: HistoryEvent}) => dispatch(actions.ui.openHistoryEvent(payload)),\n [dispatch]\n );\n\n const openConsoleApp = useCallback(\n (name: string, path?: string, query?: string) => dispatch(actions.ui.openConsoleApp(name, path, query)),\n [dispatch]\n );\n\n const addAttributes = useCallback(\n (payload: AddAttributesPayload) => dispatch(actions.profile.addAttributes(payload)),\n [dispatch]\n );\n\n const modifyAttribute = useCallback(\n (payload: ModifyAttributePayload) => dispatch(actions.profile.modifyAttribute(payload)),\n [dispatch]\n );\n\n const removeAttribute = useCallback(\n (payload: RemoveAttributePayload) => dispatch(actions.profile.removeAttribute(payload)),\n [dispatch]\n );\n\n const entityDeleted = useCallback(\n (payload: string) => dispatch(actions.modifiedEntities.entityDeleted(payload)),\n [dispatch]\n );\n\n const entityCreated = useCallback(\n (payload: Entity) => dispatch(actions.modifiedEntities.entityCreated(payload)),\n [dispatch]\n );\n\n const errorDeactivated = useCallback(\n (payload: string) => dispatch(actions.errors.errorDeactivated(payload)),\n [dispatch]\n );\n\n const requestNextPageOfAttributeValues = useCallback(\n (payload: RequestNextPageOfAttributeValuesPayload) =>\n dispatch(actions.profile.requestNextPageOfAttributeValues(payload)),\n [dispatch]\n );\n\n const openEntity = useCallback(\n (payload: {uri: string; viewId: string | null; source?: string | null; screen?: string}) =>\n dispatch(actions.ui.openEntity(payload)),\n [dispatch]\n );\n\n const setDefaultProfilePicForModifiedEntity = useCallback(\n (payload: {entityUri: string; value: ImageAttributeValue}) =>\n dispatch(actions.modifiedEntities.setDefaultProfilePic(payload)),\n [dispatch]\n );\n\n const setDefaultProfilePicForEntity = useCallback(\n (payload: ImageAttributeValue | string) => dispatch(actions.entity.setDefaultProfilePic(payload)),\n [dispatch]\n );\n\n const dependentLookupsEditorTouched = useCallback(\n (payload: {uri: string; isTouched: boolean}) =>\n dispatch(actions.dependentLookups.dependentLookupsEditorTouched(payload)),\n [dispatch]\n );\n\n const openPivotingPerspective = useCallback(\n (payload: {attributeType: AttributeType; value: PivotingValue[]}) =>\n dispatch(actions.ui.openPivotingPerspective(payload)),\n [dispatch]\n );\n\n const lookupsLoaded = useCallback(\n (payload: Lookups) => dispatch(actions.lookups.lookupsLoaded(payload)),\n [dispatch]\n );\n\n const lookupsForTypeResolved = useCallback(\n (payload: LookupsForTypeResolvedPayload) => dispatch(actions.lookups.lookupsForTypeResolved(payload)),\n [dispatch]\n );\n\n const errorSet = useCallback((payload: string) => dispatch(actions.ui.errorSet(payload)), [dispatch]);\n\n const setHistoryMode = useCallback(\n (payload: HistoryMode) => dispatch(actions.history.setHistoryMode(payload)),\n [dispatch]\n );\n\n const modeUpdated = useCallback((payload: Mode) => dispatch(actions.mode.modeUpdated(payload)), [dispatch]);\n\n const setHistoryEvent = useCallback(\n (payload: HistoryEvent) => dispatch(actions.history.setHistoryEvent(payload)),\n [dispatch]\n );\n\n const clearHistoryEvent = useCallback(() => dispatch(actions.history.clearHistoryEvent()), [dispatch]);\n\n const setHistoryDiff = useCallback(\n (payload: HistoryDiff) => dispatch(actions.history.setHistoryDiff(payload)),\n [dispatch]\n );\n\n const setHistorySlice = useCallback(\n (payload: HistorySlice) => dispatch(actions.history.setHistorySlice(payload)),\n [dispatch]\n );\n\n const updateSearchNavigationDataFields = useCallback(\n (payload: Partial<SearchNavigationData>) => dispatch(actions.search.updateSearchNavigationDataFields(payload)),\n [dispatch]\n );\n\n const openPerspective = useCallback(\n (payload: {perspectiveId: string; viewId: string}) => dispatch(actions.ui.openPerspective(payload)),\n [dispatch]\n );\n\n const entityDeletionFinished = useCallback(() => dispatch(actions.ui.entityDeletionFinished()), [dispatch]);\n\n const loadEntity = useCallback(\n (payload: {viewId?: string; uri: string}) => dispatch(actions.entity.loadEntity(payload)),\n [dispatch]\n );\n\n const updateSearchNavigationDataOnMerge = useCallback(\n (payload: {winnerUri: string; losersUris: string[]}) =>\n dispatch(actions.search.updateSearchNavigationDataOnMerge(payload)),\n [dispatch]\n );\n\n const lookupsListResolved = useCallback(\n (payload: Lookups[]) => dispatch(actions.lookups.lookupsListResolved(payload)),\n [dispatch]\n );\n\n const relationsLoaded = useCallback(\n (payload: RelationsLoadedPayload) => dispatch(actions.relations.relationsLoaded(payload)),\n [dispatch]\n );\n\n const setInitialInfo = useCallback(\n (id: string, relationUri: string, tempEntity: Entity, connection: Connection) =>\n dispatch(actions.relations.setInitialInfo(id, relationUri, tempEntity, connection)),\n [dispatch]\n );\n\n const setRelationType = useCallback(\n (id: string, relationUri: string, relationType: CompactRelationType) =>\n dispatch(actions.relations.setRelationType(id, relationUri, relationType)),\n [dispatch]\n );\n\n const closeRelationEditor = useCallback(\n (id: string, relationUri: string) => dispatch(actions.relations.closeRelationEditor(id, relationUri)),\n [dispatch]\n );\n\n const openRelationEditor = useCallback(\n (id: string, connection: Connection) => dispatch(actions.relations.openRelationEditor(id, connection)),\n [dispatch]\n );\n\n const setRelationEntity = useCallback(\n (id: string, relationUri: string, entityInfo: Entity) =>\n dispatch(actions.relations.setRelationEntity(id, relationUri, entityInfo)),\n [dispatch]\n );\n\n const errorsSet = useCallback(\n (payload: AttributeError[]) => dispatch(actions.errors.errorsSet(payload)),\n [dispatch]\n );\n\n const addRelation = useCallback(\n (id: string, connection: Connection) => dispatch(actions.relations.addRelation(id, connection)),\n [dispatch]\n );\n\n const editRelation = useCallback(\n (id: string, connection: Connection) => dispatch(actions.relations.editRelation(id, connection)),\n [dispatch]\n );\n\n return {\n openSearch,\n openHistoryEvent,\n openConsoleApp,\n addAttributes,\n modifyAttribute,\n removeAttribute,\n entityDeleted,\n entityCreated,\n errorDeactivated,\n requestNextPageOfAttributeValues,\n openEntity,\n setDefaultProfilePicForModifiedEntity,\n setDefaultProfilePicForEntity,\n dependentLookupsEditorTouched,\n openPivotingPerspective,\n lookupsLoaded,\n lookupsForTypeResolved,\n errorSet,\n setHistoryMode,\n modeUpdated,\n setHistoryEvent,\n clearHistoryEvent,\n setHistoryDiff,\n setHistorySlice,\n updateSearchNavigationDataFields,\n openPerspective,\n entityDeletionFinished,\n loadEntity,\n updateSearchNavigationDataOnMerge,\n lookupsListResolved,\n relationsLoaded,\n setInitialInfo,\n setRelationType,\n closeRelationEditor,\n openRelationEditor,\n setRelationEntity,\n errorsSet,\n addRelation,\n editRelation\n };\n};\n\nexport const useMdmModule = () => {\n const values = useMdmValues();\n const actions = useMdmActions();\n const listeners = {searchNavigationListener, expandInvalidRelatonsListener, cleanseLoadingListener};\n return {values, actions, listeners};\n};\n","import * as dataTenants from './dataTenants';\nimport * as tenants from './tenants';\nimport * as metadata from './metadata';\nimport * as profile from './profile';\nimport * as search from './search';\nimport * as selectors from './selectors';\nimport * as tenant from './tenant';\nimport * as environment from './environment';\nimport * as ui from './ui';\nimport * as user from './user';\n\nexport default {\n getModule: () => ({\n id: 'mdm',\n reducerMap: {\n dataTenants: dataTenants.reducer,\n tenants: tenants.reducer,\n metadata: metadata.reducer,\n profile: profile.reducer,\n tenant: tenant.reducer,\n environment: environment.reducer,\n user: user.reducer,\n ui: ui.reducer,\n search: search.reducer\n },\n sagas: [...profile.modifiedEntities.sagas, ...profile.dependentLookups.sagas, ...profile.sagas, ...search.sagas]\n }),\n selectors\n};\n\nexport * from './types';\nexport {useMdmModule} from './useMdmModule';\n\nexport {dataTenants, tenants, profile, metadata, tenant, environment, user, ui, search};\n"],"names":["DATA_TENANTS_UPDATED","createStandardAction","type","payload","dataTenantsUpdated","initState","state","action","TENANTS_UPDATED","tenantsUpdated","METADATA_LOADED","updateMetadata","tenant","metadata","UIActions","prepareMetadata","pipe","normalizeMetadata","parseMetadata","localizeMetadata","localizeAllMetadata","map","LOCALIZATION_LOADED","ProfileActions","addAttributes","ADD_ATTRIBUTES","addDefaultValuesAction","ADD_DEFAULT_VALUES","modifyAttribute","MODIFY_ATTRIBUTE","removeAttribute","REMOVE_ATTRIBUTE","addNextPageOfAttributeValues","ADD_NEXT_PAGE_ATTRIBUTE_VALUES","processNextPageOfAttributeValues","PROCESS_NEXT_PAGE_ATTRIBUTE_VALUES","requestNextPageOfAttributeValues","REQUEST_NEXT_PAGE_ATTRIBUTE_VALUES","saveProfile","SAVE_PROFILE","saveDraft","SAVE_DRAFT","profileSaved","PROFILE_SAVED","validateProfile","VALIDATE_PROFILE","DependentLookupsActions","dependentLookupsStructureSet","DEPENDENT_LOOKUPS_STRUCTURE_SET","dependentLookupsInitedTypeUrisAdded","DEPENDENT_LOOKUPS_INITED_TYPE_URIS_ADDED","dependentLookupsEditorsBlocked","DEPENDENT_LOOKUPS_EDITORS_BLOCKED","dependentLookupsEditorTouched","DEPENDENT_LOOKUPS_EDITOR_TOUCHED","getDependentLookupsStructure","structure","getDependentLookupsInitedTypeUris","initedTypeUris","getDependentLookupEditorsState","editors","ModeActions","MODE_UPDATED","mode","silent","isViewMode","typeUris","uniq","concat","uris","isBlocked","newEditors","reduce","uri","isTouched","assocPath","SEARCH_RESULTS_SET","KEYWORD_UPDATED","UPDATE_STATE","SAVE_STATE","ACTIVITY_FILTER_UPDATED","GLOBAL_FILTER_UPDATED","SEARCH_OPTIONS_UPDATED","SET_SEARCH_OPTIONS_CONFIG","SET_SEARCH_PROVIDER_DATA","SET_SEARCH_NAVIGATION_DATA","UPDATE_SEARCH_NAVIGATION_DATA_ON_MERGE","UPDATE_SEARCH_NAVIGATION_DATA_FIELDS","searchResultsSet","keywordUpdated","updateState","saveState","activityFilterUpdated","globalFilterUpdated","updateSearchOptions","setSearchOptionsConfig","setSearchProviderData","setSearchNavigationData","updateSearchNavigationDataFields","updateSearchNavigationDataOnMerge","getSearchResults","searchResults","getKeyword","keyword","getGlobalFilter","globalFilter","getGlobalFilterSavedSearchesUris","path","getSearchProviderData","searchProviderData","getSearchNavigationData","searchNavigationData","SEARCH_NAVIGATION","saveSearchNavigation","select","mdmModule","sessionStorage","setItem","JSON","stringify","restoreSearchNavigation","valueFromStorage","parse","getItem","e","put","search","takeLatest","OPEN_ENTITY","call","initialState","searchOptions","searchByOv","ovOnly","activityFilter","query","savedSearchesUris","isMuted","pick","isEmpty","isNil","isEmptyValue","showSearchByOv","entityUriWithoutDtssPrefix","removeDtssPrefixFromEntityUri","source","openEntity","viewId","screen","newEntityShown","entity","NEW_ENTITY_SHOWN","entityDeletionFinished","ENTITY_DELETION_FINISHED","openPerspective","perspectiveId","OPEN_PERSPECTIVE","showNotification","SHOW_NOTIFICATION","closeNotification","CLOSE_NOTIFICATION","clearNotifications","CLEAR_NOTIFICATIONS","pathsSet","PATHS_SET","uiConfigLoaded","UI_CONFIG_LOADED","newUiConfigLoaded","NEW_UI_CONFIG_LOADED","localeAttributePresentationLoaded","LOCALE_ATTRIBUTE_PRESENTATION_LOADED","autocloseIntervalLoaded","AUTOCLOSE_INTERVAL_LOADED","setPreferReact","SET_PREFER_REACT","numberFormatUpdated","NUMBER_FORMAT_UPDATED","openConsoleApp","name","OPEN_CONSOLE_APP","openAppFromChocolateBar","OPEN_APP_FROM_CHOCOLATE_BAR","openGraph","OPEN_GRAPH","localizationLoaded","dateMaskUpdated","DATE_MASK_UPDATED","dateTimeMaskUpdated","DATE_TIME_MASK_UPDATED","openSearch","OPEN_SEARCH","searchState","openHistoryEvent","OPEN_HISTORY_EVENT","openNewEntityWithAuthoring","OPEN_NEW_ENTITY_WITH_AUTHORING","openPreviousPage","OPEN_PREVIOUS_PAGE","navigateTo","NAVIGATE","keysSet","KEYS_SET","openPivotingPerspective","OPEN_PIVOTING_PERSPECTIVE","errorSet","ERROR_SET","documentationSet","DOCUMENTATION_SET","addDashboardExternalView","ADD_DASHBOARD_EXTERNAL_VIEW","getImagePath","getExportPath","getApiPath","getUIPath","getReltioPath","getDtssPath","getExportDQPath","getWorkflowPath","either","getPaths","prop","getWorkflowEnvironmentURL","getCollaborationPath","getImageServicePath","getDVFPath","getValidationServicePath","getAdminToolsPath","getMlDqPath","getRawAttributePresentations","store","getAttributePresentations","createSelector","intl","attributesPresentation","locale","getSpecialAttributesPresentation","getAutoCloseInterval","autoCloseInterval","getDefaultMaxValues","getUiNumberFormat","getDateMask","getNotifications","getDateTimeMask","getRequestProviderConfiguration","oldPivotingSettingsPath","collectPivotingAttributes","chain","getPivotingAttributes","ifElse","hasPath","pathOr","getImageAttributesFieldsOrder","getLookupAutocomplete","getGoogleMapKey","getIcpLicenseKey","getDocReleaseNotes","oldValidationSeverityLevelPath","getValidationServiceSeverityLevels","getValidateReadMode","getValidateRelations","getValidateReferenceEntityInReadMode","getWorkflowConfigurationEnabled","getUiError","getServicesPath","getUIConfig","getUIConfigLayout","getShowEntityId","getPreview","getLogo","getHeaderColor","getShowSearchByOv","getShowAttributeDescription","getAttributesSortingStrategy","getProfileCheckUpdate","getCleanseConfigurationByEntityType","entityTypeUri","getAuthoringByEntityType","getAuthoringItemsFromLayoutByEntityType","getAiAssistantEnabled","getAiAssistantEntityTypes","getAiAssistantLimitPerDay","paths","config","newConfig","evolve","properties","attributePresentations","assoc","LOCALE_ATTRIBUTE_PRESENTATION","numberFormat","dateMask","dateTimeMask","keys","error","documentation","notifications","reject","propEq","USER_UPDATED","userUpdated","getUserName","username","getUserRoles","roles","TENANT_UPDATED","TENANT_NAME_UPDATED","tenantUpdated","tenantNameUpdated","getTenantId","getTenantName","id","ENVIRONMENT_UPDATED","ENVIRONMENT_ALIAS_UPDATED","environmentUpdated","environmentAliasUpdated","getEnvironmentId","getEnvironmentAlias","alias","getDataTenants","dataTenants","getTenants","tenants","getMetadata","getTenant","getTenantObject","getEnvironmentObject","environment","getUser","user","getUi","ui","getProfile","profile","getSearch","getEntity","profileSelectors","getEntityUri","getEntityUriWithDataTenant","getConnectionsByViewId","getEditingOrAddingConnectionByViewIdAndRelationUri","relationUri","getEditingOrAddingConnectionRelationObjectByViewIdAndRelationUri","getConnectionsWithDraftsByViewId","parentEntityUri","getDraftsForSaveByViewId","getConnectionsTemporaryUrisForCreation","getTotalByViewId","getLookups","getProfileErrors","getRelationsViewIds","getHistoryDiff","getHistoryEvent","getHistorySlice","getIsHistoryModeEnabled","getHistoryMode","getModifiedEntity","getModifiedEntityDefaultProfilePic","getModifiedEntities","getAttributeTypeErrors","parentUri","attributeTypeUri","getAttributesErrors","getActiveErrorsForAttributesPager","attributeType","uiSelectors","searchSelectors","getSearchKeyword","getActivityFilter","getSearchOptions","getGlobalSearchRequestOptions","omittingFields","getStringifiedSearchOptions","getGlobalFilterQuery","getMode","getIsEditableMode","getIsViewMode","getIsSuggestMode","getRelations","getRelationToAddByViewId","getRelationsToEditByViewId","getAllRelationsToAddAndEdit","viewIds","getAllRelationsToSave","getAllRelationsByViewIds","getInitialConnectionTempEntity","getInitialConnection","getViewIdsForOpenRelation","getAbsoluteImagePath","userSelectors","getTrees","getTree","getTreeRoot","getTreeTotal","getTreeCommands","getTreeEditingConnection","getAllTreesEditingConnections","getProfileLastLoadedTime","getProfileOperation","getProfileViews","getProfileCancelNeedConfirm","tenantSelectors","getEnvironment","environmentSelectors","getAllServicesPaths","getWorkflowEnvironmentUrl","getCanUserRegisterConfigEnvironments","canUserRegisterConfigEnvironments","getCanUserCreateWorkflowConfigJar","canUserCreateWorkflowConfigJar","getCanUserCreateWorkflowEnvironmentConfigJar","canUserCreateWorkflowEnvironmentConfigJar","getCanUserExecuteWorkflowJobs","canUserExecuteWorkflowJobs","getCanUserExecuteWorkflowJobsSyncBusinessProcessData","canUserExecuteWorkflowJobsSyncBusinessProcessData","getCanUserExecuteWorkflowJobsTerminateProcessInstance","canUserExecuteWorkflowJobsTerminateProcessInstance","getCanUserExecuteWorkflowJobsUpdateTasks","canUserExecuteWorkflowJobsUpdateTasks","getCanUserExecuteWorkflowJobsValidateTasks","canUserExecuteWorkflowJobsValidateTasks","getCanUserManageWorkflowDefinition","canUserManageWorkflowDefinition","getCanUserManageWorkflowEnvironmentDefinition","canUserManageWorkflowEnvironmentDefinition","getCanUserReadWorkflowDataTask","canUserReadWorkflowDataTask","getCanUserUpdateProcessInstance","canUserUpdateProcessInstance","getCanUserUpdateWorkflowDataTask","canUserUpdateWorkflowDataTask","getCanUserViewProcessInstanceSearchQuery","canUserViewProcessInstanceSearchQuery","getCanUserViewWorkflowConfigJar","canUserViewWorkflowConfigJar","getCanUserViewWorkflowDefinition","canUserViewWorkflowDefinition","getCanUserViewWorkflowEnvironmentConfigJar","canUserViewWorkflowEnvironmentConfigJar","getCanUserViewWorkflowJobs","canUserViewWorkflowJobs","getCanUserMakeExport","canUserMakeExport","getCanUserMakeActivitiesExport","canUserMakeActivitiesExport","getCanUserImportEntitiesFromDT","canUserImportEntitiesFromDT","getCanUserReadEntitiesFromDT","canUserReadEntitiesFromDT","getCanUserStartProcessFromQuery","canUserStartProcessInstanceFromQuery","getCanUserMakeBulkUpdate","canUserMakeBulkUpdate","getCanUserDeleteProfiles","canUserDeleteProfiles","getCanUserOpenDataLoader","canUserOpenDataLoader","getCanUserGetDQStatistic","canUserGetDQStatistic","getCanUserReadDVF","canUserReadDVF","isCollaborationEnabled","collaborationPath","isHistoryModeEnabled","isWorkflowEnabled","workflowPath","enabled","hasSideView","find","el","views","some","view","isWorkflowSideViewEnabled","isCollaborationSideViewEnabled","isDBConnectorSideViewEnabled","getDBConnectorSideViews","getDependentLookups","getDependentLookupsStructureNode","getDependentLookupEditorState","valueUri","getCheckIfCanAddRelations","content","authoringItems","nextEntry","inRelations","outRelations","isEditableMode","Mode","isNewEntityAndSuggestingMode","isTempUri","isAuthoringMode","canEditEntity","checkMetadataForUpdate","getEntityType","canCreateRelations","rel","getRelationType","both","checkMetadataForCreate","getEntityWithDiff","getProfileEntityWithHistoryDiff","getEntityWithoutDiff","getProfileEntityWithoutHistoryDiff","ModifiedEntitiesActions","RelationsActions","findConnectionByRelationUri","connections","getRelationUriFromConnection","equals","entityUri","getDraftsByViewId","Object","filter","getTempRelations","getTotalWithDrafts","addedConnectionsTotal","when","always","length","getConnectionsWithDrafts","createCachedSelector","_state","_id","drafts","addedConnections","editedConnections","removedUris","ignoredRelationData","isRemoved","__","ignoredUris","item","isIgnored","getEditedConnection","connection","eqBy","unless","markEdited","connectionsByParentEntityUri","addedConnectionsByParentEntityUri","markNew","identity","markRemoved","markIgnored","_","getRelationObjectFromConnection","getTemporaryUrisForCreation","getEntityUriFromConnection","handleCreateEntity","delay","selectors","alreadyAddedTypeUris","updatedStructure","initDependentLookups","structureWithValues","populateDependentLookupsFromEntity","entityOrRelation","selectTopLevelObject","baseUri","getBaseUri","isRelationUri","handleAddDefaultValues","attributeValue","findAttributeValuesByTypeUri","startsWith","structureWithValue","addValueToDependentLookups","handleAddAttributes","addedAttributes","isAttributeTypeInDependentLookups","syncAttributeTypeWithDependentLookups","attrTypeUri","removeReferenceAttributeTemporaryEntities","value","isReference","refEntityUri","getReferencedEntityUriFromAttrValue","removeTemporaryEntitiesChainFromDependentLookupsStructure","syncComplexAttributeWithDLStructure","removeValuesFromDependentLookups","addTemporaryEntitiesChainToDependentLookupsStructure","handleModifyAttribute","lookupCode","lookupValue","fork","cascadeUpdate","isComplexAttribute","parentEntity","modifiedEntities","relatedTempEntities","findRelatedTemporaryEntities","tempEntity","relatedEntitiesUris","handleRemoveAttribute","isDL","handleDeleteEntity","updatedValue","editorsState","stateForValue","getDependentLookupStateForValueUri","typeUri","affectedEditorsUris","updatedStateForValue","cascadeUpdateRequest","displayName","object","findAttributeValueByUri","findAttributeTypeByUri","console","warn","handleOpenRelationEditor","connectedEntityUri","take","handleSetRelationType","handleCloseRelationEditor","takeEvery","MODIFIED_ENTITY_CREATED","MODIFIED_ENTITY_DELETED","OPEN_RELATION_EDITOR","SET_RELATION_TYPE","CLOSE_RELATION_EDITOR","EntityActions","entityLoaded","ENTITY_LOADED","setDefaultProfilePic","DEFAULT_PROFILE_PIC_SET","loadEntity","LOAD_ENTITY","entityCreationRequested","ENTITY_CREATION_REQUESTED","entityCreationWithAuthoringRequested","ENTITY_CREATION_WITH_AUTHORING_REQUESTED","authoringDraftEntitiesLoaded","ENTITY_AUTHORING_DRAFT_ENTITIES_LOADED","entityRemoveRequested","ENTITY_REMOVE_REQUESTED","entityCloneRequested","CLONE_ENTITY","clearEntity","CLEAR_ENTITY","getUri","getDataTenant","dataTenant","getUriWithDataTenant","getEntityUriForLink","defaultProfilePic","defaultProfilePicValue","attributeTypeName","values","attributeSource","getAttributeSource","lens","lensPath","over","defaultTo","ErrorsActions","allPass","join","not","errorDeactivated","ERROR_DEACTIVATED","errorsSet","ERRORS_SET","errorIndex","findIndex","getErrorId","errorL","areOneHierarchyUris","deactivated","HistoryActions","setHistoryDiff","HISTORY_DIFF_SET","clearHistoryDiff","HISTORY_DIFF_CLEARED","setHistoryEvent","HISTORY_EVENT_SET","clearHistoryEvent","HISTORY_EVENT_CLEARED","setHistorySlice","HISTORY_SLICE_SET","setHistoryMode","HISTORY_MODE_SET","diff","event","slice","HistoryMode","ProfileLastLoadedTimeActions","profileUpdateLastLoadedTime","PROFILE_LAST_LOADED_TIME_UPDATE","Date","now","LookupsActions","lookupsLoaded","LOOKUPS_LOADED","lookupsForTypeResolved","LOOKUPS_FOR_TYPE_RESOLVED","lookupsListResolved","LOOKUPS_LIST_RESOLVED","lookupData","modeUpdated","modeCancelEditing","MODE_CANCEL_EDITING","modeEditingCanceled","MODE_EDITING_CANCELED","isSuggestMode","getIsEditMode","isEditMode","entityCreated","entityDeleted","MODIFIED_ENTITY_DEFAULT_PROFILE_PIC_SET","modifiedEntitiesReset","MODIFIED_ENTITIES_RESET","cleanseLoading","CLEANSE_LOADING","omit","attribute","index","isEntityUri","isEntitySpecialAttrType","addEntitySpecialAttribute","addAttribute","editEntitySpecialAttribute","editAttribute","removeEntitySpecialAttribute","subAttributes","getEditableAttributeTypeSubAttributes","lensProp","addDefaultValuesToComplexAttribute","processNextPageValuesAdding","valuesToAdd","entityValuesUris","existingValuesUris","intersection","includes","requestOptions","apiPath","requestAttributeValues","options","json","getPagedEntity","getRequestErrorMessage","i18n","handleProfileCleanse","baseTypeUri","cleanseConfiguration","entityType","infos","cleanseConfig","cleanseConfigurationType","getCleanseType","hasCleanseTypeInEntityType","cleanseConfigurationAttributes","getCleanseConfigurationAttributes","isLoading","cleansedEntity","cleanseData","cleanseType","split","attributes","modifiedEntity","hasCleanseStatus","isUnverifiedCleanse","CLEANSE_STATUS_ERROR_PATH","cleansedAttributes","attributesToUpdate","prepareCleansedAttributes","relationsLoaded","RELATIONS_LOADED","secondLevelRelationsLoaded","SECOND_LEVEL_RELATIONS_LOADED","removeRelation","curry","REMOVE_RELATION","ignoreRelation","IGNORE_RELATION","addRelation","ADD_RELATION","editRelation","EDIT_RELATION","openRelationEditor","closeRelationEditor","setRelationType","relationType","setRelationEntity","entityInfo","SET_RELATION_ENTITY","setInitialInfo","SET_INITIAL_INFO","initDraftsState","getPathToEditingConnection","pathEq","getRelationToAddPath","getRelationsToEditPath","getRelationLens","pathToRelation","getRelationObjectLens","relationsLens","compose","total","complement","newConnections","hasRemovedUri","needToAddRemovedUris","suggested","relation","append","newConnection","propSatisfies","prepend","equalsConnection","updateConnection","update","upsertConnection","isNew","relationToAddPath","relationsToEditL","pathToConnection","initialInfo","relationToAdd","relationsToEdit","relationL","applyRelationTypeObject","relationLens","isActivenessAttrType","newRelation","set","relationObjectLens","relationObject","newRelationObject","pathToEntity","entityL","label","newEntity","entityLabel","objectUri","pathToObject","getAttributeTypeSubAttributes","pathToAttributes","pathToTypeUri","attributeTypes","addDefaultValuesToAttributes","TreesActions","treeLoaded","TREE_LOADED","treeLoadedWithError","TREE_LOADED_WITH_ERROR","treeLoading","TREE_LOADING","resetScrollToNode","TREE_SCROLL_TO_NODE_RESET","treeCommandsCleared","TREE_COMMANDS_CLEARED","childrenLoading","TREE_CHILDREN_LOADING","currentEntityShownInTree","TREE_CURRENT_ENTITY_SHOWN","treeRefreshed","TREE_REFRESHED","nodeExpanded","TREE_NODE_EXPANDED","treeRelationRemoved","TREE_RELATION_REMOVED","treeNodeRemoved","TREE_NODE_REMOVED","treeSecondaryLabelShown","TREE_SECONDARY_LABEL_SHOWN","entitiesMappingLoaded","TREE_ENTITIES_MAPPING_LOADED","treeChanged","TREE_CHANGED","toggleRelationDetails","TREE_NODE_EDITED","activenessDateChanged","TREE_ACTIVENESS_DATE_CHANGED","treeRelationRepointed","TREE_RELATION_REPOINTED","treeRelationCreated","TREE_RELATION_CREATED","treeNodeCreated","TREE_NODE_CREATED","treeRelationChanged","TREE_RELATION_EDITED","treeNodeChanged","treeNodeEditingStarted","TREE_NODE_EDITING_STARTED","treeNodeEditingApplied","TREE_NODE_EDITING_APPLIED","treeNodeEditingCanceled","TREE_NODE_EDITING_CANCELED","treeNodeNewParentEditingStarted","TREE_NODE_NEW_PARENT_EDITING_STARTED","treeNodeNewParentEditingApplied","TREE_NODE_NEW_PARENT_EDITING_APPLIED","treeNodeNewParentEditingCanceled","TREE_NODE_NEW_PARENT_EDITING_CANCELED","treeNodeNewChildEditingStarted","TREE_NODE_NEW_CHILD_EDITING_STARTED","treeNodeNewChildEditingApplied","TREE_NODE_NEW_CHILD_EDITING_APPLIED","treeNodeNewChildEditingCanceled","TREE_NODE_NEW_CHILD_EDITING_CANCELED","treeNodeRelationTypeChanged","TREE_NODE_RELATION_TYPE_CHANGED","treeNodeEntityChanged","TREE_NODE_ENTITY_CHANGED","treeSorted","TREE_SORTED","treesStateSaved","TREES_STATE_SAVED","treesStateRestored","TREES_STATE_RESTORED","childrenLoaded","TREE_CHILDREN_LOADED","treesRestoreFromInitialTrees","TREES_RESTORE_FROM_INITIAL_TREES","treesResetInitialTrees","TREES_RESET_INITIAL_TREES","cancelChildrenLoading","TREE_CANCEL_CHILDREN_LOADING","trees","getCommands","flatten","syncToCurrentEntity","node","parents","forEach","parent","expanded","children","child","result","mergeEntitiesMap","subMap","mapWithUpdatedParents","mergeChildren","oldChildren","newChildren","getLoadedChildren","newChild","oldChild","push","removeChild","childId","nodeId","splice","insertChild","mutatePath","currentLevelObject","i","segment","updateAllNodesWithProp","createConnection","addToEditingConnections","draft","setConnectionEntity","setConnectionRelationType","relationTypeUri","removeFromEditingConnections","editingConnections","getEditingConnection","nodeEditingCleanUp","currentNode","editingMode","relatedEntity","initialConnection","addingParentCleanUp","treeRoot","root","parentNode","findParentNodeById","getTreeSettingsFields","addNodesToEntitiesMap","entitiesMap","nodes","createNodeFromConnection","relations","common","commands","initialTrees","produce","draftKey","errorMessage","loading","parentId","findNodeById","pending","key","NODE_EDITING_MODES","newNode","relatedNodeId","currentNodeIndex","relatedNode","directParentUri","unshift","currentRelationTypeUri","attributesL","typeL","entitiesSubMap","tree","graphTypes","activenessDate","isReversed","treeSettings","typesLabelsMap","sortField","sortOrder","mapTree","childrenProcessing","sortTreeChildren","show","showSecondaryLabel","scrollTo","newParent","newEntityUri","command","createRelationRepointCommand","isRelationCommandForUri","createRelationDeleteCommand","createRelationCreateCommand","oldRelation","createRelationUpdateCommand","getErrors","errors","lookups","dependentLookups","getLastLoadedTime","lastLoadedTime","getHistory","history","getOperation","operation","getViews","getSidePanelViews","sidePanelViews","entitySelectors","modifiedEntitiesSelectors","relationsSelectors","modeSelectors","errorsSelectors","treesSelectors","dependentLookupsSelectors","historySelectors","getEntityHasChanges","collectAllDiffs","getTreeHasChanges","treeCommands","notAppliedTreeCommands","getNotAppliedTreeCommands","getRelationsHasChanges","hasChanges","all","getProfileHasChanges","entityHasChanges","relationsHasChanges","treeHasChanges","profileHasChanges","ProfileOperationActions","profileUpdateOperation","PROFILE_OPERATION_UPDATE","getMissedAttributesToAdd","isRequired","ErrorType","findConnectionRelationObjectByRelationUri","groups","attrValues","getRelationsViewsIds","profileViews","getProfileViewsIdsByTypes","ProfileViewTypes","getCommonDataForValidation","getCommonDataForRemoteValidation","validationServicePath","severity","localValidation","relationViewsIds","treeViewsIds","relationsConnections","relationsState","treesConnections","validateEntityLocally","isAvailableAttributeTypeForProfile","flatMap","validateConnection","validateHierarchyConnection","evaluateErrorPath","remoteValidation","shouldUseValidationService","rawErrors","remoteEntityValidation","remoteEntityDiffValidation","convertValidationServiceErrors","uniqBy","getErrorUniqKey","attributesToAdd","catchValidationServiceError","preparedEntity","prepareEntityForValidation","validateEntity","ValidationServiceOption","shouldValidateReferenceEntityInReadMode","forceOvForUiUpdates","attributesDiff","collectDiffForValidation","validateEntityChanges","remoteRelationsValidation","shouldValidateRelations","allConnections","connectionsToValidate","connectionsToValidateUris","body","prepareConnectionsForValidation","response","validateRelations","validated","flat","actualModifiedEntities","localErrors","remoteProfileErrors","remoteRelationsErrors","allErrors","isCriticalError","ProfileViewsActions","addDefaultValues","saveTrees","commandExecutor","tempUrisMap","allCommands","optimizeCommands","preparedCommands","replaceTempUriInCommands","getModifiedEntityDiff","allDiff","prepareAttrDiff","saveTemporaryModifiedEntities","dcrProcessor","connectionsUriForCreation","entityUrisForCreation","findAllTemporaryRefEntityURI","urisForCreation","saveTemporaryEntities","startDataChangeRequestReview","objectURIs","getDCRObjectUris","workflowResult","startProcessInstance","processType","getDCRUri","status","saveRelationsByViewId","draftsForSave","createRelationsCommandsFromConnections","saveRelations","loadedEntityUri","updateRelationUriInTrees","relationUriProcessor","hasNewUri","treesState","treeId","entries","processRelation","newRoot","nodeProcessing","has","updateProfile","isAlwaysCreateDCR","createCommandExecutor","alwaysCreateDCR","dcrUri","savedEntitiesUrisMap","entityDiff","updateResult","entityCumulativeUpdate","uriPreprocessor","enhanceUriWithDCR","isChangeRequestUri","updateDCRUriFromResponse","window","alert","updatedTrees","updateTreesWithNewEntity","handleNewEntityLoaded","saveChanges","savedEntityUri","saveTemporaryEntity","checkIfEntityCanBeSaved","isEmptyEntity","notificationId","nanoid","text","actions","saveNewProfile","cleanUpDcr","dcrResponse","getDataChangeRequest","changeIds","pluck","deleteChangeRequestItem","changeItemId","saveExistingDraft","taskId","runTaskAction","userAction","Operation","isValid","changeRequest","url","searchParams","replace","handleModeUpdating","addToEntityRequiredAttributes","attrTypeFilter","createProfile","createTemporaryEntity","PROFILE_VIEWS_SET","createProfileWithAuthoring","createEntitiesFromAuthoringDraft","mainEntityUri","tempEntities","mainEntity","restEntities","partition","cloneProfile","data","cloneEntity","canRemove","checkMetadataForDelete","autoHideDuration","needConfirmation","confirmationText","confirmationDescription","applyAction","cancelAction","removeProfile","removeEntity","cancelProfileEditing","confirm","takeLeading","profileViewsSet","SidePanelViewsActions","sidePanelViewsLoaded","SIDE_PANEL_VIEWS_LOADED","reducer","combineReducers","searchNavigationListener","dispatch","searchConstants","searchActions","winnerUri","losersUris","updatedSearchNavigationData","cache","winnerIndex","indexOf","uriIndex","replaceWithWinnerUri","losersInCache","updatedTotal","updatedIndex","loser","updatedCache","removeLosersUris","applyMergeToSearchNavigationData","expandInvalidRelatonsListener","callback","cleanseLoadingListener","uiActions","profileActions","modifiedEntitiesActions","errorsActions","entityActions","dependentLookupsActions","lookupsActions","historyActions","modeActions","relationsActions","useMdmActions","useDispatch","useCallback","setDefaultProfilePicForModifiedEntity","setDefaultProfilePicForEntity","useMdmModule","useSelector","uiError","workflowEnvironmentUrl","exportPath","absoluteImagePath","uiPath","dtssPath","servicesPath","imageServicePath","reltioPath","imageAttributesFieldsOrder","showEntityId","pivotingAttributes","defaultMaxValues","attributesSortingStrategy","lookupAutocomplete","profileErrors","entityWithDiff","entityUriWithDataTenant","historyDiff","historyMode","historySlice","historyEvent","profileLastLoadedTime","checkIsWorkflowEnabled","checkIsCollaborationEnabled","uiConfigLayout","useMdmValues","listeners","getModule","reducerMap","sagas"],"sourceRoot":""}