@leav/ui 1.6.0-fb9dc9ec → 1.7.0-178015c1

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 (273) 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/actions-item/useEditStatusItemAction.js +3 -2
  30. package/dist/components/Explorer/actions-item/useEditStatusItemAction.js.map +1 -1
  31. package/dist/components/Explorer/actions-item/useReplaceItemAction.d.ts +2 -1
  32. package/dist/components/Explorer/actions-item/useReplaceItemAction.js +5 -4
  33. package/dist/components/Explorer/actions-item/useReplaceItemAction.js.map +1 -1
  34. package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValueLine.d.ts +2 -4
  35. package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValueLine.js +18 -16
  36. package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValueLine.js.map +1 -1
  37. package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValuesMapping.js +2 -2
  38. package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValuesMapping.js.map +1 -1
  39. package/dist/components/Explorer/actions-mass/edit-attribute/useListEditableAttributeHook.js +9 -1
  40. package/dist/components/Explorer/actions-mass/edit-attribute/useListEditableAttributeHook.js.map +1 -1
  41. package/dist/components/Explorer/actions-mass/edit-attribute/useListTreeAttributeValuesHook.d.ts +10 -3
  42. package/dist/components/Explorer/actions-mass/edit-attribute/useListTreeAttributeValuesHook.js +16 -6
  43. package/dist/components/Explorer/actions-mass/edit-attribute/useListTreeAttributeValuesHook.js.map +1 -1
  44. package/dist/components/Explorer/actions-mass/export/ExportProfileSelectionModal.d.ts +10 -0
  45. package/dist/components/Explorer/actions-mass/export/ExportProfileSelectionModal.js +46 -0
  46. package/dist/components/Explorer/actions-mass/export/ExportProfileSelectionModal.js.map +1 -0
  47. package/dist/components/Explorer/actions-mass/export/content/NoProfiles.d.ts +1 -0
  48. package/dist/components/Explorer/actions-mass/export/content/NoProfiles.js +17 -0
  49. package/dist/components/Explorer/actions-mass/export/content/NoProfiles.js.map +1 -0
  50. package/dist/components/Explorer/actions-mass/export/content/ProfilesSelection.d.ts +8 -0
  51. package/dist/components/Explorer/actions-mass/export/content/ProfilesSelection.js +49 -0
  52. package/dist/components/Explorer/actions-mass/export/content/ProfilesSelection.js.map +1 -0
  53. package/dist/components/Explorer/actions-mass/export/useGetLibraryExportProfiles.d.ts +27 -0
  54. package/dist/components/Explorer/actions-mass/export/useGetLibraryExportProfiles.js +48 -0
  55. package/dist/components/Explorer/actions-mass/export/useGetLibraryExportProfiles.js.map +1 -0
  56. package/dist/components/Explorer/actions-mass/useDeactivateMassAction.js +3 -2
  57. package/dist/components/Explorer/actions-mass/useDeactivateMassAction.js.map +1 -1
  58. package/dist/components/Explorer/actions-mass/useDeleteLinkValues.js +3 -2
  59. package/dist/components/Explorer/actions-mass/useDeleteLinkValues.js.map +1 -1
  60. package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js +3 -2
  61. package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js.map +1 -1
  62. package/dist/components/Explorer/actions-mass/useExportMassAction.d.ts +7 -4
  63. package/dist/components/Explorer/actions-mass/useExportMassAction.js +80 -73
  64. package/dist/components/Explorer/actions-mass/useExportMassAction.js.map +1 -1
  65. package/dist/components/Explorer/actions-mass/useMassActions.js +3 -2
  66. package/dist/components/Explorer/actions-mass/useMassActions.js.map +1 -1
  67. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js +3 -2
  68. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js.map +1 -1
  69. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.d.ts +2 -1
  70. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.js +5 -4
  71. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.js.map +1 -1
  72. package/dist/components/Explorer/link-item/LinkModal.d.ts +1 -0
  73. package/dist/components/Explorer/link-item/LinkModal.js +2 -2
  74. package/dist/components/Explorer/link-item/LinkModal.js.map +1 -1
  75. package/dist/components/Explorer/list-saved-views/SavedViews.js +4 -3
  76. package/dist/components/Explorer/list-saved-views/SavedViews.js.map +1 -1
  77. package/dist/components/Explorer/manage-view-settings/_shared/ColumnItem.js +5 -8
  78. package/dist/components/Explorer/manage-view-settings/_shared/ColumnItem.js.map +1 -1
  79. package/dist/components/Explorer/manage-view-settings/configure-display/attributes/SelectVisibleAttributes.js +3 -2
  80. package/dist/components/Explorer/manage-view-settings/configure-display/attributes/SelectVisibleAttributes.js.map +1 -1
  81. package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js +7 -6
  82. package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js.map +1 -1
  83. package/dist/components/Explorer/manage-view-settings/filter-items/FilterListItem.js +3 -2
  84. package/dist/components/Explorer/manage-view-settings/filter-items/FilterListItem.js.map +1 -1
  85. package/dist/components/Explorer/manage-view-settings/open-view-settings/useOpenViewSettings.js +4 -3
  86. package/dist/components/Explorer/manage-view-settings/open-view-settings/useOpenViewSettings.js.map +1 -1
  87. package/dist/components/Explorer/manage-view-settings/router-menu/SettingItem.js +3 -2
  88. package/dist/components/Explorer/manage-view-settings/router-menu/SettingItem.js.map +1 -1
  89. package/dist/components/Explorer/manage-view-settings/router-menu/SettingsPanel.js +3 -2
  90. package/dist/components/Explorer/manage-view-settings/router-menu/SettingsPanel.js.map +1 -1
  91. package/dist/components/Explorer/manage-view-settings/save-view/LabelViewFormModal.js +3 -2
  92. package/dist/components/Explorer/manage-view-settings/save-view/LabelViewFormModal.js.map +1 -1
  93. package/dist/components/Explorer/manage-view-settings/save-view/prepareViewForRequest.js +3 -0
  94. package/dist/components/Explorer/manage-view-settings/save-view/prepareViewForRequest.js.map +1 -1
  95. package/dist/components/Explorer/manage-view-settings/save-view/useCreateNewView.js +3 -2
  96. package/dist/components/Explorer/manage-view-settings/save-view/useCreateNewView.js.map +1 -1
  97. package/dist/components/Explorer/manage-view-settings/save-view/useDeleteView.js +4 -3
  98. package/dist/components/Explorer/manage-view-settings/save-view/useDeleteView.js.map +1 -1
  99. package/dist/components/Explorer/manage-view-settings/save-view/useEditLabelView.js +3 -2
  100. package/dist/components/Explorer/manage-view-settings/save-view/useEditLabelView.js.map +1 -1
  101. package/dist/components/Explorer/manage-view-settings/save-view/useResetView.js +3 -2
  102. package/dist/components/Explorer/manage-view-settings/save-view/useResetView.js.map +1 -1
  103. package/dist/components/Explorer/manage-view-settings/save-view/useShareView.js +3 -2
  104. package/dist/components/Explorer/manage-view-settings/save-view/useShareView.js.map +1 -1
  105. package/dist/components/Explorer/manage-view-settings/save-view/useUpdateView.js +3 -2
  106. package/dist/components/Explorer/manage-view-settings/save-view/useUpdateView.js.map +1 -1
  107. package/dist/components/Explorer/manage-view-settings/sort-items/SortItems.js +7 -6
  108. package/dist/components/Explorer/manage-view-settings/sort-items/SortItems.js.map +1 -1
  109. package/dist/components/Explorer/manage-view-settings/sort-items/SortListItem.js +3 -2
  110. package/dist/components/Explorer/manage-view-settings/sort-items/SortListItem.js.map +1 -1
  111. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js.map +1 -1
  112. package/dist/components/Explorer/useSearchInput.js +6 -2
  113. package/dist/components/Explorer/useSearchInput.js.map +1 -1
  114. package/dist/components/Filters/FiltersProvider.d.ts +2 -2
  115. package/dist/components/Filters/FiltersProvider.js.map +1 -1
  116. package/dist/components/Filters/_types.d.ts +3 -0
  117. package/dist/components/Filters/_types.js.map +1 -1
  118. package/dist/components/Filters/context/filtersReducer.js +7 -4
  119. package/dist/components/Filters/context/filtersReducer.js.map +1 -1
  120. package/dist/components/Filters/filter-items/CommonFilterItem.d.ts +1 -0
  121. package/dist/components/Filters/filter-items/CommonFilterItem.js +28 -8
  122. package/dist/components/Filters/filter-items/CommonFilterItem.js.map +1 -1
  123. package/dist/components/Filters/filter-items/EmptyValueCheckbox.d.ts +8 -0
  124. package/dist/components/Filters/filter-items/EmptyValueCheckbox.js +16 -0
  125. package/dist/components/Filters/filter-items/EmptyValueCheckbox.js.map +1 -0
  126. package/dist/components/Filters/filter-items/filter-type/BooleanAttributeDropdown.js +23 -9
  127. package/dist/components/Filters/filter-items/filter-type/BooleanAttributeDropdown.js.map +1 -1
  128. package/dist/components/Filters/filter-items/filter-type/ColorAttributeDropDown.js +9 -8
  129. package/dist/components/Filters/filter-items/filter-type/ColorAttributeDropDown.js.map +1 -1
  130. package/dist/components/Filters/filter-items/filter-type/FilterDropDown.js +4 -3
  131. package/dist/components/Filters/filter-items/filter-type/FilterDropDown.js.map +1 -1
  132. package/dist/components/Filters/filter-items/filter-type/FilterDropdownContent.js +1 -1
  133. package/dist/components/Filters/filter-items/filter-type/FilterDropdownContent.js.map +1 -1
  134. package/dist/components/Filters/filter-items/filter-type/FilterValueListDropDown.d.ts +0 -1
  135. package/dist/components/Filters/filter-items/filter-type/FilterValueListDropDown.js +17 -23
  136. package/dist/components/Filters/filter-items/filter-type/FilterValueListDropDown.js.map +1 -1
  137. package/dist/components/Filters/filter-items/filter-type/TreeAttributeDropDown.js +10 -12
  138. package/dist/components/Filters/filter-items/filter-type/TreeAttributeDropDown.js.map +1 -1
  139. package/dist/components/Filters/filter-items/filter-type/useConditionOptionsByType.js +3 -13
  140. package/dist/components/Filters/filter-items/filter-type/useConditionOptionsByType.js.map +1 -1
  141. package/dist/components/Filters/index.d.ts +1 -0
  142. package/dist/components/Filters/index.js +1 -0
  143. package/dist/components/Filters/index.js.map +1 -1
  144. package/dist/components/Filters/prepareFiltersForRequest.js +36 -3
  145. package/dist/components/Filters/prepareFiltersForRequest.js.map +1 -1
  146. package/dist/components/Filters/useFilters.d.ts +5 -0
  147. package/dist/components/Filters/useTransformFilters.js +4 -0
  148. package/dist/components/Filters/useTransformFilters.js.map +1 -1
  149. package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.d.ts +1 -3
  150. package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.js +6 -2
  151. package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.js.map +1 -1
  152. package/dist/components/LibraryItemsList/FiltersPanel/FiltersOptions.js +1 -8
  153. package/dist/components/LibraryItemsList/FiltersPanel/FiltersOptions.js.map +1 -1
  154. package/dist/components/LibraryItemsList/FiltersPanel/FiltersPanel.js +15 -17
  155. package/dist/components/LibraryItemsList/FiltersPanel/FiltersPanel.js.map +1 -1
  156. package/dist/components/LibraryItemsList/LibraryItemsListTable/ChooseTableColumns/ChooseTableColumns.js +0 -6
  157. package/dist/components/LibraryItemsList/LibraryItemsListTable/ChooseTableColumns/ChooseTableColumns.js.map +1 -1
  158. package/dist/components/LibraryItemsList/MenuView/MenuView.js +4 -4
  159. package/dist/components/LibraryItemsList/MenuView/MenuView.js.map +1 -1
  160. package/dist/components/LibraryItemsList/ViewPanel/View/View.d.ts +1 -3
  161. package/dist/components/LibraryItemsList/ViewPanel/View/View.js +9 -4
  162. package/dist/components/LibraryItemsList/ViewPanel/View/View.js.map +1 -1
  163. package/dist/components/LibraryItemsList/ViewPanel/ViewPanel.js +36 -14
  164. package/dist/components/LibraryItemsList/ViewPanel/ViewPanel.js.map +1 -1
  165. package/dist/components/Notifications/hooks/useNotificationSubscription.js +3 -2
  166. package/dist/components/Notifications/hooks/useNotificationSubscription.js.map +1 -1
  167. package/dist/components/RecordEdition/EditRecord/EditRecord.d.ts +1 -0
  168. package/dist/components/RecordEdition/EditRecord/EditRecord.js +3 -3
  169. package/dist/components/RecordEdition/EditRecord/EditRecord.js.map +1 -1
  170. package/dist/components/RecordEdition/EditRecordContent/antdUtils.js.map +1 -1
  171. package/dist/components/RecordEdition/EditRecordContent/hooks/__mocks__/useDeleteValueMutation.d.ts +1 -1
  172. package/dist/components/RecordEdition/EditRecordContent/hooks/__mocks__/useSaveValueMutation.d.ts +1 -1
  173. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.js +5 -20
  174. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.js.map +1 -1
  175. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.d.ts +1 -11
  176. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js +8 -95
  177. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js.map +1 -1
  178. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/_types.d.ts +8 -0
  179. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/_types.js +2 -0
  180. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/_types.js.map +1 -0
  181. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/LinkFieldExplorer.d.ts +6 -0
  182. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/LinkFieldExplorer.js +77 -0
  183. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/LinkFieldExplorer.js.map +1 -0
  184. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/{link-record → explorer/link-record}/useExplorerLinkRecords.d.ts +5 -7
  185. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/{link-record → explorer/link-record}/useExplorerLinkRecords.js +3 -10
  186. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/link-record/useExplorerLinkRecords.js.map +1 -0
  187. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/{link-record → explorer/link-record}/useLinkRecords.d.ts +5 -6
  188. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/link-record/useLinkRecords.js +98 -0
  189. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/link-record/useLinkRecords.js.map +1 -0
  190. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/{ExplorerWrapper.d.ts → InputExtraAlignLeft.d.ts} +54 -52
  191. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/{link-record/ActionButton.js → shared/InputExtraAlignLeft.js} +4 -4
  192. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/InputExtraAlignLeft.js.map +1 -0
  193. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/InputWrapper.d.ts +3 -0
  194. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/InputWrapper.js +31 -0
  195. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/InputWrapper.js.map +1 -0
  196. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/Wrapper.d.ts +3 -0
  197. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/Wrapper.js +8 -0
  198. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/Wrapper.js.map +1 -0
  199. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/LinkFieldTags.d.ts +3 -0
  200. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/LinkFieldTags.js +57 -0
  201. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/LinkFieldTags.js.map +1 -0
  202. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/link-record/useLinkRecord.d.ts +16 -0
  203. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/link-record/useLinkRecord.js +82 -0
  204. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/link-record/useLinkRecord.js.map +1 -0
  205. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/unlink-record/useUnlinkRecord.d.ts +19 -0
  206. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/unlink-record/useUnlinkRecord.js +43 -0
  207. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/tag/unlink-record/useUnlinkRecord.js.map +1 -0
  208. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/unlink-all-records/useUnlinkAllRecords.d.ts +16 -0
  209. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/unlink-all-records/useUnlinkAllRecords.js +27 -0
  210. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/unlink-all-records/useUnlinkAllRecords.js.map +1 -0
  211. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js +4 -3
  212. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js.map +1 -1
  213. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js +9 -2
  214. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js.map +1 -1
  215. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeFieldWrapper.d.ts +53 -51
  216. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.js +3 -2
  217. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.js.map +1 -1
  218. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.d.ts +2 -1
  219. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js +4 -7
  220. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js.map +1 -1
  221. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.d.ts +3 -2
  222. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.js +2 -2
  223. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.js.map +1 -1
  224. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.js +3 -2
  225. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.js.map +1 -1
  226. package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.d.ts +1 -0
  227. package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.js +2 -2
  228. package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.js.map +1 -1
  229. package/dist/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordInformations/RecordInformations.js +3 -2
  230. package/dist/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordInformations/RecordInformations.js.map +1 -1
  231. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js +4 -3
  232. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js.map +1 -1
  233. package/dist/components/RecordEdition/EditRecordSidebar/ValuesVersions/ValuesVersions.js +3 -2
  234. package/dist/components/RecordEdition/EditRecordSidebar/ValuesVersions/ValuesVersions.js.map +1 -1
  235. package/dist/components/RecordEdition/hooks/useGetSubmitButtons.js +2 -2
  236. package/dist/components/RecordEdition/hooks/useGetSubmitButtons.js.map +1 -1
  237. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.d.ts +1 -0
  238. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js +7 -7
  239. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js.map +1 -1
  240. package/dist/components/SelectTreeNode/SelectTreeNode.d.ts +2 -1
  241. package/dist/components/SelectTreeNode/SelectTreeNode.js +3 -3
  242. package/dist/components/SelectTreeNode/SelectTreeNode.js.map +1 -1
  243. package/dist/components/SelectTreeNode/SelectTreeNodeContent.d.ts +2 -1
  244. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js +6 -2
  245. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js.map +1 -1
  246. package/dist/components/SelectTreeNode/TreeNodeTitle.js +3 -2
  247. package/dist/components/SelectTreeNode/TreeNodeTitle.js.map +1 -1
  248. package/dist/constants.d.ts +1 -0
  249. package/dist/constants.js +1 -0
  250. package/dist/constants.js.map +1 -1
  251. package/dist/hooks/useIFrameMessenger/messageHandlers.d.ts +3 -1
  252. package/dist/hooks/useIFrameMessenger/messageHandlers.js +16 -0
  253. package/dist/hooks/useIFrameMessenger/messageHandlers.js.map +1 -1
  254. package/dist/hooks/useIFrameMessenger/schema.d.ts +6 -3
  255. package/dist/hooks/useIFrameMessenger/schema.js +2 -1
  256. package/dist/hooks/useIFrameMessenger/schema.js.map +1 -1
  257. package/dist/hooks/useIFrameMessenger/types.d.ts +32 -2
  258. package/dist/hooks/useIFrameMessenger/types.js.map +1 -1
  259. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.d.ts +2 -0
  260. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js +16 -2
  261. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js.map +1 -1
  262. package/dist/hooks/useIFrameMessengerClient/iFrameMessengerClientContext.d.ts +2 -0
  263. package/dist/hooks/useIFrameMessengerClient/useIFrameMessengerClient.d.ts +2 -0
  264. package/dist/locales/en/shared.json +18 -3
  265. package/dist/locales/fr/shared.json +18 -3
  266. package/package.json +40 -42
  267. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record/ActionButton.d.ts +0 -3
  268. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record/ActionButton.js.map +0 -1
  269. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record/useExplorerLinkRecords.js.map +0 -1
  270. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record/useLinkRecords.js +0 -100
  271. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record/useLinkRecords.js.map +0 -1
  272. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/ExplorerWrapper.js +0 -13
  273. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/ExplorerWrapper.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"EditRecord.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecord/EditRecord.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 isEqual from 'lodash/isEqual';\nimport {type FunctionComponent, useEffect, useReducer} from 'react';\nimport styled, {type CSSObject} from 'styled-components';\nimport {ErrorDisplayTypes} from '../../../constants';\nimport {useCanEditRecord} from '../../../hooks/useCanEditRecord';\nimport {type IValueVersion} from '../../../types/values';\nimport {\n AttributeType,\n type RecordFormAttributeStandardAttributeFragment,\n type RecordIdentityFragment,\n useActivateNewRecordMutation,\n} from '../../../_gqlTypes';\nimport {\n type IRecordPropertyLink,\n type IRecordPropertyStandard,\n type IRecordPropertyTree,\n} from '../../../_queries/records/getRecordPropertiesQuery';\nimport {ErrorBoundary} from '../../ErrorBoundary';\nimport {ErrorDisplay} from '../../ErrorDisplay';\nimport EditRecordContent from '../EditRecordContent';\nimport useExecuteDeleteValueMutation from '../EditRecordContent/hooks/useExecuteDeleteValueMutation';\nimport useSaveValueBatchMutation from '../EditRecordContent/hooks/useExecuteSaveValueBatchMutation';\nimport {\n type DeleteMultipleValuesFunc,\n type ISubmittedValueLink,\n type ISubmittedValueStandard,\n type ISubmittedValueTree,\n type IValueToSubmit,\n type MetadataSubmitValueFunc,\n type SubmitValueFunc,\n} from '../EditRecordContent/_types';\nimport editRecordReducer, {EditRecordReducerActionsTypes, initialState} from '../editRecordReducer/editRecordReducer';\nimport {EditRecordReducerContext} from '../editRecordReducer/editRecordReducerContext';\nimport {type FormInstance} from 'antd/lib/form/Form';\nimport EditRecordSidebar from '../EditRecordSidebar';\nimport EditRecordSkeleton from '../EditRecordSkeleton';\nimport {useQuery} from '@apollo/client';\nimport {getLibraryByIdQuery} from '_ui/_queries/libraries/getLibraryByIdQuery';\nimport EditRecordButtons from '../EditRecordButtons';\n\ninterface IEditRecordProps {\n antdForm: FormInstance;\n formId: string;\n isFormCreationMode: boolean;\n formElementId?: string;\n record: RecordIdentityFragment['whoAmI'] | null;\n library: string;\n onCreate?: (newRecord: RecordIdentityFragment['whoAmI']) => void;\n valuesVersion?: IValueVersion;\n showSidebar?: boolean;\n enableSidebar?: boolean;\n sidebarContainer?: HTMLElement;\n containerStyle?: CSSObject;\n withInfoButton: boolean;\n}\n\nconst sidebarWidth = '352px';\n\nconst Container = styled.div<{$shouldUseLayoutWithSidebar: boolean; style: CSSObject}>`\n display: grid;\n grid-template-columns: ${props => (props.$shouldUseLayoutWithSidebar ? `minmax(0, auto) ${sidebarWidth}` : '1fr')};\n grid-template-areas: ${props => (props.$shouldUseLayoutWithSidebar ? '\"content sidebar\"' : '\"content\"')};\n overflow: hidden;\n`;\n\nconst Content = styled.div<{$shouldUseLayoutWithSidebar: boolean}>`\n grid-area: content;\n padding: 24px;\n overflow-x: hidden;\n overflow-y: scroll;\n border-right: ${props =>\n props.$shouldUseLayoutWithSidebar ? '1px solid var(--general-utilities-border)' : 'none'};\n`;\n\nexport const EditRecord: FunctionComponent<IEditRecordProps> = ({\n antdForm,\n formId,\n isFormCreationMode,\n formElementId,\n record,\n library: libraryId,\n onCreate,\n valuesVersion,\n enableSidebar = false,\n showSidebar = false,\n sidebarContainer,\n containerStyle,\n withInfoButton,\n}) => {\n const [state, dispatch] = useReducer(editRecordReducer, {\n ...initialState,\n record,\n libraryId,\n libraryLabel: null,\n valuesVersion,\n originValuesVersion: valuesVersion,\n withInfoButton,\n });\n\n const {\n loading: permissionsLoading,\n canEdit,\n isReadOnly,\n } = useCanEditRecord({...record?.library, id: libraryId}, record?.id);\n\n const {data: libraryData} = useQuery(getLibraryByIdQuery, {\n variables: {id: [libraryId]},\n });\n\n const {saveValues} = useSaveValueBatchMutation();\n const {deleteValue} = useExecuteDeleteValueMutation(record);\n const [activateNewRecordMutation] = useActivateNewRecordMutation();\n\n // Update record in reducer when it changes. Might happen on record identity change (after value save)\n useEffect(() => {\n if (libraryData) {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_LIBRARY_LABEL,\n label: libraryData.libraries.list[0].label,\n });\n }\n }, [libraryData]);\n\n useEffect(() => {\n if (record && !isEqual(record, state.record)) {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_RECORD,\n record,\n });\n }\n }, [record]);\n\n useEffect(() => {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_ENABLE_SIDEBAR,\n enabled: enableSidebar,\n });\n }, [enableSidebar]);\n\n useEffect(() => {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_SIDEBAR_IS_OPEN,\n isOpen: showSidebar,\n });\n }, [showSidebar]);\n\n const _handleValueSubmit: SubmitValueFunc = async (values, version) =>\n saveValues(\n record,\n values.map(val => {\n const savableValue = {...val, attribute: val.attribute.id, metadata: val.metadata};\n\n if (val.value) {\n switch (val.attribute.type) {\n case AttributeType.advanced_link:\n case AttributeType.simple_link:\n savableValue.value = (val as ISubmittedValueLink).value.id;\n break;\n case AttributeType.tree:\n savableValue.value = (val as ISubmittedValueTree).value.id;\n break;\n default:\n savableValue.value = (val as ISubmittedValueStandard).value;\n break;\n }\n }\n\n return savableValue as IValueToSubmit;\n }),\n version,\n true, // deleteEmpty\n );\n\n const _handleMetadataSubmit: MetadataSubmitValueFunc = (value, attribute, metadata) => {\n let valueContent;\n switch (attribute.type) {\n case AttributeType.simple:\n case AttributeType.advanced:\n valueContent = (value as IRecordPropertyStandard).raw_payload;\n break;\n case AttributeType.advanced_link:\n case AttributeType.simple_link:\n valueContent = (value as IRecordPropertyLink).linkValue;\n break;\n case AttributeType.tree:\n valueContent = (value as IRecordPropertyTree).treeValue;\n break;\n }\n\n return _handleValueSubmit(\n [\n {\n idValue: value.id_value,\n attribute,\n value: valueContent,\n metadata,\n },\n ],\n null,\n );\n };\n\n /**\n * Submit the whole record: create record and batch save all stored values\n */\n const _handleRecordSubmit = async (attributes: RecordFormAttributeStandardAttributeFragment[]) => {\n const activateNewRecordResult = await activateNewRecordMutation({\n fetchPolicy: 'network-only',\n variables: {\n libraryId,\n recordId: record.id,\n formId,\n },\n });\n const errors = activateNewRecordResult?.data?.activateNewRecord.valuesErrors;\n if (errors == null || errors?.length === 0) {\n if (onCreate) {\n onCreate(activateNewRecordResult?.data?.activateNewRecord?.record?.whoAmI);\n }\n return;\n }\n antdForm.setFields(\n errors.map(error => {\n const attributeInError = attributes.find(attribute => attribute.id === error.attribute);\n\n const doesAttributeHaveMultipleFields =\n attributeInError?.multiple_values &&\n ![AttributeType.simple_link, AttributeType.advanced_link].includes(attributeInError.type);\n\n return {\n name:\n doesAttributeHaveMultipleFields && error.type === 'REQUIRED_ATTRIBUTE'\n ? [error.attribute, 0]\n : error.attribute,\n errors: [error.message],\n };\n }),\n );\n };\n\n const _handleDeleteAllValues: DeleteMultipleValuesFunc = async (attribute, values, version) => {\n const valuesToSave = values.map(value => ({\n idValue: value.id_value,\n attribute,\n value: null,\n }));\n\n return saveValues(record, valuesToSave, version, true);\n };\n\n const shouldUseLayoutWithSidebar = state.enableSidebar && state.isOpenSidebar && sidebarContainer === undefined;\n\n return (\n <ErrorBoundary>\n <EditRecordReducerContext.Provider value={{state, dispatch}}>\n <Container $shouldUseLayoutWithSidebar={shouldUseLayoutWithSidebar} style={containerStyle}>\n <EditRecordButtons />\n <Content $shouldUseLayoutWithSidebar={shouldUseLayoutWithSidebar}>\n {permissionsLoading ? (\n <EditRecordSkeleton rows={5} />\n ) : canEdit ? (\n <EditRecordContent\n antdForm={antdForm}\n formId={formId}\n isFormCreationMode={isFormCreationMode}\n formElementId={formElementId}\n record={record}\n library={libraryId}\n onRecordSubmit={_handleRecordSubmit}\n onValueSubmit={_handleValueSubmit}\n onValueDelete={deleteValue}\n onDeleteMultipleValues={_handleDeleteAllValues}\n readonly={isReadOnly}\n />\n ) : (\n <ErrorDisplay type={ErrorDisplayTypes.PERMISSION_ERROR} showActionButton={false} />\n )}\n </Content>\n <EditRecordSidebar onMetadataSubmit={_handleMetadataSubmit} sidebarContainer={sidebarContainer} />\n </Container>\n </EditRecordReducerContext.Provider>\n </ErrorBoundary>\n );\n};\n"]}
