@leav/ui 1.5.3-ffa07ccb → 1.6.0-22577b27

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 (182) hide show
  1. package/dist/_gqlTypes/index.d.ts +640 -701
  2. package/dist/_gqlTypes/index.js +50 -167
  3. package/dist/_gqlTypes/index.js.map +1 -1
  4. package/dist/_queries/trees/treeNodeChildrenQuery.js +2 -0
  5. package/dist/_queries/trees/treeNodeChildrenQuery.js.map +1 -1
  6. package/dist/_queries/views/viewDetailsFragment.js +1 -0
  7. package/dist/_queries/views/viewDetailsFragment.js.map +1 -1
  8. package/dist/components/AttributesSelectionList/sharedComponents.d.ts +159 -153
  9. package/dist/components/Explorer/Explorer.js +5 -3
  10. package/dist/components/Explorer/Explorer.js.map +1 -1
  11. package/dist/components/Explorer/ExplorerFiltersAndSorts.js +1 -1
  12. package/dist/components/Explorer/ExplorerFiltersAndSorts.js.map +1 -1
  13. package/dist/components/Explorer/TableCell.js +6 -7
  14. package/dist/components/Explorer/TableCell.js.map +1 -1
  15. package/dist/components/Explorer/TableNameCell.js +3 -2
  16. package/dist/components/Explorer/TableNameCell.js.map +1 -1
  17. package/dist/components/Explorer/_queries/useExplorerData.d.ts +7 -7
  18. package/dist/components/Explorer/_queries/useExplorerData.js +19 -7
  19. package/dist/components/Explorer/_queries/useExplorerData.js.map +1 -1
  20. package/dist/components/Explorer/actions-item/useEditStatusItemAction.js +3 -2
  21. package/dist/components/Explorer/actions-item/useEditStatusItemAction.js.map +1 -1
  22. package/dist/components/Explorer/actions-item/useReplaceItemAction.d.ts +2 -1
  23. package/dist/components/Explorer/actions-item/useReplaceItemAction.js +5 -4
  24. package/dist/components/Explorer/actions-item/useReplaceItemAction.js.map +1 -1
  25. package/dist/components/Explorer/actions-mass/export/ExportProfileSelectionModal.d.ts +10 -0
  26. package/dist/components/Explorer/actions-mass/export/ExportProfileSelectionModal.js +46 -0
  27. package/dist/components/Explorer/actions-mass/export/ExportProfileSelectionModal.js.map +1 -0
  28. package/dist/components/Explorer/actions-mass/export/content/NoProfiles.d.ts +1 -0
  29. package/dist/components/Explorer/actions-mass/export/content/NoProfiles.js +17 -0
  30. package/dist/components/Explorer/actions-mass/export/content/NoProfiles.js.map +1 -0
  31. package/dist/components/Explorer/actions-mass/export/content/ProfilesSelection.d.ts +8 -0
  32. package/dist/components/Explorer/actions-mass/export/content/ProfilesSelection.js +49 -0
  33. package/dist/components/Explorer/actions-mass/export/content/ProfilesSelection.js.map +1 -0
  34. package/dist/components/Explorer/actions-mass/export/useGetLibraryExportProfiles.d.ts +27 -0
  35. package/dist/components/Explorer/actions-mass/export/useGetLibraryExportProfiles.js +48 -0
  36. package/dist/components/Explorer/actions-mass/export/useGetLibraryExportProfiles.js.map +1 -0
  37. package/dist/components/Explorer/actions-mass/useDeactivateMassAction.js +3 -2
  38. package/dist/components/Explorer/actions-mass/useDeactivateMassAction.js.map +1 -1
  39. package/dist/components/Explorer/actions-mass/useDeleteLinkValues.js +3 -2
  40. package/dist/components/Explorer/actions-mass/useDeleteLinkValues.js.map +1 -1
  41. package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js +6 -4
  42. package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js.map +1 -1
  43. package/dist/components/Explorer/actions-mass/useExportMassAction.d.ts +7 -4
  44. package/dist/components/Explorer/actions-mass/useExportMassAction.js +81 -73
  45. package/dist/components/Explorer/actions-mass/useExportMassAction.js.map +1 -1
  46. package/dist/components/Explorer/actions-mass/useMassActions.js +3 -2
  47. package/dist/components/Explorer/actions-mass/useMassActions.js.map +1 -1
  48. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js +3 -2
  49. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js.map +1 -1
  50. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.d.ts +2 -1
  51. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.js +5 -4
  52. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.js.map +1 -1
  53. package/dist/components/Explorer/link-item/LinkModal.d.ts +1 -0
  54. package/dist/components/Explorer/link-item/LinkModal.js +2 -2
  55. package/dist/components/Explorer/link-item/LinkModal.js.map +1 -1
  56. package/dist/components/Explorer/list-saved-views/SavedViews.js +9 -6
  57. package/dist/components/Explorer/list-saved-views/SavedViews.js.map +1 -1
  58. package/dist/components/Explorer/manage-view-settings/_shared/ColumnItem.js +5 -8
  59. package/dist/components/Explorer/manage-view-settings/_shared/ColumnItem.js.map +1 -1
  60. package/dist/components/Explorer/manage-view-settings/configure-display/attributes/SelectVisibleAttributes.js +3 -2
  61. package/dist/components/Explorer/manage-view-settings/configure-display/attributes/SelectVisibleAttributes.js.map +1 -1
  62. package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js +7 -6
  63. package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js.map +1 -1
  64. package/dist/components/Explorer/manage-view-settings/filter-items/FilterListItem.js +3 -2
  65. package/dist/components/Explorer/manage-view-settings/filter-items/FilterListItem.js.map +1 -1
  66. package/dist/components/Explorer/manage-view-settings/open-view-settings/useOpenViewSettings.js +4 -3
  67. package/dist/components/Explorer/manage-view-settings/open-view-settings/useOpenViewSettings.js.map +1 -1
  68. package/dist/components/Explorer/manage-view-settings/router-menu/SettingItem.js +3 -2
  69. package/dist/components/Explorer/manage-view-settings/router-menu/SettingItem.js.map +1 -1
  70. package/dist/components/Explorer/manage-view-settings/router-menu/SettingsPanel.js +3 -2
  71. package/dist/components/Explorer/manage-view-settings/router-menu/SettingsPanel.js.map +1 -1
  72. package/dist/components/Explorer/manage-view-settings/save-view/LabelViewFormModal.js +3 -2
  73. package/dist/components/Explorer/manage-view-settings/save-view/LabelViewFormModal.js.map +1 -1
  74. package/dist/components/Explorer/manage-view-settings/save-view/prepareViewForRequest.js +3 -0
  75. package/dist/components/Explorer/manage-view-settings/save-view/prepareViewForRequest.js.map +1 -1
  76. package/dist/components/Explorer/manage-view-settings/save-view/useCreateNewView.js +3 -2
  77. package/dist/components/Explorer/manage-view-settings/save-view/useCreateNewView.js.map +1 -1
  78. package/dist/components/Explorer/manage-view-settings/save-view/useDeleteView.js +4 -3
  79. package/dist/components/Explorer/manage-view-settings/save-view/useDeleteView.js.map +1 -1
  80. package/dist/components/Explorer/manage-view-settings/save-view/useEditLabelView.js +3 -2
  81. package/dist/components/Explorer/manage-view-settings/save-view/useEditLabelView.js.map +1 -1
  82. package/dist/components/Explorer/manage-view-settings/save-view/useResetView.js +3 -2
  83. package/dist/components/Explorer/manage-view-settings/save-view/useResetView.js.map +1 -1
  84. package/dist/components/Explorer/manage-view-settings/save-view/useShareView.js +3 -2
  85. package/dist/components/Explorer/manage-view-settings/save-view/useShareView.js.map +1 -1
  86. package/dist/components/Explorer/manage-view-settings/save-view/useUpdateView.js +3 -2
  87. package/dist/components/Explorer/manage-view-settings/save-view/useUpdateView.js.map +1 -1
  88. package/dist/components/Explorer/manage-view-settings/sort-items/SortItems.js +7 -6
  89. package/dist/components/Explorer/manage-view-settings/sort-items/SortItems.js.map +1 -1
  90. package/dist/components/Explorer/manage-view-settings/sort-items/SortListItem.js +3 -2
  91. package/dist/components/Explorer/manage-view-settings/sort-items/SortListItem.js.map +1 -1
  92. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js.map +1 -1
  93. package/dist/components/Explorer/useSearchInput.js +6 -2
  94. package/dist/components/Explorer/useSearchInput.js.map +1 -1
  95. package/dist/components/Filters/_types.d.ts +2 -0
  96. package/dist/components/Filters/_types.js.map +1 -1
  97. package/dist/components/Filters/context/filtersReducer.js +3 -4
  98. package/dist/components/Filters/context/filtersReducer.js.map +1 -1
  99. package/dist/components/Filters/filter-items/CommonFilterItem.js +10 -3
  100. package/dist/components/Filters/filter-items/CommonFilterItem.js.map +1 -1
  101. package/dist/components/Filters/filter-items/EmptyValueCheckbox.d.ts +8 -0
  102. package/dist/components/Filters/filter-items/EmptyValueCheckbox.js +16 -0
  103. package/dist/components/Filters/filter-items/EmptyValueCheckbox.js.map +1 -0
  104. package/dist/components/Filters/filter-items/filter-type/BooleanAttributeDropdown.js +23 -9
  105. package/dist/components/Filters/filter-items/filter-type/BooleanAttributeDropdown.js.map +1 -1
  106. package/dist/components/Filters/filter-items/filter-type/ColorAttributeDropDown.js +9 -8
  107. package/dist/components/Filters/filter-items/filter-type/ColorAttributeDropDown.js.map +1 -1
  108. package/dist/components/Filters/filter-items/filter-type/FilterDropDown.js +3 -2
  109. package/dist/components/Filters/filter-items/filter-type/FilterDropDown.js.map +1 -1
  110. package/dist/components/Filters/filter-items/filter-type/FilterDropdownContent.js +1 -1
  111. package/dist/components/Filters/filter-items/filter-type/FilterDropdownContent.js.map +1 -1
  112. package/dist/components/Filters/filter-items/filter-type/FilterValueListDropDown.d.ts +0 -1
  113. package/dist/components/Filters/filter-items/filter-type/FilterValueListDropDown.js +17 -23
  114. package/dist/components/Filters/filter-items/filter-type/FilterValueListDropDown.js.map +1 -1
  115. package/dist/components/Filters/filter-items/filter-type/TreeAttributeDropDown.js +10 -12
  116. package/dist/components/Filters/filter-items/filter-type/TreeAttributeDropDown.js.map +1 -1
  117. package/dist/components/Filters/filter-items/filter-type/useConditionOptionsByType.js +3 -13
  118. package/dist/components/Filters/filter-items/filter-type/useConditionOptionsByType.js.map +1 -1
  119. package/dist/components/Filters/prepareFiltersForRequest.js +36 -3
  120. package/dist/components/Filters/prepareFiltersForRequest.js.map +1 -1
  121. package/dist/components/Filters/useFilters.d.ts +5 -0
  122. package/dist/components/Filters/useTransformFilters.js +4 -0
  123. package/dist/components/Filters/useTransformFilters.js.map +1 -1
  124. package/dist/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.js +5 -3
  125. package/dist/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.js.map +1 -1
  126. package/dist/components/LibraryItemsList/FiltersPanel/FiltersOptions.js +1 -8
  127. package/dist/components/LibraryItemsList/FiltersPanel/FiltersOptions.js.map +1 -1
  128. package/dist/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.js +3 -2
  129. package/dist/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.js.map +1 -1
  130. package/dist/components/LibraryItemsList/MenuView/MenuView.js +4 -4
  131. package/dist/components/LibraryItemsList/MenuView/MenuView.js.map +1 -1
  132. package/dist/components/LibraryItemsList/ViewPanel/View/View.js +3 -2
  133. package/dist/components/LibraryItemsList/ViewPanel/View/View.js.map +1 -1
  134. package/dist/components/Notifications/hooks/useNotificationSubscription.js +6 -3
  135. package/dist/components/Notifications/hooks/useNotificationSubscription.js.map +1 -1
  136. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.js +5 -20
  137. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.js.map +1 -1
  138. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record/useLinkRecords.js +4 -3
  139. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record/useLinkRecords.js.map +1 -1
  140. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/ExplorerWrapper.d.ts +53 -51
  141. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js +4 -3
  142. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js.map +1 -1
  143. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js +9 -2
  144. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js.map +1 -1
  145. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeFieldWrapper.d.ts +53 -51
  146. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.js +3 -2
  147. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.js.map +1 -1
  148. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.d.ts +2 -1
  149. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js +4 -7
  150. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js.map +1 -1
  151. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.d.ts +3 -2
  152. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.js +2 -2
  153. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.js.map +1 -1
  154. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.js +3 -2
  155. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.js.map +1 -1
  156. package/dist/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordInformations/RecordInformations.js +3 -2
  157. package/dist/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordInformations/RecordInformations.js.map +1 -1
  158. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js +4 -3
  159. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js.map +1 -1
  160. package/dist/components/RecordEdition/EditRecordSidebar/ValuesVersions/ValuesVersions.js +3 -2
  161. package/dist/components/RecordEdition/EditRecordSidebar/ValuesVersions/ValuesVersions.js.map +1 -1
  162. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.d.ts +1 -0
  163. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js +7 -7
  164. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js.map +1 -1
  165. package/dist/components/SelectTreeNode/SelectTreeNode.d.ts +2 -1
  166. package/dist/components/SelectTreeNode/SelectTreeNode.js +3 -3
  167. package/dist/components/SelectTreeNode/SelectTreeNode.js.map +1 -1
  168. package/dist/components/SelectTreeNode/SelectTreeNodeContent.d.ts +2 -1
  169. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js +6 -2
  170. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js.map +1 -1
  171. package/dist/components/SelectTreeNode/TreeNodeTitle.js +3 -2
  172. package/dist/components/SelectTreeNode/TreeNodeTitle.js.map +1 -1
  173. package/dist/components/TriggerPreviewsGenerationModal/TriggerPreviewsGenerationModal.js +5 -3
  174. package/dist/components/TriggerPreviewsGenerationModal/TriggerPreviewsGenerationModal.js.map +1 -1
  175. package/dist/constants.d.ts +4 -3
  176. package/dist/constants.js +4 -3
  177. package/dist/constants.js.map +1 -1
  178. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js +1 -2
  179. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js.map +1 -1
  180. package/dist/locales/en/shared.json +15 -3
  181. package/dist/locales/fr/shared.json +15 -3
  182. package/package.json +21 -24
