@leav/ui 1.6.0 → 1.7.0-67b86ab9

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 (275) hide show
  1. package/README.md +13 -12
  2. package/dist/__mocks__/react-i18next.d.ts +1 -1
  3. package/dist/_gqlTypes/index.d.ts +1006 -686
  4. package/dist/_gqlTypes/index.js +167 -43
  5. package/dist/_gqlTypes/index.js.map +1 -1
  6. package/dist/_queries/attributes/attributeDetailsFragment.js +5 -0
  7. package/dist/_queries/attributes/attributeDetailsFragment.js.map +1 -1
  8. package/dist/_queries/trees/treeNodeChildrenQuery.js +2 -0
  9. package/dist/_queries/trees/treeNodeChildrenQuery.js.map +1 -1
  10. package/dist/_queries/views/viewDetailsFragment.js +1 -0
  11. package/dist/_queries/views/viewDetailsFragment.js.map +1 -1
  12. package/dist/components/AttributesSelectionList/SelectedAttributesList/SelectedAttributesList.js +20 -12
  13. package/dist/components/AttributesSelectionList/SelectedAttributesList/SelectedAttributesList.js.map +1 -1
  14. package/dist/components/AttributesSelectionList/reducer/__mocks__/attributesSelectionListStateContext.d.ts +1 -1
  15. package/dist/components/AttributesSelectionList/sharedComponents.d.ts +159 -153
  16. package/dist/components/Explorer/DataView.d.ts +2 -0
  17. package/dist/components/Explorer/DataView.js +6 -3
  18. package/dist/components/Explorer/DataView.js.map +1 -1
  19. package/dist/components/Explorer/Explorer.d.ts +2 -0
  20. package/dist/components/Explorer/Explorer.js +7 -5
  21. package/dist/components/Explorer/Explorer.js.map +1 -1
  22. package/dist/components/Explorer/ExplorerFiltersAndSorts.js +1 -1
  23. package/dist/components/Explorer/ExplorerFiltersAndSorts.js.map +1 -1
  24. package/dist/components/Explorer/TableCell.js +6 -7
  25. package/dist/components/Explorer/TableCell.js.map +1 -1
  26. package/dist/components/Explorer/TableNameCell.js +3 -2
  27. package/dist/components/Explorer/TableNameCell.js.map +1 -1
  28. package/dist/components/Explorer/_queries/useExplorerData.d.ts +7 -7
  29. package/dist/components/Explorer/_queries/useExplorerData.js +19 -7
  30. package/dist/components/Explorer/_queries/useExplorerData.js.map +1 -1
  31. package/dist/components/Explorer/actions-item/useEditStatusItemAction.js +3 -2
  32. package/dist/components/Explorer/actions-item/useEditStatusItemAction.js.map +1 -1
  33. package/dist/components/Explorer/actions-item/useReplaceItemAction.d.ts +2 -1
  34. package/dist/components/Explorer/actions-item/useReplaceItemAction.js +5 -4
  35. package/dist/components/Explorer/actions-item/useReplaceItemAction.js.map +1 -1
  36. package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValueLine.d.ts +2 -4
  37. package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValueLine.js +18 -16
  38. package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValueLine.js.map +1 -1
  39. package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValuesMapping.js +2 -2
  40. package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValuesMapping.js.map +1 -1
  41. package/dist/components/Explorer/actions-mass/edit-attribute/useListEditableAttributeHook.js +9 -1
  42. package/dist/components/Explorer/actions-mass/edit-attribute/useListEditableAttributeHook.js.map +1 -1
  43. package/dist/components/Explorer/actions-mass/edit-attribute/useListTreeAttributeValuesHook.d.ts +10 -3
  44. package/dist/components/Explorer/actions-mass/edit-attribute/useListTreeAttributeValuesHook.js +16 -6
  45. package/dist/components/Explorer/actions-mass/edit-attribute/useListTreeAttributeValuesHook.js.map +1 -1
  46. package/dist/components/Explorer/actions-mass/export/ExportProfileSelectionModal.d.ts +10 -0
  47. package/dist/components/Explorer/actions-mass/export/ExportProfileSelectionModal.js +46 -0
  48. package/dist/components/Explorer/actions-mass/export/ExportProfileSelectionModal.js.map +1 -0
  49. package/dist/components/Explorer/actions-mass/export/content/NoProfiles.d.ts +1 -0
  50. package/dist/components/Explorer/actions-mass/export/content/NoProfiles.js +17 -0
  51. package/dist/components/Explorer/actions-mass/export/content/NoProfiles.js.map +1 -0
  52. package/dist/components/Explorer/actions-mass/export/content/ProfilesSelection.d.ts +8 -0
  53. package/dist/components/Explorer/actions-mass/export/content/ProfilesSelection.js +49 -0
  54. package/dist/components/Explorer/actions-mass/export/content/ProfilesSelection.js.map +1 -0
  55. package/dist/components/Explorer/actions-mass/export/useGetLibraryExportProfiles.d.ts +27 -0
  56. package/dist/components/Explorer/actions-mass/export/useGetLibraryExportProfiles.js +48 -0
  57. package/dist/components/Explorer/actions-mass/export/useGetLibraryExportProfiles.js.map +1 -0
  58. package/dist/components/Explorer/actions-mass/useDeactivateMassAction.js +3 -2
  59. package/dist/components/Explorer/actions-mass/useDeactivateMassAction.js.map +1 -1
  60. package/dist/components/Explorer/actions-mass/useDeleteLinkValues.js +3 -2
  61. package/dist/components/Explorer/actions-mass/useDeleteLinkValues.js.map +1 -1
  62. package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js +3 -2
  63. package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js.map +1 -1
  64. package/dist/components/Explorer/actions-mass/useExportMassAction.d.ts +7 -4
  65. package/dist/components/Explorer/actions-mass/useExportMassAction.js +80 -73
  66. package/dist/components/Explorer/actions-mass/useExportMassAction.js.map +1 -1
  67. package/dist/components/Explorer/actions-mass/useMassActions.js +3 -2
  68. package/dist/components/Explorer/actions-mass/useMassActions.js.map +1 -1
  69. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js +3 -2
  70. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js.map +1 -1
  71. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.d.ts +2 -1
  72. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.js +5 -4
  73. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.js.map +1 -1
  74. package/dist/components/Explorer/link-item/LinkModal.d.ts +1 -0
  75. package/dist/components/Explorer/link-item/LinkModal.js +2 -2
  76. package/dist/components/Explorer/link-item/LinkModal.js.map +1 -1
  77. package/dist/components/Explorer/list-saved-views/SavedViews.js +4 -3
  78. package/dist/components/Explorer/list-saved-views/SavedViews.js.map +1 -1
  79. package/dist/components/Explorer/manage-view-settings/_shared/ColumnItem.js +5 -8
  80. package/dist/components/Explorer/manage-view-settings/_shared/ColumnItem.js.map +1 -1
  81. package/dist/components/Explorer/manage-view-settings/configure-display/attributes/SelectVisibleAttributes.js +3 -2
  82. package/dist/components/Explorer/manage-view-settings/configure-display/attributes/SelectVisibleAttributes.js.map +1 -1
  83. package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js +7 -6
  84. package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js.map +1 -1
  85. package/dist/components/Explorer/manage-view-settings/filter-items/FilterListItem.js +3 -2
  86. package/dist/components/Explorer/manage-view-settings/filter-items/FilterListItem.js.map +1 -1
  87. package/dist/components/Explorer/manage-view-settings/open-view-settings/useOpenViewSettings.js +4 -3
  88. package/dist/components/Explorer/manage-view-settings/open-view-settings/useOpenViewSettings.js.map +1 -1
  89. package/dist/components/Explorer/manage-view-settings/router-menu/SettingItem.js +3 -2
  90. package/dist/components/Explorer/manage-view-settings/router-menu/SettingItem.js.map +1 -1
  91. package/dist/components/Explorer/manage-view-settings/router-menu/SettingsPanel.js +3 -2
  92. package/dist/components/Explorer/manage-view-settings/router-menu/SettingsPanel.js.map +1 -1
  93. package/dist/components/Explorer/manage-view-settings/save-view/LabelViewFormModal.js +3 -2
  94. package/dist/components/Explorer/manage-view-settings/save-view/LabelViewFormModal.js.map +1 -1
  95. package/dist/components/Explorer/manage-view-settings/save-view/prepareViewForRequest.js +3 -0
  96. package/dist/components/Explorer/manage-view-settings/save-view/prepareViewForRequest.js.map +1 -1
  97. package/dist/components/Explorer/manage-view-settings/save-view/useCreateNewView.js +3 -2
  98. package/dist/components/Explorer/manage-view-settings/save-view/useCreateNewView.js.map +1 -1
  99. package/dist/components/Explorer/manage-view-settings/save-view/useDeleteView.js +4 -3
  100. package/dist/components/Explorer/manage-view-settings/save-view/useDeleteView.js.map +1 -1
  101. package/dist/components/Explorer/manage-view-settings/save-view/useEditLabelView.js +3 -2
  102. package/dist/components/Explorer/manage-view-settings/save-view/useEditLabelView.js.map +1 -1
  103. package/dist/components/Explorer/manage-view-settings/save-view/useResetView.js +3 -2
  104. package/dist/components/Explorer/manage-view-settings/save-view/useResetView.js.map +1 -1
  105. package/dist/components/Explorer/manage-view-settings/save-view/useShareView.js +3 -2
  106. package/dist/components/Explorer/manage-view-settings/save-view/useShareView.js.map +1 -1
  107. package/dist/components/Explorer/manage-view-settings/save-view/useUpdateView.js +3 -2
  108. package/dist/components/Explorer/manage-view-settings/save-view/useUpdateView.js.map +1 -1
  109. package/dist/components/Explorer/manage-view-settings/sort-items/SortItems.js +7 -6
  110. package/dist/components/Explorer/manage-view-settings/sort-items/SortItems.js.map +1 -1
  111. package/dist/components/Explorer/manage-view-settings/sort-items/SortListItem.js +3 -2
  112. package/dist/components/Explorer/manage-view-settings/sort-items/SortListItem.js.map +1 -1
  113. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js.map +1 -1
  114. package/dist/components/Explorer/useSearchInput.js +6 -2
  115. package/dist/components/Explorer/useSearchInput.js.map +1 -1
  116. package/dist/components/Filters/FiltersProvider.d.ts +2 -2
  117. package/dist/components/Filters/FiltersProvider.js.map +1 -1
  118. package/dist/components/Filters/_types.d.ts +3 -0
  119. package/dist/components/Filters/_types.js.map +1 -1
  120. package/dist/components/Filters/context/filtersReducer.js +7 -4
  121. package/dist/components/Filters/context/filtersReducer.js.map +1 -1
  122. package/dist/components/Filters/filter-items/CommonFilterItem.d.ts +1 -0
  123. package/dist/components/Filters/filter-items/CommonFilterItem.js +28 -8
  124. package/dist/components/Filters/filter-items/CommonFilterItem.js.map +1 -1
  125. package/dist/components/Filters/filter-items/EmptyValueCheckbox.d.ts +8 -0
  126. package/dist/components/Filters/filter-items/EmptyValueCheckbox.js +16 -0
  127. package/dist/components/Filters/filter-items/EmptyValueCheckbox.js.map +1 -0
  128. package/dist/components/Filters/filter-items/filter-type/BooleanAttributeDropdown.js +23 -9
  129. package/dist/components/Filters/filter-items/filter-type/BooleanAttributeDropdown.js.map +1 -1
  130. package/dist/components/Filters/filter-items/filter-type/ColorAttributeDropDown.js +9 -8
  131. package/dist/components/Filters/filter-items/filter-type/ColorAttributeDropDown.js.map +1 -1
  132. package/dist/components/Filters/filter-items/filter-type/FilterDropDown.js +4 -3
  133. package/dist/components/Filters/filter-items/filter-type/FilterDropDown.js.map +1 -1
  134. package/dist/components/Filters/filter-items/filter-type/FilterDropdownContent.js +1 -1
  135. package/dist/components/Filters/filter-items/filter-type/FilterDropdownContent.js.map +1 -1
  136. package/dist/components/Filters/filter-items/filter-type/FilterValueListDropDown.d.ts +0 -1
  137. package/dist/components/Filters/filter-items/filter-type/FilterValueListDropDown.js +17 -23
  138. package/dist/components/Filters/filter-items/filter-type/FilterValueListDropDown.js.map +1 -1
  139. package/dist/components/Filters/filter-items/filter-type/TreeAttributeDropDown.js +10 -12
  140. package/dist/components/Filters/filter-items/filter-type/TreeAttributeDropDown.js.map +1 -1
  141. package/dist/components/Filters/filter-items/filter-type/useConditionOptionsByType.js +3 -13
  142. package/dist/components/Filters/filter-items/filter-type/useConditionOptionsByType.js.map +1 -1
  143. package/dist/components/Filters/index.d.ts +1 -0
  144. package/dist/components/Filters/index.js +1 -0
  145. package/dist/components/Filters/index.js.map +1 -1
  146. package/dist/components/Filters/prepareFiltersForRequest.js +36 -3
  147. package/dist/components/Filters/prepareFiltersForRequest.js.map +1 -1
  148. package/dist/components/Filters/useFilters.d.ts +5 -0
  149. package/dist/components/Filters/useTransformFilters.js +4 -0
  150. package/dist/components/Filters/useTransformFilters.js.map +1 -1
  151. package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.d.ts +1 -3
  152. package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.js +6 -2
  153. package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.js.map +1 -1
  154. package/dist/components/LibraryItemsList/FiltersPanel/FiltersOptions.js +1 -8
  155. package/dist/components/LibraryItemsList/FiltersPanel/FiltersOptions.js.map +1 -1
  156. package/dist/components/LibraryItemsList/FiltersPanel/FiltersPanel.js +15 -17
  157. package/dist/components/LibraryItemsList/FiltersPanel/FiltersPanel.js.map +1 -1
  158. package/dist/components/LibraryItemsList/LibraryItemsListTable/ChooseTableColumns/ChooseTableColumns.js +0 -6
  159. package/dist/components/LibraryItemsList/LibraryItemsListTable/ChooseTableColumns/ChooseTableColumns.js.map +1 -1
  160. package/dist/components/LibraryItemsList/MenuView/MenuView.js +4 -4
  161. package/dist/components/LibraryItemsList/MenuView/MenuView.js.map +1 -1
  162. package/dist/components/LibraryItemsList/ViewPanel/View/View.d.ts +1 -3
  163. package/dist/components/LibraryItemsList/ViewPanel/View/View.js +9 -4
  164. package/dist/components/LibraryItemsList/ViewPanel/View/View.js.map +1 -1
  165. package/dist/components/LibraryItemsList/ViewPanel/ViewPanel.js +36 -14
  166. package/dist/components/LibraryItemsList/ViewPanel/ViewPanel.js.map +1 -1
  167. package/dist/components/Notifications/hooks/useNotificationSubscription.js +3 -2
  168. package/dist/components/Notifications/hooks/useNotificationSubscription.js.map +1 -1
  169. package/dist/components/RecordEdition/EditRecord/EditRecord.d.ts +1 -0
  170. package/dist/components/RecordEdition/EditRecord/EditRecord.js +3 -3
  171. package/dist/components/RecordEdition/EditRecord/EditRecord.js.map +1 -1
  172. package/dist/components/RecordEdition/EditRecordContent/antdUtils.js.map +1 -1
  173. package/dist/components/RecordEdition/EditRecordContent/hooks/__mocks__/useDeleteValueMutation.d.ts +1 -1
  174. package/dist/components/RecordEdition/EditRecordContent/hooks/__mocks__/useSaveValueMutation.d.ts +1 -1
  175. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.js +5 -20
  176. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.js.map +1 -1
  177. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.d.ts +1 -11
  178. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js +8 -95
  179. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js.map +1 -1
  180. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/_types.d.ts +8 -0
  181. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/_types.js +2 -0
  182. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/_types.js.map +1 -0
  183. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/LinkFieldExplorer.d.ts +6 -0
  184. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/LinkFieldExplorer.js +77 -0
  185. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/LinkFieldExplorer.js.map +1 -0
  186. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/{link-record → explorer/link-record}/useExplorerLinkRecords.d.ts +5 -7
  187. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/{link-record → explorer/link-record}/useExplorerLinkRecords.js +3 -10
  188. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/link-record/useExplorerLinkRecords.js.map +1 -0
  189. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/{link-record → explorer/link-record}/useLinkRecords.d.ts +5 -6
  190. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/link-record/useLinkRecords.js +98 -0
  191. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/link-record/useLinkRecords.js.map +1 -0
  192. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/{ExplorerWrapper.d.ts → InputExtraAlignLeft.d.ts} +54 -52
  193. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/{link-record/ActionButton.js → shared/InputExtraAlignLeft.js} +4 -4
  194. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/InputExtraAlignLeft.js.map +1 -0
  195. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/InputWrapper.d.ts +3 -0
  196. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/InputWrapper.js +31 -0
  197. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/InputWrapper.js.map +1 -0
  198. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/Wrapper.d.ts +3 -0
  199. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/Wrapper.js +8 -0
  200. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/Wrapper.js.map +1 -0
  201. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/LinkFieldTags.d.ts +3 -0
  202. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/LinkFieldTags.js +57 -0
  203. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/LinkFieldTags.js.map +1 -0
  204. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/link-record/useLinkRecord.d.ts +16 -0
  205. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/link-record/useLinkRecord.js +85 -0
  206. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/link-record/useLinkRecord.js.map +1 -0
  207. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/unlink-record/useUnlinkRecord.d.ts +19 -0
  208. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/unlink-record/useUnlinkRecord.js +43 -0
  209. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/unlink-record/useUnlinkRecord.js.map +1 -0
  210. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/unlink-all-records/useUnlinkAllRecords.d.ts +16 -0
  211. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/unlink-all-records/useUnlinkAllRecords.js +27 -0
  212. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/unlink-all-records/useUnlinkAllRecords.js.map +1 -0
  213. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js +4 -3
  214. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js.map +1 -1
  215. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js +9 -2
  216. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js.map +1 -1
  217. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeFieldWrapper.d.ts +53 -51
  218. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.js +3 -2
  219. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.js.map +1 -1
  220. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.d.ts +2 -1
  221. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js +4 -7
  222. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js.map +1 -1
  223. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.d.ts +3 -2
  224. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.js +2 -2
  225. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.js.map +1 -1
  226. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.js +3 -2
  227. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.js.map +1 -1
  228. package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.d.ts +1 -0
  229. package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.js +2 -2
  230. package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.js.map +1 -1
  231. package/dist/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordInformations/RecordInformations.js +3 -2
  232. package/dist/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordInformations/RecordInformations.js.map +1 -1
  233. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js +4 -3
  234. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js.map +1 -1
  235. package/dist/components/RecordEdition/EditRecordSidebar/ValuesVersions/ValuesVersions.js +3 -2
  236. package/dist/components/RecordEdition/EditRecordSidebar/ValuesVersions/ValuesVersions.js.map +1 -1
  237. package/dist/components/RecordEdition/hooks/useGetSubmitButtons.js +2 -2
  238. package/dist/components/RecordEdition/hooks/useGetSubmitButtons.js.map +1 -1
  239. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.d.ts +1 -0
  240. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js +7 -7
  241. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js.map +1 -1
  242. package/dist/components/SelectTreeNode/SelectTreeNode.d.ts +2 -1
  243. package/dist/components/SelectTreeNode/SelectTreeNode.js +3 -3
  244. package/dist/components/SelectTreeNode/SelectTreeNode.js.map +1 -1
  245. package/dist/components/SelectTreeNode/SelectTreeNodeContent.d.ts +2 -1
  246. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js +6 -2
  247. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js.map +1 -1
  248. package/dist/components/SelectTreeNode/TreeNodeTitle.js +3 -2
  249. package/dist/components/SelectTreeNode/TreeNodeTitle.js.map +1 -1
  250. package/dist/constants.d.ts +1 -0
  251. package/dist/constants.js +1 -0
  252. package/dist/constants.js.map +1 -1
  253. package/dist/hooks/useIFrameMessenger/messageHandlers.d.ts +3 -1
  254. package/dist/hooks/useIFrameMessenger/messageHandlers.js +16 -0
  255. package/dist/hooks/useIFrameMessenger/messageHandlers.js.map +1 -1
  256. package/dist/hooks/useIFrameMessenger/schema.d.ts +6 -3
  257. package/dist/hooks/useIFrameMessenger/schema.js +2 -1
  258. package/dist/hooks/useIFrameMessenger/schema.js.map +1 -1
  259. package/dist/hooks/useIFrameMessenger/types.d.ts +32 -2
  260. package/dist/hooks/useIFrameMessenger/types.js.map +1 -1
  261. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.d.ts +2 -0
  262. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js +16 -2
  263. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js.map +1 -1
  264. package/dist/hooks/useIFrameMessengerClient/iFrameMessengerClientContext.d.ts +2 -0
  265. package/dist/hooks/useIFrameMessengerClient/useIFrameMessengerClient.d.ts +2 -0
  266. package/dist/locales/en/shared.json +18 -3
  267. package/dist/locales/fr/shared.json +18 -3
  268. package/package.json +40 -42
  269. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record/ActionButton.d.ts +0 -3
  270. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record/ActionButton.js.map +0 -1
  271. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record/useExplorerLinkRecords.js.map +0 -1
  272. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record/useLinkRecords.js +0 -100
  273. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record/useLinkRecords.js.map +0 -1
  274. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/ExplorerWrapper.js +0 -13
  275. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/ExplorerWrapper.js.map +0 -1