1
+ {"version":3,"file":"EditRecord.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecord/EditRecord.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 isEqual from 'lodash/isEqual';\nimport {type FunctionComponent, useEffect, useReducer} from 'react';\nimport styled, {type CSSObject} from 'styled-components';\nimport {ErrorDisplayTypes} from '../../../constants';\nimport {useCanEditRecord} from '../../../hooks/useCanEditRecord';\nimport {type IValueVersion} from '../../../types/values';\nimport {\n AttributeType,\n type RecordFormAttributeStandardAttributeFragment,\n type RecordIdentityFragment,\n useActivateNewRecordMutation,\n} from '../../../_gqlTypes';\nimport {\n type IRecordPropertyLink,\n type IRecordPropertyStandard,\n type IRecordPropertyTree,\n} from '../../../_queries/records/getRecordPropertiesQuery';\nimport {ErrorBoundary} from '../../ErrorBoundary';\nimport {ErrorDisplay} from '../../ErrorDisplay';\nimport EditRecordContent from '../EditRecordContent';\nimport useExecuteDeleteValueMutation from '../EditRecordContent/hooks/useExecuteDeleteValueMutation';\nimport useSaveValueBatchMutation from '../EditRecordContent/hooks/useExecuteSaveValueBatchMutation';\nimport {\n type DeleteMultipleValuesFunc,\n type ISubmittedValueLink,\n type ISubmittedValueStandard,\n type ISubmittedValueTree,\n type IValueToSubmit,\n type MetadataSubmitValueFunc,\n type SubmitValueFunc,\n} from '../EditRecordContent/_types';\nimport editRecordReducer, {EditRecordReducerActionsTypes, initialState} from '../editRecordReducer/editRecordReducer';\nimport {EditRecordReducerContext} from '../editRecordReducer/editRecordReducerContext';\nimport {type FormInstance} from 'antd/lib/form/Form';\nimport EditRecordSidebar from '../EditRecordSidebar';\nimport EditRecordSkeleton from '../EditRecordSkeleton';\nimport {useQuery} from '@apollo/client';\nimport {getLibraryByIdQuery} from '_ui/_queries/libraries/getLibraryByIdQuery';\nimport EditRecordButtons from '../EditRecordButtons';\n\ninterface IEditRecordProps {\n antdForm: FormInstance;\n formId: string;\n isFormCreationMode: boolean;\n formElementId?: string;\n record: RecordIdentityFragment['whoAmI'] | null;\n library: string;\n onCreate?: (newRecord: RecordIdentityFragment['whoAmI']) => void;\n valuesVersion?: IValueVersion;\n showSidebar?: boolean;\n enableSidebar?: boolean;\n sidebarContainer?: HTMLElement;\n containerStyle?: CSSObject;\n withInfoButton: boolean;\n removePadding?: boolean; // TODO: This prop should be remove when EditRecord will be moved to app-studio or data-studio deleted\n}\n\nconst sidebarWidth = '352px';\n\nconst Container = styled.div<{$shouldUseLayoutWithSidebar: boolean; style: CSSObject}>`\n display: grid;\n grid-template-columns: ${props => (props.$shouldUseLayoutWithSidebar ? `minmax(0, auto) ${sidebarWidth}` : '1fr')};\n grid-template-areas: ${props => (props.$shouldUseLayoutWithSidebar ? '\"content sidebar\"' : '\"content\"')};\n overflow: hidden;\n`;\n\nconst Content = styled.div<{$shouldUseLayoutWithSidebar: boolean; $removePadding: boolean}>`\n grid-area: content;\n padding: ${props => (props.$removePadding ? 'unset' : '24px')};\n overflow-x: hidden;\n overflow-y: scroll;\n border-right: ${props =>\n props.$shouldUseLayoutWithSidebar ? '1px solid var(--general-utilities-border)' : 'none'};\n`;\n\nexport const EditRecord: FunctionComponent<IEditRecordProps> = ({\n antdForm,\n formId,\n isFormCreationMode,\n formElementId,\n record,\n library: libraryId,\n onCreate,\n valuesVersion,\n enableSidebar = false,\n showSidebar = false,\n sidebarContainer,\n containerStyle,\n withInfoButton,\n removePadding = false,\n}) => {\n const [state, dispatch] = useReducer(editRecordReducer, {\n ...initialState,\n record,\n libraryId,\n libraryLabel: null,\n valuesVersion,\n originValuesVersion: valuesVersion,\n withInfoButton,\n });\n\n const {\n loading: permissionsLoading,\n canEdit,\n isReadOnly,\n } = useCanEditRecord({...record?.library, id: libraryId}, record?.id);\n\n const {data: libraryData} = useQuery(getLibraryByIdQuery, {\n variables: {id: [libraryId]},\n });\n\n const {saveValues} = useSaveValueBatchMutation();\n const {deleteValue} = useExecuteDeleteValueMutation(record);\n const [activateNewRecordMutation] = useActivateNewRecordMutation();\n\n // Update record in reducer when it changes. Might happen on record identity change (after value save)\n useEffect(() => {\n if (libraryData) {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_LIBRARY_LABEL,\n label: libraryData.libraries.list[0].label,\n });\n }\n }, [libraryData]);\n\n useEffect(() => {\n if (record && !isEqual(record, state.record)) {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_RECORD,\n record,\n });\n }\n }, [record]);\n\n useEffect(() => {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_ENABLE_SIDEBAR,\n enabled: enableSidebar,\n });\n }, [enableSidebar]);\n\n useEffect(() => {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_SIDEBAR_IS_OPEN,\n isOpen: showSidebar,\n });\n }, [showSidebar]);\n\n const _handleValueSubmit: SubmitValueFunc = async (values, version) =>\n saveValues(\n record,\n values.map(val => {\n const savableValue = {...val, attribute: val.attribute.id, metadata: val.metadata};\n\n if (val.value) {\n switch (val.attribute.type) {\n case AttributeType.advanced_link:\n case AttributeType.simple_link:\n savableValue.value = (val as ISubmittedValueLink).value.id;\n break;\n case AttributeType.tree:\n savableValue.value = (val as ISubmittedValueTree).value.id;\n break;\n default:\n savableValue.value = (val as ISubmittedValueStandard).value;\n break;\n }\n }\n\n return savableValue as IValueToSubmit;\n }),\n version,\n true, // deleteEmpty\n );\n\n const _handleMetadataSubmit: MetadataSubmitValueFunc = (value, attribute, metadata) => {\n let valueContent;\n switch (attribute.type) {\n case AttributeType.simple:\n case AttributeType.advanced:\n valueContent = (value as IRecordPropertyStandard).raw_payload;\n break;\n case AttributeType.advanced_link:\n case AttributeType.simple_link:\n valueContent = (value as IRecordPropertyLink).linkValue;\n break;\n case AttributeType.tree:\n valueContent = (value as IRecordPropertyTree).treeValue;\n break;\n }\n\n return _handleValueSubmit(\n [\n {\n idValue: value.id_value,\n attribute,\n value: valueContent,\n metadata,\n },\n ],\n null,\n );\n };\n\n /**\n * Submit the whole record: create record and batch save all stored values\n */\n const _handleRecordSubmit = async (attributes: RecordFormAttributeStandardAttributeFragment[]) => {\n const activateNewRecordResult = await activateNewRecordMutation({\n fetchPolicy: 'network-only',\n variables: {\n libraryId,\n recordId: record.id,\n formId,\n },\n });\n const errors = activateNewRecordResult?.data?.activateNewRecord.valuesErrors;\n if (errors == null || errors?.length === 0) {\n if (onCreate) {\n onCreate(activateNewRecordResult?.data?.activateNewRecord?.record?.whoAmI);\n }\n return;\n }\n antdForm.setFields(\n errors.map(error => {\n const attributeInError = attributes.find(attribute => attribute.id === error.attribute);\n\n const doesAttributeHaveMultipleFields =\n attributeInError?.multiple_values &&\n ![AttributeType.simple_link, AttributeType.advanced_link].includes(attributeInError.type);\n\n return {\n name:\n doesAttributeHaveMultipleFields && error.type === 'REQUIRED_ATTRIBUTE'\n ? [error.attribute, 0]\n : error.attribute,\n errors: [error.message],\n };\n }),\n );\n };\n\n const _handleDeleteAllValues: DeleteMultipleValuesFunc = async (attribute, values, version) => {\n const valuesToSave = values.map(value => ({\n idValue: value.id_value,\n attribute,\n value: null,\n }));\n\n return saveValues(record, valuesToSave, version, true);\n };\n\n const shouldUseLayoutWithSidebar = state.enableSidebar && state.isOpenSidebar && sidebarContainer === undefined;\n\n return (\n <ErrorBoundary>\n <EditRecordReducerContext.Provider value={{state, dispatch}}>\n <Container $shouldUseLayoutWithSidebar={shouldUseLayoutWithSidebar} style={containerStyle}>\n <EditRecordButtons />\n <Content $shouldUseLayoutWithSidebar={shouldUseLayoutWithSidebar} $removePadding={removePadding}>\n {permissionsLoading ? (\n <EditRecordSkeleton rows={5} />\n ) : canEdit ? (\n <EditRecordContent\n antdForm={antdForm}\n formId={formId}\n isFormCreationMode={isFormCreationMode}\n formElementId={formElementId}\n record={record}\n library={libraryId}\n onRecordSubmit={_handleRecordSubmit}\n onValueSubmit={_handleValueSubmit}\n onValueDelete={deleteValue}\n onDeleteMultipleValues={_handleDeleteAllValues}\n readonly={isReadOnly}\n />\n ) : (\n <ErrorDisplay type={ErrorDisplayTypes.PERMISSION_ERROR} showActionButton={false} />\n )}\n </Content>\n <EditRecordSidebar onMetadataSubmit={_handleMetadataSubmit} sidebarContainer={sidebarContainer} />\n </Container>\n </EditRecordReducerContext.Provider>\n </ErrorBoundary>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"antdUtils.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecordContent/antdUtils.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {\n type IRecordForm,\n type RecordFormElementAttribute,\n type RecordFormElementsValue,\n type RecordFormElementsValueLinkValue,\n type RecordFormElementsValueStandardValue,\n} from '_ui/hooks/useGetRecordForm';\nimport {AttributeFormat, AttributeType} from '_ui/_gqlTypes';\nimport {type IDateRangeValue} from '@leav/utils';\nimport {type Store} from 'antd/lib/form/interface';\nimport dayjs from 'dayjs';\n\nconst hasDateRangeValues = (dateRange: unknown): dateRange is IDateRangeValue =>\n (dateRange as IDateRangeValue).from !== undefined && (dateRange as IDateRangeValue).to !== undefined;\n\nconst getCalculatedValue = values => values.find(value => value.isCalculated);\n\nconst getInheritedValue = values => values.find(value => value.isInherited);\n\nconst getUserInputValue = values =>\n values.find(value => !value.isInherited && !value.isCalculated && value.raw_payload !== null);\n\nconst isRecordFormElementsValueLinkValue = (\n value: RecordFormElementsValue,\n attribute: RecordFormElementAttribute,\n): value is RecordFormElementsValueLinkValue =>\n attribute.type === AttributeType.simple_link ||\n (attribute.type === AttributeType.advanced_link && attribute.multiple_values === false);\n\nconst isRecordFormElementsValueLinkValues = (\n values: RecordFormElementsValue[],\n attribute: RecordFormElementAttribute,\n): values is RecordFormElementsValueLinkValue[] =>\n attribute.type === AttributeType.advanced_link && attribute.multiple_values === true;\n\nconst isRecordFormElementsMultipleValues = (attribute: RecordFormElementAttribute) =>\n attribute.type === AttributeType.advanced && attribute.multiple_values === true;\n\nconst formatStandardInitialValue = (\n standardValue: RecordFormElementsValueStandardValue,\n attribute: RecordFormElementAttribute,\n) => {\n if (!standardValue?.raw_payload) {\n return getEmptyInitialValue(attribute);\n }\n\n switch (attribute.format) {\n case AttributeFormat.color:\n case AttributeFormat.text:\n case AttributeFormat.rich_text:\n case AttributeFormat.boolean:\n return standardValue.raw_payload;\n case AttributeFormat.numeric:\n return Number(standardValue.raw_payload);\n case AttributeFormat.date:\n return dayjs.unix(Number(standardValue.raw_payload));\n case AttributeFormat.date_range:\n if (hasDateRangeValues(standardValue.raw_payload)) {\n return [\n dayjs.unix(Number(standardValue.raw_payload.from)),\n dayjs.unix(Number(standardValue.raw_payload.to)),\n ];\n } else if (typeof standardValue.raw_payload === 'string') {\n const convertedFieldValue = JSON.parse(standardValue.raw_payload) as any;\n return [dayjs.unix(Number(convertedFieldValue.from)), dayjs.unix(Number(convertedFieldValue.to))];\n }\n }\n};\n\nexport const EMPTY_INITIAL_VALUE_STRING = '';\nexport const EMPTY_INITIAL_VALUE_UNDEFINED = undefined;\n\nexport const getEmptyInitialValue = (attribute: RecordFormElementAttribute) => {\n if ([AttributeFormat.date_range, AttributeFormat.color].includes(attribute.format)) {\n return EMPTY_INITIAL_VALUE_UNDEFINED;\n }\n return EMPTY_INITIAL_VALUE_STRING;\n};\n\nexport const getAntdDisplayedValue = (\n values: RecordFormElementsValueStandardValue[],\n attribute: RecordFormElementAttribute,\n) =>\n formatStandardInitialValue(\n getUserInputValue(values) ?? getInheritedValue(values) ?? getCalculatedValue(values) ?? null,\n attribute,\n );\n\nexport const getAntdFormInitialValues = (recordForm: IRecordForm) =>\n recordForm.elements.reduce<Store>((acc, {attribute, values}) => {\n if (!attribute) {\n return acc;\n }\n\n const value = getUserInputValue(values) ?? getInheritedValue(values) ?? getCalculatedValue(values) ?? null;\n\n if (isRecordFormElementsValueLinkValue(value, attribute)) {\n acc[attribute.id] = value?.linkValue?.id;\n return acc;\n }\n\n if (isRecordFormElementsValueLinkValues(values, attribute)) {\n acc[attribute.id] = values.map(val => val?.linkValue?.id ?? undefined);\n return acc;\n }\n\n if (isRecordFormElementsMultipleValues(attribute)) {\n const userInputValues = values.filter(val => val.id_value);\n const calculatedValues = values.filter(val => val.isCalculated);\n const inheritedValues = values.filter(val => val.isInherited);\n\n const effectiveValues =\n userInputValues.length > 0\n ? userInputValues\n : calculatedValues.length > 0\n ? calculatedValues\n : inheritedValues.length > 0\n ? inheritedValues\n : [];\n\n acc[attribute.id] =\n effectiveValues.length === 0\n ? [getEmptyInitialValue(attribute)]\n : effectiveValues\n .sort((a, b) => Number(a.id_value) - Number(b.id_value))\n .map(val => formatStandardInitialValue(val, attribute));\n return acc;\n }\n\n const standardValue = value as RecordFormElementsValueStandardValue;\n\n acc[attribute.id] = formatStandardInitialValue(standardValue, attribute);\n\n return acc;\n }, {});\n"]}
1
+ {"version":3,"file":"antdUtils.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecordContent/antdUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {\n type IRecordForm,\n type RecordFormElementAttribute,\n type RecordFormElementsValue,\n type RecordFormElementsValueLinkValue,\n type RecordFormElementsValueStandardValue,\n} from '_ui/hooks/useGetRecordForm';\nimport {AttributeFormat, AttributeType} from '_ui/_gqlTypes';\nimport {type IDateRangeValue} from '@leav/utils';\nimport {type Store} from 'antd/lib/form/interface';\nimport dayjs from 'dayjs';\n\nconst hasDateRangeValues = (dateRange: unknown): dateRange is IDateRangeValue =>\n (dateRange as IDateRangeValue).from !== undefined && (dateRange as IDateRangeValue).to !== undefined;\n\nconst getCalculatedValue = values => values.find(value => value.isCalculated);\n\nconst getInheritedValue = values => values.find(value => value.isInherited);\n\nconst getUserInputValue = values =>\n values.find(value => !value.isInherited && !value.isCalculated && value.raw_payload !== null);\n\nconst isRecordFormElementsValueLinkValue = (\n value: RecordFormElementsValue,\n attribute: RecordFormElementAttribute,\n): value is RecordFormElementsValueLinkValue =>\n attribute.type === AttributeType.simple_link ||\n (attribute.type === AttributeType.advanced_link && attribute.multiple_values === false);\n\nconst isRecordFormElementsValueLinkValues = (\n values: RecordFormElementsValue[],\n attribute: RecordFormElementAttribute,\n): values is RecordFormElementsValueLinkValue[] =>\n attribute.type === AttributeType.advanced_link && attribute.multiple_values === true;\n\nconst isRecordFormElementsMultipleValues = (attribute: RecordFormElementAttribute) =>\n attribute.type === AttributeType.advanced && attribute.multiple_values === true;\n\nconst formatStandardInitialValue = (\n standardValue: RecordFormElementsValueStandardValue,\n attribute: RecordFormElementAttribute,\n) => {\n if (!standardValue?.raw_payload) {\n return getEmptyInitialValue(attribute);\n }\n\n switch (attribute.format) {\n case AttributeFormat.color:\n case AttributeFormat.text:\n case AttributeFormat.rich_text:\n case AttributeFormat.boolean:\n return standardValue.raw_payload;\n case AttributeFormat.numeric:\n return Number(standardValue.raw_payload);\n case AttributeFormat.date:\n return dayjs.unix(Number(standardValue.raw_payload));\n case AttributeFormat.date_range:\n if (hasDateRangeValues(standardValue.raw_payload)) {\n return [\n dayjs.unix(Number(standardValue.raw_payload.from)),\n dayjs.unix(Number(standardValue.raw_payload.to)),\n ];\n } else if (typeof standardValue.raw_payload === 'string') {\n const convertedFieldValue = JSON.parse(standardValue.raw_payload) as any;\n return [dayjs.unix(Number(convertedFieldValue.from)), dayjs.unix(Number(convertedFieldValue.to))];\n }\n }\n};\n\nexport const EMPTY_INITIAL_VALUE_STRING = '';\nexport const EMPTY_INITIAL_VALUE_UNDEFINED = undefined;\n\nexport const getEmptyInitialValue = (attribute: RecordFormElementAttribute) => {\n if ([AttributeFormat.date_range, AttributeFormat.color].includes(attribute.format)) {\n return EMPTY_INITIAL_VALUE_UNDEFINED;\n }\n return EMPTY_INITIAL_VALUE_STRING;\n};\n\nexport const getAntdDisplayedValue = (\n values: RecordFormElementsValueStandardValue[],\n attribute: RecordFormElementAttribute,\n) =>\n formatStandardInitialValue(\n getUserInputValue(values) ?? getInheritedValue(values) ?? getCalculatedValue(values) ?? null,\n attribute,\n );\n\nexport const getAntdFormInitialValues = (recordForm: IRecordForm) =>\n recordForm.elements.reduce<Store>((acc, {attribute, values}) => {\n if (!attribute) {\n return acc;\n }\n\n const value = getUserInputValue(values) ?? getInheritedValue(values) ?? getCalculatedValue(values) ?? null;\n\n if (isRecordFormElementsValueLinkValue(value, attribute)) {\n acc[attribute.id] = value?.linkValue?.id;\n return acc;\n }\n\n if (isRecordFormElementsValueLinkValues(values, attribute)) {\n acc[attribute.id] = values.map(val => val?.linkValue?.id ?? undefined);\n return acc;\n }\n\n if (isRecordFormElementsMultipleValues(attribute)) {\n const userInputValues = values.filter(val => val.id_value);\n const calculatedValues = values.filter(val => val.isCalculated);\n const inheritedValues = values.filter(val => val.isInherited);\n\n const effectiveValues =\n userInputValues.length > 0\n ? userInputValues\n : calculatedValues.length > 0\n ? calculatedValues\n : inheritedValues.length > 0\n ? inheritedValues\n : [];\n\n acc[attribute.id] =\n effectiveValues.length === 0\n ? [getEmptyInitialValue(attribute)]\n : effectiveValues\n .sort((a, b) => Number(a.id_value) - Number(b.id_value))\n .map(val => formatStandardInitialValue(val, attribute));\n return acc;\n }\n\n const standardValue = value as RecordFormElementsValueStandardValue;\n\n acc[attribute.id] = formatStandardInitialValue(standardValue, attribute);\n\n return acc;\n }, {});\n"]}
@@ -1,3 +1,3 @@
1
1
  export default function useDeleteValueMutation(): {
2
- deleteValue: jest.Mock<any, any>;
2
+ deleteValue: jest.Mock<any, any, any>;
3
3
  };
