@box/metadata-template-editor 1.19.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.
Files changed (215) hide show
  1. package/LICENSE +379 -0
  2. package/README.md +57 -0
  3. package/dist/chunks/metadata-field-configurator.module.js +17 -0
  4. package/dist/chunks/types.js +34 -0
  5. package/dist/esm/index.js +34 -0
  6. package/dist/esm/lib/components/field-selector/field-selector.js +39 -0
  7. package/dist/esm/lib/components/field-selector/index.js +4 -0
  8. package/dist/esm/lib/components/field-selector/messages.js +14 -0
  9. package/dist/esm/lib/components/field-type-dropdown/field-type-dropdown.js +47 -0
  10. package/dist/esm/lib/components/field-type-dropdown/index.js +4 -0
  11. package/dist/esm/lib/components/field-type-dropdown/messages.js +14 -0
  12. package/dist/esm/lib/components/field-type-tiles/field-type-tiles.js +40 -0
  13. package/dist/esm/lib/components/field-type-tiles/index.js +4 -0
  14. package/dist/esm/lib/components/field-type-tiles/messages.js +14 -0
  15. package/dist/esm/lib/components/metadata-field-configurator/components/confirmation-modal/confirmation-modal.js +46 -0
  16. package/dist/esm/lib/components/metadata-field-configurator/components/confirmation-modal/messages.js +18 -0
  17. package/dist/esm/lib/components/metadata-field-configurator/components/field-action-slot/field-action-slot.js +80 -0
  18. package/dist/esm/lib/components/metadata-field-configurator/components/field-context-menu/field-context-menu.js +115 -0
  19. package/dist/esm/lib/components/metadata-field-configurator/components/field-edit-content/field-edit-content.js +101 -0
  20. package/dist/esm/lib/components/metadata-field-configurator/components/levels-chain/chip.js +33 -0
  21. package/dist/esm/lib/components/metadata-field-configurator/components/levels-chain/index.js +4 -0
  22. package/dist/esm/lib/components/metadata-field-configurator/components/levels-chain/levels-chain.js +118 -0
  23. package/dist/esm/lib/components/metadata-field-configurator/components/levels-chain/utils.js +34 -0
  24. package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/dropdown/__mocks__/getInitialValues.js +33 -0
  25. package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/dropdown/dropdown-default-values.js +15 -0
  26. package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/dropdown/dropdown-field-configuration.js +66 -0
  27. package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/dropdown/sortable-option-list.js +294 -0
  28. package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/index.js +6 -0
  29. package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-default-values.js +15 -0
  30. package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-field-configuration.js +149 -0
  31. package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-field-configurator-initial-state.js +54 -0
  32. package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-selector-messages.js +38 -0
  33. package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-selector.js +103 -0
  34. package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/useTaxonomySelect.js +19 -0
  35. package/dist/esm/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/utils.js +4 -0
  36. package/dist/esm/lib/components/metadata-field-configurator/context/field-configurator-context.js +68 -0
  37. package/dist/esm/lib/components/metadata-field-configurator/context/field-extensions-context.js +9 -0
  38. package/dist/esm/lib/components/metadata-field-configurator/context/taxonomy-options-context.js +23 -0
  39. package/dist/esm/lib/components/metadata-field-configurator/hooks/useFieldConfiguratorBehavior.js +119 -0
  40. package/dist/esm/lib/components/metadata-field-configurator/hooks/useFieldValidation.js +68 -0
  41. package/dist/esm/lib/components/metadata-field-configurator/hooks/useTaxonomyFetch.js +27 -0
  42. package/dist/esm/lib/components/metadata-field-configurator/hooks/useTemplateFieldSchema.js +44 -0
  43. package/dist/esm/lib/components/metadata-field-configurator/index.js +11 -0
  44. package/dist/esm/lib/components/metadata-field-configurator/messages/configurator-messages.js +136 -0
  45. package/dist/esm/lib/components/metadata-field-configurator/messages/dropdown-messages.js +38 -0
  46. package/dist/esm/lib/components/metadata-field-configurator/messages/levels-chain-messages.js +18 -0
  47. package/dist/esm/lib/components/metadata-field-configurator/messages/taxonomy-messages.js +38 -0
  48. package/dist/esm/lib/components/metadata-field-configurator/metadata-field-configurator.js +154 -0
  49. package/dist/esm/lib/components/metadata-field-configurator/utils.js +53 -0
  50. package/dist/esm/lib/components/metadata-field-list/index.js +5 -0
  51. package/dist/esm/lib/components/metadata-field-list/metadata-field-list.js +279 -0
  52. package/dist/esm/lib/components/metadata-template-editor-form/metadata-template-editor-form.js +137 -0
  53. package/dist/esm/lib/components/metadata-template-editor-modal/index.js +4 -0
  54. package/dist/esm/lib/components/metadata-template-editor-modal/metadata-template-editor-modal.js +103 -0
  55. package/dist/esm/lib/hooks/useMetadataTemplateFormSchema.js +16 -0
  56. package/dist/esm/lib/hooks/useTemplateNameSchema.js +12 -0
  57. package/dist/esm/lib/index.js +14 -0
  58. package/dist/esm/lib/messages.js +118 -0
  59. package/dist/esm/lib/metadata-template-editor.js +179 -0
  60. package/dist/esm/lib/utils/constants.js +8 -0
  61. package/dist/esm/lib/utils/field-options/field-type-icon.js +34 -0
  62. package/dist/esm/lib/utils/field-options/index.js +9 -0
  63. package/dist/esm/lib/utils/field-options/messages.js +48 -0
  64. package/dist/esm/lib/utils/field-options/useFieldOptions.js +19 -0
  65. package/dist/esm/lib/utils/key-generation.js +29 -0
  66. package/dist/esm/lib/utils/template-type-conversion/convertLocalConfiguratorToTemplateField.js +78 -0
  67. package/dist/esm/lib/utils/template-type-conversion/convertTemplateFieldToLocalConfigurator.js +90 -0
  68. package/dist/esm/lib/utils/template-type-conversion/generateJSONPatchTemplateOperations.js +179 -0
  69. package/dist/esm/lib/utils/template-type-conversion/mapFieldsWithUniqueKeys.js +14 -0
  70. package/dist/i18n/bn-IN.js +108 -0
  71. package/dist/i18n/bn-IN.properties +196 -0
  72. package/dist/i18n/da-DK.js +108 -0
  73. package/dist/i18n/da-DK.properties +196 -0
  74. package/dist/i18n/de-DE.js +108 -0
  75. package/dist/i18n/de-DE.properties +196 -0
  76. package/dist/i18n/en-AU.js +108 -0
  77. package/dist/i18n/en-AU.properties +196 -0
  78. package/dist/i18n/en-CA.js +108 -0
  79. package/dist/i18n/en-CA.properties +196 -0
  80. package/dist/i18n/en-GB.js +108 -0
  81. package/dist/i18n/en-GB.properties +196 -0
  82. package/dist/i18n/en-US.js +108 -0
  83. package/dist/i18n/en-US.properties +212 -0
  84. package/dist/i18n/en-x-pseudo.js +108 -0
  85. package/dist/i18n/en-x-pseudo.properties +196 -0
  86. package/dist/i18n/es-419.js +108 -0
  87. package/dist/i18n/es-419.properties +196 -0
  88. package/dist/i18n/es-ES.js +108 -0
  89. package/dist/i18n/es-ES.properties +196 -0
  90. package/dist/i18n/fi-FI.js +108 -0
  91. package/dist/i18n/fi-FI.properties +196 -0
  92. package/dist/i18n/fr-CA.js +108 -0
  93. package/dist/i18n/fr-CA.properties +196 -0
  94. package/dist/i18n/fr-FR.js +108 -0
  95. package/dist/i18n/fr-FR.properties +196 -0
  96. package/dist/i18n/hi-IN.js +108 -0
  97. package/dist/i18n/hi-IN.properties +196 -0
  98. package/dist/i18n/it-IT.js +108 -0
  99. package/dist/i18n/it-IT.properties +196 -0
  100. package/dist/i18n/ja-JP.js +108 -0
  101. package/dist/i18n/ja-JP.properties +196 -0
  102. package/dist/i18n/json/src/lib/components/field-selector/messages.json +1 -0
  103. package/dist/i18n/json/src/lib/components/field-type-dropdown/messages.json +1 -0
  104. package/dist/i18n/json/src/lib/components/field-type-tiles/messages.json +1 -0
  105. package/dist/i18n/json/src/lib/components/metadata-field-configurator/components/confirmation-modal/messages.json +1 -0
  106. package/dist/i18n/json/src/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-selector-messages.json +1 -0
  107. package/dist/i18n/json/src/lib/components/metadata-field-configurator/messages/configurator-messages.json +1 -0
  108. package/dist/i18n/json/src/lib/components/metadata-field-configurator/messages/dropdown-messages.json +1 -0
  109. package/dist/i18n/json/src/lib/components/metadata-field-configurator/messages/levels-chain-messages.json +1 -0
  110. package/dist/i18n/json/src/lib/components/metadata-field-configurator/messages/taxonomy-messages.json +1 -0
  111. package/dist/i18n/json/src/lib/messages.json +1 -0
  112. package/dist/i18n/json/src/lib/utils/field-options/messages.json +1 -0
  113. package/dist/i18n/ko-KR.js +108 -0
  114. package/dist/i18n/ko-KR.properties +196 -0
  115. package/dist/i18n/nb-NO.js +108 -0
  116. package/dist/i18n/nb-NO.properties +196 -0
  117. package/dist/i18n/nl-NL.js +108 -0
  118. package/dist/i18n/nl-NL.properties +196 -0
  119. package/dist/i18n/pl-PL.js +108 -0
  120. package/dist/i18n/pl-PL.properties +196 -0
  121. package/dist/i18n/pt-BR.js +108 -0
  122. package/dist/i18n/pt-BR.properties +196 -0
  123. package/dist/i18n/ru-RU.js +108 -0
  124. package/dist/i18n/ru-RU.properties +196 -0
  125. package/dist/i18n/sv-SE.js +108 -0
  126. package/dist/i18n/sv-SE.properties +196 -0
  127. package/dist/i18n/tr-TR.js +108 -0
  128. package/dist/i18n/tr-TR.properties +196 -0
  129. package/dist/i18n/zh-CN.js +108 -0
  130. package/dist/i18n/zh-CN.properties +196 -0
  131. package/dist/i18n/zh-TW.js +108 -0
  132. package/dist/i18n/zh-TW.properties +196 -0
  133. package/dist/styles/chip.css +1 -0
  134. package/dist/styles/dropdown-field-configuration.css +1 -0
  135. package/dist/styles/field-context-menu.css +1 -0
  136. package/dist/styles/field-selector.css +1 -0
  137. package/dist/styles/field-type-dropdown.css +1 -0
  138. package/dist/styles/levels-chain.css +1 -0
  139. package/dist/styles/metadata-field-configurator.css +1 -0
  140. package/dist/styles/metadata-field-list.css +1 -0
  141. package/dist/styles/metadata-template-editor-form.css +1 -0
  142. package/dist/styles/metadata-template-editor-modal.css +1 -0
  143. package/dist/styles/metadata-template-editor.css +1 -0
  144. package/dist/styles/sortable-option-list.css +1 -0
  145. package/dist/styles/taxonomy-field-configuration.css +1 -0
  146. package/dist/styles/taxonomy-field-configurator-initial-state.css +1 -0
  147. package/dist/styles/taxonomy-selector.css +1 -0
  148. package/dist/types/index.d.ts +8 -0
  149. package/dist/types/lib/components/field-selector/field-selector.d.ts +16 -0
  150. package/dist/types/lib/components/field-selector/index.d.ts +1 -0
  151. package/dist/types/lib/components/field-selector/messages.d.ts +13 -0
  152. package/dist/types/lib/components/field-type-dropdown/field-type-dropdown.d.ts +15 -0
  153. package/dist/types/lib/components/field-type-dropdown/index.d.ts +2 -0
  154. package/dist/types/lib/components/field-type-dropdown/messages.d.ts +12 -0
  155. package/dist/types/lib/components/field-type-tiles/field-type-tiles.d.ts +12 -0
  156. package/dist/types/lib/components/field-type-tiles/index.d.ts +2 -0
  157. package/dist/types/lib/components/field-type-tiles/messages.d.ts +12 -0
  158. package/dist/types/lib/components/metadata-field-configurator/components/confirmation-modal/confirmation-modal.d.ts +31 -0
  159. package/dist/types/lib/components/metadata-field-configurator/components/confirmation-modal/messages.d.ts +18 -0
  160. package/dist/types/lib/components/metadata-field-configurator/components/field-action-slot/field-action-slot.d.ts +30 -0
  161. package/dist/types/lib/components/metadata-field-configurator/components/field-context-menu/field-context-menu.d.ts +23 -0
  162. package/dist/types/lib/components/metadata-field-configurator/components/field-edit-content/field-edit-content.d.ts +20 -0
  163. package/dist/types/lib/components/metadata-field-configurator/components/levels-chain/chip.d.ts +17 -0
  164. package/dist/types/lib/components/metadata-field-configurator/components/levels-chain/index.d.ts +1 -0
  165. package/dist/types/lib/components/metadata-field-configurator/components/levels-chain/levels-chain.d.ts +31 -0
  166. package/dist/types/lib/components/metadata-field-configurator/components/levels-chain/utils.d.ts +10 -0
  167. package/dist/types/lib/components/metadata-field-configurator/components/type-specific-configuration/dropdown/__mocks__/getInitialValues.d.ts +2 -0
  168. package/dist/types/lib/components/metadata-field-configurator/components/type-specific-configuration/dropdown/dropdown-default-values.d.ts +2 -0
  169. package/dist/types/lib/components/metadata-field-configurator/components/type-specific-configuration/dropdown/dropdown-field-configuration.d.ts +1 -0
  170. package/dist/types/lib/components/metadata-field-configurator/components/type-specific-configuration/dropdown/sortable-option-list.d.ts +6 -0
  171. package/dist/types/lib/components/metadata-field-configurator/components/type-specific-configuration/index.d.ts +2 -0
  172. package/dist/types/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-default-values.d.ts +2 -0
  173. package/dist/types/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-field-configuration.d.ts +1 -0
  174. package/dist/types/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-field-configurator-initial-state.d.ts +1 -0
  175. package/dist/types/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-selector-messages.d.ts +43 -0
  176. package/dist/types/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/taxonomy-selector.d.ts +12 -0
  177. package/dist/types/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/useTaxonomySelect.d.ts +5 -0
  178. package/dist/types/lib/components/metadata-field-configurator/components/type-specific-configuration/taxonomy/utils.d.ts +2 -0
  179. package/dist/types/lib/components/metadata-field-configurator/context/field-configurator-context.d.ts +57 -0
  180. package/dist/types/lib/components/metadata-field-configurator/context/field-extensions-context.d.ts +52 -0
  181. package/dist/types/lib/components/metadata-field-configurator/context/taxonomy-options-context.d.ts +21 -0
  182. package/dist/types/lib/components/metadata-field-configurator/hooks/useFieldConfiguratorBehavior.d.ts +57 -0
  183. package/dist/types/lib/components/metadata-field-configurator/hooks/useFieldValidation.d.ts +27 -0
  184. package/dist/types/lib/components/metadata-field-configurator/hooks/useTaxonomyFetch.d.ts +19 -0
  185. package/dist/types/lib/components/metadata-field-configurator/hooks/useTemplateFieldSchema.d.ts +15 -0
  186. package/dist/types/lib/components/metadata-field-configurator/index.d.ts +6 -0
  187. package/dist/types/lib/components/metadata-field-configurator/messages/configurator-messages.d.ts +164 -0
  188. package/dist/types/lib/components/metadata-field-configurator/messages/dropdown-messages.d.ts +43 -0
  189. package/dist/types/lib/components/metadata-field-configurator/messages/levels-chain-messages.d.ts +18 -0
  190. package/dist/types/lib/components/metadata-field-configurator/messages/taxonomy-messages.d.ts +43 -0
  191. package/dist/types/lib/components/metadata-field-configurator/metadata-field-configurator.d.ts +191 -0
  192. package/dist/types/lib/components/metadata-field-configurator/stories/story-fixtures.d.ts +5 -0
  193. package/dist/types/lib/components/metadata-field-configurator/utils.d.ts +24 -0
  194. package/dist/types/lib/components/metadata-field-list/index.d.ts +2 -0
  195. package/dist/types/lib/components/metadata-field-list/metadata-field-list.d.ts +109 -0
  196. package/dist/types/lib/components/metadata-template-editor-form/metadata-template-editor-form.d.ts +20 -0
  197. package/dist/types/lib/components/metadata-template-editor-modal/index.d.ts +1 -0
  198. package/dist/types/lib/components/metadata-template-editor-modal/metadata-template-editor-modal.d.ts +56 -0
  199. package/dist/types/lib/hooks/useMetadataTemplateFormSchema.d.ts +17 -0
  200. package/dist/types/lib/hooks/useTemplateNameSchema.d.ts +2 -0
  201. package/dist/types/lib/index.d.ts +7 -0
  202. package/dist/types/lib/messages.d.ts +143 -0
  203. package/dist/types/lib/metadata-template-editor.d.ts +290 -0
  204. package/dist/types/lib/types.d.ts +311 -0
  205. package/dist/types/lib/utils/constants.d.ts +9 -0
  206. package/dist/types/lib/utils/field-options/field-type-icon.d.ts +6 -0
  207. package/dist/types/lib/utils/field-options/index.d.ts +4 -0
  208. package/dist/types/lib/utils/field-options/messages.d.ts +60 -0
  209. package/dist/types/lib/utils/field-options/useFieldOptions.d.ts +34 -0
  210. package/dist/types/lib/utils/key-generation.d.ts +24 -0
  211. package/dist/types/lib/utils/template-type-conversion/convertLocalConfiguratorToTemplateField.d.ts +25 -0
  212. package/dist/types/lib/utils/template-type-conversion/convertTemplateFieldToLocalConfigurator.d.ts +8 -0
  213. package/dist/types/lib/utils/template-type-conversion/generateJSONPatchTemplateOperations.d.ts +16 -0
  214. package/dist/types/lib/utils/template-type-conversion/mapFieldsWithUniqueKeys.d.ts +8 -0
  215. package/package.json +61 -0
