markupeditor 0.9.5 → 0.9.7
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/config/behaviorconfig.json +7 -0
- package/config/keymapconfig.json +24 -0
- package/config/toolbarconfig.json +79 -0
- package/dist/custom-elements.json +30 -4
- package/dist/markup-editor.js +296 -255
- package/package.json +5 -3
- package/styles/toolbar.css +19 -7
package/dist/markup-editor.js
CHANGED
|
@@ -2,7 +2,7 @@ const sheet$2 = new CSSStyleSheet();sheet$2.replaceSync("/**\n The CSS here was
|
|
|
2
2
|
|
|
3
3
|
const sheet$1 = new CSSStyleSheet();sheet$1.replaceSync("#editor, .editor {\n font-family: system-ui, sans-serif;\n background: white;\n color: black;\n background-clip: padding-box;\n margin: -8px; /* Set so that the .ProseMirror padding starts from edges */\n --padBottom: 0; /* MU.padBottom() sets this value in px based on fullHeight */\n padding-block: 0 var(--padBottom);\n overflow-x: clip;\n overflow-y: scroll;\n height: 100vh;\n padding-right: 12px;\n}\n@media (prefers-color-scheme: dark) {\n #editor, .editor {\n background: black;\n color: white;\n }\n}\n\nbody {\n font-family: system-ui, sans-serif;\n}\n\na {\n color: blue;\n text-decoration: none;\n}\n@media (prefers-color-scheme: dark) {\n a {\n color: #4183c4;\n }\n}\n\na:hover {\n text-decoration: underline;\n}\n\np, pre {\n font-size: 1.0rem;\n}\n\np, ul, ol, dl, table, pre {\n margin: 0 0 15px;\n}\n\nul, ol {\n padding-left: 30px;\n}\n\nh1 {\n font-size: 2.5rem;\n}\n\nh2 {\n font-size: 2.0rem;\n}\n\nh3 {\n font-size: 1.5rem;\n}\n\nh4 {\n font-size: 1.2rem;\n}\n\nh5 {\n font-size: 1.0rem;\n}\n\nh6 {\n font-size: .83rem;\n}\n\nh1, h2, h3, h4, h5, h6 {\n font-weight: bold;\n margin: 0 0 10px 0;\n}\n\nh1 + p, h2 + p, h3 + p {\n margin-top: 10px;\n}\n\ntable {\n table-layout: fixed;\n border-collapse: collapse;\n width: 100%;\n}\n\ntable th, table td {\n padding: 4px;\n}\n\ntable th {\n font-weight: normal; /* The default is bold, but we want to use paragraph styles and formatting */\n}\n\n/* Make the styling compact inside of a table */\ntable p, table h1, table h2, table h3, table h4, table h5, table h6 {\n margin: 0;\n}\n\n/* Table bordering options */\n.bordered-table-none {\n border: none;\n}\n\n.bordered-table-outer, .bordered-table-header, .bordered-table-cell {\n border: 1px solid #DDD;\n}\n\n.bordered-table-header th { /* border th not thead to refresh properly */\n border: 1px solid #DDD;\n}\n\n.bordered-table-cell th, .bordered-table-cell td {\n border: 1px solid #DDD;\n}\n\n/* Default table bordering is same as .bordered-table-cell but is only used when not specified */\ntable:not(.bordered-table-none, .bordered-table-outer, .bordered-table-header, .bordered-table-cell) {\n border: 1px solid #DDD;\n}\n\ntable:not(.bordered-table-none, .bordered-table-outer, .bordered-table-header, .bordered-table-cell) td {\n border: 1px solid #DDD;\n}\n\ntable:not(.bordered-table-none, .bordered-table-outer, .bordered-table-header, .bordered-table-cell) th {\n border: 1px solid #DDD;\n}\n\nli p {\n margin: 0px 0;\n}\n\nblockquote {\n margin-right: 0px; /* Because nested blockquotes just keep getting narrower */\n}\n\ncode {\n overflow-x: scroll;\n display: block;\n background-color: #F8F8F8;\n border-radius: 3px;\n font-family: 'SF Mono', SFMono-Regular, ui-monospace, 'DejaVu Sans Mono', Menlo, Consolas, monospace;\n white-space: pre;\n}\n@media (prefers-color-scheme: dark) {\n code {\n background-color: #808080;\n }\n}\n\np code, h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {\n display: inline;\n}\n\n.resize-container {\n position: relative;\n display: inline-block;\n margin: 0;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\n/* Provide a slightly darkened or lightened overlay while search is active */\n.searching {\n background-color: rgba(0, 0, 0, 0.10);\n}\n@media (prefers-color-scheme: dark) {\n .searching {\n background: rgba(255, 255, 255, 0.10);\n }\n}\n\n.resize-container img {\n display: block;\n outline: 1px black dashed;\n outline-offset: 4px;\n outline-width: 1px;\n}\n@media (prefers-color-scheme: dark) {\n .resize-container img {\n outline: 1px white dashed;\n }\n}\n\n.resize-handle-nw,\n.resize-handle-ne,\n.resize-handle-sw,\n.resize-handle-se {\n position: absolute;\n display: block;\n width: 6px;\n height: 6px;\n outline: 1px black solid;\n background: white;\n z-index: 999;\n}\n@media (prefers-color-scheme: dark) {\n .resize-handle-nw,\n .resize-handle-ne,\n .resize-handle-sw,\n .resize-handle-se {\n outline: 1px white solid;\n background: black;\n }\n}\n\n/* A transparent child for each resize-handle that expands the clickable area */\n.resize-handle-nw:after,\n.resize-handle-ne:after,\n.resize-handle-sw:after,\n.resize-handle-se:after {\n content: \"\";\n position: absolute;\n left: -5px;\n top: -5px;\n width: 16px;\n height: 16px;\n}\n\n/* The *-resize cursors do not work, at least in MacCatalyst.\n * Still specifying them below. They default to a pointer instead\n */\n.resize-handle-nw {\n cursor: nw-resize;\n top: -8px;\n left: -7px;\n}\n\n.resize-handle-ne {\n cursor: ne-resize;\n top: -8px;\n right: -7px;\n}\n\n.resize-handle-sw {\n cursor: sw-resize;\n bottom: -8px;\n left: -7px;\n}\n\n.resize-handle-se {\n cursor: se-resize;\n bottom: -8px;\n right: -7px;\n}\n\n.placeholder[placeholder]:before {\n content: attr(placeholder);\n position: absolute;\n color: #ccc;\n}\n\n/* Classes set by prosemirror-search module, modified for MarkupEditor */\n/* Note the dark and light mode are the same */\n\n.ProseMirror-search-match {\n background-color: yellow;\n color: black;\n}\n\n.ProseMirror-active-search-match {\n background-color: orange;\n color: black;\n outline: 1px orangered solid;\n z-index: 2;\n}");
|
|
4
4
|
|
|
5
|
-
const sheet = new CSSStyleSheet();sheet.replaceSync("/* Spacing at the top */\n/* Note that toolbar-overlay below is also set to these values */\n\n.Markup-searchbar-showing {\n height: 38px;\n top: 76px;\n}\n\n/* The wrapper lets us automatically embed a toolbar and scroll under it */\n.Markup-toolbar-wrapper {\n margin-right: -12px; /* Prevent side scroll even when menu fits */\n height: inherit;\n overflow-y: scroll;\n position: relative; \n}\n\n/* We add Markup-prompt-showing to the wrapper to prevent scroll, and remove it when done */\n.Markup-prompt-showing {\n overflow-y: hidden;\n}\n\n/* Z-indexes in one place */\n\n.body-content { \n z-index: 1; \n}\n\n.Markup-prompt-overlay { \n z-index: 2; \n}\n\n.Markup-prompt, .Markup-selection {\n z-index: 3;\n}\n\n.Markup-searchbar {\n z-index: 4;\n}\n\n.Markup-toolbar, .Markup-toolbar-more {\n z-index: 5;\n}\n\n.Markup-toolbar-overlay { \n z-index: 6; \n}\n\n.Markup-menu-dropdown-menu {\n z-index: 7;\n}\n\n/* Toolbar, menu item, and dropdown styling */\n\n.Markup-toolbar {\n display: inline-flex;\n position: sticky;\n overflow: visible;\n width: 100%;\n font-size: 24px;\n vertical-align: middle;\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n top: 0;\n max-height: 38px;\n padding: 2px 8px;\n color: blue;\n background: rgba(250, 249, 246, 0.95);\n border-bottom: 1px solid lightgray;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-toolbar {\n color: rgb(250, 249, 246);\n background: rgba(40, 40, 43, 0.9);\n border-bottom: 1px solid gray;\n }\n}\n\n.Markup-menuitem {\n display: inline-block;\n flex-shrink: 0; /* Otherwise, the drop-downs with icons shrink */\n overflow-y: visible;\n vertical-align: middle;\n min-width: 28px;\n height: 28px;\n cursor: pointer;\n margin-right: 4px;\n border-radius: 4px;\n color: blue;\n border: 1px solid blue;\n background: white;\n fill: blue;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menuitem {\n color: lightblue;\n border: 1px solid lightblue; \n /* border: 1px solid #4183c4; */\n background: black;\n fill: lightblue;\n }\n}\n\n.Markup-menuitem-active {\n fill: white;\n color: white;\n background: blue;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menuitem-active {\n fill: black;\n color: black;\n background: lightblue;\n }\n}\n\n.Markup-menuitem-disabled {\n cursor: default;\n opacity: .3;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menuitem-disabled {\n opacity: .6;\n }\n}\n\n.Markup-icon {\n display: inline-block;\n width: 28px;\n height: 28px;\n border: 0;\n}\n\n.Markup-icon span {\n vertical-align: middle;\n}\n\n.Markup-icon svg {\n padding: 2px;\n border: 0;\n fill: inherit;\n}\n\n.Markup-menuseparator {\n display: inline-block;\n vertical-align: middle;\n height: 28px;\n border-right: 1px solid lightgray;\n margin-right: 4px;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menuseparator {\n border-right: 1px solid gray;\n }\n}\n\n.Markup-menu-disabled .Markup-icon {\n cursor: default;\n}\n\n.Markup-menu-dropdown, .Markup-menu-dropdown-menu {\n background: inherit;\n text-align: left;\n white-space: nowrap;\n}\n\n.Markup-menu-dropdown span {\n vertical-align: middle;\n}\n\n.Markup-menu-dropdown-icon span {\n vertical-align: middle;\n}\n\n.Markup-menu-dropdown-wrap {\n display: inline-block;\n padding: 0 4px;\n min-width: 3.0em;\n height: inherit;\n border-radius: 4px;\n background: inherit;\n}\n\n.Markup-menu-dropdown-icon-wrap {\n display: inline-block;\n padding-right: 4px;\n width: 1.8em;\n height: inherit;\n border-radius: 4px;\n background: inherit;\n}\n\n.Markup-menu-dropdown-icon-wrap-noindicator {\n display: inline-flex;\n padding-right: 4px;\n width: 1em;\n height: inherit;\n border-radius: 4px;\n background: inherit;\n}\n\n.Markup-menu-dropdown {\n display: inline-flex;\n justify-content: space-between;\n min-width: 3.0em;\n height: inherit;\n background: inherit;\n position: absolute;\n}\n\n.Markup-menu-dropdown-icon {\n display: inline-flex;\n justify-content: space-between;\n width: 1.8em;\n cursor: pointer;\n position: absolute;\n}\n\n.Markup-menu-dropdown-indicator, .Markup-menu-dropdown-icon-indicator{\n opacity: .6;\n}\n\n.Markup-tooltip .Markup-menu {\n width: -webkit-fit-content;\n width: fit-content;\n white-space: pre;\n}\n\n.Markup-menu-dropdown-menu, .Markup-menu-submenu {\n position: absolute;\n background: inherit;\n padding: 2px;\n background: inherit;\n border: 1px solid gray;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menu-dropdown-menu, .Markup-menu-submenu {\n border: 1px solid lightgray;\n }\n}\n\n.Markup-menu-dropdown-menu {\n margin-top: calc(1em + 6px);\n min-width: 4em;\n}\n\n.Markup-menu-dropdown-item {\n cursor: pointer;\n padding: 2px 8px 2px 4px;\n}\n\n/* Used to overlfow and ellipsis-truncate text in Dropdown menu items */\n.Markup-menuitem-clipped {\n white-space: nowrap; /* Required for text-overflow */\n overflow-x: hidden; /* Required for text-overflow */\n max-width: 30em;\n text-overflow: ellipsis;\n}\n\n.Markup-menu-dropdown-item:hover, .Markup-menu-submenu-wrap:hover {\n background: #f2f2f2;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menu-dropdown-item:hover, .Markup-menu-submenu-wrap:hover {\n background: rgb(80, 80, 80);\n }\n}\n\n.Markup-menu-dropdown-item p, \n.Markup-menu-dropdown-item h1, \n.Markup-menu-dropdown-item h2, \n.Markup-menu-dropdown-item h3, \n.Markup-menu-dropdown-item h4, \n.Markup-menu-dropdown-item h5, \n.Markup-menu-dropdown-item h6, \n.Markup-menu-dropdown-item pre {\n padding: 0;\n margin: 0;\n min-height: 24px;\n}\n\n.Markup-stylelabel {\n display: flex;\n justify-content: space-between;\n align-items: center;\n white-space: pre;\n width: 100%;\n}\n\n.Markup-stylelabel-keymap {\n display: flex;\n justify-content: flex-end;\n font-size: 1.0rem;\n font-weight: normal;\n color: gray;\n}\n\n.Markup-menu-submenu-wrap:hover .Markup-menu-submenu, .Markup-menu-submenu-wrap-active .Markup-menu-submenu {\n display: block;\n}\n\n.Markup-menu-submenu-wrap {\n position: relative;\n margin-right: -4px;\n background: inherit;\n}\n\n.Markup-menu-submenu {\n display: none;\n min-width: 4em;\n left: 100%;\n top: -5px;\n /* background cannot be inherited because of hover highlighting in dropdown */\n background: white;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menu-submenu {\n /* background cannot be inherited because of hover highlighting in dropdown */\n background: black;\n }\n}\n\n.Markup-menu-submenu-label:after {\n content: \"\";\n border-top: 4px solid transparent;\n border-bottom: 4px solid transparent;\n border-left: 4px solid currentColor;\n opacity: .6;\n position: absolute;\n right: 4px;\n top: calc(50% - 4px);\n}\n\n.Markup-selection {\n position: absolute;\n border: 1px solid blue;\n background: transparent;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-selection {\n border: 1px solid lightblue;\n }\n}\n\n/* Toolbar-more styling */\n\n.Markup-toolbar-more {\n display: inline-flex;\n position: sticky;\n overflow: visible;\n width: 100%;\n font-size: 24px;\n vertical-align: middle;\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n top: 35px;\n max-height: 38px;\n padding: 2px 8px;\n color: blue;\n background: rgba(250, 249, 246, 0.95);\n border-bottom: 1px solid lightgray;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-toolbar-more {\n color: rgb(250, 249, 246);\n background: rgba(40, 40, 43, 0.9);\n border-bottom: 1px solid gray;\n }\n}\n\n/* Searchbar styling */\n\n.Markup-searchbar {\n display: inline-block;\n font-size: 24px;\n vertical-align: middle;\n position: sticky;\n top: 35px;\n width: 100%;\n line-height: 30px;\n height: 37px;\n color: blue;\n background: rgba(250, 249, 246, 0.95);\n border-bottom: 1px solid lightgray;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n overflow: hidden;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-searchbar {\n color: rgb(250, 249, 246);\n background: rgba(40, 40, 43, 0.9);\n border-bottom: 1px solid gray;\n }\n}\n\n.Markup-searchbar input {\n appearance: none; /* Otherwise, in Safari/WebKit, the height is small and fixed */\n position: relative;\n font-size: 18px;\n line-height: 30px;\n height: 30px;\n width: calc(100% - 128px);\n margin: 0 8px;\n padding: 0 4px;\n outline: none;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid lightgray;\n border-radius: 6px;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-searchbar input {\n color: rgb(250, 249, 246);\n background: rgb(40, 40, 43);\n border: 1px solid gray;\n }\n}\n\n.Markup-searchbar .Markup-searchbar-status {\n position: absolute;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n white-space: nowrap;\n font-size: 12px;\n overflow-x: visible;\n height: 28px;\n top: 5px;\n left: calc(100% - 13em);\n width: 1px;\n color: gray;\n user-select: none;\n}\n\n/* Dialog/prompt styling for insert/edit actions */\n\n.Markup-prompt-overlay {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(0, 0, 0, 0.2);\n}\n@media (prefers-color-scheme: dark) {\n .Markup-prompt-overlay {\n background-color: rgba(255, 255, 255, 0.2);\n }\n}\n\n.Markup-toolbar-overlay {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\tbackground-color: rgba(0, 0, 0, 0.1);\n}\n@media (prefers-color-scheme: dark) {\n .Markup-toolbar-overlay {\n background-color: rgba(255, 255, 255, 0.1);\n }\n}\n\n.Markup-toolbar-overlay.Markup-searchbar-hidden {\n height: 38px;\n}\n\n.Markup-toolbar-overlay.Markup-searchbar-showing {\n height: 76px;\n}\n\n.Markup-prompt {\n margin: 0;\n font-size: 18px;\n background: white;\n padding: 8px;\n border: 1px solid silver;\n position: absolute;\n border-radius: 3px;\n box-shadow: -.5px 2px 5px rgba(0, 0, 0, 0.2);\n}\n@media (prefers-color-scheme: dark) {\n .Markup-prompt {\n background: black;\n box-shadow: -.5px 2px 5px rgba(255, 255, 255, 0.8);\n }\n}\n\n.Markup-prompt-link {\n height: 96px;\n width: 300px;\n}\n\n.Markup-prompt-image {\n height: 130px;\n width: 300px;\n}\n\n.Markup-prompt img {\n display: inline-block;\n vertical-align: middle;\n min-width: 28px;\n height: 28px;\n margin-right: 4px;\n}\n\n.Markup-prompt p {\n margin: 0 0 4px 0;\n font-weight: normal;\n color: black;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-prompt p {\n color: white;\n }\n}\n\n.Markup-prompt input[type=\"text\"] {\n font-size: 100%;\n line-height: 28px;\n margin-top: 2px;\n padding: 1px 4px;\n width: 100%;\n appearance: none;\n background: #eee;\n outline: none;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid lightgray;\n border-radius: 6px;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-prompt input[type=\"text\"] {\n color: rgb(250, 249, 246);\n background: rgb(40, 40, 43);\n border: 1px solid gray;\n }\n}\n\n.Markup-prompt input.invalid {\n color: red;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-prompt input.invalid {\n color: pink;\n }\n}\n\n.Markup-prompt-buttons {\n display: flex;\n vertical-align: middle;\n justify-content: space-between;\n justify-items: center;\n line-height: 28px;\n height: 28px;\n margin-top: 8px;\n margin-bottom: 8px;\n}\n\n.Markup-prompt-buttongroup {\n flex-shrink: 0;\n}\n\n.Markup-prompt-buttons img {\n aspect-ratio: auto;\n height: auto;\n object-fit: contain;\n}\n\n.Markup-prompt-buttons .Markup-menuitem {\n display: inline-flex;\n padding-right: 4px;\n padding-left: 4px;\n}\n\n/* The buttongroup contains OK and Cancel menuitems on the right */\n.Markup-prompt-buttongroup .Markup-menuitem {\n margin-right: 0;\n margin-left: 4px;\n}\n\n/* .Markup-menu-tablesizer is a specialized submenu */\n.Markup-menu-tablesizer {\n display: none;\n grid-template-columns: repeat(4, 1fr);\n grid-auto-rows: 18px;\n row-gap: 1px;\n column-gap: 1px;\n padding: 0;\n left: 100%;\n top: -5px;\n /* background cannot be inherited because of hover highlighting in dropdown */\n background: white;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menu-tablesizer {\n /* background cannot be inherited because of hover highlighting in dropdown */\n background: black;\n }\n}\n\n.Markup-menu-submenu-wrap:hover .Markup-menu-tablesizer, .Markup-menu-submenu-wrap-active .Markup-menu-tablesizer {\n display: grid;\n}\n\n.Markup-menu-dropdown-menu, .Markup-menu-tablesizer {\n position: absolute;\n background: inherit;\n padding: 2px;\n background: inherit;\n border: 1px solid gray;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menu-dropdown-menu, .Markup-menu-submenu {\n border: 1px solid lightgray;\n }\n}\n\n.Markup-menu-tablesizer .Markup-menu-dropdown-item {\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid blue;\n width: 18px;\n height: 18px;\n padding: 0;\n font-size: 13px;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menu-tablesizer .Markup-menu-dropdown-item {\n border: 1px solid lightblue;\n }\n}\n\n.Markup-menu-tablesizer .Markup-menuitem-active {\n height: 13px;\n padding-top: 3px;\n fill: black;\n color: black;\n background: blue;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menu-tablesizer .Markup-menuitem-active {\n fill: black;\n color: black;\n background: lightblue;\n }\n}");
|
|
5
|
+
const sheet = new CSSStyleSheet();sheet.replaceSync("/* Spacing at the top */\n/* Note that toolbar-overlay below is also set to these values */\n\n.Markup-searchbar-showing {\n height: 38px;\n top: 76px;\n}\n\n/* The wrapper lets us automatically embed a toolbar and scroll under it */\n.Markup-toolbar-wrapper {\n margin-right: -12px; /* Prevent side scroll even when menu fits */\n height: inherit;\n overflow-y: scroll;\n position: relative; \n}\n\n/* We add Markup-prompt-showing to the wrapper to prevent scroll, and remove it when done */\n.Markup-prompt-showing {\n overflow-y: hidden;\n}\n\n/* Z-indexes in one place */\n\n.body-content { \n z-index: 1; \n}\n\n.Markup-prompt-overlay { \n z-index: 2; \n}\n\n.Markup-prompt, .Markup-selection {\n z-index: 3;\n}\n\n.Markup-searchbar {\n z-index: 4;\n}\n\n.Markup-toolbar, .Markup-toolbar-more {\n z-index: 5;\n}\n\n.Markup-toolbar-overlay { \n z-index: 6; \n}\n\n.Markup-menu-dropdown-menu {\n z-index: 7;\n}\n\n/* Toolbar, menu item, and dropdown styling */\n\n.Markup-toolbar {\n display: inline-flex;\n position: sticky;\n overflow: visible;\n width: 100%;\n font-size: 24px;\n vertical-align: middle;\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n top: 0;\n max-height: 38px;\n padding: 2px 8px;\n color: blue;\n background: rgba(250, 249, 246, 0.95);\n border-bottom: 1px solid lightgray;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-toolbar {\n color: rgb(250, 249, 246);\n background: rgba(40, 40, 43, 0.9);\n border-bottom: 1px solid gray;\n }\n}\n\n.Markup-menuitem {\n display: inline-block;\n flex-shrink: 0; /* Otherwise, the drop-downs with icons shrink */\n overflow-y: visible;\n vertical-align: middle;\n min-width: 28px;\n height: 28px;\n cursor: pointer;\n margin-right: 4px;\n border-radius: 4px;\n color: blue;\n border: 1px solid blue;\n background: white;\n fill: blue;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menuitem {\n color: lightblue;\n border: 1px solid lightblue; \n /* border: 1px solid #4183c4; */\n background: black;\n fill: lightblue;\n }\n}\n\n.Markup-menuitem-active {\n fill: white;\n color: white;\n background: blue;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menuitem-active {\n fill: black;\n color: black;\n background: lightblue;\n }\n}\n\n.Markup-menuitem-disabled {\n cursor: default;\n opacity: .3;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menuitem-disabled {\n opacity: .6;\n }\n}\n\n.Markup-icon {\n display: inline-block;\n width: 28px;\n height: 28px;\n border: 0;\n}\n\n.Markup-icon span {\n vertical-align: middle;\n}\n\n.Markup-icon svg {\n padding: 2px;\n border: 0;\n fill: inherit;\n}\n\n.Markup-menuseparator {\n display: inline-block;\n vertical-align: middle;\n height: 28px;\n border-right: 1px solid lightgray;\n margin-right: 4px;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menuseparator {\n border-right: 1px solid gray;\n }\n}\n\n.Markup-menu-disabled .Markup-icon {\n cursor: default;\n}\n\n.Markup-menu-dropdown, .Markup-menu-dropdown-menu {\n background: inherit;\n text-align: left;\n white-space: nowrap;\n}\n\n.Markup-menu-dropdown span {\n vertical-align: middle;\n}\n\n.Markup-menu-dropdown-icon span {\n vertical-align: middle;\n}\n\n.Markup-menu-dropdown-wrap {\n display: flex;\n justify-content: space-between;\n padding: 0 4px;\n width: 2.9em;\n height: inherit;\n border-radius: 4px;\n background: inherit;\n}\n\n.Markup-menu-dropdown-icon-wrap {\n display: flex;\n justify-content: space-between;\n padding-right: 4px;\n width: 1.8em;\n height: inherit;\n border-radius: 4px;\n background: inherit;\n}\n\n.Markup-menu-dropdown-icon-wrap-noindicator {\n display: inline-flex;\n padding-right: 4px;\n width: 1em;\n height: inherit;\n border-radius: 4px;\n background: inherit;\n}\n\n/* For the paragraph style dropdown with a label, make the font smaller */\n.Markup-menu-dropdown {\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n font-size: 0.8em;\n width: inherit;\n height: inherit;\n background: inherit;\n position: absolute;\n}\n\n/* But for the indicator, bump size up to match the icon-style dropdown */\n.Markup-menu-dropdown .Markup-menu-dropdown-indicator {\n font-size: 1.25em;\n}\n\n.Markup-menu-dropdown-icon {\n display: inline-flex;\n justify-content: space-between;\n font-size: inherit;\n width: inherit;\n cursor: pointer;\n position: absolute;\n}\n\n.Markup-menu-dropdown-indicator {\n opacity: .6;\n}\n\n.Markup-tooltip .Markup-menu {\n width: -webkit-fit-content;\n width: fit-content;\n white-space: pre;\n}\n\n.Markup-menu-dropdown-menu, .Markup-menu-submenu {\n position: absolute;\n background: inherit;\n padding: 2px;\n background: inherit;\n border: 1px solid gray;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menu-dropdown-menu, .Markup-menu-submenu {\n border: 1px solid lightgray;\n }\n}\n\n.Markup-menu-dropdown-menu {\n margin-top: calc(1em + 6px);\n min-width: 4em;\n}\n\n.Markup-menu-dropdown-item {\n cursor: pointer;\n padding: 2px 8px 2px 4px;\n}\n\n/* Used to overlfow and ellipsis-truncate text in Dropdown menu items */\n.Markup-menuitem-clipped {\n white-space: nowrap; /* Required for text-overflow */\n overflow-x: hidden; /* Required for text-overflow */\n max-width: 30em;\n text-overflow: ellipsis;\n}\n\n.Markup-menu-dropdown-item:hover, .Markup-menu-submenu-wrap:hover {\n background: #f2f2f2;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menu-dropdown-item:hover, .Markup-menu-submenu-wrap:hover {\n background: rgb(80, 80, 80);\n }\n}\n\n.Markup-menu-dropdown-item p, \n.Markup-menu-dropdown-item h1, \n.Markup-menu-dropdown-item h2, \n.Markup-menu-dropdown-item h3, \n.Markup-menu-dropdown-item h4, \n.Markup-menu-dropdown-item h5, \n.Markup-menu-dropdown-item h6, \n.Markup-menu-dropdown-item pre {\n padding: 0;\n margin: 0;\n min-height: 24px;\n}\n\n.Markup-stylelabel {\n display: flex;\n justify-content: space-between;\n align-items: center;\n white-space: pre;\n width: 100%;\n}\n\n.Markup-stylelabel-keymap {\n display: flex;\n justify-content: flex-end;\n font-size: 1.0rem;\n font-weight: normal;\n color: gray;\n}\n\n.Markup-menu-submenu-wrap:hover .Markup-menu-submenu, .Markup-menu-submenu-wrap-active .Markup-menu-submenu {\n display: block;\n}\n\n.Markup-menu-submenu-wrap {\n position: relative;\n margin-right: -4px;\n background: inherit;\n}\n\n.Markup-menu-submenu {\n display: none;\n min-width: 4em;\n left: 100%;\n top: -5px;\n /* background cannot be inherited because of hover highlighting in dropdown */\n background: white;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menu-submenu {\n /* background cannot be inherited because of hover highlighting in dropdown */\n background: black;\n }\n}\n\n.Markup-menu-submenu-label:after {\n content: \"\";\n border-top: 4px solid transparent;\n border-bottom: 4px solid transparent;\n border-left: 4px solid currentColor;\n opacity: .6;\n position: absolute;\n right: 4px;\n top: calc(50% - 4px);\n}\n\n.Markup-selection {\n position: absolute;\n border: 1px solid blue;\n background: transparent;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-selection {\n border: 1px solid lightblue;\n }\n}\n\n/* Toolbar-more styling */\n\n.Markup-toolbar-more {\n display: inline-flex;\n position: sticky;\n overflow: visible;\n width: 100%;\n font-size: 24px;\n vertical-align: middle;\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n top: 35px;\n max-height: 38px;\n padding: 2px 8px;\n color: blue;\n background: rgba(250, 249, 246, 0.95);\n border-bottom: 1px solid lightgray;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-toolbar-more {\n color: rgb(250, 249, 246);\n background: rgba(40, 40, 43, 0.9);\n border-bottom: 1px solid gray;\n }\n}\n\n/* Searchbar styling */\n\n.Markup-searchbar {\n display: inline-block;\n font-size: 24px;\n vertical-align: middle;\n position: sticky;\n top: 35px;\n width: 100%;\n line-height: 30px;\n height: 37px;\n color: blue;\n background: rgba(250, 249, 246, 0.95);\n border-bottom: 1px solid lightgray;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n overflow: hidden;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-searchbar {\n color: rgb(250, 249, 246);\n background: rgba(40, 40, 43, 0.9);\n border-bottom: 1px solid gray;\n }\n}\n\n.Markup-searchbar input {\n appearance: none; /* Otherwise, in Safari/WebKit, the height is small and fixed */\n position: relative;\n font-size: 18px;\n line-height: 30px;\n height: 30px;\n width: calc(100% - 128px);\n margin: 0 8px;\n padding: 0 4px;\n outline: none;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid lightgray;\n border-radius: 6px;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-searchbar input {\n color: rgb(250, 249, 246);\n background: rgb(40, 40, 43);\n border: 1px solid gray;\n }\n}\n\n.Markup-searchbar .Markup-searchbar-status {\n position: absolute;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n white-space: nowrap;\n font-size: 12px;\n overflow-x: visible;\n height: 28px;\n top: 5px;\n left: calc(100% - 13em);\n width: 1px;\n color: gray;\n user-select: none;\n}\n\n/* Dialog/prompt styling for insert/edit actions */\n\n.Markup-prompt-overlay {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(0, 0, 0, 0.2);\n}\n@media (prefers-color-scheme: dark) {\n .Markup-prompt-overlay {\n background-color: rgba(255, 255, 255, 0.2);\n }\n}\n\n.Markup-toolbar-overlay {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\tbackground-color: rgba(0, 0, 0, 0.1);\n}\n@media (prefers-color-scheme: dark) {\n .Markup-toolbar-overlay {\n background-color: rgba(255, 255, 255, 0.1);\n }\n}\n\n.Markup-toolbar-overlay.Markup-searchbar-hidden {\n height: 38px;\n}\n\n.Markup-toolbar-overlay.Markup-searchbar-showing {\n height: 76px;\n}\n\n.Markup-prompt {\n margin: 0;\n font-size: 18px;\n background: white;\n padding: 8px;\n border: 1px solid silver;\n position: absolute;\n border-radius: 3px;\n box-shadow: -.5px 2px 5px rgba(0, 0, 0, 0.2);\n}\n@media (prefers-color-scheme: dark) {\n .Markup-prompt {\n background: black;\n box-shadow: -.5px 2px 5px rgba(255, 255, 255, 0.8);\n }\n}\n\n.Markup-prompt-link {\n height: 96px;\n width: 300px;\n}\n\n.Markup-prompt-image {\n height: 130px;\n width: 300px;\n}\n\n.Markup-prompt img {\n display: inline-block;\n vertical-align: middle;\n min-width: 28px;\n height: 28px;\n margin-right: 4px;\n}\n\n.Markup-prompt p {\n margin: 0 0 4px 0;\n font-weight: normal;\n color: black;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-prompt p {\n color: white;\n }\n}\n\n.Markup-prompt input[type=\"text\"] {\n font-size: 100%;\n line-height: 28px;\n margin-top: 2px;\n padding: 1px 4px;\n width: 100%;\n appearance: none;\n background: #eee;\n outline: none;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid lightgray;\n border-radius: 6px;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-prompt input[type=\"text\"] {\n color: rgb(250, 249, 246);\n background: rgb(40, 40, 43);\n border: 1px solid gray;\n }\n}\n\n.Markup-prompt input.invalid {\n color: red;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-prompt input.invalid {\n color: pink;\n }\n}\n\n.Markup-prompt-buttons {\n display: flex;\n vertical-align: middle;\n justify-content: space-between;\n justify-items: center;\n line-height: 28px;\n height: 28px;\n margin-top: 8px;\n margin-bottom: 8px;\n}\n\n.Markup-prompt-buttongroup {\n flex-shrink: 0;\n}\n\n.Markup-prompt-buttons img {\n aspect-ratio: auto;\n height: auto;\n object-fit: contain;\n}\n\n.Markup-prompt-buttons .Markup-menuitem {\n display: inline-flex;\n padding-right: 4px;\n padding-left: 4px;\n}\n\n/* The buttongroup contains OK and Cancel menuitems on the right */\n.Markup-prompt-buttongroup .Markup-menuitem {\n margin-right: 0;\n margin-left: 4px;\n}\n\n/* .Markup-menu-tablesizer is a specialized submenu */\n.Markup-menu-tablesizer {\n display: none;\n grid-template-columns: repeat(4, 1fr);\n grid-auto-rows: 18px;\n row-gap: 1px;\n column-gap: 1px;\n padding: 0;\n left: 100%;\n top: -5px;\n /* background cannot be inherited because of hover highlighting in dropdown */\n background: white;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menu-tablesizer {\n /* background cannot be inherited because of hover highlighting in dropdown */\n background: black;\n }\n}\n\n.Markup-menu-submenu-wrap:hover .Markup-menu-tablesizer, .Markup-menu-submenu-wrap-active .Markup-menu-tablesizer {\n display: grid;\n}\n\n.Markup-menu-dropdown-menu, .Markup-menu-tablesizer {\n position: absolute;\n background: inherit;\n padding: 2px;\n background: inherit;\n border: 1px solid gray;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menu-dropdown-menu, .Markup-menu-submenu {\n border: 1px solid lightgray;\n }\n}\n\n.Markup-menu-tablesizer .Markup-menu-dropdown-item {\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid blue;\n width: 18px;\n height: 18px;\n padding: 0;\n font-size: 13px;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menu-tablesizer .Markup-menu-dropdown-item {\n border: 1px solid lightblue;\n }\n}\n\n.Markup-menu-tablesizer .Markup-menuitem-active {\n height: 13px;\n padding-top: 3px;\n fill: black;\n color: black;\n background: blue;\n}\n@media (prefers-color-scheme: dark) {\n .Markup-menu-tablesizer .Markup-menuitem-active {\n fill: black;\n color: black;\n background: lightblue;\n }\n}");
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* The registry used to hold delegates, configs, handlers, and
|
|
@@ -13023,7 +13023,7 @@ for (var i = 65; i <= 90; i++) {
|
|
|
13023
13023
|
}
|
|
13024
13024
|
|
|
13025
13025
|
// For each code that doesn't have a shift-equivalent, copy the base name
|
|
13026
|
-
for (var code in base) if (!shift.hasOwnProperty(code)) shift[code] = base[code];
|
|
13026
|
+
for (var code$1 in base) if (!shift.hasOwnProperty(code$1)) shift[code$1] = base[code$1];
|
|
13027
13027
|
|
|
13028
13028
|
function keyName(event) {
|
|
13029
13029
|
// On macOS, keys held with Shift and Cmd don't reflect the effect of Shift in `.key`.
|
|
@@ -16118,7 +16118,7 @@ function history(config = {}) {
|
|
|
16118
16118
|
handleDOMEvents: {
|
|
16119
16119
|
beforeinput(view, e) {
|
|
16120
16120
|
let inputType = e.inputType;
|
|
16121
|
-
let command = inputType == "historyUndo" ? undo : inputType == "historyRedo" ? redo : null;
|
|
16121
|
+
let command = inputType == "historyUndo" ? undo$1 : inputType == "historyRedo" ? redo$1 : null;
|
|
16122
16122
|
if (!command || !view.editable)
|
|
16123
16123
|
return false;
|
|
16124
16124
|
e.preventDefault();
|
|
@@ -16144,11 +16144,11 @@ function buildCommand(redo, scroll) {
|
|
|
16144
16144
|
/**
|
|
16145
16145
|
A command function that undoes the last change, if any.
|
|
16146
16146
|
*/
|
|
16147
|
-
const undo = buildCommand(false, true);
|
|
16147
|
+
const undo$1 = buildCommand(false, true);
|
|
16148
16148
|
/**
|
|
16149
16149
|
A command function that redoes the last undone change, if any.
|
|
16150
16150
|
*/
|
|
16151
|
-
const redo = buildCommand(true, true);
|
|
16151
|
+
const redo$1 = buildCommand(true, true);
|
|
16152
16152
|
|
|
16153
16153
|
/**
|
|
16154
16154
|
* Define various arrays of tags used to represent MarkupEditor-specific concepts.
|
|
@@ -17572,7 +17572,7 @@ function updateNode(node, targetListType, targetListItemType, listTypes, listIte
|
|
|
17572
17572
|
* Else, put into a blockquote to indent.
|
|
17573
17573
|
*
|
|
17574
17574
|
*/
|
|
17575
|
-
function indent() {
|
|
17575
|
+
function indent$1() {
|
|
17576
17576
|
const view = activeView();
|
|
17577
17577
|
let command = indentCommand();
|
|
17578
17578
|
return command(view.state, view.dispatch, view)
|
|
@@ -17584,6 +17584,7 @@ function indentCommand() {
|
|
|
17584
17584
|
let li = state.schema.nodes.list_item;
|
|
17585
17585
|
let ul = state.schema.nodes.bullet_list;
|
|
17586
17586
|
let ol = state.schema.nodes.ordered_list;
|
|
17587
|
+
let div = state.schema.nodes.div;
|
|
17587
17588
|
const { $from, $to } = state.selection;
|
|
17588
17589
|
let tr = state.tr;
|
|
17589
17590
|
let willWrap = false;
|
|
@@ -17639,7 +17640,8 @@ function indentCommand() {
|
|
|
17639
17640
|
// Find the parents to skip as we try to indent ones above us
|
|
17640
17641
|
parentsInSelection = allParents.filter((np) => {
|
|
17641
17642
|
let npNode = np.node;
|
|
17642
|
-
|
|
17643
|
+
if (npNode.type == div) return true // Always skip divs
|
|
17644
|
+
let npIsList = (npNode.type == ul) || (npNode.type == ol);
|
|
17643
17645
|
if (!npIsList) return false // We are only skipping lists
|
|
17644
17646
|
if (npNode.type != node.type) return false // We are only skipping parent lists of same type
|
|
17645
17647
|
// And only lists outside of the original selection
|
|
@@ -17649,8 +17651,9 @@ function indentCommand() {
|
|
|
17649
17651
|
} else {
|
|
17650
17652
|
parentsInSelection = allParents.filter((np) => {
|
|
17651
17653
|
let npNode = np.node;
|
|
17652
|
-
|
|
17653
|
-
|
|
17654
|
+
if (npNode.type == div) return true // Always skip divs
|
|
17655
|
+
let npIsBlockquoteOrDiv = (npNode.type == blockquote);
|
|
17656
|
+
if (!npIsBlockquoteOrDiv) return false // We are only skipping blockquotes
|
|
17654
17657
|
// And only blockquotes outside of the original selection
|
|
17655
17658
|
return (np.start < $from.pos) && (np.end > $to.pos)
|
|
17656
17659
|
});
|
|
@@ -17684,7 +17687,7 @@ function indentCommand() {
|
|
|
17684
17687
|
* happens, we should probably just do the equivalent of toggleListType.
|
|
17685
17688
|
*
|
|
17686
17689
|
*/
|
|
17687
|
-
function outdent() {
|
|
17690
|
+
function outdent$1() {
|
|
17688
17691
|
const view = activeView();
|
|
17689
17692
|
let command = outdentCommand();
|
|
17690
17693
|
return command(view.state, view.dispatch, view)
|
|
@@ -17917,6 +17920,9 @@ function _getSelectionState() {
|
|
|
17917
17920
|
state['sub'] = markTypes.has(schema.marks.sub);
|
|
17918
17921
|
state['sup'] = markTypes.has(schema.marks.sup);
|
|
17919
17922
|
state['code'] = markTypes.has(schema.marks.code);
|
|
17923
|
+
// Undo/redo availability
|
|
17924
|
+
state['canundo'] = canUndo();
|
|
17925
|
+
state['canredo'] = canRedo();
|
|
17920
17926
|
return state;
|
|
17921
17927
|
}
|
|
17922
17928
|
/**
|
|
@@ -18112,10 +18118,11 @@ function _getTableAttributes(state) {
|
|
|
18112
18118
|
}
|
|
18113
18119
|
|
|
18114
18120
|
/**
|
|
18115
|
-
* Return the paragraph style at the selection.
|
|
18121
|
+
* Return the paragraph style at the selection.
|
|
18122
|
+
* If the selection contains multiple styles, return the first one with a "+" after it.
|
|
18116
18123
|
*
|
|
18117
18124
|
* @ignore
|
|
18118
|
-
* @returns {string} {Tag name
|
|
18125
|
+
* @returns {string} {Tag name} that represents the selected paragraph style.
|
|
18119
18126
|
*/
|
|
18120
18127
|
function _getParagraphStyle() {
|
|
18121
18128
|
const view = activeView();
|
|
@@ -18125,11 +18132,15 @@ function paragraphStyle(state) {
|
|
|
18125
18132
|
const selection = state.selection;
|
|
18126
18133
|
const nodeTypes = new Set();
|
|
18127
18134
|
state.doc.nodesBetween(selection.from, selection.to, node => {
|
|
18128
|
-
if (node
|
|
18135
|
+
if (_paragraphStyleFor(node)) {
|
|
18129
18136
|
nodeTypes.add(node.type);
|
|
18130
|
-
|
|
18137
|
+
return false
|
|
18138
|
+
} else {
|
|
18139
|
+
return node.isBlock // Keep traversing if we are in a block
|
|
18140
|
+
}
|
|
18131
18141
|
});
|
|
18132
|
-
|
|
18142
|
+
let firstStyle = _paragraphStyleFor(selection.$anchor.parent);
|
|
18143
|
+
return (nodeTypes.size <= 1) ? firstStyle : firstStyle + '+'
|
|
18133
18144
|
}
|
|
18134
18145
|
|
|
18135
18146
|
/**
|
|
@@ -18387,6 +18398,18 @@ function doUndo() {
|
|
|
18387
18398
|
return result
|
|
18388
18399
|
}
|
|
18389
18400
|
|
|
18401
|
+
/** Return true if we can undo in the current state; else false. */
|
|
18402
|
+
function canUndo() {
|
|
18403
|
+
const view = activeView();
|
|
18404
|
+
return undoCommand()(view.state)
|
|
18405
|
+
}
|
|
18406
|
+
|
|
18407
|
+
/** Return true if we can redo in the current state; else false. */
|
|
18408
|
+
function canRedo() {
|
|
18409
|
+
const view = activeView();
|
|
18410
|
+
return redoCommand()(view.state)
|
|
18411
|
+
}
|
|
18412
|
+
|
|
18390
18413
|
/**
|
|
18391
18414
|
* Return a command to undo and do the proper callbacks.
|
|
18392
18415
|
*
|
|
@@ -18394,7 +18417,7 @@ function doUndo() {
|
|
|
18394
18417
|
*/
|
|
18395
18418
|
function undoCommand() {
|
|
18396
18419
|
let commandAdapter = (state, dispatch, view) => {
|
|
18397
|
-
let result = undo(state, dispatch);
|
|
18420
|
+
let result = undo$1(state, dispatch);
|
|
18398
18421
|
if (result && dispatch) {
|
|
18399
18422
|
stateChanged(view);
|
|
18400
18423
|
}
|
|
@@ -18417,7 +18440,7 @@ function doRedo() {
|
|
|
18417
18440
|
*/
|
|
18418
18441
|
function redoCommand() {
|
|
18419
18442
|
let commandAdapter = (state, dispatch, view) => {
|
|
18420
|
-
let result = redo(state, dispatch, view);
|
|
18443
|
+
let result = redo$1(state, dispatch, view);
|
|
18421
18444
|
if (result && dispatch) {
|
|
18422
18445
|
stateChanged(view);
|
|
18423
18446
|
}
|
|
@@ -18488,7 +18511,7 @@ function testPasteTextPreprocessing(html) {
|
|
|
18488
18511
|
*
|
|
18489
18512
|
* @param {string} url The url/href to use for the link
|
|
18490
18513
|
*/
|
|
18491
|
-
function insertLink(url) {
|
|
18514
|
+
function insertLink$1(url) {
|
|
18492
18515
|
const view = activeView();
|
|
18493
18516
|
let command = insertLinkCommand(url);
|
|
18494
18517
|
let result = command(view.state, view.dispatch, view);
|
|
@@ -18735,7 +18758,7 @@ function selectFullLink(view) {
|
|
|
18735
18758
|
* @param {string} src The url of the image.
|
|
18736
18759
|
* @param {string} alt The alt text describing the image.
|
|
18737
18760
|
*/
|
|
18738
|
-
function insertImage(src, alt) {
|
|
18761
|
+
function insertImage$1(src, alt) {
|
|
18739
18762
|
const view = activeView();
|
|
18740
18763
|
let command = insertImageCommand(src, alt);
|
|
18741
18764
|
return command(view.state, view.dispatch, view)
|
|
@@ -19385,6 +19408,95 @@ function consoleLog(string) {
|
|
|
19385
19408
|
_callback(JSON.stringify(messageDict));
|
|
19386
19409
|
}
|
|
19387
19410
|
|
|
19411
|
+
var visibility = {
|
|
19412
|
+
toolbar: true,
|
|
19413
|
+
correctionBar: true,
|
|
19414
|
+
insertBar: true,
|
|
19415
|
+
styleMenu: true,
|
|
19416
|
+
styleBar: true,
|
|
19417
|
+
formatBar: true,
|
|
19418
|
+
search: true
|
|
19419
|
+
};
|
|
19420
|
+
var ordering = {
|
|
19421
|
+
correctionBar: 10,
|
|
19422
|
+
insertBar: 20,
|
|
19423
|
+
styleMenu: 30,
|
|
19424
|
+
styleBar: 40,
|
|
19425
|
+
formatBar: 50,
|
|
19426
|
+
search: 60
|
|
19427
|
+
};
|
|
19428
|
+
var insertBar = {
|
|
19429
|
+
link: true,
|
|
19430
|
+
image: true,
|
|
19431
|
+
tableMenu: true
|
|
19432
|
+
};
|
|
19433
|
+
var formatBar = {
|
|
19434
|
+
bold: true,
|
|
19435
|
+
italic: true,
|
|
19436
|
+
underline: true,
|
|
19437
|
+
code: true,
|
|
19438
|
+
strikethrough: true,
|
|
19439
|
+
subscript: true,
|
|
19440
|
+
superscript: true
|
|
19441
|
+
};
|
|
19442
|
+
var styleMenu = {
|
|
19443
|
+
p: "Body",
|
|
19444
|
+
h1: "H1",
|
|
19445
|
+
h2: "H2",
|
|
19446
|
+
h3: "H3",
|
|
19447
|
+
h4: "H4",
|
|
19448
|
+
h5: "H5",
|
|
19449
|
+
h6: "H6",
|
|
19450
|
+
pre: "Code"
|
|
19451
|
+
};
|
|
19452
|
+
var styleBar = {
|
|
19453
|
+
list: true,
|
|
19454
|
+
dent: true
|
|
19455
|
+
};
|
|
19456
|
+
var tableMenu = {
|
|
19457
|
+
header: true,
|
|
19458
|
+
border: true
|
|
19459
|
+
};
|
|
19460
|
+
var augmentation = {
|
|
19461
|
+
prepend: null,
|
|
19462
|
+
append: null
|
|
19463
|
+
};
|
|
19464
|
+
var icons = {
|
|
19465
|
+
undo: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z\"/></svg>",
|
|
19466
|
+
redo: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z\"/></svg>",
|
|
19467
|
+
strong: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z\"/></svg>",
|
|
19468
|
+
em: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M200-200v-100h160l120-360H320v-100h400v100H580L460-300h140v100H200Z\"/></svg>",
|
|
19469
|
+
u: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M200-120v-80h560v80H200Zm280-160q-101 0-157-63t-56-167v-330h103v336q0 56 28 91t82 35q54 0 82-35t28-91v-336h103v330q0 104-56 167t-157 63Z\"/></svg>",
|
|
19470
|
+
s: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M486-160q-76 0-135-45t-85-123l88-38q14 48 48.5 79t85.5 31q42 0 76-20t34-64q0-18-7-33t-19-27h112q5 14 7.5 28.5T694-340q0 86-61.5 133T486-160ZM80-480v-80h800v80H80Zm402-326q66 0 115.5 32.5T674-674l-88 39q-9-29-33.5-52T484-710q-41 0-68 18.5T386-640h-96q2-69 54.5-117.5T482-806Z\"/></svg>",
|
|
19471
|
+
code: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M560-160v-80h120q17 0 28.5-11.5T720-280v-80q0-38 22-69t58-44v-14q-36-13-58-44t-22-69v-80q0-17-11.5-28.5T680-720H560v-80h120q50 0 85 35t35 85v80q0 17 11.5 28.5T840-560h40v160h-40q-17 0-28.5 11.5T800-360v80q0 50-35 85t-85 35H560Zm-280 0q-50 0-85-35t-35-85v-80q0-17-11.5-28.5T120-400H80v-160h40q17 0 28.5-11.5T160-600v-80q0-50 35-85t85-35h120v80H280q-17 0-28.5 11.5T240-680v80q0 38-22 69t-58 44v14q36 13 58 44t22 69v80q0 17 11.5 28.5T280-240h120v80H280Z\"/></svg>",
|
|
19472
|
+
sub: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M760-160v-80q0-17 11.5-28.5T800-280h80v-40H760v-40h120q17 0 28.5 11.5T920-320v40q0 17-11.5 28.5T880-240h-80v40h120v40H760Zm-525-80 185-291-172-269h106l124 200h4l123-200h107L539-531l186 291H618L482-457h-4L342-240H235Z\"/></svg>",
|
|
19473
|
+
sup: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M760-600v-80q0-17 11.5-28.5T800-720h80v-40H760v-40h120q17 0 28.5 11.5T920-760v40q0 17-11.5 28.5T880-680h-80v40h120v40H760ZM235-160l185-291-172-269h106l124 200h4l123-200h107L539-451l186 291H618L482-377h-4L342-160H235Z\"/></svg>",
|
|
19474
|
+
link: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M17 7h-4v2h4c1.65 0 3 1.35 3 3s-1.35 3-3 3h-4v2h4c2.76 0 5-2.24 5-5s-2.24-5-5-5zm-6 8H7c-1.65 0-3-1.35-3-3s1.35-3 3-3h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-2zm-3-4h8v2H8z\"/></svg>",
|
|
19475
|
+
image: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm40-80h480L570-480 450-320l-90-120-120 160Zm-40 80v-560 560Z\"/></svg>",
|
|
19476
|
+
table: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm240-240H200v160h240v-160Zm80 0v160h240v-160H520Zm-80-80v-160H200v160h240Zm80 0h240v-160H520v160ZM200-680h560v-80H200v80Z\"/></svg>",
|
|
19477
|
+
bulletList: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M360-200v-80h480v80H360Zm0-240v-80h480v80H360Zm0-240v-80h480v80H360ZM200-160q-33 0-56.5-23.5T120-240q0-33 23.5-56.5T200-320q33 0 56.5 23.5T280-240q0 33-23.5 56.5T200-160Zm0-240q-33 0-56.5-23.5T120-480q0-33 23.5-56.5T200-560q33 0 56.5 23.5T280-480q0 33-23.5 56.5T200-400Zm0-240q-33 0-56.5-23.5T120-720q0-33 23.5-56.5T200-800q33 0 56.5 23.5T280-720q0 33-23.5 56.5T200-640Z\"/></svg>",
|
|
19478
|
+
orderedList: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M120-80v-60h100v-30h-60v-60h60v-30H120v-60h120q17 0 28.5 11.5T280-280v40q0 17-11.5 28.5T240-200q17 0 28.5 11.5T280-160v40q0 17-11.5 28.5T240-80H120Zm0-280v-110q0-17 11.5-28.5T160-510h60v-30H120v-60h120q17 0 28.5 11.5T280-560v70q0 17-11.5 28.5T240-450h-60v30h100v60H120Zm60-280v-180h-60v-60h120v240h-60Zm180 440v-80h480v80H360Zm0-240v-80h480v80H360Zm0-240v-80h480v80H360Z\"/></svg>",
|
|
19479
|
+
blockquote: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M120-120v-80h720v80H120Zm320-160v-80h400v80H440Zm0-160v-80h400v80H440Zm0-160v-80h400v80H440ZM120-760v-80h720v80H120Zm0 440v-320l160 160-160 160Z\"/></svg>",
|
|
19480
|
+
lift: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M120-120v-80h720v80H120Zm320-160v-80h400v80H440Zm0-160v-80h400v80H440Zm0-160v-80h400v80H440ZM120-760v-80h720v80H120Zm160 440L120-480l160-160v320Z\"/></svg>",
|
|
19481
|
+
search: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"M784-120 532-372q-30 24-69 38t-83 14q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l252 252-56 56ZM380-400q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z\"/></svg>",
|
|
19482
|
+
searchForward: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\"/></svg>",
|
|
19483
|
+
searchBackward: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\"/></svg>",
|
|
19484
|
+
matchCase: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"m131-252 165-440h79l165 440h-76l-39-112H247l-40 112h-76Zm139-176h131l-64-182h-4l-63 182Zm395 186q-51 0-81-27.5T554-342q0-44 34.5-72.5T677-443q23 0 45 4t38 11v-12q0-29-20.5-47T685-505q-23 0-42 9.5T610-468l-47-35q24-29 54.5-43t68.5-14q69 0 103 32.5t34 97.5v178h-63v-37h-4q-14 23-38 35t-53 12Zm12-54q35 0 59.5-24t24.5-56q-14-8-33.5-12.5T689-393q-32 0-50 14t-18 37q0 20 16 33t40 13Z\"/></svg>",
|
|
19485
|
+
paragraphStyle: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"M360-160v-240q-83 0-141.5-58.5T160-600q0-83 58.5-141.5T360-800h360v80h-80v560h-80v-560H440v560h-80Z\"/></svg>",
|
|
19486
|
+
more: "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"M240-400q-33 0-56.5-23.5T160-480q0-33 23.5-56.5T240-560q33 0 56.5 23.5T320-480q0 33-23.5 56.5T240-400Zm240 0q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm240 0q-33 0-56.5-23.5T640-480q0-33 23.5-56.5T720-560q33 0 56.5 23.5T800-480q0 33-23.5 56.5T720-400Z\"/></svg>"
|
|
19487
|
+
};
|
|
19488
|
+
var toolbarConfig = {
|
|
19489
|
+
visibility: visibility,
|
|
19490
|
+
ordering: ordering,
|
|
19491
|
+
insertBar: insertBar,
|
|
19492
|
+
formatBar: formatBar,
|
|
19493
|
+
styleMenu: styleMenu,
|
|
19494
|
+
styleBar: styleBar,
|
|
19495
|
+
tableMenu: tableMenu,
|
|
19496
|
+
augmentation: augmentation,
|
|
19497
|
+
icons: icons
|
|
19498
|
+
};
|
|
19499
|
+
|
|
19388
19500
|
/**
|
|
19389
19501
|
* ToolbarConfig contains static utility methods to obtain a JavaScript object with properties
|
|
19390
19502
|
* that define the configuration of the MarkupEditor toolbar. The class makes it convenient
|
|
@@ -19472,170 +19584,57 @@ function consoleLog(string) {
|
|
|
19472
19584
|
* "prepend": null, // Name of a registered array of cmdItems to prepend
|
|
19473
19585
|
* "append": null // Name of a registered array of cmdItems to append
|
|
19474
19586
|
* },
|
|
19475
|
-
* "icons": {
|
|
19476
|
-
* //
|
|
19477
|
-
* "undo":
|
|
19478
|
-
* //
|
|
19479
|
-
* "redo":
|
|
19480
|
-
* //
|
|
19481
|
-
* "strong":
|
|
19482
|
-
* //
|
|
19483
|
-
* "em":
|
|
19484
|
-
* //
|
|
19485
|
-
* "u":
|
|
19486
|
-
* //
|
|
19487
|
-
* "s":
|
|
19488
|
-
* //
|
|
19489
|
-
* "code":
|
|
19490
|
-
* //
|
|
19491
|
-
* "sub":
|
|
19492
|
-
* //
|
|
19493
|
-
* "sup":
|
|
19494
|
-
* //
|
|
19495
|
-
* "link":
|
|
19496
|
-
* //
|
|
19497
|
-
* "image":
|
|
19498
|
-
* //
|
|
19499
|
-
* "table":
|
|
19500
|
-
* //
|
|
19501
|
-
* "bulletList":
|
|
19502
|
-
* //
|
|
19503
|
-
* "orderedList":
|
|
19504
|
-
* //
|
|
19505
|
-
* "blockquote":
|
|
19506
|
-
* //
|
|
19507
|
-
* "lift":
|
|
19508
|
-
* //
|
|
19509
|
-
* "search":
|
|
19510
|
-
* //
|
|
19511
|
-
* "searchForward":
|
|
19512
|
-
* //
|
|
19513
|
-
* "searchBackward":
|
|
19514
|
-
* //
|
|
19515
|
-
* "matchCase":
|
|
19516
|
-
* //
|
|
19517
|
-
* "paragraphStyle":
|
|
19518
|
-
* //
|
|
19519
|
-
* "more":
|
|
19587
|
+
* "icons": { // Outlined 400 weight versions from https://fonts.google.com/icons
|
|
19588
|
+
* // undo
|
|
19589
|
+
* "undo": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z\"/></svg>",
|
|
19590
|
+
* // redo
|
|
19591
|
+
* "redo": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z\"/></svg>",
|
|
19592
|
+
* // format_bold
|
|
19593
|
+
* "strong": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z\"/></svg>",
|
|
19594
|
+
* // format_italic
|
|
19595
|
+
* "em": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M200-200v-100h160l120-360H320v-100h400v100H580L460-300h140v100H200Z\"/></svg>",
|
|
19596
|
+
* // format_underlined
|
|
19597
|
+
* "u": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M200-120v-80h560v80H200Zm280-160q-101 0-157-63t-56-167v-330h103v336q0 56 28 91t82 35q54 0 82-35t28-91v-336h103v330q0 104-56 167t-157 63Z\"/></svg>",
|
|
19598
|
+
* // strikethrough_s
|
|
19599
|
+
* "s": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M486-160q-76 0-135-45t-85-123l88-38q14 48 48.5 79t85.5 31q42 0 76-20t34-64q0-18-7-33t-19-27h112q5 14 7.5 28.5T694-340q0 86-61.5 133T486-160ZM80-480v-80h800v80H80Zm402-326q66 0 115.5 32.5T674-674l-88 39q-9-29-33.5-52T484-710q-41 0-68 18.5T386-640h-96q2-69 54.5-117.5T482-806Z\"/></svg>",
|
|
19600
|
+
* // data_object
|
|
19601
|
+
* "code": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M560-160v-80h120q17 0 28.5-11.5T720-280v-80q0-38 22-69t58-44v-14q-36-13-58-44t-22-69v-80q0-17-11.5-28.5T680-720H560v-80h120q50 0 85 35t35 85v80q0 17 11.5 28.5T840-560h40v160h-40q-17 0-28.5 11.5T800-360v80q0 50-35 85t-85 35H560Zm-280 0q-50 0-85-35t-35-85v-80q0-17-11.5-28.5T120-400H80v-160h40q17 0 28.5-11.5T160-600v-80q0-50 35-85t85-35h120v80H280q-17 0-28.5 11.5T240-680v80q0 38-22 69t-58 44v14q36 13 58 44t22 69v80q0 17 11.5 28.5T280-240h120v80H280Z\"/></svg>",
|
|
19602
|
+
* // subscript
|
|
19603
|
+
* "sub": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M760-160v-80q0-17 11.5-28.5T800-280h80v-40H760v-40h120q17 0 28.5 11.5T920-320v40q0 17-11.5 28.5T880-240h-80v40h120v40H760Zm-525-80 185-291-172-269h106l124 200h4l123-200h107L539-531l186 291H618L482-457h-4L342-240H235Z\"/></svg>",
|
|
19604
|
+
* // superscript
|
|
19605
|
+
* "sup": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M760-600v-80q0-17 11.5-28.5T800-720h80v-40H760v-40h120q17 0 28.5 11.5T920-760v40q0 17-11.5 28.5T880-680h-80v40h120v40H760ZM235-160l185-291-172-269h106l124 200h4l123-200h107L539-451l186 291H618L482-377h-4L342-160H235Z\"/></svg>",
|
|
19606
|
+
* // link
|
|
19607
|
+
* "link": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M17 7h-4v2h4c1.65 0 3 1.35 3 3s-1.35 3-3 3h-4v2h4c2.76 0 5-2.24 5-5s-2.24-5-5-5zm-6 8H7c-1.65 0-3-1.35-3-3s1.35-3 3-3h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-2zm-3-4h8v2H8z\"/></svg>",
|
|
19608
|
+
* // image
|
|
19609
|
+
* "image": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm40-80h480L570-480 450-320l-90-120-120 160Zm-40 80v-560 560Z\"/></svg>",
|
|
19610
|
+
* // table
|
|
19611
|
+
* "table": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm240-240H200v160h240v-160Zm80 0v160h240v-160H520Zm-80-80v-160H200v160h240Zm80 0h240v-160H520v160ZM200-680h560v-80H200v80Z\"/></svg>",
|
|
19612
|
+
* // format_list_bulleted
|
|
19613
|
+
* "bulletList": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M360-200v-80h480v80H360Zm0-240v-80h480v80H360Zm0-240v-80h480v80H360ZM200-160q-33 0-56.5-23.5T120-240q0-33 23.5-56.5T200-320q33 0 56.5 23.5T280-240q0 33-23.5 56.5T200-160Zm0-240q-33 0-56.5-23.5T120-480q0-33 23.5-56.5T200-560q33 0 56.5 23.5T280-480q0 33-23.5 56.5T200-400Zm0-240q-33 0-56.5-23.5T120-720q0-33 23.5-56.5T200-800q33 0 56.5 23.5T280-720q0 33-23.5 56.5T200-640Z\"/></svg>",
|
|
19614
|
+
* // format_list_numbered
|
|
19615
|
+
* "orderedList": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M120-80v-60h100v-30h-60v-60h60v-30H120v-60h120q17 0 28.5 11.5T280-280v40q0 17-11.5 28.5T240-200q17 0 28.5 11.5T280-160v40q0 17-11.5 28.5T240-80H120Zm0-280v-110q0-17 11.5-28.5T160-510h60v-30H120v-60h120q17 0 28.5 11.5T280-560v70q0 17-11.5 28.5T240-450h-60v30h100v60H120Zm60-280v-180h-60v-60h120v240h-60Zm180 440v-80h480v80H360Zm0-240v-80h480v80H360Zm0-240v-80h480v80H360Z\"/></svg>",
|
|
19616
|
+
* // format_indent_increase
|
|
19617
|
+
* "blockquote": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M120-120v-80h720v80H120Zm320-160v-80h400v80H440Zm0-160v-80h400v80H440Zm0-160v-80h400v80H440ZM120-760v-80h720v80H120Zm0 440v-320l160 160-160 160Z\"/></svg>",
|
|
19618
|
+
* // format_indent_decrease
|
|
19619
|
+
* "lift": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M120-120v-80h720v80H120Zm320-160v-80h400v80H440Zm0-160v-80h400v80H440Zm0-160v-80h400v80H440ZM120-760v-80h720v80H120Zm160 440L120-480l160-160v320Z\"/></svg>",
|
|
19620
|
+
* // search
|
|
19621
|
+
* "search": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"M784-120 532-372q-30 24-69 38t-83 14q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l252 252-56 56ZM380-400q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z\"/></svg>",
|
|
19622
|
+
* // chevron_forward
|
|
19623
|
+
* "searchForward": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\"/></svg>",
|
|
19624
|
+
* // chevron_backward
|
|
19625
|
+
* "searchBackward": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\"/></svg>",
|
|
19626
|
+
* // match_case
|
|
19627
|
+
* "matchCase": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"m131-252 165-440h79l165 440h-76l-39-112H247l-40 112h-76Zm139-176h131l-64-182h-4l-63 182Zm395 186q-51 0-81-27.5T554-342q0-44 34.5-72.5T677-443q23 0 45 4t38 11v-12q0-29-20.5-47T685-505q-23 0-42 9.5T610-468l-47-35q24-29 54.5-43t68.5-14q69 0 103 32.5t34 97.5v178h-63v-37h-4q-14 23-38 35t-53 12Zm12-54q35 0 59.5-24t24.5-56q-14-8-33.5-12.5T689-393q-32 0-50 14t-18 37q0 20 16 33t40 13Z\"/></svg>",
|
|
19628
|
+
* // format_paragraph
|
|
19629
|
+
* "paragraphStyle": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"M360-160v-240q-83 0-141.5-58.5T160-600q0-83 58.5-141.5T360-800h360v80h-80v560h-80v-560H440v560h-80Z\"/></svg>",
|
|
19630
|
+
* // more_horiz
|
|
19631
|
+
* "more": "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"M240-400q-33 0-56.5-23.5T160-480q0-33 23.5-56.5T240-560q33 0 56.5 23.5T320-480q0 33-23.5 56.5T240-400Zm240 0q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm240 0q-33 0-56.5-23.5T640-480q0-33 23.5-56.5T720-560q33 0 56.5 23.5T800-480q0 33-23.5 56.5T720-400Z\"/></svg>"
|
|
19520
19632
|
* }
|
|
19521
19633
|
* }
|
|
19522
19634
|
* ```
|
|
19523
19635
|
*/
|
|
19524
19636
|
class ToolbarConfig {
|
|
19525
19637
|
|
|
19526
|
-
/**
|
|
19527
|
-
* The private definition of all toolbar config options used by the public static methods.
|
|
19528
|
-
* Needs to be a function not property for multiple editors.
|
|
19529
|
-
*
|
|
19530
|
-
* If you add or modify these options, include those changes in the class doc above.
|
|
19531
|
-
*
|
|
19532
|
-
* @ignore
|
|
19533
|
-
* @returns {object} A JavaScript object with all options enabled.
|
|
19534
|
-
*/
|
|
19535
|
-
static _all() { // Needs to be a function not property for multiple editors
|
|
19536
|
-
return {
|
|
19537
|
-
"visibility": { // Control the visibility of toolbars, etc
|
|
19538
|
-
"toolbar": true, // Whether the toolbar is visible at all
|
|
19539
|
-
"correctionBar": true, // Whether the correction bar (undo/redo) is visible
|
|
19540
|
-
"insertBar": true, // Whether the insert bar (link, image, table) is visible
|
|
19541
|
-
"styleMenu": true, // Whether the style menu (p, h1-h6, code) is visible
|
|
19542
|
-
"styleBar": true, // Whether the style bar (bullet/numbered lists) is visible
|
|
19543
|
-
"formatBar": true, // Whether the format bar (b, i, u, etc) is visible
|
|
19544
|
-
"search": true, // Whether the search item (hide/show search bar) is visible
|
|
19545
|
-
},
|
|
19546
|
-
"ordering": { // Control the ordering of toolbars, etc, ascending left-to-right
|
|
19547
|
-
"correctionBar": 10, // Correction bar order if it is visible
|
|
19548
|
-
"insertBar": 20, // Insert bar (link, image, table) order if it is visible
|
|
19549
|
-
"styleMenu": 30, // Style menu (p, h1-h6, code) order if it is visible
|
|
19550
|
-
"styleBar": 40, // Style bar (bullet/numbered lists) order if it is visible
|
|
19551
|
-
"formatBar": 50, // Format bar (b, i, u, etc) order if it is visible
|
|
19552
|
-
"search": 60, // Search item (hide/show search bar) order if it is visible
|
|
19553
|
-
},
|
|
19554
|
-
"insertBar": {
|
|
19555
|
-
"link": true, // Whether the link menu item is visible
|
|
19556
|
-
"image": true, // Whether the image menu item is visible
|
|
19557
|
-
"tableMenu": true, // Whether the table menu is visible
|
|
19558
|
-
},
|
|
19559
|
-
"formatBar": {
|
|
19560
|
-
"bold": true, // Whether the bold menu item is visible
|
|
19561
|
-
"italic": true, // Whether the italic menu item is visible
|
|
19562
|
-
"underline": true, // Whether the underline menu item is visible
|
|
19563
|
-
"code": true, // Whether the code menu item is visible
|
|
19564
|
-
"strikethrough": true, // Whether the strikethrough menu item is visible
|
|
19565
|
-
"subscript": true, // Whether the subscript menu item is visible
|
|
19566
|
-
"superscript": true, // Whether the superscript menu item is visible
|
|
19567
|
-
},
|
|
19568
|
-
"styleMenu": {
|
|
19569
|
-
"p": "Body", // The label in the menu for "P" style
|
|
19570
|
-
"h1": "H1", // The label in the menu for "H1" style
|
|
19571
|
-
"h2": "H2", // The label in the menu for "H2" style
|
|
19572
|
-
"h3": "H3", // The label in the menu for "H3" style
|
|
19573
|
-
"h4": "H4", // The label in the menu for "H4" style
|
|
19574
|
-
"h5": "H5", // The label in the menu for "H5" style
|
|
19575
|
-
"h6": "H6", // The label in the menu for "H6" style
|
|
19576
|
-
"pre": "Code", // The label in the menu for "PRE" aka code_block style
|
|
19577
|
-
},
|
|
19578
|
-
"styleBar": {
|
|
19579
|
-
"list": true, // Whether bullet and numbered list items are visible
|
|
19580
|
-
"dent": true, // Whether indent and outdent items are visible
|
|
19581
|
-
},
|
|
19582
|
-
"tableMenu": {
|
|
19583
|
-
"header": true, // Whether the "Header" item is visible in the "Table->Add" menu
|
|
19584
|
-
"border": true, // Whether the "Border" item is visible in the "Table" menu
|
|
19585
|
-
},
|
|
19586
|
-
"augmentation": {
|
|
19587
|
-
"prepend": null, // Name of a registered array of cmdItems to prepend
|
|
19588
|
-
"append": null // Name of a registered array of cmdItems to append
|
|
19589
|
-
},
|
|
19590
|
-
"icons": {
|
|
19591
|
-
// <span class="material-icons-outlined">undo</span>
|
|
19592
|
-
"undo": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"/></svg>',
|
|
19593
|
-
// <span class="material-icons-outlined">redo</span>
|
|
19594
|
-
"redo": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z"/></svg>',
|
|
19595
|
-
// <span class="material-icons-outlined">format_bold</span>
|
|
19596
|
-
"strong": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z"/></svg>',
|
|
19597
|
-
// <span class="material-icons-outlined">format_italic</span>
|
|
19598
|
-
"em": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px"><path d="M200-200v-100h160l120-360H320v-100h400v100H580L460-300h140v100H200Z"/></svg>',
|
|
19599
|
-
// <span class="material-icons-outlined">format_underlined</span>
|
|
19600
|
-
"u": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px"><path d="M200-120v-80h560v80H200Zm280-160q-101 0-157-63t-56-167v-330h103v336q0 56 28 91t82 35q54 0 82-35t28-91v-336h103v330q0 104-56 167t-157 63Z"/></svg>',
|
|
19601
|
-
// <span class="material-icons-outlined">strikethrough_s</span>
|
|
19602
|
-
"s": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px"><path d="M486-160q-76 0-135-45t-85-123l88-38q14 48 48.5 79t85.5 31q42 0 76-20t34-64q0-18-7-33t-19-27h112q5 14 7.5 28.5T694-340q0 86-61.5 133T486-160ZM80-480v-80h800v80H80Zm402-326q66 0 115.5 32.5T674-674l-88 39q-9-29-33.5-52T484-710q-41 0-68 18.5T386-640h-96q2-69 54.5-117.5T482-806Z"/></svg>',
|
|
19603
|
-
// <span class="material-icons-outlined">data_object</span>
|
|
19604
|
-
"code": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px"><path d="M560-160v-80h120q17 0 28.5-11.5T720-280v-80q0-38 22-69t58-44v-14q-36-13-58-44t-22-69v-80q0-17-11.5-28.5T680-720H560v-80h120q50 0 85 35t35 85v80q0 17 11.5 28.5T840-560h40v160h-40q-17 0-28.5 11.5T800-360v80q0 50-35 85t-85 35H560Zm-280 0q-50 0-85-35t-35-85v-80q0-17-11.5-28.5T120-400H80v-160h40q17 0 28.5-11.5T160-600v-80q0-50 35-85t85-35h120v80H280q-17 0-28.5 11.5T240-680v80q0 38-22 69t-58 44v14q36 13 58 44t22 69v80q0 17 11.5 28.5T280-240h120v80H280Z"/></svg>',
|
|
19605
|
-
// <span class="material-icons-outlined">subscript</span>
|
|
19606
|
-
"sub": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px"><path d="M760-160v-80q0-17 11.5-28.5T800-280h80v-40H760v-40h120q17 0 28.5 11.5T920-320v40q0 17-11.5 28.5T880-240h-80v40h120v40H760Zm-525-80 185-291-172-269h106l124 200h4l123-200h107L539-531l186 291H618L482-457h-4L342-240H235Z"/></svg>',
|
|
19607
|
-
// <span class="material-icons-outlined">superscript</span>
|
|
19608
|
-
"sup": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px"><path d="M760-600v-80q0-17 11.5-28.5T800-720h80v-40H760v-40h120q17 0 28.5 11.5T920-760v40q0 17-11.5 28.5T880-680h-80v40h120v40H760ZM235-160l185-291-172-269h106l124 200h4l123-200h107L539-451l186 291H618L482-377h-4L342-160H235Z"/></svg>',
|
|
19609
|
-
// <span class="material-icons-outlined">link</span>
|
|
19610
|
-
"link": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M17 7h-4v2h4c1.65 0 3 1.35 3 3s-1.35 3-3 3h-4v2h4c2.76 0 5-2.24 5-5s-2.24-5-5-5zm-6 8H7c-1.65 0-3-1.35-3-3s1.35-3 3-3h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-2zm-3-4h8v2H8z"/></svg>',
|
|
19611
|
-
// <span class="material-icons-outlined">image</span>
|
|
19612
|
-
"image": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px"><path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm40-80h480L570-480 450-320l-90-120-120 160Zm-40 80v-560 560Z"/></svg>',
|
|
19613
|
-
// <span class="material-icons-outlined">table</span>
|
|
19614
|
-
"table": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px"><path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm240-240H200v160h240v-160Zm80 0v160h240v-160H520Zm-80-80v-160H200v160h240Zm80 0h240v-160H520v160ZM200-680h560v-80H200v80Z"/></svg>',
|
|
19615
|
-
// <span class="material-icons-outlined">format_list_bulleted</span>
|
|
19616
|
-
"bulletList": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px"><path d="M360-200v-80h480v80H360Zm0-240v-80h480v80H360Zm0-240v-80h480v80H360ZM200-160q-33 0-56.5-23.5T120-240q0-33 23.5-56.5T200-320q33 0 56.5 23.5T280-240q0 33-23.5 56.5T200-160Zm0-240q-33 0-56.5-23.5T120-480q0-33 23.5-56.5T200-560q33 0 56.5 23.5T280-480q0 33-23.5 56.5T200-400Zm0-240q-33 0-56.5-23.5T120-720q0-33 23.5-56.5T200-800q33 0 56.5 23.5T280-720q0 33-23.5 56.5T200-640Z"/></svg>',
|
|
19617
|
-
// <span class="material-icons-outlined">format_list_numbered</span>
|
|
19618
|
-
"orderedList": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px"><path d="M120-80v-60h100v-30h-60v-60h60v-30H120v-60h120q17 0 28.5 11.5T280-280v40q0 17-11.5 28.5T240-200q17 0 28.5 11.5T280-160v40q0 17-11.5 28.5T240-80H120Zm0-280v-110q0-17 11.5-28.5T160-510h60v-30H120v-60h120q17 0 28.5 11.5T280-560v70q0 17-11.5 28.5T240-450h-60v30h100v60H120Zm60-280v-180h-60v-60h120v240h-60Zm180 440v-80h480v80H360Zm0-240v-80h480v80H360Zm0-240v-80h480v80H360Z"/></svg>',
|
|
19619
|
-
// <span class="material-icons-outlined">format_indent_increase</span>
|
|
19620
|
-
"blockquote": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px"><path d="M120-120v-80h720v80H120Zm320-160v-80h400v80H440Zm0-160v-80h400v80H440Zm0-160v-80h400v80H440ZM120-760v-80h720v80H120Zm0 440v-320l160 160-160 160Z"/></svg>',
|
|
19621
|
-
// <span class="material-icons-outlined">format_indent_decrease</span>
|
|
19622
|
-
"lift": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px"><path d="M120-120v-80h720v80H120Zm320-160v-80h400v80H440Zm0-160v-80h400v80H440Zm0-160v-80h400v80H440ZM120-760v-80h720v80H120Zm160 440L120-480l160-160v320Z"/></svg>',
|
|
19623
|
-
// <span class="material-symbols-outlined">search</span>
|
|
19624
|
-
"search": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M784-120 532-372q-30 24-69 38t-83 14q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l252 252-56 56ZM380-400q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z"/></svg>',
|
|
19625
|
-
// <span class="material-symbols-outlined">chevron_forward</span>
|
|
19626
|
-
"searchForward": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z"/></svg>',
|
|
19627
|
-
// <span class="material-symbols-outlined">chevron_backward</span>
|
|
19628
|
-
"searchBackward": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z"/></svg>',
|
|
19629
|
-
// <span class="material-symbols-outlined">match_case</span>
|
|
19630
|
-
"matchCase": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="m131-252 165-440h79l165 440h-76l-39-112H247l-40 112h-76Zm139-176h131l-64-182h-4l-63 182Zm395 186q-51 0-81-27.5T554-342q0-44 34.5-72.5T677-443q23 0 45 4t38 11v-12q0-29-20.5-47T685-505q-23 0-42 9.5T610-468l-47-35q24-29 54.5-43t68.5-14q69 0 103 32.5t34 97.5v178h-63v-37h-4q-14 23-38 35t-53 12Zm12-54q35 0 59.5-24t24.5-56q-14-8-33.5-12.5T689-393q-32 0-50 14t-18 37q0 20 16 33t40 13Z"/></svg>',
|
|
19631
|
-
// <span class="material-symbols-outlined">format_paragraph</span>
|
|
19632
|
-
"paragraphStyle": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M360-160v-240q-83 0-141.5-58.5T160-600q0-83 58.5-141.5T360-800h360v80h-80v560h-80v-560H440v560h-80Z"/></svg>',
|
|
19633
|
-
// <span class="material-symbols-outlined">more_horiz</span>
|
|
19634
|
-
"more": '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M240-400q-33 0-56.5-23.5T160-480q0-33 23.5-56.5T240-560q33 0 56.5 23.5T320-480q0 33-23.5 56.5T240-400Zm240 0q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm240 0q-33 0-56.5-23.5T640-480q0-33 23.5-56.5T720-560q33 0 56.5 23.5T800-480q0 33-23.5 56.5T720-400Z"/></svg>'
|
|
19635
|
-
}
|
|
19636
|
-
}
|
|
19637
|
-
}
|
|
19638
|
-
|
|
19639
19638
|
/**
|
|
19640
19639
|
* Return a toolbar configuration object, but defined from a stringified JSON object.
|
|
19641
19640
|
*
|
|
@@ -19657,7 +19656,7 @@ class ToolbarConfig {
|
|
|
19657
19656
|
* @returns {string | null} The SVG definition of the icon if found
|
|
19658
19657
|
*/
|
|
19659
19658
|
static iconFor(string) {
|
|
19660
|
-
return
|
|
19659
|
+
return toolbarConfig.icons[string]
|
|
19661
19660
|
}
|
|
19662
19661
|
|
|
19663
19662
|
/**
|
|
@@ -19667,7 +19666,7 @@ class ToolbarConfig {
|
|
|
19667
19666
|
* @returns {object} A JavaScript object with all options enabled.
|
|
19668
19667
|
*/
|
|
19669
19668
|
static full(correction = false) {
|
|
19670
|
-
let full =
|
|
19669
|
+
let full = structuredClone(toolbarConfig);
|
|
19671
19670
|
full.visibility.correctionBar = correction;
|
|
19672
19671
|
return full
|
|
19673
19672
|
}
|
|
@@ -19698,7 +19697,7 @@ class ToolbarConfig {
|
|
|
19698
19697
|
* @returns {object} A toolbar configuration object with `visibility.toolbar` set to `false`
|
|
19699
19698
|
*/
|
|
19700
19699
|
static none() {
|
|
19701
|
-
let none =
|
|
19700
|
+
let none = structuredClone(toolbarConfig);
|
|
19702
19701
|
none.visibility.toolbar = false;
|
|
19703
19702
|
return none
|
|
19704
19703
|
}
|
|
@@ -19717,11 +19716,89 @@ class ToolbarConfig {
|
|
|
19717
19716
|
markdown.formatBar.superscript = false;
|
|
19718
19717
|
return markdown
|
|
19719
19718
|
}
|
|
19719
|
+
|
|
19720
19720
|
}
|
|
19721
19721
|
|
|
19722
|
+
var undo = "Mod-z";
|
|
19723
|
+
var redo = "Shift-Mod-z";
|
|
19724
|
+
var link = [
|
|
19725
|
+
"Mod-K",
|
|
19726
|
+
"Mod-k"
|
|
19727
|
+
];
|
|
19728
|
+
var p = "Ctrl-Shift-0";
|
|
19729
|
+
var h1 = "Ctrl-Shift-1";
|
|
19730
|
+
var h2 = "Ctrl-Shift-2";
|
|
19731
|
+
var h3 = "Ctrl-Shift-3";
|
|
19732
|
+
var h4 = "Ctrl-Shift-4";
|
|
19733
|
+
var h5 = "Ctrl-Shift-5";
|
|
19734
|
+
var h6 = "Ctrl-Shift-6";
|
|
19735
|
+
var bullet = [
|
|
19736
|
+
"Ctrl-U",
|
|
19737
|
+
"Ctrl-u"
|
|
19738
|
+
];
|
|
19739
|
+
var number = [
|
|
19740
|
+
"Ctrl-O",
|
|
19741
|
+
"Ctrl-o"
|
|
19742
|
+
];
|
|
19743
|
+
var indent = [
|
|
19744
|
+
"Mod-]",
|
|
19745
|
+
"Ctrl-q"
|
|
19746
|
+
];
|
|
19747
|
+
var outdent = [
|
|
19748
|
+
"Mod-[",
|
|
19749
|
+
"Shift-Ctrl-q"
|
|
19750
|
+
];
|
|
19751
|
+
var bold = [
|
|
19752
|
+
"Mod-B",
|
|
19753
|
+
"Mod-b"
|
|
19754
|
+
];
|
|
19755
|
+
var italic = [
|
|
19756
|
+
"Mod-I",
|
|
19757
|
+
"Mod-i"
|
|
19758
|
+
];
|
|
19759
|
+
var underline = [
|
|
19760
|
+
"Mod-U",
|
|
19761
|
+
"Mod-u"
|
|
19762
|
+
];
|
|
19763
|
+
var strikethrough = [
|
|
19764
|
+
"Ctrl-S",
|
|
19765
|
+
"Ctrl-s"
|
|
19766
|
+
];
|
|
19767
|
+
var code = "Mod-`";
|
|
19768
|
+
var subscript = "Ctrl-Mod--";
|
|
19769
|
+
var superscript = "Ctrl-Mod-+";
|
|
19770
|
+
var search$1 = [
|
|
19771
|
+
"Ctrl-F",
|
|
19772
|
+
"Ctrl-f"
|
|
19773
|
+
];
|
|
19774
|
+
var keymapConfig = {
|
|
19775
|
+
undo: undo,
|
|
19776
|
+
redo: redo,
|
|
19777
|
+
link: link,
|
|
19778
|
+
p: p,
|
|
19779
|
+
h1: h1,
|
|
19780
|
+
h2: h2,
|
|
19781
|
+
h3: h3,
|
|
19782
|
+
h4: h4,
|
|
19783
|
+
h5: h5,
|
|
19784
|
+
h6: h6,
|
|
19785
|
+
bullet: bullet,
|
|
19786
|
+
number: number,
|
|
19787
|
+
indent: indent,
|
|
19788
|
+
outdent: outdent,
|
|
19789
|
+
bold: bold,
|
|
19790
|
+
italic: italic,
|
|
19791
|
+
underline: underline,
|
|
19792
|
+
strikethrough: strikethrough,
|
|
19793
|
+
code: code,
|
|
19794
|
+
subscript: subscript,
|
|
19795
|
+
superscript: superscript,
|
|
19796
|
+
search: search$1
|
|
19797
|
+
};
|
|
19798
|
+
|
|
19722
19799
|
/**
|
|
19723
19800
|
* KeymapConfig contains static utility methods to obtain a JavaScript object with properties
|
|
19724
|
-
* that define the key
|
|
19801
|
+
* that define the key mapping configuration of the MarkupEditor toolbar. The class makes it convenient
|
|
19725
19802
|
* to write and use the utility methods, but an instance of KeymapConfig itself is not meaningful.
|
|
19726
19803
|
*
|
|
19727
19804
|
* `KeymapConfig.standard()` is the default for the MarkupEditor. It can be overridden by
|
|
@@ -19756,10 +19833,8 @@ class ToolbarConfig {
|
|
|
19756
19833
|
* // Correction
|
|
19757
19834
|
* "undo": "Mod-z",
|
|
19758
19835
|
* "redo": "Shift-Mod-z",
|
|
19759
|
-
* // Insert
|
|
19836
|
+
* // Insert (no hotkeys for image or table)
|
|
19760
19837
|
* "link": ["Mod-K", "Mod-k"],
|
|
19761
|
-
* "image": ["Mod-G", "Mod-g"],
|
|
19762
|
-
* //"table": ["Mod-T", "Mod-t"], // Does not work
|
|
19763
19838
|
* // Stylemenu
|
|
19764
19839
|
* "p": "Ctrl-Shift-0",
|
|
19765
19840
|
* "h1": "Ctrl-Shift-1",
|
|
@@ -19788,50 +19863,6 @@ class ToolbarConfig {
|
|
|
19788
19863
|
*/
|
|
19789
19864
|
class KeymapConfig {
|
|
19790
19865
|
|
|
19791
|
-
/**
|
|
19792
|
-
* The private definition of all keymap config options used by the public static methods.
|
|
19793
|
-
* Needs to be a function not property for multiple editors.
|
|
19794
|
-
*
|
|
19795
|
-
* If you add or modify these options, include those changes in the class doc above.
|
|
19796
|
-
*
|
|
19797
|
-
* @ignore
|
|
19798
|
-
* @returns {object} A JavaScript object with all options enabled.
|
|
19799
|
-
*/
|
|
19800
|
-
static _all() {
|
|
19801
|
-
return {
|
|
19802
|
-
// Correction
|
|
19803
|
-
"undo": "Mod-z",
|
|
19804
|
-
"redo": "Shift-Mod-z",
|
|
19805
|
-
// Insert
|
|
19806
|
-
"link": ["Mod-K", "Mod-k"],
|
|
19807
|
-
"image": ["Mod-G", "Mod-g"],
|
|
19808
|
-
//"table": ["Mod-T", "Mod-t"], // Does not work
|
|
19809
|
-
// Stylemenu
|
|
19810
|
-
"p": "Ctrl-Shift-0",
|
|
19811
|
-
"h1": "Ctrl-Shift-1",
|
|
19812
|
-
"h2": "Ctrl-Shift-2",
|
|
19813
|
-
"h3": "Ctrl-Shift-3",
|
|
19814
|
-
"h4": "Ctrl-Shift-4",
|
|
19815
|
-
"h5": "Ctrl-Shift-5",
|
|
19816
|
-
"h6": "Ctrl-Shift-6",
|
|
19817
|
-
// Stylebar
|
|
19818
|
-
"bullet": ["Ctrl-U", "Ctrl-u"],
|
|
19819
|
-
"number": ["Ctrl-O", "Ctrl-o"],
|
|
19820
|
-
"indent": ["Mod-]", "Ctrl-q"],
|
|
19821
|
-
"outdent": ["Mod-[", "Shift-Ctrl-q"],
|
|
19822
|
-
// Format
|
|
19823
|
-
"bold": ["Mod-B", "Mod-b"],
|
|
19824
|
-
"italic": ["Mod-I", "Mod-i"],
|
|
19825
|
-
"underline": ["Mod-U", "Mod-u"],
|
|
19826
|
-
"strikethrough": ["Ctrl-S", "Ctrl-s"],
|
|
19827
|
-
"code": "Mod-`",
|
|
19828
|
-
"subscript": "Ctrl-Mod--",
|
|
19829
|
-
"superscript": "Ctrl-Mod-+",
|
|
19830
|
-
// Search
|
|
19831
|
-
"search": ["Ctrl-F", "Ctrl-f"],
|
|
19832
|
-
}
|
|
19833
|
-
}
|
|
19834
|
-
|
|
19835
19866
|
/**
|
|
19836
19867
|
* Return a keymap configuration object, but defined from a stringified JSON object.
|
|
19837
19868
|
*
|
|
@@ -19852,7 +19883,7 @@ class KeymapConfig {
|
|
|
19852
19883
|
* @returns {object} A JavaScript object with all options enabled.
|
|
19853
19884
|
*/
|
|
19854
19885
|
static full() {
|
|
19855
|
-
return
|
|
19886
|
+
return structuredClone(keymapConfig)
|
|
19856
19887
|
}
|
|
19857
19888
|
|
|
19858
19889
|
/**
|
|
@@ -19888,6 +19919,19 @@ class KeymapConfig {
|
|
|
19888
19919
|
}
|
|
19889
19920
|
}
|
|
19890
19921
|
|
|
19922
|
+
var focusAfterLoad = true;
|
|
19923
|
+
var selectImage = false;
|
|
19924
|
+
var insertLink = false;
|
|
19925
|
+
var insertImage = false;
|
|
19926
|
+
var showStyle = true;
|
|
19927
|
+
var behaviorConfig = {
|
|
19928
|
+
focusAfterLoad: focusAfterLoad,
|
|
19929
|
+
selectImage: selectImage,
|
|
19930
|
+
insertLink: insertLink,
|
|
19931
|
+
insertImage: insertImage,
|
|
19932
|
+
showStyle: showStyle
|
|
19933
|
+
};
|
|
19934
|
+
|
|
19891
19935
|
/**
|
|
19892
19936
|
* BehaviorConfig contains static utility methods to obtain a JavaScript object with properties
|
|
19893
19937
|
* that define the behavior configuration of the MarkupEditor. The class makes it convenient
|
|
@@ -19924,29 +19968,12 @@ class KeymapConfig {
|
|
|
19924
19968
|
* "selectImage": false, // Whether to show a "Select..." button in the Insert Image dialog
|
|
19925
19969
|
* "insertLink": false, // Whether to defer to the MarkupDelegate rather than use the default LinkDialog
|
|
19926
19970
|
* "insertImage": false, // Whether to defer to the MarkupDelagate rather than use the default ImageDialog
|
|
19971
|
+
* "showStyle": true // Whether to show the selected style in a labeled drop-down rather than a (smaller) icon
|
|
19927
19972
|
* }
|
|
19928
19973
|
* ```
|
|
19929
19974
|
*/
|
|
19930
19975
|
class BehaviorConfig {
|
|
19931
19976
|
|
|
19932
|
-
/**
|
|
19933
|
-
* The private definition of all behavior config options used by the public static methods.
|
|
19934
|
-
* Needs to be a function not property for multiple editors.
|
|
19935
|
-
*
|
|
19936
|
-
* If you add or modify these options, include those changes in the class doc above.
|
|
19937
|
-
*
|
|
19938
|
-
* @ignore
|
|
19939
|
-
* @returns {object} A JavaScript object with all options enabled.
|
|
19940
|
-
*/
|
|
19941
|
-
static _all() {
|
|
19942
|
-
return {
|
|
19943
|
-
"focusAfterLoad": true, // Whether the editor should take focus after loading
|
|
19944
|
-
"selectImage": false, // Whether to show a "Select..." button in the Insert Image dialog
|
|
19945
|
-
"insertLink": false, // Whether to defer to the MarkupDelegate rather than use the default LinkDialog
|
|
19946
|
-
"insertImage": false, // Whether to defer to the MarkupDelagate rather than use the default ImageDialog
|
|
19947
|
-
}
|
|
19948
|
-
}
|
|
19949
|
-
|
|
19950
19977
|
/**
|
|
19951
19978
|
* Return a behavior configuration object, but defined from a stringified JSON object.
|
|
19952
19979
|
*
|
|
@@ -19967,7 +19994,7 @@ class BehaviorConfig {
|
|
|
19967
19994
|
* @returns {object} A JavaScript object with all options enabled.
|
|
19968
19995
|
*/
|
|
19969
19996
|
static full() {
|
|
19970
|
-
return
|
|
19997
|
+
return structuredClone(behaviorConfig)
|
|
19971
19998
|
}
|
|
19972
19999
|
|
|
19973
20000
|
/**
|
|
@@ -19976,7 +20003,7 @@ class BehaviorConfig {
|
|
|
19976
20003
|
* @returns {object} A JavaScript object with all settings.
|
|
19977
20004
|
*/
|
|
19978
20005
|
static standard() {
|
|
19979
|
-
return this.
|
|
20006
|
+
return this.full()
|
|
19980
20007
|
}
|
|
19981
20008
|
|
|
19982
20009
|
/**
|
|
@@ -22848,7 +22875,6 @@ function formatItem(markType, markName, options) {
|
|
|
22848
22875
|
*/
|
|
22849
22876
|
function styleMenuItems(config, schema) {
|
|
22850
22877
|
let keymap = config.keymap;
|
|
22851
|
-
let icons = config.toolbar.icons;
|
|
22852
22878
|
let items = [];
|
|
22853
22879
|
let { p, h1, h2, h3, h4, h5, h6, pre } = config.toolbar.styleMenu;
|
|
22854
22880
|
if (p) items.push(new ParagraphStyleItem(schema.nodes.paragraph, 'P', { label: p, keymap: baseKeyString('p', keymap) }));
|
|
@@ -22859,7 +22885,20 @@ function styleMenuItems(config, schema) {
|
|
|
22859
22885
|
if (h5) items.push(new ParagraphStyleItem(schema.nodes.heading, 'H5', { label: h5, keymap: baseKeyString('h5', keymap), attrs: { level: 5 }}));
|
|
22860
22886
|
if (h6) items.push(new ParagraphStyleItem(schema.nodes.heading, 'H6', { label: h6, keymap: baseKeyString('h6', keymap), attrs: { level: 6 }}));
|
|
22861
22887
|
if (pre) items.push(new ParagraphStyleItem(schema.nodes.code_block, 'PRE', { label: pre }));
|
|
22862
|
-
|
|
22888
|
+
if (config.behavior.showStyle) {
|
|
22889
|
+
let titleUpdate = (state) => {
|
|
22890
|
+
let styleElement = paragraphStyle(state).toLowerCase();
|
|
22891
|
+
// The paragraphStyle comes back with a trailing "+"" when across multiple styles
|
|
22892
|
+
let multiple = styleElement[styleElement.length - 1] == '+';
|
|
22893
|
+
let singleElement = multiple ? styleElement.slice(0, -1) : styleElement;
|
|
22894
|
+
let label = config.toolbar.styleMenu[singleElement];
|
|
22895
|
+
return label ? (multiple ? label + '+' : label) : styleElement
|
|
22896
|
+
};
|
|
22897
|
+
return [new Dropdown(items, { title: 'Set paragraph style', label: 'Style', titleUpdate: titleUpdate})]
|
|
22898
|
+
} else {
|
|
22899
|
+
let icons = config.toolbar.icons;
|
|
22900
|
+
return [new Dropdown(items, { title: 'Set paragraph style', icon: icons.paragraphStyle })]
|
|
22901
|
+
}
|
|
22863
22902
|
}
|
|
22864
22903
|
|
|
22865
22904
|
/**
|
|
@@ -24722,6 +24761,8 @@ const MU = {
|
|
|
24722
24761
|
addRow,
|
|
24723
24762
|
borderTable,
|
|
24724
24763
|
cancelSearch,
|
|
24764
|
+
canUndo,
|
|
24765
|
+
canRedo,
|
|
24725
24766
|
consoleLog,
|
|
24726
24767
|
cutImage,
|
|
24727
24768
|
deactivateSearch,
|
|
@@ -24740,15 +24781,15 @@ const MU = {
|
|
|
24740
24781
|
getLinkAttributes,
|
|
24741
24782
|
getSelectionState,
|
|
24742
24783
|
getTestHTML,
|
|
24743
|
-
indent,
|
|
24744
|
-
insertImage,
|
|
24745
|
-
insertLink,
|
|
24784
|
+
indent: indent$1,
|
|
24785
|
+
insertImage: insertImage$1,
|
|
24786
|
+
insertLink: insertLink$1,
|
|
24746
24787
|
insertTable,
|
|
24747
24788
|
loadUserFiles,
|
|
24748
24789
|
modifyImage,
|
|
24749
24790
|
openImageDialog,
|
|
24750
24791
|
openLinkDialog,
|
|
24751
|
-
outdent,
|
|
24792
|
+
outdent: outdent$1,
|
|
24752
24793
|
padBottom,
|
|
24753
24794
|
pasteHTML,
|
|
24754
24795
|
pasteText,
|