@@ -1,3 +1,3 @@
1
1
  export default function useSaveValueMutation(): {
2
- saveValue: jest.Mock<any, any>;
2
+ saveValue: jest.Mock<any, any, any>;
3
3
  };
@@ -3,12 +3,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  // This file is released under LGPL V3
4
4
  // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
5
5
  import { Button, Dropdown, Space } from 'antd';
6
- import { VscLayers, VscLayersActive } from 'react-icons/vsc';
7
- import { themeVars } from '../../../../../antdTheme';
8
6
  import { BasicButton } from '../../../../../components';
9
7
  import { useSharedTranslation } from '../../../../../hooks/useSharedTranslation';
10
8
  import { getValueVersionLabel } from '../../../../../_utils';
11
9
  import { VersionFieldScope } from '../../_types';
10
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
11
+ import { faLayerGroup } from '@fortawesome/free-solid-svg-icons';
12
12
  function ValuesVersionBtn({ versions, activeScope, onScopeChange, basic, ...buttonProps }) {
13
13
  const { t } = useSharedTranslation();
14
14
  const hasInheritedVersion = !!versions[VersionFieldScope.INHERITED];
@@ -18,37 +18,22 @@ function ValuesVersionBtn({ versions, activeScope, onScopeChange, basic, ...butt
18
18
  onScopeChange(item.key);
19
19
  };
20
20
  const currentVersionLabel = getValueVersionLabel(versions[VersionFieldScope.CURRENT]);
21
- const iconProps = {
22
- size: '1.8em',
23
- style: {
24
- paddingTop: '5px',
25
- },
26
- };
27
- const icon = activeScope === VersionFieldScope.CURRENT ? _jsx(VscLayersActive, { ...iconProps }) : _jsx(VscLayers, { ...iconProps });
28
21
  const menuItems = [
29
22
  {
30
23
  key: VersionFieldScope.CURRENT,
31
- label: (_jsxs(Space, { style: { paddingLeft: hasInheritedVersion ? '1rem' : 0 }, children: [icon, currentVersionLabel] })),
24
+ label: (_jsxs(Space, { style: { paddingLeft: hasInheritedVersion ? '1rem' : 0 }, children: [_jsx(FontAwesomeIcon, { icon: faLayerGroup }), currentVersionLabel] })),
32
25
  onClick: _handleVersionSelect,
33
26
  },
34
27
  ];
35
28
  if (hasInheritedVersion) {
36
29
  const inheritedVersionLabel = getValueVersionLabel(versions[VersionFieldScope.INHERITED]) + ` (${t('values_version.inherited_value')})`;
37
- const inheritedIconProps = {
38
- size: '1.8em',
39
- style: {
40
- paddingTop: '5px',
41
- color: themeVars.inheritedValuesVersionColor,
42
- },
43
- };
44
- const inheritedIcon = activeScope === VersionFieldScope.INHERITED ? (_jsx(VscLayersActive, { ...inheritedIconProps })) : (_jsx(VscLayers, { ...inheritedIconProps }));
45
30
  menuItems.unshift({
46
31
  key: VersionFieldScope.INHERITED,
47
- label: (_jsxs(Space, { children: [inheritedIcon, inheritedVersionLabel] })),
32
+ label: (_jsxs(Space, { children: [_jsx(FontAwesomeIcon, { icon: faLayerGroup }), inheritedVersionLabel] })),
48
33
  onClick: _handleVersionSelect,
49
34
  });
50
35
  }
51
- const buttonIcon = _jsx(VscLayers, { size: "1.35em", style: { paddingTop: '3px' } });
36
+ const buttonIcon = _jsx(FontAwesomeIcon, { icon: faLayerGroup });
52
37
  const button = basic ? (_jsx(BasicButton, { "aria-label": "values-version", shape: "circle", ...buttonProps, icon: buttonIcon, centered: true })) : (_jsx(Button, { "aria-label": "values-version", shape: "circle", ...buttonProps, icon: buttonIcon }));
53
38
  return (_jsx(Dropdown, { trigger: ['click'], menu: { items: menuItems, activeKey: activeScope }, children: button }));
54
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ValuesVersionBtn.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.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 {Button, type ButtonProps, Dropdown, Space} from 'antd';\nimport {type ItemType} from 'antd/es/menu/interface';\nimport {type MenuItemType} from 'rc-menu/lib/interface';\nimport {VscLayers, VscLayersActive} from 'react-icons/vsc';\nimport {themeVars} from '_ui/antdTheme';\nimport {BasicButton} from '_ui/components';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type IValueVersion} from '_ui/types/values';\nimport {getValueVersionLabel} from '_ui/_utils';\nimport {VersionFieldScope} from '../../_types';\n\ninterface IValuesVersionBtnProps extends Omit<ButtonProps, 'value'> {\n versions: {[scope in VersionFieldScope]: IValueVersion};\n activeScope: VersionFieldScope;\n onScopeChange: (scope: VersionFieldScope) => void;\n basic?: boolean;\n}\n\nfunction ValuesVersionBtn({\n versions,\n activeScope,\n onScopeChange,\n basic,\n ...buttonProps\n}: IValuesVersionBtnProps): JSX.Element {\n const {t} = useSharedTranslation();\n const hasInheritedVersion = !!versions[VersionFieldScope.INHERITED];\n\n const _handleVersionSelect: MenuItemType['onClick'] = item => {\n item.domEvent.preventDefault();\n item.domEvent.stopPropagation();\n\n onScopeChange(item.key as VersionFieldScope);\n };\n\n const currentVersionLabel = getValueVersionLabel(versions[VersionFieldScope.CURRENT]);\n const iconProps = {\n size: '1.8em',\n style: {\n paddingTop: '5px',\n },\n };\n const icon =\n activeScope === VersionFieldScope.CURRENT ? <VscLayersActive {...iconProps} /> : <VscLayers {...iconProps} />;\n const menuItems: ItemType[] = [\n {\n key: VersionFieldScope.CURRENT,\n label: (\n <Space style={{paddingLeft: hasInheritedVersion ? '1rem' : 0}}>\n {icon}\n {currentVersionLabel}\n </Space>\n ),\n onClick: _handleVersionSelect,\n },\n ];\n\n if (hasInheritedVersion) {\n const inheritedVersionLabel =\n getValueVersionLabel(versions[VersionFieldScope.INHERITED]) + ` (${t('values_version.inherited_value')})`;\n\n const inheritedIconProps = {\n size: '1.8em',\n style: {\n paddingTop: '5px',\n color: themeVars.inheritedValuesVersionColor,\n },\n };\n\n const inheritedIcon =\n activeScope === VersionFieldScope.INHERITED ? (\n <VscLayersActive {...inheritedIconProps} />\n ) : (\n <VscLayers {...inheritedIconProps} />\n );\n menuItems.unshift({\n key: VersionFieldScope.INHERITED,\n label: (\n <Space>\n {inheritedIcon}\n {inheritedVersionLabel}\n </Space>\n ),\n onClick: _handleVersionSelect,\n });\n }\n\n const buttonIcon = <VscLayers size=\"1.35em\" style={{paddingTop: '3px'}} />;\n const button = basic ? (\n <BasicButton aria-label=\"values-version\" shape=\"circle\" {...buttonProps} icon={buttonIcon} centered />\n ) : (\n <Button aria-label=\"values-version\" shape=\"circle\" {...buttonProps} icon={buttonIcon} />\n );\n\n return (\n <Dropdown trigger={['click']} menu={{items: menuItems, activeKey: activeScope}}>\n {button}\n </Dropdown>\n );\n}\n\nexport default ValuesVersionBtn;\n"]}
1
+ {"version":3,"file":"ValuesVersionBtn.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,MAAM,EAAoB,QAAQ,EAAE,KAAK,EAAC,MAAM,MAAM,CAAC;AAI/D,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAC,oBAAoB,EAAC,MAAM,YAAY,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,YAAY,EAAC,MAAM,mCAAmC,CAAC;AAS/D,SAAS,gBAAgB,CAAC,EACtB,QAAQ,EACR,WAAW,EACX,aAAa,EACb,KAAK,EACL,GAAG,WAAW,EACO;IACrB,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,mBAAmB,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAEpE,MAAM,oBAAoB,GAA4B,IAAI,CAAC,EAAE;QACzD,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QAEhC,aAAa,CAAC,IAAI,CAAC,GAAwB,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEtF,MAAM,SAAS,GAAe;QAC1B;YACI,GAAG,EAAE,iBAAiB,CAAC,OAAO;YAC9B,KAAK,EAAE,CACH,MAAC,KAAK,IAAC,KAAK,EAAE,EAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,aACzD,KAAC,eAAe,IAAC,IAAI,EAAE,YAAY,GAAI,EACtC,mBAAmB,IAChB,CACX;YACD,OAAO,EAAE,oBAAoB;SAChC;KACJ,CAAC;IAEF,IAAI,mBAAmB,EAAE,CAAC;QACtB,MAAM,qBAAqB,GACvB,oBAAoB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,gCAAgC,CAAC,GAAG,CAAC;QAE9G,SAAS,CAAC,OAAO,CAAC;YACd,GAAG,EAAE,iBAAiB,CAAC,SAAS;YAChC,KAAK,EAAE,CACH,MAAC,KAAK,eACF,KAAC,eAAe,IAAC,IAAI,EAAE,YAAY,GAAI,EACtC,qBAAqB,IAClB,CACX;YACD,OAAO,EAAE,oBAAoB;SAChC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,UAAU,GAAG,KAAC,eAAe,IAAC,IAAI,EAAE,YAAY,GAAI,CAAC;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CACnB,KAAC,WAAW,kBAAY,gBAAgB,EAAC,KAAK,EAAC,QAAQ,KAAK,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,SAAG,CACzG,CAAC,CAAC,CAAC,CACA,KAAC,MAAM,kBAAY,gBAAgB,EAAC,KAAK,EAAC,QAAQ,KAAK,WAAW,EAAE,IAAI,EAAE,UAAU,GAAI,CAC3F,CAAC;IAEF,OAAO,CACH,KAAC,QAAQ,IAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAC,YACzE,MAAM,GACA,CACd,CAAC;AACN,CAAC;AAED,eAAe,gBAAgB,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 {Button, type ButtonProps, Dropdown, Space} from 'antd';\nimport {type ItemType} from 'antd/es/menu/interface';\nimport {type MenuItemType} from 'rc-menu/lib/interface';\nimport {themeVars} from '_ui/antdTheme';\nimport {BasicButton} from '_ui/components';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type IValueVersion} from '_ui/types/values';\nimport {getValueVersionLabel} from '_ui/_utils';\nimport {VersionFieldScope} from '../../_types';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faLayerGroup} from '@fortawesome/free-solid-svg-icons';\n\ninterface IValuesVersionBtnProps extends Omit<ButtonProps, 'value'> {\n versions: {[scope in VersionFieldScope]: IValueVersion};\n activeScope: VersionFieldScope;\n onScopeChange: (scope: VersionFieldScope) => void;\n basic?: boolean;\n}\n\nfunction ValuesVersionBtn({\n versions,\n activeScope,\n onScopeChange,\n basic,\n ...buttonProps\n}: IValuesVersionBtnProps): JSX.Element {\n const {t} = useSharedTranslation();\n const hasInheritedVersion = !!versions[VersionFieldScope.INHERITED];\n\n const _handleVersionSelect: MenuItemType['onClick'] = item => {\n item.domEvent.preventDefault();\n item.domEvent.stopPropagation();\n\n onScopeChange(item.key as VersionFieldScope);\n };\n\n const currentVersionLabel = getValueVersionLabel(versions[VersionFieldScope.CURRENT]);\n\n const menuItems: ItemType[] = [\n {\n key: VersionFieldScope.CURRENT,\n label: (\n <Space style={{paddingLeft: hasInheritedVersion ? '1rem' : 0}}>\n <FontAwesomeIcon icon={faLayerGroup} />\n {currentVersionLabel}\n </Space>\n ),\n onClick: _handleVersionSelect,\n },\n ];\n\n if (hasInheritedVersion) {\n const inheritedVersionLabel =\n getValueVersionLabel(versions[VersionFieldScope.INHERITED]) + ` (${t('values_version.inherited_value')})`;\n\n menuItems.unshift({\n key: VersionFieldScope.INHERITED,\n label: (\n <Space>\n <FontAwesomeIcon icon={faLayerGroup} />\n {inheritedVersionLabel}\n </Space>\n ),\n onClick: _handleVersionSelect,\n });\n }\n\n const buttonIcon = <FontAwesomeIcon icon={faLayerGroup} />;\n const button = basic ? (\n <BasicButton aria-label=\"values-version\" shape=\"circle\" {...buttonProps} icon={buttonIcon} centered />\n ) : (\n <Button aria-label=\"values-version\" shape=\"circle\" {...buttonProps} icon={buttonIcon} />\n );\n\n return (\n <Dropdown trigger={['click']} menu={{items: menuItems, activeKey: activeScope}}>\n {button}\n </Dropdown>\n );\n}\n\nexport default ValuesVersionBtn;\n"]}
@@ -1,14 +1,4 @@
1
1
  import { type FunctionComponent } from 'react';
