@leav/ui 0.4.0-049caba → 0.4.0-07a6eb9d

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 (357) hide show
  1. package/README.md +1 -0
  2. package/dist/__mocks__/common/form.js +5 -1
  3. package/dist/__mocks__/common/form.js.map +1 -1
  4. package/dist/__mocks__/common/value.d.ts +1 -2
  5. package/dist/__mocks__/common/value.js +0 -11
  6. package/dist/__mocks__/common/value.js.map +1 -1
  7. package/dist/_gqlTypes/index.d.ts +968 -9
  8. package/dist/_gqlTypes/index.js +145 -1
  9. package/dist/_gqlTypes/index.js.map +1 -1
  10. package/dist/_queries/attributes/attributeDetailsFragment.js +1 -0
  11. package/dist/_queries/attributes/attributeDetailsFragment.js.map +1 -1
  12. package/dist/_queries/records/activateRecordsMutation.d.ts +1 -0
  13. package/dist/_queries/records/activateRecordsMutation.js +15 -0
  14. package/dist/_queries/records/activateRecordsMutation.js.map +1 -0
  15. package/dist/_queries/records/getRecordFormQuery.js +13 -0
  16. package/dist/_queries/records/getRecordFormQuery.js.map +1 -1
  17. package/dist/components/CreateDirectory/CreateDirectory.js +4 -4
  18. package/dist/components/CreateDirectory/CreateDirectory.js.map +1 -1
  19. package/dist/components/EditLibraryModal/EditLibrary/EditLibraryAttributes/AttributesList/DeleteButton/DeleteButton.js +3 -2
  20. package/dist/components/EditLibraryModal/EditLibrary/EditLibraryAttributes/AttributesList/DeleteButton/DeleteButton.js.map +1 -1
  21. package/dist/components/EditTreeModal/EditTree/EditTreeInfo/EditTreeInfoForm/TreeLibrariesForm/TreeLibrariesForm.js +8 -1
  22. package/dist/components/EditTreeModal/EditTree/EditTreeInfo/EditTreeInfoForm/TreeLibrariesForm/TreeLibrariesForm.js.map +1 -1
  23. package/dist/components/ErrorBoundary/ErrorBoundaryContent/ErrorBoundaryContent.d.ts +2 -2
  24. package/dist/components/ErrorBoundary/ErrorBoundaryContent/ErrorBoundaryContent.js +4 -3
  25. package/dist/components/ErrorBoundary/ErrorBoundaryContent/ErrorBoundaryContent.js.map +1 -1
  26. package/dist/components/Explorer/DataView.d.ts +2 -1
  27. package/dist/components/Explorer/DataView.js +29 -13
  28. package/dist/components/Explorer/DataView.js.map +1 -1
  29. package/dist/components/Explorer/Explorer.d.ts +6 -4
  30. package/dist/components/Explorer/Explorer.js +13 -8
  31. package/dist/components/Explorer/Explorer.js.map +1 -1
  32. package/dist/components/Explorer/ExplorerToolbar.js +4 -3
  33. package/dist/components/Explorer/ExplorerToolbar.js.map +1 -1
  34. package/dist/components/Explorer/TableCell.js +22 -11
  35. package/dist/components/Explorer/TableCell.js.map +1 -1
  36. package/dist/components/Explorer/TableTagGroup.d.ts +0 -1
  37. package/dist/components/Explorer/TableTagGroup.js +3 -16
  38. package/dist/components/Explorer/TableTagGroup.js.map +1 -1
  39. package/dist/components/Explorer/_constants.d.ts +3 -0
  40. package/dist/components/Explorer/_constants.js +3 -0
  41. package/dist/components/Explorer/_constants.js.map +1 -1
  42. package/dist/components/Explorer/_queries/useExplorerData.js +7 -3
  43. package/dist/components/Explorer/_queries/useExplorerData.js.map +1 -1
  44. package/dist/components/Explorer/_types.d.ts +8 -2
  45. package/dist/components/Explorer/_types.js.map +1 -1
  46. package/dist/components/Explorer/actions-item/useEditItemAction.d.ts +2 -1
  47. package/dist/components/Explorer/actions-item/useEditItemAction.js +4 -2
  48. package/dist/components/Explorer/actions-item/useEditItemAction.js.map +1 -1
  49. package/dist/components/Explorer/actions-item/{useRemoveItemAction.d.ts → useEditStatusItemAction.d.ts} +2 -2
  50. package/dist/components/Explorer/actions-item/{useRemoveItemAction.js → useEditStatusItemAction.js} +71 -24
  51. package/dist/components/Explorer/actions-item/useEditStatusItemAction.js.map +1 -0
  52. package/dist/components/Explorer/actions-item/useReplaceItemAction.js +1 -1
  53. package/dist/components/Explorer/actions-item/useReplaceItemAction.js.map +1 -1
  54. package/dist/components/Explorer/actions-mass/useDeleteLinkValues.js +3 -3
  55. package/dist/components/Explorer/actions-mass/useDeleteLinkValues.js.map +1 -1
  56. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.d.ts +3 -1
  57. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js +15 -6
  58. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js.map +1 -1
  59. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.d.ts +4 -2
  60. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.js +19 -3
  61. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.js.map +1 -1
  62. package/dist/components/Explorer/link-item/LinkModal.js +2 -1
  63. package/dist/components/Explorer/link-item/LinkModal.js.map +1 -1
  64. package/dist/components/Explorer/manage-view-settings/_shared/useTransformFilters.js +4 -0
  65. package/dist/components/Explorer/manage-view-settings/_shared/useTransformFilters.js.map +1 -1
  66. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsInitialState.js +1 -1
  67. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsInitialState.js.map +1 -1
  68. package/dist/components/Explorer/useColumnWidth.js +2 -1
  69. package/dist/components/Explorer/useColumnWidth.js.map +1 -1
  70. package/dist/components/Explorer/usePagination.d.ts +2 -1
  71. package/dist/components/Explorer/usePagination.js.map +1 -1
  72. package/dist/components/Explorer/useSearchInput.d.ts +3 -1
  73. package/dist/components/Explorer/useSearchInput.js +2 -1
  74. package/dist/components/Explorer/useSearchInput.js.map +1 -1
  75. package/dist/components/Explorer/useViewSettingsReducer.d.ts +1 -1
  76. package/dist/components/Explorer/useViewSettingsReducer.js +36 -18
  77. package/dist/components/Explorer/useViewSettingsReducer.js.map +1 -1
  78. package/dist/components/ImportModal/ImportModalConfigStep/ImportModalConfigStep.js +1 -1
  79. package/dist/components/ImportModal/ImportModalConfigStep/ImportModalConfigStep.js.map +1 -1
  80. package/dist/components/LibraryItemsList/CreateNewRecordButton/CreateNewRecordButton.js +1 -0
  81. package/dist/components/LibraryItemsList/CreateNewRecordButton/CreateNewRecordButton.js.map +1 -1
  82. package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.js +3 -3
  83. package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.js.map +1 -1
  84. package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.utils.js +2 -2
  85. package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.utils.js.map +1 -1
  86. package/dist/components/LibraryItemsList/LibraryItemsListTable/Cell/typeGuards.d.ts +4 -0
  87. package/dist/components/LibraryItemsList/LibraryItemsListTable/Cell/typeGuards.js +4 -1
  88. package/dist/components/LibraryItemsList/LibraryItemsListTable/Cell/typeGuards.js.map +1 -1
  89. package/dist/components/LibraryItemsList/shared/DeactivateRecordBtn/DeactivateRecordBtn.js +3 -3
  90. package/dist/components/LibraryItemsList/shared/DeactivateRecordBtn/DeactivateRecordBtn.js.map +1 -1
  91. package/dist/components/LinkSelect/LinkSelect.d.ts +15 -0
  92. package/dist/components/LinkSelect/LinkSelect.js +88 -0
  93. package/dist/components/LinkSelect/LinkSelect.js.map +1 -0
  94. package/dist/components/LinkSelect/index.d.ts +2 -0
  95. package/dist/components/{SelectTreeNodeModal → LinkSelect}/index.js +2 -1
  96. package/dist/components/LinkSelect/index.js.map +1 -0
  97. package/dist/components/RecordEdition/EditRecord/EditRecord.d.ts +2 -4
  98. package/dist/components/RecordEdition/EditRecord/EditRecord.js +37 -39
  99. package/dist/components/RecordEdition/EditRecord/EditRecord.js.map +1 -1
  100. package/dist/components/RecordEdition/EditRecordButtons/EditRecordButtons.d.ts +2 -0
  101. package/dist/components/RecordEdition/EditRecordButtons/EditRecordButtons.js +43 -0
  102. package/dist/components/RecordEdition/EditRecordButtons/EditRecordButtons.js.map +1 -0
  103. package/dist/components/RecordEdition/EditRecordButtons/SidebarButton.d.ts +2 -0
  104. package/dist/components/RecordEdition/EditRecordButtons/SidebarButton.js +25 -0
  105. package/dist/components/RecordEdition/EditRecordButtons/SidebarButton.js.map +1 -0
  106. package/dist/components/RecordEdition/EditRecordButtons/index.d.ts +2 -0
  107. package/dist/components/RecordEdition/{EditRecordContent/uiElements/TreeField/TreeFieldValue → EditRecordButtons}/index.js +2 -2
  108. package/dist/components/RecordEdition/EditRecordButtons/index.js.map +1 -0
  109. package/dist/components/RecordEdition/EditRecordContent/EditRecordContent.d.ts +3 -1
  110. package/dist/components/RecordEdition/EditRecordContent/EditRecordContent.js +12 -3
  111. package/dist/components/RecordEdition/EditRecordContent/EditRecordContent.js.map +1 -1
  112. package/dist/components/RecordEdition/EditRecordContent/_types.d.ts +5 -0
  113. package/dist/components/RecordEdition/EditRecordContent/_types.js.map +1 -1
  114. package/dist/components/RecordEdition/EditRecordContent/formConstants.d.ts +1 -0
  115. package/dist/components/RecordEdition/EditRecordContent/formConstants.js +1 -0
  116. package/dist/components/RecordEdition/EditRecordContent/formConstants.js.map +1 -1
  117. package/dist/components/RecordEdition/EditRecordContent/uiElements/Container/Container.d.ts +1 -1
  118. package/dist/components/RecordEdition/EditRecordContent/uiElements/Container/Container.js +2 -2
  119. package/dist/components/RecordEdition/EditRecordContent/uiElements/Container/Container.js.map +1 -1
  120. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.d.ts +8 -2
  121. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js +103 -92
  122. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js.map +1 -1
  123. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-item/useEditRecord.d.ts +5 -0
  124. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-item/useEditRecord.js +39 -0
  125. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-item/useEditRecord.js.map +1 -0
  126. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-item/useUnselectRecord.d.ts +8 -0
  127. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-item/useUnselectRecord.js +23 -0
  128. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-item/useUnselectRecord.js.map +1 -0
  129. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-mass/useUnselectAllRecords.d.ts +9 -0
  130. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-mass/useUnselectAllRecords.js +23 -0
  131. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-mass/useUnselectAllRecords.js.map +1 -0
  132. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-primary/useCreateRecord.d.ts +8 -0
  133. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-primary/useCreateRecord.js +26 -0
  134. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-primary/useCreateRecord.js.map +1 -0
  135. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-primary/useRecordSelector.d.ts +12 -0
  136. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-primary/useRecordSelector.js +24 -0
  137. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-primary/useRecordSelector.js.map +1 -0
  138. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecords.d.ts +19 -0
  139. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecords.js +103 -0
  140. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecords.js.map +1 -0
  141. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecordsInCreation.d.ts +22 -0
  142. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecordsInCreation.js +104 -0
  143. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecordsInCreation.js.map +1 -0
  144. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecords.d.ts +22 -0
  145. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecords.js +85 -0
  146. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecords.js.map +1 -0
  147. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.d.ts +28 -0
  148. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.js +311 -0
  149. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.js.map +1 -0
  150. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/ExplorerWrapper.d.ts +265 -0
  151. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/ExplorerWrapper.js +13 -0
  152. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/ExplorerWrapper.js.map +1 -0
  153. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/LinkActionsButtons.d.ts +9 -0
  154. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/LinkActionsButtons.js +15 -0
  155. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/LinkActionsButtons.js.map +1 -0
  156. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/utils.d.ts +4 -0
  157. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/utils.js +22 -0
  158. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/utils.js.map +1 -0
  159. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js +35 -48
  160. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js.map +1 -1
  161. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSBooleanWrapper.js +1 -2
  162. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSBooleanWrapper.js.map +1 -1
  163. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSColorPickerWrapper.js +1 -2
  164. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSColorPickerWrapper.js.map +1 -1
  165. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSDatePickerWrapper.js +1 -2
  166. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSDatePickerWrapper.js.map +1 -1
  167. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputEncryptedWrapper.js +2 -5
  168. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputEncryptedWrapper.js.map +1 -1
  169. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputNumberWrapper.js +1 -2
  170. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputNumberWrapper.js.map +1 -1
  171. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js +1 -2
  172. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js.map +1 -1
  173. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.js +1 -2
  174. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.js.map +1 -1
  175. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRichTextWrapper.js +1 -2
  176. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRichTextWrapper.js.map +1 -1
  177. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.d.ts +2 -3
  178. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.js +2 -3
  179. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.js.map +1 -1
  180. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/ValuesList/DSListSelect.js +5 -8
  181. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/ValuesList/DSListSelect.js.map +1 -1
  182. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/_types.d.ts +1 -2
  183. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.d.ts +4 -2
  184. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js +68 -215
  185. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js.map +1 -1
  186. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeFieldWrapper.d.ts +265 -0
  187. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeFieldWrapper.js +13 -0
  188. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeFieldWrapper.js.map +1 -0
  189. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.d.ts +11 -0
  190. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.js +51 -0
  191. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.js.map +1 -0
  192. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/useDisplayTreeNode.d.ts +12 -0
  193. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/useDisplayTreeNode.js +8 -0
  194. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/useDisplayTreeNode.js.map +1 -0
  195. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.d.ts +34 -0
  196. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js +47 -0
  197. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js.map +1 -0
  198. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.d.ts +23 -0
  199. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.js +145 -0
  200. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.js.map +1 -0
  201. package/dist/components/RecordEdition/EditRecordContent/uiElements/{StandardField → shared}/ComputeIndicator.d.ts +4 -2
  202. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.js.map +1 -0
  203. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/DeleteAllValuesButton.d.ts +8 -0
  204. package/dist/components/RecordEdition/EditRecordContent/uiElements/{StandardField → shared}/DeleteAllValuesButton.js +2 -2
  205. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/DeleteAllValuesButton.js.map +1 -0
  206. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/calculatedInheritedFlags.js.map +1 -0
  207. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/useOutsideInteractionDetector.d.ts +17 -0
  208. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/useOutsideInteractionDetector.js +76 -0
  209. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/useOutsideInteractionDetector.js.map +1 -0
  210. package/dist/components/RecordEdition/EditRecordModal/EditRecordModal.d.ts +4 -0
  211. package/dist/components/RecordEdition/EditRecordModal/EditRecordModal.js +51 -51
  212. package/dist/components/RecordEdition/EditRecordModal/EditRecordModal.js.map +1 -1
  213. package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.d.ts +3 -1
  214. package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.js +9 -7
  215. package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.js.map +1 -1
  216. package/dist/components/RecordEdition/EditRecordSidebar/Breacrumb/Breadcrumb.js +2 -2
  217. package/dist/components/RecordEdition/EditRecordSidebar/Breacrumb/Breadcrumb.js.map +1 -1
  218. package/dist/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.d.ts +0 -1
  219. package/dist/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.js +18 -12
  220. package/dist/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.js.map +1 -1
  221. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js +3 -0
  222. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js.map +1 -1
  223. package/dist/components/RecordEdition/EditRecordSidebar/ValuesVersions/ValuesVersions.js +2 -2
  224. package/dist/components/RecordEdition/EditRecordSidebar/ValuesVersions/ValuesVersions.js.map +1 -1
  225. package/dist/components/RecordEdition/constants.d.ts +2 -0
  226. package/dist/components/RecordEdition/constants.js +6 -0
  227. package/dist/components/RecordEdition/constants.js.map +1 -0
  228. package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.d.ts +29 -3
  229. package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.js +65 -5
  230. package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.js.map +1 -1
  231. package/dist/components/RecordEdition/hooks/useGetSubmitButtons.d.ts +1 -1
  232. package/dist/components/RecordEdition/hooks/useGetSubmitButtons.js +3 -3
  233. package/dist/components/RecordEdition/hooks/useGetSubmitButtons.js.map +1 -1
  234. package/dist/components/RecordEdition/index.d.ts +3 -0
  235. package/dist/components/RecordEdition/index.js +3 -0
  236. package/dist/components/RecordEdition/index.js.map +1 -1
  237. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.d.ts +3 -1
  238. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js +3 -3
  239. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js.map +1 -1
  240. package/dist/components/SelectTreeNode/SelectTreeNode.d.ts +3 -1
  241. package/dist/components/SelectTreeNode/SelectTreeNode.js +4 -4
  242. package/dist/components/SelectTreeNode/SelectTreeNode.js.map +1 -1
  243. package/dist/components/SelectTreeNode/SelectTreeNodeContent.d.ts +3 -1
  244. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js +14 -6
  245. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js.map +1 -1
  246. package/dist/components/SelectTreeNode/SelectTreeNodeContentSkeleton.d.ts +2 -0
  247. package/dist/components/SelectTreeNode/SelectTreeNodeContentSkeleton.js +17 -0
  248. package/dist/components/SelectTreeNode/SelectTreeNodeContentSkeleton.js.map +1 -0
  249. package/dist/components/SelectTreeNode/TreeNodeTitle.d.ts +9 -0
  250. package/dist/components/SelectTreeNode/TreeNodeTitle.js +8 -0
  251. package/dist/components/SelectTreeNode/TreeNodeTitle.js.map +1 -0
  252. package/dist/components/{SelectTreeNodeModal/SelectTreeNodeModal.d.ts → SelectTreeNodeModalOld/SelectTreeNodeModalOld.d.ts} +1 -1
  253. package/dist/components/{SelectTreeNodeModal/SelectTreeNodeModal.js → SelectTreeNodeModalOld/SelectTreeNodeModalOld.js} +5 -3
  254. package/dist/components/SelectTreeNodeModalOld/SelectTreeNodeModalOld.js.map +1 -0
  255. package/dist/components/SelectTreeNodeModalOld/index.d.ts +1 -0
  256. package/dist/components/{RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd → SelectTreeNodeModalOld}/index.js +1 -2
  257. package/dist/components/SelectTreeNodeModalOld/index.js.map +1 -0
  258. package/dist/components/SimpleErrorBoundary/SimpleErrorBoundary.d.ts +1 -1
  259. package/dist/components/SimpleErrorBoundary/SimpleErrorBoundary.js.map +1 -1
  260. package/dist/components/SimpleErrorBoundary/SimpleErrorBoundaryContent/SimpleErrorBoundaryContent.d.ts +2 -2
  261. package/dist/components/SimpleErrorBoundary/SimpleErrorBoundaryContent/SimpleErrorBoundaryContent.js +6 -3
  262. package/dist/components/SimpleErrorBoundary/SimpleErrorBoundaryContent/SimpleErrorBoundaryContent.js.map +1 -1
  263. package/dist/components/UploadFiles/UploadFiles.js +4 -4
  264. package/dist/components/UploadFiles/UploadFiles.js.map +1 -1
  265. package/dist/components/ValuesVersionConfigurator/VersionTree/VersionTree.js +2 -2
  266. package/dist/components/ValuesVersionConfigurator/VersionTree/VersionTree.js.map +1 -1
  267. package/dist/components/index.d.ts +1 -2
  268. package/dist/components/index.js +1 -2
  269. package/dist/components/index.js.map +1 -1
  270. package/dist/constants.d.ts +3 -1
  271. package/dist/constants.js +3 -1
  272. package/dist/constants.js.map +1 -1
  273. package/dist/contexts/LangContext/LangContext.d.ts +1 -2
  274. package/dist/contexts/LangContext/LangContext.js +2 -2
  275. package/dist/contexts/LangContext/LangContext.js.map +1 -1
  276. package/dist/hooks/index.d.ts +1 -0
  277. package/dist/hooks/index.js +1 -0
  278. package/dist/hooks/index.js.map +1 -1
  279. package/dist/hooks/useAppLang/useAppLang.js.map +1 -1
  280. package/dist/hooks/useGetRecordForm/useGetRecordForm.js +1 -1
  281. package/dist/hooks/useGetRecordForm/useGetRecordForm.js.map +1 -1
  282. package/dist/hooks/useIFrameMessenger/messageHandlers.d.ts +14 -0
  283. package/dist/hooks/useIFrameMessenger/messageHandlers.js +118 -0
  284. package/dist/hooks/useIFrameMessenger/messageHandlers.js.map +1 -0
  285. package/dist/hooks/useIFrameMessenger/schema.d.ts +20 -0
  286. package/dist/hooks/useIFrameMessenger/schema.js +75 -0
  287. package/dist/hooks/useIFrameMessenger/schema.js.map +1 -0
  288. package/dist/hooks/useIFrameMessenger/types.d.ts +104 -0
  289. package/dist/hooks/useIFrameMessenger/types.js +2 -0
  290. package/dist/hooks/useIFrameMessenger/types.js.map +1 -0
  291. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.d.ts +11 -0
  292. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js +73 -0
  293. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js.map +1 -0
  294. package/dist/hooks/useRedirectToLogin/useRedirectToLogin.js +1 -1
  295. package/dist/hooks/useRedirectToLogin/useRedirectToLogin.js.map +1 -1
  296. package/dist/locales/en/shared.json +12 -1
  297. package/dist/locales/fr/shared.json +12 -1
  298. package/dist/types/attributes.d.ts +2 -1
  299. package/dist/types/trees.d.ts +1 -0
  300. package/package.json +9 -7
  301. package/dist/components/Explorer/actions-item/useRemoveItemAction.js.map +0 -1
  302. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/FloatingMenuHandler/FloatingMenuHandler.d.ts +0 -14
  303. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/FloatingMenuHandler/FloatingMenuHandler.js +0 -29
  304. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/FloatingMenuHandler/FloatingMenuHandler.js.map +0 -1
  305. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/FloatingMenuHandler/index.d.ts +0 -2
  306. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/FloatingMenuHandler/index.js +0 -6
  307. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/FloatingMenuHandler/index.js.map +0 -1
  308. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MonoValueSelect/MonoValueSelect.d.ts +0 -20
  309. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MonoValueSelect/MonoValueSelect.js +0 -53
  310. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MonoValueSelect/MonoValueSelect.js.map +0 -1
  311. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MonoValueSelect/useGetOptionsQuery.d.ts +0 -19
  312. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MonoValueSelect/useGetOptionsQuery.js +0 -111
  313. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MonoValueSelect/useGetOptionsQuery.js.map +0 -1
  314. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MultiValueSelect/MultiValueSelect.d.ts +0 -20
  315. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MultiValueSelect/MultiValueSelect.js +0 -71
  316. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MultiValueSelect/MultiValueSelect.js.map +0 -1
  317. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MultiValueSelect/useGetOptionsQuery.d.ts +0 -14
  318. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MultiValueSelect/useGetOptionsQuery.js +0 -58
  319. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MultiValueSelect/useGetOptionsQuery.js.map +0 -1
  320. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/RecordIdentityCell/RecordIdentityCell.d.ts +0 -6
  321. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/RecordIdentityCell/RecordIdentityCell.js +0 -11
  322. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/RecordIdentityCell/RecordIdentityCell.js.map +0 -1
  323. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/RecordIdentityCell/index.d.ts +0 -2
  324. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/RecordIdentityCell/index.js +0 -6
  325. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/RecordIdentityCell/index.js.map +0 -1
  326. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/QuickSearch/QuickSearch.d.ts +0 -13
  327. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/QuickSearch/QuickSearch.js +0 -50
  328. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/QuickSearch/QuickSearch.js.map +0 -1
  329. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/QuickSearch/index.d.ts +0 -2
  330. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/QuickSearch/index.js +0 -6
  331. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/QuickSearch/index.js.map +0 -1
  332. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/ValuesAdd.d.ts +0 -9
  333. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/ValuesAdd.js +0 -215
  334. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/ValuesAdd.js.map +0 -1
  335. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/index.d.ts +0 -2
  336. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/index.js.map +0 -1
  337. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/ComputeIndicator.js.map +0 -1
  338. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/DeleteAllValuesButton.d.ts +0 -4
  339. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/DeleteAllValuesButton.js.map +0 -1
  340. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/calculatedInheritedFlags.js.map +0 -1
  341. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeFieldValue/TreeFieldValue.d.ts +0 -10
  342. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeFieldValue/TreeFieldValue.js +0 -50
  343. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeFieldValue/TreeFieldValue.js.map +0 -1
  344. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeFieldValue/index.d.ts +0 -2
  345. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeFieldValue/index.js.map +0 -1
  346. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/ValuesAdd/ValuesAdd.d.ts +0 -9
  347. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/ValuesAdd/ValuesAdd.js +0 -106
  348. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/ValuesAdd/ValuesAdd.js.map +0 -1
  349. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/ValuesAdd/index.d.ts +0 -2
  350. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/ValuesAdd/index.js +0 -6
  351. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/ValuesAdd/index.js.map +0 -1
  352. package/dist/components/SelectTreeNodeModal/SelectTreeNodeModal.js.map +0 -1
  353. package/dist/components/SelectTreeNodeModal/index.d.ts +0 -1
  354. package/dist/components/SelectTreeNodeModal/index.js.map +0 -1
  355. /package/dist/components/RecordEdition/EditRecordContent/uiElements/{StandardField → shared}/ComputeIndicator.js +0 -0
  356. /package/dist/components/RecordEdition/EditRecordContent/uiElements/{StandardField → shared}/calculatedInheritedFlags.d.ts +0 -0
  357. /package/dist/components/RecordEdition/EditRecordContent/uiElements/{StandardField → shared}/calculatedInheritedFlags.js +0 -0
