@leav/ui 0.3.6-0a46784 → 0.3.6-0c3283c
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/__mocks__/common/form.d.ts +1 -0
- package/dist/__mocks__/common/form.js +15 -0
- package/dist/__mocks__/common/form.js.map +1 -1
- package/dist/__mocks__/common/value.js +0 -1
- package/dist/__mocks__/common/value.js.map +1 -1
- package/dist/_gqlTypes/index.d.ts +118 -0
- package/dist/_gqlTypes/index.js +73 -7
- package/dist/_gqlTypes/index.js.map +1 -1
- package/dist/_queries/attributes/getAttributesByLib.js +7 -5
- package/dist/_queries/attributes/getAttributesByLib.js.map +1 -1
- package/dist/_utils/attributeType.d.ts +3 -0
- package/dist/_utils/attributeType.js +7 -0
- package/dist/_utils/attributeType.js.map +1 -0
- package/dist/components/Explorer/DataView.d.ts +6 -1
- package/dist/components/Explorer/DataView.js +30 -6
- package/dist/components/Explorer/DataView.js.map +1 -1
- package/dist/components/Explorer/Explorer.d.ts +3 -1
- package/dist/components/Explorer/Explorer.js +49 -12
- package/dist/components/Explorer/Explorer.js.map +1 -1
- package/dist/components/Explorer/ExplorerToolbar.d.ts +5 -0
- package/dist/components/Explorer/ExplorerToolbar.js +45 -0
- package/dist/components/Explorer/ExplorerToolbar.js.map +1 -0
- package/dist/components/Explorer/_constants.d.ts +1 -0
- package/dist/components/Explorer/_constants.js +1 -0
- package/dist/components/Explorer/_constants.js.map +1 -1
- package/dist/components/Explorer/_queries/prepareFiltersForRequest.d.ts +4 -0
- package/dist/components/Explorer/_queries/prepareFiltersForRequest.js +99 -0
- package/dist/components/Explorer/_queries/prepareFiltersForRequest.js.map +1 -0
- package/dist/components/Explorer/_queries/useExplorerData.d.ts +4 -4
- package/dist/components/Explorer/_queries/useExplorerData.js +9 -93
- package/dist/components/Explorer/_queries/useExplorerData.js.map +1 -1
- package/dist/components/Explorer/_types.d.ts +40 -11
- package/dist/components/Explorer/_types.js +7 -1
- package/dist/components/Explorer/_types.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/_shared/CommonFilterItem.d.ts +3 -2
- package/dist/components/Explorer/manage-view-settings/_shared/CommonFilterItem.js +1 -1
- package/dist/components/Explorer/manage-view-settings/_shared/CommonFilterItem.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/_shared/useAttributeDetailsData.d.ts +3 -1
- package/dist/components/Explorer/manage-view-settings/_shared/useAttributeDetailsData.js +9 -3
- package/dist/components/Explorer/manage-view-settings/_shared/useAttributeDetailsData.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js +6 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/BooleanAttributeDropdown.d.ts +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/BooleanAttributeDropdown.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/ColorAttributeDropDown.d.ts +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/DateAttributeDropDown.d.ts +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/DateAttributeDropDown.js +2 -2
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/DateAttributeDropDown.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/DateRangeAttributeDropDown.d.ts +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/EncryptedAttributeDropDown.d.ts +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/ExtendedAttributeDropDown.d.ts +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropDown.d.ts +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropDown.js +2 -38
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropDown.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropdownContent.d.ts +7 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropdownContent.js +40 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropdownContent.js.map +1 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/LinkAttributeDropdown.d.ts +3 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/LinkAttributeDropdown.js +79 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/LinkAttributeDropdown.js.map +1 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/NumericAttributeDropDown.d.ts +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/TextAttributeDropDown.d.ts +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/TextAttributeDropDown.js +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/TextAttributeDropDown.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/_types.d.ts +10 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/_types.js +2 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/_types.js.map +1 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/useConditionOptionsByType.d.ts +6 -5
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/useConditionOptionsByType.js +12 -4
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/useConditionOptionsByType.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/open-view-settings/SidePanel.js +1 -1
- package/dist/components/Explorer/manage-view-settings/open-view-settings/SidePanel.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/router-menu/SettingsPanel.js +12 -5
- package/dist/components/Explorer/manage-view-settings/router-menu/SettingsPanel.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsInitialState.js +1 -0
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsInitialState.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.d.ts +22 -8
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js +40 -7
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js.map +1 -1
- package/dist/components/Explorer/useDeactivateMassAction.d.ts +27 -0
- package/dist/components/Explorer/useDeactivateMassAction.js +71 -0
- package/dist/components/Explorer/useDeactivateMassAction.js.map +1 -0
- package/dist/components/Explorer/useMassActions.d.ts +27 -0
- package/dist/components/Explorer/useMassActions.js +109 -0
- package/dist/components/Explorer/useMassActions.js.map +1 -0
- package/dist/components/Explorer/useRemoveAction.d.ts +13 -2
- package/dist/components/Explorer/useRemoveAction.js +28 -9
- package/dist/components/Explorer/useRemoveAction.js.map +1 -1
- package/dist/components/Explorer/useSearchInput.d.ts +10 -4
- package/dist/components/Explorer/useSearchInput.js +8 -0
- package/dist/components/Explorer/useSearchInput.js.map +1 -1
- package/dist/components/Explorer/useViewSettingsReducer.js +101 -19
- package/dist/components/Explorer/useViewSettingsReducer.js.map +1 -1
- package/dist/components/RecordEdition/EditRecord/EditRecord.js +71 -61
- package/dist/components/RecordEdition/EditRecord/EditRecord.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/hooks/useExecuteSaveValueBatchMutation.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn/ValueDetailsBtn.js +1 -7
- package/dist/components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn/ValueDetailsBtn.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js +56 -33
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSColorPickerWrapper.js +7 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSColorPickerWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSDatePickerWrapper.js +4 -2
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSDatePickerWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputEncryptedWrapper.js +12 -7
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputEncryptedWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputNumberWrapper.js +1 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputNumberWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js +2 -13
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.js +8 -8
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRichTextWrapper.js +1 -4
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRichTextWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.d.ts +1 -2
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.js +2 -14
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/ValuesList/DSListSelect.js +2 -2
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/ValuesList/DSListSelect.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/_types.d.ts +0 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/calculatedInheritedFlags.js +3 -2
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/calculatedInheritedFlags.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js +4 -7
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/AttributeSummary.d.ts +7 -0
- package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/AttributeSummary.js +9 -0
- package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/AttributeSummary.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/index.d.ts +2 -0
- package/dist/components/RecordEdition/EditRecordSidebar/{ValueDetails/AttributeDetails → AttributeSummary}/index.js +2 -2
- package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/index.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/useAttributeInformations.d.ts +2 -0
- package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/useAttributeInformations.js +25 -0
- package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/useAttributeInformations.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordSidebar/Breacrumb/Breadcrumb.d.ts +3 -0
- package/dist/components/RecordEdition/EditRecordSidebar/Breacrumb/Breadcrumb.js +53 -0
- package/dist/components/RecordEdition/EditRecordSidebar/Breacrumb/Breadcrumb.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordSidebar/Breacrumb/index.d.ts +2 -0
- package/dist/components/RecordEdition/EditRecordSidebar/{ValueDetails/ValueInfo → Breacrumb}/index.js +2 -2
- package/dist/components/RecordEdition/EditRecordSidebar/Breacrumb/index.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.js +8 -6
- package/dist/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.d.ts +8 -0
- package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js +66 -0
- package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/index.d.ts +2 -0
- package/dist/components/RecordEdition/EditRecordSidebar/{ValueDetails → ValuesSummary}/index.js +2 -2
- package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/index.js.map +1 -0
- package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.d.ts +12 -10
- package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.js +15 -13
- package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.js.map +1 -1
- package/dist/components/SelectTreeNode/SelectTreeNodeContent.js +1 -3
- package/dist/components/SelectTreeNode/SelectTreeNodeContent.js.map +1 -1
- package/dist/locales/en/shared.json +31 -9
- package/dist/locales/fr/shared.json +33 -11
- package/package.json +2 -2
- package/dist/components/Explorer/display-view-filters/ExplorerToolBar.d.ts +0 -4
- package/dist/components/Explorer/display-view-filters/ExplorerToolBar.js +0 -47
- package/dist/components/Explorer/display-view-filters/ExplorerToolBar.js.map +0 -1
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/AttributeDetails/AttributeDetails.d.ts +0 -6
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/AttributeDetails/AttributeDetails.js +0 -56
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/AttributeDetails/AttributeDetails.js.map +0 -1
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/AttributeDetails/index.d.ts +0 -2
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/AttributeDetails/index.js.map +0 -1
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/TreeValuePath/TreeValuePath.d.ts +0 -8
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/TreeValuePath/TreeValuePath.js +0 -41
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/TreeValuePath/TreeValuePath.js.map +0 -1
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/TreeValuePath/index.d.ts +0 -2
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/TreeValuePath/index.js +0 -6
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/TreeValuePath/index.js.map +0 -1
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueDetails.d.ts +0 -10
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueDetails.js +0 -51
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueDetails.js.map +0 -1
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueInfo/ValueInfo.d.ts +0 -2
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueInfo/ValueInfo.js +0 -76
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueInfo/ValueInfo.js.map +0 -1
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueInfo/index.d.ts +0 -2
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueInfo/index.js.map +0 -1
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueMetadata/ValueMetadata.d.ts +0 -11
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueMetadata/ValueMetadata.js +0 -43
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueMetadata/ValueMetadata.js.map +0 -1
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueMetadata/index.d.ts +0 -2
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueMetadata/index.js +0 -6
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueMetadata/index.js.map +0 -1
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/index.d.ts +0 -2
- package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/index.js.map +0 -1
|
@@ -6,11 +6,11 @@ import { cloneElement, memo } from 'react';
|
|
|
6
6
|
import { KitButton, KitDropDown, KitPagination, KitTable, useKitTheme } from 'aristid-ds';
|
|
7
7
|
import { FaEllipsisH } from 'react-icons/fa';
|
|
8
8
|
import styled from 'styled-components';
|
|
9
|
+
import isEqual from 'lodash/isEqual';
|
|
9
10
|
import { useSharedTranslation } from '../../hooks/useSharedTranslation';
|
|
10
11
|
import { TableCell } from './TableCell';
|
|
11
12
|
import { IdCard } from './IdCard';
|
|
12
13
|
import { defaultPaginationHeight, useTableScrollableHeight } from './useTableScrollableHeight';
|
|
13
|
-
import isEqual from 'lodash/isEqual';
|
|
14
14
|
import { useColumnWidth } from './useColumnWidth';
|
|
15
15
|
const USELESS = '';
|
|
16
16
|
const tableHeaderHeight = 56;
|
|
@@ -50,19 +50,28 @@ const StyledTable = styled(KitTable) `
|
|
|
50
50
|
}
|
|
51
51
|
`;
|
|
52
52
|
// TODO: tests will fail if we don't check attributeToDisplay because we have a render with no attributes but data is present. We should check why there's this behavior
|
|
53
|
-
const arePropsEqual = (prevProps, nextProps) => isEqual({
|
|
54
|
-
|
|
53
|
+
const arePropsEqual = (prevProps, nextProps) => isEqual({
|
|
54
|
+
attributesToDisplay: prevProps.attributesToDisplay,
|
|
55
|
+
data: prevProps.dataGroupedFilteredSorted,
|
|
56
|
+
selectedKeys: prevProps.selection.selectedKeys
|
|
57
|
+
}, {
|
|
58
|
+
attributesToDisplay: nextProps.attributesToDisplay,
|
|
59
|
+
data: nextProps.dataGroupedFilteredSorted,
|
|
60
|
+
selectedKeys: nextProps.selection.selectedKeys
|
|
61
|
+
});
|
|
62
|
+
export const DataView = memo(({ dataGroupedFilteredSorted, attributesToDisplay, attributesProperties, paginationProps, itemActions, selection: { onSelectionChange, selectedKeys, isMassSelectionAll } }) => {
|
|
55
63
|
const { t } = useSharedTranslation();
|
|
56
64
|
const { theme } = useKitTheme();
|
|
57
65
|
const { containerRef, scrollHeight } = useTableScrollableHeight(!!paginationProps);
|
|
58
66
|
const { ref, getFieldColumnWidth, columnWidth } = useColumnWidth();
|
|
59
67
|
const _getActionButtons = (actions, columnRef) => {
|
|
60
68
|
const isLessThanFourActions = actions.length < 4;
|
|
61
|
-
return (_jsx(StyledActionsList, { ref: columnRef, children: isLessThanFourActions ? (_jsx(_Fragment, { children: actions.map(({ label, icon, isDanger, callback }, actionIndex) => (_jsx(KitButton, { title: label, icon: icon, onClick: callback, danger: isDanger, children: label }, actionIndex))) })) : (_jsxs(_Fragment, { children: [_jsx(KitButton, { type: "tertiary", icon: actions[0].icon, onClick: actions[0].callback, title: actions[0].label, danger: actions[0].isDanger }), _jsx(KitButton, { type: "tertiary", icon: actions[1].icon, onClick: actions[1].callback, title: actions[1].label, danger: actions[1].isDanger }), _jsx(KitDropDown, { menu: {
|
|
62
|
-
items: actions.slice(2).map(({ callback, icon, label, isDanger }) => ({
|
|
69
|
+
return (_jsx(StyledActionsList, { ref: columnRef, children: isLessThanFourActions ? (_jsx(_Fragment, { children: actions.map(({ label, icon, isDanger, callback, disabled }, actionIndex) => (_jsx(KitButton, { title: label, icon: icon, onClick: callback, danger: isDanger, disabled: disabled, children: label }, actionIndex))) })) : (_jsxs(_Fragment, { children: [_jsx(KitButton, { type: "tertiary", icon: actions[0].icon, onClick: actions[0].callback, title: actions[0].label, danger: actions[0].isDanger, disabled: actions[0].disabled }), _jsx(KitButton, { type: "tertiary", icon: actions[1].icon, onClick: actions[1].callback, title: actions[1].label, danger: actions[1].isDanger, disabled: actions[1].disabled }), _jsx(KitDropDown, { menu: {
|
|
70
|
+
items: actions.slice(2).map(({ callback, icon, label, isDanger, disabled }) => ({
|
|
63
71
|
key: label,
|
|
64
72
|
title: label,
|
|
65
73
|
danger: isDanger,
|
|
74
|
+
disabled,
|
|
66
75
|
label,
|
|
67
76
|
icon: icon ? cloneElement(icon, { size: '2em' }) : null, // TODO: find better tuning
|
|
68
77
|
onClick: callback
|
|
@@ -93,7 +102,22 @@ export const DataView = memo(({ dataGroupedFilteredSorted, attributesToDisplay,
|
|
|
93
102
|
})), index === 0 ? ref : null)
|
|
94
103
|
}
|
|
95
104
|
]);
|
|
105
|
+
const _rowSelection = onSelectionChange === null
|
|
106
|
+
? undefined
|
|
107
|
+
: {
|
|
108
|
+
type: 'checkbox',
|
|
109
|
+
columnTitle: ' ', // blank string to hide select all checkbox from <KitTable />
|
|
110
|
+
selectedRowKeys: selectedKeys,
|
|
111
|
+
preserveSelectedRowKeys: true,
|
|
112
|
+
// TODO: review types from antd directly
|
|
113
|
+
onChange: (selectedRowKeys, _selectedRows, _info) => onSelectionChange(selectedRowKeys),
|
|
114
|
+
getCheckboxProps: isMassSelectionAll
|
|
115
|
+
? () => ({
|
|
116
|
+
disabled: true
|
|
117
|
+
})
|
|
118
|
+
: undefined
|
|
119
|
+
};
|
|
96
120
|
// TODO: handle columns width based on attribute type/format
|
|
97
|
-
return (_jsxs(DataViewContainerDivStyled, { ref: containerRef, children: [_jsx(StyledTable, { borderedRows: true, cellsBackgroundColor: theme.utilities.light, backgroundColor: theme.colors.primary['50'], showHeader: dataGroupedFilteredSorted.length > 0, columns: columns, tableLayout: "fixed", scroll: { y: scrollHeight, x: '100%' }, dataSource: dataGroupedFilteredSorted, pagination: false }), paginationProps && (_jsx("div", { className: "pagination", children: _jsx(KitPagination, { showSizeChanger: true, showTotal: (total, [from, to]) => t('explorer.pagination-total-number', { from, to, total }), total: paginationProps
|
|
121
|
+
return (_jsxs(DataViewContainerDivStyled, { ref: containerRef, children: [_jsx(StyledTable, { borderedRows: true, cellsBackgroundColor: theme.utilities.light, backgroundColor: theme.colors.primary['50'], showHeader: dataGroupedFilteredSorted.length > 0, columns: columns, tableLayout: "fixed", scroll: { y: scrollHeight, x: '100%' }, dataSource: dataGroupedFilteredSorted, pagination: false, rowSelection: _rowSelection }), paginationProps && (_jsx("div", { className: "pagination", children: _jsx(KitPagination, { showSizeChanger: true, showTotal: (total, [from, to]) => t('explorer.pagination-total-number', { from, to, count: total }), total: paginationProps.totalCount, defaultCurrent: paginationProps.currentPage, defaultPageSize: paginationProps.pageSize, pageSizeOptions: paginationProps.pageSizeOptions, onChange: paginationProps.setNewPage, onShowSizeChange: paginationProps.setNewPageSize }) }))] }));
|
|
98
122
|
}, arePropsEqual);
|
|
99
123
|
//# sourceMappingURL=DataView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataView.js","sourceRoot":"","sources":["../../../src/components/Explorer/DataView.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"DataView.js","sourceRoot":"","sources":["../../../src/components/Explorer/DataView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { FunctionComponent, ReactNode } from 'react';
|
|
2
|
-
import { DefaultViewSettings, Entrypoint, IItemAction, IPrimaryAction } from './_types';
|
|
2
|
+
import { DefaultViewSettings, Entrypoint, IItemAction, IMassActions, IPrimaryAction } from './_types';
|
|
3
3
|
interface IExplorerProps {
|
|
4
4
|
entrypoint: Entrypoint;
|
|
5
5
|
noPagination?: true;
|
|
6
6
|
itemActions?: IItemAction[];
|
|
7
7
|
primaryActions?: IPrimaryAction[];
|
|
8
|
+
massActions?: IMassActions[];
|
|
8
9
|
title?: string;
|
|
9
10
|
emptyPlaceholder?: ReactNode;
|
|
10
11
|
defaultActionsForItem?: Array<'edit' | 'remove'>;
|
|
11
12
|
defaultPrimaryActions?: Array<'create'>;
|
|
13
|
+
defaultMassActions?: Array<'deactivate'>;
|
|
12
14
|
defaultViewSettings?: DefaultViewSettings;
|
|
13
15
|
}
|
|
14
16
|
export declare const Explorer: FunctionComponent<IExplorerProps>;
|
|
@@ -1,21 +1,24 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { createPortal } from 'react-dom';
|
|
3
3
|
import { KitEmpty, KitSpace, KitTypography } from 'aristid-ds';
|
|
4
4
|
import styled from 'styled-components';
|
|
5
|
+
import { Loading } from '../../components/Loading';
|
|
6
|
+
import { useSharedTranslation } from '../../hooks/useSharedTranslation';
|
|
5
7
|
import { useExplorerData } from './_queries/useExplorerData';
|
|
6
8
|
import { DataView } from './DataView';
|
|
9
|
+
import { ExplorerTitle } from './ExplorerTitle';
|
|
10
|
+
import { ExplorerToolbar } from './ExplorerToolbar';
|
|
7
11
|
import { useRemoveAction } from './useRemoveAction';
|
|
8
12
|
import { useEditAction } from './useEditAction';
|
|
9
13
|
import { usePrimaryActionsButton } from './usePrimaryActions';
|
|
10
|
-
import { ExplorerTitle } from './ExplorerTitle';
|
|
11
14
|
import { useCreateAction } from './useCreateAction';
|
|
15
|
+
import { useMassActions } from './useMassActions';
|
|
12
16
|
import { defaultPageSizeOptions, SidePanel, useEditSettings, useOpenViewSettings, ViewSettingsContext } from './manage-view-settings';
|
|
13
17
|
import { useSearchInput } from './useSearchInput';
|
|
14
18
|
import { usePagination } from './usePagination';
|
|
15
|
-
import { Loading } from '../Loading';
|
|
16
|
-
import { ExplorerToolBar } from './display-view-filters/ExplorerToolBar';
|
|
17
|
-
import { useSharedTranslation } from '../../hooks/useSharedTranslation';
|
|
18
19
|
import { useViewSettingsReducer } from './useViewSettingsReducer';
|
|
20
|
+
import { useDeactivateMassAction } from './useDeactivateMassAction';
|
|
21
|
+
import { MASS_SELECTION_ALL } from './_constants';
|
|
19
22
|
const isNotEmpty = (union) => union.length > 0;
|
|
20
23
|
const emptyArray = [];
|
|
21
24
|
const emptyObject = {};
|
|
@@ -32,7 +35,14 @@ const ExplorerPageDivStyled = styled.div `
|
|
|
32
35
|
height: 100%;
|
|
33
36
|
overflow: hidden;
|
|
34
37
|
`;
|
|
35
|
-
|
|
38
|
+
const ExplorerEmptyDataStyled = styled.div `
|
|
39
|
+
flex: 1;
|
|
40
|
+
display: flex;
|
|
41
|
+
flex-direction: column;
|
|
42
|
+
align-items: center;
|
|
43
|
+
justify-content: center;
|
|
44
|
+
`;
|
|
45
|
+
export const Explorer = ({ entrypoint, noPagination, itemActions = [], primaryActions = [], massActions = [], title, emptyPlaceholder, defaultActionsForItem = ['edit', 'remove'], defaultPrimaryActions = ['create'], defaultMassActions = ['deactivate'], defaultViewSettings }) => {
|
|
36
46
|
const { t } = useSharedTranslation();
|
|
37
47
|
const { panelElement } = useEditSettings();
|
|
38
48
|
const { loading: viewSettingsLoading, view, dispatch } = useViewSettingsReducer(entrypoint, defaultViewSettings);
|
|
@@ -47,9 +57,12 @@ export const Explorer = ({ entrypoint, noPagination, itemActions, primaryActions
|
|
|
47
57
|
filters: view.filters,
|
|
48
58
|
skip: viewSettingsLoading
|
|
49
59
|
}); // TODO: refresh when go back on page
|
|
60
|
+
const isMassSelectionAll = view.massSelection === MASS_SELECTION_ALL;
|
|
50
61
|
const { removeAction } = useRemoveAction({
|
|
51
|
-
isEnabled: isNotEmpty(defaultActionsForItem) && defaultActionsForItem.includes('remove')
|
|
52
|
-
|
|
62
|
+
isEnabled: isNotEmpty(defaultActionsForItem) && defaultActionsForItem.includes('remove'),
|
|
63
|
+
store: { view, dispatch },
|
|
64
|
+
entrypoint
|
|
65
|
+
});
|
|
53
66
|
const { editAction, editModal } = useEditAction({
|
|
54
67
|
isEnabled: isNotEmpty(defaultActionsForItem) && defaultActionsForItem.includes('edit')
|
|
55
68
|
});
|
|
@@ -60,19 +73,43 @@ export const Explorer = ({ entrypoint, noPagination, itemActions, primaryActions
|
|
|
60
73
|
itemsCount: data?.totalCount ?? 0,
|
|
61
74
|
refetch
|
|
62
75
|
});
|
|
63
|
-
const
|
|
76
|
+
const totalCount = data?.totalCount ?? 0;
|
|
77
|
+
const allVisibleKeys = data?.records.map(({ key }) => key) ?? [];
|
|
78
|
+
const { deactivateMassAction } = useDeactivateMassAction({
|
|
79
|
+
isEnabled: isNotEmpty(defaultMassActions) && defaultMassActions.includes('deactivate'),
|
|
80
|
+
store: { view, dispatch },
|
|
81
|
+
allVisibleKeys,
|
|
82
|
+
refetch
|
|
83
|
+
});
|
|
84
|
+
const { setSelectedKeys, selectAllButton } = useMassActions({
|
|
85
|
+
isEnabled: totalCount > 0 && (isNotEmpty(defaultMassActions) || isNotEmpty(massActions)),
|
|
86
|
+
store: { view, dispatch },
|
|
87
|
+
totalCount,
|
|
88
|
+
allVisibleKeys,
|
|
89
|
+
massActions: [deactivateMassAction, ...massActions].filter(Boolean)
|
|
90
|
+
});
|
|
91
|
+
const { primaryButton } = usePrimaryActionsButton([createAction, ...primaryActions].filter(Boolean));
|
|
64
92
|
const { viewSettingsButton } = useOpenViewSettings(view.libraryId);
|
|
65
93
|
const { searchInput } = useSearchInput({ view, dispatch });
|
|
66
94
|
const hasNoResults = data === null || data.totalCount === 0;
|
|
67
|
-
return (_jsxs(ViewSettingsContext.Provider, { value: { view, dispatch }, children: [_jsxs(ExplorerPageDivStyled, { children: [_jsxs(ExplorerHeaderDivStyled, { children: [_jsx(KitTypography.Title, { level: "h1", children: !viewSettingsLoading && (_jsx(ExplorerTitle, { library: view.libraryId, title: title, entrypoint: entrypoint })) /*TODO: manage loading*/ }), _jsxs(KitSpace, { size: "xs", children: [searchInput, viewSettingsButton, primaryButton] })] }), !viewSettingsLoading && _jsx(
|
|
95
|
+
return (_jsxs(ViewSettingsContext.Provider, { value: { view, dispatch }, children: [_jsxs(ExplorerPageDivStyled, { children: [_jsxs(ExplorerHeaderDivStyled, { children: [_jsx(KitTypography.Title, { level: "h1", children: !viewSettingsLoading && (_jsx(ExplorerTitle, { library: view.libraryId, title: title, entrypoint: entrypoint })) /*TODO: manage loading*/ }), !isMassSelectionAll && (_jsxs(KitSpace, { size: "xs", children: [searchInput, viewSettingsButton, primaryButton] }))] }), !viewSettingsLoading && (_jsx(ExplorerToolbar, { libraryId: view.libraryId, isMassSelectionAll: isMassSelectionAll, children: selectAllButton })), loadingData || viewSettingsLoading ? (_jsx(Loading, {})) : hasNoResults ? (_jsx(ExplorerEmptyDataStyled, { children: emptyPlaceholder || _jsx(KitEmpty, { title: t('explorer.empty-data') }) })) : (_jsx(DataView, { dataGroupedFilteredSorted: data?.records ?? emptyArray, attributesProperties: data?.attributes ?? emptyObject, attributesToDisplay: ['whoAmI', ...view.attributesIds], paginationProps: entrypoint.type === 'library'
|
|
68
96
|
? {
|
|
69
97
|
pageSizeOptions: defaultPageSizeOptions,
|
|
70
98
|
currentPage,
|
|
71
99
|
pageSize: view.pageSize,
|
|
72
100
|
setNewPageSize,
|
|
73
101
|
setNewPage,
|
|
74
|
-
|
|
102
|
+
totalCount
|
|
75
103
|
}
|
|
76
|
-
: undefined, itemActions: [editAction, removeAction, ...
|
|
104
|
+
: undefined, itemActions: [editAction, removeAction, ...itemActions].filter(Boolean).map(action => ({
|
|
105
|
+
...action,
|
|
106
|
+
disabled: isMassSelectionAll
|
|
107
|
+
})), selection: {
|
|
108
|
+
onSelectionChange: setSelectedKeys,
|
|
109
|
+
isMassSelectionAll,
|
|
110
|
+
selectedKeys: isMassSelectionAll
|
|
111
|
+
? data?.records.map(({ whoAmI }) => whoAmI.id)
|
|
112
|
+
: view.massSelection
|
|
113
|
+
} }))] }), panelElement && createPortal(_jsx(SidePanel, {}), panelElement), editModal, createModal] }));
|
|
77
114
|
};
|
|
78
115
|
//# sourceMappingURL=Explorer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Explorer.js","sourceRoot":"","sources":["../../../src/components/Explorer/Explorer.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AAC7D,OAAO,MAAM,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Explorer.js","sourceRoot":"","sources":["../../../src/components/Explorer/Explorer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { KitButton, KitDivider, KitFilter, KitSpace } from 'aristid-ds';
|
|
3
|
+
import { FaTrash } from 'react-icons/fa';
|
|
4
|
+
import styled from 'styled-components';
|
|
5
|
+
import { useSharedTranslation } from '../../hooks/useSharedTranslation';
|
|
6
|
+
import { SortOrder } from '../../_gqlTypes';
|
|
7
|
+
import { useViewSettingsContext } from './manage-view-settings/store-view-settings/useViewSettingsContext';
|
|
8
|
+
import { CommonFilterItem } from './manage-view-settings/_shared/CommonFilterItem';
|
|
9
|
+
import { useAttributeDetailsData } from './manage-view-settings/_shared/useAttributeDetailsData';
|
|
10
|
+
import { useOpenViewSettings } from './manage-view-settings';
|
|
11
|
+
const FilterStyled = styled(KitFilter) `
|
|
12
|
+
flex: 0 0 auto;
|
|
13
|
+
`;
|
|
14
|
+
const ExplorerToolbarListStyled = styled.ul `
|
|
15
|
+
padding: calc(var(--general-spacing-xs) * 1px) calc(var(--general-spacing-xxs) * 1px)
|
|
16
|
+
calc(var(--general-spacing-m) * 1px) calc(var(--general-spacing-xxs) * 1px);
|
|
17
|
+
margin: 0;
|
|
18
|
+
list-style: none;
|
|
19
|
+
display: flex;
|
|
20
|
+
overflow: auto;
|
|
21
|
+
flex-wrap: nowrap;
|
|
22
|
+
align-items: center;
|
|
23
|
+
gap: 0;
|
|
24
|
+
white-space: nowrap;
|
|
25
|
+
`;
|
|
26
|
+
const DividerStyled = styled(KitDivider) `
|
|
27
|
+
height: 2em;
|
|
28
|
+
`;
|
|
29
|
+
export const ExplorerToolbar = ({ libraryId, isMassSelectionAll, children }) => {
|
|
30
|
+
const { t } = useSharedTranslation();
|
|
31
|
+
const { view: { filters, sort } } = useViewSettingsContext();
|
|
32
|
+
const { openSettingsPanel } = useOpenViewSettings(libraryId);
|
|
33
|
+
const { attributeDetailsById } = useAttributeDetailsData(libraryId);
|
|
34
|
+
if (filters.length === 0 && sort.length === 0 && children === null) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
const sortValues = sort.length === 0
|
|
38
|
+
? undefined
|
|
39
|
+
: sort.map(({ field, order }) => (attributeDetailsById?.[field]?.label ?? field) +
|
|
40
|
+
' ' +
|
|
41
|
+
(order === SortOrder.asc ? t('explorer.sort-ascending') : t('explorer.sort-descending')));
|
|
42
|
+
const _handleClickOnSort = () => isMassSelectionAll ? undefined : () => openSettingsPanel('sort-items');
|
|
43
|
+
return (_jsxs(ExplorerToolbarListStyled, { "aria-label": t('explorer.toolbar'), children: [children !== null && (_jsxs(_Fragment, { children: [_jsx("li", { children: children }), filters.length !== 0 && _jsx(DividerStyled, { type: "vertical" })] })), filters.length > 0 && (_jsxs(_Fragment, { children: [_jsx(KitSpace, { size: "s", children: filters.map(filter => (_jsx("li", { children: _jsx(CommonFilterItem, { filter: filter, disabled: isMassSelectionAll }, filter.id) }, filter.id))) }), sort.length > 0 && _jsx(DividerStyled, { type: "vertical" })] })), sort.length > 0 && (_jsxs(_Fragment, { children: [_jsx("li", { children: _jsx(FilterStyled, { label: t('explorer.sort-items'), values: sortValues, disabled: isMassSelectionAll, onClick: _handleClickOnSort }) }), _jsx(DividerStyled, { type: "vertical" })] })), _jsx("li", { children: _jsx(FilterStyled, { as: KitButton, type: "secondary", size: "s", danger: true, icon: _jsx(FaTrash, {}), disabled: true /* TODO: why? */, children: t('explorer.reset-view') }) })] }));
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=ExplorerToolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExplorerToolbar.js","sourceRoot":"","sources":["../../../src/components/Explorer/ExplorerToolbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,3 +2,4 @@ import { ViewTypes } from '../../_gqlTypes';
|
|
|
2
2
|
import { ViewType } from './manage-view-settings/store-view-settings/viewSettingsReducer';
|
|
3
3
|
export declare const mapViewTypeFromExplorerToLegacy: Record<ViewType, ViewTypes>;
|
|
4
4
|
export declare const mapViewTypeFromLegacyToExplorer: Record<ViewTypes, ViewType>;
|
|
5
|
+
export declare const MASS_SELECTION_ALL = "all";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_constants.js","sourceRoot":"","sources":["../../../src/components/Explorer/_constants.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAGxC,yJAAyJ;AACzJ,MAAM,CAAC,MAAM,+BAA+B,GAAgC;IACxE,KAAK,EAAE,SAAS,CAAC,IAAI;IACrB,MAAM,EAAE,SAAS,CAAC,KAAK;IACvB,QAAQ,EAAE,SAAS,CAAC,QAAQ;IAC5B,IAAI,EAAE,SAAS,CAAC,IAAI;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAgC;IACxE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO;IACzB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,QAAQ;IAC3B,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,UAAU;CACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"_constants.js","sourceRoot":"","sources":["../../../src/components/Explorer/_constants.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAGxC,yJAAyJ;AACzJ,MAAM,CAAC,MAAM,+BAA+B,GAAgC;IACxE,KAAK,EAAE,SAAS,CAAC,IAAI;IACrB,MAAM,EAAE,SAAS,CAAC,KAAK;IACvB,QAAQ,EAAE,SAAS,CAAC,QAAQ;IAC5B,IAAI,EAAE,SAAS,CAAC,IAAI;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAgC;IACxE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO;IACzB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,QAAQ;IAC3B,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,UAAU;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06
|
|
2
|
+
// This file is released under LGPL V3
|
|
3
|
+
// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
|
|
4
|
+
import dayjs from 'dayjs';
|
|
5
|
+
import { AttributeFormat, RecordFilterCondition, RecordFilterOperator } from '../../../_gqlTypes';
|
|
6
|
+
import { interleaveElement } from '../../../_utils/interleaveElement';
|
|
7
|
+
import { AttributeConditionFilter } from '../../../types';
|
|
8
|
+
import { isExplorerFilterStandard, isExplorerFilterThrough } from '../_types';
|
|
9
|
+
import { nullValueConditions } from '../conditionsHelper';
|
|
10
|
+
export const dateValuesSeparator = '\n';
|
|
11
|
+
const _getDateAtNoon = (date) => dayjs.unix(Number(date)).add(12, 'hour').unix().toString();
|
|
12
|
+
const _getDateRequestFilters = ({ field, condition, value }) => {
|
|
13
|
+
switch (condition) {
|
|
14
|
+
case RecordFilterCondition.BETWEEN:
|
|
15
|
+
const [from, to] = value.split(dateValuesSeparator);
|
|
16
|
+
return [
|
|
17
|
+
{
|
|
18
|
+
field,
|
|
19
|
+
condition,
|
|
20
|
+
value: JSON.stringify({
|
|
21
|
+
from,
|
|
22
|
+
to
|
|
23
|
+
})
|
|
24
|
+
}
|
|
25
|
+
];
|
|
26
|
+
case RecordFilterCondition.NOT_EQUAL:
|
|
27
|
+
return [
|
|
28
|
+
{
|
|
29
|
+
field,
|
|
30
|
+
condition: RecordFilterCondition.NOT_EQUAL,
|
|
31
|
+
value: _getDateAtNoon(Number(value))
|
|
32
|
+
}
|
|
33
|
+
];
|
|
34
|
+
case RecordFilterCondition.EQUAL:
|
|
35
|
+
return [
|
|
36
|
+
{
|
|
37
|
+
field,
|
|
38
|
+
condition,
|
|
39
|
+
value: _getDateAtNoon(Number(value))
|
|
40
|
+
}
|
|
41
|
+
];
|
|
42
|
+
default:
|
|
43
|
+
return [
|
|
44
|
+
{
|
|
45
|
+
field,
|
|
46
|
+
condition,
|
|
47
|
+
value
|
|
48
|
+
}
|
|
49
|
+
];
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const _getBooleanRequestFilters = (filter) => {
|
|
53
|
+
if (filter.value === 'false') {
|
|
54
|
+
return [
|
|
55
|
+
{
|
|
56
|
+
field: filter.field,
|
|
57
|
+
condition: AttributeConditionFilter.NOT_EQUAL,
|
|
58
|
+
value: 'true'
|
|
59
|
+
}
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
return [{ field: filter.field, condition: filter.condition, value: filter.value }];
|
|
63
|
+
};
|
|
64
|
+
export const prepareFiltersForRequest = (filters) => interleaveElement({ operator: RecordFilterOperator.AND }, filters
|
|
65
|
+
.filter(filter => {
|
|
66
|
+
if (isExplorerFilterThrough(filter)) {
|
|
67
|
+
return (filter.subField &&
|
|
68
|
+
filter.subCondition &&
|
|
69
|
+
(filter.value !== null || nullValueConditions.includes(filter.subCondition)));
|
|
70
|
+
}
|
|
71
|
+
return filter.value !== null || (filter.condition && nullValueConditions.includes(filter.condition));
|
|
72
|
+
})
|
|
73
|
+
.map(filter => {
|
|
74
|
+
const condition = filter.condition === AttributeConditionFilter.THROUGH ? filter.subCondition : filter.condition;
|
|
75
|
+
const field = filter.condition === AttributeConditionFilter.THROUGH
|
|
76
|
+
? `${filter.field}.${filter.subField}`
|
|
77
|
+
: filter.field;
|
|
78
|
+
return { ...filter, condition, field };
|
|
79
|
+
})
|
|
80
|
+
.map(filter => {
|
|
81
|
+
if (isExplorerFilterStandard(filter)) {
|
|
82
|
+
switch (filter.attribute.format) {
|
|
83
|
+
case AttributeFormat.date:
|
|
84
|
+
return _getDateRequestFilters(filter);
|
|
85
|
+
case AttributeFormat.boolean:
|
|
86
|
+
return _getBooleanRequestFilters(filter);
|
|
87
|
+
default:
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return [
|
|
92
|
+
{
|
|
93
|
+
field: filter.field,
|
|
94
|
+
condition: filter.condition,
|
|
95
|
+
value: filter.value
|
|
96
|
+
}
|
|
97
|
+
];
|
|
98
|
+
}));
|
|
99
|
+
//# sourceMappingURL=prepareFiltersForRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepareFiltersForRequest.js","sourceRoot":"","sources":["../../../../src/components/Explorer/_queries/prepareFiltersForRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Entrypoint, IExplorerData,
|
|
2
|
-
import { ExplorerLibraryDataQuery, ExplorerLinkDataQuery,
|
|
1
|
+
import { Entrypoint, IExplorerData, ExplorerFilter } from '../_types';
|
|
2
|
+
import { ExplorerLibraryDataQuery, ExplorerLinkDataQuery, SortOrder } from '../../../_gqlTypes';
|
|
3
3
|
export declare const dateValuesSeparator = "\n";
|
|
4
4
|
export declare const useExplorerData: ({ entrypoint, libraryId, attributeIds, fulltextSearch, sorts, pagination, filters, skip }: {
|
|
5
5
|
entrypoint: Entrypoint;
|
|
@@ -14,7 +14,7 @@ export declare const useExplorerData: ({ entrypoint, libraryId, attributeIds, fu
|
|
|
14
14
|
limit: number;
|
|
15
15
|
offset: number;
|
|
16
16
|
};
|
|
17
|
-
filters:
|
|
17
|
+
filters: ExplorerFilter[];
|
|
18
18
|
skip: boolean;
|
|
19
19
|
}) => {
|
|
20
20
|
data: IExplorerData;
|
|
@@ -23,7 +23,7 @@ export declare const useExplorerData: ({ entrypoint, libraryId, attributeIds, fu
|
|
|
23
23
|
libraryId: import("../../../_gqlTypes").Scalars["ID"];
|
|
24
24
|
attributeIds: Array<import("../../../_gqlTypes").Scalars["ID"]> | import("../../../_gqlTypes").Scalars["ID"];
|
|
25
25
|
pagination?: import("../../../_gqlTypes").InputMaybe<import("../../../_gqlTypes").RecordsPagination>;
|
|
26
|
-
filters?: import("../../../_gqlTypes").InputMaybe<Array<import("../../../_gqlTypes").InputMaybe<RecordFilterInput>> | import("../../../_gqlTypes").InputMaybe<RecordFilterInput>>;
|
|
26
|
+
filters?: import("../../../_gqlTypes").InputMaybe<Array<import("../../../_gqlTypes").InputMaybe<import("../../../_gqlTypes").RecordFilterInput>> | import("../../../_gqlTypes").InputMaybe<import("../../../_gqlTypes").RecordFilterInput>>;
|
|
27
27
|
multipleSort?: import("../../../_gqlTypes").InputMaybe<Array<import("../../../_gqlTypes").RecordSortInput> | import("../../../_gqlTypes").RecordSortInput>;
|
|
28
28
|
searchQuery?: import("../../../_gqlTypes").InputMaybe<import("../../../_gqlTypes").Scalars["String"]>;
|
|
29
29
|
}>>) => Promise<import("@apollo/client").ApolloQueryResult<ExplorerLibraryDataQuery>>) | ((variables?: Partial<import("../../../_gqlTypes").Exact<{
|
|
@@ -2,13 +2,10 @@
|
|
|
2
2
|
// This file is released under LGPL V3
|
|
3
3
|
// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
|
|
4
4
|
import { localizedTranslation } from '@leav/utils';
|
|
5
|
-
import { AttributeFormat, RecordFilterCondition, RecordFilterOperator, useExplorerLibraryDataQuery, useExplorerLinkDataQuery } from '../../../_gqlTypes';
|
|
6
|
-
import { useLang } from '../../../hooks';
|
|
7
5
|
import { useMemo } from 'react';
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
11
|
-
import { AttributeConditionFilter } from '../../../types';
|
|
6
|
+
import { useGetRecordUpdatesSubscription, useLang } from '../../../hooks';
|
|
7
|
+
import { useExplorerLibraryDataQuery, useExplorerLinkDataQuery } from '../../../_gqlTypes';
|
|
8
|
+
import { prepareFiltersForRequest } from './prepareFiltersForRequest';
|
|
12
9
|
export const dateValuesSeparator = '\n';
|
|
13
10
|
const _mappingLibrary = (data, libraryId, availableLangs) => {
|
|
14
11
|
const attributes = data.records.list.length
|
|
@@ -66,7 +63,7 @@ const _mappingLink = (data, libraryId, availableLangs) => {
|
|
|
66
63
|
...linkValue.payload.whoAmI
|
|
67
64
|
},
|
|
68
65
|
propertiesById: linkValue.payload.properties.reduce((acc, { attributeId, values }) => ({ ...acc, [attributeId]: values }), {}),
|
|
69
|
-
id_value: linkValue.id_value
|
|
66
|
+
id_value: linkValue.id_value ?? undefined
|
|
70
67
|
};
|
|
71
68
|
})
|
|
72
69
|
.filter(Boolean);
|
|
@@ -76,96 +73,12 @@ const _mappingLink = (data, libraryId, availableLangs) => {
|
|
|
76
73
|
records
|
|
77
74
|
};
|
|
78
75
|
};
|
|
79
|
-
const _getDateRequestFilters = ({ field, condition, value }) => {
|
|
80
|
-
switch (condition) {
|
|
81
|
-
case RecordFilterCondition.BETWEEN:
|
|
82
|
-
const [from, to] = value.split(dateValuesSeparator);
|
|
83
|
-
return [
|
|
84
|
-
{
|
|
85
|
-
field,
|
|
86
|
-
condition,
|
|
87
|
-
value: JSON.stringify({
|
|
88
|
-
from,
|
|
89
|
-
to
|
|
90
|
-
})
|
|
91
|
-
}
|
|
92
|
-
];
|
|
93
|
-
case RecordFilterCondition.NOT_EQUAL:
|
|
94
|
-
return [
|
|
95
|
-
{
|
|
96
|
-
field,
|
|
97
|
-
condition: RecordFilterCondition.LESS_THAN,
|
|
98
|
-
value: dayjs.unix(Number(value)).startOf('day').unix().toString()
|
|
99
|
-
},
|
|
100
|
-
{ operator: RecordFilterOperator.OR },
|
|
101
|
-
{
|
|
102
|
-
field,
|
|
103
|
-
condition: RecordFilterCondition.GREATER_THAN,
|
|
104
|
-
value: dayjs.unix(Number(value)).endOf('day').unix().toString()
|
|
105
|
-
},
|
|
106
|
-
{ operator: RecordFilterOperator.OR },
|
|
107
|
-
{
|
|
108
|
-
field,
|
|
109
|
-
condition: RecordFilterCondition.IS_EMPTY,
|
|
110
|
-
value: null
|
|
111
|
-
}
|
|
112
|
-
];
|
|
113
|
-
case RecordFilterCondition.EQUAL:
|
|
114
|
-
return [
|
|
115
|
-
{
|
|
116
|
-
field,
|
|
117
|
-
condition: RecordFilterCondition.BETWEEN,
|
|
118
|
-
value: JSON.stringify({
|
|
119
|
-
from: dayjs.unix(Number(value)).startOf('day').unix().toString(),
|
|
120
|
-
to: dayjs.unix(Number(value)).endOf('day').unix().toString()
|
|
121
|
-
})
|
|
122
|
-
}
|
|
123
|
-
];
|
|
124
|
-
default:
|
|
125
|
-
return [
|
|
126
|
-
{
|
|
127
|
-
field,
|
|
128
|
-
condition,
|
|
129
|
-
value
|
|
130
|
-
}
|
|
131
|
-
];
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
|
-
const _getBooleanRequestFilters = ({ field, condition, value }) => {
|
|
135
|
-
if (value === 'false') {
|
|
136
|
-
return [
|
|
137
|
-
{
|
|
138
|
-
field,
|
|
139
|
-
condition: AttributeConditionFilter.NOT_EQUAL,
|
|
140
|
-
value: 'true'
|
|
141
|
-
}
|
|
142
|
-
];
|
|
143
|
-
}
|
|
144
|
-
return [{ field, condition, value }];
|
|
145
|
-
};
|
|
146
76
|
export const useExplorerData = ({ entrypoint, libraryId, attributeIds, fulltextSearch, sorts, pagination, filters, skip }) => {
|
|
147
77
|
const { lang: availableLangs } = useLang();
|
|
148
|
-
const queryFilters = interleaveElement({ operator: RecordFilterOperator.AND }, filters
|
|
149
|
-
.filter(({ value, condition }) => value !== null || nullValueConditions.includes(condition))
|
|
150
|
-
.map(({ attribute, field, condition, value }) => {
|
|
151
|
-
switch (attribute.format) {
|
|
152
|
-
case AttributeFormat.date:
|
|
153
|
-
return _getDateRequestFilters({ field, condition, value });
|
|
154
|
-
case AttributeFormat.boolean:
|
|
155
|
-
return _getBooleanRequestFilters({ field, condition, value });
|
|
156
|
-
default:
|
|
157
|
-
return [
|
|
158
|
-
{
|
|
159
|
-
field,
|
|
160
|
-
condition,
|
|
161
|
-
value
|
|
162
|
-
}
|
|
163
|
-
];
|
|
164
|
-
}
|
|
165
|
-
}));
|
|
166
78
|
const isLibrary = entrypoint.type === 'library';
|
|
167
79
|
const isLink = entrypoint.type === 'link';
|
|
168
80
|
const { data: linkData, loading: linkLoading, refetch: linkRefetch } = useExplorerLinkDataQuery({
|
|
81
|
+
fetchPolicy: 'network-only',
|
|
169
82
|
skip: skip || !isLink,
|
|
170
83
|
variables: {
|
|
171
84
|
parentLibraryId: entrypoint.parentLibraryId,
|
|
@@ -175,6 +88,7 @@ export const useExplorerData = ({ entrypoint, libraryId, attributeIds, fulltextS
|
|
|
175
88
|
}
|
|
176
89
|
});
|
|
177
90
|
const { data: libraryData, loading: libraryLoading, refetch: libraryRefetch } = useExplorerLibraryDataQuery({
|
|
91
|
+
fetchPolicy: 'network-only',
|
|
178
92
|
skip: skip || !isLibrary,
|
|
179
93
|
variables: {
|
|
180
94
|
libraryId,
|
|
@@ -182,7 +96,7 @@ export const useExplorerData = ({ entrypoint, libraryId, attributeIds, fulltextS
|
|
|
182
96
|
pagination,
|
|
183
97
|
searchQuery: fulltextSearch,
|
|
184
98
|
multipleSort: sorts,
|
|
185
|
-
filters:
|
|
99
|
+
filters: prepareFiltersForRequest(filters)
|
|
186
100
|
}
|
|
187
101
|
});
|
|
188
102
|
const memoizedData = useMemo(() => {
|
|
@@ -194,6 +108,8 @@ export const useExplorerData = ({ entrypoint, libraryId, attributeIds, fulltextS
|
|
|
194
108
|
}
|
|
195
109
|
return null;
|
|
196
110
|
}, [libraryData, linkData]);
|
|
111
|
+
const ids = memoizedData?.records.map(record => record.itemId);
|
|
112
|
+
useGetRecordUpdatesSubscription({ libraries: [libraryId], records: ids }, !libraryId);
|
|
197
113
|
return {
|
|
198
114
|
data: memoizedData,
|
|
199
115
|
loading: isLibrary ? libraryLoading : linkLoading,
|