@box/metadata-editor 0.97.2 → 0.97.4
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-editor-fields/components/metadata-taxonomy-field/metadata-taxonomy-field.js +37 -37
- package/dist/esm/lib/components/metadata-editor-fields/metadata-editor-field-wrapper.js +68 -63
- package/dist/types/lib/test-utils/sample-data.d.ts +3 -1
- package/package.json +3 -3
|
@@ -1,69 +1,69 @@
|
|
|
1
1
|
import { ComboboxWithApiTreeView as K } from "@box/combobox-with-api";
|
|
2
2
|
import { useFormikContext as W, getIn as $, Field as j } from "formik";
|
|
3
|
-
import { forwardRef as D } from "react";
|
|
4
|
-
import { useIntl as
|
|
5
|
-
import
|
|
6
|
-
import { ComboboxWithApiPagination as
|
|
7
|
-
import { g as
|
|
3
|
+
import { forwardRef as D, useCallback as R } from "react";
|
|
4
|
+
import { useIntl as q } from "react-intl";
|
|
5
|
+
import z from "../../../../messages.js";
|
|
6
|
+
import { ComboboxWithApiPagination as A } from "../../../combobox-with-api-pagination/combobox-with-api-pagination.js";
|
|
7
|
+
import { g as b } from "../../../../../../chunks/utils2.js";
|
|
8
8
|
import { jsx as e } from "react/jsx-runtime";
|
|
9
|
-
const
|
|
9
|
+
const X = /* @__PURE__ */ D(({
|
|
10
10
|
description: i,
|
|
11
11
|
disableForm: l,
|
|
12
12
|
isAiSuggestionApplied: u,
|
|
13
13
|
fieldNamePrefix: p,
|
|
14
14
|
label: r,
|
|
15
15
|
portalElement: s,
|
|
16
|
-
taxonomyOptionsFetcher:
|
|
17
|
-
updateModePrefix:
|
|
18
|
-
className:
|
|
19
|
-
isMultilevelTaxonomyFieldEnabled:
|
|
20
|
-
},
|
|
21
|
-
const
|
|
22
|
-
setFieldValue:
|
|
23
|
-
values:
|
|
16
|
+
taxonomyOptionsFetcher: c,
|
|
17
|
+
updateModePrefix: k,
|
|
18
|
+
className: d,
|
|
19
|
+
isMultilevelTaxonomyFieldEnabled: M
|
|
20
|
+
}, h) => {
|
|
21
|
+
const P = q(), a = `${k ?? p}.value`, {
|
|
22
|
+
setFieldValue: f,
|
|
23
|
+
values: g
|
|
24
24
|
} = W(), {
|
|
25
25
|
metadata: {
|
|
26
|
-
templateKey:
|
|
27
|
-
scope:
|
|
26
|
+
templateKey: v,
|
|
27
|
+
scope: x
|
|
28
28
|
}
|
|
29
|
-
} =
|
|
30
|
-
key:
|
|
29
|
+
} = g, T = $(g, p), {
|
|
30
|
+
key: C,
|
|
31
31
|
optionsRules: {
|
|
32
|
-
multiSelect:
|
|
32
|
+
multiSelect: n,
|
|
33
33
|
selectableLevels: t
|
|
34
34
|
},
|
|
35
35
|
levels: w
|
|
36
|
-
} =
|
|
36
|
+
} = T, I = M && (t == null ? void 0 : t.some((o) => o > 1)), y = R((o) => c(x, v, C, t == null ? void 0 : t[0], o), [C, x, t, c, v]), F = (o) => n || !(o != null && o.length) ? P.formatMessage(z.taxonomyPlaceholder) : void 0;
|
|
37
37
|
return /* @__PURE__ */ e("div", {
|
|
38
38
|
"data-testid": `${r}-field`,
|
|
39
39
|
onKeyDown: (o) => o.stopPropagation(),
|
|
40
40
|
role: "presentation",
|
|
41
41
|
children: /* @__PURE__ */ e(j, {
|
|
42
|
-
name:
|
|
42
|
+
name: a,
|
|
43
43
|
children: ({
|
|
44
44
|
field: o
|
|
45
45
|
}) => I ? /* @__PURE__ */ e(K, {
|
|
46
|
-
ref:
|
|
47
|
-
className:
|
|
48
|
-
defaultFetcher:
|
|
46
|
+
ref: h,
|
|
47
|
+
className: d,
|
|
48
|
+
defaultFetcher: y,
|
|
49
49
|
disabled: l,
|
|
50
|
-
label:
|
|
50
|
+
label: b(r, i, u),
|
|
51
51
|
levels: w,
|
|
52
|
-
multiselect:
|
|
53
|
-
onValueChange: (m) =>
|
|
54
|
-
placeholder:
|
|
52
|
+
multiselect: n,
|
|
53
|
+
onValueChange: (m) => f(a, m),
|
|
54
|
+
placeholder: F(o.value),
|
|
55
55
|
portalElement: s,
|
|
56
56
|
selectableLevels: t,
|
|
57
57
|
value: o.value
|
|
58
|
-
}) : /* @__PURE__ */ e(
|
|
59
|
-
ref:
|
|
60
|
-
className:
|
|
61
|
-
defaultFetcher:
|
|
58
|
+
}) : /* @__PURE__ */ e(A, {
|
|
59
|
+
ref: h,
|
|
60
|
+
className: d,
|
|
61
|
+
defaultFetcher: y,
|
|
62
62
|
disabled: l,
|
|
63
|
-
label:
|
|
64
|
-
multiselect:
|
|
65
|
-
onValueChange: (m) =>
|
|
66
|
-
placeholder:
|
|
63
|
+
label: b(r, i, u),
|
|
64
|
+
multiselect: n,
|
|
65
|
+
onValueChange: (m) => f(a, m),
|
|
66
|
+
placeholder: F(o.value),
|
|
67
67
|
portalElement: s,
|
|
68
68
|
value: o.value
|
|
69
69
|
})
|
|
@@ -71,5 +71,5 @@ const U = /* @__PURE__ */ D(({
|
|
|
71
71
|
});
|
|
72
72
|
});
|
|
73
73
|
export {
|
|
74
|
-
|
|
74
|
+
X as MetadataTaxonomyField
|
|
75
75
|
};
|
|
@@ -1,84 +1,89 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useFormikContext as
|
|
3
|
-
import
|
|
4
|
-
import { forwardRef as
|
|
5
|
-
import { AiSuggestionField as
|
|
6
|
-
import { UpdateModeFieldWrapper as
|
|
7
|
-
import { editorFieldTypes as
|
|
8
|
-
import { s as
|
|
9
|
-
import { jsx as
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import w from "clsx";
|
|
2
|
+
import { useFormikContext as C } from "formik";
|
|
3
|
+
import T from "lodash/isUndefined";
|
|
4
|
+
import { forwardRef as U, useState as $, useCallback as j, useEffect as x, useMemo as D } from "react";
|
|
5
|
+
import { AiSuggestionField as L } from "./components/ai-suggestion-field/ai-suggestion-field.js";
|
|
6
|
+
import { UpdateModeFieldWrapper as R } from "./components/update-mode-field-wrapper/update-mode-field-wrapper.js";
|
|
7
|
+
import { editorFieldTypes as b } from "./editor-field-types.js";
|
|
8
|
+
import { s as p } from "../../../../chunks/utils2.js";
|
|
9
|
+
import { jsx as r, jsxs as B } from "react/jsx-runtime";
|
|
10
|
+
var t = /* @__PURE__ */ function(o) {
|
|
11
|
+
return o.Pending = "PENDING", o.Applied = "APPLIED", o.Initial = "INITIAL", o;
|
|
12
|
+
}(t || {});
|
|
13
|
+
const Z = /* @__PURE__ */ U(({
|
|
14
|
+
disableForm: o,
|
|
15
|
+
portalElement: S,
|
|
13
16
|
field: e,
|
|
14
|
-
index:
|
|
15
|
-
taxonomyOptionsFetcher:
|
|
16
|
-
isMultilevelTaxonomyFieldEnabled:
|
|
17
|
-
},
|
|
18
|
-
var
|
|
17
|
+
index: F,
|
|
18
|
+
taxonomyOptionsFetcher: f,
|
|
19
|
+
isMultilevelTaxonomyFieldEnabled: y
|
|
20
|
+
}, I) => {
|
|
21
|
+
var v;
|
|
19
22
|
const {
|
|
20
|
-
setFieldValue:
|
|
21
|
-
} =
|
|
22
|
-
aiSuggestion:
|
|
23
|
-
type:
|
|
24
|
-
value:
|
|
25
|
-
} = e,
|
|
26
|
-
[
|
|
27
|
-
[
|
|
28
|
-
[
|
|
29
|
-
}),
|
|
30
|
-
|
|
31
|
-
}, [s,
|
|
32
|
-
|
|
33
|
-
!i || d || o(t);
|
|
34
|
-
}, [i, t, o]);
|
|
35
|
-
const F = T(() => t && d === t, [y]), M = () => {
|
|
36
|
-
r && h(!1), F && p(!1);
|
|
23
|
+
setFieldValue: l
|
|
24
|
+
} = C(), [d, u] = $(t.Initial), n = d === t.Pending, N = d === t.Applied, P = d === t.Initial, g = b[e.type], {
|
|
25
|
+
aiSuggestion: i,
|
|
26
|
+
type: h,
|
|
27
|
+
value: c
|
|
28
|
+
} = e, M = g && !e.hidden, E = !T(e.updateMode), s = `metadata.fields[${F}]`, V = e.type === "taxonomy" && ((v = e.optionsRules) == null ? void 0 : v.multiSelect), W = w({
|
|
29
|
+
[p.suggestionApplied]: N,
|
|
30
|
+
[p.hasSuggestion]: n,
|
|
31
|
+
[p.dateField]: h === "date"
|
|
32
|
+
}), a = j((A) => {
|
|
33
|
+
l(`${s}.value`, A), u(t.Applied);
|
|
34
|
+
}, [s, l]), m = () => {
|
|
35
|
+
u(t.Initial), l(`${s}.aiSuggestion`, void 0);
|
|
37
36
|
};
|
|
38
|
-
|
|
37
|
+
x(() => {
|
|
38
|
+
n && !c && a(i);
|
|
39
|
+
}, [i, n, a]), x(() => {
|
|
40
|
+
P && i && u(t.Pending);
|
|
41
|
+
}, [P, i]);
|
|
42
|
+
const k = D(() => i && c === i, [n]);
|
|
43
|
+
return M ? E ? /* @__PURE__ */ r(R, {
|
|
39
44
|
fieldNamePrefix: s,
|
|
40
45
|
fieldType: e.type,
|
|
41
|
-
isTaxonomyMultiSelect:
|
|
42
|
-
children: /* @__PURE__ */
|
|
43
|
-
ref:
|
|
46
|
+
isTaxonomyMultiSelect: V,
|
|
47
|
+
children: /* @__PURE__ */ r(g, {
|
|
48
|
+
ref: I,
|
|
44
49
|
description: e.description,
|
|
45
|
-
disableForm:
|
|
50
|
+
disableForm: o,
|
|
46
51
|
fieldNamePrefix: s,
|
|
47
52
|
isAiSuggestionApplied: !1,
|
|
48
|
-
isMultilevelTaxonomyFieldEnabled:
|
|
53
|
+
isMultilevelTaxonomyFieldEnabled: y,
|
|
49
54
|
label: e.displayName,
|
|
50
55
|
levels: e.levels,
|
|
51
|
-
onValueEdited:
|
|
52
|
-
portalElement:
|
|
53
|
-
taxonomyOptionsFetcher:
|
|
56
|
+
onValueEdited: m,
|
|
57
|
+
portalElement: S,
|
|
58
|
+
taxonomyOptionsFetcher: f
|
|
54
59
|
})
|
|
55
|
-
}, e.key) : /* @__PURE__ */
|
|
56
|
-
className:
|
|
57
|
-
children: [/* @__PURE__ */
|
|
58
|
-
ref:
|
|
59
|
-
className:
|
|
60
|
+
}, e.key) : /* @__PURE__ */ B("div", {
|
|
61
|
+
className: p.fieldWrapper,
|
|
62
|
+
children: [/* @__PURE__ */ r(g, {
|
|
63
|
+
ref: I,
|
|
64
|
+
className: W,
|
|
60
65
|
description: e.description,
|
|
61
|
-
disableForm:
|
|
66
|
+
disableForm: o,
|
|
62
67
|
fieldNamePrefix: s,
|
|
63
|
-
isAiSuggestionApplied:
|
|
64
|
-
isMultilevelTaxonomyFieldEnabled:
|
|
68
|
+
isAiSuggestionApplied: N,
|
|
69
|
+
isMultilevelTaxonomyFieldEnabled: y,
|
|
65
70
|
label: e.displayName,
|
|
66
|
-
onValueEdited:
|
|
67
|
-
portalElement:
|
|
68
|
-
taxonomyOptionsFetcher:
|
|
69
|
-
}),
|
|
70
|
-
aiSuggestion:
|
|
71
|
-
isSameValue:
|
|
71
|
+
onValueEdited: m,
|
|
72
|
+
portalElement: S,
|
|
73
|
+
taxonomyOptionsFetcher: f
|
|
74
|
+
}), n && /* @__PURE__ */ r(L, {
|
|
75
|
+
aiSuggestion: i,
|
|
76
|
+
isSameValue: k,
|
|
72
77
|
onAiSuggestionAppend: () => {
|
|
73
|
-
const
|
|
74
|
-
|
|
78
|
+
const A = [...new Set([c, i].flat().filter(Boolean))];
|
|
79
|
+
a(A);
|
|
75
80
|
},
|
|
76
|
-
onAiSuggestionIgnore:
|
|
77
|
-
onAiSuggestionReplace: () =>
|
|
78
|
-
type:
|
|
81
|
+
onAiSuggestionIgnore: m,
|
|
82
|
+
onAiSuggestionReplace: () => a(i),
|
|
83
|
+
type: h
|
|
79
84
|
})]
|
|
80
85
|
}, e.key) : null;
|
|
81
86
|
});
|
|
82
87
|
export {
|
|
83
|
-
|
|
88
|
+
Z as MetadataEditorFieldWrapper
|
|
84
89
|
};
|
|
@@ -29,6 +29,8 @@ declare const templateOptions: MetadataTemplateOption[];
|
|
|
29
29
|
declare const fields: MetadataTemplateField[];
|
|
30
30
|
declare const floatInstanceField: MetadataTemplateField;
|
|
31
31
|
declare const allFieldsTemplateInstance: MetadataTemplateInstance;
|
|
32
|
+
declare const allFieldsTemplateInstanceWithoutTaxonomies: MetadataTemplateInstance;
|
|
33
|
+
declare const allFieldsTemplateInstanceAiSuggestions: MetadataTemplateInstance;
|
|
32
34
|
declare const dateSuggestionTemplateInstance: MetadataTemplateInstance;
|
|
33
35
|
declare const templateInstanceWithoutEmptyValues: MetadataTemplateInstance;
|
|
34
36
|
declare const emptyTemplateInstance: MetadataTemplateInstance;
|
|
@@ -50,4 +52,4 @@ declare const firstTemplateInstanceFieldsWithSuggestions: MetadataTemplateField[
|
|
|
50
52
|
declare const secondTemplateInstance: MetadataTemplate;
|
|
51
53
|
declare const secondTemplateSuggestions: AutofillSuggestions;
|
|
52
54
|
declare const secondTemplateInstanceFieldsWithSuggestions: MetadataTemplateField[];
|
|
53
|
-
export { allFieldsSuggestions, allFieldsTemplate, allFieldsTemplateInstance, 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, stringField, taxonomyLevels, taxonomyMultiSelectMultiLevelField, taxonomyMultiSelectSingleLevelField, taxonomyMultiSelectSingleLevelFieldWithValue, taxonomySingleSelectMultiLevelField, taxonomySingleSelectSingleLevelField, taxonomySingleSelectSingleLevelFieldWithValue, templateInstancesList, templateInstanceWithAllFieldsEmpty, templateInstanceWithoutEditPermissions, templateInstanceWithoutEmptyValues, templateInstanceWithSomeFieldsEmpty, templateOptions, templates, };
|
|
55
|
+
export { allFieldsSuggestions, allFieldsTemplate, allFieldsTemplateInstance, allFieldsWithAiSuggestions, allFieldsTemplateInstanceWithoutTaxonomies, allFieldsTemplateInstanceAiSuggestions, 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, stringField, taxonomyLevels, taxonomyMultiSelectMultiLevelField, taxonomyMultiSelectSingleLevelField, taxonomyMultiSelectSingleLevelFieldWithValue, taxonomySingleSelectMultiLevelField, taxonomySingleSelectSingleLevelField, taxonomySingleSelectSingleLevelFieldWithValue, templateInstancesList, templateInstanceWithAllFieldsEmpty, templateInstanceWithoutEditPermissions, templateInstanceWithoutEmptyValues, templateInstanceWithSomeFieldsEmpty, templateOptions, templates, };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@box/metadata-editor",
|
|
3
|
-
"version": "0.97.
|
|
3
|
+
"version": "0.97.4",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@ariakit/react": "0.4.15",
|
|
6
6
|
"@box/blueprint-web": "^7.30.3",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"devDependencies": {
|
|
16
16
|
"@ariakit/react": "0.4.15",
|
|
17
17
|
"@box/babel-plugin-target-attributes": "1.3.0",
|
|
18
|
-
"@box/blueprint-web": "^9.19.
|
|
19
|
-
"@box/blueprint-web-assets": "^4.37.
|
|
18
|
+
"@box/blueprint-web": "^9.19.2",
|
|
19
|
+
"@box/blueprint-web-assets": "^4.37.2",
|
|
20
20
|
"@box/storybook-utils": "^0.8.3",
|
|
21
21
|
"@testing-library/react": "^15.0.6",
|
|
22
22
|
"react": "^18.3.0",
|