@box/metadata-template-editor 2.2.24 → 2.2.26
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/chunks/chip.js +1 -22
- package/dist/chunks/dropdown-field-configuration.js +1 -62
- package/dist/chunks/field-context-menu.js +1 -91
- package/dist/chunks/field-selector.js +1 -23
- package/dist/chunks/field-type-dropdown.js +1 -31
- package/dist/chunks/levels-chain.js +1 -120
- package/dist/chunks/metadata-field-configurator.module.js +1 -21
- package/dist/chunks/metadata-field-list.js +1 -280
- package/dist/chunks/metadata-template-editor-form.js +1 -132
- package/dist/chunks/metadata-template-editor-modal.js +1 -90
- package/dist/chunks/metadata-template-editor.js +1 -161
- package/dist/chunks/sortable-option-list.js +1 -230
- package/dist/chunks/taxonomy-field-configuration.js +1 -123
- package/dist/chunks/taxonomy-field-configurator-initial-state.js +1 -49
- package/dist/chunks/taxonomy-selector.js +1 -89
- package/dist/chunks/types.js +1 -23
- package/dist/esm/index.js +1 -22
- package/dist/esm/lib/components/field-selector/field-selector.js +1 -2
- package/dist/esm/lib/components/field-selector/index.js +1 -2
- package/dist/esm/lib/components/field-selector/messages.js +1 -12
- package/dist/esm/lib/components/field-type-dropdown/field-type-dropdown.js +1 -2
- package/dist/esm/lib/components/field-type-dropdown/index.js +1 -2
- package/dist/esm/lib/components/field-type-dropdown/messages.js +1 -12
- package/dist/esm/lib/components/field-type-tiles/field-type-tiles.js +1 -33
- package/dist/esm/lib/components/field-type-tiles/index.js +1 -2
- package/dist/esm/lib/components/field-type-tiles/messages.js +1 -12
- package/dist/esm/lib/components/metadata-field-configurator/components/confirmation-modal/confirmation-modal.js +1 -33
- package/dist/esm/lib/components/metadata-field-configurator/components/confirmation-modal/messages.js +1 -16
- package/dist/esm/lib/components/metadata-field-configurator/components/field-action-slot/field-action-slot.js +1 -67
- package/dist/esm/lib/components/metadata-field-configurator/components/field-context-menu/field-context-menu.js +1 -2
- package/dist/esm/lib/components/metadata-field-configurator/components/field-edit-content/field-edit-content.js +1 -84
- package/dist/esm/lib/components/metadata-field-configurator/components/levels-chain/chip.js +1 -2
- package/dist/esm/lib/components/metadata-field-configurator/components/levels-chain/index.js +1 -2
- package/dist/esm/lib/components/metadata-field-configurator/components/levels-chain/levels-chain.js +1 -2
- package/dist/esm/lib/components/metadata-field-configurator/components/levels-chain/utils.js +1 -17
- package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/dropdown/__mocks__/getInitialValues.js +1 -35
- package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/dropdown/dropdown-default-values.js +1 -11
- package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/dropdown/dropdown-field-configuration.js +1 -2
- package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/dropdown/sortable-option-list.js +1 -2
- package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/index.js +1 -3
- package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-default-values.js +1 -11
- package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-field-configuration.js +1 -2
- package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-field-configurator-initial-state.js +1 -2
- package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-selector-messages.js +1 -36
- package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-selector.js +1 -2
- package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/useTaxonomySelect.js +1 -15
- package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/utils.js +1 -2
- package/dist/esm/lib/components/metadata-field-configurator/context/editor-config-context.js +1 -3
- package/dist/esm/lib/components/metadata-field-configurator/context/field-configurator-context.js +1 -62
- package/dist/esm/lib/components/metadata-field-configurator/context/field-extensions-context.js +1 -6
- package/dist/esm/lib/components/metadata-field-configurator/context/taxonomy-options-context.js +1 -17
- package/dist/esm/lib/components/metadata-field-configurator/hooks/useFieldConfiguratorBehavior.js +1 -102
- package/dist/esm/lib/components/metadata-field-configurator/hooks/useFieldValidation.js +1 -54
- package/dist/esm/lib/components/metadata-field-configurator/hooks/useTaxonomyFetch.js +1 -24
- package/dist/esm/lib/components/metadata-field-configurator/hooks/useTemplateFieldSchema.js +1 -35
- package/dist/esm/lib/components/metadata-field-configurator/index.js +1 -14
- package/dist/esm/lib/components/metadata-field-configurator/messages/configurator-messages.js +1 -133
- package/dist/esm/lib/components/metadata-field-configurator/messages/dropdown-messages.js +1 -36
- package/dist/esm/lib/components/metadata-field-configurator/messages/levels-chain-messages.js +1 -16
- package/dist/esm/lib/components/metadata-field-configurator/messages/taxonomy-messages.js +1 -36
- package/dist/esm/lib/components/metadata-field-configurator/metadata-field-configurator.js +1 -106
- package/dist/esm/lib/components/metadata-field-configurator/utils.js +1 -46
- package/dist/esm/lib/components/metadata-field-list/index.js +1 -2
- package/dist/esm/lib/components/metadata-field-list/metadata-field-list.js +1 -2
- package/dist/esm/lib/components/metadata-template-editor-form/metadata-template-editor-form.js +1 -2
- package/dist/esm/lib/components/metadata-template-editor-modal/index.js +1 -2
- package/dist/esm/lib/components/metadata-template-editor-modal/metadata-template-editor-modal.js +1 -2
- package/dist/esm/lib/hooks/useMetadataTemplateFormSchema.js +1 -14
- package/dist/esm/lib/hooks/useTemplateNameSchema.js +1 -10
- package/dist/esm/lib/index.js +1 -8
- package/dist/esm/lib/messages.js +1 -128
- package/dist/esm/lib/metadata-template-editor.js +1 -2
- package/dist/esm/lib/utils/constants.js +1 -2
- package/dist/esm/lib/utils/field-options/field-type-icon.js +1 -15
- package/dist/esm/lib/utils/field-options/index.js +1 -4
- package/dist/esm/lib/utils/field-options/messages.js +1 -45
- package/dist/esm/lib/utils/field-options/useFieldOptions.js +1 -16
- package/dist/esm/lib/utils/key-generation.js +1 -18
- package/dist/esm/lib/utils/template-type-conversion/convertLocalConfiguratorToTemplateField.js +1 -64
- package/dist/esm/lib/utils/template-type-conversion/convertTemplateFieldToLocalConfigurator.js +1 -70
- package/dist/esm/lib/utils/template-type-conversion/generateJSONPatchTemplateOperations.js +1 -160
- package/dist/esm/lib/utils/template-type-conversion/mapFieldsWithUniqueKeys.js +1 -9
- package/package.json +7 -7
|
@@ -1,36 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
var t = e({
|
|
3
|
-
callToActionHeader: {
|
|
4
|
-
id: "groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.callToActionHeader",
|
|
5
|
-
defaultMessage: "Choose or Create a Taxonomy"
|
|
6
|
-
},
|
|
7
|
-
callToActionSubheader: {
|
|
8
|
-
id: "groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.callToActionSubheader",
|
|
9
|
-
defaultMessage: "Taxonomies allow you to set dynamic, reusable options for dropdown fields."
|
|
10
|
-
},
|
|
11
|
-
allowMultipleTaxonomySelections: {
|
|
12
|
-
id: "groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.allowMultipleTaxonomySelections",
|
|
13
|
-
defaultMessage: "Users can pick multiple values"
|
|
14
|
-
},
|
|
15
|
-
selection: {
|
|
16
|
-
id: "groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.selection",
|
|
17
|
-
defaultMessage: "What level(s) can users select a value from?"
|
|
18
|
-
},
|
|
19
|
-
requiredSelection: {
|
|
20
|
-
id: "groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.selection.requiredSelection",
|
|
21
|
-
defaultMessage: "Users must pick from the following level:"
|
|
22
|
-
},
|
|
23
|
-
anyLevelSelection: {
|
|
24
|
-
id: "groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.selection.anyLevelSelection",
|
|
25
|
-
defaultMessage: "Users can pick from any level in the list"
|
|
26
|
-
},
|
|
27
|
-
chooseTaxonomyLevel: {
|
|
28
|
-
id: "groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.selection.chooseTaxonomyLevel",
|
|
29
|
-
defaultMessage: "Choose the taxonomy level"
|
|
30
|
-
},
|
|
31
|
-
noTaxonomySelectedError: {
|
|
32
|
-
id: "groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.noTaxonomySelectedError",
|
|
33
|
-
defaultMessage: "Please select a taxonomy"
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
export { t as default };
|
|
1
|
+
import{defineMessages}from"react-intl";var taxonomy_messages_default=defineMessages({callToActionHeader:{id:`groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.callToActionHeader`,defaultMessage:`Choose or Create a Taxonomy`},callToActionSubheader:{id:`groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.callToActionSubheader`,defaultMessage:`Taxonomies allow you to set dynamic, reusable options for dropdown fields.`},allowMultipleTaxonomySelections:{id:`groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.allowMultipleTaxonomySelections`,defaultMessage:`Users can pick multiple values`},selection:{id:`groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.selection`,defaultMessage:`What level(s) can users select a value from?`},requiredSelection:{id:`groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.selection.requiredSelection`,defaultMessage:`Users must pick from the following level:`},anyLevelSelection:{id:`groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.selection.anyLevelSelection`,defaultMessage:`Users can pick from any level in the list`},chooseTaxonomyLevel:{id:`groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.selection.chooseTaxonomyLevel`,defaultMessage:`Choose the taxonomy level`},noTaxonomySelectedError:{id:`groupSharedFeatures.metadataTemplateEditor.configurator.taxonomy.noTaxonomySelectedError`,defaultMessage:`Please select a taxonomy`}});export{taxonomy_messages_default as default};
|
|
@@ -1,106 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import t from "./components/confirmation-modal/confirmation-modal.js";
|
|
3
|
-
import { t as n } from "../../../../chunks/metadata-field-configurator.module.js";
|
|
4
|
-
import { FieldActionSlot as r } from "./components/field-action-slot/field-action-slot.js";
|
|
5
|
-
import { FieldConfiguratorContext as i } from "./context/field-configurator-context.js";
|
|
6
|
-
import { TaxonomyOptionsContext as ee } from "./context/taxonomy-options-context.js";
|
|
7
|
-
import { FieldEditContent as te } from "./components/field-edit-content/field-edit-content.js";
|
|
8
|
-
import { FieldExtensionsContext as a } from "./context/field-extensions-context.js";
|
|
9
|
-
import { EDIT_TAB_ID as o, useFieldConfiguratorBehavior as s } from "./hooks/useFieldConfiguratorBehavior.js";
|
|
10
|
-
import { Accordion as c, Tabs as l } from "@box/blueprint-web";
|
|
11
|
-
import { useIntl as u } from "react-intl";
|
|
12
|
-
import { Fragment as ne, jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
13
|
-
import "react";
|
|
14
|
-
var p = ({ index: p, maxIndex: m, values: h, onValuesChange: g, onDelete: _, onDuplicate: v, onReorderFields: y, onTouchStart: b, onDragStart: x, onDragEnd: S, externalErrors: re, externalTouched: ie, dndDragHandleProps: C, fieldCollapsedText: ae, isExpanded: w, onExpandedChange: T, taxonomyOptions: E, fetchTaxonomies: D, submitAttemptCount: O, fieldExtensions: k, onValidationChange: A, readOnly: j = !1 }) => {
|
|
15
|
-
let M = u(), { contextValue: N, taxonomyContextValue: P, extensions: F, isActive: I, handleAccordionValueChange: L, isDeleteConfirmationModalOpen: R, openConfirmationModal: z, closeConfirmationModal: oe, handleDeleteField: B, activeTabId: V, setActiveTabId: H, isTypeEditable: U, uniqueKey: W, nameInputId: G, descriptionInputId: K, accordionTitle: q, TitleIcon: se, hasErrors: ce, handleTypeChange: le, handleChangeVisibility: ue } = s({
|
|
16
|
-
values: h,
|
|
17
|
-
onValuesChange: g,
|
|
18
|
-
onDelete: _,
|
|
19
|
-
isExpanded: w,
|
|
20
|
-
onExpandedChange: T,
|
|
21
|
-
submitAttemptCount: O,
|
|
22
|
-
taxonomyOptions: E,
|
|
23
|
-
fetchTaxonomies: D,
|
|
24
|
-
fieldExtensionsProp: k,
|
|
25
|
-
onValidationChange: A
|
|
26
|
-
}), de = j ? {
|
|
27
|
-
...N,
|
|
28
|
-
values: {
|
|
29
|
-
...N.values,
|
|
30
|
-
isFieldReadOnly: !0
|
|
31
|
-
}
|
|
32
|
-
} : N, J = /* @__PURE__ */ d(te, {
|
|
33
|
-
nameInputId: G,
|
|
34
|
-
descriptionInputId: K,
|
|
35
|
-
isTypeEditable: U,
|
|
36
|
-
externalErrors: re,
|
|
37
|
-
externalTouched: ie,
|
|
38
|
-
handleTypeChange: le,
|
|
39
|
-
readOnly: j
|
|
40
|
-
}), fe = F.length > 0 ? /* @__PURE__ */ f(ne, { children: [/* @__PURE__ */ d(l.TabPanel, {
|
|
41
|
-
tabId: o,
|
|
42
|
-
children: J
|
|
43
|
-
}), F.map((e, t) => /* @__PURE__ */ d(l.TabPanel, {
|
|
44
|
-
tabId: `ext-${t}`,
|
|
45
|
-
className: n.extensionContent,
|
|
46
|
-
children: e.renderContent(h)
|
|
47
|
-
}, e.label))] }) : J, Y = w === !1, X = /* @__PURE__ */ d(c.Item, {
|
|
48
|
-
highlighted: !0,
|
|
49
|
-
startElement: /* @__PURE__ */ d(se, {
|
|
50
|
-
fontSize: "20px",
|
|
51
|
-
role: "presentation"
|
|
52
|
-
}),
|
|
53
|
-
value: W,
|
|
54
|
-
title: q,
|
|
55
|
-
action: /* @__PURE__ */ d(r, {
|
|
56
|
-
fieldCollapsedText: ae,
|
|
57
|
-
isHidden: h.hidden,
|
|
58
|
-
isExpanded: I,
|
|
59
|
-
index: p,
|
|
60
|
-
maxIndex: m,
|
|
61
|
-
onReorderFields: y,
|
|
62
|
-
onToggleVisibility: ue,
|
|
63
|
-
onRequestDelete: z,
|
|
64
|
-
onRequestDuplicate: v,
|
|
65
|
-
extensions: F,
|
|
66
|
-
readOnly: j
|
|
67
|
-
}),
|
|
68
|
-
className: n.fieldAccordionItem,
|
|
69
|
-
iconVariant: ce ? "alert-error" : void 0,
|
|
70
|
-
children: fe
|
|
71
|
-
}), Z = F.length > 0 ? /* @__PURE__ */ d(l, {
|
|
72
|
-
selectedId: V,
|
|
73
|
-
setSelectedId: (e) => H(e ?? "edit"),
|
|
74
|
-
children: X
|
|
75
|
-
}) : X, Q = /* @__PURE__ */ f(i.Provider, {
|
|
76
|
-
value: de,
|
|
77
|
-
children: [/* @__PURE__ */ d("div", {
|
|
78
|
-
draggable: Y && !C,
|
|
79
|
-
onDragStart: Y && !C && x ? (e) => x(e, p) : void 0,
|
|
80
|
-
onDragEnd: Y && !C && S ? (e) => S(e, p) : void 0,
|
|
81
|
-
onTouchStart: Y && !C && b ? (e) => b(e, p) : void 0,
|
|
82
|
-
...Y ? C?.listeners ?? {} : {},
|
|
83
|
-
...Y ? C?.attributes ?? {} : {},
|
|
84
|
-
children: w === void 0 ? /* @__PURE__ */ d(c, {
|
|
85
|
-
type: "single",
|
|
86
|
-
collapsible: !0,
|
|
87
|
-
value: I ? W : "",
|
|
88
|
-
onValueChange: L,
|
|
89
|
-
children: Z
|
|
90
|
-
}) : Z
|
|
91
|
-
}), R && /* @__PURE__ */ d(t, {
|
|
92
|
-
onClose: oe,
|
|
93
|
-
onConfirm: B,
|
|
94
|
-
title: M.formatMessage(e.deleteFieldTitle, { fieldName: h.name }),
|
|
95
|
-
body: M.formatMessage(e.deleteFieldDescription)
|
|
96
|
-
})]
|
|
97
|
-
}), $ = E !== void 0 || D !== void 0 ? /* @__PURE__ */ d(ee.Provider, {
|
|
98
|
-
value: P,
|
|
99
|
-
children: Q
|
|
100
|
-
}) : Q;
|
|
101
|
-
return k === void 0 ? $ : /* @__PURE__ */ d(a.Provider, {
|
|
102
|
-
value: k,
|
|
103
|
-
children: $
|
|
104
|
-
});
|
|
105
|
-
};
|
|
106
|
-
export { p as MetadataFieldConfigurator };
|
|
1
|
+
import{general}from"./messages/configurator-messages.js";import ConfirmationModal from"./components/confirmation-modal/confirmation-modal.js";import{t as metadata_field_configurator_module_default}from"../../../../chunks/metadata-field-configurator.module.js";import{FieldActionSlot}from"./components/field-action-slot/field-action-slot.js";import{FieldConfiguratorContext}from"./context/field-configurator-context.js";import{TaxonomyOptionsContext}from"./context/taxonomy-options-context.js";import{FieldEditContent}from"./components/field-edit-content/field-edit-content.js";import{FieldExtensionsContext}from"./context/field-extensions-context.js";import{EDIT_TAB_ID,useFieldConfiguratorBehavior}from"./hooks/useFieldConfiguratorBehavior.js";import{Accordion,Tabs}from"@box/blueprint-web";import{useIntl}from"react-intl";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import"react";var MetadataFieldConfigurator=({index,maxIndex,values,onValuesChange,onDelete,onDuplicate,onReorderFields,onTouchStart,onDragStart,onDragEnd,externalErrors,externalTouched,dndDragHandleProps,fieldCollapsedText,isExpanded,onExpandedChange,taxonomyOptions,fetchTaxonomies,submitAttemptCount,fieldExtensions:fieldExtensionsProp,onValidationChange,readOnly=!1})=>{let intl=useIntl(),{contextValue,taxonomyContextValue,extensions,isActive,handleAccordionValueChange,isDeleteConfirmationModalOpen,openConfirmationModal,closeConfirmationModal,handleDeleteField,activeTabId,setActiveTabId,isTypeEditable,uniqueKey,nameInputId,descriptionInputId,accordionTitle,TitleIcon,hasErrors,handleTypeChange,handleChangeVisibility}=useFieldConfiguratorBehavior({values,onValuesChange,onDelete,isExpanded,onExpandedChange,submitAttemptCount,taxonomyOptions,fetchTaxonomies,fieldExtensionsProp,onValidationChange}),effectiveContextValue=readOnly?{...contextValue,values:{...contextValue.values,isFieldReadOnly:!0}}:contextValue,editContent=jsx(FieldEditContent,{nameInputId,descriptionInputId,isTypeEditable,externalErrors,externalTouched,handleTypeChange,readOnly}),accordionBody=extensions.length>0?jsxs(Fragment,{children:[jsx(Tabs.TabPanel,{tabId:EDIT_TAB_ID,children:editContent}),extensions.map((ext,i)=>jsx(Tabs.TabPanel,{tabId:`ext-${i}`,className:metadata_field_configurator_module_default.extensionContent,children:ext.renderContent(values)},ext.label))]}):editContent,isDraggable=isExpanded===!1,accordionItemEl=jsx(Accordion.Item,{highlighted:!0,startElement:jsx(TitleIcon,{fontSize:`20px`,role:`presentation`}),value:uniqueKey,title:accordionTitle,action:jsx(FieldActionSlot,{fieldCollapsedText,isHidden:values.hidden,isExpanded:isActive,index,maxIndex,onReorderFields,onToggleVisibility:handleChangeVisibility,onRequestDelete:openConfirmationModal,onRequestDuplicate:onDuplicate,extensions,readOnly}),className:metadata_field_configurator_module_default.fieldAccordionItem,iconVariant:hasErrors?`alert-error`:void 0,children:accordionBody}),accordionItem=extensions.length>0?jsx(Tabs,{selectedId:activeTabId,setSelectedId:id=>setActiveTabId(id??`edit`),children:accordionItemEl}):accordionItemEl,content=jsxs(FieldConfiguratorContext.Provider,{value:effectiveContextValue,children:[jsx(`div`,{draggable:isDraggable&&!dndDragHandleProps,onDragStart:isDraggable&&!dndDragHandleProps&&onDragStart?e=>onDragStart(e,index):void 0,onDragEnd:isDraggable&&!dndDragHandleProps&&onDragEnd?e=>onDragEnd(e,index):void 0,onTouchStart:isDraggable&&!dndDragHandleProps&&onTouchStart?e=>onTouchStart(e,index):void 0,...isDraggable?dndDragHandleProps?.listeners??{}:{},...isDraggable?dndDragHandleProps?.attributes??{}:{},children:isExpanded===void 0?jsx(Accordion,{type:`single`,collapsible:!0,value:isActive?uniqueKey:``,onValueChange:handleAccordionValueChange,children:accordionItem}):accordionItem}),isDeleteConfirmationModalOpen&&jsx(ConfirmationModal,{onClose:closeConfirmationModal,onConfirm:handleDeleteField,title:intl.formatMessage(general.deleteFieldTitle,{fieldName:values.name}),body:intl.formatMessage(general.deleteFieldDescription)})]}),withTaxonomyContext=taxonomyOptions!==void 0||fetchTaxonomies!==void 0?jsx(TaxonomyOptionsContext.Provider,{value:taxonomyContextValue,children:content}):content;return fieldExtensionsProp===void 0?withTaxonomyContext:jsx(FieldExtensionsContext.Provider,{value:fieldExtensionsProp,children:withTaxonomyContext})};export{MetadataFieldConfigurator};
|
|
@@ -1,46 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { t } from "../../../../chunks/dropdown-field-configuration.js";
|
|
3
|
-
import { t as n } from "../../../../chunks/taxonomy-field-configuration.js";
|
|
4
|
-
import { taxonomyDefaultValues as r } from "./components/type-specific-configuration/taxonomy/taxonomy-default-values.js";
|
|
5
|
-
import { jsx as i } from "react/jsx-runtime";
|
|
6
|
-
import "react";
|
|
7
|
-
import a from "lodash/uniqueId";
|
|
8
|
-
function o(t) {
|
|
9
|
-
return {
|
|
10
|
-
id: a("field-"),
|
|
11
|
-
key: "",
|
|
12
|
-
hidden: !1,
|
|
13
|
-
name: "",
|
|
14
|
-
type: t ?? void 0,
|
|
15
|
-
description: "",
|
|
16
|
-
isFieldNew: !0,
|
|
17
|
-
isFieldReadOnly: !1,
|
|
18
|
-
...r,
|
|
19
|
-
dropdown: {
|
|
20
|
-
options: t === e.Dropdown ? [{
|
|
21
|
-
id: a(),
|
|
22
|
-
key: "",
|
|
23
|
-
isNew: !0
|
|
24
|
-
}] : [],
|
|
25
|
-
allowMultipleSelections: !1,
|
|
26
|
-
isAllowMultipleSelectionsEnabled: !0
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
var s = (r) => {
|
|
31
|
-
switch (r) {
|
|
32
|
-
case e.Dropdown: return /* @__PURE__ */ i(t, {});
|
|
33
|
-
case e.Taxonomy: return /* @__PURE__ */ i(n, {});
|
|
34
|
-
default: return null;
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
function c(e, t) {
|
|
38
|
-
return e ? t === !0 ? !0 : typeof e != "object" || typeof t != "object" || !t ? !1 : Object.keys(e).some((n) => c(e[n], t[n])) : !1;
|
|
39
|
-
}
|
|
40
|
-
function l(e) {
|
|
41
|
-
return Object.keys(e).reduce((t, n) => {
|
|
42
|
-
let r = e[n];
|
|
43
|
-
return Array.isArray(r) ? t[n] = r.map((e) => typeof e == "object" && e ? l(e) : !0) : typeof r == "object" && r ? t[n] = l(r) : t[n] = !0, t;
|
|
44
|
-
}, {});
|
|
45
|
-
}
|
|
46
|
-
export { o as createDefaultFieldValues, s as getConfigurationByType, c as hasVisibleErrors, l as markAllTouched };
|
|
1
|
+
import{a as FieldType}from"../../../../chunks/types.js";import{t as DropdownFieldConfiguration}from"../../../../chunks/dropdown-field-configuration.js";import{t as TaxonomyFieldConfiguration}from"../../../../chunks/taxonomy-field-configuration.js";import{taxonomyDefaultValues}from"./components/type-specific-configuration/taxonomy/taxonomy-default-values.js";import{jsx}from"react/jsx-runtime";import"react";import uniqueId from"lodash/uniqueId";function createDefaultFieldValues(type){return{id:uniqueId(`field-`),key:``,hidden:!1,name:``,type:type??void 0,description:``,isFieldNew:!0,isFieldReadOnly:!1,...taxonomyDefaultValues,dropdown:{options:type===FieldType.Dropdown?[{id:uniqueId(),key:``,isNew:!0}]:[],allowMultipleSelections:!1,isAllowMultipleSelectionsEnabled:!0}}}var getConfigurationByType=type=>{switch(type){case FieldType.Dropdown:return jsx(DropdownFieldConfiguration,{});case FieldType.Taxonomy:return jsx(TaxonomyFieldConfiguration,{});default:return null}};function hasVisibleErrors(errors,touched){return errors?touched===!0?!0:typeof errors!=`object`||typeof touched!=`object`||!touched?!1:Object.keys(errors).some(key=>hasVisibleErrors(errors[key],touched[key])):!1}function markAllTouched(obj){return Object.keys(obj).reduce((acc,key)=>{let val=obj[key];return Array.isArray(val)?acc[key]=val.map(item=>typeof item==`object`&&item?markAllTouched(item):!0):typeof val==`object`&&val?acc[key]=markAllTouched(val):acc[key]=!0,acc},{})}export{createDefaultFieldValues,getConfigurationByType,hasVisibleErrors,markAllTouched};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export { e as MetadataFieldList, e as MetadataFieldListDefault };
|
|
1
|
+
import{t as MetadataFieldList}from"../../../../chunks/metadata-field-list.js";export{MetadataFieldList,MetadataFieldList as MetadataFieldListDefault};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export { e as MetadataFieldList, e as default };
|
|
1
|
+
import{t as MetadataFieldList}from"../../../../chunks/metadata-field-list.js";export{MetadataFieldList,MetadataFieldList as default};
|
package/dist/esm/lib/components/metadata-template-editor-form/metadata-template-editor-form.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export { e as default };
|
|
1
|
+
import{t as MetadataTemplateEditorForm}from"../../../../chunks/metadata-template-editor-form.js";export{MetadataTemplateEditorForm as default};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export { e as MetadataTemplateEditorModal };
|
|
1
|
+
import{t as MetadataTemplateEditorModal}from"../../../../chunks/metadata-template-editor-modal.js";export{MetadataTemplateEditorModal};
|
package/dist/esm/lib/components/metadata-template-editor-modal/metadata-template-editor-modal.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export { e as MetadataTemplateEditorModal, e as default };
|
|
1
|
+
import{t as MetadataTemplateEditorModal}from"../../../../chunks/metadata-template-editor-modal.js";export{MetadataTemplateEditorModal,MetadataTemplateEditorModal as default};
|
|
@@ -1,14 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useTemplateNameSchema as t } from "./useTemplateNameSchema.js";
|
|
3
|
-
import { useMemo as n } from "react";
|
|
4
|
-
import * as r from "yup";
|
|
5
|
-
var i = () => {
|
|
6
|
-
let i = e(), a = t();
|
|
7
|
-
return n(() => r.object().shape({
|
|
8
|
-
displayName: a,
|
|
9
|
-
templateKey: r.string().notRequired(),
|
|
10
|
-
fields: r.array().of(i).notRequired(),
|
|
11
|
-
hidden: r.boolean()
|
|
12
|
-
}), [i, a]);
|
|
13
|
-
};
|
|
14
|
-
export { i as useMetadataTemplateFormSchema };
|
|
1
|
+
import{useTemplateFieldSchema}from"../components/metadata-field-configurator/hooks/useTemplateFieldSchema.js";import{useTemplateNameSchema}from"./useTemplateNameSchema.js";import{useMemo}from"react";import*as Yup from"yup";var useMetadataTemplateFormSchema=()=>{let templateFieldSchema=useTemplateFieldSchema(),templateNameSchema=useTemplateNameSchema();return useMemo(()=>Yup.object().shape({displayName:templateNameSchema,templateKey:Yup.string().notRequired(),fields:Yup.array().of(templateFieldSchema).notRequired(),hidden:Yup.boolean()}),[templateFieldSchema,templateNameSchema])};export{useMetadataTemplateFormSchema};
|
|
@@ -1,10 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import t from "../messages.js";
|
|
3
|
-
import { useIntl as n } from "react-intl";
|
|
4
|
-
import { useMemo as r } from "react";
|
|
5
|
-
import * as i from "yup";
|
|
6
|
-
var a = ["new_template"], o = () => {
|
|
7
|
-
let o = n();
|
|
8
|
-
return r(() => i.string().min(1).max(e, o.formatMessage(t.fieldNameTooLong)).required(o.formatMessage(t.fieldRequired)).test("no-whitespace-only", o.formatMessage(t.fieldRequired), (e) => !e || e.trim().length > 0).test("forbidden-display-name", o.formatMessage(t.forbiddenDisplayName), (e) => !a.some((t) => e.toLowerCase().includes(t))), [o]);
|
|
9
|
-
};
|
|
10
|
-
export { o as useTemplateNameSchema };
|
|
1
|
+
import{METADATA_TEMPLATE_NAME_MAX_LENGTH}from"../utils/constants.js";import messages_default from"../messages.js";import{useIntl}from"react-intl";import{useMemo}from"react";import*as Yup from"yup";var FORBIDDEN_WORDS=[`new_template`],useTemplateNameSchema=()=>{let intl=useIntl();return useMemo(()=>Yup.string().min(1).max(METADATA_TEMPLATE_NAME_MAX_LENGTH,intl.formatMessage(messages_default.fieldNameTooLong)).required(intl.formatMessage(messages_default.fieldRequired)).test(`no-whitespace-only`,intl.formatMessage(messages_default.fieldRequired),value=>!value||value.trim().length>0).test(`forbidden-display-name`,intl.formatMessage(messages_default.forbiddenDisplayName),value=>!FORBIDDEN_WORDS.some(word=>value.toLowerCase().includes(word))),[intl])};export{useTemplateNameSchema};
|
package/dist/esm/lib/index.js
CHANGED
|
@@ -1,8 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useTemplateNameSchema as n } from "./hooks/useTemplateNameSchema.js";
|
|
3
|
-
import { useMetadataTemplateFormSchema as r } from "./hooks/useMetadataTemplateFormSchema.js";
|
|
4
|
-
import { convertApiMetadataTemplateFieldToLocalConfiguratorField as i } from "./utils/template-type-conversion/convertTemplateFieldToLocalConfigurator.js";
|
|
5
|
-
import { mapFieldsWithUniqueKeys as a } from "./utils/template-type-conversion/mapFieldsWithUniqueKeys.js";
|
|
6
|
-
import { generateJSONPatchTemplateOperations as o } from "./utils/template-type-conversion/generateJSONPatchTemplateOperations.js";
|
|
7
|
-
import { t as s } from "../../chunks/metadata-template-editor.js";
|
|
8
|
-
export { e as EditorConfigContext, s as MetadataTemplateEditor, i as convertApiMetadataTemplateFieldToLocalConfiguratorField, o as generateJSONPatchTemplateOperations, a as mapFieldsWithUniqueKeys, t as useEditorConfig, r as useMetadataTemplateFormSchema, n as useTemplateNameSchema };
|
|
1
|
+
import{EditorConfigContext,useEditorConfig}from"./components/metadata-field-configurator/context/editor-config-context.js";import{useTemplateNameSchema}from"./hooks/useTemplateNameSchema.js";import{useMetadataTemplateFormSchema}from"./hooks/useMetadataTemplateFormSchema.js";import{convertApiMetadataTemplateFieldToLocalConfiguratorField}from"./utils/template-type-conversion/convertTemplateFieldToLocalConfigurator.js";import{mapFieldsWithUniqueKeys}from"./utils/template-type-conversion/mapFieldsWithUniqueKeys.js";import{generateJSONPatchTemplateOperations}from"./utils/template-type-conversion/generateJSONPatchTemplateOperations.js";import{t as MetadataTemplateEditor}from"../../chunks/metadata-template-editor.js";export{EditorConfigContext,MetadataTemplateEditor,convertApiMetadataTemplateFieldToLocalConfiguratorField,generateJSONPatchTemplateOperations,mapFieldsWithUniqueKeys,useEditorConfig,useMetadataTemplateFormSchema,useTemplateNameSchema};
|
package/dist/esm/lib/messages.js
CHANGED
|
@@ -1,128 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
var t = e({
|
|
3
|
-
createTitle: {
|
|
4
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.createTitle",
|
|
5
|
-
defaultMessage: "New Metadata Template"
|
|
6
|
-
},
|
|
7
|
-
editTitle: {
|
|
8
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.editTitle",
|
|
9
|
-
defaultMessage: "Edit \"{templateName}\" Metadata Template"
|
|
10
|
-
},
|
|
11
|
-
templateName: {
|
|
12
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.templateName.label",
|
|
13
|
-
defaultMessage: "Template Name"
|
|
14
|
-
},
|
|
15
|
-
templateNameDescription: {
|
|
16
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.templateName.description",
|
|
17
|
-
defaultMessage: "Display name of the template shown to users"
|
|
18
|
-
},
|
|
19
|
-
cancel: {
|
|
20
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.cancel",
|
|
21
|
-
defaultMessage: "Cancel"
|
|
22
|
-
},
|
|
23
|
-
save: {
|
|
24
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.save",
|
|
25
|
-
defaultMessage: "Save"
|
|
26
|
-
},
|
|
27
|
-
fields: {
|
|
28
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.fields.label",
|
|
29
|
-
defaultMessage: "Fields"
|
|
30
|
-
},
|
|
31
|
-
fieldsAddFirst: {
|
|
32
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.fields.description",
|
|
33
|
-
defaultMessage: "Add your first field to the Template:"
|
|
34
|
-
},
|
|
35
|
-
fieldsLearnMore: {
|
|
36
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.fields.learnMore",
|
|
37
|
-
defaultMessage: "Learn more about Metadata Field Types"
|
|
38
|
-
},
|
|
39
|
-
fieldRequired: {
|
|
40
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.fieldRequired",
|
|
41
|
-
defaultMessage: "This field is required"
|
|
42
|
-
},
|
|
43
|
-
forbiddenDisplayName: {
|
|
44
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.forbiddenDisplayName",
|
|
45
|
-
defaultMessage: "This display name is forbidden. Please choose another one."
|
|
46
|
-
},
|
|
47
|
-
invalidCharacters: {
|
|
48
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.invalidCharacters",
|
|
49
|
-
defaultMessage: "The field contains illegal characters."
|
|
50
|
-
},
|
|
51
|
-
fieldNameTooLong: {
|
|
52
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.fieldNameTooLong",
|
|
53
|
-
defaultMessage: "The field name is too long."
|
|
54
|
-
},
|
|
55
|
-
displayNameUsedBefore: {
|
|
56
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.displayNameUsedBefore",
|
|
57
|
-
defaultMessage: "This display name has already been used before. Please choose another one."
|
|
58
|
-
},
|
|
59
|
-
submitting: {
|
|
60
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.submitting",
|
|
61
|
-
defaultMessage: "Submitting..."
|
|
62
|
-
},
|
|
63
|
-
closeAriaLabel: {
|
|
64
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.closeAriaLabel",
|
|
65
|
-
defaultMessage: "Close metadata template editor"
|
|
66
|
-
},
|
|
67
|
-
saveSuccessNotification: {
|
|
68
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.saveSuccessNotification",
|
|
69
|
-
defaultMessage: "Template saved successfully."
|
|
70
|
-
},
|
|
71
|
-
saveErrorNotification: {
|
|
72
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.saveErrorNotification",
|
|
73
|
-
defaultMessage: "Failed to save template. Please try again."
|
|
74
|
-
},
|
|
75
|
-
notificationSuccessIconAriaLabel: {
|
|
76
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.notificationSuccessIconAriaLabel",
|
|
77
|
-
defaultMessage: "Success"
|
|
78
|
-
},
|
|
79
|
-
notificationErrorIconAriaLabel: {
|
|
80
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.notificationErrorIconAriaLabel",
|
|
81
|
-
defaultMessage: "Error"
|
|
82
|
-
},
|
|
83
|
-
notificationCloseButtonAriaLabel: {
|
|
84
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.notificationCloseButtonAriaLabel",
|
|
85
|
-
defaultMessage: "Close notification"
|
|
86
|
-
},
|
|
87
|
-
loading: {
|
|
88
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.loading",
|
|
89
|
-
defaultMessage: "Loading template…"
|
|
90
|
-
},
|
|
91
|
-
fetchError: {
|
|
92
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.fetchError",
|
|
93
|
-
defaultMessage: "Something went wrong. Please reload to try again."
|
|
94
|
-
},
|
|
95
|
-
reload: {
|
|
96
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.reload",
|
|
97
|
-
defaultMessage: "Reload"
|
|
98
|
-
},
|
|
99
|
-
unsavedChangesTitle: {
|
|
100
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.unsavedChangesTitle",
|
|
101
|
-
defaultMessage: "Unsaved Changes"
|
|
102
|
-
},
|
|
103
|
-
unsavedChangesBody: {
|
|
104
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.unsavedChangesBody",
|
|
105
|
-
defaultMessage: "You have unsaved changes. If you leave now, your changes will be lost."
|
|
106
|
-
},
|
|
107
|
-
unsavedChangesDiscard: {
|
|
108
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.unsavedChangesDiscard",
|
|
109
|
-
defaultMessage: "Leave Without Saving"
|
|
110
|
-
},
|
|
111
|
-
unsavedChangesKeepEditing: {
|
|
112
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.unsavedChangesKeepEditing",
|
|
113
|
-
defaultMessage: "Keep Editing"
|
|
114
|
-
},
|
|
115
|
-
close: {
|
|
116
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.close",
|
|
117
|
-
defaultMessage: "Close"
|
|
118
|
-
},
|
|
119
|
-
viewTitle: {
|
|
120
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.viewTitle",
|
|
121
|
-
defaultMessage: "{templateName}"
|
|
122
|
-
},
|
|
123
|
-
noFields: {
|
|
124
|
-
id: "groupSharedFeatures.metadataTemplateEditor.templateForm.noFields",
|
|
125
|
-
defaultMessage: "This template contains no fields."
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
export { t as default };
|
|
1
|
+
import{defineMessages}from"react-intl";var messages_default=defineMessages({createTitle:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.createTitle`,defaultMessage:`New Metadata Template`},editTitle:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.editTitle`,defaultMessage:`Edit "{templateName}" Metadata Template`},templateName:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.templateName.label`,defaultMessage:`Template Name`},templateNameDescription:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.templateName.description`,defaultMessage:`Display name of the template shown to users`},cancel:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.cancel`,defaultMessage:`Cancel`},save:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.save`,defaultMessage:`Save`},fields:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.fields.label`,defaultMessage:`Fields`},fieldsAddFirst:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.fields.description`,defaultMessage:`Add your first field to the Template:`},fieldsLearnMore:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.fields.learnMore`,defaultMessage:`Learn more about Metadata Field Types`},fieldRequired:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.fieldRequired`,defaultMessage:`This field is required`},forbiddenDisplayName:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.forbiddenDisplayName`,defaultMessage:`This display name is forbidden. Please choose another one.`},invalidCharacters:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.invalidCharacters`,defaultMessage:`The field contains illegal characters.`},fieldNameTooLong:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.fieldNameTooLong`,defaultMessage:`The field name is too long.`},displayNameUsedBefore:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.displayNameUsedBefore`,defaultMessage:`This display name has already been used before. Please choose another one.`},submitting:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.submitting`,defaultMessage:`Submitting...`},closeAriaLabel:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.closeAriaLabel`,defaultMessage:`Close metadata template editor`},saveSuccessNotification:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.saveSuccessNotification`,defaultMessage:`Template saved successfully.`},saveErrorNotification:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.saveErrorNotification`,defaultMessage:`Failed to save template. Please try again.`},notificationSuccessIconAriaLabel:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.notificationSuccessIconAriaLabel`,defaultMessage:`Success`},notificationErrorIconAriaLabel:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.notificationErrorIconAriaLabel`,defaultMessage:`Error`},notificationCloseButtonAriaLabel:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.notificationCloseButtonAriaLabel`,defaultMessage:`Close notification`},loading:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.loading`,defaultMessage:`Loading template…`},fetchError:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.fetchError`,defaultMessage:`Something went wrong. Please reload to try again.`},reload:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.reload`,defaultMessage:`Reload`},unsavedChangesTitle:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.unsavedChangesTitle`,defaultMessage:`Unsaved Changes`},unsavedChangesBody:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.unsavedChangesBody`,defaultMessage:`You have unsaved changes. If you leave now, your changes will be lost.`},unsavedChangesDiscard:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.unsavedChangesDiscard`,defaultMessage:`Leave Without Saving`},unsavedChangesKeepEditing:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.unsavedChangesKeepEditing`,defaultMessage:`Keep Editing`},close:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.close`,defaultMessage:`Close`},viewTitle:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.viewTitle`,defaultMessage:`{templateName}`},noFields:{id:`groupSharedFeatures.metadataTemplateEditor.templateForm.noFields`,defaultMessage:`This template contains no fields.`}});export{messages_default as default};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export { e as MetadataTemplateEditor, e as default };
|
|
1
|
+
import{t as MetadataTemplateEditor}from"../../chunks/metadata-template-editor.js";export{MetadataTemplateEditor,MetadataTemplateEditor as default};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
var
|
|
2
|
-
export { i as CONFLICT_HTTP_STATUS, t as METADATA_TEMPLATE_FIELD_KEY_MAX_LENGTH, e as METADATA_TEMPLATE_FIELD_NAME_MAX_LENGTH, n as METADATA_TEMPLATE_KEY_MAX_LENGTH, r as METADATA_TEMPLATE_NAME_MAX_LENGTH };
|
|
1
|
+
var METADATA_TEMPLATE_FIELD_NAME_MAX_LENGTH=4096,METADATA_TEMPLATE_FIELD_KEY_MAX_LENGTH=256,METADATA_TEMPLATE_KEY_MAX_LENGTH=64,METADATA_TEMPLATE_NAME_MAX_LENGTH=4096,CONFLICT_HTTP_STATUS=409;export{CONFLICT_HTTP_STATUS,METADATA_TEMPLATE_FIELD_KEY_MAX_LENGTH,METADATA_TEMPLATE_FIELD_NAME_MAX_LENGTH,METADATA_TEMPLATE_KEY_MAX_LENGTH,METADATA_TEMPLATE_NAME_MAX_LENGTH};
|
|
@@ -1,15 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Calendar as t, Numbers as n, Section as r, Taxonomy as i, TextInput as a } from "@box/blueprint-web-assets/icons/Medium";
|
|
3
|
-
import { jsx as o } from "react/jsx-runtime";
|
|
4
|
-
import "react";
|
|
5
|
-
var s = (s) => (c) => {
|
|
6
|
-
switch (s) {
|
|
7
|
-
case e.Text: return /* @__PURE__ */ o(a, { ...c });
|
|
8
|
-
case e.Number: return /* @__PURE__ */ o(n, { ...c });
|
|
9
|
-
case e.Date: return /* @__PURE__ */ o(t, { ...c });
|
|
10
|
-
case e.Dropdown: return /* @__PURE__ */ o(r, { ...c });
|
|
11
|
-
case e.Taxonomy: return /* @__PURE__ */ o(i, { ...c });
|
|
12
|
-
default: return /* @__PURE__ */ o(a, { ...c });
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
export { s as FieldTypeIcon };
|
|
1
|
+
import{a as FieldType}from"../../../../chunks/types.js";import{Calendar,Numbers,Section,Taxonomy,TextInput}from"@box/blueprint-web-assets/icons/Medium";import{jsx}from"react/jsx-runtime";import"react";var FieldTypeIcon=type=>props=>{switch(type){case FieldType.Text:return jsx(TextInput,{...props});case FieldType.Number:return jsx(Numbers,{...props});case FieldType.Date:return jsx(Calendar,{...props});case FieldType.Dropdown:return jsx(Section,{...props});case FieldType.Taxonomy:return jsx(Taxonomy,{...props});default:return jsx(TextInput,{...props})}};export{FieldTypeIcon};
|
|
@@ -1,4 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { fieldTypeDescriptionMessages as t, fieldTypesTitleMessages as n } from "./messages.js";
|
|
3
|
-
import { useFieldOptions as r } from "./useFieldOptions.js";
|
|
4
|
-
export { e as FieldTypeIcon, t as fieldTypeDescriptionMessages, n as fieldTypesTitleMessages, r as useFieldOptions };
|
|
1
|
+
import{FieldTypeIcon}from"./field-type-icon.js";import{fieldTypeDescriptionMessages,fieldTypesTitleMessages}from"./messages.js";import{useFieldOptions}from"./useFieldOptions.js";export{FieldTypeIcon,fieldTypeDescriptionMessages,fieldTypesTitleMessages,useFieldOptions};
|
|
@@ -1,45 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
var t = e({
|
|
3
|
-
text: {
|
|
4
|
-
id: "groupSharedFeatures.metadataTemplateEditor.fieldTypes.text",
|
|
5
|
-
defaultMessage: "Text"
|
|
6
|
-
},
|
|
7
|
-
number: {
|
|
8
|
-
id: "groupSharedFeatures.metadataTemplateEditor.fieldTypes.number",
|
|
9
|
-
defaultMessage: "Number"
|
|
10
|
-
},
|
|
11
|
-
date: {
|
|
12
|
-
id: "groupSharedFeatures.metadataTemplateEditor.fieldTypes.date",
|
|
13
|
-
defaultMessage: "Date"
|
|
14
|
-
},
|
|
15
|
-
dropdown: {
|
|
16
|
-
id: "groupSharedFeatures.metadataTemplateEditor.fieldTypes.dropdown",
|
|
17
|
-
defaultMessage: "Dropdown"
|
|
18
|
-
},
|
|
19
|
-
taxonomy: {
|
|
20
|
-
id: "groupSharedFeatures.metadataTemplateEditor.fieldTypes.taxonomy",
|
|
21
|
-
defaultMessage: "Taxonomy"
|
|
22
|
-
}
|
|
23
|
-
}), n = e({
|
|
24
|
-
text: {
|
|
25
|
-
id: "groupSharedFeatures.metadataTemplateEditor.fieldTypeDescriptions.text",
|
|
26
|
-
defaultMessage: "Free text input up to 10,000 characters"
|
|
27
|
-
},
|
|
28
|
-
number: {
|
|
29
|
-
id: "groupSharedFeatures.metadataTemplateEditor.fieldTypeDescriptions.number",
|
|
30
|
-
defaultMessage: "Supports all numeric values"
|
|
31
|
-
},
|
|
32
|
-
date: {
|
|
33
|
-
id: "groupSharedFeatures.metadataTemplateEditor.fieldTypeDescriptions.date",
|
|
34
|
-
defaultMessage: "Date field with calendar picker"
|
|
35
|
-
},
|
|
36
|
-
dropdown: {
|
|
37
|
-
id: "groupSharedFeatures.metadataTemplateEditor.fieldTypeDescriptions.dropdown",
|
|
38
|
-
defaultMessage: "Supports single and multiple selections"
|
|
39
|
-
},
|
|
40
|
-
taxonomy: {
|
|
41
|
-
id: "groupSharedFeatures.metadataTemplateEditor.fieldTypeDescriptions.taxonomy",
|
|
42
|
-
defaultMessage: "Hierarchical list of selectable options"
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
export { n as fieldTypeDescriptionMessages, t as fieldTypesTitleMessages };
|
|
1
|
+
import{defineMessages}from"react-intl";var fieldTypesTitleMessages=defineMessages({text:{id:`groupSharedFeatures.metadataTemplateEditor.fieldTypes.text`,defaultMessage:`Text`},number:{id:`groupSharedFeatures.metadataTemplateEditor.fieldTypes.number`,defaultMessage:`Number`},date:{id:`groupSharedFeatures.metadataTemplateEditor.fieldTypes.date`,defaultMessage:`Date`},dropdown:{id:`groupSharedFeatures.metadataTemplateEditor.fieldTypes.dropdown`,defaultMessage:`Dropdown`},taxonomy:{id:`groupSharedFeatures.metadataTemplateEditor.fieldTypes.taxonomy`,defaultMessage:`Taxonomy`}}),fieldTypeDescriptionMessages=defineMessages({text:{id:`groupSharedFeatures.metadataTemplateEditor.fieldTypeDescriptions.text`,defaultMessage:`Free text input up to 10,000 characters`},number:{id:`groupSharedFeatures.metadataTemplateEditor.fieldTypeDescriptions.number`,defaultMessage:`Supports all numeric values`},date:{id:`groupSharedFeatures.metadataTemplateEditor.fieldTypeDescriptions.date`,defaultMessage:`Date field with calendar picker`},dropdown:{id:`groupSharedFeatures.metadataTemplateEditor.fieldTypeDescriptions.dropdown`,defaultMessage:`Supports single and multiple selections`},taxonomy:{id:`groupSharedFeatures.metadataTemplateEditor.fieldTypeDescriptions.taxonomy`,defaultMessage:`Hierarchical list of selectable options`}});export{fieldTypeDescriptionMessages,fieldTypesTitleMessages};
|
|
@@ -1,16 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { FieldTypeIcon as t } from "./field-type-icon.js";
|
|
3
|
-
import { fieldTypeDescriptionMessages as n, fieldTypesTitleMessages as r } from "./messages.js";
|
|
4
|
-
import { useEditorConfig as i } from "../../components/metadata-field-configurator/context/editor-config-context.js";
|
|
5
|
-
import { useIntl as a } from "react-intl";
|
|
6
|
-
import { useMemo as o } from "react";
|
|
7
|
-
function s() {
|
|
8
|
-
let s = a(), { disabledFieldTypes: c } = i();
|
|
9
|
-
return { availableFieldTypes: o(() => Object.values(e).filter((e) => !c?.includes(e)).map((e) => ({
|
|
10
|
-
type: e,
|
|
11
|
-
label: s.formatMessage(r[e]),
|
|
12
|
-
description: s.formatMessage(n[e]),
|
|
13
|
-
Icon: t(e)
|
|
14
|
-
})), [s, c]) };
|
|
15
|
-
}
|
|
16
|
-
export { s as useFieldOptions };
|
|
1
|
+
import{a as FieldType}from"../../../../chunks/types.js";import{FieldTypeIcon}from"./field-type-icon.js";import{fieldTypeDescriptionMessages,fieldTypesTitleMessages}from"./messages.js";import{useEditorConfig}from"../../components/metadata-field-configurator/context/editor-config-context.js";import{useIntl}from"react-intl";import{useMemo}from"react";function useFieldOptions(){let intl=useIntl(),{disabledFieldTypes}=useEditorConfig();return{availableFieldTypes:useMemo(()=>Object.values(FieldType).filter(type=>!disabledFieldTypes?.includes(type)).map(type=>({type,label:intl.formatMessage(fieldTypesTitleMessages[type]),description:intl.formatMessage(fieldTypeDescriptionMessages[type]),Icon:FieldTypeIcon(type)})),[intl,disabledFieldTypes])}}export{useFieldOptions};
|
|
@@ -1,18 +1 @@
|
|
|
1
|
-
var
|
|
2
|
-
function n(e, t) {
|
|
3
|
-
let n = e.replace(/[^a-zA-Z0-9\s]/g, "").replace(/\w*/g, (e) => e.charAt(0).toUpperCase() + e.slice(1).toLowerCase()).replace(/\s/g, ""), r = n.charAt(0).toLowerCase() + n.slice(1);
|
|
4
|
-
return r.length === 0 ? t : /^\d/.test(r) ? t + r : r;
|
|
5
|
-
}
|
|
6
|
-
var r = (e, t) => !t.includes(e), i = ({ displayName: i, existingKeys: a, defaultKey: o, maxKeyLength: s }) => {
|
|
7
|
-
if (s <= e) throw Error("max key length is too short");
|
|
8
|
-
let c = s - e, l = n(i, o).substring(0, c);
|
|
9
|
-
if (r(l, a)) return l;
|
|
10
|
-
let u = 1, d = 0, f;
|
|
11
|
-
do {
|
|
12
|
-
if (d >= t) throw Error("Exceeded maximum iterations while generating unique key");
|
|
13
|
-
f = `${l}${u}`, u += 1, d += 1;
|
|
14
|
-
} while (!r(f, a));
|
|
15
|
-
if (f.length > s) throw Error("could not generate unique key less than max key length");
|
|
16
|
-
return f;
|
|
17
|
-
};
|
|
18
|
-
export { n as displayNameToKey, i as generateKey };
|
|
1
|
+
var KEY_LENGTH_PADDING=3,MAX_LOOP_ITERATIONS=1e3;function displayNameToKey(displayName,defaultKey){let noSpaces=displayName.replace(/[^a-zA-Z0-9\s]/g,``).replace(/\w*/g,word=>word.charAt(0).toUpperCase()+word.slice(1).toLowerCase()).replace(/\s/g,``),proposedKey=noSpaces.charAt(0).toLowerCase()+noSpaces.slice(1);return proposedKey.length===0?defaultKey:/^\d/.test(proposedKey)?defaultKey+proposedKey:proposedKey}var isUnique=(key,existingKeys)=>!existingKeys.includes(key),generateKey=({displayName,existingKeys,defaultKey,maxKeyLength})=>{if(maxKeyLength<=KEY_LENGTH_PADDING)throw Error(`max key length is too short`);let safeKeyLength=maxKeyLength-KEY_LENGTH_PADDING,key=displayNameToKey(displayName,defaultKey).substring(0,safeKeyLength);if(isUnique(key,existingKeys))return key;let uniqueToken=1,iterations=0,proposedKey;do{if(iterations>=MAX_LOOP_ITERATIONS)throw Error(`Exceeded maximum iterations while generating unique key`);proposedKey=`${key}${uniqueToken}`,uniqueToken+=1,iterations+=1}while(!isUnique(proposedKey,existingKeys));if(proposedKey.length>maxKeyLength)throw Error(`could not generate unique key less than max key length`);return proposedKey};export{displayNameToKey,generateKey};
|
package/dist/esm/lib/utils/template-type-conversion/convertLocalConfiguratorToTemplateField.js
CHANGED
|
@@ -1,64 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "../constants.js";
|
|
3
|
-
import { generateKey as r } from "../key-generation.js";
|
|
4
|
-
var i = (e) => {
|
|
5
|
-
let { taxonomy: n } = e, r = n.availableTaxonomies.find((e) => e.taxonomyKey === n.taxonomyKey)?.levels.map((e) => e.level) || [];
|
|
6
|
-
return n.selection === t.AllowAny ? r : n.selectedLevels || [];
|
|
7
|
-
}, a = (t, a = []) => {
|
|
8
|
-
let { name: o, description: s, hidden: c, type: l } = t, u = r({
|
|
9
|
-
displayName: o,
|
|
10
|
-
existingKeys: a,
|
|
11
|
-
defaultKey: "field",
|
|
12
|
-
maxKeyLength: 256
|
|
13
|
-
}), d = {
|
|
14
|
-
key: u,
|
|
15
|
-
displayName: o,
|
|
16
|
-
description: s,
|
|
17
|
-
hidden: c
|
|
18
|
-
}, f;
|
|
19
|
-
switch (l) {
|
|
20
|
-
case e.Text:
|
|
21
|
-
f = {
|
|
22
|
-
...d,
|
|
23
|
-
type: n.String
|
|
24
|
-
};
|
|
25
|
-
break;
|
|
26
|
-
case e.Number:
|
|
27
|
-
f = {
|
|
28
|
-
...d,
|
|
29
|
-
type: n.Float
|
|
30
|
-
};
|
|
31
|
-
break;
|
|
32
|
-
case e.Date:
|
|
33
|
-
f = {
|
|
34
|
-
...d,
|
|
35
|
-
type: n.Date
|
|
36
|
-
};
|
|
37
|
-
break;
|
|
38
|
-
case e.Dropdown:
|
|
39
|
-
f = {
|
|
40
|
-
...d,
|
|
41
|
-
type: t.dropdown.allowMultipleSelections ? n.MultiSelect : n.Enum,
|
|
42
|
-
options: t.dropdown.options.map((e) => ({ key: e.key }))
|
|
43
|
-
};
|
|
44
|
-
break;
|
|
45
|
-
case e.Taxonomy:
|
|
46
|
-
f = {
|
|
47
|
-
...d,
|
|
48
|
-
type: n.Taxonomy,
|
|
49
|
-
taxonomyKey: t.taxonomy.taxonomyKey,
|
|
50
|
-
optionsRules: {
|
|
51
|
-
selectableLevels: i(t),
|
|
52
|
-
multiSelect: t.taxonomy.allowMultipleSelections
|
|
53
|
-
},
|
|
54
|
-
namespace: t.taxonomy.namespace
|
|
55
|
-
};
|
|
56
|
-
break;
|
|
57
|
-
default: throw Error(`Unsupported field type: ${l}`);
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
field: f,
|
|
61
|
-
updatedKeys: [...a, u]
|
|
62
|
-
};
|
|
63
|
-
};
|
|
64
|
-
export { a as convertLocalConfiguratorToTemplateField, i as resolveSelectableLevels };
|
|
1
|
+
import{a as FieldType,c as TaxonomySelection,n as ApiMetadataTemplateFieldType}from"../../../../chunks/types.js";import"../constants.js";import{generateKey}from"../key-generation.js";var resolveSelectableLevels=field=>{let{taxonomy}=field,levels=taxonomy.availableTaxonomies.find(availableTaxonomy=>availableTaxonomy.taxonomyKey===taxonomy.taxonomyKey)?.levels.map(level=>level.level)||[];return taxonomy.selection===TaxonomySelection.AllowAny?levels:taxonomy.selectedLevels||[]},convertLocalConfiguratorToTemplateField=(field,existingKeys=[])=>{let{name:displayName,description,hidden,type}=field,key=generateKey({displayName,existingKeys,defaultKey:`field`,maxKeyLength:256}),baseFieldData={key,displayName,description,hidden},result;switch(type){case FieldType.Text:result={...baseFieldData,type:ApiMetadataTemplateFieldType.String};break;case FieldType.Number:result={...baseFieldData,type:ApiMetadataTemplateFieldType.Float};break;case FieldType.Date:result={...baseFieldData,type:ApiMetadataTemplateFieldType.Date};break;case FieldType.Dropdown:result={...baseFieldData,type:field.dropdown.allowMultipleSelections?ApiMetadataTemplateFieldType.MultiSelect:ApiMetadataTemplateFieldType.Enum,options:field.dropdown.options.map(option=>({key:option.key}))};break;case FieldType.Taxonomy:result={...baseFieldData,type:ApiMetadataTemplateFieldType.Taxonomy,taxonomyKey:field.taxonomy.taxonomyKey,optionsRules:{selectableLevels:resolveSelectableLevels(field),multiSelect:field.taxonomy.allowMultipleSelections},namespace:field.taxonomy.namespace};break;default:throw Error(`Unsupported field type: ${type}`)}return{field:result,updatedKeys:[...existingKeys,key]}};export{convertLocalConfiguratorToTemplateField,resolveSelectableLevels};
|