@leav/ui 0.4.0-049caba → 0.4.0-083a2b3

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 (179) hide show
  1. package/dist/__mocks__/common/value.d.ts +1 -2
  2. package/dist/__mocks__/common/value.js +0 -11
  3. package/dist/__mocks__/common/value.js.map +1 -1
  4. package/dist/components/Explorer/DataView.js +10 -3
  5. package/dist/components/Explorer/DataView.js.map +1 -1
  6. package/dist/components/Explorer/Explorer.js +2 -0
  7. package/dist/components/Explorer/Explorer.js.map +1 -1
  8. package/dist/components/Explorer/TableTagGroup.d.ts +0 -1
  9. package/dist/components/Explorer/TableTagGroup.js +3 -16
  10. package/dist/components/Explorer/TableTagGroup.js.map +1 -1
  11. package/dist/components/Explorer/_constants.d.ts +3 -0
  12. package/dist/components/Explorer/_constants.js +3 -0
  13. package/dist/components/Explorer/_constants.js.map +1 -1
  14. package/dist/components/Explorer/actions-item/useEditItemAction.js +2 -1
  15. package/dist/components/Explorer/actions-item/useEditItemAction.js.map +1 -1
  16. package/dist/components/Explorer/actions-item/useReplaceItemAction.js +1 -1
  17. package/dist/components/Explorer/actions-item/useReplaceItemAction.js.map +1 -1
  18. package/dist/components/Explorer/actions-mass/useDeleteLinkValues.js +3 -3
  19. package/dist/components/Explorer/actions-mass/useDeleteLinkValues.js.map +1 -1
  20. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js +2 -1
  21. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js.map +1 -1
  22. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.d.ts +4 -2
  23. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.js +19 -3
  24. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.js.map +1 -1
  25. package/dist/components/Explorer/link-item/LinkModal.js +2 -1
  26. package/dist/components/Explorer/link-item/LinkModal.js.map +1 -1
  27. package/dist/components/Explorer/useViewSettingsReducer.js +9 -6
  28. package/dist/components/Explorer/useViewSettingsReducer.js.map +1 -1
  29. package/dist/components/LibraryItemsList/LibraryItemsListTable/Cell/typeGuards.d.ts +4 -0
  30. package/dist/components/LibraryItemsList/LibraryItemsListTable/Cell/typeGuards.js +4 -1
  31. package/dist/components/LibraryItemsList/LibraryItemsListTable/Cell/typeGuards.js.map +1 -1
  32. package/dist/components/RecordEdition/EditRecord/EditRecord.d.ts +1 -0
  33. package/dist/components/RecordEdition/EditRecord/EditRecord.js +24 -13
  34. package/dist/components/RecordEdition/EditRecord/EditRecord.js.map +1 -1
  35. package/dist/components/RecordEdition/EditRecordContent/EditRecordContent.d.ts +3 -1
  36. package/dist/components/RecordEdition/EditRecordContent/EditRecordContent.js +3 -3
  37. package/dist/components/RecordEdition/EditRecordContent/EditRecordContent.js.map +1 -1
  38. package/dist/components/RecordEdition/EditRecordContent/_types.d.ts +5 -0
  39. package/dist/components/RecordEdition/EditRecordContent/_types.js.map +1 -1
  40. package/dist/components/RecordEdition/EditRecordContent/uiElements/Container/Container.d.ts +1 -1
  41. package/dist/components/RecordEdition/EditRecordContent/uiElements/Container/Container.js +2 -2
  42. package/dist/components/RecordEdition/EditRecordContent/uiElements/Container/Container.js.map +1 -1
  43. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.d.ts +7 -1
  44. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js +100 -92
  45. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js.map +1 -1
  46. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-item/useEditRecord.d.ts +5 -0
  47. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-item/useEditRecord.js +39 -0
  48. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-item/useEditRecord.js.map +1 -0
  49. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-item/useUnselectRecord.d.ts +8 -0
  50. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-item/useUnselectRecord.js +23 -0
  51. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-item/useUnselectRecord.js.map +1 -0
  52. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-mass/useUnselectAllRecords.d.ts +9 -0
  53. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-mass/useUnselectAllRecords.js +23 -0
  54. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-mass/useUnselectAllRecords.js.map +1 -0
  55. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-primary/useCreateRecord.d.ts +8 -0
  56. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-primary/useCreateRecord.js +26 -0
  57. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-primary/useCreateRecord.js.map +1 -0
  58. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-primary/useRecordSelector.d.ts +12 -0
  59. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-primary/useRecordSelector.js +24 -0
  60. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-primary/useRecordSelector.js.map +1 -0
  61. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecords.d.ts +19 -0
  62. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecords.js +103 -0
  63. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecords.js.map +1 -0
  64. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecordsInCreation.d.ts +22 -0
  65. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecordsInCreation.js +104 -0
  66. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecordsInCreation.js.map +1 -0
  67. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecords.d.ts +22 -0
  68. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecords.js +85 -0
  69. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecords.js.map +1 -0
  70. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.d.ts +26 -0
  71. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.js +106 -0
  72. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.js.map +1 -0
  73. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/ExplorerWrapper.d.ts +265 -0
  74. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/ExplorerWrapper.js +12 -0
  75. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/ExplorerWrapper.js.map +1 -0
  76. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/LinkActionsButtons.d.ts +9 -0
  77. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/LinkActionsButtons.js +15 -0
  78. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/LinkActionsButtons.js.map +1 -0
  79. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/utils.d.ts +4 -0
  80. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/utils.js +22 -0
  81. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/utils.js.map +1 -0
  82. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js +32 -46
  83. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js.map +1 -1
  84. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSBooleanWrapper.js +1 -2
  85. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSBooleanWrapper.js.map +1 -1
  86. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSColorPickerWrapper.js +1 -2
  87. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSColorPickerWrapper.js.map +1 -1
  88. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSDatePickerWrapper.js +1 -2
  89. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSDatePickerWrapper.js.map +1 -1
  90. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputEncryptedWrapper.js +2 -5
  91. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputEncryptedWrapper.js.map +1 -1
  92. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputNumberWrapper.js +1 -2
  93. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputNumberWrapper.js.map +1 -1
  94. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js +1 -2
  95. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js.map +1 -1
  96. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.js +1 -2
  97. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.js.map +1 -1
  98. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRichTextWrapper.js +1 -2
  99. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRichTextWrapper.js.map +1 -1
  100. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.d.ts +2 -3
  101. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.js +2 -3
  102. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.js.map +1 -1
  103. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/ValuesList/DSListSelect.js +2 -5
  104. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/ValuesList/DSListSelect.js.map +1 -1
  105. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/_types.d.ts +1 -2
  106. package/dist/components/RecordEdition/EditRecordContent/uiElements/{StandardField → shared}/ComputeIndicator.d.ts +4 -2
  107. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.js.map +1 -0
  108. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/DeleteAllValuesButton.d.ts +8 -0
  109. package/dist/components/RecordEdition/EditRecordContent/uiElements/{StandardField → shared}/DeleteAllValuesButton.js +2 -2
  110. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/DeleteAllValuesButton.js.map +1 -0
  111. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/calculatedInheritedFlags.js.map +1 -0
  112. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/useOutsideInteractionDetector.d.ts +17 -0
  113. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/useOutsideInteractionDetector.js +76 -0
  114. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/useOutsideInteractionDetector.js.map +1 -0
  115. package/dist/components/RecordEdition/EditRecordModal/EditRecordModal.d.ts +1 -0
  116. package/dist/components/RecordEdition/EditRecordModal/EditRecordModal.js +5 -3
  117. package/dist/components/RecordEdition/EditRecordModal/EditRecordModal.js.map +1 -1
  118. package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.js +4 -2
  119. package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.js.map +1 -1
  120. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js +3 -0
  121. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js.map +1 -1
  122. package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.d.ts +2 -2
  123. package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.js +22 -3
  124. package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.js.map +1 -1
  125. package/dist/components/RecordEdition/hooks/useGetSubmitButtons.d.ts +1 -1
  126. package/dist/components/RecordEdition/hooks/useGetSubmitButtons.js +3 -3
  127. package/dist/components/RecordEdition/hooks/useGetSubmitButtons.js.map +1 -1
  128. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.d.ts +1 -0
  129. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js +3 -3
  130. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js.map +1 -1
  131. package/dist/constants.d.ts +2 -1
  132. package/dist/constants.js +2 -1
  133. package/dist/constants.js.map +1 -1
  134. package/dist/locales/en/shared.json +2 -1
  135. package/dist/locales/fr/shared.json +2 -1
  136. package/package.json +1 -1
  137. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/FloatingMenuHandler/FloatingMenuHandler.d.ts +0 -14
  138. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/FloatingMenuHandler/FloatingMenuHandler.js +0 -29
  139. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/FloatingMenuHandler/FloatingMenuHandler.js.map +0 -1
  140. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/FloatingMenuHandler/index.d.ts +0 -2
  141. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/FloatingMenuHandler/index.js +0 -6
  142. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/FloatingMenuHandler/index.js.map +0 -1
  143. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MonoValueSelect/MonoValueSelect.d.ts +0 -20
  144. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MonoValueSelect/MonoValueSelect.js +0 -53
  145. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MonoValueSelect/MonoValueSelect.js.map +0 -1
  146. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MonoValueSelect/useGetOptionsQuery.d.ts +0 -19
  147. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MonoValueSelect/useGetOptionsQuery.js +0 -111
  148. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MonoValueSelect/useGetOptionsQuery.js.map +0 -1
  149. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MultiValueSelect/MultiValueSelect.d.ts +0 -20
  150. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MultiValueSelect/MultiValueSelect.js +0 -71
  151. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MultiValueSelect/MultiValueSelect.js.map +0 -1
  152. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MultiValueSelect/useGetOptionsQuery.d.ts +0 -14
  153. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MultiValueSelect/useGetOptionsQuery.js +0 -58
  154. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/MultiValueSelect/useGetOptionsQuery.js.map +0 -1
  155. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/RecordIdentityCell/RecordIdentityCell.d.ts +0 -6
  156. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/RecordIdentityCell/RecordIdentityCell.js +0 -11
  157. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/RecordIdentityCell/RecordIdentityCell.js.map +0 -1
  158. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/RecordIdentityCell/index.d.ts +0 -2
  159. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/RecordIdentityCell/index.js +0 -6
  160. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/RecordIdentityCell/index.js.map +0 -1
  161. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/QuickSearch/QuickSearch.d.ts +0 -13
  162. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/QuickSearch/QuickSearch.js +0 -50
  163. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/QuickSearch/QuickSearch.js.map +0 -1
  164. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/QuickSearch/index.d.ts +0 -2
  165. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/QuickSearch/index.js +0 -6
  166. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/QuickSearch/index.js.map +0 -1
  167. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/ValuesAdd.d.ts +0 -9
  168. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/ValuesAdd.js +0 -215
  169. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/ValuesAdd.js.map +0 -1
  170. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/index.d.ts +0 -2
  171. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/index.js +0 -6
  172. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/ValuesAdd/index.js.map +0 -1
  173. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/ComputeIndicator.js.map +0 -1
  174. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/DeleteAllValuesButton.d.ts +0 -4
  175. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/DeleteAllValuesButton.js.map +0 -1
  176. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/calculatedInheritedFlags.js.map +0 -1
  177. /package/dist/components/RecordEdition/EditRecordContent/uiElements/{StandardField → shared}/ComputeIndicator.js +0 -0
  178. /package/dist/components/RecordEdition/EditRecordContent/uiElements/{StandardField → shared}/calculatedInheritedFlags.d.ts +0 -0
  179. /package/dist/components/RecordEdition/EditRecordContent/uiElements/{StandardField → shared}/calculatedInheritedFlags.js +0 -0
