@edifice.io/react 2.0.0-develop-rc.8 → 2.0.0-develop-rc.13

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 (879) hide show
  1. package/README.md +88 -17
  2. package/dist/common/OnboardingModal/OnboardingModal.js +59 -0
  3. package/dist/common/OnboardingModal/useOnboardingModal.js +30 -0
  4. package/dist/{modules/modals → common}/PublishModal/PublishModal.d.ts +1 -1
  5. package/dist/common/PublishModal/PublishModal.js +120 -0
  6. package/dist/common/PublishModal/components/ActivitiesDropdown.js +29 -0
  7. package/dist/common/PublishModal/components/AgeSelect.js +20 -0
  8. package/dist/common/PublishModal/components/LangSelect.js +19 -0
  9. package/dist/common/PublishModal/components/PublishModalFooter.js +23 -0
  10. package/dist/common/PublishModal/components/SubjectsDropdown.js +29 -0
  11. package/dist/common/PublishModal/components/ToastError.js +24 -0
  12. package/dist/{modules/modals → common}/PublishModal/components/ToastSuccess.d.ts +1 -1
  13. package/dist/common/PublishModal/components/ToastSuccess.js +18 -0
  14. package/dist/common/PublishModal/constants/ageOptions.js +4 -0
  15. package/dist/{modules/modals → common}/PublishModal/hooks/useActivitiesOptions.js +4 -5
  16. package/dist/common/PublishModal/hooks/useLanguageOptions.js +43 -0
  17. package/dist/{modules/modals → common}/PublishModal/hooks/usePublishModal.d.ts +1 -1
  18. package/dist/common/PublishModal/hooks/usePublishModal.js +106 -0
  19. package/dist/{modules/modals → common}/PublishModal/hooks/useSubjectsOptions.js +41 -42
  20. package/dist/{modules/modals → common}/ResourceModal/ResourceModal.d.ts +3 -3
  21. package/dist/common/ResourceModal/ResourceModal.js +156 -0
  22. package/dist/{modules/modals → common}/ResourceModal/apps/BlogPublic.d.ts +2 -2
  23. package/dist/common/ResourceModal/apps/BlogPublic.js +62 -0
  24. package/dist/{modules/modals → common}/ResourceModal/hooks/useSlug.d.ts +1 -1
  25. package/dist/common/ResourceModal/hooks/useSlug.js +41 -0
  26. package/dist/{modules/modals → common}/ResourceModal/hooks/useThumb.d.ts +1 -1
  27. package/dist/common/ResourceModal/hooks/useThumb.js +17 -0
  28. package/dist/{modules/modals → common}/ResourceModal/hooks/useUpdateMutation.d.ts +3 -3
  29. package/dist/common/ResourceModal/hooks/useUpdateMutation.js +12 -0
  30. package/dist/common/ResourceModal/index.d.ts +3 -0
  31. package/dist/common/ShareModal/ShareBookmark.js +22 -0
  32. package/dist/{modules/modals → common}/ShareModal/ShareBookmarkLine.d.ts +1 -1
  33. package/dist/common/ShareModal/ShareBookmarkLine.js +42 -0
  34. package/dist/{modules/modals → common}/ShareModal/ShareModal.d.ts +2 -2
  35. package/dist/common/ShareModal/ShareModal.js +128 -0
  36. package/dist/common/ShareModal/apps/ShareBlog.d.ts +8 -0
  37. package/dist/common/ShareModal/apps/ShareBlog.js +43 -0
  38. package/dist/{modules/modals → common}/ShareModal/hooks/useSearch.d.ts +2 -2
  39. package/dist/common/ShareModal/hooks/useSearch.js +178 -0
  40. package/dist/{modules/modals → common}/ShareModal/hooks/useShare.d.ts +1 -1
  41. package/dist/common/ShareModal/hooks/useShare.js +192 -0
  42. package/dist/{modules/modals → common}/ShareModal/hooks/useShareBookmark.d.ts +1 -1
  43. package/dist/common/ShareModal/hooks/useShareBookmark.js +67 -0
  44. package/dist/{modules/modals → common}/ShareModal/hooks/useShareMutation.d.ts +3 -3
  45. package/dist/common/ShareModal/hooks/useShareMutation.js +15 -0
  46. package/dist/common/ShareModal/index.d.ts +3 -0
  47. package/dist/{modules/modals → common}/ShareModal/utils/hasRight.d.ts +1 -1
  48. package/dist/common/ShareModal/utils/hasRight.js +4 -0
  49. package/dist/{modules/modals → common}/ShareModal/utils/showShareRightLine.d.ts +1 -1
  50. package/dist/common/ShareModal/utils/showShareRightLine.js +4 -0
  51. package/dist/components/ActionBar/ActionBar.d.ts +1 -1
  52. package/dist/components/ActionBar/ActionBar.js +6 -8
  53. package/dist/components/ActionBar/index.d.ts +1 -0
  54. package/dist/components/Alert/Alert.d.ts +1 -1
  55. package/dist/components/Alert/Alert.js +60 -62
  56. package/dist/components/Alert/index.d.ts +1 -0
  57. package/dist/components/AppHeader/AppHeader.d.ts +1 -1
  58. package/dist/components/AppHeader/AppHeader.js +18 -20
  59. package/dist/components/AppHeader/index.d.ts +1 -0
  60. package/dist/components/AppIcon/AppIcon.d.ts +1 -1
  61. package/dist/components/AppIcon/AppIcon.js +44 -45
  62. package/dist/components/Attachment/Attachment.d.ts +1 -1
  63. package/dist/components/Attachment/Attachment.js +13 -15
  64. package/dist/components/Attachment/index.d.ts +1 -0
  65. package/dist/{modules/audience → components/Audience}/ReactionChoice.d.ts +1 -1
  66. package/dist/components/Audience/ReactionChoice.js +33 -0
  67. package/dist/{modules/audience → components/Audience}/ReactionModal.Card.d.ts +1 -1
  68. package/dist/components/Audience/ReactionModal.Card.js +33 -0
  69. package/dist/{modules/audience → components/Audience}/ReactionModal.d.ts +1 -1
  70. package/dist/components/Audience/ReactionModal.js +73 -0
  71. package/dist/{modules/audience → components/Audience}/ReactionSummary.d.ts +1 -1
  72. package/dist/components/Audience/ReactionSummary.js +27 -0
  73. package/dist/{modules/audience → components/Audience}/ViewsByProfileCard.d.ts +1 -1
  74. package/dist/components/Audience/ViewsByProfileCard.js +36 -0
  75. package/dist/components/Audience/ViewsCounter.js +18 -0
  76. package/dist/{modules/audience → components/Audience}/ViewsModal.d.ts +1 -1
  77. package/dist/components/Audience/ViewsModal.js +40 -0
  78. package/dist/{modules/audience → components/Audience}/hooks/useReactionIcons.d.ts +1 -1
  79. package/dist/components/Audience/hooks/useReactionIcons.js +38 -0
  80. package/dist/{modules/audience → components/Audience}/hooks/useReactions.d.ts +3 -3
  81. package/dist/components/Audience/hooks/useReactions.js +35 -0
  82. package/dist/{modules/audience → components/Audience}/hooks/useViews.d.ts +2 -2
  83. package/dist/components/Avatar/Avatar.d.ts +1 -1
  84. package/dist/components/Avatar/Avatar.js +27 -29
  85. package/dist/components/Avatar/index.d.ts +1 -0
  86. package/dist/components/Badge/Badge.d.ts +1 -1
  87. package/dist/components/Badge/Badge.js +20 -22
  88. package/dist/components/Badge/index.d.ts +1 -0
  89. package/dist/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  90. package/dist/components/Breadcrumb/Breadcrumb.js +23 -24
  91. package/dist/components/Breadcrumb/BreadcrumbItem.js +11 -12
  92. package/dist/components/Breadcrumb/BreadcrumbList.js +10 -11
  93. package/dist/components/Breadcrumb/BreadcrumbNav.d.ts +1 -1
  94. package/dist/components/Breadcrumb/BreadcrumbNav.js +15 -16
  95. package/dist/components/Button/Button.d.ts +1 -1
  96. package/dist/components/Button/Button.js +32 -34
  97. package/dist/components/Button/IconButton.d.ts +1 -1
  98. package/dist/components/Button/IconButton.js +15 -17
  99. package/dist/components/Button/SearchButton.d.ts +1 -1
  100. package/dist/components/Button/SearchButton.js +15 -17
  101. package/dist/components/Button/index.d.ts +3 -0
  102. package/dist/components/Card/Card.d.ts +4 -4
  103. package/dist/components/Card/Card.js +47 -49
  104. package/dist/components/Card/CardBody.d.ts +1 -1
  105. package/dist/components/Card/CardBody.js +13 -14
  106. package/dist/components/Card/CardContext.d.ts +1 -1
  107. package/dist/components/Card/CardContext.js +7 -8
  108. package/dist/components/Card/CardFooter.js +5 -6
  109. package/dist/components/Card/CardHeader.js +14 -15
  110. package/dist/components/Card/CardImage.d.ts +1 -1
  111. package/dist/components/Card/CardImage.js +13 -14
  112. package/dist/components/Card/CardText.js +8 -9
  113. package/dist/components/Card/CardTitle.js +8 -9
  114. package/dist/components/Card/CardUser.js +8 -9
  115. package/dist/components/Card/index.d.ts +1 -0
  116. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  117. package/dist/components/Checkbox/Checkbox.js +30 -32
  118. package/dist/components/Checkbox/index.d.ts +1 -0
  119. package/dist/components/ColorPicker/ColorPalette.js +4 -5
  120. package/dist/components/ColorPicker/ColorPicker.d.ts +1 -1
  121. package/dist/components/ColorPicker/ColorPicker.js +28 -30
  122. package/dist/components/ColorPicker/ColorPickerItem.d.ts +1 -1
  123. package/dist/components/ColorPicker/ColorPickerItem.js +11 -13
  124. package/dist/components/ColorPicker/index.d.ts +3 -1
  125. package/dist/components/Combobox/Combobox.d.ts +1 -1
  126. package/dist/components/Combobox/Combobox.js +35 -36
  127. package/dist/components/Combobox/ComboboxTrigger.js +21 -22
  128. package/dist/components/Combobox/index.d.ts +1 -0
  129. package/dist/components/Dropdown/Dropdown.d.ts +1 -1
  130. package/dist/components/Dropdown/Dropdown.js +55 -57
  131. package/dist/components/Dropdown/DropdownCheckboxItem.js +26 -27
  132. package/dist/components/Dropdown/DropdownContext.js +7 -8
  133. package/dist/components/Dropdown/DropdownItem.js +27 -28
  134. package/dist/components/Dropdown/DropdownMenu.js +21 -22
  135. package/dist/components/Dropdown/DropdownMenuGroup.js +9 -10
  136. package/dist/components/Dropdown/DropdownRadioItem.js +26 -27
  137. package/dist/components/Dropdown/DropdownSeparator.js +3 -4
  138. package/dist/components/Dropdown/DropdownTrigger.js +28 -29
  139. package/dist/components/Dropdown/index.d.ts +1 -0
  140. package/dist/components/Dropzone/Dropzone.d.ts +1 -1
  141. package/dist/components/Dropzone/Dropzone.js +47 -48
  142. package/dist/components/Dropzone/DropzoneContext.js +8 -9
  143. package/dist/components/Dropzone/DropzoneDrag.js +7 -8
  144. package/dist/components/Dropzone/DropzoneFile.js +25 -26
  145. package/dist/components/Dropzone/DropzoneImport.js +20 -21
  146. package/dist/components/Dropzone/index.d.ts +1 -0
  147. package/dist/components/EmptyScreen/EmptyScreen.d.ts +1 -1
  148. package/dist/components/EmptyScreen/EmptyScreen.js +16 -18
  149. package/dist/components/EmptyScreen/index.d.ts +1 -0
  150. package/dist/components/FileCard/FileCard.d.ts +2 -2
  151. package/dist/components/FileCard/FileCard.js +37 -39
  152. package/dist/components/FileCard/FileIcon.d.ts +1 -1
  153. package/dist/components/FileCard/FileIcon.js +11 -12
  154. package/dist/components/FileCard/index.d.ts +1 -0
  155. package/dist/components/Form/FormContext.js +7 -8
  156. package/dist/components/Form/FormControl.d.ts +1 -1
  157. package/dist/components/Form/FormControl.js +30 -32
  158. package/dist/components/Form/FormText.d.ts +1 -1
  159. package/dist/components/Form/FormText.js +12 -14
  160. package/dist/components/Form/index.d.ts +2 -1
  161. package/dist/components/Grid/Grid.js +27 -28
  162. package/dist/components/Heading/Heading.d.ts +1 -1
  163. package/dist/components/Heading/Heading.js +14 -16
  164. package/dist/components/Heading/index.d.ts +1 -0
  165. package/dist/components/Image/Image.d.ts +1 -1
  166. package/dist/components/Image/Image.js +39 -41
  167. package/dist/components/Image/index.d.ts +1 -0
  168. package/dist/components/ImagePicker/ImagePicker.d.ts +1 -1
  169. package/dist/components/ImagePicker/ImagePicker.js +51 -52
  170. package/dist/components/Input/Input.d.ts +1 -1
  171. package/dist/components/Input/Input.js +28 -30
  172. package/dist/components/Input/index.d.ts +1 -0
  173. package/dist/components/Label/Label.d.ts +1 -1
  174. package/dist/components/Label/Label.js +30 -32
  175. package/dist/components/Label/index.d.ts +1 -0
  176. package/dist/components/Loading/Loading.d.ts +1 -1
  177. package/dist/components/Loading/Loading.js +23 -25
  178. package/dist/components/Loading/index.d.ts +1 -0
  179. package/dist/components/LoadingScreen/LoadingScreen.d.ts +1 -1
  180. package/dist/components/LoadingScreen/LoadingScreen.js +20 -22
  181. package/dist/components/LoadingScreen/index.d.ts +1 -1
  182. package/dist/components/Logo/Logo.d.ts +1 -1
  183. package/dist/components/Logo/Logo.js +12 -14
  184. package/dist/components/Logo/index.d.ts +1 -0
  185. package/dist/components/Menu/Menu.js +39 -40
  186. package/dist/components/Menu/MenuButton.js +17 -18
  187. package/dist/components/Menu/MenuContext.js +8 -9
  188. package/dist/components/Menu/MenuItem.js +14 -15
  189. package/dist/components/Modal/Modal.d.ts +4 -1
  190. package/dist/components/Modal/Modal.js +49 -51
  191. package/dist/components/Modal/ModalBody.js +11 -12
  192. package/dist/components/Modal/ModalContext.js +8 -9
  193. package/dist/components/Modal/ModalFooter.js +3 -4
  194. package/dist/components/Modal/ModalHeader.js +22 -23
  195. package/dist/components/Modal/ModalSubtitle.js +3 -4
  196. package/dist/components/Modal/index.d.ts +1 -0
  197. package/dist/components/Popover/Popover.js +33 -34
  198. package/dist/components/Radio/Radio.d.ts +1 -1
  199. package/dist/components/Radio/Radio.js +26 -28
  200. package/dist/components/Radio/index.d.ts +1 -0
  201. package/dist/components/SearchBar/SearchBar.d.ts +1 -1
  202. package/dist/components/SearchBar/SearchBar.js +29 -31
  203. package/dist/components/SearchBar/index.d.ts +1 -0
  204. package/dist/components/Select/Select.d.ts +1 -1
  205. package/dist/components/Select/Select.js +31 -33
  206. package/dist/components/Select/SelectTrigger.js +4 -5
  207. package/dist/components/Select/index.d.ts +1 -0
  208. package/dist/components/Table/Table.components.d.ts +20 -0
  209. package/dist/components/Table/Table.components.js +39 -0
  210. package/dist/components/Table/Table.d.ts +33 -0
  211. package/dist/components/Table/Table.js +16 -0
  212. package/dist/components/Table/TableExplorer.d.ts +1 -1
  213. package/dist/components/Table/index.d.ts +2 -1
  214. package/dist/components/Tabs/Tabs.d.ts +1 -1
  215. package/dist/components/Tabs/Tabs.js +58 -59
  216. package/dist/components/Tabs/TabsContext.js +8 -9
  217. package/dist/components/Tabs/TabsItem.js +20 -21
  218. package/dist/components/Tabs/TabsList.js +18 -19
  219. package/dist/components/Tabs/TabsPanel.js +9 -10
  220. package/dist/components/Tabs/index.d.ts +1 -0
  221. package/dist/components/TextArea/TextArea.d.ts +1 -1
  222. package/dist/components/TextArea/TextArea.js +31 -33
  223. package/dist/components/TextArea/TextareaCounter.js +6 -7
  224. package/dist/components/TextArea/index.d.ts +1 -0
  225. package/dist/components/Toolbar/Toolbar.d.ts +1 -1
  226. package/dist/components/Toolbar/Toolbar.js +60 -62
  227. package/dist/components/Toolbar/index.d.ts +1 -0
  228. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  229. package/dist/components/Tooltip/Tooltip.js +28 -30
  230. package/dist/components/Tooltip/index.d.ts +1 -0
  231. package/dist/components/TreeView/TreeItem.js +46 -47
  232. package/dist/components/TreeView/TreeView.d.ts +1 -1
  233. package/dist/components/TreeView/TreeView.js +33 -35
  234. package/dist/components/TreeView/hooks/useTreeItemEvents.js +18 -19
  235. package/dist/components/TreeView/index.d.ts +1 -0
  236. package/dist/components/UploadCard/UploadCard.js +52 -53
  237. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  238. package/dist/components/VisuallyHidden/VisuallyHidden.js +6 -8
  239. package/dist/components/VisuallyHidden/index.d.ts +1 -1
  240. package/dist/components/index.d.ts +1 -1
  241. package/dist/core/OdeClientProvider/OdeClientProvider.d.ts +1 -1
  242. package/dist/core/OdeClientProvider/OdeClientProvider.js +44 -45
  243. package/dist/core/ThemeProvider/ThemeProvider.d.ts +1 -1
  244. package/dist/core/ThemeProvider/ThemeProvider.js +36 -36
  245. package/dist/core/index.d.ts +1 -0
  246. package/dist/core/useAvatar/useAvatar.d.ts +1 -1
  247. package/dist/core/useAvatar/useAvatar.js +21 -22
  248. package/dist/core/useBookmark/useBookmark.d.ts +1 -1
  249. package/dist/core/useBookmark/useBookmark.js +9 -10
  250. package/dist/core/useCantoo/index.d.ts +1 -0
  251. package/dist/core/useCantoo/useCantoo.d.ts +1 -0
  252. package/dist/core/useCantoo/useCantoo.js +18 -0
  253. package/dist/core/useConf/useConf.d.ts +1 -1
  254. package/dist/core/useConf/useConf.js +7 -8
  255. package/dist/core/useConversation/useConversation.js +29 -30
  256. package/dist/core/useCookiesConsent/useCookiesConsent.js +16 -17
  257. package/dist/core/useDate/useDate.js +35 -36
  258. package/dist/core/useHasWorkflow/useHasWorkflow.js +15 -16
  259. package/dist/core/useHeader/useHeader.d.ts +1 -1
  260. package/dist/core/useHeader/useHeader.js +45 -42
  261. package/dist/core/useHttpErrorToast/useHttpErrorToast.js +17 -18
  262. package/dist/core/useIsAdml/useIsAdml.js +11 -12
  263. package/dist/core/useLibraryUrl/useLibraryUrl.js +16 -17
  264. package/dist/core/useMediaLibrary/useMediaLibrary.d.ts +2 -2
  265. package/dist/core/useMediaLibrary/useMediaLibrary.js +32 -33
  266. package/dist/core/useOdeIcons/useOdeIcons.d.ts +1 -1
  267. package/dist/core/useOdeIcons/useOdeIcons.js +37 -38
  268. package/dist/core/usePaths/usePaths.js +2 -3
  269. package/dist/core/usePreferences/usePreferences.js +5 -6
  270. package/dist/core/useResource/useResource.d.ts +1 -1
  271. package/dist/core/useResource/useResource.js +14 -15
  272. package/dist/core/useResourceSearch/useResourceSearch.d.ts +1 -1
  273. package/dist/core/useResourceSearch/useResourceSearch.js +22 -23
  274. package/dist/core/useSession/useSession.js +6 -7
  275. package/dist/core/useTrashedResource/useTrashedResource.js +18 -19
  276. package/dist/core/useUpload/useUpload.d.ts +1 -1
  277. package/dist/core/useUpload/useUpload.js +68 -69
  278. package/dist/core/useUploadFiles/useUploadFiles.d.ts +1 -1
  279. package/dist/core/useUploadFiles/useUploadFiles.js +82 -83
  280. package/dist/core/useUser/useUser.d.ts +1 -1
  281. package/dist/core/useUser/useUser.js +15 -16
  282. package/dist/core/useWorkspaceFile/useWorkspaceFile.d.ts +1 -1
  283. package/dist/core/useWorkspaceFile/useWorkspaceFile.js +31 -32
  284. package/dist/core/useWorkspaceSearch/useWorkspaceSearch.d.ts +1 -1
  285. package/dist/core/useWorkspaceSearch/useWorkspaceSearch.js +41 -42
  286. package/dist/core/useXitiTrackPageLoad/useXitiTrackPageLoad.js +17 -18
  287. package/dist/core/useZendeskGuide/useZendeskGuide.js +46 -47
  288. package/dist/hooks/useBrowserInfo/useBrowserInfo.js +11 -12
  289. package/dist/hooks/useClickOutside/useClickOutside.js +18 -19
  290. package/dist/hooks/useDebounce/useDebounce.js +10 -11
  291. package/dist/hooks/useDropdown/useDropdown.d.ts +1 -1
  292. package/dist/hooks/useDropdown/useDropdown.js +96 -97
  293. package/dist/hooks/useDropzone/useDropzone.js +53 -54
  294. package/dist/hooks/useHover/useHover.js +14 -15
  295. package/dist/hooks/useImage/useImage.js +13 -14
  296. package/dist/hooks/useImageResizer/useImageResizer.js +31 -32
  297. package/dist/hooks/useKeyPress/useKeyPress.js +10 -11
  298. package/dist/hooks/useScrollToTop/useScrollToTop.js +4 -5
  299. package/dist/hooks/useThumbnail/useThumbnail.js +21 -22
  300. package/dist/hooks/useTitle/useTitle.js +7 -8
  301. package/dist/hooks/useToast/useToast.js +25 -26
  302. package/dist/hooks/useToggle/useToggle.js +6 -7
  303. package/dist/hooks/useTrapFocus/useTrapFocus.js +11 -12
  304. package/dist/index.d.ts +3 -1
  305. package/dist/index.js +274 -226
  306. package/dist/{modules/multimedia → multimedia}/AudioRecorder/AudioRecorder.d.ts +1 -1
  307. package/dist/multimedia/AudioRecorder/AudioRecorder.js +49 -0
  308. package/dist/multimedia/AudioRecorder/AudioRecorderTimer.js +24 -0
  309. package/dist/{modules/multimedia → multimedia}/AudioRecorder/useAudioRecorder.d.ts +2 -2
  310. package/dist/multimedia/AudioRecorder/useAudioRecorder.js +307 -0
  311. package/dist/multimedia/Embed/Embed.js +32 -0
  312. package/dist/multimedia/ImageEditor/components/ImageEditor.js +116 -0
  313. package/dist/multimedia/ImageEditor/components/ImageEditorToolbar.js +69 -0
  314. package/dist/multimedia/ImageEditor/effects/blur.js +72 -0
  315. package/dist/multimedia/ImageEditor/effects/crop.js +155 -0
  316. package/dist/multimedia/ImageEditor/effects/misc.js +162 -0
  317. package/dist/multimedia/ImageEditor/effects/resize.js +157 -0
  318. package/dist/multimedia/ImageEditor/effects/rotate.js +33 -0
  319. package/dist/multimedia/ImageEditor/hooks/useHistoryTool.js +66 -0
  320. package/dist/multimedia/ImageEditor/hooks/useImageEditor.js +76 -0
  321. package/dist/multimedia/ImageEditor/hooks/useImageEffects.js +52 -0
  322. package/dist/multimedia/ImageEditor/utils/aggregate.js +13 -0
  323. package/dist/{modules/multimedia → multimedia}/ImagePickerWorkspace/ImagePickerWorkspace.d.ts +1 -1
  324. package/dist/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js +39 -0
  325. package/dist/multimedia/Linker/ExternalLinker.js +45 -0
  326. package/dist/{modules/multimedia → multimedia}/Linker/InternalLinker.d.ts +1 -1
  327. package/dist/multimedia/Linker/InternalLinker.js +114 -0
  328. package/dist/{modules/multimedia → multimedia}/LinkerCard/LinkerCard.d.ts +3 -3
  329. package/dist/multimedia/LinkerCard/LinkerCard.js +38 -0
  330. package/dist/multimedia/LinkerCard/index.d.ts +2 -0
  331. package/dist/{modules/multimedia → multimedia}/MediaLibrary/MediaLibrary.d.ts +2 -2
  332. package/dist/multimedia/MediaLibrary/MediaLibrary.js +211 -0
  333. package/dist/{modules/multimedia → multimedia}/MediaLibrary/MediaLibraryContext.d.ts +2 -2
  334. package/dist/multimedia/MediaLibrary/MediaLibraryContext.js +12 -0
  335. package/dist/multimedia/MediaLibrary/innertabs/Audio.js +19 -0
  336. package/dist/multimedia/MediaLibrary/innertabs/ExternalLink.js +17 -0
  337. package/dist/multimedia/MediaLibrary/innertabs/Iframe.js +14 -0
  338. package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/InternalLink.d.ts +1 -1
  339. package/dist/multimedia/MediaLibrary/innertabs/InternalLink.js +35 -0
  340. package/dist/multimedia/MediaLibrary/innertabs/Upload.js +34 -0
  341. package/dist/multimedia/MediaLibrary/innertabs/Video.js +22 -0
  342. package/dist/multimedia/MediaLibrary/innertabs/VideoEmbedder.js +14 -0
  343. package/dist/multimedia/MediaLibrary/innertabs/Workspace.js +31 -0
  344. package/dist/multimedia/MediaLibrary/innertabs/index.js +21 -0
  345. package/dist/{modules/multimedia → multimedia}/UploadFiles/UploadFiles.d.ts +1 -1
  346. package/dist/multimedia/UploadFiles/UploadFiles.js +56 -0
  347. package/dist/multimedia/VideoEmbed/VideoEmbed.js +77 -0
  348. package/dist/{modules/multimedia → multimedia}/VideoRecorder/VideoRecorder.d.ts +1 -1
  349. package/dist/multimedia/VideoRecorder/VideoRecorder.js +259 -0
  350. package/dist/{modules/multimedia → multimedia}/Workspace/Workspace.d.ts +1 -1
  351. package/dist/multimedia/Workspace/Workspace.js +169 -0
  352. package/dist/portal/Header/Badge.js +5 -6
  353. package/dist/portal/Header/Header.js +138 -138
  354. package/dist/portal/Header/NavItem.js +11 -12
  355. package/dist/portal/Header/NavLink.js +14 -15
  356. package/dist/portal/Header/Navbar.js +9 -10
  357. package/dist/portal/Header/NavbarNav.js +9 -10
  358. package/dist/portal/Header/WidgetApps.d.ts +1 -1
  359. package/dist/portal/Header/WidgetApps.js +16 -17
  360. package/dist/portal/Help/Help.js +18 -19
  361. package/dist/portal/Help/hooks/useHelp.js +63 -64
  362. package/dist/portal/Layout/Layout.js +36 -36
  363. package/dist/portal/SearchEngine/SearchEngine.js +25 -26
  364. package/dist/utils/MockedDataProvider/MockedDataProvider.d.ts +1 -1
  365. package/dist/utils/MockedDataProvider/MockedDataProvider.js +21 -22
  366. package/dist/utils/StringUtils.js +8 -9
  367. package/dist/utils/addTimestampToUrl.js +4 -5
  368. package/dist/utils/blob.js +9 -10
  369. package/dist/utils/checkUserRight.d.ts +1 -1
  370. package/dist/utils/checkUserRight.js +27 -28
  371. package/dist/utils/fileSize.js +5 -6
  372. package/dist/utils/findTreeNode.js +7 -8
  373. package/dist/utils/isActionAvailable.d.ts +1 -1
  374. package/dist/utils/isActionAvailable.js +4 -5
  375. package/dist/utils/libraryMaps.js +2 -3
  376. package/dist/utils/noop.js +2 -3
  377. package/dist/utils/ref.js +8 -9
  378. package/dist/utils/thumbnail.js +3 -4
  379. package/dist/utils/time.js +7 -8
  380. package/dist/utils/treeview.d.ts +1 -1
  381. package/dist/utils/treeview.js +96 -97
  382. package/dist/utils/video.js +2 -3
  383. package/dist/widgets/BookmarkedApps/BookmarkedApps.d.ts +1 -1
  384. package/dist/widgets/BookmarkedApps/BookmarkedApps.js +6 -7
  385. package/dist/widgets/Widget/Widget.js +18 -19
  386. package/package.json +27 -58
  387. package/dist/audience.js +0 -17
  388. package/dist/audience.js.map +0 -1
  389. package/dist/components/ActionBar/ActionBar.js.map +0 -1
  390. package/dist/components/Alert/Alert.js.map +0 -1
  391. package/dist/components/AppHeader/AppHeader.js.map +0 -1
  392. package/dist/components/AppIcon/AppIcon.js.map +0 -1
  393. package/dist/components/Attachment/Attachment.js.map +0 -1
  394. package/dist/components/Avatar/Avatar.js.map +0 -1
  395. package/dist/components/Badge/Badge.js.map +0 -1
  396. package/dist/components/Breadcrumb/Breadcrumb.js.map +0 -1
  397. package/dist/components/Breadcrumb/BreadcrumbItem.js.map +0 -1
  398. package/dist/components/Breadcrumb/BreadcrumbList.js.map +0 -1
  399. package/dist/components/Breadcrumb/BreadcrumbNav.js.map +0 -1
  400. package/dist/components/Button/Button.js.map +0 -1
  401. package/dist/components/Button/IconButton.js.map +0 -1
  402. package/dist/components/Button/SearchButton.js.map +0 -1
  403. package/dist/components/Card/Card.js.map +0 -1
  404. package/dist/components/Card/CardBody.js.map +0 -1
  405. package/dist/components/Card/CardContext.js.map +0 -1
  406. package/dist/components/Card/CardFooter.js.map +0 -1
  407. package/dist/components/Card/CardHeader.js.map +0 -1
  408. package/dist/components/Card/CardImage.js.map +0 -1
  409. package/dist/components/Card/CardText.js.map +0 -1
  410. package/dist/components/Card/CardTitle.js.map +0 -1
  411. package/dist/components/Card/CardUser.js.map +0 -1
  412. package/dist/components/Checkbox/Checkbox.js.map +0 -1
  413. package/dist/components/ColorPicker/ColorPalette.js.map +0 -1
  414. package/dist/components/ColorPicker/ColorPicker.js.map +0 -1
  415. package/dist/components/ColorPicker/ColorPickerItem.js.map +0 -1
  416. package/dist/components/Combobox/Combobox.js.map +0 -1
  417. package/dist/components/Combobox/ComboboxTrigger.js.map +0 -1
  418. package/dist/components/Dropdown/Dropdown.js.map +0 -1
  419. package/dist/components/Dropdown/DropdownCheckboxItem.js.map +0 -1
  420. package/dist/components/Dropdown/DropdownContext.js.map +0 -1
  421. package/dist/components/Dropdown/DropdownItem.js.map +0 -1
  422. package/dist/components/Dropdown/DropdownMenu.js.map +0 -1
  423. package/dist/components/Dropdown/DropdownMenuGroup.js.map +0 -1
  424. package/dist/components/Dropdown/DropdownRadioItem.js.map +0 -1
  425. package/dist/components/Dropdown/DropdownSeparator.js.map +0 -1
  426. package/dist/components/Dropdown/DropdownTrigger.js.map +0 -1
  427. package/dist/components/Dropzone/Dropzone.js.map +0 -1
  428. package/dist/components/Dropzone/DropzoneContext.js.map +0 -1
  429. package/dist/components/Dropzone/DropzoneDrag.js.map +0 -1
  430. package/dist/components/Dropzone/DropzoneFile.js.map +0 -1
  431. package/dist/components/Dropzone/DropzoneImport.js.map +0 -1
  432. package/dist/components/EmptyScreen/EmptyScreen.js.map +0 -1
  433. package/dist/components/FileCard/FileCard.js.map +0 -1
  434. package/dist/components/FileCard/FileIcon.js.map +0 -1
  435. package/dist/components/Form/FormContext.js.map +0 -1
  436. package/dist/components/Form/FormControl.js.map +0 -1
  437. package/dist/components/Form/FormText.js.map +0 -1
  438. package/dist/components/Grid/Grid.js.map +0 -1
  439. package/dist/components/Heading/Heading.js.map +0 -1
  440. package/dist/components/Icon/Icon.d.ts +0 -17
  441. package/dist/components/Icon/Icon.js +0 -11
  442. package/dist/components/Icon/Icon.js.map +0 -1
  443. package/dist/components/Icon/index.d.ts +0 -1
  444. package/dist/components/Image/Image.js.map +0 -1
  445. package/dist/components/ImagePicker/ImagePicker.js.map +0 -1
  446. package/dist/components/Input/Input.js.map +0 -1
  447. package/dist/components/Label/Label.js.map +0 -1
  448. package/dist/components/Loading/Loading.js.map +0 -1
  449. package/dist/components/LoadingScreen/LoadingScreen.js.map +0 -1
  450. package/dist/components/Logo/Logo.js.map +0 -1
  451. package/dist/components/Menu/Menu.js.map +0 -1
  452. package/dist/components/Menu/MenuButton.js.map +0 -1
  453. package/dist/components/Menu/MenuContext.js.map +0 -1
  454. package/dist/components/Menu/MenuItem.js.map +0 -1
  455. package/dist/components/Modal/Modal.js.map +0 -1
  456. package/dist/components/Modal/ModalBody.js.map +0 -1
  457. package/dist/components/Modal/ModalContext.js.map +0 -1
  458. package/dist/components/Modal/ModalFooter.js.map +0 -1
  459. package/dist/components/Modal/ModalHeader.js.map +0 -1
  460. package/dist/components/Modal/ModalSubtitle.js.map +0 -1
  461. package/dist/components/Popover/Popover.js.map +0 -1
  462. package/dist/components/Radio/Radio.js.map +0 -1
  463. package/dist/components/SearchBar/SearchBar.js.map +0 -1
  464. package/dist/components/Select/Select.js.map +0 -1
  465. package/dist/components/Select/SelectTrigger.js.map +0 -1
  466. package/dist/components/Table/TableExplorer.js +0 -10
  467. package/dist/components/Table/TableExplorer.js.map +0 -1
  468. package/dist/components/Tabs/Tabs.js.map +0 -1
  469. package/dist/components/Tabs/TabsContext.js.map +0 -1
  470. package/dist/components/Tabs/TabsItem.js.map +0 -1
  471. package/dist/components/Tabs/TabsList.js.map +0 -1
  472. package/dist/components/Tabs/TabsPanel.js.map +0 -1
  473. package/dist/components/TextArea/TextArea.js.map +0 -1
  474. package/dist/components/TextArea/TextareaCounter.js.map +0 -1
  475. package/dist/components/Toolbar/Toolbar.js.map +0 -1
  476. package/dist/components/Tooltip/Tooltip.js.map +0 -1
  477. package/dist/components/TreeView/TreeItem.js.map +0 -1
  478. package/dist/components/TreeView/TreeView.js.map +0 -1
  479. package/dist/components/TreeView/hooks/useTreeItemEvents.js.map +0 -1
  480. package/dist/components/UploadCard/UploadCard.js.map +0 -1
  481. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +0 -1
  482. package/dist/core/OdeClientProvider/OdeClientProvider.js.map +0 -1
  483. package/dist/core/ThemeProvider/ThemeProvider.js.map +0 -1
  484. package/dist/core/useAvatar/useAvatar.js.map +0 -1
  485. package/dist/core/useBookmark/useBookmark.js.map +0 -1
  486. package/dist/core/useConf/useConf.js.map +0 -1
  487. package/dist/core/useConversation/useConversation.js.map +0 -1
  488. package/dist/core/useCookiesConsent/useCookiesConsent.js.map +0 -1
  489. package/dist/core/useDate/useDate.js.map +0 -1
  490. package/dist/core/useHasWorkflow/useHasWorkflow.js.map +0 -1
  491. package/dist/core/useHeader/useHeader.js.map +0 -1
  492. package/dist/core/useHttpErrorToast/useHttpErrorToast.js.map +0 -1
  493. package/dist/core/useIsAdml/useIsAdml.js.map +0 -1
  494. package/dist/core/useLibraryUrl/useLibraryUrl.js.map +0 -1
  495. package/dist/core/useMediaLibrary/useMediaLibrary.js.map +0 -1
  496. package/dist/core/useOdeIcons/useOdeIcons.js.map +0 -1
  497. package/dist/core/usePaths/usePaths.js.map +0 -1
  498. package/dist/core/usePreferences/usePreferences.js.map +0 -1
  499. package/dist/core/useResource/useResource.js.map +0 -1
  500. package/dist/core/useResourceSearch/useResourceSearch.js.map +0 -1
  501. package/dist/core/useSession/useSession.js.map +0 -1
  502. package/dist/core/useTrashedResource/useTrashedResource.js.map +0 -1
  503. package/dist/core/useUpload/useUpload.js.map +0 -1
  504. package/dist/core/useUploadFiles/useUploadFiles.js.map +0 -1
  505. package/dist/core/useUser/useUser.js.map +0 -1
  506. package/dist/core/useWorkspaceFile/useWorkspaceFile.js.map +0 -1
  507. package/dist/core/useWorkspaceSearch/useWorkspaceSearch.js.map +0 -1
  508. package/dist/core/useXitiTrackPageLoad/useXitiTrackPageLoad.js.map +0 -1
  509. package/dist/core/useZendeskGuide/useZendeskGuide.js.map +0 -1
  510. package/dist/editor.js +0 -59
  511. package/dist/editor.js.map +0 -1
  512. package/dist/hooks/useBrowserInfo/useBrowserInfo.js.map +0 -1
  513. package/dist/hooks/useClickOutside/useClickOutside.js.map +0 -1
  514. package/dist/hooks/useDebounce/useDebounce.js.map +0 -1
  515. package/dist/hooks/useDropdown/useDropdown.js.map +0 -1
  516. package/dist/hooks/useDropzone/useDropzone.js.map +0 -1
  517. package/dist/hooks/useHover/useHover.js.map +0 -1
  518. package/dist/hooks/useImage/useImage.js.map +0 -1
  519. package/dist/hooks/useImageResizer/useImageResizer.js.map +0 -1
  520. package/dist/hooks/useKeyPress/useKeyPress.js.map +0 -1
  521. package/dist/hooks/useScrollToTop/useScrollToTop.js.map +0 -1
  522. package/dist/hooks/useThumbnail/useThumbnail.js.map +0 -1
  523. package/dist/hooks/useTitle/useTitle.js.map +0 -1
  524. package/dist/hooks/useToast/useToast.js.map +0 -1
  525. package/dist/hooks/useToggle/useToggle.js.map +0 -1
  526. package/dist/hooks/useTrapFocus/useTrapFocus.js.map +0 -1
  527. package/dist/index.js.map +0 -1
  528. package/dist/modals.js +0 -17
  529. package/dist/modals.js.map +0 -1
  530. package/dist/modules/audience/ReactionChoice.js +0 -34
  531. package/dist/modules/audience/ReactionChoice.js.map +0 -1
  532. package/dist/modules/audience/ReactionModal.Card.js +0 -35
  533. package/dist/modules/audience/ReactionModal.Card.js.map +0 -1
  534. package/dist/modules/audience/ReactionModal.js +0 -73
  535. package/dist/modules/audience/ReactionModal.js.map +0 -1
  536. package/dist/modules/audience/ReactionSummary.js +0 -28
  537. package/dist/modules/audience/ReactionSummary.js.map +0 -1
  538. package/dist/modules/audience/ViewsByProfileCard.js +0 -36
  539. package/dist/modules/audience/ViewsByProfileCard.js.map +0 -1
  540. package/dist/modules/audience/ViewsCounter.js +0 -19
  541. package/dist/modules/audience/ViewsCounter.js.map +0 -1
  542. package/dist/modules/audience/ViewsModal.js +0 -41
  543. package/dist/modules/audience/ViewsModal.js.map +0 -1
  544. package/dist/modules/audience/hooks/useReactionIcons.js +0 -38
  545. package/dist/modules/audience/hooks/useReactionIcons.js.map +0 -1
  546. package/dist/modules/audience/hooks/useReactions.js +0 -36
  547. package/dist/modules/audience/hooks/useReactions.js.map +0 -1
  548. package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.d.ts +0 -8
  549. package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js +0 -133
  550. package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js.map +0 -1
  551. package/dist/modules/editor/components/BubbleMenuEditImage/index.d.ts +0 -1
  552. package/dist/modules/editor/components/Editor/Editor.d.ts +0 -45
  553. package/dist/modules/editor/components/Editor/Editor.js +0 -84
  554. package/dist/modules/editor/components/Editor/Editor.js.map +0 -1
  555. package/dist/modules/editor/components/Editor/MathsModal.d.ts +0 -7
  556. package/dist/modules/editor/components/Editor/MathsModal.js +0 -51
  557. package/dist/modules/editor/components/Editor/MathsModal.js.map +0 -1
  558. package/dist/modules/editor/components/Editor/index.d.ts +0 -2
  559. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.d.ts +0 -22
  560. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.js +0 -18
  561. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.js.map +0 -1
  562. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.d.ts +0 -14
  563. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.js +0 -55
  564. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.js.map +0 -1
  565. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.d.ts +0 -14
  566. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.js +0 -48
  567. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.js.map +0 -1
  568. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.d.ts +0 -9
  569. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.js +0 -19
  570. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.js.map +0 -1
  571. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.d.ts +0 -14
  572. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.js +0 -51
  573. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.js.map +0 -1
  574. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.d.ts +0 -10
  575. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.js +0 -63
  576. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.js.map +0 -1
  577. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.d.ts +0 -10
  578. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.js +0 -53
  579. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.js.map +0 -1
  580. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.d.ts +0 -10
  581. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js +0 -320
  582. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js.map +0 -1
  583. package/dist/modules/editor/components/EditorToolbar/index.d.ts +0 -1
  584. package/dist/modules/editor/components/NodeView/AttachmentNodeView.d.ts +0 -2
  585. package/dist/modules/editor/components/NodeView/AttachmentNodeView.js +0 -11
  586. package/dist/modules/editor/components/NodeView/AttachmentNodeView.js.map +0 -1
  587. package/dist/modules/editor/components/NodeView/AudioNodeView.d.ts +0 -2
  588. package/dist/modules/editor/components/NodeView/AudioNodeView.js +0 -11
  589. package/dist/modules/editor/components/NodeView/AudioNodeView.js.map +0 -1
  590. package/dist/modules/editor/components/NodeView/ImageNodeView.d.ts +0 -2
  591. package/dist/modules/editor/components/NodeView/ImageNodeView.js +0 -11
  592. package/dist/modules/editor/components/NodeView/ImageNodeView.js.map +0 -1
  593. package/dist/modules/editor/components/NodeView/LinkerNodeView.d.ts +0 -2
  594. package/dist/modules/editor/components/NodeView/LinkerNodeView.js +0 -11
  595. package/dist/modules/editor/components/NodeView/LinkerNodeView.js.map +0 -1
  596. package/dist/modules/editor/components/NodeView/VideoNodeView.d.ts +0 -2
  597. package/dist/modules/editor/components/NodeView/VideoNodeView.js +0 -11
  598. package/dist/modules/editor/components/NodeView/VideoNodeView.js.map +0 -1
  599. package/dist/modules/editor/components/NodeView/index.d.ts +0 -5
  600. package/dist/modules/editor/components/Renderer/AttachmentRenderer.d.ts +0 -7
  601. package/dist/modules/editor/components/Renderer/AttachmentRenderer.js +0 -35
  602. package/dist/modules/editor/components/Renderer/AttachmentRenderer.js.map +0 -1
  603. package/dist/modules/editor/components/Renderer/AudioRenderer.d.ts +0 -7
  604. package/dist/modules/editor/components/Renderer/AudioRenderer.js +0 -12
  605. package/dist/modules/editor/components/Renderer/AudioRenderer.js.map +0 -1
  606. package/dist/modules/editor/components/Renderer/LinkerRenderer.d.ts +0 -9
  607. package/dist/modules/editor/components/Renderer/LinkerRenderer.js +0 -35
  608. package/dist/modules/editor/components/Renderer/LinkerRenderer.js.map +0 -1
  609. package/dist/modules/editor/components/Renderer/MediaRenderer.d.ts +0 -2
  610. package/dist/modules/editor/components/Renderer/MediaRenderer.js +0 -70
  611. package/dist/modules/editor/components/Renderer/MediaRenderer.js.map +0 -1
  612. package/dist/modules/editor/components/Renderer/index.d.ts +0 -4
  613. package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.d.ts +0 -2
  614. package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.js +0 -9
  615. package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.js.map +0 -1
  616. package/dist/modules/editor/components/Toolbar/LinkToolbar.d.ts +0 -15
  617. package/dist/modules/editor/components/Toolbar/LinkToolbar.js +0 -60
  618. package/dist/modules/editor/components/Toolbar/LinkToolbar.js.map +0 -1
  619. package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.d.ts +0 -9
  620. package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.js +0 -29
  621. package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.js.map +0 -1
  622. package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.d.ts +0 -13
  623. package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.js +0 -46
  624. package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.js.map +0 -1
  625. package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.d.ts +0 -9
  626. package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.js +0 -28
  627. package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.js.map +0 -1
  628. package/dist/modules/editor/components/Toolbar/TableToolbar.d.ts +0 -9
  629. package/dist/modules/editor/components/Toolbar/TableToolbar.js +0 -89
  630. package/dist/modules/editor/components/Toolbar/TableToolbar.js.map +0 -1
  631. package/dist/modules/editor/components/Toolbar/index.d.ts +0 -2
  632. package/dist/modules/editor/components/index.d.ts +0 -6
  633. package/dist/modules/editor/hooks/index.d.ts +0 -12
  634. package/dist/modules/editor/hooks/useActionOptions.d.ts +0 -5
  635. package/dist/modules/editor/hooks/useActionOptions.js +0 -76
  636. package/dist/modules/editor/hooks/useActionOptions.js.map +0 -1
  637. package/dist/modules/editor/hooks/useCommentEditor.d.ts +0 -13
  638. package/dist/modules/editor/hooks/useCommentEditor.js +0 -38
  639. package/dist/modules/editor/hooks/useCommentEditor.js.map +0 -1
  640. package/dist/modules/editor/hooks/useEditorContext.d.ts +0 -37
  641. package/dist/modules/editor/hooks/useEditorContext.js +0 -13
  642. package/dist/modules/editor/hooks/useEditorContext.js.map +0 -1
  643. package/dist/modules/editor/hooks/useImageModal.d.ts +0 -31
  644. package/dist/modules/editor/hooks/useImageModal.js +0 -47
  645. package/dist/modules/editor/hooks/useImageModal.js.map +0 -1
  646. package/dist/modules/editor/hooks/useImageSelection.d.ts +0 -21
  647. package/dist/modules/editor/hooks/useImageSelection.js +0 -47
  648. package/dist/modules/editor/hooks/useImageSelection.js.map +0 -1
  649. package/dist/modules/editor/hooks/useLinkToolbar.d.ts +0 -17
  650. package/dist/modules/editor/hooks/useLinkToolbar.js +0 -38
  651. package/dist/modules/editor/hooks/useLinkToolbar.js.map +0 -1
  652. package/dist/modules/editor/hooks/useMathsModal.d.ts +0 -17
  653. package/dist/modules/editor/hooks/useMathsModal.js +0 -18
  654. package/dist/modules/editor/hooks/useMathsModal.js.map +0 -1
  655. package/dist/modules/editor/hooks/useMathsStyles.d.ts +0 -1
  656. package/dist/modules/editor/hooks/useMathsStyles.js +0 -21
  657. package/dist/modules/editor/hooks/useMathsStyles.js.map +0 -1
  658. package/dist/modules/editor/hooks/useMediaLibraryEditor.d.ts +0 -19
  659. package/dist/modules/editor/hooks/useMediaLibraryEditor.js +0 -153
  660. package/dist/modules/editor/hooks/useMediaLibraryEditor.js.map +0 -1
  661. package/dist/modules/editor/hooks/useResizeMedia.d.ts +0 -10
  662. package/dist/modules/editor/hooks/useResizeMedia.js +0 -48
  663. package/dist/modules/editor/hooks/useResizeMedia.js.map +0 -1
  664. package/dist/modules/editor/hooks/useSpeechRecognition.d.ts +0 -6
  665. package/dist/modules/editor/hooks/useSpeechRecognition.js +0 -22
  666. package/dist/modules/editor/hooks/useSpeechRecognition.js.map +0 -1
  667. package/dist/modules/editor/hooks/useSpeechSynthetisis.d.ts +0 -12
  668. package/dist/modules/editor/hooks/useSpeechSynthetisis.js +0 -21
  669. package/dist/modules/editor/hooks/useSpeechSynthetisis.js.map +0 -1
  670. package/dist/modules/editor/hooks/useTipTapEditor.d.ts +0 -15
  671. package/dist/modules/editor/hooks/useTipTapEditor.js +0 -76
  672. package/dist/modules/editor/hooks/useTipTapEditor.js.map +0 -1
  673. package/dist/modules/editor/index.d.ts +0 -3
  674. package/dist/modules/editor/utils/has-extension.d.ts +0 -2
  675. package/dist/modules/editor/utils/has-extension.js +0 -5
  676. package/dist/modules/editor/utils/has-extension.js.map +0 -1
  677. package/dist/modules/editor/utils/has-mark.d.ts +0 -2
  678. package/dist/modules/editor/utils/has-mark.js +0 -5
  679. package/dist/modules/editor/utils/has-mark.js.map +0 -1
  680. package/dist/modules/editor/utils/has-text-style.d.ts +0 -2
  681. package/dist/modules/editor/utils/has-text-style.js +0 -6
  682. package/dist/modules/editor/utils/has-text-style.js.map +0 -1
  683. package/dist/modules/modals/OnboardingModal/OnboardingModal.js +0 -60
  684. package/dist/modules/modals/OnboardingModal/OnboardingModal.js.map +0 -1
  685. package/dist/modules/modals/OnboardingModal/useOnboardingModal.js +0 -31
  686. package/dist/modules/modals/OnboardingModal/useOnboardingModal.js.map +0 -1
  687. package/dist/modules/modals/PublishModal/PublishModal.js +0 -121
  688. package/dist/modules/modals/PublishModal/PublishModal.js.map +0 -1
  689. package/dist/modules/modals/PublishModal/components/ActivitiesDropdown.js +0 -30
  690. package/dist/modules/modals/PublishModal/components/ActivitiesDropdown.js.map +0 -1
  691. package/dist/modules/modals/PublishModal/components/AgeSelect.js +0 -21
  692. package/dist/modules/modals/PublishModal/components/AgeSelect.js.map +0 -1
  693. package/dist/modules/modals/PublishModal/components/LangSelect.js +0 -20
  694. package/dist/modules/modals/PublishModal/components/LangSelect.js.map +0 -1
  695. package/dist/modules/modals/PublishModal/components/PublishModalFooter.js +0 -24
  696. package/dist/modules/modals/PublishModal/components/PublishModalFooter.js.map +0 -1
  697. package/dist/modules/modals/PublishModal/components/SubjectsDropdown.js +0 -30
  698. package/dist/modules/modals/PublishModal/components/SubjectsDropdown.js.map +0 -1
  699. package/dist/modules/modals/PublishModal/components/ToastError.js +0 -25
  700. package/dist/modules/modals/PublishModal/components/ToastError.js.map +0 -1
  701. package/dist/modules/modals/PublishModal/components/ToastSuccess.js +0 -19
  702. package/dist/modules/modals/PublishModal/components/ToastSuccess.js.map +0 -1
  703. package/dist/modules/modals/PublishModal/constants/ageOptions.js +0 -5
  704. package/dist/modules/modals/PublishModal/constants/ageOptions.js.map +0 -1
  705. package/dist/modules/modals/PublishModal/hooks/useActivitiesOptions.js.map +0 -1
  706. package/dist/modules/modals/PublishModal/hooks/useLanguageOptions.js +0 -44
  707. package/dist/modules/modals/PublishModal/hooks/useLanguageOptions.js.map +0 -1
  708. package/dist/modules/modals/PublishModal/hooks/usePublishModal.js +0 -107
  709. package/dist/modules/modals/PublishModal/hooks/usePublishModal.js.map +0 -1
  710. package/dist/modules/modals/PublishModal/hooks/useSubjectsOptions.js.map +0 -1
  711. package/dist/modules/modals/ResourceModal/ResourceModal.js +0 -158
  712. package/dist/modules/modals/ResourceModal/ResourceModal.js.map +0 -1
  713. package/dist/modules/modals/ResourceModal/apps/BlogPublic.js +0 -64
  714. package/dist/modules/modals/ResourceModal/apps/BlogPublic.js.map +0 -1
  715. package/dist/modules/modals/ResourceModal/hooks/useSlug.js +0 -42
  716. package/dist/modules/modals/ResourceModal/hooks/useSlug.js.map +0 -1
  717. package/dist/modules/modals/ResourceModal/hooks/useThumb.js +0 -18
  718. package/dist/modules/modals/ResourceModal/hooks/useThumb.js.map +0 -1
  719. package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.js +0 -14
  720. package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.js.map +0 -1
  721. package/dist/modules/modals/ResourceModal/index.d.ts +0 -3
  722. package/dist/modules/modals/ShareModal/apps/ShareBlog.d.ts +0 -9
  723. package/dist/modules/modals/ShareModal/apps/ShareBlog.js +0 -44
  724. package/dist/modules/modals/ShareModal/apps/ShareBlog.js.map +0 -1
  725. package/dist/modules/modals/ShareModal/hooks/useShareMutation.js +0 -17
  726. package/dist/modules/modals/ShareModal/hooks/useShareMutation.js.map +0 -1
  727. package/dist/modules/modals/ShareModal/index.d.ts +0 -3
  728. package/dist/modules/multimedia/AudioRecorder/AudioRecorder.js +0 -50
  729. package/dist/modules/multimedia/AudioRecorder/AudioRecorder.js.map +0 -1
  730. package/dist/modules/multimedia/AudioRecorder/AudioRecorderTimer.js +0 -25
  731. package/dist/modules/multimedia/AudioRecorder/AudioRecorderTimer.js.map +0 -1
  732. package/dist/modules/multimedia/AudioRecorder/useAudioRecorder.js +0 -308
  733. package/dist/modules/multimedia/AudioRecorder/useAudioRecorder.js.map +0 -1
  734. package/dist/modules/multimedia/Embed/Embed.js +0 -33
  735. package/dist/modules/multimedia/Embed/Embed.js.map +0 -1
  736. package/dist/modules/multimedia/ImageEditor/components/ImageEditor.js +0 -117
  737. package/dist/modules/multimedia/ImageEditor/components/ImageEditor.js.map +0 -1
  738. package/dist/modules/multimedia/ImageEditor/components/ImageEditorToolbar.js +0 -70
  739. package/dist/modules/multimedia/ImageEditor/components/ImageEditorToolbar.js.map +0 -1
  740. package/dist/modules/multimedia/ImageEditor/effects/blur.js +0 -73
  741. package/dist/modules/multimedia/ImageEditor/effects/blur.js.map +0 -1
  742. package/dist/modules/multimedia/ImageEditor/effects/crop.js +0 -156
  743. package/dist/modules/multimedia/ImageEditor/effects/crop.js.map +0 -1
  744. package/dist/modules/multimedia/ImageEditor/effects/misc.js +0 -163
  745. package/dist/modules/multimedia/ImageEditor/effects/misc.js.map +0 -1
  746. package/dist/modules/multimedia/ImageEditor/effects/resize.js +0 -158
  747. package/dist/modules/multimedia/ImageEditor/effects/resize.js.map +0 -1
  748. package/dist/modules/multimedia/ImageEditor/effects/rotate.js +0 -34
  749. package/dist/modules/multimedia/ImageEditor/effects/rotate.js.map +0 -1
  750. package/dist/modules/multimedia/ImageEditor/hooks/useHistoryTool.js +0 -65
  751. package/dist/modules/multimedia/ImageEditor/hooks/useHistoryTool.js.map +0 -1
  752. package/dist/modules/multimedia/ImageEditor/hooks/useImageEditor.js +0 -77
  753. package/dist/modules/multimedia/ImageEditor/hooks/useImageEditor.js.map +0 -1
  754. package/dist/modules/multimedia/ImageEditor/hooks/useImageEffects.js +0 -53
  755. package/dist/modules/multimedia/ImageEditor/hooks/useImageEffects.js.map +0 -1
  756. package/dist/modules/multimedia/ImageEditor/utils/aggregate.js +0 -14
  757. package/dist/modules/multimedia/ImageEditor/utils/aggregate.js.map +0 -1
  758. package/dist/modules/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js +0 -40
  759. package/dist/modules/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js.map +0 -1
  760. package/dist/modules/multimedia/Linker/ExternalLinker.js +0 -46
  761. package/dist/modules/multimedia/Linker/ExternalLinker.js.map +0 -1
  762. package/dist/modules/multimedia/Linker/InternalLinker.js +0 -115
  763. package/dist/modules/multimedia/Linker/InternalLinker.js.map +0 -1
  764. package/dist/modules/multimedia/LinkerCard/LinkerCard.js +0 -40
  765. package/dist/modules/multimedia/LinkerCard/LinkerCard.js.map +0 -1
  766. package/dist/modules/multimedia/LinkerCard/index.d.ts +0 -1
  767. package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js +0 -212
  768. package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js.map +0 -1
  769. package/dist/modules/multimedia/MediaLibrary/MediaLibraryContext.js +0 -13
  770. package/dist/modules/multimedia/MediaLibrary/MediaLibraryContext.js.map +0 -1
  771. package/dist/modules/multimedia/MediaLibrary/innertabs/Audio.js +0 -20
  772. package/dist/modules/multimedia/MediaLibrary/innertabs/Audio.js.map +0 -1
  773. package/dist/modules/multimedia/MediaLibrary/innertabs/ExternalLink.js +0 -18
  774. package/dist/modules/multimedia/MediaLibrary/innertabs/ExternalLink.js.map +0 -1
  775. package/dist/modules/multimedia/MediaLibrary/innertabs/Iframe.js +0 -15
  776. package/dist/modules/multimedia/MediaLibrary/innertabs/Iframe.js.map +0 -1
  777. package/dist/modules/multimedia/MediaLibrary/innertabs/InternalLink.js +0 -36
  778. package/dist/modules/multimedia/MediaLibrary/innertabs/InternalLink.js.map +0 -1
  779. package/dist/modules/multimedia/MediaLibrary/innertabs/Upload.js +0 -35
  780. package/dist/modules/multimedia/MediaLibrary/innertabs/Upload.js.map +0 -1
  781. package/dist/modules/multimedia/MediaLibrary/innertabs/Video.js +0 -23
  782. package/dist/modules/multimedia/MediaLibrary/innertabs/Video.js.map +0 -1
  783. package/dist/modules/multimedia/MediaLibrary/innertabs/VideoEmbedder.js +0 -15
  784. package/dist/modules/multimedia/MediaLibrary/innertabs/VideoEmbedder.js.map +0 -1
  785. package/dist/modules/multimedia/MediaLibrary/innertabs/Workspace.js +0 -32
  786. package/dist/modules/multimedia/MediaLibrary/innertabs/Workspace.js.map +0 -1
  787. package/dist/modules/multimedia/MediaLibrary/innertabs/index.js +0 -22
  788. package/dist/modules/multimedia/MediaLibrary/innertabs/index.js.map +0 -1
  789. package/dist/modules/multimedia/UploadFiles/UploadFiles.js +0 -57
  790. package/dist/modules/multimedia/UploadFiles/UploadFiles.js.map +0 -1
  791. package/dist/modules/multimedia/VideoEmbed/VideoEmbed.js +0 -78
  792. package/dist/modules/multimedia/VideoEmbed/VideoEmbed.js.map +0 -1
  793. package/dist/modules/multimedia/VideoRecorder/VideoRecorder.js +0 -260
  794. package/dist/modules/multimedia/VideoRecorder/VideoRecorder.js.map +0 -1
  795. package/dist/modules/multimedia/Workspace/Workspace.js +0 -170
  796. package/dist/modules/multimedia/Workspace/Workspace.js.map +0 -1
  797. package/dist/multimedia.js +0 -21
  798. package/dist/multimedia.js.map +0 -1
  799. package/dist/portal/Header/Badge.js.map +0 -1
  800. package/dist/portal/Header/Header.js.map +0 -1
  801. package/dist/portal/Header/NavItem.js.map +0 -1
  802. package/dist/portal/Header/NavLink.js.map +0 -1
  803. package/dist/portal/Header/Navbar.js.map +0 -1
  804. package/dist/portal/Header/NavbarNav.js.map +0 -1
  805. package/dist/portal/Header/WidgetApps.js.map +0 -1
  806. package/dist/portal/Help/Help.js.map +0 -1
  807. package/dist/portal/Help/hooks/useHelp.js.map +0 -1
  808. package/dist/portal/Layout/Layout.js.map +0 -1
  809. package/dist/portal/SearchEngine/SearchEngine.js.map +0 -1
  810. package/dist/utils/MockedDataProvider/MockedDataProvider.js.map +0 -1
  811. package/dist/utils/StringUtils.js.map +0 -1
  812. package/dist/utils/addTimestampToUrl.js.map +0 -1
  813. package/dist/utils/blob.js.map +0 -1
  814. package/dist/utils/checkUserRight.js.map +0 -1
  815. package/dist/utils/fileSize.js.map +0 -1
  816. package/dist/utils/findTreeNode.js.map +0 -1
  817. package/dist/utils/isActionAvailable.js.map +0 -1
  818. package/dist/utils/libraryMaps.js.map +0 -1
  819. package/dist/utils/noop.js.map +0 -1
  820. package/dist/utils/ref.js.map +0 -1
  821. package/dist/utils/thumbnail.js.map +0 -1
  822. package/dist/utils/time.js.map +0 -1
  823. package/dist/utils/treeview.js.map +0 -1
  824. package/dist/utils/video.js.map +0 -1
  825. package/dist/widgets/BookmarkedApps/BookmarkedApps.js.map +0 -1
  826. package/dist/widgets/Widget/Widget.js.map +0 -1
  827. /package/dist/{modules/modals → common}/OnboardingModal/OnboardingModal.d.ts +0 -0
  828. /package/dist/{modules/modals → common}/OnboardingModal/index.d.ts +0 -0
  829. /package/dist/{modules/modals → common}/OnboardingModal/useOnboardingModal.d.ts +0 -0
  830. /package/dist/{modules/modals → common}/PublishModal/components/ActivitiesDropdown.d.ts +0 -0
  831. /package/dist/{modules/modals → common}/PublishModal/components/AgeSelect.d.ts +0 -0
  832. /package/dist/{modules/modals → common}/PublishModal/components/LangSelect.d.ts +0 -0
  833. /package/dist/{modules/modals → common}/PublishModal/components/PublishModalFooter.d.ts +0 -0
  834. /package/dist/{modules/modals → common}/PublishModal/components/SubjectsDropdown.d.ts +0 -0
  835. /package/dist/{modules/modals → common}/PublishModal/components/ToastError.d.ts +0 -0
  836. /package/dist/{modules/modals → common}/PublishModal/constants/ageOptions.d.ts +0 -0
  837. /package/dist/{modules/modals → common}/PublishModal/hooks/useActivitiesOptions.d.ts +0 -0
  838. /package/dist/{modules/modals → common}/PublishModal/hooks/useLanguageOptions.d.ts +0 -0
  839. /package/dist/{modules/modals → common}/PublishModal/hooks/useSubjectsOptions.d.ts +0 -0
  840. /package/dist/{modules/modals → common}/PublishModal/index.d.ts +0 -0
  841. /package/dist/{modules/modals → common}/ShareModal/ShareBookmark.d.ts +0 -0
  842. /package/dist/{modules/modals → common}/index.d.ts +0 -0
  843. /package/dist/{modules/audience → components/Audience}/ViewsCounter.d.ts +0 -0
  844. /package/dist/{modules/audience → components/Audience}/index.d.ts +0 -0
  845. /package/dist/{modules/multimedia → multimedia}/AudioRecorder/AudioRecorderTimer.d.ts +0 -0
  846. /package/dist/{modules/multimedia → multimedia}/AudioRecorder/index.d.ts +0 -0
  847. /package/dist/{modules/multimedia → multimedia}/Embed/Embed.d.ts +0 -0
  848. /package/dist/{modules/multimedia → multimedia}/Embed/index.d.ts +0 -0
  849. /package/dist/{modules/multimedia → multimedia}/ImageEditor/components/ImageEditor.d.ts +0 -0
  850. /package/dist/{modules/multimedia → multimedia}/ImageEditor/components/ImageEditorToolbar.d.ts +0 -0
  851. /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/blur.d.ts +0 -0
  852. /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/crop.d.ts +0 -0
  853. /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/misc.d.ts +0 -0
  854. /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/resize.d.ts +0 -0
  855. /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/rotate.d.ts +0 -0
  856. /package/dist/{modules/multimedia → multimedia}/ImageEditor/hooks/useHistoryTool.d.ts +0 -0
  857. /package/dist/{modules/multimedia → multimedia}/ImageEditor/hooks/useImageEditor.d.ts +0 -0
  858. /package/dist/{modules/multimedia → multimedia}/ImageEditor/hooks/useImageEffects.d.ts +0 -0
  859. /package/dist/{modules/multimedia → multimedia}/ImageEditor/index.d.ts +0 -0
  860. /package/dist/{modules/multimedia → multimedia}/ImageEditor/utils/aggregate.d.ts +0 -0
  861. /package/dist/{modules/multimedia → multimedia}/ImageEditor/utils/debounceAggregate.d.ts +0 -0
  862. /package/dist/{modules/multimedia → multimedia}/ImagePickerWorkspace/index.d.ts +0 -0
  863. /package/dist/{modules/multimedia → multimedia}/Linker/ExternalLinker.d.ts +0 -0
  864. /package/dist/{modules/multimedia → multimedia}/Linker/index.d.ts +0 -0
  865. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/index.d.ts +0 -0
  866. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Audio.d.ts +0 -0
  867. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/ExternalLink.d.ts +0 -0
  868. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Iframe.d.ts +0 -0
  869. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Upload.d.ts +0 -0
  870. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Video.d.ts +0 -0
  871. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/VideoEmbedder.d.ts +0 -0
  872. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Workspace.d.ts +0 -0
  873. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/index.d.ts +0 -0
  874. /package/dist/{modules/multimedia → multimedia}/UploadFiles/index.d.ts +0 -0
  875. /package/dist/{modules/multimedia → multimedia}/VideoEmbed/VideoEmbed.d.ts +0 -0
  876. /package/dist/{modules/multimedia → multimedia}/VideoEmbed/index.d.ts +0 -0
  877. /package/dist/{modules/multimedia → multimedia}/VideoRecorder/index.d.ts +0 -0
  878. /package/dist/{modules/multimedia → multimedia}/Workspace/index.d.ts +0 -0
  879. /package/dist/{modules/multimedia → multimedia}/index.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"useConf.js","sources":["../../../src/core/useConf/useConf.ts"],"sourcesContent":["import { App, IGetConf, odeServices } from '@edifice.io/ts-client';\nimport { useQuery } from '@tanstack/react-query';\n\nexport default function useConf({ appCode }: { appCode: App }) {\n return useQuery<IGetConf>({\n queryKey: ['conf'],\n queryFn: async () => await odeServices.conf().getConf(appCode),\n });\n}\n"],"names":["useConf","appCode","useQuery","queryKey","queryFn","odeServices","conf","getConf"],"mappings":";;AAGA,SAAwBA,EAAQ;AAAA,EAAEC,SAAAA;AAA0B,GAAG;AAC7D,SAAOC,EAAmB;AAAA,IACxBC,UAAU,CAAC,MAAM;AAAA,IACjBC,SAAS,YAAY,MAAMC,EAAYC,KAAK,EAAEC,QAAQN,CAAO;AAAA,EAAA,CAC9D;AACH;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useConversation.js","sources":["../../../src/core/useConversation/useConversation.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { odeServices } from '@edifice.io/ts-client';\n\nimport { useHasWorkflow } from '../useHasWorkflow';\n\nconst useConversation = () => {\n const zimbraWorkflow = useHasWorkflow(\n 'fr.openent.zimbra.controllers.ZimbraController|view',\n );\n const zimbraPreauth = useHasWorkflow(\n 'fr.openent.zimbra.controllers.ZimbraController|preauth',\n );\n\n /**\n * Count conversation app\n */\n const [messages, setMessages] = useState<number>(0);\n const [msgLink, setMsgLink] = useState<string>('');\n /**\n * Get message count for zimbra or chat app\n */\n const queryParams = { unread: true, _: new Date().getTime() };\n\n const refreshMails = async () => {\n const url = zimbraWorkflow\n ? '/zimbra/count/INBOX'\n : '/conversation/count/INBOX';\n\n try {\n const { count } = await odeServices.http().get(url, { queryParams });\n\n setMessages(count ?? 0);\n } catch (error) {\n console.error(error);\n setMessages(0);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n };\n\n const goToMessagerie = async () => {\n const defaultLink = '/zimbra/zimbra';\n\n try {\n const { preference } = await odeServices\n .http()\n .get('/userbook/preference/zimbra');\n const isExpertMode = preference\n ? JSON.parse(preference).modeExpert\n : false;\n setMsgLink(\n isExpertMode && zimbraPreauth\n ? '/zimbra/preauth'\n : window.location.origin + defaultLink,\n );\n } catch (error) {\n console.error(error);\n setMsgLink(window.location.origin + defaultLink);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n };\n\n useEffect(() => {\n refreshMails();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n goToMessagerie();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return { messages, msgLink, zimbraWorkflow } as const;\n};\n\nexport default useConversation;\n"],"names":["useConversation","zimbraWorkflow","useHasWorkflow","zimbraPreauth","messages","setMessages","useState","msgLink","setMsgLink","queryParams","unread","_","Date","getTime","refreshMails","url","count","odeServices","http","get","error","console","goToMessagerie","defaultLink","preference","isExpertMode","JSON","parse","modeExpert","window","location","origin","useEffect"],"mappings":";;;AAMA,MAAMA,IAAkBA,MAAM;AACtBC,QAAAA,IAAiBC,EACrB,qDACF,GACMC,IAAgBD,EACpB,wDACF,GAKM,CAACE,GAAUC,CAAW,IAAIC,EAAiB,CAAC,GAC5C,CAACC,GAASC,CAAU,IAAIF,EAAiB,EAAE,GAI3CG,IAAc;AAAA,IAAEC,QAAQ;AAAA,IAAMC,IAAG,oBAAIC,KAAK,GAAEC,QAAQ;AAAA,EAAA,GAEpDC,IAAe,YAAY;AACzBC,UAAAA,IAAMd,IACR,wBACA;AAEA,QAAA;AACI,YAAA;AAAA,QAAEe,OAAAA;AAAAA,UAAU,MAAMC,EAAYC,OAAOC,IAAIJ,GAAK;AAAA,QAAEN,aAAAA;AAAAA,MAAAA,CAAa;AAEnEJ,MAAAA,EAAYW,KAAS,CAAC;AAAA,aACfI,GAAO;AACdC,cAAQD,MAAMA,CAAK,GACnBf,EAAY,CAAC;AAAA,IACf;AAAA,EAAA,GAIIiB,IAAiB,YAAY;AACjC,UAAMC,IAAc;AAEhB,QAAA;AACI,YAAA;AAAA,QAAEC,YAAAA;AAAAA,UAAe,MAAMP,EAC1BC,KAAK,EACLC,IAAI,6BAA6B,GAC9BM,IAAeD,IACjBE,KAAKC,MAAMH,CAAU,EAAEI,aACvB;AACJpB,MAAAA,EACEiB,KAAgBtB,IACZ,oBACA0B,OAAOC,SAASC,SAASR,CAC/B;AAAA,aACOH,GAAO;AACdC,cAAQD,MAAMA,CAAK,GACRS,EAAAA,OAAOC,SAASC,SAASR,CAAW;AAAA,IACjD;AAAA,EAAA;AAIFS,SAAAA,EAAU,MAAM;AACD,IAAAlB;EAEf,GAAG,CAAE,CAAA,GAELkB,EAAU,MAAM;AACC,IAAAV;EAEjB,GAAG,CAAE,CAAA,GAEE;AAAA,IAAElB,UAAAA;AAAAA,IAAUG,SAAAA;AAAAA,IAASN,gBAAAA;AAAAA,EAAAA;AAC9B;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCookiesConsent.js","sources":["../../../src/core/useCookiesConsent/useCookiesConsent.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { usePreferences } from '../usePreferences';\n\nexport default function useCookiesConsent() {\n const [showCookiesConsent, setShowCookiesConsent] = useState<boolean>(false);\n const { getPreference, savePreference } = usePreferences('rgpdCookies');\n\n useEffect(() => {\n (async () => {\n const res: { showInfoTip: boolean } = await getPreference();\n if (res === null) {\n setShowCookiesConsent(true);\n } else {\n setShowCookiesConsent(res.showInfoTip);\n }\n })();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleConsultCookies = () => {\n document.location.href = '/userbook/mon-compte';\n savePreference({ showInfoTip: false });\n setShowCookiesConsent(false);\n };\n\n const handleCloseCookiesConsent = () => {\n savePreference({ showInfoTip: false });\n setShowCookiesConsent(false);\n };\n\n return {\n showCookiesConsent,\n handleConsultCookies,\n handleCloseCookiesConsent,\n };\n}\n"],"names":["useCookiesConsent","showCookiesConsent","setShowCookiesConsent","useState","getPreference","savePreference","usePreferences","useEffect","res","showInfoTip","handleConsultCookies","document","location","href","handleCloseCookiesConsent"],"mappings":";;AAIA,SAAwBA,IAAoB;AAC1C,QAAM,CAACC,GAAoBC,CAAqB,IAAIC,EAAkB,EAAK,GACrE;AAAA,IAAEC,eAAAA;AAAAA,IAAeC,gBAAAA;AAAAA,EAAAA,IAAmBC,EAAe,aAAa;AAEtEC,SAAAA,EAAU,MAAM;AACd,KAAC,YAAY;AACLC,YAAAA,IAAgC,MAAMJ;AAC5C,MACEF,EADEM,MAAQ,OACY,KAEAA,EAAIC,WAFA;AAAA,IAG5B;EAGJ,GAAG,CAAE,CAAA,GAaE;AAAA,IACLR,oBAAAA;AAAAA,IACAS,sBAb2BA,MAAM;AACjCC,eAASC,SAASC,OAAO,wBACVR,EAAA;AAAA,QAAEI,aAAa;AAAA,MAAA,CAAO,GACrCP,EAAsB,EAAK;AAAA,IAAA;AAAA,IAW3BY,2BARgCA,MAAM;AACvB,MAAAT,EAAA;AAAA,QAAEI,aAAa;AAAA,MAAA,CAAO,GACrCP,EAAsB,EAAK;AAAA,IAAA;AAAA,EAM3BY;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDate.js","sources":["../../../src/core/useDate/useDate.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport dayjs, { Dayjs } from 'dayjs';\n\n/**\n * DO NOT REMOVE .js extensions from dayjs imports\n */\nimport customParseFormat from 'dayjs/plugin/customParseFormat.js';\nimport localizedFormat from 'dayjs/plugin/localizedFormat.js';\nimport relativeTime from 'dayjs/plugin/relativeTime.js';\n\nimport 'dayjs/locale/de.js';\nimport 'dayjs/locale/es.js';\nimport 'dayjs/locale/fr.js';\nimport 'dayjs/locale/it.js';\nimport 'dayjs/locale/pt.js';\n\nimport { useOdeClient } from '../OdeClientProvider';\n\ndayjs.extend(relativeTime);\ndayjs.extend(customParseFormat);\ndayjs.extend(localizedFormat);\n\nexport type MongoDate = {\n $date: number | string;\n};\nexport type IsoDate = string; // \"2021-03-24T16:36:05.398\" or \"1980-01-13\"\n\n/** Date formats we are going to deal with. */\nexport type CoreDate = IsoDate | MongoDate;\n\n/**\n * Hook to compute user-friendly dates from various format.\n */\nexport default function useDate() {\n // Current language\n const { currentLanguage } = useOdeClient();\n\n /* Utility function */\n const parseDate = useCallback(\n (date: string, lang?: string): Dayjs => {\n if (date.length < 11) return dayjs(date, ['YYYY-MM-DD'], lang);\n\n // Check if the string is exclusively made of digits\n if (date.split('').findIndex((char) => '0' > char || char > '9') < 0) {\n // => it should be a number of elapsed milliseconds since 1970-01-01, as a string.\n return dayjs(Number.parseInt(date)).locale(currentLanguage as string);\n } else {\n // Otherwise, it should be an ISO 8601 date.\n let day = dayjs(date).locale(currentLanguage as string);\n if (!day.isValid()) {\n // If invalid, try custom parsings (https://day.js.org/docs/en/parse/string-format)\n day = dayjs(date, ['YYYY-MM-DD HH:mm:ss.SSS']).locale(\n currentLanguage as string,\n );\n }\n return day;\n }\n },\n [currentLanguage],\n );\n\n /** Compute a user-friendly elapsed duration, between now and a date. */\n const fromNow = useCallback(\n (date: CoreDate): string => {\n let computedDate: Dayjs = dayjs();\n try {\n if ('undefined' === typeof date) {\n return '';\n } else if ('string' === typeof date) {\n computedDate = parseDate(date);\n } else if ('number' === typeof date) {\n computedDate = dayjs(date).locale(currentLanguage as string);\n } else if ('number' === typeof date.$date) {\n computedDate = dayjs(new Date(date.$date)).locale(\n currentLanguage as string,\n );\n } else if ('string' === typeof date.$date) {\n computedDate = parseDate(date.$date);\n }\n\n return computedDate.isValid() ? computedDate.fromNow() : '';\n } catch (e) {\n return '';\n }\n },\n [currentLanguage, parseDate],\n );\n\n const formatDate = useCallback(\n (date: CoreDate, format = 'short'): string => {\n let computedDate: Dayjs = dayjs();\n\n try {\n if ('undefined' === typeof date) {\n return '';\n } else if ('string' === typeof date) {\n computedDate = parseDate(date);\n } else if ('number' === typeof date.$date) {\n computedDate = dayjs(new Date(date.$date)).locale(\n currentLanguage as string,\n );\n } else if ('string' === typeof date.$date) {\n computedDate = parseDate(date.$date);\n }\n\n let dayjsFormat = '';\n switch (format) {\n case 'short':\n dayjsFormat = 'L';\n break;\n case 'long':\n dayjsFormat = 'LL';\n break;\n case 'abbr':\n dayjsFormat = 'll';\n break;\n default:\n dayjsFormat = format;\n }\n\n return computedDate.isValid()\n ? computedDate.locale(currentLanguage as string).format(dayjsFormat)\n : '';\n } catch (e) {\n return '';\n }\n },\n [currentLanguage, parseDate],\n );\n\n return {\n fromNow,\n formatDate,\n };\n}\n"],"names":["dayjs","extend","relativeTime","customParseFormat","localizedFormat","useDate","currentLanguage","useOdeClient","parseDate","useCallback","date","lang","length","split","findIndex","char","Number","parseInt","locale","day","isValid","fromNow","computedDate","$date","Date","formatDate","format","dayjsFormat"],"mappings":";;;;;;;;;;;AAmBAA,EAAMC,OAAOC,CAAY;AACzBF,EAAMC,OAAOE,CAAiB;AAC9BH,EAAMC,OAAOG,CAAe;AAa5B,SAAwBC,IAAU;AAE1B,QAAA;AAAA,IAAEC,iBAAAA;AAAAA,MAAoBC,EAAa,GAGnCC,IAAYC,EAChB,CAACC,GAAcC,MAAyB;AAClCD,QAAAA,EAAKE,SAAS,GAAI,QAAOZ,EAAMU,GAAM,CAAC,YAAY,GAAGC,CAAI;AAGzDD,QAAAA,EAAKG,MAAM,EAAE,EAAEC,UAAWC,CAASA,MAAA,MAAMA,KAAQA,IAAO,GAAG,IAAI;AAEjE,aAAOf,EAAMgB,OAAOC,SAASP,CAAI,CAAC,EAAEQ,OAAOZ,CAAyB;AAC/D;AAEL,UAAIa,IAAMnB,EAAMU,CAAI,EAAEQ,OAAOZ,CAAyB;AAClD,aAACa,EAAIC,cAEPD,IAAMnB,EAAMU,GAAM,CAAC,yBAAyB,CAAC,EAAEQ,OAC7CZ,CACF,IAEKa;AAAAA,IACT;AAAA,EAAA,GAEF,CAACb,CAAe,CAClB,GAGMe,IAAUZ,EACd,CAACC,MAA2B;AAC1B,QAAIY,IAAsBtB;AACtB,QAAA;AACE,aAAgB,OAAOU,IAAvB,MACK,MACe,OAAOA,KAApB,WACTY,IAAed,EAAUE,CAAI,IACP,OAAOA,KAApB,WACTY,IAAetB,EAAMU,CAAI,EAAEQ,OAAOZ,CAAyB,IACrC,OAAOI,EAAKa,SAAzB,WACMvB,IAAAA,EAAM,IAAIwB,KAAKd,EAAKa,KAAK,CAAC,EAAEL,OACzCZ,CACF,IACsB,OAAOI,EAAKa,SAAzB,aACMf,IAAAA,EAAUE,EAAKa,KAAK,IAG9BD,EAAaF,QAAYE,IAAAA,EAAaD,YAAY;AAAA,YAC/C;AACH,aAAA;AAAA,IACT;AAAA,EAAA,GAEF,CAACf,GAAiBE,CAAS,CAC7B,GAEMiB,IAAahB,EACjB,CAACC,GAAgBgB,IAAS,YAAoB;AAC5C,QAAIJ,IAAsBtB;AAEtB,QAAA;AACE,UAAgB,OAAOU,IAAvB;AACK,eAAA;AACT,MAAwB,OAAOA,KAApB,WACTY,IAAed,EAAUE,CAAI,IACP,OAAOA,EAAKa,SAAzB,WACMvB,IAAAA,EAAM,IAAIwB,KAAKd,EAAKa,KAAK,CAAC,EAAEL,OACzCZ,CACF,IACsB,OAAOI,EAAKa,SAAzB,aACMf,IAAAA,EAAUE,EAAKa,KAAK;AAGrC,UAAII,IAAc;AAClB,cAAQD,GAAM;AAAA,QACZ,KAAK;AACW,UAAAC,IAAA;AACd;AAAA,QACF,KAAK;AACW,UAAAA,IAAA;AACd;AAAA,QACF,KAAK;AACW,UAAAA,IAAA;AACd;AAAA,QACF;AACgBD,UAAAA,IAAAA;AAAAA,MAClB;AAEOJ,aAAAA,EAAaF,QAChBE,IAAAA,EAAaJ,OAAOZ,CAAyB,EAAEoB,OAAOC,CAAW,IACjE;AAAA,YACM;AACH,aAAA;AAAA,IACT;AAAA,EAAA,GAEF,CAACrB,GAAiBE,CAAS,CAC7B;AAEO,SAAA;AAAA,IACLa,SAAAA;AAAAA,IACAI,YAAAA;AAAAA,EAAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useHasWorkflow.js","sources":["../../../src/core/useHasWorkflow/useHasWorkflow.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { odeServices } from '@edifice.io/ts-client';\n\nimport { useMockedData } from '../../utils';\n\nexport default function useHasWorkflow(\n workflow: string | string[],\n): (boolean | undefined) | Record<string, boolean> {\n const mock = useMockedData();\n\n const [state, setState] = useState<\n (boolean | undefined) | Record<string, boolean>\n >();\n\n useEffect(() => {\n (async () => {\n let response: boolean | Record<string, boolean>;\n if (mock?.hasWorkflow) {\n if (typeof workflow === 'string') {\n response = await mock.hasWorkflow(workflow);\n } else {\n throw new Error('not.implemented.yet)');\n }\n } else {\n if (typeof workflow === 'string') {\n response = await odeServices\n .rights()\n .sessionHasWorkflowRight(workflow);\n } else {\n response = await odeServices\n .rights()\n .sessionHasWorkflowRights(workflow);\n }\n }\n setState(response);\n })();\n }, [workflow, mock]);\n\n return state;\n}\n"],"names":["useHasWorkflow","workflow","mock","useMockedData","state","setState","useState","useEffect","response","hasWorkflow","Error","odeServices","rights","sessionHasWorkflowRight","sessionHasWorkflowRights"],"mappings":";;;AAMA,SAAwBA,EACtBC,GACiD;AACjD,QAAMC,IAAOC,KAEP,CAACC,GAAOC,CAAQ,IAAIC,EAExB;AAEFC,SAAAA,EAAU,MAAM;AACd,KAAC,YAAY;AACPC,UAAAA;AACJ,UAAIN,KAAAA,QAAAA,EAAMO;AACJ,YAAA,OAAOR,KAAa;AACX,UAAAO,IAAA,MAAMN,EAAKO,YAAYR,CAAQ;AAAA;AAEpC,gBAAA,IAAIS,MAAM,sBAAsB;AAAA;AAGpC,QAAA,OAAOT,KAAa,WACtBO,IAAW,MAAMG,EACdC,OAAO,EACPC,wBAAwBZ,CAAQ,IAEnCO,IAAW,MAAMG,EACdC,OAAO,EACPE,yBAAyBb,CAAQ;AAGxCI,MAAAA,EAASG,CAAQ;AAAA,IAAA;EAChB,GACF,CAACP,GAAUC,CAAI,CAAC,GAEZE;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useHeader.js","sources":["../../../src/core/useHeader/useHeader.ts"],"sourcesContent":["import { useCallback, useId, useMemo, useState } from 'react';\n\nimport { IUserInfo, odeServices } from '@edifice.io/ts-client';\nimport { useTranslation } from 'react-i18next';\n\nimport { useOdeTheme } from '..';\nimport { useHover } from '../../hooks';\nimport { useOdeClient } from '../OdeClientProvider/OdeClientProvider';\nimport { useBookmark } from '../useBookmark';\nimport { useHasWorkflow } from '../useHasWorkflow';\n\nexport default function useHeader({\n user,\n avatar,\n}: {\n user: IUserInfo | undefined;\n avatar: string;\n}): any {\n const { appCode } = useOdeClient();\n const { t } = useTranslation();\n\n const { theme } = useOdeTheme();\n\n /**\n * Get document title for responsive usage\n */\n const title = t(appCode);\n\n /**\n * Collapse helper for Responsive\n */\n const [isCollapsed, setIsCollapsed] = useState<boolean>(true);\n\n /**\n * useHover hook\n */\n const [appsRef, isAppsHovered] = useHover<HTMLLIElement>();\n\n /**\n * IDs for Popover Component\n */\n const popoverAppsId = useId();\n const popoverSearchId = useId();\n\n /**\n * Get user info: avatar, username and welcome message\n */\n const userAvatar = avatar;\n const userName = user?.username;\n\n const welcomeUser = t('welcome', { username: user?.firstName });\n\n /**\n * Get Bookmarked Apps\n */\n const bookmarkedApps = useBookmark();\n\n /**\n * Handle Header Workflows\n */\n const communityWorkflow = useHasWorkflow(\n 'net.atos.entng.community.controllers.CommunityController|view',\n );\n const conversationWorflow = useHasWorkflow(\n 'org.entcore.conversation.controllers.ConversationController|view',\n );\n const searchWorkflow = useHasWorkflow(\n 'fr.openent.searchengine.controllers.SearchEngineController|view',\n );\n\n const toggleCollapsedNav = useCallback(() => {\n setIsCollapsed(!isCollapsed);\n }, [isCollapsed]);\n\n const handleLogout = useCallback(async () => {\n await odeServices.session().logout();\n window.location.href = theme?.logoutCallback ?? '/auth/login';\n }, [theme?.logoutCallback]);\n\n return useMemo(\n () => ({\n title,\n bookmarkedApps,\n appsRef,\n isAppsHovered,\n popoverAppsId,\n popoverSearchId,\n userAvatar,\n userName,\n welcomeUser,\n communityWorkflow,\n conversationWorflow,\n searchWorkflow,\n isCollapsed,\n toggleCollapsedNav,\n handleLogout,\n }),\n [\n appsRef,\n bookmarkedApps,\n communityWorkflow,\n conversationWorflow,\n handleLogout,\n isAppsHovered,\n isCollapsed,\n popoverAppsId,\n popoverSearchId,\n searchWorkflow,\n title,\n toggleCollapsedNav,\n userAvatar,\n userName,\n welcomeUser,\n ],\n );\n}\n"],"names":["useHeader","user","avatar","appCode","useOdeClient","t","useTranslation","theme","useOdeTheme","title","isCollapsed","setIsCollapsed","useState","appsRef","isAppsHovered","useHover","popoverAppsId","useId","popoverSearchId","userAvatar","userName","username","welcomeUser","firstName","bookmarkedApps","useBookmark","communityWorkflow","useHasWorkflow","conversationWorflow","searchWorkflow","toggleCollapsedNav","useCallback","handleLogout","odeServices","session","logout","location","href","logoutCallback","useMemo"],"mappings":";;;;;;;;AAWA,SAAwBA,EAAU;AAAA,EAChCC,MAAAA;AAAAA,EACAC,QAAAA;AAIF,GAAQ;AACA,QAAA;AAAA,IAAEC,SAAAA;AAAAA,MAAYC,EAAa,GAC3B;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAe,GAEvB;AAAA,IAAEC,OAAAA;AAAAA,MAAUC,EAAY,GAKxBC,IAAQJ,EAAEF,CAAO,GAKjB,CAACO,GAAaC,CAAc,IAAIC,EAAkB,EAAI,GAKtD,CAACC,GAASC,CAAa,IAAIC,EAAwB,GAKnDC,IAAgBC,KAChBC,IAAkBD,KAKlBE,IAAajB,GACbkB,IAAWnB,KAAAA,gBAAAA,EAAMoB,UAEjBC,IAAcjB,EAAE,WAAW;AAAA,IAAEgB,UAAUpB,KAAAA,gBAAAA,EAAMsB;AAAAA,EAAAA,CAAW,GAKxDC,IAAiBC,KAKjBC,IAAoBC,EACxB,+DACF,GACMC,IAAsBD,EAC1B,kEACF,GACME,IAAiBF,EACrB,iEACF,GAEMG,IAAqBC,EAAY,MAAM;AAC3CpB,IAAAA,EAAe,CAACD,CAAW;AAAA,EAAA,GAC1B,CAACA,CAAW,CAAC,GAEVsB,IAAeD,EAAY,YAAY;AACrCE,UAAAA,EAAYC,UAAUC,UACrBC,OAAAA,SAASC,QAAO9B,KAAAA,gBAAAA,EAAO+B,mBAAkB;AAAA,EAAA,GAC/C,CAAC/B,KAAAA,gBAAAA,EAAO+B,cAAc,CAAC;AAE1B,SAAOC,EACL,OAAO;AAAA,IACL9B,OAAAA;AAAAA,IACAe,gBAAAA;AAAAA,IACAX,SAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAE,eAAAA;AAAAA,IACAE,iBAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAE,aAAAA;AAAAA,IACAI,mBAAAA;AAAAA,IACAE,qBAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAnB,aAAAA;AAAAA,IACAoB,oBAAAA;AAAAA,IACAE,cAAAA;AAAAA,EAAAA,IAEF,CACEnB,GACAW,GACAE,GACAE,GACAI,GACAlB,GACAJ,GACAM,GACAE,GACAW,GACApB,GACAqB,GACAX,GACAC,GACAE,CAAW,CAEf;AACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useHttpErrorToast.js","sources":["../../../src/core/useHttpErrorToast/useHttpErrorToast.ts"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\n\nimport { LAYER_NAME, odeServices } from '@edifice.io/ts-client';\nimport { useTranslation } from 'react-i18next';\n\nimport { useToast } from '../..';\nimport { CustomToastOptions } from '../../hooks/useToast/useToast';\n\nexport const useHttpErrorToast = (options?: CustomToastOptions) => {\n const message = useRef<string>();\n const toast = useToast();\n const { t } = useTranslation();\n\n useEffect(() => {\n const subscription = odeServices\n .notify()\n .events()\n .subscribe(LAYER_NAME.TRANSPORT, (event) => {\n message.current = t(\n event?.data?.payload?.error || event.data.response.statusText,\n );\n toast.error(\n React.createElement('div', { children: [message.current] }),\n options,\n );\n });\n\n return () => subscription.revoke();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [t, toast]);\n\n return message.current;\n};\n"],"names":["useHttpErrorToast","options","message","useRef","toast","useToast","t","useTranslation","useEffect","subscription","odeServices","notify","events","subscribe","LAYER_NAME","TRANSPORT","event","current","data","payload","error","response","statusText","createElement","children","revoke"],"mappings":";;;;AAQaA,MAAAA,IAAoBA,CAACC,MAAiC;AACjE,QAAMC,IAAUC,KACVC,IAAQC,KACR;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAe;AAE7BC,SAAAA,EAAU,MAAM;AACRC,UAAAA,IAAeC,EAClBC,SACAC,SACAC,UAAUC,EAAWC,WAAYC,CAAUA,MAAA;;AAClCC,MAAAA,EAAAA,UAAUX,IAChBU,KAAAA,IAAAA,KAAAA,gBAAAA,EAAOE,SAAPF,gBAAAA,EAAaG,YAAbH,gBAAAA,EAAsBI,UAASJ,EAAME,KAAKG,SAASC,UACrD,GACMF,EAAAA,MACEG,gBAAAA,EAAAA,cAAc,OAAO;AAAA,QAAEC,UAAU,CAACtB,EAAQe,OAAO;AAAA,MAAA,CAAG,GAC1DhB,CACF;AAAA,IAAA,CACD;AAEI,WAAA,MAAMQ,EAAagB;EAAO,GAEhC,CAACnB,GAAGF,CAAK,CAAC,GAENF,EAAQe;AACjB;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIsAdml.js","sources":["../../../src/core/useIsAdml/useIsAdml.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport { odeServices } from '@edifice.io/ts-client';\n\nexport default function useIsAdml() {\n const [isAdml, setIsAdml] = useState(false);\n\n useEffect(() => {\n initIsAdml();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const initIsAdml = useCallback(async () => {\n const isAdmlRes = await odeServices.session().isAdml();\n setIsAdml(isAdmlRes);\n }, []);\n\n return {\n isAdml,\n };\n}\n"],"names":["useIsAdml","isAdml","setIsAdml","useState","useEffect","initIsAdml","useCallback","isAdmlRes","odeServices","session"],"mappings":";;AAIA,SAAwBA,IAAY;AAClC,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK;AAE1CC,EAAAA,EAAU,MAAM;AACH,IAAAC;EAEb,GAAG,CAAE,CAAA;AAECA,QAAAA,IAAaC,EAAY,YAAY;AACzC,UAAMC,IAAY,MAAMC,EAAYC,UAAUR,OAAO;AACrDC,IAAAA,EAAUK,CAAS;AAAA,EACrB,GAAG,CAAE,CAAA;AAEE,SAAA;AAAA,IACLN,QAAAA;AAAAA,EAAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLibraryUrl.js","sources":["../../../src/core/useLibraryUrl/useLibraryUrl.ts"],"sourcesContent":["import { IUserInfo, IWebApp } from '@edifice.io/ts-client';\n\nimport { libraryMaps } from '../../utils/libraryMaps';\nimport { useOdeClient } from '../OdeClientProvider/OdeClientProvider';\n\n/**\n * Search for Library app in userinfo apps and return Library URL as a string.\n *\n * @returns the Library URL as a string. Returns null if no library was found in user apps.\n */\nconst useLibraryUrl = (): string | null => {\n const { user, appCode } = useOdeClient();\n\n const appName = libraryMaps[appCode as string];\n\n // get library app from userinfo apps\n const libraryApp: IWebApp | undefined = (user as IUserInfo)?.apps.find(\n (app) => app.isExternal && app.address.includes('library'),\n );\n\n if (!libraryApp) {\n return null;\n }\n\n // libraryUrl from userinfo.apps is like: https://libraryhost?platformURL=userPlatformURL\n const libraryUrlSplit = libraryApp.address?.split('?');\n if (!libraryUrlSplit || libraryUrlSplit.length < 2) {\n return null;\n }\n\n let libraryHost = libraryUrlSplit[0];\n // add a \"/\" to library host if not already there\n if (!libraryHost.endsWith('/')) {\n libraryHost = `${libraryHost}/`;\n }\n\n const platformURLParam = libraryUrlSplit?.[1];\n const searchParams = `application%5B0%5D=${appName}&page=1&sort_field=views&sort_order=desc`;\n\n return `${libraryHost}search/?${platformURLParam}&${searchParams}`;\n};\n\nexport default useLibraryUrl;\n"],"names":["useLibraryUrl","user","appCode","useOdeClient","appName","libraryMaps","libraryApp","apps","find","app","isExternal","address","includes","libraryUrlSplit","split","length","libraryHost","endsWith","platformURLParam","searchParams"],"mappings":";;AAUA,MAAMA,IAAgBA,MAAqB;;AACnC,QAAA;AAAA,IAAEC,MAAAA;AAAAA,IAAMC,SAAAA;AAAAA,MAAYC,EAAa,GAEjCC,IAAUC,EAAYH,CAAiB,GAGvCI,IAAmCL,KAAAA,gBAAAA,EAAoBM,KAAKC,KAC/DC,CAAAA,MAAQA,EAAIC,cAAcD,EAAIE,QAAQC,SAAS,SAAS;AAG3D,MAAI,CAACN;AACI,WAAA;AAIT,QAAMO,KAAkBP,IAAAA,EAAWK,YAAXL,gBAAAA,EAAoBQ,MAAM;AAClD,MAAI,CAACD,KAAmBA,EAAgBE,SAAS;AACxC,WAAA;AAGLC,MAAAA,IAAcH,EAAgB,CAAC;AAEnC,EAAKG,EAAYC,SAAS,GAAG,MAC3BD,IAAc,GAAGA,CAAW;AAGxBE,QAAAA,IAAmBL,KAAAA,gBAAAA,EAAkB,IACrCM,IAAe,sBAAsBf,CAAO;AAElD,SAAO,GAAGY,CAAW,WAAWE,CAAgB,IAAIC,CAAY;AAClE;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useMediaLibrary.js","sources":["../../../src/core/useMediaLibrary/useMediaLibrary.ts"],"sourcesContent":["import { useRef, useState } from 'react';\n\nimport { WorkspaceElement } from '@edifice.io/ts-client';\nimport { TabsItemProps } from '../../components';\nimport { MediaLibraryRef, MediaLibraryResult } from '../../modules/multimedia';\nimport { useWorkspaceFile } from '../useWorkspaceFile';\n\nconst useMediaLibrary = () => {\n const mediaLibraryRef = useRef<MediaLibraryRef>(null);\n const [libraryMedia, setLibraryMedia] = useState<MediaLibraryResult>();\n const { remove } = useWorkspaceFile();\n\n const onCancel = async (uploads?: WorkspaceElement[]) => {\n if (mediaLibraryRef.current?.type && uploads && uploads.length > 0) {\n await remove(uploads);\n }\n mediaLibraryRef.current?.hide();\n };\n\n const onSuccess = (result: MediaLibraryResult) => {\n let updatedMedia;\n\n switch (mediaLibraryRef.current?.type) {\n case 'video': {\n if (typeof result === 'object') {\n updatedMedia = result[0];\n } else {\n const parser = new DOMParser();\n const doc = parser.parseFromString(result, 'text/html');\n const element = doc.body.firstChild as HTMLBodyElement;\n\n const href = element?.getAttribute('src');\n mediaLibraryRef.current?.hide();\n updatedMedia = href;\n }\n break;\n }\n case 'embedder': {\n const parser = new DOMParser();\n const doc = parser.parseFromString(result, 'text/html');\n const element = doc.body.firstChild as HTMLBodyElement;\n\n const href = element?.getAttribute('src');\n mediaLibraryRef.current?.hide();\n updatedMedia = href;\n break;\n }\n case 'audio': {\n if (result.length === undefined) {\n updatedMedia = result;\n } else {\n updatedMedia = result[0];\n }\n break;\n }\n case 'hyperlink': {\n updatedMedia = result;\n break;\n }\n case 'image': {\n const imagePath = `/workspace/document/${result[0]._id}`;\n updatedMedia = imagePath;\n break;\n }\n default: {\n updatedMedia = result[0];\n }\n }\n\n mediaLibraryRef.current?.hide();\n setLibraryMedia(updatedMedia);\n };\n\n const onTabChange = async (\n _tab: TabsItemProps,\n uploads?: WorkspaceElement[],\n ) => {\n if (mediaLibraryRef.current?.type && uploads && uploads.length > 0) {\n await remove(uploads);\n }\n };\n\n return {\n ref: mediaLibraryRef,\n libraryMedia,\n setLibraryMedia,\n onCancel,\n onSuccess,\n onTabChange,\n };\n};\n\nexport default useMediaLibrary;\n"],"names":["useMediaLibrary","mediaLibraryRef","useRef","libraryMedia","setLibraryMedia","useState","remove","useWorkspaceFile","ref","onCancel","uploads","current","type","length","hide","onSuccess","result","updatedMedia","element","DOMParser","parseFromString","body","firstChild","href","getAttribute","undefined","imagePath","_id","onTabChange","_tab"],"mappings":";;AAOA,MAAMA,IAAkBA,MAAM;AACtBC,QAAAA,IAAkBC,EAAwB,IAAI,GAC9C,CAACC,GAAcC,CAAe,IAAIC,EAA6B,GAC/D;AAAA,IAAEC,QAAAA;AAAAA,MAAWC,EAAiB;AAwE7B,SAAA;AAAA,IACLC,KAAKP;AAAAA,IACLE,cAAAA;AAAAA,IACAC,iBAAAA;AAAAA,IACAK,UA1Ee,OAAOC,MAAiC;;AACvD,OAAIT,IAAAA,EAAgBU,YAAhBV,QAAAA,EAAyBW,QAAQF,KAAWA,EAAQG,SAAS,KAC/D,MAAMP,EAAOI,CAAO,IAEtBT,IAAAA,EAAgBU,YAAhBV,QAAAA,EAAyBa;AAAAA,IAAK;AAAA,IAuE9BC,WApEgBA,CAACC,MAA+B;;AAC5CC,UAAAA;AAEIhB,eAAAA,IAAAA,EAAgBU,YAAhBV,gBAAAA,EAAyBW,MAAI;AAAA,QACnC,KAAK,SAAS;AACR,cAAA,OAAOI,KAAW;AACpBC,YAAAA,IAAeD,EAAO,CAAC;AAAA,eAClB;AAGCE,kBAAAA,IAFS,IAAIC,YACAC,gBAAgBJ,GAAQ,WAAW,EAClCK,KAAKC,YAEnBC,IAAOL,KAAAA,gBAAAA,EAASM,aAAa;AACnCvB,aAAAA,IAAAA,EAAgBU,YAAhBV,QAAAA,EAAyBa,QACVS,IAAAA;AAAAA,UACjB;AACA;AAAA,QACF;AAAA,QACA,KAAK,YAAY;AAGTL,gBAAAA,IAFS,IAAIC,YACAC,gBAAgBJ,GAAQ,WAAW,EAClCK,KAAKC,YAEnBC,IAAOL,KAAAA,gBAAAA,EAASM,aAAa;AACnCvB,WAAAA,IAAAA,EAAgBU,YAAhBV,QAAAA,EAAyBa,QACVS,IAAAA;AACf;AAAA,QACF;AAAA,QACA,KAAK,SAAS;AACRP,UAAAA,EAAOH,WAAWY,SACLT,IAAAA,IAEfC,IAAeD,EAAO,CAAC;AAEzB;AAAA,QACF;AAAA,QACA,KAAK,aAAa;AACDA,UAAAA,IAAAA;AACf;AAAA,QACF;AAAA,QACA,KAAK,SAAS;AAEGU,UAAAA,IADG,uBAAuBV,EAAO,CAAC,EAAEW,GAAG;AAEtD;AAAA,QACF;AAAA,QACA;AACEV,UAAAA,IAAeD,EAAO,CAAC;AAAA,MAE3B;AAEAf,OAAAA,IAAAA,EAAgBU,YAAhBV,QAAAA,EAAyBa,QACzBV,EAAgBa,CAAY;AAAA,IAAA;AAAA,IAkB5BW,aAfkB,OAClBC,GACAnB,MACG;;AACH,OAAIT,IAAAA,EAAgBU,YAAhBV,QAAAA,EAAyBW,QAAQF,KAAWA,EAAQG,SAAS,KAC/D,MAAMP,EAAOI,CAAO;AAAA,IACtB;AAAA,EASAkB;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useOdeIcons.js","sources":["../../../src/core/useOdeIcons/useOdeIcons.ts"],"sourcesContent":["import { IWebApp, WidgetName, type IWidget } from '@edifice.io/ts-client';\n\nexport default function useOdeIcons() {\n /**\n * Map between widget name and its icon name\n */\n const iconOfWidget: { [name in WidgetName]: string } = {\n 'last-infos-widget': 'ic-widget-actualites',\n birthday: 'ic-star',\n 'calendar-widget': 'ic-widget-calendar',\n 'carnet-de-bord': 'ic-widget-carnet-de-bord',\n 'record-me': 'ic-widget-microphone',\n mood: 'ic-star',\n 'my-apps': 'ic-widget-apps',\n notes: 'ic-widget-notes',\n 'rss-widget': 'ic-widget-rss',\n 'bookmark-widget': 'ic-widget-signets',\n qwant: 'ic-widget-qwant',\n 'qwant-junior': 'ic-widget-qwant',\n 'agenda-widget': 'ic-widget-agenda',\n 'cursus-widget': 'ic-widget-aide-devoirs',\n 'maxicours-widget': 'ic-widget-maxicours',\n 'school-widget': 'ic-widget-schoolbook',\n 'universalis-widget': 'ic-widget-universalis',\n 'briefme-widget': 'ic-widget-briefme',\n };\n /**\n * Map between apps and their CSS code.\n * @param app an IWebApp, or an app prefix\n */\n function getIconCode(app: IWebApp | string | undefined): string {\n let appCode = '';\n\n if (typeof app === 'string') {\n appCode = app;\n } else {\n appCode =\n app?.icon !== undefined\n ? app?.icon.trim().toLowerCase()\n : 'placeholder';\n }\n\n if (appCode && appCode.length > 0) {\n if (appCode.endsWith('-large')) appCode = appCode.replace('-large', '');\n } else if (typeof app === 'object') {\n // fallback value, probably won't ever happen\n appCode =\n app?.displayName !== undefined\n ? app?.displayName.trim().toLowerCase()\n : '';\n }\n // appCode = configurationFramework.Platform.idiom.removeAccents(appCode);\n // @see distinct values for app's displayName is in query /auth/oauth2/userinfo\n switch (appCode) {\n case 'admin.title':\n appCode = 'admin';\n break;\n case 'banques des savoirs':\n appCode = 'banquesavoir';\n break;\n case 'collaborativewall':\n appCode = 'collaborative-wall';\n break;\n case 'communautés':\n appCode = 'community';\n break;\n case 'directory.user':\n appCode = 'userbook';\n break;\n case 'emploi du temps':\n appCode = 'edt';\n break;\n case 'formulaire':\n appCode = 'forms';\n break;\n case 'messagerie':\n appCode = 'conversation';\n break;\n case 'news':\n appCode = 'actualites';\n break;\n case 'homeworks':\n case 'cahier de texte':\n appCode = 'cahier-de-texte';\n break;\n case 'diary':\n case 'cahier de texte 2d':\n appCode = 'cahier-textes';\n break;\n default:\n break;\n }\n return appCode;\n }\n\n function isIconUrl(icon: string): string | boolean {\n return (\n icon &&\n (icon.startsWith('/') ||\n icon.startsWith('http://') ||\n icon.startsWith('https://'))\n );\n }\n\n /**\n *\n * @param app an IWebApp, or an app prefix\n * @return the CSS class used to style icons\n */\n function getIconClass(app: IWebApp | string): string {\n const appCode = getIconCode(app);\n if (appCode) return `color-app-${appCode}`;\n return `color-app-placeholder`;\n }\n /**\n *\n * @param app an IWebApp, or an app prefix\n * @return the CSS class used to style icons\n */\n function getBackgroundIconClass(app: IWebApp | string): string {\n const appCode = getIconCode(app);\n if (appCode) return `bg-app-${appCode}`;\n return `bg-app-placeholder`;\n }\n\n /**\n *\n * @param app an IWebApp, or an app prefix\n * @return the CSS class used to style icons\n */\n function getBackgroundLightIconClass(app: IWebApp | string): string {\n const appCode = getIconCode(app);\n if (appCode) return `bg-light-${appCode}`;\n return `bg-light-placeholder`;\n }\n\n /**\n *\n * @param widget\n * @return the CSS class of a widget\n */\n function getWidgetIconClass(widget: IWidget): string {\n return iconOfWidget[widget.platformConf.name];\n }\n\n return {\n getIconClass,\n getBackgroundIconClass,\n getBackgroundLightIconClass,\n getIconCode,\n getWidgetIconClass,\n isIconUrl,\n };\n}\n"],"names":["useOdeIcons","iconOfWidget","birthday","mood","notes","qwant","getIconCode","app","appCode","icon","undefined","trim","toLowerCase","length","endsWith","replace","displayName","isIconUrl","startsWith","getIconClass","getBackgroundIconClass","getBackgroundLightIconClass","getWidgetIconClass","widget","platformConf","name"],"mappings":"AAEA,SAAwBA,IAAc;AAIpC,QAAMC,IAAiD;AAAA,IACrD,qBAAqB;AAAA,IACrBC,UAAU;AAAA,IACV,mBAAmB;AAAA,IACnB,kBAAkB;AAAA,IAClB,aAAa;AAAA,IACbC,MAAM;AAAA,IACN,WAAW;AAAA,IACXC,OAAO;AAAA,IACP,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnBC,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,IACjB,sBAAsB;AAAA,IACtB,kBAAkB;AAAA,EAAA;AAMpB,WAASC,EAAYC,GAA2C;AAC9D,QAAIC,IAAU;AAsBd,YApBI,OAAOD,KAAQ,WACPA,IAAAA,IAGRA,KAAAA,KAAAA,gBAAAA,EAAKE,UAASC,SACVH,KAAAA,gBAAAA,EAAKE,KAAKE,OAAOC,gBACjB,eAGJJ,KAAWA,EAAQK,SAAS,IAC1BL,EAAQM,SAAS,QAAQ,UAAaN,EAAQO,QAAQ,UAAU,EAAE,KAC7D,OAAOR,KAAQ,aAGtBA,KAAAA,KAAAA,gBAAAA,EAAKS,iBAAgBN,SACjBH,KAAAA,gBAAAA,EAAKS,YAAYL,OAAOC,gBACxB,KAIAJ,GAAO;AAAA,MACb,KAAK;AACO,QAAAA,IAAA;AACV;AAAA,MACF,KAAK;AACO,QAAAA,IAAA;AACV;AAAA,MACF,KAAK;AACO,QAAAA,IAAA;AACV;AAAA,MACF,KAAK;AACO,QAAAA,IAAA;AACV;AAAA,MACF,KAAK;AACO,QAAAA,IAAA;AACV;AAAA,MACF,KAAK;AACO,QAAAA,IAAA;AACV;AAAA,MACF,KAAK;AACO,QAAAA,IAAA;AACV;AAAA,MACF,KAAK;AACO,QAAAA,IAAA;AACV;AAAA,MACF,KAAK;AACO,QAAAA,IAAA;AACV;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AACO,QAAAA,IAAA;AACV;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AACO,QAAAA,IAAA;AACV;AAAA,IAGJ;AACOA,WAAAA;AAAAA,EACT;AAEA,WAASS,EAAUR,GAAgC;AAE/CA,WAAAA,MACCA,EAAKS,WAAW,GAAG,KAClBT,EAAKS,WAAW,SAAS,KACzBT,EAAKS,WAAW,UAAU;AAAA,EAEhC;AAOA,WAASC,EAAaZ,GAA+B;AAC7CC,UAAAA,IAAUF,EAAYC,CAAG;AAC3BC,WAAAA,IAAgB,aAAaA,CAAO,KACjC;AAAA,EACT;AAMA,WAASY,EAAuBb,GAA+B;AACvDC,UAAAA,IAAUF,EAAYC,CAAG;AAC3BC,WAAAA,IAAgB,UAAUA,CAAO,KAC9B;AAAA,EACT;AAOA,WAASa,EAA4Bd,GAA+B;AAC5DC,UAAAA,IAAUF,EAAYC,CAAG;AAC3BC,WAAAA,IAAgB,YAAYA,CAAO,KAChC;AAAA,EACT;AAOA,WAASc,EAAmBC,GAAyB;AAC5CtB,WAAAA,EAAasB,EAAOC,aAAaC,IAAI;AAAA,EAC9C;AAEO,SAAA;AAAA,IACLN,cAAAA;AAAAA,IACAC,wBAAAA;AAAAA,IACAC,6BAAAA;AAAAA,IACAf,aAAAA;AAAAA,IACAgB,oBAAAA;AAAAA,IACAL,WAAAA;AAAAA,EAAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePaths.js","sources":["../../../src/core/usePaths/usePaths.ts"],"sourcesContent":["export default function usePaths(): string[] {\n const imagePath = '/assets/themes/edifice-bootstrap/images';\n const iconPath = '/assets/themes/edifice-bootstrap/icons';\n const fontPath = '/assets/themes/edifice-bootstrap/fonts';\n\n return [imagePath, iconPath, fontPath];\n}\n"],"names":["usePaths"],"mappings":"AAAA,SAAwBA,IAAqB;AAKpC,SAAA,CAJW,2CACD,0CACA,wCAEoB;AACvC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePreferences.js","sources":["../../../src/core/usePreferences/usePreferences.ts"],"sourcesContent":["import { odeServices } from '@edifice.io/ts-client';\n\nexport default function usePreferences(name: string) {\n const getPreference = async (): Promise<any> => {\n const res = await odeServices.conf().getPreference(name);\n return res;\n };\n\n const savePreference = async (value: any): Promise<void> => {\n const res = await odeServices\n .conf()\n .savePreference(name, JSON.stringify(value));\n return res;\n };\n\n return { getPreference, savePreference };\n}\n"],"names":["usePreferences","name","getPreference","odeServices","conf","savePreference","value","JSON","stringify"],"mappings":";AAEA,SAAwBA,EAAeC,GAAc;AAa5C,SAAA;AAAA,IAAEC,eAZa,YACR,MAAMC,EAAYC,KAAK,EAAEF,cAAcD,CAAI;AAAA,IAWjCI,gBAPD,OAAOC,MAChB,MAAMH,EACfC,OACAC,eAAeJ,GAAMM,KAAKC,UAAUF,CAAK,CAAC;AAAA,EAIvBD;AAC1B;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useResource.js","sources":["../../../src/core/useResource/useResource.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { IResource, odeServices } from '@edifice.io/ts-client';\n\nconst useResource = (application: string, id: string) => {\n const [resource, setResource] = useState<IResource>(null!);\n\n useEffect(() => {\n if (id === '') {\n console.warn('resourceId must be an assetId and not an empty string');\n return;\n }\n\n (async () => {\n try {\n const response = await odeServices\n .resource(application)\n .searchResource({\n application,\n id,\n });\n\n setResource(response);\n } catch (error) {\n console.error(error);\n }\n })();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return resource;\n};\n\nexport default useResource;\n"],"names":["useResource","application","id","resource","setResource","useState","useEffect","console","warn","response","odeServices","searchResource","error"],"mappings":";;AAIMA,MAAAA,IAAcA,CAACC,GAAqBC,MAAe;AACvD,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAoB,IAAK;AAEzDC,SAAAA,EAAU,MAAM;AACd,QAAIJ,MAAO,IAAI;AACbK,cAAQC,KAAK,uDAAuD;AACpE;AAAA,IACF;AAEA,KAAC,YAAY;AACP,UAAA;AACF,cAAMC,IAAW,MAAMC,EACpBP,SAASF,CAAW,EACpBU,eAAe;AAAA,UACdV,aAAAA;AAAAA,UACAC,IAAAA;AAAAA,QAAAA,CACD;AAEHE,QAAAA,EAAYK,CAAQ;AAAA,eACbG,GAAO;AACdL,gBAAQK,MAAMA,CAAK;AAAA,MACrB;AAAA,IAAA;EAGJ,GAAG,CAAE,CAAA,GAEET;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useResourceSearch.js","sources":["../../../src/core/useResourceSearch/useResourceSearch.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport {\n App,\n GetContextParameters,\n odeServices,\n SnipletsService,\n} from '@edifice.io/ts-client';\n/*\n * Augmented definition of a resource, until behaviours are dropped.\n * The path would otherwise be found by using `IWebResourceService.getViewUrl(resource)`\n */\nimport { ILinkedResource } from '@edifice.io/ts-client';\n\nimport { useMockedData } from '../../utils';\n\n/**\n * A hook to search for resources produced by applications.\n *\n * @param appCode Currently running application.\n * @returns An object with 2 fields :\n *\n * `resourceApplications: Array<App>`\n * Resources-producing applications the user can use.\n *\n * `loadResources: (filters:GetContextParameters) => Promise<ILinkedResource[]>`\n * A search method with filters.\n *\n */\nexport const useResourceSearch = (appCode: App) => {\n // Needed for storybook to mock calls to backend\n const mock = useMockedData();\n\n // Resources-producing applications the user can use\n const [resourceApplications, setResourceApplications] = useState<App[]>([]);\n\n // Init services, only once\n useEffect(() => {\n (async () => {\n try {\n await SnipletsService.initialize(odeServices, mock?.app || appCode);\n } catch (error) {\n if (mock?.app) {\n SnipletsService.resourceProducingApps = [mock?.app];\n } else {\n throw error;\n }\n }\n await SnipletsService.registerBehaviours(mock?.app || appCode);\n setResourceApplications(SnipletsService.resourceProducingApps);\n })();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const loadResources = useCallback(\n async (filters: GetContextParameters) => {\n const [resourceType] = filters.types;\n // If mocked data is available, use it. Otherwise load from server.\n const payload = mock?.loadResources\n ? await mock?.loadResources?.(filters).then((results) =>\n results.map((r) => {\n // Generate random IDs to prevent infinite recursion\n return {\n ...r,\n _id: '' + Math.round(Math.random() * 9999),\n };\n }),\n )\n : await odeServices\n .behaviour(appCode, resourceType)\n .loadResources(filters);\n\n return payload;\n },\n [appCode, mock],\n );\n\n return { resourceApplications, loadResources } as {\n resourceApplications: Array<App>;\n loadResources: (\n filters: GetContextParameters,\n ) => Promise<ILinkedResource[]>;\n };\n};\n"],"names":["useResourceSearch","appCode","mock","useMockedData","resourceApplications","setResourceApplications","useState","useEffect","SnipletsService","initialize","odeServices","app","error","resourceProducingApps","registerBehaviours","loadResources","useCallback","filters","resourceType","types","payload","then","results","map","r","_id","Math","round","random","behaviour"],"mappings":";;;AA6BaA,MAAAA,IAAoBA,CAACC,MAAiB;AAEjD,QAAMC,IAAOC,KAGP,CAACC,GAAsBC,CAAuB,IAAIC,EAAgB,CAAE,CAAA;AAG1EC,EAAAA,EAAU,MAAM;AACd,KAAC,YAAY;AACP,UAAA;AACF,cAAMC,EAAgBC,WAAWC,IAAaR,KAAAA,gBAAAA,EAAMS,QAAOV,CAAO;AAAA,eAC3DW,GAAO;AACd,YAAIV,KAAAA,QAAAA,EAAMS;AACQE,UAAAA,EAAAA,wBAAwB,CAACX,KAAAA,gBAAAA,EAAMS,GAAG;AAAA;AAE5CC,gBAAAA;AAAAA,MAEV;AACA,YAAMJ,EAAgBM,oBAAmBZ,KAAAA,gBAAAA,EAAMS,QAAOV,CAAO,GAC7DI,EAAwBG,EAAgBK,qBAAqB;AAAA,IAAA;EAGjE,GAAG,CAAE,CAAA;AAECE,QAAAA,IAAgBC,EACpB,OAAOC,MAAkC;;AACjC,UAAA,CAACC,CAAY,IAAID,EAAQE;AAgBxBC,WAdSlB,KAAAA,QAAAA,EAAMa,gBAClB,QAAMb,IAAAA,KAAAA,gBAAAA,EAAMa,kBAANb,gBAAAA,EAAAA,KAAAA,GAAsBe,GAASI,KAAMC,CAAAA,MACzCA,EAAQC,IAAKC,CAAMA,OAEV;AAAA,MACL,GAAGA;AAAAA,MACHC,KAAK,KAAKC,KAAKC,MAAMD,KAAKE,WAAW,IAAI;AAAA,IAAA,EAE5C,MAEH,MAAMlB,EACHmB,UAAU5B,GAASiB,CAAY,EAC/BH,cAAcE,CAAO;AAAA,EAErBG,GAET,CAACnB,GAASC,CAAI,CAChB;AAEO,SAAA;AAAA,IAAEE,sBAAAA;AAAAA,IAAsBW,eAAAA;AAAAA,EAAAA;AAMjC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSession.js","sources":["../../../src/core/useSession/useSession.ts"],"sourcesContent":["import { IGetSession, odeServices } from '@edifice.io/ts-client';\nimport { useQuery } from '@tanstack/react-query';\n\nexport default function useSession() {\n return useQuery<IGetSession>({\n queryKey: ['session'],\n queryFn: async () => await odeServices.session().getSession(),\n });\n}\n"],"names":["useSession","useQuery","queryKey","queryFn","odeServices","session","getSession"],"mappings":";;AAGA,SAAwBA,IAAa;AACnC,SAAOC,EAAsB;AAAA,IAC3BC,UAAU,CAAC,SAAS;AAAA,IACpBC,SAAS,YAAY,MAAMC,EAAYC,QAAAA,EAAUC,WAAW;AAAA,EAAA,CAC7D;AACH;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTrashedResource.js","sources":["../../../src/core/useTrashedResource/useTrashedResource.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { IResource, odeServices } from '@edifice.io/ts-client';\n\nimport { useOdeClient, useUser } from '..';\n\n/**\n * Router Params Id === ResourceId\n */\ntype UseTrashedResourceProps = string | undefined;\n\nconst useTrashedResource = (id: UseTrashedResourceProps) => {\n const { appCode } = useOdeClient();\n const { user } = useUser();\n\n const [trashed, setTrashed] = useState<boolean>(false);\n\n /**\n * Fix #WB2-1252: show 404 resource error page if resource is in trash.\n * Check if resource is trashed.\n */\n useEffect(() => {\n (async () => {\n // To know if the resource has been trashed we need to request Explorer API. The information is not updates in legacy app.\n const explorerData = await odeServices\n .http()\n .get(\n `/explorer/resources?application=${appCode}&resource_type=${appCode}&asset_id[]=${id}`,\n );\n // const explorerData = await explorerResponse.json();\n const resource = explorerData?.resources?.find(\n (resource: IResource) => resource.assetId === id,\n );\n\n if (resource?.trashed || resource?.trashedBy?.includes(user?.userId)) {\n // Error boundaries are not working with async calls,\n // so we need to use a state and then in another useEffect we handle the error\n setTrashed(true);\n }\n })();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n /**\n * Fix #WB2-1252: show 404 resource error page if resource is in trash.\n * The useEffect to handle the error of a trashed resource.\n */\n useEffect(() => {\n if (trashed) {\n throw new Response('', {\n status: 404,\n statusText: 'Not Found',\n });\n }\n }, [trashed]);\n};\n\nexport default useTrashedResource;\n"],"names":["useTrashedResource","id","appCode","useOdeClient","user","useUser","trashed","setTrashed","useState","useEffect","explorerData","odeServices","http","get","resource","resources","find","assetId","trashedBy","includes","userId","Response","status","statusText"],"mappings":";;;;AAWMA,MAAAA,IAAqBA,CAACC,MAAgC;AACpD,QAAA;AAAA,IAAEC,SAAAA;AAAAA,MAAYC,EAAa,GAC3B;AAAA,IAAEC,MAAAA;AAAAA,MAASC,EAAQ,GAEnB,CAACC,GAASC,CAAU,IAAIC,EAAkB,EAAK;AAMrDC,EAAAA,EAAU,MAAM;AACd,KAAC,YAAY;;AAEX,YAAMC,IAAe,MAAMC,EACxBC,KACAC,EAAAA,IACC,mCAAmCX,CAAO,kBAAkBA,CAAO,eAAeD,CAAE,EACtF,GAEIa,KAAWJ,IAAAA,KAAAA,gBAAAA,EAAcK,cAAdL,gBAAAA,EAAyBM,KACxC,CAACF,MAAwBA,EAASG,YAAYhB;AAGhD,OAAIa,KAAAA,QAAAA,EAAUR,YAAWQ,IAAAA,KAAAA,gBAAAA,EAAUI,cAAVJ,QAAAA,EAAqBK,SAASf,KAAAA,gBAAAA,EAAMgB,YAG3Db,EAAW,EAAI;AAAA,IACjB;EAGJ,GAAG,CAAE,CAAA,GAMLE,EAAU,MAAM;AACd,QAAIH;AACI,YAAA,IAAIe,SAAS,IAAI;AAAA,QACrBC,QAAQ;AAAA,QACRC,YAAY;AAAA,MAAA,CACb;AAAA,EACH,GACC,CAACjB,CAAO,CAAC;AACd;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useUpload.js","sources":["../../../src/core/useUpload/useUpload.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n\nimport {\n ERROR_CODE,\n VideoUploadParams,\n WorkspaceElement,\n WorkspaceVisibility,\n odeServices,\n} from '@edifice.io/ts-client';\n\nimport { useBrowserInfo } from '../../hooks';\nimport { Status } from '../../types';\nimport { getOrGenerateBlobId } from '../../utils';\nimport { useWorkspaceFile } from '../useWorkspaceFile';\n\nconst useUpload = (\n visibility?: WorkspaceVisibility,\n application = 'media-library',\n) => {\n const [status, setStatus] = useState<Record<string, Status>>({});\n\n const { browser, device } = useBrowserInfo(navigator.userAgent);\n const { create } = useWorkspaceFile();\n\n /** Get the status of a file or blob being uploaded. */\n const getUploadStatus: (upload: File | Blob) => Status | undefined =\n useCallback(\n (upload: File | Blob) => status[getOrGenerateBlobId(upload)],\n [status],\n );\n\n /** Set the status of an uploaded file or blob. */\n const setUploadStatus = (blob: File | Blob, status: Status) => {\n setStatus((prevStatus) => {\n const key = getOrGenerateBlobId(blob);\n return {\n ...prevStatus,\n [key]: status,\n };\n });\n };\n\n /** Reset the status of an uploaded file or blob. */\n const clearUploadStatus = (blob: File | Blob) => {\n setStatus((prevStatus) => {\n const key = getOrGenerateBlobId(blob);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [key]: unused, ...rest } = prevStatus;\n return rest;\n });\n };\n\n /** Upload a file. */\n async function uploadFile(file: File, metadata?: { duration: number }) {\n setUploadStatus(file, 'loading');\n try {\n let resource;\n if (application === 'media-library' && file.type.includes('video')) {\n // In media-library, video files are reencoded to streamable mp4.\n resource = await uploadVideo(file, {\n filename: file.name,\n ...metadata,\n });\n } else {\n resource = await create(file, { application, visibility });\n }\n setUploadStatus(file, 'success');\n return resource;\n } catch (error) {\n setUploadStatus(file, 'error');\n return null;\n }\n }\n\n /** Upload a blob. */\n async function uploadBlob(\n blob: Blob,\n metadata?: { filename?: string; duration?: number },\n ) {\n setUploadStatus(blob, 'loading');\n try {\n let resource;\n if (blob.type.includes('video')) {\n // Video blobs are reencoded to streamable mp4.\n resource = await uploadVideo(blob, metadata);\n } else {\n // Other blobs not supported at the moment\n throw new Error(ERROR_CODE.NOT_SUPPORTED);\n }\n setUploadStatus(blob, 'success');\n return resource;\n } catch (error) {\n setUploadStatus(blob, 'error');\n return null;\n }\n }\n\n const uploadVideo = async (\n blob: Blob,\n metadata?: { filename?: string; duration?: number },\n ) => {\n const params: VideoUploadParams = {\n data: {\n device: device.type,\n browser: { name: browser.name, version: browser.version },\n url: window.location.hostname,\n file: blob,\n filename: metadata?.filename ?? 'filename',\n weight: blob.size,\n },\n appCode: application,\n captation: !(blob instanceof File),\n duration: metadata?.duration ?? 0,\n };\n\n const uploadResponse = await odeServices.video().upload(params);\n if (uploadResponse.state === 'succeed') {\n const resVideo: WorkspaceElement = {\n _id: uploadResponse.videoworkspaceid,\n file: uploadResponse.videoid,\n name: params.data.filename,\n eType: 'file',\n eParent: '',\n children: [],\n created: new Date(),\n _shared: [],\n _isShared: false,\n owner: { userId: '', displayName: '' },\n };\n return resVideo;\n } else if (uploadResponse.state === 'error') {\n throw new Error(uploadResponse.code || 'Error while uploading video');\n } else {\n throw new Error('Video encoding is still running');\n }\n };\n\n function uploadAlternateFile(\n original: File,\n replacement: File,\n metadata?: { duration: number },\n ) {\n // The original and its alternate must share the same virtual id.\n getOrGenerateBlobId(replacement, getOrGenerateBlobId(original));\n return uploadFile(replacement, metadata);\n }\n\n return {\n getUploadStatus,\n setUploadStatus,\n clearUploadStatus,\n uploadFile,\n uploadAlternateFile,\n uploadBlob,\n };\n};\n\nexport default useUpload;\n"],"names":["useUpload","visibility","application","status","setStatus","useState","browser","device","useBrowserInfo","navigator","userAgent","create","useWorkspaceFile","getUploadStatus","useCallback","upload","getOrGenerateBlobId","setUploadStatus","blob","prevStatus","key","clearUploadStatus","unused","rest","uploadFile","file","metadata","resource","type","includes","uploadVideo","filename","name","uploadBlob","Error","ERROR_CODE","NOT_SUPPORTED","params","data","version","url","window","location","hostname","weight","size","appCode","captation","File","duration","uploadResponse","odeServices","video","state","resVideo","_id","videoworkspaceid","videoid","eType","eParent","children","created","Date","_shared","_isShared","owner","userId","displayName","code","uploadAlternateFile","original","replacement"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useUploadFiles.js","sources":["../../../src/core/useUploadFiles/useUploadFiles.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport { WorkspaceElement, WorkspaceVisibility } from '@edifice.io/ts-client';\n\nimport { useDropzoneContext } from '../../components/Dropzone/DropzoneContext';\nimport { useImageResizer } from '../../hooks/useImageResizer';\nimport { addTimestampToImageUrl } from '../../utils';\nimport { useUpload } from '../useUpload';\nimport { useWorkspaceFile } from '../useWorkspaceFile';\n\nconst useUploadFiles = ({\n handleOnChange,\n visibility,\n application,\n}: {\n handleOnChange: (uploadedFiles: WorkspaceElement[]) => void;\n visibility?: WorkspaceVisibility;\n application?: string;\n}) => {\n const [uploadedFiles, setUploadedFiles] = useState<WorkspaceElement[]>([]);\n const [editingImage, setEditingImage] = useState<\n WorkspaceElement | undefined\n >(undefined);\n\n const { files, deleteFile, replaceFileAt } = useDropzoneContext();\n const { remove, createOrUpdate } = useWorkspaceFile();\n const {\n getUploadStatus,\n setUploadStatus,\n clearUploadStatus,\n uploadFile,\n uploadAlternateFile,\n } = useUpload(visibility, application);\n\n const { resizeImageFile } = useImageResizer();\n\n const tryUploading = useCallback(\n (files: Array<File | null>) => {\n files.forEach(async (file, index) => {\n if (file == null) return;\n let resource;\n if (file.type.startsWith('image')) {\n try {\n const replacement = await resizeImageFile(file);\n resource = await uploadAlternateFile(file, replacement);\n replaceFileAt(index, replacement);\n } catch (err) {\n console.error(err);\n }\n }\n if (!resource) {\n resource = await uploadFile(file);\n }\n if (resource) {\n setUploadedFiles((prevFiles: WorkspaceElement[]) => [\n ...prevFiles,\n resource,\n ]);\n }\n });\n },\n [resizeImageFile, uploadAlternateFile, uploadFile, replaceFileAt],\n );\n\n /* Try to upload more files when \n - the `files` list has been updated, \n - or a file has been uploaded, leaving a slot free.\n */\n useEffect(() => {\n /* but not upload :\n - the same file twice (by checking if an upload Status already exists for it).\n To upload it again, reset its previous status first.\n - more than 5 files at once.\n */\n const UPLOAD_SLOTS = 5;\n let numUploads = 0;\n // Check which new files can be uploaded right now.\n const newFiles = files.map((file) => {\n if (numUploads >= UPLOAD_SLOTS) return null;\n const status = getUploadStatus(file);\n // If this file is currently loading => it uses a slot.\n if (status === 'loading') numUploads++;\n // If this file has already been sent in a slot => don't send it again.\n if (status) return null;\n return file;\n });\n\n newFiles.forEach((file) => file && setUploadStatus(file, 'idle'));\n tryUploading(newFiles);\n }, [files, uploadedFiles, getUploadStatus, setUploadStatus, tryUploading]);\n\n /** When file finished being uploaded, sort and handle the result. */\n useEffect(() => {\n const sortedUploadedFiles = sortUploadedFiles(files, uploadedFiles);\n handleOnChange(sortedUploadedFiles);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [uploadedFiles]);\n\n const sortUploadedFiles = (\n filesArray: File[],\n uploadedFilesArray: WorkspaceElement[],\n ) => {\n const orderMap = filesArray.reduce(\n (acc: any, item: File, index: number) => {\n acc[item.name] = index;\n return acc;\n },\n {},\n );\n return uploadedFilesArray.sort(\n (a: WorkspaceElement, b: WorkspaceElement) =>\n orderMap[a.name] - orderMap[b.name],\n );\n };\n\n async function removeFile(file: File) {\n // Check if this file was successfully uploaded.\n const resource = uploadedFiles.find(\n (uploadedFile) => uploadedFile.name === file.name,\n );\n\n // Remove the corresponding resource from `uploadedFiles`\n if (resource) {\n await remove(resource);\n clearUploadStatus(file);\n setUploadedFiles((prevFiles: WorkspaceElement[]) => {\n return prevFiles.filter((prevFile) => prevFile.name !== resource?.name);\n });\n }\n // Remove the file from `files`\n deleteFile(file);\n }\n\n async function updateImage({\n blob,\n legend,\n altText: alt,\n }: {\n blob: Blob;\n legend: string;\n altText: string;\n }) {\n if (!editingImage) {\n return;\n }\n try {\n const res = await createOrUpdate({\n blob,\n legend,\n alt,\n uri: getUrl(editingImage),\n });\n\n /**\n * `res` contains updated file and src path\n * update uploadedFiles with the correct updated information\n */\n if (res && typeof res === 'object') {\n setUploadedFiles((prevFiles: WorkspaceElement[]) => {\n return prevFiles.map((prevFile) => {\n if (prevFile._id === res.file._id) {\n return { ...res.file };\n }\n return prevFile;\n });\n });\n }\n } finally {\n setEditingImage(undefined);\n }\n }\n\n const getUrl = (resource?: WorkspaceElement, timestamp?: boolean) => {\n const url = `/workspace/${\n resource?.public ? 'pub/' : ''\n }document/${resource?._id}`;\n\n if (!resource) return '';\n /**\n * WB-3053: add timestamp if option is true\n */\n if (timestamp) return addTimestampToImageUrl(url);\n\n return url;\n };\n\n return {\n /** List of files added from device */\n files,\n getUploadStatus,\n clearUploadStatus,\n uploadedFiles,\n editingImage,\n setEditingImage,\n getUrl,\n updateImage,\n uploadFile,\n removeFile,\n };\n};\n\nexport default useUploadFiles;\n"],"names":["useUploadFiles","handleOnChange","visibility","application","uploadedFiles","setUploadedFiles","useState","editingImage","setEditingImage","undefined","files","deleteFile","replaceFileAt","useDropzoneContext","remove","createOrUpdate","useWorkspaceFile","getUploadStatus","setUploadStatus","clearUploadStatus","uploadFile","uploadAlternateFile","useUpload","resizeImageFile","useImageResizer","tryUploading","useCallback","forEach","file","index","resource","type","startsWith","replacement","err","console","error","prevFiles","useEffect","numUploads","newFiles","map","UPLOAD_SLOTS","status","sortedUploadedFiles","sortUploadedFiles","filesArray","uploadedFilesArray","orderMap","reduce","acc","item","name","sort","a","b","removeFile","find","uploadedFile","filter","prevFile","updateImage","blob","legend","altText","alt","res","uri","getUrl","_id","timestamp","url","public","addTimestampToImageUrl"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useUser.js","sources":["../../../src/core/useUser/useUser.ts"],"sourcesContent":["import { IUserDescription, IUserInfo } from '@edifice.io/ts-client';\nimport { useOdeClient } from '../OdeClientProvider';\nimport { useOdeTheme } from '../ThemeProvider';\n\nexport interface useUserProps {\n user: IUserInfo | undefined;\n avatar: string;\n userDescription: Partial<IUserDescription> | undefined;\n}\n\nexport default function useUser(): useUserProps {\n const { user, userDescription } = useOdeClient();\n const { theme } = useOdeTheme();\n\n function avatarUrl(): string {\n let avatar = userDescription?.picture;\n if (!avatar || avatar === 'no-avatar.jpg' || avatar === 'no-avatar.svg') {\n avatar = `${theme?.basePath}/img/illustrations/no-avatar.svg`;\n }\n return avatar;\n }\n\n return {\n user,\n avatar: avatarUrl(),\n userDescription,\n };\n}\n"],"names":["useUser","user","userDescription","useOdeClient","theme","useOdeTheme","avatarUrl","avatar","picture","basePath"],"mappings":";;AAUA,SAAwBA,IAAwB;AACxC,QAAA;AAAA,IAAEC,MAAAA;AAAAA,IAAMC,iBAAAA;AAAAA,MAAoBC,EAAa,GACzC;AAAA,IAAEC,OAAAA;AAAAA,MAAUC,EAAY;AAE9B,WAASC,IAAoB;AAC3B,QAAIC,IAASL,KAAAA,gBAAAA,EAAiBM;AAC9B,YAAI,CAACD,KAAUA,MAAW,mBAAmBA,MAAW,qBAC7CA,IAAA,GAAGH,KAAAA,gBAAAA,EAAOK,QAAQ,qCAEtBF;AAAAA,EACT;AAEO,SAAA;AAAA,IACLN,MAAAA;AAAAA,IACAM,QAAQD,EAAU;AAAA,IAClBJ,iBAAAA;AAAAA,EAAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useWorkspaceFile.js","sources":["../../../src/core/useWorkspaceFile/useWorkspaceFile.ts"],"sourcesContent":["import {\n WorkspaceElement,\n WorkspaceVisibility,\n odeServices,\n} from '@edifice.io/ts-client';\n\nconst useWorkspaceFile = () => {\n /**\n * This function create a file into workspace if the uri is not from workspace\n * If the uri is an URI from workspace it only updates it\n *\n * @param param0.alt the alternative text related to the file\n * @param param0.legend the legend text related to the file\n * @param param0.blob the file as Blob\n * @param param0.uri the previous URI of this file (or undefined if this is a new file)\n * @param param0.parentId the folder parentId\n * @param param0.application the application related to this file\n * @returns the new workspace URI\n */\n const createOrUpdate = async ({\n alt,\n uri,\n blob,\n legend,\n parentId,\n application,\n visibility,\n }: {\n blob: Blob;\n uri?: string;\n alt?: string;\n legend?: string;\n application?: string;\n parentId?: string;\n visibility?: WorkspaceVisibility;\n }) => {\n const regex = /\\/workspace\\/document\\/([0-9a-fA-F-]+)/;\n const matches = (uri ?? '').match(regex);\n if (matches && matches.length === 2) {\n const uuid = matches[1];\n\n // Get previous documents\n const existingDocuments = await odeServices.workspace().searchDocuments({\n filter: 'all',\n id: uuid,\n limit: 1,\n });\n // Get name from current document\n const name = existingDocuments.length\n ? existingDocuments[0].name\n : undefined;\n\n // Update the file\n await odeServices\n .workspace()\n .updateFile(uuid, blob, { alt, legend, name });\n\n // Get updated file because `updateFile` method doesnt return information\n const updatedDocuments = await odeServices.workspace().searchDocuments({\n filter: 'all',\n id: uuid,\n limit: 1,\n });\n const updatedFile = updatedDocuments[0];\n\n /**\n * need the file: updatedFile to update correctly uploadedFiles\n */\n return {\n file: updatedFile,\n src: `/workspace/${updatedFile.public ? 'pub/' : ''}document/${uuid}`,\n };\n } else {\n const res = await odeServices\n .workspace()\n .saveFile(blob, { application, parentId, visibility });\n return `/workspace/${res.public ? 'pub/' : ''}document/${res._id}`;\n }\n };\n // const get = () => {}\n const create = async (\n file: File,\n params?: {\n visibility?: WorkspaceVisibility;\n application?: string | undefined;\n },\n ) => {\n return await odeServices.workspace().saveFile(file, params);\n };\n\n // const put = () => {}\n\n const remove = async (file: WorkspaceElement | WorkspaceElement[]) => {\n const noop = !file || (Array.isArray(file) && file.length === 0);\n return noop\n ? Promise.resolve()\n : await odeServices\n .workspace()\n .deleteFile(Array.isArray(file) ? file : [file]);\n };\n\n return {\n createOrUpdate,\n // get,\n create,\n // put,\n remove,\n };\n};\n\nexport default useWorkspaceFile;\n"],"names":["useWorkspaceFile","createOrUpdate","alt","uri","blob","legend","parentId","application","visibility","regex","matches","match","length","uuid","existingDocuments","odeServices","workspace","searchDocuments","filter","id","limit","name","undefined","updateFile","updatedFile","file","src","public","res","saveFile","_id","create","params","remove","Array","isArray","Promise","resolve","deleteFile"],"mappings":";AAMA,MAAMA,IAAmBA,OA+FhB;AAAA,EACLC,gBAnFqB,OAAO;AAAA,IAC5BC,KAAAA;AAAAA,IACAC,KAAAA;AAAAA,IACAC,MAAAA;AAAAA,IACAC,QAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,YAAAA;AAAAA,EAAAA,MASI;AACJ,UAAMC,IAAQ,0CACRC,KAAWP,KAAO,IAAIQ,MAAMF,CAAK;AACnCC,QAAAA,KAAWA,EAAQE,WAAW,GAAG;AAC7BC,YAAAA,IAAOH,EAAQ,CAAC,GAGhBI,IAAoB,MAAMC,EAAYC,UAAAA,EAAYC,gBAAgB;AAAA,QACtEC,QAAQ;AAAA,QACRC,IAAIN;AAAAA,QACJO,OAAO;AAAA,MAAA,CACR,GAEKC,IAAOP,EAAkBF,SAC3BE,EAAkB,CAAC,EAAEO,OACrBC;AAGJ,YAAMP,EACHC,UAAAA,EACAO,WAAWV,GAAMT,GAAM;AAAA,QAAEF,KAAAA;AAAAA,QAAKG,QAAAA;AAAAA,QAAQgB,MAAAA;AAAAA,MAAAA,CAAM;AAQzCG,YAAAA,KALmB,MAAMT,EAAYC,UAAAA,EAAYC,gBAAgB;AAAA,QACrEC,QAAQ;AAAA,QACRC,IAAIN;AAAAA,QACJO,OAAO;AAAA,MAAA,CACR,GACoC,CAAC;AAK/B,aAAA;AAAA,QACLK,MAAMD;AAAAA,QACNE,KAAK,cAAcF,EAAYG,SAAS,SAAS,EAAE,YAAYd,CAAI;AAAA,MAAA;AAAA,IACrE,OACK;AACL,YAAMe,IAAM,MAAMb,EACfC,UAAU,EACVa,SAASzB,GAAM;AAAA,QAAEG,aAAAA;AAAAA,QAAaD,UAAAA;AAAAA,QAAUE,YAAAA;AAAAA,MAAAA,CAAY;AACvD,aAAO,cAAcoB,EAAID,SAAS,SAAS,EAAE,YAAYC,EAAIE,GAAG;AAAA,IAClE;AAAA,EAAA;AAAA;AAAA,EA2BAC,QAxBa,OACbN,GACAO,MAKO,MAAMjB,EAAYC,UAAAA,EAAYa,SAASJ,GAAMO,CAAM;AAAA;AAAA,EAmB1DC,QAda,OAAOR,MACP,CAACA,KAASS,MAAMC,QAAQV,CAAI,KAAKA,EAAKb,WAAW,IAE1DwB,QAAQC,QACR,IAAA,MAAMtB,EACHC,UAAU,EACVsB,WAAWJ,MAAMC,QAAQV,CAAI,IAAIA,IAAO,CAACA,CAAI,CAAC;AAQrDQ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useWorkspaceSearch.js","sources":["../../../src/core/useWorkspaceSearch/useWorkspaceSearch.ts"],"sourcesContent":["import { useCallback, useReducer } from 'react';\n\nimport {\n DocumentHelper,\n ID,\n Role,\n WorkspaceElement,\n WorkspaceSearchFilter,\n odeServices,\n} from '@edifice.io/ts-client';\n\nimport { TreeNode } from '../../components';\nimport { findTreeNode, useMockedData } from '../../utils';\nimport { useHasWorkflow } from '../useHasWorkflow';\n\nexport type FolderNode = TreeNode & { files?: WorkspaceElement[] };\n\nexport default function useWorkspaceSearch(\n rootId: string,\n rootName: string,\n filter: WorkspaceSearchFilter,\n format: Role | Role[] | null,\n) {\n // Needed for storybook to mock calls to backend\n const mock = useMockedData();\n\n const canListDocs = useHasWorkflow(\n 'org.entcore.workspace.controllers.WorkspaceController|listDocuments',\n );\n const canListFolders = useHasWorkflow(\n 'org.entcore.workspace.controllers.WorkspaceController|listFolders',\n );\n\n /**\n * A workspace search maintains a tree of TreeNodes (which can be rendered in a TreeView),\n * starting at its `root`. Each node is a folder, with its sub-folders as children (also Treenodes)\n * and an array of contained `files` (WorkspaceElement[])\n */\n function treeReducer(\n state: FolderNode,\n action: {\n type: 'update';\n folderId?: ID; // Can be undefined to target the root node\n subfolders: WorkspaceElement[];\n files: WorkspaceElement[];\n },\n ) {\n switch (action.type) {\n case 'update': {\n const node = findTreeNode(\n state,\n (child) => child.id === action.folderId,\n );\n if (node) {\n node.children = action.subfolders.map((f) => ({\n id: f._id || '',\n name: f.name,\n }));\n node.files = action.files;\n }\n return {\n ...state,\n };\n }\n default:\n throw Error('[useWorkspaceSearch] Unknown action type: ' + action.type);\n }\n }\n\n const [root, dispatch] = useReducer(treeReducer, {\n id: rootId,\n name: rootName,\n section: true,\n });\n\n const loadContent = useCallback(\n async (folderId?: ID) => {\n if (canListDocs && canListFolders) {\n const realWorkspaceId = folderId === rootId ? '' : folderId;\n // If mocked data is available, use it. Otherwise load from server.\n const payload = mock?.listWorkspaceDocuments\n ? await mock?.listWorkspaceDocuments?.().then((results) =>\n results.map((result) => {\n // Generate random IDs to prevent infinite recursion\n const ret = {\n ...result,\n _id: '' + Math.round(Math.random() * 9999),\n };\n ret.name =\n result.eType === 'folder'\n ? 'folder id=' + ret._id\n : 'file id=' + ret._id;\n return ret;\n }),\n )\n : await odeServices\n .workspace()\n .listDocuments(filter, realWorkspaceId);\n\n const subfolders: WorkspaceElement[] = [];\n const files: WorkspaceElement[] = [];\n\n // Filter out elements of undesired role.\n payload\n .filter((f) => {\n if (!format || f.eType === 'folder') return true;\n const role = DocumentHelper.getRole(f);\n if (typeof format === 'string') return format === role;\n if (Array.isArray(format))\n return format.findIndex((format) => format === role) >= 0;\n return false; // should not happen\n })\n .forEach((doc) => {\n if (doc.eType === 'folder') {\n subfolders.push(doc);\n } else {\n files.push(doc);\n }\n });\n dispatch({ folderId, subfolders, files, type: 'update' });\n }\n },\n [canListDocs, canListFolders, rootId, mock, filter, format],\n );\n\n return { root, loadContent } as {\n root: FolderNode;\n loadContent: (folderId?: ID) => void;\n };\n}\n"],"names":["useWorkspaceSearch","rootId","rootName","filter","format","mock","useMockedData","canListDocs","useHasWorkflow","canListFolders","treeReducer","state","action","type","node","findTreeNode","child","id","folderId","children","subfolders","map","f","_id","name","files","Error","root","dispatch","useReducer","section","loadContent","useCallback","realWorkspaceId","payload","listWorkspaceDocuments","then","results","result","ret","Math","round","random","eType","odeServices","workspace","listDocuments","role","DocumentHelper","getRole","Array","isArray","findIndex","forEach","doc","push"],"mappings":";;;;;AAiBA,SAAwBA,EACtBC,GACAC,GACAC,GACAC,GACA;AAEA,QAAMC,IAAOC,KAEPC,IAAcC,EAClB,qEACF,GACMC,IAAiBD,EACrB,mEACF;AAOSE,WAAAA,EACPC,GACAC,GAMA;AACA,YAAQA,EAAOC,MAAI;AAAA,MACjB,KAAK,UAAU;AACb,cAAMC,IAAOC,EACXJ,GACCK,OAAUA,EAAMC,OAAOL,EAAOM,QACjC;AACA,eAAIJ,MACFA,EAAKK,WAAWP,EAAOQ,WAAWC,IAAKC,CAAOA,OAAA;AAAA,UAC5CL,IAAIK,EAAEC,OAAO;AAAA,UACbC,MAAMF,EAAEE;AAAAA,QACR,EAAA,GACFV,EAAKW,QAAQb,EAAOa,QAEf;AAAA,UACL,GAAGd;AAAAA,QAAAA;AAAAA,MAEP;AAAA,MACA;AACQe,cAAAA,MAAM,+CAA+Cd,EAAOC,IAAI;AAAA,IAC1E;AAAA,EACF;AAEA,QAAM,CAACc,GAAMC,CAAQ,IAAIC,EAAWnB,GAAa;AAAA,IAC/CO,IAAIhB;AAAAA,IACJuB,MAAMtB;AAAAA,IACN4B,SAAS;AAAA,EAAA,CACV,GAEKC,IAAcC,EAClB,OAAOd,MAAkB;;AACvB,QAAIX,KAAeE,GAAgB;AAC3BwB,YAAAA,IAAkBf,MAAajB,IAAS,KAAKiB,GAE7CgB,IAAU7B,KAAAA,QAAAA,EAAM8B,yBAClB,QAAM9B,IAAAA,KAAAA,gBAAAA,EAAM8B,2BAAN9B,gBAAAA,EAAAA,KAAAA,GAAiC+B,KAAMC,CAAAA,MAC3CA,EAAQhB,IAAKiB,CAAWA,MAAA;AAEtB,cAAMC,IAAM;AAAA,UACV,GAAGD;AAAAA,UACHf,KAAK,KAAKiB,KAAKC,MAAMD,KAAKE,WAAW,IAAI;AAAA,QAAA;AAEvClB,eAAAA,EAAAA,OACFc,EAAOK,UAAU,WACb,eAAeJ,EAAIhB,MACnB,aAAagB,EAAIhB,KAChBgB;AAAAA,MAAAA,CACR,MAEH,MAAMK,EACHC,UAAU,EACVC,cAAc3C,GAAQ8B,CAAe,GAEtCb,IAAiC,CAAA,GACjCK,IAA4B,CAAA;AAGlCS,MAAAA,EACG/B,OAAQmB,CAAMA,MAAA;AACb,YAAI,CAAClB,KAAUkB,EAAEqB,UAAU,SAAiB,QAAA;AACtCI,cAAAA,IAAOC,EAAeC,QAAQ3B,CAAC;AACrC,eAAI,OAAOlB,KAAW,WAAiBA,MAAW2C,IAC9CG,MAAMC,QAAQ/C,CAAM,IACfA,EAAOgD,UAAWhD,CAAAA,MAAWA,MAAW2C,CAAI,KAAK,IACnD;AAAA,MAAA,CACR,EACAM,QAASC,CAAQA,MAAA;AACZA,QAAAA,EAAIX,UAAU,WAChBvB,EAAWmC,KAAKD,CAAG,IAEnB7B,EAAM8B,KAAKD,CAAG;AAAA,MAChB,CACD,GACM1B,EAAA;AAAA,QAAEV,UAAAA;AAAAA,QAAUE,YAAAA;AAAAA,QAAYK,OAAAA;AAAAA,QAAOZ,MAAM;AAAA,MAAA,CAAU;AAAA,IAC1D;AAAA,EAAA,GAEF,CAACN,GAAaE,GAAgBR,GAAQI,GAAMF,GAAQC,CAAM,CAC5D;AAEO,SAAA;AAAA,IAAEuB,MAAAA;AAAAA,IAAMI,aAAAA;AAAAA,EAAAA;AAIjB;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useXitiTrackPageLoad.js","sources":["../../../src/core/useXitiTrackPageLoad/useXitiTrackPageLoad.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { odeServices } from '@edifice.io/ts-client';\n\nimport { useOdeClient } from '../OdeClientProvider';\n\n/** Apply XiTi tracking (navigation). */\nexport default function useXitiTrackPageLoad() {\n const [xitiStatus, setXitiStatus] = useState<string>('pending');\n const { currentApp } = useOdeClient();\n\n useEffect(() => {\n trackPageLoad();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const trackPageLoad = async () => {\n if (!currentApp) {\n setXitiStatus('[Xiti] Error, currentApp is not defined.');\n return;\n }\n try {\n await odeServices\n .analytics()\n .trackPageLoad(window.location.pathname, currentApp);\n console.info(`[Xiti] Success tracking page ${window.location.pathname}`);\n setXitiStatus(`[Xiti] Success tracking page ${window.location.pathname}`);\n } catch (e) {\n console.error('[Xiti] Error Tracking Page Load', e);\n setXitiStatus(`[Xiti] Error Tracking Page Load: ${e}`);\n }\n };\n\n return { xitiStatus };\n}\n"],"names":["useXitiTrackPageLoad","xitiStatus","setXitiStatus","useState","currentApp","useOdeClient","useEffect","trackPageLoad","odeServices","analytics","window","location","pathname","console","info","e","error"],"mappings":";;;AAOA,SAAwBA,IAAuB;AAC7C,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAAiB,SAAS,GACxD;AAAA,IAAEC,YAAAA;AAAAA,MAAeC,EAAa;AAEpCC,EAAAA,EAAU,MAAM;AACA,IAAAC;EAEhB,GAAG,CAAE,CAAA;AAEL,QAAMA,IAAgB,YAAY;AAChC,QAAI,CAACH,GAAY;AACfF,MAAAA,EAAc,0CAA0C;AACxD;AAAA,IACF;AACI,QAAA;AACF,YAAMM,EACHC,UAAU,EACVF,cAAcG,OAAOC,SAASC,UAAUR,CAAU,GACrDS,QAAQC,KAAK,gCAAgCJ,OAAOC,SAASC,QAAQ,EAAE,GACvEV,EAAc,gCAAgCQ,OAAOC,SAASC,QAAQ,EAAE;AAAA,aACjEG,GAAG;AACFC,cAAAA,MAAM,mCAAmCD,CAAC,GACpCb,EAAA,oCAAoCa,CAAC,EAAE;AAAA,IACvD;AAAA,EAAA;AAGK,SAAA;AAAA,IAAEd,YAAAA;AAAAA,EAAAA;AACX;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useZendeskGuide.js","sources":["../../../src/core/useZendeskGuide/useZendeskGuide.tsx"],"sourcesContent":["/* eslint-disable no-template-curly-in-string */\nimport { useEffect, useState } from 'react';\n\nimport { UserProfile, odeServices } from '@edifice.io/ts-client';\n\nimport { useIsAdml, useOdeClient, useOdeTheme, useUser } from '..';\nimport { useHasWorkflow } from '../useHasWorkflow';\n\ntype DataModel =\n | {\n labels: {};\n default: string;\n profile: string[];\n }\n | undefined;\n\n/** Add Zendesk Guide */\nexport default function useZendeskGuide() {\n const { currentLanguage } = useOdeClient();\n const { userDescription } = useUser();\n const { isAdml } = useIsAdml();\n\n const { theme } = useOdeTheme();\n\n const isMobileView = window.innerWidth <= 768;\n\n const hasSupportWorkflow = useHasWorkflow(\n 'net.atos.entng.support.controllers.DisplayController|view',\n );\n\n const [locationPathname, setLocationPathname] = useState('');\n const [dataModule, setDataModule] = useState<DataModel>(undefined);\n\n const setZendeskGuideLabels = () => {\n // Split the location pathname to get the module label\n const modulePathnameSplit = locationPathname.split('/');\n let moduleLabel = '';\n\n let labels = '';\n\n // Get the data module from the data and check if the module has labels if not take the default value if exists\n if (\n dataModule?.labels &&\n Object.keys(dataModule?.labels).length > 0 &&\n modulePathnameSplit.length > 1\n ) {\n // Reformat the pathname with removing the id if exists\n for (let i = 1; i < modulePathnameSplit.length; i++) {\n if (\n modulePathnameSplit[i].length > 0 &&\n modulePathnameSplit[i].match(/\\d/) == null\n ) {\n if (moduleLabel.length === 0) {\n moduleLabel = modulePathnameSplit[i];\n } else {\n moduleLabel = moduleLabel + '/' + modulePathnameSplit[i];\n }\n }\n }\n\n // Check if the module has label in dataModule if not take the default value\n if (\n dataModule?.labels &&\n Object.prototype.hasOwnProperty.call(dataModule?.labels, moduleLabel)\n ) {\n labels =\n dataModule?.labels[moduleLabel as keyof typeof dataModule.labels];\n } else if (dataModule?.default && String(dataModule.default).length > 0) {\n labels = dataModule?.default;\n }\n } else if (dataModule?.default && String(dataModule?.default).length > 0) {\n labels = dataModule?.default;\n }\n\n // Exception for the collaborative wall\n if (\n modulePathnameSplit.includes('collaborativewall') &&\n modulePathnameSplit.includes('id') &&\n isMobileView\n ) {\n (window as any).zE('webWidget', 'hide');\n }\n\n // Check if label has tag ${adml} and replace it with the user role\n if (labels.includes('${adml}')) {\n if (isAdml) {\n labels = labels.replace('${adml}', 'adml');\n } else {\n labels = labels.replace('/${adml}', '');\n }\n }\n\n // Check if the label has a ${profile} tag and replace it with the user profile\n if (labels.includes('${profile}')) {\n const userProfile = userDescription?.profiles as UserProfile;\n labels = labels.replace(\n '${profile}',\n (userProfile[0] as string).toLowerCase(),\n );\n }\n\n // Check if the user has a ${theme} tag and replace it with the theme\n if (labels.includes('${theme')) {\n if (theme?.is1d) {\n labels = labels.replace('${theme}', '1D');\n } else {\n labels = labels.replace('${theme}', '2D');\n }\n }\n\n // Check if the label is not empty and set the labels to the Zendesk Guide Widget\n (window as any).zE('webWidget', 'helpCenter:setSuggestions', {\n labels: [labels],\n });\n };\n\n useEffect(() => {\n if (window.location.pathname !== locationPathname) {\n setLocationPathname(window.location.pathname);\n }\n\n if (dataModule === undefined || Object.keys(dataModule).length === 0) {\n return;\n }\n\n setZendeskGuideLabels();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [window.location.pathname, dataModule]);\n\n useEffect(() => {\n if (\n document.getElementById('ze-snippet') ||\n hasSupportWorkflow === undefined\n ) {\n return;\n }\n\n (async () => {\n const zendeskGuideConfig = await odeServices\n .http()\n .get('/zendeskGuide/config');\n\n if (\n zendeskGuideConfig &&\n zendeskGuideConfig.key &&\n zendeskGuideConfig.key !== ''\n ) {\n const scriptZendesk = document.createElement('script');\n scriptZendesk.id = 'ze-snippet';\n scriptZendesk.src = `https://static.zdassets.com/ekr/snippet.js?key=${zendeskGuideConfig.key}`;\n\n document.body.appendChild(scriptZendesk).onload = () => {\n if (currentLanguage === 'es') {\n (window as any).zE(function () {\n (window as any).zE.setLocale('es-419');\n });\n } else {\n (window as any).zE(function () {\n (window as any).zE.setLocale('fr');\n });\n }\n\n if (Object.keys(zendeskGuideConfig.module).length > 0) {\n setDataModule(zendeskGuideConfig.module);\n }\n\n (window as any).zE('webWidget', 'show');\n\n (window as any).zE('webWidget', 'updateSettings', {\n webWidget: {\n color: { theme: zendeskGuideConfig.color || '#ffc400' },\n zIndex: 3,\n launcher: {\n mobile: {\n labelVisible: true,\n },\n },\n contactForm: {\n suppress: !hasSupportWorkflow,\n },\n helpCenter: {\n messageButton: {\n '*': 'Assistance ENT',\n 'es-419': 'Asistencia ENT',\n },\n },\n },\n });\n\n window.addEventListener('scroll', () => {\n (window as any).zE('webWidget', 'updateSettings', {\n webWidget: {\n launcher: {\n mobile: {\n labelVisible: window.scrollY <= 5,\n },\n },\n },\n });\n });\n\n (window as any).zE('webWidget:on', 'open', function () {\n if (hasSupportWorkflow) {\n (window as any).zE('webWidget', 'updateSettings', {\n webWidget: {\n contactForm: {\n suppress: false,\n },\n },\n });\n }\n });\n\n (window as any).zE(\n 'webWidget:on',\n 'userEvent',\n function (ref: { category: any; action: any; properties: any }) {\n const category = ref.category;\n const action = ref.action;\n const properties = ref.properties;\n if (\n action === 'Contact Form Shown' &&\n category === 'Zendesk Web Widget' &&\n properties &&\n properties.name === 'contact-form' &&\n hasSupportWorkflow\n ) {\n (window as any).zE('webWidget', 'updateSettings', {\n webWidget: {\n contactForm: {\n suppress: true,\n },\n },\n });\n (window as any).zE('webWidget', 'close');\n window.open('/support', '_blank');\n }\n },\n );\n };\n }\n })();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [hasSupportWorkflow]);\n\n return null;\n}\n"],"names":["useZendeskGuide","currentLanguage","useOdeClient","userDescription","useUser","isAdml","useIsAdml","theme","useOdeTheme","isMobileView","window","innerWidth","hasSupportWorkflow","useHasWorkflow","locationPathname","setLocationPathname","useState","dataModule","setDataModule","undefined","setZendeskGuideLabels","modulePathnameSplit","split","moduleLabel","labels","Object","keys","length","i","match","prototype","hasOwnProperty","call","default","String","includes","zE","replace","userProfile","profiles","toLowerCase","is1d","useEffect","location","pathname","document","getElementById","zendeskGuideConfig","odeServices","http","get","key","scriptZendesk","createElement","id","src","body","appendChild","onload","setLocale","module","webWidget","color","zIndex","launcher","mobile","labelVisible","contactForm","suppress","helpCenter","messageButton","addEventListener","scrollY","ref","category","action","properties","name","open"],"mappings":"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"}
package/dist/editor.js DELETED
@@ -1,59 +0,0 @@
1
- import { EditorContent as r, useEditor as t } from "@tiptap/react";
2
- import { default as d } from "./modules/editor/components/Editor/Editor.js";
3
- import { default as i } from "./modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js";
4
- import { default as p } from "./modules/editor/components/NodeView/AudioNodeView.js";
5
- import { default as s } from "./modules/editor/components/NodeView/AttachmentNodeView.js";
6
- import { default as n } from "./modules/editor/components/NodeView/ImageNodeView.js";
7
- import { default as E } from "./modules/editor/components/NodeView/LinkerNodeView.js";
8
- import { default as c } from "./modules/editor/components/NodeView/VideoNodeView.js";
9
- import { default as T } from "./modules/editor/components/Toolbar/TableToolbar.js";
10
- import { default as R } from "./modules/editor/components/Toolbar/LinkToolbar.js";
11
- import { EditorToolbar as g } from "./modules/editor/components/EditorToolbar/EditorToolbar.js";
12
- import { AttachmentRenderer as A } from "./modules/editor/components/Renderer/AttachmentRenderer.js";
13
- import { AudioRenderer as N } from "./modules/editor/components/Renderer/AudioRenderer.js";
14
- import { LinkerRenderer as C } from "./modules/editor/components/Renderer/LinkerRenderer.js";
15
- import { MediaRenderer as S } from "./modules/editor/components/Renderer/MediaRenderer.js";
16
- import { useActionOptions as z } from "./modules/editor/hooks/useActionOptions.js";
17
- import { useCommentEditor as O } from "./modules/editor/hooks/useCommentEditor.js";
18
- import { EditorContext as q, useEditorContext as v } from "./modules/editor/hooks/useEditorContext.js";
19
- import { useImageModal as F } from "./modules/editor/hooks/useImageModal.js";
20
- import { useImageSelection as H } from "./modules/editor/hooks/useImageSelection.js";
21
- import { useLinkToolbar as K } from "./modules/editor/hooks/useLinkToolbar.js";
22
- import { useMathsModal as Q } from "./modules/editor/hooks/useMathsModal.js";
23
- import { useMediaLibraryEditor as W } from "./modules/editor/hooks/useMediaLibraryEditor.js";
24
- import { useResizeMedia as Y } from "./modules/editor/hooks/useResizeMedia.js";
25
- import { useSpeechRecognition as _ } from "./modules/editor/hooks/useSpeechRecognition.js";
26
- import { useSpeechSynthetisis as ee } from "./modules/editor/hooks/useSpeechSynthetisis.js";
27
- import { useTipTapEditor as re } from "./modules/editor/hooks/useTipTapEditor.js";
28
- export {
29
- s as AttachmentNodeView,
30
- A as AttachmentRenderer,
31
- p as AudioNodeView,
32
- N as AudioRenderer,
33
- i as BubbleMenuEditImage,
34
- d as Editor,
35
- r as EditorContent,
36
- q as EditorContext,
37
- g as EditorToolbar,
38
- n as ImageNodeView,
39
- R as LinkToolbar,
40
- E as LinkerNodeView,
41
- C as LinkerRenderer,
42
- S as MediaRenderer,
43
- T as TableToolbar,
44
- c as VideoNodeView,
45
- z as useActionOptions,
46
- O as useCommentEditor,
47
- t as useEditor,
48
- v as useEditorContext,
49
- F as useImageModal,
50
- H as useImageSelection,
51
- K as useLinkToolbar,
52
- Q as useMathsModal,
53
- W as useMediaLibraryEditor,
54
- Y as useResizeMedia,
55
- _ as useSpeechRecognition,
56
- ee as useSpeechSynthetisis,
57
- re as useTipTapEditor
58
- };
59
- //# sourceMappingURL=editor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"editor.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useBrowserInfo.js","sources":["../../../src/hooks/useBrowserInfo/useBrowserInfo.ts"],"sourcesContent":["import UAParser from 'ua-parser-js';\n\nexport default function useBrowserInfo(userAgent?: string) {\n const uaParser = new UAParser(userAgent);\n\n const os: UAParser.IOS = uaParser.getOS();\n const device: UAParser.IDevice = uaParser.getDevice();\n const browser: UAParser.IBrowser = uaParser.getBrowser();\n\n const isIphone = device.model?.indexOf('iPhone') !== -1;\n const isIpod = device.model?.indexOf('iPod') !== -1;\n const isIpad = device.model?.indexOf('iPad') !== -1;\n\n return { os, device, browser, isIphone, isIpod, isIpad };\n}\n"],"names":["useBrowserInfo","userAgent","uaParser","UAParser","os","getOS","device","getDevice","browser","getBrowser","isIphone","model","indexOf","isIpod","isIpad"],"mappings":";AAEA,SAAwBA,EAAeC,GAAoB;;AACnDC,QAAAA,IAAW,IAAIC,EAASF,CAAS,GAEjCG,IAAmBF,EAASG,SAC5BC,IAA2BJ,EAASK,aACpCC,IAA6BN,EAASO,cAEtCC,MAAWJ,IAAAA,EAAOK,UAAPL,gBAAAA,EAAcM,QAAQ,eAAc,IAC/CC,MAASP,IAAAA,EAAOK,UAAPL,gBAAAA,EAAcM,QAAQ,aAAY,IAC3CE,MAASR,IAAAA,EAAOK,UAAPL,gBAAAA,EAAcM,QAAQ,aAAY;AAE1C,SAAA;AAAA,IAAER,IAAAA;AAAAA,IAAIE,QAAAA;AAAAA,IAAQE,SAAAA;AAAAA,IAASE,UAAAA;AAAAA,IAAUG,QAAAA;AAAAA,IAAQC,QAAAA;AAAAA,EAAAA;AAClD;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useClickOutside.js","sources":["../../../src/hooks/useClickOutside/useClickOutside.ts"],"sourcesContent":["// https://mantine.dev/hooks/use-click-outside\nimport { useEffect, useRef } from 'react';\n\nconst DEFAULT_EVENTS = ['mousedown', 'touchstart'];\n\nexport default function useClickOutside<T extends HTMLElement = any>(\n handler: () => void,\n events?: string[] | null,\n nodes?: Array<HTMLElement | null>,\n) {\n const ref = useRef<T>();\n\n useEffect(() => {\n const listener = (event: any) => {\n const { target } = event ?? {};\n if (Array.isArray(nodes)) {\n const shouldIgnore =\n target?.hasAttribute('data-ignore-outside-clicks') ||\n (!document.body.contains(target) && target.tagName !== 'HTML');\n const shouldTrigger = nodes.every(\n (node) => !!node && !event.composedPath().includes(node),\n );\n shouldTrigger && !shouldIgnore && handler();\n } else if (ref.current && !ref.current.contains(target)) {\n handler();\n }\n };\n\n (events || DEFAULT_EVENTS).forEach((fn) => {\n document.addEventListener(fn, listener);\n });\n\n return () => {\n (events || DEFAULT_EVENTS).forEach((fn) => {\n document.removeEventListener(fn, listener);\n });\n };\n }, [ref, handler, nodes, events]);\n\n return ref;\n}\n"],"names":["DEFAULT_EVENTS","useClickOutside","handler","events","nodes","ref","useRef","useEffect","listener","event","target","Array","isArray","shouldIgnore","hasAttribute","document","body","contains","tagName","every","node","composedPath","includes","current","forEach","fn","addEventListener","removeEventListener"],"mappings":";AAGA,MAAMA,IAAiB,CAAC,aAAa,YAAY;AAEzBC,SAAAA,EACtBC,GACAC,GACAC,GACA;AACA,QAAMC,IAAMC;AAEZC,SAAAA,EAAU,MAAM;AACRC,UAAAA,IAAWA,CAACC,MAAe;AACzB,YAAA;AAAA,QAAEC,QAAAA;AAAAA,MAAAA,IAAWD,KAAS,CAAA;AACxBE,UAAAA,MAAMC,QAAQR,CAAK,GAAG;AACxB,cAAMS,KACJH,KAAAA,gBAAAA,EAAQI,aAAa,kCACpB,CAACC,SAASC,KAAKC,SAASP,CAAM,KAAKA,EAAOQ,YAAY;AAIxC,QAHKd,EAAMe,MACzBC,CAAAA,MAAS,CAAC,CAACA,KAAQ,CAACX,EAAMY,aAAAA,EAAeC,SAASF,CAAI,CACzD,KACiB,CAACP,KAAgBX;MAAQ,MAC5C,CAAWG,EAAIkB,WAAW,CAAClB,EAAIkB,QAAQN,SAASP,CAAM,KAC5CR;IACV;AAGDC,YAAAA,KAAUH,GAAgBwB,QAASC,CAAOA,MAAA;AAChCC,eAAAA,iBAAiBD,GAAIjB,CAAQ;AAAA,IAAA,CACvC,GAEM,MAAM;AACVL,OAAAA,KAAUH,GAAgBwB,QAASC,CAAOA,MAAA;AAChCE,iBAAAA,oBAAoBF,GAAIjB,CAAQ;AAAA,MAAA,CAC1C;AAAA,IAAA;AAAA,KAEF,CAACH,GAAKH,GAASE,GAAOD,CAAM,CAAC,GAEzBE;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDebounce.js","sources":["../../../src/hooks/useDebounce/useDebounce.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nfunction useDebounce<T>(value: T, delay?: number): T {\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setDebouncedValue(value);\n }, delay || 500);\n\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n\n return debouncedValue;\n}\n\nexport default useDebounce;\n"],"names":["useDebounce","value","delay","debouncedValue","setDebouncedValue","useState","useEffect","timer","setTimeout","clearTimeout"],"mappings":";AAEA,SAASA,EAAeC,GAAUC,GAAmB;AACnD,QAAM,CAACC,GAAgBC,CAAiB,IAAIC,EAAYJ,CAAK;AAE7DK,SAAAA,EAAU,MAAM;AACRC,UAAAA,IAAQC,WAAW,MAAM;AAC7BJ,MAAAA,EAAkBH,CAAK;AAAA,IAAA,GACtBC,KAAS,GAAG;AAEf,WAAO,MAAM;AACXO,mBAAaF,CAAK;AAAA,IAAA;AAAA,EACpB,GACC,CAACN,GAAOC,CAAK,CAAC,GAEVC;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDropdown.js","sources":["../../../src/hooks/useDropdown/useDropdown.ts"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport {\n Dispatch,\n MutableRefObject,\n SetStateAction,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\n\nimport {\n Placement,\n autoUpdate,\n flip,\n offset,\n safePolygon,\n size,\n useFloating,\n useHover,\n} from '@floating-ui/react';\n\nimport { mergeRefs } from '../../utils/ref';\n\nexport enum KEYS {\n Enter = 'Enter',\n Space = 'Space',\n ArrowDown = 'ArrowDown',\n ArrowUp = 'ArrowUp',\n Down = 'Down',\n Up = 'Up',\n Tab = 'Tab',\n Esc = 'Esc',\n Escape = 'Escape',\n Home = 'Home',\n End = 'End',\n PageUp = 'PageUp',\n PageDown = 'PageDown',\n}\n\nexport interface UseDropdownProps {\n isFocused: string | null;\n visible: boolean;\n itemRefs: MutableRefObject<{ [key: string]: HTMLElement | null }>;\n triggerRef: MutableRefObject<HTMLButtonElement | null>;\n menuRef: MutableRefObject<HTMLUListElement | null>;\n triggerProps: Record<string, any>;\n menuProps: Record<string, any>;\n itemProps: Record<string, any>;\n setVisible: Dispatch<SetStateAction<boolean>>;\n}\n\nconst useDropdown = (\n placement: Placement | undefined,\n extraTriggerKeyDownHandler?: (\n event: React.KeyboardEvent<HTMLButtonElement>,\n ) => void,\n isTriggerHovered = false,\n): UseDropdownProps => {\n /* Unique Dropdown Id */\n const id = useId();\n\n /* states */\n const [visible, setVisible] = useState<boolean>(false);\n const [activeIndex, setActiveIndex] = useState<number>(-1);\n const [isFocused, setIsFocused] = useState<string | null>(null);\n\n const { refs, floatingStyles, context } = useFloating({\n placement,\n open: visible,\n onOpenChange: setVisible,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(4),\n size({\n apply({ rects, elements }) {\n elements.floating.style.minWidth = `${rects.reference.width}px`;\n },\n }),\n flip({ padding: 0 }),\n ],\n });\n\n // Hover interaction for the dropdown trigger. This is used to open the dropdown on hover. The dropdown should be closed on mouse leave.\n useHover(context, {\n enabled: isTriggerHovered,\n // Configure the delay for opening and closing separately.\n delay: {\n open: 200,\n },\n handleClose: safePolygon(),\n });\n\n /* refs */\n const menuRef = useRef<HTMLUListElement | null>(null);\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n const itemRefs = useRef({});\n\n useEffect(() => {\n if (visible) {\n if (menuRef.current) {\n menuRef.current.focus();\n setActiveIndex(0);\n }\n } else {\n setActiveIndex(-1);\n itemRefs.current = {};\n }\n }, [visible]);\n\n useEffect(() => {\n if (activeIndex !== -1) {\n const currentItem = Object.values(itemRefs.current)[\n activeIndex\n ] as HTMLElement;\n\n if (currentItem) {\n const id = currentItem.getAttribute('id') as string;\n setIsFocused(id);\n currentItem.focus();\n }\n }\n }, [activeIndex]);\n\n const nextItem = () => {\n const items = Object.values(itemRefs.current);\n const itemCount = items.length;\n setActiveIndex((prevIndex) => (prevIndex + 1) % itemCount);\n };\n\n const previousItem = () => {\n const items = Object.values(itemRefs.current);\n const itemCount = items.length;\n setActiveIndex((prevIndex) => (prevIndex - 1 + itemCount) % itemCount);\n };\n\n const firstItem = () => {\n setActiveIndex(0);\n };\n\n const lastItem = () => {\n const items = Object.values(itemRefs.current);\n const itemCount = items.length;\n setActiveIndex(itemCount - 1);\n };\n\n const openDropdown = useCallback(() => {\n setVisible(true);\n }, []);\n\n const closeDropdown = useCallback(() => {\n if (triggerRef.current) {\n // Closing the dropdown should not scroll the window content.\n triggerRef.current.focus({ preventScroll: true });\n setVisible(false);\n }\n }, []);\n\n const stopEvents = (flag: boolean, event: React.KeyboardEvent) => {\n if (flag) {\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n const onTriggerKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n let flag = false;\n\n switch (event.code) {\n case ' ':\n case KEYS.Space:\n case KEYS.Enter:\n case KEYS.ArrowDown:\n case KEYS.Down:\n openDropdown();\n flag = true;\n break;\n case KEYS.Esc:\n case KEYS.Escape:\n closeDropdown();\n flag = true;\n break;\n case KEYS.Up:\n case KEYS.ArrowUp:\n openDropdown();\n flag = true;\n break;\n default:\n break;\n }\n\n extraTriggerKeyDownHandler?.(event);\n stopEvents(flag, event);\n },\n [closeDropdown, openDropdown],\n );\n\n const onMenuItemMouseEnter = (event: React.MouseEvent) => {\n const items: HTMLElement[] = Object.values(itemRefs.current);\n\n const index = items.findIndex(\n (item) => item.id === event.currentTarget.getAttribute('id'),\n );\n\n setActiveIndex(index);\n };\n\n const onMenuItemKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>, onSuccess?: () => void) => {\n let flag = false;\n\n if (event.shiftKey) {\n if (event.key === 'Tab') {\n closeDropdown();\n flag = true;\n }\n } else {\n switch (event.code) {\n case KEYS.Escape:\n closeDropdown();\n break;\n // FIX WB2-1334: Space event prevents user to insert Space during search, so we comment it to keep a trace.\n // case KEYS.Space:\n case ' ':\n case KEYS.Enter:\n if (activeIndex !== -1) {\n const currentItem = Object.values(itemRefs.current)[\n activeIndex\n ] as HTMLElement;\n const role = currentItem.getAttribute('role');\n\n if (role === 'menuitem') {\n if (triggerRef.current) {\n triggerRef.current.focus();\n setVisible(false);\n }\n }\n\n onSuccess?.();\n }\n flag = true;\n break;\n case KEYS.ArrowDown:\n case KEYS.Down:\n nextItem();\n flag = true;\n break;\n case KEYS.ArrowUp:\n case KEYS.Up:\n previousItem();\n flag = true;\n break;\n case KEYS.Home:\n firstItem();\n flag = true;\n break;\n case KEYS.End:\n lastItem();\n flag = true;\n break;\n default:\n break;\n }\n stopEvents(flag, event);\n }\n },\n [activeIndex, closeDropdown],\n );\n\n const onTriggerClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (visible === true) {\n setVisible(false);\n } else {\n setVisible(true);\n }\n event.stopPropagation();\n event.preventDefault();\n },\n [visible],\n );\n\n return {\n isFocused,\n visible,\n itemRefs,\n triggerRef,\n menuRef,\n /* TriggerProps to spread to any Trigger component */\n triggerProps: {\n ref: mergeRefs(triggerRef, refs.setReference),\n id: `dropdown-toggle-${id}`,\n 'aria-haspopup': 'menu',\n 'aria-controls': `dropdown-${id}`,\n 'aria-expanded': visible ? true : false,\n className: `${visible ? 'selected' : ''}`,\n onClick: onTriggerClick,\n onKeyDown: onTriggerKeyDown,\n 'aria-activedescendant': isFocused,\n },\n /* MenuProps to spread to any Menu Component */\n menuProps: {\n ref: mergeRefs(menuRef, refs.setFloating),\n className: 'dropdown-menu',\n 'aria-labelledby': `dropdown-toggle-${id}`,\n style: { ...floatingStyles },\n },\n /* ItemProps to spread to any item Component */\n itemProps: {\n onMenuItemMouseEnter,\n onMenuItemClick: closeDropdown,\n onMenuItemKeyDown,\n },\n setVisible,\n };\n};\n\nexport default useDropdown;\n"],"names":["useDropdown","placement","extraTriggerKeyDownHandler","isTriggerHovered","id","useId","visible","setVisible","useState","activeIndex","setActiveIndex","isFocused","setIsFocused","refs","floatingStyles","context","useFloating","open","onOpenChange","whileElementsMounted","autoUpdate","middleware","offset","size","apply","rects","elements","floating","style","minWidth","reference","width","flip","padding","useHover","enabled","delay","handleClose","safePolygon","menuRef","useRef","triggerRef","itemRefs","useEffect","current","focus","currentItem","Object","values","getAttribute","nextItem","itemCount","length","prevIndex","previousItem","firstItem","lastItem","openDropdown","useCallback","closeDropdown","preventScroll","stopEvents","flag","event","stopPropagation","preventDefault","onTriggerKeyDown","code","KEYS","onMenuItemMouseEnter","index","findIndex","item","currentTarget","onMenuItemKeyDown","onSuccess","shiftKey","key","onTriggerClick","triggerProps","ref","mergeRefs","setReference","className","onClick","onKeyDown","menuProps","setFloating","itemProps","onMenuItemClick"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDropzone.js","sources":["../../../src/hooks/useDropzone/useDropzone.ts"],"sourcesContent":["import { ChangeEvent, useRef, useState } from 'react';\n\nconst useDropzone = (props?: {\n /**\n * Truthy when the `accept` attribute of the referenced `input[type=file]`\n * must be force-checked against any added file.\n */\n forceFilters: boolean;\n}) => {\n const [dragging, setDragging] = useState<boolean>(false);\n const [files, setFiles] = useState<File[]>([]);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const addFile = (file: File) => {\n addFiles([file]);\n };\n\n const deleteFile = (file: File) => {\n setFiles((prevFiles) =>\n prevFiles.filter((prevFile) => prevFile.name !== file.name),\n );\n };\n\n const replaceFileAt = (index: number, file: File) => {\n setFiles((prevFiles) => {\n if (0 <= index && index < prevFiles.length) {\n const firstPart = prevFiles.slice(0, index);\n const lastPart =\n index === prevFiles.length - 1 ? [] : prevFiles.slice(index + 1);\n return [...firstPart, file, ...lastPart];\n }\n return prevFiles;\n });\n };\n\n const applyInputFiltersOn = (files: File[]) => {\n let filteredFiles: File[] = files;\n if (inputRef.current?.accept) {\n // Reject files which do not pass the `accept` filter.\n const filters = inputRef.current.accept\n .split(',')\n .map((filter) => filter.trim().toLowerCase());\n const extensions = filters.filter((filter) => filter.startsWith('.'));\n const mimes = filters\n .filter((filter) => !filter.startsWith('.'))\n .map((mime) => mime.replace('*', ''));\n\n filteredFiles = [];\n files.forEach((file) => {\n const fileName = file.name.toLowerCase();\n if (\n extensions.some((extension) => fileName.endsWith(extension)) ||\n mimes.some((mime) => file.type.includes(mime))\n ) {\n filteredFiles.push(file);\n }\n });\n }\n return filteredFiles;\n };\n\n const addFiles = (files: File[]) => {\n if (props?.forceFilters) {\n const filesToAdd = applyInputFiltersOn(files);\n if (filesToAdd && filesToAdd.length)\n setFiles((prevFiles) => [...prevFiles, ...filesToAdd]);\n } else {\n setFiles((prevFiles) => [...prevFiles, ...files]);\n }\n };\n\n const cleanFiles = () => {\n setFiles([]);\n };\n\n const handleOnChange = (event: ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files;\n if (files) addFiles([...files]);\n };\n\n const handleDragging = <T extends HTMLElement>(event: React.DragEvent<T>) => {\n event.preventDefault();\n event.stopPropagation();\n setDragging(true);\n };\n\n const handleDragLeave = <T extends HTMLElement>(\n event: React.DragEvent<T>,\n ) => {\n event.preventDefault();\n event.stopPropagation();\n setDragging(false);\n };\n\n const handleDrop = <T extends HTMLElement>(event: React.DragEvent<T>) => {\n handleDragLeave(event);\n const files = event.dataTransfer?.files;\n if (files) {\n addFiles([...files]);\n if (inputRef?.current) {\n inputRef.current.files = files;\n }\n }\n };\n\n return {\n /** Reference to an `input[type=file]` HTMLElement, null at first. */\n inputRef,\n /** Read-only list of File·s managed by this hook. */\n files,\n /** Truthy when a drag event is triggered. */\n dragging,\n /** Callback to attach to your drop zone (any HTMLElement). */\n handleDragging,\n /** Callback to attach to your drop zone (any HTMLElement). */\n handleDragLeave,\n /** Callback to attach to your drop zone (any HTMLElement). */\n handleDrop,\n /** Replace a file in the `files` list. */\n replaceFileAt,\n /** Remove a file from the `files` list. */\n deleteFile,\n /** Add a file to the `files` list. */\n addFile,\n /** Add many files to the `files` list. */\n addFiles,\n /** Empty the `files` list. */\n cleanFiles,\n /** Callback to attach to your `input[type=file]` HTMLElement. */\n handleOnChange,\n };\n};\n\nexport default useDropzone;\n"],"names":["useDropzone","props","dragging","setDragging","useState","files","setFiles","inputRef","useRef","addFile","file","addFiles","deleteFile","prevFiles","filter","prevFile","name","replaceFileAt","index","length","firstPart","slice","lastPart","applyInputFiltersOn","filteredFiles","current","accept","filters","split","map","trim","toLowerCase","extensions","startsWith","mimes","mime","replace","forEach","fileName","some","extension","endsWith","type","includes","push","forceFilters","filesToAdd","cleanFiles","handleOnChange","event","target","handleDragging","preventDefault","stopPropagation","handleDragLeave","handleDrop","dataTransfer"],"mappings":";AAEMA,MAAAA,IAAcA,CAACC,MAMf;AACJ,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAkB,EAAK,GACjD,CAACC,GAAOC,CAAQ,IAAIF,EAAiB,CAAE,CAAA,GAEvCG,IAAWC,EAAgC,IAAI,GAE/CC,IAAUA,CAACC,MAAe;AACrB,IAAAC,EAAA,CAACD,CAAI,CAAC;AAAA,EAAA,GAGXE,IAAaA,CAACF,MAAe;AACvBG,IAAAA,EAAAA,CAAAA,MACRA,EAAUC,OAAQC,CAAAA,MAAaA,EAASC,SAASN,EAAKM,IAAI,CAC5D;AAAA,EAAA,GAGIC,IAAgBA,CAACC,GAAeR,MAAe;AACnDJ,IAAAA,EAAUO,CAAcA,MAAA;AACtB,UAAI,KAAKK,KAASA,IAAQL,EAAUM,QAAQ;AAC1C,cAAMC,IAAYP,EAAUQ,MAAM,GAAGH,CAAK,GACpCI,IACJJ,MAAUL,EAAUM,SAAS,IAAI,CAAKN,IAAAA,EAAUQ,MAAMH,IAAQ,CAAC;AACjE,eAAO,CAAC,GAAGE,GAAWV,GAAM,GAAGY,CAAQ;AAAA,MACzC;AACOT,aAAAA;AAAAA,IAAAA,CACR;AAAA,EAAA,GAGGU,IAAsBA,CAAClB,MAAkB;;AAC7C,QAAImB,IAAwBnB;AACxBE,SAAAA,IAAAA,EAASkB,YAATlB,QAAAA,EAAkBmB,QAAQ;AAE5B,YAAMC,IAAUpB,EAASkB,QAAQC,OAC9BE,MAAM,GAAG,EACTC,IAAKf,CAAWA,MAAAA,EAAOgB,KAAK,EAAEC,YAAa,CAAA,GACxCC,IAAaL,EAAQb,OAAQA,OAAWA,EAAOmB,WAAW,GAAG,CAAC,GAC9DC,IAAQP,EACXb,OAAQA,CAAWA,MAAA,CAACA,EAAOmB,WAAW,GAAG,CAAC,EAC1CJ,IAAKM,CAASA,MAAAA,EAAKC,QAAQ,KAAK,EAAE,CAAC;AAEtCZ,MAAAA,IAAgB,CAAA,GAChBnB,EAAMgC,QAAS3B,CAASA,MAAA;AAChB4B,cAAAA,IAAW5B,EAAKM,KAAKe,YAAY;AACvC,SACEC,EAAWO,KAAMC,CAAAA,MAAcF,EAASG,SAASD,CAAS,CAAC,KAC3DN,EAAMK,KAAMJ,OAASzB,EAAKgC,KAAKC,SAASR,CAAI,CAAC,MAE7CX,EAAcoB,KAAKlC,CAAI;AAAA,MACzB,CACD;AAAA,IACH;AACOc,WAAAA;AAAAA,EAAAA,GAGHb,IAAWA,CAACN,MAAkB;AAClC,QAAIJ,KAAAA,QAAAA,EAAO4C,cAAc;AACjBC,YAAAA,IAAavB,EAAoBlB,CAAK;AACxCyC,MAAAA,KAAcA,EAAW3B,UACjBN,EAAAA,CAAAA,MAAc,CAAC,GAAGA,GAAW,GAAGiC,CAAU,CAAC;AAAA,IAAA;AAEvDxC,MAAAA,EAAUO,OAAc,CAAC,GAAGA,GAAW,GAAGR,CAAK,CAAC;AAAA,EAClD,GAGI0C,IAAaA,MAAM;AACvBzC,IAAAA,EAAS,CAAE,CAAA;AAAA,EAAA,GAGP0C,IAAiBA,CAACC,MAAyC;AACzD5C,UAAAA,IAAQ4C,EAAMC,OAAO7C;AAC3B,IAAIA,KAAOM,EAAS,CAAC,GAAGN,CAAK,CAAC;AAAA,EAAA,GAG1B8C,IAAiB,CAAwBF,MAA8B;AAC3EA,IAAAA,EAAMG,eAAe,GACrBH,EAAMI,gBAAgB,GACtBlD,EAAY,EAAI;AAAA,EAAA,GAGZmD,IAAkB,CACtBL,MACG;AACHA,IAAAA,EAAMG,eAAe,GACrBH,EAAMI,gBAAgB,GACtBlD,EAAY,EAAK;AAAA,EAAA;AAcZ,SAAA;AAAA;AAAA,IAELI,UAAAA;AAAAA;AAAAA,IAEAF,OAAAA;AAAAA;AAAAA,IAEAH,UAAAA;AAAAA;AAAAA,IAEAiD,gBAAAA;AAAAA;AAAAA,IAEAG,iBAAAA;AAAAA;AAAAA,IAEAC,YAvBiB,CAAwBN,MAA8B;;AACvEK,MAAAA,EAAgBL,CAAK;AACf5C,YAAAA,KAAQ4C,IAAAA,EAAMO,iBAANP,gBAAAA,EAAoB5C;AAClC,MAAIA,MACOM,EAAA,CAAC,GAAGN,CAAK,CAAC,GACfE,KAAAA,QAAAA,EAAUkB,YACZlB,EAASkB,QAAQpB,QAAQA;AAAAA,IAE7B;AAAA;AAAA,IAiBAY,eAAAA;AAAAA;AAAAA,IAEAL,YAAAA;AAAAA;AAAAA,IAEAH,SAAAA;AAAAA;AAAAA,IAEAE,UAAAA;AAAAA;AAAAA,IAEAoC,YAAAA;AAAAA;AAAAA,IAEAC,gBAAAA;AAAAA,EAAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useHover.js","sources":["../../../src/hooks/useHover/useHover.ts"],"sourcesContent":["import { type MutableRefObject, useState, useRef, useEffect } from 'react';\n\nexport default function useHover<T>(): [MutableRefObject<T>, boolean] {\n const [value, setValue] = useState<boolean>(false);\n const ref: any = useRef<T | null>(null);\n const handleMouseOver = (): void => {\n setValue(true);\n };\n const handleMouseOut = (): void => {\n setValue(false);\n };\n useEffect(\n () => {\n const node: any = ref.current;\n if (node) {\n node.addEventListener('mouseover', handleMouseOver);\n node.addEventListener('mouseout', handleMouseOut);\n return () => {\n node.removeEventListener('mouseover', handleMouseOver);\n node.removeEventListener('mouseout', handleMouseOut);\n };\n }\n },\n [ref], // Recall only if ref changes\n );\n return [ref, value];\n}\n"],"names":["useHover","value","setValue","useState","ref","useRef","handleMouseOver","handleMouseOut","useEffect","node","current","addEventListener","removeEventListener"],"mappings":";AAEA,SAAwBA,IAA8C;AACpE,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAkB,EAAK,GAC3CC,IAAWC,EAAiB,IAAI,GAChCC,IAAkBA,MAAY;AAClCJ,IAAAA,EAAS,EAAI;AAAA,EAAA,GAETK,IAAiBA,MAAY;AACjCL,IAAAA,EAAS,EAAK;AAAA,EAAA;AAEhBM,SAAAA;AAAAA,IACE,MAAM;AACJ,YAAMC,IAAYL,EAAIM;AACtB,UAAID;AACGE,eAAAA,EAAAA,iBAAiB,aAAaL,CAAe,GAC7CK,EAAAA,iBAAiB,YAAYJ,CAAc,GACzC,MAAM;AACNK,UAAAA,EAAAA,oBAAoB,aAAaN,CAAe,GAChDM,EAAAA,oBAAoB,YAAYL,CAAc;AAAA,QAAA;AAAA,IAGzD;AAAA,IACA,CAACH,CAAG;AAAA;AAAA,EAAA,GAEC,CAACA,GAAKH,CAAK;AACpB;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useImage.js","sources":["../../../src/hooks/useImage/useImage.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\ninterface useImageProps {\n src: string;\n placeholder: string;\n}\n\nexport default function useImage({ src, placeholder }: useImageProps) {\n const [imgSrc, setImgSrc] = useState<string>(src || placeholder);\n\n const onError = useCallback(() => {\n setImgSrc(placeholder);\n }, [placeholder]);\n\n // Force initial value imgSrc to src. If we use the value returned by useState it is wrong the second time the hook is called\n useEffect(() => {\n setImgSrc(src);\n }, [src]);\n return { imgSrc, onError };\n}\n"],"names":["useImage","src","placeholder","imgSrc","setImgSrc","useState","onError","useCallback","useEffect"],"mappings":";AAOA,SAAwBA,EAAS;AAAA,EAAEC,KAAAA;AAAAA,EAAKC,aAAAA;AAA2B,GAAG;AACpE,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAiBJ,KAAOC,CAAW,GAEzDI,IAAUC,EAAY,MAAM;AAChCH,IAAAA,EAAUF,CAAW;AAAA,EAAA,GACpB,CAACA,CAAW,CAAC;AAGhBM,SAAAA,EAAU,MAAM;AACdJ,IAAAA,EAAUH,CAAG;AAAA,EAAA,GACZ,CAACA,CAAG,CAAC,GACD;AAAA,IAAEE,QAAAA;AAAAA,IAAQG,SAAAA;AAAAA,EAAAA;AACnB;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useImageResizer.js","sources":["../../../src/hooks/useImageResizer/useImageResizer.ts"],"sourcesContent":["/**\n * @module useImageResizer\n * @description This module provides a hook to resize and compress image files.\n * @returns all the action available for the image resizer\n */\nexport default function useImageResizer() {\n const changeHeightWidth = (\n height: number,\n maxHeight: number,\n width: number,\n maxWidth: number,\n ) => {\n if (width > maxWidth) {\n height = Math.round((height * maxWidth) / width);\n width = maxWidth;\n }\n if (height > maxHeight) {\n width = Math.round((width * maxHeight) / height);\n height = maxHeight;\n }\n return { height, width };\n };\n\n const renameFileNameExtension = (filename: string, newExtension: string) => {\n const filenameParts = filename.split('.');\n filenameParts.pop();\n return filenameParts.join('.') + '.' + newExtension;\n };\n\n const resizeImage = (\n image: HTMLImageElement,\n fileName: string,\n maxWidth: number,\n maxHeight: number,\n compressFormat = 'jpeg',\n quality = 80,\n ): Promise<File> => {\n const qualityDecimal = quality / 100;\n const canvas = document.createElement('canvas');\n const contentType = `image/${compressFormat}`;\n\n let width = image.width;\n let height = image.height;\n\n const newHeightWidth = changeHeightWidth(\n height,\n maxHeight,\n width,\n maxWidth,\n );\n\n width = newHeightWidth.width;\n height = newHeightWidth.height;\n\n const ctx = canvas.getContext('2d');\n if (ctx) {\n canvas.width = width;\n canvas.height = height;\n\n if (ctx.imageSmoothingEnabled && ctx.imageSmoothingQuality) {\n ctx.imageSmoothingQuality = 'high';\n }\n\n ctx.drawImage(image, 0, 0, width, height);\n }\n return new Promise((resolve, reject) => {\n canvas.toBlob(\n (blob) => {\n if (blob) {\n resolve(\n new File([blob], fileName, {\n type: contentType,\n lastModified: new Date().getTime(),\n }),\n );\n } else {\n reject();\n }\n },\n contentType,\n qualityDecimal,\n );\n });\n };\n\n /**\n * Resize and compress Image File in JPEG format (other format don't work well with canvas.toBlob() with quality parameter)\n * @param file The image file to resize\n * @param maxWidth The maximum width of the resized image\n * @param maxHeight The maximum height of the resized image\n * @param quality The quality of the compressed image\n * @returns The resized image file\n */\n const resizeImageFile = async (\n file: File,\n maxWidth = 1440,\n maxHeight = 1440,\n quality = 80,\n ): Promise<File> => {\n if (!file) throw Error('Image resizer: file not found!');\n\n if (!file.type || !file.type.startsWith('image/'))\n throw Error('Image resizer: the file given is not an image.');\n\n const compressFormat = 'jpeg';\n\n return new Promise((resolve) => {\n const image = new Image();\n image.setAttribute('style', 'max-width: none;');\n image.src = URL.createObjectURL(file);\n image.onload = async () => {\n const resizedFile = await resizeImage(\n image,\n renameFileNameExtension(file.name, compressFormat),\n maxWidth,\n maxHeight,\n compressFormat,\n quality,\n );\n resolve(resizedFile);\n };\n image.onerror = (error) => {\n throw Error('Image Loading Error: ' + error);\n };\n });\n };\n\n return {\n resizeImageFile,\n };\n}\n"],"names":["useImageResizer","changeHeightWidth","height","maxHeight","width","maxWidth","Math","round","renameFileNameExtension","filename","newExtension","filenameParts","split","pop","join","resizeImage","image","fileName","compressFormat","quality","qualityDecimal","canvas","document","createElement","contentType","newHeightWidth","ctx","getContext","imageSmoothingEnabled","imageSmoothingQuality","drawImage","Promise","resolve","reject","toBlob","blob","File","type","lastModified","Date","getTime","resizeImageFile","file","Error","startsWith","Image","setAttribute","src","URL","createObjectURL","onload","resizedFile","name","onerror","error"],"mappings":"AAKA,SAAwBA,IAAkB;AACxC,QAAMC,IAAoBA,CACxBC,GACAC,GACAC,GACAC,OAEID,IAAQC,MACVH,IAASI,KAAKC,MAAOL,IAASG,IAAYD,CAAK,GACvCC,IAAAA,IAENH,IAASC,MACXC,IAAQE,KAAKC,MAAOH,IAAQD,IAAaD,CAAM,GACtCC,IAAAA,IAEJ;AAAA,IAAED,QAAAA;AAAAA,IAAQE,OAAAA;AAAAA,EAAAA,IAGbI,IAA0BA,CAACC,GAAkBC,MAAyB;AACpEC,UAAAA,IAAgBF,EAASG,MAAM,GAAG;AACxCD,WAAAA,EAAcE,IAAI,GACXF,EAAcG,KAAK,GAAG,IAAI,MAAMJ;AAAAA,EAAAA,GAGnCK,IAAcA,CAClBC,GACAC,GACAZ,GACAF,GACAe,IAAiB,QACjBC,IAAU,OACQ;AAClB,UAAMC,IAAiBD,IAAU,KAC3BE,IAASC,SAASC,cAAc,QAAQ,GACxCC,IAAc,SAASN,CAAc;AAE3C,QAAId,IAAQY,EAAMZ,OACdF,IAASc,EAAMd;AAEnB,UAAMuB,IAAiBxB,EACrBC,GACAC,GACAC,GACAC,CACF;AAEAD,IAAAA,IAAQqB,EAAerB,OACvBF,IAASuB,EAAevB;AAElBwB,UAAAA,IAAML,EAAOM,WAAW,IAAI;AAClC,WAAID,MACFL,EAAOjB,QAAQA,GACfiB,EAAOnB,SAASA,GAEZwB,EAAIE,yBAAyBF,EAAIG,0BACnCH,EAAIG,wBAAwB,SAG9BH,EAAII,UAAUd,GAAO,GAAG,GAAGZ,GAAOF,CAAM,IAEnC,IAAI6B,QAAQ,CAACC,GAASC,MAAW;AACtCZ,MAAAA,EAAOa,OACJC,CAASA,MAAA;AACR,QAAIA,IACFH,EACE,IAAII,KAAK,CAACD,CAAI,GAAGlB,GAAU;AAAA,UACzBoB,MAAMb;AAAAA,UACNc,eAAc,oBAAIC,KAAK,GAAEC,QAAQ;AAAA,QAClC,CAAA,CACH,IAEOP;MACT,GAEFT,GACAJ,CACF;AAAA,IAAA,CACD;AAAA,EAAA;AA6CI,SAAA;AAAA,IACLqB,iBAnCsB,OACtBC,GACArC,IAAW,MACXF,IAAY,MACZgB,IAAU,OACQ;AAClB,UAAI,CAACuB,EAAYC,OAAAA,MAAM,gCAAgC;AAEnD,UAAA,CAACD,EAAKL,QAAQ,CAACK,EAAKL,KAAKO,WAAW,QAAQ,EACxCD,OAAAA,MAAM,gDAAgD;AAE9D,YAAMzB,IAAiB;AAEhB,aAAA,IAAIa,QAASC,CAAYA,MAAA;AACxBhB,cAAAA,IAAQ,IAAI6B;AACZC,QAAAA,EAAAA,aAAa,SAAS,kBAAkB,GACxCC,EAAAA,MAAMC,IAAIC,gBAAgBP,CAAI,GACpC1B,EAAMkC,SAAS,YAAY;AACzB,gBAAMC,IAAc,MAAMpC,EACxBC,GACAR,EAAwBkC,EAAKU,MAAMlC,CAAc,GACjDb,GACAF,GACAe,GACAC,CACF;AACAa,UAAAA,EAAQmB,CAAW;AAAA,QAAA,GAErBnC,EAAMqC,UAAWC,CAAUA,MAAA;AACnBX,gBAAAA,MAAM,0BAA0BW,CAAK;AAAA,QAAA;AAAA,MAC7C,CACD;AAAA,IAAA;AAAA,EAIDb;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useKeyPress.js","sources":["../../../src/hooks/useKeyPress/useKeyPress.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react';\n\nexport default function useKeyPress(\n callback: () => void,\n keyCodes: string[],\n): void {\n const handler = useCallback(\n ({ code }: KeyboardEvent) => {\n if (keyCodes.includes(code)) {\n callback();\n }\n },\n [callback, keyCodes],\n );\n\n useEffect(() => {\n window.addEventListener('keydown', handler);\n return () => {\n window.removeEventListener('keydown', handler);\n };\n }, [handler]);\n}\n"],"names":["useKeyPress","callback","keyCodes","handler","useCallback","code","includes","useEffect","addEventListener","removeEventListener"],"mappings":";AAEwBA,SAAAA,EACtBC,GACAC,GACM;AACAC,QAAAA,IAAUC,EACd,CAAC;AAAA,IAAEC,MAAAA;AAAAA,EAAAA,MAA0B;AACvBH,IAAAA,EAASI,SAASD,CAAI,KACfJ;EACX,GAEF,CAACA,GAAUC,CAAQ,CACrB;AAEAK,EAAAA,EAAU,OACDC,OAAAA,iBAAiB,WAAWL,CAAO,GACnC,MAAM;AACJM,WAAAA,oBAAoB,WAAWN,CAAO;AAAA,EAAA,IAE9C,CAACA,CAAO,CAAC;AACd;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useScrollToTop.js","sources":["../../../src/hooks/useScrollToTop/useScrollToTop.ts"],"sourcesContent":["export default function useScrollToTop() {\n const refToTop = document.querySelector('html');\n\n const scrollToTop = () => {\n refToTop && refToTop.scrollIntoView();\n };\n return scrollToTop;\n}\n"],"names":["useScrollToTop","refToTop","document","querySelector","scrollToTop","scrollIntoView"],"mappings":"AAAA,SAAwBA,IAAiB;AACjCC,QAAAA,IAAWC,SAASC,cAAc,MAAM;AAKvCC,SAHaA,MAAM;AACxBH,IAAAA,KAAYA,EAASI;EAAe;AAGxC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useThumbnail.js","sources":["../../../src/hooks/useThumbnail/useThumbnail.ts"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport { useEffect, useState } from 'react';\n\nimport { IntersectionOptions, useInView } from 'react-intersection-observer';\n\ntype LazyLoadOptions = {\n ref?: React.RefObject<HTMLElement>;\n intersectionOptions?: IntersectionOptions;\n};\n\n/**\n * Preload a `src` URL and return true if it is available.\n * @param src the URL to preload\n * @param options if defined, lazy-load the `src` URL when ref is defined and visible,\n * with respect to the [`intersectionOptions`](https://github.com/thebuilder/react-intersection-observer/tree/dceba7f52aebea4d62d539bc55a1db129226bb6c?tab=readme-ov-file#options)\n * @return `true` if `src` is available, or false otherwise, or `null` while not tested.\n */\nexport default function useThumbnail(src: string, options?: LazyLoadOptions) {\n const [status, setStatus] = useState<boolean | null>(null);\n\n // If defined, wait for the currentRef to be \"InView\" to check if its thumbnail exists.\n const { ref: inViewRef, inView } = useInView({\n triggerOnce: true,\n ...options?.intersectionOptions,\n });\n\n // This `useEffect` is required to share the ref node with useInView() above\n useEffect(() => {\n // Callback refs, like the one from `useInView`, is a function that takes the node as an argument\n options?.ref?.current && inViewRef?.(options.ref.current);\n }, [options?.ref, inViewRef]);\n\n useEffect(() => {\n if (options?.ref === undefined || inView) {\n const img = new Image();\n img.src = src;\n\n img.onload = () => {\n setStatus(true);\n };\n\n img.onerror = () => {\n setStatus(false);\n };\n\n return () => {\n img.onload = null;\n img.onerror = null;\n setStatus(null);\n };\n }\n }, [inView]);\n\n return status;\n}\n"],"names":["useThumbnail","src","options","status","setStatus","useState","ref","inViewRef","inView","useInView","triggerOnce","intersectionOptions","useEffect","current","undefined","img","Image","onload","onerror"],"mappings":";;AAiBwBA,SAAAA,EAAaC,GAAaC,GAA2B;AAC3E,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAyB,IAAI,GAGnD;AAAA,IAAEC,KAAKC;AAAAA,IAAWC,QAAAA;AAAAA,MAAWC,EAAU;AAAA,IAC3CC,aAAa;AAAA,IACb,GAAGR,KAAAA,gBAAAA,EAASS;AAAAA,EAAAA,CACb;AAGDC,SAAAA,EAAU,MAAM;;AAEdV,KAAAA,IAAAA,KAAAA,gBAAAA,EAASI,QAATJ,QAAAA,EAAcW,YAAWN,KAAAA,QAAAA,EAAYL,EAAQI,IAAIO;AAAAA,EAChD,GAAA,CAACX,KAAAA,gBAAAA,EAASI,KAAKC,CAAS,CAAC,GAE5BK,EAAU,MAAM;AACVV,SAAAA,KAAAA,gBAAAA,EAASI,SAAQQ,UAAaN,GAAQ;AAClCO,YAAAA,IAAM,IAAIC;AAChBD,aAAAA,EAAId,MAAMA,GAEVc,EAAIE,SAAS,MAAM;AACjBb,QAAAA,EAAU,EAAI;AAAA,MAAA,GAGhBW,EAAIG,UAAU,MAAM;AAClBd,QAAAA,EAAU,EAAK;AAAA,MAAA,GAGV,MAAM;AACXW,QAAAA,EAAIE,SAAS,MACbF,EAAIG,UAAU,MACdd,EAAU,IAAI;AAAA,MAAA;AAAA,IAElB;AAAA,EAAA,GACC,CAACI,CAAM,CAAC,GAEJL;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTitle.js","sources":["../../../src/hooks/useTitle/useTitle.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport default function useTitle(): string {\n const documentDefined = typeof document !== 'undefined';\n\n const [title, setTitle] = useState<string>(() => document.title);\n\n useEffect(() => {\n if (!documentDefined) return;\n\n setTitle(document.title);\n }, [documentDefined]);\n\n return title;\n}\n"],"names":["useTitle","documentDefined","document","title","setTitle","useState","useEffect"],"mappings":";AAEA,SAAwBA,IAAmB;AACnCC,QAAAA,IAAkB,OAAOC,WAAa,KAEtC,CAACC,GAAOC,CAAQ,IAAIC,EAAiB,MAAMH,SAASC,KAAK;AAE/DG,SAAAA,EAAU,MAAM;AACd,IAAKL,KAELG,EAASF,SAASC,KAAK;AAAA,EAAA,GACtB,CAACF,CAAe,CAAC,GAEbE;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useToast.js","sources":["../../../src/hooks/useToast/useToast.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nimport toast, { ToastPosition } from 'react-hot-toast';\n\nimport Alert from '../../components/Alert/Alert';\n\nexport interface CustomToastOptions {\n id?: string;\n isDismissible?: boolean;\n position?: ToastPosition;\n duration?: number;\n}\n\nconst DEFAULT_POSITION = 'top-right';\n\nexport default function useToast() {\n const toasts = {\n success: (message: string | ReactNode, options?: CustomToastOptions) =>\n toast.custom(\n <Alert\n type=\"success\"\n isToast={true}\n isDismissible={options?.isDismissible}\n className=\"mb-12\"\n >\n {message}\n </Alert>,\n {\n id: options?.id,\n duration: options?.duration,\n position: options?.position ?? DEFAULT_POSITION,\n },\n ),\n error: (message: string | ReactNode, options?: CustomToastOptions) =>\n toast.custom(\n <Alert\n type=\"danger\"\n isToast={true}\n isDismissible={options?.isDismissible}\n className=\"mb-12\"\n >\n {message}\n </Alert>,\n {\n id: options?.id,\n duration: options?.duration,\n position: options?.position ?? DEFAULT_POSITION,\n },\n ),\n info: (message: string | ReactNode, options?: CustomToastOptions) =>\n toast.custom(\n <Alert\n type=\"info\"\n isToast={true}\n isDismissible={options?.isDismissible}\n className=\"mb-12\"\n >\n {message}\n </Alert>,\n {\n id: options?.id,\n duration: options?.duration,\n position: options?.position ?? DEFAULT_POSITION,\n },\n ),\n warning: (message: string | ReactNode, options?: CustomToastOptions) =>\n toast.custom(\n <Alert\n type=\"warning\"\n isToast={true}\n isDismissible={options?.isDismissible}\n className=\"mb-12\"\n >\n {message}\n </Alert>,\n {\n id: options?.id,\n duration: options?.duration,\n position: options?.position ?? DEFAULT_POSITION,\n },\n ),\n loading: toast.loading,\n dismiss: (id: string) => toast.dismiss(id),\n remove: (id: string) => toast.remove(id),\n };\n\n return toasts;\n}\n"],"names":["DEFAULT_POSITION","useToast","toasts","success","message","options","toast","custom","Alert","isDismissible","id","duration","position","error","info","warning","loading","dismiss","remove"],"mappings":";;;AAaA,MAAMA,IAAmB;AAEzB,SAAwBC,IAAW;AAuE1BC,SAtEQ;AAAA,IACbC,SAASA,CAACC,GAA6BC,MACrCC,EAAMC,yBACHC,GACC,EAAA,MAAK,WACL,SAAS,IACT,eAAeH,KAAAA,gBAAAA,EAASI,eACxB,WAAU,SAETL,aACH,GACA;AAAA,MACEM,IAAIL,KAAAA,gBAAAA,EAASK;AAAAA,MACbC,UAAUN,KAAAA,gBAAAA,EAASM;AAAAA,MACnBC,WAAUP,KAAAA,gBAAAA,EAASO,aAAYZ;AAAAA,IAAAA,CAEnC;AAAA,IACFa,OAAOA,CAACT,GAA6BC,MACnCC,EAAMC,yBACHC,GACC,EAAA,MAAK,UACL,SAAS,IACT,eAAeH,KAAAA,gBAAAA,EAASI,eACxB,WAAU,SAETL,aACH,GACA;AAAA,MACEM,IAAIL,KAAAA,gBAAAA,EAASK;AAAAA,MACbC,UAAUN,KAAAA,gBAAAA,EAASM;AAAAA,MACnBC,WAAUP,KAAAA,gBAAAA,EAASO,aAAYZ;AAAAA,IAAAA,CAEnC;AAAA,IACFc,MAAMA,CAACV,GAA6BC,MAClCC,EAAMC,yBACHC,GACC,EAAA,MAAK,QACL,SAAS,IACT,eAAeH,KAAAA,gBAAAA,EAASI,eACxB,WAAU,SAETL,aACH,GACA;AAAA,MACEM,IAAIL,KAAAA,gBAAAA,EAASK;AAAAA,MACbC,UAAUN,KAAAA,gBAAAA,EAASM;AAAAA,MACnBC,WAAUP,KAAAA,gBAAAA,EAASO,aAAYZ;AAAAA,IAAAA,CAEnC;AAAA,IACFe,SAASA,CAACX,GAA6BC,MACrCC,EAAMC,yBACHC,GACC,EAAA,MAAK,WACL,SAAS,IACT,eAAeH,KAAAA,gBAAAA,EAASI,eACxB,WAAU,SAETL,aACH,GACA;AAAA,MACEM,IAAIL,KAAAA,gBAAAA,EAASK;AAAAA,MACbC,UAAUN,KAAAA,gBAAAA,EAASM;AAAAA,MACnBC,WAAUP,KAAAA,gBAAAA,EAASO,aAAYZ;AAAAA,IAAAA,CAEnC;AAAA,IACFgB,SAASV,EAAMU;AAAAA,IACfC,SAASA,CAACP,MAAeJ,EAAMW,QAAQP,CAAE;AAAA,IACzCQ,QAAQA,CAACR,MAAeJ,EAAMY,OAAOR,CAAE;AAAA,EAAA;AAI3C;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useToggle.js","sources":["../../../src/hooks/useToggle/useToggle.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n// Hook\n// Parameter is the boolean, with default \"false\" value\nexport default function useToggle(initialState = false): [boolean, any] {\n // Initialize the state\n const [state, setState] = useState<boolean>(initialState);\n // Define and memorize toggler function in case we pass down the comopnent,\n // This function change the boolean value to it's opposite value\n const toggle = useCallback((): void => {\n setState((prevState: any) => !prevState);\n }, []);\n return [state, toggle];\n}\n"],"names":["useToggle","initialState","state","setState","useState","toggle","useCallback","prevState"],"mappings":";AAGwBA,SAAAA,EAAUC,IAAe,IAAuB;AAEtE,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAkBH,CAAY,GAGlDI,IAASC,EAAY,MAAY;AAC5B,IAAAH,EAAA,CAACI,MAAmB,CAACA,CAAS;AAAA,EACzC,GAAG,CAAE,CAAA;AACE,SAAA,CAACL,GAAOG,CAAM;AACvB;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTrapFocus.js","sources":["../../../src/hooks/useTrapFocus/useTrapFocus.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nexport default function useTrapFocus() {\n const ref = useRef<HTMLElement | null>(null);\n const focusableElements =\n 'button:not([disabled]), [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\n useEffect(() => {\n const node: any = ref.current;\n /** First Focusable Element */\n const firstFocusableElement = node.querySelectorAll(\n focusableElements,\n )[0] as HTMLElement;\n /** Focusable Content */\n const focusableContent = node.querySelectorAll(focusableElements);\n /** Last Focusable Element */\n const lastFocusableElement =\n ref && (focusableContent?.[focusableContent.length - 1] as HTMLElement);\n\n const handleKeydown = (event: KeyboardEvent) => {\n const isTabPressed = event.key === 'Tab';\n\n if (!isTabPressed) {\n return;\n }\n\n if (event.shiftKey) {\n /* shift + tab */ if (\n document.activeElement === firstFocusableElement\n ) {\n lastFocusableElement.focus();\n event.preventDefault();\n }\n } /* tab */ else {\n if (document.activeElement === lastFocusableElement) {\n firstFocusableElement.focus();\n event.preventDefault();\n }\n }\n };\n\n if (node) {\n node.addEventListener('keydown', handleKeydown);\n return () => {\n node.removeEventListener('keydown', handleKeydown);\n };\n }\n }, []);\n\n return ref;\n}\n"],"names":["useTrapFocus","ref","useRef","focusableElements","useEffect","node","current","firstFocusableElement","querySelectorAll","focusableContent","lastFocusableElement","length","handleKeydown","event","key","shiftKey","document","activeElement","focus","preventDefault","addEventListener","removeEventListener"],"mappings":";AAEA,SAAwBA,IAAe;AAC/BC,QAAAA,IAAMC,EAA2B,IAAI,GACrCC,IACJ;AAEFC,SAAAA,EAAU,MAAM;AACd,UAAMC,IAAYJ,EAAIK,SAEhBC,IAAwBF,EAAKG,iBACjCL,CACF,EAAE,CAAC,GAEGM,IAAmBJ,EAAKG,iBAAiBL,CAAiB,GAE1DO,IACJT,MAAQQ,KAAAA,gBAAAA,EAAmBA,EAAiBE,SAAS,KAEjDC,IAAgBA,CAACC,MAAyB;AAG9C,MAFqBA,EAAMC,QAAQ,UAM/BD,EAAME,WAENC,SAASC,kBAAkBV,MAE3BG,EAAqBQ,MAAM,GAC3BL,EAAMM,eAAe,KAGnBH,SAASC,kBAAkBP,MAC7BH,EAAsBW,MAAM,GAC5BL,EAAMM,eAAe;AAAA,IAEzB;AAGF,QAAId;AACGe,aAAAA,EAAAA,iBAAiB,WAAWR,CAAa,GACvC,MAAM;AACNS,QAAAA,EAAAA,oBAAoB,WAAWT,CAAa;AAAA,MAAA;AAAA,EAGvD,GAAG,CAAE,CAAA,GAEEX;AACT;"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/modals.js DELETED
@@ -1,17 +0,0 @@
1
- import { default as e } from "./modules/modals/OnboardingModal/OnboardingModal.js";
2
- import { default as a } from "./modules/modals/PublishModal/PublishModal.js";
3
- import { ResourceModal as l } from "./modules/modals/ResourceModal/ResourceModal.js";
4
- import { BlogPublic as p } from "./modules/modals/ResourceModal/apps/BlogPublic.js";
5
- import { useUpdateMutation as m } from "./modules/modals/ResourceModal/hooks/useUpdateMutation.js";
6
- import { ShareBlog as s } from "./modules/modals/ShareModal/apps/ShareBlog.js";
7
- import { useShareMutation as M } from "./modules/modals/ShareModal/hooks/useShareMutation.js";
8
- export {
9
- p as BlogPublic,
10
- e as OnboardingModal,
11
- a as PublishModal,
12
- l as ResourceModal,
13
- s as ShareBlog,
14
- M as useShareMutation,
15
- m as useUpdateMutation
16
- };
17
- //# sourceMappingURL=modals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modals.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}