2
- import { type RecordFormElementsValueLinkValue } from '../../../../../hooks/useGetRecordForm/useGetRecordForm';
3
- import { type ILinkFieldState } from '../../reducers/linkFieldReducer/linkFieldReducer';
4
- import { type IFormElementProps } from '../../_types';
5
- import { type IFormLinkFieldSettings } from '@leav/utils/src/types/forms';
6
- export type LinkFieldReducerState = ILinkFieldState<RecordFormElementsValueLinkValue>;
7
- type LinkFieldProps = IFormElementProps<IFormLinkFieldSettings & {
8
- columns?: Array<{
9
- id: string;
10
- label: Record<string, string>;
11
- }>;
12
- }>;
2
+ import { type LinkFieldProps } from './_types';
13
3
  declare const LinkField: FunctionComponent<LinkFieldProps>;
14
4
  export default LinkField;
@@ -1,99 +1,12 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- // Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06
3
- // This file is released under LGPL V3
4
- // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
5
- import { localizedTranslation } from '@leav/utils';
6
- import { useState } from 'react';
7
- import { useEditRecordReducer } from '../../../../../components/RecordEdition/editRecordReducer/useEditRecordReducer';
8
- import { AntForm, KitInputWrapper } from 'aristid-ds';
9
- import { useLang } from '../../../../../hooks';
10
- import styled, { css } from 'styled-components';
11
- import { LINK_FIELD_ID_PREFIX } from '../../../../../constants';
12
- import { computeCalculatedFlags, computeInheritedFlags } from '../shared/calculatedInheritedFlags';
13
- import { ComputeIndicator } from '../shared/ComputeIndicator';
14
- import { useOutsideInteractionDetector } from '../shared/useOutsideInteractionDetector';
15
- import { useLinkRecords } from './link-record/useLinkRecords';
16
- import { CREATE_RECORD_MODAL_CLASSNAME, EDIT_RECORD_MODAL_CLASSNAME, LINK_RECORDS_MODAL_CLASSNAME, } from '../../../../../components/Explorer/_constants';
17
- const Wrapper = styled.div `
18
- margin-bottom: ${props => (props.$metadataEdit ? 0 : '1.5em')};
19
- `;
20
- const KitInputExtraAlignLeft = styled.div `
21
- margin-right: auto;
22
- line-height: 12px;
23
- `;
24
- const KitInputWrapperStyled = styled(KitInputWrapper) `
25
- ${props => props.$readonlyBackground &&
26
- css `
27
- .kit-input-wrapper-content {
28
- background-color: var(--general-utilities-neutral-light);
29
- }
30
- `}
31
-
32
- &.disabled {
33
- .kit-input-wrapper-content {
34
- background-color: var(--general-utilities-neutral-light);
35
- }
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { LinkFieldExplorer } from './explorer/LinkFieldExplorer';
3
+ import { LinkFieldTags } from './tag/LinkFieldTags';
4
+ import { DisplayMode } from '@leav/utils';
5
+ const LinkField = ({ element, readonly, isFormCreationMode, onValueSubmit, onValueDelete, onDeleteMultipleValues, metadataEdit = false, }) => {
6
+ if (element.settings.displayMode === DisplayMode.TAG) {
7
+ return (_jsx(LinkFieldTags, { element: element, readonly: readonly, isFormCreationMode: isFormCreationMode, onValueSubmit: onValueSubmit, onValueDelete: onValueDelete, onDeleteMultipleValues: onDeleteMultipleValues, metadataEdit: metadataEdit }));
36
8
  }
37
-
38
- &.error:not(.disabled) {
39
- .kit-input-wrapper-content {
40
- background-color: var(--general-utilities-error-light);
41
- }
42
- }
43
-
44
- .ant-empty-image,
45
- .ant-empty-description {
46
- display: none;
47
- }
48
- `;
49
- const LinkField = ({ element, readonly, isFormCreationMode, onDeleteMultipleValues, metadataEdit = false, }) => {
50
- const { state, dispatch } = useEditRecordReducer();
51
- const { lang } = useLang();
52
- const { settings, attribute, joinLibraryContext, } = element;
53
- const [backendValues, setBackendValues] = useState(element.values);
54
- const calculatedFlags = computeCalculatedFlags(backendValues);
55
- const inheritedFlags = computeInheritedFlags(backendValues);
56
- const form = AntForm.useFormInstance();
57
- const label = localizedTranslation(settings.label, lang);
58
- const fieldErrors = form.getFieldError(attribute.id);
59
- // TODO: Temporary const that should be removed (and all it's usages) when we will have a proper way to override multiple values
60
- const tmpCantOverrideValues = attribute.multiple_values &&
61
- (calculatedFlags.calculatedValues?.length > 1 || inheritedFlags.inheritedValues?.length > 1);
62
- const columnsToDisplay = settings.columns?.map(({ id }) => id);
63
- const isReadOnly = attribute.readonly || !attribute.permissions.edit_value || readonly || tmpCantOverrideValues;
64
- const isFieldInError = fieldErrors.length > 0;
65
- useOutsideInteractionDetector({
66
- attribute,
67
- activeAttribute: state.activeAttribute,
68
- attributePrefix: LINK_FIELD_ID_PREFIX,
69
- dispatch,
70
- backendValues,
71
- allowedSelectors: [
72
- 'div[role="status"]:has(.kit-snackbar-message)',
73
- '.kit-modal-wrapper',
74
- `.${CREATE_RECORD_MODAL_CLASSNAME}`,
75
- `.${LINK_RECORDS_MODAL_CLASSNAME}`,
76
- `.${EDIT_RECORD_MODAL_CLASSNAME}`,
77
- '.kit-select-dropdown-content',
78
- ],
79
- });
80
- const editionFormId = settings.editFormId ? settings.editFormId : 'edition';
81
- const { UnlinkAllRecords, LinkRecordsExplorer } = useLinkRecords({
82
- libraryId: state.libraryId,
83
- recordId: state.record?.id,
84
- editionFormId,
85
- isFormCreationMode,
86
- attribute,
87
- joinLibraryContext,
88
- columnsToDisplay,
89
- backendValues,
90
- setBackendValues,
91
- isReadOnly,
92
- isFieldInError,
93
- hasNoValue: backendValues.length === 0,
94
- onDeleteMultipleValues,
95
- });
96
- return (_jsx(Wrapper, { "$metadataEdit": metadataEdit, children: _jsx(AntForm.Item, { name: attribute.id, noStyle: true, children: _jsx(KitInputWrapperStyled, { id: LINK_FIELD_ID_PREFIX + attribute.id, "data-testid": "link-field", label: label, required: attribute.required, bordered: true, status: isFieldInError ? 'error' : undefined, helper: isFieldInError ? String(fieldErrors[0]) : undefined, extra: _jsxs(_Fragment, { children: [_jsx(KitInputExtraAlignLeft, { children: _jsx(ComputeIndicator, { calculatedFlags: calculatedFlags, inheritedFlags: inheritedFlags }) }), UnlinkAllRecords] }), "$readonlyBackground": isReadOnly, children: LinkRecordsExplorer }) }) }));
9
+ return (_jsx(LinkFieldExplorer, { element: element, readonly: readonly, isFormCreationMode: isFormCreationMode, onDeleteMultipleValues: onDeleteMultipleValues, metadataEdit: metadataEdit }));
97
10
  };
