@x15ventures/x15-ui-library 3.18.0 → 3.20.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 (484) hide show
  1. package/THIRD_PARTY_LICENSES.md +11182 -0
  2. package/dist/cjs/autoGenerated/libraryThemes.js +12 -12
  3. package/dist/cjs/autoGenerated/libraryThemes.js.map +1 -1
  4. package/dist/cjs/autoGenerated/libraryThemes.json +12 -12
  5. package/dist/cjs/components/design/banners/pageBanner/PageBanner.js +27 -12
  6. package/dist/cjs/components/design/banners/pageBanner/PageBanner.js.map +1 -1
  7. package/dist/cjs/components/design/card/cardHeader/CardHeaderItem.js +22 -15
  8. package/dist/cjs/components/design/card/cardHeader/CardHeaderItem.js.map +1 -1
  9. package/dist/cjs/components/design/dialog/dialog.css +4 -0
  10. package/dist/cjs/components/design/logos/LogoLink.js +2 -1
  11. package/dist/cjs/components/design/logos/LogoLink.js.map +1 -1
  12. package/dist/cjs/components/design/logos/VentureLogo.js +2 -1
  13. package/dist/cjs/components/design/logos/VentureLogo.js.map +1 -1
  14. package/dist/cjs/components/design/revealMore/RevealMoreBelow.js +2 -2
  15. package/dist/cjs/components/design/revealMore/RevealMoreBelow.js.map +1 -1
  16. package/dist/cjs/components/design/skeleton/Skeleton.js +15 -5
  17. package/dist/cjs/components/design/skeleton/Skeleton.js.map +1 -1
  18. package/dist/cjs/components/design/themeLoader/ThemeLoader.js +1 -1
  19. package/dist/cjs/components/design/themeLoader/ThemeLoader.js.map +1 -1
  20. package/dist/cjs/components/form/buttons/SimpleButton.js +3 -1
  21. package/dist/cjs/components/form/buttons/SimpleButton.js.map +1 -1
  22. package/dist/cjs/components/form/buttons/button.interface.js.map +1 -1
  23. package/dist/cjs/components/form/buttons/userPicButton/UserPicButton.js +5 -3
  24. package/dist/cjs/components/form/buttons/userPicButton/UserPicButton.js.map +1 -1
  25. package/dist/cjs/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.js +64 -19
  26. package/dist/cjs/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.js.map +1 -1
  27. package/dist/cjs/components/navigation/link/Link.js +2 -1
  28. package/dist/cjs/components/navigation/link/Link.js.map +1 -1
  29. package/dist/cjs/components/testing/devToolbar/DevToolbar.js +5 -3
  30. package/dist/cjs/components/testing/devToolbar/DevToolbar.js.map +1 -1
  31. package/dist/cjs/constants/fileUploadTypes.js +9 -4
  32. package/dist/cjs/constants/fileUploadTypes.js.map +1 -1
  33. package/dist/cjs/helpers/dateHelpers.js +34 -23
  34. package/dist/cjs/helpers/dateHelpers.js.map +1 -1
  35. package/dist/cjs/helpers/fileHelpers.js +58 -0
  36. package/dist/cjs/helpers/fileHelpers.js.map +1 -0
  37. package/dist/cjs/helpers/index.js +44 -0
  38. package/dist/cjs/helpers/index.js.map +1 -1
  39. package/dist/cjs/helpers/interactionsHelper.js +8 -1
  40. package/dist/cjs/helpers/interactionsHelper.js.map +1 -1
  41. package/dist/cjs/helpers/objectHelpers.js +23 -9
  42. package/dist/cjs/helpers/objectHelpers.js.map +1 -1
  43. package/dist/cjs/helpers/stringHelpers.js +61 -5
  44. package/dist/cjs/helpers/stringHelpers.js.map +1 -1
  45. package/dist/cjs/helpers/urlHelpers.js +48 -0
  46. package/dist/cjs/helpers/urlHelpers.js.map +1 -0
  47. package/dist/cjs/index.js +191 -0
  48. package/dist/cjs/index.js.map +1 -1
  49. package/dist/cjs/package.json +3 -305
  50. package/dist/cjs/styles/index.css +18 -0
  51. package/dist/cjs/styles/variables/cssVars/_designVariables.css +18 -0
  52. package/dist/cjs/widgets/documentComments/DocumentComments.js +305 -0
  53. package/dist/cjs/widgets/documentComments/DocumentComments.js.map +1 -0
  54. package/dist/cjs/widgets/documentComments/_documentCommentsVariables.css +0 -0
  55. package/dist/cjs/widgets/documentComments/documentComments.css +107 -0
  56. package/dist/cjs/widgets/documentComments/documentComments.interfaces.js +6 -0
  57. package/dist/cjs/widgets/documentComments/documentComments.interfaces.js.map +1 -0
  58. package/dist/cjs/widgets/documentComments/index.js +19 -0
  59. package/dist/cjs/widgets/documentComments/index.js.map +1 -0
  60. package/dist/cjs/widgets/documentComparer/DocumentComparer.js +309 -0
  61. package/dist/cjs/widgets/documentComparer/DocumentComparer.js.map +1 -0
  62. package/dist/cjs/widgets/documentComparer/_documentComparerVariables.css +0 -0
  63. package/dist/cjs/widgets/documentComparer/documentComparer.css +117 -0
  64. package/dist/cjs/widgets/documentComparer/documentComparer.interfaces.js +6 -0
  65. package/dist/cjs/widgets/documentComparer/documentComparer.interfaces.js.map +1 -0
  66. package/dist/cjs/widgets/documentComparer/index.js +19 -0
  67. package/dist/cjs/widgets/documentComparer/index.js.map +1 -0
  68. package/dist/cjs/widgets/documentEditor/DocumentEditor.js +142 -0
  69. package/dist/cjs/widgets/documentEditor/DocumentEditor.js.map +1 -0
  70. package/dist/cjs/widgets/documentEditor/_documentEditorVariables.css +0 -0
  71. package/dist/cjs/widgets/documentEditor/documentEditor.css +33 -0
  72. package/dist/cjs/widgets/documentEditor/documentEditor.interfaces.js +6 -0
  73. package/dist/cjs/widgets/documentEditor/documentEditor.interfaces.js.map +1 -0
  74. package/dist/cjs/widgets/documentEditor/index.js +19 -0
  75. package/dist/cjs/widgets/documentEditor/index.js.map +1 -0
  76. package/dist/cjs/widgets/documentViewer/DocumentViewer.js +206 -0
  77. package/dist/cjs/widgets/documentViewer/DocumentViewer.js.map +1 -0
  78. package/dist/cjs/widgets/documentViewer/_documentViewerVariables.css +0 -0
  79. package/dist/cjs/widgets/documentViewer/documentViewer.css +82 -0
  80. package/dist/cjs/widgets/documentViewer/documentViewer.interfaces.js +6 -0
  81. package/dist/cjs/widgets/documentViewer/documentViewer.interfaces.js.map +1 -0
  82. package/dist/cjs/widgets/documentViewer/index.js +19 -0
  83. package/dist/cjs/widgets/documentViewer/index.js.map +1 -0
  84. package/dist/cjs/widgets/index.js +126 -0
  85. package/dist/cjs/widgets/index.js.map +1 -1
  86. package/dist/cjs/widgets/shared/documents/ToggleGroup.js +32 -0
  87. package/dist/cjs/widgets/shared/documents/ToggleGroup.js.map +1 -0
  88. package/dist/cjs/widgets/shared/documents/_documentVariables.css +0 -0
  89. package/dist/cjs/widgets/shared/documents/annotations/AnnotationLayer.js +279 -0
  90. package/dist/cjs/widgets/shared/documents/annotations/AnnotationLayer.js.map +1 -0
  91. package/dist/cjs/widgets/shared/documents/annotations/_annotationLayerVariables.css +0 -0
  92. package/dist/cjs/widgets/shared/documents/annotations/annotationLayer.css +65 -0
  93. package/dist/cjs/widgets/shared/documents/annotations/annotations.interfaces.js +21 -0
  94. package/dist/cjs/widgets/shared/documents/annotations/annotations.interfaces.js.map +1 -0
  95. package/dist/cjs/widgets/shared/documents/annotations/highlightRegistry.js +67 -0
  96. package/dist/cjs/widgets/shared/documents/annotations/highlightRegistry.js.map +1 -0
  97. package/dist/cjs/widgets/shared/documents/annotations/index.js +39 -0
  98. package/dist/cjs/widgets/shared/documents/annotations/index.js.map +1 -0
  99. package/dist/cjs/widgets/shared/documents/annotations/textIndex.js +112 -0
  100. package/dist/cjs/widgets/shared/documents/annotations/textIndex.js.map +1 -0
  101. package/dist/cjs/widgets/shared/documents/annotations/textQuoteAnchor.js +160 -0
  102. package/dist/cjs/widgets/shared/documents/annotations/textQuoteAnchor.js.map +1 -0
  103. package/dist/cjs/widgets/shared/documents/documentHelpers.js +186 -0
  104. package/dist/cjs/widgets/shared/documents/documentHelpers.js.map +1 -0
  105. package/dist/cjs/widgets/shared/documents/documents.interfaces.js +6 -0
  106. package/dist/cjs/widgets/shared/documents/documents.interfaces.js.map +1 -0
  107. package/dist/cjs/widgets/shared/documents/engines/documentDiff/DocumentDiff.js +73 -0
  108. package/dist/cjs/widgets/shared/documents/engines/documentDiff/DocumentDiff.js.map +1 -0
  109. package/dist/cjs/widgets/shared/documents/engines/documentDiff/_documentDiffVariables.css +0 -0
  110. package/dist/cjs/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.js +114 -0
  111. package/dist/cjs/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.js.map +1 -0
  112. package/dist/cjs/widgets/shared/documents/engines/documentDiff/documentDiff.css +69 -0
  113. package/dist/cjs/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.js +6 -0
  114. package/dist/cjs/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.js.map +1 -0
  115. package/dist/cjs/widgets/shared/documents/engines/lazyEngines.js +19 -0
  116. package/dist/cjs/widgets/shared/documents/engines/lazyEngines.js.map +1 -0
  117. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.js +200 -0
  118. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.js.map +1 -0
  119. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/_markdownEditorEngineVariables.css +0 -0
  120. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.css +50 -0
  121. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.js +6 -0
  122. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.js.map +1 -0
  123. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.js +179 -0
  124. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.js.map +1 -0
  125. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.js +278 -0
  126. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.js.map +1 -0
  127. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.js +208 -0
  128. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.js.map +1 -0
  129. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.js +85 -0
  130. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.js.map +1 -0
  131. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/_markdownRendererVariables.css +0 -0
  132. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/markdownRenderer.css +78 -0
  133. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/index.js +64 -0
  134. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/index.js.map +1 -0
  135. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.js +6 -0
  136. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.js.map +1 -0
  137. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.js +71 -0
  138. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.js.map +1 -0
  139. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.js +192 -0
  140. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.js.map +1 -0
  141. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.js +86 -0
  142. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.js.map +1 -0
  143. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.js +38 -0
  144. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.js.map +1 -0
  145. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/WordRenderer.js +49 -0
  146. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/WordRenderer.js.map +1 -0
  147. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/renderWordDocument.js +214 -0
  148. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/renderWordDocument.js.map +1 -0
  149. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.js +112 -0
  150. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.js.map +1 -0
  151. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/wordXml.js +68 -0
  152. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/wordXml.js.map +1 -0
  153. package/dist/cjs/widgets/shared/documents/index.js +50 -0
  154. package/dist/cjs/widgets/shared/documents/index.js.map +1 -0
  155. package/dist/cjs/widgets/shared/documents/toggleGroup.css +8 -0
  156. package/dist/cjs/widgets/shared/documents/useDocumentContent.js +222 -0
  157. package/dist/cjs/widgets/shared/documents/useDocumentContent.js.map +1 -0
  158. package/dist/components/design/banners/pageBanner/PageBanner.d.ts.map +1 -1
  159. package/dist/components/design/card/cardHeader/CardHeaderItem.d.ts.map +1 -1
  160. package/dist/components/design/logos/LogoLink.d.ts.map +1 -1
  161. package/dist/components/design/logos/VentureLogo.d.ts.map +1 -1
  162. package/dist/components/design/skeleton/Skeleton.d.ts +1 -1
  163. package/dist/components/design/skeleton/Skeleton.d.ts.map +1 -1
  164. package/dist/components/design/themeLoader/ThemeLoader.d.ts.map +1 -1
  165. package/dist/components/form/buttons/SimpleButton.d.ts.map +1 -1
  166. package/dist/components/form/buttons/button.interface.d.ts +1 -0
  167. package/dist/components/form/buttons/button.interface.d.ts.map +1 -1
  168. package/dist/components/form/buttons/userPicButton/UserPicButton.d.ts.map +1 -1
  169. package/dist/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.d.ts.map +1 -1
  170. package/dist/components/navigation/link/Link.d.ts.map +1 -1
  171. package/dist/components/testing/devToolbar/DevToolbar.d.ts.map +1 -1
  172. package/dist/constants/fileUploadTypes.d.ts.map +1 -1
  173. package/dist/esm/autoGenerated/libraryThemes.js +12 -12
  174. package/dist/esm/autoGenerated/libraryThemes.js.map +1 -1
  175. package/dist/esm/autoGenerated/libraryThemes.json +12 -12
  176. package/dist/esm/components/design/banners/pageBanner/PageBanner.js +27 -12
  177. package/dist/esm/components/design/banners/pageBanner/PageBanner.js.map +1 -1
  178. package/dist/esm/components/design/card/cardHeader/CardHeaderItem.js +22 -15
  179. package/dist/esm/components/design/card/cardHeader/CardHeaderItem.js.map +1 -1
  180. package/dist/esm/components/design/dialog/dialog.css +4 -0
  181. package/dist/esm/components/design/logos/LogoLink.js +2 -1
  182. package/dist/esm/components/design/logos/LogoLink.js.map +1 -1
  183. package/dist/esm/components/design/logos/VentureLogo.js +2 -1
  184. package/dist/esm/components/design/logos/VentureLogo.js.map +1 -1
  185. package/dist/esm/components/design/revealMore/RevealMoreBelow.js +1 -1
  186. package/dist/esm/components/design/revealMore/RevealMoreBelow.js.map +1 -1
  187. package/dist/esm/components/design/skeleton/Skeleton.js +15 -5
  188. package/dist/esm/components/design/skeleton/Skeleton.js.map +1 -1
  189. package/dist/esm/components/design/themeLoader/ThemeLoader.js +1 -1
  190. package/dist/esm/components/design/themeLoader/ThemeLoader.js.map +1 -1
  191. package/dist/esm/components/form/buttons/SimpleButton.js +3 -1
  192. package/dist/esm/components/form/buttons/SimpleButton.js.map +1 -1
  193. package/dist/esm/components/form/buttons/button.interface.js.map +1 -1
  194. package/dist/esm/components/form/buttons/userPicButton/UserPicButton.js +5 -3
  195. package/dist/esm/components/form/buttons/userPicButton/UserPicButton.js.map +1 -1
  196. package/dist/esm/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.js +65 -19
  197. package/dist/esm/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.js.map +1 -1
  198. package/dist/esm/components/navigation/link/Link.js +2 -1
  199. package/dist/esm/components/navigation/link/Link.js.map +1 -1
  200. package/dist/esm/components/testing/devToolbar/DevToolbar.js +5 -3
  201. package/dist/esm/components/testing/devToolbar/DevToolbar.js.map +1 -1
  202. package/dist/esm/constants/fileUploadTypes.js +9 -4
  203. package/dist/esm/constants/fileUploadTypes.js.map +1 -1
  204. package/dist/esm/helpers/dateHelpers.js +34 -23
  205. package/dist/esm/helpers/dateHelpers.js.map +1 -1
  206. package/dist/esm/helpers/fileHelpers.js +48 -0
  207. package/dist/esm/helpers/fileHelpers.js.map +1 -0
  208. package/dist/esm/helpers/index.js +2 -0
  209. package/dist/esm/helpers/index.js.map +1 -1
  210. package/dist/esm/helpers/interactionsHelper.js +5 -0
  211. package/dist/esm/helpers/interactionsHelper.js.map +1 -1
  212. package/dist/esm/helpers/objectHelpers.js +23 -9
  213. package/dist/esm/helpers/objectHelpers.js.map +1 -1
  214. package/dist/esm/helpers/stringHelpers.js +61 -5
  215. package/dist/esm/helpers/stringHelpers.js.map +1 -1
  216. package/dist/esm/helpers/urlHelpers.js +40 -0
  217. package/dist/esm/helpers/urlHelpers.js.map +1 -0
  218. package/dist/esm/index.js +3 -1
  219. package/dist/esm/index.js.map +1 -1
  220. package/dist/esm/package.json +2 -304
  221. package/dist/esm/styles/index.css +18 -0
  222. package/dist/esm/styles/variables/cssVars/_designVariables.css +18 -0
  223. package/dist/esm/widgets/documentComments/DocumentComments.js +298 -0
  224. package/dist/esm/widgets/documentComments/DocumentComments.js.map +1 -0
  225. package/dist/esm/widgets/documentComments/_documentCommentsVariables.css +0 -0
  226. package/dist/esm/widgets/documentComments/documentComments.css +107 -0
  227. package/dist/esm/widgets/documentComments/documentComments.interfaces.js +2 -0
  228. package/dist/esm/widgets/documentComments/documentComments.interfaces.js.map +1 -0
  229. package/dist/esm/widgets/documentComments/index.js +2 -0
  230. package/dist/esm/widgets/documentComments/index.js.map +1 -0
  231. package/dist/esm/widgets/documentComparer/DocumentComparer.js +301 -0
  232. package/dist/esm/widgets/documentComparer/DocumentComparer.js.map +1 -0
  233. package/dist/esm/widgets/documentComparer/_documentComparerVariables.css +0 -0
  234. package/dist/esm/widgets/documentComparer/documentComparer.css +117 -0
  235. package/dist/esm/widgets/documentComparer/documentComparer.interfaces.js +2 -0
  236. package/dist/esm/widgets/documentComparer/documentComparer.interfaces.js.map +1 -0
  237. package/dist/esm/widgets/documentComparer/index.js +2 -0
  238. package/dist/esm/widgets/documentComparer/index.js.map +1 -0
  239. package/dist/esm/widgets/documentEditor/DocumentEditor.js +135 -0
  240. package/dist/esm/widgets/documentEditor/DocumentEditor.js.map +1 -0
  241. package/dist/esm/widgets/documentEditor/_documentEditorVariables.css +0 -0
  242. package/dist/esm/widgets/documentEditor/documentEditor.css +33 -0
  243. package/dist/esm/widgets/documentEditor/documentEditor.interfaces.js +2 -0
  244. package/dist/esm/widgets/documentEditor/documentEditor.interfaces.js.map +1 -0
  245. package/dist/esm/widgets/documentEditor/index.js +2 -0
  246. package/dist/esm/widgets/documentEditor/index.js.map +1 -0
  247. package/dist/esm/widgets/documentViewer/DocumentViewer.js +198 -0
  248. package/dist/esm/widgets/documentViewer/DocumentViewer.js.map +1 -0
  249. package/dist/esm/widgets/documentViewer/_documentViewerVariables.css +0 -0
  250. package/dist/esm/widgets/documentViewer/documentViewer.css +82 -0
  251. package/dist/esm/widgets/documentViewer/documentViewer.interfaces.js +2 -0
  252. package/dist/esm/widgets/documentViewer/documentViewer.interfaces.js.map +1 -0
  253. package/dist/esm/widgets/documentViewer/index.js +2 -0
  254. package/dist/esm/widgets/documentViewer/index.js.map +1 -0
  255. package/dist/esm/widgets/index.js +6 -0
  256. package/dist/esm/widgets/index.js.map +1 -1
  257. package/dist/esm/widgets/shared/documents/ToggleGroup.js +24 -0
  258. package/dist/esm/widgets/shared/documents/ToggleGroup.js.map +1 -0
  259. package/dist/esm/widgets/shared/documents/_documentVariables.css +0 -0
  260. package/dist/esm/widgets/shared/documents/annotations/AnnotationLayer.js +273 -0
  261. package/dist/esm/widgets/shared/documents/annotations/AnnotationLayer.js.map +1 -0
  262. package/dist/esm/widgets/shared/documents/annotations/_annotationLayerVariables.css +0 -0
  263. package/dist/esm/widgets/shared/documents/annotations/annotationLayer.css +65 -0
  264. package/dist/esm/widgets/shared/documents/annotations/annotations.interfaces.js +14 -0
  265. package/dist/esm/widgets/shared/documents/annotations/annotations.interfaces.js.map +1 -0
  266. package/dist/esm/widgets/shared/documents/annotations/highlightRegistry.js +58 -0
  267. package/dist/esm/widgets/shared/documents/annotations/highlightRegistry.js.map +1 -0
  268. package/dist/esm/widgets/shared/documents/annotations/index.js +4 -0
  269. package/dist/esm/widgets/shared/documents/annotations/index.js.map +1 -0
  270. package/dist/esm/widgets/shared/documents/annotations/textIndex.js +103 -0
  271. package/dist/esm/widgets/shared/documents/annotations/textIndex.js.map +1 -0
  272. package/dist/esm/widgets/shared/documents/annotations/textQuoteAnchor.js +150 -0
  273. package/dist/esm/widgets/shared/documents/annotations/textQuoteAnchor.js.map +1 -0
  274. package/dist/esm/widgets/shared/documents/documentHelpers.js +168 -0
  275. package/dist/esm/widgets/shared/documents/documentHelpers.js.map +1 -0
  276. package/dist/esm/widgets/shared/documents/documents.interfaces.js +2 -0
  277. package/dist/esm/widgets/shared/documents/documents.interfaces.js.map +1 -0
  278. package/dist/esm/widgets/shared/documents/engines/documentDiff/DocumentDiff.js +65 -0
  279. package/dist/esm/widgets/shared/documents/engines/documentDiff/DocumentDiff.js.map +1 -0
  280. package/dist/esm/widgets/shared/documents/engines/documentDiff/_documentDiffVariables.css +0 -0
  281. package/dist/esm/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.js +102 -0
  282. package/dist/esm/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.js.map +1 -0
  283. package/dist/esm/widgets/shared/documents/engines/documentDiff/documentDiff.css +69 -0
  284. package/dist/esm/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.js +2 -0
  285. package/dist/esm/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.js.map +1 -0
  286. package/dist/esm/widgets/shared/documents/engines/lazyEngines.js +13 -0
  287. package/dist/esm/widgets/shared/documents/engines/lazyEngines.js.map +1 -0
  288. package/dist/esm/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.js +191 -0
  289. package/dist/esm/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.js.map +1 -0
  290. package/dist/esm/widgets/shared/documents/engines/markdownEditor/_markdownEditorEngineVariables.css +0 -0
  291. package/dist/esm/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.css +50 -0
  292. package/dist/esm/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.js +2 -0
  293. package/dist/esm/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.js.map +1 -0
  294. package/dist/esm/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.js +170 -0
  295. package/dist/esm/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.js.map +1 -0
  296. package/dist/esm/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.js +270 -0
  297. package/dist/esm/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.js.map +1 -0
  298. package/dist/esm/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.js +198 -0
  299. package/dist/esm/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.js.map +1 -0
  300. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.js +76 -0
  301. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.js.map +1 -0
  302. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/_markdownRendererVariables.css +0 -0
  303. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/markdownRenderer.css +78 -0
  304. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/index.js +5 -0
  305. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/index.js.map +1 -0
  306. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.js +2 -0
  307. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.js.map +1 -0
  308. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.js +64 -0
  309. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.js.map +1 -0
  310. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.js +182 -0
  311. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.js.map +1 -0
  312. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.js +78 -0
  313. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.js.map +1 -0
  314. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.js +30 -0
  315. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.js.map +1 -0
  316. package/dist/esm/widgets/shared/documents/engines/wordRenderer/WordRenderer.js +41 -0
  317. package/dist/esm/widgets/shared/documents/engines/wordRenderer/WordRenderer.js.map +1 -0
  318. package/dist/esm/widgets/shared/documents/engines/wordRenderer/renderWordDocument.js +207 -0
  319. package/dist/esm/widgets/shared/documents/engines/wordRenderer/renderWordDocument.js.map +1 -0
  320. package/dist/esm/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.js +105 -0
  321. package/dist/esm/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.js.map +1 -0
  322. package/dist/esm/widgets/shared/documents/engines/wordRenderer/wordXml.js +57 -0
  323. package/dist/esm/widgets/shared/documents/engines/wordRenderer/wordXml.js.map +1 -0
  324. package/dist/esm/widgets/shared/documents/index.js +3 -0
  325. package/dist/esm/widgets/shared/documents/index.js.map +1 -0
  326. package/dist/esm/widgets/shared/documents/toggleGroup.css +8 -0
  327. package/dist/esm/widgets/shared/documents/useDocumentContent.js +215 -0
  328. package/dist/esm/widgets/shared/documents/useDocumentContent.js.map +1 -0
  329. package/dist/helpers/dateHelpers.d.ts.map +1 -1
  330. package/dist/helpers/fileHelpers.d.ts +5 -0
  331. package/dist/helpers/fileHelpers.d.ts.map +1 -0
  332. package/dist/helpers/index.d.ts +3 -0
  333. package/dist/helpers/index.d.ts.map +1 -1
  334. package/dist/helpers/interactionsHelper.d.ts +2 -0
  335. package/dist/helpers/interactionsHelper.d.ts.map +1 -1
  336. package/dist/helpers/objectHelpers.d.ts.map +1 -1
  337. package/dist/helpers/stringHelpers.d.ts.map +1 -1
  338. package/dist/helpers/urlHelpers.d.ts +3 -0
  339. package/dist/helpers/urlHelpers.d.ts.map +1 -0
  340. package/dist/index.d.ts +5 -2
  341. package/dist/index.d.ts.map +1 -1
  342. package/dist/package.json +42 -28
  343. package/dist/widgets/documentComments/DocumentComments.d.ts +7 -0
  344. package/dist/widgets/documentComments/DocumentComments.d.ts.map +1 -0
  345. package/dist/widgets/documentComments/documentComments.interfaces.d.ts +57 -0
  346. package/dist/widgets/documentComments/documentComments.interfaces.d.ts.map +1 -0
  347. package/dist/widgets/documentComments/index.d.ts +3 -0
  348. package/dist/widgets/documentComments/index.d.ts.map +1 -0
  349. package/dist/widgets/documentComparer/DocumentComparer.d.ts +7 -0
  350. package/dist/widgets/documentComparer/DocumentComparer.d.ts.map +1 -0
  351. package/dist/widgets/documentComparer/documentComparer.interfaces.d.ts +78 -0
  352. package/dist/widgets/documentComparer/documentComparer.interfaces.d.ts.map +1 -0
  353. package/dist/widgets/documentComparer/index.d.ts +3 -0
  354. package/dist/widgets/documentComparer/index.d.ts.map +1 -0
  355. package/dist/widgets/documentEditor/DocumentEditor.d.ts +7 -0
  356. package/dist/widgets/documentEditor/DocumentEditor.d.ts.map +1 -0
  357. package/dist/widgets/documentEditor/documentEditor.interfaces.d.ts +40 -0
  358. package/dist/widgets/documentEditor/documentEditor.interfaces.d.ts.map +1 -0
  359. package/dist/widgets/documentEditor/index.d.ts +3 -0
  360. package/dist/widgets/documentEditor/index.d.ts.map +1 -0
  361. package/dist/widgets/documentViewer/DocumentViewer.d.ts +7 -0
  362. package/dist/widgets/documentViewer/DocumentViewer.d.ts.map +1 -0
  363. package/dist/widgets/documentViewer/documentViewer.interfaces.d.ts +47 -0
  364. package/dist/widgets/documentViewer/documentViewer.interfaces.d.ts.map +1 -0
  365. package/dist/widgets/documentViewer/index.d.ts +3 -0
  366. package/dist/widgets/documentViewer/index.d.ts.map +1 -0
  367. package/dist/widgets/index.d.ts +12 -0
  368. package/dist/widgets/index.d.ts.map +1 -1
  369. package/dist/widgets/shared/documents/ToggleGroup.d.ts +15 -0
  370. package/dist/widgets/shared/documents/ToggleGroup.d.ts.map +1 -0
  371. package/dist/widgets/shared/documents/annotations/AnnotationLayer.d.ts +27 -0
  372. package/dist/widgets/shared/documents/annotations/AnnotationLayer.d.ts.map +1 -0
  373. package/dist/widgets/shared/documents/annotations/annotations.interfaces.d.ts +43 -0
  374. package/dist/widgets/shared/documents/annotations/annotations.interfaces.d.ts.map +1 -0
  375. package/dist/widgets/shared/documents/annotations/highlightRegistry.d.ts +12 -0
  376. package/dist/widgets/shared/documents/annotations/highlightRegistry.d.ts.map +1 -0
  377. package/dist/widgets/shared/documents/annotations/index.d.ts +6 -0
  378. package/dist/widgets/shared/documents/annotations/index.d.ts.map +1 -0
  379. package/dist/widgets/shared/documents/annotations/textIndex.d.ts +16 -0
  380. package/dist/widgets/shared/documents/annotations/textIndex.d.ts.map +1 -0
  381. package/dist/widgets/shared/documents/annotations/textQuoteAnchor.d.ts +15 -0
  382. package/dist/widgets/shared/documents/annotations/textQuoteAnchor.d.ts.map +1 -0
  383. package/dist/widgets/shared/documents/documentHelpers.d.ts +14 -0
  384. package/dist/widgets/shared/documents/documentHelpers.d.ts.map +1 -0
  385. package/dist/widgets/shared/documents/documents.interfaces.d.ts +20 -0
  386. package/dist/widgets/shared/documents/documents.interfaces.d.ts.map +1 -0
  387. package/dist/widgets/shared/documents/engines/documentDiff/DocumentDiff.d.ts +6 -0
  388. package/dist/widgets/shared/documents/engines/documentDiff/DocumentDiff.d.ts.map +1 -0
  389. package/dist/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.d.ts +25 -0
  390. package/dist/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.d.ts.map +1 -0
  391. package/dist/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.d.ts +17 -0
  392. package/dist/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.d.ts.map +1 -0
  393. package/dist/widgets/shared/documents/engines/lazyEngines.d.ts +5 -0
  394. package/dist/widgets/shared/documents/engines/lazyEngines.d.ts.map +1 -0
  395. package/dist/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.d.ts +8 -0
  396. package/dist/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.d.ts.map +1 -0
  397. package/dist/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.d.ts +23 -0
  398. package/dist/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.d.ts.map +1 -0
  399. package/dist/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.d.ts +12 -0
  400. package/dist/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.d.ts.map +1 -0
  401. package/dist/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.d.ts +8 -0
  402. package/dist/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.d.ts.map +1 -0
  403. package/dist/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.d.ts +32 -0
  404. package/dist/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.d.ts.map +1 -0
  405. package/dist/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.d.ts +12 -0
  406. package/dist/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.d.ts.map +1 -0
  407. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/index.d.ts +7 -0
  408. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/index.d.ts.map +1 -0
  409. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.d.ts +16 -0
  410. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.d.ts.map +1 -0
  411. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.d.ts +3 -0
  412. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.d.ts.map +1 -0
  413. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.d.ts +6 -0
  414. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.d.ts.map +1 -0
  415. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.d.ts +3 -0
  416. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.d.ts.map +1 -0
  417. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.d.ts +8 -0
  418. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.d.ts.map +1 -0
  419. package/dist/widgets/shared/documents/engines/wordRenderer/WordRenderer.d.ts +11 -0
  420. package/dist/widgets/shared/documents/engines/wordRenderer/WordRenderer.d.ts.map +1 -0
  421. package/dist/widgets/shared/documents/engines/wordRenderer/renderWordDocument.d.ts +7 -0
  422. package/dist/widgets/shared/documents/engines/wordRenderer/renderWordDocument.d.ts.map +1 -0
  423. package/dist/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.d.ts +3 -0
  424. package/dist/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.d.ts.map +1 -0
  425. package/dist/widgets/shared/documents/engines/wordRenderer/wordXml.d.ts +21 -0
  426. package/dist/widgets/shared/documents/engines/wordRenderer/wordXml.d.ts.map +1 -0
  427. package/dist/widgets/shared/documents/index.d.ts +5 -0
  428. package/dist/widgets/shared/documents/index.d.ts.map +1 -0
  429. package/dist/widgets/shared/documents/useDocumentContent.d.ts +11 -0
  430. package/dist/widgets/shared/documents/useDocumentContent.d.ts.map +1 -0
  431. package/package.json +42 -28
  432. package/readme.md +49 -2
  433. package/dist/components/design/dialog/Dialog.test.d.ts +0 -5
  434. package/dist/components/design/dialog/Dialog.test.d.ts.map +0 -1
  435. package/dist/components/design/progressIndicators/circularProgressIndicator/CircularProgressIndicator.test.d.ts +0 -5
  436. package/dist/components/design/progressIndicators/circularProgressIndicator/CircularProgressIndicator.test.d.ts.map +0 -1
  437. package/dist/components/design/tooltip/Tooltip.test.d.ts +0 -2
  438. package/dist/components/design/tooltip/Tooltip.test.d.ts.map +0 -1
  439. package/dist/components/form/buttons/SimpleButton.test.d.ts +0 -5
  440. package/dist/components/form/buttons/SimpleButton.test.d.ts.map +0 -1
  441. package/dist/components/form/formFields/formFieldWrapper/FormField.test.d.ts +0 -5
  442. package/dist/components/form/formFields/formFieldWrapper/FormField.test.d.ts.map +0 -1
  443. package/dist/components/form/formFields/subComponents/inputs/checkbox/InputCheckbox.test.d.ts +0 -5
  444. package/dist/components/form/formFields/subComponents/inputs/checkbox/InputCheckbox.test.d.ts.map +0 -1
  445. package/dist/components/form/formFields/subComponents/inputs/checkbox/checkboxSwitch/CheckboxSwitch.test.d.ts +0 -5
  446. package/dist/components/form/formFields/subComponents/inputs/checkbox/checkboxSwitch/CheckboxSwitch.test.d.ts.map +0 -1
  447. package/dist/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.test.d.ts +0 -5
  448. package/dist/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.test.d.ts.map +0 -1
  449. package/dist/components/form/formFields/subComponents/inputs/file/fileAttachmentList/FileAttachmentsList.test.d.ts +0 -5
  450. package/dist/components/form/formFields/subComponents/inputs/file/fileAttachmentList/FileAttachmentsList.test.d.ts.map +0 -1
  451. package/dist/components/form/formFields/subComponents/inputs/text/InputText.test.d.ts +0 -5
  452. package/dist/components/form/formFields/subComponents/inputs/text/InputText.test.d.ts.map +0 -1
  453. package/dist/components/form/formFields/subComponents/nestedFormContext.test.d.ts +0 -5
  454. package/dist/components/form/formFields/subComponents/nestedFormContext.test.d.ts.map +0 -1
  455. package/dist/components/form/formFields/subComponents/select/Select.test.d.ts +0 -5
  456. package/dist/components/form/formFields/subComponents/select/Select.test.d.ts.map +0 -1
  457. package/dist/components/form/formFields/subComponents/textarea/Textarea.test.d.ts +0 -5
  458. package/dist/components/form/formFields/subComponents/textarea/Textarea.test.d.ts.map +0 -1
  459. package/dist/components/form/hookFormWrapper/HookFormWrapper.test.d.ts +0 -5
  460. package/dist/components/form/hookFormWrapper/HookFormWrapper.test.d.ts.map +0 -1
  461. package/dist/components/form/validation/ValidationMessages.test.d.ts +0 -5
  462. package/dist/components/form/validation/ValidationMessages.test.d.ts.map +0 -1
  463. package/dist/components/navigation/bubbleNavigator/bubbleNavigatorUtilities.test.d.ts +0 -2
  464. package/dist/components/navigation/bubbleNavigator/bubbleNavigatorUtilities.test.d.ts.map +0 -1
  465. package/dist/components/navigation/menu/menuItemContent/MenuItemIcon.test.d.ts +0 -5
  466. package/dist/components/navigation/menu/menuItemContent/MenuItemIcon.test.d.ts.map +0 -1
  467. package/dist/helpers/ageHelpers.test.d.ts +0 -2
  468. package/dist/helpers/ageHelpers.test.d.ts.map +0 -1
  469. package/dist/helpers/dateHelpers.test.d.ts +0 -2
  470. package/dist/helpers/dateHelpers.test.d.ts.map +0 -1
  471. package/dist/helpers/formatters.test.d.ts +0 -5
  472. package/dist/helpers/formatters.test.d.ts.map +0 -1
  473. package/dist/helpers/iconHelpers.test.d.ts +0 -5
  474. package/dist/helpers/iconHelpers.test.d.ts.map +0 -1
  475. package/dist/helpers/numberHelpers.test.d.ts +0 -5
  476. package/dist/helpers/numberHelpers.test.d.ts.map +0 -1
  477. package/dist/helpers/objectHelpers.test.d.ts +0 -2
  478. package/dist/helpers/objectHelpers.test.d.ts.map +0 -1
  479. package/dist/helpers/stringHelpers.test.d.ts +0 -2
  480. package/dist/helpers/stringHelpers.test.d.ts.map +0 -1
  481. package/dist/hooks/InteractiveHostFocus.test.d.ts +0 -5
  482. package/dist/hooks/InteractiveHostFocus.test.d.ts.map +0 -1
  483. package/dist/widgets/processLauncher/ProcessLauncher.test.d.ts +0 -5
  484. package/dist/widgets/processLauncher/ProcessLauncher.test.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeLoader.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","ThemeLoader","_react","_interopRequireWildcard","_libraryThemes","_AppContextProvider","_appEnvironment","_libraryCDN","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","themes","libraryThemes","useMin","forceProd","forceCacheBusting","userTheme","useLatest","baseCssLink","useRef","themeCssLink","appContextProvider","useContext","AppContext","appTheme","appContext","theme","activeTheme","publicLibraryDomain","env","process","NODE_ENV","isProduction","isDevelopment","cdnBaseUrl","LIBRARY_CDN_PROD_BASE_URL","LIBRARY_CDN_DEV_BASE_URL","LIBRARY_VERSION","getThemeCss","console","warn","buildPath","dev","min","versioned","cssFile","css","cacheBuster","CURRENT_DOMAIN","Date","getTime","libraryDomain","baseCss","useMemo","themeCss","useEffect","current","href","createElement","Fragment","ref","rel","as"],"sources":["../../../../../src/components/design/themeLoader/ThemeLoader.tsx"],"sourcesContent":["'use client';\n\nimport React, { useContext, useEffect, useRef, useMemo } from 'react';\n\nimport libraryThemes from '../../../autoGenerated/libraryThemes';\nimport { AppContext } from '../../../contextProviders/appContext/AppContextProvider';\nimport { CURRENT_DOMAIN } from '../../../constants/appEnvironment';\nimport { LIBRARY_CDN_DEV_BASE_URL, LIBRARY_CDN_PROD_BASE_URL, LIBRARY_VERSION } from '../../../constants/libraryCDN';\n\nexport type ThemeStructure = {\n buildPath: string;\n dev: {\n css: string;\n map: string;\n };\n min: {\n css: string;\n map: string;\n };\n versioned: {\n css: string;\n map: string;\n };\n};\n\ntype AvailableThemes = {\n [themeName: string]: ThemeStructure;\n};\n\ntype themeLoaderProps = {\n useMin?: boolean,\n forceProd?: boolean,\n forceCacheBusting?: boolean,\n userTheme?: string;\n useLatest?: boolean;\n};\n\nconst themes: AvailableThemes = libraryThemes || {};\n\nexport const ThemeLoader: React.FC<themeLoaderProps> = (\n {\n useMin = false,\n forceProd = false,\n forceCacheBusting = false,\n userTheme,\n useLatest = true,\n }\n) => {\n const baseCssLink = useRef<HTMLLinkElement>(null);\n const themeCssLink = useRef<HTMLLinkElement>(null);\n\n const appContextProvider = useContext(AppContext);\n const appTheme = appContextProvider?.appContext?.theme;\n\n const activeTheme = userTheme || appTheme;\n const publicLibraryDomain = appContextProvider?.appContext?.publicLibraryDomain || '';\n\n const env = process.env.NODE_ENV;\n const isProduction = env === 'production' || env === 'prod';\n const isDevelopment = env === 'development' || env === 'dev';\n\n const cdnBaseUrl = `${ isProduction ? LIBRARY_CDN_PROD_BASE_URL : LIBRARY_CDN_DEV_BASE_URL }/${ useLatest ? 'latest' : LIBRARY_VERSION }`;\n\n const getThemeCss = (theme: string | undefined) => {\n if (!theme || !themes[theme]) {\n console.warn(`Theme \"${ theme }\" not found. Using default variables instead.`);\n return null;\n }\n\n const {\n buildPath, dev, min, versioned\n } = themes[theme];\n\n const cssFile = () => {\n if (forceProd) {\n return versioned.css;\n }\n\n if (isProduction) {\n return useMin ? versioned.css : min.css;\n }\n\n if (isDevelopment) {\n return useMin ? min.css : dev.css;\n }\n\n return dev.css;\n };\n\n const cacheBuster = CURRENT_DOMAIN === 'localhost' || forceCacheBusting ? `?v=${ new Date().getTime() }` : '';\n const libraryDomain = publicLibraryDomain !== '' ? `${ publicLibraryDomain }` : cdnBaseUrl;\n\n return `${ libraryDomain }/${ buildPath }/${ cssFile() }${ cacheBuster }`;\n };\n\n const baseCss = useMemo(() => getThemeCss('base'), [activeTheme, useMin, forceProd, forceCacheBusting]);\n const themeCss = useMemo(() => getThemeCss(activeTheme), [activeTheme, useMin, forceProd, forceCacheBusting]);\n\n useEffect(() => {\n if (baseCss && baseCssLink.current) {\n baseCssLink.current.href = baseCss;\n }\n if (themeCss && themeCssLink.current) {\n themeCssLink.current.href = themeCss;\n }\n }, [activeTheme]);\n\n return (\n <>\n <link ref={ baseCssLink } rel=\"stylesheet\" as=\"style\" />\n <link ref={ themeCssLink } rel=\"stylesheet\" as=\"style\" />\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ThemeLoader.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","ThemeLoader","_react","_interopRequireWildcard","_libraryThemes","_AppContextProvider","_appEnvironment","_libraryCDN","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","themes","libraryThemes","useMin","forceProd","forceCacheBusting","userTheme","useLatest","baseCssLink","useRef","themeCssLink","appContextProvider","useContext","AppContext","appTheme","appContext","theme","activeTheme","publicLibraryDomain","env","process","NODE_ENV","isProduction","isDevelopment","cdnBaseUrl","LIBRARY_CDN_PROD_BASE_URL","LIBRARY_CDN_DEV_BASE_URL","LIBRARY_VERSION","getThemeCss","console","warn","buildPath","dev","min","versioned","cssFile","css","cacheBuster","CURRENT_DOMAIN","Date","getTime","libraryDomain","baseCss","useMemo","themeCss","useEffect","current","href","createElement","Fragment","ref","rel","as"],"sources":["../../../../../src/components/design/themeLoader/ThemeLoader.tsx"],"sourcesContent":["'use client';\n\nimport React, { useContext, useEffect, useRef, useMemo } from 'react';\n\nimport libraryThemes from '../../../autoGenerated/libraryThemes';\nimport { AppContext } from '../../../contextProviders/appContext/AppContextProvider';\nimport { CURRENT_DOMAIN } from '../../../constants/appEnvironment';\nimport { LIBRARY_CDN_DEV_BASE_URL, LIBRARY_CDN_PROD_BASE_URL, LIBRARY_VERSION } from '../../../constants/libraryCDN';\n\nexport type ThemeStructure = {\n buildPath: string;\n dev: {\n css: string;\n map: string;\n };\n min: {\n css: string;\n map: string;\n };\n versioned: {\n css: string;\n map: string;\n };\n};\n\ntype AvailableThemes = {\n [themeName: string]: ThemeStructure;\n};\n\ntype themeLoaderProps = {\n useMin?: boolean,\n forceProd?: boolean,\n forceCacheBusting?: boolean,\n userTheme?: string;\n // Load the CDN's `latest` stylesheets instead of those for the installed library version. Off by\n // default: `latest` changes under the app on every release, so it can restyle apps that never\n // upgraded with CSS written for components they do not have.\n useLatest?: boolean;\n};\n\nconst themes: AvailableThemes = libraryThemes || {};\n\nexport const ThemeLoader: React.FC<themeLoaderProps> = (\n {\n useMin = false,\n forceProd = false,\n forceCacheBusting = false,\n userTheme,\n useLatest = false,\n }\n) => {\n const baseCssLink = useRef<HTMLLinkElement>(null);\n const themeCssLink = useRef<HTMLLinkElement>(null);\n\n const appContextProvider = useContext(AppContext);\n const appTheme = appContextProvider?.appContext?.theme;\n\n const activeTheme = userTheme || appTheme;\n const publicLibraryDomain = appContextProvider?.appContext?.publicLibraryDomain || '';\n\n const env = process.env.NODE_ENV;\n const isProduction = env === 'production' || env === 'prod';\n const isDevelopment = env === 'development' || env === 'dev';\n\n const cdnBaseUrl = `${ isProduction ? LIBRARY_CDN_PROD_BASE_URL : LIBRARY_CDN_DEV_BASE_URL }/${ useLatest ? 'latest' : LIBRARY_VERSION }`;\n\n const getThemeCss = (theme: string | undefined) => {\n if (!theme || !themes[theme]) {\n console.warn(`Theme \"${ theme }\" not found. Using default variables instead.`);\n return null;\n }\n\n const {\n buildPath, dev, min, versioned\n } = themes[theme];\n\n const cssFile = () => {\n if (forceProd) {\n return versioned.css;\n }\n\n if (isProduction) {\n return useMin ? versioned.css : min.css;\n }\n\n if (isDevelopment) {\n return useMin ? min.css : dev.css;\n }\n\n return dev.css;\n };\n\n const cacheBuster = CURRENT_DOMAIN === 'localhost' || forceCacheBusting ? `?v=${ new Date().getTime() }` : '';\n const libraryDomain = publicLibraryDomain !== '' ? `${ publicLibraryDomain }` : cdnBaseUrl;\n\n return `${ libraryDomain }/${ buildPath }/${ cssFile() }${ cacheBuster }`;\n };\n\n const baseCss = useMemo(() => getThemeCss('base'), [activeTheme, useMin, forceProd, forceCacheBusting]);\n const themeCss = useMemo(() => getThemeCss(activeTheme), [activeTheme, useMin, forceProd, forceCacheBusting]);\n\n useEffect(() => {\n if (baseCss && baseCssLink.current) {\n baseCssLink.current.href = baseCss;\n }\n if (themeCss && themeCssLink.current) {\n themeCssLink.current.href = themeCss;\n }\n }, [activeTheme]);\n\n return (\n <>\n <link ref={ baseCssLink } rel=\"stylesheet\" as=\"style\" />\n <link ref={ themeCssLink } rel=\"stylesheet\" as=\"style\" />\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -24,6 +24,7 @@ const SimpleButton = exports.Button = exports.SimpleButton = /*#__PURE__*/(0, _r
24
24
  disabledMessage = 'This button has been disabled temporarily. There is likely an issue elsewhere on your form that needs to be resolved first.',
25
25
  onClickHandler = () => {},
26
26
  buttonStyle,
27
+ ariaPressed,
27
28
  children
28
29
  }, ref) => {
29
30
  const buttonCssClass = (0, _react.useMemo)(() => {
@@ -49,7 +50,8 @@ const SimpleButton = exports.Button = exports.SimpleButton = /*#__PURE__*/(0, _r
49
50
  className: buttonCssClass,
50
51
  type: buttonType,
51
52
  onClick: onClickHandler,
52
- disabled: disabled
53
+ disabled: disabled,
54
+ "aria-pressed": ariaPressed
53
55
  }, disabled && {
54
56
  'aria-describedby': disabledMessageId
55
57
  }), (0, _iconHelpers.renderIcon)(leftIcon), /*#__PURE__*/_react.default.createElement("span", {
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleButton.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","default","SimpleButton","Button","_extends2","_react","_interopRequireWildcard","_iconHelpers","_button","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","forwardRef","buttonType","leftIcon","rightIcon","hideLabel","label","title","id","cssClass","disabled","disabledMessage","onClickHandler","buttonStyle","children","ref","buttonCssClass","useMemo","generateButtonClass","disabledMessageId","buttonHoverTitle","createElement","Fragment","className","type","onClick","renderIcon","_default"],"sources":["../../../../../src/components/form/buttons/SimpleButton.tsx"],"sourcesContent":["'use client';\n\nimport React, { useMemo, forwardRef } from 'react';\nimport { ButtonProps } from './button.interface';\nimport { renderIcon } from '../../../helpers/iconHelpers';\nimport { generateButtonClass } from './button.helpers';\n\nexport const SimpleButton = forwardRef<HTMLButtonElement, ButtonProps>((\n {\n buttonType = 'button',\n leftIcon,\n rightIcon,\n hideLabel = false,\n label = 'A button',\n title,\n id = 'buttonIdRequired',\n cssClass = 'button primary',\n disabled = false,\n disabledMessage = 'This button has been disabled temporarily. There is likely an issue elsewhere on your form that needs to be resolved first.',\n onClickHandler = () => { },\n buttonStyle,\n children\n },\n ref\n) => {\n \n const buttonCssClass = useMemo(() => {\n return generateButtonClass({ cssClass, buttonStyle, hideLabel });\n }, [cssClass, buttonStyle, hideLabel]);\n\n const disabledMessageId = `${ id }-disabledMessage`;\n\n const buttonHoverTitle = () => {\n if (title) {\n return title;\n }\n if (hideLabel && typeof label === 'string') {\n return label;\n }\n };\n\n return (\n <>\n <button\n ref={ ref }\n id={ id }\n title={ buttonHoverTitle() }\n className={ buttonCssClass }\n type={ buttonType }\n onClick={ onClickHandler }\n disabled={ disabled }\n { ...(disabled && { 'aria-describedby': disabledMessageId }) }\n >\n { renderIcon(leftIcon) }\n\n <span className={ `${ hideLabel ? 'sr-only' : 'labelText' }` }>{ label }</span>\n\n { children }\n\n { renderIcon(rightIcon) }\n </button>\n {\n disabled && (\n <span id={ disabledMessageId } className=\"sr-only\">\n {\n disabledMessage\n }\n </span>\n )\n }\n </>\n );\n});\n\nexport default SimpleButton;\n\nexport { SimpleButton as Button };"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SimpleButton.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","default","SimpleButton","Button","_extends2","_react","_interopRequireWildcard","_iconHelpers","_button","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","forwardRef","buttonType","leftIcon","rightIcon","hideLabel","label","title","id","cssClass","disabled","disabledMessage","onClickHandler","buttonStyle","ariaPressed","children","ref","buttonCssClass","useMemo","generateButtonClass","disabledMessageId","buttonHoverTitle","createElement","Fragment","className","type","onClick","renderIcon","_default"],"sources":["../../../../../src/components/form/buttons/SimpleButton.tsx"],"sourcesContent":["'use client';\n\nimport React, { useMemo, forwardRef } from 'react';\nimport { ButtonProps } from './button.interface';\nimport { renderIcon } from '../../../helpers/iconHelpers';\nimport { generateButtonClass } from './button.helpers';\n\nexport const SimpleButton = forwardRef<HTMLButtonElement, ButtonProps>((\n {\n buttonType = 'button',\n leftIcon,\n rightIcon,\n hideLabel = false,\n label = 'A button',\n title,\n id = 'buttonIdRequired',\n cssClass = 'button primary',\n disabled = false,\n disabledMessage = 'This button has been disabled temporarily. There is likely an issue elsewhere on your form that needs to be resolved first.',\n onClickHandler = () => { },\n buttonStyle,\n ariaPressed,\n children\n },\n ref\n) => {\n \n const buttonCssClass = useMemo(() => {\n return generateButtonClass({ cssClass, buttonStyle, hideLabel });\n }, [cssClass, buttonStyle, hideLabel]);\n\n const disabledMessageId = `${ id }-disabledMessage`;\n\n const buttonHoverTitle = () => {\n if (title) {\n return title;\n }\n if (hideLabel && typeof label === 'string') {\n return label;\n }\n };\n\n return (\n <>\n <button\n ref={ ref }\n id={ id }\n title={ buttonHoverTitle() }\n className={ buttonCssClass }\n type={ buttonType }\n onClick={ onClickHandler }\n disabled={ disabled }\n aria-pressed={ ariaPressed }\n { ...(disabled && { 'aria-describedby': disabledMessageId }) }\n >\n { renderIcon(leftIcon) }\n\n <span className={ `${ hideLabel ? 'sr-only' : 'labelText' }` }>{ label }</span>\n\n { children }\n\n { renderIcon(rightIcon) }\n </button>\n {\n disabled && (\n <span id={ disabledMessageId } className=\"sr-only\">\n {\n disabledMessage\n }\n </span>\n )\n }\n </>\n );\n});\n\nexport default SimpleButton;\n\nexport { SimpleButton as Button };"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"button.interface.js","names":[],"sources":["../../../../../src/components/form/buttons/button.interface.ts"],"sourcesContent":["import { ReactElement, ReactNode, RefObject } from 'react';\nimport { IconSource } from '../../../helpers/iconHelpers';\nimport { GenericFunction } from '../../../interfaces/generic.interface';\nimport { ButtonClassCombination } from './buttonVariations';\n\nexport interface ButtonStyles {\n color?: 'primary' | 'secondary' | 'tertiary';\n variant?: 'solid' | 'outline' | 'text-only' | 'icon-only';\n size?: 'default' | 'compact';\n}\n\nexport interface ButtonProps {\n label: string | ReactNode;\n id: string;\n title?: string;\n cssClass?: string | ButtonClassCombination;\n onClickHandler?: GenericFunction;\n buttonType?: 'button' | 'submit' | 'reset';\n buttonStyle?: ButtonStyles;\n leftIcon?: IconSource;\n rightIcon?: IconSource;\n hideLabel?: boolean;\n children?: ReactNode | ReactElement;\n disabled?: boolean;\n disabledMessage?: string;\n ref?: RefObject<HTMLButtonElement>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"button.interface.js","names":[],"sources":["../../../../../src/components/form/buttons/button.interface.ts"],"sourcesContent":["import { ReactElement, ReactNode, RefObject } from 'react';\nimport { IconSource } from '../../../helpers/iconHelpers';\nimport { GenericFunction } from '../../../interfaces/generic.interface';\nimport { ButtonClassCombination } from './buttonVariations';\n\nexport interface ButtonStyles {\n color?: 'primary' | 'secondary' | 'tertiary';\n variant?: 'solid' | 'outline' | 'text-only' | 'icon-only';\n size?: 'default' | 'compact';\n}\n\nexport interface ButtonProps {\n label: string | ReactNode;\n id: string;\n title?: string;\n cssClass?: string | ButtonClassCombination;\n onClickHandler?: GenericFunction;\n buttonType?: 'button' | 'submit' | 'reset';\n buttonStyle?: ButtonStyles;\n leftIcon?: IconSource;\n rightIcon?: IconSource;\n hideLabel?: boolean;\n children?: ReactNode | ReactElement;\n disabled?: boolean;\n disabledMessage?: string;\n // Makes the button a toggle; set for buttons that switch a state on or off, e.g. a view selector.\n ariaPressed?: boolean;\n ref?: RefObject<HTMLButtonElement>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -11,12 +11,14 @@ var _react = _interopRequireDefault(require("react"));
11
11
  var _SimpleButton = require("../SimpleButton");
12
12
  var _Icon = require("../../../design/icons/basicIcon/Icon");
13
13
  var _stringHelpers = require("../../../../helpers/stringHelpers");
14
+ var _urlHelpers = require("../../../../helpers/urlHelpers");
14
15
  require("./userPicButton.css");
15
16
  const UserPicButton = props => {
16
17
  const {
17
18
  user,
18
19
  ...buttonProps
19
20
  } = props;
21
+ const backgroundImage = (0, _urlHelpers.toCssImageUrl)(user.imageUrl);
20
22
  return /*#__PURE__*/_react.default.createElement(_SimpleButton.SimpleButton, (0, _extends2.default)({}, buttonProps, {
21
23
  hideLabel: true,
22
24
  cssClass: "button icon_only userPicButton"
@@ -24,9 +26,9 @@ const UserPicButton = props => {
24
26
  title: user.fullName || 'User profile',
25
27
  className: "userPicFallbacks"
26
28
  }, /*#__PURE__*/_react.default.createElement("span", {
27
- style: {
28
- backgroundImage: `url(${user.imageUrl})`
29
- },
29
+ style: backgroundImage ? {
30
+ backgroundImage
31
+ } : undefined,
30
32
  className: "userPic"
31
33
  }), user.fullName && /*#__PURE__*/_react.default.createElement("span", {
32
34
  className: "userInitials"
@@ -1 +1 @@
1
- {"version":3,"file":"UserPicButton.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","UserPicButton","_extends2","_react","_SimpleButton","_Icon","_stringHelpers","props","user","buttonProps","default","createElement","SimpleButton","hideLabel","cssClass","title","fullName","className","style","backgroundImage","imageUrl","getInitialsOrAcronym","Icon","icon","customCssClass"],"sources":["../../../../../../src/components/form/buttons/userPicButton/UserPicButton.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport { ButtonProps } from '../button.interface';\nimport { SimpleButton } from '../SimpleButton';\nimport { Icon } from '../../../design/icons/basicIcon/Icon';\nimport { getInitialsOrAcronym } from '../../../../helpers/stringHelpers';\n\nimport './userPicButton.scss';\n\nexport interface UserPicButtonProps extends ButtonProps {\n user: {\n imageUrl?: string;\n fullName?: string;\n }\n}\n\nexport const UserPicButton: React.FC<UserPicButtonProps> = (props) => {\n const {\n user, ...buttonProps\n } = props;\n\n return (\n <SimpleButton { ...buttonProps } hideLabel cssClass=\"button icon_only userPicButton\">\n <span title={ user.fullName || 'User profile' } className=\"userPicFallbacks\">\n <span\n style={\n {\n backgroundImage: `url(${ user.imageUrl })`\n }\n }\n className=\"userPic\"\n />\n {\n user.fullName\n && (\n <span className=\"userInitials\">\n { getInitialsOrAcronym(user.fullName) }\n </span>\n )\n }\n <Icon icon=\"user\" customCssClass=\"userPicFallbackIcon\" />\n </span>\n </SimpleButton>\n );\n};\n"],"mappings":";AAAA,YAAY;;AAAC,IAAAA,sBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,aAAA;AAAA,IAAAC,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AAEb,IAAAO,MAAA,GAAAR,sBAAA,CAAAC,OAAA;AAEA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,KAAA,GAAAT,OAAA;AACA,IAAAU,cAAA,GAAAV,OAAA;AAEAA,OAAA;AASO,MAAMK,aAA2C,GAAIM,KAAK,IAAK;EACpE,MAAM;IACJC,IAAI;IAAE,GAAGC;EACX,CAAC,GAAGF,KAAK;EAET,oBACEJ,MAAA,CAAAO,OAAA,CAAAC,aAAA,CAACP,aAAA,CAAAQ,YAAY,MAAAV,SAAA,CAAAQ,OAAA,MAAMD,WAAW;IAAGI,SAAS;IAACC,QAAQ,EAAC;EAAgC,iBAClFX,MAAA,CAAAO,OAAA,CAAAC,aAAA;IAAMI,KAAK,EAAGP,IAAI,CAACQ,QAAQ,IAAI,cAAgB;IAACC,SAAS,EAAC;EAAkB,gBAC1Ed,MAAA,CAAAO,OAAA,CAAAC,aAAA;IACEO,KAAK,EACH;MACEC,eAAe,EAAE,OAAQX,IAAI,CAACY,QAAQ;IACxC,CACD;IACDH,SAAS,EAAC;EAAS,CACpB,CAAC,EAEAT,IAAI,CAACQ,QAAQ,iBAEXb,MAAA,CAAAO,OAAA,CAAAC,aAAA;IAAMM,SAAS,EAAC;EAAc,GAC1B,IAAAI,mCAAoB,EAACb,IAAI,CAACQ,QAAQ,CAChC,CACP,eAEHb,MAAA,CAAAO,OAAA,CAAAC,aAAA,CAACN,KAAA,CAAAiB,IAAI;IAACC,IAAI,EAAC,MAAM;IAACC,cAAc,EAAC;EAAqB,CAAE,CACpD,CACM,CAAC;AAEnB,CAAC;AAACzB,OAAA,CAAAE,aAAA,GAAAA,aAAA","ignoreList":[]}
1
+ {"version":3,"file":"UserPicButton.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","UserPicButton","_extends2","_react","_SimpleButton","_Icon","_stringHelpers","_urlHelpers","props","user","buttonProps","backgroundImage","toCssImageUrl","imageUrl","default","createElement","SimpleButton","hideLabel","cssClass","title","fullName","className","style","undefined","getInitialsOrAcronym","Icon","icon","customCssClass"],"sources":["../../../../../../src/components/form/buttons/userPicButton/UserPicButton.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport { ButtonProps } from '../button.interface';\nimport { SimpleButton } from '../SimpleButton';\nimport { Icon } from '../../../design/icons/basicIcon/Icon';\nimport { getInitialsOrAcronym } from '../../../../helpers/stringHelpers';\nimport { toCssImageUrl } from '../../../../helpers/urlHelpers';\n\nimport './userPicButton.scss';\n\nexport interface UserPicButtonProps extends ButtonProps {\n user: {\n imageUrl?: string;\n fullName?: string;\n }\n}\n\nexport const UserPicButton: React.FC<UserPicButtonProps> = (props) => {\n const {\n user, ...buttonProps\n } = props;\n const backgroundImage = toCssImageUrl(user.imageUrl);\n\n return (\n <SimpleButton { ...buttonProps } hideLabel cssClass=\"button icon_only userPicButton\">\n <span title={ user.fullName || 'User profile' } className=\"userPicFallbacks\">\n <span\n style={ backgroundImage ? { backgroundImage } : undefined }\n className=\"userPic\"\n />\n {\n user.fullName\n && (\n <span className=\"userInitials\">\n { getInitialsOrAcronym(user.fullName) }\n </span>\n )\n }\n <Icon icon=\"user\" customCssClass=\"userPicFallbackIcon\" />\n </span>\n </SimpleButton>\n );\n};\n"],"mappings":";AAAA,YAAY;;AAAC,IAAAA,sBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,aAAA;AAAA,IAAAC,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AAEb,IAAAO,MAAA,GAAAR,sBAAA,CAAAC,OAAA;AAEA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,KAAA,GAAAT,OAAA;AACA,IAAAU,cAAA,GAAAV,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AAEAA,OAAA;AASO,MAAMK,aAA2C,GAAIO,KAAK,IAAK;EACpE,MAAM;IACJC,IAAI;IAAE,GAAGC;EACX,CAAC,GAAGF,KAAK;EACT,MAAMG,eAAe,GAAG,IAAAC,yBAAa,EAACH,IAAI,CAACI,QAAQ,CAAC;EAEpD,oBACEV,MAAA,CAAAW,OAAA,CAAAC,aAAA,CAACX,aAAA,CAAAY,YAAY,MAAAd,SAAA,CAAAY,OAAA,MAAMJ,WAAW;IAAGO,SAAS;IAACC,QAAQ,EAAC;EAAgC,iBAClFf,MAAA,CAAAW,OAAA,CAAAC,aAAA;IAAMI,KAAK,EAAGV,IAAI,CAACW,QAAQ,IAAI,cAAgB;IAACC,SAAS,EAAC;EAAkB,gBAC1ElB,MAAA,CAAAW,OAAA,CAAAC,aAAA;IACEO,KAAK,EAAGX,eAAe,GAAG;MAAEA;IAAgB,CAAC,GAAGY,SAAW;IAC3DF,SAAS,EAAC;EAAS,CACpB,CAAC,EAEAZ,IAAI,CAACW,QAAQ,iBAEXjB,MAAA,CAAAW,OAAA,CAAAC,aAAA;IAAMM,SAAS,EAAC;EAAc,GAC1B,IAAAG,mCAAoB,EAACf,IAAI,CAACW,QAAQ,CAChC,CACP,eAEHjB,MAAA,CAAAW,OAAA,CAAAC,aAAA,CAACV,KAAA,CAAAoB,IAAI;IAACC,IAAI,EAAC,MAAM;IAACC,cAAc,EAAC;EAAqB,CAAE,CACpD,CACM,CAAC;AAEnB,CAAC;AAAC5B,OAAA,CAAAE,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -8,6 +8,7 @@ exports.default = exports.DragAndDropFileUpload = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _iconDefinitions = require("@x15ventures/x15-ui-library-icons/iconDefinitions");
10
10
  var _reactHookForm = require("react-hook-form");
11
+ var _fileHelpers = require("../../../../../../../helpers/fileHelpers");
11
12
  var _iconHelpers = require("../../../../../../../helpers/iconHelpers");
12
13
  var _HookFormWrapper = require("../../../../../hookFormWrapper/HookFormWrapper");
13
14
  var _Spinner = require("../../../../../../design/spinner/Spinner");
@@ -19,6 +20,52 @@ var _FileAttachmentsList = require("../fileAttachmentList/FileAttachmentsList");
19
20
  var _constants = require("../../../../../../../constants");
20
21
  require("./dragAndDropFileUpload.css");
21
22
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
23
+ // A dot-file such as `.exe` has no extension by convention, but its name is still checked as one so
24
+ // it cannot slip past the blacklist.
25
+ const getUploadExtension = fileName => (0, _fileHelpers.getFileExtension)(fileName.startsWith('.') ? `upload${fileName}` : fileName);
26
+ const DEFAULT_VALID_FILES = {
27
+ extensions: _constants.DEFAULT_UPLOAD_FILE_EXTENSIONS,
28
+ fileTypes: _constants.DEFAULT_UPLOAD_FILE_TYPES,
29
+ maxFileCount: 5,
30
+ maxFileSize: 52428800 // 50 MB
31
+ };
32
+
33
+ /*
34
+ Limits-only configurations keep the default type restrictions. Once either `extensions` or
35
+ `fileTypes` is supplied (even as undefined), both are taken from the configuration so the picker
36
+ filter and the validation cannot disagree.
37
+ */
38
+ const resolveValidFiles = customValidFiles => {
39
+ if (!customValidFiles) {
40
+ return DEFAULT_VALID_FILES;
41
+ }
42
+ const customisesTypes = 'extensions' in customValidFiles || 'fileTypes' in customValidFiles;
43
+ return customisesTypes ? {
44
+ ...DEFAULT_VALID_FILES,
45
+ ...customValidFiles,
46
+ extensions: customValidFiles.extensions,
47
+ fileTypes: customValidFiles.fileTypes
48
+ } : {
49
+ ...DEFAULT_VALID_FILES,
50
+ ...customValidFiles
51
+ };
52
+ };
53
+
54
+ // Matches a file against `accept`-style tokens: `.ext`, `type/*` or an exact MIME type.
55
+ const matchesFileTypes = (file, fileTypes) => {
56
+ const extension = getUploadExtension(file.name);
57
+ const mimeType = file.type.toLowerCase();
58
+ return fileTypes.some(token => {
59
+ const normalised = token.trim().toLowerCase();
60
+ if (normalised.startsWith('.')) {
61
+ return normalised.slice(1) === extension;
62
+ }
63
+ if (normalised.endsWith('/*')) {
64
+ return mimeType.startsWith(normalised.slice(0, -1));
65
+ }
66
+ return normalised !== '' && normalised === mimeType;
67
+ });
68
+ };
22
69
  const DragAndDropFileUpload = props => /*#__PURE__*/_react.default.createElement(_HookFormWrapper.HookFormWrapper, {
23
70
  formContext: props.formContext
24
71
  }, /*#__PURE__*/_react.default.createElement(DragAndDropFileUploadField, props));
@@ -41,14 +88,10 @@ const DragAndDropFileUploadField = ({
41
88
  labelUploadIcon = _iconDefinitions.arrowUpFromBracket,
42
89
  multiple = false,
43
90
  restrictionsTxt = '',
44
- validFiles = {
45
- extensions: _constants.DEFAULT_UPLOAD_FILE_EXTENSIONS,
46
- fileTypes: _constants.DEFAULT_UPLOAD_FILE_TYPES,
47
- maxFileCount: 5,
48
- maxFileSize: 52428800 // 50 MB
49
- },
91
+ validFiles: customValidFiles,
50
92
  onFilesChange = () => {}
51
93
  }) => {
94
+ const validFiles = (0, _react.useMemo)(() => resolveValidFiles(customValidFiles), [customValidFiles]);
52
95
  const {
53
96
  setValue,
54
97
  trigger
@@ -80,15 +123,16 @@ const DragAndDropFileUploadField = ({
80
123
  return () => window.removeEventListener('focus', onFocus);
81
124
  }, [trigger, field.name]);
82
125
  const supportedFileTypes = (0, _react.useMemo)(() => validFiles?.fileTypes?.join(', ') || '', [validFiles?.fileTypes]);
126
+ const isFileAllowed = (0, _react.useCallback)(file => {
127
+ const ext = getUploadExtension(file.name);
128
+ const isBlacklisted = _constants.BLACKLISTED_FILE_TYPES.includes(ext);
129
+ // Without an extension allowlist, the picker's file types are enforced so dropped files obey them too.
130
+ const isValidExt = validFiles.extensions ? validFiles.extensions.includes(ext) : validFiles.fileTypes?.length ? matchesFileTypes(file, validFiles.fileTypes) : true;
131
+ const isValidSize = validFiles.maxFileSize ? file.size <= validFiles.maxFileSize : true;
132
+ return !isBlacklisted && isValidExt && isValidSize;
133
+ }, [validFiles]);
83
134
  const validateAndCommit = (0, _react.useCallback)(files => {
84
- // basic validations
85
- const validated = files.filter(file => {
86
- const ext = file.name.split('.').pop()?.toLowerCase() || '';
87
- const isBlacklisted = _constants.BLACKLISTED_FILE_TYPES.includes(ext);
88
- const isValidExt = validFiles.extensions ? validFiles.extensions.includes(ext) : true;
89
- const isValidSize = validFiles.maxFileSize ? file.size <= validFiles.maxFileSize : true;
90
- return !isBlacklisted && isValidExt && isValidSize;
91
- });
135
+ const validated = files.filter(isFileAllowed);
92
136
  const clipped = validFiles.maxFileCount ? validated.slice(0, validFiles.maxFileCount) : validated;
93
137
  setFileList(clipped);
94
138
  setIsTouched(true);
@@ -98,7 +142,7 @@ const DragAndDropFileUploadField = ({
98
142
  shouldTouch: true
99
143
  });
100
144
  onFilesChange(clipped);
101
- }, [field.name, onFilesChange, setValue, fileDisplayStyle, validFiles]);
145
+ }, [field.name, onFilesChange, setValue, isFileAllowed, validFiles]);
102
146
  const handleFileInputChange = (0, _react.useCallback)(event => {
103
147
  const target = event.target;
104
148
  const files = Array.from(target.files ?? []);
@@ -110,9 +154,10 @@ const DragAndDropFileUploadField = ({
110
154
  validateAndCommit(dropped);
111
155
  trigger(field.name);
112
156
  }, [trigger, field.name, validateAndCommit]);
113
- const handleFilesEdited = (0, _react.useCallback)(files => {
114
- // No need to validate again as they were already validated
115
- // Changes may include renaming or removing files
157
+ const handleFilesEdited = (0, _react.useCallback)(editedFiles => {
158
+ // Edits may rename files, so they are checked again: renaming `notes.txt` to `notes.exe` must not
159
+ // get past the extension rules the original name passed.
160
+ const files = editedFiles.filter(isFileAllowed);
116
161
  setFileList(files);
117
162
  setValue(field.name, files.length > 0 ? files : null, {
118
163
  shouldValidate: true,
@@ -120,7 +165,7 @@ const DragAndDropFileUploadField = ({
120
165
  shouldTouch: true
121
166
  });
122
167
  onFilesChange(files);
123
- }, [field.name, setValue, onFilesChange]);
168
+ }, [field.name, setValue, onFilesChange, isFileAllowed]);
124
169
  const wrapperCssClass = `
125
170
  formField
126
171
  dragAndDropFileUpload
@@ -1 +1 @@
1
- {"version":3,"file":"DragAndDropFileUpload.js","names":["Object","defineProperty","exports","value","default","DragAndDropFileUpload","_react","_interopRequireWildcard","require","_iconDefinitions","_reactHookForm","_iconHelpers","_HookFormWrapper","_Spinner","_FormFieldLabel","_InputFile","_ValidationMessages","_button","_FileAttachmentsList","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","props","createElement","HookFormWrapper","formContext","DragAndDropFileUploadField","label","field","showSpinner","fileDisplayStyle","fileListSettings","fileList","validation","customContent","customCssClasses","labelStyle","labelAsButtonStyles","color","variant","labelUploadIcon","arrowUpFromBracket","multiple","restrictionsTxt","validFiles","extensions","DEFAULT_UPLOAD_FILE_EXTENSIONS","fileTypes","DEFAULT_UPLOAD_FILE_TYPES","maxFileCount","maxFileSize","onFilesChange","setValue","trigger","useFormContext","activeFileList","setFileList","useState","isTouched","setIsTouched","isDragActive","setIsDragActive","inputId","id","inputElRef","useRef","dialogOpenRef","useEffect","current","document","getElementById","onFocus","noneSelected","files","length","name","window","addEventListener","removeEventListener","supportedFileTypes","useMemo","join","validateAndCommit","useCallback","validated","filter","file","ext","split","pop","toLowerCase","isBlacklisted","BLACKLISTED_FILE_TYPES","includes","isValidExt","isValidSize","size","clipped","slice","shouldValidate","shouldDirty","shouldTouch","handleFileInputChange","event","target","Array","from","handleDrop","dropped","handleFilesEdited","wrapperCssClass","wrapper","position","labelProps","isRequired","required","labelStyleAsButtonClasses","generateButtonClass","cssClass","buttonStyle","hideLabel","hide","labelCssClass","className","onDragOver","preventDefault","onDragLeave","currentTarget","onDrop","dataTransfer","labelId","htmlFor","onClick","renderIcon","FormFieldLabel","InputFile","type","defaultValue","accept","onInput","Spinner","map","index","key","ValidationMessages","FileAttachmentsList","customFileListSettings","onFilesRemoved","onFilesEdited","_default"],"sources":["../../../../../../../../../src/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.tsx"],"sourcesContent":["'use client';\n\nimport React, { FormEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { arrowUpFromBracket } from '@x15ventures/x15-ui-library-icons/iconDefinitions';\nimport { useFormContext } from 'react-hook-form';\nimport { renderIcon } from '../../../../../../../helpers/iconHelpers';\nimport { HookFormWrapper } from '../../../../../hookFormWrapper/HookFormWrapper';\nimport { Spinner } from '../../../../../../design/spinner/Spinner';\nimport { FormFieldLabel } from '../../../../subComponents/labels/FormFieldLabel';\nimport { InputFile } from '../../../../subComponents/inputs/file/InputFile';\nimport { ValidationMessages } from '../../../../../validation/ValidationMessages';\nimport { generateButtonClass } from '../../../../../buttons/button.helpers';\nimport { FileAttachmentsList } from '../fileAttachmentList/FileAttachmentsList';\nimport { DragAndDropFileUploadProps } from '../fileInputProps';\nimport {\n DEFAULT_UPLOAD_FILE_EXTENSIONS,\n DEFAULT_UPLOAD_FILE_TYPES,\n BLACKLISTED_FILE_TYPES\n} from '../../../../../../../constants';\n\nimport './dragAndDropFileUpload.scss';\n\nexport const DragAndDropFileUpload: React.FC<DragAndDropFileUploadProps> = (props) => (\n <HookFormWrapper formContext={ props.formContext }>\n <DragAndDropFileUploadField { ...props } />\n </HookFormWrapper>\n);\n\nconst DragAndDropFileUploadField: React.FC<DragAndDropFileUploadProps> = (\n {\n label,\n field,\n showSpinner,\n fileDisplayStyle = 'names',\n fileListSettings,\n fileList,\n validation,\n customContent,\n customCssClasses,\n labelStyle = 'dragArea',\n labelAsButtonStyles = { color: 'primary', variant: 'outline' },\n labelUploadIcon = arrowUpFromBracket,\n multiple = false,\n restrictionsTxt = '',\n validFiles = {\n extensions: DEFAULT_UPLOAD_FILE_EXTENSIONS,\n fileTypes: DEFAULT_UPLOAD_FILE_TYPES,\n maxFileCount: 5,\n maxFileSize: 52428800 // 50 MB\n },\n onFilesChange = () => {}\n }\n) => {\n const { setValue, trigger } = useFormContext();\n\n const [activeFileList, setFileList] = useState<File[]>(fileList || []);\n const [isTouched, setIsTouched] = useState(false);\n const [isDragActive, setIsDragActive] = useState(false);\n\n const inputId = field.id;\n const inputElRef = useRef<HTMLInputElement | null>(null);\n const dialogOpenRef = useRef(false);\n\n useEffect(() => {\n inputElRef.current = document.getElementById(inputId) as HTMLInputElement | null;\n }, [inputId]);\n\n // Detect “Cancel” -> dialog closes, window regains focus, but input had no change.\n useEffect(() => {\n const onFocus = () => {\n if (!dialogOpenRef.current) { return; }\n dialogOpenRef.current = false;\n const noneSelected = !inputElRef.current?.files?.length;\n if (noneSelected) {\n // Trigger React Hook Form validators (e.g., required)\n trigger(field.name);\n }\n };\n window.addEventListener('focus', onFocus);\n return () => window.removeEventListener('focus', onFocus);\n }, [trigger, field.name]);\n\n const supportedFileTypes = useMemo(\n () => validFiles?.fileTypes?.join(', ') || '',\n [validFiles?.fileTypes]\n );\n\n const validateAndCommit = useCallback(\n (files: File[]) => {\n // basic validations\n const validated = files.filter((file) => {\n const ext = file.name.split('.').pop()?.toLowerCase() || '';\n const isBlacklisted = BLACKLISTED_FILE_TYPES.includes(ext);\n const isValidExt = validFiles.extensions ? validFiles.extensions.includes(ext) : true;\n const isValidSize = validFiles.maxFileSize ? file.size <= validFiles.maxFileSize : true;\n return !isBlacklisted && isValidExt && isValidSize;\n });\n\n const clipped = validFiles.maxFileCount\n ? validated.slice(0, validFiles.maxFileCount)\n : validated;\n\n setFileList(clipped);\n setIsTouched(true);\n\n setValue(field.name, clipped.length ? clipped : null, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n\n onFilesChange(clipped);\n },\n [field.name, onFilesChange, setValue, fileDisplayStyle, validFiles]\n );\n\n const handleFileInputChange = useCallback((event: FormEvent<HTMLInputElement>) => {\n const target = event.target as HTMLInputElement;\n const files = Array.from(target.files ?? []);\n validateAndCommit(files);\n trigger(field.name);\n dialogOpenRef.current = false;\n }, [trigger, field.name, validateAndCommit]);\n\n const handleDrop = useCallback((dropped: File[]) => {\n validateAndCommit(dropped);\n trigger(field.name);\n }, [trigger, field.name, validateAndCommit]);\n\n const handleFilesEdited = useCallback((files: File[]) => {\n // No need to validate again as they were already validated\n // Changes may include renaming or removing files\n setFileList(files);\n setValue(field.name, files.length > 0 ? files : null, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n onFilesChange(files);\n }, [field.name, setValue, onFilesChange]);\n\n const wrapperCssClass = `\n formField \n dragAndDropFileUpload \n ${ fileDisplayStyle === 'list' ? 'withFileList' : '' } \n ${ labelStyle || '' }Style \n ${ customCssClasses?.wrapper || '' } \n ${ isTouched ? 'touched' : '' } \n ${ typeof validation !== 'undefined' ? 'withValidation' : '' } \n ${ label?.position === 'inset' ? 'insetLabel' : '' } \n ${ isDragActive ? 'isDragActive' : '' }\n `;\n\n const labelProps = {\n ...label,\n inputId: inputId,\n isRequired: validation && typeof validation.required !== 'undefined',\n customContent\n };\n\n const labelStyleAsButtonClasses = generateButtonClass({\n cssClass: 'button dragAndDropFileUploadButtonLabel',\n buttonStyle: labelAsButtonStyles,\n hideLabel: label.hide\n });\n\n const labelCssClass = `\n ${ labelStyle === 'button' ? labelStyleAsButtonClasses : '' }\n ${ customCssClasses?.label || '' } \n ${ showSpinner ? 'withSpinner' : '' } \n ${ label.hide ? 'hiddenLabel' : '' }\n `;\n\n return (\n <div\n className={ wrapperCssClass }\n onDragOver={ (e) => {\n e.preventDefault();\n if (!isDragActive) setIsDragActive(true);\n } }\n onDragLeave={ (e) => {\n if (e.currentTarget === e.target) setIsDragActive(false);\n } }\n onDrop={ (e) => {\n e.preventDefault();\n setIsDragActive(false);\n const files = Array.from(e.dataTransfer?.files ?? []);\n handleDrop(files);\n } }\n >\n <label\n id={ label.labelId || `${ inputId }_label` }\n className={ labelCssClass }\n htmlFor={ inputId }\n onClick={ () => { dialogOpenRef.current = true; } }\n >\n <span className=\"dragAndDropFileUploadLabel\">\n { renderIcon(labelUploadIcon) }\n <FormFieldLabel { ...labelProps } />\n { restrictionsTxt && <span className=\"fileRestrictionsText\">{ restrictionsTxt }</span> }\n </span>\n\n <span className=\"inputContainer\">\n <InputFile\n {\n ...{\n label,\n field: {\n ...field,\n type: 'file',\n id: inputId, // ensure we can query it by id\n defaultValue: '',\n multiple,\n accept: supportedFileTypes,\n onInput: (event: FormEvent<HTMLInputElement>) => {\n handleFileInputChange(event);\n }\n },\n validation,\n showSpinner,\n customCssClasses,\n customContent\n }\n }\n />\n </span>\n\n { showSpinner && <Spinner /> }\n\n { fileDisplayStyle === 'names' && activeFileList.length > 0 && (\n <span className=\"uploadedFileNames\">\n { activeFileList.map((file, index) => (\n <small key={ index } className=\"uploadedFileName\">\n { file.name }{ index < activeFileList.length - 1 ? ', ' : '' }\n </small>\n )) }\n </span>\n ) }\n\n <ValidationMessages name={ field.name } validation={ validation } />\n </label>\n\n { fileDisplayStyle === 'list' && activeFileList.length > 0 && (\n <FileAttachmentsList\n customFileListSettings={ fileListSettings }\n files={ activeFileList }\n onFilesRemoved={ handleFilesEdited }\n onFilesEdited={ handleFilesEdited }\n />\n ) }\n </div>\n );\n};\n\nexport default { DragAndDropFileUpload };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DragAndDropFileUpload.js","names":["Object","defineProperty","exports","value","default","DragAndDropFileUpload","_react","_interopRequireWildcard","require","_iconDefinitions","_reactHookForm","_fileHelpers","_iconHelpers","_HookFormWrapper","_Spinner","_FormFieldLabel","_InputFile","_ValidationMessages","_button","_FileAttachmentsList","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","getUploadExtension","fileName","getFileExtension","startsWith","DEFAULT_VALID_FILES","extensions","DEFAULT_UPLOAD_FILE_EXTENSIONS","fileTypes","DEFAULT_UPLOAD_FILE_TYPES","maxFileCount","maxFileSize","resolveValidFiles","customValidFiles","customisesTypes","matchesFileTypes","file","extension","name","mimeType","type","toLowerCase","some","token","normalised","trim","slice","endsWith","props","createElement","HookFormWrapper","formContext","DragAndDropFileUploadField","label","field","showSpinner","fileDisplayStyle","fileListSettings","fileList","validation","customContent","customCssClasses","labelStyle","labelAsButtonStyles","color","variant","labelUploadIcon","arrowUpFromBracket","multiple","restrictionsTxt","validFiles","onFilesChange","useMemo","setValue","trigger","useFormContext","activeFileList","setFileList","useState","isTouched","setIsTouched","isDragActive","setIsDragActive","inputId","id","inputElRef","useRef","dialogOpenRef","useEffect","current","document","getElementById","onFocus","noneSelected","files","length","window","addEventListener","removeEventListener","supportedFileTypes","join","isFileAllowed","useCallback","ext","isBlacklisted","BLACKLISTED_FILE_TYPES","includes","isValidExt","isValidSize","size","validateAndCommit","validated","filter","clipped","shouldValidate","shouldDirty","shouldTouch","handleFileInputChange","event","target","Array","from","handleDrop","dropped","handleFilesEdited","editedFiles","wrapperCssClass","wrapper","position","labelProps","isRequired","required","labelStyleAsButtonClasses","generateButtonClass","cssClass","buttonStyle","hideLabel","hide","labelCssClass","className","onDragOver","preventDefault","onDragLeave","currentTarget","onDrop","dataTransfer","labelId","htmlFor","onClick","renderIcon","FormFieldLabel","InputFile","defaultValue","accept","onInput","Spinner","map","index","key","ValidationMessages","FileAttachmentsList","customFileListSettings","onFilesRemoved","onFilesEdited","_default"],"sources":["../../../../../../../../../src/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.tsx"],"sourcesContent":["'use client';\n\nimport React, { FormEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { arrowUpFromBracket } from '@x15ventures/x15-ui-library-icons/iconDefinitions';\nimport { useFormContext } from 'react-hook-form';\nimport { getFileExtension } from '../../../../../../../helpers/fileHelpers';\nimport { renderIcon } from '../../../../../../../helpers/iconHelpers';\nimport { HookFormWrapper } from '../../../../../hookFormWrapper/HookFormWrapper';\nimport { Spinner } from '../../../../../../design/spinner/Spinner';\nimport { FormFieldLabel } from '../../../../subComponents/labels/FormFieldLabel';\nimport { InputFile } from '../../../../subComponents/inputs/file/InputFile';\nimport { ValidationMessages } from '../../../../../validation/ValidationMessages';\nimport { generateButtonClass } from '../../../../../buttons/button.helpers';\nimport { FileAttachmentsList } from '../fileAttachmentList/FileAttachmentsList';\nimport { DragAndDropFileUploadProps } from '../fileInputProps';\nimport {\n DEFAULT_UPLOAD_FILE_EXTENSIONS,\n DEFAULT_UPLOAD_FILE_TYPES,\n BLACKLISTED_FILE_TYPES\n} from '../../../../../../../constants';\n\nimport './dragAndDropFileUpload.scss';\n\n// A dot-file such as `.exe` has no extension by convention, but its name is still checked as one so\n// it cannot slip past the blacklist.\nconst getUploadExtension = (fileName: string): string =>\n getFileExtension(fileName.startsWith('.') ? `upload${ fileName }` : fileName);\n\ntype ValidFiles = NonNullable<DragAndDropFileUploadProps['validFiles']>;\n\nconst DEFAULT_VALID_FILES: ValidFiles = {\n extensions: DEFAULT_UPLOAD_FILE_EXTENSIONS,\n fileTypes: DEFAULT_UPLOAD_FILE_TYPES,\n maxFileCount: 5,\n maxFileSize: 52428800 // 50 MB\n};\n\n/*\n Limits-only configurations keep the default type restrictions. Once either `extensions` or\n `fileTypes` is supplied (even as undefined), both are taken from the configuration so the picker\n filter and the validation cannot disagree.\n */\nconst resolveValidFiles = (customValidFiles?: ValidFiles): ValidFiles => {\n if (!customValidFiles) {\n return DEFAULT_VALID_FILES;\n }\n const customisesTypes = 'extensions' in customValidFiles || 'fileTypes' in customValidFiles;\n return customisesTypes\n ? {\n ...DEFAULT_VALID_FILES,\n ...customValidFiles,\n extensions: customValidFiles.extensions,\n fileTypes: customValidFiles.fileTypes\n }\n : { ...DEFAULT_VALID_FILES, ...customValidFiles };\n};\n\n// Matches a file against `accept`-style tokens: `.ext`, `type/*` or an exact MIME type.\nconst matchesFileTypes = (file: File, fileTypes: string[]): boolean => {\n const extension = getUploadExtension(file.name);\n const mimeType = file.type.toLowerCase();\n return fileTypes.some((token) => {\n const normalised = token.trim().toLowerCase();\n if (normalised.startsWith('.')) {\n return normalised.slice(1) === extension;\n }\n if (normalised.endsWith('/*')) {\n return mimeType.startsWith(normalised.slice(0, -1));\n }\n return normalised !== '' && normalised === mimeType;\n });\n};\n\nexport const DragAndDropFileUpload: React.FC<DragAndDropFileUploadProps> = (props) => (\n <HookFormWrapper formContext={ props.formContext }>\n <DragAndDropFileUploadField { ...props } />\n </HookFormWrapper>\n);\n\nconst DragAndDropFileUploadField: React.FC<DragAndDropFileUploadProps> = (\n {\n label,\n field,\n showSpinner,\n fileDisplayStyle = 'names',\n fileListSettings,\n fileList,\n validation,\n customContent,\n customCssClasses,\n labelStyle = 'dragArea',\n labelAsButtonStyles = { color: 'primary', variant: 'outline' },\n labelUploadIcon = arrowUpFromBracket,\n multiple = false,\n restrictionsTxt = '',\n validFiles: customValidFiles,\n onFilesChange = () => {}\n }\n) => {\n const validFiles = useMemo(() => resolveValidFiles(customValidFiles), [customValidFiles]);\n const { setValue, trigger } = useFormContext();\n\n const [activeFileList, setFileList] = useState<File[]>(fileList || []);\n const [isTouched, setIsTouched] = useState(false);\n const [isDragActive, setIsDragActive] = useState(false);\n\n const inputId = field.id;\n const inputElRef = useRef<HTMLInputElement | null>(null);\n const dialogOpenRef = useRef(false);\n\n useEffect(() => {\n inputElRef.current = document.getElementById(inputId) as HTMLInputElement | null;\n }, [inputId]);\n\n // Detect “Cancel” -> dialog closes, window regains focus, but input had no change.\n useEffect(() => {\n const onFocus = () => {\n if (!dialogOpenRef.current) { return; }\n dialogOpenRef.current = false;\n const noneSelected = !inputElRef.current?.files?.length;\n if (noneSelected) {\n // Trigger React Hook Form validators (e.g., required)\n trigger(field.name);\n }\n };\n window.addEventListener('focus', onFocus);\n return () => window.removeEventListener('focus', onFocus);\n }, [trigger, field.name]);\n\n const supportedFileTypes = useMemo(\n () => validFiles?.fileTypes?.join(', ') || '',\n [validFiles?.fileTypes]\n );\n\n const isFileAllowed = useCallback((file: File) => {\n const ext = getUploadExtension(file.name);\n const isBlacklisted = BLACKLISTED_FILE_TYPES.includes(ext);\n // Without an extension allowlist, the picker's file types are enforced so dropped files obey them too.\n const isValidExt = validFiles.extensions\n ? validFiles.extensions.includes(ext)\n : validFiles.fileTypes?.length ? matchesFileTypes(file, validFiles.fileTypes) : true;\n const isValidSize = validFiles.maxFileSize ? file.size <= validFiles.maxFileSize : true;\n return !isBlacklisted && isValidExt && isValidSize;\n }, [validFiles]);\n\n const validateAndCommit = useCallback(\n (files: File[]) => {\n const validated = files.filter(isFileAllowed);\n\n const clipped = validFiles.maxFileCount\n ? validated.slice(0, validFiles.maxFileCount)\n : validated;\n\n setFileList(clipped);\n setIsTouched(true);\n\n setValue(field.name, clipped.length ? clipped : null, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n\n onFilesChange(clipped);\n },\n [field.name, onFilesChange, setValue, isFileAllowed, validFiles]\n );\n\n const handleFileInputChange = useCallback((event: FormEvent<HTMLInputElement>) => {\n const target = event.target as HTMLInputElement;\n const files = Array.from(target.files ?? []);\n validateAndCommit(files);\n trigger(field.name);\n dialogOpenRef.current = false;\n }, [trigger, field.name, validateAndCommit]);\n\n const handleDrop = useCallback((dropped: File[]) => {\n validateAndCommit(dropped);\n trigger(field.name);\n }, [trigger, field.name, validateAndCommit]);\n\n const handleFilesEdited = useCallback((editedFiles: File[]) => {\n // Edits may rename files, so they are checked again: renaming `notes.txt` to `notes.exe` must not\n // get past the extension rules the original name passed.\n const files = editedFiles.filter(isFileAllowed);\n setFileList(files);\n setValue(field.name, files.length > 0 ? files : null, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n onFilesChange(files);\n }, [field.name, setValue, onFilesChange, isFileAllowed]);\n\n const wrapperCssClass = `\n formField \n dragAndDropFileUpload \n ${ fileDisplayStyle === 'list' ? 'withFileList' : '' } \n ${ labelStyle || '' }Style \n ${ customCssClasses?.wrapper || '' } \n ${ isTouched ? 'touched' : '' } \n ${ typeof validation !== 'undefined' ? 'withValidation' : '' } \n ${ label?.position === 'inset' ? 'insetLabel' : '' } \n ${ isDragActive ? 'isDragActive' : '' }\n `;\n\n const labelProps = {\n ...label,\n inputId: inputId,\n isRequired: validation && typeof validation.required !== 'undefined',\n customContent\n };\n\n const labelStyleAsButtonClasses = generateButtonClass({\n cssClass: 'button dragAndDropFileUploadButtonLabel',\n buttonStyle: labelAsButtonStyles,\n hideLabel: label.hide\n });\n\n const labelCssClass = `\n ${ labelStyle === 'button' ? labelStyleAsButtonClasses : '' }\n ${ customCssClasses?.label || '' } \n ${ showSpinner ? 'withSpinner' : '' } \n ${ label.hide ? 'hiddenLabel' : '' }\n `;\n\n return (\n <div\n className={ wrapperCssClass }\n onDragOver={ (e) => {\n e.preventDefault();\n if (!isDragActive) setIsDragActive(true);\n } }\n onDragLeave={ (e) => {\n if (e.currentTarget === e.target) setIsDragActive(false);\n } }\n onDrop={ (e) => {\n e.preventDefault();\n setIsDragActive(false);\n const files = Array.from(e.dataTransfer?.files ?? []);\n handleDrop(files);\n } }\n >\n <label\n id={ label.labelId || `${ inputId }_label` }\n className={ labelCssClass }\n htmlFor={ inputId }\n onClick={ () => { dialogOpenRef.current = true; } }\n >\n <span className=\"dragAndDropFileUploadLabel\">\n { renderIcon(labelUploadIcon) }\n <FormFieldLabel { ...labelProps } />\n { restrictionsTxt && <span className=\"fileRestrictionsText\">{ restrictionsTxt }</span> }\n </span>\n\n <span className=\"inputContainer\">\n <InputFile\n {\n ...{\n label,\n field: {\n ...field,\n type: 'file',\n id: inputId, // ensure we can query it by id\n defaultValue: '',\n multiple,\n accept: supportedFileTypes,\n onInput: (event: FormEvent<HTMLInputElement>) => {\n handleFileInputChange(event);\n }\n },\n validation,\n showSpinner,\n customCssClasses,\n customContent\n }\n }\n />\n </span>\n\n { showSpinner && <Spinner /> }\n\n { fileDisplayStyle === 'names' && activeFileList.length > 0 && (\n <span className=\"uploadedFileNames\">\n { activeFileList.map((file, index) => (\n <small key={ index } className=\"uploadedFileName\">\n { file.name }{ index < activeFileList.length - 1 ? ', ' : '' }\n </small>\n )) }\n </span>\n ) }\n\n <ValidationMessages name={ field.name } validation={ validation } />\n </label>\n\n { fileDisplayStyle === 'list' && activeFileList.length > 0 && (\n <FileAttachmentsList\n customFileListSettings={ fileListSettings }\n files={ activeFileList }\n onFilesRemoved={ handleFilesEdited }\n onFilesEdited={ handleFilesEdited }\n />\n ) }\n </div>\n );\n};\n\nexport default { DragAndDropFileUpload };\n"],"mappings":"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","ignoreList":[]}
@@ -7,13 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = exports.Link = void 0;
9
9
  var _react = _interopRequireDefault(require("react"));
10
+ var _urlHelpers = require("../../../helpers/urlHelpers");
10
11
  const Link = ({
11
12
  href,
12
13
  label,
13
14
  target = '_self',
14
15
  customCssClass = ''
15
16
  }) => /*#__PURE__*/_react.default.createElement("a", {
16
- href: href,
17
+ href: (0, _urlHelpers.getSafeLinkHref)(href),
17
18
  title: label,
18
19
  target: target,
19
20
  className: `link ${customCssClass}`,
@@ -1 +1 @@
1
- {"version":3,"file":"Link.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","default","Link","_react","href","label","target","customCssClass","createElement","title","className","rel","undefined","_default"],"sources":["../../../../../src/components/navigation/link/Link.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n\nexport interface LinkProps {\n href: string;\n label: string;\n target?: '_self' | '_blank' | '_parent' | '_top';\n customCssClass?: string;\n}\n\nexport const Link: React.FC<LinkProps> = ({\n href,\n label,\n target = '_self',\n customCssClass = ''\n}) => (\n <a\n href={ href }\n title={ label }\n target={ target }\n className={ `link ${ customCssClass }` }\n rel={ target === '_blank' ? 'noopener noreferrer' : undefined }\n >\n { label }\n </a>\n);\n\nexport default Link;"],"mappings":";AAAA,YAAY;;AAAC,IAAAA,sBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,OAAA,GAAAF,OAAA,CAAAG,IAAA;AAEb,IAAAC,MAAA,GAAAR,sBAAA,CAAAC,OAAA;AASO,MAAMM,IAAyB,GAAGA,CAAC;EACxCE,IAAI;EACJC,KAAK;EACLC,MAAM,GAAG,OAAO;EAChBC,cAAc,GAAG;AACnB,CAAC,kBACCJ,MAAA,CAAAF,OAAA,CAAAO,aAAA;EACEJ,IAAI,EAAGA,IAAM;EACbK,KAAK,EAAGJ,KAAO;EACfC,MAAM,EAAGA,MAAQ;EACjBI,SAAS,EAAG,QAASH,cAAc,EAAK;EACxCI,GAAG,EAAGL,MAAM,KAAK,QAAQ,GAAG,qBAAqB,GAAGM;AAAW,GAE7DP,KACD,CACJ;AAACN,OAAA,CAAAG,IAAA,GAAAA,IAAA;AAAA,IAAAW,QAAA,GAAAd,OAAA,CAAAE,OAAA,GAEaC,IAAI","ignoreList":[]}
1
+ {"version":3,"file":"Link.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","default","Link","_react","_urlHelpers","href","label","target","customCssClass","createElement","getSafeLinkHref","title","className","rel","undefined","_default"],"sources":["../../../../../src/components/navigation/link/Link.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport { getSafeLinkHref } from '../../../helpers/urlHelpers';\n\nexport interface LinkProps {\n href: string;\n label: string;\n target?: '_self' | '_blank' | '_parent' | '_top';\n customCssClass?: string;\n}\n\nexport const Link: React.FC<LinkProps> = ({\n href,\n label,\n target = '_self',\n customCssClass = ''\n}) => (\n <a\n href={ getSafeLinkHref(href) }\n title={ label }\n target={ target }\n className={ `link ${ customCssClass }` }\n rel={ target === '_blank' ? 'noopener noreferrer' : undefined }\n >\n { label }\n </a>\n);\n\nexport default Link;"],"mappings":";AAAA,YAAY;;AAAC,IAAAA,sBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,OAAA,GAAAF,OAAA,CAAAG,IAAA;AAEb,IAAAC,MAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AASO,MAAMM,IAAyB,GAAGA,CAAC;EACxCG,IAAI;EACJC,KAAK;EACLC,MAAM,GAAG,OAAO;EAChBC,cAAc,GAAG;AACnB,CAAC,kBACCL,MAAA,CAAAF,OAAA,CAAAQ,aAAA;EACEJ,IAAI,EAAG,IAAAK,2BAAe,EAACL,IAAI,CAAG;EAC9BM,KAAK,EAAGL,KAAO;EACfC,MAAM,EAAGA,MAAQ;EACjBK,SAAS,EAAG,QAASJ,cAAc,EAAK;EACxCK,GAAG,EAAGN,MAAM,KAAK,QAAQ,GAAG,qBAAqB,GAAGO;AAAW,GAE7DR,KACD,CACJ;AAACP,OAAA,CAAAG,IAAA,GAAAA,IAAA;AAAA,IAAAa,QAAA,GAAAhB,OAAA,CAAAE,OAAA,GAEaC,IAAI","ignoreList":[]}
@@ -9,9 +9,11 @@ var _react = _interopRequireWildcard(require("react"));
9
9
  var _ThemeSwitch = require("../themeSwitch/ThemeSwitch");
10
10
  var _UserContextProvider = require("../../../contextProviders/userContext/UserContextProvider");
11
11
  var _SimpleButton = require("../../form/buttons/SimpleButton");
12
- require("./devToolbar.css");
13
12
  var _SidePanel = require("../../design/sidePanel/SidePanel");
13
+ require("./devToolbar.css");
14
14
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
+ // @ts-ignore SCSS side-effect imports are handled by the bundler.
16
+
15
17
  const DevToolbar = () => {
16
18
  const context = (0, _react.useContext)(_UserContextProvider.UserContext);
17
19
  const env = process.env.NODE_ENV;
@@ -42,8 +44,8 @@ const DevToolbar = () => {
42
44
  }
43
45
  }
44
46
  }
45
- } catch (e) {
46
- console.error('Could not access stylesheet:', e);
47
+ } catch {
48
+ console.warn('Could not access stylesheet.');
47
49
  }
48
50
  }
49
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DevToolbar.js","names":["Object","defineProperty","exports","value","DevToolbar","_react","_interopRequireWildcard","require","_ThemeSwitch","_UserContextProvider","_SimpleButton","_SidePanel","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","context","useContext","UserContext","env","process","NODE_ENV","handleThemeChange","newTheme","applyThemeChange","listThemeCssVariables","stylesheets","document","styleSheets","length","stylesheet","ownerNode","id","includes","rules","cssRules","j","rule","CSSStyleRule","selectorText","k","style","prop","startsWith","console","log","getPropertyValue","trim","error","createElement","SidePanel","open","size","position","panelLabel","className","ThemeSwitch","onThemeChangeAction","SimpleButton","cssClass","label","onClickHandler"],"sources":["../../../../../src/components/testing/devToolbar/DevToolbar.tsx"],"sourcesContent":["'use client';\n\nimport React, { useContext } from 'react';\nimport { ThemeSwitch } from '../themeSwitch/ThemeSwitch';\nimport { UserContext } from '../../../contextProviders/userContext/UserContextProvider';\nimport { SimpleButton } from '../../form/buttons/SimpleButton';\n\nimport './devToolbar.scss';\nimport { SidePanel } from '../../design/sidePanel/SidePanel';\n\nexport const DevToolbar: React.FC = () => {\n const context = useContext(UserContext);\n\n const env = process.env.NODE_ENV;\n\n const handleThemeChange = (newTheme: string) => {\n if (context && context?.applyThemeChange) {\n context.applyThemeChange(newTheme);\n }\n };\n\n const listThemeCssVariables = () => {\n const stylesheets = document.styleSheets;\n\n // Loop through all stylesheets\n for (let i = 0; i < stylesheets.length; i += 1) {\n const stylesheet = stylesheets[i];\n\n if (stylesheet && stylesheet.ownerNode && 'id' in stylesheet.ownerNode && stylesheet.ownerNode.id.includes('x15-ui-library-theme')) {\n try {\n const rules = stylesheet.cssRules || stylesheet.rules;\n for (let j = 0; j < rules.length; j += 1) {\n const rule = rules[j];\n\n if (rule instanceof CSSStyleRule) {\n if (rule.selectorText === ':root') {\n for (let k = 0; k < rule.style.length; k += 1) {\n const prop = rule.style[k];\n if (prop.startsWith('--')) {\n console.log(`${ prop }: ${ rule.style.getPropertyValue(prop).trim() }`);\n }\n }\n }\n }\n }\n } catch (e) {\n console.error('Could not access stylesheet:', e);\n }\n }\n }\n };\n\n return (\n <SidePanel {\n ...{\n id: 'devToolbar',\n open: true,\n size: 's',\n position: 'top',\n panelLabel: 'dev toolbar'\n }\n }\n >\n <aside className=\"devToolbar\">\n <div>Environment: { env }</div>\n <ThemeSwitch onThemeChangeAction={ handleThemeChange } />\n <SimpleButton cssClass=\"button primary compact\" label=\"List css variables\" id=\"devCssTool\" onClickHandler={ listThemeCssVariables } />\n </aside>\n </SidePanel>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DevToolbar.js","names":["Object","defineProperty","exports","value","DevToolbar","_react","_interopRequireWildcard","require","_ThemeSwitch","_UserContextProvider","_SimpleButton","_SidePanel","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","context","useContext","UserContext","env","process","NODE_ENV","handleThemeChange","newTheme","applyThemeChange","listThemeCssVariables","stylesheets","document","styleSheets","length","stylesheet","ownerNode","id","includes","rules","cssRules","j","rule","CSSStyleRule","selectorText","k","style","prop","startsWith","console","log","getPropertyValue","trim","warn","createElement","SidePanel","open","size","position","panelLabel","className","ThemeSwitch","onThemeChangeAction","SimpleButton","cssClass","label","onClickHandler"],"sources":["../../../../../src/components/testing/devToolbar/DevToolbar.tsx"],"sourcesContent":["'use client';\n\nimport React, { useContext } from 'react';\nimport { ThemeSwitch } from '../themeSwitch/ThemeSwitch';\nimport { UserContext } from '../../../contextProviders/userContext/UserContextProvider';\nimport { SimpleButton } from '../../form/buttons/SimpleButton';\nimport { SidePanel } from '../../design/sidePanel/SidePanel';\n\n// @ts-ignore SCSS side-effect imports are handled by the bundler.\nimport './devToolbar.scss';\n\nexport const DevToolbar: React.FC = () => {\n const context = useContext(UserContext);\n\n const env = process.env.NODE_ENV;\n\n const handleThemeChange = (newTheme: string) => {\n if (context && context?.applyThemeChange) {\n context.applyThemeChange(newTheme);\n }\n };\n\n const listThemeCssVariables = () => {\n const stylesheets = document.styleSheets;\n\n // Loop through all stylesheets\n for (let i = 0; i < stylesheets.length; i += 1) {\n const stylesheet = stylesheets[i];\n\n if (stylesheet && stylesheet.ownerNode && 'id' in stylesheet.ownerNode && stylesheet.ownerNode.id.includes('x15-ui-library-theme')) {\n try {\n const rules = stylesheet.cssRules || stylesheet.rules;\n for (let j = 0; j < rules.length; j += 1) {\n const rule = rules[j];\n\n if (rule instanceof CSSStyleRule) {\n if (rule.selectorText === ':root') {\n for (let k = 0; k < rule.style.length; k += 1) {\n const prop = rule.style[k];\n if (prop.startsWith('--')) {\n console.log(`${ prop }: ${ rule.style.getPropertyValue(prop).trim() }`);\n }\n }\n }\n }\n }\n } catch {\n console.warn('Could not access stylesheet.');\n }\n }\n }\n };\n\n return (\n <SidePanel {\n ...{\n id: 'devToolbar',\n open: true,\n size: 's',\n position: 'top',\n panelLabel: 'dev toolbar'\n }\n }\n >\n <aside className=\"devToolbar\">\n <div>Environment: { env }</div>\n <ThemeSwitch onThemeChangeAction={ handleThemeChange } />\n <SimpleButton cssClass=\"button primary compact\" label=\"List css variables\" id=\"devCssTool\" onClickHandler={ listThemeCssVariables } />\n </aside>\n </SidePanel>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -6,13 +6,18 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = exports.DEFAULT_UPLOAD_FILE_TYPES = exports.DEFAULT_UPLOAD_FILE_EXTENSIONS = exports.BLACKLISTED_FILE_TYPES = void 0;
7
7
  const BLACKLISTED_FILE_TYPES = exports.BLACKLISTED_FILE_TYPES = [
8
8
  // Executable files
9
- 'exe', 'msi', 'msp', 'com', 'dll', 'ocx', 'sys', 'hta',
9
+ 'exe', 'msi', 'msp', 'com', 'dll', 'ocx', 'sys', 'hta', 'scr', 'pif', 'cpl', 'msc', 'mst', 'jar', 'gadget', 'application', 'appx', 'appxbundle', 'msix', 'msixbundle',
10
10
  // Batch, script or config files
11
- 'sh', 'cmd', 'bat', 'ps1', 'ps2', 'ini', 'config',
11
+ 'sh', 'cmd', 'bat', 'ps1', 'ps2', 'psm1', 'psd1', 'ps1xml', 'js', 'jse', 'vbs', 'vbe', 'wsf', 'wsh', 'ws', 'reg', 'inf', 'ini', 'config',
12
+ // Help files and disk images, which can carry or mount executables
13
+ 'chm', 'iso', 'img', 'vhd', 'vhdx',
12
14
  // Shortcuts
13
15
  'lnk', 'url', 'scf'];
14
- const DEFAULT_UPLOAD_FILE_TYPES = exports.DEFAULT_UPLOAD_FILE_TYPES = ['.json', '.xml', '.csv', 'image/png', 'image/jpeg', 'image/gif', 'image/svg+xml', 'text/plain', 'text/markdown', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/pdf'];
15
- const DEFAULT_UPLOAD_FILE_EXTENSIONS = exports.DEFAULT_UPLOAD_FILE_EXTENSIONS = ['json', 'xml', 'csv', 'png', 'jpg', 'jpeg', 'gif', 'svg', 'txt', 'md', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf'];
16
+
17
+ // SVG is deliberately absent from the defaults: an SVG can carry script, which runs if the app later
18
+ // serves the upload from its own origin. Apps that need SVG uploads can opt in through validFiles.
19
+ const DEFAULT_UPLOAD_FILE_TYPES = exports.DEFAULT_UPLOAD_FILE_TYPES = ['.json', '.xml', '.csv', '.eml', 'image/png', 'image/jpeg', 'image/gif', 'text/plain', 'text/markdown', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/pdf'];
20
+ const DEFAULT_UPLOAD_FILE_EXTENSIONS = exports.DEFAULT_UPLOAD_FILE_EXTENSIONS = ['json', 'xml', 'csv', 'eml', 'png', 'jpg', 'jpeg', 'gif', 'txt', 'md', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf'];
16
21
  var _default = exports.default = {
17
22
  BLACKLISTED_FILE_TYPES,
18
23
  DEFAULT_UPLOAD_FILE_TYPES,
@@ -1 +1 @@
1
- {"version":3,"file":"fileUploadTypes.js","names":["BLACKLISTED_FILE_TYPES","exports","DEFAULT_UPLOAD_FILE_TYPES","DEFAULT_UPLOAD_FILE_EXTENSIONS","_default","default"],"sources":["../../../src/constants/fileUploadTypes.ts"],"sourcesContent":["export const BLACKLISTED_FILE_TYPES = [\n // Executable files\n 'exe',\n 'msi',\n 'msp',\n 'com',\n 'dll',\n 'ocx',\n 'sys',\n 'hta',\n // Batch, script or config files\n 'sh',\n 'cmd',\n 'bat',\n 'ps1',\n 'ps2',\n 'ini',\n 'config',\n // Shortcuts\n 'lnk',\n 'url',\n 'scf',\n];\n\nexport const DEFAULT_UPLOAD_FILE_TYPES = [\n '.json',\n '.xml',\n '.csv',\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'image/svg+xml',\n 'text/plain',\n 'text/markdown',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/pdf'\n];\n\nexport const DEFAULT_UPLOAD_FILE_EXTENSIONS = [\n 'json',\n 'xml',\n 'csv',\n 'png',\n 'jpg',\n 'jpeg',\n 'gif',\n 'svg',\n 'txt',\n 'md',\n 'doc',\n 'docx',\n 'xls',\n 'xlsx',\n 'ppt',\n 'pptx',\n 'pdf'\n];\n\nexport default {\n BLACKLISTED_FILE_TYPES,\n DEFAULT_UPLOAD_FILE_TYPES,\n DEFAULT_UPLOAD_FILE_EXTENSIONS\n};\n"],"mappings":";;;;;;AAAO,MAAMA,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG;AACpC;AACA,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK;AACL;AACA,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ;AACR;AACA,KAAK,EACL,KAAK,EACL,KAAK,CACN;AAEM,MAAME,yBAAyB,GAAAD,OAAA,CAAAC,yBAAA,GAAG,CACvC,OAAO,EACP,MAAM,EACN,MAAM,EACN,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,yEAAyE,EACzE,0BAA0B,EAC1B,mEAAmE,EACnE,+BAA+B,EAC/B,2EAA2E,EAC3E,iBAAiB,CAClB;AAEM,MAAMC,8BAA8B,GAAAF,OAAA,CAAAE,8BAAA,GAAG,CAC5C,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,CACN;AAAC,IAAAC,QAAA,GAAAH,OAAA,CAAAI,OAAA,GAEa;EACbL,sBAAsB;EACtBE,yBAAyB;EACzBC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"fileUploadTypes.js","names":["BLACKLISTED_FILE_TYPES","exports","DEFAULT_UPLOAD_FILE_TYPES","DEFAULT_UPLOAD_FILE_EXTENSIONS","_default","default"],"sources":["../../../src/constants/fileUploadTypes.ts"],"sourcesContent":["export const BLACKLISTED_FILE_TYPES = [\n // Executable files\n 'exe',\n 'msi',\n 'msp',\n 'com',\n 'dll',\n 'ocx',\n 'sys',\n 'hta',\n 'scr',\n 'pif',\n 'cpl',\n 'msc',\n 'mst',\n 'jar',\n 'gadget',\n 'application',\n 'appx',\n 'appxbundle',\n 'msix',\n 'msixbundle',\n // Batch, script or config files\n 'sh',\n 'cmd',\n 'bat',\n 'ps1',\n 'ps2',\n 'psm1',\n 'psd1',\n 'ps1xml',\n 'js',\n 'jse',\n 'vbs',\n 'vbe',\n 'wsf',\n 'wsh',\n 'ws',\n 'reg',\n 'inf',\n 'ini',\n 'config',\n // Help files and disk images, which can carry or mount executables\n 'chm',\n 'iso',\n 'img',\n 'vhd',\n 'vhdx',\n // Shortcuts\n 'lnk',\n 'url',\n 'scf',\n];\n\n// SVG is deliberately absent from the defaults: an SVG can carry script, which runs if the app later\n// serves the upload from its own origin. Apps that need SVG uploads can opt in through validFiles.\nexport const DEFAULT_UPLOAD_FILE_TYPES = [\n '.json',\n '.xml',\n '.csv',\n '.eml',\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'text/plain',\n 'text/markdown',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/pdf'\n];\n\nexport const DEFAULT_UPLOAD_FILE_EXTENSIONS = [\n 'json',\n 'xml',\n 'csv',\n 'eml',\n 'png',\n 'jpg',\n 'jpeg',\n 'gif',\n 'txt',\n 'md',\n 'doc',\n 'docx',\n 'xls',\n 'xlsx',\n 'ppt',\n 'pptx',\n 'pdf'\n];\n\nexport default {\n BLACKLISTED_FILE_TYPES,\n DEFAULT_UPLOAD_FILE_TYPES,\n DEFAULT_UPLOAD_FILE_EXTENSIONS\n};\n"],"mappings":";;;;;;AAAO,MAAMA,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG;AACpC;AACA,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,aAAa,EACb,MAAM,EACN,YAAY,EACZ,MAAM,EACN,YAAY;AACZ;AACA,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ;AACR;AACA,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM;AACN;AACA,KAAK,EACL,KAAK,EACL,KAAK,CACN;;AAED;AACA;AACO,MAAME,yBAAyB,GAAAD,OAAA,CAAAC,yBAAA,GAAG,CACvC,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,yEAAyE,EACzE,0BAA0B,EAC1B,mEAAmE,EACnE,+BAA+B,EAC/B,2EAA2E,EAC3E,iBAAiB,CAClB;AAEM,MAAMC,8BAA8B,GAAAF,OAAA,CAAAE,8BAAA,GAAG,CAC5C,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,CACN;AAAC,IAAAC,QAAA,GAAAH,OAAA,CAAAI,OAAA,GAEa;EACbL,sBAAsB;EACtBE,yBAAyB;EACzBC;AACF,CAAC","ignoreList":[]}