@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.
Files changed (185) hide show
  1. package/dist/__mocks__/common/form.d.ts +1 -0
  2. package/dist/__mocks__/common/form.js +15 -0
  3. package/dist/__mocks__/common/form.js.map +1 -1
  4. package/dist/__mocks__/common/value.js +0 -1
  5. package/dist/__mocks__/common/value.js.map +1 -1
  6. package/dist/_gqlTypes/index.d.ts +118 -0
  7. package/dist/_gqlTypes/index.js +73 -7
  8. package/dist/_gqlTypes/index.js.map +1 -1
  9. package/dist/_queries/attributes/getAttributesByLib.js +7 -5
  10. package/dist/_queries/attributes/getAttributesByLib.js.map +1 -1
  11. package/dist/_utils/attributeType.d.ts +3 -0
  12. package/dist/_utils/attributeType.js +7 -0
  13. package/dist/_utils/attributeType.js.map +1 -0
  14. package/dist/components/Explorer/DataView.d.ts +6 -1
  15. package/dist/components/Explorer/DataView.js +30 -6
  16. package/dist/components/Explorer/DataView.js.map +1 -1
  17. package/dist/components/Explorer/Explorer.d.ts +3 -1
  18. package/dist/components/Explorer/Explorer.js +49 -12
  19. package/dist/components/Explorer/Explorer.js.map +1 -1
  20. package/dist/components/Explorer/ExplorerToolbar.d.ts +5 -0
  21. package/dist/components/Explorer/ExplorerToolbar.js +45 -0
  22. package/dist/components/Explorer/ExplorerToolbar.js.map +1 -0
  23. package/dist/components/Explorer/_constants.d.ts +1 -0
  24. package/dist/components/Explorer/_constants.js +1 -0
  25. package/dist/components/Explorer/_constants.js.map +1 -1
  26. package/dist/components/Explorer/_queries/prepareFiltersForRequest.d.ts +4 -0
  27. package/dist/components/Explorer/_queries/prepareFiltersForRequest.js +99 -0
  28. package/dist/components/Explorer/_queries/prepareFiltersForRequest.js.map +1 -0
  29. package/dist/components/Explorer/_queries/useExplorerData.d.ts +4 -4
  30. package/dist/components/Explorer/_queries/useExplorerData.js +9 -93
  31. package/dist/components/Explorer/_queries/useExplorerData.js.map +1 -1
  32. package/dist/components/Explorer/_types.d.ts +40 -11
  33. package/dist/components/Explorer/_types.js +7 -1
  34. package/dist/components/Explorer/_types.js.map +1 -1
  35. package/dist/components/Explorer/manage-view-settings/_shared/CommonFilterItem.d.ts +3 -2
  36. package/dist/components/Explorer/manage-view-settings/_shared/CommonFilterItem.js +1 -1
  37. package/dist/components/Explorer/manage-view-settings/_shared/CommonFilterItem.js.map +1 -1
  38. package/dist/components/Explorer/manage-view-settings/_shared/useAttributeDetailsData.d.ts +3 -1
  39. package/dist/components/Explorer/manage-view-settings/_shared/useAttributeDetailsData.js +9 -3
  40. package/dist/components/Explorer/manage-view-settings/_shared/useAttributeDetailsData.js.map +1 -1
  41. package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js +6 -1
  42. package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js.map +1 -1
  43. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/BooleanAttributeDropdown.d.ts +1 -1
  44. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/BooleanAttributeDropdown.js.map +1 -1
  45. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/ColorAttributeDropDown.d.ts +1 -1
  46. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/DateAttributeDropDown.d.ts +1 -1
  47. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/DateAttributeDropDown.js +2 -2
  48. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/DateAttributeDropDown.js.map +1 -1
  49. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/DateRangeAttributeDropDown.d.ts +1 -1
  50. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/EncryptedAttributeDropDown.d.ts +1 -1
  51. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/ExtendedAttributeDropDown.d.ts +1 -1
  52. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropDown.d.ts +1 -1
  53. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropDown.js +2 -38
  54. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropDown.js.map +1 -1
  55. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropdownContent.d.ts +7 -0
  56. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropdownContent.js +40 -0
  57. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropdownContent.js.map +1 -0
  58. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/LinkAttributeDropdown.d.ts +3 -0
  59. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/LinkAttributeDropdown.js +79 -0
  60. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/LinkAttributeDropdown.js.map +1 -0
  61. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/NumericAttributeDropDown.d.ts +1 -1
  62. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/TextAttributeDropDown.d.ts +1 -1
  63. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/TextAttributeDropDown.js +1 -1
  64. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/TextAttributeDropDown.js.map +1 -1
  65. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/_types.d.ts +10 -0
  66. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/_types.js +2 -0
  67. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/_types.js.map +1 -0
  68. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/useConditionOptionsByType.d.ts +6 -5
  69. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/useConditionOptionsByType.js +12 -4
  70. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/useConditionOptionsByType.js.map +1 -1
  71. package/dist/components/Explorer/manage-view-settings/open-view-settings/SidePanel.js +1 -1
  72. package/dist/components/Explorer/manage-view-settings/open-view-settings/SidePanel.js.map +1 -1
  73. package/dist/components/Explorer/manage-view-settings/router-menu/SettingsPanel.js +12 -5
  74. package/dist/components/Explorer/manage-view-settings/router-menu/SettingsPanel.js.map +1 -1
  75. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsInitialState.js +1 -0
  76. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsInitialState.js.map +1 -1
  77. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.d.ts +22 -8
  78. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js +40 -7
  79. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js.map +1 -1
  80. package/dist/components/Explorer/useDeactivateMassAction.d.ts +27 -0
  81. package/dist/components/Explorer/useDeactivateMassAction.js +71 -0
  82. package/dist/components/Explorer/useDeactivateMassAction.js.map +1 -0
  83. package/dist/components/Explorer/useMassActions.d.ts +27 -0
  84. package/dist/components/Explorer/useMassActions.js +109 -0
  85. package/dist/components/Explorer/useMassActions.js.map +1 -0
  86. package/dist/components/Explorer/useRemoveAction.d.ts +13 -2
  87. package/dist/components/Explorer/useRemoveAction.js +28 -9
  88. package/dist/components/Explorer/useRemoveAction.js.map +1 -1
  89. package/dist/components/Explorer/useSearchInput.d.ts +10 -4
  90. package/dist/components/Explorer/useSearchInput.js +8 -0
  91. package/dist/components/Explorer/useSearchInput.js.map +1 -1
  92. package/dist/components/Explorer/useViewSettingsReducer.js +101 -19
  93. package/dist/components/Explorer/useViewSettingsReducer.js.map +1 -1
  94. package/dist/components/RecordEdition/EditRecord/EditRecord.js +71 -61
  95. package/dist/components/RecordEdition/EditRecord/EditRecord.js.map +1 -1
  96. package/dist/components/RecordEdition/EditRecordContent/hooks/useExecuteSaveValueBatchMutation.js.map +1 -1
  97. package/dist/components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn/ValueDetailsBtn.js +1 -7
  98. package/dist/components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn/ValueDetailsBtn.js.map +1 -1
  99. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js +56 -33
  100. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js.map +1 -1
  101. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSColorPickerWrapper.js +7 -1
  102. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSColorPickerWrapper.js.map +1 -1
  103. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSDatePickerWrapper.js +4 -2
  104. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSDatePickerWrapper.js.map +1 -1
  105. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputEncryptedWrapper.js +12 -7
  106. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputEncryptedWrapper.js.map +1 -1
  107. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputNumberWrapper.js +1 -0
  108. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputNumberWrapper.js.map +1 -1
  109. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js +2 -13
  110. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js.map +1 -1
  111. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.js +8 -8
  112. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.js.map +1 -1
  113. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRichTextWrapper.js +1 -4
  114. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRichTextWrapper.js.map +1 -1
  115. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.d.ts +1 -2
  116. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.js +2 -14
  117. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.js.map +1 -1
  118. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/ValuesList/DSListSelect.js +2 -2
  119. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/ValuesList/DSListSelect.js.map +1 -1
  120. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/_types.d.ts +0 -1
  121. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/calculatedInheritedFlags.js +3 -2
  122. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/calculatedInheritedFlags.js.map +1 -1
  123. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js +4 -7
  124. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js.map +1 -1
  125. package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/AttributeSummary.d.ts +7 -0
  126. package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/AttributeSummary.js +9 -0
  127. package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/AttributeSummary.js.map +1 -0
  128. package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/index.d.ts +2 -0
  129. package/dist/components/RecordEdition/EditRecordSidebar/{ValueDetails/AttributeDetails → AttributeSummary}/index.js +2 -2
  130. package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/index.js.map +1 -0
  131. package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/useAttributeInformations.d.ts +2 -0
  132. package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/useAttributeInformations.js +25 -0
  133. package/dist/components/RecordEdition/EditRecordSidebar/AttributeSummary/useAttributeInformations.js.map +1 -0
  134. package/dist/components/RecordEdition/EditRecordSidebar/Breacrumb/Breadcrumb.d.ts +3 -0
  135. package/dist/components/RecordEdition/EditRecordSidebar/Breacrumb/Breadcrumb.js +53 -0
  136. package/dist/components/RecordEdition/EditRecordSidebar/Breacrumb/Breadcrumb.js.map +1 -0
  137. package/dist/components/RecordEdition/EditRecordSidebar/Breacrumb/index.d.ts +2 -0
  138. package/dist/components/RecordEdition/EditRecordSidebar/{ValueDetails/ValueInfo → Breacrumb}/index.js +2 -2
  139. package/dist/components/RecordEdition/EditRecordSidebar/Breacrumb/index.js.map +1 -0
  140. package/dist/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.js +8 -6
  141. package/dist/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.js.map +1 -1
  142. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.d.ts +8 -0
  143. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js +66 -0
  144. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js.map +1 -0
  145. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/index.d.ts +2 -0
  146. package/dist/components/RecordEdition/EditRecordSidebar/{ValueDetails → ValuesSummary}/index.js +2 -2
  147. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/index.js.map +1 -0
  148. package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.d.ts +12 -10
  149. package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.js +15 -13
  150. package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.js.map +1 -1
  151. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js +1 -3
  152. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js.map +1 -1
  153. package/dist/locales/en/shared.json +31 -9
  154. package/dist/locales/fr/shared.json +33 -11
  155. package/package.json +2 -2
  156. package/dist/components/Explorer/display-view-filters/ExplorerToolBar.d.ts +0 -4
  157. package/dist/components/Explorer/display-view-filters/ExplorerToolBar.js +0 -47
  158. package/dist/components/Explorer/display-view-filters/ExplorerToolBar.js.map +0 -1
  159. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/AttributeDetails/AttributeDetails.d.ts +0 -6
  160. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/AttributeDetails/AttributeDetails.js +0 -56
  161. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/AttributeDetails/AttributeDetails.js.map +0 -1
  162. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/AttributeDetails/index.d.ts +0 -2
  163. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/AttributeDetails/index.js.map +0 -1
  164. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/TreeValuePath/TreeValuePath.d.ts +0 -8
  165. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/TreeValuePath/TreeValuePath.js +0 -41
  166. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/TreeValuePath/TreeValuePath.js.map +0 -1
  167. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/TreeValuePath/index.d.ts +0 -2
  168. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/TreeValuePath/index.js +0 -6
  169. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/TreeValuePath/index.js.map +0 -1
  170. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueDetails.d.ts +0 -10
  171. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueDetails.js +0 -51
  172. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueDetails.js.map +0 -1
  173. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueInfo/ValueInfo.d.ts +0 -2
  174. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueInfo/ValueInfo.js +0 -76
  175. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueInfo/ValueInfo.js.map +0 -1
  176. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueInfo/index.d.ts +0 -2
  177. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueInfo/index.js.map +0 -1
  178. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueMetadata/ValueMetadata.d.ts +0 -11
  179. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueMetadata/ValueMetadata.js +0 -43
  180. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueMetadata/ValueMetadata.js.map +0 -1
  181. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueMetadata/index.d.ts +0 -2
  182. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueMetadata/index.js +0 -6
  183. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/ValueMetadata/index.js.map +0 -1
  184. package/dist/components/RecordEdition/EditRecordSidebar/ValueDetails/index.d.ts +0 -2
  185. 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({ attributesToDisplay: prevProps.attributesToDisplay, data: prevProps.dataGroupedFilteredSorted }, { attributesToDisplay: nextProps.attributesToDisplay, data: nextProps.dataGroupedFilteredSorted });