98
11
  export default LinkField;
99
12
  //# sourceMappingURL=LinkField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinkField.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.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 {type FunctionComponent, useEffect, useState} from 'react';\nimport {useEditRecordReducer} from '_ui/components/RecordEdition/editRecordReducer/useEditRecordReducer';\nimport {type RecordFormElementsValueLinkValue} from '_ui/hooks/useGetRecordForm/useGetRecordForm';\nimport {type JoinLibraryContextFragment, type RecordFormAttributeLinkAttributeFragment} from '_ui/_gqlTypes';\nimport {type ILinkFieldState} from '../../reducers/linkFieldReducer/linkFieldReducer';\nimport {type IFormElementProps} from '../../_types';\nimport {AntForm, KitInputWrapper} from 'aristid-ds';\nimport {useLang} from '_ui/hooks';\nimport styled, {css} from 'styled-components';\nimport {LINK_FIELD_ID_PREFIX} from '_ui/constants';\nimport {computeCalculatedFlags, computeInheritedFlags} from '../shared/calculatedInheritedFlags';\nimport {ComputeIndicator} from '../shared/ComputeIndicator';\nimport {useOutsideInteractionDetector} from '../shared/useOutsideInteractionDetector';\nimport {useLinkRecords} from './link-record/useLinkRecords';\nimport {\n CREATE_RECORD_MODAL_CLASSNAME,\n EDIT_RECORD_MODAL_CLASSNAME,\n LINK_RECORDS_MODAL_CLASSNAME,\n} from '_ui/components/Explorer/_constants';\nimport {type IFormLinkFieldSettings} from '@leav/utils/src/types/forms';\n\nexport type LinkFieldReducerState = ILinkFieldState<RecordFormElementsValueLinkValue>;\n\nconst Wrapper = styled.div<{$metadataEdit: boolean}>`\n margin-bottom: ${props => (props.$metadataEdit ? 0 : '1.5em')};\n`;\n\nconst KitInputExtraAlignLeft = styled.div`\n margin-right: auto;\n line-height: 12px;\n`;\n\nconst KitInputWrapperStyled = styled(KitInputWrapper)<{$readonlyBackground: boolean}>`\n ${props =>\n props.$readonlyBackground &&\n css`\n .kit-input-wrapper-content {\n background-color: var(--general-utilities-neutral-light);\n }\n `}\n\n &.disabled {\n .kit-input-wrapper-content {\n background-color: var(--general-utilities-neutral-light);\n }\n }\n\n &.error:not(.disabled) {\n .kit-input-wrapper-content {\n background-color: var(--general-utilities-error-light);\n }\n }\n\n .ant-empty-image,\n .ant-empty-description {\n display: none;\n }\n`;\n\ntype LinkFieldProps = IFormElementProps<\n IFormLinkFieldSettings & {\n columns?: Array<{\n id: string;\n label: Record<string, string>;\n }>;\n }\n>;\n\nconst LinkField: FunctionComponent<LinkFieldProps> = ({\n element,\n readonly,\n isFormCreationMode,\n onDeleteMultipleValues,\n metadataEdit = false,\n}) => {\n const {state, dispatch} = useEditRecordReducer();\n const {lang} = useLang();\n const {\n settings,\n attribute,\n joinLibraryContext,\n }: {\n settings: typeof element.settings;\n attribute?: RecordFormAttributeLinkAttributeFragment;\n joinLibraryContext?: JoinLibraryContextFragment;\n } = element;\n\n const [backendValues, setBackendValues] = useState<RecordFormElementsValueLinkValue[]>(element.values);\n\n const calculatedFlags = computeCalculatedFlags(backendValues);\n const inheritedFlags = computeInheritedFlags(backendValues);\n const form = AntForm.useFormInstance();\n const label = localizedTranslation(settings.label, lang);\n const fieldErrors = form.getFieldError(attribute.id);\n\n // TODO: Temporary const that should be removed (and all it's usages) when we will have a proper way to override multiple values\n const tmpCantOverrideValues =\n attribute.multiple_values &&\n (calculatedFlags.calculatedValues?.length > 1 || inheritedFlags.inheritedValues?.length > 1);\n\n const columnsToDisplay = settings.columns?.map(({id}) => id);\n const isReadOnly = attribute.readonly || !attribute.permissions.edit_value || readonly || tmpCantOverrideValues;\n const isFieldInError = fieldErrors.length > 0;\n\n useOutsideInteractionDetector({\n attribute,\n activeAttribute: state.activeAttribute,\n attributePrefix: LINK_FIELD_ID_PREFIX,\n dispatch,\n backendValues,\n allowedSelectors: [\n 'div[role=\"status\"]:has(.kit-snackbar-message)',\n '.kit-modal-wrapper',\n `.${CREATE_RECORD_MODAL_CLASSNAME}`,\n `.${LINK_RECORDS_MODAL_CLASSNAME}`,\n `.${EDIT_RECORD_MODAL_CLASSNAME}`,\n '.kit-select-dropdown-content',\n ],\n });\n\n const editionFormId = settings.editFormId ? settings.editFormId : 'edition';\n\n const {UnlinkAllRecords, LinkRecordsExplorer} = useLinkRecords({\n libraryId: state.libraryId,\n recordId: state.record?.id,\n editionFormId,\n isFormCreationMode,\n attribute,\n joinLibraryContext,\n columnsToDisplay,\n backendValues,\n setBackendValues,\n isReadOnly,\n isFieldInError,\n hasNoValue: backendValues.length === 0,\n onDeleteMultipleValues,\n });\n\n return (\n <Wrapper $metadataEdit={metadataEdit}>\n <AntForm.Item name={attribute.id} noStyle>\n <KitInputWrapperStyled\n id={LINK_FIELD_ID_PREFIX + attribute.id}\n data-testid=\"link-field\"\n label={label}\n required={attribute.required}\n bordered\n status={isFieldInError ? 'error' : undefined}\n helper={isFieldInError ? String(fieldErrors[0]) : undefined}\n extra={\n <>\n <KitInputExtraAlignLeft>\n <ComputeIndicator calculatedFlags={calculatedFlags} inheritedFlags={inheritedFlags} />\n </KitInputExtraAlignLeft>\n {UnlinkAllRecords}\n </>\n }\n $readonlyBackground={isReadOnly}\n >\n {LinkRecordsExplorer}\n </KitInputWrapperStyled>\n </AntForm.Item>\n </Wrapper>\n );\n};\n\nexport default LinkField;\n"]}
