@box/metadata-editor 0.45.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 (252) hide show
  1. package/LICENSE +379 -0
  2. package/chunks/filter-dropdown-menu.module.js +18 -0
  3. package/chunks/types.js +6 -0
  4. package/esm/index.js +33 -0
  5. package/esm/lib/components/add-metadata-template-dropdown/add-metadata-template-dropdown.js +44 -0
  6. package/esm/lib/components/add-metadata-template-dropdown/index.js +4 -0
  7. package/esm/lib/components/add-metadata-template-dropdown/messages.js +18 -0
  8. package/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-content.js +19 -0
  9. package/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-empty-state.js +20 -0
  10. package/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-item.js +20 -0
  11. package/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-list.js +22 -0
  12. package/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-root.js +19 -0
  13. package/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-search.js +44 -0
  14. package/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-trigger.js +13 -0
  15. package/esm/lib/components/filter-dropdown-menu/index.js +19 -0
  16. package/esm/lib/components/filter-dropdown-menu/messages.js +14 -0
  17. package/esm/lib/components/interactive-text/interactive-text.js +22 -0
  18. package/esm/lib/components/metadata-editor-fields/components/constants.js +6 -0
  19. package/esm/lib/components/metadata-editor-fields/components/metadata-date-field/date-conversion-utils.js +16 -0
  20. package/esm/lib/components/metadata-editor-fields/components/metadata-date-field/metadata-date-field.js +60 -0
  21. package/esm/lib/components/metadata-editor-fields/components/metadata-date-field/use-date-internationalization.js +13 -0
  22. package/esm/lib/components/metadata-editor-fields/components/metadata-enum-field/metadata-enum-field.js +55 -0
  23. package/esm/lib/components/metadata-editor-fields/components/metadata-float-field/metadata-float-field.js +47 -0
  24. package/esm/lib/components/metadata-editor-fields/components/metadata-float-field/use-float-validation.js +15 -0
  25. package/esm/lib/components/metadata-editor-fields/components/metadata-multi-select-field/metadata-multi-select-field.js +51 -0
  26. package/esm/lib/components/metadata-editor-fields/components/metadata-string-field/metadata-string-field.js +35 -0
  27. package/esm/lib/components/metadata-editor-fields/components/update-mode-field-wrapper/messages.js +30 -0
  28. package/esm/lib/components/metadata-editor-fields/components/update-mode-field-wrapper/update-mode-field-wrapper.js +90 -0
  29. package/esm/lib/components/metadata-editor-fields/editor-field-types.js +26 -0
  30. package/esm/lib/components/metadata-editor-fields/metadata-editor-fields.js +52 -0
  31. package/esm/lib/components/metadata-empty-state/messages.js +46 -0
  32. package/esm/lib/components/metadata-empty-state/metadata-empty-state.js +63 -0
  33. package/esm/lib/components/metadata-instance-editor/index.js +10 -0
  34. package/esm/lib/components/metadata-instance-editor/subcomponents/custom-instance/custom-instance.js +76 -0
  35. package/esm/lib/components/metadata-instance-editor/subcomponents/custom-instance/messages.js +18 -0
  36. package/esm/lib/components/metadata-instance-editor/subcomponents/custom-instance-new-field/custom-instance-new-field.js +58 -0
  37. package/esm/lib/components/metadata-instance-editor/subcomponents/custom-instance-new-field/messages.js +42 -0
  38. package/esm/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/delete-confirmation-modal.js +81 -0
  39. package/esm/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/messages.js +38 -0
  40. package/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/messages.js +1 -0
  41. package/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/metadata-instance-form.js +79 -0
  42. package/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/utils.js +33 -0
  43. package/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-footer/messages.js +22 -0
  44. package/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-footer/metadata-instance-form-footer.js +50 -0
  45. package/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/messages.js +18 -0
  46. package/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/metadata-instance-form-header.js +40 -0
  47. package/esm/lib/components/metadata-instance-list/index.js +8 -0
  48. package/esm/lib/components/metadata-instance-list/metadata-instance-list.js +22 -0
  49. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance/metadata-instance.js +51 -0
  50. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-content/metadata-instance-content.js +26 -0
  51. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/convertDate.js +25 -0
  52. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/metadata-instance-entry.js +56 -0
  53. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-footer/messages.js +14 -0
  54. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-footer/metadata-instance-footer.js +30 -0
  55. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/messages.js +10 -0
  56. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/metadata-instance-header.js +46 -0
  57. package/esm/lib/components/metadata-taxonomy-field/combobox-with-api-pagination.js +188 -0
  58. package/esm/lib/components/metadata-taxonomy-field/index.js +4 -0
  59. package/esm/lib/components/metadata-taxonomy-field/messages.js +34 -0
  60. package/esm/lib/components/metadata-taxonomy-field/request.js +6 -0
  61. package/esm/lib/components/metadata-taxonomy-field/single-level-taxonomy-field.js +19 -0
  62. package/esm/lib/components/metadata-taxonomy-field/use-async-list.js +124 -0
  63. package/esm/lib/components/metadata-taxonomy-field/utils/use-intersection-observer.js +87 -0
  64. package/esm/lib/components/unsaved-changes-modal/index.js +4 -0
  65. package/esm/lib/components/unsaved-changes-modal/messages.js +26 -0
  66. package/esm/lib/components/unsaved-changes-modal/unsaved-changes-modal.js +55 -0
  67. package/esm/lib/components/unsaved-changes-modal/utils.js +6 -0
  68. package/esm/lib/constants.js +4 -0
  69. package/esm/lib/defaults.js +18 -0
  70. package/esm/lib/mappers.js +28 -0
  71. package/esm/lib/messages.js +94 -0
  72. package/esm/lib/metadata-editor.js +15 -0
  73. package/esm/lib/test-utils/formik-wrapper.js +26 -0
  74. package/esm/lib/test-utils/index.js +31 -0
  75. package/esm/lib/test-utils/sample-data.js +281 -0
  76. package/esm/lib/test-utils/test-utils.js +13 -0
  77. package/i18n/bn-IN.js +88 -0
  78. package/i18n/bn-IN.properties +164 -0
  79. package/i18n/da-DK.js +88 -0
  80. package/i18n/da-DK.properties +164 -0
  81. package/i18n/de-DE.js +88 -0
  82. package/i18n/de-DE.properties +164 -0
  83. package/i18n/en-AU.js +88 -0
  84. package/i18n/en-AU.properties +164 -0
  85. package/i18n/en-CA.js +88 -0
  86. package/i18n/en-CA.properties +164 -0
  87. package/i18n/en-GB.js +88 -0
  88. package/i18n/en-GB.properties +164 -0
  89. package/i18n/en-US.js +87 -0
  90. package/i18n/en-US.properties +170 -0
  91. package/i18n/en-x-pseudo.js +88 -0
  92. package/i18n/en-x-pseudo.properties +164 -0
  93. package/i18n/es-419.js +88 -0
  94. package/i18n/es-419.properties +164 -0
  95. package/i18n/es-ES.js +88 -0
  96. package/i18n/es-ES.properties +164 -0
  97. package/i18n/fi-FI.js +88 -0
  98. package/i18n/fi-FI.properties +164 -0
  99. package/i18n/fr-CA.js +88 -0
  100. package/i18n/fr-CA.properties +164 -0
  101. package/i18n/fr-FR.js +88 -0
  102. package/i18n/fr-FR.properties +164 -0
  103. package/i18n/hi-IN.js +88 -0
  104. package/i18n/hi-IN.properties +164 -0
  105. package/i18n/it-IT.js +88 -0
  106. package/i18n/it-IT.properties +164 -0
  107. package/i18n/ja-JP.js +88 -0
  108. package/i18n/ja-JP.properties +164 -0
  109. package/i18n/json/src/lib/components/add-metadata-template-dropdown/messages.json +1 -0
  110. package/i18n/json/src/lib/components/filter-dropdown-menu/messages.json +1 -0
  111. package/i18n/json/src/lib/components/metadata-editor-fields/components/update-mode-field-wrapper/messages.json +1 -0
  112. package/i18n/json/src/lib/components/metadata-empty-state/messages.json +1 -0
  113. package/i18n/json/src/lib/components/metadata-instance-editor/subcomponents/custom-instance/messages.json +1 -0
  114. package/i18n/json/src/lib/components/metadata-instance-editor/subcomponents/custom-instance-new-field/messages.json +1 -0
  115. package/i18n/json/src/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/messages.json +1 -0
  116. package/i18n/json/src/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-footer/messages.json +1 -0
  117. package/i18n/json/src/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/messages.json +1 -0
  118. package/i18n/json/src/lib/components/metadata-instance-list/subcomponents/metadata-instance-footer/messages.json +1 -0
  119. package/i18n/json/src/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/messages.json +1 -0
  120. package/i18n/json/src/lib/components/metadata-taxonomy-field/messages.json +1 -0
  121. package/i18n/json/src/lib/components/unsaved-changes-modal/messages.json +1 -0
  122. package/i18n/json/src/lib/messages.json +1 -0
  123. package/i18n/ko-KR.js +88 -0
  124. package/i18n/ko-KR.properties +164 -0
  125. package/i18n/nb-NO.js +88 -0
  126. package/i18n/nb-NO.properties +164 -0
  127. package/i18n/nl-NL.js +88 -0
  128. package/i18n/nl-NL.properties +164 -0
  129. package/i18n/pl-PL.js +88 -0
  130. package/i18n/pl-PL.properties +164 -0
  131. package/i18n/pt-BR.js +88 -0
  132. package/i18n/pt-BR.properties +164 -0
  133. package/i18n/ru-RU.js +88 -0
  134. package/i18n/ru-RU.properties +164 -0
  135. package/i18n/sv-SE.js +88 -0
  136. package/i18n/sv-SE.properties +164 -0
  137. package/i18n/tr-TR.js +88 -0
  138. package/i18n/tr-TR.properties +164 -0
  139. package/i18n/zh-CN.js +88 -0
  140. package/i18n/zh-CN.properties +164 -0
  141. package/i18n/zh-TW.js +88 -0
  142. package/i18n/zh-TW.properties +164 -0
  143. package/package.json +55 -0
  144. package/styles/combobox-with-api-pagination.css +1 -0
  145. package/styles/custom-instance-new-field.css +1 -0
  146. package/styles/custom-instance.css +1 -0
  147. package/styles/delete-confirmation-modal.css +1 -0
  148. package/styles/filter-dropdown-menu.css +1 -0
  149. package/styles/metadata-editor-fields.css +1 -0
  150. package/styles/metadata-editor.css +0 -0
  151. package/styles/metadata-instance-content.css +1 -0
  152. package/styles/metadata-instance-entry.css +1 -0
  153. package/styles/metadata-instance-footer.css +1 -0
  154. package/styles/metadata-instance-form-footer.css +1 -0
  155. package/styles/metadata-instance-form-header.css +1 -0
  156. package/styles/metadata-instance-form.css +1 -0
  157. package/styles/metadata-instance-header.css +1 -0
  158. package/styles/metadata-instance-list.css +1 -0
  159. package/styles/metadata-instance.css +1 -0
  160. package/styles/update-mode-field-wrapper.css +1 -0
  161. package/types/index.d.ts +10 -0
  162. package/types/lib/components/add-metadata-template-dropdown/add-metadata-template-dropdown.d.ts +2 -0
  163. package/types/lib/components/add-metadata-template-dropdown/index.d.ts +2 -0
  164. package/types/lib/components/add-metadata-template-dropdown/messages.d.ts +18 -0
  165. package/types/lib/components/add-metadata-template-dropdown/types.d.ts +6 -0
  166. package/types/lib/components/filter-dropdown-menu/filter-dropdown-menu-content.d.ts +9 -0
  167. package/types/lib/components/filter-dropdown-menu/filter-dropdown-menu-empty-state.d.ts +8 -0
  168. package/types/lib/components/filter-dropdown-menu/filter-dropdown-menu-item.d.ts +9 -0
  169. package/types/lib/components/filter-dropdown-menu/filter-dropdown-menu-list.d.ts +9 -0
  170. package/types/lib/components/filter-dropdown-menu/filter-dropdown-menu-root.d.ts +9 -0
  171. package/types/lib/components/filter-dropdown-menu/filter-dropdown-menu-search.d.ts +9 -0
  172. package/types/lib/components/filter-dropdown-menu/filter-dropdown-menu-trigger.d.ts +11 -0
  173. package/types/lib/components/filter-dropdown-menu/index.d.ts +36 -0
  174. package/types/lib/components/filter-dropdown-menu/messages.d.ts +13 -0
  175. package/types/lib/components/interactive-text/interactive-text.d.ts +10 -0
  176. package/types/lib/components/metadata-editor-fields/components/constants.d.ts +3 -0
  177. package/types/lib/components/metadata-editor-fields/components/metadata-date-field/date-conversion-utils.d.ts +3 -0
  178. package/types/lib/components/metadata-editor-fields/components/metadata-date-field/metadata-date-field.d.ts +3 -0
  179. package/types/lib/components/metadata-editor-fields/components/metadata-date-field/types.d.ts +4 -0
  180. package/types/lib/components/metadata-editor-fields/components/metadata-date-field/use-date-internationalization.d.ts +6 -0
  181. package/types/lib/components/metadata-editor-fields/components/metadata-enum-field/metadata-enum-field.d.ts +3 -0
  182. package/types/lib/components/metadata-editor-fields/components/metadata-float-field/metadata-float-field.d.ts +3 -0
  183. package/types/lib/components/metadata-editor-fields/components/metadata-float-field/use-float-validation.d.ts +4 -0
  184. package/types/lib/components/metadata-editor-fields/components/metadata-multi-select-field/metadata-multi-select-field.d.ts +3 -0
  185. package/types/lib/components/metadata-editor-fields/components/metadata-string-field/metadata-string-field.d.ts +6 -0
  186. package/types/lib/components/metadata-editor-fields/components/update-mode-field-wrapper/messages.d.ts +32 -0
  187. package/types/lib/components/metadata-editor-fields/components/update-mode-field-wrapper/update-mode-field-wrapper.d.ts +12 -0
  188. package/types/lib/components/metadata-editor-fields/editor-field-types.d.ts +8 -0
  189. package/types/lib/components/metadata-editor-fields/metadata-editor-fields.d.ts +3 -0
  190. package/types/lib/components/metadata-editor-fields/types.d.ts +12 -0
  191. package/types/lib/components/metadata-empty-state/messages.d.ts +53 -0
  192. package/types/lib/components/metadata-empty-state/metadata-empty-state.d.ts +3 -0
  193. package/types/lib/components/metadata-instance-editor/index.d.ts +4 -0
  194. package/types/lib/components/metadata-instance-editor/subcomponents/custom-instance/custom-instance.d.ts +2 -0
  195. package/types/lib/components/metadata-instance-editor/subcomponents/custom-instance/messages.d.ts +18 -0
  196. package/types/lib/components/metadata-instance-editor/subcomponents/custom-instance/types.d.ts +3 -0
  197. package/types/lib/components/metadata-instance-editor/subcomponents/custom-instance-new-field/custom-instance-new-field.d.ts +2 -0
  198. package/types/lib/components/metadata-instance-editor/subcomponents/custom-instance-new-field/messages.d.ts +48 -0
  199. package/types/lib/components/metadata-instance-editor/subcomponents/custom-instance-new-field/types.d.ts +5 -0
  200. package/types/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/delete-confirmation-modal.d.ts +2 -0
  201. package/types/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/messages.d.ts +43 -0
  202. package/types/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/types.d.ts +6 -0
  203. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/messages.d.ts +0 -0
  204. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/metadata-instance-form.d.ts +2 -0
  205. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/types.d.ts +26 -0
  206. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/utils.d.ts +12 -0
  207. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-footer/messages.d.ts +23 -0
  208. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-footer/metadata-instance-form-footer.d.ts +2 -0
  209. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-footer/types.d.ts +5 -0
  210. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/messages.d.ts +18 -0
  211. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/metadata-instance-form-header.d.ts +2 -0
  212. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/types.d.ts +6 -0
  213. package/types/lib/components/metadata-instance-editor/types.d.ts +6 -0
  214. package/types/lib/components/metadata-instance-list/index.d.ts +2 -0
  215. package/types/lib/components/metadata-instance-list/metadata-instance-list.d.ts +2 -0
  216. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance/metadata-instance.d.ts +2 -0
  217. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance/types.d.ts +7 -0
  218. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-content/metadata-instance-content.d.ts +2 -0
  219. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-content/types.d.ts +5 -0
  220. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/convertDate.d.ts +30 -0
  221. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/metadata-instance-entry.d.ts +2 -0
  222. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/types.d.ts +8 -0
  223. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-footer/messages.d.ts +13 -0
  224. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-footer/metadata-instance-footer.d.ts +2 -0
  225. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-footer/types.d.ts +5 -0
  226. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/messages.d.ts +8 -0
  227. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/metadata-instance-header.d.ts +4 -0
  228. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/types.d.ts +7 -0
  229. package/types/lib/components/metadata-instance-list/types.d.ts +7 -0
  230. package/types/lib/components/metadata-taxonomy-field/combobox-with-api-pagination.d.ts +15 -0
  231. package/types/lib/components/metadata-taxonomy-field/index.d.ts +2 -0
  232. package/types/lib/components/metadata-taxonomy-field/messages.d.ts +38 -0
  233. package/types/lib/components/metadata-taxonomy-field/request.d.ts +7 -0
  234. package/types/lib/components/metadata-taxonomy-field/single-level-taxonomy-field.d.ts +5 -0
  235. package/types/lib/components/metadata-taxonomy-field/types.d.ts +41 -0
  236. package/types/lib/components/metadata-taxonomy-field/use-async-list.d.ts +63 -0
  237. package/types/lib/components/metadata-taxonomy-field/utils/use-intersection-observer.d.ts +28 -0
  238. package/types/lib/components/unsaved-changes-modal/index.d.ts +1 -0
  239. package/types/lib/components/unsaved-changes-modal/messages.d.ts +28 -0
  240. package/types/lib/components/unsaved-changes-modal/types.d.ts +19 -0
  241. package/types/lib/components/unsaved-changes-modal/unsaved-changes-modal.d.ts +2 -0
  242. package/types/lib/components/unsaved-changes-modal/utils.d.ts +1 -0
  243. package/types/lib/constants.d.ts +1 -0
  244. package/types/lib/defaults.d.ts +13 -0
  245. package/types/lib/mappers.d.ts +16 -0
  246. package/types/lib/messages.d.ts +113 -0
  247. package/types/lib/metadata-editor.d.ts +4 -0
  248. package/types/lib/test-utils/formik-wrapper.d.ts +11 -0
  249. package/types/lib/test-utils/index.d.ts +3 -0
  250. package/types/lib/test-utils/sample-data.d.ts +24 -0
  251. package/types/lib/test-utils/test-utils.d.ts +3 -0
  252. package/types/lib/types.d.ts +63 -0
