@edifice.io/react 2.0.0-develop-rc.7 → 2.0.0-develop-rc.11

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 (614) hide show
  1. package/dist/audience.js +15 -14
  2. package/dist/audience.js.map +1 -0
  3. package/dist/components/ActionBar/ActionBar.js +8 -7
  4. package/dist/components/ActionBar/ActionBar.js.map +1 -0
  5. package/dist/components/Alert/Alert.js +60 -59
  6. package/dist/components/Alert/Alert.js.map +1 -0
  7. package/dist/components/AppHeader/AppHeader.js +19 -18
  8. package/dist/components/AppHeader/AppHeader.js.map +1 -0
  9. package/dist/components/AppIcon/AppIcon.d.ts +1 -1
  10. package/dist/components/AppIcon/AppIcon.js +45 -44
  11. package/dist/components/AppIcon/AppIcon.js.map +1 -0
  12. package/dist/components/Attachment/Attachment.js +14 -13
  13. package/dist/components/Attachment/Attachment.js.map +1 -0
  14. package/dist/components/Avatar/Avatar.js +28 -27
  15. package/dist/components/Avatar/Avatar.js.map +1 -0
  16. package/dist/components/Badge/Badge.js +21 -20
  17. package/dist/components/Badge/Badge.js.map +1 -0
  18. package/dist/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  19. package/dist/components/Breadcrumb/Breadcrumb.js +24 -23
  20. package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -0
  21. package/dist/components/Breadcrumb/BreadcrumbItem.js +12 -11
  22. package/dist/components/Breadcrumb/BreadcrumbItem.js.map +1 -0
  23. package/dist/components/Breadcrumb/BreadcrumbList.js +11 -10
  24. package/dist/components/Breadcrumb/BreadcrumbList.js.map +1 -0
  25. package/dist/components/Breadcrumb/BreadcrumbNav.d.ts +1 -1
  26. package/dist/components/Breadcrumb/BreadcrumbNav.js +16 -15
  27. package/dist/components/Breadcrumb/BreadcrumbNav.js.map +1 -0
  28. package/dist/components/Button/Button.js +33 -32
  29. package/dist/components/Button/Button.js.map +1 -0
  30. package/dist/components/Button/IconButton.js +16 -15
  31. package/dist/components/Button/IconButton.js.map +1 -0
  32. package/dist/components/Button/SearchButton.js +16 -15
  33. package/dist/components/Button/SearchButton.js.map +1 -0
  34. package/dist/components/Card/Card.d.ts +1 -1
  35. package/dist/components/Card/Card.js +48 -47
  36. package/dist/components/Card/Card.js.map +1 -0
  37. package/dist/components/Card/CardBody.js +14 -13
  38. package/dist/components/Card/CardBody.js.map +1 -0
  39. package/dist/components/Card/CardContext.d.ts +1 -1
  40. package/dist/components/Card/CardContext.js +8 -7
  41. package/dist/components/Card/CardContext.js.map +1 -0
  42. package/dist/components/Card/CardFooter.js +6 -5
  43. package/dist/components/Card/CardFooter.js.map +1 -0
  44. package/dist/components/Card/CardHeader.js +15 -14
  45. package/dist/components/Card/CardHeader.js.map +1 -0
  46. package/dist/components/Card/CardImage.js +14 -13
  47. package/dist/components/Card/CardImage.js.map +1 -0
  48. package/dist/components/Card/CardText.js +9 -8
  49. package/dist/components/Card/CardText.js.map +1 -0
  50. package/dist/components/Card/CardTitle.js +9 -8
  51. package/dist/components/Card/CardTitle.js.map +1 -0
  52. package/dist/components/Card/CardUser.js +9 -8
  53. package/dist/components/Card/CardUser.js.map +1 -0
  54. package/dist/components/Checkbox/Checkbox.js +31 -30
  55. package/dist/components/Checkbox/Checkbox.js.map +1 -0
  56. package/dist/components/ColorPicker/ColorPalette.js +5 -4
  57. package/dist/components/ColorPicker/ColorPalette.js.map +1 -0
  58. package/dist/components/ColorPicker/ColorPicker.js +29 -28
  59. package/dist/components/ColorPicker/ColorPicker.js.map +1 -0
  60. package/dist/components/ColorPicker/ColorPickerItem.js +12 -11
  61. package/dist/components/ColorPicker/ColorPickerItem.js.map +1 -0
  62. package/dist/components/Combobox/Combobox.js +36 -35
  63. package/dist/components/Combobox/Combobox.js.map +1 -0
  64. package/dist/components/Combobox/ComboboxTrigger.js +22 -21
  65. package/dist/components/Combobox/ComboboxTrigger.js.map +1 -0
  66. package/dist/components/Dropdown/Dropdown.js +56 -55
  67. package/dist/components/Dropdown/Dropdown.js.map +1 -0
  68. package/dist/components/Dropdown/DropdownCheckboxItem.js +27 -26
  69. package/dist/components/Dropdown/DropdownCheckboxItem.js.map +1 -0
  70. package/dist/components/Dropdown/DropdownContext.js +8 -7
  71. package/dist/components/Dropdown/DropdownContext.js.map +1 -0
  72. package/dist/components/Dropdown/DropdownItem.js +28 -27
  73. package/dist/components/Dropdown/DropdownItem.js.map +1 -0
  74. package/dist/components/Dropdown/DropdownMenu.js +22 -21
  75. package/dist/components/Dropdown/DropdownMenu.js.map +1 -0
  76. package/dist/components/Dropdown/DropdownMenuGroup.js +10 -9
  77. package/dist/components/Dropdown/DropdownMenuGroup.js.map +1 -0
  78. package/dist/components/Dropdown/DropdownRadioItem.js +27 -26
  79. package/dist/components/Dropdown/DropdownRadioItem.js.map +1 -0
  80. package/dist/components/Dropdown/DropdownSeparator.js +4 -3
  81. package/dist/components/Dropdown/DropdownSeparator.js.map +1 -0
  82. package/dist/components/Dropdown/DropdownTrigger.js +29 -28
  83. package/dist/components/Dropdown/DropdownTrigger.js.map +1 -0
  84. package/dist/components/Dropzone/Dropzone.js +48 -47
  85. package/dist/components/Dropzone/Dropzone.js.map +1 -0
  86. package/dist/components/Dropzone/DropzoneContext.js +9 -8
  87. package/dist/components/Dropzone/DropzoneContext.js.map +1 -0
  88. package/dist/components/Dropzone/DropzoneDrag.js +8 -7
  89. package/dist/components/Dropzone/DropzoneDrag.js.map +1 -0
  90. package/dist/components/Dropzone/DropzoneFile.js +26 -25
  91. package/dist/components/Dropzone/DropzoneFile.js.map +1 -0
  92. package/dist/components/Dropzone/DropzoneImport.js +21 -20
  93. package/dist/components/Dropzone/DropzoneImport.js.map +1 -0
  94. package/dist/components/EmptyScreen/EmptyScreen.js +17 -16
  95. package/dist/components/EmptyScreen/EmptyScreen.js.map +1 -0
  96. package/dist/components/FileCard/FileCard.d.ts +1 -1
  97. package/dist/components/FileCard/FileCard.js +38 -37
  98. package/dist/components/FileCard/FileCard.js.map +1 -0
  99. package/dist/components/FileCard/FileIcon.d.ts +1 -1
  100. package/dist/components/FileCard/FileIcon.js +12 -11
  101. package/dist/components/FileCard/FileIcon.js.map +1 -0
  102. package/dist/components/Form/FormContext.js +8 -7
  103. package/dist/components/Form/FormContext.js.map +1 -0
  104. package/dist/components/Form/FormControl.js +31 -30
  105. package/dist/components/Form/FormControl.js.map +1 -0
  106. package/dist/components/Form/FormText.js +13 -12
  107. package/dist/components/Form/FormText.js.map +1 -0
  108. package/dist/components/Grid/Grid.js +28 -27
  109. package/dist/components/Grid/Grid.js.map +1 -0
  110. package/dist/components/Heading/Heading.js +15 -14
  111. package/dist/components/Heading/Heading.js.map +1 -0
  112. package/dist/components/Icon/Icon.js +9 -8
  113. package/dist/components/Icon/Icon.js.map +1 -0
  114. package/dist/components/Image/Image.js +40 -39
  115. package/dist/components/Image/Image.js.map +1 -0
  116. package/dist/components/ImagePicker/ImagePicker.d.ts +1 -1
  117. package/dist/components/ImagePicker/ImagePicker.js +52 -51
  118. package/dist/components/ImagePicker/ImagePicker.js.map +1 -0
  119. package/dist/components/Input/Input.js +29 -28
  120. package/dist/components/Input/Input.js.map +1 -0
  121. package/dist/components/Label/Label.js +31 -30
  122. package/dist/components/Label/Label.js.map +1 -0
  123. package/dist/components/Loading/Loading.js +24 -23
  124. package/dist/components/Loading/Loading.js.map +1 -0
  125. package/dist/components/LoadingScreen/LoadingScreen.js +21 -20
  126. package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -0
  127. package/dist/components/Logo/Logo.js +13 -12
  128. package/dist/components/Logo/Logo.js.map +1 -0
  129. package/dist/components/Menu/Menu.js +40 -39
  130. package/dist/components/Menu/Menu.js.map +1 -0
  131. package/dist/components/Menu/MenuButton.js +18 -17
  132. package/dist/components/Menu/MenuButton.js.map +1 -0
  133. package/dist/components/Menu/MenuContext.js +9 -8
  134. package/dist/components/Menu/MenuContext.js.map +1 -0
  135. package/dist/components/Menu/MenuItem.js +15 -14
  136. package/dist/components/Menu/MenuItem.js.map +1 -0
  137. package/dist/components/Modal/Modal.js +50 -49
  138. package/dist/components/Modal/Modal.js.map +1 -0
  139. package/dist/components/Modal/ModalBody.js +12 -11
  140. package/dist/components/Modal/ModalBody.js.map +1 -0
  141. package/dist/components/Modal/ModalContext.js +9 -8
  142. package/dist/components/Modal/ModalContext.js.map +1 -0
  143. package/dist/components/Modal/ModalFooter.js +4 -3
  144. package/dist/components/Modal/ModalFooter.js.map +1 -0
  145. package/dist/components/Modal/ModalHeader.js +23 -22
  146. package/dist/components/Modal/ModalHeader.js.map +1 -0
  147. package/dist/components/Modal/ModalSubtitle.js +4 -3
  148. package/dist/components/Modal/ModalSubtitle.js.map +1 -0
  149. package/dist/components/Popover/Popover.js +34 -33
  150. package/dist/components/Popover/Popover.js.map +1 -0
  151. package/dist/components/Radio/Radio.js +27 -26
  152. package/dist/components/Radio/Radio.js.map +1 -0
  153. package/dist/components/SearchBar/SearchBar.js +30 -29
  154. package/dist/components/SearchBar/SearchBar.js.map +1 -0
  155. package/dist/components/Select/Select.js +32 -31
  156. package/dist/components/Select/Select.js.map +1 -0
  157. package/dist/components/Select/SelectTrigger.js +5 -4
  158. package/dist/components/Select/SelectTrigger.js.map +1 -0
  159. package/dist/components/Table/TableExplorer.js +8 -7
  160. package/dist/components/Table/TableExplorer.js.map +1 -0
  161. package/dist/components/Tabs/Tabs.js +59 -58
  162. package/dist/components/Tabs/Tabs.js.map +1 -0
  163. package/dist/components/Tabs/TabsContext.js +9 -8
  164. package/dist/components/Tabs/TabsContext.js.map +1 -0
  165. package/dist/components/Tabs/TabsItem.js +21 -20
  166. package/dist/components/Tabs/TabsItem.js.map +1 -0
  167. package/dist/components/Tabs/TabsList.js +19 -18
  168. package/dist/components/Tabs/TabsList.js.map +1 -0
  169. package/dist/components/Tabs/TabsPanel.js +10 -9
  170. package/dist/components/Tabs/TabsPanel.js.map +1 -0
  171. package/dist/components/TextArea/TextArea.js +32 -31
  172. package/dist/components/TextArea/TextArea.js.map +1 -0
  173. package/dist/components/TextArea/TextareaCounter.js +7 -6
  174. package/dist/components/TextArea/TextareaCounter.js.map +1 -0
  175. package/dist/components/Toolbar/Toolbar.js +61 -60
  176. package/dist/components/Toolbar/Toolbar.js.map +1 -0
  177. package/dist/components/Tooltip/Tooltip.js +29 -28
  178. package/dist/components/Tooltip/Tooltip.js.map +1 -0
  179. package/dist/components/TreeView/TreeItem.js +47 -46
  180. package/dist/components/TreeView/TreeItem.js.map +1 -0
  181. package/dist/components/TreeView/TreeView.js +34 -33
  182. package/dist/components/TreeView/TreeView.js.map +1 -0
  183. package/dist/components/TreeView/hooks/useTreeItemEvents.js +19 -18
  184. package/dist/components/TreeView/hooks/useTreeItemEvents.js.map +1 -0
  185. package/dist/components/UploadCard/UploadCard.js +53 -52
  186. package/dist/components/UploadCard/UploadCard.js.map +1 -0
  187. package/dist/components/VisuallyHidden/VisuallyHidden.js +8 -7
  188. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
  189. package/dist/core/OdeClientProvider/OdeClientProvider.d.ts +1 -1
  190. package/dist/core/OdeClientProvider/OdeClientProvider.js +45 -44
  191. package/dist/core/OdeClientProvider/OdeClientProvider.js.map +1 -0
  192. package/dist/core/ThemeProvider/ThemeProvider.d.ts +1 -1
  193. package/dist/core/ThemeProvider/ThemeProvider.js +36 -35
  194. package/dist/core/ThemeProvider/ThemeProvider.js.map +1 -0
  195. package/dist/core/useAvatar/useAvatar.d.ts +1 -1
  196. package/dist/core/useAvatar/useAvatar.js +22 -21
  197. package/dist/core/useAvatar/useAvatar.js.map +1 -0
  198. package/dist/core/useBookmark/useBookmark.d.ts +1 -1
  199. package/dist/core/useBookmark/useBookmark.js +10 -9
  200. package/dist/core/useBookmark/useBookmark.js.map +1 -0
  201. package/dist/core/useConf/useConf.d.ts +1 -1
  202. package/dist/core/useConf/useConf.js +8 -7
  203. package/dist/core/useConf/useConf.js.map +1 -0
  204. package/dist/core/useConversation/useConversation.js +29 -28
  205. package/dist/core/useConversation/useConversation.js.map +1 -0
  206. package/dist/core/useCookiesConsent/useCookiesConsent.js +17 -16
  207. package/dist/core/useCookiesConsent/useCookiesConsent.js.map +1 -0
  208. package/dist/core/useDate/useDate.js +36 -35
  209. package/dist/core/useDate/useDate.js.map +1 -0
  210. package/dist/core/useHasWorkflow/useHasWorkflow.js +15 -14
  211. package/dist/core/useHasWorkflow/useHasWorkflow.js.map +1 -0
  212. package/dist/core/useHeader/useHeader.d.ts +1 -1
  213. package/dist/core/useHeader/useHeader.js +42 -41
  214. package/dist/core/useHeader/useHeader.js.map +1 -0
  215. package/dist/core/useHttpErrorToast/useHttpErrorToast.js +18 -17
  216. package/dist/core/useHttpErrorToast/useHttpErrorToast.js.map +1 -0
  217. package/dist/core/useIsAdml/useIsAdml.js +12 -11
  218. package/dist/core/useIsAdml/useIsAdml.js.map +1 -0
  219. package/dist/core/useLibraryUrl/useLibraryUrl.js +16 -15
  220. package/dist/core/useLibraryUrl/useLibraryUrl.js.map +1 -0
  221. package/dist/core/useMediaLibrary/useMediaLibrary.d.ts +1 -1
  222. package/dist/core/useMediaLibrary/useMediaLibrary.js +32 -31
  223. package/dist/core/useMediaLibrary/useMediaLibrary.js.map +1 -0
  224. package/dist/core/useOdeIcons/useOdeIcons.d.ts +1 -1
  225. package/dist/core/useOdeIcons/useOdeIcons.js +38 -37
  226. package/dist/core/useOdeIcons/useOdeIcons.js.map +1 -0
  227. package/dist/core/usePaths/usePaths.js +3 -2
  228. package/dist/core/usePaths/usePaths.js.map +1 -0
  229. package/dist/core/usePreferences/usePreferences.js +6 -5
  230. package/dist/core/usePreferences/usePreferences.js.map +1 -0
  231. package/dist/core/useResource/useResource.d.ts +1 -0
  232. package/dist/core/useResource/useResource.js +15 -14
  233. package/dist/core/useResource/useResource.js.map +1 -0
  234. package/dist/core/useResourceSearch/useResourceSearch.d.ts +1 -1
  235. package/dist/core/useResourceSearch/useResourceSearch.js +23 -22
  236. package/dist/core/useResourceSearch/useResourceSearch.js.map +1 -0
  237. package/dist/core/useSession/useSession.js +7 -6
  238. package/dist/core/useSession/useSession.js.map +1 -0
  239. package/dist/core/useTrashedResource/useTrashedResource.js +18 -17
  240. package/dist/core/useTrashedResource/useTrashedResource.js.map +1 -0
  241. package/dist/core/useUpload/useUpload.d.ts +5 -4
  242. package/dist/core/useUpload/useUpload.js +69 -68
  243. package/dist/core/useUpload/useUpload.js.map +1 -0
  244. package/dist/core/useUploadFiles/useUploadFiles.d.ts +6 -6
  245. package/dist/core/useUploadFiles/useUploadFiles.js +82 -81
  246. package/dist/core/useUploadFiles/useUploadFiles.js.map +1 -0
  247. package/dist/core/useUser/useUser.d.ts +1 -1
  248. package/dist/core/useUser/useUser.js +16 -15
  249. package/dist/core/useUser/useUser.js.map +1 -0
  250. package/dist/core/useWorkspaceFile/useWorkspaceFile.d.ts +5 -5
  251. package/dist/core/useWorkspaceFile/useWorkspaceFile.js +31 -30
  252. package/dist/core/useWorkspaceFile/useWorkspaceFile.js.map +1 -0
  253. package/dist/core/useWorkspaceSearch/useWorkspaceSearch.d.ts +2 -2
  254. package/dist/core/useWorkspaceSearch/useWorkspaceSearch.js +42 -41
  255. package/dist/core/useWorkspaceSearch/useWorkspaceSearch.js.map +1 -0
  256. package/dist/core/useXitiTrackPageLoad/useXitiTrackPageLoad.js +18 -17
  257. package/dist/core/useXitiTrackPageLoad/useXitiTrackPageLoad.js.map +1 -0
  258. package/dist/core/useZendeskGuide/useZendeskGuide.js +47 -46
  259. package/dist/core/useZendeskGuide/useZendeskGuide.js.map +1 -0
  260. package/dist/editor.js +57 -56
  261. package/dist/editor.js.map +1 -0
  262. package/dist/hooks/useBrowserInfo/useBrowserInfo.js +12 -11
  263. package/dist/hooks/useBrowserInfo/useBrowserInfo.js.map +1 -0
  264. package/dist/hooks/useClickOutside/useClickOutside.js +19 -18
  265. package/dist/hooks/useClickOutside/useClickOutside.js.map +1 -0
  266. package/dist/hooks/useDebounce/useDebounce.js +11 -10
  267. package/dist/hooks/useDebounce/useDebounce.js.map +1 -0
  268. package/dist/hooks/useDropdown/useDropdown.js +96 -95
  269. package/dist/hooks/useDropdown/useDropdown.js.map +1 -0
  270. package/dist/hooks/useDropzone/useDropzone.js +53 -52
  271. package/dist/hooks/useDropzone/useDropzone.js.map +1 -0
  272. package/dist/hooks/useHover/useHover.js +15 -14
  273. package/dist/hooks/useHover/useHover.js.map +1 -0
  274. package/dist/hooks/useImage/useImage.js +14 -13
  275. package/dist/hooks/useImage/useImage.js.map +1 -0
  276. package/dist/hooks/useImageResizer/useImageResizer.js +32 -31
  277. package/dist/hooks/useImageResizer/useImageResizer.js.map +1 -0
  278. package/dist/hooks/useKeyPress/useKeyPress.js +11 -10
  279. package/dist/hooks/useKeyPress/useKeyPress.js.map +1 -0
  280. package/dist/hooks/useScrollToTop/useScrollToTop.js +5 -4
  281. package/dist/hooks/useScrollToTop/useScrollToTop.js.map +1 -0
  282. package/dist/hooks/useThumbnail/useThumbnail.js +22 -21
  283. package/dist/hooks/useThumbnail/useThumbnail.js.map +1 -0
  284. package/dist/hooks/useTitle/useTitle.js +8 -7
  285. package/dist/hooks/useTitle/useTitle.js.map +1 -0
  286. package/dist/hooks/useToast/useToast.js +26 -25
  287. package/dist/hooks/useToast/useToast.js.map +1 -0
  288. package/dist/hooks/useToggle/useToggle.js +7 -6
  289. package/dist/hooks/useToggle/useToggle.js.map +1 -0
  290. package/dist/hooks/useTrapFocus/useTrapFocus.js +12 -11
  291. package/dist/hooks/useTrapFocus/useTrapFocus.js.map +1 -0
  292. package/dist/index.js +226 -225
  293. package/dist/index.js.map +1 -0
  294. package/dist/modals.js +15 -14
  295. package/dist/modals.js.map +1 -0
  296. package/dist/modules/audience/ReactionChoice.d.ts +1 -1
  297. package/dist/modules/audience/ReactionChoice.js +24 -23
  298. package/dist/modules/audience/ReactionChoice.js.map +1 -0
  299. package/dist/modules/audience/ReactionModal.Card.d.ts +1 -1
  300. package/dist/modules/audience/ReactionModal.Card.js +26 -25
  301. package/dist/modules/audience/ReactionModal.Card.js.map +1 -0
  302. package/dist/modules/audience/ReactionModal.d.ts +1 -1
  303. package/dist/modules/audience/ReactionModal.js +59 -58
  304. package/dist/modules/audience/ReactionModal.js.map +1 -0
  305. package/dist/modules/audience/ReactionSummary.d.ts +1 -1
  306. package/dist/modules/audience/ReactionSummary.js +19 -18
  307. package/dist/modules/audience/ReactionSummary.js.map +1 -0
  308. package/dist/modules/audience/ViewsByProfileCard.d.ts +1 -1
  309. package/dist/modules/audience/ViewsByProfileCard.js +23 -22
  310. package/dist/modules/audience/ViewsByProfileCard.js.map +1 -0
  311. package/dist/modules/audience/ViewsCounter.js +14 -13
  312. package/dist/modules/audience/ViewsCounter.js.map +1 -0
  313. package/dist/modules/audience/ViewsModal.d.ts +1 -1
  314. package/dist/modules/audience/ViewsModal.js +32 -31
  315. package/dist/modules/audience/ViewsModal.js.map +1 -0
  316. package/dist/modules/audience/hooks/useReactionIcons.d.ts +1 -1
  317. package/dist/modules/audience/hooks/useReactionIcons.js +14 -13
  318. package/dist/modules/audience/hooks/useReactionIcons.js.map +1 -0
  319. package/dist/modules/audience/hooks/useReactions.d.ts +6 -4
  320. package/dist/modules/audience/hooks/useReactions.js +25 -24
  321. package/dist/modules/audience/hooks/useReactions.js.map +1 -0
  322. package/dist/modules/audience/hooks/useViews.d.ts +3 -3
  323. package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js +59 -58
  324. package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js.map +1 -0
  325. package/dist/modules/editor/components/Editor/Editor.d.ts +1 -1
  326. package/dist/modules/editor/components/Editor/Editor.js +70 -69
  327. package/dist/modules/editor/components/Editor/Editor.js.map +1 -0
  328. package/dist/modules/editor/components/Editor/MathsModal.js +38 -37
  329. package/dist/modules/editor/components/Editor/MathsModal.js.map +1 -0
  330. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.js +15 -14
  331. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.js.map +1 -0
  332. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.js +38 -37
  333. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.js.map +1 -0
  334. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.js +34 -33
  335. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.js.map +1 -0
  336. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.js +13 -12
  337. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.js.map +1 -0
  338. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.js +37 -36
  339. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.js.map +1 -0
  340. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.js +36 -35
  341. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.js.map +1 -0
  342. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.js +31 -30
  343. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.js.map +1 -0
  344. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js +96 -95
  345. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js.map +1 -0
  346. package/dist/modules/editor/components/NodeView/AttachmentNodeView.js +6 -5
  347. package/dist/modules/editor/components/NodeView/AttachmentNodeView.js.map +1 -0
  348. package/dist/modules/editor/components/NodeView/AudioNodeView.js +6 -5
  349. package/dist/modules/editor/components/NodeView/AudioNodeView.js.map +1 -0
  350. package/dist/modules/editor/components/NodeView/ImageNodeView.js +6 -5
  351. package/dist/modules/editor/components/NodeView/ImageNodeView.js.map +1 -0
  352. package/dist/modules/editor/components/NodeView/LinkerNodeView.js +6 -5
  353. package/dist/modules/editor/components/NodeView/LinkerNodeView.js.map +1 -0
  354. package/dist/modules/editor/components/NodeView/VideoNodeView.js +6 -5
  355. package/dist/modules/editor/components/NodeView/VideoNodeView.js.map +1 -0
  356. package/dist/modules/editor/components/Renderer/AttachmentRenderer.js +25 -24
  357. package/dist/modules/editor/components/Renderer/AttachmentRenderer.js.map +1 -0
  358. package/dist/modules/editor/components/Renderer/AudioRenderer.js +8 -7
  359. package/dist/modules/editor/components/Renderer/AudioRenderer.js.map +1 -0
  360. package/dist/modules/editor/components/Renderer/LinkerRenderer.js +27 -26
  361. package/dist/modules/editor/components/Renderer/LinkerRenderer.js.map +1 -0
  362. package/dist/modules/editor/components/Renderer/MediaRenderer.js +38 -37
  363. package/dist/modules/editor/components/Renderer/MediaRenderer.js.map +1 -0
  364. package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.js +3 -2
  365. package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.js.map +1 -0
  366. package/dist/modules/editor/components/Toolbar/LinkToolbar.js +32 -31
  367. package/dist/modules/editor/components/Toolbar/LinkToolbar.js.map +1 -0
  368. package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.js +22 -21
  369. package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.js.map +1 -0
  370. package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.js +31 -30
  371. package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.js.map +1 -0
  372. package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.js +21 -20
  373. package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.js.map +1 -0
  374. package/dist/modules/editor/components/Toolbar/TableToolbar.js +40 -39
  375. package/dist/modules/editor/components/Toolbar/TableToolbar.js.map +1 -0
  376. package/dist/modules/editor/hooks/useActionOptions.js +48 -47
  377. package/dist/modules/editor/hooks/useActionOptions.js.map +1 -0
  378. package/dist/modules/editor/hooks/useCommentEditor.js +28 -27
  379. package/dist/modules/editor/hooks/useCommentEditor.js.map +1 -0
  380. package/dist/modules/editor/hooks/useEditorContext.js +9 -8
  381. package/dist/modules/editor/hooks/useEditorContext.js.map +1 -0
  382. package/dist/modules/editor/hooks/useImageModal.d.ts +2 -1
  383. package/dist/modules/editor/hooks/useImageModal.js +33 -32
  384. package/dist/modules/editor/hooks/useImageModal.js.map +1 -0
  385. package/dist/modules/editor/hooks/useImageSelection.js +32 -31
  386. package/dist/modules/editor/hooks/useImageSelection.js.map +1 -0
  387. package/dist/modules/editor/hooks/useLinkToolbar.js +25 -24
  388. package/dist/modules/editor/hooks/useLinkToolbar.js.map +1 -0
  389. package/dist/modules/editor/hooks/useMathsModal.js +10 -9
  390. package/dist/modules/editor/hooks/useMathsModal.js.map +1 -0
  391. package/dist/modules/editor/hooks/useMathsStyles.js +14 -13
  392. package/dist/modules/editor/hooks/useMathsStyles.js.map +1 -0
  393. package/dist/modules/editor/hooks/useMediaLibraryEditor.d.ts +1 -1
  394. package/dist/modules/editor/hooks/useMediaLibraryEditor.js +97 -96
  395. package/dist/modules/editor/hooks/useMediaLibraryEditor.js.map +1 -0
  396. package/dist/modules/editor/hooks/useResizeMedia.js +32 -31
  397. package/dist/modules/editor/hooks/useResizeMedia.js.map +1 -0
  398. package/dist/modules/editor/hooks/useSpeechRecognition.js +13 -12
  399. package/dist/modules/editor/hooks/useSpeechRecognition.js.map +1 -0
  400. package/dist/modules/editor/hooks/useSpeechSynthetisis.js +14 -13
  401. package/dist/modules/editor/hooks/useSpeechSynthetisis.js.map +1 -0
  402. package/dist/modules/editor/hooks/useTipTapEditor.js +58 -57
  403. package/dist/modules/editor/hooks/useTipTapEditor.js.map +1 -0
  404. package/dist/modules/editor/utils/has-extension.js +3 -2
  405. package/dist/modules/editor/utils/has-extension.js.map +1 -0
  406. package/dist/modules/editor/utils/has-mark.js +3 -2
  407. package/dist/modules/editor/utils/has-mark.js.map +1 -0
  408. package/dist/modules/editor/utils/has-text-style.js +4 -3
  409. package/dist/modules/editor/utils/has-text-style.js.map +1 -0
  410. package/dist/modules/modals/OnboardingModal/OnboardingModal.js +49 -48
  411. package/dist/modules/modals/OnboardingModal/OnboardingModal.js.map +1 -0
  412. package/dist/modules/modals/OnboardingModal/useOnboardingModal.js +19 -18
  413. package/dist/modules/modals/OnboardingModal/useOnboardingModal.js.map +1 -0
  414. package/dist/modules/modals/PublishModal/PublishModal.d.ts +1 -1
  415. package/dist/modules/modals/PublishModal/PublishModal.js +98 -97
  416. package/dist/modules/modals/PublishModal/PublishModal.js.map +1 -0
  417. package/dist/modules/modals/PublishModal/components/ActivitiesDropdown.js +20 -19
  418. package/dist/modules/modals/PublishModal/components/ActivitiesDropdown.js.map +1 -0
  419. package/dist/modules/modals/PublishModal/components/AgeSelect.js +15 -14
  420. package/dist/modules/modals/PublishModal/components/AgeSelect.js.map +1 -0
  421. package/dist/modules/modals/PublishModal/components/LangSelect.js +12 -11
  422. package/dist/modules/modals/PublishModal/components/LangSelect.js.map +1 -0
  423. package/dist/modules/modals/PublishModal/components/PublishModalFooter.js +17 -16
  424. package/dist/modules/modals/PublishModal/components/PublishModalFooter.js.map +1 -0
  425. package/dist/modules/modals/PublishModal/components/SubjectsDropdown.js +20 -19
  426. package/dist/modules/modals/PublishModal/components/SubjectsDropdown.js.map +1 -0
  427. package/dist/modules/modals/PublishModal/components/ToastError.js +18 -17
  428. package/dist/modules/modals/PublishModal/components/ToastError.js.map +1 -0
  429. package/dist/modules/modals/PublishModal/components/ToastSuccess.d.ts +1 -1
  430. package/dist/modules/modals/PublishModal/components/ToastSuccess.js +13 -12
  431. package/dist/modules/modals/PublishModal/components/ToastSuccess.js.map +1 -0
  432. package/dist/modules/modals/PublishModal/constants/ageOptions.js +3 -2
  433. package/dist/modules/modals/PublishModal/constants/ageOptions.js.map +1 -0
  434. package/dist/modules/modals/PublishModal/hooks/useActivitiesOptions.js +5 -4
  435. package/dist/modules/modals/PublishModal/hooks/useActivitiesOptions.js.map +1 -0
  436. package/dist/modules/modals/PublishModal/hooks/useLanguageOptions.js +17 -16
  437. package/dist/modules/modals/PublishModal/hooks/useLanguageOptions.js.map +1 -0
  438. package/dist/modules/modals/PublishModal/hooks/usePublishModal.d.ts +1 -1
  439. package/dist/modules/modals/PublishModal/hooks/usePublishModal.js +80 -79
  440. package/dist/modules/modals/PublishModal/hooks/usePublishModal.js.map +1 -0
  441. package/dist/modules/modals/PublishModal/hooks/useSubjectsOptions.js +42 -41
  442. package/dist/modules/modals/PublishModal/hooks/useSubjectsOptions.js.map +1 -0
  443. package/dist/modules/modals/ResourceModal/ResourceModal.d.ts +1 -1
  444. package/dist/modules/modals/ResourceModal/ResourceModal.js +116 -115
  445. package/dist/modules/modals/ResourceModal/ResourceModal.js.map +1 -0
  446. package/dist/modules/modals/ResourceModal/apps/BlogPublic.d.ts +1 -1
  447. package/dist/modules/modals/ResourceModal/apps/BlogPublic.js +48 -47
  448. package/dist/modules/modals/ResourceModal/apps/BlogPublic.js.map +1 -0
  449. package/dist/modules/modals/ResourceModal/hooks/useSlug.d.ts +1 -1
  450. package/dist/modules/modals/ResourceModal/hooks/useSlug.js +33 -32
  451. package/dist/modules/modals/ResourceModal/hooks/useSlug.js.map +1 -0
  452. package/dist/modules/modals/ResourceModal/hooks/useThumb.d.ts +1 -1
  453. package/dist/modules/modals/ResourceModal/hooks/useThumb.js +13 -12
  454. package/dist/modules/modals/ResourceModal/hooks/useThumb.js.map +1 -0
  455. package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.d.ts +1 -1
  456. package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.js +11 -10
  457. package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.js.map +1 -0
  458. package/dist/modules/modals/ShareModal/ShareBookmarkLine.d.ts +2 -2
  459. package/dist/modules/modals/ShareModal/ShareModal.d.ts +1 -1
  460. package/dist/modules/modals/ShareModal/apps/ShareBlog.d.ts +1 -1
  461. package/dist/modules/modals/ShareModal/apps/ShareBlog.js +34 -33
  462. package/dist/modules/modals/ShareModal/apps/ShareBlog.js.map +1 -0
  463. package/dist/modules/modals/ShareModal/hooks/useSearch.d.ts +1 -1
  464. package/dist/modules/modals/ShareModal/hooks/useShare.d.ts +2 -2
  465. package/dist/modules/modals/ShareModal/hooks/useShareBookmark.d.ts +1 -1
  466. package/dist/modules/modals/ShareModal/hooks/useShareMutation.d.ts +1 -1
  467. package/dist/modules/modals/ShareModal/hooks/useShareMutation.js +13 -12
  468. package/dist/modules/modals/ShareModal/hooks/useShareMutation.js.map +1 -0
  469. package/dist/modules/modals/ShareModal/utils/hasRight.d.ts +1 -0
  470. package/dist/modules/modals/ShareModal/utils/showShareRightLine.d.ts +1 -0
  471. package/dist/modules/multimedia/AudioRecorder/AudioRecorder.d.ts +1 -1
  472. package/dist/modules/multimedia/AudioRecorder/AudioRecorder.js +43 -42
  473. package/dist/modules/multimedia/AudioRecorder/AudioRecorder.js.map +1 -0
  474. package/dist/modules/multimedia/AudioRecorder/AudioRecorderTimer.js +19 -18
  475. package/dist/modules/multimedia/AudioRecorder/AudioRecorderTimer.js.map +1 -0
  476. package/dist/modules/multimedia/AudioRecorder/useAudioRecorder.d.ts +1 -1
  477. package/dist/modules/multimedia/AudioRecorder/useAudioRecorder.js +158 -157
  478. package/dist/modules/multimedia/AudioRecorder/useAudioRecorder.js.map +1 -0
  479. package/dist/modules/multimedia/Embed/Embed.js +22 -21
  480. package/dist/modules/multimedia/Embed/Embed.js.map +1 -0
  481. package/dist/modules/multimedia/ImageEditor/components/ImageEditor.js +79 -78
  482. package/dist/modules/multimedia/ImageEditor/components/ImageEditor.js.map +1 -0
  483. package/dist/modules/multimedia/ImageEditor/components/ImageEditorToolbar.js +38 -37
  484. package/dist/modules/multimedia/ImageEditor/components/ImageEditorToolbar.js.map +1 -0
  485. package/dist/modules/multimedia/ImageEditor/effects/blur.js +50 -49
  486. package/dist/modules/multimedia/ImageEditor/effects/blur.js.map +1 -0
  487. package/dist/modules/multimedia/ImageEditor/effects/crop.js +100 -99
  488. package/dist/modules/multimedia/ImageEditor/effects/crop.js.map +1 -0
  489. package/dist/modules/multimedia/ImageEditor/effects/misc.js +108 -107
  490. package/dist/modules/multimedia/ImageEditor/effects/misc.js.map +1 -0
  491. package/dist/modules/multimedia/ImageEditor/effects/resize.js +97 -96
  492. package/dist/modules/multimedia/ImageEditor/effects/resize.js.map +1 -0
  493. package/dist/modules/multimedia/ImageEditor/effects/rotate.js +26 -25
  494. package/dist/modules/multimedia/ImageEditor/effects/rotate.js.map +1 -0
  495. package/dist/modules/multimedia/ImageEditor/hooks/useHistoryTool.js +39 -38
  496. package/dist/modules/multimedia/ImageEditor/hooks/useHistoryTool.js.map +1 -0
  497. package/dist/modules/multimedia/ImageEditor/hooks/useImageEditor.js +57 -56
  498. package/dist/modules/multimedia/ImageEditor/hooks/useImageEditor.js.map +1 -0
  499. package/dist/modules/multimedia/ImageEditor/hooks/useImageEffects.js +29 -28
  500. package/dist/modules/multimedia/ImageEditor/hooks/useImageEffects.js.map +1 -0
  501. package/dist/modules/multimedia/ImageEditor/utils/aggregate.js +10 -9
  502. package/dist/modules/multimedia/ImageEditor/utils/aggregate.js.map +1 -0
  503. package/dist/modules/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.d.ts +1 -1
  504. package/dist/modules/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js +34 -33
  505. package/dist/modules/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js.map +1 -0
  506. package/dist/modules/multimedia/Linker/ExternalLinker.js +35 -34
  507. package/dist/modules/multimedia/Linker/ExternalLinker.js.map +1 -0
  508. package/dist/modules/multimedia/Linker/InternalLinker.d.ts +1 -1
  509. package/dist/modules/multimedia/Linker/InternalLinker.js +88 -87
  510. package/dist/modules/multimedia/Linker/InternalLinker.js.map +1 -0
  511. package/dist/modules/multimedia/LinkerCard/LinkerCard.d.ts +1 -1
  512. package/dist/modules/multimedia/LinkerCard/LinkerCard.js +32 -31
  513. package/dist/modules/multimedia/LinkerCard/LinkerCard.js.map +1 -0
  514. package/dist/modules/multimedia/MediaLibrary/MediaLibrary.d.ts +1 -1
  515. package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js +119 -118
  516. package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js.map +1 -0
  517. package/dist/modules/multimedia/MediaLibrary/MediaLibraryContext.d.ts +4 -4
  518. package/dist/modules/multimedia/MediaLibrary/MediaLibraryContext.js +9 -8
  519. package/dist/modules/multimedia/MediaLibrary/MediaLibraryContext.js.map +1 -0
  520. package/dist/modules/multimedia/MediaLibrary/innertabs/Audio.js +16 -15
  521. package/dist/modules/multimedia/MediaLibrary/innertabs/Audio.js.map +1 -0
  522. package/dist/modules/multimedia/MediaLibrary/innertabs/ExternalLink.js +13 -12
  523. package/dist/modules/multimedia/MediaLibrary/innertabs/ExternalLink.js.map +1 -0
  524. package/dist/modules/multimedia/MediaLibrary/innertabs/Iframe.js +10 -9
  525. package/dist/modules/multimedia/MediaLibrary/innertabs/Iframe.js.map +1 -0
  526. package/dist/modules/multimedia/MediaLibrary/innertabs/InternalLink.d.ts +1 -1
  527. package/dist/modules/multimedia/MediaLibrary/innertabs/InternalLink.js +29 -28
  528. package/dist/modules/multimedia/MediaLibrary/innertabs/InternalLink.js.map +1 -0
  529. package/dist/modules/multimedia/MediaLibrary/innertabs/Upload.js +23 -22
  530. package/dist/modules/multimedia/MediaLibrary/innertabs/Upload.js.map +1 -0
  531. package/dist/modules/multimedia/MediaLibrary/innertabs/Video.js +18 -17
  532. package/dist/modules/multimedia/MediaLibrary/innertabs/Video.js.map +1 -0
  533. package/dist/modules/multimedia/MediaLibrary/innertabs/VideoEmbedder.js +10 -9
  534. package/dist/modules/multimedia/MediaLibrary/innertabs/VideoEmbedder.js.map +1 -0
  535. package/dist/modules/multimedia/MediaLibrary/innertabs/Workspace.js +17 -16
  536. package/dist/modules/multimedia/MediaLibrary/innertabs/Workspace.js.map +1 -0
  537. package/dist/modules/multimedia/MediaLibrary/innertabs/index.js +19 -18
  538. package/dist/modules/multimedia/MediaLibrary/innertabs/index.js.map +1 -0
  539. package/dist/modules/multimedia/UploadFiles/UploadFiles.d.ts +2 -2
  540. package/dist/modules/multimedia/UploadFiles/UploadFiles.js +42 -41
  541. package/dist/modules/multimedia/UploadFiles/UploadFiles.js.map +1 -0
  542. package/dist/modules/multimedia/VideoEmbed/VideoEmbed.js +60 -59
  543. package/dist/modules/multimedia/VideoEmbed/VideoEmbed.js.map +1 -0
  544. package/dist/modules/multimedia/VideoRecorder/VideoRecorder.d.ts +1 -1
  545. package/dist/modules/multimedia/VideoRecorder/VideoRecorder.js +153 -152
  546. package/dist/modules/multimedia/VideoRecorder/VideoRecorder.js.map +1 -0
  547. package/dist/modules/multimedia/Workspace/Workspace.d.ts +1 -1
  548. package/dist/modules/multimedia/Workspace/Workspace.js +110 -109
  549. package/dist/modules/multimedia/Workspace/Workspace.js.map +1 -0
  550. package/dist/multimedia.js +19 -18
  551. package/dist/multimedia.js.map +1 -0
  552. package/dist/portal/Header/Badge.js +6 -5
  553. package/dist/portal/Header/Badge.js.map +1 -0
  554. package/dist/portal/Header/Header.js +138 -137
  555. package/dist/portal/Header/Header.js.map +1 -0
  556. package/dist/portal/Header/NavItem.js +12 -11
  557. package/dist/portal/Header/NavItem.js.map +1 -0
  558. package/dist/portal/Header/NavLink.js +15 -14
  559. package/dist/portal/Header/NavLink.js.map +1 -0
  560. package/dist/portal/Header/Navbar.js +10 -9
  561. package/dist/portal/Header/Navbar.js.map +1 -0
  562. package/dist/portal/Header/NavbarNav.js +10 -9
  563. package/dist/portal/Header/NavbarNav.js.map +1 -0
  564. package/dist/portal/Header/WidgetApps.d.ts +1 -1
  565. package/dist/portal/Header/WidgetApps.js +17 -16
  566. package/dist/portal/Header/WidgetApps.js.map +1 -0
  567. package/dist/portal/Help/Help.js +19 -18
  568. package/dist/portal/Help/Help.js.map +1 -0
  569. package/dist/portal/Help/hooks/useHelp.js +64 -63
  570. package/dist/portal/Help/hooks/useHelp.js.map +1 -0
  571. package/dist/portal/Layout/Layout.js +35 -34
  572. package/dist/portal/Layout/Layout.js.map +1 -0
  573. package/dist/portal/SearchEngine/SearchEngine.js +26 -25
  574. package/dist/portal/SearchEngine/SearchEngine.js.map +1 -0
  575. package/dist/utils/MockedDataProvider/MockedDataProvider.d.ts +1 -1
  576. package/dist/utils/MockedDataProvider/MockedDataProvider.js +22 -21
  577. package/dist/utils/MockedDataProvider/MockedDataProvider.js.map +1 -0
  578. package/dist/utils/StringUtils.js +9 -8
  579. package/dist/utils/StringUtils.js.map +1 -0
  580. package/dist/utils/addTimestampToUrl.js +5 -4
  581. package/dist/utils/addTimestampToUrl.js.map +1 -0
  582. package/dist/utils/blob.js +10 -9
  583. package/dist/utils/blob.js.map +1 -0
  584. package/dist/utils/checkUserRight.d.ts +1 -1
  585. package/dist/utils/checkUserRight.js +28 -27
  586. package/dist/utils/checkUserRight.js.map +1 -0
  587. package/dist/utils/fileSize.js +6 -5
  588. package/dist/utils/fileSize.js.map +1 -0
  589. package/dist/utils/findTreeNode.js +8 -7
  590. package/dist/utils/findTreeNode.js.map +1 -0
  591. package/dist/utils/isActionAvailable.d.ts +1 -1
  592. package/dist/utils/isActionAvailable.js +5 -4
  593. package/dist/utils/isActionAvailable.js.map +1 -0
  594. package/dist/utils/libraryMaps.js +3 -2
  595. package/dist/utils/libraryMaps.js.map +1 -0
  596. package/dist/utils/noop.js +3 -2
  597. package/dist/utils/noop.js.map +1 -0
  598. package/dist/utils/ref.js +9 -8
  599. package/dist/utils/ref.js.map +1 -0
  600. package/dist/utils/thumbnail.js +4 -3
  601. package/dist/utils/thumbnail.js.map +1 -0
  602. package/dist/utils/time.js +8 -7
  603. package/dist/utils/time.js.map +1 -0
  604. package/dist/utils/treeview.d.ts +1 -1
  605. package/dist/utils/treeview.js +97 -96
  606. package/dist/utils/treeview.js.map +1 -0
  607. package/dist/utils/video.js +3 -2
  608. package/dist/utils/video.js.map +1 -0
  609. package/dist/widgets/BookmarkedApps/BookmarkedApps.d.ts +1 -1
  610. package/dist/widgets/BookmarkedApps/BookmarkedApps.js +7 -6
  611. package/dist/widgets/BookmarkedApps/BookmarkedApps.js.map +1 -0
  612. package/dist/widgets/Widget/Widget.js +19 -18
  613. package/dist/widgets/Widget/Widget.js.map +1 -0
  614. package/package.json +4 -4