1
+ {"version":3,"file":"LinkField.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAC,iBAAiB,EAAC,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAExC,MAAM,SAAS,GAAsC,CAAC,EAClD,OAAO,EACP,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,YAAY,GAAG,KAAK,GACvB,EAAE,EAAE;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,KAAK,WAAW,CAAC,GAAG,EAAE,CAAC;QACnD,OAAO,CACH,KAAC,aAAa,IACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,YAAY,GAC5B,CACL,CAAC;IACN,CAAC;IAED,OAAO,CACH,KAAC,iBAAiB,IACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,kBAAkB,EACtC,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,YAAY,GAC5B,CACL,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,SAAS,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 {type FunctionComponent} from 'react';\nimport {type LinkFieldProps} from './_types';\nimport {LinkFieldExplorer} from './explorer/LinkFieldExplorer';\nimport {LinkFieldTags} from './tag/LinkFieldTags';\nimport {DisplayMode} from '@leav/utils';\n\nconst LinkField: FunctionComponent<LinkFieldProps> = ({\n element,\n readonly,\n isFormCreationMode,\n onValueSubmit,\n onValueDelete,\n onDeleteMultipleValues,\n metadataEdit = false,\n}) => {\n if (element.settings.displayMode === DisplayMode.TAG) {\n return (\n <LinkFieldTags\n element={element}\n readonly={readonly}\n isFormCreationMode={isFormCreationMode}\n onValueSubmit={onValueSubmit}\n onValueDelete={onValueDelete}\n onDeleteMultipleValues={onDeleteMultipleValues}\n metadataEdit={metadataEdit}\n />\n );\n }\n\n return (\n <LinkFieldExplorer\n element={element}\n readonly={readonly}\n isFormCreationMode={isFormCreationMode}\n onDeleteMultipleValues={onDeleteMultipleValues}\n metadataEdit={metadataEdit}\n />\n );\n};\n\nexport default LinkField;\n"]}
@@ -0,0 +1,8 @@
1
+ import { type IFormLinkFieldSettings } from '@leav/utils';
2
+ import { type IFormElementProps } from '../../_types';
3
+ export type LinkFieldProps = IFormElementProps<IFormLinkFieldSettings & {
4
+ columns?: Array<{
5
+ id: string;
6
+ label: Record<string, string>;
7
+ }>;
8
+ }>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_types.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/_types.ts"],"names":[],"mappings":"","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 IFormLinkFieldSettings} from '@leav/utils';\nimport {type IFormElementProps} from '../../_types';\n\nexport type LinkFieldProps = IFormElementProps<\n IFormLinkFieldSettings & {\n columns?: Array<{\n id: string;\n label: Record<string, string>;\n }>;\n }\n>;\n"]}
@@ -0,0 +1,6 @@
1
+ import { type FunctionComponent } from 'react';
2
+ import { type RecordFormElementsValueLinkValue } from '../../../../../../hooks/useGetRecordForm/useGetRecordForm';
3
+ import { type ILinkFieldState } from '../../../reducers/linkFieldReducer/linkFieldReducer';
4
+ import { type LinkFieldProps } from '../_types';
5
+ export type LinkFieldReducerState = ILinkFieldState<RecordFormElementsValueLinkValue>;
6
+ export declare const LinkFieldExplorer: FunctionComponent<LinkFieldProps>;
@@ -0,0 +1,77 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06
3
+ // This file is released under LGPL V3
4
+ // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
5
+ import { localizedTranslation } from '@leav/utils';
6
+ import { useState } from 'react';
7
+ import { useEditRecordReducer } from '../../../../../../components/RecordEdition/editRecordReducer/useEditRecordReducer';
8
+ import { AntForm } from 'aristid-ds';
9
+ import { useLang } from '../../../../../../hooks';
10
+ import { LINK_FIELD_ID_PREFIX } from '../../../../../../constants';
11
+ import { computeCalculatedFlags, computeInheritedFlags } from '../../shared/calculatedInheritedFlags';
12
+ import { ComputeIndicator } from '../../shared/ComputeIndicator';
13
+ import { useOutsideInteractionDetector } from '../../shared/useOutsideInteractionDetector';
14
+ import { useLinkRecords } from './link-record/useLinkRecords';
15
+ import { CREATE_RECORD_MODAL_CLASSNAME, EDIT_RECORD_MODAL_CLASSNAME, LINK_RECORDS_MODAL_CLASSNAME, } from '../../../../../../components/Explorer/_constants';
16
+ import { useUnlinkAllRecords } from '../unlink-all-records/useUnlinkAllRecords';
17
+ import { Wrapper } from '../shared/Wrapper';
18
+ import { InputExtraAlignLeft } from '../shared/InputExtraAlignLeft';
19
+ import { InputWrapper } from '../shared/InputWrapper';
20
+ export const LinkFieldExplorer = ({ element, readonly, isFormCreationMode, onDeleteMultipleValues, metadataEdit = false, }) => {
21
+ const { state, dispatch } = useEditRecordReducer();
22
+ const { lang } = useLang();
23
+ const { settings, attribute, joinLibraryContext, } = element;
24
+ const [backendValues, setBackendValues] = useState(element.values);
25
+ const calculatedFlags = computeCalculatedFlags(backendValues);
26
+ const inheritedFlags = computeInheritedFlags(backendValues);
27
+ const form = AntForm.useFormInstance();
28
+ const label = localizedTranslation(settings.label, lang);
29
+ const fieldErrors = form.getFieldError(attribute.id);
30
+ // TODO: Temporary const that should be removed (and all it's usages) when we will have a proper way to override multiple values
31
+ const tmpCantOverrideValues = attribute.multiple_values &&
32
+ (calculatedFlags.calculatedValues?.length > 1 || inheritedFlags.inheritedValues?.length > 1);
33
+ const columnsToDisplay = settings.columns?.map(({ id }) => id);
34
+ const isReadOnly = attribute.readonly || !attribute.permissions.edit_value || readonly || tmpCantOverrideValues;
35
+ const isFieldInError = fieldErrors.length > 0;
36
+ useOutsideInteractionDetector({
37
+ attribute,
38
+ activeAttribute: state.activeAttribute,
39
+ attributePrefix: LINK_FIELD_ID_PREFIX,
40
+ dispatch,
41
+ backendValues,
42
+ allowedSelectors: [
43
+ 'div[role="status"]:has(.kit-snackbar-message)',
44
+ '.kit-modal-wrapper',
45
+ `.${CREATE_RECORD_MODAL_CLASSNAME}`,
46
+ `.${LINK_RECORDS_MODAL_CLASSNAME}`,
47
+ `.${EDIT_RECORD_MODAL_CLASSNAME}`,
48
+ '.kit-select-dropdown-content',
49
+ ],
50
+ });
51
+ const editionFormId = settings.editFormId ? settings.editFormId : 'edition';
52
+ const { LinkRecordsExplorer } = useLinkRecords({
53
+ libraryId: state.libraryId,
54
+ recordId: state.record?.id,
55
+ editionFormId,
56
+ isFormCreationMode,
57
+ attribute,
58
+ joinLibraryContext,
59
+ columnsToDisplay,
60
+ backendValues,
61
+ setBackendValues,
62
+ isReadOnly,
63
+ isFieldInError,
64
+ hasNoValue: backendValues.length === 0,
65
+ onDeleteMultipleValues,
66
+ });
67
+ const { UnlinkAllRecordsButton } = useUnlinkAllRecords({
68
+ attribute,
69
+ backendValues,
70
+ setBackendValues,
71
+ onDeleteMultipleValues,
72
+ isReadOnly,
73
+ isFieldInError,
74
+ });
75
+ return (_jsx(Wrapper, { "$metadataEdit": metadataEdit, children: _jsx(AntForm.Item, { name: attribute.id, noStyle: true, children: _jsx(InputWrapper, { id: LINK_FIELD_ID_PREFIX + attribute.id, label: label, required: attribute.required, bordered: true, status: isFieldInError ? 'error' : undefined, helper: isFieldInError ? String(fieldErrors[0]) : undefined, extra: _jsxs(_Fragment, { children: [_jsx(InputExtraAlignLeft, { children: _jsx(ComputeIndicator, { calculatedFlags: calculatedFlags, inheritedFlags: inheritedFlags }) }), UnlinkAllRecordsButton] }), "$readonlyBackground": isReadOnly, children: LinkRecordsExplorer }) }) }));
76
+ };
77
+ //# sourceMappingURL=LinkFieldExplorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkFieldExplorer.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/LinkFieldExplorer.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 {type FunctionComponent, useState} from 'react';\nimport {useEditRecordReducer} from '_ui/components/RecordEdition/editRecordReducer/useEditRecordReducer';\nimport {type RecordFormElementsValueLinkValue} from '_ui/hooks/useGetRecordForm/useGetRecordForm';\nimport {type JoinLibraryContextFragment, type RecordFormAttributeLinkAttributeFragment} from '_ui/_gqlTypes';\nimport {type ILinkFieldState} from '../../../reducers/linkFieldReducer/linkFieldReducer';\nimport {AntForm} from 'aristid-ds';\nimport {useLang} from '_ui/hooks';\nimport {LINK_FIELD_ID_PREFIX} from '_ui/constants';\nimport {computeCalculatedFlags, computeInheritedFlags} from '../../shared/calculatedInheritedFlags';\nimport {ComputeIndicator} from '../../shared/ComputeIndicator';\nimport {useOutsideInteractionDetector} from '../../shared/useOutsideInteractionDetector';\nimport {useLinkRecords} from './link-record/useLinkRecords';\nimport {\n CREATE_RECORD_MODAL_CLASSNAME,\n EDIT_RECORD_MODAL_CLASSNAME,\n LINK_RECORDS_MODAL_CLASSNAME,\n} from '_ui/components/Explorer/_constants';\nimport {type LinkFieldProps} from '../_types';\nimport {useUnlinkAllRecords} from '../unlink-all-records/useUnlinkAllRecords';\nimport {Wrapper} from '../shared/Wrapper';\nimport {InputExtraAlignLeft} from '../shared/InputExtraAlignLeft';\nimport {InputWrapper} from '../shared/InputWrapper';\n\nexport type LinkFieldReducerState = ILinkFieldState<RecordFormElementsValueLinkValue>;\n\nexport const LinkFieldExplorer: FunctionComponent<LinkFieldProps> = ({\n element,\n readonly,\n isFormCreationMode,\n onDeleteMultipleValues,\n metadataEdit = false,\n}) => {\n const {state, dispatch} = useEditRecordReducer();\n const {lang} = useLang();\n const {\n settings,\n attribute,\n joinLibraryContext,\n }: {\n settings: typeof element.settings;\n attribute?: RecordFormAttributeLinkAttributeFragment;\n joinLibraryContext?: JoinLibraryContextFragment;\n } = element;\n\n const [backendValues, setBackendValues] = useState<RecordFormElementsValueLinkValue[]>(element.values);\n\n const calculatedFlags = computeCalculatedFlags(backendValues);\n const inheritedFlags = computeInheritedFlags(backendValues);\n const form = AntForm.useFormInstance();\n const label = localizedTranslation(settings.label, lang);\n const fieldErrors = form.getFieldError(attribute.id);\n\n // TODO: Temporary const that should be removed (and all it's usages) when we will have a proper way to override multiple values\n const tmpCantOverrideValues =\n attribute.multiple_values &&\n (calculatedFlags.calculatedValues?.length > 1 || inheritedFlags.inheritedValues?.length > 1);\n\n const columnsToDisplay = settings.columns?.map(({id}) => id);\n const isReadOnly = attribute.readonly || !attribute.permissions.edit_value || readonly || tmpCantOverrideValues;\n const isFieldInError = fieldErrors.length > 0;\n\n useOutsideInteractionDetector({\n attribute,\n activeAttribute: state.activeAttribute,\n attributePrefix: LINK_FIELD_ID_PREFIX,\n dispatch,\n backendValues,\n allowedSelectors: [\n 'div[role=\"status\"]:has(.kit-snackbar-message)',\n '.kit-modal-wrapper',\n `.${CREATE_RECORD_MODAL_CLASSNAME}`,\n `.${LINK_RECORDS_MODAL_CLASSNAME}`,\n `.${EDIT_RECORD_MODAL_CLASSNAME}`,\n '.kit-select-dropdown-content',\n ],\n });\n\n const editionFormId = settings.editFormId ? settings.editFormId : 'edition';\n\n const {LinkRecordsExplorer} = useLinkRecords({\n libraryId: state.libraryId,\n recordId: state.record?.id,\n editionFormId,\n isFormCreationMode,\n attribute,\n joinLibraryContext,\n columnsToDisplay,\n backendValues,\n setBackendValues,\n isReadOnly,\n isFieldInError,\n hasNoValue: backendValues.length === 0,\n onDeleteMultipleValues,\n });\n\n const {UnlinkAllRecordsButton} = useUnlinkAllRecords({\n attribute,\n backendValues,\n setBackendValues,\n onDeleteMultipleValues,\n isReadOnly,\n isFieldInError,\n });\n\n return (\n <Wrapper $metadataEdit={metadataEdit}>\n <AntForm.Item name={attribute.id} noStyle>\n <InputWrapper\n id={LINK_FIELD_ID_PREFIX + attribute.id}\n label={label}\n required={attribute.required}\n bordered\n status={isFieldInError ? 'error' : undefined}\n helper={isFieldInError ? String(fieldErrors[0]) : undefined}\n extra={\n <>\n <InputExtraAlignLeft>\n <ComputeIndicator calculatedFlags={calculatedFlags} inheritedFlags={inheritedFlags} />\n </InputExtraAlignLeft>\n {UnlinkAllRecordsButton}\n </>\n }\n $readonlyBackground={isReadOnly}\n >\n {LinkRecordsExplorer}\n </InputWrapper>\n </AntForm.Item>\n </Wrapper>\n );\n};\n"]}
@@ -1,16 +1,14 @@
1
- import { type RecordFilterInput, type RecordFormAttributeLinkAttributeFragment } from '../../../../../../_gqlTypes';
2
- import { type DeleteMultipleValuesFunc, type ISubmitMultipleResult } from '../../../_types';
1
+ import { type RecordFilterInput, type RecordFormAttributeLinkAttributeFragment } from '../../../../../../../_gqlTypes';
2
+ import { type ISubmitMultipleResult } from '../../../../_types';
3
3
  import { type Dispatch, type SetStateAction } from 'react';
