@dnb/eufemia 10.40.0 → 10.41.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 (255) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/cjs/components/upload/Upload.d.ts +1 -0
  3. package/cjs/components/upload/Upload.js.map +1 -1
  4. package/cjs/components/upload/UploadDocs.d.ts +3 -0
  5. package/cjs/components/upload/UploadDocs.js +58 -0
  6. package/cjs/components/upload/UploadDocs.js.map +1 -0
  7. package/cjs/components/upload/UploadDropzone.js +22 -19
  8. package/cjs/components/upload/UploadDropzone.js.map +1 -1
  9. package/cjs/components/upload/UploadInfo.js +5 -4
  10. package/cjs/components/upload/UploadInfo.js.map +1 -1
  11. package/cjs/components/upload/UploadVerify.d.ts +1 -0
  12. package/cjs/components/upload/UploadVerify.js +2 -0
  13. package/cjs/components/upload/UploadVerify.js.map +1 -1
  14. package/cjs/components/upload/types.d.ts +2 -1
  15. package/cjs/components/upload/types.js.map +1 -1
  16. package/cjs/components/upload/useUpload.js +9 -8
  17. package/cjs/components/upload/useUpload.js.map +1 -1
  18. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  19. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  20. package/cjs/extensions/forms/Field/Composition/Composition.d.ts +2 -2
  21. package/cjs/extensions/forms/Field/Composition/Composition.js.map +1 -1
  22. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
  23. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +2 -2
  24. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  25. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +4 -4
  26. package/cjs/extensions/forms/Field/Selection/Selection.js +3 -3
  27. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  28. package/cjs/extensions/forms/Field/Slider/Slider.js +2 -2
  29. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  30. package/cjs/extensions/forms/Field/String/String.js +2 -2
  31. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  32. package/cjs/extensions/forms/Field/Toggle/Toggle.js +6 -6
  33. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  34. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +5 -0
  35. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  36. package/cjs/extensions/forms/Field/Upload/Upload.d.ts +12 -0
  37. package/cjs/extensions/forms/Field/Upload/Upload.js +132 -0
  38. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -0
  39. package/cjs/extensions/forms/Field/Upload/UploadDocs.d.ts +3 -0
  40. package/cjs/extensions/forms/Field/Upload/UploadDocs.js +20 -0
  41. package/cjs/extensions/forms/Field/Upload/UploadDocs.js.map +1 -0
  42. package/cjs/extensions/forms/Field/Upload/index.d.ts +2 -0
  43. package/cjs/extensions/forms/Field/Upload/index.js +27 -0
  44. package/cjs/extensions/forms/Field/Upload/index.js.map +1 -0
  45. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  46. package/cjs/extensions/forms/Field/index.js +7 -0
  47. package/cjs/extensions/forms/Field/index.js.map +1 -1
  48. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -0
  49. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +4 -2
  50. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  51. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +5 -0
  52. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  53. package/cjs/extensions/forms/Form/Section/Section.d.ts +2 -2
  54. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  55. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +4 -0
  56. package/cjs/extensions/forms/constants/locales/en-GB.js +4 -0
  57. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  58. package/cjs/extensions/forms/constants/locales/en-US.d.ts +4 -0
  59. package/cjs/extensions/forms/constants/locales/index.d.ts +8 -0
  60. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +4 -0
  61. package/cjs/extensions/forms/constants/locales/nb-NO.js +4 -0
  62. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  63. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +3 -1
  64. package/cjs/extensions/forms/hooks/useFieldProps.js +14 -9
  65. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  66. package/cjs/extensions/forms/types.d.ts +8 -3
  67. package/cjs/extensions/forms/types.js.map +1 -1
  68. package/cjs/fragments/drawer-list/DrawerList.js +1 -1
  69. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  70. package/cjs/shared/Eufemia.d.ts +1 -1
  71. package/cjs/shared/Eufemia.js +2 -2
  72. package/cjs/shared/Eufemia.js.map +1 -1
  73. package/cjs/shared/Translation.d.ts +1 -1
  74. package/cjs/shared/Translation.js +5 -3
  75. package/cjs/shared/Translation.js.map +1 -1
  76. package/cjs/style/core/scopes.scss +1 -1
  77. package/cjs/style/dnb-ui-basis.css +1 -1
  78. package/cjs/style/dnb-ui-basis.min.css +1 -1
  79. package/cjs/style/dnb-ui-body.css +1 -1
  80. package/cjs/style/dnb-ui-body.min.css +1 -1
  81. package/cjs/style/dnb-ui-core.css +1 -1
  82. package/cjs/style/dnb-ui-core.min.css +1 -1
  83. package/components/upload/Upload.d.ts +1 -0
  84. package/components/upload/Upload.js.map +1 -1
  85. package/components/upload/UploadDocs.d.ts +3 -0
  86. package/components/upload/UploadDocs.js +50 -0
  87. package/components/upload/UploadDocs.js.map +1 -0
  88. package/components/upload/UploadDropzone.js +21 -19
  89. package/components/upload/UploadDropzone.js.map +1 -1
  90. package/components/upload/UploadInfo.js +5 -4
  91. package/components/upload/UploadInfo.js.map +1 -1
  92. package/components/upload/UploadVerify.d.ts +1 -0
  93. package/components/upload/UploadVerify.js +1 -1
  94. package/components/upload/UploadVerify.js.map +1 -1
  95. package/components/upload/types.d.ts +2 -1
  96. package/components/upload/types.js.map +1 -1
  97. package/components/upload/useUpload.js +9 -8
  98. package/components/upload/useUpload.js.map +1 -1
  99. package/es/components/upload/Upload.d.ts +1 -0
  100. package/es/components/upload/Upload.js.map +1 -1
  101. package/es/components/upload/UploadDocs.d.ts +3 -0
  102. package/es/components/upload/UploadDocs.js +50 -0
  103. package/es/components/upload/UploadDocs.js.map +1 -0
  104. package/es/components/upload/UploadDropzone.js +21 -19
  105. package/es/components/upload/UploadDropzone.js.map +1 -1
  106. package/es/components/upload/UploadInfo.js +5 -4
  107. package/es/components/upload/UploadInfo.js.map +1 -1
  108. package/es/components/upload/UploadVerify.d.ts +1 -0
  109. package/es/components/upload/UploadVerify.js +1 -1
  110. package/es/components/upload/UploadVerify.js.map +1 -1
  111. package/es/components/upload/types.d.ts +2 -1
  112. package/es/components/upload/types.js.map +1 -1
  113. package/es/components/upload/useUpload.js +9 -8
  114. package/es/components/upload/useUpload.js.map +1 -1
  115. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  116. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  117. package/es/extensions/forms/Field/Composition/Composition.d.ts +2 -2
  118. package/es/extensions/forms/Field/Composition/Composition.js.map +1 -1
  119. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
  120. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +2 -2
  121. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  122. package/es/extensions/forms/Field/Selection/Selection.d.ts +4 -4
  123. package/es/extensions/forms/Field/Selection/Selection.js +3 -3
  124. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  125. package/es/extensions/forms/Field/Slider/Slider.js +2 -2
  126. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  127. package/es/extensions/forms/Field/String/String.js +2 -2
  128. package/es/extensions/forms/Field/String/String.js.map +1 -1
  129. package/es/extensions/forms/Field/Toggle/Toggle.js +6 -6
  130. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  131. package/es/extensions/forms/Field/Toggle/ToggleDocs.js +5 -0
  132. package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  133. package/es/extensions/forms/Field/Upload/Upload.d.ts +12 -0
  134. package/es/extensions/forms/Field/Upload/Upload.js +118 -0
  135. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -0
  136. package/es/extensions/forms/Field/Upload/UploadDocs.d.ts +3 -0
  137. package/es/extensions/forms/Field/Upload/UploadDocs.js +10 -0
  138. package/es/extensions/forms/Field/Upload/UploadDocs.js.map +1 -0
  139. package/es/extensions/forms/Field/Upload/index.d.ts +2 -0
  140. package/es/extensions/forms/Field/Upload/index.js +3 -0
  141. package/es/extensions/forms/Field/Upload/index.js.map +1 -0
  142. package/es/extensions/forms/Field/index.d.ts +1 -0
  143. package/es/extensions/forms/Field/index.js +1 -0
  144. package/es/extensions/forms/Field/index.js.map +1 -1
  145. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -0
  146. package/es/extensions/forms/FieldBlock/FieldBlock.js +4 -2
  147. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  148. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +5 -0
  149. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  150. package/es/extensions/forms/Form/Section/Section.d.ts +2 -2
  151. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  152. package/es/extensions/forms/constants/locales/en-GB.d.ts +4 -0
  153. package/es/extensions/forms/constants/locales/en-GB.js +4 -0
  154. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  155. package/es/extensions/forms/constants/locales/en-US.d.ts +4 -0
  156. package/es/extensions/forms/constants/locales/index.d.ts +8 -0
  157. package/es/extensions/forms/constants/locales/nb-NO.d.ts +4 -0
  158. package/es/extensions/forms/constants/locales/nb-NO.js +4 -0
  159. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  160. package/es/extensions/forms/hooks/useFieldProps.d.ts +3 -1
  161. package/es/extensions/forms/hooks/useFieldProps.js +14 -10
  162. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  163. package/es/extensions/forms/types.d.ts +8 -3
  164. package/es/extensions/forms/types.js.map +1 -1
  165. package/es/fragments/drawer-list/DrawerList.js +1 -1
  166. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  167. package/es/shared/Eufemia.d.ts +1 -1
  168. package/es/shared/Eufemia.js +2 -2
  169. package/es/shared/Eufemia.js.map +1 -1
  170. package/es/shared/Translation.d.ts +1 -1
  171. package/es/shared/Translation.js +3 -3
  172. package/es/shared/Translation.js.map +1 -1
  173. package/es/style/core/scopes.scss +1 -1
  174. package/es/style/dnb-ui-basis.css +1 -1
  175. package/es/style/dnb-ui-basis.min.css +1 -1
  176. package/es/style/dnb-ui-body.css +1 -1
  177. package/es/style/dnb-ui-body.min.css +1 -1
  178. package/es/style/dnb-ui-core.css +1 -1
  179. package/es/style/dnb-ui-core.min.css +1 -1
  180. package/esm/dnb-ui-basis.min.mjs +1 -1
  181. package/esm/dnb-ui-components.min.mjs +1 -1
  182. package/esm/dnb-ui-elements.min.mjs +1 -1
  183. package/esm/dnb-ui-extensions.min.mjs +5 -5
  184. package/esm/dnb-ui-lib.min.mjs +1 -1
  185. package/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  186. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  187. package/extensions/forms/Field/Composition/Composition.d.ts +2 -2
  188. package/extensions/forms/Field/Composition/Composition.js.map +1 -1
  189. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
  190. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +2 -2
  191. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  192. package/extensions/forms/Field/Selection/Selection.d.ts +4 -4
  193. package/extensions/forms/Field/Selection/Selection.js +3 -3
  194. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  195. package/extensions/forms/Field/Slider/Slider.js +2 -2
  196. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  197. package/extensions/forms/Field/String/String.js +2 -2
  198. package/extensions/forms/Field/String/String.js.map +1 -1
  199. package/extensions/forms/Field/Toggle/Toggle.js +6 -6
  200. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  201. package/extensions/forms/Field/Toggle/ToggleDocs.js +5 -0
  202. package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  203. package/extensions/forms/Field/Upload/Upload.d.ts +12 -0
  204. package/extensions/forms/Field/Upload/Upload.js +120 -0
  205. package/extensions/forms/Field/Upload/Upload.js.map +1 -0
  206. package/extensions/forms/Field/Upload/UploadDocs.d.ts +3 -0
  207. package/extensions/forms/Field/Upload/UploadDocs.js +10 -0
  208. package/extensions/forms/Field/Upload/UploadDocs.js.map +1 -0
  209. package/extensions/forms/Field/Upload/index.d.ts +2 -0
  210. package/extensions/forms/Field/Upload/index.js +3 -0
  211. package/extensions/forms/Field/Upload/index.js.map +1 -0
  212. package/extensions/forms/Field/index.d.ts +1 -0
  213. package/extensions/forms/Field/index.js +1 -0
  214. package/extensions/forms/Field/index.js.map +1 -1
  215. package/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -0
  216. package/extensions/forms/FieldBlock/FieldBlock.js +4 -2
  217. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  218. package/extensions/forms/FieldBlock/FieldBlockDocs.js +5 -0
  219. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  220. package/extensions/forms/Form/Section/Section.d.ts +2 -2
  221. package/extensions/forms/Form/Section/Section.js.map +1 -1
  222. package/extensions/forms/constants/locales/en-GB.d.ts +4 -0
  223. package/extensions/forms/constants/locales/en-GB.js +4 -0
  224. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  225. package/extensions/forms/constants/locales/en-US.d.ts +4 -0
  226. package/extensions/forms/constants/locales/index.d.ts +8 -0
  227. package/extensions/forms/constants/locales/nb-NO.d.ts +4 -0
  228. package/extensions/forms/constants/locales/nb-NO.js +4 -0
  229. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  230. package/extensions/forms/hooks/useFieldProps.d.ts +3 -1
  231. package/extensions/forms/hooks/useFieldProps.js +14 -9
  232. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  233. package/extensions/forms/types.d.ts +8 -3
  234. package/extensions/forms/types.js.map +1 -1
  235. package/fragments/drawer-list/DrawerList.js +1 -1
  236. package/fragments/drawer-list/DrawerList.js.map +1 -1
  237. package/package.json +1 -1
  238. package/shared/Eufemia.d.ts +1 -1
  239. package/shared/Eufemia.js +2 -2
  240. package/shared/Eufemia.js.map +1 -1
  241. package/shared/Translation.d.ts +1 -1
  242. package/shared/Translation.js +3 -3
  243. package/shared/Translation.js.map +1 -1
  244. package/style/core/scopes.scss +1 -1
  245. package/style/dnb-ui-basis.css +1 -1
  246. package/style/dnb-ui-basis.min.css +1 -1
  247. package/style/dnb-ui-body.css +1 -1
  248. package/style/dnb-ui-body.min.css +1 -1
  249. package/style/dnb-ui-core.css +1 -1
  250. package/style/dnb-ui-core.min.css +1 -1
  251. package/umd/dnb-ui-basis.min.js +1 -1
  252. package/umd/dnb-ui-components.min.js +1 -1
  253. package/umd/dnb-ui-elements.min.js +1 -1
  254. package/umd/dnb-ui-extensions.min.js +5 -5
  255. package/umd/dnb-ui-lib.min.js +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,35 @@