@@ -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"]}
@@ -6,7 +6,8 @@ import { DownOutlined } from '@ant-design/icons';
6
6
  import { faAngleLeft } from '@fortawesome/free-solid-svg-icons';
7
7
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
8
8
  import { Button, Dropdown, Space } from 'antd';
9
- import { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd';
9
+ import { DndContext, closestCenter } from '@dnd-kit/core';
10
+ import { SortableContext, verticalListSortingStrategy, arrayMove } from '@dnd-kit/sortable';
10
11
  import styled from 'styled-components';
11
12
  import { themeVars } from '../../../antdTheme';
12
13
  import useSearchReducer from '../../../components/LibraryItemsList/hooks/useSearchReducer';
@@ -71,24 +72,21 @@ function FiltersPanel() {
71
72
  const _handleHide = () => {
72
73
  searchDispatch({ type: SearchActionTypes.SET_SIDEBAR, visible: false, sidebarType: searchState.sideBar.type });
73
74
  };
74
- const onDragEnd = (result, provided) => {
75
- if (!result.destination) {
75
+ const handleDragEnd = event => {
76
+ const { active, over } = event;
77
+ if (!over || active.id === over.id) {
76
78
  return;
77
79
  }
78
- const newFilter = searchState.filters
79
- .map(filter => ({
80
+ const oldIndex = searchState.filters.findIndex(f => f.key === active.id);
81
+ const newIndex = searchState.filters.findIndex(f => f.key === over.id);
82
+ if (oldIndex === -1 || newIndex === -1) {
83
+ return;
84
+ }
85
+ const filters = arrayMove(searchState.filters, oldIndex, newIndex).map((filter, idx) => ({
80
86
  ...filter,
81
- index: result.source.index === filter.index
82
- ? result.destination.index
83
- : result.destination.index === filter.index
84
- ? result.source.index
85
- : filter.index,
86
- }))
87
- .sort((a, b) => a.index - b.index);
88
- searchDispatch({
89
- type: SearchActionTypes.SET_FILTERS,
90
- filters: newFilter,
91
- });
87
+ index: idx,
88
+ }));
89
+ searchDispatch({ type: SearchActionTypes.SET_FILTERS, filters });
92
90
  };
93
91
  const filtersSorted = searchState.filters.sort((a, b) => a.index - b.index);
94
92
  const _handleApplyFilters = () => {
@@ -117,7 +115,7 @@ function FiltersPanel() {
117
115
  label: t('filters.remove-filters'),
118
116
  },
119
117
  ],
120
- }, children: _jsxs(Button, { type: "text", style: { display: 'inline-flex' }, children: [t('filters.filters'), _jsx(DownOutlined, { style: { marginTop: '5px', marginLeft: '-3px' } })] }) }), _jsxs(Space, { size: "small", children: [_jsx(Button, { disabled: !searchState.filters.length, onClick: _handleApplyFilters, children: t('filters.apply') }), _jsx(Button, { onClick: _handleHide, icon: _jsx(FontAwesomeIcon, { icon: faAngleLeft }) })] })] }), _jsx(FiltersWrapper, { children: _jsx(DragDropContext, { onDragEnd: onDragEnd, children: _jsx(Droppable, { droppableId: "droppable", children: providedDroppable => (_jsxs(ListFilters, { ...providedDroppable.droppableProps, ref: providedDroppable.innerRef, children: [filtersSorted.map(filter => (_jsx(Draggable, { draggableId: filter.index.toString(), index: filter.index, children: provided => (_jsx("div", { ref: provided.innerRef, ...provided.draggableProps, children: _jsx(Filter, { filter: filter, handleProps: provided.dragHandleProps }, filter.index) })) }, filter.index))), providedDroppable.placeholder] })) }) }) })] }));
118
+ }, children: _jsxs(Button, { type: "text", style: { display: 'inline-flex' }, children: [t('filters.filters'), _jsx(DownOutlined, { style: { marginTop: '5px', marginLeft: '-3px' } })] }) }), _jsxs(Space, { size: "small", children: [_jsx(Button, { disabled: !searchState.filters.length, onClick: _handleApplyFilters, children: t('filters.apply') }), _jsx(Button, { onClick: _handleHide, icon: _jsx(FontAwesomeIcon, { icon: faAngleLeft }) })] })] }), _jsx(FiltersWrapper, { children: _jsx(DndContext, { collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: _jsx(SortableContext, { items: filtersSorted.map(v => v.key), strategy: verticalListSortingStrategy, children: _jsx(ListFilters, { children: filtersSorted.map(filter => (_jsx(Filter, { filter: filter }, filter.key))) }) }) }) })] }));
121
119
  }