4
- import { type IItemData, type MassSelection } from '../../../../../../components/Explorer/_types';
5
- import { type RecordFormElementsValueLinkValue } from '../../../../../../hooks/useGetRecordForm';
4
+ import { type IItemData, type MassSelection } from '../../../../../../../components/Explorer/_types';
5
+ import { type RecordFormElementsValueLinkValue } from '../../../../../../../hooks/useGetRecordForm';
6
6
  interface IUseExplorerLinkRecordsProps {
7
7
  attribute: RecordFormAttributeLinkAttributeFragment;
8
8
  backendValues: RecordFormElementsValueLinkValue[];
9
9
  setBackendValues: Dispatch<SetStateAction<RecordFormElementsValueLinkValue[]>>;
10
- onDeleteMultipleValues: DeleteMultipleValuesFunc;
11
10
  }
12
- export declare const useExplorerLinkRecords: ({ attribute, backendValues, setBackendValues, onDeleteMultipleValues, }: IUseExplorerLinkRecordsProps) => {
13
- handleDeleteAllValues: () => Promise<void>;
11
+ export declare const useExplorerLinkRecords: ({ attribute, backendValues, setBackendValues }: IUseExplorerLinkRecordsProps) => {
14
12
  handleExplorerRemoveValue: (item: IItemData) => void;
15
13
  handleExplorerMassDeactivateValues: (_massSelectedFilter: RecordFilterInput[], massSelection: MassSelection) => void;
16
14
  handleExplorerLinkValue: (saveValuesResult: ISubmitMultipleResult) => void;
@@ -1,8 +1,8 @@
1
- import { APICallStatus } from '../../../_types';
1
+ import { APICallStatus } from '../../../../_types';
2
2
  import { AntForm } from 'aristid-ds';
3
- import { useSharedTranslation } from '../../../../../../hooks/useSharedTranslation';
3
+ import { useSharedTranslation } from '../../../../../../../hooks/useSharedTranslation';
4
4
  import { ErrorTypes } from '@leav/utils';
5
- export const useExplorerLinkRecords = ({ attribute, backendValues, setBackendValues, onDeleteMultipleValues, }) => {
5
+ export const useExplorerLinkRecords = ({ attribute, backendValues, setBackendValues }) => {
6
6
  const { t } = useSharedTranslation();
7
7
  const form = AntForm.useFormInstance();
8
8
  const removeValues = (filterFn, useIdValue = false) => {
@@ -27,12 +27,6 @@ export const useExplorerLinkRecords = ({ attribute, backendValues, setBackendVal
27
27
  ]);
28
28
  setBackendValues(previousBackendValues => previousBackendValues.filter(backendValue => filterFn(useIdValue ? backendValue.id_value : backendValue.linkValue.id)));
29
29
  };
30
- const handleDeleteAllValues = async () => {
31
- const deleteRes = await onDeleteMultipleValues(attribute.id, backendValues.filter(backendValue => backendValue.id_value), null);
32
- if (deleteRes.status === APICallStatus.SUCCESS) {
33
- removeValues();
34
- }
35
- };
36
30
  const handleExplorerRemoveValue = (item) => {
37
31
  removeValues(id => id !== item.itemId);
38
32
  };
@@ -75,7 +69,6 @@ export const useExplorerLinkRecords = ({ attribute, backendValues, setBackendVal
75
69
  }
76
70
  };
77
71
  return {
78
- handleDeleteAllValues,
79
72
  handleExplorerRemoveValue,
80
73
  handleExplorerMassDeactivateValues,
81
74
  handleExplorerLinkValue,