@@ -1,235 +1,235 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { useReducer, useRef, useEffect, useCallback } from "react";
3
- import { useTranslation } from "react-i18next";
4
- import useWorkspaceFile from "../../../core/useWorkspaceFile/useWorkspaceFile.js";
5
- import { Icon } from "../../../components/Icon/Icon.js";
6
- function useAudioRecorder(onSaveSuccess, onUpdateRecord, hideSaveAction = !1, visibility = "protected", application = "media-library") {
7
- var _a;
8
- function audioReducer(state, action) {
1
+ import { jsx as S } from "react/jsx-runtime";
2
+ import { useReducer as Q, useRef as P, useEffect as j, useCallback as y } from "react";
3
+ import { useTranslation as X } from "react-i18next";
4
+ import $ from "../../../core/useWorkspaceFile/useWorkspaceFile.js";
5
+ import { Icon as b } from "../../../components/Icon/Icon.js";
6
+ function oe(g, d, Y = !1, F = "protected", W = "media-library") {
7
+ var U;
8
+ function V(t, n) {
9
9
  return {
10
- ...state,
11
- ...action.updatedState
10
+ ...t,
11
+ ...n.updatedState
12
12
  };
13
13
  }
14
14
  const [{
15
- recordState,
16
- playState,
17
- micStream,
18
- micStreamAudioSourceNode,
19
- audioWorkletNode,
20
- audioContext,
21
- encoderWorker,
22
- maxDuration,
23
- recordTime,
24
- isEncoding
25
- }, dispatch] = useReducer(audioReducer, {
15
+ recordState: r,
16
+ playState: u,
17
+ micStream: f,
18
+ micStreamAudioSourceNode: h,
19
+ audioWorkletNode: c,
20
+ audioContext: a,
21
+ encoderWorker: E,
22
+ maxDuration: A,
23
+ recordTime: T,
24
+ isEncoding: L
25
+ }, o] = Q(V, {
26
26
  recordState: "IDLE",
27
27
  isEncoding: !1,
28
28
  playState: "IDLE",
29
29
  recordTime: 0,
30
30
  maxDuration: 180
31
31
  // max duration in s (3 minutes by default)
32
- }), audioNameRef = useRef(null), audioRef = useRef(null), leftChannelRef = useRef(), rightChannelRef = useRef(), {
33
- t
34
- } = useTranslation(), {
35
- create
36
- } = useWorkspaceFile(), BUFFER_SIZE = 128, DEFAULT_SAMPLE_RATE = 48e3;
37
- useEffect(() => {
38
- const encoderWorker2 = new Worker("/infra/public/js/audioEncoder.js");
39
- return dispatch({
32
+ }), v = P(null), e = P(null), D = P(), l = P(), {
33
+ t: i
34
+ } = X(), {
35
+ create: _
36
+ } = $(), N = 128, k = 48e3;
37
+ j(() => {
38
+ const t = new Worker("/infra/public/js/audioEncoder.js");
39
+ return o({
40
40
  type: "update",
41
41
  updatedState: {
42
- encoderWorker: encoderWorker2
42
+ encoderWorker: t
43
43
  }
44
- }), encoderWorker2.postMessage(["init", (audioContext == null ? void 0 : audioContext.sampleRate) || DEFAULT_SAMPLE_RATE]), () => {
45
- closeAudioStream(), encoderWorker2.terminate();
44
+ }), t.postMessage(["init", (a == null ? void 0 : a.sampleRate) || k]), () => {
45
+ I(), t.terminate();
46
46
  };
47
47
  }, []);
48
- const handleAudioWorkletNodeMessage = (event) => {
49
- var _a2, _b;
50
- const leftChannel = event.data.inputs[0][0];
51
- let rightChannel = event.data.inputs[0][1];
52
- (!rightChannel || rightChannel.filter((data) => data !== void 0).length === 0) && (rightChannel = leftChannel), (_a2 = leftChannelRef.current) == null || _a2.push(leftChannel), (_b = rightChannelRef.current) == null || _b.push(rightChannel);
53
- }, closeAudioStream = useCallback(() => {
54
- micStream == null || micStream.getTracks().forEach((track) => track.stop()), micStreamAudioSourceNode == null || micStreamAudioSourceNode.disconnect(), audioWorkletNode == null || audioWorkletNode.port.removeEventListener("message", handleAudioWorkletNodeMessage), audioWorkletNode == null || audioWorkletNode.port.close(), audioWorkletNode == null || audioWorkletNode.disconnect(), audioContext == null || audioContext.close();
55
- }, [audioContext, audioWorkletNode, micStream, micStreamAudioSourceNode]), initRecording = async () => {
56
- const micStream2 = await navigator.mediaDevices.getUserMedia({
48
+ const G = (t) => {
49
+ var s, m;
50
+ const n = t.data.inputs[0][0];
51
+ let p = t.data.inputs[0][1];
52
+ (!p || p.filter((R) => R !== void 0).length === 0) && (p = n), (s = D.current) == null || s.push(n), (m = l.current) == null || m.push(p);
53
+ }, I = y(() => {
54
+ f == null || f.getTracks().forEach((t) => t.stop()), h == null || h.disconnect(), c == null || c.port.removeEventListener("message", G), c == null || c.port.close(), c == null || c.disconnect(), a == null || a.close();
55
+ }, [a, c, f, h]), x = async () => {
56
+ const t = await navigator.mediaDevices.getUserMedia({
57
57
  audio: !0
58
- }), audioContext2 = new AudioContext({
59
- sampleRate: DEFAULT_SAMPLE_RATE
60
- }), micStreamAudioSourceNode2 = audioContext2.createMediaStreamSource(micStream2);
58
+ }), n = new AudioContext({
59
+ sampleRate: k
60
+ }), p = n.createMediaStreamSource(t);
61
61
  try {
62
- await audioContext2.audioWorklet.addModule("/infra/public/js/audio-recorder-processor.js");
63
- } catch (err) {
64
- console.error(err);
62
+ await n.audioWorklet.addModule("/infra/public/js/audio-recorder-processor.js");
63
+ } catch (m) {
64
+ console.error(m);
65
65
  }
66
- const audioWorkletNode2 = new AudioWorkletNode(audioContext2, "audio-recorder-processor");
67
- audioWorkletNode2.port.addEventListener("message", handleAudioWorkletNodeMessage), dispatch({
66
+ const s = new AudioWorkletNode(n, "audio-recorder-processor");
67
+ s.port.addEventListener("message", G), o({
68
68
  type: "update",
69
69
  updatedState: {
70
- micStream: micStream2,
71
- micStreamAudioSourceNode: micStreamAudioSourceNode2,
72
- audioContext: audioContext2,
70
+ micStream: t,
71
+ micStreamAudioSourceNode: p,
72
+ audioContext: n,
73
73
  recordTime: 0,
74
- audioWorkletNode: audioWorkletNode2,
74
+ audioWorkletNode: s,
75
75
  recordState: "RECORDING",
76
76
  playState: "IDLE"
77
77
  }
78
- }), rightChannelRef.current = [], leftChannelRef.current = [], audioWorkletNode2.port.start(), micStreamAudioSourceNode2.connect(audioWorkletNode2), audioWorkletNode2.connect(audioContext2.destination);
79
- }, handleRecord = useCallback(async () => {
80
- audioRef.current && (audioRef.current.currentTime = 0, audioRef.current.pause()), recordState === "PAUSED" ? (dispatch({
78
+ }), l.current = [], D.current = [], s.port.start(), p.connect(s), s.connect(n.destination);
79
+ }, B = y(async () => {
80
+ e.current && (e.current.currentTime = 0, e.current.pause()), r === "PAUSED" ? (o({
81
81
  type: "update",
82
82
  updatedState: {
83
83
  recordState: "RECORDING",
84
84
  playState: "IDLE"
85
85
  }
86
- }), audioContext == null || audioContext.resume(), onUpdateRecord == null || onUpdateRecord(void 0)) : initRecording();
87
- }, [recordState, audioContext, audioRef]), handleRecordPause = useCallback(() => {
88
- dispatch({
86
+ }), a == null || a.resume(), d == null || d(void 0)) : x();
87
+ }, [r, a, e]), w = y(() => {
88
+ o({
89
89
  type: "update",
90
90
  updatedState: {
91
91
  recordState: "PAUSED",
92
92
  playState: "IDLE",
93
93
  isEncoding: !0
94
94
  }
95
- }), audioContext == null || audioContext.suspend(), encoderWorker && leftChannelRef.current && rightChannelRef.current && (encoderWorker.postMessage(["wav", rightChannelRef.current, leftChannelRef.current, rightChannelRef.current.length * BUFFER_SIZE]), encoderWorker.onmessage = (event) => {
96
- const audioUrl = window.URL.createObjectURL(event.data);
97
- dispatch({
95
+ }), a == null || a.suspend(), E && D.current && l.current && (E.postMessage(["wav", l.current, D.current, l.current.length * N]), E.onmessage = (t) => {
96
+ const n = window.URL.createObjectURL(t.data);
97
+ o({
98
98
  type: "update",
99
99
  updatedState: {
100
100
  isEncoding: !1
101
101
  }
102
- }), audioRef.current && (audioRef.current.src = audioUrl), onUpdateRecord && onUpdateRecord(audioUrl);
102
+ }), e.current && (e.current.src = n), d && d(n);
103
103
  });
104
- }, [audioContext, encoderWorker, onUpdateRecord]), handlePlay = useCallback(() => {
105
- var _a2;
106
- dispatch({
104
+ }, [a, E, d]), q = y(() => {
105
+ var t;
106
+ o({
107
107
  type: "update",
108
108
  updatedState: {
109
109
  playState: "PLAYING"
110
110
  }
111
- }), ((_a2 = audioRef == null ? void 0 : audioRef.current) != null && _a2.currentTime || audioRef.current) && audioRef.current.play();
112
- }, [audioRef]), handlePlayPause = useCallback(() => {
113
- var _a2;
114
- (_a2 = audioRef == null ? void 0 : audioRef.current) == null || _a2.pause(), dispatch({
111
+ }), ((t = e == null ? void 0 : e.current) != null && t.currentTime || e.current) && e.current.play();
112
+ }, [e]), Z = y(() => {
113
+ var t;
114
+ (t = e == null ? void 0 : e.current) == null || t.pause(), o({
115
115
  type: "update",
116
116
  updatedState: {
117
117
  playState: "PAUSED"
118
118
  }
119
119
  });
120
- }, [audioRef]), handleReset = useCallback(() => {
121
- closeAudioStream(), dispatch({
120
+ }, [e]), z = y(() => {
121
+ I(), o({
122
122
  type: "update",
123
123
  updatedState: {
124
124
  playState: "IDLE",
125
125
  recordState: "IDLE"
126
126
  }
127
- }), rightChannelRef.current = [], leftChannelRef.current = [], onUpdateRecord && onUpdateRecord(void 0);
128
- }, [closeAudioStream, onUpdateRecord]), handleSave = useCallback(async () => {
129
- var _a2;
130
- const audioName = (_a2 = audioNameRef.current) == null ? void 0 : _a2.value;
131
- if (!audioName) {
127
+ }), l.current = [], D.current = [], d && d(void 0);
128
+ }, [I, d]), O = y(async () => {
129
+ var n;
130
+ const t = (n = v.current) == null ? void 0 : n.value;
131
+ if (!t) {
132
132
  console.error("Audio name is required");
133
133
  return;
134
134
  }
135
- return audioRef.current && (audioRef.current.pause(), audioRef.current.currentTime = 0), dispatch({
135
+ return e.current && (e.current.pause(), e.current.currentTime = 0), o({
136
136
  type: "update",
137
137
  updatedState: {
138
138
  recordState: "SAVING",
139
139
  playState: "IDLE"
140
140
  }
141
- }), new Promise((resolve, reject) => {
141
+ }), new Promise((p, s) => {
142
142
  try {
143
- encoderWorker && leftChannelRef.current && rightChannelRef.current && (encoderWorker.postMessage(["mp3", rightChannelRef.current, leftChannelRef.current, rightChannelRef.current.length * BUFFER_SIZE]), encoderWorker.onmessage = async (event) => {
144
- if (event.data instanceof Blob) {
145
- const file = new File([event.data], audioName, {
143
+ E && D.current && l.current && (E.postMessage(["mp3", l.current, D.current, l.current.length * N]), E.onmessage = async (m) => {
144
+ if (m.data instanceof Blob) {
145
+ const R = new File([m.data], t, {
146
146
  type: "audio/mp3"
147
- }), resourceAudio = await create(file, {
148
- application,
149
- visibility
147
+ }), C = await _(R, {
148
+ application: W,
149
+ visibility: F
150
150
  });
151
- resourceAudio && onSaveSuccess && onSaveSuccess(resourceAudio), dispatch({
151
+ C && g && g(C), o({
152
152
  type: "update",
153
153
  updatedState: {
154
154
  recordState: "SAVED"
155
155
  }
156
- }), resolve(resourceAudio);
156
+ }), p(C);
157
157
  }
158
158
  });
159
- } catch (error) {
160
- dispatch({
159
+ } catch (m) {
160
+ o({
161
161
  type: "update",
162
162
  updatedState: {
163
163
  playState: "IDLE",
164
164
  recordState: "IDLE"
165
165
  }
166
- }), console.error("Error while saving", error), reject();
166
+ }), console.error("Error while saving", m), s();
167
167
  }
168
168
  });
169
- }, [recordState, onSaveSuccess, closeAudioStream]), handlePlayStop = useCallback(() => {
170
- audioRef != null && audioRef.current && (audioRef.current.pause(), audioRef.current.currentTime = 0), dispatch({
169
+ }, [r, g, I]), H = y(() => {
170
+ e != null && e.current && (e.current.pause(), e.current.currentTime = 0), o({
171
171
  type: "update",
172
172
  updatedState: {
173
173
  playState: "IDLE"
174
174
  }
175
175
  });
176
- }, [audioRef]), handlePlayEnded = useCallback(() => {
177
- dispatch({
176
+ }, [e]), J = y(() => {
177
+ o({
178
178
  type: "update",
179
179
  updatedState: {
180
180
  playState: "PAUSED"
181
181
  }
182
- }), audioRef.current && (audioRef.current.currentTime = 0);
183
- }, [audioRef]);
184
- useEffect(() => {
185
- if (recordState === "RECORDING" && audioContext) {
186
- const timer = window.setInterval(
182
+ }), e.current && (e.current.currentTime = 0);
183
+ }, [e]);
184
+ j(() => {
185
+ if (r === "RECORDING" && a) {
186
+ const t = window.setInterval(
187
187
  // Compute exact elapsed time by diffing the start time.
188
188
  () => {
189
- dispatch({
189
+ o({
190
190
  type: "update",
191
191
  updatedState: {
192
- recordTime: audioContext.currentTime
192
+ recordTime: a.currentTime
193
193
  }
194
- }), audioContext.currentTime >= maxDuration && (handleRecordPause(), window.clearInterval(timer));
194
+ }), a.currentTime >= A && (w(), window.clearInterval(t));
195
195
  },
196
196
  100
197
197
  );
198
- return () => window.clearInterval(timer);
198
+ return () => window.clearInterval(t);
199
199
  }
200
- }, [audioContext, handleRecordPause, maxDuration, recordState]);
201
- const recordText = t(recordState === "IDLE" ? "bbm.audio.record.start" : "bbm.audio.record.resume"), toolbarItems = [{
200
+ }, [a, w, A, r]);
201
+ const M = i(r === "IDLE" ? "bbm.audio.record.start" : "bbm.audio.record.resume"), K = [{
202
202
  type: "icon",
203
203
  name: "record",
204
- visibility: recordState === "RECORDING" ? "hide" : "show",
204
+ visibility: r === "RECORDING" ? "hide" : "show",
205
205
  props: {
206
- icon: /* @__PURE__ */ jsx(Icon, { name: "record" }),
206
+ icon: /* @__PURE__ */ S(b, { name: "record" }),
207
207
  color: "danger",
208
- disabled: recordState !== "IDLE" && recordState !== "PAUSED" || recordTime >= maxDuration,
209
- onClick: handleRecord,
210
- "aria-label": recordText
208
+ disabled: r !== "IDLE" && r !== "PAUSED" || T >= A,
209
+ onClick: B,
210
+ "aria-label": M
211
211
  },
212
- tooltip: recordText
212
+ tooltip: M
213
213
  }, {
214
214
  type: "icon",
215
215
  name: "recordPause",
216
- visibility: recordState === "RECORDING" ? "show" : "hide",
216
+ visibility: r === "RECORDING" ? "show" : "hide",
217
217
  props: {
218
- icon: /* @__PURE__ */ jsx(Icon, { name: "record-pause" }),
218
+ icon: /* @__PURE__ */ S(b, { name: "record-pause" }),
219
219
  color: "danger",
220
- disabled: recordState !== "RECORDING",
221
- onClick: handleRecordPause,
222
- "aria-label": t("bbm.audio.record.pause")
220
+ disabled: r !== "RECORDING",
221
+ onClick: w,
222
+ "aria-label": i("bbm.audio.record.pause")
223
223
  },
224
- tooltip: t("bbm.audio.record.pause")
224
+ tooltip: i("bbm.audio.record.pause")
225
225
  }, {
226
226
  type: "divider"
227
227
  }, {
228
228
  type: "icon",
229
229
  name: "encoding",
230
- visibility: isEncoding ? "show" : "hide",
230
+ visibility: L ? "show" : "hide",
231
231
  props: {
232
- icon: /* @__PURE__ */ jsx(Icon, { name: "loader", style: {
232
+ icon: /* @__PURE__ */ S(b, { name: "loader", style: {
233
233
  animation: "loading 1s infinite"
234
234
  } }),
235
235
  disabled: !0
@@ -237,71 +237,72 @@ function useAudioRecorder(onSaveSuccess, onUpdateRecord, hideSaveAction = !1, vi
237
237
  }, {
238
238
  type: "icon",
239
239
  name: "play",
240
- visibility: isEncoding || playState === "PLAYING" ? "hide" : "show",
240
+ visibility: L || u === "PLAYING" ? "hide" : "show",
241
241
  props: {
242
- icon: /* @__PURE__ */ jsx(Icon, { name: "play-filled" }),
243
- disabled: recordState !== "RECORDED" && recordState !== "PAUSED" && recordState !== "SAVED",
244
- onClick: handlePlay,
245
- "aria-label": t("bbm.audio.play.start")
242
+ icon: /* @__PURE__ */ S(b, { name: "play-filled" }),
243
+ disabled: r !== "RECORDED" && r !== "PAUSED" && r !== "SAVED",
244
+ onClick: q,
245
+ "aria-label": i("bbm.audio.play.start")
246
246
  },
247
- tooltip: t("bbm.audio.play.start")
247
+ tooltip: i("bbm.audio.play.start")
248
248
  }, {
249
249
  type: "icon",
250
250
  name: "playPause",
251
- visibility: !isEncoding && playState === "PLAYING" ? "show" : "hide",
251
+ visibility: !L && u === "PLAYING" ? "show" : "hide",
252
252
  props: {
253
- icon: /* @__PURE__ */ jsx(Icon, { name: "pause" }),
254
- onClick: handlePlayPause,
255
- "aria-label": t("bbm.audio.play.pause")
253
+ icon: /* @__PURE__ */ S(b, { name: "pause" }),
254
+ onClick: Z,
255
+ "aria-label": i("bbm.audio.play.pause")
256
256
  },
257
- tooltip: t("bbm.audio.play.pause")
257
+ tooltip: i("bbm.audio.play.pause")
258
258
  }, {
259
259
  type: "icon",
260
260
  name: "stop",
261
261
  props: {
262
- icon: /* @__PURE__ */ jsx(Icon, { name: "restart" }),
263
- disabled: playState !== "PLAYING" && playState !== "PAUSED",
264
- onClick: handlePlayStop,
265
- "aria-label": t("bbm.audio.play.stop")
262
+ icon: /* @__PURE__ */ S(b, { name: "restart" }),
263
+ disabled: u !== "PLAYING" && u !== "PAUSED",
264
+ onClick: H,
265
+ "aria-label": i("bbm.audio.play.stop")
266
266
  },
267
- tooltip: t("bbm.audio.play.stop")
267
+ tooltip: i("bbm.audio.play.stop")
268
268
  }, {
269
269
  type: "divider"
270
270
  }, {
271
271
  type: "icon",
272
272
  name: "reset",
273
273
  props: {
274
- icon: /* @__PURE__ */ jsx(Icon, { name: "refresh" }),
275
- disabled: recordState !== "RECORDED" && recordState !== "PAUSED" && playState !== "PLAYING" && playState !== "PAUSED",
276
- onClick: handleReset,
277
- "aria-label": t("bbm.audio.record.reset")
274
+ icon: /* @__PURE__ */ S(b, { name: "refresh" }),
275
+ disabled: r !== "RECORDED" && r !== "PAUSED" && u !== "PLAYING" && u !== "PAUSED",
276
+ onClick: z,
277
+ "aria-label": i("bbm.audio.record.reset")
278
278
  },
279
- tooltip: t("bbm.audio.record.reset")
279
+ tooltip: i("bbm.audio.record.reset")
280
280
  }, {
281
281
  type: "icon",
282
282
  name: "save",
283
- visibility: hideSaveAction ? "hide" : "show",
283
+ visibility: Y ? "hide" : "show",
284
284
  props: {
285
- icon: /* @__PURE__ */ jsx(Icon, { name: "save" }),
286
- disabled: recordState !== "RECORDED" && recordState !== "PAUSED" && playState !== "PLAYING" && playState !== "PAUSED" || recordState === "SAVED" || !((_a = audioNameRef.current) != null && _a.value),
287
- onClick: handleSave,
288
- "aria-label": t("bbm.audio.record.save")
285
+ icon: /* @__PURE__ */ S(b, { name: "save" }),
286
+ disabled: r !== "RECORDED" && r !== "PAUSED" && u !== "PLAYING" && u !== "PAUSED" || r === "SAVED" || !((U = v.current) != null && U.value),
287
+ onClick: O,
288
+ "aria-label": i("bbm.audio.record.save")
289
289
  },
290
- tooltip: t("bbm.audio.record.save")
290
+ tooltip: i("bbm.audio.record.save")
291
291
  }];
292
292
  return {
293
- recordState,
294
- playState,
295
- audioContext,
296
- recordTime: recordTime * 1e3,
297
- maxDuration: maxDuration * 1e3,
298
- audioRef,
299
- audioNameRef,
300
- toolbarItems,
301
- handlePlayEnded,
302
- handleSave
293
+ recordState: r,
294
+ playState: u,
295
+ audioContext: a,
296
+ recordTime: T * 1e3,
297
+ maxDuration: A * 1e3,
298
+ audioRef: e,
299
+ audioNameRef: v,
300
+ toolbarItems: K,
301
+ handlePlayEnded: J,
302
+ handleSave: O
303
303
  };
304
304
  }
305
305
  export {
306
- useAudioRecorder as default
306
+ oe as default
307
307
  };
308
+ //# sourceMappingURL=useAudioRecorder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAudioRecorder.js","sources":["../../../../src/modules/multimedia/AudioRecorder/useAudioRecorder.tsx"],"sourcesContent":["import { useCallback, useEffect, useReducer, useRef } from 'react';\n\nimport { WorkspaceElement, WorkspaceVisibility } from '@edifice.io/ts-client';\nimport { useTranslation } from 'react-i18next';\n\nimport { Icon, ToolbarItem } from '../../../components';\nimport { useWorkspaceFile } from '../../../core';\n\nexport type RecordState =\n | 'IDLE'\n | 'RECORDING'\n | 'PAUSED'\n | 'RECORDED'\n | 'SAVING'\n | 'SAVED';\n\nexport type PlayState = 'IDLE' | 'PLAYING' | 'PAUSED';\n\ntype AudioReducerState = {\n recordState: RecordState;\n playState: PlayState;\n isEncoding: boolean;\n\n // The audio recorder is based on the Web Audio API (https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API)\n // See also https://developer.mozilla.org/en-US/docs/Web/API/AudioWorkletNode for more information.\n micStream?: MediaStream;\n micStreamAudioSourceNode?: MediaStreamAudioSourceNode;\n audioWorkletNode?: AudioWorkletNode;\n audioContext?: AudioContext;\n\n // encoder and web socket for sending encoded audio to the backend\n encoderWorker?: Worker;\n\n recordTime: number;\n // max duration in s (3 minutes by default)\n maxDuration: number;\n};\n\nexport default function useAudioRecorder(\n onSaveSuccess?: (resource: WorkspaceElement) => void,\n onUpdateRecord?: (audioUrl?: string) => void,\n hideSaveAction = false,\n visibility: WorkspaceVisibility = 'protected',\n application = 'media-library',\n) {\n function audioReducer(\n state: AudioReducerState,\n action: {\n type: 'update';\n updatedState?: Partial<AudioReducerState>;\n },\n ): AudioReducerState {\n return { ...state, ...action.updatedState };\n }\n\n const [\n {\n recordState,\n playState,\n micStream,\n micStreamAudioSourceNode,\n audioWorkletNode,\n audioContext,\n encoderWorker,\n maxDuration,\n recordTime,\n isEncoding,\n },\n dispatch,\n ] = useReducer(audioReducer, {\n recordState: 'IDLE',\n isEncoding: false,\n playState: 'IDLE',\n recordTime: 0,\n maxDuration: 180, // max duration in s (3 minutes by default)\n });\n const audioNameRef = useRef<HTMLInputElement>(null);\n const audioRef = useRef<HTMLAudioElement>(null);\n const leftChannelRef = useRef<Float32Array[]>();\n const rightChannelRef = useRef<Float32Array[]>();\n\n const { t } = useTranslation();\n const { create } = useWorkspaceFile();\n\n const BUFFER_SIZE = 128; // https://developer.mozilla.org/en-US/docs/Web/API/AudioWorkletProcessor\n const DEFAULT_SAMPLE_RATE = 48000;\n\n // Init Web Socket to send audio chunks to backend\n useEffect(() => {\n const encoderWorker = new Worker('/infra/public/js/audioEncoder.js');\n dispatch({\n type: 'update',\n updatedState: { encoderWorker: encoderWorker },\n });\n encoderWorker.postMessage([\n 'init',\n audioContext?.sampleRate || DEFAULT_SAMPLE_RATE,\n ]);\n\n return () => {\n closeAudioStream();\n encoderWorker.terminate();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n /**\n * Handle message received from the audio recorder processor.\n * Basically the Audio recorder processor returns the input channels that will be treated by the audioEncoder worker.\n * The audio recorder processor script is located here: /infra/public/js/audio-recorder-processor.js\n * The script follows the AudioWorkletProcessor API (https://developer.mozilla.org/en-US/docs/Web/API/AudioWorkletProcessor)\n * This method gets called for each block of 128 sample-frames.\n *\n * @param event is the input returned, containing leftChannel and rightChannel arrays.\n */\n const handleAudioWorkletNodeMessage = (event: MessageEvent) => {\n const leftChannel = (event.data.inputs as Float32Array[][])[0][0];\n let rightChannel = (event.data.inputs as Float32Array[][])[0][1];\n if (\n !rightChannel ||\n rightChannel.filter((data) => data !== undefined).length === 0\n ) {\n rightChannel = leftChannel;\n }\n leftChannelRef.current?.push(leftChannel);\n rightChannelRef.current?.push(rightChannel);\n };\n\n /**\n * Close opened audio stream and clean channels\n */\n const closeAudioStream = useCallback(() => {\n // Close audio stream\n micStream?.getTracks().forEach((track) => track.stop());\n micStreamAudioSourceNode?.disconnect();\n audioWorkletNode?.port.removeEventListener(\n 'message',\n handleAudioWorkletNodeMessage,\n );\n audioWorkletNode?.port.close();\n audioWorkletNode?.disconnect();\n audioContext?.close();\n }, [audioContext, audioWorkletNode, micStream, micStreamAudioSourceNode]);\n\n const initRecording = async () => {\n // Request access to the user's microphone\n const micStream: MediaStream = await navigator.mediaDevices.getUserMedia({\n audio: true,\n });\n\n // Create the microphone stream\n const audioContext = new AudioContext({ sampleRate: DEFAULT_SAMPLE_RATE });\n const micStreamAudioSourceNode: MediaStreamAudioSourceNode =\n audioContext.createMediaStreamSource(micStream);\n\n // Create and connect AudioWorkletNode for processing the audio stream\n // https://developer.mozilla.org/en-US/docs/Web/API/AudioWorkletProcessor\n try {\n await audioContext.audioWorklet.addModule(\n '/infra/public/js/audio-recorder-processor.js',\n );\n } catch (err) {\n console.error(err);\n }\n\n const audioWorkletNode = new AudioWorkletNode(\n audioContext,\n 'audio-recorder-processor',\n );\n\n // Message received from the audio recorder processor. cf handleAudioWorkletNodeMessage function.\n // Basically the Audio recorder processor returns the input channels that will be treated by the audioEncoder worker.\n audioWorkletNode.port.addEventListener(\n 'message',\n handleAudioWorkletNodeMessage,\n );\n\n // Store the audio context and stream in the state, reset record time and set states\n dispatch({\n type: 'update',\n updatedState: {\n micStream,\n micStreamAudioSourceNode,\n audioContext,\n recordTime: 0,\n audioWorkletNode,\n recordState: 'RECORDING',\n playState: 'IDLE',\n },\n });\n\n // Clean audio channels\n rightChannelRef.current = [];\n leftChannelRef.current = [];\n\n audioWorkletNode.port.start();\n\n micStreamAudioSourceNode.connect(audioWorkletNode);\n audioWorkletNode.connect(audioContext.destination);\n };\n\n const handleRecord = useCallback(async () => {\n if (audioRef.current) {\n audioRef.current.currentTime = 0;\n audioRef.current.pause();\n }\n if (recordState === 'PAUSED') {\n // Resume recording\n dispatch({\n type: 'update',\n updatedState: { recordState: 'RECORDING', playState: 'IDLE' },\n });\n audioContext?.resume();\n onUpdateRecord?.(undefined);\n } else {\n // Start new recording\n initRecording();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [recordState, audioContext, audioRef]);\n\n const handleRecordPause = useCallback(() => {\n dispatch({\n type: 'update',\n updatedState: {\n recordState: 'PAUSED',\n playState: 'IDLE',\n isEncoding: true,\n },\n });\n audioContext?.suspend();\n if (encoderWorker && leftChannelRef.current && rightChannelRef.current) {\n // Encode audio\n encoderWorker.postMessage([\n 'wav',\n rightChannelRef.current,\n leftChannelRef.current,\n rightChannelRef.current.length * BUFFER_SIZE,\n ]);\n encoderWorker.onmessage = (event: MessageEvent) => {\n const audioUrl = window.URL.createObjectURL(event.data);\n\n dispatch({\n type: 'update',\n updatedState: { isEncoding: false },\n });\n\n if (audioRef.current) {\n audioRef.current.src = audioUrl;\n }\n\n if (onUpdateRecord) {\n onUpdateRecord(audioUrl);\n }\n };\n }\n }, [audioContext, encoderWorker, onUpdateRecord]);\n\n const handlePlay = useCallback(() => {\n dispatch({ type: 'update', updatedState: { playState: 'PLAYING' } });\n if (audioRef?.current?.currentTime) {\n audioRef.current.play();\n } else {\n if (audioRef.current) {\n audioRef.current.play();\n }\n }\n }, [audioRef]);\n\n const handlePlayPause = useCallback(() => {\n audioRef?.current?.pause();\n dispatch({ type: 'update', updatedState: { playState: 'PAUSED' } });\n }, [audioRef]);\n\n const handleReset = useCallback(() => {\n closeAudioStream();\n\n dispatch({\n type: 'update',\n updatedState: {\n playState: 'IDLE',\n recordState: 'IDLE',\n },\n });\n\n // Clean channels\n rightChannelRef.current = [];\n leftChannelRef.current = [];\n\n if (onUpdateRecord) {\n onUpdateRecord(undefined);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [closeAudioStream, onUpdateRecord]);\n\n const handleSave: () => Promise<WorkspaceElement | undefined> =\n useCallback(async () => {\n const audioName = audioNameRef.current?.value;\n if (!audioName) {\n console.error('Audio name is required');\n return;\n }\n if (audioRef.current) {\n audioRef.current.pause();\n audioRef.current.currentTime = 0;\n }\n dispatch({\n type: 'update',\n updatedState: { recordState: 'SAVING', playState: 'IDLE' },\n });\n return new Promise<WorkspaceElement | undefined>((resolve, reject) => {\n try {\n if (\n encoderWorker &&\n leftChannelRef.current &&\n rightChannelRef.current\n ) {\n encoderWorker.postMessage([\n 'mp3',\n rightChannelRef.current,\n leftChannelRef.current,\n rightChannelRef.current.length * BUFFER_SIZE,\n ]);\n\n encoderWorker.onmessage = async (event: MessageEvent) => {\n if (event.data instanceof Blob) {\n const file = new File([event.data], audioName!, {\n type: 'audio/mp3',\n });\n\n const resourceAudio = await create(file, {\n application,\n visibility,\n });\n\n if (resourceAudio && onSaveSuccess) {\n onSaveSuccess(resourceAudio);\n }\n\n dispatch({\n type: 'update',\n updatedState: { recordState: 'SAVED' },\n });\n\n resolve(resourceAudio);\n }\n };\n }\n } catch (error) {\n dispatch({\n type: 'update',\n updatedState: { playState: 'IDLE', recordState: 'IDLE' },\n });\n console.error('Error while saving', error);\n reject();\n }\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [recordState, onSaveSuccess, closeAudioStream]);\n\n const handlePlayStop = useCallback(() => {\n // Stop Playing the record\n if (audioRef?.current) {\n audioRef.current.pause();\n audioRef.current.currentTime = 0;\n }\n dispatch({ type: 'update', updatedState: { playState: 'IDLE' } });\n }, [audioRef]);\n\n const handlePlayEnded = useCallback(() => {\n dispatch({ type: 'update', updatedState: { playState: 'PAUSED' } });\n if (audioRef.current) {\n audioRef.current.currentTime = 0;\n }\n }, [audioRef]);\n\n /**\n * Auto-stop recording when max allowed duration is reached.\n */\n useEffect(() => {\n if (recordState === 'RECORDING' && audioContext) {\n const timer = window.setInterval(\n // Compute exact elapsed time by diffing the start time.\n () => {\n dispatch({\n type: 'update',\n updatedState: {\n recordTime: audioContext.currentTime,\n },\n });\n\n if (audioContext.currentTime >= maxDuration) {\n handleRecordPause();\n window.clearInterval(timer);\n }\n },\n 100,\n );\n\n return () => window.clearInterval(timer);\n }\n }, [audioContext, handleRecordPause, maxDuration, recordState]);\n\n const recordText =\n recordState === 'IDLE'\n ? t('bbm.audio.record.start')\n : t('bbm.audio.record.resume');\n\n const toolbarItems: ToolbarItem[] = [\n {\n type: 'icon',\n name: 'record',\n visibility: recordState === 'RECORDING' ? 'hide' : 'show',\n props: {\n icon: <Icon name=\"record\" />,\n color: 'danger',\n disabled:\n (recordState !== 'IDLE' && recordState !== 'PAUSED') ||\n recordTime >= maxDuration,\n onClick: handleRecord,\n 'aria-label': recordText,\n },\n tooltip: recordText,\n },\n {\n type: 'icon',\n name: 'recordPause',\n visibility: recordState === 'RECORDING' ? 'show' : 'hide',\n props: {\n icon: <Icon name=\"record-pause\" />,\n color: 'danger',\n disabled: recordState !== 'RECORDING',\n onClick: handleRecordPause,\n 'aria-label': t('bbm.audio.record.pause'),\n },\n tooltip: t('bbm.audio.record.pause'),\n },\n { type: 'divider' },\n {\n type: 'icon',\n name: 'encoding',\n visibility: isEncoding ? 'show' : 'hide',\n props: {\n icon: (\n <Icon name=\"loader\" style={{ animation: 'loading 1s infinite' }} />\n ),\n disabled: true,\n },\n },\n {\n type: 'icon',\n name: 'play',\n visibility: isEncoding || playState === 'PLAYING' ? 'hide' : 'show',\n props: {\n icon: <Icon name=\"play-filled\" />,\n disabled:\n recordState !== 'RECORDED' &&\n recordState !== 'PAUSED' &&\n recordState !== 'SAVED',\n onClick: handlePlay,\n 'aria-label': t('bbm.audio.play.start'),\n },\n tooltip: t('bbm.audio.play.start'),\n },\n {\n type: 'icon',\n name: 'playPause',\n visibility: !isEncoding && playState === 'PLAYING' ? 'show' : 'hide',\n props: {\n icon: <Icon name=\"pause\" />,\n onClick: handlePlayPause,\n 'aria-label': t('bbm.audio.play.pause'),\n },\n tooltip: t('bbm.audio.play.pause'),\n },\n {\n type: 'icon',\n name: 'stop',\n props: {\n icon: <Icon name=\"restart\" />,\n disabled: playState !== 'PLAYING' && playState !== 'PAUSED',\n onClick: handlePlayStop,\n 'aria-label': t('bbm.audio.play.stop'),\n },\n tooltip: t('bbm.audio.play.stop'),\n },\n { type: 'divider' },\n {\n type: 'icon',\n name: 'reset',\n props: {\n icon: <Icon name=\"refresh\" />,\n disabled:\n recordState !== 'RECORDED' &&\n recordState !== 'PAUSED' &&\n playState !== 'PLAYING' &&\n playState !== 'PAUSED',\n onClick: handleReset,\n 'aria-label': t('bbm.audio.record.reset'),\n },\n tooltip: t('bbm.audio.record.reset'),\n },\n {\n type: 'icon',\n name: 'save',\n visibility: hideSaveAction ? 'hide' : 'show',\n props: {\n icon: <Icon name=\"save\" />,\n disabled:\n (recordState !== 'RECORDED' &&\n recordState !== 'PAUSED' &&\n playState !== 'PLAYING' &&\n playState !== 'PAUSED') ||\n recordState === 'SAVED' ||\n !audioNameRef.current?.value,\n onClick: handleSave,\n 'aria-label': t('bbm.audio.record.save'),\n },\n tooltip: t('bbm.audio.record.save'),\n },\n ];\n\n return {\n recordState,\n playState,\n audioContext,\n recordTime: recordTime * 1000,\n maxDuration: maxDuration * 1000,\n audioRef,\n audioNameRef,\n toolbarItems,\n handlePlayEnded,\n handleSave,\n };\n}\n"],"names":["useAudioRecorder","onSaveSuccess","onUpdateRecord","hideSaveAction","visibility","application","audioReducer","state","action","updatedState","recordState","playState","micStream","micStreamAudioSourceNode","audioWorkletNode","audioContext","encoderWorker","maxDuration","recordTime","isEncoding","dispatch","useReducer","audioNameRef","useRef","audioRef","leftChannelRef","rightChannelRef","t","useTranslation","create","useWorkspaceFile","BUFFER_SIZE","DEFAULT_SAMPLE_RATE","useEffect","Worker","type","postMessage","sampleRate","closeAudioStream","terminate","handleAudioWorkletNodeMessage","event","leftChannel","data","inputs","rightChannel","filter","undefined","length","current","push","useCallback","getTracks","forEach","track","stop","disconnect","port","removeEventListener","close","initRecording","navigator","mediaDevices","getUserMedia","audio","AudioContext","createMediaStreamSource","audioWorklet","addModule","err","console","error","AudioWorkletNode","addEventListener","start","connect","destination","handleRecord","currentTime","pause","resume","handleRecordPause","suspend","onmessage","audioUrl","window","URL","createObjectURL","src","handlePlay","play","handlePlayPause","handleReset","handleSave","audioName","value","Promise","resolve","reject","Blob","file","File","resourceAudio","handlePlayStop","handlePlayEnded","timer","setInterval","clearInterval","recordText","toolbarItems","name","props","icon","jsx","Icon","color","disabled","onClick","tooltip","animation"],"mappings":";;;;;AAsCwBA,SAAAA,GACtBC,GACAC,GACAC,IAAiB,IACjBC,IAAkC,aAClCC,IAAc,iBACd;;AACSC,WAAAA,EACPC,GACAC,GAImB;AACZ,WAAA;AAAA,MAAE,GAAGD;AAAAA,MAAO,GAAGC,EAAOC;AAAAA,IAAAA;AAAAA,EAC/B;AAEA,QAAM,CACJ;AAAA,IACEC,aAAAA;AAAAA,IACAC,WAAAA;AAAAA,IACAC,WAAAA;AAAAA,IACAC,0BAAAA;AAAAA,IACAC,kBAAAA;AAAAA,IACAC,cAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,YAAAA;AAAAA,EAAAA,GAEFC,CAAQ,IACNC,EAAWf,GAAc;AAAA,IAC3BI,aAAa;AAAA,IACbS,YAAY;AAAA,IACZR,WAAW;AAAA,IACXO,YAAY;AAAA,IACZD,aAAa;AAAA;AAAA,EAAA,CACd,GACKK,IAAeC,EAAyB,IAAI,GAC5CC,IAAWD,EAAyB,IAAI,GACxCE,IAAiBF,KACjBG,IAAkBH,KAElB;AAAA,IAAEI,GAAAA;AAAAA,MAAMC,EAAe,GACvB;AAAA,IAAEC,QAAAA;AAAAA,MAAWC,EAAiB,GAE9BC,IAAc,KACdC,IAAsB;AAG5BC,EAAAA,EAAU,MAAM;AACRjB,UAAAA,IAAgB,IAAIkB,OAAO,kCAAkC;AAC1D,WAAAd,EAAA;AAAA,MACPe,MAAM;AAAA,MACN1B,cAAc;AAAA,QAAEO,eAAeA;AAAAA,MAAc;AAAA,IAAA,CAC9C,GACDA,EAAcoB,YAAY,CACxB,SACArB,KAAAA,gBAAAA,EAAcsB,eAAcL,CAAmB,CAChD,GAEM,MAAM;AACM,MAAAM,KACjBtB,EAAcuB,UAAU;AAAA,IAAA;AAAA,EAG5B,GAAG,CAAE,CAAA;AAWCC,QAAAA,IAAgCA,CAACC,MAAwB;;AAC7D,UAAMC,IAAeD,EAAME,KAAKC,OAA4B,CAAC,EAAE,CAAC;AAChE,QAAIC,IAAgBJ,EAAME,KAAKC,OAA4B,CAAC,EAAE,CAAC;AAE7D,KAAA,CAACC,KACDA,EAAaC,OAAQH,OAASA,MAASI,MAAS,EAAEC,WAAW,OAE9CN,IAAAA,KAEFO,IAAAA,EAAAA,YAAAA,QAAAA,EAASC,KAAKR,KACbO,IAAAA,EAAAA,YAAAA,QAAAA,EAASC,KAAKL;AAAAA,EAAY,GAMtCP,IAAmBa,EAAY,MAAM;AAEzCvC,IAAAA,KAAAA,QAAAA,EAAWwC,YAAYC,QAASC,CAAUA,MAAAA,EAAMC,SAChD1C,KAAAA,QAAAA,EAA0B2C,cACRC,KAAAA,QAAAA,EAAAA,KAAKC,oBACrB,WACAlB,IAEF1B,KAAAA,QAAAA,EAAkB2C,KAAKE,SACvB7C,KAAAA,QAAAA,EAAkB0C,cAClBzC,KAAAA,QAAAA,EAAc4C;AAAAA,KACb,CAAC5C,GAAcD,GAAkBF,GAAWC,CAAwB,CAAC,GAElE+C,IAAgB,YAAY;AAEhC,UAAMhD,IAAyB,MAAMiD,UAAUC,aAAaC,aAAa;AAAA,MACvEC,OAAO;AAAA,IAAA,CACR,GAGKjD,IAAe,IAAIkD,aAAa;AAAA,MAAE5B,YAAYL;AAAAA,IAAAA,CAAqB,GACnEnB,IACJE,EAAamD,wBAAwBtD,CAAS;AAI5C,QAAA;AACIG,YAAAA,EAAaoD,aAAaC,UAC9B,8CACF;AAAA,aACOC,GAAK;AACZC,cAAQC,MAAMF,CAAG;AAAA,IACnB;AAEA,UAAMvD,IAAmB,IAAI0D,iBAC3BzD,GACA,0BACF;AAIAD,IAAAA,EAAiB2C,KAAKgB,iBACpB,WACAjC,CACF,GAGSpB,EAAA;AAAA,MACPe,MAAM;AAAA,MACN1B,cAAc;AAAA,QACZG,WAAAA;AAAAA,QACAC,0BAAAA;AAAAA,QACAE,cAAAA;AAAAA,QACAG,YAAY;AAAA,QACZJ,kBAAAA;AAAAA,QACAJ,aAAa;AAAA,QACbC,WAAW;AAAA,MACb;AAAA,IAAA,CACD,GAGDe,EAAgBuB,UAAU,IAC1BxB,EAAewB,UAAU,IAEzBnC,EAAiB2C,KAAKiB,SAEtB7D,EAAyB8D,QAAQ7D,CAAgB,GACjDA,EAAiB6D,QAAQ5D,EAAa6D,WAAW;AAAA,EAAA,GAG7CC,IAAe1B,EAAY,YAAY;AAC3C,IAAI3B,EAASyB,YACXzB,EAASyB,QAAQ6B,cAAc,GAC/BtD,EAASyB,QAAQ8B,UAEfrE,MAAgB,YAETU,EAAA;AAAA,MACPe,MAAM;AAAA,MACN1B,cAAc;AAAA,QAAEC,aAAa;AAAA,QAAaC,WAAW;AAAA,MAAO;AAAA,IAAA,CAC7D,GACDI,KAAAA,QAAAA,EAAciE,UACd9E,KAAAA,QAAAA,EAAiB6C,WAGHa;EAGf,GAAA,CAAClD,GAAaK,GAAcS,CAAQ,CAAC,GAElCyD,IAAoB9B,EAAY,MAAM;AACjC,IAAA/B,EAAA;AAAA,MACPe,MAAM;AAAA,MACN1B,cAAc;AAAA,QACZC,aAAa;AAAA,QACbC,WAAW;AAAA,QACXQ,YAAY;AAAA,MACd;AAAA,IAAA,CACD,GACDJ,KAAAA,QAAAA,EAAcmE,WACVlE,KAAiBS,EAAewB,WAAWvB,EAAgBuB,YAE/Cb,EAAAA,YAAY,CACxB,OACAV,EAAgBuB,SAChBxB,EAAewB,SACfvB,EAAgBuB,QAAQD,SAASjB,CAAW,CAC7C,GACaoD,EAAAA,YAAY,CAAC1C,MAAwB;AACjD,YAAM2C,IAAWC,OAAOC,IAAIC,gBAAgB9C,EAAME,IAAI;AAE7C,MAAAvB,EAAA;AAAA,QACPe,MAAM;AAAA,QACN1B,cAAc;AAAA,UAAEU,YAAY;AAAA,QAAM;AAAA,MAAA,CACnC,GAEGK,EAASyB,YACXzB,EAASyB,QAAQuC,MAAMJ,IAGrBlF,KACFA,EAAekF,CAAQ;AAAA,IACzB;AAAA,EAGH,GAAA,CAACrE,GAAcC,GAAed,CAAc,CAAC,GAE1CuF,IAAatC,EAAY,MAAM;;AAC1B,IAAA/B,EAAA;AAAA,MAAEe,MAAM;AAAA,MAAU1B,cAAc;AAAA,QAAEE,WAAW;AAAA,MAAU;AAAA,IAAA,CAAG,KAC/Da,IAAAA,KAAAA,gBAAAA,EAAUyB,YAAVzB,QAAAA,EAAmBsD,eAGjBtD,EAASyB,YACXzB,EAASyB,QAAQyC;EAErB,GACC,CAAClE,CAAQ,CAAC,GAEPmE,IAAkBxC,EAAY,MAAM;;AACxC3B,KAAAA,IAAAA,KAAAA,gBAAAA,EAAUyB,YAAVzB,QAAAA,EAAmBuD,SACV3D,EAAA;AAAA,MAAEe,MAAM;AAAA,MAAU1B,cAAc;AAAA,QAAEE,WAAW;AAAA,MAAS;AAAA,IAAA,CAAG;AAAA,EAAA,GACjE,CAACa,CAAQ,CAAC,GAEPoE,IAAczC,EAAY,MAAM;AACnB,IAAAb,KAERlB,EAAA;AAAA,MACPe,MAAM;AAAA,MACN1B,cAAc;AAAA,QACZE,WAAW;AAAA,QACXD,aAAa;AAAA,MACf;AAAA,IAAA,CACD,GAGDgB,EAAgBuB,UAAU,IAC1BxB,EAAewB,UAAU,IAErB/C,KACFA,EAAe6C,MAAS;AAAA,EAC1B,GAGC,CAACT,GAAkBpC,CAAc,CAAC,GAE/B2F,IACJ1C,EAAY,YAAY;;AAChB2C,UAAAA,KAAYxE,IAAAA,EAAa2B,YAAb3B,gBAAAA,EAAsByE;AACxC,QAAI,CAACD,GAAW;AACdxB,cAAQC,MAAM,wBAAwB;AACtC;AAAA,IACF;AACA,WAAI/C,EAASyB,YACXzB,EAASyB,QAAQ8B,SACjBvD,EAASyB,QAAQ6B,cAAc,IAExB1D,EAAA;AAAA,MACPe,MAAM;AAAA,MACN1B,cAAc;AAAA,QAAEC,aAAa;AAAA,QAAUC,WAAW;AAAA,MAAO;AAAA,IAAA,CAC1D,GACM,IAAIqF,QAAsC,CAACC,GAASC,MAAW;AAChE,UAAA;AACF,QACElF,KACAS,EAAewB,WACfvB,EAAgBuB,YAEFb,EAAAA,YAAY,CACxB,OACAV,EAAgBuB,SAChBxB,EAAewB,SACfvB,EAAgBuB,QAAQD,SAASjB,CAAW,CAC7C,GAEaoD,EAAAA,YAAY,OAAO1C,MAAwB;AACnDA,cAAAA,EAAME,gBAAgBwD,MAAM;AAC9B,kBAAMC,IAAO,IAAIC,KAAK,CAAC5D,EAAME,IAAI,GAAGmD,GAAY;AAAA,cAC9C3D,MAAM;AAAA,YAAA,CACP,GAEKmE,IAAgB,MAAMzE,EAAOuE,GAAM;AAAA,cACvC/F,aAAAA;AAAAA,cACAD,YAAAA;AAAAA,YAAAA,CACD;AAED,YAAIkG,KAAiBrG,KACnBA,EAAcqG,CAAa,GAGpBlF,EAAA;AAAA,cACPe,MAAM;AAAA,cACN1B,cAAc;AAAA,gBAAEC,aAAa;AAAA,cAAQ;AAAA,YAAA,CACtC,GAEDuF,EAAQK,CAAa;AAAA,UACvB;AAAA,QAAA;AAAA,eAGG/B,GAAO;AACL,QAAAnD,EAAA;AAAA,UACPe,MAAM;AAAA,UACN1B,cAAc;AAAA,YAAEE,WAAW;AAAA,YAAQD,aAAa;AAAA,UAAO;AAAA,QAAA,CACxD,GACO6D,QAAAA,MAAM,sBAAsBA,CAAK,GAClC2B;MACT;AAAA,IAAA,CACD;AAAA,EAEA,GAAA,CAACxF,GAAaT,GAAeqC,CAAgB,CAAC,GAE7CiE,IAAiBpD,EAAY,MAAM;AAEvC,IAAI3B,KAAAA,QAAAA,EAAUyB,YACZzB,EAASyB,QAAQ8B,SACjBvD,EAASyB,QAAQ6B,cAAc,IAExB1D,EAAA;AAAA,MAAEe,MAAM;AAAA,MAAU1B,cAAc;AAAA,QAAEE,WAAW;AAAA,MAAO;AAAA,IAAA,CAAG;AAAA,EAAA,GAC/D,CAACa,CAAQ,CAAC,GAEPgF,IAAkBrD,EAAY,MAAM;AAC/B,IAAA/B,EAAA;AAAA,MAAEe,MAAM;AAAA,MAAU1B,cAAc;AAAA,QAAEE,WAAW;AAAA,MAAS;AAAA,IAAA,CAAG,GAC9Da,EAASyB,YACXzB,EAASyB,QAAQ6B,cAAc;AAAA,EACjC,GACC,CAACtD,CAAQ,CAAC;AAKbS,EAAAA,EAAU,MAAM;AACVvB,QAAAA,MAAgB,eAAeK,GAAc;AAC/C,YAAM0F,IAAQpB,OAAOqB;AAAAA;AAAAA,QAEnB,MAAM;AACK,UAAAtF,EAAA;AAAA,YACPe,MAAM;AAAA,YACN1B,cAAc;AAAA,cACZS,YAAYH,EAAa+D;AAAAA,YAC3B;AAAA,UAAA,CACD,GAEG/D,EAAa+D,eAAe7D,MACZgE,KAClBI,OAAOsB,cAAcF,CAAK;AAAA,QAE9B;AAAA,QACA;AAAA,MAAA;AAGK,aAAA,MAAMpB,OAAOsB,cAAcF,CAAK;AAAA,IACzC;AAAA,KACC,CAAC1F,GAAckE,GAAmBhE,GAAaP,CAAW,CAAC;AAE9D,QAAMkG,IAEAjF,EADJjB,MAAgB,SACV,2BACA,yBADwB,GAG1BmG,IAA8B,CAClC;AAAA,IACE1E,MAAM;AAAA,IACN2E,MAAM;AAAA,IACN1G,YAAYM,MAAgB,cAAc,SAAS;AAAA,IACnDqG,OAAO;AAAA,MACLC,MAAM,gBAAAC,EAACC,GAAK,EAAA,MAAK,SAAW,CAAA;AAAA,MAC5BC,OAAO;AAAA,MACPC,UACG1G,MAAgB,UAAUA,MAAgB,YAC3CQ,KAAcD;AAAAA,MAChBoG,SAASxC;AAAAA,MACT,cAAc+B;AAAAA,IAChB;AAAA,IACAU,SAASV;AAAAA,EAAAA,GAEX;AAAA,IACEzE,MAAM;AAAA,IACN2E,MAAM;AAAA,IACN1G,YAAYM,MAAgB,cAAc,SAAS;AAAA,IACnDqG,OAAO;AAAA,MACLC,MAAM,gBAAAC,EAACC,GAAK,EAAA,MAAK,eAAiB,CAAA;AAAA,MAClCC,OAAO;AAAA,MACPC,UAAU1G,MAAgB;AAAA,MAC1B2G,SAASpC;AAAAA,MACT,cAActD,EAAE,wBAAwB;AAAA,IAC1C;AAAA,IACA2F,SAAS3F,EAAE,wBAAwB;AAAA,EAAA,GAErC;AAAA,IAAEQ,MAAM;AAAA,EAAA,GACR;AAAA,IACEA,MAAM;AAAA,IACN2E,MAAM;AAAA,IACN1G,YAAYe,IAAa,SAAS;AAAA,IAClC4F,OAAO;AAAA,MACLC,MACE,gBAAAC,EAACC,GAAK,EAAA,MAAK,UAAS,OAAO;AAAA,QAAEK,WAAW;AAAA,MAAA,GACzC;AAAA,MACDH,UAAU;AAAA,IACZ;AAAA,EAAA,GAEF;AAAA,IACEjF,MAAM;AAAA,IACN2E,MAAM;AAAA,IACN1G,YAAYe,KAAcR,MAAc,YAAY,SAAS;AAAA,IAC7DoG,OAAO;AAAA,MACLC,MAAM,gBAAAC,EAACC,GAAK,EAAA,MAAK,cAAgB,CAAA;AAAA,MACjCE,UACE1G,MAAgB,cAChBA,MAAgB,YAChBA,MAAgB;AAAA,MAClB2G,SAAS5B;AAAAA,MACT,cAAc9D,EAAE,sBAAsB;AAAA,IACxC;AAAA,IACA2F,SAAS3F,EAAE,sBAAsB;AAAA,EAAA,GAEnC;AAAA,IACEQ,MAAM;AAAA,IACN2E,MAAM;AAAA,IACN1G,YAAY,CAACe,KAAcR,MAAc,YAAY,SAAS;AAAA,IAC9DoG,OAAO;AAAA,MACLC,MAAM,gBAAAC,EAACC,GAAK,EAAA,MAAK,QAAU,CAAA;AAAA,MAC3BG,SAAS1B;AAAAA,MACT,cAAchE,EAAE,sBAAsB;AAAA,IACxC;AAAA,IACA2F,SAAS3F,EAAE,sBAAsB;AAAA,EAAA,GAEnC;AAAA,IACEQ,MAAM;AAAA,IACN2E,MAAM;AAAA,IACNC,OAAO;AAAA,MACLC,MAAM,gBAAAC,EAACC,GAAK,EAAA,MAAK,UAAY,CAAA;AAAA,MAC7BE,UAAUzG,MAAc,aAAaA,MAAc;AAAA,MACnD0G,SAASd;AAAAA,MACT,cAAc5E,EAAE,qBAAqB;AAAA,IACvC;AAAA,IACA2F,SAAS3F,EAAE,qBAAqB;AAAA,EAAA,GAElC;AAAA,IAAEQ,MAAM;AAAA,EAAA,GACR;AAAA,IACEA,MAAM;AAAA,IACN2E,MAAM;AAAA,IACNC,OAAO;AAAA,MACLC,MAAM,gBAAAC,EAACC,GAAK,EAAA,MAAK,UAAY,CAAA;AAAA,MAC7BE,UACE1G,MAAgB,cAChBA,MAAgB,YAChBC,MAAc,aACdA,MAAc;AAAA,MAChB0G,SAASzB;AAAAA,MACT,cAAcjE,EAAE,wBAAwB;AAAA,IAC1C;AAAA,IACA2F,SAAS3F,EAAE,wBAAwB;AAAA,EAAA,GAErC;AAAA,IACEQ,MAAM;AAAA,IACN2E,MAAM;AAAA,IACN1G,YAAYD,IAAiB,SAAS;AAAA,IACtC4G,OAAO;AAAA,MACLC,MAAM,gBAAAC,EAACC,GAAK,EAAA,MAAK,OAAS,CAAA;AAAA,MAC1BE,UACG1G,MAAgB,cACfA,MAAgB,YAChBC,MAAc,aACdA,MAAc,YAChBD,MAAgB,WAChB,GAACY,IAAAA,EAAa2B,YAAb3B,QAAAA,EAAsByE;AAAAA,MACzBsB,SAASxB;AAAAA,MACT,cAAclE,EAAE,uBAAuB;AAAA,IACzC;AAAA,IACA2F,SAAS3F,EAAE,uBAAuB;AAAA,EAAA,CACnC;AAGI,SAAA;AAAA,IACLjB,aAAAA;AAAAA,IACAC,WAAAA;AAAAA,IACAI,cAAAA;AAAAA,IACAG,YAAYA,IAAa;AAAA,IACzBD,aAAaA,IAAc;AAAA,IAC3BO,UAAAA;AAAAA,IACAF,cAAAA;AAAAA,IACAuF,cAAAA;AAAAA,IACAL,iBAAAA;AAAAA,IACAX,YAAAA;AAAAA,EAAAA;AAEJ;"}
@@ -1,32 +1,33 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { useState } from "react";
3
- import { useTranslation } from "react-i18next";
4
- import { TextArea } from "../../../components/TextArea/TextArea.js";
5
- import { Icon } from "../../../components/Icon/Icon.js";
6
- import { FormControl } from "../../../components/Form/FormControl.js";
7
- const Embed = ({
8
- onSuccess
1
+ import { jsxs as i, jsx as r } from "react/jsx-runtime";
2
+ import { useState as o } from "react";
3
+ import { useTranslation as s } from "react-i18next";
4
+ import { TextArea as c } from "../../../components/TextArea/TextArea.js";
5
+ import { Icon as b } from "../../../components/Icon/Icon.js";
6
+ import { FormControl as f } from "../../../components/Form/FormControl.js";
7
+ const N = ({
8
+ onSuccess: l
9
9
  }) => {
10
10
  const {
11
11
  t
12
- } = useTranslation(), [htmlContent, setHTMLContent] = useState();
13
- function handleContentChange(event) {
14
- const HTMLContent = event.target.value;
15
- setHTMLContent(HTMLContent), HTMLContent != null && HTMLContent.length ? onSuccess(HTMLContent) : onSuccess();
12
+ } = s(), [e, n] = o();
13
+ function d(a) {
14
+ const m = a.target.value;
15
+ n(m), m != null && m.length ? l(m) : l();
16
16
  }
17
- return /* @__PURE__ */ jsxs("div", { className: "d-flex flex-column flex-fill", children: [
18
- /* @__PURE__ */ jsx("div", { className: "mb-32", children: t("bbm.embed.description") }),
19
- /* @__PURE__ */ jsxs("div", { className: "mb-8 d-flex", children: [
20
- /* @__PURE__ */ jsx(Icon, { name: "code", className: "me-8" }),
17
+ return /* @__PURE__ */ i("div", { className: "d-flex flex-column flex-fill", children: [
18
+ /* @__PURE__ */ r("div", { className: "mb-32", children: t("bbm.embed.description") }),
19
+ /* @__PURE__ */ i("div", { className: "mb-8 d-flex", children: [
20
+ /* @__PURE__ */ r(b, { name: "code", className: "me-8" }),
21
21
  t("bbm.embed.title")
22
22
  ] }),
23
- /* @__PURE__ */ jsx(FormControl, { id: "iframeContent", children: /* @__PURE__ */ jsx(TextArea, { size: "md", height: "sm", placeholder: t("bbm.embed.placeholder"), onChange: handleContentChange }) }),
24
- !!(htmlContent != null && htmlContent.length) && /* @__PURE__ */ jsx("div", { className: "embed-preview mt-12", dangerouslySetInnerHTML: {
25
- __html: htmlContent
23
+ /* @__PURE__ */ r(f, { id: "iframeContent", children: /* @__PURE__ */ r(c, { size: "md", height: "sm", placeholder: t("bbm.embed.placeholder"), onChange: d }) }),
24
+ !!(e != null && e.length) && /* @__PURE__ */ r("div", { className: "embed-preview mt-12", dangerouslySetInnerHTML: {
25
+ __html: e
26
26
  } }),
27
- !(htmlContent != null && htmlContent.length) && /* @__PURE__ */ jsx("div", { className: "embed-preview mt-12 d-flex align-items-center justify-content-center bg-gray-300 text-black-50 rounded-3", children: /* @__PURE__ */ jsx("strong", { children: t("bbm.embed.preview") }) })
27
+ !(e != null && e.length) && /* @__PURE__ */ r("div", { className: "embed-preview mt-12 d-flex align-items-center justify-content-center bg-gray-300 text-black-50 rounded-3", children: /* @__PURE__ */ r("strong", { children: t("bbm.embed.preview") }) })
28
28
  ] });
29
29
  };
30
30
  export {
31
- Embed as default
31
+ N as default
32
32
  };
33
+ //# sourceMappingURL=Embed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Embed.js","sources":["../../../../src/modules/multimedia/Embed/Embed.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { FormControl, Icon, TextArea } from '../../../components';\n\nexport interface EmbedProps {\n onSuccess: (resource?: string) => void;\n}\n\nconst Embed = ({ onSuccess }: EmbedProps) => {\n const { t } = useTranslation();\n\n const [htmlContent, setHTMLContent] = useState<string>();\n\n function handleContentChange(event: React.ChangeEvent<HTMLTextAreaElement>) {\n const HTMLContent = event.target.value;\n\n setHTMLContent(HTMLContent);\n\n if (HTMLContent?.length) {\n onSuccess(HTMLContent);\n } else {\n onSuccess();\n }\n }\n\n return (\n <div className=\"d-flex flex-column flex-fill\">\n <div className=\"mb-32\">{t('bbm.embed.description')}</div>\n <div className=\"mb-8 d-flex\">\n <Icon name=\"code\" className=\"me-8\" />\n {t('bbm.embed.title')}\n </div>\n <FormControl id=\"iframeContent\">\n <TextArea\n size=\"md\"\n height=\"sm\"\n placeholder={t('bbm.embed.placeholder')}\n onChange={handleContentChange}\n />\n </FormControl>\n {!!htmlContent?.length && (\n <div\n className=\"embed-preview mt-12\"\n dangerouslySetInnerHTML={{ __html: htmlContent }}\n ></div>\n )}\n {!htmlContent?.length && (\n <div className=\"embed-preview mt-12 d-flex align-items-center justify-content-center bg-gray-300 text-black-50 rounded-3\">\n <strong>{t('bbm.embed.preview')}</strong>\n </div>\n )}\n </div>\n );\n};\n\nexport default Embed;\n"],"names":["Embed","onSuccess","t","useTranslation","htmlContent","setHTMLContent","useState","handleContentChange","event","HTMLContent","target","value","length","jsxs","jsx","Icon","FormControl","TextArea","__html"],"mappings":";;;;;;AAUA,MAAMA,IAAQA,CAAC;AAAA,EAAEC,WAAAA;AAAsB,MAAM;AACrC,QAAA;AAAA,IAAEC;AAAAA,MAAMC,EAAe,GAEvB,CAACC,GAAaC,CAAc,IAAIC,EAAiB;AAEvD,WAASC,EAAoBC,GAA+C;AACpEC,UAAAA,IAAcD,EAAME,OAAOC;AAEjCN,IAAAA,EAAeI,CAAW,GAEtBA,KAAAA,QAAAA,EAAaG,SACfX,EAAUQ,CAAW,IAEXR;EAEd;AAGE,SAAA,gBAAAY,EAAC,OAAI,EAAA,WAAU,gCACb,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAI,EAAA,WAAU,SAASZ,UAAAA,EAAE,uBAAuB,GAAE;AAAA,IACnD,gBAAAW,EAAC,OAAI,EAAA,WAAU,eACb,UAAA;AAAA,MAAA,gBAAAC,EAACC,GAAK,EAAA,MAAK,QAAO,WAAU,QAAM;AAAA,MACjCb,EAAE,iBAAiB;AAAA,IAAA,GACtB;AAAA,sBACCc,GAAY,EAAA,IAAG,iBACd,UAAA,gBAAAF,EAACG,KACC,MAAK,MACL,QAAO,MACP,aAAaf,EAAE,uBAAuB,GACtC,UAAUK,EAAoB,CAAA,GAElC;AAAA,IACC,CAAC,EAACH,KAAAA,QAAAA,EAAaQ,6BACb,OACC,EAAA,WAAU,uBACV,yBAAyB;AAAA,MAAEM,QAAQd;AAAAA,IAAAA,GACpC;AAAA,IAEF,EAACA,KAAAA,QAAAA,EAAaQ,WACb,gBAAAE,EAAC,OAAI,EAAA,WAAU,4GACb,UAAA,gBAAAA,EAAC,UAAQZ,EAAAA,UAAAA,EAAE,mBAAmB,EAAE,CAAA,GAClC;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}