@leav/ui 1.5.2 → 1.5.3-06aca4ca

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 (40) hide show
  1. package/dist/components/Explorer/DataView.d.ts +1 -0
  2. package/dist/components/Explorer/DataView.js +9 -3
  3. package/dist/components/Explorer/DataView.js.map +1 -1
  4. package/dist/components/Explorer/Explorer.d.ts +1 -0
  5. package/dist/components/Explorer/Explorer.js +4 -1
  6. package/dist/components/Explorer/Explorer.js.map +1 -1
  7. package/dist/components/Explorer/TableNameCell.js +1 -1
  8. package/dist/components/Explorer/TableNameCell.js.map +1 -1
  9. package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js +2 -3
  10. package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js.map +1 -1
  11. package/dist/components/Explorer/actions-mass/useExportMassAction.js +4 -4
  12. package/dist/components/Explorer/actions-mass/useExportMassAction.js.map +1 -1
  13. package/dist/components/Explorer/link-item/LinkModal.js +1 -1
  14. package/dist/components/Explorer/link-item/LinkModal.js.map +1 -1
  15. package/dist/components/Explorer/list-saved-views/SavedViews.js +6 -6
  16. package/dist/components/Explorer/list-saved-views/SavedViews.js.map +1 -1
  17. package/dist/components/Filters/context/useGetTreeFilters.js +3 -1
  18. package/dist/components/Filters/context/useGetTreeFilters.js.map +1 -1
  19. package/dist/components/Filters/filter-items/filter-type/TreeAttributeDropDown.js +1 -1
  20. package/dist/components/Filters/filter-items/filter-type/TreeAttributeDropDown.js.map +1 -1
  21. package/dist/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.js +6 -4
  22. package/dist/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.js.map +1 -1
  23. package/dist/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.js +4 -3
  24. package/dist/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.js.map +1 -1
  25. package/dist/components/Notifications/hooks/useNotificationSubscription.js +5 -6
  26. package/dist/components/Notifications/hooks/useNotificationSubscription.js.map +1 -1
  27. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js +4 -5
  28. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js.map +1 -1
  29. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.d.ts +1 -0
  30. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js +40 -19
  31. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js.map +1 -1
  32. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js +7 -1
  33. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js.map +1 -1
  34. package/dist/components/TriggerPreviewsGenerationModal/TriggerPreviewsGenerationModal.js +12 -4
  35. package/dist/components/TriggerPreviewsGenerationModal/TriggerPreviewsGenerationModal.js.map +1 -1
  36. package/dist/constants.d.ts +2 -0
  37. package/dist/constants.js +2 -0
  38. package/dist/constants.js.map +1 -1
  39. package/dist/locales/fr/shared.json +1 -1
  40. package/package.json +6 -6
@@ -4,7 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
4
4
  // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
5
5
  import { useEffect, useState } from 'react';
6
6
  import styled from 'styled-components';
7
- import { KitRadio, KitSpace, KitTypography, useKitNotification } from 'aristid-ds';
7
+ import { KitRadio, KitSpace, KitTypography, KitNotification } from 'aristid-ds';
8
8
  import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
9
9
  import { useViewSettingsContext } from '../manage-view-settings/store-view-settings/useViewSettingsContext';
10
10
  import { localizedTranslation } from '@leav/utils';
@@ -17,6 +17,7 @@ import { useEditLabelView } from '../manage-view-settings/save-view/useEditLabel
17
17
  import { IoCopy } from 'react-icons/io5';
18
18
  import classNames from 'classnames';
19
19
  import { DefaultViewId } from '../manage-view-settings/store-view-settings/viewSettingsInitialState';