@@ -0,0 +1,34 @@
1
+ import { FieldType } from '../../types';
2
+ /**
3
+ * Represents the structure of a field type for displaying in the field picker.
4
+ */
5
+ export type FieldOptionType = {
6
+ /** The type of the field (e.g., "text", "number", etc.) */
7
+ type: FieldType;
8
+ /** The localized label for the field type */
9
+ label: string;
10
+ /** The localized description for the field type */
11
+ description: string;
12
+ /** The associated icon component for the field type */
13
+ Icon: (props: React.SVGProps<SVGSVGElement>) => React.JSX.Element;
14
+ };
15
+ /**
16
+ * Return type for the useFieldOptions hook.
17
+ * Note: This shared implementation does not perform taxonomy availability checks.
18
+ * Consumers that need to hide the Taxonomy type (e.g. when no taxonomies exist)
19
+ * should filter availableFieldTypes or provide their own data source.
20
+ */
21
+ export type FieldOptionTypes = {
22
+ /** Array of metadata for all available field types */
23
+ availableFieldTypes: FieldOptionType[];
24
+ };
25
+ /**
26
+ * Provides a list of available metadata field types with localized labels,
27
+ * descriptions, and icons. Both FieldTypeTiles and FieldTypeDropdown
28
+ * use this hook as their single field-type source.
29
+ *
30
+ * This shared implementation returns all field types and does not depend on
31
+ * app-specific logic (e.g. taxonomy availability). Host apps can filter the list
32
+ * or pass a custom source when integrating.
33
+ */
34
+ export declare function useFieldOptions(): FieldOptionTypes;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Generate a camelCase all alphanumeric key out of a display name. Key cannot start with a numeral
3
+ * If no key name can be created, return default key.
4
+ * @param displayName - The display name to generate the key from
5
+ * @param defaultKey - The default key to use if no valid key can be generated
6
+ * @returns The key generated from the display name
7
+ */
8
+ export declare function displayNameToKey(displayName: string, defaultKey: string): string;
9
+ /**
10
+ * Generate a unique camelCase all alphanumeric key out of a display name which is less than a max key length.
11
+ * Key generated will likely be shorter than the max key length to provide space for uniqueness token.
12
+ * Unique among existing keys.
13
+ * @param displayName - The display name to generate the key from
14
+ * @param existingKeys - The list of existing keys to ensure uniqueness
15
+ * @param defaultKey - The default key to use if no valid key can be generated
16
+ * @param maxKeyLength - The maximum allowed length for the key
17
+ * @returns A unique key generated from the display name
18
+ */
19
+ export declare const generateKey: ({ displayName, existingKeys, defaultKey, maxKeyLength, }: {
20
+ displayName: string;
21
+ existingKeys: string[];
22
+ defaultKey: string;
23
+ maxKeyLength: number;
24
+ }) => string;
@@ -0,0 +1,25 @@
1
+ import { FieldData, MetadataTemplateFieldCreateBody } from '../../types';
2
+ /**
3
+ * Extracts the selectable taxonomy levels based on the field configuration.
4
+ *
5
+ * This function determines which hierarchy levels users can select from a taxonomy
6
+ * based on the configured selection rules. It supports two modes:
7
+ * - "AllowAny": Users can select from any available level in the taxonomy
8
+ * - Specific selection: Users can only select from explicitly configured levels
9
+ *
10
+ * @param field - The field configuration data containing taxonomy settings
11
+ * @returns Array of level numbers that users can select from. Returns empty array
12
+ * if taxonomy is not found or no levels are configured.
13
+ */
14
+ export declare const resolveSelectableLevels: (field: FieldData) => number[];
15
+ /**
16
+ * Converts a FieldData type from FieldConfigurator back to a MetadataTemplateFieldCreateBody.
17
+ *
18
+ * @param field - The field from FieldConfigurator.
19
+ * @param existingKeys - The list of keys already generated to ensure uniqueness.
20
+ * @returns An object containing the converted field and the updated list of generated keys.
21
+ */
22
+ export declare const convertLocalConfiguratorToTemplateField: (field: FieldData, existingKeys?: string[]) => {
23
+ field: MetadataTemplateFieldCreateBody;
24
+ updatedKeys: string[];
25
+ };
@@ -0,0 +1,8 @@
1
+ import { ApiMetadataTemplateField, FieldData } from '../../types';
2
+ /**
3
+ * Converts a ApiMetadataTemplateField to a FieldData type required by FieldConfigurator component.
4
+ *
5
+ * @param field - The field from ApiMetadataTemplate.
6
+ * @returns The converted field as FieldData.
7
+ */
8
+ export declare const convertApiMetadataTemplateFieldToLocalConfiguratorField: (field: ApiMetadataTemplateField, isReadOnly?: boolean) => FieldData;
@@ -0,0 +1,16 @@
1
+ import { ApiMetadataTemplateFieldType, MetadataTemplateEditorFormValues, MetadataTemplatePatchItem } from '../../types';
2
+ export declare const configuratorFieldTypeToMetadataFieldTypeMap: {
3
+ readonly text: ApiMetadataTemplateFieldType.String;
4
+ readonly date: ApiMetadataTemplateFieldType.Date;
5
+ readonly number: ApiMetadataTemplateFieldType.Float;
6
+ };
7
+ /**
8
+ * Generate MetadataTemplatePatchItem array for all operations made to the template schema.
9
+ */
10
+ export declare function generateJSONPatchTemplateOperations(initialTemplate: MetadataTemplateEditorFormValues, updatedTemplate: MetadataTemplateEditorFormValues): MetadataTemplatePatchItem[];
11
+ /**
12
+ * Convenience helper that produces a single EditTemplate patch operation
13
+ * to update only the template's display name.
14
+ * Use when the caller needs to rename a template without running a full form diff.
15
+ */
16
+ export declare function generateJSONPatchTemplateOperationToUpdateTemplateName(displayName: string): MetadataTemplatePatchItem[];
@@ -0,0 +1,8 @@
1
+ import { FieldData, MetadataTemplateFieldCreateBody } from '../../types';
2
+ /**
3
+ * Maps a list of configurator fields to template fields with unique keys.
4
+ *
5
+ * @param fields - The list of configurator fields to process.
6
+ * @returns An array of template fields with unique keys.
7
+ */
8
+ export declare const mapFieldsWithUniqueKeys: (fields: FieldData[]) => MetadataTemplateFieldCreateBody[];
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@box/metadata-template-editor",
3
+ "version": "1.19.0",
4
+ "license": "SEE LICENSE IN LICENSE",
5
+ "peerDependencies": {
6
+ "@box/blueprint-web": "^14.1.0",
7
+ "@box/blueprint-web-assets": "^4.111.18",
8
+ "@dnd-kit/core": "^6.1.0",
9
+ "@dnd-kit/sortable": "^8.0.0",
10
+ "@dnd-kit/utilities": "^3.2.2",
11
+ "clsx": "^1.2.1",
12
+ "formik": "^2.0.3",
13
+ "lodash": "^4.17.15",
14
+ "react": "^18.0.0",
15
+ "react-dom": "^18.0.0",
16
+ "react-intl": "^6.4.2",
17
+ "yup": "^1.6.1"
18
+ },
19
+ "devDependencies": {
20
+ "@box/blueprint-web": "^14.1.0",
21
+ "@box/blueprint-web-assets": "^4.111.18",
22
+ "@box/eslint-plugin-blueprint": "1.1.9",
23
+ "@box/storybook-utils": "0.17.18",
24
+ "@dnd-kit/core": "^6.1.0",
25
+ "@dnd-kit/sortable": "^8.0.0",
26
+ "@dnd-kit/utilities": "^3.2.2",
27
+ "clsx": "^1.2.1",
28
+ "formik": "^2.0.3",
29
+ "lodash": "^4.17.15",
30
+ "react-intl": "^6.4.2",
31
+ "yup": "^1.6.1"
32
+ },
33
+ "publishConfig": {
34
+ "access": "public"
35
+ },
36
+ "files": [
37
+ "dist"
38
+ ],
39
+ "main": "./dist/esm/index.js",
40
+ "module": "./dist/esm/index.js",
41
+ "types": "./dist/types/index.d.ts",
42
+ "exports": {
43
+ ".": {
44
+ "require": "./dist/esm/index.js",
45
+ "import": "./dist/esm/index.js",
46
+ "types": "./dist/types/index.d.ts"
47
+ },
48
+ "./*": {
49
+ "require": "./dist/esm/*",
50
+ "import": "./dist/esm/*",
51
+ "types": "./dist/types/*"
52
+ },
53
+ "./i18n/*": {
54
+ "require": "./dist/i18n/*",
55
+ "import": "./dist/i18n/*"
56
+ }
57
+ },
58
+ "sideEffects": [
59
+ "**/*.css"
60
+ ]
61
+ }