@aquera/nile-elements 1.9.7 → 1.9.9
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 +6 -0
- package/dist/{index-249de90a.esm.js → index-289706c7.esm.js} +1 -1
- package/dist/{index-df196058.cjs.js → index-d7e6f1c6.cjs.js} +2 -2
- package/dist/index-d7e6f1c6.cjs.js.map +1 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1587 -1276
- package/dist/katex-44476ab4.esm.js +1 -0
- package/dist/katex-f4186f87.cjs.js +2 -0
- package/dist/katex-f4186f87.cjs.js.map +1 -0
- package/dist/nile-color-picker/index.cjs.js +1 -1
- package/dist/nile-color-picker/index.esm.js +1 -1
- package/dist/nile-color-picker/nile-color-picker.cjs.js +1 -1
- package/dist/nile-color-picker/nile-color-picker.cjs.js.map +1 -1
- package/dist/nile-color-picker/nile-color-picker.esm.js +1 -1
- package/dist/nile-select/virtual-scroll-helper.cjs.js +1 -1
- package/dist/nile-select/virtual-scroll-helper.cjs.js.map +1 -1
- package/dist/nile-select/virtual-scroll-helper.esm.js +52 -44
- package/dist/nile-virtual-select/renderer.cjs.js +1 -1
- package/dist/nile-virtual-select/renderer.cjs.js.map +1 -1
- package/dist/nile-virtual-select/renderer.esm.js +23 -22
- package/dist/nile-wysiwyg-editor/engine/commands.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/commands.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/commands.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/create-state.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/create-state.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/create-state.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/index.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/index.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/inputrules.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/keymap.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/keymap.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/embeds.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/embeds.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/embeds.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/math-view.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/math-view.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/math-view.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/style-block-view.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/style-block-view.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/style-block-view.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/tables.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/tables.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/tables.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/sanitize.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/sanitize.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/sanitize.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/schema.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/schema.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/schema.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/selection-state.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/selection-state.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/selection-state.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/index.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/index.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/math/katex-renderer.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/math/katex-renderer.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/math/katex-renderer.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.esm.js +22 -3
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.esm.js +7 -6
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.esm.js +33 -54
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.esm.js +83 -95
- package/dist/nile-wysiwyg-editor/types.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/types.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/types.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/bubble-item.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/bubble-item.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/bubble-item.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.esm.js +23 -15
- package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/code-block-menu.esm.js +3 -3
- package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/embed-panel.esm.js +2 -2
- package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/math-panel.esm.js +0 -3
- package/dist/nile-wysiwyg-editor/ui/preview.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/preview.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/preview.esm.js +8 -0
- package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/source-view.esm.js +225 -24
- package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/suggest-list.esm.js +9 -9
- package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/table-grid-picker.esm.js +115 -13
- package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/table-menu.esm.js +13 -12
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/nile-color-picker/nile-color-picker.d.ts +1 -0
- package/dist/src/nile-color-picker/nile-color-picker.js +1 -0
- package/dist/src/nile-color-picker/nile-color-picker.js.map +1 -1
- package/dist/src/nile-select/virtual-scroll-helper.js +9 -1
- package/dist/src/nile-select/virtual-scroll-helper.js.map +1 -1
- package/dist/src/nile-virtual-select/renderer.js +1 -0
- package/dist/src/nile-virtual-select/renderer.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/index.d.ts +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/index.js +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/index.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.js +3 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.d.ts +19 -4
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.js +23 -18
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.d.ts +8 -3
- package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.js +41 -4
- package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/plugins/style-block-view.d.ts +17 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/style-block-view.js +174 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/style-block-view.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.js +33 -2
- package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/pm.test.js +49 -8
- package/dist/src/nile-wysiwyg-editor/engine/pm.test.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/sanitize.d.ts +12 -0
- package/dist/src/nile-wysiwyg-editor/engine/sanitize.js +76 -8
- package/dist/src/nile-wysiwyg-editor/engine/sanitize.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/schema.d.ts +2 -0
- package/dist/src/nile-wysiwyg-editor/engine/schema.js +154 -2
- package/dist/src/nile-wysiwyg-editor/engine/schema.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/index.d.ts +5 -0
- package/dist/src/nile-wysiwyg-editor/index.js +3 -0
- package/dist/src/nile-wysiwyg-editor/index.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/math/katex-renderer.d.ts +38 -0
- package/dist/src/nile-wysiwyg-editor/math/katex-renderer.js +40 -0
- package/dist/src/nile-wysiwyg-editor/math/katex-renderer.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js +22 -3
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.d.ts +36 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js +125 -8
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.js +5 -2
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.d.ts +2 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.js +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.d.ts +55 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.js +79 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js +33 -54
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.d.ts +50 -2
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.js +158 -102
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/types.d.ts +4 -2
- package/dist/src/nile-wysiwyg-editor/types.js +2 -2
- package/dist/src/nile-wysiwyg-editor/types.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/bubble-item.d.ts +48 -0
- package/dist/src/nile-wysiwyg-editor/ui/bubble-item.js +69 -0
- package/dist/src/nile-wysiwyg-editor/ui/bubble-item.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.d.ts +17 -2
- package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js +128 -35
- package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/embed-panel.d.ts +2 -1
- package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js +4 -3
- package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/math-panel.js +0 -3
- package/dist/src/nile-wysiwyg-editor/ui/math-panel.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/preview.d.ts +20 -0
- package/dist/src/nile-wysiwyg-editor/ui/preview.js +44 -0
- package/dist/src/nile-wysiwyg-editor/ui/preview.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/source-view.d.ts +35 -3
- package/dist/src/nile-wysiwyg-editor/ui/source-view.js +337 -24
- package/dist/src/nile-wysiwyg-editor/ui/source-view.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/suggest-list.d.ts +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js +9 -0
- package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.d.ts +13 -2
- package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js +166 -10
- package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/table-menu.d.ts +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/table-menu.js +10 -8
- package/dist/src/nile-wysiwyg-editor/ui/table-menu.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/xml-25c4108a.esm.js +1 -0
- package/dist/xml-90fd974e.cjs.js +2 -0
- package/dist/xml-90fd974e.cjs.js.map +1 -0
- package/package.json +2 -1
- package/rollup.config.js +1 -0
- package/src/index.ts +8 -0
- package/src/nile-color-picker/nile-color-picker.ts +1 -0
- package/src/nile-select/virtual-scroll-helper.ts +9 -1
- package/src/nile-virtual-select/renderer.ts +1 -1
- package/src/nile-wysiwyg-editor/engine/index.ts +1 -0
- package/src/nile-wysiwyg-editor/engine/plugins/embed-view.ts +3 -0
- package/src/nile-wysiwyg-editor/engine/plugins/embeds.ts +26 -20
- package/src/nile-wysiwyg-editor/engine/plugins/math-view.ts +45 -4
- package/src/nile-wysiwyg-editor/engine/plugins/style-block-view.ts +178 -0
- package/src/nile-wysiwyg-editor/engine/plugins/tables.ts +34 -2
- package/src/nile-wysiwyg-editor/engine/pm.test.ts +58 -8
- package/src/nile-wysiwyg-editor/engine/sanitize.ts +71 -8
- package/src/nile-wysiwyg-editor/engine/schema.ts +158 -7
- package/src/nile-wysiwyg-editor/index.ts +5 -0
- package/src/nile-wysiwyg-editor/math/katex-renderer.ts +59 -0
- package/src/nile-wysiwyg-editor/math/katex.d.ts +17 -0
- package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.ts +22 -3
- package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.ts +5 -2
- package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.ts +142 -7
- package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.ts +2 -0
- package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.ts +68 -0
- package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.ts +33 -54
- package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.ts +202 -108
- package/src/nile-wysiwyg-editor/types.ts +6 -4
- package/src/nile-wysiwyg-editor/ui/bubble-item.ts +60 -0
- package/src/nile-wysiwyg-editor/ui/bubble-menu.ts +147 -40
- package/src/nile-wysiwyg-editor/ui/embed-panel.ts +4 -3
- package/src/nile-wysiwyg-editor/ui/math-panel.ts +0 -3
- package/src/nile-wysiwyg-editor/ui/preview.ts +42 -0
- package/src/nile-wysiwyg-editor/ui/source-view.ts +339 -31
- package/src/nile-wysiwyg-editor/ui/suggest-list.ts +10 -0
- package/src/nile-wysiwyg-editor/ui/table-grid-picker.ts +160 -10
- package/src/nile-wysiwyg-editor/ui/table-menu.ts +10 -8
- package/vscode-html-custom-data.json +75 -6
- package/dist/index-df196058.cjs.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{R as t,d as e,F as l,h as r,l as a,g as n,f as i,i as s,S as o,O as u,j as c}from"../../index-6f3fa4ab.esm.js";import{a as g}from"../../index-249de90a.esm.js";import"../../index-353172ed.esm.js";import"../../index-920675c4.esm.js";const d=["ol",0],p=["ul",0],f=["li",0],m={attrs:{order:{default:1,validate:"number"}},parseDOM:[{tag:"ol",getAttrs:t=>({order:t.hasAttribute("start")?+t.getAttribute("start"):1})}],toDOM:t=>1==t.attrs.order?d:["ol",{start:t.attrs.order},0]},b={parseDOM:[{tag:"ul"}],toDOM:()=>p},y={parseDOM:[{tag:"li"}],toDOM:()=>f,defining:!0};function h(t,e){let l={};for(let e in t)l[e]=t[e];for(let t in e)l[t]=e[t];return l}function M(a,n=null){return function(o,u){let{$from:c,$to:g}=o.selection,d=c.blockRange(g);if(!d)return!1;let p=u?o.tr:null;return!!function(a,n,o,u=null){let c=!1,g=n,d=n.$from.doc;if(n.depth>=2&&n.$from.node(n.depth-1).type.compatibleContent(o)&&0==n.startIndex){if(0==n.$from.index(n.depth-1))return!1;let t=d.resolve(n.start-2);g=new r(t,t,n.depth),n.endIndex<n.parent.childCount&&(n=new r(n.$from,d.resolve(n.$to.end(n.depth)),n.depth)),c=!0}let p=i(g,o,u,n);if(!p)return!1;a&&function(r,a,n,i,o){let u=l.empty;for(let t=n.length-1;t>=0;t--)u=l.from(n[t].type.create(n[t].attrs,u));r.step(new t(a.start-(i?2:0),a.end,a.start,a.end,new e(u,0,0),n.length,!0));let c=0;for(let t=0;t<n.length;t++)n[t].type==o&&(c=t+1);let g=n.length-c,d=a.start+n.length-(i?2:0),p=a.parent;for(let t=a.startIndex,e=a.endIndex,l=!0;t<e;t++,l=!1)!l&&s(r.doc,d,g)&&(r.split(d,g),d+=2*g),d+=p.child(t).nodeSize}(a,n,p,c,o);return!0}(p,d,a,n)&&(u&&u(p.scrollIntoView()),!0)}}function O(t,r){return function(a,n){let{$from:i,$to:u,node:c}=a.selection;if(c&&c.isBlock||i.depth<2||!i.sameParent(u))return!1;let g=i.node(-1);if(g.type!=t)return!1;if(0==i.parent.content.size&&i.node(-1).childCount==i.indexAfter(-1)){if(3==i.depth||i.node(-3).type!=t||i.index(-2)!=i.node(-2).childCount-1)return!1;if(n){let r=l.empty,s=i.index(-1)?1:i.index(-2)?2:3;for(let t=i.depth-s;t>=i.depth-3;t--)r=l.from(i.node(t).copy(r));let u=i.indexAfter(-1)<i.node(-2).childCount?1:i.indexAfter(-2)<i.node(-3).childCount?2:3;r=r.append(l.from(t.createAndFill()));let c=i.before(i.depth-(s-1)),g=a.tr.replace(c,i.after(-u),new e(r,4-s,0)),d=-1;g.doc.nodesBetween(c,g.doc.content.size,((t,e)=>{if(d>-1)return!1;t.isTextblock&&0==t.content.size&&(d=e+1)})),d>-1&&g.setSelection(o.near(g.doc.resolve(d))),n(g.scrollIntoView())}return!0}let d=u.pos==i.end()?g.contentMatchAt(0).defaultType:null,p=a.tr.delete(i.pos,u.pos),f=d?[r?{type:t,attrs:r}:null,{type:d}]:void 0;return!!s(p.doc,i.pos,2,f)&&(n&&n(p.split(i.pos,2,f).scrollIntoView()),!0)}}function D(i){return function(s,o){let{$from:u,$to:c}=s.selection,g=u.blockRange(c,(t=>t.childCount>0&&t.firstChild.type==i));return!!g&&(!o||(u.node(g.depth-1).type==i?function(i,s,o,u){let c=i.tr,g=u.end,d=u.$to.end(u.depth);g<d&&(c.step(new t(g-1,d,g,d,new e(l.from(o.create(null,u.parent.copy())),1,0),1,!0)),u=new r(c.doc.resolve(u.$from.pos),c.doc.resolve(d),u.depth));const p=a(u);if(null==p)return!1;c.lift(u,p);let f=c.doc.resolve(c.mapping.map(g,-1)-1);n(c.doc,f.pos)&&f.nodeBefore.type==f.nodeAfter.type&&c.join(f.pos);return s(c.scrollIntoView()),!0}(s,o,i,g):function(r,a,n){let i=r.tr,s=n.parent;for(let t=n.end,e=n.endIndex-1,l=n.startIndex;e>l;e--)t-=s.child(e).nodeSize,i.delete(t-1,t+1);let o=i.doc.resolve(n.start),u=o.nodeAfter;if(i.mapping.map(n.end)!=n.start+o.nodeAfter.nodeSize)return!1;let c=0==n.startIndex,g=n.endIndex==s.childCount,d=o.node(-1),p=o.index(-1);if(!d.canReplace(p+(c?0:1),p+1,u.content.append(g?l.empty:l.from(s))))return!1;let f=o.pos,m=f+u.nodeSize;return i.step(new t(f-(c?1:0),m+(g?1:0),f+1,m-1,new e((c?l.empty:l.from(s.copy(l.empty))).append(g?l.empty:l.from(s.copy(l.empty))),c?0:1,g?0:1),c?0:1)),a(i.scrollIntoView()),!0}(s,o,g)))}}function k(r){return function(a,n){let{$from:i,$to:s}=a.selection,o=i.blockRange(s,(t=>t.childCount>0&&t.firstChild.type==r));if(!o)return!1;let u=o.startIndex;if(0==u)return!1;let c=o.parent,g=c.child(u-1);if(g.type!=r)return!1;if(n){let i=g.lastChild&&g.lastChild.type==c.type,s=l.from(i?r.create():null),u=new e(l.from(r.create(null,l.from(c.type.create(null,s)))),i?3:1,0),d=o.start,p=o.end;n(a.tr.step(new t(d-(i?3:1),p,d,p,u,1,!0)).scrollIntoView())}return!0}}const w=["left","center","right","justify"];function _(t){const e=t.style.textAlign||t.getAttribute("align")||"";return w.includes(e)?e:null}const A=8;function $(t){const e=t.style.marginInlineStart||t.style.marginLeft||"",l=parseFloat(e);return!Number.isFinite(l)||l<=0?0:Math.min(8,Math.round(l/40))}function x(t){const e=t.style.lineHeight.trim();if(!e||"normal"===e)return null;const l=parseFloat(e);return!Number.isFinite(l)||l<=0?null:e.endsWith("%")?String(l/100):e}function v(t){const e=[],l=function(t){return t?`text-align: ${t}`:null}(t.align??null);return l&&e.push(l),t.indent&&e.push(`margin-inline-start: ${40*t.indent}px`),t.lineHeight&&e.push(`line-height: ${t.lineHeight}`),e.length?e.join("; "):null}const N={doc:{content:"block+"},paragraph:{content:"inline*",group:"block",attrs:{align:{default:null},indent:{default:0},lineHeight:{default:null}},parseDOM:[{tag:"p",getAttrs:t=>({align:_(t),indent:$(t),lineHeight:x(t)})}],toDOM(t){const e=v(t.attrs);return e?["p",{style:e},0]:["p",0]}},heading:{content:"inline*",group:"block",defining:!0,attrs:{level:{default:1},align:{default:null},indent:{default:0},lineHeight:{default:null}},parseDOM:[1,2,3,4,5,6].map((t=>({tag:`h${t}`,getAttrs:e=>({level:t,align:_(e),indent:$(e),lineHeight:x(e)})}))),toDOM(t){const e=v(t.attrs);return e?[`h${t.attrs.level}`,{style:e},0]:[`h${t.attrs.level}`,0]}},blockquote:{content:"block+",group:"block",defining:!0,parseDOM:[{tag:"blockquote"}],toDOM:()=>["blockquote",0]},horizontal_rule:{group:"block",parseDOM:[{tag:"hr"}],toDOM:()=>["hr"]},text:{group:"inline"},hard_break:{inline:!0,group:"inline",selectable:!1,parseDOM:[{tag:"br"}],toDOM:()=>["br"]},code_block:{content:"text*",group:"block",marks:"",code:!0,defining:!0,attrs:{language:{default:null}},parseDOM:[{tag:"pre",preserveWhitespace:"full",getAttrs:t=>({language:t.getAttribute("data-language")})}],toDOM(t){const e={class:"nile-wysiwyg__code-block"};return t.attrs.language&&(e["data-language"]=t.attrs.language),["pre",e,["code",0]]}},image:{inline:!0,group:"inline",draggable:!0,attrs:{src:{},alt:{default:null},title:{default:null},width:{default:null}},parseDOM:[{tag:"img[src]",getAttrs:t=>{const e=parseFloat(t.style.width),l=parseFloat(t.getAttribute("width")??""),r=Number.isFinite(e)?Math.round(e):Number.isFinite(l)?Math.round(l):null;return{src:t.getAttribute("src"),alt:t.getAttribute("alt"),title:t.getAttribute("title"),width:r&&r>0?r:null}}}],toDOM(t){const{src:e,alt:l,title:r,width:a}=t.attrs,n={src:e};return l&&(n.alt=l),r&&(n.title=r),a&&(n.style=`width: ${a}px`),["img",n]}},figure:{group:"block",content:"inline*",defining:!0,isolating:!0,attrs:{src:{},alt:{default:null},title:{default:null},width:{default:null},align:{default:null}},parseDOM:[{tag:"figure",contentElement:"figcaption",getAttrs:t=>{const e=t.querySelector("img[src]");if(!e)return!1;const l=parseFloat(e.style.width||t.style.width),r=t.getAttribute("data-align");return{src:e.getAttribute("src"),alt:e.getAttribute("alt"),title:e.getAttribute("title"),width:Number.isFinite(l)&&l>0?Math.round(l):null,align:"left"===r||"center"===r||"right"===r?r:null}}}],toDOM(t){const{src:e,alt:l,title:r,width:a,align:n}=t.attrs,i={class:"nile-wysiwyg__figure"};n&&(i["data-align"]=n);const s=[];a&&s.push(`width: ${a}px`),"center"===n?s.push("margin-left: auto; margin-right: auto"):"right"===n&&s.push("margin-left: auto; margin-right: 0"),s.length&&(i.style=s.join("; "));const o={src:e,style:"width: 100%"};return l&&(o.alt=l),r&&(o.title=r),["figure",i,["img",o],["figcaption",{class:"nile-wysiwyg__figcaption"},0]]}},task_list:{content:"task_item+",group:"block",parseDOM:[{tag:"ul[data-task-list]",priority:51}],toDOM:()=>["ul",{"data-task-list":"true",class:"nile-wysiwyg__task-list"},0]},task_item:{content:"paragraph block*",defining:!0,attrs:{checked:{default:!1}},parseDOM:[{tag:"li[data-task-item]",priority:51,getAttrs:t=>({checked:"true"===t.getAttribute("data-checked")})}],toDOM:t=>["li",{"data-task-item":"true","data-checked":String(t.attrs.checked),class:"nile-wysiwyg__task-item"},0]},embed:{group:"block",atom:!0,selectable:!0,draggable:!0,attrs:{src:{},provider:{default:null},title:{default:null},width:{default:null},align:{default:null}},parseDOM:[{tag:"div[data-embed-provider]",getAttrs:t=>{const e=t.querySelector("iframe[src]");if(!e)return!1;const l=t.getAttribute("data-width")??/^(\d+)px$/.exec(t.style.width)?.[1],r=l?parseInt(l,10):NaN,a=t.getAttribute("data-align");return{src:e.getAttribute("src"),provider:t.getAttribute("data-embed-provider"),title:e.getAttribute("title"),width:Number.isFinite(r)&&r>0?r:null,align:"left"===a||"center"===a||"right"===a?a:null}}},{tag:"iframe[src]",getAttrs:t=>{const e=parseInt(t.getAttribute("width")??"",10);return{src:t.getAttribute("src"),title:t.getAttribute("title"),width:Number.isFinite(e)&&e>0?e:null}}}],toDOM(t){const{src:e,provider:l,title:r,width:a,align:n}=t.attrs,i={src:e,frameborder:"0",allowfullscreen:"true",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"};r&&(i.title=r);const s={class:"nile-wysiwyg__embed","data-embed-provider":l??"generic"},o=[];return a&&(s["data-width"]=String(a),o.push(`width: ${a}px`,"max-width: 100%")),n&&(s["data-align"]=n,"center"===n?o.push("margin-left: auto","margin-right: auto"):"right"===n&&o.push("margin-left: auto","margin-right: 0")),o.length&&(s.style=o.join("; ")),["div",s,["iframe",i]]}},bookmark:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{id:{}},parseDOM:[{tag:"a[data-bookmark]",priority:60,getAttrs:t=>{const e=t.getAttribute("id")||t.getAttribute("name");return!!e&&{id:e}}},{tag:"a[id]",getAttrs:t=>!t.hasAttribute("href")&&{id:t.getAttribute("id")}},{tag:"a[name]",getAttrs:t=>!t.hasAttribute("href")&&{id:t.getAttribute("name")}}],toDOM:t=>["a",{id:t.attrs.id,"data-bookmark":"true"}]},mention:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{trigger:{default:"@"},key:{},label:{}},parseDOM:[{tag:"span[data-mention-key]",getAttrs:t=>({trigger:t.getAttribute("data-mention-trigger")||"@",key:t.getAttribute("data-mention-key"),label:t.getAttribute("data-mention-label")||t.textContent?.slice(1)||""})}],toDOM(t){const{trigger:e,key:l,label:r}=t.attrs;return["span",{class:"nile-wysiwyg__mention","data-mention-trigger":e,"data-mention-key":l,"data-mention-label":r},`${e}${r}`]}},merge_field:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{id:{},label:{default:null}},parseDOM:[{tag:"span[data-merge-field]",getAttrs:t=>{const e=t.getAttribute("data-merge-field");return!!e&&{id:e,label:t.getAttribute("data-merge-label")||t.textContent||null}}}],toDOM(t){const{id:e,label:l}=t.attrs;return["span",{class:"nile-wysiwyg__merge-field","data-merge-field":e,"data-merge-label":l??""},l||`{{${e}}}`]}},math:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{latex:{},display:{default:"inline"}},parseDOM:[{tag:"span[data-math]",getAttrs:t=>({latex:t.getAttribute("data-math")||t.textContent||"",display:"block"===t.getAttribute("data-math-display")?"block":"inline"})}],toDOM(t){const{latex:e,display:l}=t.attrs;return["span",{class:"nile-wysiwyg__math","data-math":e,"data-math-display":l},e]}}},j=g({tableGroup:"block",cellContent:"block+",cellAttributes:{background:{default:null,getFromDOM:t=>t.style.backgroundColor||null,setDOMAttr(t,e){t&&(e.style=`${e.style||""}background-color: ${t};`)}}}}),F=j.table,z={...F,attrs:{...F.attrs??{},layout:{default:!1}},parseDOM:[{tag:"table",getAttrs:t=>({layout:"presentation"===t.getAttribute("role")||t.hasAttribute("data-layout")})}],toDOM:t=>t.attrs.layout?["table",{role:"presentation","data-layout":"true"},["tbody",0]]:["table",["tbody",0]]},S={link:{attrs:{href:{},title:{default:null},target:{default:null}},inclusive:!1,parseDOM:[{tag:"a[href]",getAttrs:t=>({href:t.getAttribute("href"),title:t.getAttribute("title"),target:t.getAttribute("target")})}],toDOM(t){const{href:e,title:l,target:r}=t.attrs,a={href:e};return l&&(a.title=l),r&&(a.target=r,"_blank"===r&&(a.rel="noopener noreferrer")),["a",a,0]}},bold:{parseDOM:[{tag:"strong"},{tag:"b",getAttrs:t=>"normal"!==t.style.fontWeight&&null},{style:"font-weight",getAttrs:t=>/^(bold(er)?|[5-9]\d{2,})$/.test(t)&&null}],toDOM:()=>["strong",0]},italic:{parseDOM:[{tag:"i"},{tag:"em"},{style:"font-style=italic"}],toDOM:()=>["em",0]},underline:{parseDOM:[{tag:"u"},{style:"text-decoration",getAttrs:t=>t.includes("underline")&&null},{style:"text-decoration-line",getAttrs:t=>t.includes("underline")&&null}],toDOM:()=>["u",0]},strike:{parseDOM:[{tag:"s"},{tag:"strike"},{tag:"del"},{style:"text-decoration",getAttrs:t=>t.includes("line-through")&&null},{style:"text-decoration-line",getAttrs:t=>t.includes("line-through")&&null}],toDOM:()=>["s",0]},subscript:{excludes:"subscript superscript",parseDOM:[{tag:"sub"},{style:"vertical-align=sub"}],toDOM:()=>["sub",0]},superscript:{excludes:"subscript superscript",parseDOM:[{tag:"sup"},{style:"vertical-align=super"}],toDOM:()=>["sup",0]},code:{parseDOM:[{tag:"code"}],toDOM:()=>["code",{class:"nile-wysiwyg__inline-code"},0]},text_color:{attrs:{color:{}},parseDOM:[{style:"color",getAttrs:t=>!!t&&{color:t}}],toDOM:t=>["span",{style:`color: ${t.attrs.color}`},0]},bg_color:{attrs:{color:{}},parseDOM:[{style:"background-color",getAttrs:t=>!(!t||"transparent"===t)&&{color:t}}],toDOM:t=>["span",{style:`background-color: ${t.attrs.color}`},0]},font_family:{attrs:{family:{}},parseDOM:[{style:"font-family",getAttrs:t=>!!t&&{family:t}}],toDOM:t=>["span",{style:`font-family: ${t.attrs.family}`},0]},font_size:{attrs:{size:{}},parseDOM:[{style:"font-size",getAttrs:t=>!!t&&{size:t}}],toDOM:t=>["span",{style:`font-size: ${t.attrs.size}`},0]}},q=["disc","circle","square"],H={1:"decimal",a:"lower-alpha",A:"upper-alpha",i:"lower-roman",I:"upper-roman"},I=Object.fromEntries(Object.entries(H).map((([t,e])=>[e,t]))),C="multilevel",E={content:"list_item+",group:"block",attrs:{style:{default:null}},parseDOM:[{tag:"ul",getAttrs:t=>{const e=t.style.listStyleType;return{style:q.includes(e)?e:null}}}],toDOM:t=>t.attrs.style?["ul",{style:`list-style-type: ${t.attrs.style}`},0]:["ul",0]},G={content:"list_item+",group:"block",attrs:{order:{default:1},style:{default:null}},parseDOM:[{tag:"ol",getAttrs:t=>{const e=t.getAttribute("type")??"",l=t.style.listStyleType,r=t.getAttribute("data-list-style")===C?C:H[e]??(Object.values(H).includes(l)?l:null),a=Number(t.getAttribute("start"));return{order:Number.isFinite(a)&&a>0?a:1,style:r}}}],toDOM(t){const e={};return 1!==t.attrs.order&&(e.start=String(t.attrs.order)),t.attrs.style===C?e["data-list-style"]=C:t.attrs.style&&I[t.attrs.style]&&(e.type=I[t.attrs.style]),["ol",e,0]}};const R=function(){const t=function(t,e,l){return t.append({ordered_list:h(m,{content:"list_item+",group:l}),bullet_list:h(b,{content:"list_item+",group:l}),list_item:h(y,{content:e})})}(u.from(N),"paragraph block*","block").update("bullet_list",E).update("ordered_list",G).append(j).update("table",z);return new c({nodes:t,marks:u.from(S)})}();export{C as M,k as a,A as b,R as d,D as l,O as s,M as w};
|
|
1
|
+
import{R as t,d as e,F as l,h as r,l as n,g as a,f as i,i as s,S as o,O as u,j as c}from"../../index-6f3fa4ab.esm.js";import{a as g}from"../../index-289706c7.esm.js";import{E as d,a as f}from"./plugins/embeds.esm.js";import"../../index-353172ed.esm.js";import"../../index-920675c4.esm.js";const p=["ol",0],m=["ul",0],b=["li",0],y={attrs:{order:{default:1,validate:"number"}},parseDOM:[{tag:"ol",getAttrs:t=>({order:t.hasAttribute("start")?+t.getAttribute("start"):1})}],toDOM:t=>1==t.attrs.order?p:["ol",{start:t.attrs.order},0]},h={parseDOM:[{tag:"ul"}],toDOM:()=>m},M={parseDOM:[{tag:"li"}],toDOM:()=>b,defining:!0};function O(t,e){let l={};for(let e in t)l[e]=t[e];for(let t in e)l[t]=e[t];return l}function D(n,a=null){return function(o,u){let{$from:c,$to:g}=o.selection,d=c.blockRange(g);if(!d)return!1;let f=u?o.tr:null;return!!function(n,a,o,u=null){let c=!1,g=a,d=a.$from.doc;if(a.depth>=2&&a.$from.node(a.depth-1).type.compatibleContent(o)&&0==a.startIndex){if(0==a.$from.index(a.depth-1))return!1;let t=d.resolve(a.start-2);g=new r(t,t,a.depth),a.endIndex<a.parent.childCount&&(a=new r(a.$from,d.resolve(a.$to.end(a.depth)),a.depth)),c=!0}let f=i(g,o,u,a);if(!f)return!1;n&&function(r,n,a,i,o){let u=l.empty;for(let t=a.length-1;t>=0;t--)u=l.from(a[t].type.create(a[t].attrs,u));r.step(new t(n.start-(i?2:0),n.end,n.start,n.end,new e(u,0,0),a.length,!0));let c=0;for(let t=0;t<a.length;t++)a[t].type==o&&(c=t+1);let g=a.length-c,d=n.start+a.length-(i?2:0),f=n.parent;for(let t=n.startIndex,e=n.endIndex,l=!0;t<e;t++,l=!1)!l&&s(r.doc,d,g)&&(r.split(d,g),d+=2*g),d+=f.child(t).nodeSize}(n,a,f,c,o);return!0}(f,d,n,a)&&(u&&u(f.scrollIntoView()),!0)}}function k(t,r){return function(n,a){let{$from:i,$to:u,node:c}=n.selection;if(c&&c.isBlock||i.depth<2||!i.sameParent(u))return!1;let g=i.node(-1);if(g.type!=t)return!1;if(0==i.parent.content.size&&i.node(-1).childCount==i.indexAfter(-1)){if(3==i.depth||i.node(-3).type!=t||i.index(-2)!=i.node(-2).childCount-1)return!1;if(a){let r=l.empty,s=i.index(-1)?1:i.index(-2)?2:3;for(let t=i.depth-s;t>=i.depth-3;t--)r=l.from(i.node(t).copy(r));let u=i.indexAfter(-1)<i.node(-2).childCount?1:i.indexAfter(-2)<i.node(-3).childCount?2:3;r=r.append(l.from(t.createAndFill()));let c=i.before(i.depth-(s-1)),g=n.tr.replace(c,i.after(-u),new e(r,4-s,0)),d=-1;g.doc.nodesBetween(c,g.doc.content.size,((t,e)=>{if(d>-1)return!1;t.isTextblock&&0==t.content.size&&(d=e+1)})),d>-1&&g.setSelection(o.near(g.doc.resolve(d))),a(g.scrollIntoView())}return!0}let d=u.pos==i.end()?g.contentMatchAt(0).defaultType:null,f=n.tr.delete(i.pos,u.pos),p=d?[r?{type:t,attrs:r}:null,{type:d}]:void 0;return!!s(f.doc,i.pos,2,p)&&(a&&a(f.split(i.pos,2,p).scrollIntoView()),!0)}}function w(i){return function(s,o){let{$from:u,$to:c}=s.selection,g=u.blockRange(c,(t=>t.childCount>0&&t.firstChild.type==i));return!!g&&(!o||(u.node(g.depth-1).type==i?function(i,s,o,u){let c=i.tr,g=u.end,d=u.$to.end(u.depth);g<d&&(c.step(new t(g-1,d,g,d,new e(l.from(o.create(null,u.parent.copy())),1,0),1,!0)),u=new r(c.doc.resolve(u.$from.pos),c.doc.resolve(d),u.depth));const f=n(u);if(null==f)return!1;c.lift(u,f);let p=c.doc.resolve(c.mapping.map(g,-1)-1);a(c.doc,p.pos)&&p.nodeBefore.type==p.nodeAfter.type&&c.join(p.pos);return s(c.scrollIntoView()),!0}(s,o,i,g):function(r,n,a){let i=r.tr,s=a.parent;for(let t=a.end,e=a.endIndex-1,l=a.startIndex;e>l;e--)t-=s.child(e).nodeSize,i.delete(t-1,t+1);let o=i.doc.resolve(a.start),u=o.nodeAfter;if(i.mapping.map(a.end)!=a.start+o.nodeAfter.nodeSize)return!1;let c=0==a.startIndex,g=a.endIndex==s.childCount,d=o.node(-1),f=o.index(-1);if(!d.canReplace(f+(c?0:1),f+1,u.content.append(g?l.empty:l.from(s))))return!1;let p=o.pos,m=p+u.nodeSize;return i.step(new t(p-(c?1:0),m+(g?1:0),p+1,m-1,new e((c?l.empty:l.from(s.copy(l.empty))).append(g?l.empty:l.from(s.copy(l.empty))),c?0:1,g?0:1),c?0:1)),n(i.scrollIntoView()),!0}(s,o,g)))}}function _(r){return function(n,a){let{$from:i,$to:s}=n.selection,o=i.blockRange(s,(t=>t.childCount>0&&t.firstChild.type==r));if(!o)return!1;let u=o.startIndex;if(0==u)return!1;let c=o.parent,g=c.child(u-1);if(g.type!=r)return!1;if(a){let i=g.lastChild&&g.lastChild.type==c.type,s=l.from(i?r.create():null),u=new e(l.from(r.create(null,l.from(c.type.create(null,s)))),i?3:1,0),d=o.start,f=o.end;a(n.tr.step(new t(d-(i?3:1),f,d,f,u,1,!0)).scrollIntoView())}return!0}}const A=["left","center","right","justify"];function $(t){const e=t.style.textAlign||t.getAttribute("align")||"";return A.includes(e)?e:null}const x=8;function v(t){const e=t.style.marginInlineStart||t.style.marginLeft||"",l=parseFloat(e);return!Number.isFinite(l)||l<=0?0:Math.min(8,Math.round(l/40))}function j(t){const e=t.style.lineHeight.trim();if(!e||"normal"===e)return null;const l=parseFloat(e);return!Number.isFinite(l)||l<=0?null:e.endsWith("%")?String(l/100):e}function N(t){const e=[],l=function(t){return t?`text-align: ${t}`:null}(t.align??null);return l&&e.push(l),t.indent&&e.push(`margin-inline-start: ${40*t.indent}px`),t.lineHeight&&e.push(`line-height: ${t.lineHeight}`),e.length?e.join("; "):null}const F=/^(?:nile-wysiwyg|ProseMirror)/;function I(t){if(!t)return null;const e=t.split(/\s+/).filter((t=>t&&!F.test(t)));return e.length?e.join(" "):null}function z(t){return t&&!F.test(t)?t:null}const q={htmlClass:{default:null},htmlId:{default:null}};function C(t){return{htmlClass:I(t.getAttribute("class")),htmlId:z(t.getAttribute("id"))}}function S(t){if(!("tag"in t)||"style"in t)return t;const e=t.getAttrs;return{...t,getAttrs(t){const l=e?e(t):null;return!1!==l&&{...l??{},...C(t)}}}}function H(t){return{...t,attrs:{...t.attrs??{},...q},parseDOM:t.parseDOM?.map(S),toDOM:(e=t.toDOM,e?(t,...l)=>{const r=e(t,...l),n=t.attrs.htmlClass,a=t.attrs.htmlId;if(!Array.isArray(r)||!n&&!a)return r;const[i,...s]=r;let o={},u=s;return s.length&&s[0]&&"object"==typeof s[0]&&!Array.isArray(s[0])&&(o={...s[0]},u=s.slice(1)),n&&(o.class=o.class?`${o.class} ${n}`:n),a&&(o.id=a),[i,o,...u]}:e)};var e}const E=["paragraph","heading","blockquote","code_block","bullet_list","ordered_list","list_item","table","table_row","table_cell","table_header"],B=["link","bold","italic","underline","strike","code","subscript","superscript"],G={doc:{content:"block+"},paragraph:{content:"inline*",group:"block",attrs:{align:{default:null},indent:{default:0},lineHeight:{default:null}},parseDOM:[{tag:"p",getAttrs:t=>({align:$(t),indent:v(t),lineHeight:j(t)})}],toDOM(t){const e=N(t.attrs);return e?["p",{style:e},0]:["p",0]}},heading:{content:"inline*",group:"block",defining:!0,attrs:{level:{default:1},align:{default:null},indent:{default:0},lineHeight:{default:null}},parseDOM:[1,2,3,4,5,6].map((t=>({tag:`h${t}`,getAttrs:e=>({level:t,align:$(e),indent:v(e),lineHeight:j(e)})}))),toDOM(t){const e=N(t.attrs);return e?[`h${t.attrs.level}`,{style:e},0]:[`h${t.attrs.level}`,0]}},blockquote:{content:"block+",group:"block",defining:!0,parseDOM:[{tag:"blockquote"}],toDOM:()=>["blockquote",0]},horizontal_rule:{group:"block",parseDOM:[{tag:"hr"}],toDOM:()=>["hr"]},text:{group:"inline"},hard_break:{inline:!0,group:"inline",selectable:!1,parseDOM:[{tag:"br"}],toDOM:()=>["br"]},code_block:{content:"text*",group:"block",marks:"",code:!0,defining:!0,attrs:{language:{default:null}},parseDOM:[{tag:"pre",preserveWhitespace:"full",getAttrs:t=>({language:t.getAttribute("data-language")})}],toDOM(t){const e={class:"nile-wysiwyg__code-block"};return t.attrs.language&&(e["data-language"]=t.attrs.language),["pre",e,["code",0]]}},image:{inline:!0,group:"inline",draggable:!0,attrs:{src:{},alt:{default:null},title:{default:null},width:{default:null}},parseDOM:[{tag:"img[src]",getAttrs:t=>{const e=parseFloat(t.style.width),l=parseFloat(t.getAttribute("width")??""),r=Number.isFinite(e)?Math.round(e):Number.isFinite(l)?Math.round(l):null;return{src:t.getAttribute("src"),alt:t.getAttribute("alt"),title:t.getAttribute("title"),width:r&&r>0?r:null}}}],toDOM(t){const{src:e,alt:l,title:r,width:n}=t.attrs,a={src:e};return l&&(a.alt=l),r&&(a.title=r),n&&(a.style=`width: ${n}px`),["img",a]}},figure:{group:"block",content:"inline*",defining:!0,isolating:!0,attrs:{src:{},alt:{default:null},title:{default:null},width:{default:null},align:{default:null}},parseDOM:[{tag:"figure",contentElement:"figcaption",getAttrs:t=>{const e=t.querySelector("img[src]");if(!e)return!1;const l=parseFloat(e.style.width||t.style.width),r=t.getAttribute("data-align");return{src:e.getAttribute("src"),alt:e.getAttribute("alt"),title:e.getAttribute("title"),width:Number.isFinite(l)&&l>0?Math.round(l):null,align:"left"===r||"center"===r||"right"===r?r:null}}}],toDOM(t){const{src:e,alt:l,title:r,width:n,align:a}=t.attrs,i={class:"nile-wysiwyg__figure"};a&&(i["data-align"]=a);const s=[];n&&s.push(`width: ${n}px`),"center"===a?s.push("margin-left: auto; margin-right: auto"):"right"===a&&s.push("margin-left: auto; margin-right: 0"),s.length&&(i.style=s.join("; "));const o={src:e,style:"width: 100%"};return l&&(o.alt=l),r&&(o.title=r),["figure",i,["img",o],["figcaption",{class:"nile-wysiwyg__figcaption"},0]]}},task_list:{content:"task_item+",group:"block",parseDOM:[{tag:"ul[data-task-list]",priority:51}],toDOM:()=>["ul",{"data-task-list":"true",class:"nile-wysiwyg__task-list"},0]},task_item:{content:"paragraph block*",defining:!0,attrs:{checked:{default:!1}},parseDOM:[{tag:"li[data-task-item]",priority:51,getAttrs:t=>({checked:"true"===t.getAttribute("data-checked")})}],toDOM:t=>["li",{"data-task-item":"true","data-checked":String(t.attrs.checked),class:"nile-wysiwyg__task-item"},0]},embed:{group:"block",atom:!0,selectable:!0,draggable:!0,attrs:{src:{},provider:{default:null},title:{default:null},width:{default:null},align:{default:null}},parseDOM:[{tag:"div[data-embed-provider]",getAttrs:t=>{const e=t.querySelector("iframe[src]");if(!e)return!1;const l=t.getAttribute("data-width")??/^(\d+)px$/.exec(t.style.width)?.[1],r=l?parseInt(l,10):NaN,n=t.getAttribute("data-align");return{src:e.getAttribute("src"),provider:t.getAttribute("data-embed-provider"),title:e.getAttribute("title"),width:Number.isFinite(r)&&r>0?r:null,align:"left"===n||"center"===n||"right"===n?n:null}}},{tag:"iframe[src]",getAttrs:t=>{const e=parseInt(t.getAttribute("width")??"",10);return{src:t.getAttribute("src"),title:t.getAttribute("title"),width:Number.isFinite(e)&&e>0?e:null}}}],toDOM(t){const{src:e,provider:l,title:r,width:n,align:a}=t.attrs,i={src:e,frameborder:"0",allowfullscreen:"true",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",sandbox:d,referrerpolicy:f};r&&(i.title=r);const s={class:"nile-wysiwyg__embed","data-embed-provider":l??"generic"},o=[];return n&&(s["data-width"]=String(n),o.push(`width: ${n}px`,"max-width: 100%")),a&&(s["data-align"]=a,"center"===a?o.push("margin-left: auto","margin-right: auto"):"right"===a&&o.push("margin-left: auto","margin-right: 0")),o.length&&(s.style=o.join("; ")),["div",s,["iframe",i]]}},styleBlock:{group:"block",atom:!0,selectable:!0,attrs:{css:{default:""}},parseDOM:[{tag:"style",getAttrs:t=>({css:t.textContent??""})}],toDOM:t=>["style",t.attrs.css]},bookmark:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{id:{}},parseDOM:[{tag:"a[data-bookmark]",priority:60,getAttrs:t=>{const e=t.getAttribute("id")||t.getAttribute("name");return!!e&&{id:e}}},{tag:"a[id]",getAttrs:t=>!t.hasAttribute("href")&&{id:t.getAttribute("id")}},{tag:"a[name]",getAttrs:t=>!t.hasAttribute("href")&&{id:t.getAttribute("name")}}],toDOM:t=>["a",{id:t.attrs.id,"data-bookmark":"true"}]},mention:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{trigger:{default:"@"},key:{},label:{}},parseDOM:[{tag:"span[data-mention-key]",getAttrs:t=>({trigger:t.getAttribute("data-mention-trigger")||"@",key:t.getAttribute("data-mention-key"),label:t.getAttribute("data-mention-label")||t.textContent?.slice(1)||""})}],toDOM(t){const{trigger:e,key:l,label:r}=t.attrs;return["span",{class:"nile-wysiwyg__mention","data-mention-trigger":e,"data-mention-key":l,"data-mention-label":r},`${e}${r}`]}},merge_field:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{id:{},label:{default:null}},parseDOM:[{tag:"span[data-merge-field]",getAttrs:t=>{const e=t.getAttribute("data-merge-field");return!!e&&{id:e,label:t.getAttribute("data-merge-label")||t.textContent||null}}}],toDOM(t){const{id:e,label:l}=t.attrs;return["span",{class:"nile-wysiwyg__merge-field","data-merge-field":e,"data-merge-label":l??""},l||`{{${e}}}`]}},math:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{latex:{},display:{default:"inline"}},parseDOM:[{tag:"span[data-math]",getAttrs:t=>({latex:t.getAttribute("data-math")||t.textContent||"",display:"block"===t.getAttribute("data-math-display")?"block":"inline"})}],toDOM(t){const{latex:e,display:l}=t.attrs;return["span",{class:"nile-wysiwyg__math","data-math":e,"data-math-display":l},e]}}},P=g({tableGroup:"block",cellContent:"block+",cellAttributes:{background:{default:null,getFromDOM:t=>t.style.backgroundColor||null,setDOMAttr(t,e){t&&(e.style=`${e.style||""}background-color: ${t};`)}}}}),R=P.table,W={...R,attrs:{...R.attrs??{},layout:{default:!1}},parseDOM:[{tag:"table",getAttrs:t=>({layout:"presentation"===t.getAttribute("role")||t.hasAttribute("data-layout")})}],toDOM:t=>t.attrs.layout?["table",{role:"presentation","data-layout":"true"},["tbody",0]]:["table",["tbody",0]]},J={link:{attrs:{href:{},title:{default:null},target:{default:null}},inclusive:!1,parseDOM:[{tag:"a[href]",getAttrs:t=>({href:t.getAttribute("href"),title:t.getAttribute("title"),target:t.getAttribute("target")})}],toDOM(t){const{href:e,title:l,target:r}=t.attrs,n={href:e};return l&&(n.title=l),r&&(n.target=r,"_blank"===r&&(n.rel="noopener noreferrer")),["a",n,0]}},bold:{parseDOM:[{tag:"strong"},{tag:"b",getAttrs:t=>"normal"!==t.style.fontWeight&&null},{style:"font-weight",getAttrs:t=>/^(bold(er)?|[5-9]\d{2,})$/.test(t)&&null}],toDOM:()=>["strong",0]},italic:{parseDOM:[{tag:"i"},{tag:"em"},{style:"font-style=italic"}],toDOM:()=>["em",0]},underline:{parseDOM:[{tag:"u"},{style:"text-decoration",getAttrs:t=>t.includes("underline")&&null},{style:"text-decoration-line",getAttrs:t=>t.includes("underline")&&null}],toDOM:()=>["u",0]},strike:{parseDOM:[{tag:"s"},{tag:"strike"},{tag:"del"},{style:"text-decoration",getAttrs:t=>t.includes("line-through")&&null},{style:"text-decoration-line",getAttrs:t=>t.includes("line-through")&&null}],toDOM:()=>["s",0]},subscript:{excludes:"subscript superscript",parseDOM:[{tag:"sub"},{style:"vertical-align=sub"}],toDOM:()=>["sub",0]},superscript:{excludes:"subscript superscript",parseDOM:[{tag:"sup"},{style:"vertical-align=super"}],toDOM:()=>["sup",0]},code:{parseDOM:[{tag:"code"}],toDOM:()=>["code",{class:"nile-wysiwyg__inline-code"},0]},html_span:{attrs:{htmlClass:{default:null},htmlId:{default:null}},parseDOM:[{tag:"span",priority:5,getAttrs:t=>{const e=I(t.getAttribute("class")),l=z(t.getAttribute("id"));return!(!e&&!l)&&{htmlClass:e,htmlId:l}}}],toDOM(t){const e={};return t.attrs.htmlClass&&(e.class=t.attrs.htmlClass),t.attrs.htmlId&&(e.id=t.attrs.htmlId),["span",e,0]}},text_color:{attrs:{color:{}},parseDOM:[{style:"color",getAttrs:t=>!!t&&{color:t}}],toDOM:t=>["span",{style:`color: ${t.attrs.color}`},0]},bg_color:{attrs:{color:{}},parseDOM:[{style:"background-color",getAttrs:t=>!(!t||"transparent"===t)&&{color:t}}],toDOM:t=>["span",{style:`background-color: ${t.attrs.color}`},0]},font_family:{attrs:{family:{}},parseDOM:[{style:"font-family",getAttrs:t=>!!t&&{family:t}}],toDOM:t=>["span",{style:`font-family: ${t.attrs.family}`},0]},font_size:{attrs:{size:{}},parseDOM:[{style:"font-size",getAttrs:t=>!!t&&{size:t}}],toDOM:t=>["span",{style:`font-size: ${t.attrs.size}`},0]}},K=["disc","circle","square"],L={1:"decimal",a:"lower-alpha",A:"upper-alpha",i:"lower-roman",I:"upper-roman"},Q=Object.fromEntries(Object.entries(L).map((([t,e])=>[e,t]))),T="multilevel",U={content:"list_item+",group:"block",attrs:{style:{default:null}},parseDOM:[{tag:"ul",getAttrs:t=>{const e=t.style.listStyleType;return{style:K.includes(e)?e:null}}}],toDOM:t=>t.attrs.style?["ul",{style:`list-style-type: ${t.attrs.style}`},0]:["ul",0]},V={content:"list_item+",group:"block",attrs:{order:{default:1},style:{default:null}},parseDOM:[{tag:"ol",getAttrs:t=>{const e=t.getAttribute("type")??"",l=t.style.listStyleType,r=t.getAttribute("data-list-style")===T?T:L[e]??(Object.values(L).includes(l)?l:null),n=Number(t.getAttribute("start"));return{order:Number.isFinite(n)&&n>0?n:1,style:r}}}],toDOM(t){const e={};return 1!==t.attrs.order&&(e.start=String(t.attrs.order)),t.attrs.style===T?e["data-list-style"]=T:t.attrs.style&&Q[t.attrs.style]&&(e.type=Q[t.attrs.style]),["ol",e,0]}};const X=function(){let t=function(t,e,l){return t.append({ordered_list:O(y,{content:"list_item+",group:l}),bullet_list:O(h,{content:"list_item+",group:l}),list_item:O(M,{content:e})})}(u.from(G),"paragraph block*","block").update("bullet_list",U).update("ordered_list",V).append(P).update("table",W);for(const e of E){const l=t.get(e);l&&(t=t.update(e,H(l)))}let e=u.from(J);for(const t of B){const l=e.get(t);l&&(e=e.update(t,H(l)))}return new c({nodes:t,marks:e})}();export{T as M,_ as a,x as b,X as d,w as l,k as s,D as w};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register(["./commands.cjs.js","../../index-89c520e9.cjs.js","./schema.cjs.js","../../index-
|
|
1
|
+
System.register(["./commands.cjs.js","../../index-89c520e9.cjs.js","./schema.cjs.js","../../index-d7e6f1c6.cjs.js","../../index-cc1385e0.cjs.js","../../index-178e1e57.cjs.js","./plugins/embeds.cjs.js"],function(_export,_context){"use strict";var l,n,e,t,i;function o(l,n){var _l$selection=l.selection,e=_l$selection.from,t=_l$selection.$from,i=_l$selection.to,o=_l$selection.empty;return o?!!n.isInSet(l.storedMarks||t.marks()):l.doc.rangeHasMark(e,i,n);}function s(l,n,e){var _l$selection2=l.selection,t=_l$selection2.$from,i=_l$selection2.from,o=_l$selection2.to,s=_l$selection2.empty;if(s){var _i$attrs$e;var _i=n.isInSet(l.storedMarks||t.marks());return _i?(_i$attrs$e=_i.attrs[e])!==null&&_i$attrs$e!==void 0?_i$attrs$e:null:null;}var u=null;return l.doc.nodesBetween(i,o,function(l){var _t$attrs$e;if(null!==u||!l.isText)return null===u;var t=n.isInSet(l.marks);return t&&(u=(_t$attrs$e=t.attrs[e])!==null&&_t$attrs$e!==void 0?_t$attrs$e:null),null===u;}),u;}function u(u){var _f$attrs$align,_f$attrs$lineHeight,_f$attrs$indent,_A$isFigure,_A$node$attrs$align,_C$node$attrs$align,_f$attrs$language;var c=u.schema,_u$selection=u.selection,r=_u$selection.$from,a=_u$selection.from,m=_u$selection.to,d=_u$selection.empty;var f=r.parent;if(!f.isTextblock){var _l=null;u.doc.nodesBetween(a,m,function(n){return!_l&&n.isTextblock&&(_l=n),!_l;}),_l&&(f=_l);}var g=f.type.name,p="heading"===g?f.attrs.level:null,j=f.type.spec.attrs&&"align"in f.type.spec.attrs?(_f$attrs$align=f.attrs.align)!==null&&_f$attrs$align!==void 0?_f$attrs$align:null:null;var b=!1,k=!1,y=!1,h=!1,x=!1,L=!1,S=null,B=null;for(var _l2=r.depth;_l2>0;_l2-=1){var _n$attrs$style,_n$attrs$style2,_n$attrs$order;var _n=r.node(_l2);_n.type===c.nodes.bullet_list?(b=!0,null===S&&(S=(_n$attrs$style=_n.attrs.style)!==null&&_n$attrs$style!==void 0?_n$attrs$style:null)):_n.type===c.nodes.ordered_list?(k=!0,null===S&&(S=(_n$attrs$style2=_n.attrs.style)!==null&&_n$attrs$style2!==void 0?_n$attrs$style2:null),null===B&&(B=(_n$attrs$order=_n.attrs.order)!==null&&_n$attrs$order!==void 0?_n$attrs$order:1)):_n.type===c.nodes.task_list?y=!0:_n.type===c.nodes.blockquote?h=!0:_n.type===c.nodes.table&&(x=!0,L=!!_n.attrs.layout);}var A=l(u),C=n(u),H=o(u,c.marks.link);var T=null;if(H&&(T=s(u,c.marks.link,"href"),null===T&&d)){var _l3=e(r,c.marks.link);if(_l3){var _n2=c.marks.link.isInSet(u.doc.resolve(_l3.from+1).marks());T=_n2?_n2.attrs.href:null;}}return{bold:o(u,c.marks.bold),italic:o(u,c.marks.italic),underline:o(u,c.marks.underline),strike:o(u,c.marks.strike),subscript:o(u,c.marks.subscript),superscript:o(u,c.marks.superscript),code:o(u,c.marks.code),blockType:g,headingLevel:p,align:j,lineHeight:f.type.spec.attrs&&"lineHeight"in f.type.spec.attrs?(_f$attrs$lineHeight=f.attrs.lineHeight)!==null&&_f$attrs$lineHeight!==void 0?_f$attrs$lineHeight:null:null,inBulletList:b,inOrderedList:k,inTaskList:y,inBlockquote:h,inTable:x,tableLayout:L,blockIndent:f.type.spec.attrs&&"indent"in f.type.spec.attrs?(_f$attrs$indent=f.attrs.indent)!==null&&_f$attrs$indent!==void 0?_f$attrs$indent:0:0,listStyle:S,listStart:B,imageSelected:null!==A,imageIsFigure:(_A$isFigure=A===null||A===void 0?void 0:A.isFigure)!==null&&_A$isFigure!==void 0?_A$isFigure:!1,imageAlign:A!==null&&A!==void 0&&A.isFigure?(_A$node$attrs$align=A.node.attrs.align)!==null&&_A$node$attrs$align!==void 0?_A$node$attrs$align:null:null,embedSelected:null!==C,embedAlign:(_C$node$attrs$align=C===null||C===void 0?void 0:C.node.attrs.align)!==null&&_C$node$attrs$align!==void 0?_C$node$attrs$align:null,inCodeBlock:"code_block"===g,codeBlockLanguage:"code_block"===g?(_f$attrs$language=f.attrs.language)!==null&&_f$attrs$language!==void 0?_f$attrs$language:null:null,canUndo:t(u),canRedo:i(u),linkActive:H,linkHref:T,textColor:s(u,c.marks.text_color,"color"),bgColor:s(u,c.marks.bg_color,"color"),fontFamily:s(u,c.marks.font_family,"family"),fontSize:s(u,c.marks.font_size,"size"),selectionEmpty:d};}_export("c",u);return{setters:[function(_commandsCjsJs){l=_commandsCjsJs.s;n=_commandsCjsJs.a;e=_commandsCjsJs.g;t=_commandsCjsJs.u;i=_commandsCjsJs.r;},function(_index00aCjsJs){},function(_schemaCjsJs){},function(_index001CjsJs){},function(_index009CjsJs){},function(_index007CjsJs){},function(_pluginsEmbedsCjsJs){}],execute:function execute(){}};});
|
|
2
2
|
//# sourceMappingURL=selection-state.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-state.cjs.js","sources":["../../../../src/nile-wysiwyg-editor/engine/selection-state.ts"],"sourcesContent":["import { EditorState } from 'prosemirror-state';\nimport { MarkType, Node as PMNode } from 'prosemirror-model';\nimport { undo, redo } from 'prosemirror-history';\nimport type { Alignment } from './schema';\nimport { getMarkRange, selectedImageInfo, selectedEmbedInfo } from './commands';\n\n/**\n * Immutable snapshot of everything the toolbar needs to render. Computed once\n * per transaction in the host's dispatchTransaction and passed down as a\n * single reactive property.\n */\nexport interface ToolbarState {\n bold: boolean;\n italic: boolean;\n underline: boolean;\n strike: boolean;\n subscript: boolean;\n superscript: boolean;\n code: boolean;\n /** 'paragraph' | 'heading' for the innermost textblock at the cursor. */\n blockType: string;\n headingLevel: number | null;\n align: Alignment | null;\n /** Line height ('1.5') of the textblock at the cursor, null = default. */\n lineHeight: string | null;\n inBulletList: boolean;\n inOrderedList: boolean;\n inTaskList: boolean;\n inBlockquote: boolean;\n inTable: boolean;\n /** The surrounding table is a layout (presentation) table. */\n tableLayout: boolean;\n /** Margin-indent level (0..MAX_INDENT) of the textblock at the cursor. */\n blockIndent: number;\n /** list-style-type of the surrounding list ('' = default). */\n listStyle: string | null;\n /** Start number of the surrounding ordered list. */\n listStart: number | null;\n /** An image or figure is selected (or the cursor is in a caption). */\n imageSelected: boolean;\n /** The selected image is a captioned figure. */\n imageIsFigure: boolean;\n /** Alignment of the selected figure. */\n imageAlign: string | null;\n /** A video embed is selected. */\n embedSelected: boolean;\n /** Alignment of the selected embed. */\n embedAlign: string | null;\n inCodeBlock: boolean;\n /** Language attr of the surrounding code block ('' = auto). */\n codeBlockLanguage: string | null;\n canUndo: boolean;\n canRedo: boolean;\n linkActive: boolean;\n linkHref: string | null;\n textColor: string | null;\n bgColor: string | null;\n fontFamily: string | null;\n fontSize: string | null;\n /** True when the selection is a cursor (no range). */\n selectionEmpty: boolean;\n /**\n * Whether the host's \"paste as plain text\" toggle is on. Not derivable from\n * editor state, so the host injects it after computeToolbarState().\n */\n pasteAsPlainText?: boolean;\n /** Whether the host is in fullscreen mode. Injected like pasteAsPlainText. */\n fullscreen?: boolean;\n /** Whether block boundaries are outlined. Injected like pasteAsPlainText. */\n showBlocks?: boolean;\n /** Whether the format painter is armed. Injected like pasteAsPlainText. */\n formatPainter?: boolean;\n}\n\nfunction markActive(state: EditorState, type: MarkType): boolean {\n const { from, $from, to, empty } = state.selection;\n if (empty) return !!type.isInSet(state.storedMarks || $from.marks());\n return state.doc.rangeHasMark(from, to, type);\n}\n\nfunction markAttr(state: EditorState, type: MarkType, attr: string): string | null {\n const { $from, from, to, empty } = state.selection;\n if (empty) {\n const mark = type.isInSet(state.storedMarks || $from.marks());\n return mark ? ((mark.attrs[attr] as string) ?? null) : null;\n }\n // Range: report the first occurrence of the mark inside the selection.\n // (Boundary marks() lookups miss non-inclusive marks like link.)\n let found: string | null = null;\n state.doc.nodesBetween(from, to, node => {\n if (found !== null || !node.isText) return found === null;\n const mark = type.isInSet(node.marks);\n if (mark) found = (mark.attrs[attr] as string) ?? null;\n return found === null;\n });\n return found;\n}\n\nexport function computeToolbarState(state: EditorState): ToolbarState {\n const { schema } = state;\n const { $from, from, to, empty } = state.selection;\n\n // $from.parent is the doc (not a textblock) for AllSelection / block\n // NodeSelections; report the first textblock in the range instead so the\n // toolbar reflects what's actually selected.\n let parent = $from.parent;\n if (!parent.isTextblock) {\n let firstTextblock: PMNode | null = null;\n state.doc.nodesBetween(from, to, node => {\n if (!firstTextblock && node.isTextblock) firstTextblock = node;\n return !firstTextblock;\n });\n if (firstTextblock) parent = firstTextblock;\n }\n const blockType = parent.type.name;\n const headingLevel = blockType === 'heading' ? (parent.attrs.level as number) : null;\n const align =\n parent.type.spec.attrs && 'align' in parent.type.spec.attrs\n ? ((parent.attrs.align as Alignment) ?? null)\n : null;\n\n let inBulletList = false;\n let inOrderedList = false;\n let inTaskList = false;\n let inBlockquote = false;\n let inTable = false;\n let tableLayout = false;\n let listStyle: string | null = null;\n let listStart: number | null = null;\n for (let depth = $from.depth; depth > 0; depth -= 1) {\n const node = $from.node(depth);\n if (node.type === schema.nodes.bullet_list) {\n inBulletList = true;\n if (listStyle === null) listStyle = (node.attrs.style as string) ?? null;\n } else if (node.type === schema.nodes.ordered_list) {\n inOrderedList = true;\n if (listStyle === null) listStyle = (node.attrs.style as string) ?? null;\n if (listStart === null) listStart = (node.attrs.order as number) ?? 1;\n } else if (node.type === schema.nodes.task_list) inTaskList = true;\n else if (node.type === schema.nodes.blockquote) inBlockquote = true;\n else if (node.type === schema.nodes.table) {\n inTable = true;\n tableLayout = !!node.attrs.layout;\n }\n }\n\n const imageInfo = selectedImageInfo(state);\n const embedInfo = selectedEmbedInfo(state);\n\n const linkActive = markActive(state, schema.marks.link);\n let linkHref: string | null = null;\n if (linkActive) {\n linkHref = markAttr(state, schema.marks.link, 'href');\n if (linkHref === null && empty) {\n const range = getMarkRange($from, schema.marks.link);\n if (range) {\n const mark = schema.marks.link.isInSet(\n state.doc.resolve(range.from + 1).marks()\n );\n linkHref = mark ? (mark.attrs.href as string) : null;\n }\n }\n }\n\n return {\n bold: markActive(state, schema.marks.bold),\n italic: markActive(state, schema.marks.italic),\n underline: markActive(state, schema.marks.underline),\n strike: markActive(state, schema.marks.strike),\n subscript: markActive(state, schema.marks.subscript),\n superscript: markActive(state, schema.marks.superscript),\n code: markActive(state, schema.marks.code),\n blockType,\n headingLevel,\n align,\n lineHeight:\n parent.type.spec.attrs && 'lineHeight' in parent.type.spec.attrs\n ? ((parent.attrs.lineHeight as string) ?? null)\n : null,\n inBulletList,\n inOrderedList,\n inTaskList,\n inBlockquote,\n inTable,\n tableLayout,\n blockIndent:\n parent.type.spec.attrs && 'indent' in parent.type.spec.attrs\n ? ((parent.attrs.indent as number) ?? 0)\n : 0,\n listStyle,\n listStart,\n imageSelected: imageInfo !== null,\n imageIsFigure: imageInfo?.isFigure ?? false,\n imageAlign: imageInfo?.isFigure ? ((imageInfo.node.attrs.align as string) ?? null) : null,\n embedSelected: embedInfo !== null,\n embedAlign: (embedInfo?.node.attrs.align as string) ?? null,\n inCodeBlock: blockType === 'code_block',\n codeBlockLanguage:\n blockType === 'code_block' ? ((parent.attrs.language as string) ?? null) : null,\n canUndo: undo(state),\n canRedo: redo(state),\n linkActive,\n linkHref,\n textColor: markAttr(state, schema.marks.text_color, 'color'),\n bgColor: markAttr(state, schema.marks.bg_color, 'color'),\n fontFamily: markAttr(state, schema.marks.font_family, 'family'),\n fontSize: markAttr(state, schema.marks.font_size, 'size'),\n selectionEmpty: empty,\n };\n}\n"],"names":["markActive","state","type","_l$selection","selection","from","$from","to","empty","isInSet","storedMarks","marks","doc","rangeHasMark","markAttr","attr","_l$selection2","_i$attrs$e","mark","attrs","found","nodesBetween","node","isText","_t$attrs$e","computeToolbarState","schema","parent","isTextblock","firstTextblock","blockType","name","headingLevel","level","align","spec","inBulletList","inOrderedList","inTaskList","inBlockquote","inTable","tableLayout","listStyle","listStart","depth","_n$attrs$style","_n$attrs$style2","_n$attrs$order","nodes","bullet_list","style","ordered_list","order","task_list","blockquote","table","layout","imageInfo","selectedImageInfo","embedInfo","selectedEmbedInfo","linkActive","link","linkHref","range","getMarkRange","resolve","href","bold","italic","underline","strike","subscript","superscript","code","lineHeight","_f$attrs$lineHeight","blockIndent","indent","_f$attrs$indent","imageSelected","imageIsFigure","isFigure","_A$isFigure","imageAlign","embedSelected","embedAlign","inCodeBlock","codeBlockLanguage","language","canUndo","undo","canRedo","redo","textColor","text_color","bgColor","bg_color","fontFamily","font_family","fontSize","font_size","selectionEmpty"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selection-state.cjs.js","sources":["../../../../src/nile-wysiwyg-editor/engine/selection-state.ts"],"sourcesContent":["import { EditorState } from 'prosemirror-state';\nimport { MarkType, Node as PMNode } from 'prosemirror-model';\nimport { undo, redo } from 'prosemirror-history';\nimport type { Alignment } from './schema';\nimport { getMarkRange, selectedImageInfo, selectedEmbedInfo } from './commands';\n\n/**\n * Immutable snapshot of everything the toolbar needs to render. Computed once\n * per transaction in the host's dispatchTransaction and passed down as a\n * single reactive property.\n */\nexport interface ToolbarState {\n bold: boolean;\n italic: boolean;\n underline: boolean;\n strike: boolean;\n subscript: boolean;\n superscript: boolean;\n code: boolean;\n /** 'paragraph' | 'heading' for the innermost textblock at the cursor. */\n blockType: string;\n headingLevel: number | null;\n align: Alignment | null;\n /** Line height ('1.5') of the textblock at the cursor, null = default. */\n lineHeight: string | null;\n inBulletList: boolean;\n inOrderedList: boolean;\n inTaskList: boolean;\n inBlockquote: boolean;\n inTable: boolean;\n /** The surrounding table is a layout (presentation) table. */\n tableLayout: boolean;\n /** Margin-indent level (0..MAX_INDENT) of the textblock at the cursor. */\n blockIndent: number;\n /** list-style-type of the surrounding list ('' = default). */\n listStyle: string | null;\n /** Start number of the surrounding ordered list. */\n listStart: number | null;\n /** An image or figure is selected (or the cursor is in a caption). */\n imageSelected: boolean;\n /** The selected image is a captioned figure. */\n imageIsFigure: boolean;\n /** Alignment of the selected figure. */\n imageAlign: string | null;\n /** A video embed is selected. */\n embedSelected: boolean;\n /** Alignment of the selected embed. */\n embedAlign: string | null;\n inCodeBlock: boolean;\n /** Language attr of the surrounding code block ('' = auto). */\n codeBlockLanguage: string | null;\n canUndo: boolean;\n canRedo: boolean;\n linkActive: boolean;\n linkHref: string | null;\n textColor: string | null;\n bgColor: string | null;\n fontFamily: string | null;\n fontSize: string | null;\n /** True when the selection is a cursor (no range). */\n selectionEmpty: boolean;\n /**\n * Whether the host's \"paste as plain text\" toggle is on. Not derivable from\n * editor state, so the host injects it after computeToolbarState().\n */\n pasteAsPlainText?: boolean;\n /** Whether the host is in fullscreen mode. Injected like pasteAsPlainText. */\n fullscreen?: boolean;\n /** Whether block boundaries are outlined. Injected like pasteAsPlainText. */\n showBlocks?: boolean;\n /** Whether the format painter is armed. Injected like pasteAsPlainText. */\n formatPainter?: boolean;\n}\n\nfunction markActive(state: EditorState, type: MarkType): boolean {\n const { from, $from, to, empty } = state.selection;\n if (empty) return !!type.isInSet(state.storedMarks || $from.marks());\n return state.doc.rangeHasMark(from, to, type);\n}\n\nfunction markAttr(state: EditorState, type: MarkType, attr: string): string | null {\n const { $from, from, to, empty } = state.selection;\n if (empty) {\n const mark = type.isInSet(state.storedMarks || $from.marks());\n return mark ? ((mark.attrs[attr] as string) ?? null) : null;\n }\n // Range: report the first occurrence of the mark inside the selection.\n // (Boundary marks() lookups miss non-inclusive marks like link.)\n let found: string | null = null;\n state.doc.nodesBetween(from, to, node => {\n if (found !== null || !node.isText) return found === null;\n const mark = type.isInSet(node.marks);\n if (mark) found = (mark.attrs[attr] as string) ?? null;\n return found === null;\n });\n return found;\n}\n\nexport function computeToolbarState(state: EditorState): ToolbarState {\n const { schema } = state;\n const { $from, from, to, empty } = state.selection;\n\n // $from.parent is the doc (not a textblock) for AllSelection / block\n // NodeSelections; report the first textblock in the range instead so the\n // toolbar reflects what's actually selected.\n let parent = $from.parent;\n if (!parent.isTextblock) {\n let firstTextblock: PMNode | null = null;\n state.doc.nodesBetween(from, to, node => {\n if (!firstTextblock && node.isTextblock) firstTextblock = node;\n return !firstTextblock;\n });\n if (firstTextblock) parent = firstTextblock;\n }\n const blockType = parent.type.name;\n const headingLevel = blockType === 'heading' ? (parent.attrs.level as number) : null;\n const align =\n parent.type.spec.attrs && 'align' in parent.type.spec.attrs\n ? ((parent.attrs.align as Alignment) ?? null)\n : null;\n\n let inBulletList = false;\n let inOrderedList = false;\n let inTaskList = false;\n let inBlockquote = false;\n let inTable = false;\n let tableLayout = false;\n let listStyle: string | null = null;\n let listStart: number | null = null;\n for (let depth = $from.depth; depth > 0; depth -= 1) {\n const node = $from.node(depth);\n if (node.type === schema.nodes.bullet_list) {\n inBulletList = true;\n if (listStyle === null) listStyle = (node.attrs.style as string) ?? null;\n } else if (node.type === schema.nodes.ordered_list) {\n inOrderedList = true;\n if (listStyle === null) listStyle = (node.attrs.style as string) ?? null;\n if (listStart === null) listStart = (node.attrs.order as number) ?? 1;\n } else if (node.type === schema.nodes.task_list) inTaskList = true;\n else if (node.type === schema.nodes.blockquote) inBlockquote = true;\n else if (node.type === schema.nodes.table) {\n inTable = true;\n tableLayout = !!node.attrs.layout;\n }\n }\n\n const imageInfo = selectedImageInfo(state);\n const embedInfo = selectedEmbedInfo(state);\n\n const linkActive = markActive(state, schema.marks.link);\n let linkHref: string | null = null;\n if (linkActive) {\n linkHref = markAttr(state, schema.marks.link, 'href');\n if (linkHref === null && empty) {\n const range = getMarkRange($from, schema.marks.link);\n if (range) {\n const mark = schema.marks.link.isInSet(\n state.doc.resolve(range.from + 1).marks()\n );\n linkHref = mark ? (mark.attrs.href as string) : null;\n }\n }\n }\n\n return {\n bold: markActive(state, schema.marks.bold),\n italic: markActive(state, schema.marks.italic),\n underline: markActive(state, schema.marks.underline),\n strike: markActive(state, schema.marks.strike),\n subscript: markActive(state, schema.marks.subscript),\n superscript: markActive(state, schema.marks.superscript),\n code: markActive(state, schema.marks.code),\n blockType,\n headingLevel,\n align,\n lineHeight:\n parent.type.spec.attrs && 'lineHeight' in parent.type.spec.attrs\n ? ((parent.attrs.lineHeight as string) ?? null)\n : null,\n inBulletList,\n inOrderedList,\n inTaskList,\n inBlockquote,\n inTable,\n tableLayout,\n blockIndent:\n parent.type.spec.attrs && 'indent' in parent.type.spec.attrs\n ? ((parent.attrs.indent as number) ?? 0)\n : 0,\n listStyle,\n listStart,\n imageSelected: imageInfo !== null,\n imageIsFigure: imageInfo?.isFigure ?? false,\n imageAlign: imageInfo?.isFigure ? ((imageInfo.node.attrs.align as string) ?? null) : null,\n embedSelected: embedInfo !== null,\n embedAlign: (embedInfo?.node.attrs.align as string) ?? null,\n inCodeBlock: blockType === 'code_block',\n codeBlockLanguage:\n blockType === 'code_block' ? ((parent.attrs.language as string) ?? null) : null,\n canUndo: undo(state),\n canRedo: redo(state),\n linkActive,\n linkHref,\n textColor: markAttr(state, schema.marks.text_color, 'color'),\n bgColor: markAttr(state, schema.marks.bg_color, 'color'),\n fontFamily: markAttr(state, schema.marks.font_family, 'family'),\n fontSize: markAttr(state, schema.marks.font_size, 'size'),\n selectionEmpty: empty,\n };\n}\n"],"names":["markActive","state","type","_l$selection","selection","from","$from","to","empty","isInSet","storedMarks","marks","doc","rangeHasMark","markAttr","attr","_l$selection2","_i$attrs$e","mark","attrs","found","nodesBetween","node","_t$attrs$e","isText","computeToolbarState","_f$attrs$align","_f$attrs$lineHeight","_f$attrs$indent","_A$isFigure","_A$node$attrs$align","_C$node$attrs$align","_f$attrs$language","schema","parent","isTextblock","firstTextblock","blockType","name","headingLevel","level","align","spec","inBulletList","inOrderedList","inTaskList","inBlockquote","inTable","tableLayout","listStyle","listStart","depth","_n$attrs$style","_n$attrs$style2","_n$attrs$order","nodes","bullet_list","style","ordered_list","order","task_list","blockquote","table","layout","imageInfo","selectedImageInfo","embedInfo","selectedEmbedInfo","linkActive","link","linkHref","range","getMarkRange","resolve","href","bold","italic","underline","strike","subscript","superscript","code","lineHeight","blockIndent","indent","imageSelected","imageIsFigure","isFigure","imageAlign","embedSelected","embedAlign","inCodeBlock","codeBlockLanguage","language","canUndo","undo","canRedo","redo","textColor","text_color","bgColor","bg_color","fontFamily","font_family","fontSize","font_size","selectionEmpty"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as l,a as n,g as e,u as t,r as i}from"./commands.esm.js";import"../../index-6f3fa4ab.esm.js";import"./schema.esm.js";import"../../index-
|
|
1
|
+
import{s as l,a as n,g as e,u as t,r as i}from"./commands.esm.js";import"../../index-6f3fa4ab.esm.js";import"./schema.esm.js";import"../../index-289706c7.esm.js";import"../../index-353172ed.esm.js";import"../../index-920675c4.esm.js";import"./plugins/embeds.esm.js";function o(l,n){const{from:e,$from:t,to:i,empty:o}=l.selection;return o?!!n.isInSet(l.storedMarks||t.marks()):l.doc.rangeHasMark(e,i,n)}function s(l,n,e){const{$from:t,from:i,to:o,empty:s}=l.selection;if(s){const i=n.isInSet(l.storedMarks||t.marks());return i?i.attrs[e]??null:null}let u=null;return l.doc.nodesBetween(i,o,(l=>{if(null!==u||!l.isText)return null===u;const t=n.isInSet(l.marks);return t&&(u=t.attrs[e]??null),null===u})),u}function u(u){const{schema:r}=u,{$from:c,from:m,to:a,empty:d}=u.selection;let f=c.parent;if(!f.isTextblock){let l=null;u.doc.nodesBetween(m,a,(n=>(!l&&n.isTextblock&&(l=n),!l))),l&&(f=l)}const g=f.type.name,p="heading"===g?f.attrs.level:null,b=f.type.spec.attrs&&"align"in f.type.spec.attrs?f.attrs.align??null:null;let k=!1,y=!1,h=!1,j=!1,x=!1,L=!1,S=null,B=null;for(let l=c.depth;l>0;l-=1){const n=c.node(l);n.type===r.nodes.bullet_list?(k=!0,null===S&&(S=n.attrs.style??null)):n.type===r.nodes.ordered_list?(y=!0,null===S&&(S=n.attrs.style??null),null===B&&(B=n.attrs.order??1)):n.type===r.nodes.task_list?h=!0:n.type===r.nodes.blockquote?j=!0:n.type===r.nodes.table&&(x=!0,L=!!n.attrs.layout)}const A=l(u),C=n(u),H=o(u,r.marks.link);let T=null;if(H&&(T=s(u,r.marks.link,"href"),null===T&&d)){const l=e(c,r.marks.link);if(l){const n=r.marks.link.isInSet(u.doc.resolve(l.from+1).marks());T=n?n.attrs.href:null}}return{bold:o(u,r.marks.bold),italic:o(u,r.marks.italic),underline:o(u,r.marks.underline),strike:o(u,r.marks.strike),subscript:o(u,r.marks.subscript),superscript:o(u,r.marks.superscript),code:o(u,r.marks.code),blockType:g,headingLevel:p,align:b,lineHeight:f.type.spec.attrs&&"lineHeight"in f.type.spec.attrs?f.attrs.lineHeight??null:null,inBulletList:k,inOrderedList:y,inTaskList:h,inBlockquote:j,inTable:x,tableLayout:L,blockIndent:f.type.spec.attrs&&"indent"in f.type.spec.attrs?f.attrs.indent??0:0,listStyle:S,listStart:B,imageSelected:null!==A,imageIsFigure:A?.isFigure??!1,imageAlign:A?.isFigure?A.node.attrs.align??null:null,embedSelected:null!==C,embedAlign:C?.node.attrs.align??null,inCodeBlock:"code_block"===g,codeBlockLanguage:"code_block"===g?f.attrs.language??null:null,canUndo:t(u),canRedo:i(u),linkActive:H,linkHref:T,textColor:s(u,r.marks.text_color,"color"),bgColor:s(u,r.marks.bg_color,"color"),fontFamily:s(u,r.marks.font_family,"family"),fontSize:s(u,r.marks.font_size,"size"),selectionEmpty:d}}export{u as c};
|