@leav/ui 0.4.0-ab52676 → 0.4.0-abaf374e
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.
- package/README.md +1 -0
- package/dist/__mocks__/common/form.d.ts +632 -0
- package/dist/__mocks__/common/form.js +27 -22
- package/dist/__mocks__/common/form.js.map +1 -1
- package/dist/_gqlTypes/index.d.ts +3205 -2217
- package/dist/_gqlTypes/index.js +414 -132
- package/dist/_gqlTypes/index.js.map +1 -1
- package/dist/_queries/records/getRecordFormQuery.js +10 -5
- package/dist/_queries/records/getRecordFormQuery.js.map +1 -1
- package/dist/_queries/trees/treeNodeChildrenQuery.js +12 -2
- package/dist/_queries/trees/treeNodeChildrenQuery.js.map +1 -1
- package/dist/components/Explorer/DataView.js +4 -4
- package/dist/components/Explorer/DataView.js.map +1 -1
- package/dist/components/Explorer/Explorer.d.ts +4 -2
- package/dist/components/Explorer/Explorer.js +3 -2
- package/dist/components/Explorer/Explorer.js.map +1 -1
- package/dist/components/Explorer/ExplorerToolbar.d.ts +2 -1
- package/dist/components/Explorer/ExplorerToolbar.js +5 -4
- package/dist/components/Explorer/ExplorerToolbar.js.map +1 -1
- package/dist/components/Explorer/_queries/useExplorerData.js +2 -2
- package/dist/components/Explorer/_queries/useExplorerData.js.map +1 -1
- package/dist/components/Explorer/_types.d.ts +4 -1
- package/dist/components/Explorer/_types.js.map +1 -1
- package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.d.ts +3 -1
- package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js +13 -6
- package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/_shared/useTransformFilters.js +4 -0
- package/dist/components/Explorer/manage-view-settings/_shared/useTransformFilters.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropDown.js +2 -2
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropDown.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsInitialState.js +2 -1
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsInitialState.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.d.ts +1 -0
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js.map +1 -1
- package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.js +2 -2
- package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.js.map +1 -1
- package/dist/components/RecordEdition/EditRecord/EditRecord.d.ts +2 -1
- package/dist/components/RecordEdition/EditRecord/EditRecord.js +72 -224
- package/dist/components/RecordEdition/EditRecord/EditRecord.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/EditRecordContent.d.ts +2 -2
- package/dist/components/RecordEdition/EditRecordContent/EditRecordContent.js +57 -33
- package/dist/components/RecordEdition/EditRecordContent/EditRecordContent.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/_types.d.ts +15 -12
- package/dist/components/RecordEdition/EditRecordContent/_types.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/antdUtils.d.ts +6 -0
- package/dist/components/RecordEdition/EditRecordContent/antdUtils.js +7 -1
- package/dist/components/RecordEdition/EditRecordContent/antdUtils.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/helpers/extractFormElements/extractFormElements.d.ts +15 -2
- package/dist/components/RecordEdition/EditRecordContent/helpers/extractFormElements/extractFormElements.js +47 -24
- package/dist/components/RecordEdition/EditRecordContent/helpers/extractFormElements/extractFormElements.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/hooks/useCreateEmptyRecordMutation.d.ts +5 -0
- package/dist/components/RecordEdition/EditRecordContent/hooks/useCreateEmptyRecordMutation.js +28 -0
- package/dist/components/RecordEdition/EditRecordContent/hooks/useCreateEmptyRecordMutation.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordContent/hooks/useFetchVisibleFormValue.d.ts +13 -0
- package/dist/components/RecordEdition/EditRecordContent/hooks/useFetchVisibleFormValue.js +113 -0
- package/dist/components/RecordEdition/EditRecordContent/hooks/useFetchVisibleFormValue.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordContent/hooks/useTabManagement.d.ts +12 -0
- package/dist/components/RecordEdition/EditRecordContent/hooks/useTabManagement.js +39 -0
- package/dist/components/RecordEdition/EditRecordContent/hooks/useTabManagement.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/Container/Container.d.ts +3 -2
- package/dist/components/RecordEdition/EditRecordContent/uiElements/Container/Container.js +3 -5
- package/dist/components/RecordEdition/EditRecordContent/uiElements/Container/Container.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/FormDivider/FormDivider.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/FormTabs/FormTabs.js +25 -5
- package/dist/components/RecordEdition/EditRecordContent/uiElements/FormTabs/FormTabs.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/Frame/Frame.d.ts +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/Frame/Frame.js +1 -3
- package/dist/components/RecordEdition/EditRecordContent/uiElements/Frame/Frame.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js +11 -20
- package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecordsInCreation.d.ts +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.d.ts +4 -3
- package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.js +117 -22
- package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.d.ts +0 -2
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js +61 -78
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js +2 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.d.ts +2 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.js +2 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/_types.d.ts +1 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TextBlock/TextBlock.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.d.ts +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js +23 -26
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/{useDisplayTreeNode.d.ts → TreeNodeList.d.ts} +3 -4
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeList.js +5 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeList.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.d.ts +16 -4
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js +12 -13
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.d.ts +4 -2
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.js +56 -58
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/calculatedInheritedFlags.js +4 -4
- package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/calculatedInheritedFlags.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/useOutsideInteractionDetector.d.ts +2 -4
- package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/useOutsideInteractionDetector.js +6 -10
- package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/useOutsideInteractionDetector.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordModal/EditRecordModal.js +22 -4
- package/dist/components/RecordEdition/EditRecordModal/EditRecordModal.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.js +23 -5
- package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.js.map +1 -1
- package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.d.ts +6 -1
- package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.js +5 -1
- package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.js.map +1 -1
- package/dist/components/RecordEdition/index.d.ts +2 -1
- package/dist/components/RecordEdition/index.js +2 -1
- package/dist/components/RecordEdition/index.js.map +1 -1
- package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.d.ts +2 -1
- package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js +2 -2
- package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js.map +1 -1
- package/dist/components/SelectTreeNode/SelectTreeNode.d.ts +5 -3
- package/dist/components/SelectTreeNode/SelectTreeNode.js +2 -3
- package/dist/components/SelectTreeNode/SelectTreeNode.js.map +1 -1
- package/dist/components/SelectTreeNode/SelectTreeNodeContent.d.ts +3 -1
- package/dist/components/SelectTreeNode/SelectTreeNodeContent.js +18 -23
- package/dist/components/SelectTreeNode/SelectTreeNodeContent.js.map +1 -1
- package/dist/components/SelectTreeNode/_types.d.ts +17 -0
- package/dist/components/SelectTreeNode/_types.js +2 -0
- package/dist/components/SelectTreeNode/_types.js.map +1 -0
- package/dist/components/{SelectTreeNodeModal/SelectTreeNodeModal.d.ts → SelectTreeNodeModalOld/SelectTreeNodeModalOld.d.ts} +1 -1
- package/dist/components/{SelectTreeNodeModal/SelectTreeNodeModal.js → SelectTreeNodeModalOld/SelectTreeNodeModalOld.js} +4 -2
- package/dist/components/SelectTreeNodeModalOld/SelectTreeNodeModalOld.js.map +1 -0
- package/dist/components/SelectTreeNodeModalOld/index.d.ts +1 -0
- package/dist/components/{SelectTreeNodeModal → SelectTreeNodeModalOld}/index.js +1 -1
- package/dist/components/SelectTreeNodeModalOld/index.js.map +1 -0
- package/dist/components/ValuesVersionConfigurator/VersionTree/VersionTree.js +2 -2
- package/dist/components/ValuesVersionConfigurator/VersionTree/VersionTree.js.map +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useGetRecordForm/useGetRecordForm.d.ts +2 -1
- package/dist/hooks/useGetRecordForm/useGetRecordForm.js +2 -13
- package/dist/hooks/useGetRecordForm/useGetRecordForm.js.map +1 -1
- package/dist/hooks/useIFrameMessenger/messageHandlers.d.ts +2 -1
- package/dist/hooks/useIFrameMessenger/messageHandlers.js +3 -0
- package/dist/hooks/useIFrameMessenger/messageHandlers.js.map +1 -1
- package/dist/hooks/useIFrameMessenger/schema.d.ts +21 -0
- package/dist/hooks/useIFrameMessenger/schema.js +76 -0
- package/dist/hooks/useIFrameMessenger/schema.js.map +1 -0
- package/dist/hooks/useIFrameMessenger/types.d.ts +29 -56
- package/dist/hooks/useIFrameMessenger/types.js.map +1 -1
- package/dist/hooks/useIFrameMessenger/useIFrameMessenger.d.ts +9 -1
- package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js +55 -20
- package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js.map +1 -1
- package/dist/hooks/useIFrameMessengerClient/IFrameMessengerClient.d.ts +7 -0
- package/dist/hooks/useIFrameMessengerClient/IFrameMessengerClient.js +13 -0
- package/dist/hooks/useIFrameMessengerClient/IFrameMessengerClient.js.map +1 -0
- package/dist/hooks/useIFrameMessengerClient/iFrameMessengerClientContext.d.ts +13 -0
- package/dist/{components/RecordEdition/EditRecord/creationErrorContext.js → hooks/useIFrameMessengerClient/iFrameMessengerClientContext.js} +2 -3
- package/dist/hooks/useIFrameMessengerClient/iFrameMessengerClientContext.js.map +1 -0
- package/dist/hooks/useIFrameMessengerClient/useIFrameMessengerClient.d.ts +13 -0
- package/dist/hooks/useIFrameMessengerClient/useIFrameMessengerClient.js +13 -0
- package/dist/hooks/useIFrameMessengerClient/useIFrameMessengerClient.js.map +1 -0
- package/package.json +22 -6
- package/dist/components/RecordEdition/EditRecord/creationErrorContext.d.ts +0 -6
- package/dist/components/RecordEdition/EditRecord/creationErrorContext.js.map +0 -1
- package/dist/components/RecordEdition/EditRecordContent/hooks/useCreateRecordMutation.d.ts +0 -5
- package/dist/components/RecordEdition/EditRecordContent/hooks/useCreateRecordMutation.js +0 -28
- package/dist/components/RecordEdition/EditRecordContent/hooks/useCreateRecordMutation.js.map +0 -1
- package/dist/components/RecordEdition/EditRecordContent/hooks/useRecordEditionContext.d.ts +0 -3
- package/dist/components/RecordEdition/EditRecordContent/hooks/useRecordEditionContext.js +0 -7
- package/dist/components/RecordEdition/EditRecordContent/hooks/useRecordEditionContext.js.map +0 -1
- package/dist/components/RecordEdition/EditRecordContent/hooks/useRunActionsListAndFormatOnValue.d.ts +0 -121
- package/dist/components/RecordEdition/EditRecordContent/hooks/useRunActionsListAndFormatOnValue.js +0 -31
- package/dist/components/RecordEdition/EditRecordContent/hooks/useRunActionsListAndFormatOnValue.js.map +0 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/useDisplayTreeNode.js +0 -8
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/useDisplayTreeNode.js.map +0 -1
- package/dist/components/SelectTreeNodeModal/SelectTreeNodeModal.js.map +0 -1
- package/dist/components/SelectTreeNodeModal/index.d.ts +0 -1
- package/dist/components/SelectTreeNodeModal/index.js.map +0 -1
|
@@ -30,16 +30,16 @@ export interface IDeleteValueResult {
|
|
|
30
30
|
status: APICallStatus;
|
|
31
31
|
error?: string;
|
|
32
32
|
}
|
|
33
|
+
export interface ICustomEventResult {
|
|
34
|
+
[key: string]: any;
|
|
35
|
+
eventName: string;
|
|
36
|
+
element: FormElement<unknown>;
|
|
37
|
+
}
|
|
33
38
|
export interface ICreateRecordResult {
|
|
34
39
|
status: APICallStatus;
|
|
35
40
|
record?: RecordIdentityFragment['whoAmI'];
|
|
36
41
|
errors?: CreateRecordMutation['createRecord']['valuesErrors'];
|
|
37
42
|
}
|
|
38
|
-
export interface IRecordEditionContext {
|
|
39
|
-
elements: IFormElementsByContainer;
|
|
40
|
-
readOnly: boolean;
|
|
41
|
-
record: IRecordIdentityWhoAmI;
|
|
42
|
-
}
|
|
43
43
|
export interface IFormElementsByContainer {
|
|
44
44
|
[containerId: string]: Array<FormElement<unknown>>;
|
|
45
45
|
}
|
|
@@ -55,6 +55,8 @@ export interface ISubmittedValueTree extends ISubmittedValueBase {
|
|
|
55
55
|
export type SubmittedValue = ISubmittedValueStandard | ISubmittedValueLink | ISubmittedValueTree;
|
|
56
56
|
export type SubmitValueFunc = (values: SubmittedValue[], version: IValueVersion) => Promise<ISubmitMultipleResult>;
|
|
57
57
|
export type DeleteValueFunc = (value: ValueInput | null, attribute: string) => Promise<IDeleteValueResult>;
|
|
58
|
+
export type CustomEventFunc = (details: ICustomEventResult) => void;
|
|
59
|
+
export type CreateEmptyRecordFunc = (library: string) => Promise<ICreateRecordResult>;
|
|
58
60
|
export type CreateRecordFunc = (library: string, values: ValueBatchInput[]) => Promise<ICreateRecordResult>;
|
|
59
61
|
export type DeleteMultipleValuesFunc = (attribute: string, values: RecordProperty[], version: IValueVersion) => Promise<ISubmitMultipleResult>;
|
|
60
62
|
export type MetadataSubmitValueFunc = (value: RecordProperty, attribute: RecordFormAttributeFragment, metadata: IKeyValue<AnyPrimitive>) => Promise<ISubmitMultipleResult>;
|
|
@@ -65,22 +67,26 @@ export interface ISubmittedValueBase {
|
|
|
65
67
|
}
|
|
66
68
|
export interface IFormElementProps<SettingsType, RecordFormElements = RecordFormElementsValue> {
|
|
67
69
|
element: FormElement<SettingsType, RecordFormElements>;
|
|
68
|
-
formIdToLoad: string | 'edition' | 'creation';
|
|
69
|
-
pendingValues?: IPendingValues;
|
|
70
70
|
readonly?: boolean;
|
|
71
71
|
onValueSubmit?: SubmitValueFunc;
|
|
72
72
|
onValueDelete?: DeleteValueFunc;
|
|
73
|
+
onCustomEvent?: CustomEventFunc;
|
|
73
74
|
onDeleteMultipleValues?: DeleteMultipleValuesFunc;
|
|
74
75
|
metadataEdit?: boolean;
|
|
76
|
+
record?: IRecordIdentityWhoAmI;
|
|
77
|
+
isFormCreationMode?: boolean;
|
|
78
|
+
elementsByContainer?: Record<string, Array<FormElement<unknown>>>;
|
|
75
79
|
}
|
|
76
80
|
export type FormElement<SettingsType, RecordFormElements = RecordFormElementsValue> = Override<RecordFormElementFragment, {
|
|
77
81
|
settings: SettingsType;
|
|
78
82
|
uiElementType: FormUIElementTypes | FormFieldTypes;
|
|
79
|
-
values
|
|
83
|
+
values?: RecordFormElements[];
|
|
84
|
+
valueError?: string;
|
|
85
|
+
record?: IRecordIdentityWhoAmI;
|
|
80
86
|
}> & {
|
|
81
87
|
uiElement: (props: IFormElementProps<unknown> & {
|
|
82
88
|
antdForm?: FormInstance;
|
|
83
|
-
|
|
89
|
+
valuesMappedByAttributeId?: GetRecordColumnsValuesRecord;
|
|
84
90
|
}) => JSX.Element;
|
|
85
91
|
};
|
|
86
92
|
export interface IDependencyValues {
|
|
@@ -116,6 +122,3 @@ export interface IProvidedByAntFormItem<InputFieldProps extends {
|
|
|
116
122
|
value?: InputFieldProps['value'];
|
|
117
123
|
onChange?: AntNotifier['onChange'];
|
|
118
124
|
}
|
|
119
|
-
export type IPendingValues = Record<string, {
|
|
120
|
-
[idValue: string]: ValueDetailsFragment;
|
|
121
|
-
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_types.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecordContent/_types.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,gCAAe,CAAA;IACf,oCAAmB,CAAA;AACvB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;
|
|
1
|
+
{"version":3,"file":"_types.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecordContent/_types.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,gCAAe,CAAA;IACf,oCAAmB,CAAA;AACvB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AA+GD,MAAM,CAAN,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,4CAAuB,CAAA;IACvB,wCAAmB,CAAA,CAAC,oEAAoE;AAC5F,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B"}
|
|
@@ -4,4 +4,10 @@ export declare const EMPTY_INITIAL_VALUE_STRING = "";
|
|
|
4
4
|
export declare const EMPTY_INITIAL_VALUE_UNDEFINED: any;
|
|
5
5
|
export declare const getEmptyInitialValue: (attribute: RecordFormElementAttribute) => any;
|
|
6
6
|
export declare const getAntdDisplayedValue: (values: RecordFormElementsValueStandardValue[], attribute: RecordFormElementAttribute) => any;
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated This function will be removed after 2026-01-01.
|
|
9
|
+
* This fn is not used anymore, this hook is used useFetchVisibleFormValue, so we don't load default values
|
|
10
|
+
* Return formatted values for an antdForm
|
|
11
|
+
* @param recordForm
|
|
12
|
+
*/
|
|
7
13
|
export declare const getAntdFormInitialValues: (recordForm: IRecordForm) => Store;
|
|
@@ -44,8 +44,14 @@ export const getEmptyInitialValue = (attribute) => {
|
|
|
44
44
|
return EMPTY_INITIAL_VALUE_STRING;
|
|
45
45
|
};
|
|
46
46
|
export const getAntdDisplayedValue = (values, attribute) => formatStandardInitialValue(getUserInputValue(values) ?? getInheritedValue(values) ?? getCalculatedValue(values) ?? null, attribute);
|
|
47
|
+
/**
|
|
48
|
+
* @deprecated This function will be removed after 2026-01-01.
|
|
49
|
+
* This fn is not used anymore, this hook is used useFetchVisibleFormValue, so we don't load default values
|
|
50
|
+
* Return formatted values for an antdForm
|
|
51
|
+
* @param recordForm
|
|
52
|
+
*/
|
|
47
53
|
export const getAntdFormInitialValues = (recordForm) => recordForm.elements.reduce((acc, { attribute, values }) => {
|
|
48
|
-
if (!attribute) {
|
|
54
|
+
if (!attribute || values === null) {
|
|
49
55
|
return acc;
|
|
50
56
|
}
|
|
51
57
|
const value = getUserInputValue(values) ?? getInheritedValue(values) ?? getCalculatedValue(values) ?? null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"antdUtils.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecordContent/antdUtils.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"antdUtils.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecordContent/antdUtils.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import { IRecordForm } from '../../../../../hooks/useGetRecordForm/useGetRecordForm';
|
|
2
2
|
import { IFormElementsByContainer } from '../../_types';
|
|
3
|
-
import { GetRecordColumnsValuesRecord } from '../../../../../_queries/records/getRecordColumnsValues';
|
|
4
3
|
import { QueryResult } from '@apollo/client';
|
|
5
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Extracts and organizes form elements by their container IDs.
|
|
6
|
+
*
|
|
7
|
+
* This function processes the `elements` property of the given form object, organizing
|
|
8
|
+
* them into a structured object grouped by their respective `containerId`. If no `containerId`
|
|
9
|
+
* is specified for an element, it defaults to `FORM_ROOT_CONTAINER_ID`. Additionally, it determines
|
|
10
|
+
* the UI representation (`uiElement`) of each element based on various properties, such as error states
|
|
11
|
+
* and type, and processes element settings.
|
|
12
|
+
*
|
|
13
|
+
* @param {IRecordForm} form - The form object containing elements to be processed.
|
|
14
|
+
* @param {QueryResult['error']} computeErrors - The set of compute errors used to determine error states of elements.
|
|
15
|
+
* @returns {IFormElementsByContainer} An object where each key represents a container ID and its value is an array of
|
|
16
|
+
* elements belonging to that container. Each element includes processed properties such as `uiElement` and updated settings.
|
|
17
|
+
*/
|
|
18
|
+
export declare const extractFormElements: (form: IRecordForm, computeErrors: QueryResult["error"]) => IFormElementsByContainer;
|
|
@@ -1,31 +1,54 @@
|
|
|
1
1
|
import { formComponents } from '../../uiElements';
|
|
2
2
|
import ErrorField from '../../uiElements/ErrorField';
|
|
3
|
+
import { FORM_ROOT_CONTAINER_ID } from '@leav/utils';
|
|
3
4
|
const isComputeValueInError = (computeErrors, attributeId) => computeErrors?.graphQLErrors[0]?.extensions?.fields?.[attributeId];
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Extracts and organizes form elements by their container IDs.
|
|
7
|
+
*
|
|
8
|
+
* This function processes the `elements` property of the given form object, organizing
|
|
9
|
+
* them into a structured object grouped by their respective `containerId`. If no `containerId`
|
|
10
|
+
* is specified for an element, it defaults to `FORM_ROOT_CONTAINER_ID`. Additionally, it determines
|
|
11
|
+
* the UI representation (`uiElement`) of each element based on various properties, such as error states
|
|
12
|
+
* and type, and processes element settings.
|
|
13
|
+
*
|
|
14
|
+
* @param {IRecordForm} form - The form object containing elements to be processed.
|
|
15
|
+
* @param {QueryResult['error']} computeErrors - The set of compute errors used to determine error states of elements.
|
|
16
|
+
* @returns {IFormElementsByContainer} An object where each key represents a container ID and its value is an array of
|
|
17
|
+
* elements belonging to that container. Each element includes processed properties such as `uiElement` and updated settings.
|
|
18
|
+
*/
|
|
19
|
+
export const extractFormElements = (form, computeErrors) => {
|
|
20
|
+
if (!form?.elements) {
|
|
21
|
+
return {};
|
|
7
22
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const useAttributeLabel = element.settings.find(setting => setting.key === 'useAttributeLabel')?.value;
|
|
15
|
-
const settings = element.settings.reduce((allSettings, curSettings) => {
|
|
16
|
-
if (curSettings.key === 'label') {
|
|
17
|
-
return {
|
|
18
|
-
...allSettings,
|
|
19
|
-
label: useAttributeLabel ? element.attribute.label : curSettings.value
|
|
20
|
-
};
|
|
23
|
+
return form.elements.reduce((allElements, element) => {
|
|
24
|
+
// Ensure containerId exists (use FORM_ROOT_CONTAINER_ID for root elements)
|
|
25
|
+
const containerId = element.containerId || FORM_ROOT_CONTAINER_ID;
|
|
26
|
+
// Initialize array for this container if it doesn't exist
|
|
27
|
+
if (!allElements[containerId]) {
|
|
28
|
+
allElements[containerId] = [];
|
|
21
29
|
}
|
|
22
|
-
|
|
30
|
+
const computeInError = element.attribute?.id
|
|
31
|
+
? isComputeValueInError(computeErrors, element.attribute?.id)
|
|
32
|
+
: false;
|
|
33
|
+
const uiElement = (element.valueError && (!element.values || !element.values[element.attribute?.id])) || computeInError
|
|
34
|
+
? ErrorField
|
|
35
|
+
: formComponents[element.uiElementType];
|
|
36
|
+
const useAttributeLabel = element.settings.find(setting => setting.key === 'useAttributeLabel')?.value;
|
|
37
|
+
const settings = element.settings.reduce((allSettings, curSettings) => {
|
|
38
|
+
if (curSettings.key === 'label') {
|
|
39
|
+
return {
|
|
40
|
+
...allSettings,
|
|
41
|
+
label: useAttributeLabel ? element.attribute?.label : curSettings.value
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return { ...allSettings, [curSettings.key]: curSettings.value };
|
|
45
|
+
}, {});
|
|
46
|
+
allElements[containerId].push({
|
|
47
|
+
...element,
|
|
48
|
+
uiElement,
|
|
49
|
+
settings
|
|
50
|
+
});
|
|
51
|
+
return allElements;
|
|
23
52
|
}, {});
|
|
24
|
-
|
|
25
|
-
...element,
|
|
26
|
-
uiElement,
|
|
27
|
-
settings
|
|
28
|
-
});
|
|
29
|
-
return allElements;
|
|
30
|
-
}, {});
|
|
53
|
+
};
|
|
31
54
|
//# sourceMappingURL=extractFormElements.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractFormElements.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/helpers/extractFormElements/extractFormElements.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,UAAU,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"extractFormElements.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/helpers/extractFormElements/extractFormElements.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,UAAU,MAAM,6BAA6B,CAAC;AAGrD,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAEnD,MAAM,qBAAqB,GAAG,CAAC,aAAmC,EAAE,WAAmB,EAAW,EAAE,CAChG,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC;AAEvE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAC/B,IAAiB,EACjB,aAAmC,EACX,EAAE;IAC1B,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE;QACjD,2EAA2E;QAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,sBAAsB,CAAC;QAElE,0DAA0D;QAC1D,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE;YACxC,CAAC,CAAC,qBAAqB,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YAC7D,CAAC,CAAC,KAAK,CAAC;QAEZ,MAAM,SAAS,GACX,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,cAAc;YACjG,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAEhD,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,KAAK,mBAAmB,CAAC,EAAE,KAAK,CAAC;QAEvG,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE;YAClE,IAAI,WAAW,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBAC9B,OAAO;oBACH,GAAG,WAAW;oBACd,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK;iBAC1E,CAAC;YACN,CAAC;YACD,OAAO,EAAC,GAAG,WAAW,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,KAAK,EAAC,CAAC;QAClE,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;YAC1B,GAAG,OAAO;YACV,SAAS;YACT,QAAQ;SACX,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
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 { useCreateEmptyRecordMutation } from '../../../../_gqlTypes';
|
|
5
|
+
import { APICallStatus } from '../_types';
|
|
6
|
+
export default function useExecuteCreateEmptyRecordMutation() {
|
|
7
|
+
const [executeCreateEmptyRecord] = useCreateEmptyRecordMutation();
|
|
8
|
+
return {
|
|
9
|
+
createEmptyRecord: async (libraryId) => {
|
|
10
|
+
const creationResult = await executeCreateEmptyRecord({
|
|
11
|
+
variables: { library: libraryId }
|
|
12
|
+
});
|
|
13
|
+
if (creationResult.data.createEmptyRecord.valuesErrors?.length > 0) {
|
|
14
|
+
return {
|
|
15
|
+
status: APICallStatus.ERROR,
|
|
16
|
+
errors: creationResult.data.createEmptyRecord.valuesErrors
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return {
|
|
21
|
+
status: APICallStatus.SUCCESS,
|
|
22
|
+
record: creationResult.data.createEmptyRecord.record.whoAmI
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=useCreateEmptyRecordMutation.js.map
|
package/dist/components/RecordEdition/EditRecordContent/hooks/useCreateEmptyRecordMutation.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCreateEmptyRecordMutation.js","sourceRoot":"","sources":["../../../../../src/components/RecordEdition/EditRecordContent/hooks/useCreateEmptyRecordMutation.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,aAAa,EAAwB,MAAM,WAAW,CAAC;AAM/D,MAAM,CAAC,OAAO,UAAU,mCAAmC;IACvD,MAAM,CAAC,wBAAwB,CAAC,GAAG,4BAA4B,EAAE,CAAC;IAElE,OAAO;QACH,iBAAiB,EAAE,KAAK,EAAC,SAAS,EAAC,EAAE;YACjC,MAAM,cAAc,GAAG,MAAM,wBAAwB,CAAC;gBAClD,SAAS,EAAE,EAAC,OAAO,EAAE,SAAS,EAAC;aAClC,CAAC,CAAC;YACH,IAAI,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjE,OAAO;oBACH,MAAM,EAAE,aAAa,CAAC,KAAK;oBAC3B,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY;iBAC7D,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,OAAO;oBACH,MAAM,EAAE,aAAa,CAAC,OAAO;oBAC7B,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM;iBAC9D,CAAC;YACN,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IRecordForm } from '../../../../hooks/useGetRecordForm';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to fetch values from visible elements in a form (elements in the visible tab + other elements outside a tab)
|
|
4
|
+
* @param formIdToLoad
|
|
5
|
+
* @param recordForm
|
|
6
|
+
* @param tabIdVisible
|
|
7
|
+
*/
|
|
8
|
+
export declare const useFetchVisibleFormValue: (formIdToLoad: string, recordForm: IRecordForm, tabIdVisible: string) => {
|
|
9
|
+
loading: boolean;
|
|
10
|
+
error: any;
|
|
11
|
+
refetchRecordFormWithValues: () => Promise<void>;
|
|
12
|
+
recordFormWithValues: IRecordForm;
|
|
13
|
+
};
|
|
@@ -0,0 +1,113 @@
|
|
|
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 { useGetRecordFormElementsValuesLazyQuery } from '../../../../_gqlTypes';
|
|
5
|
+
import { useEffect, useState } from 'react';
|
|
6
|
+
import { FormUIElementTypes } from '@leav/utils';
|
|
7
|
+
/**
|
|
8
|
+
* Hook to fetch values from visible elements in a form (elements in the visible tab + other elements outside a tab)
|
|
9
|
+
* @param formIdToLoad
|
|
10
|
+
* @param recordForm
|
|
11
|
+
* @param tabIdVisible
|
|
12
|
+
*/
|
|
13
|
+
export const useFetchVisibleFormValue = (formIdToLoad, recordForm, tabIdVisible) => {
|
|
14
|
+
const [error, setError] = useState(null);
|
|
15
|
+
const [recordFormWithValues, setRecordFormWithValues] = useState(null);
|
|
16
|
+
const [elementIdsVisible, setElementIdsVisible] = useState([]);
|
|
17
|
+
const [elementsIdsFetched, setElementsIdsFetched] = useState([]);
|
|
18
|
+
const [getRecordFormElementsValues, { loading }] = useGetRecordFormElementsValuesLazyQuery({
|
|
19
|
+
fetchPolicy: 'no-cache'
|
|
20
|
+
});
|
|
21
|
+
// Get all elements visible
|
|
22
|
+
const getElementIdsVisible = () => {
|
|
23
|
+
// Find element ids from record.elements that are in the first page of a tab or are not a tab
|
|
24
|
+
const containerToExclude = [];
|
|
25
|
+
recordForm.elements.forEach(el => {
|
|
26
|
+
if (el.uiElementType === FormUIElementTypes.TABS) {
|
|
27
|
+
const tabSettings = el.settings?.find(s => s.key === 'tabs');
|
|
28
|
+
// Exclude all tab ids that are not equals to tabIdVisible variable
|
|
29
|
+
containerToExclude.push(...tabSettings.value.filter(e => e.id !== tabIdVisible).map(e => e.id));
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
// Find all elements visible
|
|
33
|
+
return recordForm.elements
|
|
34
|
+
.filter(e =>
|
|
35
|
+
// filters all elements where containers id contains /${e.id}
|
|
36
|
+
!containerToExclude.some(c => e.containerId?.includes(c)))
|
|
37
|
+
.map(e => e.id);
|
|
38
|
+
};
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
(async () => {
|
|
41
|
+
if (!recordForm || !formIdToLoad || tabIdVisible === undefined) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const elementIds = getElementIdsVisible();
|
|
45
|
+
setElementIdsVisible(elementIds);
|
|
46
|
+
// List of elementIds that we don't have fetched their values yet
|
|
47
|
+
const elementIdsToFetch = elementIds.filter(e => !elementsIdsFetched.includes(e));
|
|
48
|
+
if (!elementIdsToFetch.length) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
const result = await getRecordFormElementsValues({
|
|
53
|
+
variables: {
|
|
54
|
+
libraryId: recordForm.library.id,
|
|
55
|
+
recordId: recordForm.recordId,
|
|
56
|
+
formId: formIdToLoad,
|
|
57
|
+
elementIds: elementIdsToFetch
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
setElementsIdsFetched([...elementsIdsFetched, ...elementIdsToFetch]);
|
|
61
|
+
const recordFormElementValues = (result.data?.getRecordFormElementsValues ||
|
|
62
|
+
[]);
|
|
63
|
+
updateRecordFormWithValues(recordFormElementValues);
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
setError(e);
|
|
67
|
+
}
|
|
68
|
+
})();
|
|
69
|
+
}, [formIdToLoad, recordForm, tabIdVisible]);
|
|
70
|
+
// Merge new values into recordForm
|
|
71
|
+
const updateRecordFormWithValues = (elementsValues) => {
|
|
72
|
+
setRecordFormWithValues({
|
|
73
|
+
...recordForm,
|
|
74
|
+
elements: recordForm.elements.map(e => {
|
|
75
|
+
const elementValue = elementsValues.find((v) => v.id === e.id);
|
|
76
|
+
if (elementValue) {
|
|
77
|
+
return {
|
|
78
|
+
...e,
|
|
79
|
+
values: elementValue.values,
|
|
80
|
+
valueError: elementValue.valueError
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
return e;
|
|
85
|
+
}
|
|
86
|
+
})
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
// Create a refetch function for computed fields
|
|
90
|
+
const refetchRecordFormWithValues = async () => {
|
|
91
|
+
try {
|
|
92
|
+
const result = await getRecordFormElementsValues({
|
|
93
|
+
variables: {
|
|
94
|
+
libraryId: recordForm.library.id,
|
|
95
|
+
recordId: recordForm.recordId,
|
|
96
|
+
formId: formIdToLoad,
|
|
97
|
+
elementIds: elementIdsVisible
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
updateRecordFormWithValues((result.data?.getRecordFormElementsValues || []));
|
|
101
|
+
}
|
|
102
|
+
catch (e) {
|
|
103
|
+
setError(e);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
return {
|
|
107
|
+
loading,
|
|
108
|
+
error,
|
|
109
|
+
refetchRecordFormWithValues,
|
|
110
|
+
recordFormWithValues
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=useFetchVisibleFormValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFetchVisibleFormValue.js","sourceRoot":"","sources":["../../../../../src/components/RecordEdition/EditRecordContent/hooks/useFetchVisibleFormValue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RecordFormElement } from '../../../../hooks/useGetRecordForm';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to manage tab visibility and tab click events in the EditRecordContent component
|
|
4
|
+
* @returns Object containing the visible tab ID and a handler for tab click events
|
|
5
|
+
* undefined = not loaded yet, null = no tabs found, string = id found
|
|
6
|
+
* @param elements
|
|
7
|
+
*/
|
|
8
|
+
export declare const useTabManagement: (elements: RecordFormElement[]) => {
|
|
9
|
+
tabIdVisible: string;
|
|
10
|
+
handleTabClick: (tabIdClicked: string) => void;
|
|
11
|
+
};
|
|
12
|
+
export default useTabManagement;
|
|
@@ -0,0 +1,39 @@
|
|
|
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 { useState, useEffect } from 'react';
|
|
5
|
+
/**
|
|
6
|
+
* Hook to manage tab visibility and tab click events in the EditRecordContent component
|
|
7
|
+
* @returns Object containing the visible tab ID and a handler for tab click events
|
|
8
|
+
* undefined = not loaded yet, null = no tabs found, string = id found
|
|
9
|
+
* @param elements
|
|
10
|
+
*/
|
|
11
|
+
export const useTabManagement = (elements) => {
|
|
12
|
+
// State to track the currently visible tab ID
|
|
13
|
+
const [tabIdVisible, setTabIdVisible] = useState(undefined);
|
|
14
|
+
// Initialize the visible tab ID when the record form is loaded
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
// When we load the record form, get the ID of the first tab
|
|
17
|
+
const firstTabId = elements?.find(e => e.uiElementType === 'tabs')?.settings?.find(s => s.key === 'tabs')
|
|
18
|
+
?.value[0]?.id;
|
|
19
|
+
if (firstTabId) {
|
|
20
|
+
setTabIdVisible(firstTabId);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
setTabIdVisible(null);
|
|
24
|
+
}
|
|
25
|
+
}, [elements]);
|
|
26
|
+
/**
|
|
27
|
+
* Handler for tab click events
|
|
28
|
+
* @param tabIdClicked The ID of the tab that was clicked
|
|
29
|
+
*/
|
|
30
|
+
const handleTabClick = (tabIdClicked) => {
|
|
31
|
+
setTabIdVisible(tabIdClicked);
|
|
32
|
+
};
|
|
33
|
+
return {
|
|
34
|
+
tabIdVisible,
|
|
35
|
+
handleTabClick
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
export default useTabManagement;
|
|
39
|
+
//# sourceMappingURL=useTabManagement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTabManagement.js","sourceRoot":"","sources":["../../../../../src/components/RecordEdition/EditRecordContent/hooks/useTabManagement.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAG1C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAA6B,EAAE,EAAE;IAC9D,8CAA8C;IAC9C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAA4B,SAAS,CAAC,CAAC;IAEvF,+DAA+D;IAC/D,SAAS,CAAC,GAAG,EAAE;QACX,4DAA4D;QAC5D,MAAM,UAAU,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC;YACrG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEnB,IAAI,UAAU,EAAE,CAAC;YACb,eAAe,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACJ,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf;;;OAGG;IACH,MAAM,cAAc,GAAG,CAAC,YAAoB,EAAE,EAAE;QAC5C,eAAe,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,OAAO;QACH,YAAY;QACZ,cAAc;KACjB,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { FormInstance } from 'antd';
|
|
2
2
|
import { IFormElementProps } from '../../_types';
|
|
3
3
|
import { GetRecordColumnsValuesRecord } from '../../../../../_queries/records/getRecordColumnsValues';
|
|
4
|
-
declare function Container({ element,
|
|
4
|
+
declare function Container({ element, antdForm, readonly, onValueSubmit, onValueDelete, onCustomEvent, onDeleteMultipleValues, record, isFormCreationMode, valuesMappedByAttributeId, elementsByContainer }: IFormElementProps<{}> & {
|
|
5
5
|
antdForm?: FormInstance;
|
|
6
|
-
|
|
6
|
+
valuesMappedByAttributeId?: GetRecordColumnsValuesRecord;
|
|
7
|
+
isFormCreationMode: boolean;
|
|
7
8
|
}): JSX.Element;
|
|
8
9
|
export default Container;
|
|
@@ -3,12 +3,10 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
|
3
3
|
// This file is released under LGPL V3
|
|
4
4
|
// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
|
|
5
5
|
import { Col, Row } from 'antd';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const { elements: formElements } = useRecordEditionContext();
|
|
9
|
-
const children = formElements[element.id] ?? [];
|
|
6
|
+
function Container({ element, antdForm, readonly, onValueSubmit, onValueDelete, onCustomEvent, onDeleteMultipleValues, record, isFormCreationMode, valuesMappedByAttributeId, elementsByContainer }) {
|
|
7
|
+
const children = elementsByContainer?.[element.id] ?? [];
|
|
10
8
|
const isAlone = children.length < 2;
|
|
11
|
-
return (_jsx(_Fragment, { children: children.map(el => (_jsx(Row, { "data-testid": "container-child-element", style: isAlone && { height: '100%' }, children: _jsx(Col, { span: 24, children: el.uiElement && (_jsx(el.uiElement, { element: el,
|
|
9
|
+
return (_jsx(_Fragment, { children: children.map(el => (_jsx(Row, { "data-testid": "container-child-element", style: isAlone && { height: '100%' }, children: _jsx(Col, { span: 24, children: el.uiElement && (_jsx(el.uiElement, { element: el, valuesMappedByAttributeId: valuesMappedByAttributeId, readonly: readonly, antdForm: antdForm, onValueSubmit: onValueSubmit, onValueDelete: onValueDelete, onCustomEvent: onCustomEvent, onDeleteMultipleValues: onDeleteMultipleValues, record: record, isFormCreationMode: isFormCreationMode, elementsByContainer: elementsByContainer })) }) }, el.id))) }));
|
|
12
10
|
}
|
|
13
11
|
export default Container;
|
|
14
12
|
//# sourceMappingURL=Container.js.map
|
package/dist/components/RecordEdition/EditRecordContent/uiElements/Container/Container.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/Container/Container.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,GAAG,EAAgB,GAAG,EAAC,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/Container/Container.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,GAAG,EAAgB,GAAG,EAAC,MAAM,MAAM,CAAC;AAI5C,SAAS,SAAS,CAAC,EACf,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,MAAM,EACN,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EAKtB;IACG,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAEzD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAEpC,OAAO,CACH,4BACK,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAChB,KAAC,GAAG,mBAAa,yBAAyB,EAAa,KAAK,EAAE,OAAO,IAAI,EAAC,MAAM,EAAE,MAAM,EAAC,YACrF,KAAC,GAAG,IAAC,IAAI,EAAE,EAAE,YACR,EAAE,CAAC,SAAS,IAAI,CACb,KAAC,EAAE,CAAC,SAAS,IACT,OAAO,EAAE,EAAE,EACX,yBAAyB,EAAE,yBAAyB,EACpD,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,sBAAsB,EAAE,sBAAsB,EAC9C,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,kBAAkB,EACtC,mBAAmB,EAAE,mBAAmB,GAC1C,CACL,GACC,IAjBsC,EAAE,CAAC,EAAE,CAkB/C,CACT,CAAC,GACH,CACN,CAAC;AACN,CAAC;AAED,eAAe,SAAS,CAAC"}
|
package/dist/components/RecordEdition/EditRecordContent/uiElements/FormDivider/FormDivider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormDivider.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/FormDivider/FormDivider.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"FormDivider.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/FormDivider/FormDivider.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAG7B,SAAS,WAAW,CAAC,EAAC,OAAO,EAA0C;IACnE,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;IAC7C,OAAO,KAAC,OAAO,cAAE,KAAK,GAAW,CAAC;AACtC,CAAC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -9,6 +9,9 @@ import { themeVars } from '../../../../../antdTheme';
|
|
|
9
9
|
import { useLang } from '../../../../../hooks';
|
|
10
10
|
import { FormElementTypes } from '../../../../../_gqlTypes';
|
|
11
11
|
import { formComponents } from '..';
|
|
12
|
+
import { useEditRecordReducer } from '../../../../../components/RecordEdition/editRecordReducer/useEditRecordReducer';
|
|
13
|
+
import { EditRecordReducerActionsTypes } from '../../../../../components/RecordEdition/editRecordReducer/editRecordReducer';
|
|
14
|
+
import { useEffect, useState } from 'react';
|
|
12
15
|
const StyledTabs = styled(Tabs) `
|
|
13
16
|
&& {
|
|
14
17
|
padding: 1rem;
|
|
@@ -18,14 +21,12 @@ const StyledTabs = styled(Tabs) `
|
|
|
18
21
|
overflow: visible;
|
|
19
22
|
height: 100%;
|
|
20
23
|
}
|
|
21
|
-
.ant-tabs-content,
|
|
22
|
-
.ant-tabs-tabpane {
|
|
23
|
-
height: 100%;
|
|
24
|
-
}
|
|
25
24
|
`;
|
|
26
25
|
function FormTabs({ element, ...elementProps }) {
|
|
27
26
|
const { lang } = useLang();
|
|
28
27
|
const tabPosition = element.settings.direction === TabsDirection.VERTICAL ? 'left' : 'top';
|
|
28
|
+
const [tabIndex, setTabIndex] = useState(null);
|
|
29
|
+
const { state, dispatch } = useEditRecordReducer();
|
|
29
30
|
const tabItems = element.settings.tabs.map(tab => {
|
|
30
31
|
const tabContainer = {
|
|
31
32
|
id: `${element.id}/${tab.id}`,
|
|
@@ -44,7 +45,26 @@ function FormTabs({ element, ...elementProps }) {
|
|
|
44
45
|
children: _jsx(tabContainer.uiElement, { ...elementProps, element: tabContainer })
|
|
45
46
|
};
|
|
46
47
|
});
|
|
47
|
-
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
if (state.tabActiveIndex) {
|
|
50
|
+
setTabIndex(state.tabActiveIndex);
|
|
51
|
+
}
|
|
52
|
+
}, [state.tabActiveIndex]);
|
|
53
|
+
const onTabClick = (key) => {
|
|
54
|
+
// update tabActiveIndex editRecordReducerContext
|
|
55
|
+
// used to put back automatically the current tab when loader display is done -> FormTabs is rerendered
|
|
56
|
+
dispatch({
|
|
57
|
+
type: EditRecordReducerActionsTypes.UPDATE_TAB_ACTIVE_INDEX,
|
|
58
|
+
tabActiveIndex: key
|
|
59
|
+
});
|
|
60
|
+
// propagate the event onTabClick to parent
|
|
61
|
+
elementProps.onCustomEvent?.({
|
|
62
|
+
eventName: 'onTabClick',
|
|
63
|
+
tabIdClicked: key,
|
|
64
|
+
element
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
return (_jsx(StyledTabs, { activeKey: tabIndex || (tabItems.length > 0 ? tabItems[0].key : undefined), tabPosition: tabPosition, "data-testid": "form-tabs", items: tabItems, onTabClick: onTabClick }));
|
|
48
68
|
}
|
|
49
69
|
export default FormTabs;
|
|
50
70
|
//# sourceMappingURL=FormTabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormTabs.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/FormTabs/FormTabs.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,kBAAkB,EAAqB,oBAAoB,EAAE,aAAa,EAAC,MAAM,aAAa,CAAC;AACvG,OAAO,EAAC,IAAI,EAAC,MAAM,MAAM,CAAC;AAC1B,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AACxC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAC,cAAc,EAAC,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"FormTabs.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/FormTabs/FormTabs.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { IFormFrameSettings } from '@leav/utils';
|
|
2
2
|
import { IFormElementProps } from '../../_types';
|
|
3
|
-
declare function Frame({ element, onValueSubmit }: IFormElementProps<IFormFrameSettings>): JSX.Element;
|
|
3
|
+
declare function Frame({ element, onValueSubmit, record }: IFormElementProps<IFormFrameSettings>): JSX.Element;
|
|
4
4
|
export default Frame;
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef, useState } from 'react';
|
|
3
3
|
import styled from 'styled-components';
|
|
4
|
-
import { useRecordEditionContext } from '../../hooks/useRecordEditionContext';
|
|
5
4
|
const Wrapper = styled.iframe `
|
|
6
5
|
width: 100%;
|
|
7
6
|
height: ${props => props.height || '100%'};
|
|
8
7
|
min-height: ${props => props.height || '500px'};
|
|
9
8
|
border: none;
|
|
10
9
|
`;
|
|
11
|
-
function Frame({ element, onValueSubmit }) {
|
|
12
|
-
const { readOnly: isRecordReadOnly, record } = useRecordEditionContext();
|
|
10
|
+
function Frame({ element, onValueSubmit, record }) {
|
|
13
11
|
const iFrameRef = useRef(null);
|
|
14
12
|
const [iframeLoaded, setIframeLoaded] = useState(false);
|
|
15
13
|
useEffect(() => {
|