3
3
  All notable changes to @dnb/eufemia will be documented in this file. See
4
4
  [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [10.41.0](https://github.com/dnbexperience/eufemia/compare/v10.40.1...v10.41.0) (2024-07-23)
7
+
8
+
9
+ ### :memo: Documentation
10
+
11
+ * **Blocks:** correct import paths ChildrenWithAge ([#3769](https://github.com/dnbexperience/eufemia/issues/3769)) ([43ffe16](https://github.com/dnbexperience/eufemia/commit/43ffe161223b9dcbe73123289970380d88666e42))
12
+ * **Field.Email:** fix link to input docs ([#3770](https://github.com/dnbexperience/eufemia/issues/3770)) ([75bb560](https://github.com/dnbexperience/eufemia/commit/75bb56000d70d9b560fe0d73e9c2ffefbd4936e1))
13
+
14
+
15
+ ### :bug: Bug Fixes
16
+
17
+ * **Translation:** ensure correct jsx type support ([c70cbeb](https://github.com/dnbexperience/eufemia/commit/c70cbeba75b92a145baaf57add4928890c4eb955))
18
+
19
+
20
+ ### :sparkles: Features
21
+
22
+ * **Field.Selection:** allow all props for dropdown and autocomplete ([#3776](https://github.com/dnbexperience/eufemia/issues/3776)) ([951c67d](https://github.com/dnbexperience/eufemia/commit/951c67df6522e201d9df4582d2ae56685c5e3711))
23
+ * **FieldBlock:** add `labelSrOnly` prop ([ebf50c6](https://github.com/dnbexperience/eufemia/commit/ebf50c63d21dc9c10f689764beb92a6422b30571))
24
+ * **Field:** changed field help button types to ReactNode ([#3777](https://github.com/dnbexperience/eufemia/issues/3777)) ([6506934](https://github.com/dnbexperience/eufemia/commit/6506934a332eed1ce9e80a4197014bc07ffbeecc))
25
+ * **forms:** add Upload field ([048bfc7](https://github.com/dnbexperience/eufemia/commit/048bfc70c1ffcf3e887b79bf6a45ea157e783616))
26
+ * **forms:** add Upload field ([#3742](https://github.com/dnbexperience/eufemia/issues/3742)) ([4ea8933](https://github.com/dnbexperience/eufemia/commit/4ea89334326d1246a3e4aaa2d436cc26b57a6810))
27
+
28
+ ## [10.40.1](https://github.com/dnbexperience/eufemia/compare/v10.40.0...v10.40.1) (2024-07-09)
29
+
30
+
31
+ ### :bug: Bug Fixes
32
+
33
+ * **Dropdown:** NVDA navigation issue when no items are selected ([#3766](https://github.com/dnbexperience/eufemia/issues/3766)) ([6dd4a9f](https://github.com/dnbexperience/eufemia/commit/6dd4a9fefb4c8bcdde583e25b0b91e194a7bcce4))
34
+
6
35
  ## [10.40.0](https://github.com/dnbexperience/eufemia/compare/v10.39.0...v10.40.0) (2024-07-08)
7
36
 
8
37
 
@@ -1,6 +1,7 @@
1
1
  import useUpload from './useUpload';
2
2
  import { defaultProps } from './UploadContext';
3
3
  import type { UploadAllProps } from './types';
4
+ export type * from './types';
4
5
  export { defaultProps };
5
6
  declare const Upload: {
6
7
  (localProps: UploadAllProps): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Upload.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_SpacingHelper","_Provider","_Context","_componentHelper","_UploadFileInput2","_useUpload","_UploadDropzone","_UploadContext","_UploadVerify","_UploadFileList2","_UploadInfo2","_UploadInfo","_UploadFileInput","_UploadFileList","_excluded","_excluded2","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","Upload","localProps","context","React","useContext","Context","_context$getTranslati","getTranslation","buttonTextSingular","textSingular","translations","filesAmountLimit","buttonText","text","extendedProps","extendPropsWithContext","defaultProps","skeleton","id","className","acceptedFileTypes","fileMaxSize","onChange","onFileDelete","title","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","loadingText","errorLargeFile","errorUnsupportedFile","errorAmountLimit","deleteButton","fileListAriaLabel","props","spacingClasses","createSpacingClasses","files","setFiles","setInternalFiles","getExistingFile","useUpload","onInputUpload","useCallback","newFiles","mergedFiles","map","fileItem","file","existingFile","exists","Boolean","makeUniqueId","verifiedFiles","verifyFiles","_ref","validFiles","slice","createElement","UploadContext","Provider","classnames","_formElement","_supportsSpacingProps","_default","exports"],"sources":["../../../../src/components/upload/Upload.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport classnames from 'classnames'\n\n// Shared\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport Provider from '../../shared/Provider'\nimport Context from '../../shared/Context'\nimport {\n extendPropsWithContext,\n makeUniqueId,\n} from '../../shared/component-helper'\n\n// Internal\nimport UploadFileInput from './UploadFileInput'\nimport useUpload from './useUpload'\nimport UploadDropzone from './UploadDropzone'\nimport { UploadContext, defaultProps } from './UploadContext'\nimport { verifyFiles } from './UploadVerify'\n\nimport type { UploadFile, UploadAllProps } from './types'\nimport UploadFileList from './UploadFileList'\nimport UploadInfo from './UploadInfo'\n\nexport { defaultProps }\n\nconst Upload = (localProps: UploadAllProps) => {\n const context = React.useContext(Context)\n\n const { buttonTextSingular, textSingular, ...translations } =\n context.getTranslation(localProps).Upload\n\n if (localProps?.filesAmountLimit === 1) {\n translations.buttonText = buttonTextSingular\n translations.text = textSingular\n }\n\n const extendedProps = extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n translations,\n context.Upload\n )\n\n const {\n id,\n skeleton,\n className,\n acceptedFileTypes,\n filesAmountLimit,\n fileMaxSize,\n onChange,\n onFileDelete, // eslint-disable-line\n title, // eslint-disable-line\n text, // eslint-disable-line\n fileTypeDescription, // eslint-disable-line\n fileSizeDescription, // eslint-disable-line\n fileAmountDescription, // eslint-disable-line\n fileSizeContent, // eslint-disable-line\n buttonText, // eslint-disable-line\n loadingText, // eslint-disable-line\n errorLargeFile,\n errorUnsupportedFile,\n errorAmountLimit, // eslint-disable-line\n deleteButton, // eslint-disable-line\n fileListAriaLabel, // eslint-disable-line\n ...props\n } = extendedProps\n\n const spacingClasses = createSpacingClasses(props)\n\n const { files, setFiles, setInternalFiles, getExistingFile } =\n useUpload(id)\n\n const onInputUpload = useCallback(\n (newFiles: UploadFile[]) => {\n const mergedFiles = [\n ...files,\n ...newFiles.map((fileItem) => {\n const { file } = fileItem\n\n const existingFile = getExistingFile(file, files)\n\n fileItem.exists = Boolean(existingFile)\n fileItem.id = fileItem.exists ? existingFile.id : makeUniqueId()\n\n return fileItem\n }),\n ]\n\n const verifiedFiles = verifyFiles(\n mergedFiles.filter(({ exists }) => !exists),\n {\n fileMaxSize,\n acceptedFileTypes,\n errorUnsupportedFile,\n errorLargeFile,\n }\n )\n\n const validFiles = [...verifiedFiles].slice(0, filesAmountLimit)\n\n setFiles(validFiles)\n setInternalFiles(mergedFiles)\n\n if (typeof onChange === 'function') {\n onChange({ files: validFiles })\n }\n\n return validFiles\n },\n [\n acceptedFileTypes,\n errorLargeFile,\n errorUnsupportedFile,\n fileMaxSize,\n files,\n filesAmountLimit,\n getExistingFile,\n onChange,\n setFiles,\n setInternalFiles,\n ]\n )\n\n return (\n <UploadContext.Provider\n value={{\n ...extendedProps,\n id,\n onInputUpload,\n }}\n >\n <Provider skeleton={skeleton}>\n <UploadDropzone\n className={classnames('dnb-upload', spacingClasses, className)}\n {...props}\n >\n <UploadInfo />\n\n <UploadFileInput />\n\n <UploadFileList />\n </UploadDropzone>\n </Provider>\n </UploadContext.Provider>\n )\n}\n\nUpload.useUpload = useUpload\n\nUpload._formElement = true\nUpload._supportsSpacingProps = true\n\nexport default Upload\n"],"mappings":"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"}
1
+ {"version":3,"file":"Upload.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_SpacingHelper","_Provider","_Context","_componentHelper","_UploadFileInput2","_useUpload","_UploadDropzone","_UploadContext","_UploadVerify","_UploadFileList2","_UploadInfo2","_UploadInfo","_UploadFileInput","_UploadFileList","_excluded","_excluded2","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","Upload","localProps","context","React","useContext","Context","_context$getTranslati","getTranslation","buttonTextSingular","textSingular","translations","filesAmountLimit","buttonText","text","extendedProps","extendPropsWithContext","defaultProps","skeleton","id","className","acceptedFileTypes","fileMaxSize","onChange","onFileDelete","title","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","loadingText","errorLargeFile","errorUnsupportedFile","errorAmountLimit","deleteButton","fileListAriaLabel","props","spacingClasses","createSpacingClasses","files","setFiles","setInternalFiles","getExistingFile","useUpload","onInputUpload","useCallback","newFiles","mergedFiles","map","fileItem","file","existingFile","exists","Boolean","makeUniqueId","verifiedFiles","verifyFiles","_ref","validFiles","slice","createElement","UploadContext","Provider","classnames","_formElement","_supportsSpacingProps","_default","exports"],"sources":["../../../../src/components/upload/Upload.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport classnames from 'classnames'\n\n// Shared\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport Provider from '../../shared/Provider'\nimport Context from '../../shared/Context'\nimport {\n extendPropsWithContext,\n makeUniqueId,\n} from '../../shared/component-helper'\n\n// Internal\nimport UploadFileInput from './UploadFileInput'\nimport useUpload from './useUpload'\nimport UploadDropzone from './UploadDropzone'\nimport { UploadContext, defaultProps } from './UploadContext'\nimport { verifyFiles } from './UploadVerify'\n\nimport type { UploadFile, UploadAllProps } from './types'\nimport UploadFileList from './UploadFileList'\nimport UploadInfo from './UploadInfo'\n\nexport type * from './types'\nexport { defaultProps }\n\nconst Upload = (localProps: UploadAllProps) => {\n const context = React.useContext(Context)\n\n const { buttonTextSingular, textSingular, ...translations } =\n context.getTranslation(localProps).Upload\n\n if (localProps?.filesAmountLimit === 1) {\n translations.buttonText = buttonTextSingular\n translations.text = textSingular\n }\n\n const extendedProps = extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n translations,\n context.Upload\n )\n\n const {\n id,\n skeleton,\n className,\n acceptedFileTypes,\n filesAmountLimit,\n fileMaxSize,\n onChange,\n onFileDelete, // eslint-disable-line\n title, // eslint-disable-line\n text, // eslint-disable-line\n fileTypeDescription, // eslint-disable-line\n fileSizeDescription, // eslint-disable-line\n fileAmountDescription, // eslint-disable-line\n fileSizeContent, // eslint-disable-line\n buttonText, // eslint-disable-line\n loadingText, // eslint-disable-line\n errorLargeFile,\n errorUnsupportedFile,\n errorAmountLimit, // eslint-disable-line\n deleteButton, // eslint-disable-line\n fileListAriaLabel, // eslint-disable-line\n ...props\n } = extendedProps\n\n const spacingClasses = createSpacingClasses(props)\n\n const { files, setFiles, setInternalFiles, getExistingFile } =\n useUpload(id)\n\n const onInputUpload = useCallback(\n (newFiles: UploadFile[]) => {\n const mergedFiles = [\n ...files,\n ...newFiles.map((fileItem) => {\n const { file } = fileItem\n\n const existingFile = getExistingFile(file, files)\n\n fileItem.exists = Boolean(existingFile)\n fileItem.id = fileItem.exists ? existingFile.id : makeUniqueId()\n\n return fileItem\n }),\n ]\n\n const verifiedFiles = verifyFiles(\n mergedFiles.filter(({ exists }) => !exists),\n {\n fileMaxSize,\n acceptedFileTypes,\n errorUnsupportedFile,\n errorLargeFile,\n }\n )\n\n const validFiles = [...verifiedFiles].slice(0, filesAmountLimit)\n\n setFiles(validFiles)\n setInternalFiles(mergedFiles)\n\n if (typeof onChange === 'function') {\n onChange({ files: validFiles })\n }\n\n return validFiles\n },\n [\n acceptedFileTypes,\n errorLargeFile,\n errorUnsupportedFile,\n fileMaxSize,\n files,\n filesAmountLimit,\n getExistingFile,\n onChange,\n setFiles,\n setInternalFiles,\n ]\n )\n\n return (\n <UploadContext.Provider\n value={{\n ...extendedProps,\n id,\n onInputUpload,\n }}\n >\n <Provider skeleton={skeleton}>\n <UploadDropzone\n className={classnames('dnb-upload', spacingClasses, className)}\n {...props}\n >\n <UploadInfo />\n\n <UploadFileInput />\n\n <UploadFileList />\n </UploadDropzone>\n </Provider>\n </UploadContext.Provider>\n )\n}\n\nUpload.useUpload = useUpload\n\nUpload._formElement = true\nUpload._supportsSpacingProps = true\n\nexport default Upload\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { PropertiesTableProps } from '../../shared/types';
2
+ export declare const UploadProperties: PropertiesTableProps;
3
+ export declare const UploadEvents: PropertiesTableProps;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.UploadProperties = exports.UploadEvents = void 0;
7
+ const UploadProperties = {
8
+ acceptedFileTypes: {
9
+ doc: 'List of accepted file types.',
10
+ type: 'Array<string>',
11
+ status: 'required'
12
+ },
13
+ filesAmountLimit: {
14
+ doc: 'Defines the amount of files the user can select and upload. Defaults to 100.',
15
+ type: 'number',
16
+ status: 'optional'
17
+ },
18
+ fileMaxSize: {
19
+ doc: '`fileMaxSize` is max size of each file in MB. Defaults to 5 MB.',
20
+ type: 'number',
21
+ status: 'optional'
22
+ },
23
+ title: {
24
+ doc: 'Custom text property. Replaces the default title.',
25
+ type: 'string',
26
+ status: 'optional'
27
+ },
28
+ text: {
29
+ doc: 'Custom text property. Replaces the default text.',
30
+ type: 'string',
31
+ status: 'optional'
32
+ },
33
+ skeleton: {
34
+ doc: 'Skeleton should be applied when loading content.',
35
+ type: 'boolean',
36
+ status: 'optional'
37
+ },
38
+ '[Space](/uilib/layout/space/properties)': {
39
+ doc: 'Spacing properties like `top` or `bottom` are supported.',
40
+ type: ['string', 'object'],
41
+ status: 'optional'
42
+ }
43
+ };
44
+ exports.UploadProperties = UploadProperties;
45
+ const UploadEvents = {
46
+ onChange: {
47
+ doc: 'Will be called on `files` changes made by the user. Access the files with `{ files }` (containing each a `fileItem`).',
48
+ type: 'function',
49
+ status: 'optional'
50
+ },
51
+ onFileDelete: {
52
+ doc: 'Will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.',
53
+ type: 'function',
54
+ status: 'optional'
55
+ }
56
+ };
57
+ exports.UploadEvents = UploadEvents;
58
+ //# sourceMappingURL=UploadDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadDocs.js","names":["UploadProperties","acceptedFileTypes","doc","type","status","filesAmountLimit","fileMaxSize","title","text","skeleton","exports","UploadEvents","onChange","onFileDelete"],"sources":["../../../../src/components/upload/UploadDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const UploadProperties: PropertiesTableProps = {\n acceptedFileTypes: {\n doc: 'List of accepted file types.',\n type: 'Array<string>',\n status: 'required',\n },\n filesAmountLimit: {\n doc: 'Defines the amount of files the user can select and upload. Defaults to 100.',\n type: 'number',\n status: 'optional',\n },\n fileMaxSize: {\n doc: '`fileMaxSize` is max size of each file in MB. Defaults to 5 MB.',\n type: 'number',\n status: 'optional',\n },\n title: {\n doc: 'Custom text property. Replaces the default title.',\n type: 'string',\n status: 'optional',\n },\n text: {\n doc: 'Custom text property. Replaces the default text.',\n type: 'string',\n status: 'optional',\n },\n skeleton: {\n doc: 'Skeleton should be applied when loading content.',\n type: 'boolean',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const UploadEvents: PropertiesTableProps = {\n onChange: {\n doc: 'Will be called on `files` changes made by the user. Access the files with `{ files }` (containing each a `fileItem`).',\n type: 'function',\n status: 'optional',\n },\n onFileDelete: {\n doc: 'Will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":";;;;;;AAEO,MAAMA,gBAAsC,GAAG;EACpDC,iBAAiB,EAAE;IACjBC,GAAG,EAAE,8BAA8B;IACnCC,IAAI,EAAE,eAAe;IACrBC,MAAM,EAAE;EACV,CAAC;EACDC,gBAAgB,EAAE;IAChBH,GAAG,EAAE,8EAA8E;IACnFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,WAAW,EAAE;IACXJ,GAAG,EAAE,iEAAiE;IACtEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,KAAK,EAAE;IACLL,GAAG,EAAE,mDAAmD;IACxDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,IAAI,EAAE;IACJN,GAAG,EAAE,kDAAkD;IACvDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,QAAQ,EAAE;IACRP,GAAG,EAAE,kDAAkD;IACvDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAAAM,OAAA,CAAAV,gBAAA,GAAAA,gBAAA;AAEM,MAAMW,YAAkC,GAAG;EAChDC,QAAQ,EAAE;IACRV,GAAG,EAAE,uHAAuH;IAC5HC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDS,YAAY,EAAE;IACZX,GAAG,EAAE,mGAAmG;IACxGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC;AAAAM,OAAA,CAAAC,YAAA,GAAAA,YAAA"}
@@ -1,16 +1,19 @@
1
1
  "use strict";
2
+ "use client";
2
3
 
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.default = UploadDropzone;
7
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
8
9
  var _classnames = _interopRequireDefault(require("classnames"));
9
10
  var _HeightAnimation = _interopRequireDefault(require("../height-animation/HeightAnimation"));
10
11
  var _UploadContext = require("./UploadContext");
11
12
  var _svg;
12
13
  const _excluded = ["children", "className"];
13
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
17
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
18
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
16
19
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
@@ -21,14 +24,14 @@ function UploadDropzone(_ref) {
21
24
  } = _ref,
22
25
  rest = _objectWithoutProperties(_ref, _excluded);
23
26
  const props = rest;
24
- const context = _react.default.useContext(_UploadContext.UploadContext);
25
- const [hover, setHover] = _react.default.useState(false);
26
- const hoverTimeout = _react.default.useRef();
27
+ const context = (0, _react.useContext)(_UploadContext.UploadContext);
28
+ const [hover, setHover] = (0, _react.useState)(false);
29
+ const hoverTimeout = (0, _react.useRef)();
27
30
  const {
28
31
  onInputUpload,
29
32
  id
30
33
  } = context;
31
- const getFiles = event => {
34
+ const getFiles = (0, _react.useCallback)(event => {
32
35
  const fileData = event.dataTransfer;
33
36
  const files = [];
34
37
  Array.from(fileData.files).forEach(file => {
@@ -37,28 +40,28 @@ function UploadDropzone(_ref) {
37
40
  });
38
41
  });
39
42
  return files;
40
- };
41
- const hoverHandler = (event, state) => {
43
+ }, []);
44
+ const clearTimers = (0, _react.useCallback)(() => {
45
+ clearTimeout(hoverTimeout.current);
46
+ }, []);
47
+ const hoverHandler = (0, _react.useCallback)((event, state) => {
42
48
  event.stopPropagation();
43
49
  event.preventDefault();
44
50
  clearTimers();
45
51
  setHover(state);
46
- };
47
- const dropHandler = event => {
52
+ }, [clearTimers]);
53
+ const dropHandler = (0, _react.useCallback)(event => {
48
54
  const files = getFiles(event);
49
55
  onInputUpload(files);
50
56
  hoverHandler(event, false);
51
- };
52
- const dragEnterHandler = event => {
57
+ }, [getFiles, onInputUpload, hoverHandler]);
58
+ const dragEnterHandler = (0, _react.useCallback)(event => {
53
59
  hoverHandler(event, true);
54
- };
55
- const dragLeaveHandler = event => {
60
+ }, [hoverHandler]);
61
+ const dragLeaveHandler = (0, _react.useCallback)(event => {
56
62
  hoverHandler(event, false);
57
- };
58
- const clearTimers = () => {
59
- clearTimeout(hoverTimeout.current);
60
- };
61
- _react.default.useEffect(() => {
63
+ }, [hoverHandler]);
64
+ (0, _react.useEffect)(() => {
62
65
  const elem = document.body;
63
66
  const execute = () => {
64
67
  try {
@@ -85,7 +88,7 @@ function UploadDropzone(_ref) {
85
88
  }
86
89
  } catch (e) {}
87
90
  };
88
- }, []);
91
+ }, [clearTimers, dragEnterHandler, dragLeaveHandler, dropHandler, id]);
89
92
  return _react.default.createElement(_HeightAnimation.default, _extends({
90
93
  className: (0, _classnames.default)(className, hover && 'dnb-upload--active'),
91
94
  onDrop: dropHandler,
@@ -1 +1 @@
1
- {"version":3,"file":"UploadDropzone.js","names":["_react","_interopRequireDefault","require","_classnames","_HeightAnimation","_UploadContext","_svg","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","UploadDropzone","_ref","children","className","rest","props","context","React","useContext","UploadContext","hover","setHover","useState","hoverTimeout","useRef","onInputUpload","id","getFiles","event","fileData","dataTransfer","files","Array","from","forEach","file","push","hoverHandler","state","stopPropagation","preventDefault","clearTimers","dropHandler","dragEnterHandler","dragLeaveHandler","clearTimeout","current","useEffect","elem","document","body","execute","hasAttribute","add","addEventListener","setAttribute","e","timeoutId","setTimeout","getAttribute","remove","removeEventListener","removeAttribute","createElement","classnames","onDrop","onDragOver","onDragLeave","xmlns","fill","width","height","rx","ry","strokeWidth","strokeDashoffset","strokeDasharray"],"sources":["../../../../src/components/upload/UploadDropzone.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport { UploadContext } from './UploadContext'\nimport type { UploadAllProps, UploadFile, UploadProps } from './types'\n\nexport type UploadDragEvent = React.DragEvent | DragEvent\n\nexport default function UploadDropzone({\n children,\n className,\n ...rest\n}: Partial<UploadAllProps>) {\n const props = rest as Omit<UploadProps, 'title' | 'onChange'>\n const context = React.useContext(UploadContext)\n const [hover, setHover] = React.useState(false)\n const hoverTimeout = React.useRef<NodeJS.Timer>()\n\n const { onInputUpload, id } = context\n\n const getFiles = (event: UploadDragEvent) => {\n const fileData = event.dataTransfer\n\n const files: UploadFile[] = []\n\n Array.from(fileData.files).forEach((file) => {\n files.push({ file })\n })\n\n return files\n }\n\n const hoverHandler = (event: UploadDragEvent, state: boolean) => {\n event.stopPropagation()\n event.preventDefault()\n clearTimers()\n setHover(state)\n }\n\n const dropHandler = (event: UploadDragEvent) => {\n const files = getFiles(event)\n\n onInputUpload(files)\n hoverHandler(event, false)\n }\n\n const dragEnterHandler = (event: UploadDragEvent) => {\n hoverHandler(event, true)\n }\n\n const dragLeaveHandler = (event: UploadDragEvent) => {\n hoverHandler(event, false)\n }\n\n const clearTimers = () => {\n clearTimeout(hoverTimeout.current)\n }\n\n React.useEffect(() => {\n const elem = document.body\n const execute = () => {\n try {\n if (!elem.hasAttribute('data-upload-drop-zone')) {\n const add = elem.addEventListener\n add('drop', dropHandler)\n add('dragover', dragEnterHandler)\n add('dragleave', dragLeaveHandler)\n elem.setAttribute('data-upload-drop-zone', id)\n }\n } catch (e) {\n //\n }\n }\n const timeoutId = setTimeout(execute, 10) // Add the listeners delayed (ms) without prioritization, in case of re-renders\n\n return () => {\n clearTimers()\n clearTimeout(timeoutId)\n try {\n if (elem.getAttribute('data-upload-drop-zone') === id) {\n const remove = elem.removeEventListener\n remove('drop', dropHandler)\n remove('dragover', dragEnterHandler)\n remove('dragleave', dragLeaveHandler)\n elem.removeAttribute('data-upload-drop-zone')\n }\n } catch (e) {\n //\n }\n }\n }, [])\n\n return (\n <HeightAnimation\n className={classnames(className, hover && 'dnb-upload--active')}\n onDrop={dropHandler}\n onDragOver={dragEnterHandler}\n onDragLeave={dragLeaveHandler}\n {...props}\n >\n {children}\n\n <svg\n className=\"dnb-upload__outline\"\n aria-hidden\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n >\n <rect\n width=\"100%\"\n height=\"100%\"\n rx=\"0.5rem\"\n ry=\"0.5rem\"\n strokeWidth=\"3\"\n strokeDashoffset=\"4\"\n strokeDasharray=\"8 8\"\n />\n </svg>\n </HeightAnimation>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UploadDropzone.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_HeightAnimation","_UploadContext","_svg","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","UploadDropzone","_ref","children","className","rest","props","context","useContext","UploadContext","hover","setHover","useState","hoverTimeout","useRef","onInputUpload","id","getFiles","useCallback","event","fileData","dataTransfer","files","Array","from","forEach","file","push","clearTimers","clearTimeout","current","hoverHandler","state","stopPropagation","preventDefault","dropHandler","dragEnterHandler","dragLeaveHandler","useEffect","elem","document","body","execute","hasAttribute","add","addEventListener","setAttribute","e","timeoutId","setTimeout","getAttribute","remove","removeEventListener","removeAttribute","createElement","classnames","onDrop","onDragOver","onDragLeave","xmlns","fill","width","height","rx","ry","strokeWidth","strokeDashoffset","strokeDasharray"],"sources":["../../../../src/components/upload/UploadDropzone.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport classnames from 'classnames'\n\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport { UploadContext } from './UploadContext'\nimport type { UploadAllProps, UploadFile, UploadProps } from './types'\n\nexport type UploadDragEvent = React.DragEvent | DragEvent\n\nexport default function UploadDropzone({\n children,\n className,\n ...rest\n}: Partial<UploadAllProps>) {\n const props = rest as Omit<UploadProps, 'title' | 'onChange'>\n const context = useContext(UploadContext)\n const [hover, setHover] = useState(false)\n const hoverTimeout = useRef<NodeJS.Timer>()\n\n const { onInputUpload, id } = context\n\n const getFiles = useCallback((event: UploadDragEvent) => {\n const fileData = event.dataTransfer\n\n const files: UploadFile[] = []\n\n Array.from(fileData.files).forEach((file) => {\n files.push({ file })\n })\n\n return files\n }, [])\n\n const clearTimers = useCallback(() => {\n clearTimeout(hoverTimeout.current)\n }, [])\n\n const hoverHandler = useCallback(\n (event: UploadDragEvent, state: boolean) => {\n event.stopPropagation()\n event.preventDefault()\n clearTimers()\n setHover(state)\n },\n [clearTimers]\n )\n\n const dropHandler = useCallback(\n (event: UploadDragEvent) => {\n const files = getFiles(event)\n\n onInputUpload(files)\n hoverHandler(event, false)\n },\n [getFiles, onInputUpload, hoverHandler]\n )\n\n const dragEnterHandler = useCallback(\n (event: UploadDragEvent) => {\n hoverHandler(event, true)\n },\n [hoverHandler]\n )\n\n const dragLeaveHandler = useCallback(\n (event: UploadDragEvent) => {\n hoverHandler(event, false)\n },\n [hoverHandler]\n )\n\n useEffect(() => {\n const elem = document.body\n const execute = () => {\n try {\n if (!elem.hasAttribute('data-upload-drop-zone')) {\n const add = elem.addEventListener\n add('drop', dropHandler)\n add('dragover', dragEnterHandler)\n add('dragleave', dragLeaveHandler)\n elem.setAttribute('data-upload-drop-zone', id)\n }\n } catch (e) {\n //\n }\n }\n const timeoutId = setTimeout(execute, 10) // Add the listeners delayed (ms) without prioritization, in case of re-renders\n\n return () => {\n clearTimers()\n clearTimeout(timeoutId)\n try {\n if (elem.getAttribute('data-upload-drop-zone') === id) {\n const remove = elem.removeEventListener\n remove('drop', dropHandler)\n remove('dragover', dragEnterHandler)\n remove('dragleave', dragLeaveHandler)\n elem.removeAttribute('data-upload-drop-zone')\n }\n } catch (e) {\n //\n }\n }\n }, [clearTimers, dragEnterHandler, dragLeaveHandler, dropHandler, id])\n\n return (\n <HeightAnimation\n className={classnames(className, hover && 'dnb-upload--active')}\n onDrop={dropHandler}\n onDragOver={dragEnterHandler}\n onDragLeave={dragLeaveHandler}\n {...props}\n >\n {children}\n\n <svg\n className=\"dnb-upload__outline\"\n aria-hidden\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n >\n <rect\n width=\"100%\"\n height=\"100%\"\n rx=\"0.5rem\"\n ry=\"0.5rem\"\n strokeWidth=\"3\"\n strokeDashoffset=\"4\"\n strokeDasharray=\"8 8\"\n />\n </svg>\n </HeightAnimation>\n )\n}\n"],"mappings":"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"}
@@ -24,20 +24,21 @@ const UploadInfo = () => {
24
24
  fileAmountDescription,
25
25
  fileSizeContent,
26
26
  filesAmountLimit,
27
- fileMaxSize
27
+ fileMaxSize,
28
+ children
28
29
  } = context;
29
- const prettyfiedAcceptedFileFormats = acceptedFileTypes.join(', ').toUpperCase();
30
+ const prettifiedAcceptedFileFormats = acceptedFileTypes.join(', ').toUpperCase();
30
31
  return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_Lead.default, {
31
32
  space: "0"
32
33
  }, title), _react.default.createElement(_P.default, {
33
34
  top: "xx-small",
34
35
  className: "dnb-upload__text"
35
- }, text), _react.default.createElement(_Dl.default, {
36
+ }, text), children, _react.default.createElement(_Dl.default, {
36
37
  top: "small",
37
38
  bottom: 0,
38
39
  layout: "horizontal",
39
40
  className: "dnb-upload__condition-list"
40
- }, prettyfiedAcceptedFileFormats && _react.default.createElement(_Dl.default.Item, null, _react.default.createElement(_Dt.default, null, fileTypeDescription), _react.default.createElement(_Dd.default, null, prettyfiedAcceptedFileFormats)), _react.default.createElement(_Dl.default.Item, null, _react.default.createElement(_Dt.default, null, fileSizeDescription), _react.default.createElement(_Dd.default, null, String(fileSizeContent).replace('%size', (0, _NumberUtils.format)(fileMaxSize).toString()))), filesAmountLimit < _UploadContext.defaultProps.filesAmountLimit && _react.default.createElement(_Dl.default.Item, null, _react.default.createElement(_Dt.default, null, fileAmountDescription), _react.default.createElement(_Dd.default, null, filesAmountLimit))));
41
+ }, prettifiedAcceptedFileFormats && _react.default.createElement(_Dl.default.Item, null, _react.default.createElement(_Dt.default, null, fileTypeDescription), _react.default.createElement(_Dd.default, null, prettifiedAcceptedFileFormats)), _react.default.createElement(_Dl.default.Item, null, _react.default.createElement(_Dt.default, null, fileSizeDescription), _react.default.createElement(_Dd.default, null, String(fileSizeContent).replace('%size', (0, _NumberUtils.format)(fileMaxSize).toString()))), filesAmountLimit < _UploadContext.defaultProps.filesAmountLimit && _react.default.createElement(_Dl.default.Item, null, _react.default.createElement(_Dt.default, null, fileAmountDescription), _react.default.createElement(_Dd.default, null, filesAmountLimit))));
41
42
  };
42
43
  var _default = UploadInfo;
43
44
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"UploadInfo.js","names":["_react","_interopRequireDefault","require","_UploadContext","_Lead","_P","_Dl","_Dt","_Dd","_NumberUtils","obj","__esModule","default","UploadInfo","context","React","useContext","UploadContext","title","text","acceptedFileTypes","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","filesAmountLimit","fileMaxSize","prettyfiedAcceptedFileFormats","join","toUpperCase","createElement","Fragment","space","top","className","bottom","layout","Item","String","replace","format","toString","defaultProps","_default","exports"],"sources":["../../../../src/components/upload/UploadInfo.tsx"],"sourcesContent":["import React from 'react'\nimport { defaultProps, UploadContext } from './UploadContext'\nimport Lead from '../../elements/Lead'\nimport P from '../../elements/P'\nimport Dl from '../../elements/Dl'\nimport Dt from '../../elements/Dt'\nimport Dd from '../../elements/Dd'\nimport { format } from '../number-format/NumberUtils'\n\nconst UploadInfo = () => {\n const context = React.useContext(UploadContext)\n\n const {\n title,\n text,\n acceptedFileTypes,\n fileTypeDescription,\n fileSizeDescription,\n fileAmountDescription,\n fileSizeContent,\n filesAmountLimit,\n fileMaxSize,\n } = context\n\n const prettyfiedAcceptedFileFormats = acceptedFileTypes\n .join(', ')\n .toUpperCase()\n\n return (\n <>\n <Lead space=\"0\">{title}</Lead>\n\n <P top=\"xx-small\" className=\"dnb-upload__text\">\n {text}\n </P>\n\n <Dl\n top=\"small\"\n bottom={0}\n layout=\"horizontal\"\n className=\"dnb-upload__condition-list\"\n >\n {prettyfiedAcceptedFileFormats && (\n <Dl.Item>\n <Dt>{fileTypeDescription}</Dt>\n <Dd>{prettyfiedAcceptedFileFormats}</Dd>\n </Dl.Item>\n )}\n\n <Dl.Item>\n <Dt>{fileSizeDescription}</Dt>\n <Dd>\n {String(fileSizeContent).replace(\n '%size',\n format(fileMaxSize).toString()\n )}\n </Dd>\n </Dl.Item>\n\n {filesAmountLimit < defaultProps.filesAmountLimit && (\n <Dl.Item>\n <Dt>{fileAmountDescription}</Dt>\n <Dd>{filesAmountLimit}</Dd>\n </Dl.Item>\n )}\n </Dl>\n </>\n )\n}\n\nexport default UploadInfo\n"],"mappings":"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"}
1
+ {"version":3,"file":"UploadInfo.js","names":["_react","_interopRequireDefault","require","_UploadContext","_Lead","_P","_Dl","_Dt","_Dd","_NumberUtils","obj","__esModule","default","UploadInfo","context","React","useContext","UploadContext","title","text","acceptedFileTypes","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","filesAmountLimit","fileMaxSize","children","prettifiedAcceptedFileFormats","join","toUpperCase","createElement","Fragment","space","top","className","bottom","layout","Item","String","replace","format","toString","defaultProps","_default","exports"],"sources":["../../../../src/components/upload/UploadInfo.tsx"],"sourcesContent":["import React from 'react'\nimport { defaultProps, UploadContext } from './UploadContext'\nimport Lead from '../../elements/Lead'\nimport P from '../../elements/P'\nimport Dl from '../../elements/Dl'\nimport Dt from '../../elements/Dt'\nimport Dd from '../../elements/Dd'\nimport { format } from '../number-format/NumberUtils'\n\nconst UploadInfo = () => {\n const context = React.useContext(UploadContext)\n\n const {\n title,\n text,\n acceptedFileTypes,\n fileTypeDescription,\n fileSizeDescription,\n fileAmountDescription,\n fileSizeContent,\n filesAmountLimit,\n fileMaxSize,\n children,\n } = context\n\n const prettifiedAcceptedFileFormats = acceptedFileTypes\n .join(', ')\n .toUpperCase()\n\n return (\n <>\n <Lead space=\"0\">{title}</Lead>\n\n <P top=\"xx-small\" className=\"dnb-upload__text\">\n {text}\n </P>\n\n {children}\n\n <Dl\n top=\"small\"\n bottom={0}\n layout=\"horizontal\"\n className=\"dnb-upload__condition-list\"\n >\n {prettifiedAcceptedFileFormats && (\n <Dl.Item>\n <Dt>{fileTypeDescription}</Dt>\n <Dd>{prettifiedAcceptedFileFormats}</Dd>\n </Dl.Item>\n )}\n\n <Dl.Item>\n <Dt>{fileSizeDescription}</Dt>\n <Dd>\n {String(fileSizeContent).replace(\n '%size',\n format(fileMaxSize).toString()\n )}\n </Dd>\n </Dl.Item>\n\n {filesAmountLimit < defaultProps.filesAmountLimit && (\n <Dl.Item>\n <Dt>{fileAmountDescription}</Dt>\n <Dd>{filesAmountLimit}</Dd>\n </Dl.Item>\n )}\n </Dl>\n </>\n )\n}\n\nexport default UploadInfo\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { UploadFile, UploadContextProps, UploadAcceptedFileTypes } from './types';
2
+ export declare const BYTES_IN_A_MEGA_BYTE = 1048576;
2
3
  export declare function verifyFiles(files: UploadFile[], context: Pick<UploadContextProps, 'errorUnsupportedFile' | 'errorLargeFile' | 'acceptedFileTypes' | 'fileMaxSize'>): UploadFile[];
3
4
  export declare function getFileTypeFromExtension(file: File): string;
4
5
  export declare function getAcceptedFileTypes(acceptedFileTypes: UploadAcceptedFileTypes): string;
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.BYTES_IN_A_MEGA_BYTE = void 0;
6
7
  exports.extendWithAbbreviation = extendWithAbbreviation;
7
8
  exports.getAcceptedFileTypes = getAcceptedFileTypes;
8
9
  exports.getFileTypeFromExtension = getFileTypeFromExtension;
@@ -10,6 +11,7 @@ exports.hasPreferredMimeType = hasPreferredMimeType;
10
11
  exports.verifyFiles = verifyFiles;
11
12
  var _NumberUtils = require("../number-format/NumberUtils");
12
13
  const BYTES_IN_A_MEGA_BYTE = 1048576;
14
+ exports.BYTES_IN_A_MEGA_BYTE = BYTES_IN_A_MEGA_BYTE;
13
15
  function verifyFiles(files, context) {
14
16
  const {
15
17
  fileMaxSize,
@@ -1 +1 @@
1
- {"version":3,"file":"UploadVerify.js","names":["_NumberUtils","require","BYTES_IN_A_MEGA_BYTE","verifyFiles","files","context","fileMaxSize","acceptedFileTypes","errorLargeFile","errorUnsupportedFile","handleSize","file","size","String","replace","format","toString","handleType","length","fileType","hasPreferredMimeType","type","getFileTypeFromExtension","foundType","extendWithAbbreviation","some","includes","cleanedFiles","map","item","errorMessage","name","getAcceptedFileTypes","join","split","toLowerCase","abbreviations","arguments","undefined","jpg","list","Object","entries","forEach","_ref","abbr","t","push"],"sources":["../../../../src/components/upload/UploadVerify.tsx"],"sourcesContent":["import { format } from '../number-format/NumberUtils'\nimport {\n UploadFile,\n UploadContextProps,\n UploadAcceptedFileTypes,\n} from './types'\n\nconst BYTES_IN_A_MEGA_BYTE = 1048576\n\nexport function verifyFiles(\n files: UploadFile[],\n context: Pick<\n UploadContextProps,\n | 'errorUnsupportedFile'\n | 'errorLargeFile'\n | 'acceptedFileTypes'\n | 'fileMaxSize'\n >\n) {\n const {\n fileMaxSize,\n acceptedFileTypes,\n errorLargeFile,\n errorUnsupportedFile,\n } = context\n\n const handleSize = (file: File) => {\n return (\n // Converts from b (binary) to MB (decimal)\n file.size / BYTES_IN_A_MEGA_BYTE > fileMaxSize\n ? String(errorLargeFile).replace(\n '%size',\n format(fileMaxSize).toString()\n )\n : null\n )\n }\n\n const handleType = (file: File) => {\n if (acceptedFileTypes.length === 0) {\n return false\n }\n const fileType = hasPreferredMimeType(acceptedFileTypes, file)\n ? file.type\n : getFileTypeFromExtension(file) || file.type\n const foundType = extendWithAbbreviation(acceptedFileTypes).some(\n (type) => {\n /**\n * \"file.type\" can be e.g. \"images/png\"\n */\n return fileType.includes(type)\n }\n )\n return !foundType ? errorUnsupportedFile : null\n }\n\n const cleanedFiles = files.map((item) => {\n const { file } = item\n\n const errorMessage = handleSize(file) || handleType(file)\n\n if (errorMessage) {\n item.errorMessage = errorMessage\n }\n\n return item\n })\n\n return cleanedFiles\n}\n\nexport function getFileTypeFromExtension(file: File) {\n return (\n (file.name.includes('.') && file.name.replace(/.*\\.([^.]+)$/, '$1')) ||\n null\n )\n}\n\nexport function getAcceptedFileTypes(\n acceptedFileTypes: UploadAcceptedFileTypes\n) {\n return extendWithAbbreviation(acceptedFileTypes)\n .map((type) => (type.includes('/') ? type : `.${type}`))\n .join(',')\n}\n\nexport function hasPreferredMimeType(\n acceptedFileTypes: UploadAcceptedFileTypes,\n file: File\n) {\n return (\n file.type.split('/')[1] &&\n (!acceptedFileTypes?.length ||\n acceptedFileTypes?.some(\n (type) => type.toLowerCase() === file.type.toLowerCase()\n ))\n )\n}\n\nexport function extendWithAbbreviation(\n acceptedFileTypes: UploadAcceptedFileTypes,\n abbreviations = { jpg: 'jpeg' }\n) {\n const list = [...acceptedFileTypes]\n\n Object.entries(abbreviations).forEach(([type, abbr]) => {\n if (list.some((t) => t === type) && !list.some((t) => t === abbr)) {\n list.push(abbr)\n }\n })\n\n return list\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UploadVerify.js","names":["_NumberUtils","require","BYTES_IN_A_MEGA_BYTE","exports","verifyFiles","files","context","fileMaxSize","acceptedFileTypes","errorLargeFile","errorUnsupportedFile","handleSize","file","size","String","replace","format","toString","handleType","length","fileType","hasPreferredMimeType","type","getFileTypeFromExtension","foundType","extendWithAbbreviation","some","includes","cleanedFiles","map","item","errorMessage","name","getAcceptedFileTypes","join","split","toLowerCase","abbreviations","arguments","undefined","jpg","list","Object","entries","forEach","_ref","abbr","t","push"],"sources":["../../../../src/components/upload/UploadVerify.tsx"],"sourcesContent":["import { format } from '../number-format/NumberUtils'\nimport {\n UploadFile,\n UploadContextProps,\n UploadAcceptedFileTypes,\n} from './types'\n\nexport const BYTES_IN_A_MEGA_BYTE = 1048576\n\nexport function verifyFiles(\n files: UploadFile[],\n context: Pick<\n UploadContextProps,\n | 'errorUnsupportedFile'\n | 'errorLargeFile'\n | 'acceptedFileTypes'\n | 'fileMaxSize'\n >\n) {\n const {\n fileMaxSize,\n acceptedFileTypes,\n errorLargeFile,\n errorUnsupportedFile,\n } = context\n\n const handleSize = (file: File) => {\n return (\n // Converts from b (binary) to MB (decimal)\n file.size / BYTES_IN_A_MEGA_BYTE > fileMaxSize\n ? String(errorLargeFile).replace(\n '%size',\n format(fileMaxSize).toString()\n )\n : null\n )\n }\n\n const handleType = (file: File) => {\n if (acceptedFileTypes.length === 0) {\n return false\n }\n const fileType = hasPreferredMimeType(acceptedFileTypes, file)\n ? file.type\n : getFileTypeFromExtension(file) || file.type\n const foundType = extendWithAbbreviation(acceptedFileTypes).some(\n (type) => {\n /**\n * \"file.type\" can be e.g. \"images/png\"\n */\n return fileType.includes(type)\n }\n )\n return !foundType ? errorUnsupportedFile : null\n }\n\n const cleanedFiles = files.map((item) => {\n const { file } = item\n\n const errorMessage = handleSize(file) || handleType(file)\n\n if (errorMessage) {\n item.errorMessage = errorMessage\n }\n\n return item\n })\n\n return cleanedFiles\n}\n\nexport function getFileTypeFromExtension(file: File) {\n return (\n (file.name.includes('.') && file.name.replace(/.*\\.([^.]+)$/, '$1')) ||\n null\n )\n}\n\nexport function getAcceptedFileTypes(\n acceptedFileTypes: UploadAcceptedFileTypes\n) {\n return extendWithAbbreviation(acceptedFileTypes)\n .map((type) => (type.includes('/') ? type : `.${type}`))\n .join(',')\n}\n\nexport function hasPreferredMimeType(\n acceptedFileTypes: UploadAcceptedFileTypes,\n file: File\n) {\n return (\n file.type.split('/')[1] &&\n (!acceptedFileTypes?.length ||\n acceptedFileTypes?.some(\n (type) => type.toLowerCase() === file.type.toLowerCase()\n ))\n )\n}\n\nexport function extendWithAbbreviation(\n acceptedFileTypes: UploadAcceptedFileTypes,\n abbreviations = { jpg: 'jpeg' }\n) {\n const list = [...acceptedFileTypes]\n\n Object.entries(abbreviations).forEach(([type, abbr]) => {\n if (list.some((t) => t === type) && !list.some((t) => t === abbr)) {\n list.push(abbr)\n }\n })\n\n return list\n}\n"],"mappings":"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"}
@@ -54,8 +54,9 @@ export type UploadProps = {
54
54
  loadingText?: React.ReactNode;
55
55
  deleteButton?: React.ReactNode;
56
56
  fileListAriaLabel?: string;
57
+ children?: React.ReactNode;
57
58
  };
58
- export type UploadAllProps = UploadProps & SpacingProps & LocaleProps & Omit<React.HTMLProps<HTMLElement>, 'onChange'>;
59
+ export type UploadAllProps = UploadProps & SpacingProps & LocaleProps & Omit<React.HTMLProps<HTMLElement>, 'onChange' | 'title'>;
59
60
  export type UploadContextProps = {
60
61
  id?: string;
61
62
  onInputUpload: (files: UploadFile[]) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/upload/types.ts"],"sourcesContent":["import React from 'react'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\n\nexport type UploadAcceptedFileTypes = string[]\n\nexport type UploadProps = {\n /**\n * unique id used with the useUpload hook to manage the files\n */\n id: string\n\n /**\n * list of accepted file types.\n */\n acceptedFileTypes: UploadAcceptedFileTypes\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * Defines the amount of files the user can select and upload\n * Default: 100\n */\n filesAmountLimit?: number\n\n /**\n * fileMaxSize is max size of each file in MB\n * Default: 5 MB\n */\n fileMaxSize?: number\n\n /**\n * will be called on `files` changes made by the user. Access the files with `{ files }`.\n */\n onChange?: ({ files }: { files: UploadFile[] }) => void\n\n /**\n * will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.\n */\n onFileDelete?: ({ fileItem }: { fileItem: UploadFile }) => void\n\n /**\n * Custom text properties\n */\n title?: React.ReactNode\n text?: React.ReactNode\n fileTypeDescription?: React.ReactNode\n fileSizeDescription?: React.ReactNode\n fileAmountDescription?: React.ReactNode\n fileSizeContent?: React.ReactNode\n buttonText?: React.ReactNode\n errorLargeFile?: React.ReactNode\n errorUnsupportedFile?: React.ReactNode\n errorAmountLimit?: React.ReactNode\n loadingText?: React.ReactNode\n deleteButton?: React.ReactNode\n fileListAriaLabel?: string\n}\n\nexport type UploadAllProps = UploadProps &\n SpacingProps &\n LocaleProps &\n Omit<React.HTMLProps<HTMLElement>, 'onChange'>\n\nexport type UploadContextProps = {\n id?: string\n onInputUpload: (files: UploadFile[]) => void\n} & Partial<UploadProps>\n\nexport type UploadFile = {\n file: File\n errorMessage?: React.ReactNode\n isLoading?: boolean\n exists?: boolean\n id?: string\n}\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/upload/types.ts"],"sourcesContent":["import React from 'react'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\n\nexport type UploadAcceptedFileTypes = string[]\n\nexport type UploadProps = {\n /**\n * unique id used with the useUpload hook to manage the files\n */\n id: string\n\n /**\n * list of accepted file types.\n */\n acceptedFileTypes: UploadAcceptedFileTypes\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * Defines the amount of files the user can select and upload\n * Default: 100\n */\n filesAmountLimit?: number\n\n /**\n * fileMaxSize is max size of each file in MB\n * Default: 5 MB\n */\n fileMaxSize?: number\n\n /**\n * will be called on `files` changes made by the user. Access the files with `{ files }`.\n */\n onChange?: ({ files }: { files: UploadFile[] }) => void\n\n /**\n * will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.\n */\n onFileDelete?: ({ fileItem }: { fileItem: UploadFile }) => void\n\n /**\n * Custom text properties\n */\n title?: React.ReactNode\n text?: React.ReactNode\n fileTypeDescription?: React.ReactNode\n fileSizeDescription?: React.ReactNode\n fileAmountDescription?: React.ReactNode\n fileSizeContent?: React.ReactNode\n buttonText?: React.ReactNode\n errorLargeFile?: React.ReactNode\n errorUnsupportedFile?: React.ReactNode\n errorAmountLimit?: React.ReactNode\n loadingText?: React.ReactNode\n deleteButton?: React.ReactNode\n fileListAriaLabel?: string\n children?: React.ReactNode\n}\n\nexport type UploadAllProps = UploadProps &\n SpacingProps &\n LocaleProps &\n Omit<React.HTMLProps<HTMLElement>, 'onChange' | 'title'>\n\nexport type UploadContextProps = {\n id?: string\n onInputUpload: (files: UploadFile[]) => void\n} & Partial<UploadProps>\n\nexport type UploadFile = {\n file: File\n errorMessage?: React.ReactNode\n isLoading?: boolean\n exists?: boolean\n id?: string\n}\n"],"mappings":""}
@@ -4,25 +4,26 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _react = require("react");
7
8
  var _useSharedState = require("../../shared/helpers/useSharedState");
8
9
  function useUpload(id) {
9
10
  const {
10
11
  data,
11
12
  extend
12
13
  } = (0, _useSharedState.useSharedState)(id);
13
- const setFiles = files => {
14
+ const setFiles = (0, _react.useCallback)(files => {
14
15
  extend({
15
16
  files
16
17
  });
17
- };
18
- const setInternalFiles = internalFiles => {
18
+ }, [extend]);
19
+ const setInternalFiles = (0, _react.useCallback)(internalFiles => {
19
20
  extend({
20
21
  internalFiles
21
22
  });
22
- };
23
- const files = (data === null || data === void 0 ? void 0 : data.files) || [];
24
- const internalFiles = (data === null || data === void 0 ? void 0 : data.internalFiles) || [];
25
- const getExistingFile = function (file) {
23
+ }, [extend]);
24
+ const files = (0, _react.useMemo)(() => (data === null || data === void 0 ? void 0 : data.files) || [], [data === null || data === void 0 ? void 0 : data.files]);
25
+ const internalFiles = (0, _react.useMemo)(() => (data === null || data === void 0 ? void 0 : data.internalFiles) || [], [data === null || data === void 0 ? void 0 : data.internalFiles]);
26
+ const getExistingFile = (0, _react.useCallback)(function (file) {
26
27
  let fileItems = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : files;
27
28
  return fileItems.find(_ref => {
28
29
  let {
@@ -30,7 +31,7 @@ function useUpload(id) {
30
31
  } = _ref;
31
32
  return f.name === file.name && f.size === file.size && f.lastModified === file.lastModified;
32
33
  });
33
- };
34
+ }, [files]);
34
35
  return {
35
36
  files,
36
37
  setFiles,
@@ -1 +1 @@
1
- {"version":3,"file":"useUpload.js","names":["_useSharedState","require","useUpload","id","data","extend","useSharedState","setFiles","files","setInternalFiles","internalFiles","getExistingFile","file","fileItems","arguments","length","undefined","find","_ref","f","name","size","lastModified","_default","exports","default"],"sources":["../../../../src/components/upload/useUpload.ts"],"sourcesContent":["import { useSharedState } from '../../shared/helpers/useSharedState'\nimport type { UploadFile } from './types'\n\nexport type useUploadReturn = {\n files: UploadFile[]\n setFiles: (files: UploadFile[]) => void\n internalFiles: UploadFile[]\n setInternalFiles: (files: UploadFile[]) => void\n getExistingFile: (file: File, fileItems?: UploadFile[]) => UploadFile\n}\n\n/**\n * Use together with Upload with the same id to manage the files from outside the component.\n */\nfunction useUpload(id: string): useUploadReturn {\n const { data, extend } = useSharedState<{\n files?: UploadFile[]\n internalFiles?: UploadFile[]\n }>(id)\n\n const setFiles = (files: UploadFile[]) => {\n extend({ files })\n }\n\n const setInternalFiles = (internalFiles: UploadFile[]) => {\n extend({ internalFiles })\n }\n\n const files = data?.files || []\n const internalFiles = data?.internalFiles || []\n\n const getExistingFile = (\n file: File,\n fileItems: UploadFile[] = files\n ) => {\n return fileItems.find(({ file: f }) => {\n return (\n f.name === file.name &&\n f.size === file.size &&\n f.lastModified === file.lastModified\n )\n })\n }\n\n return {\n files,\n setFiles,\n internalFiles,\n setInternalFiles,\n getExistingFile,\n }\n}\n\nexport default useUpload\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAcA,SAASC,SAASA,CAACC,EAAU,EAAmB;EAC9C,MAAM;IAAEC,IAAI;IAAEC;EAAO,CAAC,GAAG,IAAAC,8BAAc,EAGpCH,EAAE,CAAC;EAEN,MAAMI,QAAQ,GAAIC,KAAmB,IAAK;IACxCH,MAAM,CAAC;MAAEG;IAAM,CAAC,CAAC;EACnB,CAAC;EAED,MAAMC,gBAAgB,GAAIC,aAA2B,IAAK;IACxDL,MAAM,CAAC;MAAEK;IAAc,CAAC,CAAC;EAC3B,CAAC;EAED,MAAMF,KAAK,GAAG,CAAAJ,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEI,KAAK,KAAI,EAAE;EAC/B,MAAME,aAAa,GAAG,CAAAN,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEM,aAAa,KAAI,EAAE;EAE/C,MAAMC,eAAe,GAAG,SAAAA,CACtBC,IAAU,EAEP;IAAA,IADHC,SAAuB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGN,KAAK;IAE/B,OAAOK,SAAS,CAACI,IAAI,CAACC,IAAA,IAAiB;MAAA,IAAhB;QAAEN,IAAI,EAAEO;MAAE,CAAC,GAAAD,IAAA;MAChC,OACEC,CAAC,CAACC,IAAI,KAAKR,IAAI,CAACQ,IAAI,IACpBD,CAAC,CAACE,IAAI,KAAKT,IAAI,CAACS,IAAI,IACpBF,CAAC,CAACG,YAAY,KAAKV,IAAI,CAACU,YAAY;IAExC,CAAC,CAAC;EACJ,CAAC;EAED,OAAO;IACLd,KAAK;IACLD,QAAQ;IACRG,aAAa;IACbD,gBAAgB;IAChBE;EACF,CAAC;AACH;AAAC,IAAAY,QAAA,GAEcrB,SAAS;AAAAsB,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"file":"useUpload.js","names":["_react","require","_useSharedState","useUpload","id","data","extend","useSharedState","setFiles","useCallback","files","setInternalFiles","internalFiles","useMemo","getExistingFile","file","fileItems","arguments","length","undefined","find","_ref","f","name","size","lastModified","_default","exports","default"],"sources":["../../../../src/components/upload/useUpload.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { useSharedState } from '../../shared/helpers/useSharedState'\nimport type { UploadFile } from './types'\n\nexport type useUploadReturn = {\n files: UploadFile[]\n setFiles: (files: UploadFile[]) => void\n internalFiles: UploadFile[]\n setInternalFiles: (files: UploadFile[]) => void\n getExistingFile: (file: File, fileItems?: UploadFile[]) => UploadFile\n}\n\n/**\n * Use together with Upload with the same id to manage the files from outside the component.\n */\nfunction useUpload(id: string): useUploadReturn {\n const { data, extend } = useSharedState<{\n files?: UploadFile[]\n internalFiles?: UploadFile[]\n }>(id)\n\n const setFiles = useCallback(\n (files: UploadFile[]) => {\n extend({ files })\n },\n [extend]\n )\n\n const setInternalFiles = useCallback(\n (internalFiles: UploadFile[]) => {\n extend({ internalFiles })\n },\n [extend]\n )\n\n const files = useMemo(() => data?.files || [], [data?.files])\n const internalFiles = useMemo(\n () => data?.internalFiles || [],\n [data?.internalFiles]\n )\n\n const getExistingFile = useCallback(\n (file: File, fileItems: UploadFile[] = files) => {\n return fileItems.find(({ file: f }) => {\n return (\n f.name === file.name &&\n f.size === file.size &&\n f.lastModified === file.lastModified\n )\n })\n },\n [files]\n )\n\n return {\n files,\n setFiles,\n internalFiles,\n setInternalFiles,\n getExistingFile,\n }\n}\n\nexport default useUpload\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAcA,SAASE,SAASA,CAACC,EAAU,EAAmB;EAC9C,MAAM;IAAEC,IAAI;IAAEC;EAAO,CAAC,GAAG,IAAAC,8BAAc,EAGpCH,EAAE,CAAC;EAEN,MAAMI,QAAQ,GAAG,IAAAC,kBAAW,EACzBC,KAAmB,IAAK;IACvBJ,MAAM,CAAC;MAAEI;IAAM,CAAC,CAAC;EACnB,CAAC,EACD,CAACJ,MAAM,CACT,CAAC;EAED,MAAMK,gBAAgB,GAAG,IAAAF,kBAAW,EACjCG,aAA2B,IAAK;IAC/BN,MAAM,CAAC;MAAEM;IAAc,CAAC,CAAC;EAC3B,CAAC,EACD,CAACN,MAAM,CACT,CAAC;EAED,MAAMI,KAAK,GAAG,IAAAG,cAAO,EAAC,MAAM,CAAAR,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEK,KAAK,KAAI,EAAE,EAAE,CAACL,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEK,KAAK,CAAC,CAAC;EAC7D,MAAME,aAAa,GAAG,IAAAC,cAAO,EAC3B,MAAM,CAAAR,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEO,aAAa,KAAI,EAAE,EAC/B,CAACP,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEO,aAAa,CACtB,CAAC;EAED,MAAME,eAAe,GAAG,IAAAL,kBAAW,EACjC,UAACM,IAAU,EAAsC;IAAA,IAApCC,SAAuB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGP,KAAK;IAC1C,OAAOM,SAAS,CAACI,IAAI,CAACC,IAAA,IAAiB;MAAA,IAAhB;QAAEN,IAAI,EAAEO;MAAE,CAAC,GAAAD,IAAA;MAChC,OACEC,CAAC,CAACC,IAAI,KAAKR,IAAI,CAACQ,IAAI,IACpBD,CAAC,CAACE,IAAI,KAAKT,IAAI,CAACS,IAAI,IACpBF,CAAC,CAACG,YAAY,KAAKV,IAAI,CAACU,YAAY;IAExC,CAAC,CAAC;EACJ,CAAC,EACD,CAACf,KAAK,CACR,CAAC;EAED,OAAO;IACLA,KAAK;IACLF,QAAQ;IACRI,aAAa;IACbD,gBAAgB;IAChBG;EACF,CAAC;AACH;AAAC,IAAAY,QAAA,GAEcvB,SAAS;AAAAwB,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -45,7 +45,7 @@ function ArraySelection(props) {
45
45
  handleChange,
46
46
  children
47
47
  } = (0, _hooks.useFieldProps)(props);
48
- const fieldSectionProps = _objectSpread({
48
+ const fieldBlockProps = _objectSpread({
49
49
  forId: id,
50
50
  className: (0, _classnames.default)(`dnb-forms-field-array-selection dnb-forms-field-array-selection--variant-${variant} dnb-forms-field-array-selection--layout-${layout} dnb-forms-field-array-selection--options-layout-${optionsLayout}`, className),
51
51
  contentClassName: 'dnb-forms-field-array-selection__options',
@@ -76,14 +76,14 @@ function ArraySelection(props) {
76
76
  });
77
77
  switch (variant) {
78
78
  case 'button':
79
- return _react.default.createElement(_FieldBlock.default, fieldSectionProps, _react.default.createElement(_ToggleButtonGroupContext.default.Provider, {
79
+ return _react.default.createElement(_FieldBlock.default, fieldBlockProps, _react.default.createElement(_ToggleButtonGroupContext.default.Provider, {
80
80
  value: {
81
81
  status: hasError ? 'error' : undefined,
82
82
  disabled
83
83
  }
84
84
  }, options));
85
85
  case 'checkbox':
86
- return _react.default.createElement(_FieldBlock.default, fieldSectionProps, options);
86
+ return _react.default.createElement(_FieldBlock.default, fieldBlockProps, options);
87
87
  }
88
88
  }
89
89
  function getCheckboxOrToggleOptions(_ref) {