@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,154 +0,0 @@
1
- import onFind from './dom/onFind'
2
- import create from './dom/create'
3
- import onVisible from './dom/onVisible'
4
-
5
- // Lazily loads the rich text editor.
6
-
7
- // To prevent FOUC, we have hidden the textarea with
8
- // css and are adding a 'loading' div that holds a spinner
9
- // to indicate the RTE is loading. Once loaded, the RTE
10
- // code will look for this element and hide it with css.
11
- onFind('.richtext', (element) => {
12
- const parent = element.closest('div')
13
- parent.style.position = 'relative'
14
- // The textarea will be moved when the ProseMirror code
15
- // runs, so we can't rely on it to maintain the height
16
- // of the 'fake' rte container and its parent. The 'fake'
17
- // rte container is positioned absolute, so we need a
18
- // min-height on the parent to maintain the proper
19
- // vertical distance between it and the next field.
20
- const height = element.getBoundingClientRect().height
21
- const loader = create('div', { className: 'ProseMirror-loader' })
22
- // const fakeProseMirror = document.createElement('div')
23
- // fakeProseMirror.className = 'ProseMirror-fake'
24
- loader.style.minHeight = `${height}px`
25
- parent.appendChild(loader)
26
- })
27
-
28
- /**
29
- * Some projects are using characters such as colons and periods in their tag names,
30
- * but while that is xml-compliant, that is not HTML-5 compliant.
31
- * As such, some of ProseMirror's code that relies on methods such as
32
- * `element.matches` https://developer.mozilla.org/en-US/docs/Web/API/Element/matches
33
- * fails, so we need to replace those characters.
34
- * Also see: https://www.w3.org/TR/2011/WD-html5-20110525/syntax.html#syntax-tag-name
35
- *
36
- * We put the non-compliant characters back at serializtion time.
37
- */
38
- const compliantTagNameMap = new Map()
39
-
40
- RICH_TEXT_ELEMENTS.forEach((obj) => {
41
- let tagName = obj.tag
42
- let compliantTagName = ''
43
- const regex = /[\u0030-\u0039\u0061-\u007A\u0041-\u005A-]/g
44
- ;[...tagName].forEach((char) => {
45
- let validChar = char
46
- if (!char.match(regex)) {
47
- validChar = `--${char.charCodeAt(0)}--`
48
- }
49
- compliantTagName = compliantTagName + validChar
50
- })
51
- compliantTagNameMap.set(tagName, compliantTagName)
52
- })
53
-
54
- window.RICH_TEXT_ELEMENTS_PM = RICH_TEXT_ELEMENTS.map((obj) => {
55
- obj.tag = compliantTagNameMap.get(obj.tag)
56
- if (obj.context) {
57
- const newContext = []
58
- obj.context.forEach((item) => {
59
- let newItem = item
60
- if (newItem) {
61
- newItem = compliantTagNameMap.get(item)
62
- }
63
- newContext.push(newItem)
64
- })
65
- obj.context = newContext
66
- }
67
- return obj
68
- })
69
-
70
- onVisible('.richtext', async (element) => {
71
- const { RTE } = await import(
72
- /* webpackChunkName: 'RTEProseMirror' */ './rte/ProseMirror'
73
- )
74
- const customMenuType = element.getAttribute('data-rte-toolbar')
75
- let customMenuBar = RICH_TEXT_TOOLBARS[customMenuType]
76
-
77
- // Remove AI buttons from toolbar if AI is disabled
78
- if (!window.BRIGHTSPOT?.ai?.AI_CHAT_ENABLED) {
79
- const aiButtons = ['rte2-toolbar-track-ai', 'rte2-toolbar-ai-inline']
80
- customMenuBar = customMenuBar.filter(
81
- (item) => !aiButtons.includes(item.className),
82
- )
83
- }
84
-
85
- const numLines = element.getAttribute('data-rte-lines')
86
- const isInline = element.getAttribute('data-inline') === 'true'
87
- const userLabel = element.getAttribute('data-user')
88
- const userId = element.getAttribute('data-user-id')
89
- let richTextElementTags = element.getAttribute('data-rte-tags')
90
- if (richTextElementTags) {
91
- try {
92
- const richTextElementTagsJSON = JSON.parse(richTextElementTags)
93
- richTextElementTags = richTextElementTagsJSON.map((tag) => {
94
- return compliantTagNameMap.get(tag)
95
- })
96
- } catch (err) {
97
- console.log(err)
98
- }
99
- }
100
-
101
- const fieldName = element.getAttribute('name')
102
- const isCollab = element.getAttribute('data-collab') === 'true'
103
- const rte = new RTE(
104
- element,
105
- customMenuBar,
106
- isInline,
107
- userLabel,
108
- userId,
109
- richTextElementTags,
110
- fieldName,
111
- isCollab,
112
- compliantTagNameMap,
113
- parseInt(numLines, 10) || 1,
114
- RICH_TEXT_ELEMENTS_PM,
115
- )
116
- rte.init()
117
-
118
- // Expose RTE instance for Delivery.
119
- element.rte = rte
120
- element.dispatchEvent(
121
- new CustomEvent('brightspot.rte.init', { bubbles: true, detail: { rte } }),
122
- )
123
- })
124
- onFind('.RichTextEditor-uploadComplete', (element) => {
125
- let html = element.dataset.html
126
- if (!html) {
127
- return
128
- }
129
- const $element = $(element)
130
- const $source = $element.popup('source')
131
- if (!$source) {
132
- return
133
- }
134
- const dataEventId = $source.attr('data-event-id')
135
- html = html.replace(/<br>/g, '')
136
- const tmpDiv = document.createElement('div')
137
- tmpDiv.innerHTML = html
138
- const enhancements = tmpDiv.children
139
- const enhancementData = []
140
- ;[...enhancements].forEach((enhancement) => {
141
- const attrsMap = [...enhancement.attributes]
142
- const attrs = attrsMap.reduce((prev, next) => {
143
- prev[next.name] = next.value
144
- return prev
145
- }, {})
146
- enhancementData.push({
147
- label: enhancement.innerText,
148
- data: attrs,
149
- tag: enhancement.tagName.toLowerCase(),
150
- })
151
- })
152
- PubSub.publish(dataEventId, enhancementData)
153
- $element.popup('close')
154
- })
@@ -1,281 +0,0 @@
1
- import onFind from './dom/onFind'
2
-
3
- // Move the field between the display and hidden sections
4
- onFind('.SearchFields-input', (input) => {
5
- const tooltips = window.BRIGHTSPOT?.ui.tooltips
6
- input.setAttribute(
7
- 'title',
8
- input.closest('.SearchFields-hide')
9
- ? tooltips.fieldSelect
10
- : tooltips.fieldHide,
11
- )
12
-
13
- input.addEventListener('keydown', keydownHandler)
14
- input.addEventListener('click', fieldClickHandler)
15
- })
16
-
17
- onFind('.SearchFields-filter', (input) => {
18
- input.addEventListener('keydown', keydownHandler)
19
- })
20
-
21
- const keydownHandler = (e) => {
22
- if (e.key === 'Enter') {
23
- e.preventDefault()
24
- }
25
- }
26
-
27
- const fieldClickHandler = (e) => {
28
- e.preventDefault()
29
- e.stopPropagation()
30
-
31
- const input = e.target.matches('input')
32
- ? e.target
33
- : e.target.querySelector('input')
34
- const searchFieldsWidget = input.closest('.SearchFields')
35
- const li = input.closest('li')
36
- const div = li.closest('div')
37
- let nextSib = li.nextSibling
38
- let displayUl, hideUl
39
-
40
- //If input is in Show/Hide Fields vs Show/Hide Article Filters
41
- if (searchFieldsWidget.querySelector('.SearchFields-tab-container')) {
42
- const tabContainer = searchFieldsWidget.querySelector(
43
- '.SearchFields-tab-container',
44
- )
45
- const tabUl = tabContainer.querySelector('ul')
46
- const selectedLiSection = tabUl
47
- .querySelector('.is-selected')
48
- .classList[0].toLowerCase()
49
- displayUl = searchFieldsWidget.querySelector(
50
- `.SearchFields-container-${selectedLiSection} > .SearchFields-displayContainer > .SearchFields-displayTitle > ul`,
51
- )
52
- hideUl = searchFieldsWidget.querySelector(
53
- `.SearchFields-container-${selectedLiSection} > .SearchFields-hide`,
54
- )
55
- } else {
56
- displayUl = searchFieldsWidget.querySelector(
57
- '.SearchFields-displayTitle > ul',
58
- )
59
- hideUl = searchFieldsWidget.querySelector('.SearchFields-hide > ul')
60
- }
61
-
62
- if (div.classList.contains('SearchFields-hide')) {
63
- const clone = li.cloneNode(true)
64
- const clonedInput = clone.querySelector('.SearchFields-input')
65
- clonedInput.addEventListener('click', fieldClickHandler)
66
- clonedInput.setAttribute('title', window.BRIGHTSPOT?.ui.tooltips.fieldHide)
67
- displayUl.appendChild(clone)
68
-
69
- const firstDisplayInput = displayUl?.querySelector(
70
- ':scope > li .SearchFields-input',
71
- )
72
-
73
- if (!nextSib) {
74
- firstDisplayInput?.focus()
75
- } else if (!nextSib.classList.contains('is-disabled')) {
76
- nextSib.querySelector('input')?.focus()
77
- } else {
78
- while (nextSib?.classList.contains('is-disabled')) {
79
- nextSib = nextSib.nextSibling
80
- if (!nextSib) {
81
- firstDisplayInput?.focus()
82
- } else if (!nextSib.classList.contains('is-disabled')) {
83
- nextSib.querySelector('input')?.focus()
84
- }
85
- }
86
- }
87
- } else {
88
- if (!nextSib) {
89
- searchFieldsWidget?.querySelector('.actions > button')?.focus()
90
- } else {
91
- nextSib.querySelector('input')?.focus()
92
- }
93
- li.remove()
94
- }
95
- toggleHidden(input.value, hideUl)
96
- }
97
-
98
- const toggleHidden = (fieldName, container) => {
99
- const input = container.querySelector(`input[value="${fieldName}"]`)
100
- const item = input?.closest('li')
101
-
102
- if (item?.classList.contains('is-disabled')) {
103
- input.addEventListener('click', fieldClickHandler)
104
- }
105
-
106
- item?.classList.toggle('is-disabled')
107
- input?.toggleAttribute('disabled')
108
- item?.querySelector('.SearchFields-drag')?.toggleAttribute('disabled')
109
- }
110
-
111
- // Search for hidden fields in the input bar
112
- onFind('.SearchFields .SearchFields-filter', (input) => {
113
- input.addEventListener('input', (e) => {
114
- const container = input.closest('.SearchFields-hide')
115
- const reg = new RegExp(
116
- e.target.value.replace(/\s/, '').split('').join('(?:.*\\W)?'),
117
- 'i',
118
- )
119
-
120
- container.querySelectorAll('label').forEach((item) => {
121
- const li = item.parentElement
122
- if (reg.test(item.getAttribute('data-display-name'))) {
123
- li.style.display = 'flex'
124
- } else {
125
- li.style.display = 'none'
126
- }
127
- })
128
-
129
- container
130
- .querySelectorAll('.SearchFields-subheading')
131
- .forEach((subheading) => {
132
- const ul = subheading.nextSibling
133
-
134
- if (ul.querySelector('li[style*="display: flex"]')) {
135
- subheading.style.display = 'flex'
136
- ul.style.display = 'block'
137
- } else {
138
- subheading.style.display = 'none'
139
- ul.style.display = 'none'
140
- }
141
- })
142
- })
143
- })
144
-
145
- // Find tabs to display coloumns or summary
146
- onFind(
147
- '.SearchFields .SearchFields-tab-container .SearchFields-tab-ul',
148
- (tabsContainer) => {
149
- const searchFieldsWidget = tabsContainer.closest('.SearchFields')
150
- searchFieldsWidget.classList.add('has-tabs')
151
- const selectedLi = [...tabsContainer.children].filter((liEl) =>
152
- liEl.classList.contains('is-selected'),
153
- )[0]
154
-
155
- const otherLi = [...tabsContainer.children].filter(
156
- (liEl) => !liEl.classList.contains('is-selected'),
157
- )[0]
158
-
159
- const sectionToShow = searchFieldsWidget.querySelector(
160
- '.SearchFields-container-' + selectedLi.classList[0].toLowerCase(),
161
- )
162
- const sectionToHide = searchFieldsWidget.querySelector(
163
- '.SearchFields-container-' + otherLi.classList[0].toLowerCase(),
164
- )
165
-
166
- selectedLi.addEventListener('click', () => {
167
- handleTabSelected(selectedLi, otherLi, sectionToShow, sectionToHide)
168
- })
169
- otherLi.addEventListener('click', () => {
170
- handleTabSelected(otherLi, selectedLi, sectionToShow, sectionToHide)
171
- })
172
- },
173
- )
174
-
175
- // Disable fields in Hidden column currently in display.
176
- onFind('.SearchFields-container', (container) => {
177
- const hiddenFields = container.querySelectorAll(
178
- '.SearchFields-hide .SearchFields-input',
179
- )
180
- const displayedFields = container.querySelectorAll(
181
- '.SearchFields-displayContainer .SearchFields-input',
182
- )
183
- const displayFieldNames = Array.from(displayedFields).map(
184
- (input) => input.value,
185
- )
186
-
187
- if (displayFieldNames) {
188
- hiddenFields.forEach((input) => {
189
- if (displayFieldNames.includes(input.value)) {
190
- const item = input.closest('.RCIG-item')
191
-
192
- item?.classList.add('is-disabled')
193
- input.setAttribute('disabled', '')
194
- item?.querySelector('.SearchFields-drag')?.setAttribute('disabled', '')
195
- }
196
- })
197
- }
198
-
199
- if (container.querySelector('.SearchFields-hide .SearchFields-subheading')) {
200
- container.classList.add('has-subheadings')
201
- }
202
-
203
- // Listen for Sortable drag/drop event
204
- container
205
- .querySelectorAll(
206
- '.SearchFields-hide ul, .SearchFields-displayContainer ul',
207
- )
208
- .forEach((ul) => {
209
- if (ul.closest('.SearchFields-hide')) {
210
- ul.classList.add('is-clonable')
211
- }
212
-
213
- ul.addEventListener('add', (evt) => {
214
- if (evt.detail) {
215
- evt = evt.detail
216
- }
217
- if (!evt.item) {
218
- return
219
- }
220
- const input = evt.item.querySelector('.SearchFields-input')
221
- const fieldName = input.value
222
- const isFromHide = evt.from.classList.contains('is-clonable')
223
- const isAddToHide = evt.to.classList.contains('is-clonable')
224
- const hideFields = ul.closest('.SearchFields-hide')
225
-
226
- // Give time for Sortable to finish.
227
- setTimeout(() => {
228
- input.addEventListener('click', fieldClickHandler)
229
-
230
- if (isAddToHide && isFromHide) {
231
- evt.item.remove()
232
- const li = hideFields
233
- ?.querySelector(`.SearchFields-input[value="${fieldName}"]`)
234
- .closest('li')
235
- const input = li.querySelector('.SearchFields-input')
236
-
237
- li.addEventListener('animationend', () => {
238
- li.classList.remove('is-added')
239
- })
240
- li.classList.add('is-added')
241
-
242
- input.addEventListener('click', fieldClickHandler)
243
- input.checked = false
244
- } else if (isFromHide) {
245
- input.checked = true
246
- toggleHidden(fieldName, evt.from)
247
- } else {
248
- hideFields
249
- ?.querySelectorAll(`.SearchFields-input[value="${fieldName}"]`)
250
- .forEach((input) => {
251
- const li = input.closest('li')
252
- if (li.classList.contains('is-disabled')) {
253
- evt.item.remove()
254
- toggleHidden(fieldName, hideFields)
255
- input.scrollIntoView({ block: 'center' })
256
- input.checked = false
257
-
258
- li.addEventListener('animationend', () => {
259
- li.classList.remove('is-added')
260
- })
261
- li.classList.add('is-added')
262
- }
263
- })
264
- }
265
- }, 0)
266
- })
267
- })
268
- })
269
-
270
- const handleTabSelected = (
271
- selectedLi,
272
- otherLi,
273
- sectionToShow,
274
- sectionToHide,
275
- ) => {
276
- if (selectedLi.classList.contains('is-selected')) return
277
- selectedLi.classList.toggle('is-selected')
278
- otherLi.classList.toggle('is-selected')
279
- sectionToHide.classList.toggle('is-hidden')
280
- sectionToShow.classList.toggle('is-hidden')
281
- }
@@ -1,255 +0,0 @@
1
- import create from './dom/create'
2
- import findAll from './dom/findAll'
3
- import insertBefore from './dom/insertBefore'
4
- import onFind from './dom/onFind'
5
- import Mark from 'mark.js'
6
- import storage from './util/storage'
7
- import {
8
- listenForMenuItemClick,
9
- setupMenuForAria,
10
- toggleMenu,
11
- } from '../../../dom/popupMenu'
12
- import getZindex from '../../webapp/script/v3/plugin/popup'
13
-
14
- const tooltips = window.BRIGHTSPOT?.ui.tooltips
15
-
16
- // Toggle all item checkboxes in the search result.
17
- onFind('.searchResult-checkAll', (checkAll) => {
18
- const searchList = checkAll.closest('table')
19
- if (searchList) {
20
- const checkboxes = findAll(
21
- searchList,
22
- ':scope > tbody input[type="checkbox"]',
23
- )
24
-
25
- const updateSelectAll = () => {
26
- const checkedItems = findAll(
27
- searchList,
28
- ':scope > tbody input[type="checkbox"]:checked',
29
- )
30
-
31
- checkAll.checked =
32
- checkboxes.length > 0 && checkedItems.length === checkboxes.length
33
- }
34
-
35
- for (const check of checkboxes) {
36
- check.addEventListener('click', (event) => {
37
- updateSelectAll()
38
- })
39
- }
40
- checkAll.addEventListener('click', (event) => {
41
- const checked = checkAll.checked
42
- const frameAttribute = `data-frame-${checked ? 'check' : 'uncheck'}`
43
- let itemIds = ''
44
-
45
- for (const c of checkboxes) {
46
- c.checked = checked
47
- if (!checkAll.getAttribute(frameAttribute).includes(c.value)) {
48
- itemIds += `&id=${encodeURIComponent(c.value)}`
49
- }
50
- }
51
-
52
- checkAll.setAttribute(
53
- frameAttribute,
54
- checkAll.getAttribute(frameAttribute) + itemIds,
55
- )
56
- })
57
-
58
- updateSelectAll()
59
- }
60
- })
61
-
62
- // Moves search actions above search results
63
- onFind('.SearchResult-view > .SearchResult-actions.loaded', (frame) => {
64
- const view = frame.closest('.SearchResult-view')
65
-
66
- const actionsWrapper = create('div', {
67
- className: 'SearchResult-actions-wrapper',
68
- })
69
-
70
- const menuItems = frame.querySelectorAll('[role="menuitem"]')
71
- menuItems.forEach((item) => item.setAttribute('tabindex', '-1'))
72
-
73
- const button = create('button', {
74
- className: 'SearchResult-actions-toggle',
75
- id: 'SearchResult-actions-toggle',
76
- title: tooltips.actions?.actions,
77
- 'aria-haspopup': 'menu',
78
- 'aria-label': tooltips.actions?.searchResult,
79
- 'aria-expanded': 'false',
80
- onclick: () => {
81
- listenForMenuItemClick(frame, button)
82
- toggleMenu(frame, button)
83
- },
84
- })
85
-
86
- view.prepend(actionsWrapper)
87
- actionsWrapper.appendChild(button)
88
- actionsWrapper.appendChild(frame)
89
-
90
- setupMenuForAria(frame, button)
91
-
92
- // Creates fullscreen button outside of actions frame
93
- if (view.closest('.SearchWidget[name="searchAdvancedFull"]')) return
94
- const fsLink = view.querySelector(
95
- '.SearchResult-action-link[href*="/searchAdvancedFull"]',
96
- )
97
- const fullscreen = create('button', {
98
- className: 'SearchResult-fullscreen',
99
- title: tooltips.fullScreenSearch,
100
- 'aria-label': tooltips.fullScreen,
101
- onclick: (event) => {
102
- fsLink.click()
103
- },
104
- })
105
- actionsWrapper.appendChild(fullscreen)
106
- })
107
-
108
- onFind('.SearchResult-actions .SearchResult-selectionReset', (reset) => {
109
- reset.addEventListener('click', () => {
110
- const actions = reset.closest('.SearchResult-actions-wrapper')
111
- actions?.querySelector('.SearchResult-actions-toggle')?.focus()
112
- })
113
- })
114
-
115
- // Keep tab 'sticky' when using a filter.
116
- onFind('.SearchResult-views', (tabs) => {
117
- const searchWidget = tabs.closest('.SearchWidget')
118
- const searchFiltersRest = searchWidget?.querySelector('.searchFiltersRest')
119
-
120
- if (searchFiltersRest) {
121
- const viewInput = searchFiltersRest.querySelector('input[name="view"]')
122
-
123
- if (viewInput) {
124
- tabs.querySelectorAll('[data-view]').forEach((tab) => {
125
- tab.addEventListener(
126
- 'click',
127
- () => (viewInput.value = tab.dataset.view),
128
- )
129
- })
130
- }
131
- }
132
- })
133
-
134
- onFind('.SearchResult-images', (images) => {
135
- const searchForm = images.closest('.SearchWidget-form')
136
- const shadow = searchForm?.querySelector(
137
- '.searchFiltersRest input[name="iz"]',
138
- )
139
- const list = images.closest('.SearchResult-list')
140
- const height =
141
- shadow?.value || storage.get('BSP.SearchResult.imageHeight') || 20
142
-
143
- images.setAttribute('data-height', height)
144
-
145
- if (list) {
146
- insertBefore(
147
- create(
148
- 'div',
149
- {
150
- className: 'SearchResult-imageHeightInput',
151
- },
152
- create('input', {
153
- type: 'range',
154
- title: tooltips.imageHeight,
155
- min: 1,
156
- max: 100,
157
- step: 1,
158
- value: height,
159
- 'aria-label': tooltips.imageHeight,
160
- 'shadow-field': shadow?.name,
161
- oninput: ({ target: { value } }) => {
162
- images.setAttribute('data-height', value)
163
- storage.set('BSP.SearchResult.imageHeight', value)
164
- },
165
- onmouseup: (evt) => {
166
- if (shadow && height !== evt.target.value) {
167
- shadowField(evt, shadow.name)
168
- }
169
- },
170
- }),
171
- ),
172
- list,
173
- )
174
- }
175
- })
176
-
177
- onFind('.SearchResult-board-field', (select) => {
178
- select.addEventListener('change', (evt) => {
179
- shadowField(evt, select.name)
180
- })
181
- })
182
-
183
- onFind('.SearchResult [data-highlight]', (container) => {
184
- const query = container.dataset.highlight
185
- if (query) {
186
- const scope = container.matches('table')
187
- ? container.querySelector('tbody') || container
188
- : container
189
- new Mark(scope).mark(query.trim().split(/\s+/), {
190
- className: 'SearchResult-highlight',
191
- })
192
- }
193
- })
194
-
195
- // Refresh frame on bulkArchive-bulkRestore from Search Results actions
196
- onFind('.Popup[name="bulkArchive"]', (bulkArchive) => {
197
- const filter = bulkArchive.parentNode.querySelector(
198
- `.Popup[name="miscSearch"] .queryRestrictions`,
199
- )
200
- const closeButton = bulkArchive.querySelector('.closeButton')
201
-
202
- if (closeButton) {
203
- closeButton.addEventListener('click', submitForm)
204
- }
205
-
206
- function submitForm() {
207
- const success = bulkArchive.querySelector('.message.is-success')
208
- if (success) {
209
- let event = new CustomEvent('submit', { bubbles: true })
210
- filter.dispatchEvent(event)
211
- bulkArchive.parentNode.removeChild(bulkArchive)
212
- }
213
- }
214
- })
215
-
216
- function shadowField(event, fieldName) {
217
- event.preventDefault()
218
- event.stopPropagation()
219
-
220
- const searchForm = event.target.closest('.SearchWidget-form')
221
- const shadow = searchForm.querySelector(
222
- `.searchFiltersRest input[name="${fieldName}"]`,
223
- )
224
- const shadowView = searchForm.querySelector('input[name="view"]')
225
- const view = searchForm.querySelector('.SearchResult-views li.selected a')
226
- .dataset.view
227
-
228
- shadow.value = event.target.value
229
- shadowView.value = view
230
- shadow.shadowField = fieldName
231
- shadow.dispatchEvent(new Event('change', { bubbles: true }))
232
- }
233
-
234
- onFind('.Popup[name="miscSearch"] .SearchResult-list', (container) => {
235
- container.addEventListener('click', function (e) {
236
- const editLink = e.target.closest('a[href*="/edit.jsp"]')
237
- if (!editLink) return
238
- if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey || e.button !== 0)
239
- return
240
- e.preventDefault()
241
-
242
- // Create loader overlay directly
243
- const loader = create(
244
- 'div',
245
- {
246
- id: 'searchResult-loader-overlay',
247
- className: 'searchResult-loader-overlay',
248
- },
249
- create('span', { className: 'searchResult-loader-spinner' }),
250
- )
251
- loader.style.zIndex = getZindex()
252
- document.body.appendChild(loader)
253
- window.location = editLink.href
254
- })
255
- })