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