@box/metadata-editor 0.112.5 → 0.113.0
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/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/metadata-instance-form.js +116 -103
- package/dist/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/types.d.ts +6 -0
- package/dist/types/lib/test-utils/sample-data.d.ts +2 -1
- package/package.json +1 -1
@@ -1,130 +1,143 @@
|
|
1
1
|
import "../custom-instance-new-field/custom-instance-new-field.js";
|
2
|
-
import { DeleteConfirmationModal as
|
2
|
+
import { DeleteConfirmationModal as G } from "../delete-confirmation-modal/delete-confirmation-modal.js";
|
3
3
|
import "../metadata-instance-form-autofill-button/metadata-instance-form-autofill-button.js";
|
4
4
|
import "../metadata-instance-form-header/metadata-instance-form-header.js";
|
5
|
-
import
|
6
|
-
import { Formik as
|
7
|
-
import
|
8
|
-
import {
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
import {
|
17
|
-
import {
|
18
|
-
|
5
|
+
import H from "clsx";
|
6
|
+
import { Formik as Q, Form as X } from "formik";
|
7
|
+
import Y from "lodash/isEqual";
|
8
|
+
import { useState as S, useEffect as y, useRef as O, useMemo as Z } from "react";
|
9
|
+
import { TEMPLATE_CUSTOM_PROPERTIES as I } from "../../../../constants.js";
|
10
|
+
import { useAutofill as T } from "../../../../utils/autofill-context.js";
|
11
|
+
import { TemplateInstance as oo } from "../../../metadata-editor-fields/metadata-editor-fields.js";
|
12
|
+
import { MetadataEmptyState as ro } from "../../../metadata-empty-state/metadata-empty-state.js";
|
13
|
+
import { AutofillOverlay as to } from "../autofill-overlay/autofill-overlay.js";
|
14
|
+
import { CustomInstance as io } from "../custom-instance/custom-instance.js";
|
15
|
+
import { c as ao } from "../../../../../../chunks/utils.js";
|
16
|
+
import { s as u, M as no } from "../../../../../../chunks/metadata-instance-form-card-wrapper.js";
|
17
|
+
import { jsx as i, jsxs as D } from "react/jsx-runtime";
|
18
|
+
import { UnsavedChangesModal as eo } from "../../../unsaved-changes-modal/unsaved-changes-modal.js";
|
19
|
+
const so = ({
|
20
|
+
dirty: s,
|
21
|
+
onChange: m,
|
22
|
+
values: r
|
23
|
+
}) => {
|
24
|
+
const n = O(r);
|
25
|
+
return s && !Y(n.current.metadata.fields, r.metadata.fields) && (n.current = r, m(r)), null;
|
26
|
+
}, Ao = (s) => {
|
19
27
|
const {
|
20
|
-
areAiSuggestionsAvailable:
|
21
|
-
customRef:
|
22
|
-
isLargeFile:
|
23
|
-
errorCode:
|
24
|
-
isAiSuggestionsFeatureEnabled:
|
25
|
-
isAdvancedExtractAgentEnabled:
|
26
|
-
isBetaLanguageEnabled:
|
27
|
-
isDeleteButtonDisabled:
|
28
|
-
isDeleteConfirmationModalCheckboxEnabled:
|
29
|
-
isMultilevelTaxonomyFieldEnabled:
|
30
|
-
isUnsavedChangesModalOpen:
|
31
|
-
MetadataInstanceFormCustomWrapper:
|
28
|
+
areAiSuggestionsAvailable: m,
|
29
|
+
customRef: r,
|
30
|
+
isLargeFile: n,
|
31
|
+
errorCode: l,
|
32
|
+
isAiSuggestionsFeatureEnabled: f,
|
33
|
+
isAdvancedExtractAgentEnabled: x = !1,
|
34
|
+
isBetaLanguageEnabled: A,
|
35
|
+
isDeleteButtonDisabled: v,
|
36
|
+
isDeleteConfirmationModalCheckboxEnabled: L,
|
37
|
+
isMultilevelTaxonomyFieldEnabled: d,
|
38
|
+
isUnsavedChangesModalOpen: R = !1,
|
39
|
+
MetadataInstanceFormCustomWrapper: k,
|
32
40
|
selectedTemplateInstance: o,
|
33
41
|
onCancel: N,
|
42
|
+
onChange: g,
|
34
43
|
onDelete: P,
|
35
|
-
onDiscardUnsavedChanges:
|
36
|
-
onSubmit:
|
37
|
-
setIsUnsavedChangesModalOpen:
|
38
|
-
taxonomyOptionsFetcher:
|
39
|
-
} =
|
40
|
-
isFetchingSuggestions:
|
41
|
-
isLongLoading:
|
42
|
-
getAiSuggestions:
|
43
|
-
clearState:
|
44
|
-
suggestions:
|
45
|
-
} =
|
46
|
-
|
47
|
-
|
48
|
-
}, [
|
49
|
-
const
|
50
|
-
await
|
51
|
-
},
|
52
|
-
|
53
|
-
},
|
54
|
-
|
55
|
-
},
|
44
|
+
onDiscardUnsavedChanges: U,
|
45
|
+
onSubmit: B,
|
46
|
+
setIsUnsavedChangesModalOpen: p,
|
47
|
+
taxonomyOptionsFetcher: c
|
48
|
+
} = s, w = k ?? no, [K, h] = S(!1), {
|
49
|
+
isFetchingSuggestions: a,
|
50
|
+
isLongLoading: C,
|
51
|
+
getAiSuggestions: V,
|
52
|
+
clearState: E,
|
53
|
+
suggestions: W
|
54
|
+
} = T();
|
55
|
+
y(() => () => {
|
56
|
+
E();
|
57
|
+
}, [E, o == null ? void 0 : o.id]);
|
58
|
+
const F = (o == null ? void 0 : o.templateKey) === I, j = async (t) => {
|
59
|
+
await B(t, ao(t, o));
|
60
|
+
}, _ = (t) => {
|
61
|
+
t ? p(!0) : N();
|
62
|
+
}, $ = () => {
|
63
|
+
h(!0);
|
64
|
+
}, q = {
|
56
65
|
metadata: {
|
57
66
|
...o
|
58
67
|
}
|
59
|
-
},
|
60
|
-
|
61
|
-
|
62
|
-
}, [
|
63
|
-
const
|
64
|
-
const
|
65
|
-
if (
|
66
|
-
return /* @__PURE__ */
|
67
|
-
isLoading:
|
68
|
+
}, M = O(null), [b, J] = S(null);
|
69
|
+
y(() => {
|
70
|
+
J(r ?? M.current);
|
71
|
+
}, [r, o == null ? void 0 : o.templateKey, o == null ? void 0 : o.scope]);
|
72
|
+
const z = Z(() => {
|
73
|
+
const t = (o == null ? void 0 : o.fields.length) === 0;
|
74
|
+
if (F)
|
75
|
+
return /* @__PURE__ */ i(io, {
|
76
|
+
isLoading: a
|
68
77
|
});
|
69
|
-
if (
|
70
|
-
return /* @__PURE__ */
|
71
|
-
isBoxAiSuggestionsFeatureEnabled:
|
78
|
+
if (t)
|
79
|
+
return /* @__PURE__ */ i(ro, {
|
80
|
+
isBoxAiSuggestionsFeatureEnabled: f,
|
72
81
|
level: "instance"
|
73
82
|
});
|
74
|
-
const e = !!(
|
75
|
-
return /* @__PURE__ */
|
76
|
-
className:
|
77
|
-
children: [/* @__PURE__ */
|
78
|
-
errorCode:
|
79
|
-
isFetchingSuggestions:
|
80
|
-
isLongLoading:
|
81
|
-
}), /* @__PURE__ */
|
82
|
-
disableForm:
|
83
|
-
isMultilevelTaxonomyFieldEnabled:
|
84
|
-
portalElement:
|
85
|
-
taxonomyOptionsFetcher:
|
83
|
+
const e = !!(a || l);
|
84
|
+
return /* @__PURE__ */ D("div", {
|
85
|
+
className: H(u.metadataInstanceFormContent, e && u.showOverlay),
|
86
|
+
children: [/* @__PURE__ */ i(to, {
|
87
|
+
errorCode: l,
|
88
|
+
isFetchingSuggestions: a,
|
89
|
+
isLongLoading: C
|
90
|
+
}), /* @__PURE__ */ i(oo, {
|
91
|
+
disableForm: a,
|
92
|
+
isMultilevelTaxonomyFieldEnabled: d,
|
93
|
+
portalElement: r ?? b,
|
94
|
+
taxonomyOptionsFetcher: c
|
86
95
|
})]
|
87
96
|
});
|
88
|
-
}, [o == null ? void 0 : o.fields.length,
|
89
|
-
return /* @__PURE__ */
|
90
|
-
initialValues:
|
91
|
-
onSubmit:
|
97
|
+
}, [o == null ? void 0 : o.fields.length, F, a, C, r, b, c, f, d, l]);
|
98
|
+
return /* @__PURE__ */ i(Q, {
|
99
|
+
initialValues: q,
|
100
|
+
onSubmit: j,
|
92
101
|
children: ({
|
93
|
-
values:
|
102
|
+
values: t,
|
94
103
|
dirty: e
|
95
|
-
}) => /* @__PURE__ */
|
96
|
-
children: [/* @__PURE__ */
|
97
|
-
areAiSuggestionsAvailable:
|
98
|
-
className:
|
99
|
-
formRef:
|
100
|
-
formValues:
|
101
|
-
getAiSuggestions:
|
102
|
-
handleCancel:
|
103
|
-
handleDelete:
|
104
|
-
isAdvancedExtractAgentEnabled:
|
105
|
-
isAiSuggestionsFeatureEnabled:
|
106
|
-
isBetaLanguageEnabled:
|
107
|
-
isDeleteButtonDisabled:
|
108
|
-
isFetchingSuggestions:
|
104
|
+
}) => /* @__PURE__ */ D(X, {
|
105
|
+
children: [/* @__PURE__ */ i(w, {
|
106
|
+
areAiSuggestionsAvailable: m,
|
107
|
+
className: u.metadataInstanceForm,
|
108
|
+
formRef: M,
|
109
|
+
formValues: t,
|
110
|
+
getAiSuggestions: V,
|
111
|
+
handleCancel: _,
|
112
|
+
handleDelete: $,
|
113
|
+
isAdvancedExtractAgentEnabled: x,
|
114
|
+
isAiSuggestionsFeatureEnabled: f,
|
115
|
+
isBetaLanguageEnabled: A,
|
116
|
+
isDeleteButtonDisabled: v,
|
117
|
+
isFetchingSuggestions: a,
|
109
118
|
isFormDirty: e,
|
110
|
-
isLargeFile:
|
119
|
+
isLargeFile: n,
|
111
120
|
selectedTemplateInstance: o,
|
112
|
-
suggestions:
|
113
|
-
children: o &&
|
114
|
-
}), /* @__PURE__ */
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
}), /* @__PURE__ */
|
119
|
-
|
121
|
+
suggestions: W,
|
122
|
+
children: o && z
|
123
|
+
}), g && /* @__PURE__ */ i(so, {
|
124
|
+
dirty: e,
|
125
|
+
onChange: g,
|
126
|
+
values: t
|
127
|
+
}), /* @__PURE__ */ i(eo, {
|
128
|
+
onBackToEdit: () => p(!1),
|
129
|
+
onDiscardChanges: U,
|
130
|
+
open: R
|
131
|
+
}), /* @__PURE__ */ i(G, {
|
132
|
+
isCheckboxEnabled: L,
|
120
133
|
onConfirm: () => P(o),
|
121
|
-
onDismiss: () =>
|
122
|
-
open:
|
134
|
+
onDismiss: () => h(!1),
|
135
|
+
open: K,
|
123
136
|
templateName: o == null ? void 0 : o.displayName
|
124
137
|
})]
|
125
138
|
})
|
126
139
|
}, `${o == null ? void 0 : o.scope}.${o == null ? void 0 : o.templateKey}`);
|
127
140
|
};
|
128
141
|
export {
|
129
|
-
|
142
|
+
Ao as MetadataInstanceForm
|
130
143
|
};
|
@@ -16,6 +16,7 @@ export type MetadataInstanceFormProps = {
|
|
16
16
|
isUnsavedChangesModalOpen: boolean;
|
17
17
|
selectedTemplateInstance: MetadataTemplateInstance | null;
|
18
18
|
onCancel: () => void;
|
19
|
+
onChange?: (values: FormValues) => void;
|
19
20
|
onDelete: (templateInstance: MetadataTemplateInstance) => void;
|
20
21
|
/** Callback invoked when clicking Discard Changes button on the UnsavedChangesModal - can be used to reset form values */
|
21
22
|
onDiscardUnsavedChanges?: () => void;
|
@@ -45,6 +46,11 @@ export type MetadataInstanceFormWrapperProps<T> = {
|
|
45
46
|
extraProps?: T;
|
46
47
|
formRef?: React.LegacyRef<HTMLDivElement | null>;
|
47
48
|
} & React.HTMLAttributes<HTMLDivElement>;
|
49
|
+
export type MetadataInstanceFormikObserverProps = {
|
50
|
+
onChange: (values: FormValues) => void;
|
51
|
+
values: FormValues;
|
52
|
+
dirty: boolean;
|
53
|
+
};
|
48
54
|
export declare const JSONPatchOp: {
|
49
55
|
readonly ADD: "add";
|
50
56
|
readonly REMOVE: "remove";
|
@@ -43,6 +43,7 @@ declare const customTemplateInstanceWithAllFieldsEmpty: MetadataTemplateInstance
|
|
43
43
|
declare const templateInstanceWithoutEditPermissions: MetadataTemplateInstance;
|
44
44
|
declare const customTemplateInstanceWithoutEditPermissions: MetadataTemplateInstance;
|
45
45
|
declare const hiddenTemplateInstance: MetadataTemplateInstance;
|
46
|
+
declare const shortTemplateInstance: MetadataTemplateInstance;
|
46
47
|
declare const templateInstancesList: MetadataTemplateInstance[];
|
47
48
|
declare const allFieldsWithAiSuggestions: MetadataTemplateField[];
|
48
49
|
declare const allFieldsSuggestions: AutofillSuggestions;
|
@@ -52,4 +53,4 @@ declare const firstTemplateInstanceFieldsWithSuggestions: MetadataTemplateField[
|
|
52
53
|
declare const secondTemplateInstance: MetadataTemplate;
|
53
54
|
declare const secondTemplateSuggestions: AutofillSuggestions;
|
54
55
|
declare const secondTemplateInstanceFieldsWithSuggestions: MetadataTemplateField[];
|
55
|
-
export { allFieldsSuggestions, allFieldsTemplate, allFieldsTemplateInstance,
|
56
|
+
export { allFieldsSuggestions, allFieldsTemplate, allFieldsTemplateInstance, allFieldsTemplateInstanceAiSuggestions, allFieldsTemplateInstanceWithoutTaxonomies, allFieldsWithAiSuggestions, customTemplate, customTemplateInstance, customTemplateInstanceWithAllFieldsEmpty, customTemplateInstanceWithoutEditPermissions, customTemplateInstanceWithoutEmptyValues, dateField, dateSuggestionTemplateInstance, emptyCustomTemplateInstance, emptyTemplateInstance, enumField, fields, firstTemplateInstance, firstTemplateInstanceFieldsWithSuggestions, firstTemplateSuggestions, floatField, floatInstanceField, hiddenField, hiddenTemplate, hiddenTemplateInstance, multiSelectField, noFieldsTemplate, nonHiddenFieldsTemplate, nonHiddenFieldsWithValuesTemplate, noValueField, onlyRequiredPropsTemplateInstance, secondTemplateInstance, secondTemplateInstanceFieldsWithSuggestions, secondTemplateSuggestions, shortTemplateInstance, stringField, taxonomyLevels, taxonomyMultiSelectMultiLevelField, taxonomyMultiSelectSingleLevelField, taxonomyMultiSelectSingleLevelFieldWithValue, taxonomySingleSelectMultiLevelField, taxonomySingleSelectSingleLevelField, taxonomySingleSelectSingleLevelFieldWithValue, templateInstancesList, templateInstanceWithAllFieldsEmpty, templateInstanceWithoutEditPermissions, templateInstanceWithoutEmptyValues, templateInstanceWithSomeFieldsEmpty, templateOptions, templates, };
|