@@ -108,9 +108,39 @@ const _generateConditionsFromMultipleValues = (filter) => {
108
108
  });
109
109
  return filtersWithOperators;
110
110
  };
111
+ const _addEmptyCondition = (baseConditions, filter) => {
112
+ if (!filter.withEmptyValues) {
113
+ return baseConditions;
114
+ }
115
+ const hasValue = filter.value !== null &&
116
+ filter.value !== undefined &&
117
+ (!Array.isArray(filter.value) || filter.value.length > 0);
118
+ // patch because field contains multiple informations & can be empty
119
+ const field = (Array.isArray(filter.field) ? filter.field[0] : filter.field) || filter.attribute.id;
120
+ const emptyCondition = {
121
+ field,
122
+ condition: RecordFilterCondition.IS_EMPTY,
123
+ value: null,
124
+ };
125
+ if (!hasValue) {
126
+ return [emptyCondition];
127
+ }
128
+ else {
129
+ return [
130
+ { operator: RecordFilterOperator.OPEN_BRACKET },
131
+ ...baseConditions,
132
+ { operator: RecordFilterOperator.OR },
133
+ emptyCondition,
134
+ { operator: RecordFilterOperator.CLOSE_BRACKET },
135
+ ];
136
+ }
137
+ };
111
138
  export const prepareFiltersForRequest = (filters, filtersOperator, valuesList) => {
112
139
  const interleaveFilter = interleaveElement({ operator: filtersOperator === 'OR' ? RecordFilterOperator.OR : RecordFilterOperator.AND }, filters
113
140
  .filter(filter => {
141
+ if (filter.withEmptyValues) {
142
+ return true;
143
+ }
114
144
  if (isUIFilterThrough(filter)) {
115
145
  return (filter.subField &&
116
146
  filter.subCondition &&
@@ -140,15 +170,17 @@ export const prepareFiltersForRequest = (filters, filtersOperator, valuesList) =
140
170
  //@ts-ignore typscript does not recognize filter as a UIFilter
141
171
  if (isUIFilterValueList(filter) || isUIFilterTree(filter)) {
142
172
  if (filter.condition && nullValueConditions.includes(filter.condition)) {
143
- return [
173
+ const baseConditions = [
144
174
  {
145
175
  field: Array.isArray(filter.field) ? filter.field[0] : filter.field,
146
176
  condition: filter.condition,
147
177
  value: null,
148
178
  },
149
179
  ];
180
+ return _addEmptyCondition(baseConditions, filter);
150
181
  }
151
- return _generateConditionsFromMultipleValues(filter);
182
+ const baseConditions = _generateConditionsFromMultipleValues(filter);
183
+ return _addEmptyCondition(baseConditions, filter);
152
184
  }
153
185
  if (isUIFilterStandard(filter)) {
154
186
  switch (filter.attribute.format) {
@@ -160,13 +192,14 @@ export const prepareFiltersForRequest = (filters, filtersOperator, valuesList) =
160
192
  break;
161
193
  }
162
194
  }
163
- return [
195
+ const baseConditions = [
164
196
  {
165
197
  field: filter.field,
166
198
  condition: filter.condition,
167
199
  value: filter.value,
168
200
  },
169
201
  ];
202
+ return _addEmptyCondition(baseConditions, filter);
170
203
  }));
171
204
  return [
172
205
  ...interleaveFilter,
@@ -1 +1 @@
1
- {"version":3,"file":"prepareFiltersForRequest.js","sourceRoot":"","sources":["../../../src/components/Filters/prepareFiltersForRequest.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport dayjs from 'dayjs';\nimport {AttributeFormat, RecordFilterCondition, type RecordFilterInput, RecordFilterOperator} from '_ui/_gqlTypes';\nimport {interleaveElement} from '_ui/_utils/interleaveElement';\nimport {AttributeConditionFilter} from '_ui/types';\nimport {\n type UIFilter,\n type IUIFilterStandard,\n type IUIFilterTree,\n isUIFilterStandard,\n isUIFilterThrough,\n isUIFilterTree,\n isUIFilterValueList,\n type IUIFilterValueList,\n type FiltersOperator,\n isUIFilterLinkWithValueList,\n} from './_types';\nimport {nullValueConditions} from './conditionsHelper';\n\nexport const dateValuesSeparator = '\\n';\n\nconst _getDateAtNoon = (date: number): string => dayjs.unix(Number(date)).add(12, 'hour').unix().toString();\n\nconst _getDateRequestFilters = ({field, condition, value}: IUIFilterStandard): RecordFilterInput[] => {\n switch (condition) {\n case RecordFilterCondition.BETWEEN:\n const [from, to] = value!.split(dateValuesSeparator);\n return [\n {\n field,\n condition,\n value: JSON.stringify({\n from,\n to,\n }),\n },\n ];\n case RecordFilterCondition.NOT_EQUAL:\n return [\n {\n field,\n condition: RecordFilterCondition.NOT_EQUAL,\n value: _getDateAtNoon(Number(value)),\n },\n ];\n case RecordFilterCondition.EQUAL:\n return [\n {\n field,\n condition,\n value: _getDateAtNoon(Number(value)),\n },\n ];\n default:\n return [\n {\n field,\n condition,\n value,\n },\n ];\n }\n};\n\nconst _getBooleanRequestFilters = (filter: IUIFilterStandard): RecordFilterInput[] => {\n if (filter.value === 'false') {\n return [\n {\n field: filter.field,\n condition: AttributeConditionFilter.NOT_EQUAL,\n value: 'true',\n },\n ];\n }\n\n return [{field: filter.field, condition: filter.condition, value: filter.value}];\n};\n\nconst _addValuesListForFilters = (valuesList: string[]): RecordFilterInput[] => [\n {operator: RecordFilterOperator.OPEN_BRACKET},\n ...(interleaveElement(\n {operator: RecordFilterOperator.OR},\n valuesList.map(value => [\n {\n field: 'id',\n condition: AttributeConditionFilter.EQUAL,\n value,\n },\n ]),\n ) as RecordFilterInput[]),\n {operator: RecordFilterOperator.CLOSE_BRACKET},\n];\n\nconst _generateConditionsFromMultipleValues = (filter: IUIFilterTree | IUIFilterValueList): RecordFilterInput[] => {\n if (!filter.value || filter.value.length === 0) {\n return [];\n }\n const filtersWithOperators: RecordFilterInput[] = [];\n filter.value.forEach((recordId, idx) => {\n if (idx === 0 && filter.value && filter.value.length > 1) {\n filtersWithOperators.push({operator: RecordFilterOperator.OPEN_BRACKET});\n }\n if (isUIFilterTree(filter) && filter.nodes && filter.nodes.length > 0) {\n filtersWithOperators.push({\n value: recordId,\n condition: filter.condition,\n field: `${filter.attribute.id}.${filter.nodes[0].libraryId}.id`,\n });\n } else {\n filtersWithOperators.push({\n value: recordId,\n condition: filter.condition,\n field: Array.isArray(filter.field) ? filter.field[idx] : filter.field,\n });\n }\n if (filter.value && idx < filter.value.length - 1) {\n filtersWithOperators.push({\n operator:\n filter.condition === RecordFilterCondition.NOT_EQUAL\n ? RecordFilterOperator.AND\n : RecordFilterOperator.OR,\n });\n }\n if (filter.value && filter.value.length > 1 && idx >= filter.value.length - 1) {\n filtersWithOperators.push({operator: RecordFilterOperator.CLOSE_BRACKET});\n }\n });\n return filtersWithOperators;\n};\n\nexport const prepareFiltersForRequest = (\n filters: UIFilter[],\n filtersOperator?: FiltersOperator,\n valuesList?: string[],\n): RecordFilterInput[] => {\n const interleaveFilter = interleaveElement(\n {operator: filtersOperator === 'OR' ? RecordFilterOperator.OR : RecordFilterOperator.AND},\n filters\n .filter(filter => {\n if (isUIFilterThrough(filter)) {\n return (\n filter.subField &&\n filter.subCondition &&\n (filter.value !== null || nullValueConditions.includes(filter.subCondition))\n );\n }\n\n if (isUIFilterValueList(filter)) {\n return (\n (!!filter.condition && filter.value?.length) ||\n (filter.condition && nullValueConditions.includes(filter.condition))\n );\n }\n\n return filter.value !== null || (filter.condition && nullValueConditions.includes(filter.condition));\n })\n .map(filter => {\n if (isUIFilterTree(filter)) {\n return filter;\n }\n const condition =\n filter.condition === AttributeConditionFilter.THROUGH ? filter.subCondition : filter.condition;\n let field =\n filter.condition === AttributeConditionFilter.THROUGH\n ? `${filter.field}.${filter.subField}`\n : filter.field;\n\n // When a link attribute has a values list, we must filter on the linked record id\n if (isUIFilterLinkWithValueList(filter) && typeof field === 'string' && !field.endsWith('.id')) {\n field = `${field}.id`;\n }\n\n return {...filter, condition, field};\n })\n .map(filter => {\n //@ts-ignore typscript does not recognize filter as a UIFilter\n if (isUIFilterValueList(filter) || isUIFilterTree(filter)) {\n if (filter.condition && nullValueConditions.includes(filter.condition)) {\n return [\n {\n field: Array.isArray(filter.field) ? filter.field[0] : filter.field,\n condition: filter.condition,\n value: null,\n },\n ];\n }\n return _generateConditionsFromMultipleValues(filter as IUIFilterTree | IUIFilterValueList);\n }\n\n if (isUIFilterStandard(filter as UIFilter)) {\n switch (filter.attribute.format) {\n case AttributeFormat.date:\n return _getDateRequestFilters(filter as IUIFilterStandard);\n case AttributeFormat.boolean:\n return _getBooleanRequestFilters(filter as IUIFilterStandard);\n default:\n break;\n }\n }\n return [\n {\n field: filter.field as string,\n condition: filter.condition,\n value: filter.value,\n },\n ];\n }),\n );\n\n return [\n ...interleaveFilter,\n ...(interleaveFilter.length > 0 && valuesList ? [{operator: RecordFilterOperator.AND}] : []),\n ...(valuesList ? _addValuesListForFilters(valuesList) : []),\n ];\n};\n"]}
1
+ {"version":3,"file":"prepareFiltersForRequest.js","sourceRoot":"","sources":["../../../src/components/Filters/prepareFiltersForRequest.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport dayjs from 'dayjs';\nimport {AttributeFormat, RecordFilterCondition, type RecordFilterInput, RecordFilterOperator} from '_ui/_gqlTypes';\nimport {interleaveElement} from '_ui/_utils/interleaveElement';\nimport {AttributeConditionFilter} from '_ui/types';\nimport {\n type UIFilter,\n type IUIFilterStandard,\n type IUIFilterTree,\n isUIFilterStandard,\n isUIFilterThrough,\n isUIFilterTree,\n isUIFilterValueList,\n type IUIFilterValueList,\n type FiltersOperator,\n isUIFilterLinkWithValueList,\n} from './_types';\nimport {nullValueConditions} from './conditionsHelper';\n\nexport const dateValuesSeparator = '\\n';\n\nconst _getDateAtNoon = (date: number): string => dayjs.unix(Number(date)).add(12, 'hour').unix().toString();\n\nconst _getDateRequestFilters = ({field, condition, value}: IUIFilterStandard): RecordFilterInput[] => {\n switch (condition) {\n case RecordFilterCondition.BETWEEN:\n const [from, to] = value!.split(dateValuesSeparator);\n return [\n {\n field,\n condition,\n value: JSON.stringify({\n from,\n to,\n }),\n },\n ];\n case RecordFilterCondition.NOT_EQUAL:\n return [\n {\n field,\n condition: RecordFilterCondition.NOT_EQUAL,\n value: _getDateAtNoon(Number(value)),\n },\n ];\n case RecordFilterCondition.EQUAL:\n return [\n {\n field,\n condition,\n value: _getDateAtNoon(Number(value)),\n },\n ];\n default:\n return [\n {\n field,\n condition,\n value,\n },\n ];\n }\n};\n\nconst _getBooleanRequestFilters = (filter: IUIFilterStandard): RecordFilterInput[] => {\n if (filter.value === 'false') {\n return [\n {\n field: filter.field,\n condition: AttributeConditionFilter.NOT_EQUAL,\n value: 'true',\n },\n ];\n }\n\n return [{field: filter.field, condition: filter.condition, value: filter.value}];\n};\n\nconst _addValuesListForFilters = (valuesList: string[]): RecordFilterInput[] => [\n {operator: RecordFilterOperator.OPEN_BRACKET},\n ...(interleaveElement(\n {operator: RecordFilterOperator.OR},\n valuesList.map(value => [\n {\n field: 'id',\n condition: AttributeConditionFilter.EQUAL,\n value,\n },\n ]),\n ) as RecordFilterInput[]),\n {operator: RecordFilterOperator.CLOSE_BRACKET},\n];\n\nconst _generateConditionsFromMultipleValues = (filter: IUIFilterTree | IUIFilterValueList): RecordFilterInput[] => {\n if (!filter.value || filter.value.length === 0) {\n return [];\n }\n const filtersWithOperators: RecordFilterInput[] = [];\n filter.value.forEach((recordId, idx) => {\n if (idx === 0 && filter.value && filter.value.length > 1) {\n filtersWithOperators.push({operator: RecordFilterOperator.OPEN_BRACKET});\n }\n if (isUIFilterTree(filter) && filter.nodes && filter.nodes.length > 0) {\n filtersWithOperators.push({\n value: recordId,\n condition: filter.condition,\n field: `${filter.attribute.id}.${filter.nodes[0].libraryId}.id`,\n });\n } else {\n filtersWithOperators.push({\n value: recordId,\n condition: filter.condition,\n field: Array.isArray(filter.field) ? filter.field[idx] : filter.field,\n });\n }\n if (filter.value && idx < filter.value.length - 1) {\n filtersWithOperators.push({\n operator:\n filter.condition === RecordFilterCondition.NOT_EQUAL\n ? RecordFilterOperator.AND\n : RecordFilterOperator.OR,\n });\n }\n if (filter.value && filter.value.length > 1 && idx >= filter.value.length - 1) {\n filtersWithOperators.push({operator: RecordFilterOperator.CLOSE_BRACKET});\n }\n });\n return filtersWithOperators;\n};\n\nconst _addEmptyCondition = (baseConditions: RecordFilterInput[], filter: UIFilter): RecordFilterInput[] => {\n if (!filter.withEmptyValues) {\n return baseConditions;\n }\n\n const hasValue =\n filter.value !== null &&\n filter.value !== undefined &&\n (!Array.isArray(filter.value) || filter.value.length > 0);\n\n // patch because field contains multiple informations & can be empty\n const field = (Array.isArray(filter.field) ? filter.field[0] : filter.field) || filter.attribute.id;\n const emptyCondition = {\n field,\n condition: RecordFilterCondition.IS_EMPTY,\n value: null,\n };\n\n if (!hasValue) {\n return [emptyCondition];\n } else {\n return [\n {operator: RecordFilterOperator.OPEN_BRACKET},\n ...baseConditions,\n {operator: RecordFilterOperator.OR},\n emptyCondition,\n {operator: RecordFilterOperator.CLOSE_BRACKET},\n ];\n }\n};\n\nexport const prepareFiltersForRequest = (\n filters: UIFilter[],\n filtersOperator?: FiltersOperator,\n valuesList?: string[],\n): RecordFilterInput[] => {\n const interleaveFilter = interleaveElement(\n {operator: filtersOperator === 'OR' ? RecordFilterOperator.OR : RecordFilterOperator.AND},\n filters\n .filter(filter => {\n if (filter.withEmptyValues) {\n return true;\n }\n\n if (isUIFilterThrough(filter)) {\n return (\n filter.subField &&\n filter.subCondition &&\n (filter.value !== null || nullValueConditions.includes(filter.subCondition))\n );\n }\n\n if (isUIFilterValueList(filter)) {\n return (\n (!!filter.condition && filter.value?.length) ||\n (filter.condition && nullValueConditions.includes(filter.condition))\n );\n }\n\n return filter.value !== null || (filter.condition && nullValueConditions.includes(filter.condition));\n })\n .map(filter => {\n if (isUIFilterTree(filter)) {\n return filter;\n }\n const condition =\n filter.condition === AttributeConditionFilter.THROUGH ? filter.subCondition : filter.condition;\n let field =\n filter.condition === AttributeConditionFilter.THROUGH\n ? `${filter.field}.${filter.subField}`\n : filter.field;\n\n // When a link attribute has a values list, we must filter on the linked record id\n if (isUIFilterLinkWithValueList(filter) && typeof field === 'string' && !field.endsWith('.id')) {\n field = `${field}.id`;\n }\n\n return {...filter, condition, field};\n })\n .map(filter => {\n //@ts-ignore typscript does not recognize filter as a UIFilter\n if (isUIFilterValueList(filter) || isUIFilterTree(filter)) {\n if (filter.condition && nullValueConditions.includes(filter.condition)) {\n const baseConditions = [\n {\n field: Array.isArray(filter.field) ? filter.field[0] : filter.field,\n condition: filter.condition,\n value: null,\n },\n ];\n return _addEmptyCondition(baseConditions, filter as IUIFilterTree | IUIFilterValueList);\n }\n const baseConditions = _generateConditionsFromMultipleValues(\n filter as IUIFilterTree | IUIFilterValueList,\n );\n return _addEmptyCondition(baseConditions, filter as IUIFilterTree | IUIFilterValueList);\n }\n\n if (isUIFilterStandard(filter as UIFilter)) {\n switch (filter.attribute.format) {\n case AttributeFormat.date:\n return _getDateRequestFilters(filter as IUIFilterStandard);\n case AttributeFormat.boolean:\n return _getBooleanRequestFilters(filter as IUIFilterStandard);\n default:\n break;\n }\n }\n const baseConditions = [\n {\n field: filter.field as string,\n condition: filter.condition,\n value: filter.value,\n },\n ];\n return _addEmptyCondition(baseConditions, filter as UIFilter);\n }),\n );\n\n return [\n ...interleaveFilter,\n ...(interleaveFilter.length > 0 && valuesList ? [{operator: RecordFilterOperator.AND}] : []),\n ...(valuesList ? _addValuesListForFilters(valuesList) : []),\n ];\n};\n"]}
@@ -343,6 +343,7 @@ export declare const useFilters: (pinFilters?: boolean) => {
343
343
  value: string | null;
344
344
  id: string;
345
345
  hidden?: boolean | undefined;
346
+ withEmptyValues?: boolean;
346
347
  formattedValue?: string | null;
347
348
  } | {
348
349
  attribute: {
@@ -686,6 +687,7 @@ export declare const useFilters: (pinFilters?: boolean) => {
686
687
  value: string | null;
687
688
  id: string;
688
689
  hidden?: boolean | undefined;
690
+ withEmptyValues?: boolean;
689
691
  formattedValue?: string | null;
690
692
  } | {
691
693
  attribute: {
@@ -1031,6 +1033,7 @@ export declare const useFilters: (pinFilters?: boolean) => {
1031
1033
  value: string | null;
1032
1034
  id: string;
1033
1035
  hidden?: boolean | undefined;
1036
+ withEmptyValues?: boolean;
1034
1037
  formattedValue?: string | null;
1035
1038
  } | {
1036
1039
  attribute: {
@@ -1374,6 +1377,7 @@ export declare const useFilters: (pinFilters?: boolean) => {
1374
1377
  field: string | string[];
1375
1378
  id: string;
1376
1379
  hidden?: boolean | undefined;
1380
+ withEmptyValues?: boolean;
1377
1381
  } | {
1378
1382
  attribute: {
1379
1383
  format: import("../../_gqlTypes").AttributeFormat;
@@ -1721,6 +1725,7 @@ export declare const useFilters: (pinFilters?: boolean) => {
1721
1725
  field: string[];
1722
1726
  id: string;
1723
1727
  hidden?: boolean | undefined;
1728
+ withEmptyValues?: boolean;
1724
1729
  };
1725
1730
  isPinned: boolean;
1726
1731
  }[];
@@ -69,6 +69,7 @@ export const useTransformFilters = () => {
69
69
  format: attributeData.format,
70
70
  valuesList: attributeData.valuesList,
71
71
  },
72
+ withEmptyValues: filter.withEmptyValues ?? false,
72
73
  };
73
74
  acc.push(newFilter);
74
75
  }
@@ -91,6 +92,7 @@ export const useTransformFilters = () => {
91
92
  ...filterAttributeBase,
92
93
  format: attributeData.format,
93
94
  },
95
+ withEmptyValues: filter.withEmptyValues ?? false,
94
96
  };
95
97
  acc.push(newFilter);
96
98
  }
@@ -126,6 +128,7 @@ export const useTransformFilters = () => {
126
128
  linkedLibrary: attributeData.linked_library,
127
129
  valuesList: attributeData.valuesList,
128
130
  },
131
+ withEmptyValues: filter.withEmptyValues ?? false,
129
132
  };
130
133
  acc.push(newFilter);
131
134
  }
@@ -171,6 +174,7 @@ export const useTransformFilters = () => {
171
174
  linkedTree: attributeData.linked_tree,
172
175
  },
173
176
  condition: filter.condition ?? RecordFilterCondition.EQUAL,
177
+ withEmptyValues: filter.withEmptyValues ?? false,
174
178
  };
175
179
  acc.push(newFilter);
176
180
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useTransformFilters.js","sourceRoot":"","sources":["../../../src/components/Filters/useTransformFilters.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {\n type AttributeDetailsLinkAttributeFragment,\n type AttributeDetailsTreeAttributeFragment,\n AttributeFormat,\n AttributeType,\n type ExplorerAttributesQuery,\n type ExplorerLinkAttributeQuery,\n type GetViewsListQuery,\n type LinkAttributeDetailsFragment,\n RecordFilterCondition,\n type StandardAttributeDetailsFragment,\n type ViewDetailsFilterFragment,\n} from '_ui/_gqlTypes';\nimport {\n type UIFilter,\n type IUIFilterBaseAttribute,\n type IUIFilterLink,\n type IUIFilterLinkValueList,\n type IUIFilterStandard,\n type IUIFilterStandardValueList,\n type IUIFilterThrough,\n type IUIFilterTree,\n type ValidFieldFilter,\n type ValidFieldFilterLinkValuesList,\n type ValidFieldFilterStandardValuesList,\n type ValidFieldFilterThrough,\n type ValidFilter,\n} from './_types';\nimport {ThroughConditionFilter} from '_ui/types';\nimport {isLinkAttribute, isStandardAttribute, isTreeAttribute} from '_ui/_utils/attributeType';\nimport {localizedTranslation} from '@leav/utils';\nimport {useLang} from '_ui/hooks';\nimport {valueListTextConditions} from './filter-items/filter-type/useConditionOptionsByType';\nimport dayjs from 'dayjs';\nimport {type TFunction} from 'i18next';\nimport {type ITreeFilters} from './context/useGetTreeFilters';\n\nconst _isValidFieldFilter = (filter: ViewDetailsFilterFragment | UIFilter): filter is ValidFieldFilter =>\n !!filter.field;\n\nconst _isValidFieldFilterThrough = (filter: ValidFilter): filter is ValidFieldFilterThrough =>\n filter.condition === ThroughConditionFilter.THROUGH && !!filter.subCondition && !!filter.subField;\n\nconst _isValidFieldFilterStandardValuesList = (\n filter: ValidFilter,\n attribute: NonNullable<ExplorerAttributesQuery['attributes']>['list'][number],\n): filter is ValidFieldFilterStandardValuesList & {attribute: StandardAttributeDetailsFragment} =>\n valueListTextConditions.includes(filter.condition) &&\n [AttributeType.simple, AttributeType.advanced].includes(attribute.type) &&\n 'valuesList' in attribute &&\n !!attribute.valuesList?.enable;\n\nconst _isValidFieldFilterLinkValuesList = (\n filter: ValidFilter,\n attribute: NonNullable<ExplorerAttributesQuery['attributes']>['list'][number],\n): filter is ValidFieldFilterLinkValuesList & {attribute: LinkAttributeDetailsFragment} =>\n valueListTextConditions.includes(filter.condition) &&\n [AttributeType.simple_link, AttributeType.advanced_link].includes(attribute.type) &&\n 'valuesList' in attribute &&\n !!attribute.valuesList?.enable;\n\ntype AttributeDetailsLinkAttributeWithPermissionsFragment = AttributeDetailsLinkAttributeFragment & {\n permissions: {\n access_attribute: boolean;\n };\n};\ntype AttributeDetailsTreeAttributeWithPermissionsFragment = AttributeDetailsTreeAttributeFragment & {\n permissions: {\n access_attribute: boolean;\n };\n};\n\nexport const isLinkAttributeDetails = (\n linkAttributeData: NonNullable<ExplorerLinkAttributeQuery['attributes']>['list'][number],\n): linkAttributeData is LinkAttributeDetailsFragment & {\n id: string;\n multiple_values: boolean;\n permissions: {\n access_attribute: boolean;\n edit_value: boolean;\n };\n} => 'linked_library' in linkAttributeData;\n\nexport type ValidFiltersArgument = GetViewsListQuery['views']['list'][number]['filters'] | UIFilter[];\n\nexport type AttributesById = Record<string, NonNullable<ExplorerAttributesQuery['attributes']>['list'][number]>;\n\nexport const useTransformFilters = () => {\n const {lang} = useLang();\n\n const toValidFilters = (filters: ValidFiltersArgument): ValidFilter[] =>\n (filters ?? []).reduce<ValidFilter[]>((acc, filter) => {\n if (!_isValidFieldFilter(filter)) {\n return acc;\n }\n const _isThroughFilter = filter.field.includes('.');\n\n if (_isThroughFilter) {\n const [field, subField] = filter.field.split('.');\n const throughFilter: ValidFieldFilterThrough = {\n field,\n subField,\n value: filter.value ?? null,\n hidden: filter.hidden ?? false,\n condition: ThroughConditionFilter.THROUGH,\n subCondition: filter.condition,\n };\n acc.push(throughFilter);\n } else {\n acc.push(filter);\n }\n\n return acc;\n }, []);\n\n const toUIFilters = ({\n filters,\n treeFilters,\n attributesDataById,\n t,\n }: {\n filters: ValidFilter[];\n treeFilters: ITreeFilters;\n attributesDataById: AttributesById;\n t: TFunction;\n }): UIFilter[] =>\n (filters ?? []).reduce<UIFilter[]>((acc, filter) => {\n if (!attributesDataById[filter.field]) {\n console.warn(`Attribute ${filter.field} from user view not found in database.`);\n return acc;\n }\n\n const filterAttributeBase: IUIFilterBaseAttribute = {\n id: attributesDataById[filter.field].id,\n label: localizedTranslation(attributesDataById[filter.field].label, lang),\n type: attributesDataById[filter.field].type,\n };\n\n // filter is standardFilter\n if (isStandardAttribute(filterAttributeBase.type)) {\n const attributeData = attributesDataById[filter.field];\n if (_isValidFieldFilterStandardValuesList(filter, attributeData)) {\n const newFilter: IUIFilterStandardValueList = {\n field: filter.field,\n // TODO : save filter values as string[] when filter and handle fields with libraries\n value: filter.value ? [filter.value] : [],\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: (filter.condition as RecordFilterCondition) ?? null,\n attribute: {\n ...filterAttributeBase,\n format: attributeData.format!,\n valuesList: (attributeData as StandardAttributeDetailsFragment).valuesList!,\n },\n };\n acc.push(newFilter);\n } else {\n let formattedValue: string;\n if (attributeData.format === AttributeFormat.boolean && filter.value) {\n formattedValue = filter.value === 'true' ? t('explorer.true') : t('explorer.false');\n }\n\n if (attributeData.format === AttributeFormat.date && filter.value) {\n formattedValue = dayjs(filter.value).format('YYYY-MM-DD');\n }\n\n const newFilter: IUIFilterStandard = {\n field: filter.field,\n value: filter.value ?? null,\n formattedValue,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: (filter.condition as RecordFilterCondition) ?? null,\n attribute: {\n ...filterAttributeBase,\n format: attributeData.format!,\n },\n };\n acc.push(newFilter);\n }\n }\n\n if (isLinkAttribute(filterAttributeBase.type)) {\n const attributeData = attributesDataById[\n filter.field\n ] as AttributeDetailsLinkAttributeWithPermissionsFragment;\n if (_isValidFieldFilterThrough(filter)) {\n const newFilter: IUIFilterThrough = {\n field: filter.field,\n value: filter.value ?? null,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: filter.condition,\n attribute: {\n ...filterAttributeBase,\n linkedLibrary: attributeData.linked_library!,\n },\n subCondition: filter.subCondition ?? null,\n subField: filter.subField,\n };\n acc.push(newFilter);\n } else if (_isValidFieldFilterLinkValuesList(filter, attributeData)) {\n const newFilter: IUIFilterLinkValueList = {\n field: filter.field,\n // TODO : save filter values as string[] when filter and handle fields with libraries\n value: filter.value ? [filter.value] : [],\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: filter.condition,\n attribute: {\n ...filterAttributeBase,\n linkedLibrary: attributeData.linked_library!,\n valuesList: (attributeData as LinkAttributeDetailsFragment).valuesList!,\n },\n };\n\n acc.push(newFilter);\n } else {\n const newFilter: IUIFilterLink = {\n field: filter.field,\n value: filter.value ?? null,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: filter.condition,\n attribute: {\n ...filterAttributeBase,\n linkedLibrary: attributeData.linked_library!,\n },\n };\n\n acc.push(newFilter);\n }\n }\n\n if (isTreeAttribute(filterAttributeBase.type) && !_isValidFieldFilterThrough(filter)) {\n const attributeData = attributesDataById[\n filter.field\n ] as AttributeDetailsTreeAttributeWithPermissionsFragment;\n const newFilter: IUIFilterTree = {\n field: [filter.field],\n // TODO : save filter values as string[] when tree filter and handle fields with libraries\n value: filter.value\n ? [filter.value]\n : treeFilters[filter.field]\n ? treeFilters[filter.field].map(tree => tree.value)\n : null,\n formattedValue: filter.value\n ? [filter.value]\n : treeFilters[filter.field]\n ? treeFilters[filter.field].map(tree => tree.label)\n : undefined,\n nodes: filter.value\n ? undefined\n : treeFilters[filter.field]\n ? treeFilters[filter.field].map(tree => ({libraryId: tree.libraryId, nodeId: tree.nodeId}))\n : undefined,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n attribute: {\n ...filterAttributeBase,\n linkedTree: attributeData.linked_tree!,\n },\n condition: filter.condition ?? RecordFilterCondition.EQUAL,\n };\n acc.push(newFilter);\n }\n\n return acc;\n }, []);\n\n return {\n toValidFilters,\n toUIFilters,\n };\n};\n"]}
1
+ {"version":3,"file":"useTransformFilters.js","sourceRoot":"","sources":["../../../src/components/Filters/useTransformFilters.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {\n type AttributeDetailsLinkAttributeFragment,\n type AttributeDetailsTreeAttributeFragment,\n AttributeFormat,\n AttributeType,\n type ExplorerAttributesQuery,\n type ExplorerLinkAttributeQuery,\n type GetViewsListQuery,\n type LinkAttributeDetailsFragment,\n RecordFilterCondition,\n type StandardAttributeDetailsFragment,\n type ViewDetailsFilterFragment,\n} from '_ui/_gqlTypes';\nimport {\n type UIFilter,\n type IUIFilterBaseAttribute,\n type IUIFilterLink,\n type IUIFilterLinkValueList,\n type IUIFilterStandard,\n type IUIFilterStandardValueList,\n type IUIFilterThrough,\n type IUIFilterTree,\n type ValidFieldFilter,\n type ValidFieldFilterLinkValuesList,\n type ValidFieldFilterStandardValuesList,\n type ValidFieldFilterThrough,\n type ValidFilter,\n} from './_types';\nimport {ThroughConditionFilter} from '_ui/types';\nimport {isLinkAttribute, isStandardAttribute, isTreeAttribute} from '_ui/_utils/attributeType';\nimport {localizedTranslation} from '@leav/utils';\nimport {useLang} from '_ui/hooks';\nimport {valueListTextConditions} from './filter-items/filter-type/useConditionOptionsByType';\nimport dayjs from 'dayjs';\nimport {type TFunction} from 'i18next';\nimport {type ITreeFilters} from './context/useGetTreeFilters';\n\nconst _isValidFieldFilter = (filter: ViewDetailsFilterFragment | UIFilter): filter is ValidFieldFilter =>\n !!filter.field;\n\nconst _isValidFieldFilterThrough = (filter: ValidFilter): filter is ValidFieldFilterThrough =>\n filter.condition === ThroughConditionFilter.THROUGH && !!filter.subCondition && !!filter.subField;\n\nconst _isValidFieldFilterStandardValuesList = (\n filter: ValidFilter,\n attribute: NonNullable<ExplorerAttributesQuery['attributes']>['list'][number],\n): filter is ValidFieldFilterStandardValuesList & {attribute: StandardAttributeDetailsFragment} =>\n valueListTextConditions.includes(filter.condition) &&\n [AttributeType.simple, AttributeType.advanced].includes(attribute.type) &&\n 'valuesList' in attribute &&\n !!attribute.valuesList?.enable;\n\nconst _isValidFieldFilterLinkValuesList = (\n filter: ValidFilter,\n attribute: NonNullable<ExplorerAttributesQuery['attributes']>['list'][number],\n): filter is ValidFieldFilterLinkValuesList & {attribute: LinkAttributeDetailsFragment} =>\n valueListTextConditions.includes(filter.condition) &&\n [AttributeType.simple_link, AttributeType.advanced_link].includes(attribute.type) &&\n 'valuesList' in attribute &&\n !!attribute.valuesList?.enable;\n\ntype AttributeDetailsLinkAttributeWithPermissionsFragment = AttributeDetailsLinkAttributeFragment & {\n permissions: {\n access_attribute: boolean;\n };\n};\ntype AttributeDetailsTreeAttributeWithPermissionsFragment = AttributeDetailsTreeAttributeFragment & {\n permissions: {\n access_attribute: boolean;\n };\n};\n\nexport const isLinkAttributeDetails = (\n linkAttributeData: NonNullable<ExplorerLinkAttributeQuery['attributes']>['list'][number],\n): linkAttributeData is LinkAttributeDetailsFragment & {\n id: string;\n multiple_values: boolean;\n permissions: {\n access_attribute: boolean;\n edit_value: boolean;\n };\n} => 'linked_library' in linkAttributeData;\n\nexport type ValidFiltersArgument = GetViewsListQuery['views']['list'][number]['filters'] | UIFilter[];\n\nexport type AttributesById = Record<string, NonNullable<ExplorerAttributesQuery['attributes']>['list'][number]>;\n\nexport const useTransformFilters = () => {\n const {lang} = useLang();\n\n const toValidFilters = (filters: ValidFiltersArgument): ValidFilter[] =>\n (filters ?? []).reduce<ValidFilter[]>((acc, filter) => {\n if (!_isValidFieldFilter(filter)) {\n return acc;\n }\n const _isThroughFilter = filter.field.includes('.');\n\n if (_isThroughFilter) {\n const [field, subField] = filter.field.split('.');\n const throughFilter: ValidFieldFilterThrough = {\n field,\n subField,\n value: filter.value ?? null,\n hidden: filter.hidden ?? false,\n condition: ThroughConditionFilter.THROUGH,\n subCondition: filter.condition,\n };\n acc.push(throughFilter);\n } else {\n acc.push(filter);\n }\n\n return acc;\n }, []);\n\n const toUIFilters = ({\n filters,\n treeFilters,\n attributesDataById,\n t,\n }: {\n filters: ValidFilter[];\n treeFilters: ITreeFilters;\n attributesDataById: AttributesById;\n t: TFunction;\n }): UIFilter[] =>\n (filters ?? []).reduce<UIFilter[]>((acc, filter) => {\n if (!attributesDataById[filter.field]) {\n console.warn(`Attribute ${filter.field} from user view not found in database.`);\n return acc;\n }\n\n const filterAttributeBase: IUIFilterBaseAttribute = {\n id: attributesDataById[filter.field].id,\n label: localizedTranslation(attributesDataById[filter.field].label, lang),\n type: attributesDataById[filter.field].type,\n };\n\n // filter is standardFilter\n if (isStandardAttribute(filterAttributeBase.type)) {\n const attributeData = attributesDataById[filter.field];\n if (_isValidFieldFilterStandardValuesList(filter, attributeData)) {\n const newFilter: IUIFilterStandardValueList = {\n field: filter.field,\n // TODO : save filter values as string[] when filter and handle fields with libraries\n value: filter.value ? [filter.value] : [],\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: (filter.condition as RecordFilterCondition) ?? null,\n attribute: {\n ...filterAttributeBase,\n format: attributeData.format!,\n valuesList: (attributeData as StandardAttributeDetailsFragment).valuesList!,\n },\n withEmptyValues: filter.withEmptyValues ?? false,\n };\n acc.push(newFilter);\n } else {\n let formattedValue: string;\n if (attributeData.format === AttributeFormat.boolean && filter.value) {\n formattedValue = filter.value === 'true' ? t('explorer.true') : t('explorer.false');\n }\n\n if (attributeData.format === AttributeFormat.date && filter.value) {\n formattedValue = dayjs(filter.value).format('YYYY-MM-DD');\n }\n\n const newFilter: IUIFilterStandard = {\n field: filter.field,\n value: filter.value ?? null,\n formattedValue,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: (filter.condition as RecordFilterCondition) ?? null,\n attribute: {\n ...filterAttributeBase,\n format: attributeData.format!,\n },\n withEmptyValues: filter.withEmptyValues ?? false,\n };\n acc.push(newFilter);\n }\n }\n\n if (isLinkAttribute(filterAttributeBase.type)) {\n const attributeData = attributesDataById[\n filter.field\n ] as AttributeDetailsLinkAttributeWithPermissionsFragment;\n if (_isValidFieldFilterThrough(filter)) {\n const newFilter: IUIFilterThrough = {\n field: filter.field,\n value: filter.value ?? null,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: filter.condition,\n attribute: {\n ...filterAttributeBase,\n linkedLibrary: attributeData.linked_library!,\n },\n subCondition: filter.subCondition ?? null,\n subField: filter.subField,\n };\n acc.push(newFilter);\n } else if (_isValidFieldFilterLinkValuesList(filter, attributeData)) {\n const newFilter: IUIFilterLinkValueList = {\n field: filter.field,\n // TODO : save filter values as string[] when filter and handle fields with libraries\n value: filter.value ? [filter.value] : [],\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: filter.condition,\n attribute: {\n ...filterAttributeBase,\n linkedLibrary: attributeData.linked_library!,\n valuesList: (attributeData as LinkAttributeDetailsFragment).valuesList!,\n },\n withEmptyValues: filter.withEmptyValues ?? false,\n };\n\n acc.push(newFilter);\n } else {\n const newFilter: IUIFilterLink = {\n field: filter.field,\n value: filter.value ?? null,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: filter.condition,\n attribute: {\n ...filterAttributeBase,\n linkedLibrary: attributeData.linked_library!,\n },\n };\n\n acc.push(newFilter);\n }\n }\n\n if (isTreeAttribute(filterAttributeBase.type) && !_isValidFieldFilterThrough(filter)) {\n const attributeData = attributesDataById[\n filter.field\n ] as AttributeDetailsTreeAttributeWithPermissionsFragment;\n const newFilter: IUIFilterTree = {\n field: [filter.field],\n // TODO : save filter values as string[] when tree filter and handle fields with libraries\n value: filter.value\n ? [filter.value]\n : treeFilters[filter.field]\n ? treeFilters[filter.field].map(tree => tree.value)\n : null,\n formattedValue: filter.value\n ? [filter.value]\n : treeFilters[filter.field]\n ? treeFilters[filter.field].map(tree => tree.label)\n : undefined,\n nodes: filter.value\n ? undefined\n : treeFilters[filter.field]\n ? treeFilters[filter.field].map(tree => ({libraryId: tree.libraryId, nodeId: tree.nodeId}))\n : undefined,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n attribute: {\n ...filterAttributeBase,\n linkedTree: attributeData.linked_tree!,\n },\n condition: filter.condition ?? RecordFilterCondition.EQUAL,\n withEmptyValues: filter.withEmptyValues ?? false,\n };\n acc.push(newFilter);\n }\n\n return acc;\n }, []);\n\n return {\n toValidFilters,\n toUIFilters,\n };\n};\n"]}
@@ -11,7 +11,7 @@ import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
11
11
  import { AttributeType, ImportMode, ImportType, } from '../../../_gqlTypes';
12
12
  import { ImportReducerActionTypes } from '../importReducer/importReducer';
13
13
  import { useImportReducerContext } from '../importReducer/ImportReducerContext';
14
- import { ERROR_NOTIFICATION_DURATION_SECONDS } from '../../../constants';
14
+ import { ERROR_NOTIFICATION_DURATION } from '../../../constants';
15
15
  const defaultType = ImportType.STANDARD;
16
16
  const defaultMode = ImportMode.upsert;
17
17
  function ImportModalSelectFileStep({ onGetAttributes }) {
@@ -146,7 +146,8 @@ function ImportModalSelectFileStep({ onGetAttributes }) {
146
146
  KitNotification.error({
147
147
  message: t('error.error_occurred'),
148
148
  description: errorMessage,
149
- duration: ERROR_NOTIFICATION_DURATION_SECONDS,
149
+ duration: ERROR_NOTIFICATION_DURATION,
150
+ closable: true,
150
151
  });
151
152
  }
152
153
  };
@@ -160,7 +161,8 @@ function ImportModalSelectFileStep({ onGetAttributes }) {
160
161
  KitNotification.error({
161
162
  message: t('error.error_occurred'),
162
163
  description: reader.error?.message ?? '',
163
- duration: ERROR_NOTIFICATION_DURATION_SECONDS,
164
+ duration: ERROR_NOTIFICATION_DURATION,
165
+ closable: true,
164
166
  });
165
167
  };
166
168
  // Prevent default upload. We'll handle it ourselves later on
@@ -1 +1 @@
1
- {"version":3,"file":"ImportModalSelectFileStep.js","sourceRoot":"","sources":["../../../../src/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {extractArgsFromString} from '@leav/utils';\nimport {message, Space, Spin} from 'antd';\nimport {KitAlert, KitUpload, KitNotification} from 'aristid-ds';\nimport {type IKitDragger} from 'aristid-ds/dist/Kit/DataEntry/Upload/types';\nimport {useState} from 'react';\nimport {read as xlsxRead, utils as xlsxUtils} from 'xlsx';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {\n type AttributesByLibAttributeFragment,\n type AttributesByLibAttributeLinkAttributeFragment,\n AttributeType,\n ImportMode,\n ImportType,\n} from '_ui/_gqlTypes';\nimport {ImportReducerActionTypes} from '../importReducer/importReducer';\nimport {useImportReducerContext} from '../importReducer/ImportReducerContext';\nimport {type ISheet} from '../_types';\nimport {ERROR_NOTIFICATION_DURATION_SECONDS} from '_ui/constants';\n\ninterface IImportModalSelectFileStepsProps {\n onGetAttributes: (library: string) => Promise<AttributesByLibAttributeFragment[]>;\n}\n\nconst defaultType = ImportType.STANDARD;\nconst defaultMode = ImportMode.upsert;\n\nfunction ImportModalSelectFileStep({onGetAttributes}: IImportModalSelectFileStepsProps): JSX.Element {\n const {t} = useSharedTranslation();\n\n const {state, dispatch} = useImportReducerContext();\n const {file} = state;\n\n const _setFileData = async content => {\n const workbook = xlsxRead(content, {type: 'binary'});\n\n const s: ISheet[] = [];\n\n for (const sheetName in workbook.Sheets) {\n if (workbook.Sheets.hasOwnProperty(sheetName)) {\n // Use the sheet_to_json method to convert excel to json data\n const sheetData: Array<{[col: string]: string}> = xlsxUtils.sheet_to_json(workbook.Sheets[sheetName], {\n blankrows: false,\n defval: null,\n });\n\n // if sheet is empty we skip it\n if (!sheetData.length) {\n continue;\n }\n\n // get columns' name\n const sheetColumns = Object.keys(sheetData[0]);\n\n // match only first line cells (A1, B1, etc.)\n const firstRowAddresses = Object.keys(workbook.Sheets[sheetName]).filter(\n k => !!k.match(/\\b[A-Z]+1\\b/g),\n );\n\n const isMapped = !!workbook.Sheets[sheetName][firstRowAddresses[0]]?.c;\n\n // Mapping is present.\n if (isMapped) {\n const comments: string[] = [];\n\n for (const address of firstRowAddresses) {\n // get first line comments and delete \"\\n\" characters\n comments.push(workbook.Sheets[sheetName][address].c?.[0]?.t?.replace(/\\n/g, ' ') || null);\n }\n\n const params = extractArgsFromString(comments[0]);\n\n const sType = params.type ?? defaultType;\n const sLibrary = params.library;\n const sLinkAttribute = params.linkAttribute;\n const sMode = params.mode ?? defaultMode;\n let sMapping = [];\n const sTreeLinkLibrary = params.treeLinkLibrary;\n let sKeyColumnIndex: number;\n let sKeyToColumnIndex: number;\n\n let sKeyToAttributes: AttributesByLibAttributeFragment[] = [];\n\n const attributes = await onGetAttributes(sLibrary);\n\n // Extract mapping, keyIndex and keyToIndex from all columns comments\n for (const [index, comm] of comments.entries()) {\n const commArgs = extractArgsFromString(comm);\n sMapping.push(String(commArgs.id) ?? null);\n\n if (commArgs.key) {\n sKeyColumnIndex = index;\n }\n\n if (commArgs.keyTo) {\n sKeyToColumnIndex = index;\n }\n }\n\n const linkAttributeProps =\n sKeyToColumnIndex && sLinkAttribute\n ? (attributes.find(\n a => a.id === sLinkAttribute,\n ) as AttributesByLibAttributeLinkAttributeFragment)\n : null;\n\n if (linkAttributeProps && (linkAttributeProps.type !== AttributeType.tree || sTreeLinkLibrary)) {\n const keyToLibrary =\n linkAttributeProps.type === AttributeType.tree\n ? sTreeLinkLibrary\n : linkAttributeProps?.linked_library?.id;\n sKeyToAttributes = await onGetAttributes(keyToLibrary);\n }\n\n // Check if all mapping attributes actually exist\n sMapping = sMapping.map((mappingAttribute, index) => {\n const attributesToCheck = index === sKeyToColumnIndex ? sKeyToAttributes : attributes;\n return attributesToCheck.find(attribute => attribute.id === mappingAttribute)\n ? mappingAttribute\n : null;\n });\n\n s.push({\n name: sheetName,\n attributes,\n columns: sheetColumns,\n type: ImportType[sType],\n mode: ImportMode[sMode],\n library: sLibrary,\n linkAttribute: sLinkAttribute,\n linkAttributeProps,\n keyColumnIndex: sKeyColumnIndex,\n keyToColumnIndex: sKeyToColumnIndex,\n keyToAttributes: sKeyToAttributes,\n treeLinkLibrary: sTreeLinkLibrary,\n data: sheetData.length ? sheetData : null,\n mapping: sMapping,\n });\n } else {\n const sLibrary = state.defaultLibrary;\n const attributes = await onGetAttributes(sLibrary);\n\n s.push({\n name: sheetName,\n library: sLibrary,\n columns: sheetColumns,\n type: defaultType,\n mode: defaultMode,\n attributes,\n mapping: [],\n data: sheetData.length ? sheetData : null,\n });\n }\n }\n }\n\n if (!s.length || s.every(sheet => sheet.data === null)) {\n message.error(t('import.empty_file'));\n return false;\n }\n\n dispatch({type: ImportReducerActionTypes.SET_SHEETS, sheets: s});\n\n return true;\n };\n\n const [loading, setLoading] = useState(false);\n\n const draggerProps: IKitDragger = {\n name: 'file',\n multiple: false,\n accept: '.xlsx',\n description: t('import.file_selection_restriction', {allowedFormat: '.xlsx'}),\n title: file?.name ?? t('import.file_selection_instruction'),\n beforeUpload: fileToImport => {\n // Read file to read mapping and display a preview on next step\n const reader = new FileReader();\n reader.readAsBinaryString(fileToImport);\n\n reader.onload = async e => {\n try {\n const res = await _setFileData(reader.result);\n\n if (res) {\n dispatch({type: ImportReducerActionTypes.SET_FILE, file: fileToImport});\n }\n dispatch({type: ImportReducerActionTypes.SET_OK_BTN, okBtn: res});\n } catch (error) {\n const errorMessage = error?.message ?? t('error.error_occurred');\n KitNotification.error({\n message: t('error.error_occurred'),\n description: errorMessage,\n duration: ERROR_NOTIFICATION_DURATION_SECONDS,\n });\n }\n };\n\n reader.onloadstart = e => {\n setLoading(true);\n };\n\n reader.onloadend = e => {\n setLoading(false);\n };\n\n reader.onerror = e => {\n KitNotification.error({\n message: t('error.error_occurred'),\n description: reader.error?.message ?? '',\n duration: ERROR_NOTIFICATION_DURATION_SECONDS,\n });\n };\n\n // Prevent default upload. We'll handle it ourselves later on\n return false;\n },\n };\n\n return (\n <Space direction=\"vertical\" style={{width: '100%'}}>\n <Spin spinning={loading}>\n <KitUpload.Dragger {...draggerProps} />\n </Spin>\n <KitAlert message={t('import.first_line_info')} type=\"info\" showIcon />\n </Space>\n );\n}\n\nexport default ImportModalSelectFileStep;\n"]}
1
+ {"version":3,"file":"ImportModalSelectFileStep.js","sourceRoot":"","sources":["../../../../src/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {extractArgsFromString} from '@leav/utils';\nimport {message, Space, Spin} from 'antd';\nimport {KitAlert, KitUpload, KitNotification} from 'aristid-ds';\nimport {type IKitDragger} from 'aristid-ds/dist/Kit/DataEntry/Upload/types';\nimport {useState} from 'react';\nimport {read as xlsxRead, utils as xlsxUtils} from 'xlsx';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {\n type AttributesByLibAttributeFragment,\n type AttributesByLibAttributeLinkAttributeFragment,\n AttributeType,\n ImportMode,\n ImportType,\n} from '_ui/_gqlTypes';\nimport {ImportReducerActionTypes} from '../importReducer/importReducer';\nimport {useImportReducerContext} from '../importReducer/ImportReducerContext';\nimport {type ISheet} from '../_types';\nimport {ERROR_NOTIFICATION_DURATION} from '_ui/constants';\n\ninterface IImportModalSelectFileStepsProps {\n onGetAttributes: (library: string) => Promise<AttributesByLibAttributeFragment[]>;\n}\n\nconst defaultType = ImportType.STANDARD;\nconst defaultMode = ImportMode.upsert;\n\nfunction ImportModalSelectFileStep({onGetAttributes}: IImportModalSelectFileStepsProps): JSX.Element {\n const {t} = useSharedTranslation();\n\n const {state, dispatch} = useImportReducerContext();\n const {file} = state;\n\n const _setFileData = async content => {\n const workbook = xlsxRead(content, {type: 'binary'});\n\n const s: ISheet[] = [];\n\n for (const sheetName in workbook.Sheets) {\n if (workbook.Sheets.hasOwnProperty(sheetName)) {\n // Use the sheet_to_json method to convert excel to json data\n const sheetData: Array<{[col: string]: string}> = xlsxUtils.sheet_to_json(workbook.Sheets[sheetName], {\n blankrows: false,\n defval: null,\n });\n\n // if sheet is empty we skip it\n if (!sheetData.length) {\n continue;\n }\n\n // get columns' name\n const sheetColumns = Object.keys(sheetData[0]);\n\n // match only first line cells (A1, B1, etc.)\n const firstRowAddresses = Object.keys(workbook.Sheets[sheetName]).filter(\n k => !!k.match(/\\b[A-Z]+1\\b/g),\n );\n\n const isMapped = !!workbook.Sheets[sheetName][firstRowAddresses[0]]?.c;\n\n // Mapping is present.\n if (isMapped) {\n const comments: string[] = [];\n\n for (const address of firstRowAddresses) {\n // get first line comments and delete \"\\n\" characters\n comments.push(workbook.Sheets[sheetName][address].c?.[0]?.t?.replace(/\\n/g, ' ') || null);\n }\n\n const params = extractArgsFromString(comments[0]);\n\n const sType = params.type ?? defaultType;\n const sLibrary = params.library;\n const sLinkAttribute = params.linkAttribute;\n const sMode = params.mode ?? defaultMode;\n let sMapping = [];\n const sTreeLinkLibrary = params.treeLinkLibrary;\n let sKeyColumnIndex: number;\n let sKeyToColumnIndex: number;\n\n let sKeyToAttributes: AttributesByLibAttributeFragment[] = [];\n\n const attributes = await onGetAttributes(sLibrary);\n\n // Extract mapping, keyIndex and keyToIndex from all columns comments\n for (const [index, comm] of comments.entries()) {\n const commArgs = extractArgsFromString(comm);\n sMapping.push(String(commArgs.id) ?? null);\n\n if (commArgs.key) {\n sKeyColumnIndex = index;\n }\n\n if (commArgs.keyTo) {\n sKeyToColumnIndex = index;\n }\n }\n\n const linkAttributeProps =\n sKeyToColumnIndex && sLinkAttribute\n ? (attributes.find(\n a => a.id === sLinkAttribute,\n ) as AttributesByLibAttributeLinkAttributeFragment)\n : null;\n\n if (linkAttributeProps && (linkAttributeProps.type !== AttributeType.tree || sTreeLinkLibrary)) {\n const keyToLibrary =\n linkAttributeProps.type === AttributeType.tree\n ? sTreeLinkLibrary\n : linkAttributeProps?.linked_library?.id;\n sKeyToAttributes = await onGetAttributes(keyToLibrary);\n }\n\n // Check if all mapping attributes actually exist\n sMapping = sMapping.map((mappingAttribute, index) => {\n const attributesToCheck = index === sKeyToColumnIndex ? sKeyToAttributes : attributes;\n return attributesToCheck.find(attribute => attribute.id === mappingAttribute)\n ? mappingAttribute\n : null;\n });\n\n s.push({\n name: sheetName,\n attributes,\n columns: sheetColumns,\n type: ImportType[sType],\n mode: ImportMode[sMode],\n library: sLibrary,\n linkAttribute: sLinkAttribute,\n linkAttributeProps,\n keyColumnIndex: sKeyColumnIndex,\n keyToColumnIndex: sKeyToColumnIndex,\n keyToAttributes: sKeyToAttributes,\n treeLinkLibrary: sTreeLinkLibrary,\n data: sheetData.length ? sheetData : null,\n mapping: sMapping,\n });\n } else {\n const sLibrary = state.defaultLibrary;\n const attributes = await onGetAttributes(sLibrary);\n\n s.push({\n name: sheetName,\n library: sLibrary,\n columns: sheetColumns,\n type: defaultType,\n mode: defaultMode,\n attributes,\n mapping: [],\n data: sheetData.length ? sheetData : null,\n });\n }\n }\n }\n\n if (!s.length || s.every(sheet => sheet.data === null)) {\n message.error(t('import.empty_file'));\n return false;\n }\n\n dispatch({type: ImportReducerActionTypes.SET_SHEETS, sheets: s});\n\n return true;\n };\n\n const [loading, setLoading] = useState(false);\n\n const draggerProps: IKitDragger = {\n name: 'file',\n multiple: false,\n accept: '.xlsx',\n description: t('import.file_selection_restriction', {allowedFormat: '.xlsx'}),\n title: file?.name ?? t('import.file_selection_instruction'),\n beforeUpload: fileToImport => {\n // Read file to read mapping and display a preview on next step\n const reader = new FileReader();\n reader.readAsBinaryString(fileToImport);\n\n reader.onload = async e => {\n try {\n const res = await _setFileData(reader.result);\n\n if (res) {\n dispatch({type: ImportReducerActionTypes.SET_FILE, file: fileToImport});\n }\n dispatch({type: ImportReducerActionTypes.SET_OK_BTN, okBtn: res});\n } catch (error) {\n const errorMessage = error?.message ?? t('error.error_occurred');\n KitNotification.error({\n message: t('error.error_occurred'),\n description: errorMessage,\n duration: ERROR_NOTIFICATION_DURATION,\n closable: true,\n });\n }\n };\n\n reader.onloadstart = e => {\n setLoading(true);\n };\n\n reader.onloadend = e => {\n setLoading(false);\n };\n\n reader.onerror = e => {\n KitNotification.error({\n message: t('error.error_occurred'),\n description: reader.error?.message ?? '',\n duration: ERROR_NOTIFICATION_DURATION,\n closable: true,\n });\n };\n\n // Prevent default upload. We'll handle it ourselves later on\n return false;\n },\n };\n\n return (\n <Space direction=\"vertical\" style={{width: '100%'}}>\n <Spin spinning={loading}>\n <KitUpload.Dragger {...draggerProps} />\n </Spin>\n <KitAlert message={t('import.first_line_info')} type=\"info\" showIcon />\n </Space>\n );\n}\n\nexport default ImportModalSelectFileStep;\n"]}
@@ -56,14 +56,7 @@ const allowedConditionByFormat = {
56
56
  AttributeConditionFilter.IS_EMPTY,
57
57
  AttributeConditionFilter.IS_NOT_EMPTY,
58
58
  ],
59
- [AttributeFormat.color]: [
60
- AttributeConditionFilter.CONTAINS,
61
- AttributeConditionFilter.NOT_CONTAINS,
62
- AttributeConditionFilter.EQUAL,
63
- AttributeConditionFilter.NOT_EQUAL,
64
- AttributeConditionFilter.IS_EMPTY,
65
- AttributeConditionFilter.IS_NOT_EMPTY,
66
- ],
59
+ [AttributeFormat.color]: [],
67
60
  [AttributeFormat.rich_text]: [
68
61
  AttributeConditionFilter.CONTAINS,
69
62
  AttributeConditionFilter.NOT_CONTAINS,
@@ -1 +1 @@
1
- {"version":3,"file":"FiltersOptions.js","sourceRoot":"","sources":["../../../../src/components/LibraryItemsList/FiltersPanel/FiltersOptions.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type TFunction} from 'i18next';\nimport {\n AttributeConditionFilter,\n type AttributeConditionType,\n FilterType,\n type IFilter,\n type IFilterAttribute,\n OperatorFilter,\n TreeConditionFilter,\n} from '_ui/types/search';\nimport {AttributeFormat, type RecordFilterCondition} from '_ui/_gqlTypes';\n\nexport interface IFilterConditionOption<T> {\n text: string;\n value: T;\n textByFormat?: {[key in AttributeFormat]?: string};\n}\n\nconst allowedConditionByFormat: {[format in AttributeFormat]: AttributeConditionType[]} = {\n [AttributeFormat.text]: [\n AttributeConditionFilter.CONTAINS,\n AttributeConditionFilter.NOT_CONTAINS,\n AttributeConditionFilter.EQUAL,\n AttributeConditionFilter.NOT_EQUAL,\n AttributeConditionFilter.BEGIN_WITH,\n AttributeConditionFilter.END_WITH,\n AttributeConditionFilter.IS_EMPTY,\n AttributeConditionFilter.IS_NOT_EMPTY,\n ],\n [AttributeFormat.extended]: [\n AttributeConditionFilter.CONTAINS,\n AttributeConditionFilter.NOT_CONTAINS,\n AttributeConditionFilter.EQUAL,\n AttributeConditionFilter.NOT_EQUAL,\n AttributeConditionFilter.BEGIN_WITH,\n AttributeConditionFilter.END_WITH,\n AttributeConditionFilter.IS_EMPTY,\n AttributeConditionFilter.IS_NOT_EMPTY,\n ],\n [AttributeFormat.encrypted]: [AttributeConditionFilter.IS_EMPTY, AttributeConditionFilter.IS_NOT_EMPTY],\n [AttributeFormat.numeric]: [\n AttributeConditionFilter.EQUAL,\n AttributeConditionFilter.NOT_EQUAL,\n AttributeConditionFilter.GREATER_THAN,\n AttributeConditionFilter.LESS_THAN,\n AttributeConditionFilter.IS_EMPTY,\n AttributeConditionFilter.IS_NOT_EMPTY,\n ],\n [AttributeFormat.boolean]: [AttributeConditionFilter.EQUAL, AttributeConditionFilter.NOT_EQUAL],\n [AttributeFormat.date]: [\n AttributeConditionFilter.EQUAL,\n AttributeConditionFilter.NOT_EQUAL,\n AttributeConditionFilter.GREATER_THAN,\n AttributeConditionFilter.LESS_THAN,\n AttributeConditionFilter.IS_EMPTY,\n AttributeConditionFilter.IS_NOT_EMPTY,\n AttributeConditionFilter.TODAY,\n AttributeConditionFilter.TOMORROW,\n AttributeConditionFilter.YESTERDAY,\n AttributeConditionFilter.LAST_MONTH,\n AttributeConditionFilter.NEXT_MONTH,\n AttributeConditionFilter.BETWEEN,\n ],\n [AttributeFormat.date_range]: [\n AttributeConditionFilter.CONTAINS,\n AttributeConditionFilter.START_ON,\n AttributeConditionFilter.START_AFTER,\n AttributeConditionFilter.START_BEFORE,\n AttributeConditionFilter.END_ON,\n AttributeConditionFilter.END_AFTER,\n AttributeConditionFilter.END_BEFORE,\n AttributeConditionFilter.IS_EMPTY,\n AttributeConditionFilter.IS_NOT_EMPTY,\n ],\n [AttributeFormat.color]: [\n AttributeConditionFilter.CONTAINS,\n AttributeConditionFilter.NOT_CONTAINS,\n AttributeConditionFilter.EQUAL,\n AttributeConditionFilter.NOT_EQUAL,\n AttributeConditionFilter.IS_EMPTY,\n AttributeConditionFilter.IS_NOT_EMPTY,\n ],\n [AttributeFormat.rich_text]: [\n AttributeConditionFilter.CONTAINS,\n AttributeConditionFilter.NOT_CONTAINS,\n AttributeConditionFilter.IS_EMPTY,\n AttributeConditionFilter.IS_NOT_EMPTY,\n ],\n};\n\nexport function getAttributeConditionOptions(t: TFunction): Array<IFilterConditionOption<AttributeConditionType>> {\n return [\n {text: t('filters.contains'), value: AttributeConditionFilter.CONTAINS},\n {text: t('filters.not-contains'), value: AttributeConditionFilter.NOT_CONTAINS},\n {text: t('filters.equal'), value: AttributeConditionFilter.EQUAL},\n {text: t('filters.not-equal'), value: AttributeConditionFilter.NOT_EQUAL},\n {text: t('filters.begin-with'), value: AttributeConditionFilter.BEGIN_WITH},\n {text: t('filters.end-with'), value: AttributeConditionFilter.END_WITH},\n {\n text: t('filters.less-than'),\n textByFormat: {[AttributeFormat.date]: t('filters.before')},\n value: AttributeConditionFilter.LESS_THAN,\n },\n {\n text: t('filters.greater-than'),\n textByFormat: {[AttributeFormat.date]: t('filters.after')},\n value: AttributeConditionFilter.GREATER_THAN,\n },\n {text: t('filters.today'), value: AttributeConditionFilter.TODAY},\n {text: t('filters.tomorrow'), value: AttributeConditionFilter.TOMORROW},\n {text: t('filters.yesterday'), value: AttributeConditionFilter.YESTERDAY},\n {text: t('filters.last-month'), value: AttributeConditionFilter.LAST_MONTH},\n {text: t('filters.next-month'), value: AttributeConditionFilter.NEXT_MONTH},\n {text: t('filters.between'), value: AttributeConditionFilter.BETWEEN},\n {text: t('filters.start-on'), value: AttributeConditionFilter.START_ON},\n {text: t('filters.start-after'), value: AttributeConditionFilter.START_AFTER},\n {text: t('filters.start-before'), value: AttributeConditionFilter.START_BEFORE},\n {text: t('filters.end-on'), value: AttributeConditionFilter.END_ON},\n {text: t('filters.end-after'), value: AttributeConditionFilter.END_AFTER},\n {text: t('filters.end-before'), value: AttributeConditionFilter.END_BEFORE},\n {text: t('filters.is-empty'), value: AttributeConditionFilter.IS_EMPTY},\n {text: t('filters.is-not-empty'), value: AttributeConditionFilter.IS_NOT_EMPTY},\n {text: t('filters.values-count-equal'), value: AttributeConditionFilter.VALUES_COUNT_EQUAL},\n {text: t('filters.values-count-greater-than'), value: AttributeConditionFilter.VALUES_COUNT_GREATER_THAN},\n {text: t('filters.values-count-lower-than'), value: AttributeConditionFilter.VALUES_COUNT_LOWER_THAN},\n {text: t('filters.through'), value: AttributeConditionFilter.THROUGH},\n ];\n}\n\nexport function getTreeConditionOptions(t: TFunction): Array<IFilterConditionOption<TreeConditionFilter>> {\n return [\n {text: t('filters.classified-in'), value: TreeConditionFilter.CLASSIFIED_IN},\n {text: t('filters.not-classified-in'), value: TreeConditionFilter.NOT_CLASSIFIED_IN},\n ];\n}\n\nexport function getOperatorOptions(t: TFunction): Array<IFilterConditionOption<OperatorFilter>> {\n return [\n {text: t('filters.and'), value: OperatorFilter.AND},\n {text: t('filters.or'), value: OperatorFilter.OR},\n ];\n}\n\nexport const getConditionOptionsByType = (\n filter: IFilter,\n showThroughCondition: boolean,\n t: TFunction,\n): Array<IFilterConditionOption<AttributeConditionType>> => {\n const _isValuesCountCondition = (condition: AttributeConditionType): boolean =>\n [\n AttributeConditionFilter.VALUES_COUNT_EQUAL,\n AttributeConditionFilter.VALUES_COUNT_GREATER_THAN,\n AttributeConditionFilter.VALUES_COUNT_LOWER_THAN,\n ].includes(condition as RecordFilterCondition);\n\n const attributeConditionOptions = getAttributeConditionOptions(t);\n\n const conditionOptionsByType = attributeConditionOptions.filter(conditionOption => {\n // \"Through\" condition\n if (conditionOption.value === AttributeConditionFilter.THROUGH && showThroughCondition) {\n return true;\n }\n\n // Filter on library (applied to tree attribute only) => show condition for text attribute\n if (\n filter.type === FilterType.LIBRARY &&\n allowedConditionByFormat[AttributeFormat.text].includes(conditionOption.value)\n ) {\n return true;\n }\n\n // Regular attribute filter => show condition based on format + values count if multiple values is allowed\n if (filter.type === FilterType.ATTRIBUTE) {\n const attributeFilter = filter as IFilterAttribute;\n if (\n ((filter as IFilterAttribute).attribute?.format &&\n allowedConditionByFormat[attributeFilter.attribute.format]?.includes(conditionOption.value)) ||\n (attributeFilter.attribute.isMultiple && _isValuesCountCondition(conditionOption.value))\n ) {\n return true;\n }\n }\n\n return false;\n });\n\n return conditionOptionsByType;\n};\n"]}
1
+ {"version":3,"file":"FiltersOptions.js","sourceRoot":"","sources":["../../../../src/components/LibraryItemsList/FiltersPanel/FiltersOptions.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type TFunction} from 'i18next';\nimport {\n AttributeConditionFilter,\n type AttributeConditionType,\n FilterType,\n type IFilter,\n type IFilterAttribute,\n OperatorFilter,\n TreeConditionFilter,\n} from '_ui/types/search';\nimport {AttributeFormat, type RecordFilterCondition} from '_ui/_gqlTypes';\n\nexport interface IFilterConditionOption<T> {\n text: string;\n value: T;\n textByFormat?: {[key in AttributeFormat]?: string};\n}\n\nconst allowedConditionByFormat: {[format in AttributeFormat]: AttributeConditionType[]} = {\n [AttributeFormat.text]: [\n AttributeConditionFilter.CONTAINS,\n AttributeConditionFilter.NOT_CONTAINS,\n AttributeConditionFilter.EQUAL,\n AttributeConditionFilter.NOT_EQUAL,\n AttributeConditionFilter.BEGIN_WITH,\n AttributeConditionFilter.END_WITH,\n AttributeConditionFilter.IS_EMPTY,\n AttributeConditionFilter.IS_NOT_EMPTY,\n ],\n [AttributeFormat.extended]: [\n AttributeConditionFilter.CONTAINS,\n AttributeConditionFilter.NOT_CONTAINS,\n AttributeConditionFilter.EQUAL,\n AttributeConditionFilter.NOT_EQUAL,\n AttributeConditionFilter.BEGIN_WITH,\n AttributeConditionFilter.END_WITH,\n AttributeConditionFilter.IS_EMPTY,\n AttributeConditionFilter.IS_NOT_EMPTY,\n ],\n [AttributeFormat.encrypted]: [AttributeConditionFilter.IS_EMPTY, AttributeConditionFilter.IS_NOT_EMPTY],\n [AttributeFormat.numeric]: [\n AttributeConditionFilter.EQUAL,\n AttributeConditionFilter.NOT_EQUAL,\n AttributeConditionFilter.GREATER_THAN,\n AttributeConditionFilter.LESS_THAN,\n AttributeConditionFilter.IS_EMPTY,\n AttributeConditionFilter.IS_NOT_EMPTY,\n ],\n [AttributeFormat.boolean]: [AttributeConditionFilter.EQUAL, AttributeConditionFilter.NOT_EQUAL],\n [AttributeFormat.date]: [\n AttributeConditionFilter.EQUAL,\n AttributeConditionFilter.NOT_EQUAL,\n AttributeConditionFilter.GREATER_THAN,\n AttributeConditionFilter.LESS_THAN,\n AttributeConditionFilter.IS_EMPTY,\n AttributeConditionFilter.IS_NOT_EMPTY,\n AttributeConditionFilter.TODAY,\n AttributeConditionFilter.TOMORROW,\n AttributeConditionFilter.YESTERDAY,\n AttributeConditionFilter.LAST_MONTH,\n AttributeConditionFilter.NEXT_MONTH,\n AttributeConditionFilter.BETWEEN,\n ],\n [AttributeFormat.date_range]: [\n AttributeConditionFilter.CONTAINS,\n AttributeConditionFilter.START_ON,\n AttributeConditionFilter.START_AFTER,\n AttributeConditionFilter.START_BEFORE,\n AttributeConditionFilter.END_ON,\n AttributeConditionFilter.END_AFTER,\n AttributeConditionFilter.END_BEFORE,\n AttributeConditionFilter.IS_EMPTY,\n AttributeConditionFilter.IS_NOT_EMPTY,\n ],\n [AttributeFormat.color]: [],\n [AttributeFormat.rich_text]: [\n AttributeConditionFilter.CONTAINS,\n AttributeConditionFilter.NOT_CONTAINS,\n AttributeConditionFilter.IS_EMPTY,\n AttributeConditionFilter.IS_NOT_EMPTY,\n ],\n};\n\nexport function getAttributeConditionOptions(t: TFunction): Array<IFilterConditionOption<AttributeConditionType>> {\n return [\n {text: t('filters.contains'), value: AttributeConditionFilter.CONTAINS},\n {text: t('filters.not-contains'), value: AttributeConditionFilter.NOT_CONTAINS},\n {text: t('filters.equal'), value: AttributeConditionFilter.EQUAL},\n {text: t('filters.not-equal'), value: AttributeConditionFilter.NOT_EQUAL},\n {text: t('filters.begin-with'), value: AttributeConditionFilter.BEGIN_WITH},\n {text: t('filters.end-with'), value: AttributeConditionFilter.END_WITH},\n {\n text: t('filters.less-than'),\n textByFormat: {[AttributeFormat.date]: t('filters.before')},\n value: AttributeConditionFilter.LESS_THAN,\n },\n {\n text: t('filters.greater-than'),\n textByFormat: {[AttributeFormat.date]: t('filters.after')},\n value: AttributeConditionFilter.GREATER_THAN,\n },\n {text: t('filters.today'), value: AttributeConditionFilter.TODAY},\n {text: t('filters.tomorrow'), value: AttributeConditionFilter.TOMORROW},\n {text: t('filters.yesterday'), value: AttributeConditionFilter.YESTERDAY},\n {text: t('filters.last-month'), value: AttributeConditionFilter.LAST_MONTH},\n {text: t('filters.next-month'), value: AttributeConditionFilter.NEXT_MONTH},\n {text: t('filters.between'), value: AttributeConditionFilter.BETWEEN},\n {text: t('filters.start-on'), value: AttributeConditionFilter.START_ON},\n {text: t('filters.start-after'), value: AttributeConditionFilter.START_AFTER},\n {text: t('filters.start-before'), value: AttributeConditionFilter.START_BEFORE},\n {text: t('filters.end-on'), value: AttributeConditionFilter.END_ON},\n {text: t('filters.end-after'), value: AttributeConditionFilter.END_AFTER},\n {text: t('filters.end-before'), value: AttributeConditionFilter.END_BEFORE},\n {text: t('filters.is-empty'), value: AttributeConditionFilter.IS_EMPTY},\n {text: t('filters.is-not-empty'), value: AttributeConditionFilter.IS_NOT_EMPTY},\n {text: t('filters.values-count-equal'), value: AttributeConditionFilter.VALUES_COUNT_EQUAL},\n {text: t('filters.values-count-greater-than'), value: AttributeConditionFilter.VALUES_COUNT_GREATER_THAN},\n {text: t('filters.values-count-lower-than'), value: AttributeConditionFilter.VALUES_COUNT_LOWER_THAN},\n {text: t('filters.through'), value: AttributeConditionFilter.THROUGH},\n ];\n}\n\nexport function getTreeConditionOptions(t: TFunction): Array<IFilterConditionOption<TreeConditionFilter>> {\n return [\n {text: t('filters.classified-in'), value: TreeConditionFilter.CLASSIFIED_IN},\n {text: t('filters.not-classified-in'), value: TreeConditionFilter.NOT_CLASSIFIED_IN},\n ];\n}\n\nexport function getOperatorOptions(t: TFunction): Array<IFilterConditionOption<OperatorFilter>> {\n return [\n {text: t('filters.and'), value: OperatorFilter.AND},\n {text: t('filters.or'), value: OperatorFilter.OR},\n ];\n}\n\nexport const getConditionOptionsByType = (\n filter: IFilter,\n showThroughCondition: boolean,\n t: TFunction,\n): Array<IFilterConditionOption<AttributeConditionType>> => {\n const _isValuesCountCondition = (condition: AttributeConditionType): boolean =>\n [\n AttributeConditionFilter.VALUES_COUNT_EQUAL,\n AttributeConditionFilter.VALUES_COUNT_GREATER_THAN,\n AttributeConditionFilter.VALUES_COUNT_LOWER_THAN,\n ].includes(condition as RecordFilterCondition);\n\n const attributeConditionOptions = getAttributeConditionOptions(t);\n\n const conditionOptionsByType = attributeConditionOptions.filter(conditionOption => {\n // \"Through\" condition\n if (conditionOption.value === AttributeConditionFilter.THROUGH && showThroughCondition) {\n return true;\n }\n\n // Filter on library (applied to tree attribute only) => show condition for text attribute\n if (\n filter.type === FilterType.LIBRARY &&\n allowedConditionByFormat[AttributeFormat.text].includes(conditionOption.value)\n ) {\n return true;\n }\n\n // Regular attribute filter => show condition based on format + values count if multiple values is allowed\n if (filter.type === FilterType.ATTRIBUTE) {\n const attributeFilter = filter as IFilterAttribute;\n if (\n ((filter as IFilterAttribute).attribute?.format &&\n allowedConditionByFormat[attributeFilter.attribute.format]?.includes(conditionOption.value)) ||\n (attributeFilter.attribute.isMultiple && _isValuesCountCondition(conditionOption.value))\n ) {\n return true;\n }\n }\n\n return false;\n });\n\n return conditionOptionsByType;\n};\n"]}
@@ -25,7 +25,7 @@ import MenuItemListSelected from '../MenuItemListSelected';
25
25
  import Sidebar from '../Sidebar';
26
26
  import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
27
27
  import { KitNotification } from 'aristid-ds';
28
- import { SUCCESS_NOTIFICATION_DURATION_SECONDS } from '../../../constants';
28
+ import { SUCCESS_NOTIFICATION_DURATION } from '../../../constants';
29
29
  const MenuWrapper = styled.div `
30
30
  border-bottom: 1px solid rgb(235, 237, 240);
31
31
  padding: 0 1rem;
@@ -189,7 +189,8 @@ const LibraryItemsListContent = ({ selectionMode, library, defaultView, showTran
189
189
  KitNotification.success({
190
190
  message: t('items_list.created_in_success.message'),
191
191
  description: '',
192
- duration: SUCCESS_NOTIFICATION_DURATION_SECONDS,
192
+ duration: SUCCESS_NOTIFICATION_DURATION,
193
+ closable: true,
193
194
  });
194
195
  };
195
196
  // If some elements are selected and the selection type is search, show the selection Menu