54
- export const DataView = memo(({ dataGroupedFilteredSorted, attributesToDisplay, attributesProperties, paginationProps, itemActions }) => {
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?.totalItems, defaultCurrent: paginationProps?.currentPage, defaultPageSize: paginationProps?.pageSize, pageSizeOptions: paginationProps?.pageSizeOptions, onChange: paginationProps?.setNewPage, onShowSizeChange: paginationProps?.setNewPageSize }) }))] }));
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":"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"}
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, Fragment as _Fragment } from "react/jsx-runtime";
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
- export const Explorer = ({ entrypoint, noPagination, itemActions, primaryActions, title, emptyPlaceholder, defaultActionsForItem = ['edit', 'remove'], defaultPrimaryActions = ['create'], defaultViewSettings }) => {
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
- }, entrypoint);
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 { primaryButton } = usePrimaryActionsButton([createAction, ...(primaryActions ?? [])].filter(Boolean));
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(ExplorerToolBar, { libraryId: view.libraryId }), loadingData || viewSettingsLoading ? (_jsx(Loading, {})) : hasNoResults ? (_jsx(_Fragment, { 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'
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
- totalItems: data?.totalCount ?? 0
102
+ totalCount
75
103
  }
76
- : undefined, itemActions: [editAction, removeAction, ...(itemActions ?? emptyArray)].filter(Boolean) }))] }), panelElement && createPortal(_jsx(SidePanel, {}), panelElement), editModal, createModal] }));
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;AAEvC,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACH,sBAAsB,EACtB,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AACnC,OAAO,EAAC,eAAe,EAAC,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAEhE,MAAM,UAAU,GAAG,CAAsB,KAAQ,EAA2B,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAEhG,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAMzC,CAAC;AAEF,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAKvC,CAAC;AAcF,MAAM,CAAC,MAAM,QAAQ,GAAsC,CAAC,EACxD,UAAU,EACV,YAAY,EACZ,WAAW,EACX,cAAc,EACd,KAAK,EACL,gBAAgB,EAChB,qBAAqB,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC1C,qBAAqB,GAAG,CAAC,QAAQ,CAAC,EAClC,mBAAmB,EACtB,EAAE,EAAE;IACD,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAEnC,MAAM,EAAC,YAAY,EAAC,GAAG,eAAe,EAAE,CAAC;IAEzC,MAAM,EAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAC,GAAG,sBAAsB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAE/G,MAAM,EAAC,WAAW,EAAE,cAAc,EAAE,UAAU,EAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE1E,MAAM,EACF,IAAI,EACJ,OAAO,EAAE,WAAW,EACpB,OAAO,EACV,GAAG,eAAe,CAAC;QAChB,UAAU;QACV,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,YAAY,EAAE,IAAI,CAAC,aAAa;QAChC,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,EAAC;QACnG,KAAK,EAAE,IAAI,CAAC,IAAI;QAChB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,mBAAmB;KAC5B,CAAC,CAAC,CAAC,qCAAqC;IAEzC,MAAM,EAAC,YAAY,EAAC,GAAG,eAAe,CAClC;QACI,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC;KAC3F,EACD,UAAU,CACb,CAAC;IAEF,MAAM,EAAC,UAAU,EAAE,SAAS,EAAC,GAAG,aAAa,CAAC;QAC1C,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC;KACzF,CAAC,CAAC;IAEH,MAAM,EAAC,YAAY,EAAE,WAAW,EAAC,GAAG,eAAe,CAAC;QAChD,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxF,OAAO,EAAE,IAAI,CAAC,SAAS;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,CAAC;QACjC,OAAO;KACV,CAAC,CAAC;IAEH,MAAM,EAAC,aAAa,EAAC,GAAG,uBAAuB,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3G,MAAM,EAAC,kBAAkB,EAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEjE,MAAM,EAAC,WAAW,EAAC,GAAG,cAAc,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC;IAE5D,OAAO,CACH,MAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,aACjD,MAAC,qBAAqB,eAClB,MAAC,uBAAuB,eACpB,KAAC,aAAa,CAAC,KAAK,IAAC,KAAK,EAAC,IAAI,YAEvB,CAAC,mBAAmB,IAAI,CACpB,KAAC,aAAa,IAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,GAAI,CACnF,CAAC,wBAAwB,GAEZ,EACtB,MAAC,QAAQ,IAAC,IAAI,EAAC,IAAI,aACd,WAAW,EACX,kBAAkB,EAClB,aAAa,IACP,IACW,EACzB,CAAC,mBAAmB,IAAI,KAAC,eAAe,IAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAI,EACtE,WAAW,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAClC,KAAC,OAAO,KAAG,CACd,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CACf,4BAAG,gBAAgB,IAAI,KAAC,QAAQ,IAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC,GAAI,GAAI,CAC3E,CAAC,CAAC,CAAC,CACA,KAAC,QAAQ,IACL,yBAAyB,EAAE,IAAI,EAAE,OAAO,IAAI,UAAU,EACtD,oBAAoB,EAAE,IAAI,EAAE,UAAU,IAAI,WAAW,EACrD,mBAAmB,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,EACtD,eAAe,EACX,UAAU,CAAC,IAAI,KAAK,SAAS;4BACzB,CAAC,CAAC;gCACI,eAAe,EAAE,sBAAsB;gCACvC,WAAW;gCACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;gCACvB,cAAc;gCACd,UAAU;gCACV,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,CAAC;6BACpC;4BACH,CAAC,CAAC,SAAS,EAEnB,WAAW,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,CAAC,WAAW,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GACzF,CACL,IACmB,EACvB,YAAY,IAAI,YAAY,CAAC,KAAC,SAAS,KAAG,EAAE,YAAY,CAAC,EACzD,SAAS,EACT,WAAW,IACe,CAClC,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"Explorer.js","sourceRoot":"","sources":["../../../src/components/Explorer/Explorer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { FunctionComponent } from 'react';
2
+ export declare const ExplorerToolbar: FunctionComponent<{
3
+ libraryId: string;
4
+ isMassSelectionAll: boolean;
5
+ }>;
@@ -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";
@@ -14,4 +14,5 @@ export const mapViewTypeFromLegacyToExplorer = {
14
14
  [ViewTypes.cards]: 'mosaic',
15
15
  [ViewTypes.timeline]: 'timeline'
16
16
  };
17
+ export const MASS_SELECTION_ALL = 'all';
17
18
  //# sourceMappingURL=_constants.js.map
@@ -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,4 @@
1
+ import { RecordFilterInput } from '../../../_gqlTypes';
2
+ import { ExplorerFilter } from '../_types';
3
+ export declare const dateValuesSeparator = "\n";
4
+ export declare const prepareFiltersForRequest: (filters: ExplorerFilter[]) => RecordFilterInput[];
@@ -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, IExplorerFilter } from '../_types';
2
- import { ExplorerLibraryDataQuery, ExplorerLinkDataQuery, RecordFilterInput, SortOrder } from '../../../_gqlTypes';
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: IExplorerFilter[];
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 { interleaveElement } from '../../../_utils/interleaveElement';
9
- import dayjs from 'dayjs';
10
- import { nullValueConditions } from '../conditionsHelper';
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: queryFilters
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,