20
+ import { INFO_NOTIFICATION_DURATION_SECONDS } from '../../../constants';
20
21
  const ContentWrapperStyledDiv = styled.div `
21
22
  display: flex;
22
23
  flex-direction: column;
@@ -69,7 +70,6 @@ const StyledCopySpan = styled.span `
69
70
  `;
70
71
  export const SavedViews = () => {
71
72
  const { t } = useSharedTranslation();
72
- const { kitNotification } = useKitNotification();
73
73
  const { availableLangs } = useLang();
74
74
  const { view } = useViewSettingsContext();
75
75
  const { loadView } = useLoadView();
@@ -93,19 +93,19 @@ export const SavedViews = () => {
93
93
  e.preventDefault();
94
94
  e.stopPropagation();
95
95
  await navigator.clipboard.writeText(viewItem.id || '');
96
- kitNotification.info({
96
+ KitNotification.info({
97
97
  message: `Id : ${viewItem?.id}`,
98
98
  description: t('explorer.viewList.copied'),
99
- duration: 3,
99
+ duration: INFO_NOTIFICATION_DURATION_SECONDS,
100
100
  });
101
101
  }, children: _jsx(IoCopy, {}) }))] }), _jsx(StyledIconsDiv, { children: _jsxs(KitSpace, { children: [iconEditLabel(viewItem), iconDelete(viewItem)] }) })] }, viewItem.id)))] }), _jsxs(StyleKitRadioGroup, { onChange: _onClickLoadView, value: currentView?.id, children: [_jsx(KitTypography.Title, { level: "h4", children: t('explorer.viewList.shared-views') }), sharedViews.length === 0 ? (_jsx(KitTypography.Text, { size: "fontSize5", children: t('explorer.viewList.no-shared-views') })) : (sharedViews.map(viewItem => (_jsxs(StyledViewDiv, { className: _selectedViewClass(viewItem.id), children: [_jsxs(KitRadio, { value: viewItem.id, children: [localizedTranslation(viewItem.label, availableLangs), viewItem?.id && (_jsx(StyledCopySpan, { title: `${t('explorer.viewList.copy-id')} : ${viewItem?.id}`, onClick: async (e) => {
102
102
  e.preventDefault();
103
103
  e.stopPropagation();
104
104
  await navigator.clipboard.writeText(viewItem.id || '');
105
- kitNotification.info({
105
+ KitNotification.info({
106
106
  message: `Id : ${viewItem?.id}`,
107
107
  description: t('explorer.viewList.copied'),
108
- duration: 3,
108
+ duration: INFO_NOTIFICATION_DURATION_SECONDS,
109
109
  });
110
110
  }, children: _jsx(IoCopy, {}) }))] }), isOwnerView(viewItem.ownerId) ? (_jsx(StyledIconsDiv, { children: _jsxs(KitSpace, { children: [iconEditLabel(viewItem), iconDelete(viewItem)] }) })) : null] }, viewItem.id))))] })] }), _jsx(ViewActionsButtons, {})] })] }));
111
111
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SavedViews.js","sourceRoot":"","sources":["../../../../src/components/Explorer/list-saved-views/SavedViews.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ComponentProps, type FunctionComponent, useEffect, useState} from 'react';\nimport styled from 'styled-components';\nimport {KitRadio, KitSpace, KitTypography, useKitNotification} from 'aristid-ds';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {useViewSettingsContext} from '../manage-view-settings/store-view-settings/useViewSettingsContext';\nimport {localizedTranslation} from '@leav/utils';\nimport {useLang} from '_ui/hooks';\nimport {ViewActionsButtons} from '../manage-view-settings/save-view/ViewActionsButtons';\nimport {useLoadView} from '../useLoadView';\nimport {type Radio} from 'antd';\nimport {useMeQuery} from '_ui/_gqlTypes';\nimport {useDeleteView} from '../manage-view-settings/save-view/useDeleteView';\nimport {useEditLabelView} from '../manage-view-settings/save-view/useEditLabelView';\nimport {IoCopy} from 'react-icons/io5';\nimport {type IUserView} from '../_types';\nimport classNames from 'classnames';\nimport {DefaultViewId} from '../manage-view-settings/store-view-settings/viewSettingsInitialState';\n\nconst ContentWrapperStyledDiv = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n`;\n\nconst StyledListViewsDiv = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst StyleKitRadioGroup = styled(KitRadio.Group)`\n padding: calc(var(--general-spacing-s) * 1px) 0;\n margin: 0 0 calc(var(--general-spacing-xs) * 1px) 0;\n color: var(--general-utilities-text-primary);\n gap: calc(var(--general-spacing-xs) * 1px);\n`;\n\nconst StyledViewDiv = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: calc(var(--general-spacing-xs) * 1px);\n border-radius: calc(var(--general-border-radius-xs) * 1px);\n\n &.selected,\n &:has(label:hover),\n &:has(svg:hover) {\n background: var(--general-utilities-main-light);\n }\n`;\n\nconst StyledIconsDiv = styled.div`\n .edit,\n .delete {\n font-size: calc(var(--general-typography-fontSize5) * 1px);\n flex: 0 0 auto;\n cursor: pointer;\n display: inline-block;\n }\n\n .edit {\n color: var(--general-utilities-main-default);\n }\n\n .delete {\n color: var(--general-utilities-error-default);\n }\n`;\n\nconst StyledCopySpan = styled.span`\n margin-left: calc(var(--general-spacing-xs) * 1px);\n color: var(--general-colors-neutral-grey-400);\n`;\n\nexport const SavedViews: FunctionComponent = () => {\n const {t} = useSharedTranslation();\n const {kitNotification} = useKitNotification();\n const {availableLangs} = useLang();\n const {view} = useViewSettingsContext();\n const {loadView} = useLoadView();\n const {iconDelete, deleteModal} = useDeleteView();\n const {iconEditLabel, editViewModal} = useEditLabelView();\n\n const [currentView, setCurrentView] = useState<IUserView | undefined>(\n view.savedViews.find(viewItem => view.viewId === viewItem.id) ?? undefined,\n );\n\n const {data: userData} = useMeQuery();\n\n const isOwnerView = (ownerId: string | null) => ownerId === userData?.me?.whoAmI?.id;\n\n const sharedViews = view.savedViews.filter(viewItem => viewItem.shared);\n const myViews = view.savedViews.filter(viewItem => !viewItem.shared);\n\n const _selectedViewClass = (viewId: string | null) =>\n classNames({\n selected: view.viewId === viewId,\n });\n\n useEffect(() => {\n setCurrentView(view.savedViews.find(viewItem => view.viewId === viewItem.id) ?? undefined);\n }, [view.viewId]);\n\n const _onClickLoadView: ComponentProps<typeof Radio>['onChange'] = e => {\n loadView(e.target.value);\n };\n\n return (\n <>\n {editViewModal}\n {deleteModal}\n <ContentWrapperStyledDiv>\n <StyledListViewsDiv>\n <StyleKitRadioGroup onChange={_onClickLoadView} value={currentView?.id}>\n <KitTypography.Title level=\"h4\">{t('explorer.viewList.my-views')}</KitTypography.Title>\n <StyledViewDiv className={_selectedViewClass(DefaultViewId)}>\n <KitRadio value={undefined}>{t('explorer.viewList.default-view')}</KitRadio>\n </StyledViewDiv>\n {myViews.map(viewItem => (\n <StyledViewDiv className={_selectedViewClass(viewItem.id)} key={viewItem.id}>\n <KitRadio value={viewItem.id}>\n {localizedTranslation(viewItem.label, availableLangs)}\n {viewItem?.id && (\n <StyledCopySpan\n title={`${t('explorer.viewList.copy-id')} : ${viewItem?.id}`}\n onClick={async e => {\n e.preventDefault();\n e.stopPropagation();\n await navigator.clipboard.writeText(viewItem.id || '');\n kitNotification.info({\n message: `Id : ${viewItem?.id}`,\n description: t('explorer.viewList.copied'),\n duration: 3,\n });\n }}\n >\n <IoCopy />\n </StyledCopySpan>\n )}\n </KitRadio>\n <StyledIconsDiv>\n <KitSpace>\n {iconEditLabel(viewItem)}\n {iconDelete(viewItem)}\n </KitSpace>\n </StyledIconsDiv>\n </StyledViewDiv>\n ))}\n </StyleKitRadioGroup>\n <StyleKitRadioGroup onChange={_onClickLoadView} value={currentView?.id}>\n <KitTypography.Title level=\"h4\">{t('explorer.viewList.shared-views')}</KitTypography.Title>\n {sharedViews.length === 0 ? (\n <KitTypography.Text size=\"fontSize5\">\n {t('explorer.viewList.no-shared-views')}\n </KitTypography.Text>\n ) : (\n sharedViews.map(viewItem => (\n <StyledViewDiv className={_selectedViewClass(viewItem.id)} key={viewItem.id}>\n <KitRadio value={viewItem.id}>\n {localizedTranslation(viewItem.label, availableLangs)}\n {viewItem?.id && (\n <StyledCopySpan\n title={`${t('explorer.viewList.copy-id')} : ${viewItem?.id}`}\n onClick={async e => {\n e.preventDefault();\n e.stopPropagation();\n await navigator.clipboard.writeText(viewItem.id || '');\n kitNotification.info({\n message: `Id : ${viewItem?.id}`,\n description: t('explorer.viewList.copied'),\n duration: 3,\n });\n }}\n >\n <IoCopy />\n </StyledCopySpan>\n )}\n </KitRadio>\n {isOwnerView(viewItem.ownerId) ? (\n <StyledIconsDiv>\n <KitSpace>\n {iconEditLabel(viewItem)}\n {iconDelete(viewItem)}\n </KitSpace>\n </StyledIconsDiv>\n ) : null}\n </StyledViewDiv>\n ))\n )}\n </StyleKitRadioGroup>\n </StyledListViewsDiv>\n <ViewActionsButtons />\n </ContentWrapperStyledDiv>\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"SavedViews.js","sourceRoot":"","sources":["../../../../src/components/Explorer/list-saved-views/SavedViews.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ComponentProps, type FunctionComponent, useEffect, useState} from 'react';\nimport styled from 'styled-components';\nimport {KitRadio, KitSpace, KitTypography, KitNotification} from 'aristid-ds';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {useViewSettingsContext} from '../manage-view-settings/store-view-settings/useViewSettingsContext';\nimport {localizedTranslation} from '@leav/utils';\nimport {useLang} from '_ui/hooks';\nimport {ViewActionsButtons} from '../manage-view-settings/save-view/ViewActionsButtons';\nimport {useLoadView} from '../useLoadView';\nimport {type Radio} from 'antd';\nimport {useMeQuery} from '_ui/_gqlTypes';\nimport {useDeleteView} from '../manage-view-settings/save-view/useDeleteView';\nimport {useEditLabelView} from '../manage-view-settings/save-view/useEditLabelView';\nimport {IoCopy} from 'react-icons/io5';\nimport {type IUserView} from '../_types';\nimport classNames from 'classnames';\nimport {DefaultViewId} from '../manage-view-settings/store-view-settings/viewSettingsInitialState';\nimport {INFO_NOTIFICATION_DURATION_SECONDS} from '_ui/constants';\n\nconst ContentWrapperStyledDiv = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n`;\n\nconst StyledListViewsDiv = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst StyleKitRadioGroup = styled(KitRadio.Group)`\n padding: calc(var(--general-spacing-s) * 1px) 0;\n margin: 0 0 calc(var(--general-spacing-xs) * 1px) 0;\n color: var(--general-utilities-text-primary);\n gap: calc(var(--general-spacing-xs) * 1px);\n`;\n\nconst StyledViewDiv = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: calc(var(--general-spacing-xs) * 1px);\n border-radius: calc(var(--general-border-radius-xs) * 1px);\n\n &.selected,\n &:has(label:hover),\n &:has(svg:hover) {\n background: var(--general-utilities-main-light);\n }\n`;\n\nconst StyledIconsDiv = styled.div`\n .edit,\n .delete {\n font-size: calc(var(--general-typography-fontSize5) * 1px);\n flex: 0 0 auto;\n cursor: pointer;\n display: inline-block;\n }\n\n .edit {\n color: var(--general-utilities-main-default);\n }\n\n .delete {\n color: var(--general-utilities-error-default);\n }\n`;\n\nconst StyledCopySpan = styled.span`\n margin-left: calc(var(--general-spacing-xs) * 1px);\n color: var(--general-colors-neutral-grey-400);\n`;\n\nexport const SavedViews: FunctionComponent = () => {\n const {t} = useSharedTranslation();\n const {availableLangs} = useLang();\n const {view} = useViewSettingsContext();\n const {loadView} = useLoadView();\n const {iconDelete, deleteModal} = useDeleteView();\n const {iconEditLabel, editViewModal} = useEditLabelView();\n\n const [currentView, setCurrentView] = useState<IUserView | undefined>(\n view.savedViews.find(viewItem => view.viewId === viewItem.id) ?? undefined,\n );\n\n const {data: userData} = useMeQuery();\n\n const isOwnerView = (ownerId: string | null) => ownerId === userData?.me?.whoAmI?.id;\n\n const sharedViews = view.savedViews.filter(viewItem => viewItem.shared);\n const myViews = view.savedViews.filter(viewItem => !viewItem.shared);\n\n const _selectedViewClass = (viewId: string | null) =>\n classNames({\n selected: view.viewId === viewId,\n });\n\n useEffect(() => {\n setCurrentView(view.savedViews.find(viewItem => view.viewId === viewItem.id) ?? undefined);\n }, [view.viewId]);\n\n const _onClickLoadView: ComponentProps<typeof Radio>['onChange'] = e => {\n loadView(e.target.value);\n };\n\n return (\n <>\n {editViewModal}\n {deleteModal}\n <ContentWrapperStyledDiv>\n <StyledListViewsDiv>\n <StyleKitRadioGroup onChange={_onClickLoadView} value={currentView?.id}>\n <KitTypography.Title level=\"h4\">{t('explorer.viewList.my-views')}</KitTypography.Title>\n <StyledViewDiv className={_selectedViewClass(DefaultViewId)}>\n <KitRadio value={undefined}>{t('explorer.viewList.default-view')}</KitRadio>\n </StyledViewDiv>\n {myViews.map(viewItem => (\n <StyledViewDiv className={_selectedViewClass(viewItem.id)} key={viewItem.id}>\n <KitRadio value={viewItem.id}>\n {localizedTranslation(viewItem.label, availableLangs)}\n {viewItem?.id && (\n <StyledCopySpan\n title={`${t('explorer.viewList.copy-id')} : ${viewItem?.id}`}\n onClick={async e => {\n e.preventDefault();\n e.stopPropagation();\n await navigator.clipboard.writeText(viewItem.id || '');\n KitNotification.info({\n message: `Id : ${viewItem?.id}`,\n description: t('explorer.viewList.copied'),\n duration: INFO_NOTIFICATION_DURATION_SECONDS,\n });\n }}\n >\n <IoCopy />\n </StyledCopySpan>\n )}\n </KitRadio>\n <StyledIconsDiv>\n <KitSpace>\n {iconEditLabel(viewItem)}\n {iconDelete(viewItem)}\n </KitSpace>\n </StyledIconsDiv>\n </StyledViewDiv>\n ))}\n </StyleKitRadioGroup>\n <StyleKitRadioGroup onChange={_onClickLoadView} value={currentView?.id}>\n <KitTypography.Title level=\"h4\">{t('explorer.viewList.shared-views')}</KitTypography.Title>\n {sharedViews.length === 0 ? (\n <KitTypography.Text size=\"fontSize5\">\n {t('explorer.viewList.no-shared-views')}\n </KitTypography.Text>\n ) : (\n sharedViews.map(viewItem => (\n <StyledViewDiv className={_selectedViewClass(viewItem.id)} key={viewItem.id}>\n <KitRadio value={viewItem.id}>\n {localizedTranslation(viewItem.label, availableLangs)}\n {viewItem?.id && (\n <StyledCopySpan\n title={`${t('explorer.viewList.copy-id')} : ${viewItem?.id}`}\n onClick={async e => {\n e.preventDefault();\n e.stopPropagation();\n await navigator.clipboard.writeText(viewItem.id || '');\n KitNotification.info({\n message: `Id : ${viewItem?.id}`,\n description: t('explorer.viewList.copied'),\n duration: INFO_NOTIFICATION_DURATION_SECONDS,\n });\n }}\n >\n <IoCopy />\n </StyledCopySpan>\n )}\n </KitRadio>\n {isOwnerView(viewItem.ownerId) ? (\n <StyledIconsDiv>\n <KitSpace>\n {iconEditLabel(viewItem)}\n {iconDelete(viewItem)}\n </KitSpace>\n </StyledIconsDiv>\n ) : null}\n </StyledViewDiv>\n ))\n )}\n </StyleKitRadioGroup>\n </StyledListViewsDiv>\n <ViewActionsButtons />\n </ContentWrapperStyledDiv>\n </>\n );\n};\n"]}
@@ -47,7 +47,9 @@ export const useGetTreeFilters = ({ libraryId, skip }) => {
47
47
  };
48
48
  }));
49
49
  const attributeRecords = treeResponse.reduce((acc, item) => {
50
- acc[item.attributeId] = item.recordIds;
50
+ if (item.recordIds.length > 0) {
51
+ acc[item.attributeId] = item.recordIds;
52
+ }
51
53
  return acc;
52
54
  }, {});
53
55
  setTreeFilters(attributeRecords);
@@ -1 +1 @@
1
- {"version":3,"file":"useGetTreeFilters.js","sourceRoot":"","sources":["../../../../src/components/Filters/context/useGetTreeFilters.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {\n type TreeAttributeDetailsFragment,\n useGetLibraryByIdQuery,\n useTreeFilterByDefaultValuesLazyQuery,\n} from '_ui/_gqlTypes';\nimport {useEffect, useState} from 'react';\n\nexport interface ITreeFilters {\n [x: string]: Array<{nodeId: string; libraryId: string; value: string; label: string}>;\n}\n\nexport const useGetTreeFilters = ({libraryId, skip}: {libraryId: string; skip: boolean}) => {\n const [treeFilters, setTreeFilters] = useState<ITreeFilters>({});\n const [treeFiltersLoading, setTreeFiltersLoading] = useState(true);\n const [treeFilterByDefaultValues] = useTreeFilterByDefaultValuesLazyQuery();\n\n const {data: libraryData, loading: libraryLoading} = useGetLibraryByIdQuery({\n variables: {\n id: libraryId,\n },\n skip: skip || !libraryId,\n });\n\n useEffect(() => {\n if (skip || !libraryId || libraryLoading) {\n return;\n }\n\n const fetchTreeFilters = async () => {\n const treeAttributesWithExtendedPermissions: Array<{attributeId: string; treeId: string}> =\n libraryData?.libraries.list[0]?.permissions_conf?.permissionTreeAttributes.map(attribute => ({\n attributeId: attribute.id,\n treeId: (\n libraryData?.libraries.list[0]?.attributes.find(\n tree => tree.id === attribute.id,\n ) as TreeAttributeDetailsFragment\n )?.linked_tree?.id,\n })) || [];\n\n const treeResponse = await Promise.all(\n treeAttributesWithExtendedPermissions.map(async attribute => {\n const res = await treeFilterByDefaultValues({\n variables: {\n treeId: attribute.treeId,\n accessRecordByDefaultPermission: {\n attributeId: attribute.attributeId,\n libraryId,\n },\n },\n });\n\n return {\n attributeId: attribute.attributeId,\n recordIds:\n res?.data?.treeNodeChildren?.list\n ?.map(item =>\n item.accessRecordByDefaultPermission\n ? {\n nodeId: item.id,\n libraryId: item.record.whoAmI.library.id,\n value: item.record.id,\n label: item.record.whoAmI.label,\n }\n : undefined,\n )\n .filter(Boolean) || [],\n };\n }),\n );\n\n const attributeRecords = treeResponse.reduce((acc, item) => {\n acc[item.attributeId] = item.recordIds;\n return acc;\n }, {});\n\n setTreeFilters(attributeRecords);\n setTreeFiltersLoading(false);\n };\n\n fetchTreeFilters();\n }, [skip, libraryId, libraryLoading]);\n\n return {\n data: treeFilters,\n loading: treeFiltersLoading,\n };\n};\n"]}
1
+ {"version":3,"file":"useGetTreeFilters.js","sourceRoot":"","sources":["../../../../src/components/Filters/context/useGetTreeFilters.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {\n type TreeAttributeDetailsFragment,\n useGetLibraryByIdQuery,\n useTreeFilterByDefaultValuesLazyQuery,\n} from '_ui/_gqlTypes';\nimport {useEffect, useState} from 'react';\n\nexport interface ITreeFilters {\n [x: string]: Array<{nodeId: string; libraryId: string; value: string; label: string}>;\n}\n\nexport const useGetTreeFilters = ({libraryId, skip}: {libraryId: string; skip: boolean}) => {\n const [treeFilters, setTreeFilters] = useState<ITreeFilters>({});\n const [treeFiltersLoading, setTreeFiltersLoading] = useState(true);\n const [treeFilterByDefaultValues] = useTreeFilterByDefaultValuesLazyQuery();\n\n const {data: libraryData, loading: libraryLoading} = useGetLibraryByIdQuery({\n variables: {\n id: libraryId,\n },\n skip: skip || !libraryId,\n });\n\n useEffect(() => {\n if (skip || !libraryId || libraryLoading) {\n return;\n }\n\n const fetchTreeFilters = async () => {\n const treeAttributesWithExtendedPermissions: Array<{attributeId: string; treeId: string}> =\n libraryData?.libraries.list[0]?.permissions_conf?.permissionTreeAttributes.map(attribute => ({\n attributeId: attribute.id,\n treeId: (\n libraryData?.libraries.list[0]?.attributes.find(\n tree => tree.id === attribute.id,\n ) as TreeAttributeDetailsFragment\n )?.linked_tree?.id,\n })) || [];\n\n const treeResponse = await Promise.all(\n treeAttributesWithExtendedPermissions.map(async attribute => {\n const res = await treeFilterByDefaultValues({\n variables: {\n treeId: attribute.treeId,\n accessRecordByDefaultPermission: {\n attributeId: attribute.attributeId,\n libraryId,\n },\n },\n });\n\n return {\n attributeId: attribute.attributeId,\n recordIds:\n res?.data?.treeNodeChildren?.list\n ?.map(item =>\n item.accessRecordByDefaultPermission\n ? {\n nodeId: item.id,\n libraryId: item.record.whoAmI.library.id,\n value: item.record.id,\n label: item.record.whoAmI.label,\n }\n : undefined,\n )\n .filter(Boolean) || [],\n };\n }),\n );\n\n const attributeRecords = treeResponse.reduce((acc, item) => {\n if (item.recordIds.length > 0) {\n acc[item.attributeId] = item.recordIds;\n }\n return acc;\n }, {});\n\n setTreeFilters(attributeRecords);\n setTreeFiltersLoading(false);\n };\n\n fetchTreeFilters();\n }, [skip, libraryId, libraryLoading]);\n\n return {\n data: treeFilters,\n loading: treeFiltersLoading,\n };\n};\n"]}
@@ -68,6 +68,6 @@ export const TreeAttributeDropDown = ({ filter, onFilterChange, selectDropDownRe
68
68
  };
69
69
  const showSearch = filter.condition &&
70
70
  ![AttributeConditionFilter.IS_EMPTY, AttributeConditionFilter.IS_NOT_EMPTY].includes(filter.condition);
71
- return (_jsxs(DivStyled, { children: [_jsx(KitSelect, { options: availableConditionsOptions, onChange: _onConditionChanged, value: filter.condition, getPopupContainer: () => selectDropDownRef?.current ?? document.body, "aria-label": String(t('explorer.filter-link-condition')) }), showSearch && (_jsx(SelectTreeNode, { treeId: filter.attribute.linkedTree?.id ?? '', selectedNodes: selectedNodesIds, onSelect: _handleOnSelect, onCheck: _handleOnCheck, multiple: true, canSelectRoot: false, checkStrictly: false, checkable: true, loadRecursively: true, noPagination: true }))] }));
71
+ return (_jsxs(DivStyled, { children: [_jsx(KitSelect, { options: availableConditionsOptions, onChange: _onConditionChanged, value: filter.condition, getPopupContainer: () => selectDropDownRef?.current ?? document.body, "aria-label": String(t('explorer.filter-link-condition')) }), showSearch && (_jsx(SelectTreeNode, { treeId: filter.attribute.linkedTree?.id ?? '', selectedNodes: selectedNodesIds, onSelect: _handleOnSelect, onCheck: _handleOnCheck, multiple: true, canSelectRoot: true, checkStrictly: false, checkable: true, loadRecursively: true, noPagination: true }))] }));
72
72
  };
73
73
  //# sourceMappingURL=TreeAttributeDropDown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TreeAttributeDropDown.js","sourceRoot":"","sources":["../../../../../src/components/Filters/filter-items/filter-type/TreeAttributeDropDown.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ComponentProps, type FunctionComponent, useEffect, useState} from 'react';\nimport {KitSelect} from 'aristid-ds';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {AttributeConditionFilter, type IRecordIdentity, type ITreeNodeWithRecord} from '_ui/types';\nimport {RecordFilterCondition} from '_ui/_gqlTypes';\nimport {type IFilterChildrenTreeDropDownProps} from './_types';\nimport {SelectTreeNode} from '_ui/components/SelectTreeNode';\nimport styled from 'styled-components';\nimport {useConditionsOptionsByType} from './useConditionOptionsByType';\n\nconst DivStyled = styled.div`\n max-height: 30rem;\n overflow: auto;\n`;\n\nexport const TreeAttributeDropDown: FunctionComponent<IFilterChildrenTreeDropDownProps> = ({\n filter,\n onFilterChange,\n selectDropDownRef,\n}) => {\n const {t} = useSharedTranslation();\n\n const selectedNodesIds = (filter.nodes ?? []).map(node => node.nodeId);\n\n const {conditionOptionsByType: availableConditionsOptions} = useConditionsOptionsByType(filter);\n\n const _handleOnSelect = (node: ITreeNodeWithRecord, selected: boolean) => {\n let newSelectedIds: string[];\n if (selected) {\n newSelectedIds = [...selectedNodesIds, node.id];\n } else {\n newSelectedIds = selectedNodesIds.filter(selectedValue => selectedValue !== node.id);\n }\n onFilterChange({\n ...filter,\n nodes: newSelectedIds.map(id => ({nodeId: id, libraryId: node.record.whoAmI.library.id})),\n });\n };\n\n const _onConditionChanged: ComponentProps<typeof KitSelect>['onChange'] = condition =>\n onFilterChange({...filter, condition});\n\n const _getRecursiveChildrenRecord = (nodes: ITreeNodeWithRecord[]): IRecordIdentity[] => {\n const records: IRecordIdentity[] = [];\n const collectRecordIdsRecursively = (nodeList: ITreeNodeWithRecord[]) => {\n for (const node of nodeList) {\n if (node.id === filter.attribute.linkedTree?.id) {\n continue;\n }\n if (node.record) {\n records.push(node.record);\n }\n if (node.children && node.children.length > 0) {\n collectRecordIdsRecursively(node.children);\n }\n }\n };\n collectRecordIdsRecursively(nodes);\n // Delete duplicates\n return Array.from(new Set(records));\n };\n const _getRecursiveFieldsFromLibraries = (nodes: ITreeNodeWithRecord[]): string[] =>\n nodes\n .filter(node => !!node.record?.whoAmI?.library?.id)\n .map(node => `${filter.attribute.id}.${node.record?.whoAmI?.library?.id}.id`);\n\n const _handleOnCheck = (selection: ITreeNodeWithRecord[]) => {\n const newSelectedNodes = selection.filter(node => !node?.disabled);\n\n const records = _getRecursiveChildrenRecord(selection);\n const fields = _getRecursiveFieldsFromLibraries(selection);\n\n onFilterChange({\n ...filter,\n nodes: newSelectedNodes.map(node => ({\n nodeId: node.id,\n libraryId: node.record?.whoAmI.library.id ?? records[0]?.whoAmI.library.id ?? '',\n })),\n value: records.map(record => record.id),\n formattedValue: records.map(record => record.whoAmI.label).filter(Boolean),\n condition: filter.condition ?? RecordFilterCondition.EQUAL,\n field: fields,\n });\n };\n\n const showSearch =\n filter.condition &&\n ![AttributeConditionFilter.IS_EMPTY, AttributeConditionFilter.IS_NOT_EMPTY].includes(filter.condition);\n\n return (\n <DivStyled>\n <KitSelect\n options={availableConditionsOptions}\n onChange={_onConditionChanged}\n value={filter.condition}\n getPopupContainer={() => selectDropDownRef?.current ?? document.body}\n aria-label={String(t('explorer.filter-link-condition'))}\n />\n {showSearch && (\n <SelectTreeNode\n treeId={filter.attribute.linkedTree?.id ?? ''}\n selectedNodes={selectedNodesIds}\n onSelect={_handleOnSelect}\n onCheck={_handleOnCheck}\n multiple\n canSelectRoot={false}\n checkStrictly={false}\n checkable\n loadRecursively={true}\n noPagination={true}\n />\n )}\n </DivStyled>\n );\n};\n"]}
1
+ {"version":3,"file":"TreeAttributeDropDown.js","sourceRoot":"","sources":["../../../../../src/components/Filters/filter-items/filter-type/TreeAttributeDropDown.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ComponentProps, type FunctionComponent, useEffect, useState} from 'react';\nimport {KitSelect} from 'aristid-ds';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {AttributeConditionFilter, type IRecordIdentity, type ITreeNodeWithRecord} from '_ui/types';\nimport {RecordFilterCondition} from '_ui/_gqlTypes';\nimport {type IFilterChildrenTreeDropDownProps} from './_types';\nimport {SelectTreeNode} from '_ui/components/SelectTreeNode';\nimport styled from 'styled-components';\nimport {useConditionsOptionsByType} from './useConditionOptionsByType';\n\nconst DivStyled = styled.div`\n max-height: 30rem;\n overflow: auto;\n`;\n\nexport const TreeAttributeDropDown: FunctionComponent<IFilterChildrenTreeDropDownProps> = ({\n filter,\n onFilterChange,\n selectDropDownRef,\n}) => {\n const {t} = useSharedTranslation();\n\n const selectedNodesIds = (filter.nodes ?? []).map(node => node.nodeId);\n\n const {conditionOptionsByType: availableConditionsOptions} = useConditionsOptionsByType(filter);\n\n const _handleOnSelect = (node: ITreeNodeWithRecord, selected: boolean) => {\n let newSelectedIds: string[];\n if (selected) {\n newSelectedIds = [...selectedNodesIds, node.id];\n } else {\n newSelectedIds = selectedNodesIds.filter(selectedValue => selectedValue !== node.id);\n }\n onFilterChange({\n ...filter,\n nodes: newSelectedIds.map(id => ({nodeId: id, libraryId: node.record.whoAmI.library.id})),\n });\n };\n\n const _onConditionChanged: ComponentProps<typeof KitSelect>['onChange'] = condition =>\n onFilterChange({...filter, condition});\n\n const _getRecursiveChildrenRecord = (nodes: ITreeNodeWithRecord[]): IRecordIdentity[] => {\n const records: IRecordIdentity[] = [];\n const collectRecordIdsRecursively = (nodeList: ITreeNodeWithRecord[]) => {\n for (const node of nodeList) {\n if (node.id === filter.attribute.linkedTree?.id) {\n continue;\n }\n if (node.record) {\n records.push(node.record);\n }\n if (node.children && node.children.length > 0) {\n collectRecordIdsRecursively(node.children);\n }\n }\n };\n collectRecordIdsRecursively(nodes);\n // Delete duplicates\n return Array.from(new Set(records));\n };\n const _getRecursiveFieldsFromLibraries = (nodes: ITreeNodeWithRecord[]): string[] =>\n nodes\n .filter(node => !!node.record?.whoAmI?.library?.id)\n .map(node => `${filter.attribute.id}.${node.record?.whoAmI?.library?.id}.id`);\n\n const _handleOnCheck = (selection: ITreeNodeWithRecord[]) => {\n const newSelectedNodes = selection.filter(node => !node?.disabled);\n\n const records = _getRecursiveChildrenRecord(selection);\n const fields = _getRecursiveFieldsFromLibraries(selection);\n\n onFilterChange({\n ...filter,\n nodes: newSelectedNodes.map(node => ({\n nodeId: node.id,\n libraryId: node.record?.whoAmI.library.id ?? records[0]?.whoAmI.library.id ?? '',\n })),\n value: records.map(record => record.id),\n formattedValue: records.map(record => record.whoAmI.label).filter(Boolean),\n condition: filter.condition ?? RecordFilterCondition.EQUAL,\n field: fields,\n });\n };\n\n const showSearch =\n filter.condition &&\n ![AttributeConditionFilter.IS_EMPTY, AttributeConditionFilter.IS_NOT_EMPTY].includes(filter.condition);\n\n return (\n <DivStyled>\n <KitSelect\n options={availableConditionsOptions}\n onChange={_onConditionChanged}\n value={filter.condition}\n getPopupContainer={() => selectDropDownRef?.current ?? document.body}\n aria-label={String(t('explorer.filter-link-condition'))}\n />\n {showSearch && (\n <SelectTreeNode\n treeId={filter.attribute.linkedTree?.id ?? ''}\n selectedNodes={selectedNodesIds}\n onSelect={_handleOnSelect}\n onCheck={_handleOnCheck}\n multiple\n canSelectRoot={true}\n checkStrictly={false}\n checkable\n loadRecursively={true}\n noPagination={true}\n />\n )}\n </DivStyled>\n );\n};\n"]}
@@ -4,18 +4,18 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
5
5
  import { extractArgsFromString } from '@leav/utils';
6
6
  import { message, Space, Spin } from 'antd';
7
- import { KitAlert, KitUpload, useKitNotification } from 'aristid-ds';
7
+ import { KitAlert, KitUpload, KitNotification } from 'aristid-ds';
8
8
  import { useState } from 'react';
9
9
  import { read as xlsxRead, utils as xlsxUtils } from 'xlsx';
10
10
  import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
11
11
  import { AttributeType, ImportMode, ImportType, } from '../../../_gqlTypes';
12
12
  import { ImportReducerActionTypes } from '../importReducer/importReducer';
13
13
  import { useImportReducerContext } from '../importReducer/ImportReducerContext';
14
+ import { ERROR_NOTIFICATION_DURATION_SECONDS } from '../../../constants';
14
15
  const defaultType = ImportType.STANDARD;
15
16
  const defaultMode = ImportMode.upsert;
16
17
  function ImportModalSelectFileStep({ onGetAttributes }) {
17
18
  const { t } = useSharedTranslation();
18
- const { kitNotification } = useKitNotification();
19
19
  const { state, dispatch } = useImportReducerContext();
20
20
  const { file } = state;
21
21
  const _setFileData = async (content) => {
@@ -143,9 +143,10 @@ function ImportModalSelectFileStep({ onGetAttributes }) {
143
143
  }
144
144
  catch (error) {
145
145
  const errorMessage = error?.message ?? t('error.error_occurred');
146
- kitNotification.error({
146
+ KitNotification.error({
147
147
  message: t('error.error_occurred'),
148
148
  description: errorMessage,
149
+ duration: ERROR_NOTIFICATION_DURATION_SECONDS,
149
150
  });
150
151
  }
151
152
  };
@@ -156,9 +157,10 @@ function ImportModalSelectFileStep({ onGetAttributes }) {
156
157
  setLoading(false);
157
158
  };
158
159
  reader.onerror = e => {
159
- kitNotification.error({
160
+ KitNotification.error({
160
161
  message: t('error.error_occurred'),
161
162
  description: reader.error?.message ?? '',
163
+ duration: ERROR_NOTIFICATION_DURATION_SECONDS,
162
164
  });
163
165
  };
164
166
  // Prevent default upload. We'll handle it ourselves later on
@@ -1 +1 @@
1
- {"version":3,"file":"ImportModalSelectFileStep.js","sourceRoot":"","sources":["../../../../src/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {extractArgsFromString} from '@leav/utils';\nimport {message, Space, Spin} from 'antd';\nimport {KitAlert, KitUpload, useKitNotification} from 'aristid-ds';\nimport {type IKitDragger} from 'aristid-ds/dist/Kit/DataEntry/Upload/types';\nimport {useState} from 'react';\nimport {read as xlsxRead, utils as xlsxUtils} from 'xlsx';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {\n type AttributesByLibAttributeFragment,\n type AttributesByLibAttributeLinkAttributeFragment,\n AttributeType,\n ImportMode,\n ImportType,\n} from '_ui/_gqlTypes';\nimport {ImportReducerActionTypes} from '../importReducer/importReducer';\nimport {useImportReducerContext} from '../importReducer/ImportReducerContext';\nimport {type ISheet} from '../_types';\n\ninterface IImportModalSelectFileStepsProps {\n onGetAttributes: (library: string) => Promise<AttributesByLibAttributeFragment[]>;\n}\n\nconst defaultType = ImportType.STANDARD;\nconst defaultMode = ImportMode.upsert;\n\nfunction ImportModalSelectFileStep({onGetAttributes}: IImportModalSelectFileStepsProps): JSX.Element {\n const {t} = useSharedTranslation();\n const {kitNotification} = useKitNotification();\n\n const {state, dispatch} = useImportReducerContext();\n const {file} = state;\n\n const _setFileData = async content => {\n const workbook = xlsxRead(content, {type: 'binary'});\n\n const s: ISheet[] = [];\n\n for (const sheetName in workbook.Sheets) {\n if (workbook.Sheets.hasOwnProperty(sheetName)) {\n // Use the sheet_to_json method to convert excel to json data\n const sheetData: Array<{[col: string]: string}> = xlsxUtils.sheet_to_json(workbook.Sheets[sheetName], {\n blankrows: false,\n defval: null,\n });\n\n // if sheet is empty we skip it\n if (!sheetData.length) {\n continue;\n }\n\n // get columns' name\n const sheetColumns = Object.keys(sheetData[0]);\n\n // match only first line cells (A1, B1, etc.)\n const firstRowAddresses = Object.keys(workbook.Sheets[sheetName]).filter(\n k => !!k.match(/\\b[A-Z]+1\\b/g),\n );\n\n const isMapped = !!workbook.Sheets[sheetName][firstRowAddresses[0]]?.c;\n\n // Mapping is present.\n if (isMapped) {\n const comments: string[] = [];\n\n for (const address of firstRowAddresses) {\n // get first line comments and delete \"\\n\" characters\n comments.push(workbook.Sheets[sheetName][address].c?.[0]?.t?.replace(/\\n/g, ' ') || null);\n }\n\n const params = extractArgsFromString(comments[0]);\n\n const sType = params.type ?? defaultType;\n const sLibrary = params.library;\n const sLinkAttribute = params.linkAttribute;\n const sMode = params.mode ?? defaultMode;\n let sMapping = [];\n const sTreeLinkLibrary = params.treeLinkLibrary;\n let sKeyColumnIndex: number;\n let sKeyToColumnIndex: number;\n\n let sKeyToAttributes: AttributesByLibAttributeFragment[] = [];\n\n const attributes = await onGetAttributes(sLibrary);\n\n // Extract mapping, keyIndex and keyToIndex from all columns comments\n for (const [index, comm] of comments.entries()) {\n const commArgs = extractArgsFromString(comm);\n sMapping.push(String(commArgs.id) ?? null);\n\n if (commArgs.key) {\n sKeyColumnIndex = index;\n }\n\n if (commArgs.keyTo) {\n sKeyToColumnIndex = index;\n }\n }\n\n const linkAttributeProps =\n sKeyToColumnIndex && sLinkAttribute\n ? (attributes.find(\n a => a.id === sLinkAttribute,\n ) as AttributesByLibAttributeLinkAttributeFragment)\n : null;\n\n if (linkAttributeProps && (linkAttributeProps.type !== AttributeType.tree || sTreeLinkLibrary)) {\n const keyToLibrary =\n linkAttributeProps.type === AttributeType.tree\n ? sTreeLinkLibrary\n : linkAttributeProps?.linked_library?.id;\n sKeyToAttributes = await onGetAttributes(keyToLibrary);\n }\n\n // Check if all mapping attributes actually exist\n sMapping = sMapping.map((mappingAttribute, index) => {\n const attributesToCheck = index === sKeyToColumnIndex ? sKeyToAttributes : attributes;\n return attributesToCheck.find(attribute => attribute.id === mappingAttribute)\n ? mappingAttribute\n : null;\n });\n\n s.push({\n name: sheetName,\n attributes,\n columns: sheetColumns,\n type: ImportType[sType],\n mode: ImportMode[sMode],\n library: sLibrary,\n linkAttribute: sLinkAttribute,\n linkAttributeProps,\n keyColumnIndex: sKeyColumnIndex,\n keyToColumnIndex: sKeyToColumnIndex,\n keyToAttributes: sKeyToAttributes,\n treeLinkLibrary: sTreeLinkLibrary,\n data: sheetData.length ? sheetData : null,\n mapping: sMapping,\n });\n } else {\n const sLibrary = state.defaultLibrary;\n const attributes = await onGetAttributes(sLibrary);\n\n s.push({\n name: sheetName,\n library: sLibrary,\n columns: sheetColumns,\n type: defaultType,\n mode: defaultMode,\n attributes,\n mapping: [],\n data: sheetData.length ? sheetData : null,\n });\n }\n }\n }\n\n if (!s.length || s.every(sheet => sheet.data === null)) {\n message.error(t('import.empty_file'));\n return false;\n }\n\n dispatch({type: ImportReducerActionTypes.SET_SHEETS, sheets: s});\n\n return true;\n };\n\n const [loading, setLoading] = useState(false);\n\n const draggerProps: IKitDragger = {\n name: 'file',\n multiple: false,\n accept: '.xlsx',\n description: t('import.file_selection_restriction', {allowedFormat: '.xlsx'}),\n title: file?.name ?? t('import.file_selection_instruction'),\n beforeUpload: fileToImport => {\n // Read file to read mapping and display a preview on next step\n const reader = new FileReader();\n reader.readAsBinaryString(fileToImport);\n\n reader.onload = async e => {\n try {\n const res = await _setFileData(reader.result);\n\n if (res) {\n dispatch({type: ImportReducerActionTypes.SET_FILE, file: fileToImport});\n }\n dispatch({type: ImportReducerActionTypes.SET_OK_BTN, okBtn: res});\n } catch (error) {\n const errorMessage = error?.message ?? t('error.error_occurred');\n kitNotification.error({\n message: t('error.error_occurred'),\n description: errorMessage,\n });\n }\n };\n\n reader.onloadstart = e => {\n setLoading(true);\n };\n\n reader.onloadend = e => {\n setLoading(false);\n };\n\n reader.onerror = e => {\n kitNotification.error({\n message: t('error.error_occurred'),\n description: reader.error?.message ?? '',\n });\n };\n\n // Prevent default upload. We'll handle it ourselves later on\n return false;\n },\n };\n\n return (\n <Space direction=\"vertical\" style={{width: '100%'}}>\n <Spin spinning={loading}>\n <KitUpload.Dragger {...draggerProps} />\n </Spin>\n <KitAlert message={t('import.first_line_info')} type=\"info\" showIcon />\n </Space>\n );\n}\n\nexport default ImportModalSelectFileStep;\n"]}
1
+ {"version":3,"file":"ImportModalSelectFileStep.js","sourceRoot":"","sources":["../../../../src/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {extractArgsFromString} from '@leav/utils';\nimport {message, Space, Spin} from 'antd';\nimport {KitAlert, KitUpload, KitNotification} from 'aristid-ds';\nimport {type IKitDragger} from 'aristid-ds/dist/Kit/DataEntry/Upload/types';\nimport {useState} from 'react';\nimport {read as xlsxRead, utils as xlsxUtils} from 'xlsx';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {\n type AttributesByLibAttributeFragment,\n type AttributesByLibAttributeLinkAttributeFragment,\n AttributeType,\n ImportMode,\n ImportType,\n} from '_ui/_gqlTypes';\nimport {ImportReducerActionTypes} from '../importReducer/importReducer';\nimport {useImportReducerContext} from '../importReducer/ImportReducerContext';\nimport {type ISheet} from '../_types';\nimport {ERROR_NOTIFICATION_DURATION_SECONDS} from '_ui/constants';\n\ninterface IImportModalSelectFileStepsProps {\n onGetAttributes: (library: string) => Promise<AttributesByLibAttributeFragment[]>;\n}\n\nconst defaultType = ImportType.STANDARD;\nconst defaultMode = ImportMode.upsert;\n\nfunction ImportModalSelectFileStep({onGetAttributes}: IImportModalSelectFileStepsProps): JSX.Element {\n const {t} = useSharedTranslation();\n\n const {state, dispatch} = useImportReducerContext();\n const {file} = state;\n\n const _setFileData = async content => {\n const workbook = xlsxRead(content, {type: 'binary'});\n\n const s: ISheet[] = [];\n\n for (const sheetName in workbook.Sheets) {\n if (workbook.Sheets.hasOwnProperty(sheetName)) {\n // Use the sheet_to_json method to convert excel to json data\n const sheetData: Array<{[col: string]: string}> = xlsxUtils.sheet_to_json(workbook.Sheets[sheetName], {\n blankrows: false,\n defval: null,\n });\n\n // if sheet is empty we skip it\n if (!sheetData.length) {\n continue;\n }\n\n // get columns' name\n const sheetColumns = Object.keys(sheetData[0]);\n\n // match only first line cells (A1, B1, etc.)\n const firstRowAddresses = Object.keys(workbook.Sheets[sheetName]).filter(\n k => !!k.match(/\\b[A-Z]+1\\b/g),\n );\n\n const isMapped = !!workbook.Sheets[sheetName][firstRowAddresses[0]]?.c;\n\n // Mapping is present.\n if (isMapped) {\n const comments: string[] = [];\n\n for (const address of firstRowAddresses) {\n // get first line comments and delete \"\\n\" characters\n comments.push(workbook.Sheets[sheetName][address].c?.[0]?.t?.replace(/\\n/g, ' ') || null);\n }\n\n const params = extractArgsFromString(comments[0]);\n\n const sType = params.type ?? defaultType;\n const sLibrary = params.library;\n const sLinkAttribute = params.linkAttribute;\n const sMode = params.mode ?? defaultMode;\n let sMapping = [];\n const sTreeLinkLibrary = params.treeLinkLibrary;\n let sKeyColumnIndex: number;\n let sKeyToColumnIndex: number;\n\n let sKeyToAttributes: AttributesByLibAttributeFragment[] = [];\n\n const attributes = await onGetAttributes(sLibrary);\n\n // Extract mapping, keyIndex and keyToIndex from all columns comments\n for (const [index, comm] of comments.entries()) {\n const commArgs = extractArgsFromString(comm);\n sMapping.push(String(commArgs.id) ?? null);\n\n if (commArgs.key) {\n sKeyColumnIndex = index;\n }\n\n if (commArgs.keyTo) {\n sKeyToColumnIndex = index;\n }\n }\n\n const linkAttributeProps =\n sKeyToColumnIndex && sLinkAttribute\n ? (attributes.find(\n a => a.id === sLinkAttribute,\n ) as AttributesByLibAttributeLinkAttributeFragment)\n : null;\n\n if (linkAttributeProps && (linkAttributeProps.type !== AttributeType.tree || sTreeLinkLibrary)) {\n const keyToLibrary =\n linkAttributeProps.type === AttributeType.tree\n ? sTreeLinkLibrary\n : linkAttributeProps?.linked_library?.id;\n sKeyToAttributes = await onGetAttributes(keyToLibrary);\n }\n\n // Check if all mapping attributes actually exist\n sMapping = sMapping.map((mappingAttribute, index) => {\n const attributesToCheck = index === sKeyToColumnIndex ? sKeyToAttributes : attributes;\n return attributesToCheck.find(attribute => attribute.id === mappingAttribute)\n ? mappingAttribute\n : null;\n });\n\n s.push({\n name: sheetName,\n attributes,\n columns: sheetColumns,\n type: ImportType[sType],\n mode: ImportMode[sMode],\n library: sLibrary,\n linkAttribute: sLinkAttribute,\n linkAttributeProps,\n keyColumnIndex: sKeyColumnIndex,\n keyToColumnIndex: sKeyToColumnIndex,\n keyToAttributes: sKeyToAttributes,\n treeLinkLibrary: sTreeLinkLibrary,\n data: sheetData.length ? sheetData : null,\n mapping: sMapping,\n });\n } else {\n const sLibrary = state.defaultLibrary;\n const attributes = await onGetAttributes(sLibrary);\n\n s.push({\n name: sheetName,\n library: sLibrary,\n columns: sheetColumns,\n type: defaultType,\n mode: defaultMode,\n attributes,\n mapping: [],\n data: sheetData.length ? sheetData : null,\n });\n }\n }\n }\n\n if (!s.length || s.every(sheet => sheet.data === null)) {\n message.error(t('import.empty_file'));\n return false;\n }\n\n dispatch({type: ImportReducerActionTypes.SET_SHEETS, sheets: s});\n\n return true;\n };\n\n const [loading, setLoading] = useState(false);\n\n const draggerProps: IKitDragger = {\n name: 'file',\n multiple: false,\n accept: '.xlsx',\n description: t('import.file_selection_restriction', {allowedFormat: '.xlsx'}),\n title: file?.name ?? t('import.file_selection_instruction'),\n beforeUpload: fileToImport => {\n // Read file to read mapping and display a preview on next step\n const reader = new FileReader();\n reader.readAsBinaryString(fileToImport);\n\n reader.onload = async e => {\n try {\n const res = await _setFileData(reader.result);\n\n if (res) {\n dispatch({type: ImportReducerActionTypes.SET_FILE, file: fileToImport});\n }\n dispatch({type: ImportReducerActionTypes.SET_OK_BTN, okBtn: res});\n } catch (error) {\n const errorMessage = error?.message ?? t('error.error_occurred');\n KitNotification.error({\n message: t('error.error_occurred'),\n description: errorMessage,\n duration: ERROR_NOTIFICATION_DURATION_SECONDS,\n });\n }\n };\n\n reader.onloadstart = e => {\n setLoading(true);\n };\n\n reader.onloadend = e => {\n setLoading(false);\n };\n\n reader.onerror = e => {\n KitNotification.error({\n message: t('error.error_occurred'),\n description: reader.error?.message ?? '',\n duration: ERROR_NOTIFICATION_DURATION_SECONDS,\n });\n };\n\n // Prevent default upload. We'll handle it ourselves later on\n return false;\n },\n };\n\n return (\n <Space direction=\"vertical\" style={{width: '100%'}}>\n <Spin spinning={loading}>\n <KitUpload.Dragger {...draggerProps} />\n </Spin>\n <KitAlert message={t('import.first_line_info')} type=\"info\" showIcon />\n </Space>\n );\n}\n\nexport default ImportModalSelectFileStep;\n"]}
@@ -24,7 +24,8 @@ import MenuItemList from '../MenuItemList';
24
24
  import MenuItemListSelected from '../MenuItemListSelected';
25
25
  import Sidebar from '../Sidebar';
26
26
  import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
27
- import { useKitNotification } from 'aristid-ds';
27
+ import { KitNotification } from 'aristid-ds';
28
+ import { SUCCESS_NOTIFICATION_DURATION_SECONDS } from '../../../constants';
28
29
  const MenuWrapper = styled.div `