122
120
  export default FiltersPanel;
123
121
  //# sourceMappingURL=FiltersPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FiltersPanel.js","sourceRoot":"","sources":["../../../../src/components/LibraryItemsList/FiltersPanel/FiltersPanel.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 {DownOutlined} from '@ant-design/icons';\nimport {faAngleLeft} from '@fortawesome/free-solid-svg-icons';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {Button, Dropdown, Space} from 'antd';\nimport {DragDropContext, Draggable, Droppable, type DropResult, type ResponderProvided} from 'react-beautiful-dnd';\nimport styled from 'styled-components';\nimport {themeVars} from '_ui/antdTheme';\nimport useSearchReducer from '_ui/components/LibraryItemsList/hooks/useSearchReducer';\nimport {SearchActionTypes} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport Filter from './Filter/Filter';\n\nconst Wrapper = styled.div`\n width: 100%;\n display: flex;\n flex-flow: column nowrap;\n border-right: ${themeVars.borderLightColor} 1px solid;\n overflow-y: auto;\n width: 1000px;\n`;\n\nconst Header = styled.div`\n width: 100%;\n background-color: ${themeVars.headerBg};\n display: grid;\n grid-template-columns: repeat(2, auto);\n justify-content: space-between;\n padding: 0.3rem 0.3rem 0.3rem 1rem;\n font-weight: 700;\n border-bottom: 1px solid ${themeVars.borderLightColor};\n\n & > * {\n :first-of-type {\n display: grid;\n column-gap: 8px;\n grid-template-columns: repeat(3, auto);\n align-items: center;\n justify-items: center;\n }\n\n :last-of-type {\n display: flex;\n align-items: center;\n justify-content: center;\n column-gap: 8px;\n grid-template-columns: repeat(2, auto);\n }\n }\n`;\n\nconst FiltersWrapper = styled.div`\n height: calc(100% - 7rem);\n overflow: auto;\n`;\n\nconst ListFilters = styled.div`\n display: grid;\n`;\n\nfunction FiltersPanel(): JSX.Element {\n const {t} = useSharedTranslation();\n\n const {state: searchState, dispatch: searchDispatch} = useSearchReducer();\n\n const _resetFilters = () => {\n searchDispatch({type: SearchActionTypes.RESET_FILTERS});\n };\n\n const _disableFilters = () => {\n searchDispatch({type: SearchActionTypes.DISABLE_FILTERS});\n };\n\n const _enableFilters = () => {\n searchDispatch({type: SearchActionTypes.ENABLE_FILTERS});\n };\n\n const _handleHide = () => {\n searchDispatch({type: SearchActionTypes.SET_SIDEBAR, visible: false, sidebarType: searchState.sideBar.type});\n };\n\n const onDragEnd = (result: DropResult, provided: ResponderProvided) => {\n if (!result.destination) {\n return;\n }\n\n const newFilter = searchState.filters\n .map(filter => ({\n ...filter,\n index:\n result.source.index === filter.index\n ? result.destination.index\n : result.destination.index === filter.index\n ? result.source.index\n : filter.index,\n }))\n .sort((a, b) => a.index - b.index);\n\n searchDispatch({\n type: SearchActionTypes.SET_FILTERS,\n filters: newFilter,\n });\n };\n\n const filtersSorted = searchState.filters.sort((a, b) => a.index - b.index);\n\n const _handleApplyFilters = () => {\n searchDispatch({type: SearchActionTypes.APPLY_FILTERS});\n };\n\n const allFiltersDisabled = searchState.filters.every(f => f.active === false);\n const allFiltersEnabled = searchState.filters.every(f => f.active === true);\n\n return (\n <Wrapper>\n <Header>\n <Dropdown\n menu={{\n items: [\n {\n key: 'disable',\n disabled: allFiltersDisabled,\n onClick: _disableFilters,\n label: t('filters.disable-filters'),\n },\n {\n key: 'enable',\n disabled: allFiltersEnabled,\n onClick: _enableFilters,\n label: t('filters.enable-filters'),\n },\n {\n key: 'remove',\n disabled: !searchState.filters.length,\n onClick: _resetFilters,\n label: t('filters.remove-filters'),\n },\n ],\n }}\n >\n <Button type=\"text\" style={{display: 'inline-flex'}}>\n {t('filters.filters')}\n <DownOutlined style={{marginTop: '5px', marginLeft: '-3px'}} />\n </Button>\n </Dropdown>\n <Space size=\"small\">\n <Button disabled={!searchState.filters.length} onClick={_handleApplyFilters}>\n {t('filters.apply')}\n </Button>\n <Button onClick={_handleHide} icon={<FontAwesomeIcon icon={faAngleLeft} />} />\n </Space>\n </Header>\n\n <FiltersWrapper>\n <DragDropContext onDragEnd={onDragEnd}>\n <Droppable droppableId=\"droppable\">\n {providedDroppable => (\n <ListFilters {...providedDroppable.droppableProps} ref={providedDroppable.innerRef}>\n {filtersSorted.map(filter => (\n <Draggable\n key={filter.index}\n draggableId={filter.index.toString()}\n index={filter.index}\n >\n {provided => (\n <div ref={provided.innerRef} {...provided.draggableProps}>\n <Filter\n key={filter.index}\n filter={filter}\n handleProps={provided.dragHandleProps}\n />\n </div>\n )}\n </Draggable>\n ))}\n {providedDroppable.placeholder}\n </ListFilters>\n )}\n </Droppable>\n </DragDropContext>\n </FiltersWrapper>\n </Wrapper>\n );\n}\n\nexport default FiltersPanel;\n"]}