@@ -0,0 +1,23 @@
1
+ // Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06
2
+ // This file is released under LGPL V3
3
+ // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
4
+ import { KitModal } from 'aristid-ds';
5
+ import { useSharedTranslation } from '../../../../../../hooks/useSharedTranslation';
6
+ export const useUnselectRecord = ({ unlinkRecords }) => {
7
+ const { t } = useSharedTranslation();
8
+ return {
9
+ callback: (item) => {
10
+ KitModal.confirm({
11
+ type: 'confirm',
12
+ dangerConfirm: true,
13
+ content: t('record_edition.delete_link_confirm'),
14
+ okText: t('global.submit') ?? undefined,
15
+ cancelText: t('global.cancel') ?? undefined,
16
+ onOk: async () => {
17
+ unlinkRecords([item.itemId]);
18
+ }
19
+ });
20
+ }
21
+ };
22
+ };
23
+ //# sourceMappingURL=useUnselectRecord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUnselectRecord.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-item/useUnselectRecord.tsx"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAOpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAC,aAAa,EAAuB,EAAE,EAAE;IACvE,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAEnC,OAAO;QACH,QAAQ,EAAE,CAAC,IAAe,EAAE,EAAE;YAC1B,QAAQ,CAAC,OAAO,CAAC;gBACb,IAAI,EAAE,SAAS;gBACf,aAAa,EAAE,IAAI;gBACnB,OAAO,EAAE,CAAC,CAAC,oCAAoC,CAAC;gBAChD,MAAM,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,SAAS;gBACvC,UAAU,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,SAAS;gBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE;oBACb,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACjC,CAAC;aACJ,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { MassSelection } from '../../../../../../components/Explorer/_types';
2
+ import { RecordFilterInput } from '../../../../../../_gqlTypes';
3
+ interface IUnselectAllRecordsProps {
4
+ unlinkRecords: (recordIds: string[]) => void;
5
+ }
6
+ export declare const useUnselectAllRecords: ({ unlinkRecords }: IUnselectAllRecordsProps) => {
7
+ callback: (massSelectionFilter: RecordFilterInput[], _massSelection: MassSelection) => void;
8
+ };
9
+ export {};
@@ -0,0 +1,23 @@
1
+ // Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06
2
+ // This file is released under LGPL V3
3
+ // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
4
+ import { KitModal } from 'aristid-ds';
5
+ import { useSharedTranslation } from '../../../../../../hooks/useSharedTranslation';
6
+ export const useUnselectAllRecords = ({ unlinkRecords }) => {
7
+ const { t } = useSharedTranslation();
8
+ return {
9
+ callback: (massSelectionFilter, _massSelection) => {
10
+ KitModal.confirm({
11
+ type: 'confirm',
12
+ dangerConfirm: true,
13
+ content: t('record_edition.delete_links_confirm'),
14
+ okText: t('global.submit') ?? undefined,
15
+ cancelText: t('global.cancel') ?? undefined,
16
+ onOk: async () => {
17
+ unlinkRecords(massSelectionFilter.map(filter => filter.value));
18
+ }
19
+ });
20
+ }
21
+ };
22
+ };
23
+ //# sourceMappingURL=useUnselectAllRecords.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUnselectAllRecords.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-mass/useUnselectAllRecords.tsx"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAQpE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAC,aAAa,EAA2B,EAAE,EAAE;IAC/E,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAEnC,OAAO;QACH,QAAQ,EAAE,CAAC,mBAAwC,EAAE,cAA6B,EAAE,EAAE;YAClF,QAAQ,CAAC,OAAO,CAAC;gBACb,IAAI,EAAE,SAAS;gBACf,aAAa,EAAE,IAAI;gBACnB,OAAO,EAAE,CAAC,CAAC,qCAAqC,CAAC;gBACjD,MAAM,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,SAAS;gBACvC,UAAU,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,SAAS;gBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE;oBACb,aAAa,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnE,CAAC;aACJ,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface IUseCreateRecordProps {
2
+ linkRecords: (recordIds: string[]) => void;
3
+ }
4
+ export declare const useCreateRecord: ({ linkRecords }: IUseCreateRecordProps) => {
5
+ openModal: (libraryIdParam: string) => void;
6
+ CreateRecordModal: JSX.Element;
7
+ };
8
+ export {};
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx } 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 { useState } from 'react';
6
+ import { EditRecordModal } from '../../../../../../components/RecordEdition/EditRecordModal';
7
+ import { CREATE_RECORD_MODAL_CLASSNAME } from '../../../../../../components/Explorer/_constants';
8
+ export const useCreateRecord = ({ linkRecords }) => {
9
+ const [libraryId, setLibraryId] = useState(null);
10
+ const [isModalVisible, setIsModalVisible] = useState(false);
11
+ const openModal = (libraryIdParam) => {
12
+ setLibraryId(libraryIdParam);
13
+ setIsModalVisible(true);
14
+ };
15
+ const closeModal = () => {
16
+ setIsModalVisible(false);
17
+ };
18
+ return {
19
+ openModal,
20
+ CreateRecordModal: isModalVisible && libraryId !== null ? (_jsx(EditRecordModal, { className: CREATE_RECORD_MODAL_CLASSNAME, open: true, record: null, library: libraryId, onClose: closeModal, onCreate: newRecord => {
21
+ linkRecords([newRecord.id]);
22
+ closeModal();
23
+ }, submitButtons: ['create'] })) : null
24
+ };
25
+ };
26
+ //# sourceMappingURL=useCreateRecord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCreateRecord.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-primary/useCreateRecord.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,eAAe,EAAC,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AAMjF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAC,WAAW,EAAwB,EAAE,EAAE;IACpE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,CAAC,cAAsB,EAAE,EAAE;QACzC,YAAY,CAAC,cAAc,CAAC,CAAC;QAC7B,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO;QACH,SAAS;QACT,iBAAiB,EACb,cAAc,IAAI,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,CACnC,KAAC,eAAe,IACZ,SAAS,EAAE,6BAA6B,EACxC,IAAI,QACJ,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,SAAS,CAAC,EAAE;gBAClB,WAAW,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5B,UAAU,EAAE,CAAC;YACjB,CAAC,EACD,aAAa,EAAE,CAAC,QAAQ,CAAC,GAC3B,CACL,CAAC,CAAC,CAAC,IAAI;KACf,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ type SelectionMode = 'simple' | 'multiple';
2
+ interface IUseRecordSelectorProps {
3
+ libraryId: string;
4
+ selectionMode: SelectionMode;
5
+ isReplacementMode: boolean;
6
+ linkRecords: (recordIds: string[]) => void;
7
+ }
8
+ export declare const useRecordSelector: ({ libraryId, selectionMode, isReplacementMode, linkRecords }: IUseRecordSelectorProps) => {
9
+ openModal: () => void;
10
+ RecordSelectorModal: JSX.Element;
11
+ };
12
+ export {};
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx } 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 { useState } from 'react';
6
+ import { SelectRecordForLinkModal } from '../../../../../../components/SelectRecordForLinkModal';
7
+ import { LINK_RECORDS_MODAL_CLASSNAME } from '../../../../../../components/Explorer/_constants';
8
+ export const useRecordSelector = ({ libraryId, selectionMode, isReplacementMode, linkRecords }) => {
9
+ const [isModalVisible, setIsModalVisible] = useState(false);
10
+ const openModal = () => {
11
+ setIsModalVisible(true);
12
+ };
13
+ const closeModal = () => {
14
+ setIsModalVisible(false);
15
+ };
16
+ return {
17
+ openModal,
18
+ RecordSelectorModal: isModalVisible ? (_jsx(SelectRecordForLinkModal, { className: LINK_RECORDS_MODAL_CLASSNAME, open: true, replacementMode: isReplacementMode, childLibraryId: libraryId, selectionMode: selectionMode, hideSelectAllAction: selectionMode !== 'multiple', onSelectionCompleted: data => {
19
+ linkRecords(data.records.list.map(record => record.id));
20
+ closeModal();
21
+ }, onClose: closeModal })) : null
22
+ };
23
+ };
24
+ //# sourceMappingURL=useRecordSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRecordSelector.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/action-primary/useRecordSelector.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,wBAAwB,EAAC,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAC,4BAA4B,EAAC,MAAM,oCAAoC,CAAC;AAWhF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAC9B,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,WAAW,EACW,EAAE,EAAE;IAC1B,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,GAAG,EAAE;QACnB,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO;QACH,SAAS;QACT,mBAAmB,EAAE,cAAc,CAAC,CAAC,CAAC,CAClC,KAAC,wBAAwB,IACrB,SAAS,EAAE,4BAA4B,EACvC,IAAI,QACJ,eAAe,EAAE,iBAAiB,EAClC,cAAc,EAAE,SAAS,EACzB,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,aAAa,KAAK,UAAU,EACjD,oBAAoB,EAAE,IAAI,CAAC,EAAE;gBACzB,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxD,UAAU,EAAE,CAAC;YACjB,CAAC,EACD,OAAO,EAAE,UAAU,GACrB,CACL,CAAC,CAAC,CAAC,IAAI;KACX,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { RecordFormAttributeFragment } from '../../../../../../_gqlTypes';
2
+ import { DeleteValueFunc, SubmitValueFunc } from '../../../_types';
3
+ import { IExplorerFilterStandard } from '../../../../../../components/Explorer/_types';
4
+ interface IUseLinkRecordsProps {
5
+ attribute: RecordFormAttributeFragment;
6
+ libraryId: string;
7
+ onValueSubmit: SubmitValueFunc;
8
+ onValueDelete: DeleteValueFunc;
9
+ }
10
+ export declare const useLinkRecords: ({ attribute, libraryId, onValueSubmit, onValueDelete }: IUseLinkRecordsProps) => {
11
+ explorerFilters: IExplorerFilterStandard[];
12
+ explorerKey: number;
13
+ selectedRecordIds: string[];
14
+ linkRecords: (recordIds: string[]) => void;
15
+ unlinkRecords: (recordIds?: string[]) => void;
16
+ hasNoSelectedRecord: boolean;
17
+ canDeleteAllValues: boolean;
18
+ };
19
+ export {};
@@ -0,0 +1,103 @@
1
+ import { useState } from 'react';
2
+ import { FILTER_ON_ID_DEFAULT_FIELDS, NO_RECORD_FILTERS } from '../shared/utils';
3
+ import { AntForm } from 'aristid-ds';
4
+ import { useSharedTranslation } from '../../../../../../hooks/useSharedTranslation';
5
+ export const useLinkRecords = ({ attribute, libraryId, onValueSubmit, onValueDelete }) => {
6
+ const { t } = useSharedTranslation();
7
+ const [selectedRecordIds, setSelectedRecordIds] = useState([]);
8
+ const [explorerFilters, setExplorerFilters] = useState(NO_RECORD_FILTERS);
9
+ const [explorerKey, setExplorerKey] = useState(0);
10
+ const updateExplorerKey = () => setExplorerKey(explorerKey + 1);
11
+ const form = AntForm.useFormInstance();
12
+ const linkRecords = (recordIds) => {
13
+ if (!attribute.multiple_values) {
14
+ selectedRecordIds.forEach(id => {
15
+ const originalIndex = selectedRecordIds.indexOf(id);
16
+ // In Create mode, we don't really delete the value, we just remove them from the pending values
17
+ onValueDelete({
18
+ id_value: `pending_${originalIndex + 1}`
19
+ }, attribute.id);
20
+ });
21
+ }
22
+ const newSelectedRecordIds = attribute.multiple_values ? [...selectedRecordIds, ...recordIds] : [...recordIds];
23
+ setSelectedRecordIds(newSelectedRecordIds);
24
+ form.setFieldValue(attribute.id, newSelectedRecordIds);
25
+ const newFilters = newSelectedRecordIds.map(id => ({
26
+ ...FILTER_ON_ID_DEFAULT_FIELDS,
27
+ value: id
28
+ }));
29
+ setExplorerFilters(newFilters.length > 0 ? newFilters : NO_RECORD_FILTERS);
30
+ const valuesToAddInPending = recordIds.map(id => ({
31
+ attribute,
32
+ idValue: null,
33
+ value: {
34
+ id,
35
+ whoAmI: {
36
+ id,
37
+ library: {
38
+ id: libraryId
39
+ }
40
+ }
41
+ }
42
+ }));
43
+ form.setFields([
44
+ {
45
+ name: attribute.id,
46
+ errors: attribute.required && newSelectedRecordIds.length === 0 ? [t('errors.standard_field_required')] : []
47
+ }
48
+ ]);
49
+ // In Create mode, we don't really submit the values, we just add them to the pending values
50
+ onValueSubmit(valuesToAddInPending, null);
51
+ updateExplorerKey();
52
+ };
53
+ const unlinkRecords = (recordIds) => {
54
+ selectedRecordIds
55
+ .filter(id => (recordIds ? recordIds.includes(id) : true))
56
+ .forEach(id => {
57
+ const originalIndex = selectedRecordIds.indexOf(id);
58
+ // In Create mode, we don't really delete the value, we just remove them from the pending values
59
+ onValueDelete({
60
+ id_value: `pending_${originalIndex + 1}`
61
+ }, attribute.id);
62
+ });
63
+ if (!recordIds) {
64
+ setSelectedRecordIds([]);
65
+ setExplorerFilters(NO_RECORD_FILTERS);
66
+ form.setFieldValue(attribute.id, []);
67
+ updateExplorerKey();
68
+ if (attribute.required) {
69
+ form.setFields([
70
+ {
71
+ name: attribute.id,
72
+ errors: [t('errors.standard_field_required')]
73
+ }
74
+ ]);
75
+ }
76
+ return;
77
+ }
78
+ const newSelectedRecordIds = selectedRecordIds.filter(id => !recordIds.includes(id));
79
+ setSelectedRecordIds(newSelectedRecordIds);
80
+ form.setFieldValue(attribute.id, newSelectedRecordIds);
81
+ form.setFields([
82
+ {
83
+ name: attribute.id,
84
+ errors: attribute.required && newSelectedRecordIds.length === 0 ? [t('errors.standard_field_required')] : []
85
+ }
86
+ ]);
87
+ const newExplorerFilters = explorerFilters.filter(filter => !recordIds.includes(filter.value));
88
+ setExplorerFilters(newExplorerFilters.length > 0 ? newExplorerFilters : NO_RECORD_FILTERS);
89
+ updateExplorerKey();
90
+ };
91
+ const hasNoSelectedRecord = selectedRecordIds.length === 0;
92
+ const canDeleteAllValues = selectedRecordIds.length > 1 && attribute.multiple_values && !attribute.required;
93
+ return {
94
+ explorerFilters,
95
+ explorerKey,
96
+ selectedRecordIds,
97
+ linkRecords,
98
+ unlinkRecords,
99
+ hasNoSelectedRecord,
100
+ canDeleteAllValues
101
+ };
102
+ };
103
+ //# sourceMappingURL=useLinkRecords.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLinkRecords.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecords.tsx"],"names":[],"mappings":"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"}
@@ -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 || !attribute.permissions.edit_value
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 || !attribute.permissions.edit_value
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,26 @@
1
+ import { Explorer } from '../../../../../../components/Explorer';
2
+ import { ComponentProps, Dispatch, SetStateAction } from 'react';
3
+ import { DeleteMultipleValuesFunc } from '../../../_types';
4
+ import { 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
+ columnsToDisplay: ComponentProps<typeof Explorer>['defaultViewSettings']['attributesIds'];
12
+ backendValues: RecordFormElementsValueLinkValue[];
13
+ setBackendValues: Dispatch<SetStateAction<RecordFormElementsValueLinkValue[]>>;
14
+ activeAttribute: IRecordPropertyWithAttribute | null;
15
+ dispatch: Dispatch<IEditRecordReducerActions>;
16
+ isHookUsed: boolean;
17
+ isReadOnly: boolean;
18
+ isFieldInError: boolean;
19
+ hasNoValue: boolean;
20
+ onDeleteMultipleValues: DeleteMultipleValuesFunc;
21
+ }
22
+ export declare const useLinkRecordsInEdition: ({ libraryId, recordId, attribute, columnsToDisplay, backendValues, setBackendValues, activeAttribute, dispatch, isHookUsed, isReadOnly, isFieldInError, hasNoValue, onDeleteMultipleValues }: ILinkRecordsInCreationProps) => {
23
+ UnlinkAllRecordsInEdition: JSX.Element;
24
+ LinkRecordsInEditionExplorer: JSX.Element;
25
+ };
26
+ export {};