@brightspot/ui 3.0.1-cms-ui-migration.2 → 3.0.1-cms-ui-migration.4

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 (320) hide show
  1. package/README.md +56 -37
  2. package/dist/custom-elements.json +1807 -1807
  3. package/dist/storybook/assets/{ActionBar.stories-hJ_5cm-P.js → ActionBar.stories-BZAVK1QG.js} +1 -1
  4. package/dist/storybook/assets/{ActionItem.stories-Bjx2803w.js → ActionItem.stories-BqiWvlWi.js} +1 -1
  5. package/dist/storybook/assets/{Avatar.stories-Cj0YgZ6f.js → Avatar.stories-DkdB6hd_.js} +1 -1
  6. package/dist/storybook/assets/{AvatarGroup.stories-Lh_sQFCU.js → AvatarGroup.stories-DODqaIix.js} +1 -1
  7. package/dist/storybook/assets/{Badge.stories-BL7RUibx.js → Badge.stories-DZoum08S.js} +1 -1
  8. package/dist/storybook/assets/{Button-BPHNcxqK.js → Button-BkmBgNO-.js} +1 -1
  9. package/dist/storybook/assets/{Button.stories-CAYO4gdU.js → Button.stories-BFhCL2dp.js} +1 -1
  10. package/dist/storybook/assets/{ButtonGroup.stories-Cd13Us5K.js → ButtonGroup.stories-DlTGTvkq.js} +1 -1
  11. package/dist/storybook/assets/{Celebrate.stories-D_KE3Qze.js → Celebrate.stories-m4d4zTEz.js} +1 -1
  12. package/dist/storybook/assets/{Checkbox.stories-Aj1xgZVn.js → Checkbox.stories-Y253YeU7.js} +1 -1
  13. package/dist/storybook/assets/{CircularProgress.stories-BecV_v6d.js → CircularProgress.stories-6BD8uV5G.js} +1 -1
  14. package/dist/storybook/assets/{ClipboardMixin.stories-DU-WiZ2f.js → ClipboardMixin.stories-BkH66rIU.js} +1 -1
  15. package/dist/storybook/assets/{Color-6BZIO3FS-BYl4KZZn.js → Color-6BZIO3FS-iG0OjPBU.js} +1 -1
  16. package/dist/storybook/assets/{Colors.stories-BMUVUy2q.js → Colors.stories-BxiyQnEg.js} +1 -1
  17. package/dist/storybook/assets/{CombinedEffects.stories-FHcPKFm6.js → CombinedEffects.stories-Bs3U7qRl.js} +1 -1
  18. package/dist/storybook/assets/{ComponentStatesMixin-EMUnfT5y.js → ComponentStatesMixin-DampYb5c.js} +1 -1
  19. package/dist/storybook/assets/{ComponentStatesMixin.stories-SXq0kzS9.js → ComponentStatesMixin.stories-CZ2OW7as.js} +1 -1
  20. package/dist/storybook/assets/{CopyToClipboard.stories-u43lhvcI.js → CopyToClipboard.stories-CdlghjaE.js} +1 -1
  21. package/dist/storybook/assets/{Debounce.stories-BdCn5qgO.js → Debounce.stories-CymT8PnT.js} +1 -1
  22. package/dist/storybook/assets/{DocsRenderer-LL677BLK-DxiEJ_jx.js → DocsRenderer-LL677BLK-dqHCo-GE.js} +3 -3
  23. package/dist/storybook/assets/{Dropdown.stories-BWSRwjIF.js → Dropdown.stories-B6JwKg-I.js} +1 -1
  24. package/dist/storybook/assets/{EmptyState.stories-BpobeZL5.js → EmptyState.stories-Bk229lPH.js} +1 -1
  25. package/dist/storybook/assets/{Events.stories-CP5kMzpr.js → Events.stories-C8-k9cx8.js} +1 -1
  26. package/dist/storybook/assets/{Heading.stories-CbJD-oTB.js → Heading.stories-DIdnAQRG.js} +1 -1
  27. package/dist/storybook/assets/{HueRipple.stories-BOABJ7zw.js → HueRipple.stories-B1gXAEaH.js} +1 -1
  28. package/dist/storybook/assets/{Icon.stories-CWlUHL4j.js → Icon.stories--1VJ0_yt.js} +1 -1
  29. package/dist/storybook/assets/{IconButton.stories-BWBs-OLT.js → IconButton.stories-CS2rEIir.js} +1 -1
  30. package/dist/storybook/assets/{LinearProgress.stories-LZ0GZoxF.js → LinearProgress.stories-Bx0CQQls.js} +1 -1
  31. package/dist/storybook/assets/{Pagination.stories-CbLaR3P9.js → Pagination.stories-B4AogTXB.js} +1 -1
  32. package/dist/storybook/assets/{Popover.stories-JHrWqYZw.js → Popover.stories-BR88DPgU.js} +1 -1
  33. package/dist/storybook/assets/{ReadyMixin-B1H2a9x8.js → ReadyMixin-n6qZO39Y.js} +1 -1
  34. package/dist/storybook/assets/{RovingTabindexMixin.stories-UMHpYG73.js → RovingTabindexMixin.stories-1xTJSMSv.js} +1 -1
  35. package/dist/storybook/assets/{Rtc.stories-VQtNSlls.js → Rtc.stories-Rt0A_rUZ.js} +1 -1
  36. package/dist/storybook/assets/{ScrollShadow.stories-CYdi8Tgp.js → ScrollShadow.stories-CjLdJyYu.js} +1 -1
  37. package/dist/storybook/assets/{Switch.stories-D8F2hZCf.js → Switch.stories-CF8wO4v2.js} +1 -1
  38. package/dist/storybook/assets/{Tab.stories-wgBP0lTj.js → Tab.stories-C8XNshog.js} +1 -1
  39. package/dist/storybook/assets/{Tabs.stories-C00rr5sf.js → Tabs.stories-B01l4rQx.js} +1 -1
  40. package/dist/storybook/assets/{Throttle.stories-BhQEfJbS.js → Throttle.stories-Bpi0K5j9.js} +1 -1
  41. package/dist/storybook/assets/{Tooltip.stories-CGoZ5qTn.js → Tooltip.stories-BC4zMiZ1.js} +1 -1
  42. package/dist/storybook/assets/{Upload.stories-B3K-HAXw.js → Upload.stories-2pWv_fZ1.js} +1 -1
  43. package/dist/storybook/assets/{UploadItem.stories-71ArSoUh.js → UploadItem.stories-aLeAUM7y.js} +1 -1
  44. package/dist/storybook/assets/{Welcome.stories-CihlfFXS.js → Welcome.stories-DJV83eb7.js} +1 -1
  45. package/dist/storybook/assets/{Widget.stories-1u4KbiJM.js → Widget.stories-Cz0i2o6L.js} +1 -1
  46. package/dist/storybook/assets/{WithTooltip-65CFNBJE-B3Jitxw9.js → WithTooltip-65CFNBJE-D8QwVYG8.js} +1 -1
  47. package/dist/storybook/assets/{blocks-C1HaXuQB.js → blocks-BFmpEZRy.js} +5 -5
  48. package/dist/storybook/assets/{formatter-EIJCOSYU-Dy9Lt9fs.js → formatter-EIJCOSYU-CdwdJOPy.js} +1 -1
  49. package/dist/storybook/assets/if-defined-gbJXriW-.js +1 -0
  50. package/dist/storybook/assets/{iframe-Dx6IxWXF.js → iframe-CyssRDCd.js} +4 -4
  51. package/dist/storybook/assets/{index-OrjedSVh.js → index-B82i8dhg.js} +1 -1
  52. package/dist/storybook/assets/{onFind-YTqjw6W0.js → onFind-BFI1uIxr.js} +1 -1
  53. package/dist/storybook/assets/{onFind.stories-DEvwTrmx.js → onFind.stories-zZjQs_Gn.js} +1 -1
  54. package/dist/storybook/assets/{onRemove.stories-D5mO-Lin.js → onRemove.stories-pFBwAIex.js} +1 -1
  55. package/dist/storybook/assets/{onVisible.stories-C3Rcz0Eb.js → onVisible.stories-5dErOVRq.js} +1 -1
  56. package/dist/storybook/assets/{style-map-CiMHry7H.js → style-map-D0EcLEWO.js} +1 -1
  57. package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-DIZnuhb2.js → syntaxhighlighter-ED5Y7EFY--2h_dVga.js} +1 -1
  58. package/dist/storybook/iframe.html +1 -1
  59. package/dist/storybook/project.json +1 -1
  60. package/package.json +16 -2
  61. package/src/legacy/tool-ui/src/AnalyticsWidget.css +1 -1
  62. package/src/legacy/tool-ui/src/Board.css +1 -1
  63. package/src/legacy/tool-ui/src/BulkUpload.css +1 -1
  64. package/src/legacy/tool-ui/src/ComboInput.css +1 -1
  65. package/src/legacy/tool-ui/src/Compat.css +5 -5
  66. package/src/legacy/tool-ui/src/ContentEditDrawer.css +1 -1
  67. package/src/legacy/tool-ui/src/Dialog.css +1 -1
  68. package/src/legacy/tool-ui/src/FormFilter.css +1 -1
  69. package/src/legacy/tool-ui/src/Icon/index.css +1 -1
  70. package/src/legacy/tool-ui/src/ImageEditor.css +1 -1
  71. package/src/legacy/tool-ui/src/Incompatible.css +2 -2
  72. package/src/legacy/tool-ui/src/LinkCarousel.css +1 -1
  73. package/src/legacy/tool-ui/src/Page.css +1 -1
  74. package/src/legacy/tool-ui/src/RepeatableContentInputGroup.css +1 -1
  75. package/src/legacy/tool-ui/src/RichText.css +1 -1
  76. package/src/legacy/tool-ui/src/SearchWidget.css +2 -2
  77. package/src/legacy/tool-ui/src/SearchWidgetAdvanced.css +1 -1
  78. package/src/legacy/tool-ui/src/Widget.css +1 -1
  79. package/src/legacy/tool-ui/src/main/webapp/dist/v5.5e5d7f655e174ddd85f5.css +5 -0
  80. package/dist/storybook/assets/if-defined-CA2KmTqA.js +0 -1
  81. package/docs/adr/0001-retire-cms-ui-package-fold-under-src-legacy.md +0 -78
  82. package/docs/adr/0002-yarn-workspaces-preserve-cms-ui-deps.md +0 -130
  83. package/docs/adr/0003-bundle-equivalence-as-fold-acceptance-criterion.md +0 -286
  84. package/src/legacy/tool-ui/src/main/resources/settings.properties +0 -1
  85. package/src/legacy/tool-ui/src/main/webapp/WEB-INF/web.xml +0 -81
  86. package/src/legacy/tool-ui/src/main/webapp/dist/v5.5e3fdf0f0b20b4e3c170.css +0 -5
  87. package/src/legacy/tool-ui/src/main/webapp/script/bsp-uploader.js +0 -170
  88. package/src/legacy/tool-ui/src/main/webapp/script/bsp-utils.js +0 -393
  89. package/src/legacy/tool-ui/src/main/webapp/script/content/layout-element.js +0 -141
  90. package/src/legacy/tool-ui/src/main/webapp/script/input/query.js +0 -78
  91. package/src/legacy/tool-ui/src/main/webapp/script/input/workflow.js +0 -718
  92. package/src/legacy/tool-ui/src/main/webapp/script/jquery.extra.js +0 -633
  93. package/src/legacy/tool-ui/src/main/webapp/script/v3/Dropbox.js +0 -18
  94. package/src/legacy/tool-ui/src/main/webapp/script/v3/EditFieldUpdate.js +0 -406
  95. package/src/legacy/tool-ui/src/main/webapp/script/v3/EditFieldUpdateCache.js +0 -1
  96. package/src/legacy/tool-ui/src/main/webapp/script/v3/Notification.js +0 -151
  97. package/src/legacy/tool-ui/src/main/webapp/script/v3/content/edit.js +0 -194
  98. package/src/legacy/tool-ui/src/main/webapp/script/v3/content/state.js +0 -785
  99. package/src/legacy/tool-ui/src/main/webapp/script/v3/csrf.js +0 -35
  100. package/src/legacy/tool-ui/src/main/webapp/script/v3/dashboard.js +0 -65
  101. package/src/legacy/tool-ui/src/main/webapp/script/v3/input/dataTransfer.js +0 -129
  102. package/src/legacy/tool-ui/src/main/webapp/script/v3/input/file.js +0 -433
  103. package/src/legacy/tool-ui/src/main/webapp/script/v3/input/object.js +0 -743
  104. package/src/legacy/tool-ui/src/main/webapp/script/v3/input/read-only.js +0 -17
  105. package/src/legacy/tool-ui/src/main/webapp/script/v3/jquery.frame.js +0 -478
  106. package/src/legacy/tool-ui/src/main/webapp/script/v3/jquery.repeatable.js +0 -2406
  107. package/src/legacy/tool-ui/src/main/webapp/script/v3/plugin/popup.d.ts +0 -2
  108. package/src/legacy/tool-ui/src/main/webapp/script/v3/plugin/popup.js +0 -446
  109. package/src/legacy/tool-ui/src/main/webapp/script/v3/search-filters.js +0 -62
  110. package/src/legacy/tool-ui/src/main/webapp/script/v3/search.js +0 -53
  111. package/src/legacy/tool-ui/src/main/webapp/script/v3.js +0 -1049
  112. package/src/legacy/tool-ui/src/main/webapp/v4/Admin.js +0 -16
  113. package/src/legacy/tool-ui/src/main/webapp/v4/AutoExpand.js +0 -84
  114. package/src/legacy/tool-ui/src/main/webapp/v4/AutoSubmit.js +0 -68
  115. package/src/legacy/tool-ui/src/main/webapp/v4/Bridge.js +0 -536
  116. package/src/legacy/tool-ui/src/main/webapp/v4/CheckboxInput.js +0 -22
  117. package/src/legacy/tool-ui/src/main/webapp/v4/ColorInput.js +0 -5
  118. package/src/legacy/tool-ui/src/main/webapp/v4/ColorInputSpectrum.js +0 -107
  119. package/src/legacy/tool-ui/src/main/webapp/v4/ComboInput.js +0 -1491
  120. package/src/legacy/tool-ui/src/main/webapp/v4/CommunityWidget.js +0 -29
  121. package/src/legacy/tool-ui/src/main/webapp/v4/ContentEdit.js +0 -2427
  122. package/src/legacy/tool-ui/src/main/webapp/v4/ContentLock.js +0 -470
  123. package/src/legacy/tool-ui/src/main/webapp/v4/ContentReporting.js +0 -32
  124. package/src/legacy/tool-ui/src/main/webapp/v4/DataTable.js +0 -31
  125. package/src/legacy/tool-ui/src/main/webapp/v4/DateStringField.js +0 -485
  126. package/src/legacy/tool-ui/src/main/webapp/v4/Entry.js +0 -264
  127. package/src/legacy/tool-ui/src/main/webapp/v4/ExternalItemAuth.js +0 -16
  128. package/src/legacy/tool-ui/src/main/webapp/v4/Form.js +0 -31
  129. package/src/legacy/tool-ui/src/main/webapp/v4/Hierarchy.js +0 -100
  130. package/src/legacy/tool-ui/src/main/webapp/v4/Icon.ts +0 -49
  131. package/src/legacy/tool-ui/src/main/webapp/v4/ImageEditor.js +0 -2403
  132. package/src/legacy/tool-ui/src/main/webapp/v4/ImageEditorBundle.js +0 -5
  133. package/src/legacy/tool-ui/src/main/webapp/v4/LinkCarousel.js +0 -40
  134. package/src/legacy/tool-ui/src/main/webapp/v4/LinkList.js +0 -14
  135. package/src/legacy/tool-ui/src/main/webapp/v4/LinkTable.js +0 -123
  136. package/src/legacy/tool-ui/src/main/webapp/v4/Location.js +0 -19
  137. package/src/legacy/tool-ui/src/main/webapp/v4/LocationMap.js +0 -148
  138. package/src/legacy/tool-ui/src/main/webapp/v4/LookingGlass.js +0 -24
  139. package/src/legacy/tool-ui/src/main/webapp/v4/Message.js +0 -14
  140. package/src/legacy/tool-ui/src/main/webapp/v4/NumberBar.js +0 -32
  141. package/src/legacy/tool-ui/src/main/webapp/v4/Page.js +0 -890
  142. package/src/legacy/tool-ui/src/main/webapp/v4/Preview.js +0 -758
  143. package/src/legacy/tool-ui/src/main/webapp/v4/PreviewEditor.js +0 -86
  144. package/src/legacy/tool-ui/src/main/webapp/v4/PreviewOverlay.js +0 -1005
  145. package/src/legacy/tool-ui/src/main/webapp/v4/PubSub.js +0 -47
  146. package/src/legacy/tool-ui/src/main/webapp/v4/QueryField.js +0 -211
  147. package/src/legacy/tool-ui/src/main/webapp/v4/RegionMap.js +0 -215
  148. package/src/legacy/tool-ui/src/main/webapp/v4/RepeatableContentInputGroup.js +0 -160
  149. package/src/legacy/tool-ui/src/main/webapp/v4/RichTextEditor.js +0 -154
  150. package/src/legacy/tool-ui/src/main/webapp/v4/SearchFields.js +0 -281
  151. package/src/legacy/tool-ui/src/main/webapp/v4/SearchResult.js +0 -255
  152. package/src/legacy/tool-ui/src/main/webapp/v4/SharePreview.js +0 -56
  153. package/src/legacy/tool-ui/src/main/webapp/v4/Sortable.js +0 -874
  154. package/src/legacy/tool-ui/src/main/webapp/v4/StyleEmbeddedContent.js +0 -100
  155. package/src/legacy/tool-ui/src/main/webapp/v4/StyleguidePresets.js +0 -357
  156. package/src/legacy/tool-ui/src/main/webapp/v4/TabContainer.js +0 -360
  157. package/src/legacy/tool-ui/src/main/webapp/v4/Taxonomy.js +0 -27
  158. package/src/legacy/tool-ui/src/main/webapp/v4/ThemeBundleEditor.js +0 -224
  159. package/src/legacy/tool-ui/src/main/webapp/v4/TimedContent.js +0 -147
  160. package/src/legacy/tool-ui/src/main/webapp/v4/TimedContentBundle.js +0 -8
  161. package/src/legacy/tool-ui/src/main/webapp/v4/VideoEditor.js +0 -2417
  162. package/src/legacy/tool-ui/src/main/webapp/v4/VideoEditorBundle.js +0 -8
  163. package/src/legacy/tool-ui/src/main/webapp/v4/ViewMirror.js +0 -52
  164. package/src/legacy/tool-ui/src/main/webapp/v4/ViewPreview.d.ts +0 -13
  165. package/src/legacy/tool-ui/src/main/webapp/v4/ViewPreview.js +0 -177
  166. package/src/legacy/tool-ui/src/main/webapp/v4/Widget.js +0 -90
  167. package/src/legacy/tool-ui/src/main/webapp/v4/__mocks__/fileMock.js +0 -1
  168. package/src/legacy/tool-ui/src/main/webapp/v4/__mocks__/styleMock.js +0 -1
  169. package/src/legacy/tool-ui/src/main/webapp/v4/__mocks__/textArea.mock.js +0 -20
  170. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/globals.js +0 -770
  171. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/ProseMirror.test.js +0 -16
  172. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/index.html +0 -54
  173. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/comment_manager/CommentManager.test.js +0 -29
  174. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/comment_manager/index.html +0 -35
  175. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/custom_keyboard/CustomKeyboard.js +0 -42
  176. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/custom_keyboard/index.html +0 -37
  177. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/enhancement_manager/EnhancementManager.test.js +0 -288
  178. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/enhancement_manager/block.html +0 -38
  179. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/enhancement_manager/inline.html +0 -38
  180. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/enhancement_manager/no-popups.html +0 -38
  181. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/list_manager/ListManager.js +0 -257
  182. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/list_manager/index.html +0 -38
  183. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/menubar/hierarchal.html +0 -33
  184. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/menubar/index.html +0 -33
  185. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/menubar/menubar.test.js +0 -195
  186. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/menubar/small.html +0 -34
  187. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/menubar/tags.html +0 -34
  188. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/placeholder_manager/PlaceholderManager.test.js +0 -134
  189. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/placeholder_manager/has-editable-placeholder.html +0 -32
  190. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/placeholder_manager/has-text.html +0 -34
  191. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/placeholder_manager/index.html +0 -31
  192. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/table_manager/TableManager.test.js +0 -63
  193. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/table_manager/existing.html +0 -48
  194. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/track_manager/TrackManager.test.js +0 -291
  195. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/track_manager/existing.html +0 -39
  196. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/integration/rte/plugins/track_manager/insert.html +0 -37
  197. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/Sortable.test.js +0 -105
  198. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/ProseMirror.test.js +0 -41
  199. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/codemirror-shim.test.js +0 -72
  200. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/plugins/collab_manager/CollabManager.test.js +0 -46
  201. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/plugins/enhancement_manager/EnhancementManager.test.js +0 -84
  202. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/plugins/list_manager/ListManager.test.js +0 -54
  203. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/plugins/menubar/menubar.test.js +0 -183
  204. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/plugins/spellcheck/SpellCheck.test.js +0 -45
  205. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/settings/BSSerializer.test.js +0 -346
  206. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/settings/menuItemsBuilder.test.js +0 -226
  207. package/src/legacy/tool-ui/src/main/webapp/v4/__tests__/unit/rte/utilities.test.js +0 -118
  208. package/src/legacy/tool-ui/src/main/webapp/v4/appetizeio/Appetizeio.js +0 -5
  209. package/src/legacy/tool-ui/src/main/webapp/v4/appetizeio/AppetizeioEmbedded.js +0 -113
  210. package/src/legacy/tool-ui/src/main/webapp/v4/compat/Fetch.js +0 -16
  211. package/src/legacy/tool-ui/src/main/webapp/v4/compat/jquery.js +0 -32
  212. package/src/legacy/tool-ui/src/main/webapp/v4/compat/requirejs.js +0 -13
  213. package/src/legacy/tool-ui/src/main/webapp/v4/dom/Tether.js +0 -1
  214. package/src/legacy/tool-ui/src/main/webapp/v4/dom/TetherLayout.js +0 -1
  215. package/src/legacy/tool-ui/src/main/webapp/v4/dom/closest.js +0 -1
  216. package/src/legacy/tool-ui/src/main/webapp/v4/dom/create.js +0 -1
  217. package/src/legacy/tool-ui/src/main/webapp/v4/dom/find.js +0 -1
  218. package/src/legacy/tool-ui/src/main/webapp/v4/dom/findAll.js +0 -1
  219. package/src/legacy/tool-ui/src/main/webapp/v4/dom/ifClick.js +0 -1
  220. package/src/legacy/tool-ui/src/main/webapp/v4/dom/ifMatches.js +0 -1
  221. package/src/legacy/tool-ui/src/main/webapp/v4/dom/ifUnmodified.js +0 -1
  222. package/src/legacy/tool-ui/src/main/webapp/v4/dom/index.js +0 -5
  223. package/src/legacy/tool-ui/src/main/webapp/v4/dom/insertBefore.js +0 -1
  224. package/src/legacy/tool-ui/src/main/webapp/v4/dom/insertFirst.js +0 -1
  225. package/src/legacy/tool-ui/src/main/webapp/v4/dom/insertLast.js +0 -1
  226. package/src/legacy/tool-ui/src/main/webapp/v4/dom/onFind.js +0 -1
  227. package/src/legacy/tool-ui/src/main/webapp/v4/dom/onFindOnce.js +0 -1
  228. package/src/legacy/tool-ui/src/main/webapp/v4/dom/onRTEReady.js +0 -1
  229. package/src/legacy/tool-ui/src/main/webapp/v4/dom/onRemove.js +0 -1
  230. package/src/legacy/tool-ui/src/main/webapp/v4/dom/onVisible.js +0 -1
  231. package/src/legacy/tool-ui/src/main/webapp/v4/dom/previousUntil.js +0 -1
  232. package/src/legacy/tool-ui/src/main/webapp/v4/dom/resolveIconCompat.js +0 -40
  233. package/src/legacy/tool-ui/src/main/webapp/v4/rtc/Socket.js +0 -1
  234. package/src/legacy/tool-ui/src/main/webapp/v4/rtc/index.js +0 -1
  235. package/src/legacy/tool-ui/src/main/webapp/v4/rte/ProseMirror.js +0 -909
  236. package/src/legacy/tool-ui/src/main/webapp/v4/rte/README.md +0 -68
  237. package/src/legacy/tool-ui/src/main/webapp/v4/rte/codemirror-shim.d.ts +0 -8
  238. package/src/legacy/tool-ui/src/main/webapp/v4/rte/codemirror-shim.js +0 -274
  239. package/src/legacy/tool-ui/src/main/webapp/v4/rte/collab-workflow.jpeg +0 -0
  240. package/src/legacy/tool-ui/src/main/webapp/v4/rte/interchangeable.ts +0 -250
  241. package/src/legacy/tool-ui/src/main/webapp/v4/rte/mention.js +0 -90
  242. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/PluginProvider.js +0 -124
  243. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/README.md +0 -46
  244. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/ai_inline_manager/AIInlineManager.ts +0 -124
  245. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/ai_inline_manager/views/AIInlineView.ts +0 -1019
  246. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/ai_manager/AiManager.ts +0 -199
  247. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/collab_manager/CollabManager.js +0 -339
  248. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/collab_manager/views/AvatarView.js +0 -96
  249. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/comment_manager/CommentManager.js +0 -348
  250. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/custom_keyboard/CustomKeyboard.js +0 -110
  251. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/custom_keyboard/README.md +0 -29
  252. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/EnhancementManager.js +0 -428
  253. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/README.md +0 -63
  254. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/commands.js +0 -690
  255. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/constants.js +0 -12
  256. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/enhancement-creation.jpeg +0 -0
  257. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/index.js +0 -15
  258. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/rte-flow.jpeg +0 -0
  259. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/views/ActionButtonView.js +0 -86
  260. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/views/BlockSubmenuView.js +0 -60
  261. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/views/EnhancementView.js +0 -208
  262. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/views/PreviewView.js +0 -102
  263. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/enhancement_manager/views/SubmenuView.js +0 -365
  264. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/find_replace_manager/FindReplaceManager.js +0 -239
  265. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/find_replace_manager/views/FindView.js +0 -604
  266. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/fullscreen_manager/FullscreenManager.js +0 -57
  267. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/fullscreen_manager/README.md +0 -26
  268. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/fullscreen_manager/commands.js +0 -16
  269. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/fullscreen_manager/index.js +0 -4
  270. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/fullscreen_manager/views/FullscreenView.js +0 -474
  271. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/html_editor_manager/htmlEditorManager.js +0 -66
  272. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/html_editor_manager/views/HtmlEditorView.js +0 -97
  273. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/list_manager/ListManager.js +0 -342
  274. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/list_manager/README.md +0 -50
  275. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/list_manager/commands.js +0 -207
  276. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/list_manager/constants.js +0 -26
  277. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/list_manager/index.js +0 -4
  278. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/menubar/Menubar.js +0 -485
  279. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/menubar/README.md +0 -40
  280. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/menubar/views/MenuView.js +0 -842
  281. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/paste_manager/PasteManager.js +0 -368
  282. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/placeholder_manager/PlaceHolderManager.js +0 -128
  283. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/raw_text_manager/README.md +0 -13
  284. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/raw_text_manager/RawTextManager.js +0 -96
  285. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/spellcheck/index.js +0 -3
  286. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/spellcheck/spellcheck-plugin.js +0 -280
  287. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/spellcheck/spellcheck-service.js +0 -94
  288. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/table_manager/TableManager.js +0 -57
  289. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/table_manager/commands.js +0 -97
  290. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/table_manager/views/TableSizerView.js +0 -88
  291. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/table_manager/views/TableView.js +0 -613
  292. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/track_manager/README.md +0 -13
  293. package/src/legacy/tool-ui/src/main/webapp/v4/rte/plugins/track_manager/TrackManager.js +0 -905
  294. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/BSSerializer.js +0 -819
  295. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/README.md +0 -80
  296. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/commands.js +0 -98
  297. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/constants.d.ts +0 -84
  298. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/constants.js +0 -87
  299. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/index.js +0 -13
  300. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/keymapBuilder.js +0 -223
  301. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/menuItemsBuilder.js +0 -559
  302. package/src/legacy/tool-ui/src/main/webapp/v4/rte/settings/schemaBuilder.js +0 -1281
  303. package/src/legacy/tool-ui/src/main/webapp/v4/rte/utilities.d.ts +0 -4
  304. package/src/legacy/tool-ui/src/main/webapp/v4/rte/utilities.js +0 -359
  305. package/src/legacy/tool-ui/src/main/webapp/v4/theme/ColorRotator.js +0 -1
  306. package/src/legacy/tool-ui/src/main/webapp/v4/util/debounce.js +0 -1
  307. package/src/legacy/tool-ui/src/main/webapp/v4/util/getComponentKey.js +0 -1
  308. package/src/legacy/tool-ui/src/main/webapp/v4/util/noise.js +0 -1
  309. package/src/legacy/tool-ui/src/main/webapp/v4/util/repaint.js +0 -1
  310. package/src/legacy/tool-ui/src/main/webapp/v4/util/storage.js +0 -1
  311. package/src/legacy/tool-ui/src/main/webapp/v4/util/throttle.js +0 -1
  312. package/src/legacy/tool-ui/src/main/webapp/v4/widget/AssignmentContent.js +0 -33
  313. package/src/legacy/tool-ui/src/main/webapp/v4/widget/AssignmentDeskDashboard.js +0 -217
  314. package/src/legacy/tool-ui/src/main/webapp/v4/widget/AssociatedContentWidget.js +0 -7
  315. package/src/legacy/tool-ui/src/main/webapp/v4/widget/BulkUpload.js +0 -19
  316. package/src/legacy/tool-ui/src/main/webapp/v4/widget/Calendar.js +0 -7
  317. package/src/legacy/tool-ui/src/main/webapp/v4/widget/ClosableWindow.js +0 -13
  318. package/src/legacy/tool-ui/src/main/webapp/v4/widget/PitchAssignments.js +0 -25
  319. package/src/legacy/tool-ui/src/main/webapp/v4/widget/PitchContent.js +0 -33
  320. package/src/legacy/tool-ui/src/main/webapp/v4/widget/Revisions.js +0 -61
