@brightspot/ui 3.0.1-cms-ui-migration.1 → 3.0.1-cms-ui-migration.3

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 (303) hide show
  1. package/README.md +54 -35
  2. package/dist/custom-elements.json +2536 -2536
  3. package/dist/storybook/assets/{ActionBar.stories-BhdqLyzJ.js → ActionBar.stories-CSxtZl7v.js} +1 -1
  4. package/dist/storybook/assets/{ActionItem.stories-17zjMCkO.js → ActionItem.stories-BWcMRMP3.js} +1 -1
  5. package/dist/storybook/assets/{Avatar.stories-C5m3-zOH.js → Avatar.stories-CYTUGXzH.js} +1 -1
  6. package/dist/storybook/assets/{AvatarGroup.stories-DE88PJ6w.js → AvatarGroup.stories-CSYBYo_5.js} +1 -1
  7. package/dist/storybook/assets/{Badge.stories-D905HmvO.js → Badge.stories-LuF4BuVr.js} +1 -1
  8. package/dist/storybook/assets/{Button-ANyLESGb.js → Button-CrXCMxHb.js} +1 -1
  9. package/dist/storybook/assets/{Button.stories-DbH6q5L3.js → Button.stories-JVwxdrdM.js} +1 -1
  10. package/dist/storybook/assets/{ButtonGroup.stories-loqgAB7p.js → ButtonGroup.stories-qtq64a1H.js} +1 -1
  11. package/dist/storybook/assets/{Celebrate.stories-CRO3rSgp.js → Celebrate.stories-DjTtaSd6.js} +1 -1
  12. package/dist/storybook/assets/{Checkbox.stories-SZtgfbFe.js → Checkbox.stories-v1Pr5mL6.js} +1 -1
  13. package/dist/storybook/assets/{CircularProgress.stories-VayPxO4M.js → CircularProgress.stories-DkV7PJ4D.js} +1 -1
  14. package/dist/storybook/assets/{ClipboardMixin.stories-0EB2O2zT.js → ClipboardMixin.stories-Dh5c7uSM.js} +1 -1
  15. package/dist/storybook/assets/{Color-6BZIO3FS-CFpcD80i.js → Color-6BZIO3FS-B1gcREt6.js} +1 -1
  16. package/dist/storybook/assets/{Colors.stories-BJGM6xnp.js → Colors.stories-DnubtRqn.js} +1 -1
  17. package/dist/storybook/assets/{CombinedEffects.stories-DUwocYcn.js → CombinedEffects.stories-By6akSve.js} +1 -1
  18. package/dist/storybook/assets/{ComponentStatesMixin-MUqdPCf7.js → ComponentStatesMixin-CPLGv3h-.js} +1 -1
  19. package/dist/storybook/assets/{ComponentStatesMixin.stories-DjrxNwE7.js → ComponentStatesMixin.stories-CiQ_lyhm.js} +1 -1
  20. package/dist/storybook/assets/{CopyToClipboard.stories-DptOcPq6.js → CopyToClipboard.stories-cJ7rl3mj.js} +1 -1
  21. package/dist/storybook/assets/{Debounce.stories-BbcIWmhD.js → Debounce.stories-Bw-goobU.js} +1 -1
  22. package/dist/storybook/assets/{DocsRenderer-LL677BLK-Yy8fjeNG.js → DocsRenderer-LL677BLK-CNW57dGQ.js} +3 -3
  23. package/dist/storybook/assets/{Dropdown.stories-Du3LrBR6.js → Dropdown.stories-CwC3HXXd.js} +1 -1
  24. package/dist/storybook/assets/{EmptyState.stories-Dy9P8aOY.js → EmptyState.stories-BUEJwuhP.js} +1 -1
  25. package/dist/storybook/assets/{Events.stories-DvdVQxDf.js → Events.stories-D1mf9buv.js} +1 -1
  26. package/dist/storybook/assets/{Heading.stories-BQ1jFOKn.js → Heading.stories-DO906G4P.js} +1 -1
  27. package/dist/storybook/assets/{HueRipple.stories-CrZFjnRl.js → HueRipple.stories-BOySRSZB.js} +1 -1
  28. package/dist/storybook/assets/{Icon.stories-C2Tj8Lx1.js → Icon.stories-BsqgTbdG.js} +1 -1
  29. package/dist/storybook/assets/{IconButton.stories-DFqouOJb.js → IconButton.stories-aza1AAKk.js} +1 -1
  30. package/dist/storybook/assets/{LinearProgress.stories-DtNw3QX3.js → LinearProgress.stories-CDYmiiex.js} +1 -1
  31. package/dist/storybook/assets/{Pagination.stories-CFiZ9APs.js → Pagination.stories-LXB-x7YB.js} +1 -1
  32. package/dist/storybook/assets/{Popover.stories-DkkTuYag.js → Popover.stories-DY1HesPJ.js} +1 -1
  33. package/dist/storybook/assets/{ReadyMixin-BA01Vm_B.js → ReadyMixin-DmOC67IJ.js} +1 -1
  34. package/dist/storybook/assets/{RovingTabindexMixin.stories-BesAqt48.js → RovingTabindexMixin.stories-BWy0Rq8d.js} +1 -1
  35. package/dist/storybook/assets/{Rtc.stories-iTw43rjp.js → Rtc.stories-DrmdqqbI.js} +1 -1
  36. package/dist/storybook/assets/{ScrollShadow.stories-QYqQCcAo.js → ScrollShadow.stories-DiKFPazh.js} +1 -1
  37. package/dist/storybook/assets/{Switch.stories-BKArq9Mk.js → Switch.stories-BgFnw8_z.js} +1 -1
  38. package/dist/storybook/assets/{Tab.stories-8UdDPvE5.js → Tab.stories-c2wLMooF.js} +1 -1
  39. package/dist/storybook/assets/{Tabs.stories-BPGMZ552.js → Tabs.stories-CjH8seNP.js} +1 -1
  40. package/dist/storybook/assets/{Throttle.stories-CYl5d0r6.js → Throttle.stories-CXysc_QE.js} +1 -1
  41. package/dist/storybook/assets/{Tooltip.stories-cZ0zSlwX.js → Tooltip.stories-6qzyByPm.js} +1 -1
  42. package/dist/storybook/assets/{Upload.stories-CPC7N0Ed.js → Upload.stories-BLxykydQ.js} +1 -1
  43. package/dist/storybook/assets/{UploadItem.stories-D0LClT0a.js → UploadItem.stories-CcfcqdJW.js} +1 -1
  44. package/dist/storybook/assets/{Welcome.stories-C8JUaRas.js → Welcome.stories-CzYS_3fH.js} +1 -1
  45. package/dist/storybook/assets/{Widget.stories-C1FxF24-.js → Widget.stories-Du7T4LAI.js} +1 -1
  46. package/dist/storybook/assets/{WithTooltip-65CFNBJE-BMBo-fie.js → WithTooltip-65CFNBJE-D4LfXdYt.js} +1 -1
  47. package/dist/storybook/assets/{blocks-BTsuXRXZ.js → blocks-DR3fGePu.js} +5 -5
  48. package/dist/storybook/assets/{formatter-EIJCOSYU-BJ1Cwrpx.js → formatter-EIJCOSYU-Cf01216O.js} +1 -1
  49. package/dist/storybook/assets/if-defined-DaMmbcIU.js +1 -0
  50. package/dist/storybook/assets/{iframe-B3YWTqkR.js → iframe-CQArUhO8.js} +4 -4
  51. package/dist/storybook/assets/{iframe-BgFj0b5u.css → iframe-D0roG0J-.css} +1 -1
  52. package/dist/storybook/assets/{index-BBUTVEdP.js → index-B1uI_67G.js} +1 -1
  53. package/dist/storybook/assets/{onFind-NC0lGo-r.js → onFind-BpFkN2Rh.js} +1 -1
  54. package/dist/storybook/assets/{onFind.stories-CqbwQgQF.js → onFind.stories-Cxdeg69X.js} +1 -1
  55. package/dist/storybook/assets/{onRemove.stories-Y8Ycs77o.js → onRemove.stories-BHEWpNrE.js} +1 -1
  56. package/dist/storybook/assets/{onVisible.stories-CcLUE35q.js → onVisible.stories-DFJ3S_ZS.js} +1 -1
  57. package/dist/storybook/assets/{style-map-MSB_ngx3.js → style-map-DJ83UC3V.js} +1 -1
  58. package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-BjkjEDMG.js → syntaxhighlighter-ED5Y7EFY-zYN83mxK.js} +1 -1
  59. package/dist/storybook/iframe.html +2 -2
  60. package/dist/storybook/project.json +1 -1
  61. package/dist/tailwind.config.d.ts +4 -1
  62. package/dist/tailwind.config.d.ts.map +1 -1
  63. package/dist/tailwind.config.js +0 -2
  64. package/dist/tailwind.config.js.map +1 -1
  65. package/dist/tailwind.config.ts +0 -2
  66. package/package.json +16 -2
  67. package/dist/storybook/assets/if-defined-BPCd2NXs.js +0 -1
  68. package/src/legacy/tool-ui/src/main/resources/settings.properties +0 -1
  69. package/src/legacy/tool-ui/src/main/webapp/WEB-INF/web.xml +0 -81
  70. package/src/legacy/tool-ui/src/main/webapp/script/bsp-uploader.js +0 -170
  71. package/src/legacy/tool-ui/src/main/webapp/script/bsp-utils.js +0 -393
  72. package/src/legacy/tool-ui/src/main/webapp/script/content/layout-element.js +0 -141
  73. package/src/legacy/tool-ui/src/main/webapp/script/input/query.js +0 -78
  74. package/src/legacy/tool-ui/src/main/webapp/script/input/workflow.js +0 -718
  75. package/src/legacy/tool-ui/src/main/webapp/script/jquery.extra.js +0 -633
  76. package/src/legacy/tool-ui/src/main/webapp/script/v3/Dropbox.js +0 -18
  77. package/src/legacy/tool-ui/src/main/webapp/script/v3/EditFieldUpdate.js +0 -406
  78. package/src/legacy/tool-ui/src/main/webapp/script/v3/EditFieldUpdateCache.js +0 -1
  79. package/src/legacy/tool-ui/src/main/webapp/script/v3/Notification.js +0 -151
  80. package/src/legacy/tool-ui/src/main/webapp/script/v3/content/edit.js +0 -194
  81. package/src/legacy/tool-ui/src/main/webapp/script/v3/content/state.js +0 -785
  82. package/src/legacy/tool-ui/src/main/webapp/script/v3/csrf.js +0 -35
  83. package/src/legacy/tool-ui/src/main/webapp/script/v3/dashboard.js +0 -65
  84. package/src/legacy/tool-ui/src/main/webapp/script/v3/input/dataTransfer.js +0 -129
  85. package/src/legacy/tool-ui/src/main/webapp/script/v3/input/file.js +0 -433
  86. package/src/legacy/tool-ui/src/main/webapp/script/v3/input/object.js +0 -743
  87. package/src/legacy/tool-ui/src/main/webapp/script/v3/input/read-only.js +0 -17
  88. package/src/legacy/tool-ui/src/main/webapp/script/v3/jquery.frame.js +0 -478
  89. package/src/legacy/tool-ui/src/main/webapp/script/v3/jquery.repeatable.js +0 -2406
  90. package/src/legacy/tool-ui/src/main/webapp/script/v3/plugin/popup.d.ts +0 -2
  91. package/src/legacy/tool-ui/src/main/webapp/script/v3/plugin/popup.js +0 -446
  92. package/src/legacy/tool-ui/src/main/webapp/script/v3/search-filters.js +0 -62
  93. package/src/legacy/tool-ui/src/main/webapp/script/v3/search.js +0 -53
  94. package/src/legacy/tool-ui/src/main/webapp/script/v3.js +0 -1049
  95. package/src/legacy/tool-ui/src/main/webapp/v4/Admin.js +0 -16
  96. package/src/legacy/tool-ui/src/main/webapp/v4/AutoExpand.js +0 -84
  97. package/src/legacy/tool-ui/src/main/webapp/v4/AutoSubmit.js +0 -68
  98. package/src/legacy/tool-ui/src/main/webapp/v4/Bridge.js +0 -536
  99. package/src/legacy/tool-ui/src/main/webapp/v4/CheckboxInput.js +0 -22
  100. package/src/legacy/tool-ui/src/main/webapp/v4/ColorInput.js +0 -5
  101. package/src/legacy/tool-ui/src/main/webapp/v4/ColorInputSpectrum.js +0 -107
  102. package/src/legacy/tool-ui/src/main/webapp/v4/ComboInput.js +0 -1491
  103. package/src/legacy/tool-ui/src/main/webapp/v4/CommunityWidget.js +0 -29
  104. package/src/legacy/tool-ui/src/main/webapp/v4/ContentEdit.js +0 -2427
  105. package/src/legacy/tool-ui/src/main/webapp/v4/ContentLock.js +0 -470
  106. package/src/legacy/tool-ui/src/main/webapp/v4/ContentReporting.js +0 -32
  107. package/src/legacy/tool-ui/src/main/webapp/v4/DataTable.js +0 -31
  108. package/src/legacy/tool-ui/src/main/webapp/v4/DateStringField.js +0 -485
  109. package/src/legacy/tool-ui/src/main/webapp/v4/Entry.js +0 -264
  110. package/src/legacy/tool-ui/src/main/webapp/v4/ExternalItemAuth.js +0 -16
  111. package/src/legacy/tool-ui/src/main/webapp/v4/Form.js +0 -31
  112. package/src/legacy/tool-ui/src/main/webapp/v4/Hierarchy.js +0 -100
  113. package/src/legacy/tool-ui/src/main/webapp/v4/Icon.ts +0 -49
  114. package/src/legacy/tool-ui/src/main/webapp/v4/ImageEditor.js +0 -2403
  115. package/src/legacy/tool-ui/src/main/webapp/v4/ImageEditorBundle.js +0 -5
  116. package/src/legacy/tool-ui/src/main/webapp/v4/LinkCarousel.js +0 -40
  117. package/src/legacy/tool-ui/src/main/webapp/v4/LinkList.js +0 -14
  118. package/src/legacy/tool-ui/src/main/webapp/v4/LinkTable.js +0 -123
  119. package/src/legacy/tool-ui/src/main/webapp/v4/Location.js +0 -19
  120. package/src/legacy/tool-ui/src/main/webapp/v4/LocationMap.js +0 -148
  121. package/src/legacy/tool-ui/src/main/webapp/v4/LookingGlass.js +0 -24
  122. package/src/legacy/tool-ui/src/main/webapp/v4/Message.js +0 -14
  123. package/src/legacy/tool-ui/src/main/webapp/v4/NumberBar.js +0 -32
  124. package/src/legacy/tool-ui/src/main/webapp/v4/Page.js +0 -890
  125. package/src/legacy/tool-ui/src/main/webapp/v4/Preview.js +0 -758
  126. package/src/legacy/tool-ui/src/main/webapp/v4/PreviewEditor.js +0 -86
  127. package/src/legacy/tool-ui/src/main/webapp/v4/PreviewOverlay.js +0 -1005
  128. package/src/legacy/tool-ui/src/main/webapp/v4/PubSub.js +0 -47
  129. package/src/legacy/tool-ui/src/main/webapp/v4/QueryField.js +0 -211
  130. package/src/legacy/tool-ui/src/main/webapp/v4/RegionMap.js +0 -215
  131. package/src/legacy/tool-ui/src/main/webapp/v4/RepeatableContentInputGroup.js +0 -160
  132. package/src/legacy/tool-ui/src/main/webapp/v4/RichTextEditor.js +0 -154
  133. package/src/legacy/tool-ui/src/main/webapp/v4/SearchFields.js +0 -281
  134. package/src/legacy/tool-ui/src/main/webapp/v4/SearchResult.js +0 -255
  135. package/src/legacy/tool-ui/src/main/webapp/v4/SharePreview.js +0 -56
  136. package/src/legacy/tool-ui/src/main/webapp/v4/Sortable.js +0 -874
  137. package/src/legacy/tool-ui/src/main/webapp/v4/StyleEmbeddedContent.js +0 -100
  138. package/src/legacy/tool-ui/src/main/webapp/v4/StyleguidePresets.js +0 -357
  139. package/src/legacy/tool-ui/src/main/webapp/v4/TabContainer.js +0 -360
  140. package/src/legacy/tool-ui/src/main/webapp/v4/Taxonomy.js +0 -27
  141. package/src/legacy/tool-ui/src/main/webapp/v4/ThemeBundleEditor.js +0 -224
  142. package/src/legacy/tool-ui/src/main/webapp/v4/TimedContent.js +0 -147
  143. package/src/legacy/tool-ui/src/main/webapp/v4/TimedContentBundle.js +0 -8
  144. package/src/legacy/tool-ui/src/main/webapp/v4/VideoEditor.js +0 -2417
  145. package/src/legacy/tool-ui/src/main/webapp/v4/VideoEditorBundle.js +0 -8
  146. package/src/legacy/tool-ui/src/main/webapp/v4/ViewMirror.js +0 -52
  147. package/src/legacy/tool-ui/src/main/webapp/v4/ViewPreview.d.ts +0 -13
  148. package/src/legacy/tool-ui/src/main/webapp/v4/ViewPreview.js +0 -177
  149. package/src/legacy/tool-ui/src/main/webapp/v4/Widget.js +0 -90
  150. package/src/legacy/tool-ui/src/main/webapp/v4/__mocks__/fileMock.js +0 -1
  151. package/src/legacy/tool-ui/src/main/webapp/v4/__mocks__/styleMock.js +0 -1
  152. package/src/legacy/tool-ui/src/main/webapp/v4/__mocks__/textArea.mock.js +0 -20
  153. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/globals.js +0 -770
  154. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/ProseMirror.test.js +0 -16
  155. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/index.html +0 -54
  156. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/comment_manager/CommentManager.test.js +0 -29
  157. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/comment_manager/index.html +0 -35
  158. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/custom_keyboard/CustomKeyboard.js +0 -42
  159. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/custom_keyboard/index.html +0 -37
  160. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/enhancement_manager/EnhancementManager.test.js +0 -288
  161. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/enhancement_manager/block.html +0 -38
  162. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/enhancement_manager/inline.html +0 -38
  163. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/enhancement_manager/no-popups.html +0 -38
  164. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/list_manager/ListManager.js +0 -257
  165. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/list_manager/index.html +0 -38
  166. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/menubar/hierarchal.html +0 -33
  167. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/menubar/index.html +0 -33
  168. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/menubar/menubar.test.js +0 -195
  169. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/menubar/small.html +0 -34
  170. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/menubar/tags.html +0 -34
  171. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/placeholder_manager/PlaceholderManager.test.js +0 -134
  172. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/placeholder_manager/has-editable-placeholder.html +0 -32
  173. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/placeholder_manager/has-text.html +0 -34
  174. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/placeholder_manager/index.html +0 -31
  175. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/table_manager/TableManager.test.js +0 -63
  176. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/table_manager/existing.html +0 -48
  177. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/track_manager/TrackManager.test.js +0 -291
  178. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/track_manager/existing.html +0 -39
  179. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/track_manager/insert.html +0 -37
  180. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/Sortable.test.js +0 -105
  181. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/ProseMirror.test.js +0 -41
  182. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/codemirror-shim.test.js +0 -72
  183. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/plugins/collab_manager/CollabManager.test.js +0 -46
  184. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/plugins/enhancement_manager/EnhancementManager.test.js +0 -84
  185. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/plugins/list_manager/ListManager.test.js +0 -54
  186. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/plugins/menubar/menubar.test.js +0 -183
  187. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/plugins/spellcheck/SpellCheck.test.js +0 -45
  188. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/settings/BSSerializer.test.js +0 -346
  189. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/settings/menuItemsBuilder.test.js +0 -226
  190. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/utilities.test.js +0 -118
  191. package/src/legacy/tool-ui/src/main/webapp/v4/appetizeio/Appetizeio.js +0 -5
  192. package/src/legacy/tool-ui/src/main/webapp/v4/appetizeio/AppetizeioEmbedded.js +0 -113
  193. package/src/legacy/tool-ui/src/main/webapp/v4/compat/Fetch.js +0 -16
  194. package/src/legacy/tool-ui/src/main/webapp/v4/compat/jquery.js +0 -32
  195. package/src/legacy/tool-ui/src/main/webapp/v4/compat/requirejs.js +0 -13
  196. package/src/legacy/tool-ui/src/main/webapp/v4/dom/Tether.js +0 -1
  197. package/src/legacy/tool-ui/src/main/webapp/v4/dom/TetherLayout.js +0 -1
  198. package/src/legacy/tool-ui/src/main/webapp/v4/dom/closest.js +0 -1
  199. package/src/legacy/tool-ui/src/main/webapp/v4/dom/create.js +0 -1
  200. package/src/legacy/tool-ui/src/main/webapp/v4/dom/find.js +0 -1
  201. package/src/legacy/tool-ui/src/main/webapp/v4/dom/findAll.js +0 -1
  202. package/src/legacy/tool-ui/src/main/webapp/v4/dom/ifClick.js +0 -1
  203. package/src/legacy/tool-ui/src/main/webapp/v4/dom/ifMatches.js +0 -1
  204. package/src/legacy/tool-ui/src/main/webapp/v4/dom/ifUnmodified.js +0 -1
  205. package/src/legacy/tool-ui/src/main/webapp/v4/dom/index.js +0 -5
  206. package/src/legacy/tool-ui/src/main/webapp/v4/dom/insertBefore.js +0 -1
  207. package/src/legacy/tool-ui/src/main/webapp/v4/dom/insertFirst.js +0 -1
  208. package/src/legacy/tool-ui/src/main/webapp/v4/dom/insertLast.js +0 -1
  209. package/src/legacy/tool-ui/src/main/webapp/v4/dom/onFind.js +0 -1
  210. package/src/legacy/tool-ui/src/main/webapp/v4/dom/onFindOnce.js +0 -1
  211. package/src/legacy/tool-ui/src/main/webapp/v4/dom/onRTEReady.js +0 -1
  212. package/src/legacy/tool-ui/src/main/webapp/v4/dom/onRemove.js +0 -1
  213. package/src/legacy/tool-ui/src/main/webapp/v4/dom/onVisible.js +0 -1
  214. package/src/legacy/tool-ui/src/main/webapp/v4/dom/previousUntil.js +0 -1
  215. package/src/legacy/tool-ui/src/main/webapp/v4/dom/resolveIconCompat.js +0 -40
  216. package/src/legacy/tool-ui/src/main/webapp/v4/rtc/Socket.js +0 -1
  217. package/src/legacy/tool-ui/src/main/webapp/v4/rtc/index.js +0 -1
  218. package/src/legacy/tool-ui/src/main/webapp/v4/rte/ProseMirror.js +0 -909
  219. package/src/legacy/tool-ui/src/main/webapp/v4/rte/README.md +0 -68
  220. package/src/legacy/tool-ui/src/main/webapp/v4/rte/codemirror-shim.d.ts +0 -8
  221. package/src/legacy/tool-ui/src/main/webapp/v4/rte/codemirror-shim.js +0 -274
  222. package/src/legacy/tool-ui/src/main/webapp/v4/rte/collab-workflow.jpeg +0 -0
  223. package/src/legacy/tool-ui/src/main/webapp/v4/rte/interchangeable.ts +0 -250
  224. package/src/legacy/tool-ui/src/main/webapp/v4/rte/mention.js +0 -90
  225. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/PluginProvider.js +0 -124
  226. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/README.md +0 -46
  227. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/ai_inline_manager/AIInlineManager.ts +0 -124
  228. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/ai_inline_manager/views/AIInlineView.ts +0 -1019
  229. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/ai_manager/AiManager.ts +0 -199
  230. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/collab_manager/CollabManager.js +0 -339
  231. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/collab_manager/views/AvatarView.js +0 -96
  232. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/comment_manager/CommentManager.js +0 -348
  233. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/custom_keyboard/CustomKeyboard.js +0 -110
  234. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/custom_keyboard/README.md +0 -29
  235. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/EnhancementManager.js +0 -428
  236. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/README.md +0 -63
  237. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/commands.js +0 -690
  238. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/constants.js +0 -12
  239. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/enhancement-creation.jpeg +0 -0
  240. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/index.js +0 -15
  241. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/rte-flow.jpeg +0 -0
  242. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/views/ActionButtonView.js +0 -86
  243. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/views/BlockSubmenuView.js +0 -60
  244. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/views/EnhancementView.js +0 -208
  245. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/views/PreviewView.js +0 -102
  246. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/views/SubmenuView.js +0 -365
  247. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/find_replace_manager/FindReplaceManager.js +0 -239
  248. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/find_replace_manager/views/FindView.js +0 -604
  249. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/fullscreen_manager/FullscreenManager.js +0 -57
  250. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/fullscreen_manager/README.md +0 -26
  251. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/fullscreen_manager/commands.js +0 -16
  252. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/fullscreen_manager/index.js +0 -4
  253. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/fullscreen_manager/views/FullscreenView.js +0 -474
  254. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/html_editor_manager/htmlEditorManager.js +0 -66
  255. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/html_editor_manager/views/HtmlEditorView.js +0 -97
  256. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/list_manager/ListManager.js +0 -342
  257. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/list_manager/README.md +0 -50
  258. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/list_manager/commands.js +0 -207
  259. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/list_manager/constants.js +0 -26
  260. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/list_manager/index.js +0 -4
  261. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/menubar/Menubar.js +0 -485
  262. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/menubar/README.md +0 -40
  263. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/menubar/views/MenuView.js +0 -842
  264. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/paste_manager/PasteManager.js +0 -368
  265. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/placeholder_manager/PlaceHolderManager.js +0 -128
  266. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/raw_text_manager/README.md +0 -13
  267. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/raw_text_manager/RawTextManager.js +0 -96
  268. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/spellcheck/index.js +0 -3
  269. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/spellcheck/spellcheck-plugin.js +0 -280
  270. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/spellcheck/spellcheck-service.js +0 -94
  271. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/table_manager/TableManager.js +0 -57
  272. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/table_manager/commands.js +0 -97
  273. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/table_manager/views/TableSizerView.js +0 -88
  274. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/table_manager/views/TableView.js +0 -613
  275. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/track_manager/README.md +0 -13
  276. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/track_manager/TrackManager.js +0 -905
  277. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/BSSerializer.js +0 -819
  278. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/README.md +0 -80
  279. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/commands.js +0 -98
  280. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/constants.d.ts +0 -84
  281. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/constants.js +0 -87
  282. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/index.js +0 -13
  283. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/keymapBuilder.js +0 -223
  284. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/menuItemsBuilder.js +0 -559
  285. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/schemaBuilder.js +0 -1281
  286. package/src/legacy/tool-ui/src/main/webapp/v4/rte/utilities.d.ts +0 -4
  287. package/src/legacy/tool-ui/src/main/webapp/v4/rte/utilities.js +0 -359
  288. package/src/legacy/tool-ui/src/main/webapp/v4/theme/ColorRotator.js +0 -1
  289. package/src/legacy/tool-ui/src/main/webapp/v4/util/debounce.js +0 -1
  290. package/src/legacy/tool-ui/src/main/webapp/v4/util/getComponentKey.js +0 -1
  291. package/src/legacy/tool-ui/src/main/webapp/v4/util/noise.js +0 -1
  292. package/src/legacy/tool-ui/src/main/webapp/v4/util/repaint.js +0 -1
  293. package/src/legacy/tool-ui/src/main/webapp/v4/util/storage.js +0 -1
  294. package/src/legacy/tool-ui/src/main/webapp/v4/util/throttle.js +0 -1
  295. package/src/legacy/tool-ui/src/main/webapp/v4/widget/AssignmentContent.js +0 -33
  296. package/src/legacy/tool-ui/src/main/webapp/v4/widget/AssignmentDeskDashboard.js +0 -217
  297. package/src/legacy/tool-ui/src/main/webapp/v4/widget/AssociatedContentWidget.js +0 -7
  298. package/src/legacy/tool-ui/src/main/webapp/v4/widget/BulkUpload.js +0 -19
  299. package/src/legacy/tool-ui/src/main/webapp/v4/widget/Calendar.js +0 -7
  300. package/src/legacy/tool-ui/src/main/webapp/v4/widget/ClosableWindow.js +0 -13
  301. package/src/legacy/tool-ui/src/main/webapp/v4/widget/PitchAssignments.js +0 -25
  302. package/src/legacy/tool-ui/src/main/webapp/v4/widget/PitchContent.js +0 -33
  303. package/src/legacy/tool-ui/src/main/webapp/v4/widget/Revisions.js +0 -61