29
30
  border-bottom: 1px solid rgb(235, 237, 240);
30
31
  padding: 0 1rem;
@@ -59,7 +60,6 @@ const Wrapper = styled.div `
59
60
  const LibraryItemsListContent = ({ selectionMode, library, defaultView, showTransparency, onSelectChange, style, }) => {
60
61
  const { lang } = useLang();
61
62
  const { t } = useSharedTranslation();
62
- const { kitNotification } = useKitNotification();
63
63
  const defaultAttributes = extractAttributesFromLibrary(library);
64
64
  const _getFieldsFromView = (view) => (view.attributes ?? []).reduce((acc, fieldKey) => {
65
65
  const field = getFieldFromKey(fieldKey, library, defaultAttributes, lang);
@@ -186,9 +186,10 @@ const LibraryItemsListContent = ({ selectionMode, library, defaultView, showTran
186
186
  };
187
187
  const _notifyNewCreation = () => {
188
188
  _reload();
189
- kitNotification.success({
189
+ KitNotification.success({
190
190
  message: t('items_list.created_in_success.message'),
191
191
  description: '',
192
+ duration: SUCCESS_NOTIFICATION_DURATION_SECONDS,
192
193
  });
193
194
  };
194
195
  // If some elements are selected and the selection type is search, show the selection Menu
@@ -1 +1 @@
1
- {"version":3,"file":"LibraryItemsListContent.js","sourceRoot":"","sources":["../../../../src/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ApolloQueryResult, useQuery} from '@apollo/client';\nimport {type FunctionComponent, useEffect, useMemo, useReducer} from 'react';\nimport styled, {type CSSObject} from 'styled-components';\nimport {Loading} from '_ui/components';\nimport {SearchContext} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchContext';\nimport searchReducer, {\n initialSearchState,\n SearchActionTypes,\n} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport {type ISearchRecord} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/_types';\nimport {useGetRecordUpdatesSubscription, useLang} from '_ui/hooks';\nimport {type IField, type IFilter, type ISearchSelection, SearchMode} from '_ui/types/search';\nimport {type IView} from '_ui/types/views';\nimport {useSaveUserDataMutation} from '_ui/_gqlTypes';\nimport {type ILibraryDetailExtended} from '_ui/_queries/libraries/getLibraryDetailExtendQuery';\nimport {\n getRecordsFromLibraryQuery,\n type IGetRecordsFromLibraryQuery,\n type IGetRecordsFromLibraryQueryVariables,\n} from '_ui/_queries/records/getRecordsFromLibraryQuery';\nimport {objectValueVersionToArray} from '_ui/_utils';\nimport {getRequestFromFilters} from '_ui/_utils/getRequestFromFilter';\nimport {getSelectedViewKey} from '../constants';\nimport DisplayTypeSelector from '../DisplayTypeSelector';\nimport extractAttributesFromLibrary from '../helpers/extractAttributesFromLibrary';\nimport getFieldFromKey from '../helpers/getFieldFromKey';\nimport LibraryItemsListEmpty from '../LibraryItemsListEmpty';\nimport {manageItems} from '../manageItems';\nimport MenuItemList from '../MenuItemList';\nimport MenuItemListSelected from '../MenuItemListSelected';\nimport Sidebar from '../Sidebar';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {useKitNotification} from 'aristid-ds';\n\nconst MenuWrapper = styled.div`\n border-bottom: 1px solid rgb(235, 237, 240);\n padding: 0 1rem;\n height: 4rem;\n\n display: flex;\n align-content: center;\n justify-content: space-around;\n`;\n\ninterface IWrapperProps {\n $showSide: boolean;\n style?: CSSObject;\n}\n\nconst panelSize = '22.5rem';\nconst Wrapper = styled.div<IWrapperProps>`\n display: grid;\n\n ${({$showSide}) =>\n $showSide\n ? `\n grid-template-columns: ${panelSize} calc(100% - ${panelSize});\n grid-template-rows: 92% auto;\n grid-template-areas:\n 'side data'\n 'side pagination';`\n : `\n grid-template-columns: auto;\n grid-template-rows: 92% auto;\n grid-template-areas:\n 'data'\n 'pagination';`}\n\n height: calc(100vh - 7rem);\n position: relative;\n overflow: auto;\n`;\n\ninterface ILibraryItemsListContentProps {\n library: ILibraryDetailExtended;\n defaultView: IView;\n selectionMode?: boolean;\n style?: CSSObject;\n showTransparency?: boolean;\n mode?: SearchMode;\n onSelectChange?: (selection: ISearchSelection, filters?: IFilter[]) => void;\n}\n\nconst LibraryItemsListContent: FunctionComponent<ILibraryItemsListContentProps> = ({\n selectionMode,\n library,\n defaultView,\n showTransparency,\n onSelectChange,\n style,\n}) => {\n const {lang} = useLang();\n const {t} = useSharedTranslation();\n\n const {kitNotification} = useKitNotification();\n\n const defaultAttributes = extractAttributesFromLibrary(library);\n\n const _getFieldsFromView = (view: IView): IField[] =>\n (view.attributes ?? []).reduce((acc, fieldKey) => {\n const field = getFieldFromKey(fieldKey, library, defaultAttributes, lang);\n return field ? [...acc, field] : acc;\n }, []);\n\n const [searchState, searchDispatch] = useReducer(searchReducer, {\n ...initialSearchState,\n library,\n loading: true,\n attributes: defaultAttributes,\n trees: library.linkedTrees,\n fields: _getFieldsFromView(defaultView),\n filters: defaultView.filters,\n sort: defaultView.sort,\n display: defaultView.display,\n view: {\n current: defaultView,\n reload: false,\n sync: true,\n },\n lang,\n valuesVersions: defaultView.valuesVersions,\n showTransparency,\n mode: selectionMode ? SearchMode.SELECT : SearchMode.SEARCH,\n });\n\n useGetRecordUpdatesSubscription({libraries: [library.id]});\n\n const [updateSelectedViewMutation] = useSaveUserDataMutation();\n const selectedViewKey = getSelectedViewKey(library.id);\n\n const _applyResults = (result: ApolloQueryResult<IGetRecordsFromLibraryQuery>) => {\n const itemsFromQuery = result?.data?.records?.list ?? [];\n\n const newRecords: ISearchRecord[] = manageItems({\n items: itemsFromQuery,\n fields: searchState.fields,\n });\n\n searchDispatch({\n type: SearchActionTypes.UPDATE_RESULT,\n records: newRecords,\n errors: result?.errors,\n totalCount: result?.data?.records?.totalCount ?? searchState.totalCount,\n });\n };\n\n const _getVersionForRequest = () =>\n searchState.valuesVersions\n ? objectValueVersionToArray(searchState.valuesVersions).filter(v => !!v.treeNodeId)\n : [];\n\n // We're using a useMemo here to prevent query being fired on every change of searchState.\n // Subsequent search will be triggered on user request and are handled elsewhere.\n // We were previously using the skip property of useQuery but it was causing issues with data update\n const variables = useMemo(\n () => ({\n library: library.id,\n limit: searchState.pagination,\n offset: searchState.offset,\n filters: getRequestFromFilters(searchState.filters),\n sort: searchState.sort?.[0] ?? null,\n fullText: searchState.fullText,\n version: _getVersionForRequest(),\n }),\n [],\n );\n\n const getRecordsQueryResult = useQuery<IGetRecordsFromLibraryQuery, IGetRecordsFromLibraryQueryVariables>(\n getRecordsFromLibraryQuery(searchState.fields, !searchState.offset),\n {\n fetchPolicy: 'network-only',\n errorPolicy: 'all',\n variables,\n },\n );\n const {\n loading: getRecordsLoading,\n data: searchData,\n error: searchError,\n called: searchCalled,\n fetchMore: getRecordsFetchMore,\n } = getRecordsQueryResult;\n\n const _fetchRecords = async () => {\n const queryFilters = getRequestFromFilters(searchState.filters);\n\n const currentVariables = {\n library: library.id,\n limit: searchState.pagination,\n offset: searchState.offset,\n filters: queryFilters,\n sort: searchState.sort?.[0] ?? null,\n fullText: searchState.fullText,\n version: _getVersionForRequest(),\n };\n\n // Records have already been fetched, we use fetchMore to make sure\n // we request the right fields by passing in a whole new query\n const results = await getRecordsFetchMore({\n query: getRecordsFromLibraryQuery(searchState.fields, !searchState.offset),\n variables: currentVariables,\n //@ts-expect-error errorPolicy is applied at runtime even though it's not in the types\n errorPolicy: 'all',\n });\n\n // We have to call applyResults here because onCompleted is not called when fetchMore is used\n _applyResults(results);\n };\n\n const isLoading = getRecordsLoading || searchState.view.reload || searchState.loading;\n\n useEffect(() => {\n if (searchData || searchError) {\n _applyResults(getRecordsQueryResult);\n }\n }, [searchData, searchError]);\n\n useEffect(() => {\n if (searchState.loading && searchCalled) {\n _fetchRecords();\n }\n }, [searchState.loading]);\n\n /**\n * Called when current view changes. In charge of refetching record and saving last used view\n */\n useEffect(() => {\n if (!searchState.view.reload) {\n return;\n }\n\n _fetchRecords();\n\n updateSelectedViewMutation({\n variables: {\n key: selectedViewKey,\n value: searchState.view.current.id,\n global: false,\n },\n });\n searchDispatch({type: SearchActionTypes.SET_VIEW_RELOAD, reload: false});\n }, [selectedViewKey, updateSelectedViewMutation, searchState.view, searchState.fields, searchDispatch, library]);\n\n /**\n * Calls onSelectChange when selection changes\n */\n useEffect(() => {\n if (!onSelectChange) {\n return;\n }\n\n onSelectChange(searchState.selection, searchState.selection.allSelected ? searchState.filters : null);\n }, [searchState.selection]);\n\n const _reload = () => {\n searchDispatch({type: SearchActionTypes.SET_LOADING, loading: true});\n };\n\n const _notifyNewCreation = () => {\n _reload();\n kitNotification.success({\n message: t('items_list.created_in_success.message'),\n description: '',\n });\n };\n\n // If some elements are selected and the selection type is search, show the selection Menu\n const menuSelectedActive = !!searchState.selection.selected.length || searchState.selection.allSelected;\n\n return (\n <SearchContext.Provider value={{state: searchState, dispatch: searchDispatch}}>\n <MenuWrapper>\n <MenuItemList refetch={_reload} notifyNewCreation={_notifyNewCreation} library={library} />\n <MenuItemListSelected active={menuSelectedActive} />\n </MenuWrapper>\n\n <Wrapper\n $showSide={searchState.sideBar.visible}\n className={searchState.sideBar.visible ? 'wrapper-open' : 'wrapper-close'}\n style={style}\n >\n <Sidebar />\n {isLoading && <Loading />}\n {!isLoading &&\n (!searchState.records.length ? (\n <LibraryItemsListEmpty notifyNewCreation={_notifyNewCreation} />\n ) : (\n <DisplayTypeSelector />\n ))}\n </Wrapper>\n </SearchContext.Provider>\n );\n};\n\nexport default LibraryItemsListContent;\n"]}
1
+ {"version":3,"file":"LibraryItemsListContent.js","sourceRoot":"","sources":["../../../../src/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ApolloQueryResult, useQuery} from '@apollo/client';\nimport {type FunctionComponent, useEffect, useMemo, useReducer} from 'react';\nimport styled, {type CSSObject} from 'styled-components';\nimport {Loading} from '_ui/components';\nimport {SearchContext} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchContext';\nimport searchReducer, {\n initialSearchState,\n SearchActionTypes,\n} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport {type ISearchRecord} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/_types';\nimport {useGetRecordUpdatesSubscription, useLang} from '_ui/hooks';\nimport {type IField, type IFilter, type ISearchSelection, SearchMode} from '_ui/types/search';\nimport {type IView} from '_ui/types/views';\nimport {useSaveUserDataMutation} from '_ui/_gqlTypes';\nimport {type ILibraryDetailExtended} from '_ui/_queries/libraries/getLibraryDetailExtendQuery';\nimport {\n getRecordsFromLibraryQuery,\n type IGetRecordsFromLibraryQuery,\n type IGetRecordsFromLibraryQueryVariables,\n} from '_ui/_queries/records/getRecordsFromLibraryQuery';\nimport {objectValueVersionToArray} from '_ui/_utils';\nimport {getRequestFromFilters} from '_ui/_utils/getRequestFromFilter';\nimport {getSelectedViewKey} from '../constants';\nimport DisplayTypeSelector from '../DisplayTypeSelector';\nimport extractAttributesFromLibrary from '../helpers/extractAttributesFromLibrary';\nimport getFieldFromKey from '../helpers/getFieldFromKey';\nimport LibraryItemsListEmpty from '../LibraryItemsListEmpty';\nimport {manageItems} from '../manageItems';\nimport MenuItemList from '../MenuItemList';\nimport MenuItemListSelected from '../MenuItemListSelected';\nimport Sidebar from '../Sidebar';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {KitNotification} from 'aristid-ds';\nimport {SUCCESS_NOTIFICATION_DURATION_SECONDS} from '_ui/constants';\n\nconst MenuWrapper = styled.div`\n border-bottom: 1px solid rgb(235, 237, 240);\n padding: 0 1rem;\n height: 4rem;\n\n display: flex;\n align-content: center;\n justify-content: space-around;\n`;\n\ninterface IWrapperProps {\n $showSide: boolean;\n style?: CSSObject;\n}\n\nconst panelSize = '22.5rem';\nconst Wrapper = styled.div<IWrapperProps>`\n display: grid;\n\n ${({$showSide}) =>\n $showSide\n ? `\n grid-template-columns: ${panelSize} calc(100% - ${panelSize});\n grid-template-rows: 92% auto;\n grid-template-areas:\n 'side data'\n 'side pagination';`\n : `\n grid-template-columns: auto;\n grid-template-rows: 92% auto;\n grid-template-areas:\n 'data'\n 'pagination';`}\n\n height: calc(100vh - 7rem);\n position: relative;\n overflow: auto;\n`;\n\ninterface ILibraryItemsListContentProps {\n library: ILibraryDetailExtended;\n defaultView: IView;\n selectionMode?: boolean;\n style?: CSSObject;\n showTransparency?: boolean;\n mode?: SearchMode;\n onSelectChange?: (selection: ISearchSelection, filters?: IFilter[]) => void;\n}\n\nconst LibraryItemsListContent: FunctionComponent<ILibraryItemsListContentProps> = ({\n selectionMode,\n library,\n defaultView,\n showTransparency,\n onSelectChange,\n style,\n}) => {\n const {lang} = useLang();\n const {t} = useSharedTranslation();\n\n const defaultAttributes = extractAttributesFromLibrary(library);\n\n const _getFieldsFromView = (view: IView): IField[] =>\n (view.attributes ?? []).reduce((acc, fieldKey) => {\n const field = getFieldFromKey(fieldKey, library, defaultAttributes, lang);\n return field ? [...acc, field] : acc;\n }, []);\n\n const [searchState, searchDispatch] = useReducer(searchReducer, {\n ...initialSearchState,\n library,\n loading: true,\n attributes: defaultAttributes,\n trees: library.linkedTrees,\n fields: _getFieldsFromView(defaultView),\n filters: defaultView.filters,\n sort: defaultView.sort,\n display: defaultView.display,\n view: {\n current: defaultView,\n reload: false,\n sync: true,\n },\n lang,\n valuesVersions: defaultView.valuesVersions,\n showTransparency,\n mode: selectionMode ? SearchMode.SELECT : SearchMode.SEARCH,\n });\n\n useGetRecordUpdatesSubscription({libraries: [library.id]});\n\n const [updateSelectedViewMutation] = useSaveUserDataMutation();\n const selectedViewKey = getSelectedViewKey(library.id);\n\n const _applyResults = (result: ApolloQueryResult<IGetRecordsFromLibraryQuery>) => {\n const itemsFromQuery = result?.data?.records?.list ?? [];\n\n const newRecords: ISearchRecord[] = manageItems({\n items: itemsFromQuery,\n fields: searchState.fields,\n });\n\n searchDispatch({\n type: SearchActionTypes.UPDATE_RESULT,\n records: newRecords,\n errors: result?.errors,\n totalCount: result?.data?.records?.totalCount ?? searchState.totalCount,\n });\n };\n\n const _getVersionForRequest = () =>\n searchState.valuesVersions\n ? objectValueVersionToArray(searchState.valuesVersions).filter(v => !!v.treeNodeId)\n : [];\n\n // We're using a useMemo here to prevent query being fired on every change of searchState.\n // Subsequent search will be triggered on user request and are handled elsewhere.\n // We were previously using the skip property of useQuery but it was causing issues with data update\n const variables = useMemo(\n () => ({\n library: library.id,\n limit: searchState.pagination,\n offset: searchState.offset,\n filters: getRequestFromFilters(searchState.filters),\n sort: searchState.sort?.[0] ?? null,\n fullText: searchState.fullText,\n version: _getVersionForRequest(),\n }),\n [],\n );\n\n const getRecordsQueryResult = useQuery<IGetRecordsFromLibraryQuery, IGetRecordsFromLibraryQueryVariables>(\n getRecordsFromLibraryQuery(searchState.fields, !searchState.offset),\n {\n fetchPolicy: 'network-only',\n errorPolicy: 'all',\n variables,\n },\n );\n const {\n loading: getRecordsLoading,\n data: searchData,\n error: searchError,\n called: searchCalled,\n fetchMore: getRecordsFetchMore,\n } = getRecordsQueryResult;\n\n const _fetchRecords = async () => {\n const queryFilters = getRequestFromFilters(searchState.filters);\n\n const currentVariables = {\n library: library.id,\n limit: searchState.pagination,\n offset: searchState.offset,\n filters: queryFilters,\n sort: searchState.sort?.[0] ?? null,\n fullText: searchState.fullText,\n version: _getVersionForRequest(),\n };\n\n // Records have already been fetched, we use fetchMore to make sure\n // we request the right fields by passing in a whole new query\n const results = await getRecordsFetchMore({\n query: getRecordsFromLibraryQuery(searchState.fields, !searchState.offset),\n variables: currentVariables,\n //@ts-expect-error errorPolicy is applied at runtime even though it's not in the types\n errorPolicy: 'all',\n });\n\n // We have to call applyResults here because onCompleted is not called when fetchMore is used\n _applyResults(results);\n };\n\n const isLoading = getRecordsLoading || searchState.view.reload || searchState.loading;\n\n useEffect(() => {\n if (searchData || searchError) {\n _applyResults(getRecordsQueryResult);\n }\n }, [searchData, searchError]);\n\n useEffect(() => {\n if (searchState.loading && searchCalled) {\n _fetchRecords();\n }\n }, [searchState.loading]);\n\n /**\n * Called when current view changes. In charge of refetching record and saving last used view\n */\n useEffect(() => {\n if (!searchState.view.reload) {\n return;\n }\n\n _fetchRecords();\n\n updateSelectedViewMutation({\n variables: {\n key: selectedViewKey,\n value: searchState.view.current.id,\n global: false,\n },\n });\n searchDispatch({type: SearchActionTypes.SET_VIEW_RELOAD, reload: false});\n }, [selectedViewKey, updateSelectedViewMutation, searchState.view, searchState.fields, searchDispatch, library]);\n\n /**\n * Calls onSelectChange when selection changes\n */\n useEffect(() => {\n if (!onSelectChange) {\n return;\n }\n\n onSelectChange(searchState.selection, searchState.selection.allSelected ? searchState.filters : null);\n }, [searchState.selection]);\n\n const _reload = () => {\n searchDispatch({type: SearchActionTypes.SET_LOADING, loading: true});\n };\n\n const _notifyNewCreation = () => {\n _reload();\n KitNotification.success({\n message: t('items_list.created_in_success.message'),\n description: '',\n duration: SUCCESS_NOTIFICATION_DURATION_SECONDS,\n });\n };\n\n // If some elements are selected and the selection type is search, show the selection Menu\n const menuSelectedActive = !!searchState.selection.selected.length || searchState.selection.allSelected;\n\n return (\n <SearchContext.Provider value={{state: searchState, dispatch: searchDispatch}}>\n <MenuWrapper>\n <MenuItemList refetch={_reload} notifyNewCreation={_notifyNewCreation} library={library} />\n <MenuItemListSelected active={menuSelectedActive} />\n </MenuWrapper>\n\n <Wrapper\n $showSide={searchState.sideBar.visible}\n className={searchState.sideBar.visible ? 'wrapper-open' : 'wrapper-close'}\n style={style}\n >\n <Sidebar />\n {isLoading && <Loading />}\n {!isLoading &&\n (!searchState.records.length ? (\n <LibraryItemsListEmpty notifyNewCreation={_notifyNewCreation} />\n ) : (\n <DisplayTypeSelector />\n ))}\n </Wrapper>\n </SearchContext.Provider>\n );\n};\n\nexport default LibraryItemsListContent;\n"]}
@@ -4,25 +4,24 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
5
5
  import { useNotificationSubscription } from '../../../_gqlTypes';
6
6
  import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
7
- import { KitButton, KitSpace, useKitNotification } from 'aristid-ds';
7
+ import { KitButton, KitSpace, KitNotification, KitTypography } from 'aristid-ds';
8
8
  import dayjs from 'dayjs';
9
9
  import { FaDownload } from 'react-icons/fa';
10
10
  export const useNotificationsSubscription = () => {
11
11
  const { t } = useSharedTranslation();
12
- const { kitNotification } = useKitNotification();
13
12
  return useNotificationSubscription({
14
13
  onData: ({ data }) => {
15
14
  if (!data?.data?.notification?.title) {
16
15
  return;
17
16
  }
18
17
  const { level, title, message, attachments, relatedEntities, date } = data.data.notification;
19
- const kitNotificationLevel = typeof kitNotification[level] === 'function' ? level : 'open';
20
- kitNotification[kitNotificationLevel]({
18
+ const kitNotificationLevel = typeof KitNotification[level] === 'function' ? level : 'info';
19
+ KitNotification[kitNotificationLevel]({
21
20
  message: title,
22
21
  description: message,
23
- messageExtra: dayjs.unix(date).format('HH:mm DD/MM/YYYY'), // messageExtra not displayed !
22
+ messageExtra: (_jsx(KitTypography.Text, { size: "fontSize7", children: dayjs.unix(date).format('HH:mm DD/MM/YYYY') })),
24
23
  duration: 10,
25
- btn: (_jsxs(KitSpace, { direction: "horizontal", size: "xs", children: [attachments?.map(attachment => (_jsx(KitButton, { type: "secondary", onClick: () => window.open(attachment.url, '_blank'), icon: _jsx(FaDownload, {}), children: t('global.download') }, attachment.url))), relatedEntities?.map(relatedEntity => (_jsx(KitButton, { type: "secondary", onClick: () => {
24
+ footer: (_jsxs(KitSpace, { direction: "horizontal", size: "xs", children: [attachments?.map(attachment => (_jsx(KitButton, { type: "secondary", onClick: () => window.open(attachment.url, '_blank'), icon: _jsx(FaDownload, {}), children: t('global.download') }, attachment.url))), relatedEntities?.map(relatedEntity => (_jsx(KitButton, { type: "secondary", onClick: () => {
26
25
  window.location.href = relatedEntity.url;
27
26
  }, children: t('global.show') }, relatedEntity.url)))] })),
28
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useNotificationSubscription.js","sourceRoot":"","sources":["../../../../src/components/Notifications/hooks/useNotificationSubscription.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,2BAA2B,EAAC,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAC,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAC7C,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,EAAC,eAAe,EAAC,GAAG,kBAAkB,EAAE,CAAC;IAC/C,OAAO,2BAA2B,CAAC;QAC/B,MAAM,EAAE,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE;YACf,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;gBACnC,OAAO;YACX,CAAC;YACD,MAAM,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAE3F,MAAM,oBAAoB,GAAG,OAAO,eAAe,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAE3F,eAAe,CAAC,oBAAoB,CAAC,CAAC;gBAClC,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,+BAA+B;gBAC1F,QAAQ,EAAE,EAAE;gBACZ,GAAG,EAAE,CACD,MAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,EAAC,IAAI,EAAC,IAAI,aACrC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAC5B,KAAC,SAAS,IAEN,IAAI,EAAC,WAAW,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,EACpD,IAAI,EAAE,KAAC,UAAU,KAAG,YAEnB,CAAC,CAAC,iBAAiB,CAAC,IALhB,UAAU,CAAC,GAAG,CAMX,CACf,CAAC,EACD,eAAe,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CACnC,KAAC,SAAS,IAEN,IAAI,EAAC,WAAW,EAChB,OAAO,EAAE,GAAG,EAAE;gCACV,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC;4BAC7C,CAAC,YAEA,CAAC,CAAC,aAAa,CAAC,IANZ,aAAa,CAAC,GAAG,CAOd,CACf,CAAC,IACK,CACd;aACJ,CAAC,CAAC;QACP,CAAC;KACJ,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,eAAe,4BAA4B,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {useNotificationSubscription} from '_ui/_gqlTypes';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {KitButton, KitSpace, useKitNotification} from 'aristid-ds';\nimport dayjs from 'dayjs';\nimport {FaDownload} from 'react-icons/fa';\n\nexport const useNotificationsSubscription = () => {\n const {t} = useSharedTranslation();\n const {kitNotification} = useKitNotification();\n return useNotificationSubscription({\n onData: ({data}) => {\n if (!data?.data?.notification?.title) {\n return;\n }\n const {level, title, message, attachments, relatedEntities, date} = data.data.notification;\n\n const kitNotificationLevel = typeof kitNotification[level] === 'function' ? level : 'open';\n\n kitNotification[kitNotificationLevel]({\n message: title,\n description: message,\n messageExtra: dayjs.unix(date).format('HH:mm DD/MM/YYYY'), // messageExtra not displayed !\n duration: 10,\n btn: (\n <KitSpace direction=\"horizontal\" size=\"xs\">\n {attachments?.map(attachment => (\n <KitButton\n key={attachment.url}\n type=\"secondary\"\n onClick={() => window.open(attachment.url, '_blank')}\n icon={<FaDownload />}\n >\n {t('global.download')}\n </KitButton>\n ))}\n {relatedEntities?.map(relatedEntity => (\n <KitButton\n key={relatedEntity.url}\n type=\"secondary\"\n onClick={() => {\n window.location.href = relatedEntity.url;\n }}\n >\n {t('global.show')}\n </KitButton>\n ))}\n </KitSpace>\n ),\n });\n },\n });\n};\n\nexport default useNotificationsSubscription;\n"]}
1
+ {"version":3,"file":"useNotificationSubscription.js","sourceRoot":"","sources":["../../../../src/components/Notifications/hooks/useNotificationSubscription.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,2BAA2B,EAAC,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AAC/E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAC7C,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,OAAO,2BAA2B,CAAC;QAC/B,MAAM,EAAE,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE;YACf,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;gBACnC,OAAO;YACX,CAAC;YACD,MAAM,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAE3F,MAAM,oBAAoB,GAAG,OAAO,eAAe,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAE3F,eAAe,CAAC,oBAAoB,CAAC,CAAC;gBAClC,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,CACV,KAAC,aAAa,CAAC,IAAI,IAAC,IAAI,EAAC,WAAW,YAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAC3B,CACxB;gBACD,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,CACJ,MAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,EAAC,IAAI,EAAC,IAAI,aACrC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAC5B,KAAC,SAAS,IAEN,IAAI,EAAC,WAAW,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,EACpD,IAAI,EAAE,KAAC,UAAU,KAAG,YAEnB,CAAC,CAAC,iBAAiB,CAAC,IALhB,UAAU,CAAC,GAAG,CAMX,CACf,CAAC,EACD,eAAe,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CACnC,KAAC,SAAS,IAEN,IAAI,EAAC,WAAW,EAChB,OAAO,EAAE,GAAG,EAAE;gCACV,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC;4BAC7C,CAAC,YAEA,CAAC,CAAC,aAAa,CAAC,IANZ,aAAa,CAAC,GAAG,CAOd,CACf,CAAC,IACK,CACd;aACJ,CAAC,CAAC;QACP,CAAC;KACJ,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,eAAe,4BAA4B,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {useNotificationSubscription} from '_ui/_gqlTypes';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {KitButton, KitSpace, KitNotification, KitTypography} from 'aristid-ds';\nimport dayjs from 'dayjs';\nimport {FaDownload} from 'react-icons/fa';\n\nexport const useNotificationsSubscription = () => {\n const {t} = useSharedTranslation();\n return useNotificationSubscription({\n onData: ({data}) => {\n if (!data?.data?.notification?.title) {\n return;\n }\n const {level, title, message, attachments, relatedEntities, date} = data.data.notification;\n\n const kitNotificationLevel = typeof KitNotification[level] === 'function' ? level : 'info';\n\n KitNotification[kitNotificationLevel]({\n message: title,\n description: message,\n messageExtra: (\n <KitTypography.Text size=\"fontSize7\">\n {dayjs.unix(date).format('HH:mm DD/MM/YYYY')}\n </KitTypography.Text>\n ),\n duration: 10,\n footer: (\n <KitSpace direction=\"horizontal\" size=\"xs\">\n {attachments?.map(attachment => (\n <KitButton\n key={attachment.url}\n type=\"secondary\"\n onClick={() => window.open(attachment.url, '_blank')}\n icon={<FaDownload />}\n >\n {t('global.download')}\n </KitButton>\n ))}\n {relatedEntities?.map(relatedEntity => (\n <KitButton\n key={relatedEntity.url}\n type=\"secondary\"\n onClick={() => {\n window.location.href = relatedEntity.url;\n }}\n >\n {t('global.show')}\n </KitButton>\n ))}\n </KitSpace>\n ),\n });\n },\n });\n};\n\nexport default useNotificationsSubscription;\n"]}
@@ -14,11 +14,10 @@ const SELECT_TREE_NODE_MODAL_WIDTH = '656px';
14
14
  export const SelectTreeNodeModal = ({ title, open, attribute, backendValues, onConfirm, onClose, childrenAsRecordValuePermissionFilter, className, }) => {
15
15
  const { t } = useSharedTranslation();
16
16
  const [selectedNodes, setSelectedNodes] = useState([]);
17
- const [isMonoValueToReplace, setIsMonoValueToReplace] = useState(false);
18
17
  const _handleOnSelect = (node, selected) => {
19
18
  if (!attribute.multiple_values) {
20
- setSelectedNodes(selected ? [node] : []);
21
- setIsMonoValueToReplace(true);
19
+ onConfirm(selected ? [node] : []);
20
+ onClose();
22
21
  return;
23
22
  }
24
23
  if (selected) {
@@ -34,10 +33,10 @@ export const SelectTreeNodeModal = ({ title, open, attribute, backendValues, onC
34
33
  };
35
34
  return (_jsx(KitModal, { appElement: document.getElementById('root'), className: className, showCloseIcon: true, width: SELECT_TREE_NODE_MODAL_WIDTH, height: SELECT_TREE_NODE_MODAL_HEIGHT, title: title, isOpen: open, close: onClose, footer: _jsxs(_Fragment, { children: [_jsx(KitButton, { icon:
36
35
  // We can't used react-icons here because it's doesn't have the faXmark icon
37
- _jsx(FontAwesomeIcon, { icon: faXmark }), onClick: onClose, children: t('global.close') }), _jsx(KitButton, { type: "primary", icon: _jsx(FaCheck, {}), onClick: _handleOnConfirm, children: t('global.confirm') })] }), children: _jsx(SelectTreeNode, { treeId: attribute.linked_tree.id, multiple // We want to be able to set as selected in the tree components, the nodes that are already selected and the disabled nodes
36
+ _jsx(FontAwesomeIcon, { icon: faXmark }), onClick: onClose, children: t('global.close') }), attribute.multiple_values && (_jsx(KitButton, { type: "primary", icon: _jsx(FaCheck, {}), disabled: selectedNodes.length === 0, onClick: _handleOnConfirm, children: t('global.confirm') }))] }), children: _jsx(SelectTreeNode, { treeId: attribute.linked_tree.id, multiple // We want to be able to set as selected in the tree components, the nodes that are already selected and the disabled nodes
38
37
  : true, selectedNodes: [
39
38
  ...selectedNodes.map(node => node.id),
40
- ...(isMonoValueToReplace ? [] : backendValues.map(value => value.treeValue.id)),
39
+ ...backendValues.map(value => value.treeValue.id),
41
40
  ], childrenAsRecordValuePermissionFilter: childrenAsRecordValuePermissionFilter, disabledNodes: backendValues.map(value => value.treeValue.id).concat(attribute.linked_tree.id), onSelect: _handleOnSelect }) }));
42
41
  };
43
42
  //# sourceMappingURL=SelectTreeNodeModal.js.map