1
+ {"version":3,"file":"FiltersPanel.js","sourceRoot":"","sources":["../../../../src/components/LibraryItemsList/FiltersPanel/FiltersPanel.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 {DownOutlined} from '@ant-design/icons';\nimport {faAngleLeft} from '@fortawesome/free-solid-svg-icons';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {Button, Dropdown, Space} from 'antd';\nimport {DndContext, closestCenter} from '@dnd-kit/core';\nimport {SortableContext, verticalListSortingStrategy, arrayMove} from '@dnd-kit/sortable';\nimport styled from 'styled-components';\nimport {themeVars} from '_ui/antdTheme';\nimport useSearchReducer from '_ui/components/LibraryItemsList/hooks/useSearchReducer';\nimport {SearchActionTypes} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport Filter from './Filter/Filter';\n\nconst Wrapper = styled.div`\n width: 100%;\n display: flex;\n flex-flow: column nowrap;\n border-right: ${themeVars.borderLightColor} 1px solid;\n overflow-y: auto;\n width: 1000px;\n`;\n\nconst Header = styled.div`\n width: 100%;\n background-color: ${themeVars.headerBg};\n display: grid;\n grid-template-columns: repeat(2, auto);\n justify-content: space-between;\n padding: 0.3rem 0.3rem 0.3rem 1rem;\n font-weight: 700;\n border-bottom: 1px solid ${themeVars.borderLightColor};\n\n & > * {\n :first-of-type {\n display: grid;\n column-gap: 8px;\n grid-template-columns: repeat(3, auto);\n align-items: center;\n justify-items: center;\n }\n\n :last-of-type {\n display: flex;\n align-items: center;\n justify-content: center;\n column-gap: 8px;\n grid-template-columns: repeat(2, auto);\n }\n }\n`;\n\nconst FiltersWrapper = styled.div`\n height: calc(100% - 7rem);\n overflow: auto;\n`;\n\nconst ListFilters = styled.div`\n display: grid;\n`;\n\nfunction FiltersPanel(): JSX.Element {\n const {t} = useSharedTranslation();\n\n const {state: searchState, dispatch: searchDispatch} = useSearchReducer();\n\n const _resetFilters = () => {\n searchDispatch({type: SearchActionTypes.RESET_FILTERS});\n };\n\n const _disableFilters = () => {\n searchDispatch({type: SearchActionTypes.DISABLE_FILTERS});\n };\n\n const _enableFilters = () => {\n searchDispatch({type: SearchActionTypes.ENABLE_FILTERS});\n };\n\n const _handleHide = () => {\n searchDispatch({type: SearchActionTypes.SET_SIDEBAR, visible: false, sidebarType: searchState.sideBar.type});\n };\n\n const handleDragEnd = event => {\n const {active, over} = event;\n if (!over || active.id === over.id) {\n return;\n }\n\n const oldIndex = searchState.filters.findIndex(f => f.key === active.id);\n const newIndex = searchState.filters.findIndex(f => f.key === over.id);\n if (oldIndex === -1 || newIndex === -1) {\n return;\n }\n\n const filters = arrayMove(searchState.filters, oldIndex, newIndex).map((filter, idx) => ({\n ...filter,\n index: idx,\n }));\n\n searchDispatch({type: SearchActionTypes.SET_FILTERS, filters});\n };\n\n const filtersSorted = searchState.filters.sort((a, b) => a.index - b.index);\n\n const _handleApplyFilters = () => {\n searchDispatch({type: SearchActionTypes.APPLY_FILTERS});\n };\n\n const allFiltersDisabled = searchState.filters.every(f => f.active === false);\n const allFiltersEnabled = searchState.filters.every(f => f.active === true);\n\n return (\n <Wrapper>\n <Header>\n <Dropdown\n menu={{\n items: [\n {\n key: 'disable',\n disabled: allFiltersDisabled,\n onClick: _disableFilters,\n label: t('filters.disable-filters'),\n },\n {\n key: 'enable',\n disabled: allFiltersEnabled,\n onClick: _enableFilters,\n label: t('filters.enable-filters'),\n },\n {\n key: 'remove',\n disabled: !searchState.filters.length,\n onClick: _resetFilters,\n label: t('filters.remove-filters'),\n },\n ],\n }}\n >\n <Button type=\"text\" style={{display: 'inline-flex'}}>\n {t('filters.filters')}\n <DownOutlined style={{marginTop: '5px', marginLeft: '-3px'}} />\n </Button>\n </Dropdown>\n <Space size=\"small\">\n <Button disabled={!searchState.filters.length} onClick={_handleApplyFilters}>\n {t('filters.apply')}\n </Button>\n <Button onClick={_handleHide} icon={<FontAwesomeIcon icon={faAngleLeft} />} />\n </Space>\n </Header>\n\n <FiltersWrapper>\n <DndContext collisionDetection={closestCenter} onDragEnd={handleDragEnd}>\n <SortableContext items={filtersSorted.map(v => v.key)} strategy={verticalListSortingStrategy}>\n <ListFilters>\n {filtersSorted.map(filter => (\n <Filter key={filter.key} filter={filter} />\n ))}\n </ListFilters>\n </SortableContext>\n </DndContext>\n </FiltersWrapper>\n </Wrapper>\n );\n}\n\nexport default FiltersPanel;\n"]}
@@ -72,12 +72,6 @@ function ChooseTableColumns({ visible, onClose }) {
72
72
  const _handleCancel = () => {
73
73
  onClose();
74
74
  };
75
- // hack to disable warning "Droppable: unsupported nested scroll container" from react-beautiful-dnd,
76
- // remove "overflow: auto" on class "ant-modal-wrap"
77
- const elements = document.getElementsByClassName('ant-modal-wrap');
78
- if (elements.length) {
79
- elements[0].style.overflow = 'initial';
80
- }
81
75
  return (_jsx(Modal, { open: visible, onCancel: _handleCancel, title: t('table-columns-selection.header'), width: "70rem", centered: true, footer: [
82
76
  _jsx(Button, { onClick: _handleCancel, children: t('table-columns-selection.cancel') }, "Cancel"),
83
77
  _jsx(Button, { type: "primary", onClick: handleSubmit, children: t('table-columns-selection.submit') }, "Submit"),
@@ -1 +1 @@
1
- {"version":3,"file":"ChooseTableColumns.js","sourceRoot":"","sources":["../../../../../src/components/LibraryItemsList/LibraryItemsListTable/ChooseTableColumns/ChooseTableColumns.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 {localizedTranslation} from '@leav/utils';\nimport {Button, Modal} from 'antd';\nimport {useState} from 'react';\nimport AttributesSelectionList from '_ui/components/AttributesSelectionList';\nimport useSearchReducer from '_ui/components/LibraryItemsList/hooks/useSearchReducer';\nimport {SearchActionTypes} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport useLang from '_ui/hooks/useLang';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type ISelectedAttribute} from '_ui/types/attributes';\nimport {type IAttribute, type IField} from '_ui/types/search';\nimport {AttributeFormat, AttributeType} from '_ui/_gqlTypes';\nimport {getFieldsKeyFromAttribute} from '../../helpers/getFieldsKeyFromAttribute';\n\ninterface IChooseTableColumnsProps {\n visible: boolean;\n onClose: () => void;\n}\n\nfunction ChooseTableColumns({visible, onClose}: IChooseTableColumnsProps): JSX.Element {\n const {t} = useSharedTranslation();\n const {lang} = useLang();\n const {state: searchState, dispatch: searchDispatch} = useSearchReducer();\n const [selectedAttributes, setSelectedAttributes] = useState<ISelectedAttribute[]>(\n (searchState?.fields ?? []).map(col => {\n const currentAttribute = searchState.attributes.find(\n attribute => attribute.id === col.id && attribute.library === col.library,\n );\n\n return {\n ...col,\n path: col.key,\n label: currentAttribute?.label ?? null,\n multiple_values: !!col.multipleValues,\n };\n }),\n );\n\n const handleSubmit = () => {\n const noDuplicateNewAttribute: IAttribute[] = selectedAttributes\n .filter(\n selectedAttribute =>\n !searchState.attributes.some(\n attribute =>\n attribute.id === selectedAttribute.id && attribute.library === selectedAttribute.library,\n ),\n )\n .map(a => ({\n ...a,\n isLink: a.type === AttributeType.tree,\n isMultiple: a.multiple_values,\n format: a.format ?? undefined,\n }));\n\n const allAttributes = [...(searchState?.attributes ?? []), ...noDuplicateNewAttribute];\n\n searchDispatch({type: SearchActionTypes.SET_ATTRIBUTES, attributes: allAttributes});\n\n const newFields: IField[] = selectedAttributes.reduce((acc, selectedAttribute) => {\n const attribute = allAttributes.find(\n currentAttr =>\n currentAttr.id === selectedAttribute.id && currentAttr.library === selectedAttribute.library,\n );\n\n if (!attribute) {\n return acc;\n }\n\n const key = getFieldsKeyFromAttribute(selectedAttribute);\n\n const label =\n typeof attribute.label === 'string' ? attribute.label : localizedTranslation(attribute.label, lang);\n\n const embeddedData = selectedAttribute.embeddedFieldData && {\n format: selectedAttribute.embeddedFieldData?.format ?? AttributeFormat.text,\n path: selectedAttribute.path,\n };\n\n const field: IField = {\n id: selectedAttribute.id,\n library: selectedAttribute.library,\n label,\n key,\n type: selectedAttribute.type,\n format: attribute.format,\n parentAttributeData: selectedAttribute?.parentAttributeData,\n treeData: selectedAttribute.treeData,\n embeddedData,\n recordLibrary:\n selectedAttribute?.parentAttributeData?.type === AttributeType.tree\n ? selectedAttribute.path.split('.')[1]\n : null,\n };\n\n return [...acc, field];\n }, []);\n\n searchDispatch({\n type: SearchActionTypes.SET_FIELDS,\n fields: newFields,\n });\n\n onClose();\n };\n\n const _handleCancel = () => {\n onClose();\n };\n\n // hack to disable warning \"Droppable: unsupported nested scroll container\" from react-beautiful-dnd,\n // remove \"overflow: auto\" on class \"ant-modal-wrap\"\n const elements: any = document.getElementsByClassName('ant-modal-wrap');\n if (elements.length) {\n elements[0].style.overflow = 'initial';\n }\n\n return (\n <Modal\n open={visible}\n onCancel={_handleCancel}\n title={t('table-columns-selection.header')}\n width=\"70rem\"\n centered\n footer={[\n <Button key=\"Cancel\" onClick={_handleCancel}>\n {t('table-columns-selection.cancel')}\n </Button>,\n <Button type=\"primary\" key=\"Submit\" onClick={handleSubmit}>\n {t('table-columns-selection.submit')}\n </Button>,\n ]}\n >\n <AttributesSelectionList\n library={searchState.library.id}\n selectedAttributes={selectedAttributes}\n onSelectionChange={setSelectedAttributes}\n />\n </Modal>\n );\n}\n\nexport default ChooseTableColumns;\n"]}
1
+ {"version":3,"file":"ChooseTableColumns.js","sourceRoot":"","sources":["../../../../../src/components/LibraryItemsList/LibraryItemsListTable/ChooseTableColumns/ChooseTableColumns.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 {localizedTranslation} from '@leav/utils';\nimport {Button, Modal} from 'antd';\nimport {useState} from 'react';\nimport AttributesSelectionList from '_ui/components/AttributesSelectionList';\nimport useSearchReducer from '_ui/components/LibraryItemsList/hooks/useSearchReducer';\nimport {SearchActionTypes} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport useLang from '_ui/hooks/useLang';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type ISelectedAttribute} from '_ui/types/attributes';\nimport {type IAttribute, type IField} from '_ui/types/search';\nimport {AttributeFormat, AttributeType} from '_ui/_gqlTypes';\nimport {getFieldsKeyFromAttribute} from '../../helpers/getFieldsKeyFromAttribute';\n\ninterface IChooseTableColumnsProps {\n visible: boolean;\n onClose: () => void;\n}\n\nfunction ChooseTableColumns({visible, onClose}: IChooseTableColumnsProps): JSX.Element {\n const {t} = useSharedTranslation();\n const {lang} = useLang();\n const {state: searchState, dispatch: searchDispatch} = useSearchReducer();\n const [selectedAttributes, setSelectedAttributes] = useState<ISelectedAttribute[]>(\n (searchState?.fields ?? []).map(col => {\n const currentAttribute = searchState.attributes.find(\n attribute => attribute.id === col.id && attribute.library === col.library,\n );\n\n return {\n ...col,\n path: col.key,\n label: currentAttribute?.label ?? null,\n multiple_values: !!col.multipleValues,\n };\n }),\n );\n\n const handleSubmit = () => {\n const noDuplicateNewAttribute: IAttribute[] = selectedAttributes\n .filter(\n selectedAttribute =>\n !searchState.attributes.some(\n attribute =>\n attribute.id === selectedAttribute.id && attribute.library === selectedAttribute.library,\n ),\n )\n .map(a => ({\n ...a,\n isLink: a.type === AttributeType.tree,\n isMultiple: a.multiple_values,\n format: a.format ?? undefined,\n }));\n\n const allAttributes = [...(searchState?.attributes ?? []), ...noDuplicateNewAttribute];\n\n searchDispatch({type: SearchActionTypes.SET_ATTRIBUTES, attributes: allAttributes});\n\n const newFields: IField[] = selectedAttributes.reduce((acc, selectedAttribute) => {\n const attribute = allAttributes.find(\n currentAttr =>\n currentAttr.id === selectedAttribute.id && currentAttr.library === selectedAttribute.library,\n );\n\n if (!attribute) {\n return acc;\n }\n\n const key = getFieldsKeyFromAttribute(selectedAttribute);\n\n const label =\n typeof attribute.label === 'string' ? attribute.label : localizedTranslation(attribute.label, lang);\n\n const embeddedData = selectedAttribute.embeddedFieldData && {\n format: selectedAttribute.embeddedFieldData?.format ?? AttributeFormat.text,\n path: selectedAttribute.path,\n };\n\n const field: IField = {\n id: selectedAttribute.id,\n library: selectedAttribute.library,\n label,\n key,\n type: selectedAttribute.type,\n format: attribute.format,\n parentAttributeData: selectedAttribute?.parentAttributeData,\n treeData: selectedAttribute.treeData,\n embeddedData,\n recordLibrary:\n selectedAttribute?.parentAttributeData?.type === AttributeType.tree\n ? selectedAttribute.path.split('.')[1]\n : null,\n };\n\n return [...acc, field];\n }, []);\n\n searchDispatch({\n type: SearchActionTypes.SET_FIELDS,\n fields: newFields,\n });\n\n onClose();\n };\n\n const _handleCancel = () => {\n onClose();\n };\n\n return (\n <Modal\n open={visible}\n onCancel={_handleCancel}\n title={t('table-columns-selection.header')}\n width=\"70rem\"\n centered\n footer={[\n <Button key=\"Cancel\" onClick={_handleCancel}>\n {t('table-columns-selection.cancel')}\n </Button>,\n <Button type=\"primary\" key=\"Submit\" onClick={handleSubmit}>\n {t('table-columns-selection.submit')}\n </Button>,\n ]}\n >\n <AttributesSelectionList\n library={searchState.library.id}\n selectedAttributes={selectedAttributes}\n onSelectionChange={setSelectedAttributes}\n />\n </Modal>\n );\n}\n\nexport default ChooseTableColumns;\n"]}
@@ -5,8 +5,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { AppstoreFilled, FilterOutlined, MenuOutlined, PlusOutlined, SaveFilled } from '@ant-design/icons';
6
6
  import { localizedTranslation, objectToNameValueArray } from '@leav/utils';
7
7
  import { Badge, Button, Dropdown, Space, Tooltip } from 'antd';
8
- import { GrUndo } from 'react-icons/gr';
9
- import { VscLayers } from 'react-icons/vsc';
10
8
  import styled from 'styled-components';
11
9
  import useSearchReducer from '../../../components/LibraryItemsList/hooks/useSearchReducer';
12
10
  import { SearchActionTypes } from '../../../components/LibraryItemsList/hooks/useSearchReducer/searchReducer';
@@ -23,6 +21,8 @@ import { defaultView } from '../constants';
23
21
  import FiltersDropdown from '../FiltersDropdown';
24
22
  import useUpdateViewsOrderMutation from '../hooks/useUpdateViewsOrderMutation';
25
23
  import IconViewType from '../IconViewType';
24
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
25
+ import { faUndo, faLayerGroup } from '@fortawesome/free-solid-svg-icons';
26
26
  const ViewButton = styled(Button) `
27
27
  && {
28
28
  display: flex;
@@ -154,9 +154,9 @@ function MenuView({ library }) {
154
154
  ],
155
155
  };
156
156
  return (_jsxs(Space, { size: "large", children: [_jsxs(Button.Group, { children: [_jsx(Tooltip, { title: localizedTranslation(searchState.view.current?.label, lang) || t('select-view.default-view'), children: _jsx(ViewButton, { icon: _jsx(IconViewType, { style: { marginRight: '8px' }, type: searchState.view.current.display.type }), "data-testid": "dropdown-view-options", onClick: _toggleShowView, children: _jsx(ViewLabel, { children: localizedTranslation(searchState.view.current?.label, lang) ||
157
- t('select-view.default-view') }) }) }), _jsx(Button, { disabled: searchState.view.sync, icon: _jsx(GrUndo, {}), onClick: _resetView, style: { paddingTop: '6px' } }), _jsx(Button, { icon: _jsx(SaveFilled, {}), onClick: _saveView, disabled: searchState.view.sync ||
157
+ t('select-view.default-view') }) }) }), _jsx(Button, { disabled: searchState.view.sync, icon: _jsx(FontAwesomeIcon, { icon: faUndo }), onClick: _resetView, style: { paddingTop: '6px' } }), _jsx(Button, { icon: _jsx(SaveFilled, {}), onClick: _saveView, disabled: searchState.view.sync ||
158
158
  searchState.view.current?.id === defaultView.id ||
159
- !searchState.view.current.owner }), _jsx(Dropdown, { menu: menu, trigger: ['click'], children: _jsx(Button, { icon: _jsx(PlusOutlined, {}) }) })] }), _jsx(Badge, { dot: !!searchState.filters.length, children: _jsxs(Button.Group, { children: [_jsx(Button, { onClick: _toggleShowFilters, icon: _jsx(FilterOutlined, {}), children: t('filters.filters') }), _jsx(FiltersDropdown, { libraryId: library.id, button: _jsx(Button, { icon: _jsx(PlusOutlined, {}), type: "default" }), attributes: library.attributes, trees: library.linkedTrees, libraries: [] })] }) }), _jsx(Button, { onClick: _toggleShowVersions, icon: _jsx(VscLayers, {}), style: { paddingTop: '5px' } })] }));
159
+ !searchState.view.current.owner }), _jsx(Dropdown, { menu: menu, trigger: ['click'], children: _jsx(Button, { icon: _jsx(PlusOutlined, {}) }) })] }), _jsx(Badge, { dot: !!searchState.filters.length, children: _jsxs(Button.Group, { children: [_jsx(Button, { onClick: _toggleShowFilters, icon: _jsx(FilterOutlined, {}), children: t('filters.filters') }), _jsx(FiltersDropdown, { libraryId: library.id, button: _jsx(Button, { icon: _jsx(PlusOutlined, {}), type: "default" }), attributes: library.attributes, trees: library.linkedTrees, libraries: [] })] }) }), _jsx(Button, { onClick: _toggleShowVersions, icon: _jsx(FontAwesomeIcon, { icon: faLayerGroup }), style: { paddingTop: '5px' } })] }));
160
160
  }
161
161
  export default MenuView;
162
162
  //# sourceMappingURL=MenuView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuView.js","sourceRoot":"","sources":["../../../../src/components/LibraryItemsList/MenuView/MenuView.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 {AppstoreFilled, FilterOutlined, MenuOutlined, PlusOutlined, SaveFilled} from '@ant-design/icons';\nimport {localizedTranslation, objectToNameValueArray} from '@leav/utils';\nimport {Badge, Button, Dropdown, type MenuProps, Space, Tooltip} from 'antd';\nimport {GrUndo} from 'react-icons/gr';\nimport {VscLayers} from 'react-icons/vsc';\nimport styled from 'styled-components';\nimport useSearchReducer from '_ui/components/LibraryItemsList/hooks/useSearchReducer';\nimport {SearchActionTypes} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport useExecuteSaveViewMutation from '_ui/hooks/useExecuteSaveViewMutation/useExecuteSaveViewMutation';\nimport useLang from '_ui/hooks/useLang';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {SidebarContentType} from '_ui/types/search';\nimport {type ViewInput, ViewTypes} from '_ui/_gqlTypes';\nimport {type ILibraryDetailExtended} from '_ui/_queries/libraries/getLibraryDetailExtendQuery';\nimport {prepareView} from '_ui/_utils';\nimport {getRequestFromFilters} from '_ui/_utils/getRequestFromFilter';\nimport {PREFIX_USER_VIEWS_ORDER_KEY} from '../../../constants';\nimport {useUser} from '../../../hooks/useUser/useUser';\nimport {defaultView} from '../constants';\nimport FiltersDropdown from '../FiltersDropdown';\nimport useUpdateViewsOrderMutation from '../hooks/useUpdateViewsOrderMutation';\nimport IconViewType from '../IconViewType';\n\ninterface IMenuViewProps {\n library: ILibraryDetailExtended;\n}\n\nconst ViewButton = styled(Button)`\n && {\n display: flex;\n align-items: center;\n }\n`;\n\nconst ViewLabel = styled.span`\n width: 180px;\n overflow: hidden;\n text-overflow: ellipsis;\n whitespace: nowrap;\n`;\n\nfunction MenuView({library}: IMenuViewProps): JSX.Element {\n const {t} = useSharedTranslation();\n const {lang, defaultLang} = useLang();\n\n const {state: searchState, dispatch: searchDispatch} = useSearchReducer();\n const {userData} = useUser();\n\n const {saveView: addView} = useExecuteSaveViewMutation();\n const {updateViewsOrder} = useUpdateViewsOrderMutation(library.id);\n\n const _toggleShowView = () => {\n const visible = !searchState.sideBar.visible || searchState.sideBar.type !== SidebarContentType.VIEW;\n searchDispatch({\n type: SearchActionTypes.SET_SIDEBAR,\n sidebarType: SidebarContentType.VIEW,\n visible,\n });\n };\n\n const _toggleShowFilters = () => {\n const visible = !searchState.sideBar.visible || searchState.sideBar.type !== SidebarContentType.FILTERS;\n searchDispatch({\n type: SearchActionTypes.SET_SIDEBAR,\n sidebarType: SidebarContentType.FILTERS,\n visible,\n });\n };\n\n const _toggleShowVersions = () => {\n const visible = !searchState.sideBar.visible || searchState.sideBar.type !== SidebarContentType.FILTERS;\n searchDispatch({\n type: SearchActionTypes.SET_SIDEBAR,\n sidebarType: SidebarContentType.VERSIONS,\n visible,\n });\n };\n\n const _resetView = () => {\n searchDispatch({\n type: SearchActionTypes.CHANGE_VIEW,\n view: searchState.view.current,\n });\n };\n\n const _getNewViewFromSearchState = (): ViewInput => ({\n library: library.id,\n label: {\n [defaultLang]: t('view.add-view.title', {lng: defaultLang}),\n },\n display: searchState.display,\n shared: false,\n sort: searchState.sort,\n filters: getRequestFromFilters(searchState.filters),\n valuesVersions: searchState.valuesVersions\n ? objectToNameValueArray(searchState.valuesVersions)\n .map(version => ({\n treeId: version?.name ?? null,\n treeNode: version?.value?.id ?? null,\n }))\n .filter(v => v.treeId !== null && v.treeNode !== null)\n : null,\n attributes: searchState.fields?.map(f => f.key) ?? [],\n });\n\n const _saveView = async () => {\n if (searchState.view.current.id !== defaultView.id) {\n // save view in backend\n await addView({\n view: {\n ..._getNewViewFromSearchState(),\n id: searchState.view.current.id,\n label: searchState.view.current.label,\n description: searchState.view.current.description,\n shared: searchState.view.current.shared,\n color: searchState.view.current.color,\n sort: searchState.sort ?? null,\n },\n });\n\n searchDispatch({\n type: SearchActionTypes.SET_VIEW_SYNC,\n sync: true,\n });\n }\n };\n\n const _handleAddView = async (viewType: ViewTypes) => {\n const newView: ViewInput = {\n ..._getNewViewFromSearchState(),\n display: {...searchState.display, type: viewType},\n };\n\n // save view in backend\n const newViewRes = await addView({\n view: newView,\n });\n\n await updateViewsOrder({\n key: PREFIX_USER_VIEWS_ORDER_KEY + newView.library,\n value: [...searchState.userViewsOrder, newViewRes.data.saveView.id],\n global: false,\n });\n\n searchDispatch({\n type: SearchActionTypes.CHANGE_VIEW,\n view: prepareView(\n newViewRes.data.saveView,\n searchState.attributes,\n searchState.library.id,\n userData?.userId,\n ),\n });\n };\n\n const menu: MenuProps = {\n items: [\n {\n key: 'add-group',\n type: 'group',\n label: t('view.add-view.title'),\n children: [\n {\n key: 'list',\n onClick: () => _handleAddView(ViewTypes.list),\n icon: <MenuOutlined />,\n label: t('view.type-list'),\n },\n {\n key: 'cards',\n onClick: () => _handleAddView(ViewTypes.cards),\n icon: <AppstoreFilled />,\n label: t('view.type-cards'),\n },\n ],\n },\n ],\n };\n\n return (\n <Space size=\"large\">\n <Button.Group>\n <Tooltip\n title={localizedTranslation(searchState.view.current?.label, lang) || t('select-view.default-view')}\n >\n <ViewButton\n icon={\n <IconViewType style={{marginRight: '8px'}} type={searchState.view.current.display.type} />\n }\n data-testid=\"dropdown-view-options\"\n onClick={_toggleShowView}\n >\n <ViewLabel>\n {localizedTranslation(searchState.view.current?.label, lang) ||\n t('select-view.default-view')}\n </ViewLabel>\n </ViewButton>\n </Tooltip>\n <Button\n disabled={searchState.view.sync}\n icon={<GrUndo />}\n onClick={_resetView}\n style={{paddingTop: '6px'}}\n />\n <Button\n icon={<SaveFilled />}\n onClick={_saveView}\n disabled={\n searchState.view.sync ||\n searchState.view.current?.id === defaultView.id ||\n !searchState.view.current.owner\n }\n />\n <Dropdown menu={menu} trigger={['click']}>\n <Button icon={<PlusOutlined />}></Button>\n </Dropdown>\n </Button.Group>\n <Badge dot={!!searchState.filters.length}>\n <Button.Group>\n <Button onClick={_toggleShowFilters} icon={<FilterOutlined />}>\n {t('filters.filters')}\n </Button>\n <FiltersDropdown\n libraryId={library.id}\n button={<Button icon={<PlusOutlined />} type=\"default\" />}\n attributes={library.attributes}\n trees={library.linkedTrees}\n libraries={[]}\n />\n </Button.Group>\n </Badge>\n <Button onClick={_toggleShowVersions} icon={<VscLayers />} style={{paddingTop: '5px'}} />\n </Space>\n );\n}\n\nexport default MenuView;\n"]}
1
+ {"version":3,"file":"MenuView.js","sourceRoot":"","sources":["../../../../src/components/LibraryItemsList/MenuView/MenuView.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 {AppstoreFilled, FilterOutlined, MenuOutlined, PlusOutlined, SaveFilled} from '@ant-design/icons';\nimport {localizedTranslation, objectToNameValueArray} from '@leav/utils';\nimport {Badge, Button, Dropdown, type MenuProps, Space, Tooltip} from 'antd';\nimport styled from 'styled-components';\nimport useSearchReducer from '_ui/components/LibraryItemsList/hooks/useSearchReducer';\nimport {SearchActionTypes} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport useExecuteSaveViewMutation from '_ui/hooks/useExecuteSaveViewMutation/useExecuteSaveViewMutation';\nimport useLang from '_ui/hooks/useLang';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {SidebarContentType} from '_ui/types/search';\nimport {type ViewInput, ViewTypes} from '_ui/_gqlTypes';\nimport {type ILibraryDetailExtended} from '_ui/_queries/libraries/getLibraryDetailExtendQuery';\nimport {prepareView} from '_ui/_utils';\nimport {getRequestFromFilters} from '_ui/_utils/getRequestFromFilter';\nimport {PREFIX_USER_VIEWS_ORDER_KEY} from '../../../constants';\nimport {useUser} from '../../../hooks/useUser/useUser';\nimport {defaultView} from '../constants';\nimport FiltersDropdown from '../FiltersDropdown';\nimport useUpdateViewsOrderMutation from '../hooks/useUpdateViewsOrderMutation';\nimport IconViewType from '../IconViewType';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faUndo, faLayerGroup} from '@fortawesome/free-solid-svg-icons';\n\ninterface IMenuViewProps {\n library: ILibraryDetailExtended;\n}\n\nconst ViewButton = styled(Button)`\n && {\n display: flex;\n align-items: center;\n }\n`;\n\nconst ViewLabel = styled.span`\n width: 180px;\n overflow: hidden;\n text-overflow: ellipsis;\n whitespace: nowrap;\n`;\n\nfunction MenuView({library}: IMenuViewProps): JSX.Element {\n const {t} = useSharedTranslation();\n const {lang, defaultLang} = useLang();\n\n const {state: searchState, dispatch: searchDispatch} = useSearchReducer();\n const {userData} = useUser();\n\n const {saveView: addView} = useExecuteSaveViewMutation();\n const {updateViewsOrder} = useUpdateViewsOrderMutation(library.id);\n\n const _toggleShowView = () => {\n const visible = !searchState.sideBar.visible || searchState.sideBar.type !== SidebarContentType.VIEW;\n searchDispatch({\n type: SearchActionTypes.SET_SIDEBAR,\n sidebarType: SidebarContentType.VIEW,\n visible,\n });\n };\n\n const _toggleShowFilters = () => {\n const visible = !searchState.sideBar.visible || searchState.sideBar.type !== SidebarContentType.FILTERS;\n searchDispatch({\n type: SearchActionTypes.SET_SIDEBAR,\n sidebarType: SidebarContentType.FILTERS,\n visible,\n });\n };\n\n const _toggleShowVersions = () => {\n const visible = !searchState.sideBar.visible || searchState.sideBar.type !== SidebarContentType.FILTERS;\n searchDispatch({\n type: SearchActionTypes.SET_SIDEBAR,\n sidebarType: SidebarContentType.VERSIONS,\n visible,\n });\n };\n\n const _resetView = () => {\n searchDispatch({\n type: SearchActionTypes.CHANGE_VIEW,\n view: searchState.view.current,\n });\n };\n\n const _getNewViewFromSearchState = (): ViewInput => ({\n library: library.id,\n label: {\n [defaultLang]: t('view.add-view.title', {lng: defaultLang}),\n },\n display: searchState.display,\n shared: false,\n sort: searchState.sort,\n filters: getRequestFromFilters(searchState.filters),\n valuesVersions: searchState.valuesVersions\n ? objectToNameValueArray(searchState.valuesVersions)\n .map(version => ({\n treeId: version?.name ?? null,\n treeNode: version?.value?.id ?? null,\n }))\n .filter(v => v.treeId !== null && v.treeNode !== null)\n : null,\n attributes: searchState.fields?.map(f => f.key) ?? [],\n });\n\n const _saveView = async () => {\n if (searchState.view.current.id !== defaultView.id) {\n // save view in backend\n await addView({\n view: {\n ..._getNewViewFromSearchState(),\n id: searchState.view.current.id,\n label: searchState.view.current.label,\n description: searchState.view.current.description,\n shared: searchState.view.current.shared,\n color: searchState.view.current.color,\n sort: searchState.sort ?? null,\n },\n });\n\n searchDispatch({\n type: SearchActionTypes.SET_VIEW_SYNC,\n sync: true,\n });\n }\n };\n\n const _handleAddView = async (viewType: ViewTypes) => {\n const newView: ViewInput = {\n ..._getNewViewFromSearchState(),\n display: {...searchState.display, type: viewType},\n };\n\n // save view in backend\n const newViewRes = await addView({\n view: newView,\n });\n\n await updateViewsOrder({\n key: PREFIX_USER_VIEWS_ORDER_KEY + newView.library,\n value: [...searchState.userViewsOrder, newViewRes.data.saveView.id],\n global: false,\n });\n\n searchDispatch({\n type: SearchActionTypes.CHANGE_VIEW,\n view: prepareView(\n newViewRes.data.saveView,\n searchState.attributes,\n searchState.library.id,\n userData?.userId,\n ),\n });\n };\n\n const menu: MenuProps = {\n items: [\n {\n key: 'add-group',\n type: 'group',\n label: t('view.add-view.title'),\n children: [\n {\n key: 'list',\n onClick: () => _handleAddView(ViewTypes.list),\n icon: <MenuOutlined />,\n label: t('view.type-list'),\n },\n {\n key: 'cards',\n onClick: () => _handleAddView(ViewTypes.cards),\n icon: <AppstoreFilled />,\n label: t('view.type-cards'),\n },\n ],\n },\n ],\n };\n\n return (\n <Space size=\"large\">\n <Button.Group>\n <Tooltip\n title={localizedTranslation(searchState.view.current?.label, lang) || t('select-view.default-view')}\n >\n <ViewButton\n icon={\n <IconViewType style={{marginRight: '8px'}} type={searchState.view.current.display.type} />\n }\n data-testid=\"dropdown-view-options\"\n onClick={_toggleShowView}\n >\n <ViewLabel>\n {localizedTranslation(searchState.view.current?.label, lang) ||\n t('select-view.default-view')}\n </ViewLabel>\n </ViewButton>\n </Tooltip>\n <Button\n disabled={searchState.view.sync}\n icon={<FontAwesomeIcon icon={faUndo} />}\n onClick={_resetView}\n style={{paddingTop: '6px'}}\n />\n <Button\n icon={<SaveFilled />}\n onClick={_saveView}\n disabled={\n searchState.view.sync ||\n searchState.view.current?.id === defaultView.id ||\n !searchState.view.current.owner\n }\n />\n <Dropdown menu={menu} trigger={['click']}>\n <Button icon={<PlusOutlined />}></Button>\n </Dropdown>\n </Button.Group>\n <Badge dot={!!searchState.filters.length}>\n <Button.Group>\n <Button onClick={_toggleShowFilters} icon={<FilterOutlined />}>\n {t('filters.filters')}\n </Button>\n <FiltersDropdown\n libraryId={library.id}\n button={<Button icon={<PlusOutlined />} type=\"default\" />}\n attributes={library.attributes}\n trees={library.linkedTrees}\n libraries={[]}\n />\n </Button.Group>\n </Badge>\n <Button\n onClick={_toggleShowVersions}\n icon={<FontAwesomeIcon icon={faLayerGroup} />}\n style={{paddingTop: '5px'}}\n />\n </Space>\n );\n}\n\nexport default MenuView;\n"]}
@@ -1,9 +1,7 @@
1
- import { type DraggableProvidedDragHandleProps } from 'react-beautiful-dnd';
2
1
  import { type IView } from '../../../../types/views';
3
2
  interface IViewProps {
4
3
  view: IView;
5
4
  onEdit: (viewId: string) => void;
6
- handleProps?: DraggableProvidedDragHandleProps;
7
5
  }
8
- declare function View({ view, onEdit, handleProps }: IViewProps): JSX.Element;
6
+ declare function View({ view, onEdit }: IViewProps): JSX.Element;
9
7
  export default View;
@@ -4,10 +4,11 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
4
4
  // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
5
5
  import { CopyOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons';
6
6
  import { localizedTranslation, objectToNameValueArray } from '@leav/utils';
7
+ import { useSortable } from '@dnd-kit/sortable';
8
+ import { CSS } from '@dnd-kit/utilities';
7
9
  import { Button, Tooltip, Typography } from 'antd';
8
10
  import omit from 'lodash/omit';
9
11
  import { useState } from 'react';
10
- import { RiUserReceivedLine } from 'react-icons/ri';
11
12
  import styled from 'styled-components';
12
13
  import { themeVars } from '../../../../antdTheme';
13
14
  import useSearchReducer from '../../../../components/LibraryItemsList/hooks/useSearchReducer';
@@ -22,6 +23,8 @@ import { ViewSizes, ViewTypes } from '../../../../_gqlTypes';
22
23
  import { getRequestFromFilters } from '../../../../_utils/getRequestFromFilter';
23
24
  import { defaultView } from '../../constants';
24
25
  import useUpdateViewsOrderMutation from '../../hooks/useUpdateViewsOrderMutation';
26
+ import { faUserTag } from '@fortawesome/free-solid-svg-icons';
27
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
25
28
  const Infos = styled.div `
26
29
  width: 100%;
27
30
  `;
@@ -59,7 +62,7 @@ const Description = styled.div `
59
62
  margin-left: 10px;
60
63
  overflow: hidden;
61
64
  `;
62
- function View({ view, onEdit, handleProps }) {
65
+ function View({ view, onEdit }) {
63
66
  const { t } = useSharedTranslation();
64
67
  const { lang, defaultLang } = useLang();
65
68
  const { state: searchState, dispatch: searchDispatch } = useSearchReducer();
@@ -67,6 +70,8 @@ function View({ view, onEdit, handleProps }) {
67
70
  const { saveView } = useExecuteSaveViewMutation();
68
71
  const { deleteView } = useExecuteDeleteViewMutation();
69
72
  const { updateViewsOrder } = useUpdateViewsOrderMutation(searchState.library.id);
73
+ const { attributes, listeners, setNodeRef, transform, transition } = useSortable({ id: view.id });
74
+ const style = { transform: CSS.Transform.toString(transform), transition };
70
75
  const _changeView = () => {
71
76
  searchDispatch({ type: SearchActionTypes.CHANGE_VIEW, view });
72
77
  };
@@ -133,7 +138,7 @@ function View({ view, onEdit, handleProps }) {
133
138
  const selected = view.id === searchState.view.current?.id;
134
139
  const [isActionsShown, setIsActionsShown] = useState(false);
135
140
  const viewLabel = localizedTranslation(view.label, lang);
136
- return (_jsxs(Wrapper, { selected: selected, onClick: _changeView, color: view.color, onMouseEnter: () => setIsActionsShown(true), onMouseLeave: () => setIsActionsShown(false), children: [_jsx(Handle, { className: "view-handle", ...handleProps }), _jsxs(Infos, { children: [_jsxs(Title, { "data-testid": "view-title", children: [_jsx(IconViewType, { type: view.display.type }), _jsx(Typography.Text, { ellipsis: { tooltip: true }, style: { padding: '0 .5em', width: 'calc(100% - 1em)' }, children: viewLabel })] }), view.description && (_jsxs(Description, { children: [_jsx(Typography.Paragraph, { ellipsis: {
141
+ return (_jsxs(Wrapper, { ref: setNodeRef, style: style, ...attributes, selected: selected, onClick: _changeView, color: view.color, onMouseEnter: () => setIsActionsShown(true), onMouseLeave: () => setIsActionsShown(false), children: [_jsx(Handle, { className: "view-handle", ...listeners }), _jsxs(Infos, { children: [_jsxs(Title, { "data-testid": "view-title", children: [_jsx(IconViewType, { type: view.display.type }), _jsx(Typography.Text, { ellipsis: { tooltip: true }, style: { padding: '0 .5em', width: 'calc(100% - 1em)' }, children: viewLabel })] }), view.description && (_jsxs(Description, { children: [_jsx(Typography.Paragraph, { ellipsis: {
137
142
  rows: ROWS_DESCRIPTION,
138
143
  expandable: true,
139
144
  onExpand: _onExpand,
@@ -141,7 +146,7 @@ function View({ view, onEdit, handleProps }) {
141
146
  }, style: { marginBottom: 0 }, children: localizedTranslation(view.description, lang) }, description.key), description.expand && (_jsx("a", { href: "!#", onClick: ev => {
142
147
  ev.preventDefault();
143
148
  _onClose();
144
- }, children: t('global.close') }))] }))] }), !view.owner && !isActionsShown && _jsx(RiUserReceivedLine, { size: "1.3em" }), isActionsShown && (_jsxs(_Fragment, { children: [_jsx(Tooltip, { title: t('global.edit'), children: _jsx(Button, { onClick: _handleEdit, disabled: !view.owner, type: "text", size: "small", shape: "circle", icon: _jsx(EditOutlined, {}) }, "edit") }), _jsx(Tooltip, { title: t('global.duplicate'), children: _jsx(Button, { onClick: _handleDuplicate, type: "text", size: "small", shape: "circle", icon: _jsx(CopyOutlined, {}) }, "duplicate") }), _jsx(Tooltip, { title: t('global.delete'), children: _jsx(Button, { onClick: _handleDelete, disabled: !view.owner, type: "text", size: "small", shape: "circle", icon: _jsx(DeleteOutlined, {}) }, "delete") })] }))] }, view.id));
149
+ }, children: t('global.close') }))] }))] }), !view.owner && !isActionsShown && _jsx(FontAwesomeIcon, { icon: faUserTag }), isActionsShown && (_jsxs(_Fragment, { children: [_jsx(Tooltip, { title: t('global.edit'), children: _jsx(Button, { onClick: _handleEdit, disabled: !view.owner, type: "text", size: "small", shape: "circle", icon: _jsx(EditOutlined, {}) }, "edit") }), _jsx(Tooltip, { title: t('global.duplicate'), children: _jsx(Button, { onClick: _handleDuplicate, type: "text", size: "small", shape: "circle", icon: _jsx(CopyOutlined, {}) }, "duplicate") }), _jsx(Tooltip, { title: t('global.delete'), children: _jsx(Button, { onClick: _handleDelete, disabled: !view.owner, type: "text", size: "small", shape: "circle", icon: _jsx(DeleteOutlined, {}) }, "delete") })] }))] }, view.id));
145
150
  }
146
151
  export default View;
147
152
  //# sourceMappingURL=View.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"View.js","sourceRoot":"","sources":["../../../../../src/components/LibraryItemsList/ViewPanel/View/View.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,YAAY,EAAE,cAAc,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAC,oBAAoB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AACzE,OAAO,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,MAAM,MAAM,CAAC;AACjD,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAClD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AACxC,OAAO,gBAAgB,MAAM,wDAAwD,CAAC;AACtF,OAAO,EAAC,iBAAiB,EAAC,MAAM,sEAAsE,CAAC;AACvG,OAAO,YAAY,MAAM,8CAA8C,CAAC;AACxE,OAAO,EAAC,6BAA6B,EAAE,2BAA2B,EAAC,MAAM,eAAe,CAAC;AACzF,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,0BAA0B,MAAM,iEAAiE,CAAC;AACzG,OAAO,4BAA4B,MAAM,qEAAqE,CAAC;AAC/G,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAiB,SAAS,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AACnE,OAAO,EAAC,qBAAqB,EAAC,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,2BAA2B,MAAM,yCAAyC,CAAC;AAMlF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAA;;CAEvB,CAAC;AAEF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAe;kBACvB,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;;;;CAIlF,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;aAWZ,SAAS,CAAC,gBAAgB;;;;;;CAMtC,CAAC;AAEF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIvB,CAAC;AAEF,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAI7B,CAAC;AAQF,SAAS,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAa;IACjD,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,EAAC,IAAI,EAAE,WAAW,EAAC,GAAG,OAAO,EAAE,CAAC;IAEtC,MAAM,EAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAC,GAAG,gBAAgB,EAAE,CAAC;IAC1E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAiC,EAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;IAExG,MAAM,EAAC,QAAQ,EAAC,GAAG,0BAA0B,EAAE,CAAC;IAEhD,MAAM,EAAC,UAAU,EAAC,GAAG,4BAA4B,EAAE,CAAC;IACpD,MAAM,EAAC,gBAAgB,EAAC,GAAG,2BAA2B,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAE/E,MAAM,WAAW,GAAG,GAAG,EAAE;QACrB,cAAc,CAAC,EAAC,IAAI,EAAE,iBAAiB,CAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,CAAC;IAE3B,MAAM,aAAa,GAAG,KAAK,EAAE,KAAU,EAAE,EAAE;QACvC,wCAAwC;QACxC,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE1B,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,MAAM,CAC7F,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CACzB,CAAC;QAEF,MAAM,gBAAgB,CAAC;YACnB,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,2BAA2B,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,EAAE;YACzG,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,KAAK;SAChB,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAC1C,cAAc,CAAC,EAAC,IAAI,EAAE,iBAAiB,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,EAAC,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAAU,EAAE,EAAE;QAC1C,wCAAwC;QACxC,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,CAAC;YACD,MAAM,OAAO,GAAc;gBACvB,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC9B,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE;gBAC/B,KAAK,EAAE;oBACH,CAAC,WAAW,CAAC,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG;iBACnF;gBACD,OAAO,EAAE,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC5C,OAAO,EAAE;oBACL,IAAI,EAAE,SAAS,CAAC,MAAM;oBACtB,IAAI,EAAE,SAAS,CAAC,IAAI;iBACvB;gBACD,cAAc,EAAE,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACxE,MAAM,EAAE,OAAO,CAAC,IAAI;oBACpB,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;iBAC7B,CAAC,CAAC;gBACH,MAAM,EAAE,KAAK;aAChB,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC;gBAC9B,IAAI,EAAE,OAAO;aAChB,CAAC,CAAC;YAEH,MAAM,gBAAgB,CAAC;gBACnB,GAAG,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO;gBAClD,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnE,MAAM,EAAE,KAAK;aAChB,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,KAAU,EAAE,EAAE;QAC/B,wCAAwC;QACxC,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,GAAG,EAAE;QACnB,cAAc,CAAC,EAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAC,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;QAClB,cAAc,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,EAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;IAE1D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEzD,OAAO,CACH,MAAC,OAAO,IAEJ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,YAAY,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAC3C,YAAY,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,aAE5C,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,KAAK,WAAW,GAAI,EACnD,MAAC,KAAK,eACF,MAAC,KAAK,mBAAa,YAAY,aAC3B,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,GAAI,EACzC,KAAC,UAAU,CAAC,IAAI,IAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,KAAK,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAC,YAC5F,SAAS,GACI,IACd,EACP,IAAI,CAAC,WAAW,IAAI,CACjB,MAAC,WAAW,eACR,KAAC,UAAU,CAAC,SAAS,IAEjB,QAAQ,EAAE;oCACN,IAAI,EAAE,gBAAgB;oCACtB,UAAU,EAAE,IAAI;oCAChB,QAAQ,EAAE,SAAS;oCACnB,MAAM,EAAE,CAAC,CAAC,eAAe,CAAC;iCAC7B,EACD,KAAK,EAAE,EAAC,YAAY,EAAE,CAAC,EAAC,YAEvB,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IATxC,WAAW,CAAC,GAAG,CAUD,EACtB,WAAW,CAAC,MAAM,IAAI,CACnB,YACI,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,EAAE,CAAC,EAAE;oCACV,EAAE,CAAC,cAAc,EAAE,CAAC;oCACpB,QAAQ,EAAE,CAAC;gCACf,CAAC,YAEA,CAAC,CAAC,cAAc,CAAC,GAClB,CACP,IACS,CACjB,IACG,EACP,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,IAAI,KAAC,kBAAkB,IAAC,IAAI,EAAC,OAAO,GAAG,EACrE,cAAc,IAAI,CACf,8BACI,KAAC,OAAO,IAAC,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,YAC5B,KAAC,MAAM,IAEH,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,EACrB,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,QAAQ,EACd,IAAI,EAAE,KAAC,YAAY,KAAG,IANlB,MAAM,CAOZ,GACI,EACV,KAAC,OAAO,IAAC,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,YACjC,KAAC,MAAM,IAEH,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,QAAQ,EACd,IAAI,EAAE,KAAC,YAAY,KAAG,IALlB,WAAW,CAMjB,GACI,EACV,KAAC,OAAO,IAAC,KAAK,EAAE,CAAC,CAAC,eAAe,CAAC,YAC9B,KAAC,MAAM,IAEH,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,EACrB,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,QAAQ,EACd,IAAI,EAAE,KAAC,cAAc,KAAG,IANpB,QAAQ,CAOd,GACI,IACX,CACN,KA/EI,IAAI,CAAC,EAAE,CAgFN,CACb,CAAC;AACN,CAAC;AAED,eAAe,IAAI,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {CopyOutlined, DeleteOutlined, EditOutlined} from '@ant-design/icons';\nimport {localizedTranslation, objectToNameValueArray} from '@leav/utils';\nimport {Button, Tooltip, Typography} from 'antd';\nimport omit from 'lodash/omit';\nimport {useState} from 'react';\nimport {type DraggableProvidedDragHandleProps} from 'react-beautiful-dnd';\nimport {RiUserReceivedLine} from 'react-icons/ri';\nimport styled from 'styled-components';\nimport {themeVars} from '_ui/antdTheme';\nimport useSearchReducer from '_ui/components/LibraryItemsList/hooks/useSearchReducer';\nimport {SearchActionTypes} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport IconViewType from '_ui/components/LibraryItemsList/IconViewType';\nimport {PREFIX_SHARED_VIEWS_ORDER_KEY, PREFIX_USER_VIEWS_ORDER_KEY} from '_ui/constants';\nimport {useLang} from '_ui/hooks';\nimport useExecuteSaveViewMutation from '_ui/hooks/useExecuteSaveViewMutation/useExecuteSaveViewMutation';\nimport useExecuteDeleteViewMutation from '_ui/hooks/useExecuteDeleteViewMutation/useExecuteDeleteViewMutation';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type IView} from '_ui/types/views';\nimport {type ViewInput, ViewSizes, ViewTypes} from '_ui/_gqlTypes';\nimport {getRequestFromFilters} from '_ui/_utils/getRequestFromFilter';\nimport {defaultView} from '../../constants';\nimport useUpdateViewsOrderMutation from '../../hooks/useUpdateViewsOrderMutation';\n\ninterface IWrapperProps {\n selected: boolean;\n}\n\nconst Infos = styled.div`\n width: 100%;\n`;\n\nconst Wrapper = styled.div<IWrapperProps>`\n background: ${({selected}) => (selected ? `${themeVars.activeColor} ` : 'none')};\n padding: 0.5rem;\n display: flex;\n align-items: center;\n`;\n\nconst Handle = styled.div`\n content: '....';\n width: 20px;\n height: 30px;\n display: inline-block;\n line-height: 5px;\n padding: 3px 4px;\n vertical-align: middle;\n font-size: 12px;\n font-family: sans-serif;\n letter-spacing: 2px;\n color: ${themeVars.borderLightColor};\n text-shadow: 1px 0 1px black;\n\n &::after {\n content: '.. .. .. ..';\n }\n`;\n\nconst Title = styled.div`\n display: flex;\n align-items: center;\n margin-left: 10px;\n`;\n\nconst Description = styled.div`\n opacity: 0.8;\n margin-left: 10px;\n overflow: hidden;\n`;\n\ninterface IViewProps {\n view: IView;\n onEdit: (viewId: string) => void;\n handleProps?: DraggableProvidedDragHandleProps;\n}\n\nfunction View({view, onEdit, handleProps}: IViewProps): JSX.Element {\n const {t} = useSharedTranslation();\n const {lang, defaultLang} = useLang();\n\n const {state: searchState, dispatch: searchDispatch} = useSearchReducer();\n const [description, setDescription] = useState<{expand: boolean; key: number}>({expand: false, key: 0});\n\n const {saveView} = useExecuteSaveViewMutation();\n\n const {deleteView} = useExecuteDeleteViewMutation();\n const {updateViewsOrder} = useUpdateViewsOrderMutation(searchState.library.id);\n\n const _changeView = () => {\n searchDispatch({type: SearchActionTypes.CHANGE_VIEW, view});\n };\n\n const ROWS_DESCRIPTION = 3;\n\n const _handleDelete = async (event: any) => {\n // stop progation to avoid click on view\n event.stopPropagation();\n\n await deleteView(view.id);\n\n const newOrder = (view.shared ? searchState.sharedViewsOrder : searchState.userViewsOrder).filter(\n vId => vId !== view.id,\n );\n\n await updateViewsOrder({\n key: (view.shared ? PREFIX_SHARED_VIEWS_ORDER_KEY : PREFIX_USER_VIEWS_ORDER_KEY) + searchState.library.id,\n value: newOrder,\n global: false,\n });\n\n if (view.id === searchState.view.current.id) {\n searchDispatch({type: SearchActionTypes.CHANGE_VIEW, view: defaultView});\n }\n };\n\n const _handleDuplicate = async (event: any) => {\n // stop progation to avoid click on view\n event.stopPropagation();\n\n try {\n const newView: ViewInput = {\n ...omit(view, ['id', 'owner']),\n library: searchState.library.id,\n label: {\n [defaultLang]: `${localizedTranslation(view.label, lang)} (${t('global.copy')})`,\n },\n filters: getRequestFromFilters(view.filters),\n display: {\n size: ViewSizes.MEDIUM,\n type: ViewTypes.list,\n },\n valuesVersions: objectToNameValueArray(view.valuesVersions).map(version => ({\n treeId: version.name,\n treeNode: version.value.id,\n })),\n shared: false,\n };\n\n const newViewRes = await saveView({\n view: newView,\n });\n\n await updateViewsOrder({\n key: PREFIX_USER_VIEWS_ORDER_KEY + newView.library,\n value: [...searchState.userViewsOrder, newViewRes.data.saveView.id],\n global: false,\n });\n } catch (e) {\n console.error(e);\n }\n };\n\n const _handleEdit = (event: any) => {\n // stop progation to avoid click on view\n event.stopPropagation();\n\n onEdit(view.id);\n };\n\n const _onExpand = () => {\n setDescription({expand: true, key: description.key});\n };\n\n const _onClose = () => {\n setDescription({expand: false, key: description.key + 1});\n };\n\n const selected = view.id === searchState.view.current?.id;\n\n const [isActionsShown, setIsActionsShown] = useState(false);\n\n const viewLabel = localizedTranslation(view.label, lang);\n\n return (\n <Wrapper\n key={view.id}\n selected={selected}\n onClick={_changeView}\n color={view.color}\n onMouseEnter={() => setIsActionsShown(true)}\n onMouseLeave={() => setIsActionsShown(false)}\n >\n <Handle className=\"view-handle\" {...handleProps} />\n <Infos>\n <Title data-testid=\"view-title\">\n <IconViewType type={view.display.type} />\n <Typography.Text ellipsis={{tooltip: true}} style={{padding: '0 .5em', width: 'calc(100% - 1em)'}}>\n {viewLabel}\n </Typography.Text>\n </Title>\n {view.description && (\n <Description>\n <Typography.Paragraph\n key={description.key}\n ellipsis={{\n rows: ROWS_DESCRIPTION,\n expandable: true,\n onExpand: _onExpand,\n symbol: t('view.see-more'),\n }}\n style={{marginBottom: 0}}\n >\n {localizedTranslation(view.description, lang)}\n </Typography.Paragraph>\n {description.expand && (\n <a\n href=\"!#\"\n onClick={ev => {\n ev.preventDefault();\n _onClose();\n }}\n >\n {t('global.close')}\n </a>\n )}\n </Description>\n )}\n </Infos>\n {!view.owner && !isActionsShown && <RiUserReceivedLine size=\"1.3em\" />}\n {isActionsShown && (\n <>\n <Tooltip title={t('global.edit')}>\n <Button\n key=\"edit\"\n onClick={_handleEdit}\n disabled={!view.owner}\n type=\"text\"\n size=\"small\"\n shape=\"circle\"\n icon={<EditOutlined />}\n />\n </Tooltip>\n <Tooltip title={t('global.duplicate')}>\n <Button\n key=\"duplicate\"\n onClick={_handleDuplicate}\n type=\"text\"\n size=\"small\"\n shape=\"circle\"\n icon={<CopyOutlined />}\n />\n </Tooltip>\n <Tooltip title={t('global.delete')}>\n <Button\n key=\"delete\"\n onClick={_handleDelete}\n disabled={!view.owner}\n type=\"text\"\n size=\"small\"\n shape=\"circle\"\n icon={<DeleteOutlined />}\n />\n </Tooltip>\n </>\n )}\n </Wrapper>\n );\n}\n\nexport default View;\n"]}
1
+ {"version":3,"file":"View.js","sourceRoot":"","sources":["../../../../../src/components/LibraryItemsList/ViewPanel/View/View.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,YAAY,EAAE,cAAc,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAC,oBAAoB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AACzE,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAC,GAAG,EAAC,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,MAAM,MAAM,CAAC;AACjD,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/B,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AACxC,OAAO,gBAAgB,MAAM,wDAAwD,CAAC;AACtF,OAAO,EAAC,iBAAiB,EAAC,MAAM,sEAAsE,CAAC;AACvG,OAAO,YAAY,MAAM,8CAA8C,CAAC;AACxE,OAAO,EAAC,6BAA6B,EAAE,2BAA2B,EAAC,MAAM,eAAe,CAAC;AACzF,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,0BAA0B,MAAM,iEAAiE,CAAC;AACzG,OAAO,4BAA4B,MAAM,qEAAqE,CAAC;AAC/G,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAiB,SAAS,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AACnE,OAAO,EAAC,qBAAqB,EAAC,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,2BAA2B,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAC,SAAS,EAAC,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAM/D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAA;;CAEvB,CAAC;AAEF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAe;kBACvB,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;;;;CAIlF,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;aAWZ,SAAS,CAAC,gBAAgB;;;;;;CAMtC,CAAC;AAEF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIvB,CAAC;AAEF,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAI7B,CAAC;AAOF,SAAS,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAa;IACpC,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,EAAC,IAAI,EAAE,WAAW,EAAC,GAAG,OAAO,EAAE,CAAC;IAEtC,MAAM,EAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAC,GAAG,gBAAgB,EAAE,CAAC;IAC1E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAiC,EAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;IAExG,MAAM,EAAC,QAAQ,EAAC,GAAG,0BAA0B,EAAE,CAAC;IAEhD,MAAM,EAAC,UAAU,EAAC,GAAG,4BAA4B,EAAE,CAAC;IACpD,MAAM,EAAC,gBAAgB,EAAC,GAAG,2BAA2B,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAE/E,MAAM,EAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAC,GAAG,WAAW,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,EAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,EAAC,CAAC;IAEzE,MAAM,WAAW,GAAG,GAAG,EAAE;QACrB,cAAc,CAAC,EAAC,IAAI,EAAE,iBAAiB,CAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,CAAC;IAE3B,MAAM,aAAa,GAAG,KAAK,EAAE,KAAU,EAAE,EAAE;QACvC,wCAAwC;QACxC,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE1B,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,MAAM,CAC7F,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CACzB,CAAC;QAEF,MAAM,gBAAgB,CAAC;YACnB,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,2BAA2B,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,EAAE;YACzG,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,KAAK;SAChB,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAC1C,cAAc,CAAC,EAAC,IAAI,EAAE,iBAAiB,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,EAAC,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAAU,EAAE,EAAE;QAC1C,wCAAwC;QACxC,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,CAAC;YACD,MAAM,OAAO,GAAc;gBACvB,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC9B,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE;gBAC/B,KAAK,EAAE;oBACH,CAAC,WAAW,CAAC,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG;iBACnF;gBACD,OAAO,EAAE,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC5C,OAAO,EAAE;oBACL,IAAI,EAAE,SAAS,CAAC,MAAM;oBACtB,IAAI,EAAE,SAAS,CAAC,IAAI;iBACvB;gBACD,cAAc,EAAE,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACxE,MAAM,EAAE,OAAO,CAAC,IAAI;oBACpB,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;iBAC7B,CAAC,CAAC;gBACH,MAAM,EAAE,KAAK;aAChB,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC;gBAC9B,IAAI,EAAE,OAAO;aAChB,CAAC,CAAC;YAEH,MAAM,gBAAgB,CAAC;gBACnB,GAAG,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO;gBAClD,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnE,MAAM,EAAE,KAAK;aAChB,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,KAAU,EAAE,EAAE;QAC/B,wCAAwC;QACxC,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,GAAG,EAAE;QACnB,cAAc,CAAC,EAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAC,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;QAClB,cAAc,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,EAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;IAE1D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEzD,OAAO,CACH,MAAC,OAAO,IAEJ,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,KAAK,KACR,UAAU,EACd,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,YAAY,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAC3C,YAAY,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,aAE5C,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,KAAK,SAAS,GAAI,EACjD,MAAC,KAAK,eACF,MAAC,KAAK,mBAAa,YAAY,aAC3B,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,GAAI,EACzC,KAAC,UAAU,CAAC,IAAI,IAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,KAAK,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAC,YAC5F,SAAS,GACI,IACd,EACP,IAAI,CAAC,WAAW,IAAI,CACjB,MAAC,WAAW,eACR,KAAC,UAAU,CAAC,SAAS,IAEjB,QAAQ,EAAE;oCACN,IAAI,EAAE,gBAAgB;oCACtB,UAAU,EAAE,IAAI;oCAChB,QAAQ,EAAE,SAAS;oCACnB,MAAM,EAAE,CAAC,CAAC,eAAe,CAAC;iCAC7B,EACD,KAAK,EAAE,EAAC,YAAY,EAAE,CAAC,EAAC,YAEvB,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IATxC,WAAW,CAAC,GAAG,CAUD,EACtB,WAAW,CAAC,MAAM,IAAI,CACnB,YACI,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,EAAE,CAAC,EAAE;oCACV,EAAE,CAAC,cAAc,EAAE,CAAC;oCACpB,QAAQ,EAAE,CAAC;gCACf,CAAC,YAEA,CAAC,CAAC,cAAc,CAAC,GAClB,CACP,IACS,CACjB,IACG,EACP,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,IAAI,KAAC,eAAe,IAAC,IAAI,EAAE,SAAS,GAAI,EACtE,cAAc,IAAI,CACf,8BACI,KAAC,OAAO,IAAC,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,YAC5B,KAAC,MAAM,IAEH,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,EACrB,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,QAAQ,EACd,IAAI,EAAE,KAAC,YAAY,KAAG,IANlB,MAAM,CAOZ,GACI,EACV,KAAC,OAAO,IAAC,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,YACjC,KAAC,MAAM,IAEH,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,QAAQ,EACd,IAAI,EAAE,KAAC,YAAY,KAAG,IALlB,WAAW,CAMjB,GACI,EACV,KAAC,OAAO,IAAC,KAAK,EAAE,CAAC,CAAC,eAAe,CAAC,YAC9B,KAAC,MAAM,IAEH,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,EACrB,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,QAAQ,EACd,IAAI,EAAE,KAAC,cAAc,KAAG,IANpB,QAAQ,CAOd,GACI,IACX,CACN,KAlFI,IAAI,CAAC,EAAE,CAmFN,CACb,CAAC;AACN,CAAC;AAED,eAAe,IAAI,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {CopyOutlined, DeleteOutlined, EditOutlined} from '@ant-design/icons';\nimport {localizedTranslation, objectToNameValueArray} from '@leav/utils';\nimport {useSortable} from '@dnd-kit/sortable';\nimport {CSS} from '@dnd-kit/utilities';\nimport {Button, Tooltip, Typography} from 'antd';\nimport omit from 'lodash/omit';\nimport {useState} from 'react';\nimport styled from 'styled-components';\nimport {themeVars} from '_ui/antdTheme';\nimport useSearchReducer from '_ui/components/LibraryItemsList/hooks/useSearchReducer';\nimport {SearchActionTypes} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport IconViewType from '_ui/components/LibraryItemsList/IconViewType';\nimport {PREFIX_SHARED_VIEWS_ORDER_KEY, PREFIX_USER_VIEWS_ORDER_KEY} from '_ui/constants';\nimport {useLang} from '_ui/hooks';\nimport useExecuteSaveViewMutation from '_ui/hooks/useExecuteSaveViewMutation/useExecuteSaveViewMutation';\nimport useExecuteDeleteViewMutation from '_ui/hooks/useExecuteDeleteViewMutation/useExecuteDeleteViewMutation';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type IView} from '_ui/types/views';\nimport {type ViewInput, ViewSizes, ViewTypes} from '_ui/_gqlTypes';\nimport {getRequestFromFilters} from '_ui/_utils/getRequestFromFilter';\nimport {defaultView} from '../../constants';\nimport useUpdateViewsOrderMutation from '../../hooks/useUpdateViewsOrderMutation';\nimport {faUserTag} from '@fortawesome/free-solid-svg-icons';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\n\ninterface IWrapperProps {\n selected: boolean;\n}\n\nconst Infos = styled.div`\n width: 100%;\n`;\n\nconst Wrapper = styled.div<IWrapperProps>`\n background: ${({selected}) => (selected ? `${themeVars.activeColor} ` : 'none')};\n padding: 0.5rem;\n display: flex;\n align-items: center;\n`;\n\nconst Handle = styled.div`\n content: '....';\n width: 20px;\n height: 30px;\n display: inline-block;\n line-height: 5px;\n padding: 3px 4px;\n vertical-align: middle;\n font-size: 12px;\n font-family: sans-serif;\n letter-spacing: 2px;\n color: ${themeVars.borderLightColor};\n text-shadow: 1px 0 1px black;\n\n &::after {\n content: '.. .. .. ..';\n }\n`;\n\nconst Title = styled.div`\n display: flex;\n align-items: center;\n margin-left: 10px;\n`;\n\nconst Description = styled.div`\n opacity: 0.8;\n margin-left: 10px;\n overflow: hidden;\n`;\n\ninterface IViewProps {\n view: IView;\n onEdit: (viewId: string) => void;\n}\n\nfunction View({view, onEdit}: IViewProps): JSX.Element {\n const {t} = useSharedTranslation();\n const {lang, defaultLang} = useLang();\n\n const {state: searchState, dispatch: searchDispatch} = useSearchReducer();\n const [description, setDescription] = useState<{expand: boolean; key: number}>({expand: false, key: 0});\n\n const {saveView} = useExecuteSaveViewMutation();\n\n const {deleteView} = useExecuteDeleteViewMutation();\n const {updateViewsOrder} = useUpdateViewsOrderMutation(searchState.library.id);\n\n const {attributes, listeners, setNodeRef, transform, transition} = useSortable({id: view.id});\n const style = {transform: CSS.Transform.toString(transform), transition};\n\n const _changeView = () => {\n searchDispatch({type: SearchActionTypes.CHANGE_VIEW, view});\n };\n\n const ROWS_DESCRIPTION = 3;\n\n const _handleDelete = async (event: any) => {\n // stop progation to avoid click on view\n event.stopPropagation();\n\n await deleteView(view.id);\n\n const newOrder = (view.shared ? searchState.sharedViewsOrder : searchState.userViewsOrder).filter(\n vId => vId !== view.id,\n );\n\n await updateViewsOrder({\n key: (view.shared ? PREFIX_SHARED_VIEWS_ORDER_KEY : PREFIX_USER_VIEWS_ORDER_KEY) + searchState.library.id,\n value: newOrder,\n global: false,\n });\n\n if (view.id === searchState.view.current.id) {\n searchDispatch({type: SearchActionTypes.CHANGE_VIEW, view: defaultView});\n }\n };\n\n const _handleDuplicate = async (event: any) => {\n // stop progation to avoid click on view\n event.stopPropagation();\n\n try {\n const newView: ViewInput = {\n ...omit(view, ['id', 'owner']),\n library: searchState.library.id,\n label: {\n [defaultLang]: `${localizedTranslation(view.label, lang)} (${t('global.copy')})`,\n },\n filters: getRequestFromFilters(view.filters),\n display: {\n size: ViewSizes.MEDIUM,\n type: ViewTypes.list,\n },\n valuesVersions: objectToNameValueArray(view.valuesVersions).map(version => ({\n treeId: version.name,\n treeNode: version.value.id,\n })),\n shared: false,\n };\n\n const newViewRes = await saveView({\n view: newView,\n });\n\n await updateViewsOrder({\n key: PREFIX_USER_VIEWS_ORDER_KEY + newView.library,\n value: [...searchState.userViewsOrder, newViewRes.data.saveView.id],\n global: false,\n });\n } catch (e) {\n console.error(e);\n }\n };\n\n const _handleEdit = (event: any) => {\n // stop progation to avoid click on view\n event.stopPropagation();\n\n onEdit(view.id);\n };\n\n const _onExpand = () => {\n setDescription({expand: true, key: description.key});\n };\n\n const _onClose = () => {\n setDescription({expand: false, key: description.key + 1});\n };\n\n const selected = view.id === searchState.view.current?.id;\n\n const [isActionsShown, setIsActionsShown] = useState(false);\n\n const viewLabel = localizedTranslation(view.label, lang);\n\n return (\n <Wrapper\n key={view.id}\n ref={setNodeRef}\n style={style}\n {...attributes}\n selected={selected}\n onClick={_changeView}\n color={view.color}\n onMouseEnter={() => setIsActionsShown(true)}\n onMouseLeave={() => setIsActionsShown(false)}\n >\n <Handle className=\"view-handle\" {...listeners} />\n <Infos>\n <Title data-testid=\"view-title\">\n <IconViewType type={view.display.type} />\n <Typography.Text ellipsis={{tooltip: true}} style={{padding: '0 .5em', width: 'calc(100% - 1em)'}}>\n {viewLabel}\n </Typography.Text>\n </Title>\n {view.description && (\n <Description>\n <Typography.Paragraph\n key={description.key}\n ellipsis={{\n rows: ROWS_DESCRIPTION,\n expandable: true,\n onExpand: _onExpand,\n symbol: t('view.see-more'),\n }}\n style={{marginBottom: 0}}\n >\n {localizedTranslation(view.description, lang)}\n </Typography.Paragraph>\n {description.expand && (\n <a\n href=\"!#\"\n onClick={ev => {\n ev.preventDefault();\n _onClose();\n }}\n >\n {t('global.close')}\n </a>\n )}\n </Description>\n )}\n </Infos>\n {!view.owner && !isActionsShown && <FontAwesomeIcon icon={faUserTag} />}\n {isActionsShown && (\n <>\n <Tooltip title={t('global.edit')}>\n <Button\n key=\"edit\"\n onClick={_handleEdit}\n disabled={!view.owner}\n type=\"text\"\n size=\"small\"\n shape=\"circle\"\n icon={<EditOutlined />}\n />\n </Tooltip>\n <Tooltip title={t('global.duplicate')}>\n <Button\n key=\"duplicate\"\n onClick={_handleDuplicate}\n type=\"text\"\n size=\"small\"\n shape=\"circle\"\n icon={<CopyOutlined />}\n />\n </Tooltip>\n <Tooltip title={t('global.delete')}>\n <Button\n key=\"delete\"\n onClick={_handleDelete}\n disabled={!view.owner}\n type=\"text\"\n size=\"small\"\n shape=\"circle\"\n icon={<DeleteOutlined />}\n />\n </Tooltip>\n </>\n )}\n </Wrapper>\n );\n}\n\nexport default View;\n"]}