@leav/ui 0.4.0-2b240f6 → 0.4.0-347facc

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 (94) hide show
  1. package/dist/_gqlTypes/index.d.ts +939 -19
  2. package/dist/_gqlTypes/index.js +132 -3
  3. package/dist/_gqlTypes/index.js.map +1 -1
  4. package/dist/_queries/records/activateRecordsMutation.d.ts +1 -0
  5. package/dist/_queries/records/activateRecordsMutation.js +15 -0
  6. package/dist/_queries/records/activateRecordsMutation.js.map +1 -0
  7. package/dist/_queries/records/getRecordFormQuery.js +9 -0
  8. package/dist/_queries/records/getRecordFormQuery.js.map +1 -1
  9. package/dist/components/Explorer/DataView.d.ts +2 -1
  10. package/dist/components/Explorer/DataView.js +13 -10
  11. package/dist/components/Explorer/DataView.js.map +1 -1
  12. package/dist/components/Explorer/Explorer.d.ts +5 -4
  13. package/dist/components/Explorer/Explorer.js +7 -5
  14. package/dist/components/Explorer/Explorer.js.map +1 -1
  15. package/dist/components/Explorer/_queries/useExplorerData.js +7 -3
  16. package/dist/components/Explorer/_queries/useExplorerData.js.map +1 -1
  17. package/dist/components/Explorer/_types.d.ts +4 -2
  18. package/dist/components/Explorer/_types.js.map +1 -1
  19. package/dist/components/Explorer/actions-item/{useRemoveItemAction.d.ts → useEditStatusItemAction.d.ts} +2 -2
  20. package/dist/components/Explorer/actions-item/{useRemoveItemAction.js → useEditStatusItemAction.js} +71 -24
  21. package/dist/components/Explorer/actions-item/useEditStatusItemAction.js.map +1 -0
  22. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.d.ts +3 -1
  23. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js +14 -6
  24. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js.map +1 -1
  25. package/dist/components/Explorer/useViewSettingsReducer.js +6 -2
  26. package/dist/components/Explorer/useViewSettingsReducer.js.map +1 -1
  27. package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.js +2 -2
  28. package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.js.map +1 -1
  29. package/dist/components/LinkSelect/LinkSelect.d.ts +7 -4
  30. package/dist/components/LinkSelect/LinkSelect.js +60 -16
  31. package/dist/components/LinkSelect/LinkSelect.js.map +1 -1
  32. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js +6 -4
  33. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js.map +1 -1
  34. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecordsInCreation.js +2 -2
  35. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecordsInCreation.js.map +1 -1
  36. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.d.ts +3 -2
  37. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.js +235 -48
  38. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.js.map +1 -1
  39. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js +1 -1
  40. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js.map +1 -1
  41. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js +4 -3
  42. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js.map +1 -1
  43. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.d.ts +2 -1
  44. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.js +2 -2
  45. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.js.map +1 -1
  46. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/useDisplayTreeNode.d.ts +2 -1
  47. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/useDisplayTreeNode.js +2 -2
  48. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/useDisplayTreeNode.js.map +1 -1
  49. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.d.ts +21 -2
  50. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js +8 -5
  51. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js.map +1 -1
  52. package/dist/components/RecordEdition/EditRecordModal/EditRecordModal.d.ts +1 -0
  53. package/dist/components/RecordEdition/EditRecordModal/EditRecordModal.js +2 -2
  54. package/dist/components/RecordEdition/EditRecordModal/EditRecordModal.js.map +1 -1
  55. package/dist/components/RecordEdition/index.d.ts +1 -0
  56. package/dist/components/RecordEdition/index.js +1 -0
  57. package/dist/components/RecordEdition/index.js.map +1 -1
  58. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.d.ts +2 -1
  59. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js +2 -2
  60. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js.map +1 -1
  61. package/dist/components/{SelectTreeNodeModal/SelectTreeNodeModal.d.ts → SelectTreeNodeModalOld/SelectTreeNodeModalOld.d.ts} +1 -1
  62. package/dist/components/{SelectTreeNodeModal/SelectTreeNodeModal.js → SelectTreeNodeModalOld/SelectTreeNodeModalOld.js} +4 -2
  63. package/dist/components/SelectTreeNodeModalOld/SelectTreeNodeModalOld.js.map +1 -0
  64. package/dist/components/SelectTreeNodeModalOld/index.d.ts +1 -0
  65. package/dist/components/{SelectTreeNodeModal → SelectTreeNodeModalOld}/index.js +1 -1
  66. package/dist/components/SelectTreeNodeModalOld/index.js.map +1 -0
  67. package/dist/components/ValuesVersionConfigurator/VersionTree/VersionTree.js +2 -2
  68. package/dist/components/ValuesVersionConfigurator/VersionTree/VersionTree.js.map +1 -1
  69. package/dist/components/index.d.ts +1 -2
  70. package/dist/components/index.js +1 -2
  71. package/dist/components/index.js.map +1 -1
  72. package/dist/contexts/LangContext/LangContext.d.ts +1 -2
  73. package/dist/contexts/LangContext/LangContext.js +2 -2
  74. package/dist/contexts/LangContext/LangContext.js.map +1 -1
  75. package/dist/hooks/useGetRecordForm/useGetRecordForm.js +1 -1
  76. package/dist/hooks/useGetRecordForm/useGetRecordForm.js.map +1 -1
  77. package/dist/hooks/useIFrameMessenger/messageHandlers.d.ts +3 -2
  78. package/dist/hooks/useIFrameMessenger/messageHandlers.js +12 -5
  79. package/dist/hooks/useIFrameMessenger/messageHandlers.js.map +1 -1
  80. package/dist/hooks/useIFrameMessenger/types.d.ts +78 -9
  81. package/dist/hooks/useIFrameMessenger/types.js.map +1 -1
  82. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.d.ts +2 -0
  83. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js +32 -12
  84. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js.map +1 -1
  85. package/dist/hooks/useRedirectToLogin/useRedirectToLogin.js +1 -1
  86. package/dist/hooks/useRedirectToLogin/useRedirectToLogin.js.map +1 -1
  87. package/dist/locales/en/shared.json +4 -0
  88. package/dist/locales/fr/shared.json +4 -0
  89. package/dist/types/attributes.d.ts +2 -1
  90. package/package.json +1 -1
  91. package/dist/components/Explorer/actions-item/useRemoveItemAction.js.map +0 -1
  92. package/dist/components/SelectTreeNodeModal/SelectTreeNodeModal.js.map +0 -1
  93. package/dist/components/SelectTreeNodeModal/index.d.ts +0 -1
  94. package/dist/components/SelectTreeNodeModal/index.js.map +0 -1