@@ -1,690 +0,0 @@
1
- import {
2
- getEnhancementEditFormURL,
3
- setUpSubscription,
4
- setUpAndTriggerFrame,
5
- } from './EnhancementManager'
6
- import { closeLayeredPopups, getObjectValue } from '../../utilities'
7
- import { toggleMark, setBlockType } from 'prosemirror-commands'
8
- import { DOMSerializer, Fragment, Slice } from 'prosemirror-model'
9
- import { v1 as uuidv1 } from 'uuid'
10
- import { TextSelection, NodeSelection } from 'prosemirror-state'
11
- import scrollParent from 'scrollparent'
12
- import Cookies from 'js.cookie'
13
-
14
- function fetchInstance(typeId) {
15
- const body = new FormData()
16
- body.append('typeId', typeId)
17
-
18
- return fetch('/cms/rte/instance', {
19
- method: 'POST',
20
- headers: {
21
- 'Brightspot-CSRF': Cookies.get('bsp.csrf'),
22
- },
23
- body,
24
- })
25
- }
26
-
27
- // Returns all slots where an enhancement can be placed.
28
- function getSlots(state, getPos) {
29
- // Find all top level nodes and their offsets.
30
- const doc = state.doc
31
- const children = []
32
-
33
- doc.forEach((node, offset, index) => {
34
- children.push({ node, offset, index })
35
- })
36
-
37
- // Find all slots where an enhancement can be placed.
38
- const slots = []
39
- const from = getPos()
40
- const to = from + doc.nodeAt(from).nodeSize
41
- const lastIndex = children.length - 1
42
- const lineType = state.schema.nodes.line
43
-
44
- for (let i = 0, l = children.length; i < l; ++i) {
45
- const { node, offset, index } = children[i]
46
-
47
- const addSlot = (offset, emptyLine) => {
48
- slots.push({
49
- offset,
50
- current: offset === from,
51
- emptyLine,
52
- betweenLines:
53
- i > 0 &&
54
- i < lastIndex &&
55
- children[i - 1].node.type === lineType &&
56
- children[i + 1].node.type === lineType,
57
- })
58
- }
59
-
60
- if (node.type === lineType) {
61
- if (node.textContent === '') {
62
- // On an empty line.
63
- addSlot(offset, true)
64
- } else if (index === 0) {
65
- // At the beginning before a line of text.
66
- addSlot(offset)
67
- } else if (index === lastIndex) {
68
- // At the end after a line of text.
69
- addSlot(offset + node.nodeSize)
70
- }
71
- } else {
72
- // Before an enhancement, unless there was another enhancement before this
73
- // one, because it would've already been added.
74
- if (
75
- offset !== to &&
76
- (slots.length === 0 || offset !== slots[slots.length - 1].offset)
77
- ) {
78
- addSlot(offset)
79
- }
80
-
81
- // After an enhancement, unless this is the current enhancement that's
82
- // being moved.
83
- if (offset !== from) {
84
- addSlot(offset + node.nodeSize)
85
- }
86
- }
87
- }
88
-
89
- return slots
90
- }
91
-
92
- // Moves an enhancement.
93
- async function moveTo(state, dispatch, view, from, to, scroll) {
94
- const tr = state.tr
95
- const fromOffset = from.offset
96
- let toOffset = to.offset
97
- const enh = state.doc.nodeAt(fromOffset)
98
-
99
- // Deletes the enhancement at the original position.
100
- const del = () => {
101
- tr.setSelection(NodeSelection.create(tr.doc, fromOffset))
102
-
103
- // If the enhancement was in between two lines of text, insert an empty
104
- // line to maintain the paragraph structure.
105
- if (from.betweenLines) {
106
- tr.replaceSelectionWith(state.schema.nodes.line.create())
107
- } else {
108
- tr.deleteSelection()
109
- }
110
- }
111
-
112
- // Inserts the enhancement at the new position.
113
- const ins = () => {
114
- // If the enhancement is being moved in between two lines of text, delete
115
- // the empty line that's there.
116
- tr.setSelection(
117
- (to.emptyLine ? NodeSelection : TextSelection).create(tr.doc, toOffset),
118
- )
119
-
120
- tr.replaceSelectionWith(enh)
121
- }
122
-
123
- // Insert and delete from the bottom to the top so that the offsets aren't
124
- // affected.
125
- if (fromOffset > toOffset) {
126
- del()
127
- ins()
128
- } else {
129
- ins()
130
- del()
131
-
132
- // Recalculate the offset of where the enhancement moved to.
133
- toOffset -= enh.nodeSize
134
-
135
- if (from.betweenLines) {
136
- // Size of an empty line.
137
- toOffset += 2
138
- }
139
- }
140
-
141
- // Remember the enhancement position before the move.
142
- const fromDOM = view.nodeDOM(fromOffset)
143
- const parent = scrollParent(fromDOM)
144
- const fromTop = fromDOM.getBoundingClientRect().top
145
-
146
- // Select the moved enhancement and finalize the move.
147
- const finalize = () => {
148
- tr.setSelection(NodeSelection.create(tr.doc, toOffset))
149
- dispatch(tr)
150
- }
151
- // Animate the move using the ViewTransition API if the browser supports
152
- // it (https://developer.mozilla.org/en-US/docs/Web/API/View_Transition_API).
153
- if (window.BRIGHTSPOT?.ui.cms.enableV5UI && document.startViewTransition) {
154
- const container = fromDOM.closest('.ProseMirror')
155
- container.classList.add('is-viewTransition')
156
- const transition = document.startViewTransition(() => finalize())
157
- await transition.finished
158
- container.classList.remove('is-viewTransition')
159
- } else {
160
- finalize()
161
- }
162
-
163
- // Use the enhancement position before and after the move to scroll the parent
164
- // so that the user doesn't have to scroll to get back to the enhancement.
165
- if (scroll && parent) {
166
- parent.scrollTop +=
167
- view.nodeDOM(toOffset).getBoundingClientRect().top - fromTop
168
- }
169
- }
170
-
171
- /**
172
- * Sets up a popup for any enhancement that has a popup.
173
- *
174
- * @param {Object} meta
175
- * @param {ProseMirror.State} state
176
- * @param {ProseMirror.Dispatch} dispatch
177
- * @param {Event} evt
178
- */
179
- const setUpPopup = (editorView, meta, state, dispatch, evt) => {
180
- let url = getEnhancementEditFormURL(
181
- meta.typeId,
182
- evt.target,
183
- meta.isCustom,
184
- meta.customUrl,
185
- )
186
- // The user might have engaged the insert menu command after selecting
187
- // a node in the RTE, which would mean we might have some text that
188
- // we can send as the body query param
189
- const { from, to } = state.selection
190
- const text = state.doc.textBetween(from, to) || ''
191
- // Setting the body query param autopopulates the Body Text field. It is
192
- // ok to populate with an empty string because the form will handle validation
193
- // server-side.
194
- url = `${url}&body=${encodeURIComponent(text)}`
195
-
196
- const tempId = `Prosemirror.event-${Date.now()}`
197
- evt.target.setAttribute('href', url)
198
- evt.target.setAttribute('data-event-id', tempId)
199
- if (!meta.isCustom || (meta.isCustom && meta.isDataFramePost)) {
200
- evt.target.setAttribute('data-frame-post', 'true')
201
- }
202
-
203
- setUpSubscription(editorView, tempId, meta, state, dispatch, evt, text)
204
- setUpAndTriggerFrame(evt)
205
- }
206
-
207
- const insertNonEditableNoFieldsEnhancements = (obj) => {
208
- return function (state, dispatch, editorView, evt) {
209
- fetchInstance(obj.typeId)
210
- .then((res) => res.json())
211
- .then((data) => {
212
- const text = data.body || ''
213
- const contentJSON = [
214
- {
215
- type: obj.tag,
216
- content: [{ type: 'text', text: text }],
217
- attrs: {
218
- meta: obj,
219
- label: text,
220
- },
221
- },
222
- ]
223
- let fragment = Fragment.fromJSON(state.schema, contentJSON)
224
- const slice = new Slice(fragment, 0, 0)
225
- let transaction = state.tr
226
- transaction = transaction.replaceSelection(slice)
227
- dispatch(transaction)
228
- })
229
- .catch((error) => {
230
- console.error('RTE Error:', error)
231
- })
232
- }
233
- }
234
-
235
- /**
236
- * Inserts editable inline enhancements.
237
- *
238
- * @param {Object} meta The enhancement meta data.
239
- */
240
- const insertEditableInlineEnhancements = (meta) => {
241
- return function (state, dispatch, editorView, evt) {
242
- if (meta.popup) {
243
- setUpPopup(editorView, meta, state, dispatch, evt)
244
- } else {
245
- toggleMark(state.schema.marks[meta.tag])(state, dispatch)
246
- }
247
- }
248
- }
249
-
250
- /**
251
- * Command to insert enhancements without popups.
252
- * Enhancements that do not have popups are inserted as either nodes if they
253
- * are line enhancements or marks if they are inline.
254
- *
255
- * @param {Object.<string|Array.<string>>} obj The object representation
256
- * of the enhancement, which the backend provides
257
- */
258
- const insertEnhancementWithoutPopup = (obj) => {
259
- return function (state, dispatch, editorView) {
260
- const schema = state.config.schema
261
- let { $anchor } = state.selection
262
- const nodeType = schema.nodes[obj.tag]
263
- const defaultNodeType = schema.nodes.line
264
-
265
- if (obj.line) {
266
- fetchInstance(obj.typeId)
267
- .then((res) => res.json())
268
- .then((data) => {
269
- const parentNodeType = getObjectValue($anchor, 'parent.type.name')
270
- const newAlignmentState =
271
- parentNodeType === getObjectValue(nodeType, 'name')
272
- ? defaultNodeType
273
- : nodeType
274
- setBlockType(newAlignmentState, { meta: obj })(state, dispatch)
275
-
276
- if (
277
- state.selection.empty &&
278
- data.body &&
279
- parentNodeType !== nodeType.name
280
- ) {
281
- const tr = editorView.state.tr.insert(
282
- $anchor.pos,
283
- state.schema.text(data.body),
284
- )
285
- dispatch(tr)
286
- }
287
- })
288
- .catch((error) => {
289
- console.error('RTE Error:', error)
290
- })
291
- } else {
292
- toggleMark(schema.marks[obj.tag])(state, dispatch)
293
- }
294
- }
295
- }
296
-
297
- /**
298
- * Command to edit an enhancement, which involves gathering the
299
- * data to be sent to the server for the enhancement form generation
300
- * we well as triggering a frame with the popup that holds the form.
301
- * We also subscribe to when the form successful save topic is published
302
- * from the ehancement.jsp.
303
- *
304
- * @param {Prosemirror.Model.Node} node The node in the document tree that
305
- * represents the enhancement.
306
- */
307
- const editEnhancement = (node) => {
308
- /**
309
- * @param {Prosemirror.EditorState} state
310
- * @param {Prosemirror.EditorView.dispatch} dispatch Announces a transaction
311
- * This method is bound to the view instance, so that it can be easily passed around.
312
- * @param {Prosemirror.EditorView} editorView
313
- * @param {Event} evt The DOM event that triggered the edit action. We need this to
314
- * properly trigger the frame and popup.
315
- */
316
- return function (state, dispatch, editorView, evt) {
317
- const meta = node.attrs.meta
318
- const enhancementID = meta.typeId
319
- if (!enhancementID) {
320
- return false
321
- }
322
-
323
- closeLayeredPopups(evt)
324
-
325
- const doc = state.doc
326
- let nodeFrom, nodeTo
327
-
328
- doc.descendants((n, p) => {
329
- if (
330
- n.attrs.id === node.attrs.id ||
331
- n.marks.some((mark) => mark.attrs.id === node.attrs.id)
332
- ) {
333
- if (!nodeFrom) {
334
- nodeFrom = p
335
- }
336
-
337
- nodeTo = p + n.nodeSize
338
- }
339
- })
340
-
341
- const body =
342
- DOMSerializer.fromSchema(state.schema).serializeFragment(
343
- doc.slice(nodeFrom, nodeTo).content,
344
- ).firstElementChild?.innerHTML || ''
345
-
346
- const attributes = JSON.stringify(node.attrs.attributes)
347
- let url = getEnhancementEditFormURL(enhancementID, evt.target)
348
- url = `${url}&body=${encodeURIComponent(
349
- body,
350
- )}&attributes=${encodeURIComponent(attributes)}`
351
-
352
- const tempId = `Prosemirror.event-${Date.now()}`
353
- evt.target.setAttribute('href', url)
354
- evt.target.setAttribute('data-event-id', tempId)
355
- evt.target.setAttribute('data-frame-post', 'true')
356
-
357
- const { empty, from, to } = state.selection
358
- let tr = state.tr
359
- const id = uuidv1()
360
- if (empty) {
361
- tr = tr.setMeta('enhancementManager$', {
362
- add: { id, from },
363
- })
364
- } else {
365
- tr = tr.setMeta('enhancementManager$', {
366
- add: { id, from, to },
367
- })
368
- }
369
- dispatch(tr)
370
-
371
- setUpSubscription(
372
- editorView,
373
- tempId,
374
- meta,
375
- state,
376
- dispatch,
377
- evt,
378
- body,
379
- node,
380
- true,
381
- id,
382
- )
383
- setUpAndTriggerFrame(evt, node.attrs.id, editorView)
384
- PubSub.publish('collabLock', { id: node.attrs.id })
385
- }
386
- }
387
-
388
- /**
389
- * Command to insert an enhancement, which involves determining if text
390
- * has been selected in the RTE and then the Insert command was invoked
391
- * or just invoking the command. We know text has been selected if the state
392
- * selection is not empty. We also subscribe to when the form successful
393
- * save topic is published from the ehancement.jsp.
394
- *
395
- * @param {Object.<string>} meta The global config object for this type
396
- * of enhancement. We attach this to the data payload so we can later
397
- * in the publish step add it to the node attrs, making
398
- * it available on the node for when the user edits the enhancement.
399
- */
400
- const insertEnhancement = (meta) => {
401
- /**
402
- * @param {Prosemirror.EditorState} state
403
- * @param {Prosemirror.EditorView.dispatch} dispatch Announces a transaction
404
- * This method is bound to the view instance, so that it can be easily passed around.
405
- * @param {Prosemirror.EditorView} editorView
406
- * @param {Event} evt The DOM event that triggered the edit action. We need this to
407
- * properly trigger the frame and popup.
408
- */
409
- return function (state, dispatch, editorView, evt) {
410
- if (!meta.popup) {
411
- return
412
- }
413
-
414
- closeLayeredPopups(evt)
415
-
416
- if (
417
- evt.target.classList.contains('active') &&
418
- meta.line &&
419
- !meta.readOnly
420
- ) {
421
- clearEnhancement()(state, dispatch, evt)
422
- return
423
- }
424
-
425
- let url = getEnhancementEditFormURL(
426
- meta.typeId,
427
- evt.target,
428
- meta.isCustom,
429
- meta.customUrl,
430
- )
431
- // The user might have engaged the insert menu command after selecting
432
- // a node in the RTE, which would mean we might have some text that
433
- // we can send as the body query param.
434
- const { empty, from, to } = state.selection
435
-
436
- // Build markup of selected text checking if selection from/to are inline
437
- // text nodes and unwrapping if so.
438
- const body = document.createElement('DIV')
439
-
440
- body.append(
441
- DOMSerializer.fromSchema(state.schema).serializeFragment(
442
- state.doc.slice(from, to).content,
443
- ),
444
- )
445
-
446
- const bodyHtml = body?.innerHTML || ''
447
-
448
- // Setting the body query param autopopulates the Body Text field. It is
449
- // ok to populate with an empty string because the form will handle validation
450
- // server-side.
451
- url = `${url}&body=${encodeURIComponent(bodyHtml)}`
452
-
453
- const tempId = `Prosemirror.event-${Date.now()}`
454
- evt.target.setAttribute('href', url)
455
- evt.target.setAttribute('data-event-id', tempId)
456
- if (!meta.isCustom || (meta.isCustom && meta.isDataFramePost)) {
457
- evt.target.setAttribute('data-frame-post', 'true')
458
- }
459
-
460
- let tr = state.tr
461
- const id = uuidv1()
462
- if (empty) {
463
- tr = tr.setMeta('enhancementManager$', {
464
- add: { id, from },
465
- })
466
- } else {
467
- tr = tr.setMeta('enhancementManager$', {
468
- add: { id, from, to },
469
- })
470
- }
471
- dispatch(tr)
472
-
473
- setUpSubscription(
474
- editorView,
475
- tempId,
476
- meta,
477
- state,
478
- dispatch,
479
- evt,
480
- bodyHtml,
481
- null,
482
- false,
483
- id,
484
- )
485
- setUpAndTriggerFrame(evt, id, editorView)
486
- }
487
- }
488
-
489
- /**
490
- * Removes an enhancement from a text node in the RTE but retains
491
- * the text node without the enhancement (e.g. a user removes a link
492
- * but wants to retain the text of the link). If we are trying to remove
493
- * a mark from a mark's submenu we have to scan the whole document to
494
- * find a node that has the mark with the same UUID of the mark we are
495
- * trying to remove.
496
- *
497
- * @param {Prosemirror.Mark} enhancement The enhancement to be removed.
498
- */
499
- const clearEnhancement = (enhancement) => {
500
- return function (state, dispatch, evt) {
501
- if (!enhancement) {
502
- const { $anchor, anchor } = state.selection
503
- if (state.selection instanceof TextSelection) {
504
- enhancement = $anchor.parent
505
- } else {
506
- enhancement = state.doc.nodeAt(anchor)
507
- }
508
- }
509
-
510
- if (!enhancement) {
511
- return
512
- }
513
-
514
- const id = enhancement.attrs.id
515
- let tr = state.tr
516
- const isLine = getObjectValue(enhancement, 'attrs.meta.line')
517
- if (isLine) {
518
- const defaultNodeType = getObjectValue(state, 'schema.nodes.line')
519
- if (defaultNodeType) {
520
- PubSub.publish('blockEnhancementCleared', evt)
521
- return setBlockType(defaultNodeType)(state, dispatch)
522
- }
523
- } else {
524
- state.doc.descendants((node, pos) => {
525
- const marks = node.marks
526
- const matchingMarks = marks.filter((localMark) => {
527
- return localMark.attrs.id === id
528
- })
529
- matchingMarks.forEach((mark) => {
530
- tr = tr.removeMark(pos, pos + node.nodeSize, mark)
531
- })
532
- })
533
- }
534
-
535
- dispatch(tr)
536
- }
537
- }
538
-
539
- // Moves an enhancement to where the user clicks.
540
- const moveEnhancement = (view, getPos) => {
541
- // Create an overlay that displays where the user can click.
542
- const { state, dispatch } = view
543
- const overlay = document.createElement('div')
544
-
545
- overlay.classList.add('ProseMirror-moveEnhancementOverlay')
546
-
547
- const slots = getSlots(state, getPos)
548
- const from = slots.find((s) => s.current)
549
- const targets = new Map()
550
- const viewDOM = view.dom
551
-
552
- // Resize the overlay and position the targets.
553
- const position = () => {
554
- overlay.style.height = `${viewDOM.offsetHeight}px`
555
- overlay.style.left = `${viewDOM.offsetLeft}px`
556
- overlay.style.top = `${viewDOM.offsetTop}px`
557
- overlay.style.width = `${viewDOM.offsetWidth}px`
558
-
559
- for (const [target, toDOM] of targets) {
560
- target.style.top = `${toDOM.offsetTop}px`
561
- }
562
- }
563
-
564
- const observer = new ResizeObserver(position)
565
-
566
- // Create the targets where the user can click to move the enhancement.
567
- const removeOverlay = () => {
568
- overlay.parentNode.removeChild(overlay)
569
- observer.disconnect()
570
- }
571
-
572
- for (const to of slots) {
573
- const target = document.createElement('div')
574
-
575
- target.classList.add('ProseMirror-moveEnhancementTarget')
576
-
577
- if (to.emptyLine) {
578
- target.classList.add('is-emptyLine')
579
- }
580
-
581
- const toDOM = view.nodeDOM(to.offset)
582
-
583
- if (toDOM) {
584
- targets.set(target, toDOM)
585
- } else {
586
- target.classList.add('is-last')
587
- }
588
-
589
- if (to.current) {
590
- target.classList.add('is-cancel')
591
-
592
- target.innerText = 'Cancel'
593
- target.onclick = removeOverlay
594
- } else {
595
- target.innerText = 'Move'
596
-
597
- target.onclick = () => {
598
- // Remember how tall the enhancement was.
599
- const fromDOM = view.nodeDOM(from.offset)
600
- const parent = scrollParent(fromDOM)
601
- const fromHeight = fromDOM.getBoundingClientRect().height
602
-
603
- // Move the enhancement.
604
- moveTo(state, dispatch, view, from, to)
605
- removeOverlay()
606
-
607
- // If the enhancement was moved down, scroll up so that the RTE is
608
- // roughly at the same position as before.
609
- if (parent && from.offset < to.offset) {
610
- parent.scrollTop -= fromHeight
611
- }
612
- }
613
- }
614
-
615
- overlay.appendChild(target)
616
- }
617
-
618
- position()
619
- viewDOM.parentNode.insertBefore(overlay, viewDOM.nextSibling)
620
- observer.observe(viewDOM)
621
- }
622
-
623
- /**
624
- * Removes an enhancement completely.
625
- */
626
- const removeEnhancement = (view, getPos) => {
627
- const { state, dispatch } = view
628
- const { doc, tr } = state
629
- const from = getPos()
630
- const before = doc.childBefore(from)?.node?.type
631
- const after = doc.childAfter(from + doc.nodeAt(from).nodeSize)?.node?.type
632
- const lineType = state.schema.nodes.line
633
-
634
- tr.setSelection(NodeSelection.create(tr.doc, from))
635
-
636
- if (before === lineType && after === lineType) {
637
- tr.replaceSelectionWith(lineType.create())
638
- } else {
639
- tr.deleteSelection()
640
- }
641
-
642
- dispatch(tr)
643
- }
644
-
645
- /**
646
- * Moves an enhancement up a line.
647
- */
648
- const moveEnhancementUp = (view, getPos) => {
649
- const { state, dispatch } = view
650
- const slots = getSlots(state, getPos)
651
-
652
- for (let i = 1, l = slots.length; i < l; ++i) {
653
- const from = slots[i]
654
-
655
- if (from.current) {
656
- moveTo(state, dispatch, view, from, slots[i - 1], true)
657
- break
658
- }
659
- }
660
- }
661
-
662
- /**
663
- * Moves an enhancement down a line.
664
- */
665
- const moveEnhancementDown = (view, getPos) => {
666
- const { state, dispatch } = view
667
- const slots = getSlots(state, getPos)
668
-
669
- for (let i = 0, l = slots.length - 1; i < l; ++i) {
670
- const from = slots[i]
671
-
672
- if (from.current) {
673
- moveTo(state, dispatch, view, from, slots[i + 1], true)
674
- break
675
- }
676
- }
677
- }
678
-
679
- export {
680
- insertEnhancement,
681
- clearEnhancement,
682
- editEnhancement,
683
- removeEnhancement,
684
- moveEnhancementUp,
685
- moveEnhancementDown,
686
- moveEnhancement,
687
- insertEnhancementWithoutPopup,
688
- insertEditableInlineEnhancements,
689
- insertNonEditableNoFieldsEnhancements,
690
- }
@@ -1,12 +0,0 @@
1
- /**
2
- * Enhancements' Globals
3
- *
4
- * The following are currently globals produced by the backend
5
- * and placed directly in the HTML in the head of the document.
6
- * Abstracting that here to make it easier to move to a different
7
- * mode of backend communication (e.g. servlet) later.
8
- */
9
-
10
- const PM_CONTEXT_PATH = CONTEXT_PATH
11
-
12
- export { PM_CONTEXT_PATH }
@@ -1,15 +0,0 @@
1
- import { enhancementManagerPlugin } from './EnhancementManager'
2
- import {
3
- insertEnhancement,
4
- insertEnhancementWithoutPopup,
5
- insertEditableInlineEnhancements,
6
- insertNonEditableNoFieldsEnhancements,
7
- } from './commands'
8
-
9
- export {
10
- enhancementManagerPlugin,
11
- insertEnhancement,
12
- insertEnhancementWithoutPopup,
13
- insertEditableInlineEnhancements,
14
- insertNonEditableNoFieldsEnhancements,
15
- }