@@ -0,0 +1,22 @@
1
+ import { RecordFormAttributeFragment } from '../../../../../../_gqlTypes';
2
+ import { DeleteValueFunc, SubmitValueFunc } from '../../../_types';
3
+ import { Dispatch } from 'react';
4
+ import { RecordFormElementsValueLinkValue } from '../../../../../../hooks/useGetRecordForm';
5
+ import { IEditRecordReducerActions, IRecordPropertyWithAttribute } from '../../../../../../components/RecordEdition/editRecordReducer/editRecordReducer';
6
+ interface IUseLinkRecordsInCreationProps {
7
+ attribute: RecordFormAttributeFragment;
8
+ libraryId: string;
9
+ pendingValues: RecordFormElementsValueLinkValue[];
10
+ activeAttribute: IRecordPropertyWithAttribute | null;
11
+ dispatch: Dispatch<IEditRecordReducerActions>;
12
+ isHookUsed: boolean;
13
+ isReadOnly: boolean;
14
+ isFieldInError: boolean;
15
+ onValueSubmit: SubmitValueFunc;
16
+ onValueDelete: DeleteValueFunc;
17
+ }
18
+ export declare const useLinkRecordsInCreation: ({ attribute, libraryId, pendingValues, activeAttribute, dispatch, isHookUsed, isReadOnly, isFieldInError, onValueSubmit, onValueDelete }: IUseLinkRecordsInCreationProps) => {
19
+ UnlinkAllRecordsInCreation: JSX.Element;
20
+ LinkRecordsInCreation: JSX.Element;
21
+ };
22
+ export {};
@@ -0,0 +1,104 @@
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 { FaEye, FaList, FaPlus, FaTrash } from 'react-icons/fa';
6
+ import { Explorer } from '../../../../../../components/Explorer';
7
+ import { ExplorerWrapper } from '../shared/ExplorerWrapper';
8
+ import { LinkActionsButtons } from '../shared/LinkActionsButtons';
9
+ import { useSharedTranslation } from '../../../../../../hooks/useSharedTranslation';
10
+ import { useRecordSelector } from '../action-primary/useRecordSelector';
11
+ import { useEditRecord } from '../action-item/useEditRecord';
12
+ import { useUnselectRecord } from '../action-item/useUnselectRecord';
13
+ import { ACTION_ITEM_EMPTY_LABEL } from '../shared/utils';
14
+ import { useCreateRecord } from '../action-primary/useCreateRecord';
15
+ import { RecordFilterOperator } from '../../../../../../_gqlTypes';
16
+ import { useUnselectAllRecords } from '../action-mass/useUnselectAllRecords';
17
+ import { useLinkRecords } from './useLinkRecords';
18
+ import { DeleteAllValuesButton } from '../../shared/DeleteAllValuesButton';
19
+ import { useEffect } from 'react';
20
+ import { AntForm } from 'aristid-ds';
21
+ import { EditRecordReducerActionsTypes } from '../../../../../../components/RecordEdition/editRecordReducer/editRecordReducer';
22
+ export const useLinkRecordsInCreation = ({ attribute, libraryId, pendingValues, activeAttribute, dispatch, isHookUsed, isReadOnly, isFieldInError, onValueSubmit, onValueDelete }) => {
23
+ const { t } = useSharedTranslation();
24
+ const form = AntForm.useFormInstance();
25
+ const { explorerFilters, explorerKey, linkRecords, unlinkRecords, hasNoSelectedRecord, canDeleteAllValues } = useLinkRecords({
26
+ attribute,
27
+ libraryId,
28
+ onValueSubmit,
29
+ onValueDelete
30
+ });
31
+ const { openModal: openCreateRecordModal, CreateRecordModal } = useCreateRecord({
32
+ linkRecords
33
+ });
34
+ const { openModal: openRecordSelectorModal, RecordSelectorModal } = useRecordSelector({
35
+ libraryId,
36
+ isReplacementMode: !attribute.multiple_values && !hasNoSelectedRecord,
37
+ selectionMode: attribute.multiple_values ? 'multiple' : 'simple',
38
+ linkRecords
39
+ });
40
+ const { openModal: openEditRecordModal, EditRecordModal } = useEditRecord();
41
+ const { callback: unselectRecordCallback } = useUnselectRecord({
42
+ unlinkRecords
43
+ });
44
+ const { callback: unselectAllRecordsCallback } = useUnselectAllRecords({
45
+ unlinkRecords
46
+ });
47
+ useEffect(() => {
48
+ if (isHookUsed && pendingValues.length === 0 && attribute.required) {
49
+ // Set field in error when LinkField is displayed for the first time. Otherwise, errors will be handled by useLinkRecords
50
+ form.setFields([
51
+ {
52
+ name: attribute.id,
53
+ errors: [t('errors.standard_field_required')]
54
+ }
55
+ ]);
56
+ }
57
+ }, []);
58
+ useEffect(() => {
59
+ if (isHookUsed && activeAttribute?.attribute.id === attribute.id) {
60
+ // Update active value used in the sidebar when pendingValues change
61
+ dispatch({
62
+ type: EditRecordReducerActionsTypes.SET_ACTIVE_VALUE,
63
+ values: pendingValues
64
+ });
65
+ }
66
+ }, [pendingValues]);
67
+ return {
68
+ UnlinkAllRecordsInCreation: isHookUsed && canDeleteAllValues && (_jsx(DeleteAllValuesButton, { handleDelete: unlinkRecords, disabled: isReadOnly, danger: isFieldInError })),
69
+ LinkRecordsInCreation: isHookUsed && (_jsxs(_Fragment, { children: [_jsx(ExplorerWrapper, { children: _jsx(Explorer, { defaultViewSettings: {
70
+ filters: explorerFilters,
71
+ filtersOperator: RecordFilterOperator.OR
72
+ }, entrypoint: {
73
+ type: 'library',
74
+ libraryId
75
+ }, showTitle: false, showSearch: false, selectionMode: attribute.multiple_values ? 'multiple' : 'simple', hideSelectAllAction: !attribute.multiple_values, disableSelection: isReadOnly || !attribute.multiple_values, defaultActionsForItem: [], itemActions: [
76
+ { label: ACTION_ITEM_EMPTY_LABEL, icon: _jsx(FaEye, {}), callback: openEditRecordModal },
77
+ ...(attribute.multiple_values
78
+ ? [
79
+ {
80
+ label: ACTION_ITEM_EMPTY_LABEL,
81
+ icon: _jsx(FaTrash, {}),
82
+ callback: unselectRecordCallback,
83
+ isDanger: true
84
+ }
85
+ ]
86
+ : [])
87
+ ], defaultMassActions: [], massActions: attribute.multiple_values
88
+ ? [{ icon: _jsx(FaTrash, {}), label: t('global.delete'), callback: unselectAllRecordsCallback }]
89
+ : [], hidePrimaryActions: true, hideTableHeader: true, iconsOnlyItemActions: true, noPagination: true }, explorerKey) }), _jsx(LinkActionsButtons, { createButtonProps: {
90
+ icon: _jsx(FaPlus, {}),
91
+ label: t('explorer.create-one'),
92
+ callback: () => openCreateRecordModal(libraryId),
93
+ disabled: isReadOnly
94
+ }, linkButtonProps: {
95
+ icon: _jsx(FaList, {}),
96
+ label: attribute.multiple_values || hasNoSelectedRecord
97
+ ? t('explorer.add-existing-item')
98
+ : t('record_edition.replace-by-existing-item'),
99
+ callback: openRecordSelectorModal,
100
+ disabled: isReadOnly
101
+ }, hasNoValue: hasNoSelectedRecord }), CreateRecordModal, RecordSelectorModal, EditRecordModal] }))
102
+ };
103
+ };
104
+ //# sourceMappingURL=useLinkRecordsInCreation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLinkRecordsInCreation.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecordsInCreation.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { RecordFilterInput, RecordFormAttributeLinkAttributeFragment } from '../../../../../../_gqlTypes';
2
+ import { DeleteMultipleValuesFunc, ISubmitMultipleResult } from '../../../_types';
3
+ import { Dispatch, SetStateAction } from 'react';
4
+ import { IItemData, MassSelection } from '../../../../../../components/Explorer/_types';
5
+ import { RecordFormElementsValueLinkValue } from '../../../../../../hooks/useGetRecordForm';
6
+ interface IUseLinkRecordsProps {
7
+ attribute: RecordFormAttributeLinkAttributeFragment;
8
+ backendValues: RecordFormElementsValueLinkValue[];
9
+ setBackendValues: Dispatch<SetStateAction<RecordFormElementsValueLinkValue[]>>;
10
+ onDeleteMultipleValues: DeleteMultipleValuesFunc;
11
+ }
12
+ export declare const useLinkRecords: ({ attribute, backendValues, setBackendValues, onDeleteMultipleValues }: IUseLinkRecordsProps) => {
13
+ handleDeleteAllValues: () => Promise<void>;
14
+ handleExplorerRemoveValue: (item: IItemData) => void;
15
+ handleExplorerMassDeactivateValues: (_massSelectedFilter: RecordFilterInput[], massSelection: MassSelection) => void;
16
+ handleExplorerLinkValue: (saveValuesResult: ISubmitMultipleResult) => void;
17
+ handleExplorerCreateValue: ({ recordIdCreated, saveValuesResultOnLink }: {
18
+ recordIdCreated: string;
19
+ saveValuesResultOnLink?: ISubmitMultipleResult;
20
+ }) => void;
21
+ };
22
+ export {};
@@ -0,0 +1,85 @@
1
+ import { APICallStatus } from '../../../_types';
2
+ import { AntForm } from 'aristid-ds';
3
+ import { useSharedTranslation } from '../../../../../../hooks/useSharedTranslation';
4
+ import { ErrorTypes } from '@leav/utils';
5
+ export const useLinkRecords = ({ attribute, backendValues, setBackendValues, onDeleteMultipleValues }) => {
6
+ const { t } = useSharedTranslation();
7
+ const form = AntForm.useFormInstance();
8
+ const removeValues = (filterFn, useIdValue = false) => {
9
+ if (!filterFn) {
10
+ form.setFieldValue(attribute.id, []);
11
+ form.setFields([
12
+ {
13
+ name: attribute.id,
14
+ errors: attribute.required ? [t('errors.standard_field_required')] : []
15
+ }
16
+ ]);
17
+ setBackendValues([]);
18
+ return;
19
+ }
20
+ const newBackendValues = backendValues.filter(backendValue => filterFn(useIdValue ? backendValue.id_value : backendValue.linkValue.id));
21
+ form.setFieldValue(attribute.id, newBackendValues.map(({ linkValue }) => linkValue.id));
22
+ form.setFields([
23
+ {
24
+ name: attribute.id,
25
+ errors: attribute.required && newBackendValues.length === 0 ? [t('errors.standard_field_required')] : []
26
+ }
27
+ ]);
28
+ setBackendValues(previousBackendValues => previousBackendValues.filter(backendValue => filterFn(useIdValue ? backendValue.id_value : backendValue.linkValue.id)));
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
+ const handleExplorerRemoveValue = (item) => {
37
+ removeValues(id => id !== item.itemId);
38
+ };
39
+ const handleExplorerMassDeactivateValues = (_massSelectedFilter, massSelection) => {
40
+ removeValues(idValue => !massSelection.includes(idValue), true);
41
+ };
42
+ const handleExplorerLinkValue = (saveValuesResult) => {
43
+ if (saveValuesResult.status === APICallStatus.SUCCESS) {
44
+ const saveLinkValues = saveValuesResult.values;
45
+ form.setFieldValue(attribute.id, [
46
+ ...backendValues.map(({ linkValue }) => linkValue.id),
47
+ ...saveLinkValues.map(({ linkValue }) => linkValue.id)
48
+ ]);
49
+ form.setFields([
50
+ {
51
+ name: attribute.id,
52
+ errors: []
53
+ }
54
+ ]);
55
+ setBackendValues([...backendValues, ...saveLinkValues]);
56
+ }
57
+ if (saveValuesResult.status === APICallStatus.ERROR && saveValuesResult.errors) {
58
+ const attributeError = saveValuesResult.errors.filter(err => err.attribute === attribute.id)?.[0];
59
+ if (attributeError) {
60
+ const errorMessage = attributeError.type === ErrorTypes.VALIDATION_ERROR
61
+ ? attributeError.message
62
+ : t(`errors.${attributeError.type}`);
63
+ form.setFields([
64
+ {
65
+ name: attribute.id,
66
+ errors: [errorMessage]
67
+ }
68
+ ]);
69
+ }
70
+ }
71
+ };
72
+ const handleExplorerCreateValue = ({ recordIdCreated, saveValuesResultOnLink }) => {
73
+ if (saveValuesResultOnLink) {
74
+ handleExplorerLinkValue(saveValuesResultOnLink);
75
+ }
76
+ };
77
+ return {
78
+ handleDeleteAllValues,
79
+ handleExplorerRemoveValue,
80
+ handleExplorerMassDeactivateValues,
81
+ handleExplorerLinkValue,
82
+ handleExplorerCreateValue
83
+ };
84
+ };
85
+ //# sourceMappingURL=useLinkRecords.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLinkRecords.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecords.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { Explorer } from '../../../../../../components/Explorer';
2
+ import { ComponentProps, Dispatch, SetStateAction } from 'react';
3
+ import { DeleteMultipleValuesFunc } from '../../../_types';
4
+ import { JoinLibraryContextFragment, RecordFormAttributeLinkAttributeFragment } from '../../../../../../_gqlTypes';
5
+ import { RecordFormElementsValueLinkValue } from '../../../../../../hooks/useGetRecordForm';
6
+ import { IEditRecordReducerActions, IRecordPropertyWithAttribute } from '../../../../../../components/RecordEdition/editRecordReducer/editRecordReducer';
7
+ interface ILinkRecordsInCreationProps {
8
+ libraryId: string;
9
+ recordId: string;
10
+ attribute: RecordFormAttributeLinkAttributeFragment;
11
+ joinLibraryContext: JoinLibraryContextFragment;
12
+ columnsToDisplay: ComponentProps<typeof Explorer>['defaultViewSettings']['attributesIds'];
13
+ backendValues: RecordFormElementsValueLinkValue[];
14
+ setBackendValues: Dispatch<SetStateAction<RecordFormElementsValueLinkValue[]>>;
15
+ activeAttribute: IRecordPropertyWithAttribute | null;
16
+ dispatch: Dispatch<IEditRecordReducerActions>;
17
+ isHookUsed: boolean;
18
+ isReadOnly: boolean;
19
+ isFieldInError: boolean;
20
+ tagDisplayMode: boolean;
21
+ hasNoValue: boolean;
22
+ onDeleteMultipleValues: DeleteMultipleValuesFunc;
23
+ }
24
+ export declare const useLinkRecordsInEdition: ({ libraryId, recordId, attribute, joinLibraryContext, columnsToDisplay, backendValues, setBackendValues, activeAttribute, dispatch, isHookUsed, isReadOnly, isFieldInError, tagDisplayMode, onDeleteMultipleValues }: ILinkRecordsInCreationProps) => {
25
+ UnlinkAllRecordsInEdition: JSX.Element;
26
+ LinkRecordsInEditionExplorer: JSX.Element;
27
+ };
28
+ export {};
@@ -0,0 +1,311 @@
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 { Explorer } from '../../../../../../components/Explorer';
6
+ import { useEffect, useState } from 'react';
7
+ import { useSharedTranslation } from '../../../../../../hooks/useSharedTranslation';
8
+ import { ExplorerWrapper } from '../shared/ExplorerWrapper';
9
+ import { DeleteAllValuesButton } from '../../shared/DeleteAllValuesButton';
10
+ import { AttributeType, RecordFilterCondition, RecordFilterOperator, useGetLibraryByIdQuery, useGetJoinLibraryMandatoryAttributeValuesLazyQuery, useGetRecordsFromLibraryQuery } from '../../../../../../_gqlTypes';
11
+ import useSaveValueBatchMutation from '../../../../../../components/RecordEdition/EditRecordContent/hooks/useExecuteSaveValueBatchMutation';
12
+ import { AntForm, KitButton } from 'aristid-ds';
13
+ import { EditRecordReducerActionsTypes } from '../../../../../../components/RecordEdition/editRecordReducer/editRecordReducer';
14
+ import { useLinkRecords } from './useLinkRecords';
15
+ import LinkSelect from '../../../../../../components/LinkSelect';
16
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
17
+ import { faPlus } from '@fortawesome/free-solid-svg-icons';
18
+ import { SelectTreeNodeModal } from '../../TreeField/manage-tree-node-selection/SelectTreeNodeModal';
19
+ import _ from 'lodash';
20
+ const _shouldUpdateExplorerActions = (ref, explorerActions) => ref?.createAction?.disabled !== explorerActions?.createAction?.disabled ||
21
+ ref?.linkAction?.disabled !== explorerActions?.linkAction?.disabled ||
22
+ ref?.totalCount !== explorerActions?.totalCount;
23
+ export const useLinkRecordsInEdition = ({ libraryId, recordId, attribute, joinLibraryContext, columnsToDisplay, backendValues, setBackendValues, activeAttribute, dispatch, isHookUsed, isReadOnly, isFieldInError, tagDisplayMode, onDeleteMultipleValues }) => {
24
+ const { t } = useSharedTranslation();
25
+ const form = AntForm.useFormInstance();
26
+ const [isExplorerAddButtonClicked, setIsExplorerAddButtonClicked] = useState(false);
27
+ const [explorerActions, setExplorerActions] = useState(null);
28
+ const [fullTextSearchAttributes, setFullTextSearchAttributes] = useState([]);
29
+ const [linkedIds, setLinkIds] = useState([]);
30
+ const [selectOptions, setSelectOptions] = useState([]);
31
+ /**
32
+ * Keys is joined record id (e.g. thematic), values is join record Id (e.g. structure_item)
33
+ * Necessary to get the id_value of the link when we want to delete a value
34
+ */
35
+ const [joinedRecordIdsMap, setJoinedRecordIdsMap] = useState(null);
36
+ const { handleDeleteAllValues, handleExplorerCreateValue, handleExplorerLinkValue, handleExplorerMassDeactivateValues, handleExplorerRemoveValue } = useLinkRecords({
37
+ attribute,
38
+ backendValues,
39
+ setBackendValues,
40
+ onDeleteMultipleValues
41
+ });
42
+ const _getLibraryId = () => (joinLibraryContext?.mandatoryAttribute &&
43
+ 'linked_library' in joinLibraryContext.mandatoryAttribute &&
44
+ joinLibraryContext.mandatoryAttribute.linked_library?.id) ||
45
+ attribute.linked_library.id;
46
+ // Query to get all records from the linked library
47
+ // Network-only is useful to avoid caching, we have a side effect otherwise
48
+ // When the record is created, if we call getRecordsFromLibrary(), the previous records are returned
49
+ const { data: libraryItems, refetch: getRecordsFromLibrary } = useGetRecordsFromLibraryQuery({
50
+ fetchPolicy: 'network-only',
51
+ variables: {
52
+ libraryId: _getLibraryId(),
53
+ pagination: { limit: 10, offset: 0 }
54
+ }
55
+ });
56
+ // Function to get the library configuration
57
+ const { data: libraryLinked } = useGetLibraryByIdQuery({
58
+ variables: {
59
+ id: _getLibraryId()
60
+ }
61
+ });
62
+ useEffect(() => {
63
+ if (libraryLinked) {
64
+ setFullTextSearchAttributes(libraryLinked.libraries.list[0].fullTextAttributes);
65
+ }
66
+ }, [libraryLinked]);
67
+ // For each record in backendValues, get the id of the record linked by the mandatory attribute
68
+ // Will create a map of joined record ids to their corresponding link ids in joinedRecordIdsMap
69
+ const [getJoinLibraryMandatoryAttributeValues, { data: mandatoryAttributeValues }] = useGetJoinLibraryMandatoryAttributeValuesLazyQuery({
70
+ fetchPolicy: 'no-cache'
71
+ });
72
+ useEffect(() => {
73
+ if (mandatoryAttributeValues) {
74
+ const _joinedRecordIdsMap = mandatoryAttributeValues?.records?.list.reduce((acc, record) => {
75
+ const joinedRecordId = record.property[0]?.payload?.id;
76
+ if (joinedRecordId) {
77
+ acc[joinedRecordId] = record.id;
78
+ }
79
+ return acc;
80
+ }, {});
81
+ const linkIds = Object.keys(_joinedRecordIdsMap);
82
+ setJoinedRecordIdsMap(_joinedRecordIdsMap);
83
+ setLinkIds(linkIds);
84
+ }
85
+ }, [mandatoryAttributeValues]);
86
+ // Function to refetch data with current parameters
87
+ const getRecordsRefetch = (customVariables = {}) => getRecordsFromLibrary({
88
+ libraryId: _getLibraryId(),
89
+ pagination: { limit: 10, offset: 0 },
90
+ ...customVariables
91
+ });
92
+ useEffect(() => {
93
+ // will be set by specific useEffect on joinLinkOrTreeValue after getLinkOrTreeAttributeValueOfRecord
94
+ if (backendValues.length) {
95
+ if (joinLibraryContext?.mandatoryAttribute?.id) {
96
+ const filteredJoinRecords = backendValues.reduce((acc, value, index) => {
97
+ // Add OR operator between filters (except before the first filter)
98
+ if (index > 0) {
99
+ acc.push({ operator: RecordFilterOperator.OR });
100
+ }
101
+ acc.push({
102
+ condition: RecordFilterCondition.EQUAL,
103
+ field: 'id',
104
+ value: value.linkValue.id
105
+ });
106
+ return acc;
107
+ }, []);
108
+ getJoinLibraryMandatoryAttributeValues({
109
+ variables: {
110
+ joinLibraryId: attribute.linked_library.id,
111
+ filters: filteredJoinRecords,
112
+ mandatoryAttributeId: joinLibraryContext.mandatoryAttribute.id
113
+ }
114
+ });
115
+ }
116
+ else {
117
+ setLinkIds(backendValues.map(bv => bv.linkValue.id));
118
+ }
119
+ }
120
+ else {
121
+ setLinkIds([]);
122
+ }
123
+ if (isHookUsed && activeAttribute?.attribute.id === attribute.id) {
124
+ // Update active value used in the sidebar when backendValues change
125
+ dispatch({
126
+ type: EditRecordReducerActionsTypes.SET_ACTIVE_VALUE,
127
+ values: backendValues
128
+ });
129
+ }
130
+ }, [backendValues, joinLibraryContext]);
131
+ // Update options for LinkSelect when libraryItems update
132
+ useEffect(() => {
133
+ if (libraryItems?.records?.list) {
134
+ setSelectOptions(libraryItems.records.list.map(record => ({
135
+ value: record.id,
136
+ label: record.whoAmI.label ?? record.whoAmI.id,
137
+ idCard: {
138
+ description: record.whoAmI.label ?? record.whoAmI.id,
139
+ avatarProps: {
140
+ size: 'small',
141
+ shape: 'square',
142
+ imageFit: 'contain',
143
+ src: record.whoAmI.preview?.small,
144
+ label: record.whoAmI.label ?? record.whoAmI.id
145
+ }
146
+ }
147
+ })));
148
+ }
149
+ }, [libraryItems]);
150
+ useEffect(() => {
151
+ if (isHookUsed && backendValues.length === 0 && attribute.required) {
152
+ // Set field in error when LinkField is displayed for the first time. Otherwise, errors will be handled by _removeValues() or _handleExplorerLinkValue()
153
+ form.setFields([
154
+ {
155
+ name: attribute.id,
156
+ errors: [t('errors.standard_field_required')]
157
+ }
158
+ ]);
159
+ }
160
+ }, []);
161
+ const _handleExplorerRef = (ref) => {
162
+ if (_shouldUpdateExplorerActions(ref, explorerActions)) {
163
+ setExplorerActions({
164
+ createAction: ref?.createAction,
165
+ linkAction: ref?.linkAction,
166
+ totalCount: ref?.totalCount
167
+ });
168
+ }
169
+ };
170
+ const _openLinkSelect = () => {
171
+ setIsExplorerAddButtonClicked(true);
172
+ };
173
+ const { saveValues } = useSaveValueBatchMutation();
174
+ // eventually change Set to Array can simplify a bit that method !
175
+ const _onSelectionDone = async (itemsToLink, itemsToDelete) => {
176
+ // In case of joinLibraryContext,
177
+ // itemsToLink and itemsToDelete are a Set of joined record ids (e.g. thematic ids instead structure_item ids)
178
+ // - for insertion, backend can receive joined record ids, it is ok
179
+ // - but for deletion, we need the id of linked record (e.g. structure_item id), to be able to get the id_value of that link
180
+ // (e.g. between campaign and structure_item), so we use a map of joined record ids to their corresponding link ids
181
+ // (e.g. switch from thematic id to structure_item id)
182
+ const backendIdToDelete = joinedRecordIdsMap
183
+ ? new Set([...itemsToDelete.values()].map(itemToDelete => joinedRecordIdsMap[itemToDelete]))
184
+ : itemsToDelete;
185
+ // If there is no value to link or to remove, return early
186
+ if (itemsToLink.size === 0 && itemsToDelete.size === 0) {
187
+ setIsExplorerAddButtonClicked(false);
188
+ return;
189
+ }
190
+ // Convert itemsToLink Set to Array once to avoid repeated conversions
191
+ const itemsToLinkArray = Array.from(itemsToLink);
192
+ // Find values to remove and prepare payload for backend
193
+ const valuesToRemove = backendValues.filter(bv => backendIdToDelete.has(bv.linkValue.id));
194
+ const idValuesToRemove = valuesToRemove.map(bv => bv.id_value);
195
+ // Prepare batch operation payload
196
+ const values = [
197
+ // Items to link (create new links)
198
+ ...itemsToLinkArray.map(item => ({
199
+ attribute: attribute.id,
200
+ idValue: null,
201
+ value: item
202
+ })),
203
+ // Items to delete (remove existing links)
204
+ ...idValuesToRemove.map(item => ({
205
+ attribute: attribute.id,
206
+ idValue: item,
207
+ value: null
208
+ }))
209
+ ];
210
+ // Send the values to the backend
211
+ const res = await saveValues({ id: recordId, library: { id: libraryId } }, values, undefined, true);
212
+ const resValues = res.values;
213
+ // Update linked IDs: add new links and remove deleted ones
214
+ // Maybe not necessary because setBackendValues will trigger an effect to re set linkedIds !
215
+ const updatedLinkedIds = linkedIds.filter(id => !itemsToDelete.has(id)).concat(itemsToLinkArray);
216
+ setLinkIds(updatedLinkedIds);
217
+ // Extract newly added values from response, filter because saveValues return delete values in resValues !
218
+ const newlyAddedValues = resValues.filter(v =>
219
+ // We do not do a positive filter based on itemsToLink because in case of joinLibraryContext,
220
+ // we do not have the mapping between linkIds and backendValue ids.
221
+ // However in we know the mapping between linkIds and backendValue ids for itemsToDelete, so we do a negative filter here
222
+ !backendIdToDelete.has(v.linkValue.id));
223
+ // Update backend values: remove deleted ones and add new ones
224
+ setBackendValues([...backendValues.filter(bv => !backendIdToDelete.has(bv.linkValue.id)), ...newlyAddedValues]);
225
+ // Hide linkSelect
226
+ setIsExplorerAddButtonClicked(false);
227
+ };
228
+ const _onBlurLinkSelect = async (itemsToLink, itemsToDelete) => {
229
+ _onSelectionDone(itemsToLink, itemsToDelete);
230
+ };
231
+ const _onSelectTreeNodeConfirm = async (selectedNodes) => {
232
+ // Convert selectedNodes to a Set of ids
233
+ const itemsToLink = new Set(_.difference(selectedNodes.map(node => node.id), linkedIds));
234
+ const itemsToDelete = new Set(_.difference(linkedIds, selectedNodes.map(node => node.id)));
235
+ _onSelectionDone(itemsToLink, itemsToDelete);
236
+ };
237
+ // search records that match the text typed in the search bar
238
+ const _onLinkSelectSearch = async (text) => {
239
+ const filters = fullTextSearchAttributes.reduce((acc, attr, index) => {
240
+ // Add OR operator between filters (except before the first filter)
241
+ if (index > 0) {
242
+ acc.push({ operator: RecordFilterOperator.OR });
243
+ }
244
+ // Add the filter condition
245
+ acc.push({
246
+ condition: RecordFilterCondition.CONTAINS,
247
+ field: attr.id,
248
+ value: text
249
+ });
250
+ return acc;
251
+ }, []);
252
+ await getRecordsRefetch({
253
+ filters
254
+ });
255
+ };
256
+ const _onCreateLinkSelect = async () => {
257
+ setIsExplorerAddButtonClicked(false);
258
+ explorerActions?.createAction?.callback();
259
+ };
260
+ const _onDeselect = linkId => {
261
+ const item = backendValues.find(bv => bv.linkValue.id === linkId);
262
+ if (!item) {
263
+ return null;
264
+ }
265
+ return {
266
+ id_value: item.id_value,
267
+ libraryId,
268
+ attribute,
269
+ recordId
270
+ };
271
+ };
272
+ return {
273
+ UnlinkAllRecordsInEdition: isHookUsed &&
274
+ backendValues.length > 1 &&
275
+ attribute.multiple_values &&
276
+ !attribute.required && (_jsx(DeleteAllValuesButton, { handleDelete: handleDeleteAllValues, disabled: isReadOnly, danger: isFieldInError })),
277
+ LinkRecordsInEditionExplorer: isHookUsed &&
278
+ recordId &&
279
+ (tagDisplayMode ? (_jsx(LinkSelect, { tagDisplay: true, options: selectOptions, defaultValues: linkedIds })) : (_jsxs(_Fragment, { children: [_jsx(ExplorerWrapper, { children: _jsx(Explorer, { ref: _handleExplorerRef, defaultViewSettings: {
280
+ attributesIds: columnsToDisplay
281
+ }, entrypoint: {
282
+ type: 'link',
283
+ parentLibraryId: libraryId,
284
+ parentRecordId: recordId,
285
+ linkAttributeId: attribute.id
286
+ }, defaultCallbacks: {
287
+ item: {
288
+ remove: handleExplorerRemoveValue
289
+ },
290
+ mass: {
291
+ deactivate: handleExplorerMassDeactivateValues
292
+ },
293
+ primary: {
294
+ link: handleExplorerLinkValue,
295
+ create: handleExplorerCreateValue
296
+ }
297
+ }, showTitle: false, showSearch: false, selectionMode: attribute.multiple_values ? 'multiple' : 'simple', disableSelection: isReadOnly ||
298
+ !attribute.multiple_values ||
299
+ (attribute.required && attribute.multiple_values && backendValues.length === 1), defaultActionsForItem: [], joinLibraryContext: joinLibraryContext, hidePrimaryActions: true, hideTableHeader: true, iconsOnlyItemActions: true }) }), _jsx(KitButton, { disabled: isReadOnly, onClick: _openLinkSelect, icon: _jsx(FontAwesomeIcon, { icon: faPlus }) }), isExplorerAddButtonClicked && (_jsxs(_Fragment, { children: [joinLibraryContext?.mandatoryAttribute.type !== AttributeType.tree && (_jsx(LinkSelect, { tagDisplay: false, options: selectOptions, defaultValues: linkedIds, onClickCreateButton: _onCreateLinkSelect, onBlur: _onBlurLinkSelect, onParentDeselect: _onDeselect, onSearch: _onLinkSelectSearch })), joinLibraryContext?.mandatoryAttribute.type === AttributeType.tree && (_jsx(SelectTreeNodeModal, { title: "title", open: true, attribute: {
300
+ ...joinLibraryContext.mandatoryAttribute,
301
+ multiple_values: attribute.multiple_values
302
+ }, backendValues: linkedIds.map(linkId => ({
303
+ treeValue: {
304
+ id: linkId
305
+ }
306
+ })), allowInitialNodeDeselection: true, onClose: () => {
307
+ setIsExplorerAddButtonClicked(false);
308
+ }, onConfirm: _onSelectTreeNodeConfirm }))] }))] })))
309
+ };
310
+ };
311
+ //# sourceMappingURL=useLinkRecordsInEdition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLinkRecordsInEdition.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.tsx"],"names":[],"mappings":"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"}