@@ -3,11 +3,13 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  // This file is released under LGPL V3
4
4
  // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
5
5
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
6
- import { faPlus, faMagnifyingGlass } from '@fortawesome/free-solid-svg-icons';
7
- import { KitButton, KitDivider, KitSelect, KitSpace } from 'aristid-ds';
6
+ import { faMagnifyingGlass, faPlus } from '@fortawesome/free-solid-svg-icons';
7
+ import { KitButton, KitDivider, KitLoader, KitSelect, KitSpace } from 'aristid-ds';
8
8
  import styled from 'styled-components';
9
- import { useState } from 'react';
9
+ import { useEffect, useRef, useState } from 'react';
10
10
  import { useSharedTranslation } from '../../hooks/useSharedTranslation';
11
+ import { useDebouncedValue } from '../../hooks/useDebouncedValue';
12
+ import { FaChevronDown } from 'react-icons/fa';
11
13
  const StyledDivider = styled(KitDivider) `
12
14
  margin: calc(var(--general-spacing-xs) * 1px);
13
15
  `;
@@ -16,29 +18,71 @@ const StyledContainer = styled.div `
16
18
  justify-content: center;
17
19
  `;
18
20
  const StyledKitSelect = styled(KitSelect) `
19
- .ant-select-selection-overflow-item:not(.ant-select-selection-overflow-item-suffix) {
20
- display: none;
21
+ &.select-without-tags {
22
+ .ant-select-selection-overflow-item:not(.ant-select-selection-overflow-item-suffix) {
23
+ display: none;
24
+ }
21
25
  }
22
26
  `;