@@ -0,0 +1,87 @@
1
+ import { useState as C, useRef as y, useCallback as a } from "react";
2
+ const k = "0px", p = [0];
3
+ function w() {
4
+ const o = /* @__PURE__ */ new Map();
5
+ function b({
6
+ root: c,
7
+ rootMargin: s,
8
+ threshold: u
9
+ }) {
10
+ let r = o.get(c);
11
+ r || (r = /* @__PURE__ */ new Map(), o.set(c, r));
12
+ const i = JSON.stringify({
13
+ rootMargin: s,
14
+ threshold: u
15
+ });
16
+ let e = r.get(i);
17
+ if (!e) {
18
+ const n = /* @__PURE__ */ new Map();
19
+ e = {
20
+ observer: new IntersectionObserver((R) => {
21
+ R.forEach((v) => {
22
+ const t = n.get(v.target);
23
+ t == null || t(v);
24
+ });
25
+ }, {
26
+ root: c,
27
+ rootMargin: s,
28
+ threshold: u
29
+ }),
30
+ entryCallbacks: n
31
+ }, r.set(i, e);
32
+ }
33
+ return {
34
+ observe: (n, l) => {
35
+ e == null || e.entryCallbacks.set(n, l), e == null || e.observer.observe(n);
36
+ },
37
+ unobserve: (n) => {
38
+ e == null || e.entryCallbacks.delete(n), e == null || e.observer.unobserve(n);
39
+ }
40
+ };
41
+ }
42
+ return {
43
+ getObserver: b
44
+ };
45
+ }
46
+ const M = w();
47
+ function T(o) {
48
+ const b = (o == null ? void 0 : o.rootMargin) ?? k, c = (o == null ? void 0 : o.threshold) ?? p, s = y(null), u = y(null), r = y(null), [i, e] = C(), n = a(() => {
49
+ const t = s.current;
50
+ if (!t) {
51
+ e(void 0);
52
+ return;
53
+ }
54
+ const f = M.getObserver({
55
+ root: u.current,
56
+ rootMargin: b,
57
+ threshold: c
58
+ });
59
+ f.observe(t, (E) => {
60
+ e(E);
61
+ }), r.current = f;
62
+ }, [b, c]), l = a(() => {
63
+ const t = r.current, f = s.current;
64
+ f && (t == null || t.unobserve(f)), r.current = null;
65
+ }, []), R = a((t) => {
66
+ l(), s.current = t, n();
67
+ }, [n, l]), v = a((t) => {
68
+ l(), u.current = t, n();
69
+ }, [n, l]);
70
+ return [R, {
71
+ entry: i,
72
+ rootRef: v
73
+ }];
74
+ }
75
+ function V(o) {
76
+ var i;
77
+ const [b, c] = T(o), s = !!((i = c.entry) != null && i.isIntersecting), [u, r] = C(s);
78
+ return s && !u && r(!0), [b, {
79
+ ...c,
80
+ isVisible: s,
81
+ wasEverVisible: u
82
+ }];
83
+ }
84
+ export {
85
+ w as createObserverCache,
86
+ V as useTrackVisibility
87
+ };
@@ -0,0 +1,4 @@
1
+ import { UnsavedChangesModal as o } from "./unsaved-changes-modal.js";
2
+ export {
3
+ o as UnsavedChangesModal
4
+ };
@@ -0,0 +1,26 @@
1
+ import { defineMessages as a } from "react-intl";
2
+ const d = a({
3
+ unsavedChangesModalHeader: {
4
+ id: "metadataEditor.unsavedChangesModal.header",
5
+ defaultMessage: "Unsaved Changes"
6
+ },
7
+ unsavedChangesModalBody: {
8
+ id: "metadataEditor.unsavedChangesModal.body",
9
+ defaultMessage: "Metadata template(s) have unsaved changes. How would you like to proceed?"
10
+ },
11
+ unsavedChangesModalDismissCTA: {
12
+ id: "metadataEditor.unsavedChangesModal.dismissCTA",
13
+ defaultMessage: "Cancel"
14
+ },
15
+ unsavedChangesModalSaveAndContinueCTA: {
16
+ id: "metadataEditor.unsavedChangesModal.saveAndContinueCTA",
17
+ defaultMessage: "Save and Continue"
18
+ },
19
+ unsavedChangesModalCloseLabel: {
20
+ id: "metadataEditor.unsavedChangesModal.closeLabel",
21
+ defaultMessage: "Close"
22
+ }
23
+ });
24
+ export {
25
+ d as default
26
+ };
@@ -0,0 +1,55 @@
1
+ import { Modal as e } from "@box/blueprint-web";
2
+ import { useState as y, useEffect as b, useCallback as c } from "react";
3
+ import { useIntl as p, FormattedMessage as g } from "react-intl";
4
+ import r from "./messages.js";
5
+ import { jsx as a, jsxs as s } from "react/jsx-runtime";
6
+ function x({
7
+ onSaveAndContinue: t,
8
+ onDismiss: l,
9
+ defaultOpen: f = !0,
10
+ open: d = f
11
+ }) {
12
+ const n = p(), [C, o] = y(d);
13
+ b(() => o(d), [d]);
14
+ const u = c((h) => {
15
+ o(h), h || l == null || l();
16
+ }, [l]), M = c(async () => {
17
+ await (t == null ? void 0 : t()), o(!1);
18
+ }, [t]), m = c(() => {
19
+ l == null || l(), o(!1);
20
+ }, [l]);
21
+ return /* @__PURE__ */ a(e, {
22
+ modal: !0,
23
+ onOpenChange: u,
24
+ open: C,
25
+ children: /* @__PURE__ */ s(e.Content, {
26
+ size: "small",
27
+ children: [/* @__PURE__ */ a(e.Header, {
28
+ children: /* @__PURE__ */ a(g, {
29
+ ...r.unsavedChangesModalHeader
30
+ })
31
+ }), /* @__PURE__ */ a(e.ScrollableContainer, {
32
+ children: /* @__PURE__ */ a(e.Body, {
33
+ children: /* @__PURE__ */ a(g, {
34
+ ...r.unsavedChangesModalBody
35
+ })
36
+ })
37
+ }), /* @__PURE__ */ s(e.Footer, {
38
+ children: [/* @__PURE__ */ a(e.Footer.SecondaryButton, {
39
+ onClick: m,
40
+ size: "large",
41
+ children: n.formatMessage(r.unsavedChangesModalDismissCTA)
42
+ }), /* @__PURE__ */ a(e.Footer.PrimaryButton, {
43
+ onClick: M,
44
+ size: "large",
45
+ children: n.formatMessage(r.unsavedChangesModalSaveAndContinueCTA)
46
+ })]
47
+ }), /* @__PURE__ */ a(e.Close, {
48
+ "aria-label": n.formatMessage(r.unsavedChangesModalCloseLabel)
49
+ })]
50
+ })
51
+ });
52
+ }
53
+ export {
54
+ x as UnsavedChangesModal
55
+ };
@@ -0,0 +1,6 @@
1
+ async function a(e) {
2
+ await new Promise((t) => setTimeout(t, e));
3
+ }
4
+ export {
5
+ a as delay
6
+ };
@@ -0,0 +1,4 @@
1
+ const E = "properties";
2
+ export {
3
+ E as TEMPLATE_CUSTOM_PROPERTIES
4
+ };
@@ -0,0 +1,18 @@
1
+ const e = {
2
+ scope: "",
3
+ templateKey: "",
4
+ type: "",
5
+ id: "",
6
+ hidden: !1,
7
+ fields: []
8
+ }, t = {
9
+ string: "",
10
+ enum: "",
11
+ multiSelect: [],
12
+ float: "",
13
+ date: ""
14
+ };
15
+ export {
16
+ e as defaultInitialValues,
17
+ t as defaultMetadataValueMap
18
+ };
@@ -0,0 +1,28 @@
1
+ import { defaultMetadataValueMap as p } from "./defaults.js";
2
+ import { U as i } from "../../chunks/types.js";
3
+ const m = (e, a = !1) => ({
4
+ scope: e.scope,
5
+ templateKey: e.templateKey,
6
+ type: e.type,
7
+ id: e.id,
8
+ hidden: e.hidden,
9
+ fields: e.fields.map((d) => {
10
+ const {
11
+ type: o,
12
+ value: s = p[o]
13
+ } = d;
14
+ return d.value = s, a && (d.updateMode = {
15
+ mode: i.ClearAndReplace,
16
+ value: p[o]
17
+ }), d;
18
+ })
19
+ }), t = (e) => e.map((a) => ({
20
+ displayName: a.displayName,
21
+ id: a.id,
22
+ scope: a.scope,
23
+ hidden: a.hidden
24
+ }));
25
+ export {
26
+ m as mapDataFromTemplate,
27
+ t as mapTemplateOptionsFromTemplates
28
+ };
@@ -0,0 +1,94 @@
1
+ import { defineMessages as e } from "react-intl";
2
+ const t = e({
3
+ afterDateValidationError: {
4
+ id: "groupSharedFeatures.metadataEditor.metadataEditorFields.afterDateValidationError",
5
+ defaultMessage: "Enter a date after {date}"
6
+ },
7
+ beforeDateValidationError: {
8
+ id: "groupSharedFeatures.metadataEditor.metadataEditorFields.beforeDateValidationError",
9
+ defaultMessage: "Enter a date before {date}"
10
+ },
11
+ clearSelectedDate: {
12
+ id: "groupSharedFeatures.metadataEditor.metadataEditorFields.clearSelectedDate",
13
+ defaultMessage: "Clear selected date"
14
+ },
15
+ floatFieldInvalidValue: {
16
+ id: "groupSharedFeatures.metadataEditor.metadataEditorFields.floatFieldInvalidValue",
17
+ defaultMessage: "Invalid field value"
18
+ },
19
+ loading: {
20
+ id: "groupSharedFeatures.metadataEditor.loading",
21
+ defaultMessage: "loading"
22
+ },
23
+ multiselectPlaceholder: {
24
+ id: "groupSharedFeatures.metadataEditor.metadataEditorFields.multiselectPlaceholder",
25
+ defaultMessage: "Select value(s)"
26
+ },
27
+ noTemplateAtributesError: {
28
+ id: "groupSharedFeatures.metadataEditor.metadataEditorFields.noTemplateAtributesError",
29
+ defaultMessage: "There are no attributes in this template."
30
+ },
31
+ openCalendar: {
32
+ id: "groupSharedFeatures.metadataEditor.metadataEditorFields.openCalendarLabel",
33
+ defaultMessage: "Open calendar to pick a date"
34
+ },
35
+ selectDate: {
36
+ id: "groupSharedFeatures.metadataEditor.metadataEditorFields.selectDate",
37
+ defaultMessage: "Select the date"
38
+ },
39
+ selectTemplate: {
40
+ id: "groupSharedFeatures.metadataEditor.metadataTemplateSelector.selectTemplate",
41
+ defaultMessage: "Select a Template"
42
+ },
43
+ selectTemplateError: {
44
+ id: "groupSharedFeatures.metadataEditor.metadataTemplateSelector.selectTemplateError",
45
+ defaultMessage: "Could not load templates. Try again later"
46
+ },
47
+ selectValuePlaceholder: {
48
+ id: "groupSharedFeatures.metadataEditor.metadataEditorFields.selectValuePlaceholder",
49
+ defaultMessage: "Select a value"
50
+ },
51
+ setValuePlaceholder: {
52
+ id: "groupSharedFeatures.metadataEditor.metadataEditorFields.setValuePlaceholder",
53
+ defaultMessage: "Set Value"
54
+ },
55
+ switchToNextMonth: {
56
+ id: "groupSharedFeatures.metadataEditor.metadataEditorFields.switchToNextMonth",
57
+ defaultMessage: "Switch to next month"
58
+ },
59
+ switchToPreviousMonth: {
60
+ id: "groupSharedFeatures.metadataEditor.metadataEditorFields.switchToPreviousMonth",
61
+ defaultMessage: "Switch to previous month"
62
+ },
63
+ templateSelectorModalHeader: {
64
+ id: "groupSharedFeatures.metadataEditor.metadataTemplateSelector.header",
65
+ defaultMessage: "Select Metadata Template"
66
+ },
67
+ templateSelectorSearchInputPlaceholder: {
68
+ id: "groupSharedFeatures.metadataEditor.metadataTemplateSelector.searchInputPlaceholder",
69
+ defaultMessage: "Search all templates"
70
+ },
71
+ templateSelectorSearchInputIconAriaLabel: {
72
+ id: "groupSharedFeatures.metadataEditor.metadataTemplateSelector.searchInputIconAriaLabel",
73
+ defaultMessage: "Search all templates"
74
+ },
75
+ templateSelectorSearchInpuClearAriaLabel: {
76
+ id: "groupSharedFeatures.metadataEditor.metadataTemplateSelector.searchInputClearAriaLabel",
77
+ defaultMessage: "Clear"
78
+ },
79
+ templateSelectorCancel: {
80
+ id: "groupSharedFeatures.metadataEditor.metadataTemplateSelector.cancel",
81
+ defaultMessage: "Cancel"
82
+ },
83
+ templateSelectorAdd: {
84
+ id: "groupSharedFeatures.metadataEditor.metadataTemplateSelector.add",
85
+ defaultMessage: "Add"
86
+ },
87
+ templateSelectorClose: {
88
+ id: "groupSharedFeatures.metadataEditor.metadataTemplateSelector.close",
89
+ defaultMessage: "Close"
90
+ }
91
+ });
92
+ export {
93
+ t as default
94
+ };
@@ -0,0 +1,15 @@
1
+ import "../../styles/metadata-editor.css";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ const e = {};
4
+ function i(o) {
5
+ return /* @__PURE__ */ t("div", {
6
+ className: e.container,
7
+ children: /* @__PURE__ */ t("h1", {
8
+ children: "Welcome to MetadataEditor!"
9
+ })
10
+ });
11
+ }
12
+ export {
13
+ i as MetadataEditor,
14
+ i as default
15
+ };
@@ -0,0 +1,26 @@
1
+ import { Formik as l, Form as d } from "formik";
2
+ import { defaultInitialValues as n } from "../defaults.js";
3
+ import { mapDataFromTemplate as p } from "../mappers.js";
4
+ import { jsx as a } from "react/jsx-runtime";
5
+ const F = (e) => {
6
+ const {
7
+ children: i,
8
+ selectedMetadataTemplate: t = null,
9
+ onSubmit: o = () => {
10
+ },
11
+ withUpdateMode: r = !1
12
+ } = e, m = t ? p(t, r) : n;
13
+ return /* @__PURE__ */ a(l, {
14
+ initialValues: {
15
+ metadata: m
16
+ },
17
+ onSubmit: o,
18
+ children: /* @__PURE__ */ a(d, {
19
+ "data-testid": "formik-form",
20
+ children: i
21
+ })
22
+ });
23
+ };
24
+ export {
25
+ F as FormikWrapper
26
+ };
@@ -0,0 +1,31 @@
1
+ import { FormikWrapper as l } from "./formik-wrapper.js";
2
+ import { allFieldsTemplate as m, allFieldsTemplateInstance as p, customTemplate as s, customTemplateInstance as n, customTemplateInstanceWithAllFieldsEmpty as i, customTemplateInstanceWithoutEmptyValues as d, dateField as o, emptyCustomTemplateInstance as u, emptyTemplateInstance as c, enumField as F, fields as r, floatField as T, multiSelectField as I, noFieldsTemplate as y, noValueField as f, nonHiddenFieldsTemplate as x, stringField as W, templateInstanceWithAllFieldsEmpty as h, templateInstanceWithoutEmptyValues as E, templateInstancesList as A, templateOptions as V, templates as b } from "./sample-data.js";
3
+ import { blur as k, updateText as B, updateTextAndBlur as C } from "./test-utils.js";
4
+ export {
5
+ l as FormikWrapper,
6
+ m as allFieldsTemplate,
7
+ p as allFieldsTemplateInstance,
8
+ k as blur,
9
+ s as customTemplate,
10
+ n as customTemplateInstance,
11
+ i as customTemplateInstanceWithAllFieldsEmpty,
12
+ d as customTemplateInstanceWithoutEmptyValues,
13
+ o as dateField,
14
+ u as emptyCustomTemplateInstance,
15
+ c as emptyTemplateInstance,
16
+ F as enumField,
17
+ r as fields,
18
+ T as floatField,
19
+ I as multiSelectField,
20
+ y as noFieldsTemplate,
21
+ f as noValueField,
22
+ x as nonHiddenFieldsTemplate,
23
+ W as stringField,
24
+ h as templateInstanceWithAllFieldsEmpty,
25
+ E as templateInstanceWithoutEmptyValues,
26
+ A as templateInstancesList,
27
+ V as templateOptions,
28
+ b as templates,
29
+ B as updateText,
30
+ C as updateTextAndBlur
31
+ };
@@ -0,0 +1,281 @@
1
+ import { mapTemplateOptionsFromTemplates as f } from "../mappers.js";
2
+ const a = {
3
+ id: "1",
4
+ type: "string",
5
+ key: "signature",
6
+ hidden: !1,
7
+ displayName: "Signature"
8
+ }, i = {
9
+ id: "2",
10
+ type: "date",
11
+ key: "effectiveDate",
12
+ hidden: !1,
13
+ displayName: "Effective Date"
14
+ }, d = {
15
+ id: "3",
16
+ type: "enum",
17
+ key: "country",
18
+ hidden: !1,
19
+ displayName: "Country",
20
+ options: [{
21
+ id: "1",
22
+ key: "US"
23
+ }, {
24
+ id: "2",
25
+ key: "UK"
26
+ }]
27
+ }, s = {
28
+ id: "4",
29
+ type: "float",
30
+ key: "caseNumber",
31
+ hidden: !1,
32
+ displayName: "Number of Cases"
33
+ }, n = {
34
+ id: "5",
35
+ type: "multiSelect",
36
+ key: "orgs",
37
+ hidden: !1,
38
+ displayName: "Organizations",
39
+ options: [{
40
+ id: "Sales",
41
+ key: "Sales"
42
+ }, {
43
+ id: "Marketing",
44
+ key: "Marketing"
45
+ }, {
46
+ id: "Engineering",
47
+ key: "Engineering"
48
+ }]
49
+ }, h = {
50
+ id: "6",
51
+ type: "string",
52
+ key: "hidden",
53
+ displayName: "Hidden",
54
+ hidden: !0
55
+ }, k = {
56
+ id: "7",
57
+ type: "string",
58
+ key: "noValue",
59
+ hidden: !1,
60
+ displayName: "No value"
61
+ }, F = {
62
+ id: "1",
63
+ displayName: "All metadata fields",
64
+ scope: "enterprise_1",
65
+ templateKey: "allFields",
66
+ type: "metadata_template",
67
+ hidden: !1,
68
+ fields: [a, d, s, i, n, h, k]
69
+ }, U = {
70
+ hidden: !1,
71
+ id: "2",
72
+ displayName: "Non hidden metadata fields",
73
+ scope: "enterprise_1",
74
+ templateKey: "nonHiddenFields",
75
+ type: "metadata_template",
76
+ fields: [a, d, s, i, n]
77
+ }, g = {
78
+ id: "3",
79
+ displayName: "No metadata fields",
80
+ scope: "enterprise_3",
81
+ templateKey: "noFields",
82
+ type: "metadata_template",
83
+ fields: [],
84
+ hidden: !1
85
+ }, N = {
86
+ id: "4",
87
+ displayName: "Hidden template",
88
+ scope: "enterprise_3",
89
+ templateKey: "hiddenTemplate",
90
+ type: "metadata_template",
91
+ fields: [],
92
+ hidden: !0
93
+ }, _ = [F, g, N], W = {
94
+ id: "5",
95
+ scope: "enterprise_3",
96
+ templateKey: "properties",
97
+ type: "metadata_template",
98
+ fields: [],
99
+ hidden: !1
100
+ }, D = f(_), M = [a, d, s, i, n], l = {
101
+ id: "1",
102
+ type: "string",
103
+ key: "signature",
104
+ hidden: !1,
105
+ displayName: "Signature",
106
+ value: "Jan Kowalski"
107
+ }, p = {
108
+ id: "2",
109
+ type: "enum",
110
+ key: "country",
111
+ hidden: !1,
112
+ displayName: "Country",
113
+ options: [{
114
+ id: "1",
115
+ key: "US"
116
+ }, {
117
+ id: "2",
118
+ key: "UK"
119
+ }],
120
+ value: "US"
121
+ }, m = {
122
+ id: "3",
123
+ type: "float",
124
+ key: "caseNumber",
125
+ hidden: !1,
126
+ displayName: "Number of Cases",
127
+ value: "25"
128
+ }, o = {
129
+ id: "4",
130
+ type: "date",
131
+ key: "effectiveDate",
132
+ hidden: !1,
133
+ displayName: "Effective Date",
134
+ value: "2024-02-08T00:00:00.000Z"
135
+ }, y = {
136
+ id: "5",
137
+ type: "multiSelect",
138
+ key: "orgs",
139
+ hidden: !1,
140
+ displayName: "Organizations",
141
+ options: [{
142
+ id: "Sales",
143
+ key: "Sales"
144
+ }, {
145
+ id: "Marketing",
146
+ key: "Marketing"
147
+ }, {
148
+ id: "Engineering",
149
+ key: "Engineering"
150
+ }],
151
+ value: "Sales"
152
+ }, c = {
153
+ id: "6",
154
+ type: "string",
155
+ key: "hidden",
156
+ displayName: "Hidden",
157
+ hidden: !0,
158
+ value: "should be hidden"
159
+ }, t = {
160
+ id: "7",
161
+ type: "string",
162
+ key: "noValue",
163
+ hidden: !1,
164
+ displayName: "No value",
165
+ value: null
166
+ }, E = {
167
+ ...t,
168
+ key: "noValue1"
169
+ }, I = {
170
+ ...t,
171
+ key: "noValue2"
172
+ }, K = {
173
+ canEdit: !0,
174
+ id: "1",
175
+ displayName: "All metadata fields",
176
+ scope: "enterprise_1",
177
+ templateKey: "allFields",
178
+ type: "metadata_template",
179
+ hidden: !1,
180
+ fields: [l, p, m, o, y, c, t]
181
+ }, T = {
182
+ canEdit: !0,
183
+ id: "2",
184
+ displayName: "Without Empty Values",
185
+ scope: "enterprise_1",
186
+ templateKey: "withoutEmptyFields",
187
+ type: "metadata_template",
188
+ hidden: !1,
189
+ fields: [l, p, m, o, y, c]
190
+ }, v = {
191
+ canEdit: !0,
192
+ id: "3",
193
+ displayName: "Empty Template",
194
+ scope: "enterprise_1",
195
+ templateKey: "emptyFields",
196
+ type: "metadata_template",
197
+ hidden: !1,
198
+ fields: []
199
+ }, S = {
200
+ canEdit: !0,
201
+ id: "4",
202
+ displayName: "All Fields Empty Template",
203
+ scope: "enterprise_1",
204
+ templateKey: "emptyFields",
205
+ type: "metadata_template",
206
+ hidden: !1,
207
+ fields: [t, E, I]
208
+ }, r = {
209
+ id: "1",
210
+ type: "string",
211
+ key: "signature",
212
+ hidden: !1,
213
+ value: "Jan Kowalski"
214
+ }, u = {
215
+ id: "2",
216
+ type: "string",
217
+ key: "version number",
218
+ hidden: !1,
219
+ value: "2.1"
220
+ }, e = {
221
+ id: "3",
222
+ type: "string",
223
+ key: "empty field",
224
+ hidden: !1
225
+ }, V = {
226
+ canEdit: !0,
227
+ id: "5",
228
+ scope: "enterprise_1",
229
+ templateKey: "properties",
230
+ type: "metadata_template",
231
+ fields: [r, u, e],
232
+ hidden: !1
233
+ }, C = {
234
+ canEdit: !0,
235
+ id: "6",
236
+ scope: "enterprise_1",
237
+ templateKey: "properties",
238
+ type: "metadata_template",
239
+ fields: [r, u],
240
+ hidden: !1
241
+ }, b = {
242
+ canEdit: !0,
243
+ id: "7",
244
+ scope: "enterprise_1",
245
+ templateKey: "properties",
246
+ type: "metadata_template",
247
+ fields: [],
248
+ hidden: !1
249
+ }, A = {
250
+ canEdit: !0,
251
+ id: "8",
252
+ scope: "enterprise_1",
253
+ templateKey: "properties",
254
+ type: "metadata_template",
255
+ fields: [e, e, e],
256
+ hidden: !1
257
+ }, O = [K, T, S, v, V, C, b, A];
258
+ export {
259
+ F as allFieldsTemplate,
260
+ K as allFieldsTemplateInstance,
261
+ W as customTemplate,
262
+ V as customTemplateInstance,
263
+ A as customTemplateInstanceWithAllFieldsEmpty,
264
+ C as customTemplateInstanceWithoutEmptyValues,
265
+ i as dateField,
266
+ b as emptyCustomTemplateInstance,
267
+ v as emptyTemplateInstance,
268
+ d as enumField,
269
+ M as fields,
270
+ s as floatField,
271
+ n as multiSelectField,
272
+ g as noFieldsTemplate,
273
+ k as noValueField,
274
+ U as nonHiddenFieldsTemplate,
275
+ a as stringField,
276
+ S as templateInstanceWithAllFieldsEmpty,
277
+ T as templateInstanceWithoutEmptyValues,
278
+ O as templateInstancesList,
279
+ D as templateOptions,
280
+ _ as templates
281
+ };
@@ -0,0 +1,13 @@
1
+ import { userEvent as t } from "@storybook/test";
2
+ const i = async (a, c) => {
3
+ await t.click(a), await t.clear(a), await t.type(a, c);
4
+ }, n = async () => {
5
+ await t.click(document.body);
6
+ }, o = async (a, c) => {
7
+ await i(a, c), await n();
8
+ };
9
+ export {
10
+ n as blur,
11
+ i as updateText,
12
+ o as updateTextAndBlur
13
+ };