@@ -1,874 +0,0 @@
1
- /* eslint-disable no-unused-vars */
2
- import Sortable, { MultiDrag } from 'sortablejs'
3
- import create from './dom/create'
4
- import onFind from './dom/onFind'
5
- import Cookies from 'js.cookie'
6
- import onRemove from './dom/onRemove'
7
- import getZindex from '../script/v3/plugin/popup'
8
- import { announce, replaceWithEach } from '../../../dom/aria.ts'
9
- import { deselectDrawerItem } from '../../../ContentEditDrawer.ts'
10
-
11
- // This is wrapped in a named export to prevent the tests from failing.
12
- export const init = () => Sortable.mount(new MultiDrag())
13
-
14
- export const findSortableContainers = (sortableEl) => {
15
- if (!sortableEl) {
16
- return []
17
- }
18
-
19
- if (sortableEl.closest('.SearchFields-container')) {
20
- return [
21
- sortableEl
22
- .closest('.SearchFields-container')
23
- ?.querySelector('.SearchFields-hide > ul'),
24
- sortableEl
25
- .closest('.SearchFields-container')
26
- ?.querySelector('.SearchFields-displayTitle > ul'),
27
- ]
28
- }
29
-
30
- const itemType = sortableEl.getAttribute('data-sortable-item-type')
31
-
32
- return itemType
33
- ? [
34
- ...document.querySelectorAll(
35
- `[data-sortable-valid-item-types~="${itemType}"][data-read-only="false"]`,
36
- ),
37
- ]
38
- : [
39
- ...document.querySelectorAll(
40
- '.Sortable:not([data-sortable-valid-item-types])',
41
- ),
42
- ]
43
- }
44
-
45
- export const updateInputs = (sourceContainer, source, pending) => {
46
- const oldInputName = sourceContainer.dataset.sortableInputName
47
- const newInputName = source.closest('.Sortable').dataset.sortableInputName
48
-
49
- if (oldInputName !== newInputName) {
50
- pending.forEach((pendingItem) => {
51
- pendingItem
52
- .querySelectorAll(`[name^="${oldInputName}"]`)
53
- .forEach((input) => {
54
- input.setAttribute(
55
- 'name',
56
- input.getAttribute('name').replace(oldInputName, newInputName),
57
- )
58
- })
59
- })
60
- }
61
- }
62
-
63
- // Mark the parent inputContainer as interacted and trigger state update
64
- const markContainerAsInteracted = (container) => {
65
- const inputContainer = container.closest('.inputContainer')
66
- if (inputContainer) {
67
- inputContainer.dataset.interacted = 'true'
68
- }
69
- container
70
- .closest('form')
71
- ?.dispatchEvent(new Event('change', { bubbles: true }))
72
- }
73
-
74
- // Array containing rte overlays
75
- const rteOverlays = []
76
- let isPending = false
77
- let requestDrag = null
78
- let itemIdx = null
79
-
80
- // Returns all visible drop zones which can contain this item type.
81
- function getVisibleDropZones(item) {
82
- const itemType = item.dataset.sortableItemType
83
- return Array.from(
84
- document.querySelectorAll(
85
- `ol.Sortable[data-sortable-valid-item-types*="${itemType}"],
86
- ul.Sortable[data-sortable-valid-item-types*="${itemType}"]`,
87
- ),
88
- ).filter((zone) => zone.offsetParent !== null)
89
- }
90
-
91
- function swapItemsWithinContainer(index, toIndex, container) {
92
- const itemEl = container.children[index],
93
- toEl = container.children[toIndex]
94
-
95
- if (index > toIndex) {
96
- container.insertBefore(itemEl, toEl)
97
- } else {
98
- container.insertBefore(itemEl, toEl.nextElementSibling)
99
- }
100
-
101
- announce(window.BRIGHTSPOT.ui.sortable.itemChangedPosition, [
102
- index + 1,
103
- toIndex + 1,
104
- ])
105
- }
106
-
107
- // Find Containers for the Sortables.
108
- onFind(
109
- [
110
- 'ol[data-sortable-input-name]',
111
- '.plugin-repeatable > ol',
112
- '.widget-urls',
113
- '[data-rte-container="true"]',
114
- '.CIG-row[data-type="record"][data-sortable-valid-item-types]',
115
- 'ul[data-sortable-input-name]',
116
- ],
117
- (container) => {
118
- const parentReadOnly = container.closest('.is-readOnly')
119
- const readOnly = container.dataset.readOnly
120
- if (readOnly === 'true' || parentReadOnly) {
121
- return
122
- }
123
- const options = {
124
- itemSelector: ':scope > *:not(script)',
125
- }
126
- const isCigRowContainer = container.dataset.type === 'record'
127
-
128
- if (container.dataset.rteContainer === 'true' || isCigRowContainer) {
129
- const overlay = container.querySelector(':scope .drawerDropOverlay')
130
- rteOverlays.push(overlay)
131
- }
132
-
133
- const isRCIG = container.classList.contains('RCIG-list')
134
- let isPreviewable = false
135
- const parentElement = container.parentElement
136
- if (parentElement) {
137
- isPreviewable =
138
- container.parentElement.classList.contains('is-previewable')
139
- }
140
-
141
- // Needed for v5 when using Sortable inside of a dialog popup
142
- const inPopup = container.closest('dialog')
143
-
144
- const sortable = new Sortable(container, {
145
- animation: isCigRowContainer ? null : 160,
146
- handle:
147
- // RCIGs that are not previewable use handles to move them instead of clicking and dragging the entire element.
148
- isRCIG && !isPreviewable
149
- ? '.RCIG-title, .MultiSortable-buttonToggle, .ContentEditDrawer-widget-carousel-list > li, .SearchFields-drag'
150
- : null,
151
- sort: true,
152
- delay: 300,
153
- delayOnTouchOnly: true,
154
- touchStartThreshold: 4,
155
- dragClass: 'Sortable-drag',
156
- selectedClass: 'Sortable-selected',
157
- chosenClass: 'Sortable-chosen',
158
- ghostClass: 'Sortable-ghost',
159
- forceFallback: true,
160
- fallbackTolerance: 3,
161
- fallbackOnBody: inPopup ? false : true,
162
- swapThreshold: 0.65,
163
- filter:
164
- 'input:not(.ContentEditDrawer-widget-carousel-list-item-selectButton), textarea, .ProseMirrorContainer, .CIG-row, .EIG',
165
- preventOnFilter: false,
166
- scroll: true,
167
- scrollSpeed: 20,
168
- dropBubble: false,
169
- multiDrag: true,
170
- group: {
171
- put: function (to, from, item) {
172
- // Creates an overlay to show which RTE field the type is droppable
173
- if (rteOverlays.length > 0) {
174
- for (const overlay in rteOverlays) {
175
- const currentOverlay = rteOverlays[overlay]
176
- if (currentOverlay) {
177
- const sortableTypes =
178
- currentOverlay.dataset?.sortableValidItemTypes?.split(' ')
179
- const loadTypes = item.dataset?.sortableLoadTypes?.split(' ')
180
- const targetTypeId = loadTypes?.find((type) =>
181
- sortableTypes.includes(type),
182
- )
183
- if (targetTypeId) {
184
- currentOverlay.style.display = 'inline'
185
- }
186
- }
187
- }
188
- }
189
-
190
- let isValid = false
191
-
192
- if (to.el.dataset.sortableValidItemTypes) {
193
- isValid = to.el.dataset.sortableValidItemTypes.includes(
194
- item.dataset.sortableItemType,
195
- )
196
-
197
- if (!isValid && item.dataset.sortableLoadTypes) {
198
- const sortableTypes =
199
- to.el.dataset.sortableValidItemTypes.split(' ')
200
- const loadTypes = item.dataset.sortableLoadTypes.split(' ')
201
- isValid = loadTypes.some((type) => sortableTypes.includes(type))
202
- }
203
-
204
- return isValid
205
- } else {
206
- return isValid
207
- }
208
- },
209
- pull: function (to, from, item) {
210
- let isValid = false
211
- const isClonable = from.el.classList.contains('is-clonable')
212
-
213
- if (to.el.dataset.sortableValidItemTypes) {
214
- isValid = to.el.dataset.sortableValidItemTypes.includes(
215
- item.dataset.sortableItemType,
216
- )
217
-
218
- if (!isValid && item.dataset.sortableLoadTypes) {
219
- const sortableTypes =
220
- to.el.dataset.sortableValidItemTypes.split(' ')
221
- const loadTypes = item.dataset.sortableLoadTypes.split(' ')
222
- isValid = loadTypes.some((type) => sortableTypes.includes(type))
223
- }
224
-
225
- return isValid && isClonable ? 'clone' : isValid
226
- } else {
227
- return isValid
228
- }
229
- },
230
- },
231
- onSelect: (evt) => {
232
- const item = evt.item
233
- const items = evt.items
234
- const isDrawerElement = item.parentElement.classList.contains(
235
- 'ContentEditDrawer-widget-carousel-list',
236
- )
237
-
238
- // Unselect from drawer if multitoggle is selected outside of drawer
239
- // To prevent dragging from different containers at the same time
240
- if (isDrawerElement) {
241
- // Deselect selected items that aren't from the drawer container
242
- for (const selected in items) {
243
- const selectedItem = items[selected]
244
-
245
- if (
246
- selectedItem.parentElement &&
247
- !selectedItem.parentElement.classList.contains(
248
- 'ContentEditDrawer-widget-carousel-list',
249
- )
250
- ) {
251
- Sortable.utils.deselect(selectedItem)
252
- }
253
- }
254
- } else {
255
- // Deselect selected items that aren't from the non-drawer container
256
- for (const selected in items) {
257
- const selectedItem = items[selected]
258
-
259
- if (
260
- selectedItem.parentElement.classList.contains(
261
- 'ContentEditDrawer-widget-carousel-list',
262
- )
263
- ) {
264
- deselectDrawerItem(selectedItem)
265
- Sortable.utils.deselect(selectedItem)
266
- }
267
- }
268
- }
269
-
270
- if (!item.classList.contains('is-moving')) {
271
- Sortable.utils.deselect(item)
272
- }
273
- },
274
- onDeselect: (evt) => {
275
- const item = evt.item
276
- const drawerSelectButton = item.querySelector(
277
- '.ContentEditDrawer-widget-carousel-list-item-selectButton',
278
- )
279
-
280
- if (item.classList.contains('is-moving')) {
281
- if (drawerSelectButton) {
282
- drawerSelectButton.checked = false
283
- }
284
- item.classList.remove('is-moving')
285
- }
286
- },
287
- onStart: (evt) => {
288
- const item = evt.item
289
- const items = evt.items.length > 0 ? evt.items : [evt.item]
290
- const itemCount = +items.length
291
- const relatedContainers = findSortableContainers(item)
292
-
293
- const previewContainer = document.querySelector(
294
- '.ContentEdit-previewDisplay',
295
- )
296
-
297
- /* Prevents any highlighting of text on the Page while dragging an item. */
298
- document.body.style.userSelect = 'none'
299
-
300
- if (previewContainer) {
301
- previewContainer.style.pointerEvents = 'none'
302
- }
303
- if (itemCount) {
304
- Sortable.ghost.style.setProperty('--drag-count', itemCount)
305
- Sortable.ghost.style.zIndex = getZindex() + 1
306
- Sortable.ghost.setAttribute('item-suffix', '')
307
-
308
- if (itemCount > 1) {
309
- Sortable.ghost.setAttribute('item-suffix', 's')
310
- }
311
- }
312
- if (relatedContainers.length === 1) {
313
- var relatedContainer = relatedContainers[0]
314
- // if the item isn't from related container
315
- if (!item.closest(`.${relatedContainer.className}`)) {
316
- relatedContainer.classList.add('Sortable-allowedContainer')
317
- }
318
- }
319
-
320
- if (relatedContainers.length > 1) {
321
- relatedContainers.forEach((related) =>
322
- related.classList.add('Sortable-allowedContainer'),
323
- )
324
- }
325
-
326
- // Update position of dragged item based off the scaled down
327
- // animation in v5.
328
- if (window.BRIGHTSPOT?.ui.cms.enableV5UI) {
329
- const ghostLeft = parseInt(Sortable.ghost.style.left)
330
- Sortable.ghost.style.left = ghostLeft * 0.95 + 'px'
331
- }
332
-
333
- onRemove.pause()
334
- onFind.pause()
335
- },
336
- onSort: (evt) => {
337
- const sourceContainer = evt.from
338
- const toContainer = evt.to
339
- const items = evt.items.length > 0 ? evt.items : [evt.item]
340
-
341
- if (isPending) {
342
- return
343
- }
344
-
345
- if (toContainer.dataset.type === 'record') {
346
- const $input = $(toContainer).find(':input.objectId').first()
347
- const $item = $(items)
348
-
349
- $input.attr('data-label', $item.data('label-html'))
350
- $input.attr('data-label-html', $item.data('label-html'))
351
- $input.attr(
352
- 'data-preview',
353
- $item.find('img').attr('src') ||
354
- $item.find('.ItemPreview-url').attr('data-src') ||
355
- '',
356
- )
357
- $input.attr('data-visibility', $item.find('span.Label').text())
358
- $input.attr(
359
- 'data-read-only',
360
- $item.attr('data-read-only') ? $item.attr('data-read-only') : false,
361
- )
362
- $input.val($item.data('id'))
363
- $input.change()
364
- return
365
- }
366
-
367
- // Ensures that the items are in the correct order when sorting
368
- items.sort(function (a, b) {
369
- return a.dataset.index - b.dataset.index
370
- })
371
-
372
- for (const selected in items) {
373
- const item = items[selected]
374
-
375
- if (toContainer?.dataset?.rteContainer === 'true') {
376
- return
377
- } else if (
378
- toContainer.dataset.sortableValidItemTypes &&
379
- sourceContainer.dataset.sortableEndpoint &&
380
- !item.classList.contains('is-pending')
381
- ) {
382
- const sortableTypes =
383
- toContainer.dataset.sortableValidItemTypes.split(' ')
384
- const loadTypes = item.dataset.sortableLoadTypes?.split(' ')
385
- const id = item.dataset?.id
386
- const targetTypeId = loadTypes?.find((type) =>
387
- sortableTypes.includes(type),
388
- )
389
- const isPreviewableContainer =
390
- toContainer.parentElement.classList.contains('is-previewable')
391
- const previewable = toContainer.dataset.previewable
392
- const validTypes = toContainer.dataset.sortableValidItemTypes
393
-
394
- // Sets up items that need to be removed for incompatibility
395
- if (!targetTypeId) {
396
- item.remove()
397
- continue
398
- }
399
-
400
- // This event can fire 2x so block duplication.
401
- isPending = true
402
-
403
- Sortable.utils.deselect(item)
404
-
405
- fetchContentInterchange(
406
- sourceContainer.dataset.sortableEndpoint,
407
- id,
408
- targetTypeId,
409
- toContainer.dataset.sortableInputName,
410
- isPreviewableContainer,
411
- previewable,
412
- validTypes,
413
- ).then((html) => {
414
- item.innerHTML = html
415
- const repeatable = toContainer.closest('.plugin-repeatable')
416
- item.classList.remove('Sortable-selected')
417
- item.classList.remove('is-moving')
418
- isPending = false
419
-
420
- if (toContainer.classList.contains('RCIG-list')) {
421
- item.classList.remove('RCS-item')
422
-
423
- // Call jquery.repeatable initialization methods on item.
424
- $(repeatable)
425
- .data('repeatable')
426
- .itemLoad(item)
427
- .then(() => {
428
- $(repeatable).data('repeatable').initItem(item)
429
-
430
- if (
431
- isPreviewableContainer &&
432
- !toContainer.parentElement.classList.contains(
433
- 'is-gridView',
434
- )
435
- ) {
436
- item.classList.remove('is-gridItem')
437
- item.classList.add('is-listItem')
438
- }
439
-
440
- markContainerAsInteracted(toContainer)
441
- })
442
- } else {
443
- // Reference to a single Record so trigger 'object.js' custom event.
444
- item.classList.remove('RCIG-item')
445
- $(item).trigger('create')
446
- $(repeatable).data('repeatable').initItemRemove(item)
447
-
448
- markContainerAsInteracted(toContainer)
449
- }
450
- })
451
- } else {
452
- let pending = evt.items.length ? evt.items : [item]
453
- pending.forEach((pendingItem) => {
454
- pendingItem.addEventListener('animationend', () => {
455
- pendingItem.classList.remove('is-added')
456
- })
457
- pendingItem.classList.add('is-added')
458
- })
459
-
460
- // Rename any inputs that changed sources.
461
- updateInputs(sourceContainer, toContainer, pending)
462
- // Trigger a content-state update.
463
- sourceContainer
464
- .querySelectorAll('input, select, textarea')
465
- .forEach((input) => {
466
- input.dispatchEvent(new Event('change'))
467
- })
468
-
469
- markContainerAsInteracted(toContainer)
470
- }
471
- }
472
- },
473
- onEnd: (evt) => {
474
- const item = evt.item
475
- const items = evt.items.length > 0 ? evt.items : [item]
476
- const previewContainer = document.querySelector(
477
- '.ContentEdit-previewDisplay',
478
- )
479
-
480
- // restore the body style for user select and cursor
481
- document.body.style.userSelect = 'unset'
482
-
483
- if (previewContainer) {
484
- previewContainer.style.pointerEvents = 'initial'
485
- }
486
- findSortableContainers(item).forEach((zone) =>
487
- zone.classList.remove('Sortable-allowedContainer'),
488
- )
489
-
490
- // Removes overlay for RTE drop after dragging
491
- if (rteOverlays.length > 0) {
492
- for (const overlay in rteOverlays) {
493
- const currentOverlay = rteOverlays[overlay]
494
- if (currentOverlay) {
495
- currentOverlay.style.display = 'none'
496
- }
497
- }
498
- }
499
-
500
- if (evt.to?.dataset?.rteContainer === 'true') {
501
- // Deselects drawer items after rte initializes them
502
- for (const selected in items) {
503
- Sortable.utils.deselect(items[selected])
504
- }
505
-
506
- const event = new CustomEvent('interchange', { detail: evt })
507
- const rte = evt.to.querySelector('.richtext').rte
508
- rte.view.dispatchEvent(event)
509
- item.remove()
510
- }
511
-
512
- if (evt.to?.dataset?.type === 'record') {
513
- // Deselects drawer items after rte initializes them
514
- for (const selected in items) {
515
- Sortable.utils.deselect(items[selected])
516
-
517
- items[selected].remove()
518
- }
519
- }
520
-
521
- onRemove.resume()
522
- onFind.resume()
523
- },
524
- onUpdate: (evt) => {
525
- const item = evt.item
526
- item.addEventListener('animationend', () => {
527
- item.classList.remove('is-added')
528
- })
529
- item.classList.add('is-added')
530
- },
531
- })
532
-
533
- // There's no option to disable the behavior where the MultiDrag plugin
534
- // clears the selection when clicked outside, so this removes the event
535
- // listener that triggers it manually.
536
- //
537
- // See https://github.com/SortableJS/sortablejs/blob/1.10.2/plugins/MultiDrag/MultiDrag.js#L38-L43
538
- if (sortable.multiDrag) {
539
- for (const type of ['pointerup', 'mouseup', 'touchend']) {
540
- document.removeEventListener(
541
- type,
542
- sortable.multiDrag._deselectMultiDrag,
543
- {
544
- capture: false,
545
- passive: false,
546
- },
547
- )
548
- }
549
- }
550
-
551
- container.classList.add('Sortable')
552
-
553
- // Add ARIA to Lists of sortables.
554
- if (container.tagName === 'OL' || container.tagName === 'UL') {
555
- const label = container
556
- .closest('.CIG-row')
557
- ?.querySelector('label')?.textContent
558
-
559
- // Add ARIA to items within sortable lists.
560
- container
561
- .querySelectorAll(':scope > li > input[type=text]')
562
- .forEach((input) => {
563
- if (input.dataset?.label) {
564
- const item = input.closest('li')
565
- item?.setAttribute('aria-label', input.dataset?.label)
566
- }
567
- })
568
-
569
- onFind(container, ':scope > li', (item) => {
570
- item.addEventListener('focus', (event) => {
571
- if (!event.relatedTarget) return
572
- const listLabel = label
573
- ? replaceWithEach(window.BRIGHTSPOT.ui.sortable.namedList, [label])
574
- : window.BRIGHTSPOT.ui.sortable.genericList
575
-
576
- announce(window.BRIGHTSPOT.ui.sortable.listGainedFocus, [listLabel])
577
- })
578
-
579
- item.addEventListener('blur', (event) => {
580
- if (event.relatedTarget) {
581
- if (requestDrag) {
582
- onRemove.resume()
583
- onFind.resume()
584
- }
585
- requestDrag = null
586
- }
587
- })
588
-
589
- if (item.dataset?.label && !item.hasAttribute('aria-label')) {
590
- item.setAttribute('aria-label', item.dataset?.label)
591
- }
592
- })
593
-
594
- if (!container.hasAttribute('aria-label')) {
595
- container.setAttribute('aria-label', label ? label : '')
596
- }
597
- }
598
-
599
- // If the container is an RTI, provide a space for the User to grab since this component is mostly a text input and therefore not draggable.
600
- const needsHandle = container.classList.contains('RTI-list')
601
-
602
- // Sortable items are asyncronously created.
603
- onFind(container, options.itemSelector, (element) => {
604
- element.classList.add('Sortable-item')
605
-
606
- // Update tab focus order with those elements which are draggable.
607
- if (
608
- element.matches(
609
- '.RCS-item:not(.is-disabled), .RCIG-item:not(.is-disabled), .widget-urlsItem',
610
- ) ||
611
- needsHandle
612
- ) {
613
- element.setAttribute('tabindex', 0)
614
- }
615
-
616
- if (needsHandle) {
617
- element.insertAdjacentElement(
618
- 'afterbegin',
619
- create('div', { class: 'RTI-handle' }),
620
- )
621
- }
622
- })
623
- },
624
- )
625
-
626
- const fetchContentInterchange = async (
627
- url,
628
- id,
629
- targetTypeId,
630
- name,
631
- isPreviewableContainer,
632
- previewable,
633
- validTypes,
634
- ) => {
635
- const query = new URLSearchParams()
636
- query.set('id', id)
637
- query.set('targetTypeId', targetTypeId)
638
- query.set('inputName', name)
639
- query.set('isPreviewableContainer', isPreviewableContainer)
640
- query.set('previewable', previewable)
641
- query.set('validTypes', validTypes)
642
- const response = await fetch(`${CONTEXT_PATH}${url}`, {
643
- method: 'POST',
644
- credentials: 'include',
645
- body: query,
646
- headers: {
647
- 'Brightspot-CSRF': Cookies.get('bsp.csrf'),
648
- },
649
- })
650
- const body = await response.text()
651
-
652
- return body
653
- }
654
-
655
- const handleKeyDown = (event) => {
656
- if (event.code === 'Escape') {
657
- // Find all the selected Sortables and deselect them
658
- document.querySelectorAll('.Sortable-selected').forEach((elem) => {
659
- Sortable.utils.deselect(elem)
660
- deselectDrawerItem(elem)
661
- elem.classList.remove('is-moving')
662
- })
663
- }
664
-
665
- // Only process key events for Sortable-item from here on.
666
- if (
667
- !event.target.classList.contains('Sortable-item') &&
668
- !event.target.classList.contains('MultiSortable-buttonToggle')
669
- )
670
- return
671
-
672
- const item = event.target.classList.contains('MultiSortable-buttonToggle')
673
- ? event.target.closest('.Sortable-item')
674
- : event.target
675
-
676
- if (event.code === 'Tab') {
677
- if (requestDrag) {
678
- const dropZones = getVisibleDropZones(item)
679
- if (!dropZones.length) {
680
- onRemove.resume()
681
- onFind.resume()
682
- requestDrag = null
683
- } else {
684
- const fromZone = item.closest('ul.Sortable, ol.Sortable')
685
- let toZoneIdx = null
686
- let fromZoneIdx = null
687
- // Determine which drop zone the item is currently within.
688
- dropZones.forEach((zone, key) => {
689
- if (fromZone.isEqualNode(zone)) {
690
- fromZoneIdx = key
691
- }
692
- })
693
-
694
- // Move to the next drop zone or wrap to the first.
695
- // Wrap around?
696
- if (fromZoneIdx + 1 > dropZones.length - 1) {
697
- toZoneIdx = 0
698
- } else if (fromZoneIdx + 1 <= dropZones.length - 1) {
699
- toZoneIdx = fromZoneIdx + 1
700
- }
701
-
702
- // Move item into first child position of the new drop zone.
703
- const toZone = dropZones[toZoneIdx]
704
- const toEl = toZone.children[0]
705
- if (toZone.isEqualNode(fromZone) && dropZones.length === 1) {
706
- // Should this cancel the drag and move tab focus to the next in the order?
707
- } else if (toEl) {
708
- announce(window.BRIGHTSPOT.ui.sortable.itemChangedPosition, [
709
- fromZoneIdx,
710
- toZoneIdx,
711
- ])
712
- toZone.insertBefore(item, toEl)
713
- } else {
714
- announce(window.BRIGHTSPOT.ui.sortable.itemChangedPosition, [
715
- fromZoneIdx,
716
- 1,
717
- ])
718
- toZone.appendChild(item)
719
- }
720
- item.focus()
721
- event.preventDefault()
722
- }
723
- }
724
- }
725
-
726
- if (event.code === 'Escape') {
727
- if (requestDrag) {
728
- // Revert item to previous state.
729
- const zoneChildren = requestDrag.prevDropZone.children
730
- if (
731
- zoneChildren.length &&
732
- requestDrag.prevIdx < zoneChildren.length - 1
733
- ) {
734
- requestDrag.prevDropZone.insertBefore(
735
- item,
736
- zoneChildren[requestDrag.prevIdx],
737
- )
738
- } else {
739
- requestDrag.prevDropZone.appendChild(item)
740
- }
741
- onRemove.resume()
742
- onFind.resume()
743
- announce(window.BRIGHTSPOT.ui.sortable.itemDragCancelled)
744
- item.focus()
745
- }
746
- requestDrag = null
747
- }
748
-
749
- if (event.code === 'Space' || event.code === 'Enter') {
750
- if (!requestDrag) {
751
- // Pick up the item.
752
- requestDrag = {
753
- prevIdx: Array.prototype.indexOf.call(item.parentNode.children, item),
754
- prevDropZone: item.closest('ul.Sortable, ol.Sortable'),
755
- }
756
- onRemove.pause()
757
- onFind.pause()
758
- announce(window.BRIGHTSPOT.ui.sortable.itemDragStarted)
759
- } else {
760
- // Trigger a content state change.
761
- const toZone = item.closest('ul.Sortable, ol.Sortable')
762
- toZone.querySelectorAll('input, select, textarea').forEach((input) => {
763
- input.dispatchEvent(new Event('change'))
764
- })
765
-
766
- markContainerAsInteracted(toZone)
767
-
768
- // Remove zone from tab order if user moved its last item out.
769
- if (requestDrag.prevDropZone?.childElementCount === 0) {
770
- requestDrag.prevDropZone?.removeAttribute('tabindex')
771
- }
772
-
773
- // Trigger a sortable drag event.
774
- toZone.dispatchEvent(
775
- new CustomEvent('add', {
776
- detail: { item: item, from: requestDrag.prevDropZone, to: toZone },
777
- }),
778
- )
779
-
780
- // Put down the item.
781
- onRemove.resume()
782
- onFind.resume()
783
- requestDrag = null
784
- announce(window.BRIGHTSPOT.ui.sortable.itemDropped)
785
- }
786
-
787
- event.preventDefault() // Supress scrolling.
788
-
789
- if (!requestDrag) return
790
- }
791
-
792
- if (event.code === 'ArrowUp' || event.code === 'ArrowLeft') {
793
- itemIdx = Array.prototype.indexOf.call(item.parentNode.children, item)
794
- if (requestDrag && itemIdx > 0) {
795
- swapItemsWithinContainer(
796
- itemIdx,
797
- itemIdx - 1,
798
- item.closest('ul.Sortable, ol.Sortable'),
799
- )
800
- item.focus()
801
- }
802
- }
803
-
804
- if (event.code === 'ArrowDown' || event.code === 'ArrowRight') {
805
- itemIdx = Array.prototype.indexOf.call(item.parentNode.children, item)
806
- if (requestDrag && itemIdx < item.parentNode.children.length - 1) {
807
- swapItemsWithinContainer(
808
- itemIdx,
809
- itemIdx + 1,
810
- item.closest('ul.Sortable, ol.Sortable'),
811
- )
812
- item.focus()
813
- }
814
- }
815
- }
816
-
817
- // Initialize all the MultiSortables.
818
- onFind(
819
- [
820
- '.Sortable-item.RCIG-item .RCIG-remove',
821
- '.Sortable-item.RCS-item .RCS-remove',
822
- ],
823
- (el) => {
824
- // Do not add multi-sort to items inside a Set-type container
825
- if (el.closest('.CIG-row[data-type="set/record"]')) {
826
- return
827
- }
828
-
829
- const item = el.closest('[data-sortable-item-type], .Sortable-item')
830
- item.classList.add('MultiSortable')
831
-
832
- item.addEventListener('mouseup', (evt) => {
833
- if (evt.target === moveButton && !item.classList.contains('is-moving')) {
834
- item.classList.add('is-moving')
835
-
836
- if (
837
- !item.classList.contains('is-collapsed') &&
838
- item.classList.contains('RCIG-item') &&
839
- !item.classList.contains('is-gridItem')
840
- ) {
841
- item.classList.add('collapsed', 'is-collapsed')
842
- }
843
- } else {
844
- item.classList.remove('is-moving')
845
- }
846
- })
847
-
848
- let inputAriaLabel = ''
849
- const cigRow = el.closest('.CIG-row')
850
- if (cigRow) {
851
- inputAriaLabel = cigRow.querySelector('.CIG-label label').textContent
852
- }
853
-
854
- const moveButton = create('button', {
855
- type: 'button',
856
- class: 'MultiSortable-buttonToggle',
857
- title: `${window.BRIGHTSPOT?.ui.tooltips.multiSort} ${inputAriaLabel}`,
858
- 'aria-label': `${window.BRIGHTSPOT?.ui.tooltips.multiSort} ${inputAriaLabel}`,
859
- })
860
-
861
- if (!el.classList.contains('EIG-remove')) {
862
- el.insertAdjacentElement('beforeBegin', moveButton)
863
- }
864
- },
865
- )
866
-
867
- window.addEventListener('keydown', handleKeyDown)
868
- window.addEventListener('click', () => {
869
- if (requestDrag) {
870
- onRemove.resume()
871
- onFind.resume()
872
- }
873
- requestDrag = null
874
- })