23
- function LinkSelect({ tagDisplay, options, defaultValues, hideAdvancedSearch = false, onUpdateSelection, onCreate, onAdvanceSearch }) {
27
+ function LinkSelect({ tagDisplay, options, defaultValues, hideAdvancedSearch = false, onUpdateSelection, onClickCreateButton, onBlur, onAdvanceSearch, onSearch }) {
24
28
  const { t } = useSharedTranslation();
25
- const [openSelect, setOpenSelect] = useState(tagDisplay);
29
+ const itemsToLink = useRef(new Set());
30
+ const itemsToDelete = useRef(new Set());
31
+ const [isOpen, setIsOpen] = useState(false);
26
32
  const [currentSearch, setCurrentSearch] = useState('');
33
+ const debouncedSearch = useDebouncedValue(currentSearch, 500);
27
34
  const [emptyResults, setEmptyResults] = useState(false);
35
+ const [isLoading, setIsLoading] = useState(false);
36
+ useEffect(() => {
37
+ if (!tagDisplay) {
38
+ setIsOpen(true);
39
+ }
40
+ }, [tagDisplay]);
41
+ useEffect(() => {
42
+ // Call API search when debounced search value changes
43
+ onSearch?.(debouncedSearch).then(() => {
44
+ setIsLoading(false);
45
+ });
46
+ }, [debouncedSearch]);
47
+ useEffect(() => {
48
+ if (debouncedSearch === '') {
49
+ setEmptyResults(false);
50
+ }
51
+ else {
52
+ setEmptyResults(options.length === 0);
53
+ }
54
+ }, [options, debouncedSearch]);
28
55
  const _handleChange = (selection) => {
29
- onUpdateSelection(selection);
56
+ onUpdateSelection?.(selection);
30
57
  };
31
58
  const _handleSearch = (value) => {
59
+ setIsLoading(true);
32
60
  setCurrentSearch(value);
33
- const optionsFiltered = options.filter(option => option.label.toLowerCase().includes(value.toLowerCase()));
34
- setEmptyResults(optionsFiltered.length === 0 && value !== '');
35
61
  };
36
- const dropdownButtons = (menu) => (_jsxs(_Fragment, { children: [menu, (emptyResults || !hideAdvancedSearch) && (_jsxs(_Fragment, { children: [_jsx(StyledDivider, {}), _jsx(StyledContainer, { children: _jsxs(KitSpace, { align: "center", direction: "vertical", size: "xs", children: [emptyResults && (_jsx(KitButton, { type: "secondary", icon: _jsx(FontAwesomeIcon, { icon: faPlus }), onClick: () => onCreate(currentSearch), children: `${t('record_edition.new_record')} "${currentSearch}"` })), !hideAdvancedSearch && (_jsx(KitButton, { type: "tertiary", icon: _jsx(FontAwesomeIcon, { icon: faMagnifyingGlass }), onClick: () => onAdvanceSearch(), children: t('record_edition.advanced_search') }))] }) })] }))] }));
37
- return (_jsx(_Fragment, { children: tagDisplay ? (_jsx(KitSelect, { placeholder: t('record_edition.select'), mode: "multiple", defaultValue: defaultValues, options: options, optionFilterProp: "label", filterOption: (input, option) => option?.value?.toString().toLowerCase().includes(input.toLowerCase()), showSearch: true, onChange: value => _handleChange(value), onSearch: value => _handleSearch(value), dropdownRender: dropdownButtons })) : (_jsx(StyledKitSelect, { open: openSelect, placeholder: t('record_edition.select'), mode: "multiple", defaultValue: defaultValues, options: options, optionFilterProp: "label", filterOption: (input, option) => option?.value?.toString().toLowerCase().includes(input.toLowerCase()), showSearch: true, suffixIcon: _jsx("div", {}), allowClear: false, onBlur: () => {
38
- setOpenSelect(false);
39
- }, onFocus: () => {
40
- setOpenSelect(true);
41
- }, onChange: value => _handleChange(value), onSearch: value => _handleSearch(value), dropdownRender: dropdownButtons })) }));
62
+ const _onClickCreateButton = () => {
63
+ onClickCreateButton?.(debouncedSearch);
64
+ };
65
+ const _onBlur = () => {
66
+ onBlur?.(itemsToLink.current, itemsToDelete.current);
67
+ setIsOpen(false);
68
+ };
69
+ const _onSelect = (itemId) => {
70
+ // remove itemToDelete if exists
71
+ itemsToDelete.current.delete(itemId);
72
+ itemsToLink.current.add(itemId);
73
+ };
74
+ const _onDeselect = (itemId) => {
75
+ if (itemsToLink.current.has(itemId)) {
76
+ // Remove item to link if exists
77
+ itemsToLink.current.delete(itemId);
78
+ return;
79
+ }
80
+ itemsToDelete.current.add(itemId);
81
+ };
82
+ const dropdownButtons = menu => (_jsxs("div", { className: "dropdown-custom", children: [menu, (emptyResults || !hideAdvancedSearch) && (_jsxs(_Fragment, { children: [_jsx(StyledDivider, {}), _jsx(StyledContainer, { children: isLoading ? (_jsx(KitLoader, {})) : (_jsxs(KitSpace, { align: "center", direction: "vertical", size: "xs", children: [emptyResults && (_jsx(KitButton, { type: "secondary", icon: _jsx(FontAwesomeIcon, { icon: faPlus }), onClick: _onClickCreateButton,
83
+ // @ts-ignore: required to avoid the click propagation that will automatically close the dropdown modal - https://aristid.atlassian.net/browse/DS-339
84
+ onMouseDown: e => e.preventDefault(), children: `${t('record_edition.new_record')} "${debouncedSearch}"` })), !hideAdvancedSearch && (_jsx(KitButton, { type: "tertiary", icon: _jsx(FontAwesomeIcon, { icon: faMagnifyingGlass }), onClick: () => onAdvanceSearch(), children: t('record_edition.advanced_search') }))] })) })] }))] }));
85
+ return (_jsx(StyledKitSelect, { className: tagDisplay ? undefined : 'select-without-tags', placeholder: t('record_edition.select'), mode: "multiple", open: isOpen, defaultValue: defaultValues, options: options, optionFilterProp: "label", filterOption: false, showSearch: true, onChange: _handleChange, onSearch: _handleSearch, onBlur: _onBlur, onFocus: () => setIsOpen(true), onDeselect: _onDeselect, onSelect: _onSelect, dropdownRender: dropdownButtons, autoFocus: !tagDisplay, allowClear: tagDisplay, suffixIcon: tagDisplay ? _jsx(FaChevronDown, {}) : _jsx("div", {}) }));
42
86
  }
43
87
  export default LinkSelect;
44
88
  //# sourceMappingURL=LinkSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinkSelect.js","sourceRoot":"","sources":["../../../src/components/LinkSelect/LinkSelect.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LinkSelect.js","sourceRoot":"","sources":["../../../src/components/LinkSelect/LinkSelect.tsx"],"names":[],"mappings":"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"}
@@ -43,7 +43,7 @@ const KitInputWrapperStyled = styled(KitInputWrapper) `
43
43
  const LinkField = ({ element, readonly, formIdToLoad, pendingValues, onDeleteMultipleValues, onValueSubmit, onValueDelete, metadataEdit = false }) => {
44
44
  const { state, dispatch } = useEditRecordReducer();
45
45
  const { lang } = useLang();
46
- const { settings, attribute } = element;
46
+ const { settings, attribute, joinLibraryContext } = element;
47
47
  const attributesPendingDefaultValues = pendingValues?.[attribute.id]
48
48
  ? Object.values(pendingValues?.[attribute.id])
49
49
  : [];
@@ -55,7 +55,7 @@ const LinkField = ({ element, readonly, formIdToLoad, pendingValues, onDeleteMul
55
55
  const label = localizedTranslation(settings.label, lang);
56
56
  const fieldErrors = form.getFieldError(attribute.id);
57
57
  const columnsToDisplay = settings.columns?.map(({ id }) => id);
58
- const isReadOnly = attribute.readonly || readonly;
58
+ const isReadOnly = attribute.readonly || !attribute.permissions.edit_value || readonly;
59
59
  const isFieldInError = fieldErrors.length > 0;
60
60
  useEffect(() => {
61
61
  setAttributePendingValues(pendingValues?.[attribute.id]
@@ -75,7 +75,8 @@ const LinkField = ({ element, readonly, formIdToLoad, pendingValues, onDeleteMul
75
75
  '.kit-modal-wrapper',
76
76
  `.${CREATE_RECORD_MODAL_CLASSNAME}`,
77
77
  `.${LINK_RECORDS_MODAL_CLASSNAME}`,
78
- `.${EDIT_RECORD_MODAL_CLASSNAME}`
78
+ `.${EDIT_RECORD_MODAL_CLASSNAME}`,
79
+ '.kit-select-dropdown-content'
79
80
  ]
80
81
  });
81
82
  const { UnlinkAllRecordsInCreation, LinkRecordsInCreation } = useLinkRecordsInCreation({
@@ -94,6 +95,7 @@ const LinkField = ({ element, readonly, formIdToLoad, pendingValues, onDeleteMul
94
95
  libraryId: state.libraryId,
95
96
  recordId: state.record?.id,
96
97
  attribute,
98
+ joinLibraryContext,
97
99
  columnsToDisplay,
98
100
  backendValues,
99
101
  setBackendValues,
@@ -106,7 +108,7 @@ const LinkField = ({ element, readonly, formIdToLoad, pendingValues, onDeleteMul
106
108
  hasNoValue: backendValues.length === 0,
107
109
  onDeleteMultipleValues
108
110
  });
109
- return (_jsx(Wrapper, { "$metadataEdit": metadataEdit, children: _jsx(AntForm.Item, { name: attribute.id, noStyle: true, children: _jsx(KitInputWrapperStyled, { id: LINK_FIELD_ID_PREFIX + attribute.id, label: label, required: attribute.required, bordered: true, disabled: isReadOnly, status: isFieldInError ? 'error' : undefined, helper: isFieldInError ? String(fieldErrors[0]) : undefined, extra: _jsxs(_Fragment, { children: [_jsx(KitInputExtraAlignLeft, { children: _jsx(ComputeIndicator, { calculatedFlags: calculatedFlags, inheritedFlags: inheritedFlags }) }), formIdToLoad === 'creation' ? UnlinkAllRecordsInCreation : UnlinkAllRecordsInEdition] }), children: formIdToLoad === 'creation' ? LinkRecordsInCreation : LinkRecordsInEditionExplorer }) }) }));
111
+ return (_jsx(Wrapper, { "$metadataEdit": metadataEdit, children: _jsx(AntForm.Item, { name: attribute.id, noStyle: true, children: _jsx(KitInputWrapperStyled, { id: LINK_FIELD_ID_PREFIX + attribute.id, "data-testid": "link-field", label: label, required: attribute.required, bordered: true, disabled: isReadOnly, status: isFieldInError ? 'error' : undefined, helper: isFieldInError ? String(fieldErrors[0]) : undefined, extra: _jsxs(_Fragment, { children: [_jsx(KitInputExtraAlignLeft, { children: _jsx(ComputeIndicator, { calculatedFlags: calculatedFlags, inheritedFlags: inheritedFlags }) }), formIdToLoad === 'creation' ? UnlinkAllRecordsInCreation : UnlinkAllRecordsInEdition] }), children: formIdToLoad === 'creation' ? LinkRecordsInCreation : LinkRecordsInEditionExplorer }) }) }));
110
112
  };
111
113
  export default LinkField;
112
114
  //# sourceMappingURL=LinkField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinkField.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LinkField.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.tsx"],"names":[],"mappings":"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"}
@@ -90,14 +90,14 @@ export const useLinkRecordsInCreation = ({ attribute, libraryId, pendingValues,
90
90
  icon: _jsx(FaPlus, {}),
91
91
  label: t('explorer.create-one'),
92
92
  callback: () => openCreateRecordModal(libraryId),
93
- disabled: isReadOnly || !attribute.permissions.edit_value
93
+ disabled: isReadOnly
94
94
  }, linkButtonProps: {
95
95
  icon: _jsx(FaList, {}),
96
96
  label: attribute.multiple_values || hasNoSelectedRecord
97
97
  ? t('explorer.add-existing-item')
98
98
  : t('record_edition.replace-by-existing-item'),
99
99
  callback: openRecordSelectorModal,
100
- disabled: isReadOnly || !attribute.permissions.edit_value
100
+ disabled: isReadOnly
101
101
  }, hasNoValue: hasNoSelectedRecord }), CreateRecordModal, RecordSelectorModal, EditRecordModal] }))
102
102
  };
103
103
  };
@@ -1 +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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"}
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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"}
@@ -1,13 +1,14 @@
1
1
  import { Explorer } from '../../../../../../components/Explorer';
2
2
  import { ComponentProps, Dispatch, SetStateAction } from 'react';
3
3
  import { DeleteMultipleValuesFunc } from '../../../_types';
4
- import { RecordFormAttributeLinkAttributeFragment } from '../../../../../../_gqlTypes';
4
+ import { JoinLibraryContextFragment, RecordFormAttributeLinkAttributeFragment } from '../../../../../../_gqlTypes';
5
5
  import { RecordFormElementsValueLinkValue } from '../../../../../../hooks/useGetRecordForm';
6
6
  import { IEditRecordReducerActions, IRecordPropertyWithAttribute } from '../../../../../../components/RecordEdition/editRecordReducer/editRecordReducer';
7
7
  interface ILinkRecordsInCreationProps {
8
8
  libraryId: string;
9
9
  recordId: string;
10
10
  attribute: RecordFormAttributeLinkAttributeFragment;
11
+ joinLibraryContext: JoinLibraryContextFragment;
11
12
  columnsToDisplay: ComponentProps<typeof Explorer>['defaultViewSettings']['attributesIds'];
12
13
  backendValues: RecordFormElementsValueLinkValue[];
13
14
  setBackendValues: Dispatch<SetStateAction<RecordFormElementsValueLinkValue[]>>;
@@ -20,7 +21,7 @@ interface ILinkRecordsInCreationProps {
20
21
  hasNoValue: boolean;
21
22
  onDeleteMultipleValues: DeleteMultipleValuesFunc;
22
23
  }
23
- export declare const useLinkRecordsInEdition: ({ libraryId, recordId, attribute, columnsToDisplay, backendValues, setBackendValues, activeAttribute, dispatch, isHookUsed, isReadOnly, isFieldInError, tagDisplayMode, hasNoValue, onDeleteMultipleValues }: ILinkRecordsInCreationProps) => {
24
+ export declare const useLinkRecordsInEdition: ({ libraryId, recordId, attribute, joinLibraryContext, columnsToDisplay, backendValues, setBackendValues, activeAttribute, dispatch, isHookUsed, isReadOnly, isFieldInError, tagDisplayMode, onDeleteMultipleValues }: ILinkRecordsInCreationProps) => {
24
25
  UnlinkAllRecordsInEdition: JSX.Element;
25
26
  LinkRecordsInEditionExplorer: JSX.Element;
26
27
  };
@@ -4,41 +4,122 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
4
4
  // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
5
5
  import { Explorer } from '../../../../../../components/Explorer';
6
6
  import { useEffect, useState } from 'react';
7
- import { FaList } from 'react-icons/fa';
8
7
  import { useSharedTranslation } from '../../../../../../hooks/useSharedTranslation';
9
8
  import { ExplorerWrapper } from '../shared/ExplorerWrapper';
10
- import { LinkActionsButtons } from '../shared/LinkActionsButtons';
11
9
  import { DeleteAllValuesButton } from '../../shared/DeleteAllValuesButton';
12
- import { AntForm } from 'aristid-ds';
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
13
  import { EditRecordReducerActionsTypes } from '../../../../../../components/RecordEdition/editRecordReducer/editRecordReducer';
14
14
  import { useLinkRecords } from './useLinkRecords';
15
- import { useGetRecordValuesQuery } from '../../../../../../hooks/useGetRecordValuesQuery/useGetRecordValuesQuery';
16
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';
17
20
  const _shouldUpdateExplorerActions = (ref, explorerActions) => ref?.createAction?.disabled !== explorerActions?.createAction?.disabled ||
18
21
  ref?.linkAction?.disabled !== explorerActions?.linkAction?.disabled ||
19
22
  ref?.totalCount !== explorerActions?.totalCount;
20
- export const useLinkRecordsInEdition = ({ libraryId, recordId, attribute, columnsToDisplay, backendValues, setBackendValues, activeAttribute, dispatch, isHookUsed, isReadOnly, isFieldInError, tagDisplayMode, hasNoValue, onDeleteMultipleValues }) => {
23
+ export const useLinkRecordsInEdition = ({ libraryId, recordId, attribute, joinLibraryContext, columnsToDisplay, backendValues, setBackendValues, activeAttribute, dispatch, isHookUsed, isReadOnly, isFieldInError, tagDisplayMode, onDeleteMultipleValues }) => {
21
24
  const { t } = useSharedTranslation();
22
- const [explorerActions, setExplorerActions] = useState(null);
23
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);
24
36
  const { handleDeleteAllValues, handleExplorerCreateValue, handleExplorerLinkValue, handleExplorerMassDeactivateValues, handleExplorerRemoveValue } = useLinkRecords({
25
37
  attribute,
26
38
  backendValues,
27
39
  setBackendValues,
28
40
  onDeleteMultipleValues
29
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
+ });
30
62
  useEffect(() => {
31
- if (isHookUsed && backendValues.length === 0 && attribute.required) {
32
- // Set field in error when LinkField is displayed for the first time. Otherwise, errors will be handled by _removeValues() or _handleExplorerLinkValue()
33
- form.setFields([
34
- {
35
- name: attribute.id,
36
- errors: [t('errors.standard_field_required')]
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;
37
78
  }
38
- ]);
79
+ return acc;
80
+ }, {});
81
+ const linkIds = Object.keys(_joinedRecordIdsMap);
82
+ setJoinedRecordIdsMap(_joinedRecordIdsMap);
83
+ setLinkIds(linkIds);
39
84
  }
40
- }, []);
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
+ });
41
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
+ }
42
123
  if (isHookUsed && activeAttribute?.attribute.id === attribute.id) {
43
124
  // Update active value used in the sidebar when backendValues change
44
125
  dispatch({
@@ -46,22 +127,37 @@ export const useLinkRecordsInEdition = ({ libraryId, recordId, attribute, column
46
127
  values: backendValues
47
128
  });
48
129
  }
49
- }, [backendValues]);
50
- const { data: fieldValues } = useGetRecordValuesQuery(libraryId, [attribute.id], [recordId]);
51
- const selectOptions = (fieldValues?.[recordId]?.[attribute.id] ?? []).map(({ linkValue: record }) => ({
52
- value: record.id,
53
- label: record.whoAmI.label ?? record.whoAmI.id,
54
- idCard: {
55
- description: record.whoAmI.label ?? record.whoAmI.id,
56
- avatarProps: {
57
- size: 'small',
58
- shape: 'square',
59
- imageFit: 'contain',
60
- src: record.whoAmI.preview?.small,
61
- label: record.whoAmI.label ?? record.whoAmI.id
62
- }
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
+ ]);
63
159
  }
64
- }));
160
+ }, []);
65
161
  const _handleExplorerRef = (ref) => {
66
162
  if (_shouldUpdateExplorerActions(ref, explorerActions)) {
67
163
  setExplorerActions({
@@ -71,15 +167,107 @@ export const useLinkRecordsInEdition = ({ libraryId, recordId, attribute, column
71
167
  });
72
168
  }
73
169
  };
74
- const _getExplorerItemActions = () => {
75
- if (isReadOnly) {
76
- return [];
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;
77
189
  }
78
- if ((!attribute.multiple_values && attribute.required) ||
79
- (attribute.multiple_values && backendValues.length === 1 && attribute.required)) {
80
- return ['edit'];
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;
81
264
  }
82
- return ['edit', 'remove'];
265
+ return {
266
+ id_value: item.id_value,
267
+ libraryId,
268
+ attribute,
269
+ recordId
270
+ };
83
271
  };
84
272
  return {
85
273
  UnlinkAllRecordsInEdition: isHookUsed &&
@@ -88,7 +276,7 @@ export const useLinkRecordsInEdition = ({ libraryId, recordId, attribute, column
88
276
  !attribute.required && (_jsx(DeleteAllValuesButton, { handleDelete: handleDeleteAllValues, disabled: isReadOnly, danger: isFieldInError })),
89
277
  LinkRecordsInEditionExplorer: isHookUsed &&
90
278
  recordId &&
91
- (tagDisplayMode ? (_jsx(LinkSelect, { tagDisplay: true, options: selectOptions, defaultValues: selectOptions.map(({ value }) => value), onUpdateSelection: () => null, onCreate: () => null, onAdvanceSearch: () => null })) : (_jsxs(_Fragment, { children: [_jsx(ExplorerWrapper, { children: _jsx(Explorer, { ref: _handleExplorerRef, defaultViewSettings: {
279
+ (tagDisplayMode ? (_jsx(LinkSelect, { tagDisplay: true, options: selectOptions, defaultValues: linkedIds })) : (_jsxs(_Fragment, { children: [_jsx(ExplorerWrapper, { children: _jsx(Explorer, { ref: _handleExplorerRef, defaultViewSettings: {
92
280
  attributesIds: columnsToDisplay
93
281
  }, entrypoint: {
94
282
  type: 'link',
@@ -108,17 +296,16 @@ export const useLinkRecordsInEdition = ({ libraryId, recordId, attribute, column
108
296
  }
109
297
  }, showTitle: false, showSearch: false, selectionMode: attribute.multiple_values ? 'multiple' : 'simple', disableSelection: isReadOnly ||
110
298
  !attribute.multiple_values ||
111
- (attribute.required && attribute.multiple_values && backendValues.length === 1), defaultActionsForItem: _getExplorerItemActions(), hidePrimaryActions: true, hideTableHeader: true, iconsOnlyItemActions: true }) }), _jsx(LinkActionsButtons, { createButtonProps: {
112
- icon: explorerActions?.createAction?.icon,
113
- label: explorerActions?.createAction?.label,
114
- callback: explorerActions?.createAction?.callback,
115
- disabled: isReadOnly || explorerActions?.createAction?.disabled
116
- }, linkButtonProps: {
117
- icon: _jsx(FaList, {}),
118
- label: explorerActions?.linkAction?.label,
119
- callback: explorerActions?.linkAction?.callback,
120
- disabled: isReadOnly || (attribute.multiple_values && explorerActions?.linkAction?.disabled)
121
- }, hasNoValue: hasNoValue })] })))
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 }))] }))] })))
122
309
  };
123
310
  };
124
311
  //# sourceMappingURL=useLinkRecordsInEdition.js.map