@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.
- package/dist/components/Explorer/DataView.d.ts +1 -0
- package/dist/components/Explorer/DataView.js +9 -3
- package/dist/components/Explorer/DataView.js.map +1 -1
- package/dist/components/Explorer/Explorer.d.ts +1 -0
- package/dist/components/Explorer/Explorer.js +4 -1
- package/dist/components/Explorer/Explorer.js.map +1 -1
- package/dist/components/Explorer/TableNameCell.js +1 -1
- package/dist/components/Explorer/TableNameCell.js.map +1 -1
- package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js +2 -3
- package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js.map +1 -1
- package/dist/components/Explorer/actions-mass/useExportMassAction.js +4 -4
- package/dist/components/Explorer/actions-mass/useExportMassAction.js.map +1 -1
- package/dist/components/Explorer/link-item/LinkModal.js +1 -1
- package/dist/components/Explorer/link-item/LinkModal.js.map +1 -1
- package/dist/components/Explorer/list-saved-views/SavedViews.js +6 -6
- package/dist/components/Explorer/list-saved-views/SavedViews.js.map +1 -1
- package/dist/components/Filters/context/useGetTreeFilters.js +3 -1
- package/dist/components/Filters/context/useGetTreeFilters.js.map +1 -1
- package/dist/components/Filters/filter-items/filter-type/TreeAttributeDropDown.js +1 -1
- package/dist/components/Filters/filter-items/filter-type/TreeAttributeDropDown.js.map +1 -1
- package/dist/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.js +6 -4
- package/dist/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.js.map +1 -1
- package/dist/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.js +4 -3
- package/dist/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.js.map +1 -1
- package/dist/components/Notifications/hooks/useNotificationSubscription.js +5 -6
- package/dist/components/Notifications/hooks/useNotificationSubscription.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js +4 -5
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js.map +1 -1
- package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.d.ts +1 -0
- package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js +40 -19
- package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js.map +1 -1
- package/dist/components/SelectTreeNode/SelectTreeNodeContent.js +7 -1
- package/dist/components/SelectTreeNode/SelectTreeNodeContent.js.map +1 -1
- package/dist/components/TriggerPreviewsGenerationModal/TriggerPreviewsGenerationModal.js +12 -4
- package/dist/components/TriggerPreviewsGenerationModal/TriggerPreviewsGenerationModal.js.map +1 -1
- package/dist/constants.d.ts +2 -0
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -1
- package/dist/locales/fr/shared.json +1 -1
- 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,
|
|
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
|
-
|
|
96
|
+
KitNotification.info({
|
|
97
97
|
message: `Id : ${viewItem?.id}`,
|
|
98
98
|
description: t('explorer.viewList.copied'),
|
|
99
|
-
duration:
|
|
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
|
-
|
|
105
|
+
KitNotification.info({
|
|
106
106
|
message: `Id : ${viewItem?.id}`,
|
|
107
107
|
description: t('explorer.viewList.copied'),
|
|
108
|
-
duration:
|
|
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
|
-
|
|
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":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAEH,sBAAsB,EACtB,qCAAqC,GACxC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAM1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAC,SAAS,EAAE,IAAI,EAAqC,EAAE,EAAE;IACvF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAe,EAAE,CAAC,CAAC;IACjE,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnE,MAAM,CAAC,yBAAyB,CAAC,GAAG,qCAAqC,EAAE,CAAC;IAE5E,MAAM,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAC,GAAG,sBAAsB,CAAC;QACxE,SAAS,EAAE;YACP,EAAE,EAAE,SAAS;SAChB;QACD,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS;KAC3B,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,cAAc,EAAE,CAAC;YACvC,OAAO;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;YAChC,MAAM,qCAAqC,GACvC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACzF,WAAW,EAAE,SAAS,CAAC,EAAE;gBACzB,MAAM,EACF,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAC3C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAEvC,EAAE,WAAW,EAAE,EAAE;aACrB,CAAC,CAAC,IAAI,EAAE,CAAC;YAEd,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,qCAAqC,CAAC,GAAG,CAAC,KAAK,EAAC,SAAS,EAAC,EAAE;gBACxD,MAAM,GAAG,GAAG,MAAM,yBAAyB,CAAC;oBACxC,SAAS,EAAE;wBACP,MAAM,EAAE,SAAS,CAAC,MAAM;wBACxB,+BAA+B,EAAE;4BAC7B,WAAW,EAAE,SAAS,CAAC,WAAW;4BAClC,SAAS;yBACZ;qBACJ;iBACJ,CAAC,CAAC;gBAEH,OAAO;oBACH,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,SAAS,EACL,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI;wBAC7B,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CACT,IAAI,CAAC,+BAA+B;wBAChC,CAAC,CAAC;4BACI,MAAM,EAAE,IAAI,CAAC,EAAE;4BACf,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;4BACxC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;4BACrB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;yBAClC;wBACH,CAAC,CAAC,SAAS,CAClB;yBACA,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;iBACjC,CAAC;YACN,CAAC,CAAC,CACL,CAAC;YAEF,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBACvD,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;
|
|
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:
|
|
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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
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
package/dist/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.js.map
CHANGED
|
@@ -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 {
|
|
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
|
-
|
|
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
|
package/dist/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.js.map
CHANGED
|
@@ -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,
|
|
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
|
|
20
|
-
|
|
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'),
|
|
22
|
+
messageExtra: (_jsx(KitTypography.Text, { size: "fontSize7", children: dayjs.unix(date).format('HH:mm DD/MM/YYYY') })),
|
|
24
23
|
duration: 10,
|
|
25
|
-
|
|
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,
|
|
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
|
-
|
|
21
|
-
|
|
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
|
-
...
|
|
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
|