@mdaemon/html-editor 1.6.1 → 1.7.0
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 +50 -0
- package/dist/index.d.ts +27 -27
- package/dist/index.js +200 -50048
- package/dist/index.mjs +18629 -36889
- package/dist/index.umd.js +259 -0
- package/dist/styles.css +2 -1836
- package/package.json +6 -1
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.MDHTMLEditor={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},l=(e,r,i)=>(i=e==null?{}:t(a(e)),c(r||!e||!e.__esModule?n(i,`default`,{value:e,enumerable:!0}):i,e));function u(e){this.content=e}u.prototype={constructor:u,find:function(e){for(var t=0;t<this.content.length;t+=2)if(this.content[t]===e)return t;return-1},get:function(e){var t=this.find(e);return t==-1?void 0:this.content[t+1]},update:function(e,t,n){var r=n&&n!=e?this.remove(n):this,i=r.find(e),a=r.content.slice();return i==-1?a.push(n||e,t):(a[i+1]=t,n&&(a[i]=n)),new u(a)},remove:function(e){var t=this.find(e);if(t==-1)return this;var n=this.content.slice();return n.splice(t,2),new u(n)},addToStart:function(e,t){return new u([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new u(n)},addBefore:function(e,t,n){var r=this.remove(t),i=r.content.slice(),a=r.find(e);return i.splice(a==-1?i.length:a,0,t,n),new u(i)},forEach:function(e){for(var t=0;t<this.content.length;t+=2)e(this.content[t],this.content[t+1])},prepend:function(e){return e=u.from(e),e.size?new u(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=u.from(e),e.size?new u(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=u.from(e);for(var n=0;n<e.content.length;n+=2)t=t.remove(e.content[n]);return t},toObject:function(){var e={};return this.forEach(function(t,n){e[t]=n}),e},get size(){return this.content.length>>1}},u.from=function(e){if(e instanceof u)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new u(t)};function d(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){for(let e=0;i.text[e]==a.text[e];e++)n++;return n}if(i.content.size||a.content.size){let e=d(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function f(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s){n-=c,r-=c;continue}if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=0,t=Math.min(o.text.length,s.text.length);for(;e<t&&o.text[o.text.length-e-1]==s.text[s.text.length-e-1];)e++,n--,r--;return{a:n,b:r}}if(o.content.size||s.content.size){let e=f(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}var p=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;t<e.length;t++)this.size+=e[t].nodeSize}nodesBetween(e,t,n,r=0,i){for(let a=0,o=0;o<t;a++){let s=this.content[a],c=o+s.nodeSize;if(c>e&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);a<t.content.length;a++)i.push(t.content[a]);return new e(i,this.size+t.size)}cut(t,n=this.size){if(t==0&&n==this.size)return this;let r=[],i=0;if(n>t)for(let e=0,a=0;a<n;e++){let o=this.content[e],s=a+o.nodeSize;s>t&&((a<t||s>n)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw RangeError(`Index `+e+` out of range for `+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,n=0;t<this.content.length;t++){let r=this.content[t];e(r,n,t),n+=r.nodeSize}}findDiffStart(e,t=0){return d(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return f(this,e,t,n)}findIndex(e){if(e==0)return h(0,e);if(e==this.size)return h(this.content.length,e);if(e>this.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?h(t+1,i):h(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return e.fromArray(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;e<t.length;e++){let i=t[e];r+=i.nodeSize,e&&i.isText&&t[e-1].sameMarkup(i)?(n||=t.slice(0,e),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new e(n||t,r)}static from(t){if(!t)return e.empty;if(t instanceof e)return t;if(Array.isArray(t))return this.fromArray(t);if(t.attrs)return new e([t],t.nodeSize);throw RangeError(`Can not convert `+t+` to a Fragment`+(t.nodesBetween?` (looks like multiple versions of prosemirror-model were loaded)`:``))}};p.empty=new p([],0);var m={index:0,offset:0};function h(e,t){return m.index=e,m.offset=t,m}function g(e,t){if(e===t)return!0;if(!(e&&typeof e==`object`)||!(t&&typeof t==`object`))return!1;let n=Array.isArray(e);if(Array.isArray(t)!=n)return!1;if(n){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!g(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!g(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var _=class e{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(this.eq(i))return e;if(this.type.excludes(i.type))t||=e.slice(0,r);else if(i.type.excludes(this.type))return e;else !n&&i.type.rank>this.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&g(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Mark.fromJSON`);let n=e.marks[t.type];if(!n)throw RangeError(`There is no mark type ${t.type} in this schema`);let r=n.create(t.attrs);return n.checkAttrs(r.attrs),r}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}static setFrom(t){if(!t||Array.isArray(t)&&t.length==0)return e.none;if(t instanceof e)return[t];let n=t.slice();return n.sort((e,t)=>e.type.rank-t.type.rank),n}};_.none=[];var v=class extends Error{},y=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=x(this.content,t+this.openStart,n,this.openStart+1,this.openEnd+1);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(b(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(p.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};y.empty=new y(p.empty,0,0);function b(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(b(a.content,t-i-1,n-i-1)))}function x(e,t,n,r,i,a){let{index:o,offset:s}=e.findIndex(t),c=e.maybeChild(o);if(s==t||c.isText)return a&&r<=0&&i<=0&&!a.canReplace(o,o,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=x(c.content,t-s-1,n,o==0?r-1:0,o==e.childCount-1?i-1:0,c);return l&&e.replaceChild(o,c.copy(l))}function S(e,t,n){if(n.openStart>e.depth)throw new v(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new v(`Inconsistent open depths`);return C(e,t,n,0)}function C(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r<e.depth-n.openStart){let o=C(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}else if(!n.content.size)return O(a,A(e,t,r));else if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return O(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}else{let{start:i,end:o}=ee(n,e);return O(a,k(e,i,o,t,r))}}function w(e,t){if(!t.type.compatibleContent(e.type))throw new v(`Cannot join `+t.type.name+` onto `+e.type.name)}function T(e,t,n){let r=e.node(n);return w(r,t.node(n)),r}function E(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function D(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(E(e.nodeAfter,r),a++));for(let e=a;e<o;e++)E(i.child(e),r);t&&t.depth==n&&t.textOffset&&E(t.nodeBefore,r)}function O(e,t){return e.type.checkContent(t),e.copy(t)}function k(e,t,n,r,i){let a=e.depth>i&&T(e,t,i+1),o=r.depth>i&&T(n,r,i+1),s=[];return D(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(w(a,o),E(O(a,k(e,t,n,r,i+1)),s)):(a&&E(O(a,A(e,t,i+1)),s),D(t,n,i,s),o&&E(O(o,A(n,r,i+1)),s)),D(r,null,i,s),new p(s)}function A(e,t,n){let r=[];return D(null,e,n,r),e.depth>n&&E(O(T(e,t,n+1),A(e,t,n+1)),r),D(t,null,n,r),new p(r)}function ee(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(p.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var j=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t<e;t++)r+=n.child(t).nodeSize;return r}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return _.none;if(this.textOffset)return e.child(t).marks;let n=e.maybeChild(t-1),r=e.maybeChild(t);if(!n){let e=n;n=r,r=e}let i=n.marks;for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let n=t.marks,r=e.parent.maybeChild(e.index());for(var i=0;i<n.length;i++)n[i].type.spec.inclusive===!1&&(!r||!n[i].isInSet(r.marks))&&(n=n[i--].removeFromSet(n));return n}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let n=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);n>=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new re(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=``;for(let t=1;t<=this.depth;t++)e+=(e?`/`:``)+this.node(t).type.name+`_`+this.index(t-1);return e+`:`+this.parentOffset}static resolve(t,n){if(!(n>=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=ne.get(t);if(r)for(let e=0;e<r.elts.length;e++){let t=r.elts[e];if(t.pos==n)return t}else ne.set(t,r=new te);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%M,i}},te=class{constructor(){this.elts=[],this.i=0}},M=12,ne=new WeakMap,re=class{constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},ie=Object.create(null),ae=class e{constructor(e,t,n,r=_.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||p.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,n,r=0){this.content.nodesBetween(e,t,n,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,``)}textBetween(e,t,n,r){return this.content.textBetween(e,t,n,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,n){return this.type==e&&g(this.attrs,t||e.defaultAttrs||ie)&&_.sameSet(this.marks,n||_.none)}copy(t=null){return t==this.content?this:new e(this.type,this.attrs,t,this.marks)}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.content,t)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,n=!1){if(e==t)return y.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new y(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return S(this.resolve(e),this.resolve(t),n)}nodeAt(e){for(let t=this;;){let{index:n,offset:r}=t.content.findIndex(e);if(t=t.maybeChild(n),!t)return null;if(r==e||t.isText)return t;e-=r+1}}childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:n}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:n}=this.content.findIndex(e);if(n<e)return{node:this.content.child(t),index:t,offset:n};let r=this.content.child(t-1);return{node:r,index:t-1,offset:n-r.nodeSize}}resolve(e){return j.resolveCached(this,e)}resolveNoCache(e){return j.resolve(this,e)}rangeHasMark(e,t,n){let r=!1;return t>e&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),se(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=p.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;e<i;e++)if(!this.type.allowsMarks(n.child(e).marks))return!1;return!0}canReplaceWith(e,t,n,r){if(r&&!this.type.allowsMarks(r))return!1;let i=this.contentMatchAt(e).matchType(n),a=i&&i.matchFragment(this.content,t);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=_.none;for(let t=0;t<this.marks.length;t++){let n=this.marks[t];n.type.checkAttrs(n.attrs),e=n.addToSet(e)}if(!_.sameSet(e,this.marks))throw RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(e=>e.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=p.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};ae.prototype.text=void 0;var oe=class e extends ae{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):se(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function se(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var ce=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new le(t,n);if(r.next==null)return e.empty;let i=ue(r);r.next&&r.err(`Unexpected trailing text`);let a=be(_e(i));return xe(a,r),a}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,n=e.childCount){let r=this;for(let i=t;r&&i<n;i++)r=r.matchType(e.child(i).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next.length;n++)if(this.next[t].type==e.next[n].type)return!0;return!1}fillBefore(e,t=!1,n=0){let r=[this];function i(a,o){let s=a.matchFragment(e,n);if(s&&(!t||s.validEnd))return p.from(o.map(e=>e.createAndFill()));for(let e=0;e<a.next.length;e++){let{type:t,next:n}=a.next[e];if(!(t.isText||t.hasRequiredAttrs())&&r.indexOf(n)==-1){r.push(n);let e=i(n,o.concat(t));if(e)return e}}return null}return i(this,[])}findWrapping(e){for(let t=0;t<this.wrapCache.length;t+=2)if(this.wrapCache[t]==e)return this.wrapCache[t+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,via:null}];for(;n.length;){let r=n.shift(),i=r.match;if(i.matchType(e)){let e=[];for(let t=r;t.type;t=t.via)e.push(t.type);return e.reverse()}for(let e=0;e<i.next.length;e++){let{type:a,next:o}=i.next[e];!a.isLeaf&&!a.hasRequiredAttrs()&&!(a.name in t)&&(!r.type||o.validEnd)&&(n.push({match:a.contentMatch,type:a,via:r}),t[a.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r<n.next.length;r++)e.indexOf(n.next[r].next)==-1&&t(n.next[r].next)}return t(this),e.map((t,n)=>{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n<t.next.length;n++)r+=(n?`, `:``)+t.next[n].type.name+`->`+e.indexOf(t.next[n].next);return r}).join(`
|
|
2
|
+
`)}};ce.empty=new ce(!0);var le=class{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==``&&this.tokens.pop(),this.tokens[0]==``&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw SyntaxError(e+` (in content expression '`+this.string+`')`)}};function ue(e){let t=[];do t.push(de(e));while(e.eat(`|`));return t.length==1?t[0]:{type:`choice`,exprs:t}}function de(e){let t=[];do t.push(fe(e));while(e.next&&e.next!=`)`&&e.next!=`|`);return t.length==1?t[0]:{type:`seq`,exprs:t}}function fe(e){let t=ge(e);for(;;)if(e.eat(`+`))t={type:`plus`,expr:t};else if(e.eat(`*`))t={type:`star`,expr:t};else if(e.eat(`?`))t={type:`opt`,expr:t};else if(e.eat(`{`))t=me(e,t);else break;return t}function pe(e){/\D/.test(e.next)&&e.err(`Expected number, got '`+e.next+`'`);let t=Number(e.next);return e.pos++,t}function me(e,t){let n=pe(e),r=n;return e.eat(`,`)&&(r=e.next==`}`?-1:pe(e)),e.eat(`}`)||e.err(`Unclosed braced range`),{type:`range`,min:n,max:r,expr:t}}function he(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let e in n){let r=n[e];r.isInGroup(t)&&i.push(r)}return i.length==0&&e.err(`No node type or group '`+t+`' found`),i}function ge(e){if(e.eat(`(`)){let t=ue(e);return e.eat(`)`)||e.err(`Missing closing paren`),t}else if(/\W/.test(e.next))e.err(`Unexpected token '`+e.next+`'`);else{let t=he(e,e.next).map(t=>(e.inline==null?e.inline=t.isInline:e.inline!=t.isInline&&e.err(`Mixing inline and block content`),{type:`name`,value:t}));return e.pos++,t.length==1?t[0]:{type:`choice`,exprs:t}}}function _e(e){let t=[[]];return i(a(e,0),n()),t;function n(){return t.push([])-1}function r(e,n,r){let i={term:r,to:n};return t[e].push(i),i}function i(e,t){e.forEach(e=>e.to=t)}function a(e,t){if(e.type==`choice`)return e.exprs.reduce((e,n)=>e.concat(a(n,t)),[]);if(e.type==`seq`)for(let r=0;;r++){let o=a(e.exprs[r],t);if(r==e.exprs.length-1)return o;i(o,t=n())}else if(e.type==`star`){let o=n();return r(t,o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`plus`){let o=n();return i(a(e.expr,t),o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`opt`)return[r(t)].concat(a(e.expr,t));else if(e.type==`range`){let o=t;for(let t=0;t<e.min;t++){let t=n();i(a(e.expr,o),t),o=t}if(e.max==-1)i(a(e.expr,o),o);else for(let t=e.min;t<e.max;t++){let t=n();r(o,t),i(a(e.expr,o),t),o=t}return[r(o)]}else if(e.type==`name`)return[r(t,void 0,e.value)];else throw Error(`Unknown expr type`)}}function ve(e,t){return t-e}function ye(e,t){let n=[];return r(t),n.sort(ve);function r(t){let i=e[t];if(i.length==1&&!i[0].term)return r(i[0].to);n.push(t);for(let e=0;e<i.length;e++){let{term:t,to:a}=i[e];!t&&n.indexOf(a)==-1&&r(a)}}}function be(e){let t=Object.create(null);return n(ye(e,0));function n(r){let i=[];r.forEach(t=>{e[t].forEach(({term:t,to:n})=>{if(!t)return;let r;for(let e=0;e<i.length;e++)i[e][0]==t&&(r=i[e][1]);ye(e,n).forEach(e=>{r||i.push([t,r=[]]),r.indexOf(e)==-1&&r.push(e)})})});let a=t[r.join(`,`)]=new ce(r.indexOf(e.length-1)>-1);for(let e=0;e<i.length;e++){let r=i[e][1].sort(ve);a.next.push({type:i[e][0],next:t[r.join(`,`)]||n(r)})}return a}}function xe(e,t){for(let n=0,r=[e];n<r.length;n++){let e=r[n],i=!e.validEnd,a=[];for(let t=0;t<e.next.length;t++){let{type:n,next:o}=e.next[t];a.push(n.name),i&&!(n.isText||n.hasRequiredAttrs())&&(i=!1),r.indexOf(o)==-1&&r.push(o)}i&&t.err(`Only non-generatable nodes (`+a.join(`, `)+`) in a required position (see https://prosemirror.net/docs/guide/#generatable)`)}}function Se(e){let t=Object.create(null);for(let n in e){let r=e[n];if(!r.hasDefault)return null;t[n]=r.default}return t}function Ce(e,t){let n=Object.create(null);for(let r in e){let i=t&&t[r];if(i===void 0){let t=e[r];if(t.hasDefault)i=t.default;else throw RangeError(`No value supplied for attribute `+r)}n[r]=i}return n}function we(e,t,n,r){for(let r in t)if(!(r in e))throw RangeError(`Unsupported attribute ${r} for ${n} of type ${r}`);for(let n in e){let r=e[n];r.validate&&r.validate(t[n])}}function Te(e,t){let n=Object.create(null);if(t)for(let r in t)n[r]=new Oe(e,r,t[r]);return n}var Ee=class e{constructor(e,t,n){this.name=e,this.schema=t,this.spec=n,this.markSet=null,this.groups=n.group?n.group.split(` `):[],this.attrs=Te(e,n.attrs),this.defaultAttrs=Se(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(n.inline||e==`text`),this.isText=e==`text`}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==ce.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}isInGroup(e){return this.groups.indexOf(e)>-1}get whitespace(){return this.spec.whitespace||(this.spec.code?`pre`:`normal`)}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:Ce(this.attrs,e)}create(e=null,t,n){if(this.isText)throw Error(`NodeType.create can't construct text nodes`);return new ae(this,this.computeAttrs(e),p.from(t),_.setFrom(n))}createChecked(e=null,t,n){return t=p.from(t),this.checkContent(t),new ae(this,this.computeAttrs(e),t,_.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),t=p.from(t),t.size){let e=this.contentMatch.fillBefore(t);if(!e)return null;t=e.append(t)}let r=this.contentMatch.matchFragment(t),i=r&&r.fillBefore(p.empty,!0);return i?new ae(this,e,t.append(i),_.setFrom(n)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let t=0;t<e.childCount;t++)if(!this.allowsMarks(e.child(t).marks))return!1;return!0}checkContent(e){if(!this.validContent(e))throw RangeError(`Invalid content for node ${this.name}: ${e.toString().slice(0,50)}`)}checkAttrs(e){we(this.attrs,e,`node`,this.name)}allowsMarkType(e){return this.markSet==null||this.markSet.indexOf(e)>-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;t<e.length;t++)if(!this.allowsMarkType(e[t].type))return!1;return!0}allowedMarks(e){if(this.markSet==null)return e;let t;for(let n=0;n<e.length;n++)this.allowsMarkType(e[n].type)?t&&t.push(e[n]):t||=e.slice(0,n);return t?t.length?t:_.none:e}static compile(t,n){let r=Object.create(null);t.forEach((t,i)=>r[t]=new e(t,n,i));let i=n.spec.topNode||`doc`;if(!r[i])throw RangeError(`Schema is missing its top node type ('`+i+`')`);if(!r.text)throw RangeError(`Every schema needs a 'text' type`);for(let e in r.text.attrs)throw RangeError(`The text node type should not have attributes`);return r}};function De(e,t,n){let r=n.split(`|`);return n=>{let i=n===null?`null`:typeof n;if(r.indexOf(i)<0)throw RangeError(`Expected value of type ${r} for attribute ${t} on type ${e}, got ${i}`)}}var Oe=class{constructor(e,t,n){this.hasDefault=Object.prototype.hasOwnProperty.call(n,`default`),this.default=n.default,this.validate=typeof n.validate==`string`?De(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}},ke=class e{constructor(e,t,n,r){this.name=e,this.rank=t,this.schema=n,this.spec=r,this.attrs=Te(e,r.attrs),this.excluded=null;let i=Se(this.attrs);this.instance=i?new _(this,i):null}create(e=null){return!e&&this.instance?this.instance:new _(this,Ce(this.attrs,e))}static compile(t,n){let r=Object.create(null),i=0;return t.forEach((t,a)=>r[t]=new e(t,i++,n,a)),r}removeFromSet(e){for(var t=0;t<e.length;t++)e[t].type==this&&(e=e.slice(0,t).concat(e.slice(t+1)),t--);return e}isInSet(e){for(let t=0;t<e.length;t++)if(e[t].type==this)return e[t]}checkAttrs(e){we(this.attrs,e,`mark`,this.name)}excludes(e){return this.excluded.indexOf(e)>-1}},Ae=class{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let n in e)t[n]=e[n];t.nodes=u.from(e.nodes),t.marks=u.from(e.marks||{}),this.nodes=Ee.compile(this.spec.nodes,this),this.marks=ke.compile(this.spec.marks,this);let n=Object.create(null);for(let e in this.nodes){if(e in this.marks)throw RangeError(e+` can not be both a node and a mark`);let t=this.nodes[e],r=t.spec.content||``,i=t.spec.marks;if(t.contentMatch=n[r]||(n[r]=ce.parse(r,this.nodes)),t.inlineContent=t.contentMatch.inlineContent,t.spec.linebreakReplacement){if(this.linebreakReplacement)throw RangeError(`Multiple linebreak nodes defined`);if(!t.isInline||!t.isLeaf)throw RangeError(`Linebreak replacement nodes must be inline leaf nodes`);this.linebreakReplacement=t}t.markSet=i==`_`?null:i?je(this,i.split(` `)):i==``||!t.inlineContent?[]:null}for(let e in this.marks){let t=this.marks[e],n=t.spec.excludes;t.excluded=n==null?[t]:n==``?[]:je(this,n.split(` `))}this.nodeFromJSON=e=>ae.fromJSON(this,e),this.markFromJSON=e=>_.fromJSON(this,e),this.topNodeType=this.nodes[this.spec.topNode||`doc`],this.cached.wrappings=Object.create(null)}node(e,t=null,n,r){if(typeof e==`string`)e=this.nodeType(e);else if(!(e instanceof Ee))throw RangeError(`Invalid node type: `+e);else if(e.schema!=this)throw RangeError(`Node type from different schema used (`+e.name+`)`);return e.createChecked(t,n,r)}text(e,t){let n=this.nodes.text;return new oe(n,n.defaultAttrs,e,_.setFrom(t))}mark(e,t){return typeof e==`string`&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw RangeError(`Unknown node type: `+e);return t}};function je(e,t){let n=[];for(let r=0;r<t.length;r++){let i=t[r],a=e.marks[i],o=a;if(a)n.push(a);else for(let t in e.marks){let r=e.marks[t];(i==`_`||r.spec.group&&r.spec.group.split(` `).indexOf(i)>-1)&&n.push(o=r)}if(!o)throw SyntaxError(`Unknown mark type: '`+t[r]+`'`)}return n}function Me(e){return e.tag!=null}function Ne(e){return e.style!=null}var Pe=class e{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(e=>{if(Me(e))this.tags.push(e);else if(Ne(e)){let t=/[^=]*/.exec(e.style)[0];n.indexOf(t)<0&&n.push(t),this.styles.push(e)}}),this.normalizeLists=!this.tags.some(t=>{if(!/^(ul|ol)\b/.test(t.tag)||!t.node)return!1;let n=e.nodes[t.node];return n.contentMatch.matchType(n)})}parse(e,t={}){let n=new Ue(this,t,!1);return n.addAll(e,_.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new Ue(this,t,!0);return n.addAll(e,_.none,t.from,t.to),y.maxOpen(n.finish())}matchTag(e,t,n){for(let r=n?this.tags.indexOf(n)+1:0;r<this.tags.length;r++){let n=this.tags[r];if(Ge(e,n.tag)&&(n.namespace===void 0||e.namespaceURI==n.namespace)&&(!n.context||t.matchesContext(n.context))){if(n.getAttrs){let t=n.getAttrs(e);if(t===!1)continue;n.attrs=t||void 0}return n}}}matchStyle(e,t,n,r){for(let i=r?this.styles.indexOf(r)+1:0;i<this.styles.length;i++){let r=this.styles[i],a=r.style;if(!(a.indexOf(e)!=0||r.context&&!n.matchesContext(r.context)||a.length>e.length&&(a.charCodeAt(e.length)!=61||a.slice(e.length+1)!=t))){if(r.getAttrs){let e=r.getAttrs(t);if(e===!1)continue;r.attrs=e||void 0}return r}}}static schemaRules(e){let t=[];function n(e){let n=e.priority==null?50:e.priority,r=0;for(;r<t.length;r++){let e=t[r];if((e.priority==null?50:e.priority)<n)break}t.splice(r,0,e)}for(let t in e.marks){let r=e.marks[t].spec.parseDOM;r&&r.forEach(e=>{n(e=Ke(e)),e.mark||e.ignore||e.clearMark||(e.mark=t)})}for(let t in e.nodes){let r=e.nodes[t].spec.parseDOM;r&&r.forEach(e=>{n(e=Ke(e)),e.node||e.ignore||e.mark||(e.node=t)})}return t}static fromSchema(t){return t.cached.domParser||(t.cached.domParser=new e(t,e.schemaRules(t)))}},Fe={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},Ie={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},Le={ol:!0,ul:!0},Re=1,ze=2,Be=4;function Ve(e,t,n){return t==null?e&&e.whitespace==`pre`?3:n&-5:(t?Re:0)|(t===`full`?ze:0)}var He=class{constructor(e,t,n,r,i,a){this.type=e,this.attrs=t,this.marks=n,this.solid=r,this.options=a,this.content=[],this.activeMarks=_.none,this.match=i||(a&Be?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(p.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let t=this.type.contentMatch,n;return(n=t.findWrapping(e.type))?(this.match=t,n):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&Re)){let e=this.content[this.content.length-1],t;if(e&&e.isText&&(t=/[ \t\r\n\u000c]+$/.exec(e.text))){let n=e;e.text.length==t[0].length?this.content.pop():this.content[this.content.length-1]=n.withText(n.text.slice(0,n.text.length-t[0].length))}}let t=p.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(p.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!Fe.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}},Ue=class{constructor(e,t,n){this.parser=e,this.options=t,this.isOpen=n,this.open=0,this.localPreserveWS=!1;let r=t.topNode,i,a=Ve(null,t.preserveWhitespace,0)|(n?Be:0);i=r?new He(r.type,r.attrs,_.none,!0,t.topMatch||r.type.contentMatch,a):n?new He(null,null,_.none,!0,null,a):new He(e.schema.topNodeType,null,_.none,!0,null,a),this.nodes=[i],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let n=e.nodeValue,r=this.top,i=r.options&ze?`full`:this.localPreserveWS||(r.options&Re)>0,{schema:a}=this.parser;if(i===`full`||r.inlineContext(e)||/[^ \t\r\n\u000c]/.test(n)){if(!i){if(n=n.replace(/[ \t\r\n\u000c]+/g,` `),/^[ \t\r\n\u000c]/.test(n)&&this.open==this.nodes.length-1){let t=r.content[r.content.length-1],i=e.previousSibling;(!t||i&&i.nodeName==`BR`||t.isText&&/[ \t\r\n\u000c]$/.test(t.text))&&(n=n.slice(1))}}else if(i===`full`)n=n.replace(/\r\n?/g,`
|
|
3
|
+
`);else if(a.linebreakReplacement&&/[\r\n]/.test(n)&&this.top.findWrapping(a.linebreakReplacement.create())){let e=n.split(/\r?\n|\r/);for(let n=0;n<e.length;n++)n&&this.insertNode(a.linebreakReplacement.create(),t,!0),e[n]&&this.insertNode(a.text(e[n]),t,!/\S/.test(e[n]));n=``}else n=n.replace(/\r?\n|\r/g,` `);n&&this.insertNode(a.text(n),t,!/\S/.test(n)),this.findInText(e)}else this.findInside(e)}addElement(e,t,n){let r=this.localPreserveWS,i=this.top;(e.tagName==`PRE`||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let a=e.nodeName.toLowerCase(),o;Le.hasOwnProperty(a)&&this.parser.normalizeLists&&We(e);let s=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(o=this.parser.matchTag(e,this,n));out:if(s?s.ignore:Ie.hasOwnProperty(a))this.findInside(e),this.ignoreFallback(e,t);else if(!s||s.skip||s.closeParent){s&&s.closeParent?this.open=Math.max(0,this.open-1):s&&s.skip.nodeType&&(e=s.skip);let n,r=this.needsBlock;if(Fe.hasOwnProperty(a))i.content.length&&i.content[0].isInline&&this.open&&(this.open--,i=this.top),n=!0,i.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,t);break out}let o=s&&s.skip?t:this.readStyles(e,t);o&&this.addAll(e,o),n&&this.sync(i),this.needsBlock=r}else{let n=this.readStyles(e,t);n&&this.addElementByRule(e,s,n,s.consuming===!1?o:void 0)}this.localPreserveWS=r}leafFallback(e,t){e.nodeName==`BR`&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(`
|
|
4
|
+
`),t)}ignoreFallback(e,t){e.nodeName==`BR`&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text(`-`),t,!0)}readStyles(e,t){let n=e.style;if(n&&n.length)for(let e=0;e<this.parser.matchedStyles.length;e++){let r=this.parser.matchedStyles[e],i=n.getPropertyValue(r);if(i)for(let e;;){let n=this.parser.matchStyle(r,i,this,e);if(!n)break;if(n.ignore)return null;if(t=n.clearMark?t.filter(e=>!n.clearMark(e)):t.concat(this.parser.schema.marks[n.mark].create(n.attrs)),n.consuming===!1)e=n;else break}}return t}addElementByRule(e,t,n,r){let i,a;if(t.node)if(a=this.parser.schema.nodes[t.node],a.isLeaf)this.insertNode(a.create(t.attrs),n,e.nodeName==`BR`)||this.leafFallback(e,n);else{let e=this.enter(a,t.attrs||null,n,t.preserveWhitespace);e&&(i=!0,n=e)}else{let e=this.parser.schema.marks[t.mark];n=n.concat(e.create(t.attrs))}let o=this.top;if(a&&a.isLeaf)this.findInside(e);else if(r)this.addElement(e,n,r);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(e=>this.insertNode(e,n,!1));else{let r=e;typeof t.contentElement==`string`?r=e.querySelector(t.contentElement):typeof t.contentElement==`function`?r=t.contentElement(e):t.contentElement&&(r=t.contentElement),this.findAround(e,r,!0),this.addAll(r,n),this.findAround(e,r,!1)}i&&this.sync(o)&&this.open--}addAll(e,t,n,r){let i=n||0;for(let a=n?e.childNodes[n]:e.firstChild,o=r==null?null:e.childNodes[r];a!=o;a=a.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(a,t);this.findAtPoint(e,i)}findPlace(e,t,n){let r,i;for(let t=this.open,a=0;t>=0;t--){let o=this.nodes[t],s=o.findWrapping(e);if(s&&(!r||r.length>s.length+a)&&(r=s,i=o,!s.length))break;if(o.solid){if(n)break;a+=2}}if(!r)return null;this.sync(i);for(let e=0;e<r.length;e++)t=this.enterInner(r[e],null,t,!1);return t}insertNode(e,t,n){if(e.isInline&&this.needsBlock&&!this.top.type){let e=this.textblockFromContext();e&&(t=this.enterInner(e,null,t))}let r=this.findPlace(e,t,n);if(r){this.closeExtra();let t=this.top;t.match&&=t.match.matchType(e.type);let n=_.none;for(let i of r.concat(e.marks))(t.type?t.type.allowsMarkType(i.type):qe(i.type,e.type))&&(n=i.addToSet(n));return t.content.push(e.mark(n)),!0}return!1}enter(e,t,n,r){let i=this.findPlace(e.create(t),n,!1);return i&&=this.enterInner(e,t,n,!0,r),i}enterInner(e,t,n,r=!1,i){this.closeExtra();let a=this.top;a.match=a.match&&a.match.matchType(e);let o=Ve(e,i,a.options);a.options&Be&&a.content.length==0&&(o|=Be);let s=_.none;return n=n.filter(t=>(a.type?a.type.allowsMarkType(t.type):qe(t.type,e))?(s=t.addToSet(s),!1):!0),this.nodes.push(new He(e,t,s,r,null,o)),this.open++,n}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--)if(this.nodes[t]==e)return this.open=t,!0;else this.localPreserveWS&&(this.nodes[t].options|=Re);return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let n=this.nodes[t].content;for(let t=n.length-1;t>=0;t--)e+=n[t].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].node==e&&this.find[n].offset==t&&(this.find[n].pos=this.currentPos)}findInside(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].pos==null&&e.nodeType==1&&e.contains(this.find[t].node)&&(this.find[t].pos=this.currentPos)}findAround(e,t,n){if(e!=t&&this.find)for(let r=0;r<this.find.length;r++)this.find[r].pos==null&&e.nodeType==1&&e.contains(this.find[r].node)&&t.compareDocumentPosition(this.find[r].node)&(n?2:4)&&(this.find[r].pos=this.currentPos)}findInText(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].node==e&&(this.find[t].pos=this.currentPos-(e.nodeValue.length-this.find[t].offset))}matchesContext(e){if(e.indexOf(`|`)>-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split(`/`),n=this.options.context,r=!this.isOpen&&(!n||n.parent.type==this.nodes[0].type),i=-(n?n.depth+1:0)+ +!r,a=(e,o)=>{for(;e>=0;e--){let s=t[e];if(s==``){if(e==t.length-1||e==0)continue;for(;o>=i;o--)if(a(e-1,o))return!0;return!1}else{let e=o>0||o==0&&r?this.nodes[o].type:n&&o>=i?n.node(o-i).type:null;if(!e||e.name!=s&&!e.isInGroup(s))return!1;o--}}return!0};return a(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let n=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(n&&n.isTextblock&&n.defaultAttrs)return n}for(let e in this.parser.schema.nodes){let t=this.parser.schema.nodes[e];if(t.isTextblock&&t.defaultAttrs)return t}}};function We(e){for(let t=e.firstChild,n=null;t;t=t.nextSibling){let e=t.nodeType==1?t.nodeName.toLowerCase():null;e&&Le.hasOwnProperty(e)&&n?(n.appendChild(t),t=n):e==`li`?n=t:e&&(n=null)}}function Ge(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function Ke(e){let t={};for(let n in e)t[n]=e[n];return t}function qe(e,t){let n=t.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(e))continue;let a=[],o=e=>{a.push(e);for(let n=0;n<e.edgeCount;n++){let{type:r,next:i}=e.edge(n);if(r==t||a.indexOf(i)<0&&o(i))return!0}};if(o(i.contentMatch))return!0}}var Je=class e{constructor(e,t){this.nodes=e,this.marks=t}serializeFragment(e,t={},n){n||=Xe(t).createDocumentFragment();let r=n,i=[];return e.forEach(e=>{if(i.length||e.marks.length){let n=0,a=0;for(;n<i.length&&a<e.marks.length;){let t=e.marks[a];if(!this.marks[t.type.name]){a++;continue}if(!t.eq(i[n][0])||t.type.spec.spanning===!1)break;n++,a++}for(;n<i.length;)r=i.pop()[1];for(;a<e.marks.length;){let n=e.marks[a++],o=this.serializeMark(n,e.isInline,t);o&&(i.push([n,r]),r.appendChild(o.dom),r=o.contentDOM||o.dom)}}r.appendChild(this.serializeNodeInner(e,t))}),n}serializeNodeInner(e,t){if(e.isText)return Xe(t).createTextNode(e.text);let{dom:n,contentDOM:r}=et(Xe(t),this.nodes[e.type.name](e),null,e.attrs);if(r){if(e.isLeaf)throw RangeError(`Content hole not allowed in a leaf node spec`);this.serializeFragment(e.content,t,r)}return n}serializeNode(e,t={}){let n=this.serializeNodeInner(e,t);for(let r=e.marks.length-1;r>=0;r--){let i=this.serializeMark(e.marks[r],e.isInline,t);i&&((i.contentDOM||i.dom).appendChild(n),n=i.dom)}return n}serializeMark(e,t,n={}){let r=this.marks[e.type.name];return r&&et(Xe(n),r(e,t),null,e.attrs)}static renderSpec(e,t,n=null,r){return typeof t==`string`?{dom:e.createTextNode(t)}:et(e,t,n,r)}static fromSchema(t){return t.cached.domSerializer||(t.cached.domSerializer=new e(this.nodesFromSchema(t),this.marksFromSchema(t)))}static nodesFromSchema(e){let t=Ye(e.nodes);return t.text||=e=>e.text,t}static marksFromSchema(e){return Ye(e.marks)}};function Ye(e){let t={};for(let n in e){let r=e[n].spec.toDOM;r&&(t[n]=r)}return t}function Xe(e){return e.document||window.document}var Ze=new WeakMap;function Qe(e){let t=Ze.get(e);return t===void 0&&Ze.set(e,t=$e(e)),t}function $e(e){let t=null;function n(e){if(e&&typeof e==`object`)if(Array.isArray(e))if(typeof e[0]==`string`)t||=[],t.push(e);else for(let t=0;t<e.length;t++)n(e[t]);else for(let t in e)n(e[t])}return n(e),t}function et(e,t,n,r){if(t.nodeType==1)return{dom:t};if(t.dom&&t.dom.nodeType==1)return t;let i=t[0],a;if(typeof i!=`string`)throw RangeError(`Invalid array passed to renderSpec`);if(r&&(a=Qe(r))&&a.indexOf(t)>-1)throw RangeError(`Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.`);let o=i.indexOf(` `);o>0&&(n=i.slice(0,o),i=i.slice(o+1));let s,c=n?e.createElementNS(n,i):e.createElement(i),l=t[1],u=1;if(l&&typeof l==`object`&&l.nodeType==null&&!Array.isArray(l)){u=2;for(let e in l)if(l[e]!=null){let t=e.indexOf(` `);t>0?c.setAttributeNS(e.slice(0,t),e.slice(t+1),l[e]):e==`style`&&c.style?c.style.cssText=l[e]:c.setAttribute(e,l[e])}}for(let i=u;i<t.length;i++){let a=t[i];if(a===0){if(i<t.length-1||i>u)throw RangeError(`Content hole must be the only child of its parent node`);return{dom:c,contentDOM:c}}else if(typeof a==`string`)c.appendChild(e.createTextNode(a));else{let{dom:t,contentDOM:i}=et(e,a,n,r);if(c.appendChild(t),i){if(s)throw RangeError(`Multiple content holes`);s=i}}}return{dom:c,contentDOM:s}}var tt=65535,nt=2**16;function rt(e,t){return e+t*nt}function it(e){return e&tt}function at(e){return(e-(e&tt))/nt}var ot=1,st=2,ct=4,lt=8,ut=class{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(this.delInfo<)>0}get deletedBefore(){return(this.delInfo&5)>0}get deletedAfter(){return(this.delInfo&6)>0}get deletedAcross(){return(this.delInfo&ct)>0}},dt=class e{constructor(t,n=!1){if(this.ranges=t,this.inverted=n,!t.length&&e.empty)return e.empty}recover(e){let t=0,n=it(e);if(!this.inverted)for(let e=0;e<n;e++)t+=this.ranges[e*3+2]-this.ranges[e*3+1];return this.ranges[n*3]+t+at(e)}mapResult(e,t=1){return this._map(e,t,!1)}map(e,t=1){return this._map(e,t,!0)}_map(e,t,n){let r=0,i=this.inverted?2:1,a=this.inverted?1:2;for(let o=0;o<this.ranges.length;o+=3){let s=this.ranges[o]-(this.inverted?r:0);if(s>e)break;let c=this.ranges[o+i],l=this.ranges[o+a],u=s+c;if(e<=u){let i=c?e==s?-1:e==u?1:t:t,a=s+r+(i<0?0:l);if(n)return a;let d=e==(t<0?s:u)?null:rt(o/3,e-s),f=e==s?st:e==u?ot:ct;return(t<0?e!=s:e!=u)&&(f|=lt),new ut(a,f,d)}r+=l-c}return n?e+r:new ut(e+r,0,null)}touches(e,t){let n=0,r=it(t),i=this.inverted?2:1,a=this.inverted?1:2;for(let t=0;t<this.ranges.length;t+=3){let o=this.ranges[t]-(this.inverted?n:0);if(o>e)break;let s=this.ranges[t+i];if(e<=o+s&&t==r*3)return!0;n+=this.ranges[t+a]-s}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let r=0,i=0;r<this.ranges.length;r+=3){let a=this.ranges[r],o=a-(this.inverted?i:0),s=a+(this.inverted?0:i),c=this.ranges[r+t],l=this.ranges[r+n];e(o,o+c,s,s+l),i+=l-c}}invert(){return new e(this.ranges,!this.inverted)}toString(){return(this.inverted?`-`:``)+JSON.stringify(this.ranges)}static offset(t){return t==0?e.empty:new e(t<0?[0,-t,0]:[0,0,t])}};dt.empty=new dt([]);var ft=class e{constructor(e,t,n=0,r=e?e.length:0){this.mirror=t,this.from=n,this.to=r,this._maps=e||[],this.ownData=!(e||t)}get maps(){return this._maps}slice(t=0,n=this.maps.length){return new e(this._maps,this.mirror,t,n)}appendMap(e,t){this.ownData||=(this._maps=this._maps.slice(),this.mirror=this.mirror&&this.mirror.slice(),!0),this.to=this._maps.push(e),t!=null&&this.setMirror(this._maps.length-1,t)}appendMapping(e){for(let t=0,n=this._maps.length;t<e._maps.length;t++){let r=e.getMirror(t);this.appendMap(e._maps[t],r!=null&&r<t?n+r:void 0)}}getMirror(e){if(this.mirror){for(let t=0;t<this.mirror.length;t++)if(this.mirror[t]==e)return this.mirror[t+(t%2?-1:1)]}}setMirror(e,t){this.mirror||=[],this.mirror.push(e,t)}appendMappingInverted(e){for(let t=e.maps.length-1,n=this._maps.length+e._maps.length;t>=0;t--){let r=e.getMirror(t);this.appendMap(e._maps[t].invert(),r!=null&&r>t?n-r-1:void 0)}}invert(){let t=new e;return t.appendMappingInverted(this),t}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from;n<this.to;n++)e=this._maps[n].map(e,t);return e}mapResult(e,t=1){return this._map(e,t,!1)}_map(e,t,n){let r=0;for(let n=this.from;n<this.to;n++){let i=this._maps[n].mapResult(e,t);if(i.recover!=null){let t=this.getMirror(n);if(t!=null&&t>n&&t<this.to){n=t,e=this._maps[t].recover(i.recover);continue}}r|=i.delInfo,e=i.pos}return n?e:new ut(e,r,null)}},pt=Object.create(null),mt=class{getMap(){return dt.empty}merge(e){return null}static fromJSON(e,t){if(!t||!t.stepType)throw RangeError(`Invalid input for Step.fromJSON`);let n=pt[t.stepType];if(!n)throw RangeError(`No step type ${t.stepType} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in pt)throw RangeError(`Duplicate use of step JSON ID `+e);return pt[e]=t,t.prototype.jsonID=e,t}},ht=class e{constructor(e,t){this.doc=e,this.failed=t}static ok(t){return new e(t,null)}static fail(t){return new e(null,t)}static fromReplace(t,n,r,i){try{return e.ok(t.replace(n,r,i))}catch(t){if(t instanceof v)return e.fail(t.message);throw t}}};function gt(e,t,n){let r=[];for(let i=0;i<e.childCount;i++){let a=e.child(i);a.content.size&&(a=a.copy(gt(a.content,t,a))),a.isInline&&(a=t(a,n,i)),r.push(a)}return p.fromArray(r)}var _t=class e extends mt{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=e.resolve(this.from),r=n.node(n.sharedDepth(this.to)),i=new y(gt(t.content,(e,t)=>!e.isAtom||!t.type.allowsMarkType(this.mark.type)?e:e.mark(this.mark.addToSet(e.marks)),r),t.openStart,t.openEnd);return ht.fromReplace(e,this.from,this.to,i)}invert(){return new vt(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`addMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for AddMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};mt.jsonID(`addMark`,_t);var vt=class e extends mt{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new y(gt(t.content,e=>e.mark(this.mark.removeFromSet(e.marks)),e),t.openStart,t.openEnd);return ht.fromReplace(e,this.from,this.to,n)}invert(){return new _t(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`removeMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for RemoveMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};mt.jsonID(`removeMark`,vt);var yt=class e extends mt{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return ht.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return ht.fromReplace(e,this.pos,this.pos+1,new y(p.from(n),0,+!t.isLeaf))}invert(t){let n=t.nodeAt(this.pos);if(n){let t=this.mark.addToSet(n.marks);if(t.length==n.marks.length){for(let r=0;r<n.marks.length;r++)if(!n.marks[r].isInSet(t))return new e(this.pos,n.marks[r]);return new e(this.pos,this.mark)}}return new bt(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`addNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for AddNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};mt.jsonID(`addNodeMark`,yt);var bt=class e extends mt{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return ht.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.removeFromSet(t.marks));return ht.fromReplace(e,this.pos,this.pos+1,new y(p.from(n),0,+!t.isLeaf))}invert(e){let t=e.nodeAt(this.pos);return!t||!this.mark.isInSet(t.marks)?this:new yt(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`removeNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for RemoveNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};mt.jsonID(`removeNodeMark`,bt);var xt=class e extends mt{constructor(e,t,n,r=!1){super(),this.from=e,this.to=t,this.slice=n,this.structure=r}apply(e){return this.structure&&Ct(e,this.from,this.to)?ht.fail(`Structure replace would overwrite content`):ht.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new dt([this.from,this.to-this.from,this.slice.size])}invert(t){return new e(this.from,this.from+this.slice.size,t.slice(this.from,this.to))}map(t){let n=t.mapResult(this.to,-1),r=this.from==this.to&&e.MAP_BIAS<0?n:t.mapResult(this.from,1);return r.deletedAcross&&n.deletedAcross?null:new e(r.pos,Math.max(r.pos,n.pos),this.slice,this.structure)}merge(t){if(!(t instanceof e)||t.structure||this.structure)return null;if(this.from+this.slice.size==t.from&&!this.slice.openEnd&&!t.slice.openStart){let n=this.slice.size+t.slice.size==0?y.empty:new y(this.slice.content.append(t.slice.content),this.slice.openStart,t.slice.openEnd);return new e(this.from,this.to+(t.to-t.from),n,this.structure)}else if(t.to==this.from&&!this.slice.openStart&&!t.slice.openEnd){let n=this.slice.size+t.slice.size==0?y.empty:new y(t.slice.content.append(this.slice.content),t.slice.openStart,this.slice.openEnd);return new e(t.from,this.to,n,this.structure)}else return null}toJSON(){let e={stepType:`replace`,from:this.from,to:this.to};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for ReplaceStep.fromJSON`);return new e(n.from,n.to,y.fromJSON(t,n.slice),!!n.structure)}};xt.MAP_BIAS=1,mt.jsonID(`replace`,xt);var St=class e extends mt{constructor(e,t,n,r,i,a,o=!1){super(),this.from=e,this.to=t,this.gapFrom=n,this.gapTo=r,this.slice=i,this.insert=a,this.structure=o}apply(e){if(this.structure&&(Ct(e,this.from,this.gapFrom)||Ct(e,this.gapTo,this.to)))return ht.fail(`Structure gap-replace would overwrite content`);let t=e.slice(this.gapFrom,this.gapTo);if(t.openStart||t.openEnd)return ht.fail(`Gap is not a flat range`);let n=this.slice.insertAt(this.insert,t.content);return n?ht.fromReplace(e,this.from,this.to,n):ht.fail(`Content does not fit in gap`)}getMap(){return new dt([this.from,this.gapFrom-this.from,this.insert,this.gapTo,this.to-this.gapTo,this.slice.size-this.insert])}invert(t){let n=this.gapTo-this.gapFrom;return new e(this.from,this.from+this.slice.size+n,this.from+this.insert,this.from+this.insert+n,t.slice(this.from,this.to).removeBetween(this.gapFrom-this.from,this.gapTo-this.from),this.gapFrom-this.from,this.structure)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1),i=this.from==this.gapFrom?n.pos:t.map(this.gapFrom,-1),a=this.to==this.gapTo?r.pos:t.map(this.gapTo,1);return n.deletedAcross&&r.deletedAcross||i<n.pos||a>r.pos?null:new e(n.pos,r.pos,i,a,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:`replaceAround`,from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`||typeof n.gapFrom!=`number`||typeof n.gapTo!=`number`||typeof n.insert!=`number`)throw RangeError(`Invalid input for ReplaceAroundStep.fromJSON`);return new e(n.from,n.to,n.gapFrom,n.gapTo,y.fromJSON(t,n.slice),n.insert,!!n.structure)}};mt.jsonID(`replaceAround`,St);function Ct(e,t,n){let r=e.resolve(t),i=n-t,a=r.depth;for(;i>0&&a>0&&r.indexAfter(a)==r.node(a).childCount;)a--,i--;if(i>0){let e=r.node(a).maybeChild(r.indexAfter(a));for(;i>0;){if(!e||e.isLeaf)return!0;e=e.firstChild,i--}}return!1}function wt(e,t,n,r){let i=[],a=[],o,s;e.doc.nodesBetween(t,n,(e,c,l)=>{if(!e.isInline)return;let u=e.marks;if(!r.isInSet(u)&&l.type.allowsMarkType(r.type)){let l=Math.max(c,t),d=Math.min(c+e.nodeSize,n),f=r.addToSet(u);for(let e=0;e<u.length;e++)u[e].isInSet(f)||(o&&o.to==l&&o.mark.eq(u[e])?o.to=d:i.push(o=new vt(l,d,u[e])));s&&s.to==l?s.to=d:a.push(s=new _t(l,d,r))}}),i.forEach(t=>e.step(t)),a.forEach(t=>e.step(t))}function Tt(e,t,n,r){let i=[],a=0;e.doc.nodesBetween(t,n,(e,o)=>{if(!e.isInline)return;a++;let s=null;if(r instanceof ke){let t=e.marks,n;for(;n=r.isInSet(t);)(s||=[]).push(n),t=n.removeFromSet(t)}else r?r.isInSet(e.marks)&&(s=[r]):s=e.marks;if(s&&s.length){let r=Math.min(o+e.nodeSize,n);for(let e=0;e<s.length;e++){let n=s[e],c;for(let e=0;e<i.length;e++){let t=i[e];t.step==a-1&&n.eq(i[e].style)&&(c=t)}c?(c.to=r,c.step=a):i.push({style:n,from:Math.max(o,t),to:r,step:a})}}}),i.forEach(t=>e.step(new vt(t.from,t.to,t.style)))}function Et(e,t,n,r=n.contentMatch,i=!0){let a=e.doc.nodeAt(t),o=[],s=t+1;for(let t=0;t<a.childCount;t++){let c=a.child(t),l=s+c.nodeSize,u=r.matchType(c.type);if(!u)o.push(new xt(s,l,y.empty));else{r=u;for(let t=0;t<c.marks.length;t++)n.allowsMarkType(c.marks[t].type)||e.step(new vt(s,l,c.marks[t]));if(i&&c.isText&&n.whitespace!=`pre`){let e,t=/\r?\n|\r/g,r;for(;e=t.exec(c.text);)r||=new y(p.from(n.schema.text(` `,n.allowedMarks(c.marks))),0,0),o.push(new xt(s+e.index,s+e.index+e[0].length,r))}}s=l}if(!r.validEnd){let t=r.fillBefore(p.empty,!0);e.replace(s,s,new y(t,0,0))}for(let t=o.length-1;t>=0;t--)e.step(o[t])}function Dt(e,t,n){return(t==0||e.canReplace(t,e.childCount))&&(n==e.childCount||e.canReplace(0,n))}function Ot(e){let t=e.parent.content.cutByIndex(e.startIndex,e.endIndex);for(let n=e.depth,r=0,i=0;;--n){let a=e.$from.node(n),o=e.$from.index(n)+r,s=e.$to.indexAfter(n)-i;if(n<e.depth&&a.canReplace(o,s,t))return n;if(n==0||a.type.spec.isolating||!Dt(a,o,s))break;o&&(r=1),s<a.childCount&&(i=1)}return null}function kt(e,t,n){let{$from:r,$to:i,depth:a}=t,o=r.before(a+1),s=i.after(a+1),c=o,l=s,u=p.empty,d=0;for(let e=a,t=!1;e>n;e--)t||r.index(e)>0?(t=!0,u=p.from(r.node(e).copy(u)),d++):c--;let f=p.empty,m=0;for(let e=a,t=!1;e>n;e--)t||i.after(e+1)<i.end(e)?(t=!0,f=p.from(i.node(e).copy(f)),m++):l++;e.step(new St(c,l,o,s,new y(u.append(f),d,m),u.size-d,!0))}function At(e,t,n=null,r=e){let i=Mt(e,t),a=i&&Nt(r,t);return a?i.map(jt).concat({type:t,attrs:n}).concat(a.map(jt)):null}function jt(e){return{type:e,attrs:null}}function Mt(e,t){let{parent:n,startIndex:r,endIndex:i}=e,a=n.contentMatchAt(r).findWrapping(t);if(!a)return null;let o=a.length?a[0]:t;return n.canReplaceWith(r,i,o)?a:null}function Nt(e,t){let{parent:n,startIndex:r,endIndex:i}=e,a=n.child(r),o=t.contentMatch.findWrapping(a.type);if(!o)return null;let s=(o.length?o[o.length-1]:t).contentMatch;for(let e=r;s&&e<i;e++)s=s.matchType(n.child(e).type);return!s||!s.validEnd?null:o}function Pt(e,t,n){let r=p.empty;for(let e=n.length-1;e>=0;e--){if(r.size){let t=n[e].type.contentMatch.matchFragment(r);if(!t||!t.validEnd)throw RangeError(`Wrapper type given to Transform.wrap does not form valid content of its parent wrapper`)}r=p.from(n[e].type.create(n[e].attrs,r))}let i=t.start,a=t.end;e.step(new St(i,a,i,a,new y(r,0,0),n.length,!0))}function Ft(e,t,n,r,i){if(!r.isTextblock)throw RangeError(`Type given to setBlockType should be a textblock`);let a=e.steps.length;e.doc.nodesBetween(t,n,(t,n)=>{let o=typeof i==`function`?i(t):i;if(t.isTextblock&&!t.hasMarkup(r,o)&&Rt(e.doc,e.mapping.slice(a).map(n),r)){let i=null;if(r.schema.linebreakReplacement){let e=r.whitespace==`pre`,t=!!r.contentMatch.matchType(r.schema.linebreakReplacement);e&&!t?i=!1:!e&&t&&(i=!0)}i===!1&&Lt(e,t,n,a),Et(e,e.mapping.slice(a).map(n,1),r,void 0,i===null);let s=e.mapping.slice(a),c=s.map(n,1),l=s.map(n+t.nodeSize,1);return e.step(new St(c,l,c+1,l-1,new y(p.from(r.create(o,null,t.marks)),0,0),1,!0)),i===!0&&It(e,t,n,a),!1}})}function It(e,t,n,r){t.forEach((i,a)=>{if(i.isText){let o,s=/\r?\n|\r/g;for(;o=s.exec(i.text);){let i=e.mapping.slice(r).map(n+1+a+o.index);e.replaceWith(i,i+1,t.type.schema.linebreakReplacement.create())}}})}function Lt(e,t,n,r){t.forEach((i,a)=>{if(i.type==i.type.schema.linebreakReplacement){let i=e.mapping.slice(r).map(n+1+a);e.replaceWith(i,i+1,t.type.schema.text(`
|
|
5
|
+
`))}})}function Rt(e,t,n){let r=e.resolve(t),i=r.index();return r.parent.canReplaceWith(i,i+1,n)}function zt(e,t,n,r,i){let a=e.doc.nodeAt(t);if(!a)throw RangeError(`No node at given position`);n||=a.type;let o=n.create(r,null,i||a.marks);if(a.isLeaf)return e.replaceWith(t,t+a.nodeSize,o);if(!n.validContent(a.content))throw RangeError(`Invalid content for node type `+n.name);e.step(new St(t,t+a.nodeSize,t+1,t+a.nodeSize-1,new y(p.from(o),0,0),1,!0))}function Bt(e,t,n=1,r){let i=e.resolve(t),a=i.depth-n,o=r&&r[r.length-1]||i.parent;if(a<0||i.parent.type.spec.isolating||!i.parent.canReplace(i.index(),i.parent.childCount)||!o.type.validContent(i.parent.content.cutByIndex(i.index(),i.parent.childCount)))return!1;for(let e=i.depth-1,t=n-2;e>a;e--,t--){let n=i.node(e),a=i.index(e);if(n.type.spec.isolating)return!1;let o=n.content.cutByIndex(a,n.childCount),s=r&&r[t+1];s&&(o=o.replaceChild(0,s.type.create(s.attrs)));let c=r&&r[t]||n;if(!n.canReplace(a+1,n.childCount)||!c.type.validContent(o))return!1}let s=i.indexAfter(a),c=r&&r[0];return i.node(a).canReplaceWith(s,s,c?c.type:i.node(a+1).type)}function Vt(e,t,n=1,r){let i=e.doc.resolve(t),a=p.empty,o=p.empty;for(let e=i.depth,t=i.depth-n,s=n-1;e>t;e--,s--){a=p.from(i.node(e).copy(a));let t=r&&r[s];o=p.from(t?t.type.create(t.attrs,o):i.node(e).copy(o))}e.step(new xt(t,t,new y(a.append(o),n,n),!0))}function Ht(e,t){let n=e.resolve(t),r=n.index();return Wt(n.nodeBefore,n.nodeAfter)&&n.parent.canReplace(r,r+1)}function Ut(e,t){t.content.size||e.type.compatibleContent(t.type);let n=e.contentMatchAt(e.childCount),{linebreakReplacement:r}=e.type.schema;for(let i=0;i<t.childCount;i++){let a=t.child(i),o=a.type==r?e.type.schema.nodes.text:a.type;if(n=n.matchType(o),!n||!e.type.allowsMarks(a.marks))return!1}return n.validEnd}function Wt(e,t){return!!(e&&t&&!e.isLeaf&&Ut(e,t))}function Gt(e,t,n=-1){let r=e.resolve(t);for(let e=r.depth;;e--){let i,a,o=r.index(e);if(e==r.depth?(i=r.nodeBefore,a=r.nodeAfter):n>0?(i=r.node(e+1),o++,a=r.node(e).maybeChild(o)):(i=r.node(e).maybeChild(o-1),a=r.node(e+1)),i&&!i.isTextblock&&Wt(i,a)&&r.node(e).canReplace(o,o+1))return t;if(e==0)break;t=n<0?r.before(e):r.after(e)}}function Kt(e,t,n){let r=null,{linebreakReplacement:i}=e.doc.type.schema,a=e.doc.resolve(t-n),o=a.node().type;if(i&&o.inlineContent){let e=o.whitespace==`pre`,t=!!o.contentMatch.matchType(i);e&&!t?r=!1:!e&&t&&(r=!0)}let s=e.steps.length;if(r===!1){let r=e.doc.resolve(t+n);Lt(e,r.node(),r.before(),s)}o.inlineContent&&Et(e,t+n-1,o,a.node().contentMatchAt(a.index()),r==null);let c=e.mapping.slice(s),l=c.map(t-n);if(e.step(new xt(l,c.map(t+n,-1),y.empty,!0)),r===!0){let t=e.doc.resolve(l);It(e,t.node(),t.before(),e.steps.length)}return e}function qt(e,t,n){let r=e.resolve(t);if(r.parent.canReplaceWith(r.index(),r.index(),n))return t;if(r.parentOffset==0)for(let e=r.depth-1;e>=0;e--){let t=r.index(e);if(r.node(e).canReplaceWith(t,t,n))return r.before(e+1);if(t>0)return null}if(r.parentOffset==r.parent.content.size)for(let e=r.depth-1;e>=0;e--){let t=r.indexAfter(e);if(r.node(e).canReplaceWith(t,t,n))return r.after(e+1);if(t<r.node(e).childCount)return null}return null}function Jt(e,t,n){let r=e.resolve(t);if(!n.content.size)return t;let i=n.content;for(let e=0;e<n.openStart;e++)i=i.firstChild.content;for(let e=1;e<=(n.openStart==0&&n.size?2:1);e++)for(let t=r.depth;t>=0;t--){let n=t==r.depth?0:r.pos<=(r.start(t+1)+r.end(t+1))/2?-1:1,a=r.index(t)+ +(n>0),o=r.node(t),s=!1;if(e==1)s=o.canReplace(a,a,i);else{let e=o.contentMatchAt(a).findWrapping(i.firstChild.type);s=e&&o.canReplaceWith(a,a,e[0])}if(s)return n==0?r.pos:n<0?r.before(t+1):r.after(t+1)}return null}function Yt(e,t,n=t,r=y.empty){if(t==n&&!r.size)return null;let i=e.resolve(t),a=e.resolve(n);return Xt(i,a,r)?new xt(t,n,r):new Zt(i,a,r).fit()}function Xt(e,t,n){return!n.openStart&&!n.openEnd&&e.start()==t.start()&&e.parent.canReplace(e.index(),t.index(),n.content)}var Zt=class{constructor(e,t,n){this.$from=e,this.$to=t,this.unplaced=n,this.frontier=[],this.placed=p.empty;for(let t=0;t<=e.depth;t++){let n=e.node(t);this.frontier.push({type:n.type,match:n.contentMatchAt(e.indexAfter(t))})}for(let t=e.depth;t>0;t--)this.placed=p.from(e.node(t).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let e=this.findFittable();e?this.placeNodes(e):this.openMore()||this.dropNode()}let e=this.mustMoveInline(),t=this.placed.size-this.depth-this.$from.depth,n=this.$from,r=this.close(e<0?this.$to:n.doc.resolve(e));if(!r)return null;let i=this.placed,a=n.depth,o=r.depth;for(;a&&o&&i.childCount==1;)i=i.firstChild.content,a--,o--;let s=new y(i,a,o);return e>-1?new St(n.pos,e,this.$to.pos,this.$to.end(),s,t):s.size||n.pos!=this.$to.pos?new xt(n.pos,r.pos,s):null}findFittable(){let e=this.unplaced.openStart;for(let t=this.unplaced.content,n=0,r=this.unplaced.openEnd;n<e;n++){let i=t.firstChild;if(t.childCount>1&&(r=0),i.type.spec.isolating&&r<=n){e=n;break}t=i.content}for(let t=1;t<=2;t++)for(let n=t==1?e:this.unplaced.openStart;n>=0;n--){let e,r=null;n?(r=en(this.unplaced.content,n-1).firstChild,e=r.content):e=this.unplaced.content;let i=e.firstChild;for(let e=this.depth;e>=0;e--){let{type:a,match:o}=this.frontier[e],s,c=null;if(t==1&&(i?o.matchType(i.type)||(c=o.fillBefore(p.from(i),!1)):r&&a.compatibleContent(r.type)))return{sliceDepth:n,frontierDepth:e,parent:r,inject:c};if(t==2&&i&&(s=o.findWrapping(i.type)))return{sliceDepth:n,frontierDepth:e,parent:r,wrap:s};if(r&&o.matchType(r.type))break}}}openMore(){let{content:e,openStart:t,openEnd:n}=this.unplaced,r=en(e,t);return!r.childCount||r.firstChild.isLeaf?!1:(this.unplaced=new y(e,t+1,Math.max(n,r.size+t>=e.size-n?t+1:0)),!0)}dropNode(){let{content:e,openStart:t,openEnd:n}=this.unplaced,r=en(e,t);if(r.childCount<=1&&t>0){let i=e.size-t<=t+r.size;this.unplaced=new y(Qt(e,t-1,1),t-1,i?t-1:n)}else this.unplaced=new y(Qt(e,t,1),t,n)}placeNodes({sliceDepth:e,frontierDepth:t,parent:n,inject:r,wrap:i}){for(;this.depth>t;)this.closeFrontierNode();if(i)for(let e=0;e<i.length;e++)this.openFrontierNode(i[e]);let a=this.unplaced,o=n?n.content:a.content,s=a.openStart-e,c=0,l=[],{match:u,type:d}=this.frontier[t];if(r){for(let e=0;e<r.childCount;e++)l.push(r.child(e));u=u.matchFragment(r)}let f=o.size+e-(a.content.size-a.openEnd);for(;c<o.childCount;){let e=o.child(c),t=u.matchType(e.type);if(!t)break;c++,(c>1||s==0||e.content.size)&&(u=t,l.push(tn(e.mark(d.allowedMarks(e.marks)),c==1?s:0,c==o.childCount?f:-1)))}let m=c==o.childCount;m||(f=-1),this.placed=$t(this.placed,t,p.from(l)),this.frontier[t].match=u,m&&f<0&&n&&n.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let e=0,t=o;e<f;e++){let e=t.lastChild;this.frontier.push({type:e.type,match:e.contentMatchAt(e.childCount)}),t=e.content}this.unplaced=m?e==0?y.empty:new y(Qt(a.content,e-1,1),e-1,f<0?a.openEnd:e-1):new y(Qt(a.content,e,c),a.openStart,a.openEnd)}mustMoveInline(){if(!this.$to.parent.isTextblock)return-1;let e=this.frontier[this.depth],t;if(!e.type.isTextblock||!nn(this.$to,this.$to.depth,e.type,e.match,!1)||this.$to.depth==this.depth&&(t=this.findCloseLevel(this.$to))&&t.depth==this.depth)return-1;let{depth:n}=this.$to,r=this.$to.after(n);for(;n>1&&r==this.$to.end(--n);)++r;return r}findCloseLevel(e){scan:for(let t=Math.min(this.depth,e.depth);t>=0;t--){let{match:n,type:r}=this.frontier[t],i=t<e.depth&&e.end(t+1)==e.pos+(e.depth-(t+1)),a=nn(e,t,r,n,i);if(a){for(let n=t-1;n>=0;n--){let{match:t,type:r}=this.frontier[n],i=nn(e,n,r,t,!0);if(!i||i.childCount)continue scan}return{depth:t,fit:a,move:i?e.doc.resolve(e.after(t+1)):e}}}}close(e){let t=this.findCloseLevel(e);if(!t)return null;for(;this.depth>t.depth;)this.closeFrontierNode();t.fit.childCount&&(this.placed=$t(this.placed,t.depth,t.fit)),e=t.move;for(let n=t.depth+1;n<=e.depth;n++){let t=e.node(n),r=t.type.contentMatch.fillBefore(t.content,!0,e.index(n));this.openFrontierNode(t.type,t.attrs,r)}return e}openFrontierNode(e,t=null,n){let r=this.frontier[this.depth];r.match=r.match.matchType(e),this.placed=$t(this.placed,this.depth,p.from(e.create(t,n))),this.frontier.push({type:e,match:e.contentMatch})}closeFrontierNode(){let e=this.frontier.pop().match.fillBefore(p.empty,!0);e.childCount&&(this.placed=$t(this.placed,this.frontier.length,e))}};function Qt(e,t,n){return t==0?e.cutByIndex(n,e.childCount):e.replaceChild(0,e.firstChild.copy(Qt(e.firstChild.content,t-1,n)))}function $t(e,t,n){return t==0?e.append(n):e.replaceChild(e.childCount-1,e.lastChild.copy($t(e.lastChild.content,t-1,n)))}function en(e,t){for(let n=0;n<t;n++)e=e.firstChild.content;return e}function tn(e,t,n){if(t<=0)return e;let r=e.content;return t>1&&(r=r.replaceChild(0,tn(r.firstChild,t-1,r.childCount==1?n-1:0))),t>0&&(r=e.type.contentMatch.fillBefore(r).append(r),n<=0&&(r=r.append(e.type.contentMatch.matchFragment(r).fillBefore(p.empty,!0)))),e.copy(r)}function nn(e,t,n,r,i){let a=e.node(t),o=i?e.indexAfter(t):e.index(t);if(o==a.childCount&&!n.compatibleContent(a.type))return null;let s=r.fillBefore(a.content,!0,o);return s&&!rn(n,a.content,o)?s:null}function rn(e,t,n){for(let r=n;r<t.childCount;r++)if(!e.allowsMarks(t.child(r).marks))return!0;return!1}function an(e){return e.spec.defining||e.spec.definingForContent}function on(e,t,n,r){if(!r.size)return e.deleteRange(t,n);let i=e.doc.resolve(t),a=e.doc.resolve(n);if(Xt(i,a,r))return e.step(new xt(t,n,r));let o=un(i,a);o[o.length-1]==0&&o.pop();let s=-(i.depth+1);o.unshift(s);for(let e=i.depth,t=i.pos-1;e>0;e--,t--){let n=i.node(e).type.spec;if(n.defining||n.definingAsContext||n.isolating)break;o.indexOf(e)>-1?s=e:i.before(e)==t&&o.splice(1,0,-e)}let c=o.indexOf(s),l=[],u=r.openStart;for(let e=r.content,t=0;;t++){let n=e.firstChild;if(l.push(n),t==r.openStart)break;e=n.content}for(let e=u-1;e>=0;e--){let t=l[e],n=an(t.type);if(n&&!t.sameMarkup(i.node(Math.abs(s)-1)))u=e;else if(n||!t.type.isTextblock)break}for(let t=r.openStart;t>=0;t--){let s=(t+u+1)%(r.openStart+1),d=l[s];if(d)for(let t=0;t<o.length;t++){let l=o[(t+c)%o.length],u=!0;l<0&&(u=!1,l=-l);let f=i.node(l-1),p=i.index(l-1);if(f.canReplaceWith(p,p,d.type,d.marks))return e.replace(i.before(l),u?a.after(l):n,new y(sn(r.content,0,r.openStart,s),s,r.openEnd))}}let d=e.steps.length;for(let s=o.length-1;s>=0&&(e.replace(t,n,r),!(e.steps.length>d));s--){let e=o[s];e<0||(t=i.before(e),n=a.after(e))}}function sn(e,t,n,r,i){if(t<n){let i=e.firstChild;e=e.replaceChild(0,i.copy(sn(i.content,t+1,n,r,i)))}if(t>r){let t=i.contentMatchAt(0),n=t.fillBefore(e).append(e);e=n.append(t.matchFragment(n).fillBefore(p.empty,!0))}return e}function cn(e,t,n,r){if(!r.isInline&&t==n&&e.doc.resolve(t).parent.content.size){let i=qt(e.doc,t,r.type);i!=null&&(t=n=i)}e.replaceRange(t,n,new y(p.from(r),0,0))}function ln(e,t,n){let r=e.doc.resolve(t),i=e.doc.resolve(n);if(r.parent.isTextblock&&i.parent.isTextblock&&r.start()!=i.start()&&r.parentOffset==0&&i.parentOffset==0){let a=r.sharedDepth(n),o=!1;for(let e=r.depth;e>a;e--)r.node(e).type.spec.isolating&&(o=!0);for(let e=i.depth;e>a;e--)i.node(e).type.spec.isolating&&(o=!0);if(!o){for(let e=r.depth;e>0&&t==r.start(e);e--)t=r.before(e);for(let e=i.depth;e>0&&n==i.start(e);e--)n=i.before(e);r=e.doc.resolve(t),i=e.doc.resolve(n)}}let a=un(r,i);for(let t=0;t<a.length;t++){let n=a[t],o=t==a.length-1;if(o&&n==0||r.node(n).type.contentMatch.validEnd)return e.delete(r.start(n),i.end(n));if(n>0&&(o||r.node(n-1).canReplace(r.index(n-1),i.indexAfter(n-1))))return e.delete(r.before(n),i.after(n))}for(let a=1;a<=r.depth&&a<=i.depth;a++)if(t-r.start(a)==r.depth-a&&n>r.end(a)&&i.end(a)-n!=i.depth-a&&r.start(a-1)==i.start(a-1)&&r.node(a-1).canReplace(r.index(a-1),i.index(a-1)))return e.delete(r.before(a),n);e.delete(t,n)}function un(e,t){let n=[],r=Math.min(e.depth,t.depth);for(let i=r;i>=0;i--){let r=e.start(i);if(r<e.pos-(e.depth-i)||t.end(i)>t.pos+(t.depth-i)||e.node(i).type.spec.isolating||t.node(i).type.spec.isolating)break;(r==t.start(i)||i==e.depth&&i==t.depth&&e.parent.inlineContent&&t.parent.inlineContent&&i&&t.start(i-1)==r-1)&&n.push(i)}return n}var dn=class e extends mt{constructor(e,t,n){super(),this.pos=e,this.attr=t,this.value=n}apply(e){let t=e.nodeAt(this.pos);if(!t)return ht.fail(`No node at attribute step's position`);let n=Object.create(null);for(let e in t.attrs)n[e]=t.attrs[e];n[this.attr]=this.value;let r=t.type.create(n,null,t.marks);return ht.fromReplace(e,this.pos,this.pos+1,new y(p.from(r),0,+!t.isLeaf))}getMap(){return dt.empty}invert(t){return new e(this.pos,this.attr,t.nodeAt(this.pos).attrs[this.attr])}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.attr,this.value)}toJSON(){return{stepType:`attr`,pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(t,n){if(typeof n.pos!=`number`||typeof n.attr!=`string`)throw RangeError(`Invalid input for AttrStep.fromJSON`);return new e(n.pos,n.attr,n.value)}};mt.jsonID(`attr`,dn);var fn=class e extends mt{constructor(e,t){super(),this.attr=e,this.value=t}apply(e){let t=Object.create(null);for(let n in e.attrs)t[n]=e.attrs[n];t[this.attr]=this.value;let n=e.type.create(t,e.content,e.marks);return ht.ok(n)}getMap(){return dt.empty}invert(t){return new e(this.attr,t.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:`docAttr`,attr:this.attr,value:this.value}}static fromJSON(t,n){if(typeof n.attr!=`string`)throw RangeError(`Invalid input for DocAttrStep.fromJSON`);return new e(n.attr,n.value)}};mt.jsonID(`docAttr`,fn);var pn=class extends Error{};pn=function e(t){let n=Error.call(this,t);return n.__proto__=e.prototype,n},pn.prototype=Object.create(Error.prototype),pn.prototype.constructor=pn,pn.prototype.name=`TransformError`;var mn=class{constructor(e){this.doc=e,this.steps=[],this.docs=[],this.mapping=new ft}get before(){return this.docs.length?this.docs[0]:this.doc}step(e){let t=this.maybeStep(e);if(t.failed)throw new pn(t.failed);return this}maybeStep(e){let t=e.apply(this.doc);return t.failed||this.addStep(e,t.doc),t}get docChanged(){return this.steps.length>0}changedRange(){let e=1e9,t=-1e9;for(let n=0;n<this.mapping.maps.length;n++){let r=this.mapping.maps[n];n&&(e=r.map(e,1),t=r.map(t,-1)),r.forEach((n,r,i,a)=>{e=Math.min(e,i),t=Math.max(t,a)})}return e==1e9?null:{from:e,to:t}}addStep(e,t){this.docs.push(this.doc),this.steps.push(e),this.mapping.appendMap(e.getMap()),this.doc=t}replace(e,t=e,n=y.empty){let r=Yt(this.doc,e,t,n);return r&&this.step(r),this}replaceWith(e,t,n){return this.replace(e,t,new y(p.from(n),0,0))}delete(e,t){return this.replace(e,t,y.empty)}insert(e,t){return this.replaceWith(e,e,t)}replaceRange(e,t,n){return on(this,e,t,n),this}replaceRangeWith(e,t,n){return cn(this,e,t,n),this}deleteRange(e,t){return ln(this,e,t),this}lift(e,t){return kt(this,e,t),this}join(e,t=1){return Kt(this,e,t),this}wrap(e,t){return Pt(this,e,t),this}setBlockType(e,t=e,n,r=null){return Ft(this,e,t,n,r),this}setNodeMarkup(e,t,n=null,r){return zt(this,e,t,n,r),this}setNodeAttribute(e,t,n){return this.step(new dn(e,t,n)),this}setDocAttribute(e,t){return this.step(new fn(e,t)),this}addNodeMark(e,t){return this.step(new yt(e,t)),this}removeNodeMark(e,t){let n=this.doc.nodeAt(e);if(!n)throw RangeError(`No node at position `+e);if(t instanceof _)t.isInSet(n.marks)&&this.step(new bt(e,t));else{let r=n.marks,i,a=[];for(;i=t.isInSet(r);)a.push(new bt(e,i)),r=i.removeFromSet(r);for(let e=a.length-1;e>=0;e--)this.step(a[e])}return this}split(e,t=1,n){return Vt(this,e,t,n),this}addMark(e,t,n){return wt(this,e,t,n),this}removeMark(e,t,n){return Tt(this,e,t,n),this}clearIncompatible(e,t,n){return Et(this,e,t,n),this}},hn=Object.create(null),N=class{constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new gn(e.min(t),e.max(t))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let t=0;t<e.length;t++)if(e[t].$from.pos!=e[t].$to.pos)return!1;return!0}content(){return this.$from.doc.slice(this.from,this.to,!0)}replace(e,t=y.empty){let n=t.content.lastChild,r=null;for(let e=0;e<t.openEnd;e++)r=n,n=n.lastChild;let i=e.steps.length,a=this.ranges;for(let o=0;o<a.length;o++){let{$from:s,$to:c}=a[o],l=e.mapping.slice(i);e.replaceRange(l.map(s.pos),l.map(c.pos),o?y.empty:t),o==0&&wn(e,i,(n?n.isInline:r&&r.isTextblock)?-1:1)}}replaceWith(e,t){let n=e.steps.length,r=this.ranges;for(let i=0;i<r.length;i++){let{$from:a,$to:o}=r[i],s=e.mapping.slice(n),c=s.map(a.pos),l=s.map(o.pos);i?e.deleteRange(c,l):(e.replaceRangeWith(c,l,t),wn(e,n,t.isInline?-1:1))}}static findFrom(e,t,n=!1){let r=e.parent.inlineContent?new P(e):Cn(e.node(0),e.parent,e.pos,e.index(),t,n);if(r)return r;for(let r=e.depth-1;r>=0;r--){let i=t<0?Cn(e.node(0),e.node(r),e.before(r+1),e.index(r),t,n):Cn(e.node(0),e.node(r),e.after(r+1),e.index(r)+1,t,n);if(i)return i}return null}static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new xn(e.node(0))}static atStart(e){return Cn(e,e,0,0,1)||new xn(e)}static atEnd(e){return Cn(e,e,e.content.size,e.childCount,-1)||new xn(e)}static fromJSON(e,t){if(!t||!t.type)throw RangeError(`Invalid input for Selection.fromJSON`);let n=hn[t.type];if(!n)throw RangeError(`No selection type ${t.type} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in hn)throw RangeError(`Duplicate use of selection JSON ID `+e);return hn[e]=t,t.prototype.jsonID=e,t}getBookmark(){return P.between(this.$anchor,this.$head).getBookmark()}};N.prototype.visible=!0;var gn=class{constructor(e,t){this.$from=e,this.$to=t}},_n=!1;function vn(e){!_n&&!e.parent.inlineContent&&(_n=!0,console.warn(`TextSelection endpoint not pointing into a node with inline content (`+e.parent.type.name+`)`))}var P=class e extends N{constructor(e,t=e){vn(e),vn(t),super(e,t)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(t,n){let r=t.resolve(n.map(this.head));if(!r.parent.inlineContent)return N.near(r);let i=t.resolve(n.map(this.anchor));return new e(i.parent.inlineContent?i:r,r)}replace(e,t=y.empty){if(super.replace(e,t),t==y.empty){let t=this.$from.marksAcross(this.$to);t&&e.ensureMarks(t)}}eq(t){return t instanceof e&&t.anchor==this.anchor&&t.head==this.head}getBookmark(){return new yn(this.anchor,this.head)}toJSON(){return{type:`text`,anchor:this.anchor,head:this.head}}static fromJSON(t,n){if(typeof n.anchor!=`number`||typeof n.head!=`number`)throw RangeError(`Invalid input for TextSelection.fromJSON`);return new e(t.resolve(n.anchor),t.resolve(n.head))}static create(e,t,n=t){let r=e.resolve(t);return new this(r,n==t?r:e.resolve(n))}static between(t,n,r){let i=t.pos-n.pos;if((!r||i)&&(r=i>=0?1:-1),!n.parent.inlineContent){let e=N.findFrom(n,r,!0)||N.findFrom(n,-r,!0);if(e)n=e.$head;else return N.near(n,r)}return t.parent.inlineContent||(i==0?t=n:(t=(N.findFrom(t,-r,!0)||N.findFrom(t,r,!0)).$anchor,t.pos<n.pos!=i<0&&(t=n))),new e(t,n)}};N.jsonID(`text`,P);var yn=class e{constructor(e,t){this.anchor=e,this.head=t}map(t){return new e(t.map(this.anchor),t.map(this.head))}resolve(e){return P.between(e.resolve(this.anchor),e.resolve(this.head))}},F=class e extends N{constructor(e){let t=e.nodeAfter,n=e.node(0).resolve(e.pos+t.nodeSize);super(e,n),this.node=t}map(t,n){let{deleted:r,pos:i}=n.mapResult(this.anchor),a=t.resolve(i);return r?N.near(a):new e(a)}content(){return new y(p.from(this.node),0,0)}eq(t){return t instanceof e&&t.anchor==this.anchor}toJSON(){return{type:`node`,anchor:this.anchor}}getBookmark(){return new bn(this.anchor)}static fromJSON(t,n){if(typeof n.anchor!=`number`)throw RangeError(`Invalid input for NodeSelection.fromJSON`);return new e(t.resolve(n.anchor))}static create(t,n){return new e(t.resolve(n))}static isSelectable(e){return!e.isText&&e.type.spec.selectable!==!1}};F.prototype.visible=!1,N.jsonID(`node`,F);var bn=class e{constructor(e){this.anchor=e}map(t){let{deleted:n,pos:r}=t.mapResult(this.anchor);return n?new yn(r,r):new e(r)}resolve(e){let t=e.resolve(this.anchor),n=t.nodeAfter;return n&&F.isSelectable(n)?new F(t):N.near(t)}},xn=class e extends N{constructor(e){super(e.resolve(0),e.resolve(e.content.size))}replace(e,t=y.empty){if(t==y.empty){e.delete(0,e.doc.content.size);let t=N.atStart(e.doc);t.eq(e.selection)||e.setSelection(t)}else super.replace(e,t)}toJSON(){return{type:`all`}}static fromJSON(t){return new e(t)}map(t){return new e(t)}eq(t){return t instanceof e}getBookmark(){return Sn}};N.jsonID(`all`,xn);var Sn={map(){return this},resolve(e){return new xn(e)}};function Cn(e,t,n,r,i,a=!1){if(t.inlineContent)return P.create(e,n);for(let o=r-(i>0?0:1);i>0?o<t.childCount:o>=0;o+=i){let r=t.child(o);if(!r.isAtom){let t=Cn(e,r,n+i,i<0?r.childCount:0,i,a);if(t)return t}else if(!a&&F.isSelectable(r))return F.create(e,n-(i<0?r.nodeSize:0));n+=r.nodeSize*i}return null}function wn(e,t,n){let r=e.steps.length-1;if(r<t)return;let i=e.steps[r];if(!(i instanceof xt||i instanceof St))return;let a=e.mapping.maps[r],o;a.forEach((e,t,n,r)=>{o??=r}),e.setSelection(N.near(e.doc.resolve(o),n))}var Tn=1,En=2,Dn=4,On=class extends mn{constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=e.selection,this.storedMarks=e.storedMarks}get selection(){return this.curSelectionFor<this.steps.length&&(this.curSelection=this.curSelection.map(this.doc,this.mapping.slice(this.curSelectionFor)),this.curSelectionFor=this.steps.length),this.curSelection}setSelection(e){if(e.$from.doc!=this.doc)throw RangeError(`Selection passed to setSelection must point at the current document`);return this.curSelection=e,this.curSelectionFor=this.steps.length,this.updated=(this.updated|Tn)&-3,this.storedMarks=null,this}get selectionSet(){return(this.updated&Tn)>0}setStoredMarks(e){return this.storedMarks=e,this.updated|=En,this}ensureMarks(e){return _.sameSet(this.storedMarks||this.selection.$from.marks(),e)||this.setStoredMarks(e),this}addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(this.updated&En)>0}addStep(e,t){super.addStep(e,t),this.updated&=-3,this.storedMarks=null}setTime(e){return this.time=e,this}replaceSelection(e){return this.selection.replace(this,e),this}replaceSelectionWith(e,t=!0){let n=this.selection;return t&&(e=e.mark(this.storedMarks||(n.empty?n.$from.marks():n.$from.marksAcross(n.$to)||_.none))),n.replaceWith(this,e),this}deleteSelection(){return this.selection.replace(this),this}insertText(e,t,n){let r=this.doc.type.schema;if(t==null)return e?this.replaceSelectionWith(r.text(e),!0):this.deleteSelection();{if(n??=t,!e)return this.deleteRange(t,n);let i=this.storedMarks;if(!i){let e=this.doc.resolve(t);i=n==t?e.marks():e.marksAcross(this.doc.resolve(n))}return this.replaceRangeWith(t,n,r.text(e,i)),!this.selection.empty&&this.selection.to==t+e.length&&this.setSelection(N.near(this.selection.$to)),this}}setMeta(e,t){return this.meta[typeof e==`string`?e:e.key]=t,this}getMeta(e){return this.meta[typeof e==`string`?e:e.key]}get isGeneric(){for(let e in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=Dn,this}get scrolledIntoView(){return(this.updated&Dn)>0}};function kn(e,t){return!t||!e?e:e.bind(t)}var An=class{constructor(e,t,n){this.name=e,this.init=kn(t.init,n),this.apply=kn(t.apply,n)}},jn=[new An(`doc`,{init(e){return e.doc||e.schema.topNodeType.createAndFill()},apply(e){return e.doc}}),new An(`selection`,{init(e,t){return e.selection||N.atStart(t.doc)},apply(e){return e.selection}}),new An(`storedMarks`,{init(e){return e.storedMarks||null},apply(e,t,n,r){return r.selection.$cursor?e.storedMarks:null}}),new An(`scrollToSelection`,{init(){return 0},apply(e,t){return e.scrolledIntoView?t+1:t}})],Mn=class{constructor(e,t){this.schema=e,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=jn.slice(),t&&t.forEach(e=>{if(this.pluginsByKey[e.key])throw RangeError(`Adding different instances of a keyed plugin (`+e.key+`)`);this.plugins.push(e),this.pluginsByKey[e.key]=e,e.spec.state&&this.fields.push(new An(e.key,e.spec.state,e))})}},Nn=class e{constructor(e){this.config=e}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(e){return this.applyTransaction(e).state}filterTransaction(e,t=-1){for(let n=0;n<this.config.plugins.length;n++)if(n!=t){let t=this.config.plugins[n];if(t.spec.filterTransaction&&!t.spec.filterTransaction.call(t,e,this))return!1}return!0}applyTransaction(e){if(!this.filterTransaction(e))return{state:this,transactions:[]};let t=[e],n=this.applyInner(e),r=null;for(;;){let i=!1;for(let a=0;a<this.config.plugins.length;a++){let o=this.config.plugins[a];if(o.spec.appendTransaction){let s=r?r[a].n:0,c=r?r[a].state:this,l=s<t.length&&o.spec.appendTransaction.call(o,s?t.slice(s):t,c,n);if(l&&n.filterTransaction(l,a)){if(l.setMeta(`appendedTransaction`,e),!r){r=[];for(let e=0;e<this.config.plugins.length;e++)r.push(e<a?{state:n,n:t.length}:{state:this,n:0})}t.push(l),n=n.applyInner(l),i=!0}r&&(r[a]={state:n,n:t.length})}}if(!i)return{state:n,transactions:t}}}applyInner(t){if(!t.before.eq(this.doc))throw RangeError(`Applying a mismatched transaction`);let n=new e(this.config),r=this.config.fields;for(let e=0;e<r.length;e++){let i=r[e];n[i.name]=i.apply(t,this[i.name],this,n)}return n}get tr(){return new On(this)}static create(t){let n=new Mn(t.doc?t.doc.type.schema:t.schema,t.plugins),r=new e(n);for(let e=0;e<n.fields.length;e++)r[n.fields[e].name]=n.fields[e].init(t,r);return r}reconfigure(t){let n=new Mn(this.schema,t.plugins),r=n.fields,i=new e(n);for(let e=0;e<r.length;e++){let n=r[e].name;i[n]=this.hasOwnProperty(n)?this[n]:r[e].init(t,i)}return i}toJSON(e){let t={doc:this.doc.toJSON(),selection:this.selection.toJSON()};if(this.storedMarks&&(t.storedMarks=this.storedMarks.map(e=>e.toJSON())),e&&typeof e==`object`)for(let n in e){if(n==`doc`||n==`selection`)throw RangeError("The JSON fields `doc` and `selection` are reserved");let r=e[n],i=r.spec.state;i&&i.toJSON&&(t[n]=i.toJSON.call(r,this[r.key]))}return t}static fromJSON(t,n,r){if(!n)throw RangeError(`Invalid input for EditorState.fromJSON`);if(!t.schema)throw RangeError(`Required config field 'schema' missing`);let i=new Mn(t.schema,t.plugins),a=new e(i);return i.fields.forEach(e=>{if(e.name==`doc`)a.doc=ae.fromJSON(t.schema,n.doc);else if(e.name==`selection`)a.selection=N.fromJSON(a.doc,n.selection);else if(e.name==`storedMarks`)n.storedMarks&&(a.storedMarks=n.storedMarks.map(t.schema.markFromJSON));else{if(r)for(let i in r){let o=r[i],s=o.spec.state;if(o.key==e.name&&s&&s.fromJSON&&Object.prototype.hasOwnProperty.call(n,i)){a[e.name]=s.fromJSON.call(o,t,n[i],a);return}}a[e.name]=e.init(t,a)}}),a}};function Pn(e,t,n){for(let r in e){let i=e[r];i instanceof Function?i=i.bind(t):r==`handleDOMEvents`&&(i=Pn(i,t,{})),n[r]=i}return n}var I=class{constructor(e){this.spec=e,this.props={},e.props&&Pn(e.props,this,this.props),this.key=e.key?e.key.key:In(`plugin`)}getState(e){return e[this.key]}},Fn=Object.create(null);function In(e){return e in Fn?e+`$`+ ++Fn[e]:(Fn[e]=0,e+`$`)}var L=class{constructor(e=`key`){this.key=In(e)}get(e){return e.config.pluginsByKey[this.key]}getState(e){return e[this.key]}},Ln=(e,t)=>e.selection.empty?!1:(t&&t(e.tr.deleteSelection().scrollIntoView()),!0);function Rn(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextblock(`backward`,e):n.parentOffset>0)?null:n}var zn=(e,t,n)=>{let r=Rn(e,n);if(!r)return!1;let i=Gn(r);if(!i){let n=r.blockRange(),i=n&&Ot(n);return i==null?!1:(t&&t(e.tr.lift(n,i).scrollIntoView()),!0)}let a=i.nodeBefore;if(lr(e,i,t,-1))return!0;if(r.parent.content.size==0&&(Un(a,`end`)||F.isSelectable(a)))for(let n=r.depth;;n--){let o=Yt(e.doc,r.before(n),r.after(n),y.empty);if(o&&o.slice.size<o.to-o.from){if(t){let n=e.tr.step(o);n.setSelection(Un(a,`end`)?N.findFrom(n.doc.resolve(n.mapping.map(i.pos,-1)),-1):F.create(n.doc,i.pos-a.nodeSize)),t(n.scrollIntoView())}return!0}if(n==1||r.node(n-1).childCount>1)break}return a.isAtom&&i.depth==r.depth-1?(t&&t(e.tr.delete(i.pos-a.nodeSize,i.pos).scrollIntoView()),!0):!1},Bn=(e,t,n)=>{let r=Rn(e,n);if(!r)return!1;let i=Gn(r);return i?Hn(e,i,t):!1},Vn=(e,t,n)=>{let r=Kn(e,n);if(!r)return!1;let i=Yn(r);return i?Hn(e,i,t):!1};function Hn(e,t,n){let r=t.nodeBefore,i=t.pos-1;for(;!r.isTextblock;i--){if(r.type.spec.isolating)return!1;let e=r.lastChild;if(!e)return!1;r=e}let a=t.nodeAfter,o=t.pos+1;for(;!a.isTextblock;o++){if(a.type.spec.isolating)return!1;let e=a.firstChild;if(!e)return!1;a=e}let s=Yt(e.doc,i,o,y.empty);if(!s||s.from!=i||s instanceof xt&&s.slice.size>=o-i)return!1;if(n){let t=e.tr.step(s);t.setSelection(P.create(t.doc,i)),n(t.scrollIntoView())}return!0}function Un(e,t,n=!1){for(let r=e;r;r=t==`start`?r.firstChild:r.lastChild){if(r.isTextblock)return!0;if(n&&r.childCount!=1)return!1}return!1}var Wn=(e,t,n)=>{let{$head:r,empty:i}=e.selection,a=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock(`backward`,e):r.parentOffset>0)return!1;a=Gn(r)}let o=a&&a.nodeBefore;return!o||!F.isSelectable(o)?!1:(t&&t(e.tr.setSelection(F.create(e.doc,a.pos-o.nodeSize)).scrollIntoView()),!0)};function Gn(e){if(!e.parent.type.spec.isolating)for(let t=e.depth-1;t>=0;t--){if(e.index(t)>0)return e.doc.resolve(e.before(t+1));if(e.node(t).type.spec.isolating)break}return null}function Kn(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextblock(`forward`,e):n.parentOffset<n.parent.content.size)?null:n}var qn=(e,t,n)=>{let r=Kn(e,n);if(!r)return!1;let i=Yn(r);if(!i)return!1;let a=i.nodeAfter;if(lr(e,i,t,1))return!0;if(r.parent.content.size==0&&(Un(a,`start`)||F.isSelectable(a))){let n=Yt(e.doc,r.before(),r.after(),y.empty);if(n&&n.slice.size<n.to-n.from){if(t){let r=e.tr.step(n);r.setSelection(Un(a,`start`)?N.findFrom(r.doc.resolve(r.mapping.map(i.pos)),1):F.create(r.doc,r.mapping.map(i.pos))),t(r.scrollIntoView())}return!0}}return a.isAtom&&i.depth==r.depth-1?(t&&t(e.tr.delete(i.pos,i.pos+a.nodeSize).scrollIntoView()),!0):!1},Jn=(e,t,n)=>{let{$head:r,empty:i}=e.selection,a=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock(`forward`,e):r.parentOffset<r.parent.content.size)return!1;a=Yn(r)}let o=a&&a.nodeAfter;return!o||!F.isSelectable(o)?!1:(t&&t(e.tr.setSelection(F.create(e.doc,a.pos)).scrollIntoView()),!0)};function Yn(e){if(!e.parent.type.spec.isolating)for(let t=e.depth-1;t>=0;t--){let n=e.node(t);if(e.index(t)+1<n.childCount)return e.doc.resolve(e.after(t+1));if(n.type.spec.isolating)break}return null}var Xn=(e,t)=>{let n=e.selection,r=n instanceof F,i;if(r){if(n.node.isTextblock||!Ht(e.doc,n.from))return!1;i=n.from}else if(i=Gt(e.doc,n.from,-1),i==null)return!1;if(t){let n=e.tr.join(i);r&&n.setSelection(F.create(n.doc,i-e.doc.resolve(i).nodeBefore.nodeSize)),t(n.scrollIntoView())}return!0},Zn=(e,t)=>{let n=e.selection,r;if(n instanceof F){if(n.node.isTextblock||!Ht(e.doc,n.to))return!1;r=n.to}else if(r=Gt(e.doc,n.to,1),r==null)return!1;return t&&t(e.tr.join(r).scrollIntoView()),!0},Qn=(e,t)=>{let{$from:n,$to:r}=e.selection,i=n.blockRange(r),a=i&&Ot(i);return a==null?!1:(t&&t(e.tr.lift(i,a).scrollIntoView()),!0)},$n=(e,t)=>{let{$head:n,$anchor:r}=e.selection;return!n.parent.type.spec.code||!n.sameParent(r)?!1:(t&&t(e.tr.insertText(`
|
|
6
|
+
`).scrollIntoView()),!0)};function er(e){for(let t=0;t<e.edgeCount;t++){let{type:n}=e.edge(t);if(n.isTextblock&&!n.hasRequiredAttrs())return n}return null}var tr=(e,t)=>{let{$head:n,$anchor:r}=e.selection;if(!n.parent.type.spec.code||!n.sameParent(r))return!1;let i=n.node(-1),a=n.indexAfter(-1),o=er(i.contentMatchAt(a));if(!o||!i.canReplaceWith(a,a,o))return!1;if(t){let r=n.after(),i=e.tr.replaceWith(r,r,o.createAndFill());i.setSelection(N.near(i.doc.resolve(r),1)),t(i.scrollIntoView())}return!0},nr=(e,t)=>{let n=e.selection,{$from:r,$to:i}=n;if(n instanceof xn||r.parent.inlineContent||i.parent.inlineContent)return!1;let a=er(i.parent.contentMatchAt(i.indexAfter()));if(!a||!a.isTextblock)return!1;if(t){let n=(!r.parentOffset&&i.index()<i.parent.childCount?r:i).pos,o=e.tr.insert(n,a.createAndFill());o.setSelection(P.create(o.doc,n+1)),t(o.scrollIntoView())}return!0},rr=(e,t)=>{let{$cursor:n}=e.selection;if(!n||n.parent.content.size)return!1;if(n.depth>1&&n.after()!=n.end(-1)){let r=n.before();if(Bt(e.doc,r))return t&&t(e.tr.split(r).scrollIntoView()),!0}let r=n.blockRange(),i=r&&Ot(r);return i==null?!1:(t&&t(e.tr.lift(r,i).scrollIntoView()),!0)};function ir(e){return(t,n)=>{let{$from:r,$to:i}=t.selection;if(t.selection instanceof F&&t.selection.node.isBlock)return!r.parentOffset||!Bt(t.doc,r.pos)?!1:(n&&n(t.tr.split(r.pos).scrollIntoView()),!0);if(!r.depth)return!1;let a=[],o,s,c=!1,l=!1;for(let t=r.depth;;t--)if(r.node(t).isBlock){c=r.end(t)==r.pos+(r.depth-t),l=r.start(t)==r.pos-(r.depth-t),s=er(r.node(t-1).contentMatchAt(r.indexAfter(t-1)));let n=e&&e(i.parent,c,r);a.unshift(n||(c&&s?{type:s}:null)),o=t;break}else{if(t==1)return!1;a.unshift(null)}let u=t.tr;(t.selection instanceof P||t.selection instanceof xn)&&u.deleteSelection();let d=u.mapping.map(r.pos),f=Bt(u.doc,d,a.length,a);if(f||=(a[0]=s?{type:s}:null,Bt(u.doc,d,a.length,a)),!f)return!1;if(u.split(d,a.length,a),!c&&l&&r.node(o).type!=s){let e=u.mapping.map(r.before(o)),t=u.doc.resolve(e);s&&r.node(o-1).canReplaceWith(t.index(),t.index()+1,s)&&u.setNodeMarkup(u.mapping.map(r.before(o)),s)}return n&&n(u.scrollIntoView()),!0}}var ar=ir(),or=(e,t)=>{let{$from:n,to:r}=e.selection,i,a=n.sharedDepth(r);return a==0?!1:(i=n.before(a),t&&t(e.tr.setSelection(F.create(e.doc,i))),!0)},sr=(e,t)=>(t&&t(e.tr.setSelection(new xn(e.doc))),!0);function cr(e,t,n){let r=t.nodeBefore,i=t.nodeAfter,a=t.index();return!r||!i||!r.type.compatibleContent(i.type)?!1:!r.content.size&&t.parent.canReplace(a-1,a)?(n&&n(e.tr.delete(t.pos-r.nodeSize,t.pos).scrollIntoView()),!0):!t.parent.canReplace(a,a+1)||!(i.isTextblock||Ht(e.doc,t.pos))?!1:(n&&n(e.tr.join(t.pos).scrollIntoView()),!0)}function lr(e,t,n,r){let i=t.nodeBefore,a=t.nodeAfter,o,s,c=i.type.spec.isolating||a.type.spec.isolating;if(!c&&cr(e,t,n))return!0;let l=!c&&t.parent.canReplace(t.index(),t.index()+1);if(l&&(o=(s=i.contentMatchAt(i.childCount)).findWrapping(a.type))&&s.matchType(o[0]||a.type).validEnd){if(n){let r=t.pos+a.nodeSize,s=p.empty;for(let e=o.length-1;e>=0;e--)s=p.from(o[e].create(null,s));s=p.from(i.copy(s));let c=e.tr.step(new St(t.pos-1,r,t.pos,r,new y(s,1,0),o.length,!0)),l=c.doc.resolve(r+2*o.length);l.nodeAfter&&l.nodeAfter.type==i.type&&Ht(c.doc,l.pos)&&c.join(l.pos),n(c.scrollIntoView())}return!0}let u=a.type.spec.isolating||r>0&&c?null:N.findFrom(t,1),d=u&&u.$from.blockRange(u.$to),f=d&&Ot(d);if(f!=null&&f>=t.depth)return n&&n(e.tr.lift(d,f).scrollIntoView()),!0;if(l&&Un(a,`start`,!0)&&Un(i,`end`)){let r=i,o=[];for(;o.push(r),!r.isTextblock;)r=r.lastChild;let s=a,c=1;for(;!s.isTextblock;s=s.firstChild)c++;if(r.canReplace(r.childCount,r.childCount,s.content)){if(n){let r=p.empty;for(let e=o.length-1;e>=0;e--)r=p.from(o[e].copy(r));n(e.tr.step(new St(t.pos-o.length,t.pos+a.nodeSize,t.pos+c,t.pos+a.nodeSize-c,new y(r,o.length,0),0,!0)).scrollIntoView())}return!0}}return!1}function ur(e){return function(t,n){let r=t.selection,i=e<0?r.$from:r.$to,a=i.depth;for(;i.node(a).isInline;){if(!a)return!1;a--}return i.node(a).isTextblock?(n&&n(t.tr.setSelection(P.create(t.doc,e<0?i.start(a):i.end(a)))),!0):!1}}var dr=ur(-1),fr=ur(1);function pr(e,t=null){return function(n,r){let{$from:i,$to:a}=n.selection,o=i.blockRange(a),s=o&&At(o,e,t);return s?(r&&r(n.tr.wrap(o,s).scrollIntoView()),!0):!1}}function mr(e,t=null){return function(n,r){let i=!1;for(let r=0;r<n.selection.ranges.length&&!i;r++){let{$from:{pos:a},$to:{pos:o}}=n.selection.ranges[r];n.doc.nodesBetween(a,o,(r,a)=>{if(i)return!1;if(!(!r.isTextblock||r.hasMarkup(e,t)))if(r.type==e)i=!0;else{let t=n.doc.resolve(a),r=t.index();i=t.parent.canReplaceWith(r,r+1,e)}})}if(!i)return!1;if(r){let i=n.tr;for(let r=0;r<n.selection.ranges.length;r++){let{$from:{pos:a},$to:{pos:o}}=n.selection.ranges[r];i.setBlockType(a,o,e,t)}r(i.scrollIntoView())}return!0}}function hr(...e){return function(t,n,r){for(let i=0;i<e.length;i++)if(e[i](t,n,r))return!0;return!1}}var gr=hr(Ln,zn,Wn),_r=hr(Ln,qn,Jn),vr={Enter:hr($n,nr,rr,ar),"Mod-Enter":tr,Backspace:gr,"Mod-Backspace":gr,"Shift-Backspace":gr,Delete:_r,"Mod-Delete":_r,"Mod-a":sr},yr={"Ctrl-h":vr.Backspace,"Alt-Backspace":vr[`Mod-Backspace`],"Ctrl-d":vr.Delete,"Ctrl-Alt-Backspace":vr[`Mod-Delete`],"Alt-Delete":vr[`Mod-Delete`],"Alt-d":vr[`Mod-Delete`],"Ctrl-a":dr,"Ctrl-e":fr};for(let e in vr)yr[e]=vr[e];typeof navigator<`u`?/Mac|iP(hone|[oa]d)/.test(navigator.platform):typeof os<`u`&&os.platform&&os.platform();function br(e,t=null){return function(n,r){let{$from:i,$to:a}=n.selection,o=i.blockRange(a);if(!o)return!1;let s=r?n.tr:null;return xr(s,o,e,t)?(r&&r(s.scrollIntoView()),!0):!1}}function xr(e,t,n,r=null){let i=!1,a=t,o=t.$from.doc;if(t.depth>=2&&t.$from.node(t.depth-1).type.compatibleContent(n)&&t.startIndex==0){if(t.$from.index(t.depth-1)==0)return!1;let e=o.resolve(t.start-2);a=new re(e,e,t.depth),t.endIndex<t.parent.childCount&&(t=new re(t.$from,o.resolve(t.$to.end(t.depth)),t.depth)),i=!0}let s=At(a,n,r,t);return s?(e&&Sr(e,t,s,i,n),!0):!1}function Sr(e,t,n,r,i){let a=p.empty;for(let e=n.length-1;e>=0;e--)a=p.from(n[e].type.create(n[e].attrs,a));e.step(new St(t.start-(r?2:0),t.end,t.start,t.end,new y(a,0,0),n.length,!0));let o=0;for(let e=0;e<n.length;e++)n[e].type==i&&(o=e+1);let s=n.length-o,c=t.start+n.length-(r?2:0),l=t.parent;for(let n=t.startIndex,r=t.endIndex,i=!0;n<r;n++,i=!1)!i&&Bt(e.doc,c,s)&&(e.split(c,s),c+=2*s),c+=l.child(n).nodeSize;return e}function Cr(e){return function(t,n){let{$from:r,$to:i}=t.selection,a=r.blockRange(i,t=>t.childCount>0&&t.firstChild.type==e);return a?n?r.node(a.depth-1).type==e?wr(t,n,e,a):Tr(t,n,a):!0:!1}}function wr(e,t,n,r){let i=e.tr,a=r.end,o=r.$to.end(r.depth);a<o&&(i.step(new St(a-1,o,a,o,new y(p.from(n.create(null,r.parent.copy())),1,0),1,!0)),r=new re(i.doc.resolve(r.$from.pos),i.doc.resolve(o),r.depth));let s=Ot(r);if(s==null)return!1;i.lift(r,s);let c=i.doc.resolve(i.mapping.map(a,-1)-1);return Ht(i.doc,c.pos)&&c.nodeBefore.type==c.nodeAfter.type&&i.join(c.pos),t(i.scrollIntoView()),!0}function Tr(e,t,n){let r=e.tr,i=n.parent;for(let e=n.end,t=n.endIndex-1,a=n.startIndex;t>a;t--)e-=i.child(t).nodeSize,r.delete(e-1,e+1);let a=r.doc.resolve(n.start),o=a.nodeAfter;if(r.mapping.map(n.end)!=n.start+a.nodeAfter.nodeSize)return!1;let s=n.startIndex==0,c=n.endIndex==i.childCount,l=a.node(-1),u=a.index(-1);if(!l.canReplace(u+ +!s,u+1,o.content.append(c?p.empty:p.from(i))))return!1;let d=a.pos,f=d+o.nodeSize;return r.step(new St(d-+!!s,f+ +!!c,d+1,f-1,new y((s?p.empty:p.from(i.copy(p.empty))).append(c?p.empty:p.from(i.copy(p.empty))),+!s,+!c),+!s)),t(r.scrollIntoView()),!0}function Er(e){return function(t,n){let{$from:r,$to:i}=t.selection,a=r.blockRange(i,t=>t.childCount>0&&t.firstChild.type==e);if(!a)return!1;let o=a.startIndex;if(o==0)return!1;let s=a.parent,c=s.child(o-1);if(c.type!=e)return!1;if(n){let r=c.lastChild&&c.lastChild.type==s.type,i=p.from(r?e.create():null),o=new y(p.from(e.create(null,p.from(s.type.create(null,i)))),r?3:1,0),l=a.start,u=a.end;n(t.tr.step(new St(l-(r?3:1),u,l,u,o,1,!0)).scrollIntoView())}return!0}}var Dr=function(e){for(var t=0;;t++)if(e=e.previousSibling,!e)return t},Or=function(e){let t=e.assignedSlot||e.parentNode;return t&&t.nodeType==11?t.host:t},kr=null,Ar=function(e,t,n){let r=kr||=document.createRange();return r.setEnd(e,n??e.nodeValue.length),r.setStart(e,t||0),r},jr=function(){kr=null},Mr=function(e,t,n,r){return n&&(Pr(e,t,n,r,-1)||Pr(e,t,n,r,1))},Nr=/^(img|br|input|textarea|hr)$/i;function Pr(e,t,n,r,i){for(;;){if(e==n&&t==r)return!0;if(t==(i<0?0:Fr(e))){let n=e.parentNode;if(!n||n.nodeType!=1||zr(e)||Nr.test(e.nodeName)||e.contentEditable==`false`)return!1;t=Dr(e)+(i<0?0:1),e=n}else if(e.nodeType==1){let n=e.childNodes[t+(i<0?-1:0)];if(n.nodeType==1&&n.contentEditable==`false`)if(n.pmViewDesc?.ignoreForSelection)t+=i;else return!1;else e=n,t=i<0?Fr(e):0}else return!1}}function Fr(e){return e.nodeType==3?e.nodeValue.length:e.childNodes.length}function Ir(e,t){for(;;){if(e.nodeType==3&&t)return e;if(e.nodeType==1&&t>0){if(e.contentEditable==`false`)return null;e=e.childNodes[t-1],t=Fr(e)}else if(e.parentNode&&!zr(e))t=Dr(e),e=e.parentNode;else return null}}function Lr(e,t){for(;;){if(e.nodeType==3&&t<e.nodeValue.length)return e;if(e.nodeType==1&&t<e.childNodes.length){if(e.contentEditable==`false`)return null;e=e.childNodes[t],t=0}else if(e.parentNode&&!zr(e))t=Dr(e)+1,e=e.parentNode;else return null}}function Rr(e,t,n){for(let r=t==0,i=t==Fr(e);r||i;){if(e==n)return!0;let t=Dr(e);if(e=e.parentNode,!e)return!1;r&&=t==0,i&&=t==Fr(e)}}function zr(e){let t;for(let n=e;n&&!(t=n.pmViewDesc);n=n.parentNode);return t&&t.node&&t.node.isBlock&&(t.dom==e||t.contentDOM==e)}var Br=function(e){return e.focusNode&&Mr(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)};function Vr(e,t){let n=document.createEvent(`Event`);return n.initEvent(`keydown`,!0,!0),n.keyCode=e,n.key=n.code=t,n}function Hr(e){let t=e.activeElement;for(;t&&t.shadowRoot;)t=t.shadowRoot.activeElement;return t}function Ur(e,t,n){if(e.caretPositionFromPoint)try{let r=e.caretPositionFromPoint(t,n);if(r)return{node:r.offsetNode,offset:Math.min(Fr(r.offsetNode),r.offset)}}catch{}if(e.caretRangeFromPoint){let r=e.caretRangeFromPoint(t,n);if(r)return{node:r.startContainer,offset:Math.min(Fr(r.startContainer),r.startOffset)}}}var Wr=typeof navigator<`u`?navigator:null,Gr=typeof document<`u`?document:null,Kr=Wr&&Wr.userAgent||``,qr=/Edge\/(\d+)/.exec(Kr),Jr=/MSIE \d/.exec(Kr),Yr=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Kr),Xr=!!(Jr||Yr||qr),Zr=Jr?document.documentMode:Yr?+Yr[1]:qr?+qr[1]:0,Qr=!Xr&&/gecko\/(\d+)/i.test(Kr);Qr&&+(/Firefox\/(\d+)/.exec(Kr)||[0,0])[1];var $r=!Xr&&/Chrome\/(\d+)/.exec(Kr),ei=!!$r,ti=$r?+$r[1]:0,ni=!Xr&&!!Wr&&/Apple Computer/.test(Wr.vendor),ri=ni&&(/Mobile\/\w+/.test(Kr)||!!Wr&&Wr.maxTouchPoints>2),ii=ri||(Wr?/Mac/.test(Wr.platform):!1),ai=Wr?/Win/.test(Wr.platform):!1,oi=/Android \d/.test(Kr),si=!!Gr&&`webkitFontSmoothing`in Gr.documentElement.style,ci=si?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function li(e){let t=e.defaultView&&e.defaultView.visualViewport;return t?{left:0,right:t.width,top:0,bottom:t.height}:{left:0,right:e.documentElement.clientWidth,top:0,bottom:e.documentElement.clientHeight}}function ui(e,t){return typeof e==`number`?e:e[t]}function di(e){let t=e.getBoundingClientRect(),n=t.width/e.offsetWidth||1,r=t.height/e.offsetHeight||1;return{left:t.left,right:t.left+e.clientWidth*n,top:t.top,bottom:t.top+e.clientHeight*r}}function fi(e,t,n){let r=e.someProp(`scrollThreshold`)||0,i=e.someProp(`scrollMargin`)||5,a=e.dom.ownerDocument;for(let o=n||e.dom;o;){if(o.nodeType!=1){o=Or(o);continue}let e=o,n=e==a.body,s=n?li(a):di(e),c=0,l=0;if(t.top<s.top+ui(r,`top`)?l=-(s.top-t.top+ui(i,`top`)):t.bottom>s.bottom-ui(r,`bottom`)&&(l=t.bottom-t.top>s.bottom-s.top?t.top+ui(i,`top`)-s.top:t.bottom-s.bottom+ui(i,`bottom`)),t.left<s.left+ui(r,`left`)?c=-(s.left-t.left+ui(i,`left`)):t.right>s.right-ui(r,`right`)&&(c=t.right-s.right+ui(i,`right`)),c||l)if(n)a.defaultView.scrollBy(c,l);else{let n=e.scrollLeft,r=e.scrollTop;l&&(e.scrollTop+=l),c&&(e.scrollLeft+=c);let i=e.scrollLeft-n,a=e.scrollTop-r;t={left:t.left-i,top:t.top-a,right:t.right-i,bottom:t.bottom-a}}let u=n?`fixed`:getComputedStyle(o).position;if(/^(fixed|sticky)$/.test(u))break;o=u==`absolute`?o.offsetParent:Or(o)}}function pi(e){let t=e.dom.getBoundingClientRect(),n=Math.max(0,t.top),r,i;for(let a=(t.left+t.right)/2,o=n+1;o<Math.min(innerHeight,t.bottom);o+=5){let t=e.root.elementFromPoint(a,o);if(!t||t==e.dom||!e.dom.contains(t))continue;let s=t.getBoundingClientRect();if(s.top>=n-20){r=t,i=s.top;break}}return{refDOM:r,refTop:i,stack:mi(e.dom)}}function mi(e){let t=[],n=e.ownerDocument;for(let r=e;r&&(t.push({dom:r,top:r.scrollTop,left:r.scrollLeft}),e!=n);r=Or(r));return t}function hi({refDOM:e,refTop:t,stack:n}){let r=e?e.getBoundingClientRect().top:0;gi(n,r==0?0:r-t)}function gi(e,t){for(let n=0;n<e.length;n++){let{dom:r,top:i,left:a}=e[n];r.scrollTop!=i+t&&(r.scrollTop=i+t),r.scrollLeft!=a&&(r.scrollLeft=a)}}var _i=null;function vi(e){if(e.setActive)return e.setActive();if(_i)return e.focus(_i);let t=mi(e);e.focus(_i==null?{get preventScroll(){return _i={preventScroll:!0},!0}}:void 0),_i||(_i=!1,gi(t,0))}function yi(e,t){let n,r=2e8,i,a=0,o=t.top,s=t.top,c,l;for(let u=e.firstChild,d=0;u;u=u.nextSibling,d++){let e;if(u.nodeType==1)e=u.getClientRects();else if(u.nodeType==3)e=Ar(u).getClientRects();else continue;for(let f=0;f<e.length;f++){let p=e[f];if(p.top<=o&&p.bottom>=s){o=Math.max(p.bottom,o),s=Math.min(p.top,s);let e=p.left>t.left?p.left-t.left:p.right<t.left?t.left-p.right:0;if(e<r){n=u,r=e,i=e&&n.nodeType==3?{left:p.right<t.left?p.right:p.left,top:t.top}:t,u.nodeType==1&&e&&(a=d+ +(t.left>=(p.left+p.right)/2));continue}}else p.top>t.top&&!c&&p.left<=t.left&&p.right>=t.left&&(c=u,l={left:Math.max(p.left,Math.min(p.right,t.left)),top:p.top});!n&&(t.left>=p.right&&t.top>=p.top||t.left>=p.left&&t.top>=p.bottom)&&(a=d+1)}}return!n&&c&&(n=c,i=l,r=0),n&&n.nodeType==3?bi(n,i):!n||r&&n.nodeType==1?{node:e,offset:a}:yi(n,i)}function bi(e,t){let n=e.nodeValue.length,r=document.createRange(),i;for(let a=0;a<n;a++){r.setEnd(e,a+1),r.setStart(e,a);let n=Oi(r,1);if(n.top!=n.bottom&&xi(t,n)){i={node:e,offset:a+ +(t.left>=(n.left+n.right)/2)};break}}return r.detach(),i||{node:e,offset:0}}function xi(e,t){return e.left>=t.left-1&&e.left<=t.right+1&&e.top>=t.top-1&&e.top<=t.bottom+1}function Si(e,t){let n=e.parentNode;return n&&/^li$/i.test(n.nodeName)&&t.left<e.getBoundingClientRect().left?n:e}function Ci(e,t,n){let{node:r,offset:i}=yi(t,n),a=-1;if(r.nodeType==1&&!r.firstChild){let e=r.getBoundingClientRect();a=e.left!=e.right&&n.left>(e.left+e.right)/2?1:-1}return e.docView.posFromDOM(r,i,a)}function wi(e,t,n,r){let i=-1;for(let n=t,a=!1;n!=e.dom;){let t=e.docView.nearestDesc(n,!0),o;if(!t)return null;if(t.dom.nodeType==1&&(t.node.isBlock&&t.parent||!t.contentDOM)&&((o=t.dom.getBoundingClientRect()).width||o.height)&&(t.node.isBlock&&t.parent&&!/^T(R|BODY|HEAD|FOOT)$/.test(t.dom.nodeName)&&(!a&&o.left>r.left||o.top>r.top?i=t.posBefore:(!a&&o.right<r.left||o.bottom<r.top)&&(i=t.posAfter),a=!0),!t.contentDOM&&i<0&&!t.node.isText))return(t.node.isBlock?r.top<(o.top+o.bottom)/2:r.left<(o.left+o.right)/2)?t.posBefore:t.posAfter;n=t.dom.parentNode}return i>-1?i:e.docView.posFromDOM(t,n,-1)}function Ti(e,t,n){let r=e.childNodes.length;if(r&&n.top<n.bottom)for(let i=Math.max(0,Math.min(r-1,Math.floor(r*(t.top-n.top)/(n.bottom-n.top))-2)),a=i;;){let n=e.childNodes[a];if(n.nodeType==1){let e=n.getClientRects();for(let r=0;r<e.length;r++){let i=e[r];if(xi(t,i))return Ti(n,t,i)}}if((a=(a+1)%r)==i)break}return e}function Ei(e,t){let n=e.dom.ownerDocument,r,i=0,a=Ur(n,t.left,t.top);a&&({node:r,offset:i}=a);let o=(e.root.elementFromPoint?e.root:n).elementFromPoint(t.left,t.top),s;if(!o||!e.dom.contains(o.nodeType==1?o:o.parentNode)){let n=e.dom.getBoundingClientRect();if(!xi(t,n)||(o=Ti(e.dom,t,n),!o))return null}if(ni)for(let e=o;r&&e;e=Or(e))e.draggable&&(r=void 0);if(o=Si(o,t),r){if(Qr&&r.nodeType==1&&(i=Math.min(i,r.childNodes.length),i<r.childNodes.length)){let e=r.childNodes[i],n;e.nodeName==`IMG`&&(n=e.getBoundingClientRect()).right<=t.left&&n.bottom>t.top&&i++}let n;si&&i&&r.nodeType==1&&(n=r.childNodes[i-1]).nodeType==1&&n.contentEditable==`false`&&n.getBoundingClientRect().top>=t.top&&i--,r==e.dom&&i==r.childNodes.length-1&&r.lastChild.nodeType==1&&t.top>r.lastChild.getBoundingClientRect().bottom?s=e.state.doc.content.size:(i==0||r.nodeType!=1||r.childNodes[i-1].nodeName!=`BR`)&&(s=wi(e,r,i,t))}s??=Ci(e,o,t);let c=e.docView.nearestDesc(o,!0);return{pos:s,inside:c?c.posAtStart-c.border:-1}}function Di(e){return e.top<e.bottom||e.left<e.right}function Oi(e,t){let n=e.getClientRects();if(n.length){let e=n[t<0?0:n.length-1];if(Di(e))return e}return Array.prototype.find.call(n,Di)||e.getBoundingClientRect()}var ki=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;function Ai(e,t,n){let{node:r,offset:i,atom:a}=e.docView.domFromPos(t,n<0?-1:1),o=si||Qr;if(r.nodeType==3)if(o&&(ki.test(r.nodeValue)||(n<0?!i:i==r.nodeValue.length))){let e=Oi(Ar(r,i,i),n);if(Qr&&i&&/\s/.test(r.nodeValue[i-1])&&i<r.nodeValue.length){let t=Oi(Ar(r,i-1,i-1),-1);if(t.top==e.top){let n=Oi(Ar(r,i,i+1),-1);if(n.top!=e.top)return ji(n,n.left<t.left)}}return e}else{let e=i,t=i,a=n<0?1:-1;return n<0&&!i?(t++,a=-1):n>=0&&i==r.nodeValue.length?(e--,a=1):n<0?e--:t++,ji(Oi(Ar(r,e,t),a),a<0)}if(!e.state.doc.resolve(t-(a||0)).parent.inlineContent){if(a==null&&i&&(n<0||i==Fr(r))){let e=r.childNodes[i-1];if(e.nodeType==1)return Mi(e.getBoundingClientRect(),!1)}if(a==null&&i<Fr(r)){let e=r.childNodes[i];if(e.nodeType==1)return Mi(e.getBoundingClientRect(),!0)}return Mi(r.getBoundingClientRect(),n>=0)}if(a==null&&i&&(n<0||i==Fr(r))){let e=r.childNodes[i-1],t=e.nodeType==3?Ar(e,Fr(e)-+!o):e.nodeType==1&&(e.nodeName!=`BR`||!e.nextSibling)?e:null;if(t)return ji(Oi(t,1),!1)}if(a==null&&i<Fr(r)){let e=r.childNodes[i];for(;e.pmViewDesc&&e.pmViewDesc.ignoreForCoords;)e=e.nextSibling;let t=e?e.nodeType==3?Ar(e,0,+!o):e.nodeType==1?e:null:null;if(t)return ji(Oi(t,-1),!0)}return ji(Oi(r.nodeType==3?Ar(r):r,-n),n>=0)}function ji(e,t){if(e.width==0)return e;let n=t?e.left:e.right;return{top:e.top,bottom:e.bottom,left:n,right:n}}function Mi(e,t){if(e.height==0)return e;let n=t?e.top:e.bottom;return{top:n,bottom:n,left:e.left,right:e.right}}function Ni(e,t,n){let r=e.state,i=e.root.activeElement;r!=t&&e.updateState(t),i!=e.dom&&e.focus();try{return n()}finally{r!=t&&e.updateState(r),i!=e.dom&&i&&i.focus()}}function Pi(e,t,n){let r=t.selection,i=n==`up`?r.$from:r.$to;return Ni(e,t,()=>{let{node:t}=e.docView.domFromPos(i.pos,n==`up`?-1:1);for(;;){let n=e.docView.nearestDesc(t,!0);if(!n)break;if(n.node.isBlock){t=n.contentDOM||n.dom;break}t=n.dom.parentNode}let r=Ai(e,i.pos,1);for(let e=t.firstChild;e;e=e.nextSibling){let t;if(e.nodeType==1)t=e.getClientRects();else if(e.nodeType==3)t=Ar(e,0,e.nodeValue.length).getClientRects();else continue;for(let e=0;e<t.length;e++){let i=t[e];if(i.bottom>i.top+1&&(n==`up`?r.top-i.top>(i.bottom-r.top)*2:i.bottom-r.bottom>(r.bottom-i.top)*2))return!1}}return!0})}var Fi=/[\u0590-\u08ac]/;function Ii(e,t,n){let{$head:r}=t.selection;if(!r.parent.isTextblock)return!1;let i=r.parentOffset,a=!i,o=i==r.parent.content.size,s=e.domSelection();return s?!Fi.test(r.parent.textContent)||!s.modify?n==`left`||n==`backward`?a:o:Ni(e,t,()=>{let{focusNode:t,focusOffset:i,anchorNode:a,anchorOffset:o}=e.domSelectionRange(),c=s.caretBidiLevel;s.modify(`move`,n,`character`);let l=r.depth?e.docView.domAfterPos(r.before()):e.dom,{focusNode:u,focusOffset:d}=e.domSelectionRange(),f=u&&!l.contains(u.nodeType==1?u:u.parentNode)||t==u&&i==d;try{s.collapse(a,o),t&&(t!=a||i!=o)&&s.extend&&s.extend(t,i)}catch{}return c!=null&&(s.caretBidiLevel=c),f}):r.pos==r.start()||r.pos==r.end()}var Li=null,Ri=null,zi=!1;function Bi(e,t,n){return Li==t&&Ri==n?zi:(Li=t,Ri=n,zi=n==`up`||n==`down`?Pi(e,t,n):Ii(e,t,n))}var Vi=0,Hi=1,Ui=2,Wi=3,Gi=class{constructor(e,t,n,r){this.parent=e,this.children=t,this.dom=n,this.contentDOM=r,this.dirty=Vi,n.pmViewDesc=this}matchesWidget(e){return!1}matchesMark(e){return!1}matchesNode(e,t,n){return!1}matchesHack(e){return!1}parseRule(){return null}stopEvent(e){return!1}get size(){let e=0;for(let t=0;t<this.children.length;t++)e+=this.children[t].size;return e}get border(){return 0}destroy(){this.parent=void 0,this.dom.pmViewDesc==this&&(this.dom.pmViewDesc=void 0);for(let e=0;e<this.children.length;e++)this.children[e].destroy()}posBeforeChild(e){for(let t=0,n=this.posAtStart;;t++){let r=this.children[t];if(r==e)return n;n+=r.size}}get posBefore(){return this.parent.posBeforeChild(this)}get posAtStart(){return this.parent?this.parent.posBeforeChild(this)+this.border:0}get posAfter(){return this.posBefore+this.size}get posAtEnd(){return this.posAtStart+this.size-2*this.border}localPosFromDOM(e,t,n){if(this.contentDOM&&this.contentDOM.contains(e.nodeType==1?e:e.parentNode))if(n<0){let n,r;if(e==this.contentDOM)n=e.childNodes[t-1];else{for(;e.parentNode!=this.contentDOM;)e=e.parentNode;n=e.previousSibling}for(;n&&!((r=n.pmViewDesc)&&r.parent==this);)n=n.previousSibling;return n?this.posBeforeChild(r)+r.size:this.posAtStart}else{let n,r;if(e==this.contentDOM)n=e.childNodes[t];else{for(;e.parentNode!=this.contentDOM;)e=e.parentNode;n=e.nextSibling}for(;n&&!((r=n.pmViewDesc)&&r.parent==this);)n=n.nextSibling;return n?this.posBeforeChild(r):this.posAtEnd}let r;if(e==this.dom&&this.contentDOM)r=t>Dr(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))r=e.compareDocumentPosition(this.contentDOM)&2;else if(this.dom.firstChild){if(t==0)for(let t=e;;t=t.parentNode){if(t==this.dom){r=!1;break}if(t.previousSibling)break}if(r==null&&t==e.childNodes.length)for(let t=e;;t=t.parentNode){if(t==this.dom){r=!0;break}if(t.nextSibling)break}}return r??n>0?this.posAtEnd:this.posAtStart}nearestDesc(e,t=!1){for(let n=!0,r=e;r;r=r.parentNode){let i=this.getDesc(r),a;if(i&&(!t||i.node))if(n&&(a=i.nodeDOM)&&!(a.nodeType==1?a.contains(e.nodeType==1?e:e.parentNode):a==e))n=!1;else return i}}getDesc(e){let t=e.pmViewDesc;for(let e=t;e;e=e.parent)if(e==this)return t}posFromDOM(e,t,n){for(let r=e;r;r=r.parentNode){let i=this.getDesc(r);if(i)return i.localPosFromDOM(e,t,n)}return-1}descAt(e){for(let t=0,n=0;t<this.children.length;t++){let r=this.children[t],i=n+r.size;if(n==e&&i!=n){for(;!r.border&&r.children.length;)for(let e=0;e<r.children.length;e++){let t=r.children[e];if(t.size){r=t;break}}return r}if(e<i)return r.descAt(e-n-r.border);n=i}}domFromPos(e,t){if(!this.contentDOM)return{node:this.dom,offset:0,atom:e+1};let n=0,r=0;for(let t=0;n<this.children.length;n++){let i=this.children[n],a=t+i.size;if(a>e||i instanceof Qi){r=e-t;break}t=a}if(r)return this.children[n].domFromPos(r-this.children[n].border,t);for(let e;n&&!(e=this.children[n-1]).size&&e instanceof Ki&&e.side>=0;n--);if(t<=0){let e,r=!0;for(;e=n?this.children[n-1]:null,!(!e||e.dom.parentNode==this.contentDOM);n--,r=!1);return e&&t&&r&&!e.border&&!e.domAtom?e.domFromPos(e.size,t):{node:this.contentDOM,offset:e?Dr(e.dom)+1:0}}else{let e,r=!0;for(;e=n<this.children.length?this.children[n]:null,!(!e||e.dom.parentNode==this.contentDOM);n++,r=!1);return e&&r&&!e.border&&!e.domAtom?e.domFromPos(0,t):{node:this.contentDOM,offset:e?Dr(e.dom):this.contentDOM.childNodes.length}}}parseRange(e,t,n=0){if(this.children.length==0)return{node:this.contentDOM,from:e,to:t,fromOffset:0,toOffset:this.contentDOM.childNodes.length};let r=-1,i=-1;for(let a=n,o=0;;o++){let n=this.children[o],s=a+n.size;if(r==-1&&e<=s){let i=a+n.border;if(e>=i&&t<=s-n.border&&n.node&&n.contentDOM&&this.contentDOM.contains(n.contentDOM))return n.parseRange(e,t,i);e=a;for(let t=o;t>0;t--){let n=this.children[t-1];if(n.size&&n.dom.parentNode==this.contentDOM&&!n.emptyChildAt(1)){r=Dr(n.dom)+1;break}e-=n.size}r==-1&&(r=0)}if(r>-1&&(s>t||o==this.children.length-1)){t=s;for(let e=o+1;e<this.children.length;e++){let n=this.children[e];if(n.size&&n.dom.parentNode==this.contentDOM&&!n.emptyChildAt(-1)){i=Dr(n.dom);break}t+=n.size}i==-1&&(i=this.contentDOM.childNodes.length);break}a=s}return{node:this.contentDOM,from:e,to:t,fromOffset:r,toOffset:i}}emptyChildAt(e){if(this.border||!this.contentDOM||!this.children.length)return!1;let t=this.children[e<0?0:this.children.length-1];return t.size==0||t.emptyChildAt(e)}domAfterPos(e){let{node:t,offset:n}=this.domFromPos(e,0);if(t.nodeType!=1||n==t.childNodes.length)throw RangeError(`No node after pos `+e);return t.childNodes[n]}setSelection(e,t,n,r=!1){let i=Math.min(e,t),a=Math.max(e,t);for(let o=0,s=0;o<this.children.length;o++){let c=this.children[o],l=s+c.size;if(i>s&&a<l)return c.setSelection(e-s-c.border,t-s-c.border,n,r);s=l}let o=this.domFromPos(e,e?-1:1),s=t==e?o:this.domFromPos(t,t?-1:1),c=n.root.getSelection(),l=n.domSelectionRange(),u=!1;if((Qr||ni)&&e==t){let{node:e,offset:t}=o;if(e.nodeType==3){if(u=!!(t&&e.nodeValue[t-1]==`
|
|
7
|
+
`),u&&t==e.nodeValue.length)for(let t=e,n;t;t=t.parentNode){if(n=t.nextSibling){n.nodeName==`BR`&&(o=s={node:n.parentNode,offset:Dr(n)+1});break}let e=t.pmViewDesc;if(e&&e.node&&e.node.isBlock)break}}else{let n=e.childNodes[t-1];u=n&&(n.nodeName==`BR`||n.contentEditable==`false`)}}if(Qr&&l.focusNode&&l.focusNode!=s.node&&l.focusNode.nodeType==1){let e=l.focusNode.childNodes[l.focusOffset];e&&e.contentEditable==`false`&&(r=!0)}if(!(r||u&&ni)&&Mr(o.node,o.offset,l.anchorNode,l.anchorOffset)&&Mr(s.node,s.offset,l.focusNode,l.focusOffset))return;let d=!1;if((c.extend||e==t)&&!(u&&Qr)){c.collapse(o.node,o.offset);try{e!=t&&c.extend(s.node,s.offset),d=!0}catch{}}if(!d){if(e>t){let e=o;o=s,s=e}let n=document.createRange();n.setEnd(s.node,s.offset),n.setStart(o.node,o.offset),c.removeAllRanges(),c.addRange(n)}}ignoreMutation(e){return!this.contentDOM&&e.type!=`selection`}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(e,t){for(let n=0,r=0;r<this.children.length;r++){let i=this.children[r],a=n+i.size;if(n==a?e<=a&&t>=n:e<a&&t>n){let r=n+i.border,o=a-i.border;if(e>=r&&t<=o){this.dirty=e==n||t==a?Ui:Hi,e==r&&t==o&&(i.contentLost||i.dom.parentNode!=this.contentDOM)?i.dirty=Wi:i.markDirty(e-r,t-r);return}else i.dirty=i.dom==i.contentDOM&&i.dom.parentNode==this.contentDOM&&!i.children.length?Ui:Wi}n=a}this.dirty=Ui}markParentsDirty(){let e=1;for(let t=this.parent;t;t=t.parent,e++){let n=e==1?Ui:Hi;t.dirty<n&&(t.dirty=n)}}get domAtom(){return!1}get ignoreForCoords(){return!1}get ignoreForSelection(){return!1}isText(e){return!1}},Ki=class extends Gi{constructor(e,t,n,r){let i,a=t.type.toDOM;if(typeof a==`function`&&(a=a(n,()=>{if(!i)return r;if(i.parent)return i.parent.posBeforeChild(i)})),!t.type.spec.raw){if(a.nodeType!=1){let e=document.createElement(`span`);e.appendChild(a),a=e}a.contentEditable=`false`,a.classList.add(`ProseMirror-widget`)}super(e,[],a,null),this.widget=t,this.widget=t,i=this}matchesWidget(e){return this.dirty==Vi&&e.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(e){let t=this.widget.spec.stopEvent;return t?t(e):!1}ignoreMutation(e){return e.type!=`selection`||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get ignoreForSelection(){return!!this.widget.type.spec.relaxedSide}get side(){return this.widget.type.side}},qi=class extends Gi{constructor(e,t,n,r){super(e,[],t,null),this.textDOM=n,this.text=r}get size(){return this.text.length}localPosFromDOM(e,t){return e==this.textDOM?this.posAtStart+t:this.posAtStart+(t?this.size:0)}domFromPos(e){return{node:this.textDOM,offset:e}}ignoreMutation(e){return e.type===`characterData`&&e.target.nodeValue==e.oldValue}},Ji=class e extends Gi{constructor(e,t,n,r,i){super(e,[],n,r),this.mark=t,this.spec=i}static create(t,n,r,i){let a=i.nodeViews[n.type.name],o=a&&a(n,i,r);return(!o||!o.dom)&&(o=Je.renderSpec(document,n.type.spec.toDOM(n,r),null,n.attrs)),new e(t,n,o.dom,o.contentDOM||o.dom,o)}parseRule(){return this.dirty&Wi||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(e){return this.dirty!=Wi&&this.mark.eq(e)}markDirty(e,t){if(super.markDirty(e,t),this.dirty!=Vi){let e=this.parent;for(;!e.node;)e=e.parent;e.dirty<this.dirty&&(e.dirty=this.dirty),this.dirty=Vi}}slice(t,n,r){let i=e.create(this.parent,this.mark,!0,r),a=this.children,o=this.size;n<o&&(a=ha(a,n,o,r)),t>0&&(a=ha(a,0,t,r));for(let e=0;e<a.length;e++)a[e].parent=i;return i.children=a,i}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}},Yi=class e extends Gi{constructor(e,t,n,r,i,a,o,s,c){super(e,[],i,a),this.node=t,this.outerDeco=n,this.innerDeco=r,this.nodeDOM=o}static create(t,n,r,i,a,o){let s=a.nodeViews[n.type.name],c,l=s&&s(n,a,()=>{if(!c)return o;if(c.parent)return c.parent.posBeforeChild(c)},r,i),u=l&&l.dom,d=l&&l.contentDOM;if(n.isText){if(!u)u=document.createTextNode(n.text);else if(u.nodeType!=3)throw RangeError(`Text must be rendered as a DOM text node`)}else if(!u){let e=Je.renderSpec(document,n.type.spec.toDOM(n),null,n.attrs);({dom:u,contentDOM:d}=e)}!d&&!n.isText&&u.nodeName!=`BR`&&(u.hasAttribute(`contenteditable`)||(u.contentEditable=`false`),n.type.spec.draggable&&(u.draggable=!0));let f=u;return u=oa(u,r,n),l?c=new $i(t,n,r,i,u,d||null,f,l,a,o+1):n.isText?new Zi(t,n,r,i,u,f,a):new e(t,n,r,i,u,d||null,f,a,o+1)}parseRule(){if(this.node.type.spec.reparseInView)return null;let e={node:this.node.type.name,attrs:this.node.attrs};if(this.node.type.whitespace==`pre`&&(e.preserveWhitespace=`full`),!this.contentDOM)e.getContent=()=>this.node.content;else if(!this.contentLost)e.contentElement=this.contentDOM;else{for(let t=this.children.length-1;t>=0;t--){let n=this.children[t];if(this.dom.contains(n.dom.parentNode)){e.contentElement=n.dom.parentNode;break}}e.contentElement||(e.getContent=()=>p.empty)}return e}matchesNode(e,t,n){return this.dirty==Vi&&e.eq(this.node)&&sa(t,this.outerDeco)&&n.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return+!this.node.isLeaf}updateChildren(e,t){let n=this.node.inlineContent,r=t,i=e.composing?this.localCompositionInfo(e,t):null,a=i&&i.pos>-1?i:null,o=i&&i.pos<0,s=new la(this,a&&a.node,e);fa(this.node,this.innerDeco,(t,i,a)=>{t.spec.marks?s.syncToMarks(t.spec.marks,n,e,i):t.type.side>=0&&!a&&s.syncToMarks(i==this.node.childCount?_.none:this.node.child(i).marks,n,e,i),s.placeWidget(t,e,r)},(t,a,c,l)=>{s.syncToMarks(t.marks,n,e,l);let u;s.findNodeMatch(t,a,c,l)||o&&e.state.selection.from>r&&e.state.selection.to<r+t.nodeSize&&(u=s.findIndexWithChild(i.node))>-1&&s.updateNodeAt(t,a,c,u,e)||s.updateNextNode(t,a,c,e,l,r)||s.addNode(t,a,c,e,r),r+=t.nodeSize}),s.syncToMarks([],n,e,0),this.node.isTextblock&&s.addTextblockHacks(),s.destroyRest(),(s.changed||this.dirty==Ui)&&(a&&this.protectLocalComposition(e,a),ea(this.contentDOM,this.children,e),ri&&pa(this.dom))}localCompositionInfo(e,t){let{from:n,to:r}=e.state.selection;if(!(e.state.selection instanceof P)||n<t||r>t+this.node.content.size)return null;let i=e.input.compositionNode;if(!i||!this.dom.contains(i.parentNode))return null;if(this.node.inlineContent){let e=i.nodeValue,a=ma(this.node.content,e,n-t,r-t);return a<0?null:{node:i,pos:a,text:e}}else return{node:i,pos:-1,text:``}}protectLocalComposition(e,{node:t,pos:n,text:r}){if(this.getDesc(t))return;let i=t;for(;i.parentNode!=this.contentDOM;i=i.parentNode){for(;i.previousSibling;)i.parentNode.removeChild(i.previousSibling);for(;i.nextSibling;)i.parentNode.removeChild(i.nextSibling);i.pmViewDesc&&=void 0}let a=new qi(this,i,t,r);e.input.compositionNodes.push(a),this.children=ha(this.children,n,n+r.length,e,a)}update(e,t,n,r){return this.dirty==Wi||!e.sameMarkup(this.node)?!1:(this.updateInner(e,t,n,r),!0)}updateInner(e,t,n,r){this.updateOuterDeco(t),this.node=e,this.innerDeco=n,this.contentDOM&&this.updateChildren(r,this.posAtStart),this.dirty=Vi}updateOuterDeco(e){if(sa(e,this.outerDeco))return;let t=this.nodeDOM.nodeType!=1,n=this.dom;this.dom=ia(this.dom,this.nodeDOM,ra(this.outerDeco,this.node,t),ra(e,this.node,t)),this.dom!=n&&(n.pmViewDesc=void 0,this.dom.pmViewDesc=this),this.outerDeco=e}selectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.add(`ProseMirror-selectednode`),(this.contentDOM||!this.node.type.spec.draggable)&&(this.nodeDOM.draggable=!0))}deselectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.remove(`ProseMirror-selectednode`),(this.contentDOM||!this.node.type.spec.draggable)&&this.nodeDOM.removeAttribute(`draggable`))}get domAtom(){return this.node.isAtom}};function Xi(e,t,n,r,i){oa(r,t,e);let a=new Yi(void 0,e,t,n,r,r,r,i,0);return a.contentDOM&&a.updateChildren(i,0),a}var Zi=class e extends Yi{constructor(e,t,n,r,i,a,o){super(e,t,n,r,i,null,a,o,0)}parseRule(){let e=this.nodeDOM.parentNode;for(;e&&e!=this.dom&&!e.pmIsDeco;)e=e.parentNode;return{skip:e||!0}}update(e,t,n,r){return this.dirty==Wi||this.dirty!=Vi&&!this.inParent()||!e.sameMarkup(this.node)?!1:(this.updateOuterDeco(t),(this.dirty!=Vi||e.text!=this.node.text)&&e.text!=this.nodeDOM.nodeValue&&(this.nodeDOM.nodeValue=e.text,r.trackWrites==this.nodeDOM&&(r.trackWrites=null)),this.node=e,this.dirty=Vi,!0)}inParent(){let e=this.parent.contentDOM;for(let t=this.nodeDOM;t;t=t.parentNode)if(t==e)return!0;return!1}domFromPos(e){return{node:this.nodeDOM,offset:e}}localPosFromDOM(e,t,n){return e==this.nodeDOM?this.posAtStart+Math.min(t,this.node.text.length):super.localPosFromDOM(e,t,n)}ignoreMutation(e){return e.type!=`characterData`&&e.type!=`selection`}slice(t,n,r){let i=this.node.cut(t,n),a=document.createTextNode(i.text);return new e(this.parent,i,this.outerDeco,this.innerDeco,a,a,r)}markDirty(e,t){super.markDirty(e,t),this.dom!=this.nodeDOM&&(e==0||t==this.nodeDOM.nodeValue.length)&&(this.dirty=Wi)}get domAtom(){return!1}isText(e){return this.node.text==e}},Qi=class extends Gi{parseRule(){return{ignore:!0}}matchesHack(e){return this.dirty==Vi&&this.dom.nodeName==e}get domAtom(){return!0}get ignoreForCoords(){return this.dom.nodeName==`IMG`}},$i=class extends Yi{constructor(e,t,n,r,i,a,o,s,c,l){super(e,t,n,r,i,a,o,c,l),this.spec=s}update(e,t,n,r){if(this.dirty==Wi)return!1;if(this.spec.update&&(this.node.type==e.type||this.spec.multiType)){let i=this.spec.update(e,t,n);return i&&this.updateInner(e,t,n,r),i}else if(!this.contentDOM&&!e.isLeaf)return!1;else return super.update(e,t,n,r)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(e,t,n,r){this.spec.setSelection?this.spec.setSelection(e,t,n.root):super.setSelection(e,t,n,r)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}stopEvent(e){return this.spec.stopEvent?this.spec.stopEvent(e):!1}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}};function ea(e,t,n){let r=e.firstChild,i=!1;for(let a=0;a<t.length;a++){let o=t[a],s=o.dom;if(s.parentNode==e){for(;s!=r;)r=ca(r),i=!0;r=r.nextSibling}else i=!0,e.insertBefore(s,r);if(o instanceof Ji){let t=r?r.previousSibling:e.lastChild;ea(o.contentDOM,o.children,n),r=t?t.nextSibling:e.firstChild}}for(;r;)r=ca(r),i=!0;i&&n.trackWrites==e&&(n.trackWrites=null)}var ta=function(e){e&&(this.nodeName=e)};ta.prototype=Object.create(null);var na=[new ta];function ra(e,t,n){if(e.length==0)return na;let r=n?na[0]:new ta,i=[r];for(let a=0;a<e.length;a++){let o=e[a].type.attrs;if(o){o.nodeName&&i.push(r=new ta(o.nodeName));for(let e in o){let a=o[e];a!=null&&(n&&i.length==1&&i.push(r=new ta(t.isInline?`span`:`div`)),e==`class`?r.class=(r.class?r.class+` `:``)+a:e==`style`?r.style=(r.style?r.style+`;`:``)+a:e!=`nodeName`&&(r[e]=a))}}}return i}function ia(e,t,n,r){if(n==na&&r==na)return t;let i=t;for(let t=0;t<r.length;t++){let a=r[t],o=n[t];if(t){let t;o&&o.nodeName==a.nodeName&&i!=e&&(t=i.parentNode)&&t.nodeName.toLowerCase()==a.nodeName?i=t:(t=document.createElement(a.nodeName),t.pmIsDeco=!0,t.appendChild(i),o=na[0],i=t)}aa(i,o||na[0],a)}return i}function aa(e,t,n){for(let r in t)r!=`class`&&r!=`style`&&r!=`nodeName`&&!(r in n)&&e.removeAttribute(r);for(let r in n)r!=`class`&&r!=`style`&&r!=`nodeName`&&n[r]!=t[r]&&e.setAttribute(r,n[r]);if(t.class!=n.class){let r=t.class?t.class.split(` `).filter(Boolean):[],i=n.class?n.class.split(` `).filter(Boolean):[];for(let t=0;t<r.length;t++)i.indexOf(r[t])==-1&&e.classList.remove(r[t]);for(let t=0;t<i.length;t++)r.indexOf(i[t])==-1&&e.classList.add(i[t]);e.classList.length==0&&e.removeAttribute(`class`)}if(t.style!=n.style){if(t.style){let n=/\s*([\w\-\xa1-\uffff]+)\s*:(?:"(?:\\.|[^"])*"|'(?:\\.|[^'])*'|\(.*?\)|[^;])*/g,r;for(;r=n.exec(t.style);)e.style.removeProperty(r[1])}n.style&&(e.style.cssText+=n.style)}}function oa(e,t,n){return ia(e,e,na,ra(t,n,e.nodeType!=1))}function sa(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].type.eq(t[n].type))return!1;return!0}function ca(e){let t=e.nextSibling;return e.parentNode.removeChild(e),t}var la=class{constructor(e,t,n){this.lock=t,this.view=n,this.index=0,this.stack=[],this.changed=!1,this.top=e,this.preMatch=ua(e.node.content,e)}destroyBetween(e,t){if(e!=t){for(let n=e;n<t;n++)this.top.children[n].destroy();this.top.children.splice(e,t-e),this.changed=!0}}destroyRest(){this.destroyBetween(this.index,this.top.children.length)}syncToMarks(e,t,n,r){let i=0,a=this.stack.length>>1,o=Math.min(a,e.length);for(;i<o&&(i==a-1?this.top:this.stack[i+1<<1]).matchesMark(e[i])&&e[i].type.spec.spanning!==!1;)i++;for(;i<a;)this.destroyRest(),this.top.dirty=Vi,this.index=this.stack.pop(),this.top=this.stack.pop(),a--;for(;a<e.length;){this.stack.push(this.top,this.index+1);let i=-1,o=this.top.children.length;r<this.preMatch.index&&(o=Math.min(this.index+3,o));for(let t=this.index;t<o;t++){let n=this.top.children[t];if(n.matchesMark(e[a])&&!this.isLocked(n.dom)){i=t;break}}if(i>-1)i>this.index&&(this.changed=!0,this.destroyBetween(this.index,i)),this.top=this.top.children[this.index];else{let r=Ji.create(this.top,e[a],t,n);this.top.children.splice(this.index,0,r),this.top=r,this.changed=!0}this.index=0,a++}}findNodeMatch(e,t,n,r){let i=-1,a;if(r>=this.preMatch.index&&(a=this.preMatch.matches[r-this.preMatch.index]).parent==this.top&&a.matchesNode(e,t,n))i=this.top.children.indexOf(a,this.index);else for(let r=this.index,a=Math.min(this.top.children.length,r+5);r<a;r++){let a=this.top.children[r];if(a.matchesNode(e,t,n)&&!this.preMatch.matched.has(a)){i=r;break}}return i<0?!1:(this.destroyBetween(this.index,i),this.index++,!0)}updateNodeAt(e,t,n,r,i){let a=this.top.children[r];return a.dirty==Wi&&a.dom==a.contentDOM&&(a.dirty=Ui),a.update(e,t,n,i)?(this.destroyBetween(this.index,r),this.index++,!0):!1}findIndexWithChild(e){for(;;){let t=e.parentNode;if(!t)return-1;if(t==this.top.contentDOM){let t=e.pmViewDesc;if(t){for(let e=this.index;e<this.top.children.length;e++)if(this.top.children[e]==t)return e}return-1}e=t}}updateNextNode(e,t,n,r,i,a){for(let o=this.index;o<this.top.children.length;o++){let s=this.top.children[o];if(s instanceof Yi){let c=this.preMatch.matched.get(s);if(c!=null&&c!=i)return!1;let l=s.dom,u,d=this.isLocked(l)&&!(e.isText&&s.node&&s.node.isText&&s.nodeDOM.nodeValue==e.text&&s.dirty!=Wi&&sa(t,s.outerDeco));if(!d&&s.update(e,t,n,r))return this.destroyBetween(this.index,o),s.dom!=l&&(this.changed=!0),this.index++,!0;if(!d&&(u=this.recreateWrapper(s,e,t,n,r,a)))return this.destroyBetween(this.index,o),this.top.children[this.index]=u,u.contentDOM&&(u.dirty=Ui,u.updateChildren(r,a+1),u.dirty=Vi),this.changed=!0,this.index++,!0;break}}return!1}recreateWrapper(e,t,n,r,i,a){if(e.dirty||t.isAtom||!e.children.length||!e.node.content.eq(t.content)||!sa(n,e.outerDeco)||!r.eq(e.innerDeco))return null;let o=Yi.create(this.top,t,n,r,i,a);if(o.contentDOM){o.children=e.children,e.children=[];for(let e of o.children)e.parent=o}return e.destroy(),o}addNode(e,t,n,r,i){let a=Yi.create(this.top,e,t,n,r,i);a.contentDOM&&a.updateChildren(r,i+1),this.top.children.splice(this.index++,0,a),this.changed=!0}placeWidget(e,t,n){let r=this.index<this.top.children.length?this.top.children[this.index]:null;if(r&&r.matchesWidget(e)&&(e==r.widget||!r.widget.type.toDOM.parentNode))this.index++;else{let r=new Ki(this.top,e,t,n);this.top.children.splice(this.index++,0,r),this.changed=!0}}addTextblockHacks(){let e=this.top.children[this.index-1],t=this.top;for(;e instanceof Ji;)t=e,e=t.children[t.children.length-1];(!e||!(e instanceof Zi)||/\n$/.test(e.node.text)||this.view.requiresGeckoHackNode&&/\s$/.test(e.node.text))&&((ni||ei)&&e&&e.dom.contentEditable==`false`&&this.addHackNode(`IMG`,t),this.addHackNode(`BR`,this.top))}addHackNode(e,t){if(t==this.top&&this.index<t.children.length&&t.children[this.index].matchesHack(e))this.index++;else{let n=document.createElement(e);e==`IMG`&&(n.className=`ProseMirror-separator`,n.alt=``),e==`BR`&&(n.className=`ProseMirror-trailingBreak`);let r=new Qi(this.top,[],n,null);t==this.top?t.children.splice(this.index++,0,r):t.children.push(r),this.changed=!0}}isLocked(e){return this.lock&&(e==this.lock||e.nodeType==1&&e.contains(this.lock.parentNode))}};function ua(e,t){let n=t,r=n.children.length,i=e.childCount,a=new Map,o=[];outer:for(;i>0;){let s;for(;;)if(r){let e=n.children[r-1];if(e instanceof Ji)n=e,r=e.children.length;else{s=e,r--;break}}else if(n==t)break outer;else r=n.parent.children.indexOf(n),n=n.parent;let c=s.node;if(c){if(c!=e.child(i-1))break;--i,a.set(s,i),o.push(s)}}return{index:i,matched:a,matches:o.reverse()}}function da(e,t){return e.type.side-t.type.side}function fa(e,t,n,r){let i=t.locals(e),a=0;if(i.length==0){for(let n=0;n<e.childCount;n++){let o=e.child(n);r(o,i,t.forChild(a,o),n),a+=o.nodeSize}return}let o=0,s=[],c=null;for(let l=0;;){let u,d;for(;o<i.length&&i[o].to==a;){let e=i[o++];e.widget&&(u?(d||=[u]).push(e):u=e)}if(u)if(d){d.sort(da);for(let e=0;e<d.length;e++)n(d[e],l,!!c)}else n(u,l,!!c);let f,p;if(c)p=-1,f=c,c=null;else if(l<e.childCount)p=l,f=e.child(l++);else break;for(let e=0;e<s.length;e++)s[e].to<=a&&s.splice(e--,1);for(;o<i.length&&i[o].from<=a&&i[o].to>a;)s.push(i[o++]);let m=a+f.nodeSize;if(f.isText){let e=m;o<i.length&&i[o].from<e&&(e=i[o].from);for(let t=0;t<s.length;t++)s[t].to<e&&(e=s[t].to);e<m&&(c=f.cut(e-a),f=f.cut(0,e-a),m=e,p=-1)}else for(;o<i.length&&i[o].to<m;)o++;let h=f.isInline&&!f.isLeaf?s.filter(e=>!e.inline):s.slice();r(f,h,t.forChild(a,f),p),a=m}}function pa(e){if(e.nodeName==`UL`||e.nodeName==`OL`){let t=e.style.cssText;e.style.cssText=t+`; list-style: square !important`,window.getComputedStyle(e).listStyle,e.style.cssText=t}}function ma(e,t,n,r){for(let i=0,a=0;i<e.childCount&&a<=r;){let o=e.child(i++),s=a;if(a+=o.nodeSize,!o.isText)continue;let c=o.text;for(;i<e.childCount;){let t=e.child(i++);if(a+=t.nodeSize,!t.isText)break;c+=t.text}if(a>=n){if(a>=r&&c.slice(r-t.length-s,r-s)==t)return r-t.length;let e=s<r?c.lastIndexOf(t,r-s-1):-1;if(e>=0&&e+t.length+s>=n)return s+e;if(n==r&&c.length>=r+t.length-s&&c.slice(r-s,r-s+t.length)==t)return r}}return-1}function ha(e,t,n,r,i){let a=[];for(let o=0,s=0;o<e.length;o++){let c=e[o],l=s,u=s+=c.size;l>=n||u<=t?a.push(c):(l<t&&a.push(c.slice(0,t-l,r)),i&&=(a.push(i),void 0),u>n&&a.push(c.slice(n-l,c.size,r)))}return a}function ga(e,t=null){let n=e.domSelectionRange(),r=e.state.doc;if(!n.focusNode)return null;let i=e.docView.nearestDesc(n.focusNode),a=i&&i.size==0,o=e.docView.posFromDOM(n.focusNode,n.focusOffset,1);if(o<0)return null;let s=r.resolve(o),c,l;if(Br(n)){for(c=o;i&&!i.node;)i=i.parent;let e=i.node;if(i&&e.isAtom&&F.isSelectable(e)&&i.parent&&!(e.isInline&&Rr(n.focusNode,n.focusOffset,i.dom))){let e=i.posBefore;l=new F(o==e?s:r.resolve(e))}}else{if(n instanceof e.dom.ownerDocument.defaultView.Selection&&n.rangeCount>1){let t=o,i=o;for(let r=0;r<n.rangeCount;r++){let a=n.getRangeAt(r);t=Math.min(t,e.docView.posFromDOM(a.startContainer,a.startOffset,1)),i=Math.max(i,e.docView.posFromDOM(a.endContainer,a.endOffset,-1))}if(t<0)return null;[c,o]=i==e.state.selection.anchor?[i,t]:[t,i],s=r.resolve(o)}else c=e.docView.posFromDOM(n.anchorNode,n.anchorOffset,1);if(c<0)return null}let u=r.resolve(c);if(!l){let n=t==`pointer`||e.state.selection.head<s.pos&&!a?1:-1;l=Da(e,u,s,n)}return l}function _a(e){return e.editable?e.hasFocus():ka(e)&&document.activeElement&&document.activeElement.contains(e.dom)}function va(e,t=!1){let n=e.state.selection;if(Ta(e,n),_a(e)){if(!t&&e.input.mouseDown&&e.input.mouseDown.allowDefault&&ei){let t=e.domSelectionRange(),n=e.domObserver.currentSelection;if(t.anchorNode&&n.anchorNode&&Mr(t.anchorNode,t.anchorOffset,n.anchorNode,n.anchorOffset)){e.input.mouseDown.delayedSelectionSync=!0,e.domObserver.setCurSelection();return}}if(e.domObserver.disconnectSelection(),e.cursorWrapper)wa(e);else{let{anchor:r,head:i}=n,a,o;ya&&!(n instanceof P)&&(n.$from.parent.inlineContent||(a=ba(e,n.from)),!n.empty&&!n.$from.parent.inlineContent&&(o=ba(e,n.to))),e.docView.setSelection(r,i,e,t),ya&&(a&&Sa(a),o&&Sa(o)),n.visible?e.dom.classList.remove(`ProseMirror-hideselection`):(e.dom.classList.add(`ProseMirror-hideselection`),`onselectionchange`in document&&Ca(e))}e.domObserver.setCurSelection(),e.domObserver.connectSelection()}}var ya=ni||ei&&ti<63;function ba(e,t){let{node:n,offset:r}=e.docView.domFromPos(t,0),i=r<n.childNodes.length?n.childNodes[r]:null,a=r?n.childNodes[r-1]:null;if(ni&&i&&i.contentEditable==`false`)return xa(i);if((!i||i.contentEditable==`false`)&&(!a||a.contentEditable==`false`)){if(i)return xa(i);if(a)return xa(a)}}function xa(e){return e.contentEditable=`true`,ni&&e.draggable&&(e.draggable=!1,e.wasDraggable=!0),e}function Sa(e){e.contentEditable=`false`,e.wasDraggable&&=(e.draggable=!0,null)}function Ca(e){let t=e.dom.ownerDocument;t.removeEventListener(`selectionchange`,e.input.hideSelectionGuard);let n=e.domSelectionRange(),r=n.anchorNode,i=n.anchorOffset;t.addEventListener(`selectionchange`,e.input.hideSelectionGuard=()=>{(n.anchorNode!=r||n.anchorOffset!=i)&&(t.removeEventListener(`selectionchange`,e.input.hideSelectionGuard),setTimeout(()=>{(!_a(e)||e.state.selection.visible)&&e.dom.classList.remove(`ProseMirror-hideselection`)},20))})}function wa(e){let t=e.domSelection();if(!t)return;let n=e.cursorWrapper.dom,r=n.nodeName==`IMG`;r?t.collapse(n.parentNode,Dr(n)+1):t.collapse(n,0),!r&&!e.state.selection.visible&&Xr&&Zr<=11&&(n.disabled=!0,n.disabled=!1)}function Ta(e,t){if(t instanceof F){let n=e.docView.descAt(t.from);n!=e.lastSelectedViewDesc&&(Ea(e),n&&n.selectNode(),e.lastSelectedViewDesc=n)}else Ea(e)}function Ea(e){e.lastSelectedViewDesc&&=(e.lastSelectedViewDesc.parent&&e.lastSelectedViewDesc.deselectNode(),void 0)}function Da(e,t,n,r){return e.someProp(`createSelectionBetween`,r=>r(e,t,n))||P.between(t,n,r)}function Oa(e){return e.editable&&!e.hasFocus()?!1:ka(e)}function ka(e){let t=e.domSelectionRange();if(!t.anchorNode)return!1;try{return e.dom.contains(t.anchorNode.nodeType==3?t.anchorNode.parentNode:t.anchorNode)&&(e.editable||e.dom.contains(t.focusNode.nodeType==3?t.focusNode.parentNode:t.focusNode))}catch{return!1}}function Aa(e){let t=e.docView.domFromPos(e.state.selection.anchor,0),n=e.domSelectionRange();return Mr(t.node,t.offset,n.anchorNode,n.anchorOffset)}function ja(e,t){let{$anchor:n,$head:r}=e.selection,i=t>0?n.max(r):n.min(r),a=i.parent.inlineContent?i.depth?e.doc.resolve(t>0?i.after():i.before()):null:i;return a&&N.findFrom(a,t)}function Ma(e,t){return e.dispatch(e.state.tr.setSelection(t).scrollIntoView()),!0}function Na(e,t,n){let r=e.state.selection;if(r instanceof P){if(n.indexOf(`s`)>-1){let{$head:n}=r,i=n.textOffset?null:t<0?n.nodeBefore:n.nodeAfter;if(!i||i.isText||!i.isLeaf)return!1;let a=e.state.doc.resolve(n.pos+i.nodeSize*(t<0?-1:1));return Ma(e,new P(r.$anchor,a))}else if(!r.empty)return!1;else if(e.endOfTextblock(t>0?`forward`:`backward`)){let n=ja(e.state,t);return n&&n instanceof F?Ma(e,n):!1}else if(!(ii&&n.indexOf(`m`)>-1)){let n=r.$head,i=n.textOffset?null:t<0?n.nodeBefore:n.nodeAfter,a;if(!i||i.isText)return!1;let o=t<0?n.pos-i.nodeSize:n.pos;return i.isAtom||(a=e.docView.descAt(o))&&!a.contentDOM?F.isSelectable(i)?Ma(e,new F(t<0?e.state.doc.resolve(n.pos-i.nodeSize):n)):si?Ma(e,new P(e.state.doc.resolve(t<0?o:o+i.nodeSize))):!1:!1}}else if(r instanceof F&&r.node.isInline)return Ma(e,new P(t>0?r.$to:r.$from));else{let n=ja(e.state,t);return n?Ma(e,n):!1}}function Pa(e){return e.nodeType==3?e.nodeValue.length:e.childNodes.length}function Fa(e,t){let n=e.pmViewDesc;return n&&n.size==0&&(t<0||e.nextSibling||e.nodeName!=`BR`)}function Ia(e,t){return t<0?La(e):Ra(e)}function La(e){let t=e.domSelectionRange(),n=t.focusNode,r=t.focusOffset;if(!n)return;let i,a,o=!1;for(Qr&&n.nodeType==1&&r<Pa(n)&&Fa(n.childNodes[r],-1)&&(o=!0);;)if(r>0){if(n.nodeType!=1)break;{let e=n.childNodes[r-1];if(Fa(e,-1))i=n,a=--r;else if(e.nodeType==3)n=e,r=n.nodeValue.length;else break}}else if(za(n))break;else{let t=n.previousSibling;for(;t&&Fa(t,-1);)i=n.parentNode,a=Dr(t),t=t.previousSibling;if(t)n=t,r=Pa(n);else{if(n=n.parentNode,n==e.dom)break;r=0}}o?Ha(e,n,r):i&&Ha(e,i,a)}function Ra(e){let t=e.domSelectionRange(),n=t.focusNode,r=t.focusOffset;if(!n)return;let i=Pa(n),a,o;for(;;)if(r<i){if(n.nodeType!=1)break;let e=n.childNodes[r];if(Fa(e,1))a=n,o=++r;else break}else if(za(n))break;else{let t=n.nextSibling;for(;t&&Fa(t,1);)a=t.parentNode,o=Dr(t)+1,t=t.nextSibling;if(t)n=t,r=0,i=Pa(n);else{if(n=n.parentNode,n==e.dom)break;r=i=0}}a&&Ha(e,a,o)}function za(e){let t=e.pmViewDesc;return t&&t.node&&t.node.isBlock}function Ba(e,t){for(;e&&t==e.childNodes.length&&!zr(e);)t=Dr(e)+1,e=e.parentNode;for(;e&&t<e.childNodes.length;){let n=e.childNodes[t];if(n.nodeType==3)return n;if(n.nodeType==1&&n.contentEditable==`false`)break;e=n,t=0}}function Va(e,t){for(;e&&!t&&!zr(e);)t=Dr(e),e=e.parentNode;for(;e&&t;){let n=e.childNodes[t-1];if(n.nodeType==3)return n;if(n.nodeType==1&&n.contentEditable==`false`)break;e=n,t=e.childNodes.length}}function Ha(e,t,n){if(t.nodeType!=3){let e,r;(r=Ba(t,n))?(t=r,n=0):(e=Va(t,n))&&(t=e,n=e.nodeValue.length)}let r=e.domSelection();if(!r)return;if(Br(r)){let e=document.createRange();e.setEnd(t,n),e.setStart(t,n),r.removeAllRanges(),r.addRange(e)}else r.extend&&r.extend(t,n);e.domObserver.setCurSelection();let{state:i}=e;setTimeout(()=>{e.state==i&&va(e)},50)}function Ua(e,t){let n=e.state.doc.resolve(t);if(!(ei||ai)&&n.parent.inlineContent){let r=e.coordsAtPos(t);if(t>n.start()){let n=e.coordsAtPos(t-1),i=(n.top+n.bottom)/2;if(i>r.top&&i<r.bottom&&Math.abs(n.left-r.left)>1)return n.left<r.left?`ltr`:`rtl`}if(t<n.end()){let n=e.coordsAtPos(t+1),i=(n.top+n.bottom)/2;if(i>r.top&&i<r.bottom&&Math.abs(n.left-r.left)>1)return n.left>r.left?`ltr`:`rtl`}}return getComputedStyle(e.dom).direction==`rtl`?`rtl`:`ltr`}function Wa(e,t,n){let r=e.state.selection;if(r instanceof P&&!r.empty||n.indexOf(`s`)>-1||ii&&n.indexOf(`m`)>-1)return!1;let{$from:i,$to:a}=r;if(!i.parent.inlineContent||e.endOfTextblock(t<0?`up`:`down`)){let n=ja(e.state,t);if(n&&n instanceof F)return Ma(e,n)}if(!i.parent.inlineContent){let n=t<0?i:a,o=r instanceof xn?N.near(n,t):N.findFrom(n,t);return o?Ma(e,o):!1}return!1}function Ga(e,t){if(!(e.state.selection instanceof P))return!0;let{$head:n,$anchor:r,empty:i}=e.state.selection;if(!n.sameParent(r))return!0;if(!i)return!1;if(e.endOfTextblock(t>0?`forward`:`backward`))return!0;let a=!n.textOffset&&(t<0?n.nodeBefore:n.nodeAfter);if(a&&!a.isText){let r=e.state.tr;return t<0?r.delete(n.pos-a.nodeSize,n.pos):r.delete(n.pos,n.pos+a.nodeSize),e.dispatch(r),!0}return!1}function Ka(e,t,n){e.domObserver.stop(),t.contentEditable=n,e.domObserver.start()}function qa(e){if(!ni||e.state.selection.$head.parentOffset>0)return!1;let{focusNode:t,focusOffset:n}=e.domSelectionRange();if(t&&t.nodeType==1&&n==0&&t.firstChild&&t.firstChild.contentEditable==`false`){let n=t.firstChild;Ka(e,n,`true`),setTimeout(()=>Ka(e,n,`false`),20)}return!1}function Ja(e){let t=``;return e.ctrlKey&&(t+=`c`),e.metaKey&&(t+=`m`),e.altKey&&(t+=`a`),e.shiftKey&&(t+=`s`),t}function Ya(e,t){let n=t.keyCode,r=Ja(t);if(n==8||ii&&n==72&&r==`c`)return Ga(e,-1)||Ia(e,-1);if(n==46&&!t.shiftKey||ii&&n==68&&r==`c`)return Ga(e,1)||Ia(e,1);if(n==13||n==27)return!0;if(n==37||ii&&n==66&&r==`c`){let t=n==37?Ua(e,e.state.selection.from)==`ltr`?-1:1:-1;return Na(e,t,r)||Ia(e,t)}else if(n==39||ii&&n==70&&r==`c`){let t=n==39?Ua(e,e.state.selection.from)==`ltr`?1:-1:1;return Na(e,t,r)||Ia(e,t)}else if(n==38||ii&&n==80&&r==`c`)return Wa(e,-1,r)||Ia(e,-1);else if(n==40||ii&&n==78&&r==`c`)return qa(e)||Wa(e,1,r)||Ia(e,1);else if(r==(ii?`m`:`c`)&&(n==66||n==73||n==89||n==90))return!0;return!1}function Xa(e,t){e.someProp(`transformCopied`,n=>{t=n(t,e)});let n=[],{content:r,openStart:i,openEnd:a}=t;for(;i>1&&a>1&&r.childCount==1&&r.firstChild.childCount==1;){i--,a--;let e=r.firstChild;n.push(e.type.name,e.attrs==e.type.defaultAttrs?null:e.attrs),r=e.content}let o=e.someProp(`clipboardSerializer`)||Je.fromSchema(e.state.schema),s=so(),c=s.createElement(`div`);c.appendChild(o.serializeFragment(r,{document:s}));let l=c.firstChild,u,d=0;for(;l&&l.nodeType==1&&(u=ao[l.nodeName.toLowerCase()]);){for(let e=u.length-1;e>=0;e--){let t=s.createElement(u[e]);for(;c.firstChild;)t.appendChild(c.firstChild);c.appendChild(t),d++}l=c.firstChild}return l&&l.nodeType==1&&l.setAttribute(`data-pm-slice`,`${i} ${a}${d?` -${d}`:``} ${JSON.stringify(n)}`),{dom:c,text:e.someProp(`clipboardTextSerializer`,n=>n(t,e))||t.content.textBetween(0,t.content.size,`
|
|
8
|
+
|
|
9
|
+
`),slice:t}}function Za(e,t,n,r,i){let a=i.parent.type.spec.code,o,s;if(!n&&!t)return null;let c=!!t&&(r||a||!n);if(c){if(e.someProp(`transformPastedText`,n=>{t=n(t,a||r,e)}),a)return s=new y(p.from(e.state.schema.text(t.replace(/\r\n?/g,`
|
|
10
|
+
`))),0,0),e.someProp(`transformPasted`,t=>{s=t(s,e,!0)}),s;let n=e.someProp(`clipboardTextParser`,n=>n(t,i,r,e));if(n)s=n;else{let n=i.marks(),{schema:r}=e.state,a=Je.fromSchema(r);o=document.createElement(`div`),t.split(/(?:\r\n?|\n)+/).forEach(e=>{let t=o.appendChild(document.createElement(`p`));e&&t.appendChild(a.serializeNode(r.text(e,n)))})}}else e.someProp(`transformPastedHTML`,t=>{n=t(n,e)}),o=uo(n),si&&fo(o);let l=o&&o.querySelector(`[data-pm-slice]`),u=l&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(l.getAttribute(`data-pm-slice`)||``);if(u&&u[3])for(let e=+u[3];e>0;e--){let e=o.firstChild;for(;e&&e.nodeType!=1;)e=e.nextSibling;if(!e)break;o=e}if(s||=(e.someProp(`clipboardParser`)||e.someProp(`domParser`)||Pe.fromSchema(e.state.schema)).parseSlice(o,{preserveWhitespace:!!(c||u),context:i,ruleFromNode(e){return e.nodeName==`BR`&&!e.nextSibling&&e.parentNode&&!Qa.test(e.parentNode.nodeName)?{ignore:!0}:null}}),u)s=po(io(s,+u[1],+u[2]),u[4]);else if(s=y.maxOpen($a(s.content,i),!0),s.openStart||s.openEnd){let e=0,t=0;for(let t=s.content.firstChild;e<s.openStart&&!t.type.spec.isolating;e++,t=t.firstChild);for(let e=s.content.lastChild;t<s.openEnd&&!e.type.spec.isolating;t++,e=e.lastChild);s=io(s,e,t)}return e.someProp(`transformPasted`,t=>{s=t(s,e,c)}),s}var Qa=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function $a(e,t){if(e.childCount<2)return e;for(let n=t.depth;n>=0;n--){let r=t.node(n).contentMatchAt(t.index(n)),i,a=[];if(e.forEach(e=>{if(!a)return;let t=r.findWrapping(e.type),n;if(!t)return a=null;if(n=a.length&&i.length&&to(t,i,e,a[a.length-1],0))a[a.length-1]=n;else{a.length&&(a[a.length-1]=no(a[a.length-1],i.length));let n=eo(e,t);a.push(n),r=r.matchType(n.type),i=t}}),a)return p.from(a)}return e}function eo(e,t,n=0){for(let r=t.length-1;r>=n;r--)e=t[r].create(null,p.from(e));return e}function to(e,t,n,r,i){if(i<e.length&&i<t.length&&e[i]==t[i]){let a=to(e,t,n,r.lastChild,i+1);if(a)return r.copy(r.content.replaceChild(r.childCount-1,a));if(r.contentMatchAt(r.childCount).matchType(i==e.length-1?n.type:e[i+1]))return r.copy(r.content.append(p.from(eo(n,e,i+1))))}}function no(e,t){if(t==0)return e;let n=e.content.replaceChild(e.childCount-1,no(e.lastChild,t-1)),r=e.contentMatchAt(e.childCount).fillBefore(p.empty,!0);return e.copy(n.append(r))}function ro(e,t,n,r,i,a){let o=t<0?e.firstChild:e.lastChild,s=o.content;return e.childCount>1&&(a=0),i<r-1&&(s=ro(s,t,n,r,i+1,a)),i>=n&&(s=t<0?o.contentMatchAt(0).fillBefore(s,a<=i).append(s):s.append(o.contentMatchAt(o.childCount).fillBefore(p.empty,!0))),e.replaceChild(t<0?0:e.childCount-1,o.copy(s))}function io(e,t,n){return t<e.openStart&&(e=new y(ro(e.content,-1,t,e.openStart,0,e.openEnd),t,e.openEnd)),n<e.openEnd&&(e=new y(ro(e.content,1,n,e.openEnd,0,0),e.openStart,n)),e}var ao={thead:[`table`],tbody:[`table`],tfoot:[`table`],caption:[`table`],colgroup:[`table`],col:[`table`,`colgroup`],tr:[`table`,`tbody`],td:[`table`,`tbody`,`tr`],th:[`table`,`tbody`,`tr`]},oo=null;function so(){return oo||=document.implementation.createHTMLDocument(`title`)}var co=null;function lo(e){let t=window.trustedTypes;return t?(co||=t.defaultPolicy||t.createPolicy(`ProseMirrorClipboard`,{createHTML:e=>e}),co.createHTML(e)):e}function uo(e){let t=/^(\s*<meta [^>]*>)*/.exec(e);t&&(e=e.slice(t[0].length));let n=so().createElement(`div`),r=/<([a-z][^>\s]+)/i.exec(e),i;if((i=r&&ao[r[1].toLowerCase()])&&(e=i.map(e=>`<`+e+`>`).join(``)+e+i.map(e=>`</`+e+`>`).reverse().join(``)),n.innerHTML=lo(e),i)for(let e=0;e<i.length;e++)n=n.querySelector(i[e])||n;return n}function fo(e){let t=e.querySelectorAll(ei?`span:not([class]):not([style])`:`span.Apple-converted-space`);for(let n=0;n<t.length;n++){let r=t[n];r.childNodes.length==1&&r.textContent==`\xA0`&&r.parentNode&&r.parentNode.replaceChild(e.ownerDocument.createTextNode(` `),r)}}function po(e,t){if(!e.size)return e;let n=e.content.firstChild.type.schema,r;try{r=JSON.parse(t)}catch{return e}let{content:i,openStart:a,openEnd:o}=e;for(let e=r.length-2;e>=0;e-=2){let t=n.nodes[r[e]];if(!t||t.hasRequiredAttrs())break;i=p.from(t.create(r[e+1],i)),a++,o++}return new y(i,a,o)}var mo={},ho={},go={touchstart:!0,touchmove:!0},_o=class{constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:``,button:0},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastChromeDelete=0,this.composing=!1,this.compositionNode=null,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-2e8,this.compositionID=1,this.badSafariComposition=!1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}};function vo(e){for(let t in mo){let n=mo[t];e.dom.addEventListener(t,e.input.eventHandlers[t]=t=>{Co(e,t)&&!So(e,t)&&(e.editable||!(t.type in ho))&&n(e,t)},go[t]?{passive:!0}:void 0)}ni&&e.dom.addEventListener(`input`,()=>null),xo(e)}function yo(e,t){e.input.lastSelectionOrigin=t,e.input.lastSelectionTime=Date.now()}function bo(e){e.domObserver.stop();for(let t in e.input.eventHandlers)e.dom.removeEventListener(t,e.input.eventHandlers[t]);clearTimeout(e.input.composingTimeout),clearTimeout(e.input.lastIOSEnterFallbackTimeout)}function xo(e){e.someProp(`handleDOMEvents`,t=>{for(let n in t)e.input.eventHandlers[n]||e.dom.addEventListener(n,e.input.eventHandlers[n]=t=>So(e,t))})}function So(e,t){return e.someProp(`handleDOMEvents`,n=>{let r=n[t.type];return r?r(e,t)||t.defaultPrevented:!1})}function Co(e,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let n=t.target;n!=e.dom;n=n.parentNode)if(!n||n.nodeType==11||n.pmViewDesc&&n.pmViewDesc.stopEvent(t))return!1;return!0}function wo(e,t){!So(e,t)&&mo[t.type]&&(e.editable||!(t.type in ho))&&mo[t.type](e,t)}ho.keydown=(e,t)=>{let n=t;if(e.input.shiftKey=n.keyCode==16||n.shiftKey,!Ro(e,n)&&(e.input.lastKeyCode=n.keyCode,e.input.lastKeyCodeTime=Date.now(),!(oi&&ei&&n.keyCode==13)))if(n.keyCode!=229&&e.domObserver.forceFlush(),ri&&n.keyCode==13&&!n.ctrlKey&&!n.altKey&&!n.metaKey){let t=Date.now();e.input.lastIOSEnter=t,e.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{e.input.lastIOSEnter==t&&(e.someProp(`handleKeyDown`,t=>t(e,Vr(13,`Enter`))),e.input.lastIOSEnter=0)},200)}else e.someProp(`handleKeyDown`,t=>t(e,n))||Ya(e,n)?n.preventDefault():yo(e,`key`)},ho.keyup=(e,t)=>{t.keyCode==16&&(e.input.shiftKey=!1)},ho.keypress=(e,t)=>{let n=t;if(Ro(e,n)||!n.charCode||n.ctrlKey&&!n.altKey||ii&&n.metaKey)return;if(e.someProp(`handleKeyPress`,t=>t(e,n))){n.preventDefault();return}let r=e.state.selection;if(!(r instanceof P)||!r.$from.sameParent(r.$to)){let t=String.fromCharCode(n.charCode),i=()=>e.state.tr.insertText(t).scrollIntoView();!/[\r\n]/.test(t)&&!e.someProp(`handleTextInput`,n=>n(e,r.$from.pos,r.$to.pos,t,i))&&e.dispatch(i()),n.preventDefault()}};function To(e){return{left:e.clientX,top:e.clientY}}function Eo(e,t){let n=t.x-e.clientX,r=t.y-e.clientY;return n*n+r*r<100}function Do(e,t,n,r,i){if(r==-1)return!1;let a=e.state.doc.resolve(r);for(let r=a.depth+1;r>0;r--)if(e.someProp(t,t=>r>a.depth?t(e,n,a.nodeAfter,a.before(r),i,!0):t(e,n,a.node(r),a.before(r),i,!1)))return!0;return!1}function Oo(e,t,n){if(e.focused||e.focus(),e.state.selection.eq(t))return;let r=e.state.tr.setSelection(t);n==`pointer`&&r.setMeta(`pointer`,!0),e.dispatch(r)}function ko(e,t){if(t==-1)return!1;let n=e.state.doc.resolve(t),r=n.nodeAfter;return r&&r.isAtom&&F.isSelectable(r)?(Oo(e,new F(n),`pointer`),!0):!1}function Ao(e,t){if(t==-1)return!1;let n=e.state.selection,r,i;n instanceof F&&(r=n.node);let a=e.state.doc.resolve(t);for(let e=a.depth+1;e>0;e--){let t=e>a.depth?a.nodeAfter:a.node(e);if(F.isSelectable(t)){i=r&&n.$from.depth>0&&e>=n.$from.depth&&a.before(n.$from.depth+1)==n.$from.pos?a.before(n.$from.depth):a.before(e);break}}return i==null?!1:(Oo(e,F.create(e.state.doc,i),`pointer`),!0)}function jo(e,t,n,r,i){return Do(e,`handleClickOn`,t,n,r)||e.someProp(`handleClick`,n=>n(e,t,r))||(i?Ao(e,n):ko(e,n))}function Mo(e,t,n,r){return Do(e,`handleDoubleClickOn`,t,n,r)||e.someProp(`handleDoubleClick`,n=>n(e,t,r))}function No(e,t,n,r){return Do(e,`handleTripleClickOn`,t,n,r)||e.someProp(`handleTripleClick`,n=>n(e,t,r))||Po(e,n,r)}function Po(e,t,n){if(n.button!=0)return!1;let r=e.state.doc;if(t==-1)return r.inlineContent?(Oo(e,P.create(r,0,r.content.size),`pointer`),!0):!1;let i=r.resolve(t);for(let t=i.depth+1;t>0;t--){let n=t>i.depth?i.nodeAfter:i.node(t),a=i.before(t);if(n.inlineContent)Oo(e,P.create(r,a+1,a+1+n.content.size),`pointer`);else if(F.isSelectable(n))Oo(e,F.create(r,a),`pointer`);else continue;return!0}}function Fo(e){return Go(e)}var Io=ii?`metaKey`:`ctrlKey`;mo.mousedown=(e,t)=>{let n=t;e.input.shiftKey=n.shiftKey;let r=Fo(e),i=Date.now(),a=`singleClick`;i-e.input.lastClick.time<500&&Eo(n,e.input.lastClick)&&!n[Io]&&e.input.lastClick.button==n.button&&(e.input.lastClick.type==`singleClick`?a=`doubleClick`:e.input.lastClick.type==`doubleClick`&&(a=`tripleClick`)),e.input.lastClick={time:i,x:n.clientX,y:n.clientY,type:a,button:n.button};let o=e.posAtCoords(To(n));o&&(a==`singleClick`?(e.input.mouseDown&&e.input.mouseDown.done(),e.input.mouseDown=new Lo(e,o,n,!!r)):(a==`doubleClick`?Mo:No)(e,o.pos,o.inside,n)?n.preventDefault():yo(e,`pointer`))};var Lo=class{constructor(e,t,n,r){this.view=e,this.pos=t,this.event=n,this.flushed=r,this.delayedSelectionSync=!1,this.mightDrag=null,this.startDoc=e.state.doc,this.selectNode=!!n[Io],this.allowDefault=n.shiftKey;let i,a;if(t.inside>-1)i=e.state.doc.nodeAt(t.inside),a=t.inside;else{let n=e.state.doc.resolve(t.pos);i=n.parent,a=n.depth?n.before():0}let o=r?null:n.target,s=o?e.docView.nearestDesc(o,!0):null;this.target=s&&s.nodeDOM.nodeType==1?s.nodeDOM:null;let{selection:c}=e.state;n.button==0&&(i.type.spec.draggable&&i.type.spec.selectable!==!1||c instanceof F&&c.from<=a&&c.to>a)&&(this.mightDrag={node:i,pos:a,addAttr:!!(this.target&&!this.target.draggable),setUneditable:!!(this.target&&Qr&&!this.target.hasAttribute(`contentEditable`))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute(`contentEditable`,`false`)},20),this.view.domObserver.start()),e.root.addEventListener(`mouseup`,this.up=this.up.bind(this)),e.root.addEventListener(`mousemove`,this.move=this.move.bind(this)),yo(e,`pointer`)}done(){this.view.root.removeEventListener(`mouseup`,this.up),this.view.root.removeEventListener(`mousemove`,this.move),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute(`draggable`),this.mightDrag.setUneditable&&this.target.removeAttribute(`contentEditable`),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>va(this.view)),this.view.input.mouseDown=null}up(e){if(this.done(),!this.view.dom.contains(e.target))return;let t=this.pos;this.view.state.doc!=this.startDoc&&(t=this.view.posAtCoords(To(e))),this.updateAllowDefault(e),this.allowDefault||!t?yo(this.view,`pointer`):jo(this.view,t.pos,t.inside,e,this.selectNode)?e.preventDefault():e.button==0&&(this.flushed||ni&&this.mightDrag&&!this.mightDrag.node.isAtom||ei&&!this.view.state.selection.visible&&Math.min(Math.abs(t.pos-this.view.state.selection.from),Math.abs(t.pos-this.view.state.selection.to))<=2)?(Oo(this.view,N.near(this.view.state.doc.resolve(t.pos)),`pointer`),e.preventDefault()):yo(this.view,`pointer`)}move(e){this.updateAllowDefault(e),yo(this.view,`pointer`),e.buttons==0&&this.done()}updateAllowDefault(e){!this.allowDefault&&(Math.abs(this.event.x-e.clientX)>4||Math.abs(this.event.y-e.clientY)>4)&&(this.allowDefault=!0)}};mo.touchstart=e=>{e.input.lastTouch=Date.now(),Fo(e),yo(e,`pointer`)},mo.touchmove=e=>{e.input.lastTouch=Date.now(),yo(e,`pointer`)},mo.contextmenu=e=>Fo(e);function Ro(e,t){return e.composing?!0:ni&&Math.abs(t.timeStamp-e.input.compositionEndedAt)<500?(e.input.compositionEndedAt=-2e8,!0):!1}var zo=oi?5e3:-1;ho.compositionstart=ho.compositionupdate=e=>{if(!e.composing){e.domObserver.flush();let{state:t}=e,n=t.selection.$to;if(t.selection instanceof P&&(t.storedMarks||!n.textOffset&&n.parentOffset&&n.nodeBefore.marks.some(e=>e.type.spec.inclusive===!1)||ei&&ai&&Bo(e)))e.markCursor=e.state.storedMarks||n.marks(),Go(e,!0),e.markCursor=null;else if(Go(e,!t.selection.empty),Qr&&t.selection.empty&&n.parentOffset&&!n.textOffset&&n.nodeBefore.marks.length){let t=e.domSelectionRange();for(let n=t.focusNode,r=t.focusOffset;n&&n.nodeType==1&&r!=0;){let t=r<0?n.lastChild:n.childNodes[r-1];if(!t)break;if(t.nodeType==3){let n=e.domSelection();n&&n.collapse(t,t.nodeValue.length);break}else n=t,r=-1}}e.input.composing=!0}Vo(e,zo)};function Bo(e){let{focusNode:t,focusOffset:n}=e.domSelectionRange();if(!t||t.nodeType!=1||n>=t.childNodes.length)return!1;let r=t.childNodes[n];return r.nodeType==1&&r.contentEditable==`false`}ho.compositionend=(e,t)=>{e.composing&&(e.input.composing=!1,e.input.compositionEndedAt=t.timeStamp,e.input.compositionPendingChanges=e.domObserver.pendingRecords().length?e.input.compositionID:0,e.input.compositionNode=null,e.input.badSafariComposition?e.domObserver.forceFlush():e.input.compositionPendingChanges&&Promise.resolve().then(()=>e.domObserver.flush()),e.input.compositionID++,Vo(e,20))};function Vo(e,t){clearTimeout(e.input.composingTimeout),t>-1&&(e.input.composingTimeout=setTimeout(()=>Go(e),t))}function Ho(e){for(e.composing&&(e.input.composing=!1,e.input.compositionEndedAt=Wo());e.input.compositionNodes.length>0;)e.input.compositionNodes.pop().markParentsDirty()}function Uo(e){let t=e.domSelectionRange();if(!t.focusNode)return null;let n=Ir(t.focusNode,t.focusOffset),r=Lr(t.focusNode,t.focusOffset);if(n&&r&&n!=r){let t=r.pmViewDesc,i=e.domObserver.lastChangedTextNode;if(n==i||r==i)return i;if(!t||!t.isText(r.nodeValue))return r;if(e.input.compositionNode==r){let e=n.pmViewDesc;if(!(!e||!e.isText(n.nodeValue)))return r}}return n||r}function Wo(){let e=document.createEvent(`Event`);return e.initEvent(`event`,!0,!0),e.timeStamp}function Go(e,t=!1){if(!(oi&&e.domObserver.flushingSoon>=0)){if(e.domObserver.forceFlush(),Ho(e),t||e.docView&&e.docView.dirty){let n=ga(e),r=e.state.selection;return n&&!n.eq(r)?e.dispatch(e.state.tr.setSelection(n)):(e.markCursor||t)&&!r.$from.node(r.$from.sharedDepth(r.to)).inlineContent?e.dispatch(e.state.tr.deleteSelection()):e.updateState(e.state),!0}return!1}}function Ko(e,t){if(!e.dom.parentNode)return;let n=e.dom.parentNode.appendChild(document.createElement(`div`));n.appendChild(t),n.style.cssText=`position: fixed; left: -10000px; top: 10px`;let r=getSelection(),i=document.createRange();i.selectNodeContents(t),e.dom.blur(),r.removeAllRanges(),r.addRange(i),setTimeout(()=>{n.parentNode&&n.parentNode.removeChild(n),e.focus()},50)}var qo=Xr&&Zr<15||ri&&ci<604;mo.copy=ho.cut=(e,t)=>{let n=t,r=e.state.selection,i=n.type==`cut`;if(r.empty)return;let a=qo?null:n.clipboardData,{dom:o,text:s}=Xa(e,r.content());a?(n.preventDefault(),a.clearData(),a.setData(`text/html`,o.innerHTML),a.setData(`text/plain`,s)):Ko(e,o),i&&e.dispatch(e.state.tr.deleteSelection().scrollIntoView().setMeta(`uiEvent`,`cut`))};function Jo(e){return e.openStart==0&&e.openEnd==0&&e.content.childCount==1?e.content.firstChild:null}function Yo(e,t){if(!e.dom.parentNode)return;let n=e.input.shiftKey||e.state.selection.$from.parent.type.spec.code,r=e.dom.parentNode.appendChild(document.createElement(n?`textarea`:`div`));n||(r.contentEditable=`true`),r.style.cssText=`position: fixed; left: -10000px; top: 10px`,r.focus();let i=e.input.shiftKey&&e.input.lastKeyCode!=45;setTimeout(()=>{e.focus(),r.parentNode&&r.parentNode.removeChild(r),n?Xo(e,r.value,null,i,t):Xo(e,r.textContent,r.innerHTML,i,t)},50)}function Xo(e,t,n,r,i){let a=Za(e,t,n,r,e.state.selection.$from);if(e.someProp(`handlePaste`,t=>t(e,i,a||y.empty)))return!0;if(!a)return!1;let o=Jo(a),s=o?e.state.tr.replaceSelectionWith(o,r):e.state.tr.replaceSelection(a);return e.dispatch(s.scrollIntoView().setMeta(`paste`,!0).setMeta(`uiEvent`,`paste`)),!0}function Zo(e){let t=e.getData(`text/plain`)||e.getData(`Text`);if(t)return t;let n=e.getData(`text/uri-list`);return n?n.replace(/\r?\n/g,` `):``}ho.paste=(e,t)=>{let n=t;if(e.composing&&!oi)return;let r=qo?null:n.clipboardData,i=e.input.shiftKey&&e.input.lastKeyCode!=45;r&&Xo(e,Zo(r),r.getData(`text/html`),i,n)?n.preventDefault():Yo(e,n)};var Qo=class{constructor(e,t,n){this.slice=e,this.move=t,this.node=n}},$o=ii?`altKey`:`ctrlKey`;function es(e,t){let n;return e.someProp(`dragCopies`,e=>{n||=e(t)}),n==null?!t[$o]:!n}mo.dragstart=(e,t)=>{let n=t,r=e.input.mouseDown;if(r&&r.done(),!n.dataTransfer)return;let i=e.state.selection,a=i.empty?null:e.posAtCoords(To(n)),o;if(!(a&&a.pos>=i.from&&a.pos<=(i instanceof F?i.to-1:i.to))){if(r&&r.mightDrag)o=F.create(e.state.doc,r.mightDrag.pos);else if(n.target&&n.target.nodeType==1){let t=e.docView.nearestDesc(n.target,!0);t&&t.node.type.spec.draggable&&t!=e.docView&&(o=F.create(e.state.doc,t.posBefore))}}let{dom:s,text:c,slice:l}=Xa(e,(o||e.state.selection).content());(!n.dataTransfer.files.length||!ei||ti>120)&&n.dataTransfer.clearData(),n.dataTransfer.setData(qo?`Text`:`text/html`,s.innerHTML),n.dataTransfer.effectAllowed=`copyMove`,qo||n.dataTransfer.setData(`text/plain`,c),e.dragging=new Qo(l,es(e,n),o)},mo.dragend=e=>{let t=e.dragging;window.setTimeout(()=>{e.dragging==t&&(e.dragging=null)},50)},ho.dragover=ho.dragenter=(e,t)=>t.preventDefault(),ho.drop=(e,t)=>{try{ts(e,t,e.dragging)}finally{e.dragging=null}};function ts(e,t,n){if(!t.dataTransfer)return;let r=e.posAtCoords(To(t));if(!r)return;let i=e.state.doc.resolve(r.pos),a=n&&n.slice;a?e.someProp(`transformPasted`,t=>{a=t(a,e,!1)}):a=Za(e,Zo(t.dataTransfer),qo?null:t.dataTransfer.getData(`text/html`),!1,i);let o=!!(n&&es(e,t));if(e.someProp(`handleDrop`,n=>n(e,t,a||y.empty,o))){t.preventDefault();return}if(!a)return;t.preventDefault();let s=a?Jt(e.state.doc,i.pos,a):i.pos;s??=i.pos;let c=e.state.tr;if(o){let{node:e}=n;e?e.replace(c):c.deleteSelection()}let l=c.mapping.map(s),u=a.openStart==0&&a.openEnd==0&&a.content.childCount==1,d=c.doc;if(u?c.replaceRangeWith(l,l,a.content.firstChild):c.replaceRange(l,l,a),c.doc.eq(d))return;let f=c.doc.resolve(l);if(u&&F.isSelectable(a.content.firstChild)&&f.nodeAfter&&f.nodeAfter.sameMarkup(a.content.firstChild))c.setSelection(new F(f));else{let t=c.mapping.map(s);c.mapping.maps[c.mapping.maps.length-1].forEach((e,n,r,i)=>t=i),c.setSelection(Da(e,f,c.doc.resolve(t)))}e.focus(),e.dispatch(c.setMeta(`uiEvent`,`drop`))}mo.focus=e=>{e.input.lastFocus=Date.now(),e.focused||(e.domObserver.stop(),e.dom.classList.add(`ProseMirror-focused`),e.domObserver.start(),e.focused=!0,setTimeout(()=>{e.docView&&e.hasFocus()&&!e.domObserver.currentSelection.eq(e.domSelectionRange())&&va(e)},20))},mo.blur=(e,t)=>{let n=t;e.focused&&=(e.domObserver.stop(),e.dom.classList.remove(`ProseMirror-focused`),e.domObserver.start(),n.relatedTarget&&e.dom.contains(n.relatedTarget)&&e.domObserver.currentSelection.clear(),!1)},mo.beforeinput=(e,t)=>{if(ei&&oi&&t.inputType==`deleteContentBackward`){e.domObserver.flushSoon();let{domChangeCount:t}=e.input;setTimeout(()=>{if(e.input.domChangeCount!=t||(e.dom.blur(),e.focus(),e.someProp(`handleKeyDown`,t=>t(e,Vr(8,`Backspace`)))))return;let{$cursor:n}=e.state.selection;n&&n.pos>0&&e.dispatch(e.state.tr.delete(n.pos-1,n.pos).scrollIntoView())},50)}};for(let e in ho)mo[e]=ho[e];function ns(e,t){if(e==t)return!0;for(let n in e)if(e[n]!==t[n])return!1;for(let n in t)if(!(n in e))return!1;return!0}var rs=class e{constructor(e,t){this.toDOM=e,this.spec=t||ls,this.side=this.spec.side||0}map(e,t,n,r){let{pos:i,deleted:a}=e.mapResult(t.from+r,this.side<0?-1:1);return a?null:new ss(i-n,i-n,this)}valid(){return!0}eq(t){return this==t||t instanceof e&&(this.spec.key&&this.spec.key==t.spec.key||this.toDOM==t.toDOM&&ns(this.spec,t.spec))}destroy(e){this.spec.destroy&&this.spec.destroy(e)}},is=class e{constructor(e,t){this.attrs=e,this.spec=t||ls}map(e,t,n,r){let i=e.map(t.from+r,this.spec.inclusiveStart?-1:1)-n,a=e.map(t.to+r,this.spec.inclusiveEnd?1:-1)-n;return i>=a?null:new ss(i,a,this)}valid(e,t){return t.from<t.to}eq(t){return this==t||t instanceof e&&ns(this.attrs,t.attrs)&&ns(this.spec,t.spec)}static is(t){return t.type instanceof e}destroy(){}},as=class e{constructor(e,t){this.attrs=e,this.spec=t||ls}map(e,t,n,r){let i=e.mapResult(t.from+r,1);if(i.deleted)return null;let a=e.mapResult(t.to+r,-1);return a.deleted||a.pos<=i.pos?null:new ss(i.pos-n,a.pos-n,this)}valid(e,t){let{index:n,offset:r}=e.content.findIndex(t.from),i;return r==t.from&&!(i=e.child(n)).isText&&r+i.nodeSize==t.to}eq(t){return this==t||t instanceof e&&ns(this.attrs,t.attrs)&&ns(this.spec,t.spec)}destroy(){}},ss=class e{constructor(e,t,n){this.from=e,this.to=t,this.type=n}copy(t,n){return new e(t,n,this.type)}eq(e,t=0){return this.type.eq(e.type)&&this.from+t==e.from&&this.to+t==e.to}map(e,t,n){return this.type.map(e,this,t,n)}static widget(t,n,r){return new e(t,t,new rs(n,r))}static inline(t,n,r,i){return new e(t,n,new is(r,i))}static node(t,n,r,i){return new e(t,n,new as(r,i))}get spec(){return this.type.spec}get inline(){return this.type instanceof is}get widget(){return this.type instanceof rs}},cs=[],ls={},R=class e{constructor(e,t){this.local=e.length?e:cs,this.children=t.length?t:cs}static create(e,t){return t.length?_s(t,e,0,ls):us}find(e,t,n){let r=[];return this.findInner(e??0,t??1e9,r,0,n),r}findInner(e,t,n,r,i){for(let a=0;a<this.local.length;a++){let o=this.local[a];o.from<=t&&o.to>=e&&(!i||i(o.spec))&&n.push(o.copy(o.from+r,o.to+r))}for(let a=0;a<this.children.length;a+=3)if(this.children[a]<t&&this.children[a+1]>e){let o=this.children[a]+1;this.children[a+2].findInner(e-o,t-o,n,r+o,i)}}map(e,t,n){return this==us||e.maps.length==0?this:this.mapInner(e,t,0,0,n||ls)}mapInner(t,n,r,i,a){let o;for(let e=0;e<this.local.length;e++){let s=this.local[e].map(t,r,i);s&&s.type.valid(n,s)?(o||=[]).push(s):a.onRemove&&a.onRemove(this.local[e].spec)}return this.children.length?fs(this.children,o||[],t,n,r,i,a):o?new e(o.sort(vs),cs):us}add(t,n){return n.length?this==us?e.create(t,n):this.addInner(t,n,0):this}addInner(t,n,r){let i,a=0;t.forEach((e,t)=>{let o=t+r,s;if(s=hs(n,e,o)){for(i||=this.children.slice();a<i.length&&i[a]<t;)a+=3;i[a]==t?i[a+2]=i[a+2].addInner(e,s,o+1):i.splice(a,0,t,t+e.nodeSize,_s(s,e,o+1,ls)),a+=3}});let o=ps(a?gs(n):n,-r);for(let e=0;e<o.length;e++)o[e].type.valid(t,o[e])||o.splice(e--,1);return new e(o.length?this.local.concat(o).sort(vs):this.local,i||this.children)}remove(e){return e.length==0||this==us?this:this.removeInner(e,0)}removeInner(t,n){let r=this.children,i=this.local;for(let e=0;e<r.length;e+=3){let i,a=r[e]+n,o=r[e+1]+n;for(let e=0,n;e<t.length;e++)(n=t[e])&&n.from>a&&n.to<o&&(t[e]=null,(i||=[]).push(n));if(!i)continue;r==this.children&&(r=this.children.slice());let s=r[e+2].removeInner(i,a+1);s==us?(r.splice(e,3),e-=3):r[e+2]=s}if(i.length){for(let e=0,r;e<t.length;e++)if(r=t[e])for(let e=0;e<i.length;e++)i[e].eq(r,n)&&(i==this.local&&(i=this.local.slice()),i.splice(e--,1))}return r==this.children&&i==this.local?this:i.length||r.length?new e(i,r):us}forChild(t,n){if(this==us)return this;if(n.isLeaf)return e.empty;let r,i;for(let e=0;e<this.children.length;e+=3)if(this.children[e]>=t){this.children[e]==t&&(r=this.children[e+2]);break}let a=t+1,o=a+n.content.size;for(let e=0;e<this.local.length;e++){let t=this.local[e];if(t.from<o&&t.to>a&&t.type instanceof is){let e=Math.max(a,t.from)-a,n=Math.min(o,t.to)-a;e<n&&(i||=[]).push(t.copy(e,n))}}if(i){let t=new e(i.sort(vs),cs);return r?new ds([t,r]):t}return r||us}eq(t){if(this==t)return!0;if(!(t instanceof e)||this.local.length!=t.local.length||this.children.length!=t.children.length)return!1;for(let e=0;e<this.local.length;e++)if(!this.local[e].eq(t.local[e]))return!1;for(let e=0;e<this.children.length;e+=3)if(this.children[e]!=t.children[e]||this.children[e+1]!=t.children[e+1]||!this.children[e+2].eq(t.children[e+2]))return!1;return!0}locals(e){return ys(this.localsInner(e))}localsInner(e){if(this==us)return cs;if(e.inlineContent||!this.local.some(is.is))return this.local;let t=[];for(let e=0;e<this.local.length;e++)this.local[e].type instanceof is||t.push(this.local[e]);return t}forEachSet(e){e(this)}};R.empty=new R([],[]),R.removeOverlap=ys;var us=R.empty,ds=class e{constructor(e){this.members=e}map(t,n){let r=this.members.map(e=>e.map(t,n,ls));return e.from(r)}forChild(t,n){if(n.isLeaf)return R.empty;let r=[];for(let i=0;i<this.members.length;i++){let a=this.members[i].forChild(t,n);a!=us&&(a instanceof e?r=r.concat(a.members):r.push(a))}return e.from(r)}eq(t){if(!(t instanceof e)||t.members.length!=this.members.length)return!1;for(let e=0;e<this.members.length;e++)if(!this.members[e].eq(t.members[e]))return!1;return!0}locals(e){let t,n=!0;for(let r=0;r<this.members.length;r++){let i=this.members[r].localsInner(e);if(i.length)if(!t)t=i;else{n&&=(t=t.slice(),!1);for(let e=0;e<i.length;e++)t.push(i[e])}}return t?ys(n?t:t.sort(vs)):cs}static from(t){switch(t.length){case 0:return us;case 1:return t[0];default:return new e(t.every(e=>e instanceof R)?t:t.reduce((e,t)=>e.concat(t instanceof R?t:t.members),[]))}}forEachSet(e){for(let t=0;t<this.members.length;t++)this.members[t].forEachSet(e)}};function fs(e,t,n,r,i,a,o){let s=e.slice();for(let e=0,t=a;e<n.maps.length;e++){let r=0;n.maps[e].forEach((e,n,i,a)=>{let o=a-i-(n-e);for(let i=0;i<s.length;i+=3){let a=s[i+1];if(a<0||e>a+t-r)continue;let c=s[i]+t-r;n>=c?s[i+1]=e<=c?-2:-1:e>=t&&o&&(s[i]+=o,s[i+1]+=o)}r+=o}),t=n.maps[e].map(t,-1)}let c=!1;for(let t=0;t<s.length;t+=3)if(s[t+1]<0){if(s[t+1]==-2){c=!0,s[t+1]=-1;continue}let l=n.map(e[t]+a),u=l-i;if(u<0||u>=r.content.size){c=!0;continue}let d=n.map(e[t+1]+a,-1)-i,{index:f,offset:p}=r.content.findIndex(u),m=r.maybeChild(f);if(m&&p==u&&p+m.nodeSize==d){let r=s[t+2].mapInner(n,m,l+1,e[t]+a+1,o);r==us?(s[t+1]=-2,c=!0):(s[t]=u,s[t+1]=d,s[t+2]=r)}else c=!0}if(c){let c=_s(ms(s,e,t,n,i,a,o),r,0,o);t=c.local;for(let e=0;e<s.length;e+=3)s[e+1]<0&&(s.splice(e,3),e-=3);for(let e=0,t=0;e<c.children.length;e+=3){let n=c.children[e];for(;t<s.length&&s[t]<n;)t+=3;s.splice(t,0,c.children[e],c.children[e+1],c.children[e+2])}}return new R(t.sort(vs),s)}function ps(e,t){if(!t||!e.length)return e;let n=[];for(let r=0;r<e.length;r++){let i=e[r];n.push(new ss(i.from+t,i.to+t,i.type))}return n}function ms(e,t,n,r,i,a,o){function s(e,t){for(let a=0;a<e.local.length;a++){let s=e.local[a].map(r,i,t);s?n.push(s):o.onRemove&&o.onRemove(e.local[a].spec)}for(let n=0;n<e.children.length;n+=3)s(e.children[n+2],e.children[n]+t+1)}for(let n=0;n<e.length;n+=3)e[n+1]==-1&&s(e[n+2],t[n]+a+1);return n}function hs(e,t,n){if(t.isLeaf)return null;let r=n+t.nodeSize,i=null;for(let t=0,a;t<e.length;t++)(a=e[t])&&a.from>n&&a.to<r&&((i||=[]).push(a),e[t]=null);return i}function gs(e){let t=[];for(let n=0;n<e.length;n++)e[n]!=null&&t.push(e[n]);return t}function _s(e,t,n,r){let i=[],a=!1;t.forEach((t,o)=>{let s=hs(e,t,o+n);if(s){a=!0;let e=_s(s,t,n+o+1,r);e!=us&&i.push(o,o+t.nodeSize,e)}});let o=ps(a?gs(e):e,-n).sort(vs);for(let e=0;e<o.length;e++)o[e].type.valid(t,o[e])||(r.onRemove&&r.onRemove(o[e].spec),o.splice(e--,1));return o.length||i.length?new R(o,i):us}function vs(e,t){return e.from-t.from||e.to-t.to}function ys(e){let t=e;for(let n=0;n<t.length-1;n++){let r=t[n];if(r.from!=r.to)for(let i=n+1;i<t.length;i++){let a=t[i];if(a.from==r.from){a.to!=r.to&&(t==e&&(t=e.slice()),t[i]=a.copy(a.from,r.to),bs(t,i+1,a.copy(r.to,a.to)));continue}else{a.from<r.to&&(t==e&&(t=e.slice()),t[n]=r.copy(r.from,a.from),bs(t,i,r.copy(a.from,r.to)));break}}}return t}function bs(e,t,n){for(;t<e.length&&vs(n,e[t])>0;)t++;e.splice(t,0,n)}function xs(e){let t=[];return e.someProp(`decorations`,n=>{let r=n(e.state);r&&r!=us&&t.push(r)}),e.cursorWrapper&&t.push(R.create(e.state.doc,[e.cursorWrapper.deco])),ds.from(t)}var Ss={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},Cs=Xr&&Zr<=11,ws=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(e){return e.anchorNode==this.anchorNode&&e.anchorOffset==this.anchorOffset&&e.focusNode==this.focusNode&&e.focusOffset==this.focusOffset}},Ts=class{constructor(e,t){this.view=e,this.handleDOMChange=t,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new ws,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.lastChangedTextNode=null,this.observer=window.MutationObserver&&new window.MutationObserver(t=>{for(let e=0;e<t.length;e++)this.queue.push(t[e]);Xr&&Zr<=11&&t.some(e=>e.type==`childList`&&e.removedNodes.length||e.type==`characterData`&&e.oldValue.length>e.target.nodeValue.length)?this.flushSoon():ni&&e.composing&&t.some(e=>e.type==`childList`&&e.target.nodeName==`TR`)?(e.input.badSafariComposition=!0,this.flushSoon()):this.flush()}),Cs&&(this.onCharData=e=>{this.queue.push({target:e.target,type:`characterData`,oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,Ss)),this.onCharData&&this.view.dom.addEventListener(`DOMCharacterDataModified`,this.onCharData),this.connectSelection()}stop(){if(this.observer){let e=this.observer.takeRecords();if(e.length){for(let t=0;t<e.length;t++)this.queue.push(e[t]);window.setTimeout(()=>this.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener(`DOMCharacterDataModified`,this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener(`selectionchange`,this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener(`selectionchange`,this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(Oa(this.view)){if(this.suppressingSelectionUpdates)return va(this.view);if(Xr&&Zr<=11&&!this.view.state.selection.empty){let e=this.view.domSelectionRange();if(e.focusNode&&Mr(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(e){if(!e.focusNode)return!0;let t=new Set,n;for(let n=e.focusNode;n;n=Or(n))t.add(n);for(let r=e.anchorNode;r;r=Or(r))if(t.has(r)){n=r;break}let r=n&&this.view.docView.nearestDesc(n);if(r&&r.ignoreMutation({type:`selection`,target:n.nodeType==3?n.parentNode:n}))return this.setCurSelection(),!0}pendingRecords(){if(this.observer)for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}flush(){let{view:e}=this;if(!e.docView||this.flushingSoon>-1)return;let t=this.pendingRecords();t.length&&(this.queue=[]);let n=e.domSelectionRange(),r=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(n)&&Oa(e)&&!this.ignoreSelectionChange(n),i=-1,a=-1,o=!1,s=[];if(e.editable)for(let e=0;e<t.length;e++){let n=this.registerMutation(t[e],s);n&&(i=i<0?n.from:Math.min(n.from,i),a=a<0?n.to:Math.max(n.to,a),n.typeOver&&(o=!0))}if(s.some(e=>e.nodeName==`BR`)&&(e.input.lastKeyCode==8||e.input.lastKeyCode==46)){for(let e of s)if(e.nodeName==`BR`&&e.parentNode){let t=e.nextSibling;for(;t&&t.nodeType==1;){if(t.contentEditable==`false`){e.parentNode.removeChild(e);break}t=t.firstChild}}}else if(Qr&&s.length){let t=s.filter(e=>e.nodeName==`BR`);if(t.length==2){let[e,n]=t;e.parentNode&&e.parentNode.parentNode==n.parentNode?n.remove():e.remove()}else{let{focusNode:n}=this.currentSelection;for(let r of t){let t=r.parentNode;t&&t.nodeName==`LI`&&(!n||js(e,n)!=t)&&r.remove()}}}let c=null;i<0&&r&&e.input.lastFocus>Date.now()-200&&Math.max(e.input.lastTouch,e.input.lastClick.time)<Date.now()-300&&Br(n)&&(c=ga(e))&&c.eq(N.near(e.state.doc.resolve(0),1))?(e.input.lastFocus=0,va(e),this.currentSelection.set(n),e.scrollToSelection()):(i>-1||r)&&(i>-1&&(e.docView.markDirty(i,a),Os(e)),e.input.badSafariComposition&&(e.input.badSafariComposition=!1,Ms(e,s)),this.handleDOMChange(i,a,o,s),e.docView&&e.docView.dirty?e.updateState(e.state):this.currentSelection.eq(n)||va(e),this.currentSelection.set(n))}registerMutation(e,t){if(t.indexOf(e.target)>-1)return null;let n=this.view.docView.nearestDesc(e.target);if(e.type==`attributes`&&(n==this.view.docView||e.attributeName==`contenteditable`||e.attributeName==`style`&&!e.oldValue&&!e.target.getAttribute(`style`))||!n||n.ignoreMutation(e))return null;if(e.type==`childList`){for(let n=0;n<e.addedNodes.length;n++){let r=e.addedNodes[n];t.push(r),r.nodeType==3&&(this.lastChangedTextNode=r)}if(n.contentDOM&&n.contentDOM!=n.dom&&!n.contentDOM.contains(e.target))return{from:n.posBefore,to:n.posAfter};let r=e.previousSibling,i=e.nextSibling;if(Xr&&Zr<=11&&e.addedNodes.length)for(let t=0;t<e.addedNodes.length;t++){let{previousSibling:n,nextSibling:a}=e.addedNodes[t];(!n||Array.prototype.indexOf.call(e.addedNodes,n)<0)&&(r=n),(!a||Array.prototype.indexOf.call(e.addedNodes,a)<0)&&(i=a)}let a=r&&r.parentNode==e.target?Dr(r)+1:0,o=n.localPosFromDOM(e.target,a,-1),s=i&&i.parentNode==e.target?Dr(i):e.target.childNodes.length;return{from:o,to:n.localPosFromDOM(e.target,s,1)}}else if(e.type==`attributes`)return{from:n.posAtStart-n.border,to:n.posAtEnd+n.border};else return this.lastChangedTextNode=e.target,{from:n.posAtStart,to:n.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}}},Es=new WeakMap,Ds=!1;function Os(e){if(!Es.has(e)&&(Es.set(e,null),[`normal`,`nowrap`,`pre-line`].indexOf(getComputedStyle(e.dom).whiteSpace)!==-1)){if(e.requiresGeckoHackNode=Qr,Ds)return;console.warn(`ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package.`),Ds=!0}}function ks(e,t){let n=t.startContainer,r=t.startOffset,i=t.endContainer,a=t.endOffset,o=e.domAtPos(e.state.selection.anchor);return Mr(o.node,o.offset,i,a)&&([n,r,i,a]=[i,a,n,r]),{anchorNode:n,anchorOffset:r,focusNode:i,focusOffset:a}}function As(e,t){if(t.getComposedRanges){let n=t.getComposedRanges(e.root)[0];if(n)return ks(e,n)}let n;function r(e){e.preventDefault(),e.stopImmediatePropagation(),n=e.getTargetRanges()[0]}return e.dom.addEventListener(`beforeinput`,r,!0),document.execCommand(`indent`),e.dom.removeEventListener(`beforeinput`,r,!0),n?ks(e,n):null}function js(e,t){for(let n=t.parentNode;n&&n!=e.dom;n=n.parentNode){let t=e.docView.nearestDesc(n,!0);if(t&&t.node.isBlock)return n}return null}function Ms(e,t){let{focusNode:n,focusOffset:r}=e.domSelectionRange();for(let i of t)if(i.parentNode?.nodeName==`TR`){let t=i.nextSibling;for(;t&&t.nodeName!=`TD`&&t.nodeName!=`TH`;)t=t.nextSibling;if(t){let a=t;for(;;){let e=a.firstChild;if(!e||e.nodeType!=1||e.contentEditable==`false`||/^(BR|IMG)$/.test(e.nodeName))break;a=e}a.insertBefore(i,a.firstChild),n==i&&e.domSelection().collapse(i,r)}else i.parentNode.removeChild(i)}}function Ns(e,t,n){let{node:r,fromOffset:i,toOffset:a,from:o,to:s}=e.docView.parseRange(t,n),c=e.domSelectionRange(),l,u=c.anchorNode;if(u&&e.dom.contains(u.nodeType==1?u:u.parentNode)&&(l=[{node:u,offset:c.anchorOffset}],Br(c)||l.push({node:c.focusNode,offset:c.focusOffset})),ei&&e.input.lastKeyCode===8)for(let e=a;e>i;e--){let t=r.childNodes[e-1],n=t.pmViewDesc;if(t.nodeName==`BR`&&!n){a=e;break}if(!n||n.size)break}let d=e.state.doc,f=e.someProp(`domParser`)||Pe.fromSchema(e.state.schema),p=d.resolve(o),m=null,h=f.parse(r,{topNode:p.parent,topMatch:p.parent.contentMatchAt(p.index()),topOpen:!0,from:i,to:a,preserveWhitespace:p.parent.type.whitespace==`pre`?`full`:!0,findPositions:l,ruleFromNode:Ps,context:p});if(l&&l[0].pos!=null){let e=l[0].pos,t=l[1]&&l[1].pos;t??=e,m={anchor:e+o,head:t+o}}return{doc:h,sel:m,from:o,to:s}}function Ps(e){let t=e.pmViewDesc;if(t)return t.parseRule();if(e.nodeName==`BR`&&e.parentNode){if(ni&&/^(ul|ol)$/i.test(e.parentNode.nodeName)){let e=document.createElement(`div`);return e.appendChild(document.createElement(`li`)),{skip:e}}else if(e.parentNode.lastChild==e||ni&&/^(tr|table)$/i.test(e.parentNode.nodeName))return{ignore:!0}}else if(e.nodeName==`IMG`&&e.getAttribute(`mark-placeholder`))return{ignore:!0};return null}var Fs=/^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|img|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;function Is(e,t,n,r,i){let a=e.input.compositionPendingChanges||(e.composing?e.input.compositionID:0);if(e.input.compositionPendingChanges=0,t<0){let t=e.input.lastSelectionTime>Date.now()-50?e.input.lastSelectionOrigin:null,n=ga(e,t);if(n&&!e.state.selection.eq(n)){if(ei&&oi&&e.input.lastKeyCode===13&&Date.now()-100<e.input.lastKeyCodeTime&&e.someProp(`handleKeyDown`,t=>t(e,Vr(13,`Enter`))))return;let r=e.state.tr.setSelection(n);t==`pointer`?r.setMeta(`pointer`,!0):t==`key`&&r.scrollIntoView(),a&&r.setMeta(`composition`,a),e.dispatch(r)}return}let o=e.state.doc.resolve(t),s=o.sharedDepth(n);t=o.before(s+1),n=e.state.doc.resolve(n).after(s+1);let c=e.state.selection,l=Ns(e,t,n),u=e.state.doc,d=u.slice(l.from,l.to),f,p;e.input.lastKeyCode===8&&Date.now()-100<e.input.lastKeyCodeTime?(f=e.state.selection.to,p=`end`):(f=e.state.selection.from,p=`start`),e.input.lastKeyCode=null;let m=Vs(d.content,l.doc.content,l.from,f,p);if(m&&e.input.domChangeCount++,(ri&&e.input.lastIOSEnter>Date.now()-225||oi)&&i.some(e=>e.nodeType==1&&!Fs.test(e.nodeName))&&(!m||m.endA>=m.endB)&&e.someProp(`handleKeyDown`,t=>t(e,Vr(13,`Enter`)))){e.input.lastIOSEnter=0;return}if(!m)if(r&&c instanceof P&&!c.empty&&c.$head.sameParent(c.$anchor)&&!e.composing&&!(l.sel&&l.sel.anchor!=l.sel.head))m={start:c.from,endA:c.to,endB:c.to};else{if(l.sel){let t=Ls(e,e.state.doc,l.sel);if(t&&!t.eq(e.state.selection)){let n=e.state.tr.setSelection(t);a&&n.setMeta(`composition`,a),e.dispatch(n)}}return}e.state.selection.from<e.state.selection.to&&m.start==m.endB&&e.state.selection instanceof P&&(m.start>e.state.selection.from&&m.start<=e.state.selection.from+2&&e.state.selection.from>=l.from?m.start=e.state.selection.from:m.endA<e.state.selection.to&&m.endA>=e.state.selection.to-2&&e.state.selection.to<=l.to&&(m.endB+=e.state.selection.to-m.endA,m.endA=e.state.selection.to)),Xr&&Zr<=11&&m.endB==m.start+1&&m.endA==m.start&&m.start>l.from&&l.doc.textBetween(m.start-l.from-1,m.start-l.from+1)==` \xA0`&&(m.start--,m.endA--,m.endB--);let h=l.doc.resolveNoCache(m.start-l.from),g=l.doc.resolveNoCache(m.endB-l.from),_=u.resolve(m.start),v=h.sameParent(g)&&h.parent.inlineContent&&_.end()>=m.endA;if((ri&&e.input.lastIOSEnter>Date.now()-225&&(!v||i.some(e=>e.nodeName==`DIV`||e.nodeName==`P`))||!v&&h.pos<l.doc.content.size&&(!h.sameParent(g)||!h.parent.inlineContent)&&h.pos<g.pos&&!/\S/.test(l.doc.textBetween(h.pos,g.pos,``,``)))&&e.someProp(`handleKeyDown`,t=>t(e,Vr(13,`Enter`)))){e.input.lastIOSEnter=0;return}if(e.state.selection.anchor>m.start&&zs(u,m.start,m.endA,h,g)&&e.someProp(`handleKeyDown`,t=>t(e,Vr(8,`Backspace`)))){oi&&ei&&e.domObserver.suppressSelectionUpdates();return}ei&&m.endB==m.start&&(e.input.lastChromeDelete=Date.now()),oi&&!v&&h.start()!=g.start()&&g.parentOffset==0&&h.depth==g.depth&&l.sel&&l.sel.anchor==l.sel.head&&l.sel.head==m.endA&&(m.endB-=2,g=l.doc.resolveNoCache(m.endB-l.from),setTimeout(()=>{e.someProp(`handleKeyDown`,function(t){return t(e,Vr(13,`Enter`))})},20));let y=m.start,b=m.endA,x=t=>{let n=t||e.state.tr.replace(y,b,l.doc.slice(m.start-l.from,m.endB-l.from));if(l.sel){let t=Ls(e,n.doc,l.sel);t&&!(ei&&e.composing&&t.empty&&(m.start!=m.endB||e.input.lastChromeDelete<Date.now()-100)&&(t.head==y||t.head==n.mapping.map(b)-1)||Xr&&t.empty&&t.head==y)&&n.setSelection(t)}return a&&n.setMeta(`composition`,a),n.scrollIntoView()},S;if(v)if(h.pos==g.pos){Xr&&Zr<=11&&h.parentOffset==0&&(e.domObserver.suppressSelectionUpdates(),setTimeout(()=>va(e),20));let t=x(e.state.tr.delete(y,b)),n=u.resolve(m.start).marksAcross(u.resolve(m.endA));n&&t.ensureMarks(n),e.dispatch(t)}else if(m.endA==m.endB&&(S=Rs(h.parent.content.cut(h.parentOffset,g.parentOffset),_.parent.content.cut(_.parentOffset,m.endA-_.start())))){let t=x(e.state.tr);S.type==`add`?t.addMark(y,b,S.mark):t.removeMark(y,b,S.mark),e.dispatch(t)}else if(h.parent.child(h.index()).isText&&h.index()==g.index()-+!g.textOffset){let t=h.parent.textBetween(h.parentOffset,g.parentOffset),n=()=>x(e.state.tr.insertText(t,y,b));e.someProp(`handleTextInput`,r=>r(e,y,b,t,n))||e.dispatch(n())}else e.dispatch(x());else e.dispatch(x())}function Ls(e,t,n){return Math.max(n.anchor,n.head)>t.content.size?null:Da(e,t.resolve(n.anchor),t.resolve(n.head))}function Rs(e,t){let n=e.firstChild.marks,r=t.firstChild.marks,i=n,a=r,o,s,c;for(let e=0;e<r.length;e++)i=r[e].removeFromSet(i);for(let e=0;e<n.length;e++)a=n[e].removeFromSet(a);if(i.length==1&&a.length==0)s=i[0],o=`add`,c=e=>e.mark(s.addToSet(e.marks));else if(i.length==0&&a.length==1)s=a[0],o=`remove`,c=e=>e.mark(s.removeFromSet(e.marks));else return null;let l=[];for(let e=0;e<t.childCount;e++)l.push(c(t.child(e)));if(p.from(l).eq(e))return{mark:s,type:o}}function zs(e,t,n,r,i){if(n-t<=i.pos-r.pos||Bs(r,!0,!1)<i.pos)return!1;let a=e.resolve(t);if(!r.parent.isTextblock){let e=a.nodeAfter;return e!=null&&n==t+e.nodeSize}if(a.parentOffset<a.parent.content.size||!a.parent.isTextblock)return!1;let o=e.resolve(Bs(a,!0,!0));return!o.parent.isTextblock||o.pos>n||Bs(o,!0,!1)<n?!1:r.parent.content.cut(r.parentOffset).eq(o.parent.content)}function Bs(e,t,n){let r=e.depth,i=t?e.end():e.pos;for(;r>0&&(t||e.indexAfter(r)==e.node(r).childCount);)r--,i++,t=!1;if(n){let t=e.node(r).maybeChild(e.indexAfter(r));for(;t&&!t.isLeaf;)t=t.firstChild,i++}return i}function Vs(e,t,n,r,i){let a=e.findDiffStart(t,n);if(a==null)return null;let{a:o,b:s}=e.findDiffEnd(t,n+e.size,n+t.size);if(i==`end`){let e=Math.max(0,a-Math.min(o,s));r-=o+e-a}if(o<a&&e.size<t.size){let e=r<=a&&r>=o?a-r:0;a-=e,a&&a<t.size&&Hs(t.textBetween(a-1,a+1))&&(a+=e?1:-1),s=a+(s-o),o=a}else if(s<a){let t=r<=a&&r>=s?a-r:0;a-=t,a&&a<e.size&&Hs(e.textBetween(a-1,a+1))&&(a+=t?1:-1),o=a+(o-s),s=a}return{start:a,endA:o,endB:s}}function Hs(e){if(e.length!=2)return!1;let t=e.charCodeAt(0),n=e.charCodeAt(1);return t>=56320&&t<=57343&&n>=55296&&n<=56319}var Us=class{constructor(e,t){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new _o,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=t,this.state=t.state,this.directPlugins=t.plugins||[],this.directPlugins.forEach(Xs),this.dispatch=this.dispatch.bind(this),this.dom=e&&e.mount||document.createElement(`div`),e&&(e.appendChild?e.appendChild(this.dom):typeof e==`function`?e(this.dom):e.mount&&(this.mounted=!0)),this.editable=Ks(this),Gs(this),this.nodeViews=Js(this),this.docView=Xi(this.state.doc,Ws(this),xs(this),this.dom,this),this.domObserver=new Ts(this,(e,t,n,r)=>Is(this,e,t,n,r)),this.domObserver.start(),vo(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let t in e)this._props[t]=e[t];this._props.state=this.state}return this._props}update(e){e.handleDOMEvents!=this._props.handleDOMEvents&&xo(this);let t=this._props;this._props=e,e.plugins&&(e.plugins.forEach(Xs),this.directPlugins=e.plugins),this.updateStateInner(e.state,t)}setProps(e){let t={};for(let e in this._props)t[e]=this._props[e];t.state=this.state;for(let n in e)t[n]=e[n];this.update(t)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,t){let n=this.state,r=!1,i=!1;e.storedMarks&&this.composing&&(Ho(this),i=!0),this.state=e;let a=n.plugins!=e.plugins||this._props.plugins!=t.plugins;if(a||this._props.plugins!=t.plugins||this._props.nodeViews!=t.nodeViews){let e=Js(this);Ys(e,this.nodeViews)&&(this.nodeViews=e,r=!0)}(a||t.handleDOMEvents!=this._props.handleDOMEvents)&&xo(this),this.editable=Ks(this),Gs(this);let o=xs(this),s=Ws(this),c=n.plugins!=e.plugins&&!n.doc.eq(e.doc)?`reset`:e.scrollToSelection>n.scrollToSelection?`to selection`:`preserve`,l=r||!this.docView.matchesNode(e.doc,s,o);(l||!e.selection.eq(n.selection))&&(i=!0);let u=c==`preserve`&&i&&this.dom.style.overflowAnchor==null&&pi(this);if(i){this.domObserver.stop();let t=l&&(Xr||ei)&&!this.composing&&!n.selection.empty&&!e.selection.empty&&qs(n.selection,e.selection);if(l){let n=ei?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=Uo(this)),(r||!this.docView.update(e.doc,s,o,this))&&(this.docView.updateOuterDeco(s),this.docView.destroy(),this.docView=Xi(e.doc,s,o,this.dom,this)),n&&(!this.trackWrites||!this.dom.contains(this.trackWrites))&&(t=!0)}t||!(this.input.mouseDown&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&Aa(this))?va(this,t):(Ta(this,e.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(n),this.dragging?.node&&!n.doc.eq(e.doc)&&this.updateDraggedNode(this.dragging,n),c==`reset`?this.dom.scrollTop=0:c==`to selection`?this.scrollToSelection():u&&hi(u)}scrollToSelection(){let e=this.domSelectionRange().focusNode;if(!(!e||!this.dom.contains(e.nodeType==1?e:e.parentNode))&&!this.someProp(`handleScrollToSelection`,e=>e(this)))if(this.state.selection instanceof F){let t=this.docView.domAfterPos(this.state.selection.from);t.nodeType==1&&fi(this,t.getBoundingClientRect(),e)}else fi(this,this.coordsAtPos(this.state.selection.head,1),e)}destroyPluginViews(){let e;for(;e=this.pluginViews.pop();)e.destroy&&e.destroy()}updatePluginViews(e){if(!e||e.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let e=0;e<this.directPlugins.length;e++){let t=this.directPlugins[e];t.spec.view&&this.pluginViews.push(t.spec.view(this))}for(let e=0;e<this.state.plugins.length;e++){let t=this.state.plugins[e];t.spec.view&&this.pluginViews.push(t.spec.view(this))}}else for(let t=0;t<this.pluginViews.length;t++){let n=this.pluginViews[t];n.update&&n.update(this,e)}}updateDraggedNode(e,t){let n=e.node,r=-1;if(n.from<this.state.doc.content.size&&this.state.doc.nodeAt(n.from)==n.node)r=n.from;else{let e=n.from+(this.state.doc.content.size-t.doc.content.size);(e>0&&e<this.state.doc.content.size&&this.state.doc.nodeAt(e))==n.node&&(r=e)}this.dragging=new Qo(e.slice,e.move,r<0?void 0:F.create(this.state.doc,r))}someProp(e,t){let n=this._props&&this._props[e],r;if(n!=null&&(r=t?t(n):n))return r;for(let n=0;n<this.directPlugins.length;n++){let i=this.directPlugins[n].props[e];if(i!=null&&(r=t?t(i):i))return r}let i=this.state.plugins;if(i)for(let n=0;n<i.length;n++){let a=i[n].props[e];if(a!=null&&(r=t?t(a):a))return r}}hasFocus(){if(Xr){let e=this.root.activeElement;if(e==this.dom)return!0;if(!e||!this.dom.contains(e))return!1;for(;e&&this.dom!=e&&this.dom.contains(e);){if(e.contentEditable==`false`)return!1;e=e.parentElement}return!0}return this.root.activeElement==this.dom}focus(){this.domObserver.stop(),this.editable&&vi(this.dom),va(this),this.domObserver.start()}get root(){let e=this._root;if(e==null){for(let e=this.dom.parentNode;e;e=e.parentNode)if(e.nodeType==9||e.nodeType==11&&e.host)return e.getSelection||(Object.getPrototypeOf(e).getSelection=()=>e.ownerDocument.getSelection()),this._root=e}return e||document}updateRoot(){this._root=null}posAtCoords(e){return Ei(this,e)}coordsAtPos(e,t=1){return Ai(this,e,t)}domAtPos(e,t=0){return this.docView.domFromPos(e,t)}nodeDOM(e){let t=this.docView.descAt(e);return t?t.nodeDOM:null}posAtDOM(e,t,n=-1){let r=this.docView.posFromDOM(e,t,n);if(r==null)throw RangeError(`DOM position not inside the editor`);return r}endOfTextblock(e,t){return Bi(this,t||this.state,e)}pasteHTML(e,t){return Xo(this,``,e,!1,t||new ClipboardEvent(`paste`))}pasteText(e,t){return Xo(this,e,null,!0,t||new ClipboardEvent(`paste`))}serializeForClipboard(e){return Xa(this,e)}destroy(){this.docView&&(bo(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],xs(this),this),this.dom.textContent=``):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,jr())}get isDestroyed(){return this.docView==null}dispatchEvent(e){return wo(this,e)}domSelectionRange(){let e=this.domSelection();return e?ni&&this.root.nodeType===11&&Hr(this.dom.ownerDocument)==this.dom&&As(this,e)||e:{focusNode:null,focusOffset:0,anchorNode:null,anchorOffset:0}}domSelection(){return this.root.getSelection()}};Us.prototype.dispatch=function(e){let t=this._props.dispatchTransaction;t?t.call(this,e):this.updateState(this.state.apply(e))};function Ws(e){let t=Object.create(null);return t.class=`ProseMirror`,t.contenteditable=String(e.editable),e.someProp(`attributes`,n=>{if(typeof n==`function`&&(n=n(e.state)),n)for(let e in n)e==`class`?t.class+=` `+n[e]:e==`style`?t.style=(t.style?t.style+`;`:``)+n[e]:!t[e]&&e!=`contenteditable`&&e!=`nodeName`&&(t[e]=String(n[e]))}),t.translate||=`no`,[ss.node(0,e.state.doc.content.size,t)]}function Gs(e){if(e.markCursor){let t=document.createElement(`img`);t.className=`ProseMirror-separator`,t.setAttribute(`mark-placeholder`,`true`),t.setAttribute(`alt`,``),e.cursorWrapper={dom:t,deco:ss.widget(e.state.selection.from,t,{raw:!0,marks:e.markCursor})}}else e.cursorWrapper=null}function Ks(e){return!e.someProp(`editable`,t=>t(e.state)===!1)}function qs(e,t){let n=Math.min(e.$anchor.sharedDepth(e.head),t.$anchor.sharedDepth(t.head));return e.$anchor.start(n)!=t.$anchor.start(n)}function Js(e){let t=Object.create(null);function n(e){for(let n in e)Object.prototype.hasOwnProperty.call(t,n)||(t[n]=e[n])}return e.someProp(`nodeViews`,n),e.someProp(`markViews`,n),t}function Ys(e,t){let n=0,r=0;for(let r in e){if(e[r]!=t[r])return!0;n++}for(let e in t)r++;return n!=r}function Xs(e){if(e.spec.state||e.spec.filterTransaction||e.spec.appendTransaction)throw RangeError(`Plugins passed directly to the view must not have a state component`)}for(var Zs={8:`Backspace`,9:`Tab`,10:`Enter`,12:`NumLock`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,44:`PrintScreen`,45:`Insert`,46:`Delete`,59:`;`,61:`=`,91:`Meta`,92:`Meta`,106:`*`,107:`+`,108:`,`,109:`-`,110:`.`,111:`/`,144:`NumLock`,145:`ScrollLock`,160:`Shift`,161:`Shift`,162:`Control`,163:`Control`,164:`Alt`,165:`Alt`,173:`-`,186:`;`,187:`=`,188:`,`,189:`-`,190:`.`,191:`/`,192:"`",219:`[`,220:`\\`,221:`]`,222:`'`},Qs={48:`)`,49:`!`,50:`@`,51:`#`,52:`$`,53:`%`,54:`^`,55:`&`,56:`*`,57:`(`,59:`:`,61:`+`,173:`_`,186:`:`,187:`+`,188:`<`,189:`_`,190:`>`,191:`?`,192:`~`,219:`{`,220:`|`,221:`}`,222:`"`},$s=typeof navigator<`u`&&/Mac/.test(navigator.platform),ec=typeof navigator<`u`&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),tc=0;tc<10;tc++)Zs[48+tc]=Zs[96+tc]=String(tc);for(var tc=1;tc<=24;tc++)Zs[tc+111]=`F`+tc;for(var tc=65;tc<=90;tc++)Zs[tc]=String.fromCharCode(tc+32),Qs[tc]=String.fromCharCode(tc);for(var nc in Zs)Qs.hasOwnProperty(nc)||(Qs[nc]=Zs[nc]);function rc(e){var t=!($s&&e.metaKey&&e.shiftKey&&!e.ctrlKey&&!e.altKey||ec&&e.shiftKey&&e.key&&e.key.length==1||e.key==`Unidentified`)&&e.key||(e.shiftKey?Qs:Zs)[e.keyCode]||e.key||`Unidentified`;return t==`Esc`&&(t=`Escape`),t==`Del`&&(t=`Delete`),t==`Left`&&(t=`ArrowLeft`),t==`Up`&&(t=`ArrowUp`),t==`Right`&&(t=`ArrowRight`),t==`Down`&&(t=`ArrowDown`),t}var ic=typeof navigator<`u`&&/Mac|iP(hone|[oa]d)/.test(navigator.platform),ac=typeof navigator<`u`&&/Win/.test(navigator.platform);function oc(e){let t=e.split(/-(?!$)/),n=t[t.length-1];n==`Space`&&(n=` `);let r,i,a,o;for(let e=0;e<t.length-1;e++){let n=t[e];if(/^(cmd|meta|m)$/i.test(n))o=!0;else if(/^a(lt)?$/i.test(n))r=!0;else if(/^(c|ctrl|control)$/i.test(n))i=!0;else if(/^s(hift)?$/i.test(n))a=!0;else if(/^mod$/i.test(n))ic?o=!0:i=!0;else throw Error(`Unrecognized modifier name: `+n)}return r&&(n=`Alt-`+n),i&&(n=`Ctrl-`+n),o&&(n=`Meta-`+n),a&&(n=`Shift-`+n),n}function sc(e){let t=Object.create(null);for(let n in e)t[oc(n)]=e[n];return t}function cc(e,t,n=!0){return t.altKey&&(e=`Alt-`+e),t.ctrlKey&&(e=`Ctrl-`+e),t.metaKey&&(e=`Meta-`+e),n&&t.shiftKey&&(e=`Shift-`+e),e}function lc(e){return new I({props:{handleKeyDown:uc(e)}})}function uc(e){let t=sc(e);return function(e,n){let r=rc(n),i,a=t[cc(r,n)];if(a&&a(e.state,e.dispatch,e))return!0;if(r.length==1&&r!=` `){if(n.shiftKey){let i=t[cc(r,n,!1)];if(i&&i(e.state,e.dispatch,e))return!0}if((n.altKey||n.metaKey||n.ctrlKey)&&!(ac&&n.ctrlKey&&n.altKey)&&(i=Zs[n.keyCode])&&i!=r){let r=t[cc(i,n)];if(r&&r(e.state,e.dispatch,e))return!0}}return!1}}var dc=Object.defineProperty,fc=(e,t)=>{for(var n in t)dc(e,n,{get:t[n],enumerable:!0})};function pc(e){let{state:t,transaction:n}=e,{selection:r}=n,{doc:i}=n,{storedMarks:a}=n;return{...t,apply:t.apply.bind(t),applyTransaction:t.applyTransaction.bind(t),plugins:t.plugins,schema:t.schema,reconfigure:t.reconfigure.bind(t),toJSON:t.toJSON.bind(t),get storedMarks(){return a},get selection(){return r},get doc(){return i},get tr(){return r=n.selection,i=n.doc,a=n.storedMarks,n}}}var mc=class{constructor(e){this.editor=e.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=e.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){let{rawCommands:e,editor:t,state:n}=this,{view:r}=t,{tr:i}=n,a=this.buildProps(i);return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,(...e)=>{let n=t(...e)(a);return!i.getMeta(`preventDispatch`)&&!this.hasCustomState&&r.dispatch(i),n}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(e,t=!0){let{rawCommands:n,editor:r,state:i}=this,{view:a}=r,o=[],s=!!e,c=e||i.tr,l=()=>(!s&&t&&!c.getMeta(`preventDispatch`)&&!this.hasCustomState&&a.dispatch(c),o.every(e=>e===!0)),u={...Object.fromEntries(Object.entries(n).map(([e,n])=>[e,(...e)=>{let r=this.buildProps(c,t),i=n(...e)(r);return o.push(i),u}])),run:l};return u}createCan(e){let{rawCommands:t,state:n}=this,r=e||n.tr,i=this.buildProps(r,!1);return{...Object.fromEntries(Object.entries(t).map(([e,t])=>[e,(...e)=>t(...e)({...i,dispatch:void 0})])),chain:()=>this.createChain(r,!1)}}buildProps(e,t=!0){let{rawCommands:n,editor:r,state:i}=this,{view:a}=r,o={tr:e,editor:r,view:a,state:pc({state:i,transaction:e}),dispatch:t?()=>void 0:void 0,chain:()=>this.createChain(e,t),can:()=>this.createCan(e),get commands(){return Object.fromEntries(Object.entries(n).map(([e,t])=>[e,(...e)=>t(...e)(o)]))}};return o}},hc={};fc(hc,{blur:()=>gc,clearContent:()=>_c,clearNodes:()=>vc,command:()=>yc,createParagraphNear:()=>bc,cut:()=>xc,deleteCurrentNode:()=>Sc,deleteNode:()=>Cc,deleteRange:()=>wc,deleteSelection:()=>Oc,enter:()=>kc,exitCode:()=>Ac,extendMarkRange:()=>Lc,first:()=>Rc,focus:()=>Gc,forEach:()=>Kc,insertContent:()=>qc,insertContentAt:()=>$c,joinBackward:()=>nl,joinDown:()=>tl,joinForward:()=>rl,joinItemBackward:()=>il,joinItemForward:()=>al,joinTextblockBackward:()=>ol,joinTextblockForward:()=>sl,joinUp:()=>el,keyboardShortcut:()=>ul,lift:()=>fl,liftEmptyBlock:()=>pl,liftListItem:()=>ml,newlineInCode:()=>hl,resetAttributes:()=>vl,scrollIntoView:()=>yl,selectAll:()=>bl,selectNodeBackward:()=>xl,selectNodeForward:()=>Sl,selectParentNode:()=>Cl,selectTextblockEnd:()=>wl,selectTextblockStart:()=>Tl,setContent:()=>Dl,setMark:()=>Cu,setMeta:()=>wu,setNode:()=>Tu,setNodeSelection:()=>Eu,setTextDirection:()=>Du,setTextSelection:()=>Ou,sinkListItem:()=>ku,splitBlock:()=>ju,splitListItem:()=>Mu,toggleList:()=>Iu,toggleMark:()=>Lu,toggleNode:()=>Ru,toggleWrap:()=>zu,undoInputRule:()=>Bu,unsetAllMarks:()=>Vu,unsetMark:()=>Hu,unsetTextDirection:()=>Uu,updateAttributes:()=>Wu,wrapIn:()=>Gu,wrapInList:()=>Ku});var gc=()=>({editor:e,view:t})=>(requestAnimationFrame(()=>{var n;e.isDestroyed||(t.dom.blur(),(n=window==null?void 0:window.getSelection())==null||n.removeAllRanges())}),!0),_c=(e=!0)=>({commands:t})=>t.setContent(``,{emitUpdate:e}),vc=()=>({state:e,tr:t,dispatch:n})=>{let{selection:r}=t,{ranges:i}=r;return n&&i.forEach(({$from:n,$to:r})=>{e.doc.nodesBetween(n.pos,r.pos,(e,n)=>{if(e.type.isText)return;let{doc:r,mapping:i}=t,a=r.resolve(i.map(n)),o=r.resolve(i.map(n+e.nodeSize)),s=a.blockRange(o);if(!s)return;let c=Ot(s);if(e.type.isTextblock){let{defaultType:e}=a.parent.contentMatchAt(a.index());t.setNodeMarkup(s.start,e)}(c||c===0)&&t.lift(s,c)})}),!0},yc=e=>t=>e(t),bc=()=>({state:e,dispatch:t})=>nr(e,t),xc=(e,t)=>({editor:n,tr:r})=>{let{state:i}=n,a=i.doc.slice(e.from,e.to);r.deleteRange(e.from,e.to);let o=r.mapping.map(t);return r.insert(o,a.content),r.setSelection(new P(r.doc.resolve(Math.max(o-1,0)))),!0},Sc=()=>({tr:e,dispatch:t})=>{let{selection:n}=e,r=n.$anchor.node();if(r.content.size>0)return!1;let i=e.selection.$anchor;for(let n=i.depth;n>0;--n)if(i.node(n).type===r.type){if(t){let t=i.before(n),r=i.after(n);e.delete(t,r).scrollIntoView()}return!0}return!1};function z(e,t){if(typeof e==`string`){if(!t.nodes[e])throw Error(`There is no node type named '${e}'. Maybe you forgot to add the extension?`);return t.nodes[e]}return e}var Cc=e=>({tr:t,state:n,dispatch:r})=>{let i=z(e,n.schema),a=t.selection.$anchor;for(let e=a.depth;e>0;--e)if(a.node(e).type===i){if(r){let n=a.before(e),r=a.after(e);t.delete(n,r).scrollIntoView()}return!0}return!1},wc=e=>({tr:t,dispatch:n})=>{let{from:r,to:i}=e;return n&&t.delete(r,i),!0},Tc=e=>e.content?/^text(\*|\+)/.test(e.content):!1,Ec=(e,t,n)=>{if(!e.parent.isInline||n===`left`&&e.pos>e.start()||n===`right`&&e.pos<e.end())return e.pos;let r=t.nodes[e.parent.type.name].spec;return Tc(r)?n===`left`?e.start()-1:e.end()+1:e.pos},Dc=(e,t,n)=>({from:Ec(e,n,`left`),to:Ec(t,n,`right`)}),Oc=()=>({state:e,dispatch:t})=>{let{$from:n,$to:r}=e.selection;if(e.selection.empty)return!1;let{from:i,to:a}=Dc(n,r,e.schema);return t&&(e.tr.deleteRange(i,a).scrollIntoView(),t(e.tr)),!0},kc=()=>({commands:e})=>e.keyboardShortcut(`Enter`),Ac=()=>({state:e,dispatch:t})=>tr(e,t);function jc(e){return Object.prototype.toString.call(e)===`[object RegExp]`}function Mc(e,t,n={strict:!0}){let r=Object.keys(t);return r.length?r.every(r=>n.strict?t[r]===e[r]:jc(t[r])?t[r].test(e[r]):t[r]===e[r]):!0}function Nc(e,t,n={}){return e.find(e=>e.type===t&&Mc(Object.fromEntries(Object.keys(n).map(t=>[t,e.attrs[t]])),n))}function Pc(e,t,n={}){return!!Nc(e,t,n)}function Fc(e,t,n){if(!e||!t)return;let r=e.parent.childAfter(e.parentOffset);if((!r.node||!r.node.marks.some(e=>e.type===t))&&(r=e.parent.childBefore(e.parentOffset)),!r.node||!r.node.marks.some(e=>e.type===t))return;if(!n){let e=r.node.marks.find(e=>e.type===t);e&&(n=e.attrs)}if(!Nc([...r.node.marks],t,n))return;let i=r.index,a=e.start()+r.offset,o=i+1,s=a+r.node.nodeSize;for(;i>0&&Pc([...e.parent.child(i-1).marks],t,n);)--i,a-=e.parent.child(i).nodeSize;for(;o<e.parent.childCount&&Pc([...e.parent.child(o).marks],t,n);)s+=e.parent.child(o).nodeSize,o+=1;return{from:a,to:s}}function Ic(e,t){if(typeof e==`string`){if(!t.marks[e])throw Error(`There is no mark type named '${e}'. Maybe you forgot to add the extension?`);return t.marks[e]}return e}var Lc=(e,t)=>({tr:n,state:r,dispatch:i})=>{let a=Ic(e,r.schema),{doc:o,selection:s}=n,{$from:c,from:l,to:u}=s;if(i){let e=Fc(c,a,t);if(e&&e.from<=l&&e.to>=u){let t=P.create(o,e.from,e.to);n.setSelection(t)}}return!0},Rc=e=>t=>{let n=typeof e==`function`?e(t):e;for(let e=0;e<n.length;e+=1)if(n[e](t))return!0;return!1};function zc(e){return e instanceof P}function Bc(e=0,t=0,n=0){return Math.min(Math.max(e,t),n)}function Vc(e,t=null){if(!t)return null;let n=N.atStart(e),r=N.atEnd(e);if(t===`start`||t===!0)return n;if(t===`end`)return r;let i=n.from,a=r.to;return t===`all`?P.create(e,Bc(0,i,a),Bc(e.content.size,i,a)):P.create(e,Bc(t,i,a),Bc(t,i,a))}function Hc(){return navigator.platform===`Android`||/android/i.test(navigator.userAgent)}function Uc(){return[`iPad Simulator`,`iPhone Simulator`,`iPod Simulator`,`iPad`,`iPhone`,`iPod`].includes(navigator.platform)||navigator.userAgent.includes(`Mac`)&&`ontouchend`in document}function Wc(){return typeof navigator<`u`?/^((?!chrome|android).)*safari/i.test(navigator.userAgent):!1}var Gc=(e=null,t={})=>({editor:n,view:r,tr:i,dispatch:a})=>{t={scrollIntoView:!0,...t};let o=()=>{(Uc()||Hc())&&r.dom.focus(),Wc()&&!Uc()&&!Hc()&&r.dom.focus({preventScroll:!0}),requestAnimationFrame(()=>{n.isDestroyed||(r.focus(),t?.scrollIntoView&&n.commands.scrollIntoView())})};try{if(r.hasFocus()&&e===null||e===!1)return!0}catch{return!1}if(a&&e===null&&!zc(n.state.selection))return o(),!0;let s=Vc(i.doc,e)||n.state.selection,c=n.state.selection.eq(s);return a&&(c||i.setSelection(s),c&&i.storedMarks&&i.setStoredMarks(i.storedMarks),o()),!0},Kc=(e,t)=>n=>e.every((e,r)=>t(e,{...n,index:r})),qc=(e,t)=>({tr:n,commands:r})=>r.insertContentAt({from:n.selection.from,to:n.selection.to},e,t),Jc=e=>{let t=e.childNodes;for(let n=t.length-1;n>=0;--n){let r=t[n];r.nodeType===3&&r.nodeValue&&/^(\n\s\s|\n)$/.test(r.nodeValue)?e.removeChild(r):r.nodeType===1&&Jc(r)}return e};function Yc(e){if(typeof window>`u`)throw Error(`[tiptap error]: there is no window object available, so this function cannot be used`);let t=`<body>${e}</body>`,n=new window.DOMParser().parseFromString(t,`text/html`).body;return Jc(n)}function Xc(e,t,n){if(e instanceof ae||e instanceof p)return e;n={slice:!0,parseOptions:{},...n};let r=typeof e==`object`&&!!e,i=typeof e==`string`;if(r)try{if(Array.isArray(e)&&e.length>0)return p.fromArray(e.map(e=>t.nodeFromJSON(e)));let r=t.nodeFromJSON(e);return n.errorOnInvalidContent&&r.check(),r}catch(r){if(n.errorOnInvalidContent)throw Error(`[tiptap error]: Invalid JSON content`,{cause:r});return console.warn(`[tiptap warn]: Invalid content.`,`Passed value:`,e,`Error:`,r),Xc(``,t,n)}if(i){if(n.errorOnInvalidContent){let r=!1,i=``,a=new Ae({topNode:t.spec.topNode,marks:t.spec.marks,nodes:t.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:`inline*`,group:`block`,parseDOM:[{tag:`*`,getAttrs:e=>(r=!0,i=typeof e==`string`?e:e.outerHTML,null)}]}})});if(n.slice?Pe.fromSchema(a).parseSlice(Yc(e),n.parseOptions):Pe.fromSchema(a).parse(Yc(e),n.parseOptions),n.errorOnInvalidContent&&r)throw Error(`[tiptap error]: Invalid HTML content`,{cause:Error(`Invalid element found: ${i}`)})}let r=Pe.fromSchema(t);return n.slice?r.parseSlice(Yc(e),n.parseOptions).content:r.parse(Yc(e),n.parseOptions)}return Xc(``,t,n)}function Zc(e,t,n){let r=e.steps.length-1;if(r<t)return;let i=e.steps[r];if(!(i instanceof xt||i instanceof St))return;let a=e.mapping.maps[r],o=0;a.forEach((e,t,n,r)=>{o===0&&(o=r)}),e.setSelection(N.near(e.doc.resolve(o),n))}var Qc=e=>!(`type`in e),$c=(e,t,n)=>({tr:r,dispatch:i,editor:a})=>{if(i){n={parseOptions:a.options.parseOptions,updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...n};let i,o=e=>{a.emit(`contentError`,{editor:a,error:e,disableCollaboration:()=>{`collaboration`in a.storage&&typeof a.storage.collaboration==`object`&&a.storage.collaboration&&(a.storage.collaboration.isDisabled=!0)}})},s={preserveWhitespace:`full`,...n.parseOptions};if(!n.errorOnInvalidContent&&!a.options.enableContentCheck&&a.options.emitContentError)try{Xc(t,a.schema,{parseOptions:s,errorOnInvalidContent:!0})}catch(e){o(e)}try{i=Xc(t,a.schema,{parseOptions:s,errorOnInvalidContent:n.errorOnInvalidContent??a.options.enableContentCheck})}catch(e){return o(e),!1}let{from:c,to:l}=typeof e==`number`?{from:e,to:e}:{from:e.from,to:e.to},u=!0,d=!0;if((Qc(i)?i:[i]).forEach(e=>{e.check(),u=u?e.isText&&e.marks.length===0:!1,d=d?e.isBlock:!1}),c===l&&d){let{parent:e}=r.doc.resolve(c);e.isTextblock&&!e.type.spec.code&&!e.childCount&&(--c,l+=1)}let f;if(u){if(Array.isArray(t))f=t.map(e=>e.text||``).join(``);else if(t instanceof p){let e=``;t.forEach(t=>{t.text&&(e+=t.text)}),f=e}else f=typeof t==`object`&&t&&t.text?t.text:t;r.insertText(f,c,l)}else{f=i;let e=r.doc.resolve(c),t=e.node(),n=e.parentOffset===0,a=t.isText||t.isTextblock,o=t.content.size>0;n&&a&&o&&d&&(c=Math.max(0,c-1)),r.replaceWith(c,l,f)}n.updateSelection&&Zc(r,r.steps.length-1,-1),n.applyInputRules&&r.setMeta(`applyInputRules`,{from:c,text:f}),n.applyPasteRules&&r.setMeta(`applyPasteRules`,{from:c,text:f})}return!0},el=()=>({state:e,dispatch:t})=>Xn(e,t),tl=()=>({state:e,dispatch:t})=>Zn(e,t),nl=()=>({state:e,dispatch:t})=>zn(e,t),rl=()=>({state:e,dispatch:t})=>qn(e,t),il=()=>({state:e,dispatch:t,tr:n})=>{try{let r=Gt(e.doc,e.selection.$from.pos,-1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},al=()=>({state:e,dispatch:t,tr:n})=>{try{let r=Gt(e.doc,e.selection.$from.pos,1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},ol=()=>({state:e,dispatch:t})=>Bn(e,t),sl=()=>({state:e,dispatch:t})=>Vn(e,t);function cl(){return typeof navigator<`u`?/Mac/.test(navigator.platform):!1}function ll(e){let t=e.split(/-(?!$)/),n=t[t.length-1];n===`Space`&&(n=` `);let r,i,a,o;for(let e=0;e<t.length-1;e+=1){let n=t[e];if(/^(cmd|meta|m)$/i.test(n))o=!0;else if(/^a(lt)?$/i.test(n))r=!0;else if(/^(c|ctrl|control)$/i.test(n))i=!0;else if(/^s(hift)?$/i.test(n))a=!0;else if(/^mod$/i.test(n))Uc()||cl()?o=!0:i=!0;else throw Error(`Unrecognized modifier name: ${n}`)}return r&&(n=`Alt-${n}`),i&&(n=`Ctrl-${n}`),o&&(n=`Meta-${n}`),a&&(n=`Shift-${n}`),n}var ul=e=>({editor:t,view:n,tr:r,dispatch:i})=>{let a=ll(e).split(/-(?!$)/),o=a.find(e=>![`Alt`,`Ctrl`,`Meta`,`Shift`].includes(e)),s=new KeyboardEvent(`keydown`,{key:o===`Space`?` `:o,altKey:a.includes(`Alt`),ctrlKey:a.includes(`Ctrl`),metaKey:a.includes(`Meta`),shiftKey:a.includes(`Shift`),bubbles:!0,cancelable:!0});return t.captureTransaction(()=>{n.someProp(`handleKeyDown`,e=>e(n,s))})?.steps.forEach(e=>{let t=e.map(r.mapping);t&&i&&r.maybeStep(t)}),!0};function dl(e,t,n={}){let{from:r,to:i,empty:a}=e.selection,o=t?z(t,e.schema):null,s=[];e.doc.nodesBetween(r,i,(e,t)=>{if(e.isText)return;let n=Math.max(r,t),a=Math.min(i,t+e.nodeSize);s.push({node:e,from:n,to:a})});let c=i-r,l=s.filter(e=>o?o.name===e.node.type.name:!0).filter(e=>Mc(e.node.attrs,n,{strict:!1}));return a?!!l.length:l.reduce((e,t)=>e+t.to-t.from,0)>=c}var fl=(e,t={})=>({state:n,dispatch:r})=>dl(n,z(e,n.schema),t)?Qn(n,r):!1,pl=()=>({state:e,dispatch:t})=>rr(e,t),ml=e=>({state:t,dispatch:n})=>Cr(z(e,t.schema))(t,n),hl=()=>({state:e,dispatch:t})=>$n(e,t);function gl(e,t){return t.nodes[e]?`node`:t.marks[e]?`mark`:null}function _l(e,t){let n=typeof t==`string`?[t]:t;return Object.keys(e).reduce((t,r)=>(n.includes(r)||(t[r]=e[r]),t),{})}var vl=(e,t)=>({tr:n,state:r,dispatch:i})=>{let a=null,o=null,s=gl(typeof e==`string`?e:e.name,r.schema);if(!s)return!1;s===`node`&&(a=z(e,r.schema)),s===`mark`&&(o=Ic(e,r.schema));let c=!1;return n.selection.ranges.forEach(e=>{r.doc.nodesBetween(e.$from.pos,e.$to.pos,(e,r)=>{a&&a===e.type&&(c=!0,i&&n.setNodeMarkup(r,void 0,_l(e.attrs,t))),o&&e.marks.length&&e.marks.forEach(a=>{o===a.type&&(c=!0,i&&n.addMark(r,r+e.nodeSize,o.create(_l(a.attrs,t))))})})}),c},yl=()=>({tr:e,dispatch:t})=>(t&&e.scrollIntoView(),!0),bl=()=>({tr:e,dispatch:t})=>{if(t){let t=new xn(e.doc);e.setSelection(t)}return!0},xl=()=>({state:e,dispatch:t})=>Wn(e,t),Sl=()=>({state:e,dispatch:t})=>Jn(e,t),Cl=()=>({state:e,dispatch:t})=>or(e,t),wl=()=>({state:e,dispatch:t})=>fr(e,t),Tl=()=>({state:e,dispatch:t})=>dr(e,t);function El(e,t,n={},r={}){return Xc(e,t,{slice:!1,parseOptions:n,errorOnInvalidContent:r.errorOnInvalidContent})}var Dl=(e,{errorOnInvalidContent:t,emitUpdate:n=!0,parseOptions:r={}}={})=>({editor:i,tr:a,dispatch:o,commands:s})=>{let{doc:c}=a;if(r.preserveWhitespace!==`full`){let s=El(e,i.schema,r,{errorOnInvalidContent:t??i.options.enableContentCheck});return o&&a.replaceWith(0,c.content.size,s).setMeta(`preventUpdate`,!n),!0}return o&&a.setMeta(`preventUpdate`,!n),s.insertContentAt({from:0,to:c.content.size},e,{parseOptions:r,errorOnInvalidContent:t??i.options.enableContentCheck})};function Ol(e,t){let n=Ic(t,e.schema),{from:r,to:i,empty:a}=e.selection,o=[];a?(e.storedMarks&&o.push(...e.storedMarks),o.push(...e.selection.$head.marks())):e.doc.nodesBetween(r,i,e=>{o.push(...e.marks)});let s=o.find(e=>e.type.name===n.name);return s?{...s.attrs}:{}}function kl(e,t){let n=new mn(e);return t.forEach(e=>{e.steps.forEach(e=>{n.step(e)})}),n}function Al(e){for(let t=0;t<e.edgeCount;t+=1){let{type:n}=e.edge(t);if(n.isTextblock&&!n.hasRequiredAttrs())return n}return null}function jl(e,t){let n=[];return e.descendants((e,r)=>{t(e)&&n.push({node:e,pos:r})}),n}function Ml(e,t,n){let r=[];return e.nodesBetween(t.from,t.to,(e,t)=>{n(e)&&r.push({node:e,pos:t})}),r}function Nl(e,t){for(let n=e.depth;n>0;--n){let r=e.node(n);if(t(r))return{pos:n>0?e.before(n):0,start:e.start(n),depth:n,node:r}}}function Pl(e){return t=>Nl(t.$from,e)}function B(e,t,n){return e.config[t]===void 0&&e.parent?B(e.parent,t,n):typeof e.config[t]==`function`?e.config[t].bind({...n,parent:e.parent?B(e.parent,t,n):null}):e.config[t]}function Fl(e){return e.map(e=>{let t=B(e,`addExtensions`,{name:e.name,options:e.options,storage:e.storage});return t?[e,...Fl(t())]:e}).flat(10)}function Il(e,t){let n=Je.fromSchema(t).serializeFragment(e),r=document.implementation.createHTMLDocument().createElement(`div`);return r.appendChild(n),r.innerHTML}function Ll(e){return typeof e==`function`}function V(e,t=void 0,...n){return Ll(e)?t?e.bind(t)(...n):e(...n):e}function Rl(e={}){return Object.keys(e).length===0&&e.constructor===Object}function zl(e){return{baseExtensions:e.filter(e=>e.type===`extension`),nodeExtensions:e.filter(e=>e.type===`node`),markExtensions:e.filter(e=>e.type===`mark`)}}function Bl(e){let t=[],{nodeExtensions:n,markExtensions:r}=zl(e),i=[...n,...r],a={default:null,validate:void 0,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1},o=n.filter(e=>e.name!==`text`).map(e=>e.name),s=r.map(e=>e.name),c=[...o,...s];return e.forEach(e=>{let n=B(e,`addGlobalAttributes`,{name:e.name,options:e.options,storage:e.storage,extensions:i});n&&n().forEach(e=>{let n;n=Array.isArray(e.types)?e.types:e.types===`*`?c:e.types===`nodes`?o:e.types===`marks`?s:[],n.forEach(n=>{Object.entries(e.attributes).forEach(([e,r])=>{t.push({type:n,name:e,attribute:{...a,...r}})})})})}),i.forEach(e=>{let n=B(e,`addAttributes`,{name:e.name,options:e.options,storage:e.storage});if(!n)return;let r=n();Object.entries(r).forEach(([n,r])=>{let i={...a,...r};typeof i?.default==`function`&&(i.default=i.default()),i?.isRequired&&i?.default===void 0&&delete i.default,t.push({type:e.name,name:n,attribute:i})})}),t}function Vl(e){let t=[],n=``,r=!1,i=!1,a=0,o=e.length;for(let s=0;s<o;s+=1){let o=e[s];if(o===`'`&&!i){r=!r,n+=o;continue}if(o===`"`&&!r){i=!i,n+=o;continue}if(!r&&!i){if(o===`(`){a+=1,n+=o;continue}if(o===`)`&&a>0){--a,n+=o;continue}if(o===`;`&&a===0){t.push(n),n=``;continue}}n+=o}return n&&t.push(n),t}function Hl(e){let t=[],n=Vl(e||``),r=n.length;for(let e=0;e<r;e+=1){let r=n[e],i=r.indexOf(`:`);if(i===-1)continue;let a=r.slice(0,i).trim(),o=r.slice(i+1).trim();a&&o&&t.push([a,o])}return t}function H(...e){return e.filter(e=>!!e).reduce((e,t)=>{let n={...e};return Object.entries(t).forEach(([e,t])=>{if(!n[e]){n[e]=t;return}if(e===`class`){let r=t?String(t).split(` `):[],i=n[e]?n[e].split(` `):[],a=r.filter(e=>!i.includes(e));n[e]=[...i,...a].join(` `)}else if(e===`style`){let r=new Map([...Hl(n[e]),...Hl(t)]);n[e]=Array.from(r.entries()).map(([e,t])=>`${e}: ${t}`).join(`; `)}else n[e]=t}),n},{})}function Ul(e,t){return t.filter(t=>t.type===e.type.name).filter(e=>e.attribute.rendered).map(t=>t.attribute.renderHTML?t.attribute.renderHTML(e.attrs)||{}:{[t.name]:e.attrs[t.name]}).reduce((e,t)=>H(e,t),{})}function Wl(e){return typeof e==`string`?e.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(e):e===`true`?!0:e===`false`?!1:e:e}function Gl(e,t){return`style`in e?e:{...e,getAttrs:n=>{let r=e.getAttrs?e.getAttrs(n):e.attrs;if(r===!1)return!1;let i=t.reduce((e,t)=>{let r=t.attribute.parseHTML?t.attribute.parseHTML(n):Wl(n.getAttribute(t.name));return r==null?e:{...e,[t.name]:r}},{});return{...r,...i}}}}function Kl(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>e===`attrs`&&Rl(t)?!1:t!=null))}function ql(e){let t={};return!e?.attribute?.isRequired&&`default`in(e?.attribute||{})&&(t.default=e.attribute.default),e?.attribute?.validate!==void 0&&(t.validate=e.attribute.validate),[e.name,t]}function Jl(e,t){let n=Bl(e),{nodeExtensions:r,markExtensions:i}=zl(e);return new Ae({topNode:r.find(e=>B(e,`topNode`))?.name,nodes:Object.fromEntries(r.map(r=>{let i=n.filter(e=>e.type===r.name),a={name:r.name,options:r.options,storage:r.storage,editor:t},o=Kl({...e.reduce((e,t)=>{let n=B(t,`extendNodeSchema`,a);return{...e,...n?n(r):{}}},{}),content:V(B(r,`content`,a)),marks:V(B(r,`marks`,a)),group:V(B(r,`group`,a)),inline:V(B(r,`inline`,a)),atom:V(B(r,`atom`,a)),selectable:V(B(r,`selectable`,a)),draggable:V(B(r,`draggable`,a)),code:V(B(r,`code`,a)),whitespace:V(B(r,`whitespace`,a)),linebreakReplacement:V(B(r,`linebreakReplacement`,a)),defining:V(B(r,`defining`,a)),isolating:V(B(r,`isolating`,a)),attrs:Object.fromEntries(i.map(ql))}),s=V(B(r,`parseHTML`,a));s&&(o.parseDOM=s.map(e=>Gl(e,i)));let c=B(r,`renderHTML`,a);c&&(o.toDOM=e=>c({node:e,HTMLAttributes:Ul(e,i)}));let l=B(r,`renderText`,a);return l&&(o.toText=l),[r.name,o]})),marks:Object.fromEntries(i.map(r=>{let i=n.filter(e=>e.type===r.name),a={name:r.name,options:r.options,storage:r.storage,editor:t},o=Kl({...e.reduce((e,t)=>{let n=B(t,`extendMarkSchema`,a);return{...e,...n?n(r):{}}},{}),inclusive:V(B(r,`inclusive`,a)),excludes:V(B(r,`excludes`,a)),group:V(B(r,`group`,a)),spanning:V(B(r,`spanning`,a)),code:V(B(r,`code`,a)),attrs:Object.fromEntries(i.map(ql))}),s=V(B(r,`parseHTML`,a));s&&(o.parseDOM=s.map(e=>Gl(e,i)));let c=B(r,`renderHTML`,a);return c&&(o.toDOM=e=>c({mark:e,HTMLAttributes:Ul(e,i)})),[r.name,o]}))})}function Yl(e){let t=e.filter((t,n)=>e.indexOf(t)!==n);return Array.from(new Set(t))}function Xl(e){return e.sort((e,t)=>{let n=B(e,`priority`)||100,r=B(t,`priority`)||100;return n>r?-1:+(n<r)})}function Zl(e){let t=Xl(Fl(e)),n=Yl(t.map(e=>e.name));return n.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${n.map(e=>`'${e}'`).join(`, `)}]. This can lead to issues.`),t}function Ql(e,t,n){let{from:r,to:i}=t,{blockSeparator:a=`
|
|
11
|
+
|
|
12
|
+
`,textSerializers:o={}}=n||{},s=``;return e.nodesBetween(r,i,(e,n,c,l)=>{e.isBlock&&n>r&&(s+=a);let u=o?.[e.type.name];if(u)return c&&(s+=u({node:e,pos:n,parent:c,index:l,range:t})),!1;e.isText&&(s+=(e?.text)?.slice(Math.max(r,n)-n,i-n))}),s}function $l(e,t){return Ql(e,{from:0,to:e.content.size},t)}function eu(e){return Object.fromEntries(Object.entries(e.nodes).filter(([,e])=>e.spec.toText).map(([e,t])=>[e,t.spec.toText]))}function tu(e,t){let n=z(t,e.schema),{from:r,to:i}=e.selection,a=[];e.doc.nodesBetween(r,i,e=>{a.push(e)});let o=a.reverse().find(e=>e.type.name===n.name);return o?{...o.attrs}:{}}function nu(e,t){let n=gl(typeof t==`string`?t:t.name,e.schema);return n===`node`?tu(e,t):n===`mark`?Ol(e,t):{}}function ru(e,t=JSON.stringify){let n={};return e.filter(e=>{let r=t(e);return Object.prototype.hasOwnProperty.call(n,r)?!1:n[r]=!0})}function iu(e){let t=ru(e);return t.length===1?t:t.filter((e,n)=>!t.filter((e,t)=>t!==n).some(t=>e.oldRange.from>=t.oldRange.from&&e.oldRange.to<=t.oldRange.to&&e.newRange.from>=t.newRange.from&&e.newRange.to<=t.newRange.to))}function au(e){let{mapping:t,steps:n}=e,r=[];return t.maps.forEach((e,i)=>{let a=[];if(e.ranges.length)e.forEach((e,t)=>{a.push({from:e,to:t})});else{let{from:e,to:t}=n[i];if(e===void 0||t===void 0)return;a.push({from:e,to:t})}a.forEach(({from:e,to:n})=>{let a=t.slice(i).map(e,-1),o=t.slice(i).map(n),s=t.invert().map(a,-1),c=t.invert().map(o);r.push({oldRange:{from:s,to:c},newRange:{from:a,to:o}})})}),iu(r)}function ou(e,t,n){let r=[];return e===t?n.resolve(e).marks().forEach(t=>{let i=Fc(n.resolve(e),t.type);i&&r.push({mark:t,...i})}):n.nodesBetween(e,t,(e,t)=>{!e||e?.nodeSize===void 0||r.push(...e.marks.map(n=>({from:t,to:t+e.nodeSize,mark:n})))}),r}var su=(e,t,n,r=20)=>{let i=e.doc.resolve(n),a=r,o=null;for(;a>0&&o===null;){let e=i.node(a);e?.type.name===t?o=e:--a}return[o,a]};function cu(e,t){return t.nodes[e]||t.marks[e]||null}function lu(e,t,n){return Object.fromEntries(Object.entries(n).filter(([n])=>{let r=e.find(e=>e.type===t&&e.name===n);return r?r.attribute.keepOnSplit:!1}))}var uu=(e,t=500)=>{let n=``,r=e.parentOffset;return e.parent.nodesBetween(Math.max(0,r-t),r,(e,t,i,a)=>{var o;let s=(o=e.type.spec).toText?.call(o,{node:e,pos:t,parent:i,index:a})||e.textContent||`%leaf%`;n+=e.isAtom&&!e.isText?s:s.slice(0,Math.max(0,r-t))}),n};function du(e,t,n={}){let{empty:r,ranges:i}=e.selection,a=t?Ic(t,e.schema):null;if(r)return!!(e.storedMarks||e.selection.$from.marks()).filter(e=>a?a.name===e.type.name:!0).find(e=>Mc(e.attrs,n,{strict:!1}));let o=0,s=[];if(i.forEach(({$from:t,$to:n})=>{let r=t.pos,i=n.pos;e.doc.nodesBetween(r,i,(e,t)=>{if(a&&e.inlineContent&&!e.type.allowsMarkType(a))return!1;if(!e.isText&&!e.marks.length)return;let n=Math.max(r,t),c=Math.min(i,t+e.nodeSize),l=c-n;o+=l,s.push(...e.marks.map(e=>({mark:e,from:n,to:c})))})}),o===0)return!1;let c=s.filter(e=>a?a.name===e.mark.type.name:!0).filter(e=>Mc(e.mark.attrs,n,{strict:!1})).reduce((e,t)=>e+t.to-t.from,0),l=s.filter(e=>a?e.mark.type!==a&&e.mark.type.excludes(a):!0).reduce((e,t)=>e+t.to-t.from,0);return(c>0?c+l:c)>=o}function fu(e,t,n={}){if(!t)return dl(e,null,n)||du(e,null,n);let r=gl(t,e.schema);return r===`node`?dl(e,t,n):r===`mark`?du(e,t,n):!1}var pu=(e,t)=>{let{$from:n,$to:r,$anchor:i}=e.selection;if(t){let n=Pl(e=>e.type.name===t)(e.selection);if(!n)return!1;let r=e.doc.resolve(n.pos+1);return i.pos+1===r.end()}return!(r.parentOffset<r.parent.nodeSize-2||n.pos!==r.pos)},mu=e=>{let{$from:t,$to:n}=e.selection;return!(t.parentOffset>0||t.pos!==n.pos)};function hu(e,t){return Array.isArray(t)?t.some(t=>(typeof t==`string`?t:t.name)===e.name):t}function gu(e,t){let{nodeExtensions:n}=zl(t),r=n.find(t=>t.name===e);if(!r)return!1;let i=V(B(r,`group`,{name:r.name,options:r.options,storage:r.storage}));return typeof i==`string`?i.split(` `).includes(`list`):!1}function _u(e,{checkChildren:t=!0,ignoreWhitespace:n=!1}={}){if(n){if(e.type.name===`hardBreak`)return!0;if(e.isText)return!/\S/.test(e.text??``)}if(e.isText)return!e.text;if(e.isAtom||e.isLeaf)return!1;if(e.content.childCount===0)return!0;if(t){let r=!0;return e.content.forEach(e=>{r!==!1&&(_u(e,{ignoreWhitespace:n,checkChildren:t})||(r=!1))}),r}return!1}function vu(e){return e instanceof F}var yu=class e{constructor(e){this.position=e}static fromJSON(t){return new e(t.position)}toJSON(){return{position:this.position}}};function bu(e,t){let n=t.mapping.mapResult(e.position);return{position:new yu(n.pos),mapResult:n}}function xu(e){return new yu(e)}function Su(e,t,n){let{selection:r}=t,i=null;if(zc(r)&&(i=r.$cursor),i){let t=e.storedMarks??i.marks();return i.parent.type.allowsMarkType(n)&&(!!n.isInSet(t)||!t.some(e=>e.type.excludes(n)))}let{ranges:a}=r;return a.some(({$from:t,$to:r})=>{let i=t.depth===0?e.doc.inlineContent&&e.doc.type.allowsMarkType(n):!1;return e.doc.nodesBetween(t.pos,r.pos,(e,t,r)=>{if(i)return!1;if(e.isInline){let t=!r||r.type.allowsMarkType(n),a=!!n.isInSet(e.marks)||!e.marks.some(e=>e.type.excludes(n));i=t&&a}return!i}),i})}var Cu=(e,t={})=>({tr:n,state:r,dispatch:i})=>{let{selection:a}=n,{empty:o,ranges:s}=a,c=Ic(e,r.schema);if(i)if(o){let e=Ol(r,c);n.addStoredMark(c.create({...e,...t}))}else s.forEach(e=>{let i=e.$from.pos,a=e.$to.pos;r.doc.nodesBetween(i,a,(e,r)=>{let o=Math.max(r,i),s=Math.min(r+e.nodeSize,a);e.marks.find(e=>e.type===c)?e.marks.forEach(e=>{c===e.type&&n.addMark(o,s,c.create({...e.attrs,...t}))}):n.addMark(o,s,c.create(t))})});return Su(r,n,c)},wu=(e,t)=>({tr:n})=>(n.setMeta(e,t),!0),Tu=(e,t={})=>({state:n,dispatch:r,chain:i})=>{let a=z(e,n.schema),o;return n.selection.$anchor.sameParent(n.selection.$head)&&(o=n.selection.$anchor.parent.attrs),a.isTextblock?i().command(({commands:e})=>mr(a,{...o,...t})(n)?!0:e.clearNodes()).command(({state:e})=>mr(a,{...o,...t})(e,r)).run():(console.warn(`[tiptap warn]: Currently "setNode()" only supports text block nodes.`),!1)},Eu=e=>({tr:t,dispatch:n})=>{if(n){let{doc:n}=t,r=Bc(e,0,n.content.size),i=F.create(n,r);t.setSelection(i)}return!0},Du=(e,t)=>({tr:n,state:r,dispatch:i})=>{let{selection:a}=r,o,s;return typeof t==`number`?(o=t,s=t):t&&`from`in t&&`to`in t?(o=t.from,s=t.to):(o=a.from,s=a.to),i&&n.doc.nodesBetween(o,s,(t,r)=>{t.isText||n.setNodeMarkup(r,void 0,{...t.attrs,dir:e})}),!0},Ou=e=>({tr:t,dispatch:n})=>{if(n){let{doc:n}=t,{from:r,to:i}=typeof e==`number`?{from:e,to:e}:e,a=P.atStart(n).from,o=P.atEnd(n).to,s=Bc(r,a,o),c=Bc(i,a,o),l=P.create(n,s,c);t.setSelection(l)}return!0},ku=e=>({state:t,dispatch:n})=>Er(z(e,t.schema))(t,n);function Au(e,t){let n=e.storedMarks||e.selection.$to.parentOffset&&e.selection.$from.marks();if(n){let r=n.filter(e=>t?.includes(e.type.name));e.tr.ensureMarks(r)}}var ju=({keepMarks:e=!0}={})=>({tr:t,state:n,dispatch:r,editor:i})=>{let{selection:a,doc:o}=t,{$from:s,$to:c}=a,l=i.extensionManager.attributes,u=lu(l,s.node().type.name,s.node().attrs);if(a instanceof F&&a.node.isBlock)return!s.parentOffset||!Bt(o,s.pos)?!1:(r&&(e&&Au(n,i.extensionManager.splittableMarks),t.split(s.pos).scrollIntoView()),!0);if(!s.parent.isBlock)return!1;let d=c.parentOffset===c.parent.content.size,f=s.depth===0?void 0:Al(s.node(-1).contentMatchAt(s.indexAfter(-1))),p=d&&f?[{type:f,attrs:u}]:void 0,m=Bt(t.doc,t.mapping.map(s.pos),1,p);if(!p&&!m&&Bt(t.doc,t.mapping.map(s.pos),1,f?[{type:f}]:void 0)&&(m=!0,p=f?[{type:f,attrs:u}]:void 0),r){if(m&&(a instanceof P&&t.deleteSelection(),t.split(t.mapping.map(s.pos),1,p),f&&!d&&!s.parentOffset&&s.parent.type!==f)){let e=t.mapping.map(s.before()),n=t.doc.resolve(e);s.node(-1).canReplaceWith(n.index(),n.index()+1,f)&&t.setNodeMarkup(t.mapping.map(s.before()),f)}e&&Au(n,i.extensionManager.splittableMarks),t.scrollIntoView()}return m},Mu=(e,t={})=>({tr:n,state:r,dispatch:i,editor:a})=>{let o=z(e,r.schema),{$from:s,$to:c}=r.selection,l=r.selection.node;if(l&&l.isBlock||s.depth<2||!s.sameParent(c))return!1;let u=s.node(-1);if(u.type!==o)return!1;let d=a.extensionManager.attributes;if(s.parent.content.size===0&&s.node(-1).childCount===s.indexAfter(-1)){if(s.depth===2||s.node(-3).type!==o||s.index(-2)!==s.node(-2).childCount-1)return!1;if(i){let e=p.empty,r=s.index(-1)?1:s.index(-2)?2:3;for(let t=s.depth-r;t>=s.depth-3;--t)e=p.from(s.node(t).copy(e));let i=s.indexAfter(-1)<s.node(-2).childCount?1:s.indexAfter(-2)<s.node(-3).childCount?2:3,a={...lu(d,s.node().type.name,s.node().attrs),...t},c=o.contentMatch.defaultType?.createAndFill(a)||void 0;e=e.append(p.from(o.createAndFill(null,c)||void 0));let l=s.before(s.depth-(r-1));n.replace(l,s.after(-i),new y(e,4-r,0));let u=-1;n.doc.nodesBetween(l,n.doc.content.size,(e,t)=>{if(u>-1)return!1;e.isTextblock&&e.content.size===0&&(u=t+1)}),u>-1&&n.setSelection(P.near(n.doc.resolve(u))),n.scrollIntoView()}return!0}let f=c.pos===s.end()?u.contentMatchAt(0).defaultType:null,m={...lu(d,u.type.name,u.attrs),...t},h={...lu(d,s.node().type.name,s.node().attrs),...t};n.delete(s.pos,c.pos);let g=f?[{type:o,attrs:m},{type:f,attrs:h}]:[{type:o,attrs:m}];if(!Bt(n.doc,s.pos,2))return!1;if(i){let{selection:e,storedMarks:t}=r,{splittableMarks:o}=a.extensionManager,c=t||e.$to.parentOffset&&e.$from.marks();if(n.split(s.pos,2,g).scrollIntoView(),!c||!i)return!0;let l=c.filter(e=>o.includes(e.type.name));n.ensureMarks(l)}return!0},Nu=(e,t)=>{let n=Pl(e=>e.type===t)(e.selection);if(!n)return!0;let r=e.doc.resolve(Math.max(0,n.pos-1)).before(n.depth);if(r===void 0)return!0;let i=e.doc.nodeAt(r);return n.node.type===i?.type&&Ht(e.doc,n.pos)&&e.join(n.pos),!0},Pu=(e,t)=>{let n=Pl(e=>e.type===t)(e.selection);if(!n)return!0;let r=e.doc.resolve(n.start).after(n.depth);if(r===void 0)return!0;let i=e.doc.nodeAt(r);return n.node.type===i?.type&&Ht(e.doc,r)&&e.join(r),!0};function Fu(e){let t=e.doc,n=t.firstChild;if(!n)return null;let r=t.resolve(1),i=t.resolve(n.nodeSize-1);return P.between(r,i)}var Iu=(e,t,n,r={})=>({editor:i,tr:a,state:o,dispatch:s,chain:c,commands:l,can:u})=>{let{extensions:d,splittableMarks:f}=i.extensionManager,p=z(e,o.schema),m=z(t,o.schema),{selection:h,storedMarks:g}=o,{$from:_,$to:v}=h,y=_.blockRange(v),b=g||h.$to.parentOffset&&h.$from.marks();if(!y)return!1;let x=Pl(e=>gu(e.type.name,d))(h),S=h.from===0&&h.to===o.doc.content.size,C=o.doc.content.content,w=C.length===1?C[0]:null,T=S&&w&&gu(w.type.name,d)?{node:w,pos:0,depth:0}:null,E=x??T,D=!!x&&y.depth>=1&&y.depth-x.depth<=1,O=!!T;if((D||O)&&E){if(E.node.type===p)return S&&O?c().command(({tr:e,dispatch:t})=>{let n=Fu(e);return n?(e.setSelection(n),t&&t(e),!0):!1}).liftListItem(m).run():l.liftListItem(m);if(gu(E.node.type.name,d)&&p.validContent(E.node.content))return c().command(()=>(a.setNodeMarkup(E.pos,p),!0)).command(()=>Nu(a,p)).command(()=>Pu(a,p)).run()}return!n||!b||!s?c().command(()=>u().wrapInList(p,r)?!0:l.clearNodes()).wrapInList(p,r).command(()=>Nu(a,p)).command(()=>Pu(a,p)).run():c().command(()=>{let e=u().wrapInList(p,r),t=b.filter(e=>f.includes(e.type.name));return a.ensureMarks(t),e?!0:l.clearNodes()}).wrapInList(p,r).command(()=>Nu(a,p)).command(()=>Pu(a,p)).run()},Lu=(e,t={},n={})=>({state:r,commands:i})=>{let{extendEmptyMarkRange:a=!1}=n,o=Ic(e,r.schema);return du(r,o,t)?i.unsetMark(o,{extendEmptyMarkRange:a}):i.setMark(o,t)},Ru=(e,t,n={})=>({state:r,commands:i})=>{let a=z(e,r.schema),o=z(t,r.schema),s=dl(r,a,n),c;return r.selection.$anchor.sameParent(r.selection.$head)&&(c=r.selection.$anchor.parent.attrs),s?i.setNode(o,c):i.setNode(a,{...c,...n})},zu=(e,t={})=>({state:n,commands:r})=>{let i=z(e,n.schema);return dl(n,i,t)?r.lift(i):r.wrapIn(i,t)},Bu=()=>({state:e,dispatch:t})=>{let n=e.plugins;for(let r=0;r<n.length;r+=1){let i=n[r],a;if(i.spec.isInputRules&&(a=i.getState(e))){if(t){let t=e.tr,n=a.transform;for(let e=n.steps.length-1;e>=0;--e)t.step(n.steps[e].invert(n.docs[e]));if(a.text){let n=t.doc.resolve(a.from).marks();t.replaceWith(a.from,a.to,e.schema.text(a.text,n))}else t.delete(a.from,a.to)}return!0}}return!1},Vu=(e={})=>({tr:t,dispatch:n,editor:r})=>{let{ignoreClearable:i=!1}=e,{selection:a}=t,{empty:o,ranges:s}=a;if(o)return!0;let{nonClearableMarks:c}=r.extensionManager;if(n){let e=Object.values(r.schema.marks).filter(e=>i||!c.includes(e.name));s.forEach(n=>{for(let r of e)t.removeMark(n.$from.pos,n.$to.pos,r)})}return!0},Hu=(e,t={})=>({tr:n,state:r,dispatch:i})=>{let{extendEmptyMarkRange:a=!1}=t,{selection:o}=n,s=Ic(e,r.schema),{$from:c,empty:l,ranges:u}=o;if(!i)return!0;if(l&&a){let{from:e,to:t}=o,r=Fc(c,s,c.marks().find(e=>e.type===s)?.attrs);r&&(e=r.from,t=r.to),n.removeMark(e,t,s)}else u.forEach(e=>{n.removeMark(e.$from.pos,e.$to.pos,s)});return n.removeStoredMark(s),!0},Uu=e=>({tr:t,state:n,dispatch:r})=>{let{selection:i}=n,a,o;return typeof e==`number`?(a=e,o=e):e&&`from`in e&&`to`in e?(a=e.from,o=e.to):(a=i.from,o=i.to),r&&t.doc.nodesBetween(a,o,(e,n)=>{if(e.isText)return;let r={...e.attrs};delete r.dir,t.setNodeMarkup(n,void 0,r)}),!0},Wu=(e,t={})=>({tr:n,state:r,dispatch:i})=>{let a=null,o=null,s=gl(typeof e==`string`?e:e.name,r.schema);if(!s)return!1;s===`node`&&(a=z(e,r.schema)),s===`mark`&&(o=Ic(e,r.schema));let c=!1;return n.selection.ranges.forEach(e=>{let s=e.$from.pos,l=e.$to.pos,u,d,f,p;n.selection.empty?r.doc.nodesBetween(s,l,(e,t)=>{a&&a===e.type&&(c=!0,f=Math.max(t,s),p=Math.min(t+e.nodeSize,l),u=t,d=e)}):r.doc.nodesBetween(s,l,(e,r)=>{r<s&&a&&a===e.type&&(c=!0,f=Math.max(r,s),p=Math.min(r+e.nodeSize,l),u=r,d=e),r>=s&&r<=l&&(a&&a===e.type&&(c=!0,i&&n.setNodeMarkup(r,void 0,{...e.attrs,...t})),o&&e.marks.length&&e.marks.forEach(a=>{if(o===a.type&&(c=!0,i)){let i=Math.max(r,s),c=Math.min(r+e.nodeSize,l);n.addMark(i,c,o.create({...a.attrs,...t}))}}))}),d&&(u!==void 0&&i&&n.setNodeMarkup(u,void 0,{...d.attrs,...t}),o&&d.marks.length&&d.marks.forEach(e=>{o===e.type&&i&&n.addMark(f,p,o.create({...e.attrs,...t}))}))}),c},Gu=(e,t={})=>({state:n,dispatch:r})=>pr(z(e,n.schema),t)(n,r),Ku=(e,t={})=>({state:n,dispatch:r})=>br(z(e,n.schema),t)(n,r),qu=class{constructor(){this.callbacks={}}on(e,t){return this.callbacks[e]||(this.callbacks[e]=[]),this.callbacks[e].push(t),this}emit(e,...t){let n=this.callbacks[e];return n&&n.forEach(e=>e.apply(this,t)),this}off(e,t){let n=this.callbacks[e];return n&&(t?this.callbacks[e]=n.filter(e=>e!==t):delete this.callbacks[e]),this}once(e,t){let n=(...r)=>{this.off(e,n),t.apply(this,r)};return this.on(e,n)}removeAllListeners(){this.callbacks={}}},Ju=class{constructor(e){this.find=e.find,this.handler=e.handler,this.undoable=e.undoable??!0}},Yu=(e,t)=>{if(jc(t))return t.exec(e);let n=t(e);if(!n)return null;let r=[n.text];return r.index=n.index,r.input=e,r.data=n.data,n.replaceWith&&(n.text.includes(n.replaceWith)||console.warn(`[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".`),r.push(n.replaceWith)),r};function Xu(e){let{editor:t,from:n,to:r,text:i,rules:a,plugin:o}=e,{view:s}=t;if(s.composing)return!1;let c=s.state.doc.resolve(n);if(c.parent.type.spec.code||(c.nodeBefore||c.nodeAfter)?.marks.find(e=>e.type.spec.code))return!1;let l=!1,u=uu(c)+i;return a.forEach(e=>{if(l)return;let a=Yu(u,e.find);if(!a)return;let c=s.state.tr,d=pc({state:s.state,transaction:c}),f={from:n-(a[0].length-i.length),to:r},{commands:p,chain:m,can:h}=new mc({editor:t,state:d});e.handler({state:d,range:f,match:a,commands:p,chain:m,can:h})===null||!c.steps.length||(e.undoable&&c.setMeta(o,{transform:c,from:n,to:r,text:i}),s.dispatch(c),l=!0)}),l}function Zu(e){let{editor:t,rules:n}=e,r=new I({state:{init(){return null},apply(e,i,a){let o=e.getMeta(r);if(o)return o;let s=e.getMeta(`applyInputRules`);return s&&setTimeout(()=>{let{text:e}=s;e=typeof e==`string`?e:Il(p.from(e),a.schema);let{from:i}=s;Xu({editor:t,from:i,to:i+e.length,text:e,rules:n,plugin:r})}),e.selectionSet||e.docChanged?null:i}},props:{handleTextInput(e,i,a,o){return Xu({editor:t,from:i,to:a,text:o,rules:n,plugin:r})},handleDOMEvents:{compositionend:e=>(setTimeout(()=>{let{$cursor:i}=e.state.selection;i&&Xu({editor:t,from:i.pos,to:i.pos,text:``,rules:n,plugin:r})}),!1)},handleKeyDown(e,i){if(i.key!==`Enter`)return!1;let{$cursor:a}=e.state.selection;return a?Xu({editor:t,from:a.pos,to:a.pos,text:`
|
|
13
|
+
`,rules:n,plugin:r}):!1}},isInputRules:!0});return r}function Qu(e){return Object.prototype.toString.call(e).slice(8,-1)}function $u(e){return Qu(e)===`Object`?e.constructor===Object&&Object.getPrototypeOf(e)===Object.prototype:!1}function ed(e,t){let n={...e};return $u(e)&&$u(t)&&Object.keys(t).forEach(r=>{$u(t[r])&&$u(e[r])?n[r]=ed(e[r],t[r]):n[r]=t[r]}),n}var td=class{constructor(e={}){this.type=`extendable`,this.parent=null,this.child=null,this.name=``,this.config={name:this.name},this.config={...this.config,...e},this.name=this.config.name}get options(){return{...V(B(this,`addOptions`,{name:this.name}))}}get storage(){return{...V(B(this,`addStorage`,{name:this.name,options:this.options}))}}configure(e={}){let t=this.extend({...this.config,addOptions:()=>ed(this.options,e)});return t.name=this.name,t.parent=this.parent,this.child=null,t}extend(e={}){let t=new this.constructor({...this.config,...e});return t.parent=this,this.child=t,t.name=`name`in e?e.name:t.parent.name,t}},nd=class e extends td{constructor(){super(...arguments),this.type=`mark`}static create(t={}){return new e(typeof t==`function`?t():t)}static handleExit({editor:e,mark:t}){let{tr:n}=e.state,r=e.state.selection.$from;if(r.pos===r.end()){let i=r.marks();if(!i.find(e=>e?.type.name===t.name))return!1;let a=i.find(e=>e?.type.name===t.name);return a&&n.removeStoredMark(a),n.insertText(` `,r.pos),e.view.dispatch(n),!0}return!1}configure(e){return super.configure(e)}extend(e){let t=typeof e==`function`?e():e;return super.extend(t)}};function rd(e){return typeof e==`number`}var id=class{constructor(e){this.find=e.find,this.handler=e.handler}},ad=(e,t,n)=>{if(jc(t))return[...e.matchAll(t)];let r=t(e,n);return r?r.map(t=>{let n=[t.text];return n.index=t.index,n.input=e,n.data=t.data,t.replaceWith&&(t.text.includes(t.replaceWith)||console.warn(`[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".`),n.push(t.replaceWith)),n}):[]};function od(e){let{editor:t,state:n,from:r,to:i,rule:a,pasteEvent:o,dropEvent:s}=e,{commands:c,chain:l,can:u}=new mc({editor:t,state:n}),d=[];return n.doc.nodesBetween(r,i,(e,t)=>{if(e.type?.spec?.code||!(e.isText||e.isTextblock||e.isInline))return;let f=e.content?.size??e.nodeSize??0,p=Math.max(r,t),m=Math.min(i,t+f);p>=m||ad(e.isText?e.text||``:e.textBetween(p-t,m-t,void 0,``),a.find,o).forEach(e=>{if(e.index===void 0)return;let t=p+e.index+1,r=t+e[0].length,i={from:n.tr.mapping.map(t),to:n.tr.mapping.map(r)},f=a.handler({state:n,range:i,match:e,commands:c,chain:l,can:u,pasteEvent:o,dropEvent:s});d.push(f)})}),d.every(e=>e!==null)}var sd=null,cd=e=>{var t;let n=new ClipboardEvent(`paste`,{clipboardData:new DataTransfer});return(t=n.clipboardData)==null||t.setData(`text/html`,e),n};function ld(e){let{editor:t,rules:n}=e,r=null,i=!1,a=!1,o=typeof ClipboardEvent<`u`?new ClipboardEvent(`paste`):null,s;try{s=typeof DragEvent<`u`?new DragEvent(`drop`):null}catch{s=null}let c=({state:e,from:n,to:r,rule:i,pasteEvt:a})=>{let c=e.tr;if(!(!od({editor:t,state:pc({state:e,transaction:c}),from:Math.max(n-1,0),to:r.b-1,rule:i,pasteEvent:a,dropEvent:s})||!c.steps.length)){try{s=typeof DragEvent<`u`?new DragEvent(`drop`):null}catch{s=null}return o=typeof ClipboardEvent<`u`?new ClipboardEvent(`paste`):null,c}};return n.map(e=>new I({view(e){let n=n=>{r=e.dom.parentElement?.contains(n.target)?e.dom.parentElement:null,r&&(sd=t)},i=()=>{sd&&=null};return window.addEventListener(`dragstart`,n),window.addEventListener(`dragend`,i),{destroy(){window.removeEventListener(`dragstart`,n),window.removeEventListener(`dragend`,i)}}},props:{handleDOMEvents:{drop:(e,t)=>{if(a=r===e.dom.parentElement,s=t,!a){let e=sd;e?.isEditable&&setTimeout(()=>{let t=e.state.selection;t&&e.commands.deleteRange({from:t.from,to:t.to})},10)}return!1},paste:(e,t)=>{let n=t.clipboardData?.getData(`text/html`);return o=t,i=!!n?.includes(`data-pm-slice`),!1}}},appendTransaction:(t,n,r)=>{let s=t[0],l=s.getMeta(`uiEvent`)===`paste`&&!i,u=s.getMeta(`uiEvent`)===`drop`&&!a,d=s.getMeta(`applyPasteRules`),f=!!d;if(!l&&!u&&!f)return;if(f){let{text:t}=d;t=typeof t==`string`?t:Il(p.from(t),r.schema);let{from:n}=d,i=n+t.length,a=cd(t);return c({rule:e,state:r,from:n,to:{b:i},pasteEvt:a})}let m=n.doc.content.findDiffStart(r.doc.content),h=n.doc.content.findDiffEnd(r.doc.content);if(!(!rd(m)||!h||m===h.b))return c({rule:e,state:r,from:m,to:h,pasteEvt:o})}}))}var ud=class{constructor(e,t){this.splittableMarks=[],this.nonClearableMarks=[],this.editor=t,this.baseExtensions=e,this.extensions=Zl(e),this.schema=Jl(this.extensions,t),this.setupExtensions()}get commands(){return this.extensions.reduce((e,t)=>{let n=B(t,`addCommands`,{name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:this.editor,type:cu(t.name,this.schema)});return n?{...e,...n()}:e},{})}get plugins(){let{editor:e}=this;return Xl([...this.extensions].reverse()).flatMap(t=>{let n={name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:e,type:cu(t.name,this.schema)},r=[],i=B(t,`addKeyboardShortcuts`,n),a={};if(t.type===`mark`&&B(t,`exitable`,n)&&(a.ArrowRight=()=>nd.handleExit({editor:e,mark:t})),i){let t=Object.fromEntries(Object.entries(i()).map(([t,n])=>[t,()=>n({editor:e})]));a={...a,...t}}let o=lc(a);r.push(o);let s=B(t,`addInputRules`,n);if(hu(t,e.options.enableInputRules)&&s){let t=s();if(t&&t.length){let n=Zu({editor:e,rules:t}),i=Array.isArray(n)?n:[n];r.push(...i)}}let c=B(t,`addPasteRules`,n);if(hu(t,e.options.enablePasteRules)&&c){let t=c();if(t&&t.length){let n=ld({editor:e,rules:t});r.push(...n)}}let l=B(t,`addProseMirrorPlugins`,n);if(l){let e=l();r.push(...e)}return r})}get attributes(){return Bl(this.extensions)}get nodeViews(){let{editor:e}=this,{nodeExtensions:t}=zl(this.extensions);return Object.fromEntries(t.filter(e=>!!B(e,`addNodeView`)).map(t=>{let n=this.attributes.filter(e=>e.type===t.name),r=B(t,`addNodeView`,{name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:e,type:z(t.name,this.schema)});if(!r)return[];let i=r();return i?[t.name,(r,a,o,s,c)=>i({node:r,view:a,getPos:o,decorations:s,innerDecorations:c,editor:e,extension:t,HTMLAttributes:Ul(r,n)})]:[]}))}dispatchTransaction(e){let{editor:t}=this;return Xl([...this.extensions].reverse()).reduceRight((e,n)=>{let r={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:cu(n.name,this.schema)},i=B(n,`dispatchTransaction`,r);return i?t=>{i.call(r,{transaction:t,next:e})}:e},e)}transformPastedHTML(e){let{editor:t}=this;return Xl([...this.extensions]).reduce((e,n)=>{let r={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:cu(n.name,this.schema)},i=B(n,`transformPastedHTML`,r);return i?(t,n)=>{let a=e(t,n);return i.call(r,a)}:e},e||(e=>e))}get markViews(){let{editor:e}=this,{markExtensions:t}=zl(this.extensions);return Object.fromEntries(t.filter(e=>!!B(e,`addMarkView`)).map(t=>{let n=this.attributes.filter(e=>e.type===t.name),r=B(t,`addMarkView`,{name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:e,type:Ic(t.name,this.schema)});return r?[t.name,(i,a,o)=>{let s=Ul(i,n);return r()({mark:i,view:a,inline:o,editor:e,extension:t,HTMLAttributes:s,updateAttributes:t=>{Ud(i,e,t)}})}]:[]}))}destroy(){this.extensions.forEach(e=>{let t=e;for(;t.parent;){let e=t.parent;e.child===t&&(e.child=null),t=e}}),this.extensions=[],this.baseExtensions=[],this.schema=null,this.editor=null}setupExtensions(){let e=this.extensions;this.editor.extensionStorage=Object.fromEntries(e.map(e=>[e.name,e.storage])),e.forEach(e=>{let t={name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:this.editor,type:cu(e.name,this.schema)};e.type===`mark`&&((V(B(e,`keepOnSplit`,t))??!0)&&this.splittableMarks.push(e.name),(V(B(e,`clearable`,t))??!0)||this.nonClearableMarks.push(e.name));let n=B(e,`onBeforeCreate`,t),r=B(e,`onCreate`,t),i=B(e,`onUpdate`,t),a=B(e,`onSelectionUpdate`,t),o=B(e,`onTransaction`,t),s=B(e,`onFocus`,t),c=B(e,`onBlur`,t),l=B(e,`onDestroy`,t);n&&this.editor.on(`beforeCreate`,n),r&&this.editor.on(`create`,r),i&&this.editor.on(`update`,i),a&&this.editor.on(`selectionUpdate`,a),o&&this.editor.on(`transaction`,o),s&&this.editor.on(`focus`,s),c&&this.editor.on(`blur`,c),l&&this.editor.on(`destroy`,l)})}};ud.resolve=Zl,ud.sort=Xl,ud.flatten=Fl,fc({},{ClipboardTextSerializer:()=>dd,Commands:()=>fd,Delete:()=>pd,Drop:()=>md,Editable:()=>hd,FocusEvents:()=>_d,Keymap:()=>vd,Paste:()=>yd,Tabindex:()=>bd,TextDirection:()=>xd,focusEventsPluginKey:()=>gd});var U=class e extends td{constructor(){super(...arguments),this.type=`extension`}static create(t={}){return new e(typeof t==`function`?t():t)}configure(e){return super.configure(e)}extend(e){let t=typeof e==`function`?e():e;return super.extend(t)}},dd=U.create({name:`clipboardTextSerializer`,addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new I({key:new L(`clipboardTextSerializer`),props:{clipboardTextSerializer:()=>{let{editor:e}=this,{state:t,schema:n}=e,{doc:r,selection:i}=t,a=eu(n),{blockSeparator:o}=this.options,s={...o===void 0?{}:{blockSeparator:o},textSerializers:a};return[...i.ranges].sort((e,t)=>e.$from.pos-t.$from.pos).map(({$from:e,$to:t})=>Ql(r,{from:e.pos,to:t.pos},s)).join(o??`
|
|
14
|
+
|
|
15
|
+
`)}}})]}}),fd=U.create({name:`commands`,addCommands(){return{...hc}}}),pd=U.create({name:`delete`,onUpdate({transaction:e,appendedTransactions:t}){let n=()=>{var n;if(((n=this.editor.options.coreExtensionOptions?.delete)?.filterTransaction)?.call(n,e)??e.getMeta(`y-sync$`))return;let r=kl(e.before,[e,...t]);au(r).forEach(t=>{r.mapping.mapResult(t.oldRange.from).deletedAfter&&r.mapping.mapResult(t.oldRange.to).deletedBefore&&r.before.nodesBetween(t.oldRange.from,t.oldRange.to,(n,i)=>{let a=i+n.nodeSize-2,o=t.oldRange.from<=i&&a<=t.oldRange.to;this.editor.emit(`delete`,{type:`node`,node:n,from:i,to:a,newFrom:r.mapping.map(i),newTo:r.mapping.map(a),deletedRange:t.oldRange,newRange:t.newRange,partial:!o,editor:this.editor,transaction:e,combinedTransform:r})})});let i=r.mapping;r.steps.forEach((t,n)=>{if(t instanceof vt){let a=i.slice(n).map(t.from,-1),o=i.slice(n).map(t.to),s=i.invert().map(a,-1),c=i.invert().map(o),l=a>0?r.doc.nodeAt(a-1)?.marks.some(e=>e.eq(t.mark)):!1,u=r.doc.nodeAt(o)?.marks.some(e=>e.eq(t.mark));this.editor.emit(`delete`,{type:`mark`,mark:t.mark,from:t.from,to:t.to,deletedRange:{from:s,to:c},newRange:{from:a,to:o},partial:!!(u||l),editor:this.editor,transaction:e,combinedTransform:r})}})};this.editor.options.coreExtensionOptions?.delete?.async??!0?setTimeout(n,0):n()}}),md=U.create({name:`drop`,addProseMirrorPlugins(){return[new I({key:new L(`tiptapDrop`),props:{handleDrop:(e,t,n,r)=>{this.editor.emit(`drop`,{editor:this.editor,event:t,slice:n,moved:r})}}})]}}),hd=U.create({name:`editable`,addProseMirrorPlugins(){return[new I({key:new L(`editable`),props:{editable:()=>this.editor.options.editable}})]}}),gd=new L(`focusEvents`),_d=U.create({name:`focusEvents`,addProseMirrorPlugins(){let{editor:e}=this;return[new I({key:gd,props:{handleDOMEvents:{focus:(t,n)=>{e.isFocused=!0;let r=e.state.tr.setMeta(`focus`,{event:n}).setMeta(`addToHistory`,!1);return t.dispatch(r),!1},blur:(t,n)=>{e.isFocused=!1;let r=e.state.tr.setMeta(`blur`,{event:n}).setMeta(`addToHistory`,!1);return t.dispatch(r),!1}}}})]}}),vd=U.create({name:`keymap`,addKeyboardShortcuts(){let e=()=>this.editor.commands.first(({commands:e})=>[()=>e.undoInputRule(),()=>e.command(({tr:t})=>{let{selection:n,doc:r}=t,{empty:i,$anchor:a}=n,{pos:o,parent:s}=a,c=a.parent.isTextblock&&o>0?t.doc.resolve(o-1):a,l=c.parent.type.spec.isolating,u=a.pos-a.parentOffset,d=l&&c.parent.childCount===1?u===a.pos:N.atStart(r).from===o;return!i||!s.type.isTextblock||s.textContent.length||!d||d&&a.parent.type.name===`paragraph`?!1:e.clearNodes()}),()=>e.deleteSelection(),()=>e.joinBackward(),()=>e.selectNodeBackward()]),t=()=>this.editor.commands.first(({commands:e})=>[()=>e.deleteSelection(),()=>e.deleteCurrentNode(),()=>e.joinForward(),()=>e.selectNodeForward()]),n={Enter:()=>this.editor.commands.first(({commands:e})=>[()=>e.newlineInCode(),()=>e.createParagraphNear(),()=>e.liftEmptyBlock(),()=>e.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:e,"Mod-Backspace":e,"Shift-Backspace":e,Delete:t,"Mod-Delete":t,"Mod-a":()=>this.editor.commands.selectAll()},r={...n},i={...n,"Ctrl-h":e,"Alt-Backspace":e,"Ctrl-d":t,"Ctrl-Alt-Backspace":t,"Alt-Delete":t,"Alt-d":t,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return Uc()||cl()?i:r},addProseMirrorPlugins(){return[new I({key:new L(`clearDocument`),appendTransaction:(e,t,n)=>{if(e.some(e=>e.getMeta(`composition`)))return;let r=e.some(e=>e.docChanged)&&!t.doc.eq(n.doc),i=e.some(e=>e.getMeta(`preventClearDocument`));if(!r||i)return;let{empty:a,from:o,to:s}=t.selection,c=N.atStart(t.doc).from,l=N.atEnd(t.doc).to;if(a||!(o===c&&s===l)||!_u(n.doc))return;let u=n.tr,d=pc({state:n,transaction:u}),{commands:f}=new mc({editor:this.editor,state:d});if(f.clearNodes(),u.steps.length)return u}})]}}),yd=U.create({name:`paste`,addProseMirrorPlugins(){return[new I({key:new L(`tiptapPaste`),props:{handlePaste:(e,t,n)=>{this.editor.emit(`paste`,{editor:this.editor,event:t,slice:n})}}})]}}),bd=U.create({name:`tabindex`,addOptions(){return{value:void 0}},addProseMirrorPlugins(){return[new I({key:new L(`tabindex`),props:{attributes:()=>!this.editor.isEditable&&this.options.value===void 0?{}:{tabindex:this.options.value??`0`}}})]}}),xd=U.create({name:`textDirection`,addOptions(){return{direction:void 0}},addGlobalAttributes(){if(!this.options.direction)return[];let{nodeExtensions:e}=zl(this.extensions);return[{types:e.filter(e=>e.name!==`text`).map(e=>e.name),attributes:{dir:{default:this.options.direction,parseHTML:e=>{let t=e.getAttribute(`dir`);return t&&(t===`ltr`||t===`rtl`||t===`auto`)?t:this.options.direction},renderHTML:e=>e.dir?{dir:e.dir}:{}}}}]},addProseMirrorPlugins(){return[new I({key:new L(`textDirection`),props:{attributes:()=>{let e=this.options.direction;return e?{dir:e}:{}}}})]}}),Sd=class e{constructor(e,t,n=!1,r=null){this.currentNode=null,this.actualDepth=null,this.isBlock=n,this.resolvedPos=e,this.editor=t,this.currentNode=r}get name(){return this.node.type.name}get node(){return this.currentNode||this.resolvedPos.node()}get element(){return this.editor.view.domAtPos(this.pos).node}get depth(){return this.actualDepth??this.resolvedPos.depth}get pos(){return this.resolvedPos.pos}get content(){return this.node.content}set content(e){let t=this.from,n=this.to;if(this.isBlock){if(this.content.size===0){console.error(`You can\u2019t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`);return}t=this.from+1,n=this.to-1}this.editor.commands.insertContentAt({from:t,to:n},e)}get attributes(){return this.node.attrs}get textContent(){return this.node.textContent}get size(){return this.node.nodeSize}get from(){return this.isBlock?this.pos:this.resolvedPos.start(this.resolvedPos.depth)}get range(){return{from:this.from,to:this.to}}get to(){return this.isBlock?this.pos+this.size:this.resolvedPos.end(this.resolvedPos.depth)+ +!this.node.isText}get parent(){if(this.depth===0)return null;let t=this.resolvedPos.start(this.resolvedPos.depth-1);return new e(this.resolvedPos.doc.resolve(t),this.editor)}get before(){let t=this.resolvedPos.doc.resolve(this.from-(this.isBlock?1:2));return t.depth!==this.depth&&(t=this.resolvedPos.doc.resolve(this.from-3)),new e(t,this.editor)}get after(){let t=this.resolvedPos.doc.resolve(this.to+(this.isBlock?2:1));return t.depth!==this.depth&&(t=this.resolvedPos.doc.resolve(this.to+3)),new e(t,this.editor)}get children(){let t=[];return this.node.content.forEach((n,r)=>{let i=n.isBlock&&!n.isTextblock,a=n.isAtom&&!n.isText,o=n.isInline,s=this.pos+r+ +!a;if(s<0||s>this.resolvedPos.doc.nodeSize-2)return;let c=this.resolvedPos.doc.resolve(s);if(!i&&!o&&c.depth<=this.depth)return;let l=new e(c,this.editor,i,i||o?n:null);i&&(l.actualDepth=this.depth+1),t.push(l)}),t}get firstChild(){return this.children[0]||null}get lastChild(){let e=this.children;return e[e.length-1]||null}closest(e,t={}){let n=null,r=this.parent;for(;r&&!n;){if(r.node.type.name===e)if(Object.keys(t).length>0){let e=r.node.attrs,n=Object.keys(t);for(let r=0;r<n.length;r+=1){let i=n[r];if(e[i]!==t[i])break}}else n=r;r=r.parent}return n}querySelector(e,t={}){return this.querySelectorAll(e,t,!0)[0]||null}querySelectorAll(e,t={},n=!1){let r=[];if(!this.children||this.children.length===0)return r;let i=Object.keys(t);return this.children.forEach(a=>{n&&r.length>0||(a.node.type.name===e&&i.every(e=>t[e]===a.node.attrs[e])&&r.push(a),!(n&&r.length>0)&&(r=r.concat(a.querySelectorAll(e,t,n))))}),r}setAttribute(e){let{tr:t}=this.editor.state;t.setNodeMarkup(this.from,void 0,{...this.node.attrs,...e}),this.editor.view.dispatch(t)}},Cd=`.ProseMirror {
|
|
16
|
+
position: relative;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.ProseMirror {
|
|
20
|
+
word-wrap: break-word;
|
|
21
|
+
white-space: pre-wrap;
|
|
22
|
+
white-space: break-spaces;
|
|
23
|
+
-webkit-font-variant-ligatures: none;
|
|
24
|
+
font-variant-ligatures: none;
|
|
25
|
+
font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.ProseMirror [contenteditable="false"] {
|
|
29
|
+
white-space: normal;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.ProseMirror [contenteditable="false"] [contenteditable="true"] {
|
|
33
|
+
white-space: pre-wrap;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.ProseMirror pre {
|
|
37
|
+
white-space: pre-wrap;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
img.ProseMirror-separator {
|
|
41
|
+
display: inline !important;
|
|
42
|
+
border: none !important;
|
|
43
|
+
margin: 0 !important;
|
|
44
|
+
width: 0 !important;
|
|
45
|
+
height: 0 !important;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.ProseMirror-gapcursor {
|
|
49
|
+
display: none;
|
|
50
|
+
pointer-events: none;
|
|
51
|
+
position: absolute;
|
|
52
|
+
margin: 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.ProseMirror-gapcursor:after {
|
|
56
|
+
content: "";
|
|
57
|
+
display: block;
|
|
58
|
+
position: absolute;
|
|
59
|
+
top: -2px;
|
|
60
|
+
width: 20px;
|
|
61
|
+
border-top: 1px solid black;
|
|
62
|
+
animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@keyframes ProseMirror-cursor-blink {
|
|
66
|
+
to {
|
|
67
|
+
visibility: hidden;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.ProseMirror-hideselection *::selection {
|
|
72
|
+
background: transparent;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.ProseMirror-hideselection *::-moz-selection {
|
|
76
|
+
background: transparent;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.ProseMirror-hideselection * {
|
|
80
|
+
caret-color: transparent;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.ProseMirror-focused .ProseMirror-gapcursor {
|
|
84
|
+
display: block;
|
|
85
|
+
}`;function wd(e,t,n){let r=document.querySelector(`style[data-tiptap-style${n?`-${n}`:``}]`);if(r!==null)return r;let i=document.createElement(`style`);return t&&i.setAttribute(`nonce`,t),i.setAttribute(`data-tiptap-style${n?`-${n}`:``}`,``),i.innerHTML=e,document.getElementsByTagName(`head`)[0].appendChild(i),i}var Td=class extends qu{constructor(e={}){super(),this.css=null,this.className=`tiptap`,this.editorView=null,this.isFocused=!1,this.destroyed=!1,this.isInitialized=!1,this.extensionStorage={},this.instanceId=Math.random().toString(36).slice(2,9),this.options={element:typeof document<`u`?document.createElement(`div`):null,content:``,injectCSS:!0,injectNonce:void 0,extensions:[],autofocus:!1,editable:!0,textDirection:void 0,editorProps:{},parseOptions:{},coreExtensionOptions:{},enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!0,enableContentCheck:!1,emitContentError:!1,onBeforeCreate:()=>null,onCreate:()=>null,onMount:()=>null,onUnmount:()=>null,onUpdate:()=>null,onSelectionUpdate:()=>null,onTransaction:()=>null,onFocus:()=>null,onBlur:()=>null,onDestroy:()=>null,onContentError:({error:e})=>{throw e},onPaste:()=>null,onDrop:()=>null,onDelete:()=>null,enableExtensionDispatchTransaction:!0},this.isCapturingTransaction=!1,this.capturedTransaction=null,this.utils={getUpdatedPosition:bu,createMappablePosition:xu},this.setOptions(e),this.createExtensionManager(),this.createCommandManager(),this.createSchema(),this.on(`beforeCreate`,this.options.onBeforeCreate),this.emit(`beforeCreate`,{editor:this}),this.on(`mount`,this.options.onMount),this.on(`unmount`,this.options.onUnmount),this.on(`contentError`,this.options.onContentError),this.on(`create`,this.options.onCreate),this.on(`update`,this.options.onUpdate),this.on(`selectionUpdate`,this.options.onSelectionUpdate),this.on(`transaction`,this.options.onTransaction),this.on(`focus`,this.options.onFocus),this.on(`blur`,this.options.onBlur),this.on(`destroy`,this.options.onDestroy),this.on(`drop`,({event:e,slice:t,moved:n})=>this.options.onDrop(e,t,n)),this.on(`paste`,({event:e,slice:t})=>this.options.onPaste(e,t)),this.on(`delete`,this.options.onDelete);let t=this.createDoc(),n=Vc(t,this.options.autofocus);this.editorState=Nn.create({doc:t,schema:this.schema,selection:n||void 0}),this.options.element&&this.mount(this.options.element)}mount(e){if(typeof document>`u`)throw Error(`[tiptap error]: The editor cannot be mounted because there is no 'document' defined in this environment.`);this.createView(e),this.emit(`mount`,{editor:this}),this.css&&!document.head.contains(this.css)&&document.head.appendChild(this.css),window.setTimeout(()=>{this.isDestroyed||(this.options.autofocus!==!1&&this.options.autofocus!==null&&this.commands.focus(this.options.autofocus),this.emit(`create`,{editor:this}),this.isInitialized=!0)},0)}unmount(){if(this.editorView){let e=this.editorView.dom;e?.editor&&delete e.editor,this.editorView.destroy()}if(this.editorView=null,this.isInitialized=!1,this.css&&!document.querySelectorAll(`.${this.className}`).length)try{typeof this.css.remove==`function`?this.css.remove():this.css.parentNode&&this.css.parentNode.removeChild(this.css)}catch(e){console.warn(`Failed to remove CSS element:`,e)}this.css=null,this.emit(`unmount`,{editor:this})}get storage(){return this.extensionStorage}get commands(){return this.commandManager.commands}chain(){return this.commandManager.chain()}can(){return this.commandManager.can()}injectCSS(){this.options.injectCSS&&typeof document<`u`&&(this.css=wd(Cd,this.options.injectNonce))}setOptions(e={}){this.options={...this.options,...e},!(!this.editorView||!this.state||this.isDestroyed)&&(this.options.editorProps&&this.view.setProps(this.options.editorProps),this.view.updateState(this.state))}setEditable(e,t=!0){this.setOptions({editable:e}),t&&this.emit(`update`,{editor:this,transaction:this.state.tr,appendedTransactions:[]})}get isEditable(){return this.options.editable&&this.view&&this.view.editable}get view(){return this.editorView?this.editorView:new Proxy({state:this.editorState,updateState:e=>{this.editorState=e},dispatch:e=>{this.dispatchTransaction(e)},composing:!1,dragging:null,editable:!0,isDestroyed:!1},{get:(e,t)=>{if(this.editorView)return this.editorView[t];if(t===`state`)return this.editorState;if(t in e)return Reflect.get(e,t);throw Error(`[tiptap error]: The editor view is not available. Cannot access view['${t}']. The editor may not be mounted yet.`)}})}get state(){return this.editorView&&(this.editorState=this.view.state),this.editorState}registerPlugin(e,t){let n=Ll(t)?t(e,[...this.state.plugins]):[...this.state.plugins,e],r=this.state.reconfigure({plugins:n});return this.view.updateState(r),r}unregisterPlugin(e){if(this.isDestroyed)return;let t=this.state.plugins,n=t;if([].concat(e).forEach(e=>{let t=typeof e==`string`?`${e}$`:e.key;n=n.filter(e=>!e.key.startsWith(t))}),t.length===n.length)return;let r=this.state.reconfigure({plugins:n});return this.view.updateState(r),r}createExtensionManager(){let e=[...this.options.enableCoreExtensions?[hd,dd.configure({blockSeparator:this.options.coreExtensionOptions?.clipboardTextSerializer?.blockSeparator}),fd,_d,vd,bd.configure({value:this.options.coreExtensionOptions?.tabindex?.value}),md,yd,pd,xd.configure({direction:this.options.textDirection})].filter(e=>typeof this.options.enableCoreExtensions==`object`?this.options.enableCoreExtensions[e.name]!==!1:!0):[],...this.options.extensions].filter(e=>[`extension`,`node`,`mark`].includes(e?.type));this.extensionManager=new ud(e,this)}createCommandManager(){this.commandManager=new mc({editor:this})}createSchema(){this.schema=this.extensionManager.schema}createDoc(){let e;try{e=El(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:this.options.enableContentCheck})}catch(t){if(!(t instanceof Error)||![`[tiptap error]: Invalid JSON content`,`[tiptap error]: Invalid HTML content`].includes(t.message))throw t;this.emit(`contentError`,{editor:this,error:t,disableCollaboration:()=>{`collaboration`in this.storage&&typeof this.storage.collaboration==`object`&&this.storage.collaboration&&(this.storage.collaboration.isDisabled=!0),this.options.extensions=this.options.extensions.filter(e=>e.name!==`collaboration`),this.createExtensionManager()}}),e=El(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:!1})}return e}createView(e){let{editorProps:t,enableExtensionDispatchTransaction:n}=this.options,r=t.dispatchTransaction||this.dispatchTransaction.bind(this),i=n?this.extensionManager.dispatchTransaction(r):r,a=t.transformPastedHTML,o=this.extensionManager.transformPastedHTML(a);this.editorView=new Us(e,{...t,attributes:{role:`textbox`,...t?.attributes},dispatchTransaction:i,transformPastedHTML:o,state:this.editorState,markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews});let s=this.state.reconfigure({plugins:this.extensionManager.plugins});this.view.updateState(s),this.prependClass(),this.injectCSS();let c=this.view.dom;c.editor=this}createNodeViews(){this.view.isDestroyed||this.view.setProps({markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews})}prependClass(){this.view.dom.className=`${this.className} ${this.view.dom.className}`}captureTransaction(e){this.isCapturingTransaction=!0,e(),this.isCapturingTransaction=!1;let t=this.capturedTransaction;return this.capturedTransaction=null,t}dispatchTransaction(e){if(this.view.isDestroyed)return;if(this.isCapturingTransaction){if(!this.capturedTransaction){this.capturedTransaction=e;return}e.steps.forEach(e=>this.capturedTransaction?.step(e));return}let{state:t,transactions:n}=this.state.applyTransaction(e),r=!this.state.selection.eq(t.selection),i=n.includes(e),a=this.state;if(this.emit(`beforeTransaction`,{editor:this,transaction:e,nextState:t}),!i)return;this.view.updateState(t),this.emit(`transaction`,{editor:this,transaction:e,appendedTransactions:n.slice(1)}),r&&this.emit(`selectionUpdate`,{editor:this,transaction:e});let o=n.findLast(e=>e.getMeta(`focus`)||e.getMeta(`blur`)),s=o?.getMeta(`focus`),c=o?.getMeta(`blur`);s&&this.emit(`focus`,{editor:this,event:s.event,transaction:o}),c&&this.emit(`blur`,{editor:this,event:c.event,transaction:o}),!(e.getMeta(`preventUpdate`)||!n.some(e=>e.docChanged)||a.doc.eq(t.doc))&&this.emit(`update`,{editor:this,transaction:e,appendedTransactions:n.slice(1)})}getAttributes(e){return nu(this.state,e)}isActive(e,t){let n=typeof e==`string`?e:null,r=typeof e==`string`?t:e;return fu(this.state,n,r)}getJSON(){return this.state.doc.toJSON()}getHTML(){return Il(this.state.doc.content,this.schema)}getText(e){let{blockSeparator:t=`
|
|
86
|
+
|
|
87
|
+
`,textSerializers:n={}}=e||{};return $l(this.state.doc,{blockSeparator:t,textSerializers:{...eu(this.schema),...n}})}get isEmpty(){return _u(this.state.doc)}destroy(){this.destroyed||(this.destroyed=!0,this.emit(`destroy`),this.unmount(),this.removeAllListeners(),this.extensionManager.destroy(),this.extensionManager=null,this.schema=null,this.commandManager=null,this.extensionStorage={})}get isDestroyed(){return this.editorView?.isDestroyed??!0}$node(e,t){return this.$doc?.querySelector(e,t)||null}$nodes(e,t){return this.$doc?.querySelectorAll(e,t)||null}$pos(e){let t=this.state.doc.resolve(e),n=e>0&&t.nodeAfter&&!t.nodeAfter.isText?t.nodeAfter:null;return new Sd(t,this,!1,n)}get $doc(){return this.$pos(0)}};function Ed(e){return new Ju({find:e.find,handler:({state:t,range:n,match:r})=>{let i=V(e.getAttributes,void 0,r);if(i===!1||i===null)return null;let{tr:a}=t,o=r[r.length-1],s=r[0];if(o){let r=s.search(/\S/),c=n.from+s.indexOf(o),l=c+o.length;if(ou(n.from,n.to,t.doc).filter(t=>t.mark.type.excluded.find(n=>n===e.type&&n!==t.mark.type)).filter(e=>e.to>c).length)return null;l<n.to&&a.delete(l,n.to),c>n.from&&a.delete(n.from+r,c);let u=n.from+r+o.length;a.addMark(n.from+r,u,e.type.create(i||{})),a.removeStoredMark(e.type)}},undoable:e.undoable})}function Dd(e){return new Ju({find:e.find,handler:({state:t,range:n,match:r})=>{let i=V(e.getAttributes,void 0,r)||{},{tr:a}=t,o=n.from,s=n.to,c=e.type.create(i);if(r[1]){let e=o+r[0].lastIndexOf(r[1]);e>s?e=s:s=e+r[1].length;let t=r[0][r[0].length-1];a.insertText(t,o+r[0].length-1),a.replaceWith(e,s,c)}else if(r[0]){let t=e.type.isInline?o:o-1;a.insert(t,e.type.create(i)).delete(a.mapping.map(o),a.mapping.map(s))}a.scrollIntoView()},undoable:e.undoable})}function Od(e){return new Ju({find:e.find,handler:({state:t,range:n,match:r})=>{let i=t.doc.resolve(n.from),a=V(e.getAttributes,void 0,r)||{};if(!i.node(-1).canReplaceWith(i.index(-1),i.indexAfter(-1),e.type))return null;t.tr.delete(n.from,n.to).setBlockType(n.from,n.from,e.type,a)},undoable:e.undoable})}function kd(e){return new Ju({find:e.find,handler:({state:t,range:n,match:r,chain:i})=>{let a=V(e.getAttributes,void 0,r)||{},o=t.tr.delete(n.from,n.to),s=o.doc.resolve(n.from).blockRange(),c=s&&At(s,e.type,a);if(!c)return null;if(o.wrap(s,c),e.keepMarks&&e.editor){let{selection:n,storedMarks:r}=t,{splittableMarks:i}=e.editor.extensionManager,a=r||n.$to.parentOffset&&n.$from.marks();if(a){let e=a.filter(e=>i.includes(e.type.name));o.ensureMarks(e)}}if(e.keepAttributes){let t=e.type.name===`bulletList`||e.type.name===`orderedList`?`listItem`:`taskList`;i().updateAttributes(t,a).run()}let l=o.doc.resolve(n.from-1).nodeBefore;l&&l.type===e.type&&Ht(o.doc,n.from-1)&&(!e.joinPredicate||e.joinPredicate(r,l))&&o.join(n.from-1)},undoable:e.undoable})}var Ad=e=>`touches`in e,jd=class{constructor(e){this.directions=[`bottom-left`,`bottom-right`,`top-left`,`top-right`],this.minSize={height:8,width:8},this.preserveAspectRatio=!1,this.classNames={container:``,wrapper:``,handle:``,resizing:``},this.initialWidth=0,this.initialHeight=0,this.aspectRatio=1,this.isResizing=!1,this.activeHandle=null,this.startX=0,this.startY=0,this.startWidth=0,this.startHeight=0,this.isShiftKeyPressed=!1,this.lastEditableState=void 0,this.handleMap=new Map,this.handleMouseMove=e=>{if(!this.isResizing||!this.activeHandle)return;let t=e.clientX-this.startX,n=e.clientY-this.startY;this.handleResize(t,n)},this.handleTouchMove=e=>{if(!this.isResizing||!this.activeHandle)return;let t=e.touches[0];if(!t)return;let n=t.clientX-this.startX,r=t.clientY-this.startY;this.handleResize(n,r)},this.handleMouseUp=()=>{if(!this.isResizing)return;let e=this.element.offsetWidth,t=this.element.offsetHeight;this.onCommit(e,t),this.isResizing=!1,this.activeHandle=null,this.container.dataset.resizeState=`false`,this.classNames.resizing&&this.container.classList.remove(this.classNames.resizing),document.removeEventListener(`mousemove`,this.handleMouseMove),document.removeEventListener(`mouseup`,this.handleMouseUp),document.removeEventListener(`keydown`,this.handleKeyDown),document.removeEventListener(`keyup`,this.handleKeyUp)},this.handleKeyDown=e=>{e.key===`Shift`&&(this.isShiftKeyPressed=!0)},this.handleKeyUp=e=>{e.key===`Shift`&&(this.isShiftKeyPressed=!1)},this.node=e.node,this.editor=e.editor,this.element=e.element,this.element.draggable=!1,this.contentElement=e.contentElement,this.getPos=e.getPos,this.onResize=e.onResize,this.onCommit=e.onCommit,this.onUpdate=e.onUpdate,e.options?.min&&(this.minSize={...this.minSize,...e.options.min}),e.options?.max&&(this.maxSize=e.options.max),e?.options?.directions&&(this.directions=e.options.directions),e.options?.preserveAspectRatio&&(this.preserveAspectRatio=e.options.preserveAspectRatio),e.options?.className&&(this.classNames={container:e.options.className.container||``,wrapper:e.options.className.wrapper||``,handle:e.options.className.handle||``,resizing:e.options.className.resizing||``}),e.options?.createCustomHandle&&(this.createCustomHandle=e.options.createCustomHandle),this.wrapper=this.createWrapper(),this.container=this.createContainer(),this.applyInitialSize(),this.attachHandles(),this.editor.on(`update`,this.handleEditorUpdate.bind(this))}get dom(){return this.container}get contentDOM(){return this.contentElement??null}handleEditorUpdate(){let e=this.editor.isEditable;e!==this.lastEditableState&&(this.lastEditableState=e,e?e&&this.handleMap.size===0&&this.attachHandles():this.removeHandles())}update(e,t,n){return e.type===this.node.type?(this.node=e,this.onUpdate?this.onUpdate(e,t,n):!0):!1}destroy(){this.isResizing&&(this.container.dataset.resizeState=`false`,this.classNames.resizing&&this.container.classList.remove(this.classNames.resizing),document.removeEventListener(`mousemove`,this.handleMouseMove),document.removeEventListener(`mouseup`,this.handleMouseUp),document.removeEventListener(`keydown`,this.handleKeyDown),document.removeEventListener(`keyup`,this.handleKeyUp),this.isResizing=!1,this.activeHandle=null),this.editor.off(`update`,this.handleEditorUpdate.bind(this)),this.container.remove()}createContainer(){let e=document.createElement(`div`);return e.dataset.resizeContainer=``,e.dataset.node=this.node.type.name,e.style.display=this.node.type.isInline?`inline-flex`:`flex`,this.classNames.container&&(e.className=this.classNames.container),e.appendChild(this.wrapper),e}createWrapper(){let e=document.createElement(`div`);return e.style.position=`relative`,e.style.display=`block`,e.dataset.resizeWrapper=``,this.classNames.wrapper&&(e.className=this.classNames.wrapper),e.appendChild(this.element),e}createHandle(e){let t=document.createElement(`div`);return t.dataset.resizeHandle=e,t.style.position=`absolute`,this.classNames.handle&&(t.className=this.classNames.handle),t}positionHandle(e,t){let n=t.includes(`top`),r=t.includes(`bottom`),i=t.includes(`left`),a=t.includes(`right`);n&&(e.style.top=`0`),r&&(e.style.bottom=`0`),i&&(e.style.left=`0`),a&&(e.style.right=`0`),(t===`top`||t===`bottom`)&&(e.style.left=`0`,e.style.right=`0`),(t===`left`||t===`right`)&&(e.style.top=`0`,e.style.bottom=`0`)}attachHandles(){this.directions.forEach(e=>{let t;t=this.createCustomHandle?this.createCustomHandle(e):this.createHandle(e),t instanceof HTMLElement||(console.warn(`[ResizableNodeView] createCustomHandle("${e}") did not return an HTMLElement. Falling back to default handle.`),t=this.createHandle(e)),this.createCustomHandle||this.positionHandle(t,e),t.addEventListener(`mousedown`,t=>this.handleResizeStart(t,e)),t.addEventListener(`touchstart`,t=>this.handleResizeStart(t,e)),this.handleMap.set(e,t),this.wrapper.appendChild(t)})}removeHandles(){this.handleMap.forEach(e=>e.remove()),this.handleMap.clear()}applyInitialSize(){let e=this.node.attrs.width,t=this.node.attrs.height;e?(this.element.style.width=`${e}px`,this.initialWidth=e):this.initialWidth=this.element.offsetWidth,t?(this.element.style.height=`${t}px`,this.initialHeight=t):this.initialHeight=this.element.offsetHeight,this.initialWidth>0&&this.initialHeight>0&&(this.aspectRatio=this.initialWidth/this.initialHeight)}handleResizeStart(e,t){e.preventDefault(),e.stopPropagation(),this.isResizing=!0,this.activeHandle=t,Ad(e)?(this.startX=e.touches[0].clientX,this.startY=e.touches[0].clientY):(this.startX=e.clientX,this.startY=e.clientY),this.startWidth=this.element.offsetWidth,this.startHeight=this.element.offsetHeight,this.startWidth>0&&this.startHeight>0&&(this.aspectRatio=this.startWidth/this.startHeight),this.getPos(),this.container.dataset.resizeState=`true`,this.classNames.resizing&&this.container.classList.add(this.classNames.resizing),document.addEventListener(`mousemove`,this.handleMouseMove),document.addEventListener(`touchmove`,this.handleTouchMove),document.addEventListener(`mouseup`,this.handleMouseUp),document.addEventListener(`keydown`,this.handleKeyDown),document.addEventListener(`keyup`,this.handleKeyUp)}handleResize(e,t){if(!this.activeHandle)return;let n=this.preserveAspectRatio||this.isShiftKeyPressed,{width:r,height:i}=this.calculateNewDimensions(this.activeHandle,e,t),a=this.applyConstraints(r,i,n);this.element.style.width=`${a.width}px`,this.element.style.height=`${a.height}px`,this.onResize&&this.onResize(a.width,a.height)}calculateNewDimensions(e,t,n){let r=this.startWidth,i=this.startHeight,a=e.includes(`right`),o=e.includes(`left`),s=e.includes(`bottom`),c=e.includes(`top`);return a?r=this.startWidth+t:o&&(r=this.startWidth-t),s?i=this.startHeight+n:c&&(i=this.startHeight-n),(e===`right`||e===`left`)&&(r=this.startWidth+(a?t:-t)),(e===`top`||e===`bottom`)&&(i=this.startHeight+(s?n:-n)),this.preserveAspectRatio||this.isShiftKeyPressed?this.applyAspectRatio(r,i,e):{width:r,height:i}}applyConstraints(e,t,n){if(!n){let n=Math.max(this.minSize.width,e),r=Math.max(this.minSize.height,t);return this.maxSize?.width&&(n=Math.min(this.maxSize.width,n)),this.maxSize?.height&&(r=Math.min(this.maxSize.height,r)),{width:n,height:r}}let r=e,i=t;return r<this.minSize.width&&(r=this.minSize.width,i=r/this.aspectRatio),i<this.minSize.height&&(i=this.minSize.height,r=i*this.aspectRatio),this.maxSize?.width&&r>this.maxSize.width&&(r=this.maxSize.width,i=r/this.aspectRatio),this.maxSize?.height&&i>this.maxSize.height&&(i=this.maxSize.height,r=i*this.aspectRatio),{width:r,height:i}}applyAspectRatio(e,t,n){return n===`left`||n===`right`?{width:e,height:e/this.aspectRatio}:n===`top`||n===`bottom`?{width:t*this.aspectRatio,height:t}:{width:e,height:e/this.aspectRatio}}};function Md(e,t){let{selection:n}=e,{$from:r}=n;if(n instanceof F){let e=r.index();return r.parent.canReplaceWith(e,e+1,t)}let i=r.depth;for(;i>=0;){let e=r.index(i);if(r.node(i).contentMatchAt(e).matchType(t))return!0;--i}return!1}function Nd(e,t){let n=e.getAttribute(`style`);if(!n)return null;let r=n.split(`;`).map(e=>e.trim()).filter(Boolean),i=t.toLowerCase();for(let e=r.length-1;e>=0;--e){let t=r[e],n=t.indexOf(`:`);if(n!==-1&&t.slice(0,n).trim().toLowerCase()===i)return t.slice(n+1).trim()}return null}fc({},{createAtomBlockMarkdownSpec:()=>Id,createBlockMarkdownSpec:()=>Ld,createInlineMarkdownSpec:()=>Bd,parseAttributes:()=>Pd,parseIndentedBlocks:()=>Vd,renderNestedMarkdownContent:()=>Hd,serializeAttributes:()=>Fd});function Pd(e){if(!e?.trim())return{};let t={},n=[],r=e.replace(/["']([^"']*)["']/g,e=>(n.push(e),`__QUOTED_${n.length-1}__`)),i=r.match(/(?:^|\s)\.([a-zA-Z][\w-]*)/g);i&&(t.class=i.map(e=>e.trim().slice(1)).join(` `));let a=r.match(/(?:^|\s)#([a-zA-Z][\w-]*)/);a&&(t.id=a[1]),Array.from(r.matchAll(/([a-zA-Z][\w-]*)\s*=\s*(__QUOTED_\d+__)/g)).forEach(([,e,r])=>{let i=n[parseInt(r.match(/__QUOTED_(\d+)__/)?.[1]||`0`,10)];i&&(t[e]=i.slice(1,-1))});let o=r.replace(/(?:^|\s)\.([a-zA-Z][\w-]*)/g,``).replace(/(?:^|\s)#([a-zA-Z][\w-]*)/g,``).replace(/([a-zA-Z][\w-]*)\s*=\s*__QUOTED_\d+__/g,``).trim();return o&&o.split(/\s+/).filter(Boolean).forEach(e=>{e.match(/^[a-zA-Z][\w-]*$/)&&(t[e]=!0)}),t}function Fd(e){if(!e||Object.keys(e).length===0)return``;let t=[];return e.class&&String(e.class).split(/\s+/).filter(Boolean).forEach(e=>t.push(`.${e}`)),e.id&&t.push(`#${e.id}`),Object.entries(e).forEach(([e,n])=>{e===`class`||e===`id`||(n===!0?t.push(e):n!==!1&&n!=null&&t.push(`${e}="${String(n)}"`))}),t.join(` `)}function Id(e){let{nodeName:t,name:n,parseAttributes:r=Pd,serializeAttributes:i=Fd,defaultAttributes:a={},requiredAttributes:o=[],allowedAttributes:s}=e,c=n||t,l=e=>{if(!s)return e;let t={};return s.forEach(n=>{n in e&&(t[n]=e[n])}),t};return{parseMarkdown:(e,n)=>{let r={...a,...e.attributes};return n.createNode(t,r,[])},markdownTokenizer:{name:t,level:`block`,start(e){let t=RegExp(`^:::${c}(?:\\s|$)`,`m`),n=e.match(t)?.index;return n===void 0?-1:n},tokenize(e,n,i){let a=RegExp(`^:::${c}(?:\\s+\\{([^}]*)\\})?\\s*:::(?:\\n|$)`),s=e.match(a);if(!s)return;let l=r(s[1]||``);if(!o.find(e=>!(e in l)))return{type:t,raw:s[0],attributes:l}}},renderMarkdown:e=>{let t=i(l(e.attrs||{}));return`:::${c}${t?` {${t}}`:``} :::`}}}function Ld(e){let{nodeName:t,name:n,getContent:r,parseAttributes:i=Pd,serializeAttributes:a=Fd,defaultAttributes:o={},content:s=`block`,allowedAttributes:c}=e,l=n||t,u=e=>{if(!c)return e;let t={};return c.forEach(n=>{n in e&&(t[n]=e[n])}),t};return{parseMarkdown:(e,n)=>{let i;if(r){let t=r(e);i=typeof t==`string`?[{type:`text`,text:t}]:t}else i=s===`block`?n.parseChildren(e.tokens||[]):n.parseInline(e.tokens||[]);let a={...o,...e.attributes};return n.createNode(t,a,i)},markdownTokenizer:{name:t,level:`block`,start(e){let t=RegExp(`^:::${l}`,`m`),n=e.match(t)?.index;return n===void 0?-1:n},tokenize(e,n,r){let a=RegExp(`^:::${l}(?:\\s+\\{([^}]*)\\})?\\s*\\n`),o=e.match(a);if(!o)return;let[c,u=``]=o,d=i(u),f=1,p=c.length,m=``,h=/^:::([\w-]*)(\s.*)?/gm,g=e.slice(p);for(h.lastIndex=0;;){let n=h.exec(g);if(n===null)break;let i=n.index,a=n[1];if(!n[2]?.endsWith(`:::`)){if(a)f+=1;else if(--f,f===0){let a=g.slice(0,i);m=a.trim();let o=e.slice(0,p+i+n[0].length),c=[];if(m)if(s===`block`)for(c=r.blockTokens(a),c.forEach(e=>{e.text&&(!e.tokens||e.tokens.length===0)&&(e.tokens=r.inlineTokens(e.text))});c.length>0;){let e=c[c.length-1];if(e.type===`paragraph`&&(!e.text||e.text.trim()===``))c.pop();else break}else c=r.inlineTokens(m);return{type:t,raw:o,attributes:d,content:m,tokens:c}}}}}},renderMarkdown:(e,t)=>{let n=a(u(e.attrs||{}));return`:::${l}${n?` {${n}}`:``}
|
|
88
|
+
|
|
89
|
+
${t.renderChildren(e.content||[],`
|
|
90
|
+
|
|
91
|
+
`)}
|
|
92
|
+
|
|
93
|
+
:::`}}}function Rd(e){if(!e.trim())return{};let t={},n=/(\w+)=(?:"([^"]*)"|'([^']*)')/g,r=n.exec(e);for(;r!==null;){let[,i,a,o]=r;t[i]=a||o,r=n.exec(e)}return t}function zd(e){return Object.entries(e).filter(([,e])=>e!=null).map(([e,t])=>`${e}="${t}"`).join(` `)}function Bd(e){let{nodeName:t,name:n,getContent:r,parseAttributes:i=Rd,serializeAttributes:a=zd,defaultAttributes:o={},selfClosing:s=!1,allowedAttributes:c}=e,l=n||t,u=e=>{if(!c)return e;let t={};return c.forEach(n=>{let r=typeof n==`string`?n:n.name,i=typeof n==`string`?void 0:n.skipIfDefault;if(r in e){let n=e[r];if(i!==void 0&&n===i)return;t[r]=n}}),t},d=l.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return{parseMarkdown:(e,n)=>{let i={...o,...e.attributes};if(s)return n.createNode(t,i);let a=r?r(e):e.content||``;return a?n.createNode(t,i,[n.createTextNode(a)]):n.createNode(t,i,[])},markdownTokenizer:{name:t,level:`inline`,start(e){let t=RegExp(s?`\\[${d}\\s*[^\\]]*\\]`:`\\[${d}\\s*[^\\]]*\\][\\s\\S]*?\\[\\/${d}\\]`),n=e.match(t)?.index;return n===void 0?-1:n},tokenize(e,n,r){let a=RegExp(s?`^\\[${d}\\s*([^\\]]*)\\]`:`^\\[${d}\\s*([^\\]]*)\\]([\\s\\S]*?)\\[\\/${d}\\]`),o=e.match(a);if(!o)return;let c=``,l=``;if(s){let[,e]=o;l=e}else{let[,e,t]=o;l=e,c=t||``}let u=i(l.trim());return{type:t,raw:o[0],content:c.trim(),attributes:u}}},renderMarkdown:e=>{let t=``;r?t=r(e):e.content&&e.content.length>0&&(t=e.content.filter(e=>e.type===`text`).map(e=>e.text).join(``));let n=a(u(e.attrs||{})),i=n?` ${n}`:``;return s?`[${l}${i}]`:`[${l}${i}]${t}[/${l}]`}}}function Vd(e,t,n){let r=e.split(`
|
|
94
|
+
`),i=[],a=``,o=0,s=t.baseIndentSize||2;for(;o<r.length;){let e=r[o],c=e.match(t.itemPattern);if(!c){if(i.length>0)break;if(e.trim()===``){o+=1,a=`${a}${e}
|
|
95
|
+
`;continue}else return}let l=t.extractItemData(c),{indentLevel:u,mainContent:d}=l;a=`${a}${e}
|
|
96
|
+
`;let f=[d];for(o+=1;o<r.length;){let e=r[o];if(e.trim()===``){let t=r.slice(o+1).findIndex(e=>e.trim()!==``);if(t===-1)break;if((r[o+1+t].match(/^(\s*)/)?.[1]?.length||0)>u){f.push(e),a=`${a}${e}
|
|
97
|
+
`,o+=1;continue}else break}if((e.match(/^(\s*)/)?.[1]?.length||0)>u)f.push(e),a=`${a}${e}
|
|
98
|
+
`,o+=1;else break}let p,m=f.slice(1);if(m.length>0){let e=m.map(e=>e.slice(u+s)).join(`
|
|
99
|
+
`);e.trim()&&(p=t.customNestedParser?t.customNestedParser(e):n.blockTokens(e))}let h=t.createToken(l,p);i.push(h)}if(i.length!==0)return{items:i,raw:a}}function Hd(e,t,n,r){if(!e||!Array.isArray(e.content))return``;let i=typeof n==`function`?n(r):n,[a,...o]=e.content,s=`${i}${t.renderChildren([a])}`;return o&&o.length>0&&o.forEach((e,n)=>{let r=t.renderChild?.call(t,e,n+1)??t.renderChildren([e]);if(r!=null){let n=r.split(`
|
|
100
|
+
`).map(e=>e?t.indent(e):t.indent(``)).join(`
|
|
101
|
+
`);s+=e.type===`paragraph`?`
|
|
102
|
+
|
|
103
|
+
${n}`:`
|
|
104
|
+
${n}`}}),s}function Ud(e,t,n={}){let{state:r}=t,{doc:i,tr:a}=r,o=e;i.descendants((t,r)=>{let i=a.mapping.map(r),s=a.mapping.map(r)+t.nodeSize,c=null;if(t.marks.forEach(e=>{if(e!==o)return!1;c=e}),!c)return;let l=!1;if(Object.keys(n).forEach(e=>{n[e]!==c.attrs[e]&&(l=!0)}),l){let t=e.type.create({...e.attrs,...n});a.removeMark(i,s,e.type),a.addMark(i,s,t)}}),a.docChanged&&t.view.dispatch(a)}var W=class e extends td{constructor(){super(...arguments),this.type=`node`}static create(t={}){return new e(typeof t==`function`?t():t)}configure(e){return super.configure(e)}extend(e){let t=typeof e==`function`?e():e;return super.extend(t)}};function Wd(e){return new id({find:e.find,handler:({state:t,range:n,match:r,pasteEvent:i})=>{let a=V(e.getAttributes,void 0,r,i);if(a===!1||a===null)return null;let{tr:o}=t,s=r[r.length-1],c=r[0],l=n.to;if(s){let i=c.search(/\S/),u=n.from+c.indexOf(s),d=u+s.length;if(ou(n.from,n.to,t.doc).filter(t=>t.mark.type.excluded.find(n=>n===e.type&&n!==t.mark.type)).filter(e=>e.to>u).length)return null;d<n.to&&o.delete(d,n.to),u>n.from&&o.delete(n.from+i,u),l=n.from+i+s.length,o.addMark(n.from+i,l,e.type.create(a||{})),r.index!==void 0&&r.input!==void 0&&r.index+r[0].length>=r.input.length||o.removeStoredMark(e.type)}}})}var Gd=(e,t)=>{if(e===`slot`)return 0;if(e instanceof Function)return e(t);let{children:n,...r}=t??{};if(e===`svg`)throw Error(`SVG elements are not supported in the JSX syntax, use the array syntax instead`);return[e,r,n]};function Kd(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){for(let e=0;i.text[e]==a.text[e];e++)n++;return n}if(i.content.size||a.content.size){let e=Kd(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function qd(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s){n-=c,r-=c;continue}if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=0,t=Math.min(o.text.length,s.text.length);for(;e<t&&o.text[o.text.length-e-1]==s.text[s.text.length-e-1];)e++,n--,r--;return{a:n,b:r}}if(o.content.size||s.content.size){let e=qd(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}var Jd=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;t<e.length;t++)this.size+=e[t].nodeSize}nodesBetween(e,t,n,r=0,i){for(let a=0,o=0;o<t;a++){let s=this.content[a],c=o+s.nodeSize;if(c>e&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);a<t.content.length;a++)i.push(t.content[a]);return new e(i,this.size+t.size)}cut(t,n=this.size){if(t==0&&n==this.size)return this;let r=[],i=0;if(n>t)for(let e=0,a=0;a<n;e++){let o=this.content[e],s=a+o.nodeSize;s>t&&((a<t||s>n)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw RangeError(`Index `+e+` out of range for `+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,n=0;t<this.content.length;t++){let r=this.content[t];e(r,n,t),n+=r.nodeSize}}findDiffStart(e,t=0){return Kd(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return qd(this,e,t,n)}findIndex(e){if(e==0)return Xd(0,e);if(e==this.size)return Xd(this.content.length,e);if(e>this.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?Xd(t+1,i):Xd(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return e.fromArray(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;e<t.length;e++){let i=t[e];r+=i.nodeSize,e&&i.isText&&t[e-1].sameMarkup(i)?(n||=t.slice(0,e),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new e(n||t,r)}static from(t){if(!t)return e.empty;if(t instanceof e)return t;if(Array.isArray(t))return this.fromArray(t);if(t.attrs)return new e([t],t.nodeSize);throw RangeError(`Can not convert `+t+` to a Fragment`+(t.nodesBetween?` (looks like multiple versions of prosemirror-model were loaded)`:``))}};Jd.empty=new Jd([],0);var Yd={index:0,offset:0};function Xd(e,t){return Yd.index=e,Yd.offset=t,Yd}function Zd(e,t){if(e===t)return!0;if(!(e&&typeof e==`object`)||!(t&&typeof t==`object`))return!1;let n=Array.isArray(e);if(Array.isArray(t)!=n)return!1;if(n){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!Zd(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!Zd(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var Qd=class e{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(this.eq(i))return e;if(this.type.excludes(i.type))t||=e.slice(0,r);else if(i.type.excludes(this.type))return e;else !n&&i.type.rank>this.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&Zd(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Mark.fromJSON`);let n=e.marks[t.type];if(!n)throw RangeError(`There is no mark type ${t.type} in this schema`);let r=n.create(t.attrs);return n.checkAttrs(r.attrs),r}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}static setFrom(t){if(!t||Array.isArray(t)&&t.length==0)return e.none;if(t instanceof e)return[t];let n=t.slice();return n.sort((e,t)=>e.type.rank-t.type.rank),n}};Qd.none=[];var $d=class extends Error{},G=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=tf(this.content,t+this.openStart,n,this.openStart+1,this.openEnd+1);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(ef(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(Jd.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};G.empty=new G(Jd.empty,0,0);function ef(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(ef(a.content,t-i-1,n-i-1)))}function tf(e,t,n,r,i,a){let{index:o,offset:s}=e.findIndex(t),c=e.maybeChild(o);if(s==t||c.isText)return a&&r<=0&&i<=0&&!a.canReplace(o,o,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=tf(c.content,t-s-1,n,o==0?r-1:0,o==e.childCount-1?i-1:0,c);return l&&e.replaceChild(o,c.copy(l))}function nf(e,t,n){if(n.openStart>e.depth)throw new $d(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new $d(`Inconsistent open depths`);return rf(e,t,n,0)}function rf(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r<e.depth-n.openStart){let o=rf(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}else if(!n.content.size)return lf(a,df(e,t,r));else if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return lf(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}else{let{start:i,end:o}=ff(n,e);return lf(a,uf(e,i,o,t,r))}}function af(e,t){if(!t.type.compatibleContent(e.type))throw new $d(`Cannot join `+t.type.name+` onto `+e.type.name)}function of(e,t,n){let r=e.node(n);return af(r,t.node(n)),r}function sf(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function cf(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(sf(e.nodeAfter,r),a++));for(let e=a;e<o;e++)sf(i.child(e),r);t&&t.depth==n&&t.textOffset&&sf(t.nodeBefore,r)}function lf(e,t){return e.type.checkContent(t),e.copy(t)}function uf(e,t,n,r,i){let a=e.depth>i&&of(e,t,i+1),o=r.depth>i&&of(n,r,i+1),s=[];return cf(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(af(a,o),sf(lf(a,uf(e,t,n,r,i+1)),s)):(a&&sf(lf(a,df(e,t,i+1)),s),cf(t,n,i,s),o&&sf(lf(o,df(n,r,i+1)),s)),cf(r,null,i,s),new Jd(s)}function df(e,t,n){let r=[];return cf(null,e,n,r),e.depth>n&&sf(lf(of(e,t,n+1),df(e,t,n+1)),r),cf(t,null,n,r),new Jd(r)}function ff(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(Jd.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var pf=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t<e;t++)r+=n.child(t).nodeSize;return r}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return Qd.none;if(this.textOffset)return e.child(t).marks;let n=e.maybeChild(t-1),r=e.maybeChild(t);if(!n){let e=n;n=r,r=e}let i=n.marks;for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let n=t.marks,r=e.parent.maybeChild(e.index());for(var i=0;i<n.length;i++)n[i].type.spec.inclusive===!1&&(!r||!n[i].isInSet(r.marks))&&(n=n[i--].removeFromSet(n));return n}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let n=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);n>=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new _f(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=``;for(let t=1;t<=this.depth;t++)e+=(e?`/`:``)+this.node(t).type.name+`_`+this.index(t-1);return e+`:`+this.parentOffset}static resolve(t,n){if(!(n>=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=gf.get(t);if(r)for(let e=0;e<r.elts.length;e++){let t=r.elts[e];if(t.pos==n)return t}else gf.set(t,r=new mf);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%hf,i}},mf=class{constructor(){this.elts=[],this.i=0}},hf=12,gf=new WeakMap,_f=class{constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},vf=Object.create(null),yf=class e{constructor(e,t,n,r=Qd.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||Jd.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,n,r=0){this.content.nodesBetween(e,t,n,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,``)}textBetween(e,t,n,r){return this.content.textBetween(e,t,n,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,n){return this.type==e&&Zd(this.attrs,t||e.defaultAttrs||vf)&&Qd.sameSet(this.marks,n||Qd.none)}copy(t=null){return t==this.content?this:new e(this.type,this.attrs,t,this.marks)}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.content,t)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,n=!1){if(e==t)return G.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new G(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return nf(this.resolve(e),this.resolve(t),n)}nodeAt(e){for(let t=this;;){let{index:n,offset:r}=t.content.findIndex(e);if(t=t.maybeChild(n),!t)return null;if(r==e||t.isText)return t;e-=r+1}}childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:n}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:n}=this.content.findIndex(e);if(n<e)return{node:this.content.child(t),index:t,offset:n};let r=this.content.child(t-1);return{node:r,index:t-1,offset:n-r.nodeSize}}resolve(e){return pf.resolveCached(this,e)}resolveNoCache(e){return pf.resolve(this,e)}rangeHasMark(e,t,n){let r=!1;return t>e&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),bf(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=Jd.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;e<i;e++)if(!this.type.allowsMarks(n.child(e).marks))return!1;return!0}canReplaceWith(e,t,n,r){if(r&&!this.type.allowsMarks(r))return!1;let i=this.contentMatchAt(e).matchType(n),a=i&&i.matchFragment(this.content,t);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=Qd.none;for(let t=0;t<this.marks.length;t++){let n=this.marks[t];n.type.checkAttrs(n.attrs),e=n.addToSet(e)}if(!Qd.sameSet(e,this.marks))throw RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(e=>e.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=Jd.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};yf.prototype.text=void 0;function bf(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var xf=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new Sf(t,n);if(r.next==null)return e.empty;let i=Cf(r);r.next&&r.err(`Unexpected trailing text`);let a=Nf(Af(i));return Pf(a,r),a}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,n=e.childCount){let r=this;for(let i=t;r&&i<n;i++)r=r.matchType(e.child(i).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next.length;n++)if(this.next[t].type==e.next[n].type)return!0;return!1}fillBefore(e,t=!1,n=0){let r=[this];function i(a,o){let s=a.matchFragment(e,n);if(s&&(!t||s.validEnd))return Jd.from(o.map(e=>e.createAndFill()));for(let e=0;e<a.next.length;e++){let{type:t,next:n}=a.next[e];if(!(t.isText||t.hasRequiredAttrs())&&r.indexOf(n)==-1){r.push(n);let e=i(n,o.concat(t));if(e)return e}}return null}return i(this,[])}findWrapping(e){for(let t=0;t<this.wrapCache.length;t+=2)if(this.wrapCache[t]==e)return this.wrapCache[t+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,via:null}];for(;n.length;){let r=n.shift(),i=r.match;if(i.matchType(e)){let e=[];for(let t=r;t.type;t=t.via)e.push(t.type);return e.reverse()}for(let e=0;e<i.next.length;e++){let{type:a,next:o}=i.next[e];!a.isLeaf&&!a.hasRequiredAttrs()&&!(a.name in t)&&(!r.type||o.validEnd)&&(n.push({match:a.contentMatch,type:a,via:r}),t[a.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r<n.next.length;r++)e.indexOf(n.next[r].next)==-1&&t(n.next[r].next)}return t(this),e.map((t,n)=>{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n<t.next.length;n++)r+=(n?`, `:``)+t.next[n].type.name+`->`+e.indexOf(t.next[n].next);return r}).join(`
|
|
105
|
+
`)}};xf.empty=new xf(!0);var Sf=class{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==``&&this.tokens.pop(),this.tokens[0]==``&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw SyntaxError(e+` (in content expression '`+this.string+`')`)}};function Cf(e){let t=[];do t.push(wf(e));while(e.eat(`|`));return t.length==1?t[0]:{type:`choice`,exprs:t}}function wf(e){let t=[];do t.push(Tf(e));while(e.next&&e.next!=`)`&&e.next!=`|`);return t.length==1?t[0]:{type:`seq`,exprs:t}}function Tf(e){let t=kf(e);for(;;)if(e.eat(`+`))t={type:`plus`,expr:t};else if(e.eat(`*`))t={type:`star`,expr:t};else if(e.eat(`?`))t={type:`opt`,expr:t};else if(e.eat(`{`))t=Df(e,t);else break;return t}function Ef(e){/\D/.test(e.next)&&e.err(`Expected number, got '`+e.next+`'`);let t=Number(e.next);return e.pos++,t}function Df(e,t){let n=Ef(e),r=n;return e.eat(`,`)&&(r=e.next==`}`?-1:Ef(e)),e.eat(`}`)||e.err(`Unclosed braced range`),{type:`range`,min:n,max:r,expr:t}}function Of(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let e in n){let r=n[e];r.isInGroup(t)&&i.push(r)}return i.length==0&&e.err(`No node type or group '`+t+`' found`),i}function kf(e){if(e.eat(`(`)){let t=Cf(e);return e.eat(`)`)||e.err(`Missing closing paren`),t}else if(/\W/.test(e.next))e.err(`Unexpected token '`+e.next+`'`);else{let t=Of(e,e.next).map(t=>(e.inline==null?e.inline=t.isInline:e.inline!=t.isInline&&e.err(`Mixing inline and block content`),{type:`name`,value:t}));return e.pos++,t.length==1?t[0]:{type:`choice`,exprs:t}}}function Af(e){let t=[[]];return i(a(e,0),n()),t;function n(){return t.push([])-1}function r(e,n,r){let i={term:r,to:n};return t[e].push(i),i}function i(e,t){e.forEach(e=>e.to=t)}function a(e,t){if(e.type==`choice`)return e.exprs.reduce((e,n)=>e.concat(a(n,t)),[]);if(e.type==`seq`)for(let r=0;;r++){let o=a(e.exprs[r],t);if(r==e.exprs.length-1)return o;i(o,t=n())}else if(e.type==`star`){let o=n();return r(t,o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`plus`){let o=n();return i(a(e.expr,t),o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`opt`)return[r(t)].concat(a(e.expr,t));else if(e.type==`range`){let o=t;for(let t=0;t<e.min;t++){let t=n();i(a(e.expr,o),t),o=t}if(e.max==-1)i(a(e.expr,o),o);else for(let t=e.min;t<e.max;t++){let t=n();r(o,t),i(a(e.expr,o),t),o=t}return[r(o)]}else if(e.type==`name`)return[r(t,void 0,e.value)];else throw Error(`Unknown expr type`)}}function jf(e,t){return t-e}function Mf(e,t){let n=[];return r(t),n.sort(jf);function r(t){let i=e[t];if(i.length==1&&!i[0].term)return r(i[0].to);n.push(t);for(let e=0;e<i.length;e++){let{term:t,to:a}=i[e];!t&&n.indexOf(a)==-1&&r(a)}}}function Nf(e){let t=Object.create(null);return n(Mf(e,0));function n(r){let i=[];r.forEach(t=>{e[t].forEach(({term:t,to:n})=>{if(!t)return;let r;for(let e=0;e<i.length;e++)i[e][0]==t&&(r=i[e][1]);Mf(e,n).forEach(e=>{r||i.push([t,r=[]]),r.indexOf(e)==-1&&r.push(e)})})});let a=t[r.join(`,`)]=new xf(r.indexOf(e.length-1)>-1);for(let e=0;e<i.length;e++){let r=i[e][1].sort(jf);a.next.push({type:i[e][0],next:t[r.join(`,`)]||n(r)})}return a}}function Pf(e,t){for(let n=0,r=[e];n<r.length;n++){let e=r[n],i=!e.validEnd,a=[];for(let t=0;t<e.next.length;t++){let{type:n,next:o}=e.next[t];a.push(n.name),i&&!(n.isText||n.hasRequiredAttrs())&&(i=!1),r.indexOf(o)==-1&&r.push(o)}i&&t.err(`Only non-generatable nodes (`+a.join(`, `)+`) in a required position (see https://prosemirror.net/docs/guide/#generatable)`)}}var Ff=65535,If=2**16;function Lf(e,t){return e+t*If}function Rf(e){return e&Ff}function zf(e){return(e-(e&Ff))/If}var Bf=1,Vf=2,Hf=4,Uf=8,Wf=class{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(this.delInfo&Uf)>0}get deletedBefore(){return(this.delInfo&(Bf|Hf))>0}get deletedAfter(){return(this.delInfo&(Vf|Hf))>0}get deletedAcross(){return(this.delInfo&Hf)>0}},Gf=class e{constructor(t,n=!1){if(this.ranges=t,this.inverted=n,!t.length&&e.empty)return e.empty}recover(e){let t=0,n=Rf(e);if(!this.inverted)for(let e=0;e<n;e++)t+=this.ranges[e*3+2]-this.ranges[e*3+1];return this.ranges[n*3]+t+zf(e)}mapResult(e,t=1){return this._map(e,t,!1)}map(e,t=1){return this._map(e,t,!0)}_map(e,t,n){let r=0,i=this.inverted?2:1,a=this.inverted?1:2;for(let o=0;o<this.ranges.length;o+=3){let s=this.ranges[o]-(this.inverted?r:0);if(s>e)break;let c=this.ranges[o+i],l=this.ranges[o+a],u=s+c;if(e<=u){let i=c?e==s?-1:e==u?1:t:t,a=s+r+(i<0?0:l);if(n)return a;let d=e==(t<0?s:u)?null:Lf(o/3,e-s),f=e==s?Vf:e==u?Bf:Hf;return(t<0?e!=s:e!=u)&&(f|=Uf),new Wf(a,f,d)}r+=l-c}return n?e+r:new Wf(e+r,0,null)}touches(e,t){let n=0,r=Rf(t),i=this.inverted?2:1,a=this.inverted?1:2;for(let t=0;t<this.ranges.length;t+=3){let o=this.ranges[t]-(this.inverted?n:0);if(o>e)break;let s=this.ranges[t+i];if(e<=o+s&&t==r*3)return!0;n+=this.ranges[t+a]-s}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let r=0,i=0;r<this.ranges.length;r+=3){let a=this.ranges[r],o=a-(this.inverted?i:0),s=a+(this.inverted?0:i),c=this.ranges[r+t],l=this.ranges[r+n];e(o,o+c,s,s+l),i+=l-c}}invert(){return new e(this.ranges,!this.inverted)}toString(){return(this.inverted?`-`:``)+JSON.stringify(this.ranges)}static offset(t){return t==0?e.empty:new e(t<0?[0,-t,0]:[0,0,t])}};Gf.empty=new Gf([]);var Kf=Object.create(null),qf=class{getMap(){return Gf.empty}merge(e){return null}static fromJSON(e,t){if(!t||!t.stepType)throw RangeError(`Invalid input for Step.fromJSON`);let n=Kf[t.stepType];if(!n)throw RangeError(`No step type ${t.stepType} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in Kf)throw RangeError(`Duplicate use of step JSON ID `+e);return Kf[e]=t,t.prototype.jsonID=e,t}},Jf=class e{constructor(e,t){this.doc=e,this.failed=t}static ok(t){return new e(t,null)}static fail(t){return new e(null,t)}static fromReplace(t,n,r,i){try{return e.ok(t.replace(n,r,i))}catch(t){if(t instanceof $d)return e.fail(t.message);throw t}}};function Yf(e,t,n){let r=[];for(let i=0;i<e.childCount;i++){let a=e.child(i);a.content.size&&(a=a.copy(Yf(a.content,t,a))),a.isInline&&(a=t(a,n,i)),r.push(a)}return Jd.fromArray(r)}var Xf=class e extends qf{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=e.resolve(this.from),r=n.node(n.sharedDepth(this.to)),i=new G(Yf(t.content,(e,t)=>!e.isAtom||!t.type.allowsMarkType(this.mark.type)?e:e.mark(this.mark.addToSet(e.marks)),r),t.openStart,t.openEnd);return Jf.fromReplace(e,this.from,this.to,i)}invert(){return new Zf(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`addMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for AddMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};qf.jsonID(`addMark`,Xf);var Zf=class e extends qf{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new G(Yf(t.content,e=>e.mark(this.mark.removeFromSet(e.marks)),e),t.openStart,t.openEnd);return Jf.fromReplace(e,this.from,this.to,n)}invert(){return new Xf(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`removeMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for RemoveMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};qf.jsonID(`removeMark`,Zf);var Qf=class e extends qf{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return Jf.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return Jf.fromReplace(e,this.pos,this.pos+1,new G(Jd.from(n),0,+!t.isLeaf))}invert(t){let n=t.nodeAt(this.pos);if(n){let t=this.mark.addToSet(n.marks);if(t.length==n.marks.length){for(let r=0;r<n.marks.length;r++)if(!n.marks[r].isInSet(t))return new e(this.pos,n.marks[r]);return new e(this.pos,this.mark)}}return new $f(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`addNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for AddNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};qf.jsonID(`addNodeMark`,Qf);var $f=class e extends qf{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return Jf.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.removeFromSet(t.marks));return Jf.fromReplace(e,this.pos,this.pos+1,new G(Jd.from(n),0,+!t.isLeaf))}invert(e){let t=e.nodeAt(this.pos);return!t||!this.mark.isInSet(t.marks)?this:new Qf(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`removeNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for RemoveNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};qf.jsonID(`removeNodeMark`,$f);var ep=class e extends qf{constructor(e,t,n,r=!1){super(),this.from=e,this.to=t,this.slice=n,this.structure=r}apply(e){return this.structure&&np(e,this.from,this.to)?Jf.fail(`Structure replace would overwrite content`):Jf.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new Gf([this.from,this.to-this.from,this.slice.size])}invert(t){return new e(this.from,this.from+this.slice.size,t.slice(this.from,this.to))}map(t){let n=t.mapResult(this.to,-1),r=this.from==this.to&&e.MAP_BIAS<0?n:t.mapResult(this.from,1);return r.deletedAcross&&n.deletedAcross?null:new e(r.pos,Math.max(r.pos,n.pos),this.slice,this.structure)}merge(t){if(!(t instanceof e)||t.structure||this.structure)return null;if(this.from+this.slice.size==t.from&&!this.slice.openEnd&&!t.slice.openStart){let n=this.slice.size+t.slice.size==0?G.empty:new G(this.slice.content.append(t.slice.content),this.slice.openStart,t.slice.openEnd);return new e(this.from,this.to+(t.to-t.from),n,this.structure)}else if(t.to==this.from&&!this.slice.openStart&&!t.slice.openEnd){let n=this.slice.size+t.slice.size==0?G.empty:new G(t.slice.content.append(this.slice.content),t.slice.openStart,this.slice.openEnd);return new e(t.from,this.to,n,this.structure)}else return null}toJSON(){let e={stepType:`replace`,from:this.from,to:this.to};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for ReplaceStep.fromJSON`);return new e(n.from,n.to,G.fromJSON(t,n.slice),!!n.structure)}};ep.MAP_BIAS=1,qf.jsonID(`replace`,ep);var tp=class e extends qf{constructor(e,t,n,r,i,a,o=!1){super(),this.from=e,this.to=t,this.gapFrom=n,this.gapTo=r,this.slice=i,this.insert=a,this.structure=o}apply(e){if(this.structure&&(np(e,this.from,this.gapFrom)||np(e,this.gapTo,this.to)))return Jf.fail(`Structure gap-replace would overwrite content`);let t=e.slice(this.gapFrom,this.gapTo);if(t.openStart||t.openEnd)return Jf.fail(`Gap is not a flat range`);let n=this.slice.insertAt(this.insert,t.content);return n?Jf.fromReplace(e,this.from,this.to,n):Jf.fail(`Content does not fit in gap`)}getMap(){return new Gf([this.from,this.gapFrom-this.from,this.insert,this.gapTo,this.to-this.gapTo,this.slice.size-this.insert])}invert(t){let n=this.gapTo-this.gapFrom;return new e(this.from,this.from+this.slice.size+n,this.from+this.insert,this.from+this.insert+n,t.slice(this.from,this.to).removeBetween(this.gapFrom-this.from,this.gapTo-this.from),this.gapFrom-this.from,this.structure)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1),i=this.from==this.gapFrom?n.pos:t.map(this.gapFrom,-1),a=this.to==this.gapTo?r.pos:t.map(this.gapTo,1);return n.deletedAcross&&r.deletedAcross||i<n.pos||a>r.pos?null:new e(n.pos,r.pos,i,a,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:`replaceAround`,from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`||typeof n.gapFrom!=`number`||typeof n.gapTo!=`number`||typeof n.insert!=`number`)throw RangeError(`Invalid input for ReplaceAroundStep.fromJSON`);return new e(n.from,n.to,n.gapFrom,n.gapTo,G.fromJSON(t,n.slice),n.insert,!!n.structure)}};qf.jsonID(`replaceAround`,tp);function np(e,t,n){let r=e.resolve(t),i=n-t,a=r.depth;for(;i>0&&a>0&&r.indexAfter(a)==r.node(a).childCount;)a--,i--;if(i>0){let e=r.node(a).maybeChild(r.indexAfter(a));for(;i>0;){if(!e||e.isLeaf)return!0;e=e.firstChild,i--}}return!1}var rp=class e extends qf{constructor(e,t,n){super(),this.pos=e,this.attr=t,this.value=n}apply(e){let t=e.nodeAt(this.pos);if(!t)return Jf.fail(`No node at attribute step's position`);let n=Object.create(null);for(let e in t.attrs)n[e]=t.attrs[e];n[this.attr]=this.value;let r=t.type.create(n,null,t.marks);return Jf.fromReplace(e,this.pos,this.pos+1,new G(Jd.from(r),0,+!t.isLeaf))}getMap(){return Gf.empty}invert(t){return new e(this.pos,this.attr,t.nodeAt(this.pos).attrs[this.attr])}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.attr,this.value)}toJSON(){return{stepType:`attr`,pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(t,n){if(typeof n.pos!=`number`||typeof n.attr!=`string`)throw RangeError(`Invalid input for AttrStep.fromJSON`);return new e(n.pos,n.attr,n.value)}};qf.jsonID(`attr`,rp);var ip=class e extends qf{constructor(e,t){super(),this.attr=e,this.value=t}apply(e){let t=Object.create(null);for(let n in e.attrs)t[n]=e.attrs[n];t[this.attr]=this.value;let n=e.type.create(t,e.content,e.marks);return Jf.ok(n)}getMap(){return Gf.empty}invert(t){return new e(this.attr,t.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:`docAttr`,attr:this.attr,value:this.value}}static fromJSON(t,n){if(typeof n.attr!=`string`)throw RangeError(`Invalid input for DocAttrStep.fromJSON`);return new e(n.attr,n.value)}};qf.jsonID(`docAttr`,ip);var ap=class extends Error{};ap=function e(t){let n=Error.call(this,t);return n.__proto__=e.prototype,n},ap.prototype=Object.create(Error.prototype),ap.prototype.constructor=ap,ap.prototype.name=`TransformError`;var op=Object.create(null),K=class{constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new sp(e.min(t),e.max(t))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let t=0;t<e.length;t++)if(e[t].$from.pos!=e[t].$to.pos)return!1;return!0}content(){return this.$from.doc.slice(this.from,this.to,!0)}replace(e,t=G.empty){let n=t.content.lastChild,r=null;for(let e=0;e<t.openEnd;e++)r=n,n=n.lastChild;let i=e.steps.length,a=this.ranges;for(let o=0;o<a.length;o++){let{$from:s,$to:c}=a[o],l=e.mapping.slice(i);e.replaceRange(l.map(s.pos),l.map(c.pos),o?G.empty:t),o==0&&_p(e,i,(n?n.isInline:r&&r.isTextblock)?-1:1)}}replaceWith(e,t){let n=e.steps.length,r=this.ranges;for(let i=0;i<r.length;i++){let{$from:a,$to:o}=r[i],s=e.mapping.slice(n),c=s.map(a.pos),l=s.map(o.pos);i?e.deleteRange(c,l):(e.replaceRangeWith(c,l,t),_p(e,n,t.isInline?-1:1))}}static findFrom(e,t,n=!1){let r=e.parent.inlineContent?new up(e):gp(e.node(0),e.parent,e.pos,e.index(),t,n);if(r)return r;for(let r=e.depth-1;r>=0;r--){let i=t<0?gp(e.node(0),e.node(r),e.before(r+1),e.index(r),t,n):gp(e.node(0),e.node(r),e.after(r+1),e.index(r)+1,t,n);if(i)return i}return null}static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new mp(e.node(0))}static atStart(e){return gp(e,e,0,0,1)||new mp(e)}static atEnd(e){return gp(e,e,e.content.size,e.childCount,-1)||new mp(e)}static fromJSON(e,t){if(!t||!t.type)throw RangeError(`Invalid input for Selection.fromJSON`);let n=op[t.type];if(!n)throw RangeError(`No selection type ${t.type} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in op)throw RangeError(`Duplicate use of selection JSON ID `+e);return op[e]=t,t.prototype.jsonID=e,t}getBookmark(){return up.between(this.$anchor,this.$head).getBookmark()}};K.prototype.visible=!0;var sp=class{constructor(e,t){this.$from=e,this.$to=t}},cp=!1;function lp(e){!cp&&!e.parent.inlineContent&&(cp=!0,console.warn(`TextSelection endpoint not pointing into a node with inline content (`+e.parent.type.name+`)`))}var up=class e extends K{constructor(e,t=e){lp(e),lp(t),super(e,t)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(t,n){let r=t.resolve(n.map(this.head));if(!r.parent.inlineContent)return K.near(r);let i=t.resolve(n.map(this.anchor));return new e(i.parent.inlineContent?i:r,r)}replace(e,t=G.empty){if(super.replace(e,t),t==G.empty){let t=this.$from.marksAcross(this.$to);t&&e.ensureMarks(t)}}eq(t){return t instanceof e&&t.anchor==this.anchor&&t.head==this.head}getBookmark(){return new dp(this.anchor,this.head)}toJSON(){return{type:`text`,anchor:this.anchor,head:this.head}}static fromJSON(t,n){if(typeof n.anchor!=`number`||typeof n.head!=`number`)throw RangeError(`Invalid input for TextSelection.fromJSON`);return new e(t.resolve(n.anchor),t.resolve(n.head))}static create(e,t,n=t){let r=e.resolve(t);return new this(r,n==t?r:e.resolve(n))}static between(t,n,r){let i=t.pos-n.pos;if((!r||i)&&(r=i>=0?1:-1),!n.parent.inlineContent){let e=K.findFrom(n,r,!0)||K.findFrom(n,-r,!0);if(e)n=e.$head;else return K.near(n,r)}return t.parent.inlineContent||(i==0?t=n:(t=(K.findFrom(t,-r,!0)||K.findFrom(t,r,!0)).$anchor,t.pos<n.pos!=i<0&&(t=n))),new e(t,n)}};K.jsonID(`text`,up);var dp=class e{constructor(e,t){this.anchor=e,this.head=t}map(t){return new e(t.map(this.anchor),t.map(this.head))}resolve(e){return up.between(e.resolve(this.anchor),e.resolve(this.head))}},fp=class e extends K{constructor(e){let t=e.nodeAfter,n=e.node(0).resolve(e.pos+t.nodeSize);super(e,n),this.node=t}map(t,n){let{deleted:r,pos:i}=n.mapResult(this.anchor),a=t.resolve(i);return r?K.near(a):new e(a)}content(){return new G(Jd.from(this.node),0,0)}eq(t){return t instanceof e&&t.anchor==this.anchor}toJSON(){return{type:`node`,anchor:this.anchor}}getBookmark(){return new pp(this.anchor)}static fromJSON(t,n){if(typeof n.anchor!=`number`)throw RangeError(`Invalid input for NodeSelection.fromJSON`);return new e(t.resolve(n.anchor))}static create(t,n){return new e(t.resolve(n))}static isSelectable(e){return!e.isText&&e.type.spec.selectable!==!1}};fp.prototype.visible=!1,K.jsonID(`node`,fp);var pp=class e{constructor(e){this.anchor=e}map(t){let{deleted:n,pos:r}=t.mapResult(this.anchor);return n?new dp(r,r):new e(r)}resolve(e){let t=e.resolve(this.anchor),n=t.nodeAfter;return n&&fp.isSelectable(n)?new fp(t):K.near(t)}},mp=class e extends K{constructor(e){super(e.resolve(0),e.resolve(e.content.size))}replace(e,t=G.empty){if(t==G.empty){e.delete(0,e.doc.content.size);let t=K.atStart(e.doc);t.eq(e.selection)||e.setSelection(t)}else super.replace(e,t)}toJSON(){return{type:`all`}}static fromJSON(t){return new e(t)}map(t){return new e(t)}eq(t){return t instanceof e}getBookmark(){return hp}};K.jsonID(`all`,mp);var hp={map(){return this},resolve(e){return new mp(e)}};function gp(e,t,n,r,i,a=!1){if(t.inlineContent)return up.create(e,n);for(let o=r-(i>0?0:1);i>0?o<t.childCount:o>=0;o+=i){let r=t.child(o);if(!r.isAtom){let t=gp(e,r,n+i,i<0?r.childCount:0,i,a);if(t)return t}else if(!a&&fp.isSelectable(r))return fp.create(e,n-(i<0?r.nodeSize:0));n+=r.nodeSize*i}return null}function _p(e,t,n){let r=e.steps.length-1;if(r<t)return;let i=e.steps[r];if(!(i instanceof ep||i instanceof tp))return;let a=e.mapping.maps[r],o;a.forEach((e,t,n,r)=>{o??=r}),e.setSelection(K.near(e.doc.resolve(o),n))}function vp(e,t){return!t||!e?e:e.bind(t)}var yp=class{constructor(e,t,n){this.name=e,this.init=vp(t.init,n),this.apply=vp(t.apply,n)}};new yp(`doc`,{init(e){return e.doc||e.schema.topNodeType.createAndFill()},apply(e){return e.doc}}),new yp(`selection`,{init(e,t){return e.selection||K.atStart(t.doc)},apply(e){return e.selection}}),new yp(`storedMarks`,{init(e){return e.storedMarks||null},apply(e,t,n,r){return r.selection.$cursor?e.storedMarks:null}}),new yp(`scrollToSelection`,{init(){return 0},apply(e,t){return e.scrolledIntoView?t+1:t}});var bp=(e,t)=>{let{state:n,view:r}=e,{selection:i}=n;if(!i.empty)return!1;let{$from:a}=i;if(a.parentOffset!==0)return!1;let o=a.depth-1,s=a.node(o),c=a.index(o);if(c===0)return!1;if(s.type===t)return e.commands.lift(t.name);let l=s.child(c-1);if(l.type!==t||!l.lastChild?.isTextblock)return!1;let u=a.before(),d=u-1-1,{tr:f}=n;return f.delete(u,a.after()).insert(d,a.parent.content),f.setSelection(up.create(f.doc,d)),r.dispatch(f.scrollIntoView()),!0},xp=/^\s*>\s$/,Sp=W.create({name:`blockquote`,addOptions(){return{HTMLAttributes:{}}},content:`block+`,group:`block`,defining:!0,parseHTML(){return[{tag:`blockquote`}]},renderHTML({HTMLAttributes:e}){return Gd(`blockquote`,{...H(this.options.HTMLAttributes,e),children:Gd(`slot`,{})})},parseMarkdown:(e,t)=>{let n=t.parseBlockChildren??t.parseChildren;return t.createNode(`blockquote`,void 0,n(e.tokens||[]))},renderMarkdown:(e,t)=>{if(!e.content)return``;let n=[];return e.content.forEach((e,r)=>{let i=(t.renderChild?.call(t,e,r)??t.renderChildren([e])).split(`
|
|
106
|
+
`).map(e=>e.trim()===``?`>`:`> ${e}`);n.push(i.join(`
|
|
107
|
+
`))}),n.join(`
|
|
108
|
+
>
|
|
109
|
+
`)},addCommands(){return{setBlockquote:()=>({commands:e})=>e.wrapIn(this.name),toggleBlockquote:()=>({commands:e})=>e.toggleWrap(this.name),unsetBlockquote:()=>({commands:e})=>e.lift(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-b":()=>this.editor.commands.toggleBlockquote(),Backspace:()=>bp(this.editor,this.type)}},addInputRules(){return[kd({find:xp,type:this.type})]}}),Cp=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/,wp=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g,Tp=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/,Ep=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g,Dp=nd.create({name:`bold`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`strong`},{tag:`b`,getAttrs:e=>e.style.fontWeight!==`normal`&&null},{style:`font-weight=400`,clearMark:e=>e.type.name===this.name},{style:`font-weight`,getAttrs:e=>/^(bold(er)?|[5-9]\d{2,})$/.test(e)&&null}]},renderHTML({HTMLAttributes:e}){return Gd(`strong`,{...H(this.options.HTMLAttributes,e),children:Gd(`slot`,{})})},markdownTokenName:`strong`,parseMarkdown:(e,t)=>t.applyMark(`bold`,t.parseInline(e.tokens||[])),markdownOptions:{htmlReopen:{open:`<strong>`,close:`</strong>`}},renderMarkdown:(e,t)=>`**${t.renderChildren(e)}**`,addCommands(){return{setBold:()=>({commands:e})=>e.setMark(this.name),toggleBold:()=>({commands:e})=>e.toggleMark(this.name),unsetBold:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-b":()=>this.editor.commands.toggleBold(),"Mod-B":()=>this.editor.commands.toggleBold()}},addInputRules(){return[Ed({find:Cp,type:this.type}),Ed({find:Tp,type:this.type})]},addPasteRules(){return[Wd({find:wp,type:this.type}),Wd({find:Ep,type:this.type})]}}),Op=e=>{let t=/`([^`]+)`(?!`)$/.exec(e);return!t||t.index>0&&e[t.index-1]==="`"?null:{index:t.index,text:t[0],replaceWith:t[1]}},kp=e=>{let t=/`([^`]+)`(?!`)/g,n=[],r;for(;(r=t.exec(e))!==null;)r.index>0&&e[r.index-1]==="`"||n.push({index:r.index,text:r[0],replaceWith:r[1]});return n},Ap=nd.create({name:`code`,addOptions(){return{HTMLAttributes:{}}},excludes:`_`,code:!0,exitable:!0,parseHTML(){return[{tag:`code`}]},renderHTML({HTMLAttributes:e}){return[`code`,H(this.options.HTMLAttributes,e),0]},markdownTokenName:`codespan`,parseMarkdown:(e,t)=>t.applyMark(`code`,[{type:`text`,text:e.text||``}]),renderMarkdown:(e,t)=>e.content?`\`${t.renderChildren(e.content)}\``:``,addCommands(){return{setCode:()=>({commands:e})=>e.setMark(this.name),toggleCode:()=>({commands:e})=>e.toggleMark(this.name),unsetCode:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-e":()=>this.editor.commands.toggleCode()}},addInputRules(){return[Ed({find:Op,type:this.type})]},addPasteRules(){return[Wd({find:kp,type:this.type})]}}),jp=4,Mp=/^```([a-z]+)?[\s\n]$/,Np=/^~~~([a-z]+)?[\s\n]$/,Pp=W.create({name:`codeBlock`,addOptions(){return{languageClassPrefix:`language-`,exitOnTripleEnter:!0,exitOnArrowDown:!0,defaultLanguage:null,enableTabIndentation:!1,tabSize:jp,HTMLAttributes:{}}},content:`text*`,marks:``,group:`block`,code:!0,defining:!0,addAttributes(){return{language:{default:this.options.defaultLanguage,parseHTML:e=>{let{languageClassPrefix:t}=this.options;return t&&[...e.firstElementChild?.classList||[]].filter(e=>e.startsWith(t)).map(e=>e.replace(t,``))[0]||null},rendered:!1}}},parseHTML(){return[{tag:`pre`,preserveWhitespace:`full`}]},renderHTML({node:e,HTMLAttributes:t}){return[`pre`,H(this.options.HTMLAttributes,t),[`code`,{class:e.attrs.language?this.options.languageClassPrefix+e.attrs.language:null},0]]},markdownTokenName:`code`,parseMarkdown:(e,t)=>e.raw?.startsWith("```")===!1&&e.raw?.startsWith(`~~~`)===!1&&e.codeBlockStyle!==`indented`?[]:t.createNode(`codeBlock`,{language:e.lang||null},e.text?[t.createTextNode(e.text)]:[]),renderMarkdown:(e,t)=>{let n=``,r=e.attrs?.language||``;return n=e.content?[`\`\`\`${r}`,t.renderChildren(e.content),"```"].join(`
|
|
110
|
+
`):`\`\`\`${r}
|
|
111
|
+
|
|
112
|
+
\`\`\``,n},addCommands(){return{setCodeBlock:e=>({commands:t})=>t.setNode(this.name,e),toggleCodeBlock:e=>({commands:t})=>t.toggleNode(this.name,`paragraph`,e)}},addKeyboardShortcuts(){return{"Mod-Alt-c":()=>this.editor.commands.toggleCodeBlock(),Backspace:()=>{let{empty:e,$anchor:t}=this.editor.state.selection,n=t.pos===1;return!e||t.parent.type.name!==this.name?!1:n||!t.parent.textContent.length?this.editor.commands.clearNodes():!1},Tab:({editor:e})=>{if(!this.options.enableTabIndentation)return!1;let t=this.options.tabSize??jp,{state:n}=e,{selection:r}=n,{$from:i,empty:a}=r;if(i.parent.type!==this.type)return!1;let o=` `.repeat(t);return a?e.commands.insertContent(o):e.commands.command(({tr:e})=>{let{from:t,to:i}=r,a=n.doc.textBetween(t,i,`
|
|
113
|
+
`,`
|
|
114
|
+
`).split(`
|
|
115
|
+
`).map(e=>o+e).join(`
|
|
116
|
+
`);return e.replaceWith(t,i,n.schema.text(a)),!0})},"Shift-Tab":({editor:e})=>{if(!this.options.enableTabIndentation)return!1;let t=this.options.tabSize??jp,{state:n}=e,{selection:r}=n,{$from:i,empty:a}=r;return i.parent.type===this.type?a?e.commands.command(({tr:e})=>{let{pos:r}=i,a=i.start(),o=i.end(),s=n.doc.textBetween(a,o,`
|
|
117
|
+
`,`
|
|
118
|
+
`).split(`
|
|
119
|
+
`),c=0,l=0,u=r-a;for(let e=0;e<s.length;e+=1){if(l+s[e].length>=u){c=e;break}l+=s[e].length+1}let d=s[c].match(/^ */)?.[0]||``,f=Math.min(d.length,t);if(f===0)return!0;let p=a;for(let e=0;e<c;e+=1)p+=s[e].length+1;return e.delete(p,p+f),r-p<=f&&e.setSelection(P.create(e.doc,p)),!0}):e.commands.command(({tr:e})=>{let{from:i,to:a}=r,o=n.doc.textBetween(i,a,`
|
|
120
|
+
`,`
|
|
121
|
+
`).split(`
|
|
122
|
+
`).map(e=>{let n=e.match(/^ */)?.[0]||``,r=Math.min(n.length,t);return e.slice(r)}).join(`
|
|
123
|
+
`);return e.replaceWith(i,a,n.schema.text(o)),!0}):!1},Enter:({editor:e})=>{if(!this.options.exitOnTripleEnter)return!1;let{state:t}=e,{selection:n}=t,{$from:r,empty:i}=n;if(!i||r.parent.type!==this.type)return!1;let a=r.parentOffset===r.parent.nodeSize-2,o=r.parent.textContent.endsWith(`
|
|
124
|
+
|
|
125
|
+
`);return!a||!o?!1:e.chain().command(({tr:e})=>(e.delete(r.pos-2,r.pos),!0)).exitCode().run()},ArrowDown:({editor:e})=>{if(!this.options.exitOnArrowDown)return!1;let{state:t}=e,{selection:n,doc:r}=t,{$from:i,empty:a}=n;if(!a||i.parent.type!==this.type||i.parentOffset!==i.parent.nodeSize-2)return!1;let o=i.after();return o===void 0?!1:r.nodeAt(o)?e.commands.command(({tr:e})=>(e.setSelection(N.near(r.resolve(o))),!0)):e.commands.exitCode()}}},addInputRules(){return[Od({find:Mp,type:this.type,getAttributes:e=>({language:e[1]})}),Od({find:Np,type:this.type,getAttributes:e=>({language:e[1]})})]},addProseMirrorPlugins(){return[new I({key:new L(`codeBlockVSCodeHandler`),props:{handlePaste:(e,t)=>{if(!t.clipboardData||this.editor.isActive(this.type.name))return!1;let n=t.clipboardData.getData(`text/plain`),r=t.clipboardData.getData(`vscode-editor-data`),i=(r?JSON.parse(r):void 0)?.mode;if(!n||!i)return!1;let{tr:a,schema:o}=e.state,s=o.text(n.replace(/\r\n?/g,`
|
|
126
|
+
`));return a.replaceSelectionWith(this.type.create({language:i},s)),a.selection.$from.parent.type!==this.type&&a.setSelection(P.near(a.doc.resolve(Math.max(0,a.selection.from-2)))),a.setMeta(`paste`,!0),e.dispatch(a),!0}}})]}}),Fp=W.create({name:`doc`,topNode:!0,content:`block+`,renderMarkdown:(e,t)=>e.content?t.renderChildren(e.content,`
|
|
127
|
+
|
|
128
|
+
`):``}),Ip=W.create({name:`hardBreak`,markdownTokenName:`br`,addOptions(){return{keepMarks:!0,HTMLAttributes:{}}},inline:!0,group:`inline`,selectable:!1,linebreakReplacement:!0,parseHTML(){return[{tag:`br`}]},renderHTML({HTMLAttributes:e}){return[`br`,H(this.options.HTMLAttributes,e)]},renderText(){return`
|
|
129
|
+
`},renderMarkdown:()=>`
|
|
130
|
+
`,parseMarkdown:()=>({type:`hardBreak`}),addCommands(){return{setHardBreak:()=>({commands:e,chain:t,state:n,editor:r})=>e.first([()=>e.exitCode(),()=>e.command(()=>{let{selection:e,storedMarks:i}=n;if(e.$from.parent.type.spec.isolating)return!1;let{keepMarks:a}=this.options,{splittableMarks:o}=r.extensionManager,s=i||e.$to.parentOffset&&e.$from.marks();return t().insertContent({type:this.name}).command(({tr:e,dispatch:t})=>{if(t&&s&&a){let t=s.filter(e=>o.includes(e.type.name));e.ensureMarks(t)}return!0}).run()})])}},addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),Lp=W.create({name:`heading`,addOptions(){return{levels:[1,2,3,4,5,6],HTMLAttributes:{}}},content:`inline*`,group:`block`,defining:!0,addAttributes(){return{level:{default:1,rendered:!1}}},parseHTML(){return this.options.levels.map(e=>({tag:`h${e}`,attrs:{level:e}}))},renderHTML({node:e,HTMLAttributes:t}){return[`h${this.options.levels.includes(e.attrs.level)?e.attrs.level:this.options.levels[0]}`,H(this.options.HTMLAttributes,t),0]},parseMarkdown:(e,t)=>t.createNode(`heading`,{level:e.depth||1},t.parseInline(e.tokens||[])),renderMarkdown:(e,t)=>{let n=e.attrs?.level?parseInt(e.attrs.level,10):1,r=`#`.repeat(n);return e.content?`${r} ${t.renderChildren(e.content)}`:``},addCommands(){return{setHeading:e=>({commands:t})=>this.options.levels.includes(e.level)?t.setNode(this.name,e):!1,toggleHeading:e=>({commands:t})=>this.options.levels.includes(e.level)?t.toggleNode(this.name,`paragraph`,e):!1}},addKeyboardShortcuts(){return this.options.levels.reduce((e,t)=>({...e,[`Mod-Alt-${t}`]:()=>this.editor.commands.toggleHeading({level:t})}),{})},addInputRules(){return this.options.levels.map(e=>Od({find:RegExp(`^(#{${Math.min(...this.options.levels)},${e}})\\s$`),type:this.type,getAttributes:{level:e}}))}}),Rp=W.create({name:`horizontalRule`,addOptions(){return{HTMLAttributes:{},nextNodeType:`paragraph`}},group:`block`,parseHTML(){return[{tag:`hr`}]},renderHTML({HTMLAttributes:e}){return[`hr`,H(this.options.HTMLAttributes,e)]},markdownTokenName:`hr`,parseMarkdown:(e,t)=>t.createNode(`horizontalRule`),renderMarkdown:()=>`---`,addCommands(){return{setHorizontalRule:()=>({chain:e,state:t})=>{if(!Md(t,t.schema.nodes[this.name]))return!1;let{selection:n}=t,{$to:r}=n,i=e();return vu(n)?i.insertContentAt(r.pos,{type:this.name}):i.insertContent({type:this.name}),i.command(({state:e,tr:t,dispatch:n})=>{if(n){let{$to:n}=t.selection,r=n.end();if(n.nodeAfter)n.nodeAfter.isTextblock?t.setSelection(P.create(t.doc,n.pos+1)):n.nodeAfter.isBlock?t.setSelection(F.create(t.doc,n.pos)):t.setSelection(P.create(t.doc,n.pos));else{let i=(e.schema.nodes[this.options.nextNodeType]||n.parent.type.contentMatch.defaultType)?.create();i&&(t.insert(r,i),t.setSelection(P.create(t.doc,r+1)))}t.scrollIntoView()}return!0}).run()}}},addInputRules(){return[Dd({find:/^(?:---|—-|___\s|\*\*\*\s)$/,type:this.type})]}}),zp=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/,Bp=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g,Vp=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/,Hp=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g,Up=nd.create({name:`italic`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`em`},{tag:`i`,getAttrs:e=>e.style.fontStyle!==`normal`&&null},{style:`font-style=normal`,clearMark:e=>e.type.name===this.name},{style:`font-style=italic`}]},renderHTML({HTMLAttributes:e}){return[`em`,H(this.options.HTMLAttributes,e),0]},addCommands(){return{setItalic:()=>({commands:e})=>e.setMark(this.name),toggleItalic:()=>({commands:e})=>e.toggleMark(this.name),unsetItalic:()=>({commands:e})=>e.unsetMark(this.name)}},markdownTokenName:`em`,parseMarkdown:(e,t)=>t.applyMark(`italic`,t.parseInline(e.tokens||[])),markdownOptions:{htmlReopen:{open:`<em>`,close:`</em>`}},renderMarkdown:(e,t)=>`*${t.renderChildren(e)}*`,addKeyboardShortcuts(){return{"Mod-i":()=>this.editor.commands.toggleItalic(),"Mod-I":()=>this.editor.commands.toggleItalic()}},addInputRules(){return[Ed({find:zp,type:this.type}),Ed({find:Vp,type:this.type})]},addPasteRules(){return[Wd({find:Bp,type:this.type}),Wd({find:Hp,type:this.type})]}}),Wp=`aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2`,Gp=`ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2`,Kp=`numeric`,qp=`ascii`,Jp=`alpha`,Yp=`asciinumeric`,Xp=`alphanumeric`,Zp=`domain`,Qp=`emoji`,$p=`scheme`,em=`slashscheme`,tm=`whitespace`;function nm(e,t){return e in t||(t[e]=[]),t[e]}function rm(e,t,n){t[Kp]&&(t[Yp]=!0,t[Xp]=!0),t[qp]&&(t[Yp]=!0,t[Jp]=!0),t[Yp]&&(t[Xp]=!0),t[Jp]&&(t[Xp]=!0),t[Xp]&&(t[Zp]=!0),t[Qp]&&(t[Zp]=!0);for(let r in t){let t=nm(r,n);t.indexOf(e)<0&&t.push(e)}}function im(e,t){let n={};for(let r in t)t[r].indexOf(e)>=0&&(n[r]=!0);return n}function am(e=null){this.j={},this.jr=[],this.jd=null,this.t=e}am.groups={},am.prototype={accepts(){return!!this.t},go(e){let t=this,n=t.j[e];if(n)return n;for(let n=0;n<t.jr.length;n++){let r=t.jr[n][0],i=t.jr[n][1];if(i&&r.test(e))return i}return t.jd},has(e,t=!1){return t?e in this.j:!!this.go(e)},ta(e,t,n,r){for(let i=0;i<e.length;i++)this.tt(e[i],t,n,r)},tr(e,t,n,r){r||=am.groups;let i;return t&&t.j?i=t:(i=new am(t),n&&r&&rm(t,n,r)),this.jr.push([e,i]),i},ts(e,t,n,r){let i=this,a=e.length;if(!a)return i;for(let t=0;t<a-1;t++)i=i.tt(e[t]);return i.tt(e[a-1],t,n,r)},tt(e,t,n,r){r||=am.groups;let i=this;if(t&&t.j)return i.j[e]=t,t;let a=t,o,s=i.go(e);return s?(o=new am,Object.assign(o.j,s.j),o.jr.push.apply(o.jr,s.jr),o.jd=s.jd,o.t=s.t):o=new am,a&&(r&&(o.t&&typeof o.t==`string`?rm(a,Object.assign(im(o.t,r),n),r):n&&rm(a,n,r)),o.t=a),i.j[e]=o,o}};var q=(e,t,n,r,i)=>e.ta(t,n,r,i),J=(e,t,n,r,i)=>e.tr(t,n,r,i),om=(e,t,n,r,i)=>e.ts(t,n,r,i),Y=(e,t,n,r,i)=>e.tt(t,n,r,i),sm=`WORD`,cm=`UWORD`,lm=`ASCIINUMERICAL`,um=`ALPHANUMERICAL`,dm=`LOCALHOST`,fm=`TLD`,pm=`UTLD`,mm=`SCHEME`,hm=`SLASH_SCHEME`,gm=`NUM`,_m=`WS`,vm=`NL`,ym=`OPENBRACE`,bm=`CLOSEBRACE`,xm=`OPENBRACKET`,Sm=`CLOSEBRACKET`,Cm=`OPENPAREN`,wm=`CLOSEPAREN`,Tm=`OPENANGLEBRACKET`,Em=`CLOSEANGLEBRACKET`,Dm=`FULLWIDTHLEFTPAREN`,Om=`FULLWIDTHRIGHTPAREN`,km=`LEFTCORNERBRACKET`,Am=`RIGHTCORNERBRACKET`,jm=`LEFTWHITECORNERBRACKET`,Mm=`RIGHTWHITECORNERBRACKET`,Nm=`FULLWIDTHLESSTHAN`,Pm=`FULLWIDTHGREATERTHAN`,Fm=`AMPERSAND`,Im=`APOSTROPHE`,Lm=`ASTERISK`,Rm=`AT`,zm=`BACKSLASH`,Bm=`BACKTICK`,Vm=`CARET`,Hm=`COLON`,Um=`COMMA`,Wm=`DOLLAR`,Gm=`DOT`,Km=`EQUALS`,qm=`EXCLAMATION`,Jm=`HYPHEN`,Ym=`PERCENT`,Xm=`PIPE`,Zm=`PLUS`,Qm=`POUND`,$m=`QUERY`,eh=`QUOTE`,th=`FULLWIDTHMIDDLEDOT`,nh=`SEMI`,rh=`SLASH`,ih=`TILDE`,ah=`UNDERSCORE`,oh=`EMOJI`,sh=`SYM`,ch=Object.freeze({__proto__:null,ALPHANUMERICAL:um,AMPERSAND:Fm,APOSTROPHE:Im,ASCIINUMERICAL:lm,ASTERISK:Lm,AT:Rm,BACKSLASH:zm,BACKTICK:Bm,CARET:Vm,CLOSEANGLEBRACKET:Em,CLOSEBRACE:bm,CLOSEBRACKET:Sm,CLOSEPAREN:wm,COLON:Hm,COMMA:Um,DOLLAR:Wm,DOT:Gm,EMOJI:oh,EQUALS:Km,EXCLAMATION:qm,FULLWIDTHGREATERTHAN:Pm,FULLWIDTHLEFTPAREN:Dm,FULLWIDTHLESSTHAN:Nm,FULLWIDTHMIDDLEDOT:th,FULLWIDTHRIGHTPAREN:Om,HYPHEN:Jm,LEFTCORNERBRACKET:km,LEFTWHITECORNERBRACKET:jm,LOCALHOST:dm,NL:vm,NUM:gm,OPENANGLEBRACKET:Tm,OPENBRACE:ym,OPENBRACKET:xm,OPENPAREN:Cm,PERCENT:Ym,PIPE:Xm,PLUS:Zm,POUND:Qm,QUERY:$m,QUOTE:eh,RIGHTCORNERBRACKET:Am,RIGHTWHITECORNERBRACKET:Mm,SCHEME:mm,SEMI:nh,SLASH:rh,SLASH_SCHEME:hm,SYM:sh,TILDE:ih,TLD:fm,UNDERSCORE:ah,UTLD:pm,UWORD:cm,WORD:sm,WS:_m}),lh=/[a-z]/,uh=/\p{L}/u,dh=/\p{Emoji}/u,fh=/\d/,ph=/\s/,mh=`\r`,hh=`
|
|
131
|
+
`,gh=`️`,_h=``,vh=``,yh=null,bh=null;function xh(e=[]){let t={};am.groups=t;let n=new am;yh??=Th(Wp),bh??=Th(Gp),Y(n,`'`,Im),Y(n,`{`,ym),Y(n,`}`,bm),Y(n,`[`,xm),Y(n,`]`,Sm),Y(n,`(`,Cm),Y(n,`)`,wm),Y(n,`<`,Tm),Y(n,`>`,Em),Y(n,`(`,Dm),Y(n,`)`,Om),Y(n,`「`,km),Y(n,`」`,Am),Y(n,`『`,jm),Y(n,`』`,Mm),Y(n,`<`,Nm),Y(n,`>`,Pm),Y(n,`&`,Fm),Y(n,`*`,Lm),Y(n,`@`,Rm),Y(n,"`",Bm),Y(n,`^`,Vm),Y(n,`:`,Hm),Y(n,`,`,Um),Y(n,`$`,Wm),Y(n,`.`,Gm),Y(n,`=`,Km),Y(n,`!`,qm),Y(n,`-`,Jm),Y(n,`%`,Ym),Y(n,`|`,Xm),Y(n,`+`,Zm),Y(n,`#`,Qm),Y(n,`?`,$m),Y(n,`"`,eh),Y(n,`/`,rh),Y(n,`;`,nh),Y(n,`~`,ih),Y(n,`_`,ah),Y(n,`\\`,zm),Y(n,`・`,th);let r=J(n,fh,gm,{[Kp]:!0});J(r,fh,r);let i=J(r,lh,lm,{[Yp]:!0}),a=J(r,uh,um,{[Xp]:!0}),o=J(n,lh,sm,{[qp]:!0});J(o,fh,i),J(o,lh,o),J(i,fh,i),J(i,lh,i);let s=J(n,uh,cm,{[Jp]:!0});J(s,lh),J(s,fh,a),J(s,uh,s),J(a,fh,a),J(a,lh),J(a,uh,a);let c=Y(n,hh,vm,{[tm]:!0}),l=Y(n,mh,_m,{[tm]:!0}),u=J(n,ph,_m,{[tm]:!0});Y(n,vh,u),Y(l,hh,c),Y(l,vh,u),J(l,ph,u),Y(u,mh),Y(u,hh),J(u,ph,u),Y(u,vh,u);let d=J(n,dh,oh,{[Qp]:!0});Y(d,`#`),J(d,dh,d),Y(d,gh,d);let f=Y(d,_h);Y(f,`#`),J(f,dh,d);let p=[[lh,o],[fh,i]],m=[[lh,null],[uh,s],[fh,a]];for(let e=0;e<yh.length;e++)wh(n,yh[e],fm,sm,p);for(let e=0;e<bh.length;e++)wh(n,bh[e],pm,cm,m);rm(fm,{tld:!0,ascii:!0},t),rm(pm,{utld:!0,alpha:!0},t),wh(n,`file`,mm,sm,p),wh(n,`mailto`,mm,sm,p),wh(n,`http`,hm,sm,p),wh(n,`https`,hm,sm,p),wh(n,`ftp`,hm,sm,p),wh(n,`ftps`,hm,sm,p),rm(mm,{scheme:!0,ascii:!0},t),rm(hm,{slashscheme:!0,ascii:!0},t),e=e.sort((e,t)=>e[0]>t[0]?1:-1);for(let t=0;t<e.length;t++){let r=e[t][0],i=e[t][1]?{[$p]:!0}:{[em]:!0};r.indexOf(`-`)>=0?i[Zp]=!0:lh.test(r)?fh.test(r)?i[Yp]=!0:i[qp]=!0:i[Kp]=!0,om(n,r,r,i)}return om(n,`localhost`,dm,{ascii:!0}),n.jd=new am(sh),{start:n,tokens:Object.assign({groups:t},ch)}}function Sh(e,t){let n=Ch(t.replace(/[A-Z]/g,e=>e.toLowerCase())),r=n.length,i=[],a=0,o=0;for(;o<r;){let s=e,c=null,l=0,u=null,d=-1,f=-1;for(;o<r&&(c=s.go(n[o]));)s=c,s.accepts()?(d=0,f=0,u=s):d>=0&&(d+=n[o].length,f++),l+=n[o].length,a+=n[o].length,o++;a-=d,o-=f,l-=d,i.push({t:u.t,v:t.slice(a-l,a),s:a-l,e:a})}return i}function Ch(e){let t=[],n=e.length,r=0;for(;r<n;){let i=e.charCodeAt(r),a,o=i<55296||i>56319||r+1===n||(a=e.charCodeAt(r+1))<56320||a>57343?e[r]:e.slice(r,r+2);t.push(o),r+=o.length}return t}function wh(e,t,n,r,i){let a,o=t.length;for(let n=0;n<o-1;n++){let o=t[n];e.j[o]?a=e.j[o]:(a=new am(r),a.jr=i.slice(),e.j[o]=a),e=a}return a=new am(n),a.jr=i.slice(),e.j[t[o-1]]=a,a}function Th(e){let t=[],n=[],r=0;for(;r<e.length;){let i=0;for(;`0123456789`.indexOf(e[r+i])>=0;)i++;if(i>0){t.push(n.join(``));for(let t=parseInt(e.substring(r,r+i),10);t>0;t--)n.pop();r+=i}else n.push(e[r]),r++}return t}var Eh={defaultProtocol:`http`,events:null,format:Oh,formatHref:Oh,nl2br:!1,tagName:`a`,target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function Dh(e,t=null){let n=Object.assign({},Eh);e&&(n=Object.assign(n,e instanceof Dh?e.o:e));let r=n.ignoreTags,i=[];for(let e=0;e<r.length;e++)i.push(r[e].toUpperCase());this.o=n,t&&(this.defaultRender=t),this.ignoreTags=i}Dh.prototype={o:Eh,ignoreTags:[],defaultRender(e){return e},check(e){return this.get(`validate`,e.toString(),e)},get(e,t,n){let r=t!=null,i=this.o[e];return i&&(typeof i==`object`?(i=n.t in i?i[n.t]:Eh[e],typeof i==`function`&&r&&(i=i(t,n))):typeof i==`function`&&r&&(i=i(t,n.t,n)),i)},getObj(e,t,n){let r=this.o[e];return typeof r==`function`&&t!=null&&(r=r(t,n.t,n)),r},render(e){let t=e.render(this);return(this.get(`render`,null,e)||this.defaultRender)(t,e.t,e)}};function Oh(e){return e}function kh(e,t){this.t=`token`,this.v=e,this.tk=t}kh.prototype={isLink:!1,toString(){return this.v},toHref(e){return this.toString()},toFormattedString(e){let t=this.toString(),n=e.get(`truncate`,t,this),r=e.get(`format`,t,this);return n&&r.length>n?r.substring(0,n)+`…`:r},toFormattedHref(e){return e.get(`formatHref`,this.toHref(e.get(`defaultProtocol`)),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(e=Eh.defaultProtocol){return{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(e),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(e){return{type:this.t,value:this.toFormattedString(e),isLink:this.isLink,href:this.toFormattedHref(e),start:this.startIndex(),end:this.endIndex()}},validate(e){return e.get(`validate`,this.toString(),this)},render(e){let t=this,n=this.toHref(e.get(`defaultProtocol`)),r=e.get(`formatHref`,n,this),i=e.get(`tagName`,n,t),a=this.toFormattedString(e),o={},s=e.get(`className`,n,t),c=e.get(`target`,n,t),l=e.get(`rel`,n,t),u=e.getObj(`attributes`,n,t),d=e.getObj(`events`,n,t);return o.href=r,s&&(o.class=s),c&&(o.target=c),l&&(o.rel=l),u&&Object.assign(o,u),{tagName:i,attributes:o,content:a,eventListeners:d}}};function Ah(e,t){class n extends kh{constructor(t,n){super(t,n),this.t=e}}for(let e in t)n.prototype[e]=t[e];return n.t=e,n}var jh=Ah(`email`,{isLink:!0,toHref(){return`mailto:`+this.toString()}}),Mh=Ah(`text`),Nh=Ah(`nl`),Ph=Ah(`url`,{isLink:!0,toHref(e=Eh.defaultProtocol){return this.hasProtocol()?this.v:`${e}://${this.v}`},hasProtocol(){let e=this.tk;return e.length>=2&&e[0].t!==dm&&e[1].t===Hm}}),Fh=e=>new am(e);function Ih({groups:e}){let t=e.domain.concat([Fm,Lm,Rm,zm,Bm,Vm,Wm,Km,Jm,gm,Ym,Xm,Zm,Qm,rh,sh,ih,ah]),n=[Im,Hm,Um,Gm,qm,Ym,$m,eh,nh,Tm,Em,ym,bm,Sm,xm,Cm,wm,Dm,Om,km,Am,jm,Mm,Nm,Pm],r=[Fm,Im,Lm,zm,Bm,Vm,Wm,Km,Jm,ym,bm,Ym,Xm,Zm,Qm,$m,rh,sh,ih,ah],i=Fh(),a=Y(i,ih);q(a,r,a),q(a,e.domain,a);let o=Fh(),s=Fh(),c=Fh();q(i,e.domain,o),q(i,e.scheme,s),q(i,e.slashscheme,c),q(o,r,a),q(o,e.domain,o);let l=Y(o,Rm);Y(a,Rm,l),Y(s,Rm,l),Y(c,Rm,l);let u=Y(a,Gm);q(u,r,a),q(u,e.domain,a);let d=Fh();q(l,e.domain,d),q(d,e.domain,d);let f=Y(d,Gm);q(f,e.domain,d);let p=Fh(jh);q(f,e.tld,p),q(f,e.utld,p),Y(l,dm,p);let m=Y(d,Jm);Y(m,Jm,m),q(m,e.domain,d),q(p,e.domain,d),Y(p,Gm,f),Y(p,Jm,m);let h=Y(o,Jm),g=Y(o,Gm);Y(h,Jm,h),q(h,e.domain,o),q(g,r,a),q(g,e.domain,o);let _=Fh(Ph);q(g,e.tld,_),q(g,e.utld,_),q(_,e.domain,o),q(_,r,a),Y(_,Gm,g),Y(_,Jm,h),Y(_,Rm,l);let v=Y(_,Hm),y=Fh(Ph);q(v,e.numeric,y);let b=Fh(Ph),x=Fh();q(b,t,b),q(b,n,x),q(x,t,b),q(x,n,x),Y(_,rh,b),Y(y,rh,b);let S=Y(s,Hm),C=Y(Y(Y(c,Hm),rh),rh);q(s,e.domain,o),Y(s,Gm,g),Y(s,Jm,h),q(c,e.domain,o),Y(c,Gm,g),Y(c,Jm,h),q(S,e.domain,b),Y(S,rh,b),Y(S,$m,b),q(C,e.domain,b),q(C,t,b),Y(C,rh,b);let w=[[ym,bm],[xm,Sm],[Cm,wm],[Tm,Em],[Dm,Om],[km,Am],[jm,Mm],[Nm,Pm]];for(let e=0;e<w.length;e++){let[r,i]=w[e],a=Y(b,r);Y(x,r,a);let o=Fh(Ph);q(a,t,o);let s=Fh();q(a,n,s),Y(a,i,b),q(o,t,o),q(o,n,s),q(s,t,o),q(s,n,s),Y(o,i,b),Y(s,i,b)}return Y(i,dm,_),Y(i,vm,Nh),{start:i,tokens:ch}}function Lh(e,t,n){let r=n.length,i=0,a=[],o=[];for(;i<r;){let s=e,c=null,l=null,u=0,d=null,f=-1;for(;i<r&&!(c=s.go(n[i].t));)o.push(n[i++]);for(;i<r&&(l=c||s.go(n[i].t));)c=null,s=l,s.accepts()?(f=0,d=s):f>=0&&f++,i++,u++;if(f<0)i-=u,i<r&&(o.push(n[i]),i++);else{o.length>0&&(a.push(Rh(Mh,t,o)),o=[]),i-=f,u-=f;let e=d.t,r=n.slice(i-u,i);a.push(Rh(e,t,r))}}return o.length>0&&a.push(Rh(Mh,t,o)),a}function Rh(e,t,n){let r=n[0].s,i=n[n.length-1].e;return new e(t.slice(r,i),n)}var zh=typeof console<`u`&&console&&console.warn||(()=>{}),Bh=`until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.`,X={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function Vh(){return am.groups={},X.scanner=null,X.parser=null,X.tokenQueue=[],X.pluginQueue=[],X.customSchemes=[],X.initialized=!1,X}function Hh(e,t=!1){if(X.initialized&&zh(`linkifyjs: already initialized - will not register custom scheme "${e}" ${Bh}`),!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(e))throw Error(`linkifyjs: incorrect scheme format.
|
|
132
|
+
1. Must only contain digits, lowercase ASCII letters or "-"
|
|
133
|
+
2. Cannot start or end with "-"
|
|
134
|
+
3. "-" cannot repeat`);X.customSchemes.push([e,t])}function Uh(){X.scanner=xh(X.customSchemes);for(let e=0;e<X.tokenQueue.length;e++)X.tokenQueue[e][1]({scanner:X.scanner});X.parser=Ih(X.scanner.tokens);for(let e=0;e<X.pluginQueue.length;e++)X.pluginQueue[e][1]({scanner:X.scanner,parser:X.parser});return X.initialized=!0,X}function Wh(e){return X.initialized||Uh(),Lh(X.parser.start,e,Sh(X.scanner.start,e))}Wh.scan=Sh;function Gh(e,t=null,n=null){if(t&&typeof t==`object`){if(n)throw Error(`linkifyjs: Invalid link type ${t}; must be a string`);n=t,t=null}let r=new Dh(n),i=Wh(e),a=[];for(let e=0;e<i.length;e++){let n=i[e];n.isLink&&(!t||n.t===t)&&r.check(n)&&a.push(n.toFormattedObject(r))}return a}var Kh=`[\0- \xA0 -\u2029 ]`,qh=new RegExp(Kh),Jh=RegExp(`${Kh}$`),Yh=new RegExp(Kh,`g`);function Xh(e){return e.length===1?e[0].isLink:e.length===3&&e[1].isLink?[`()`,`[]`].includes(e[0].value+e[2].value):!1}function Zh(e){return new I({key:new L(`autolink`),appendTransaction:(t,n,r)=>{let i=t.some(e=>e.docChanged)&&!n.doc.eq(r.doc),a=t.some(e=>e.getMeta(`preventAutolink`));if(!i||a)return;let{tr:o}=r;if(au(kl(n.doc,[...t])).forEach(({newRange:t})=>{let n=Ml(r.doc,t,e=>e.isTextblock),i,a;if(n.length>1)i=n[0],a=r.doc.textBetween(i.pos,i.pos+i.node.nodeSize,void 0,` `);else if(n.length){let e=r.doc.textBetween(t.from,t.to,` `,` `);if(!Jh.test(e))return;i=n[0],a=r.doc.textBetween(i.pos,t.to,void 0,` `)}if(i&&a){let t=a.split(qh).filter(Boolean);if(t.length<=0)return!1;let n=t[t.length-1],s=i.pos+a.lastIndexOf(n);if(!n)return!1;let c=Wh(n).map(t=>t.toObject(e.defaultProtocol));if(!Xh(c))return!1;c.filter(e=>e.isLink).map(e=>({...e,from:s+e.start+1,to:s+e.end+1})).filter(e=>r.schema.marks.code?!r.doc.rangeHasMark(e.from,e.to,r.schema.marks.code):!0).filter(t=>e.validate(t.value)).filter(t=>e.shouldAutoLink(t.value)).forEach(t=>{ou(t.from,t.to,r.doc).some(t=>t.mark.type===e.type)||o.addMark(t.from,t.to,e.type.create({href:t.href}))})}}),o.steps.length)return o}})}function Qh(e){return new I({key:new L(`handleClickLink`),props:{handleClick:(t,n,r)=>{if(r.button!==0||!t.editable)return!1;let i=null;if(r.target instanceof HTMLAnchorElement)i=r.target;else{let t=r.target;if(!t)return!1;let n=e.editor.view.dom;i=t.closest(`a`),i&&!n.contains(i)&&(i=null)}if(!i)return!1;let a=!1;if(e.enableClickSelection&&(a=e.editor.commands.extendMarkRange(e.type.name)),e.openOnClick){let n=nu(t.state,e.type.name),r=i.href??n.href,o=i.target??n.target;r&&(window.open(r,o),a=!0)}return a}}})}function $h(e){return new I({key:new L(`handlePasteLink`),props:{handlePaste:(t,n,r)=>{let{shouldAutoLink:i}=e,{state:a}=t,{selection:o}=a,{empty:s}=o;if(s)return!1;let c=``;r.content.forEach(e=>{c+=e.textContent});let l=Gh(c,{defaultProtocol:e.defaultProtocol}).find(e=>e.isLink&&e.value===c);return!c||!l||i!==void 0&&!i(l.value)?!1:e.editor.commands.setMark(e.type,{href:l.href})}}})}function eg(e,t){let n=[`http`,`https`,`ftp`,`ftps`,`mailto`,`tel`,`callto`,`sms`,`cid`,`xmpp`];return t&&t.forEach(e=>{let t=typeof e==`string`?e:e.scheme;t&&n.push(t)}),!e||e.replace(Yh,``).match(RegExp(`^(?:(?:${n.join(`|`)}):|[^a-z]|[a-z0-9+.-]+(?:[^a-z+.-:]|$))`,`i`))}var tg=nd.create({name:`link`,priority:1e3,keepOnSplit:!1,exitable:!0,onCreate(){this.options.validate&&!this.options.shouldAutoLink&&(this.options.shouldAutoLink=this.options.validate,console.warn("The `validate` option is deprecated. Rename to the `shouldAutoLink` option instead.")),this.options.protocols.forEach(e=>{if(typeof e==`string`){Hh(e);return}Hh(e.scheme,e.optionalSlashes)})},onDestroy(){Vh()},inclusive(){return this.options.autolink},addOptions(){return{openOnClick:!0,enableClickSelection:!1,linkOnPaste:!0,autolink:!0,protocols:[],defaultProtocol:`http`,HTMLAttributes:{target:`_blank`,rel:`noopener noreferrer nofollow`,class:null},isAllowedUri:(e,t)=>!!eg(e,t.protocols),validate:e=>!!e,shouldAutoLink:e=>{let t=/^[a-z][a-z0-9+.-]*:\/\//i.test(e),n=/^[a-z][a-z0-9+.-]*:/i.test(e);if(t||n&&!e.includes(`@`))return!0;let r=(e.includes(`@`)?e.split(`@`).pop():e).split(/[/?#:]/)[0];return!(/^\d{1,3}(\.\d{1,3}){3}$/.test(r)||!/\./.test(r))}}},addAttributes(){return{href:{default:null,parseHTML(e){return e.getAttribute(`href`)}},target:{default:this.options.HTMLAttributes.target},rel:{default:this.options.HTMLAttributes.rel},class:{default:this.options.HTMLAttributes.class},title:{default:null}}},parseHTML(){return[{tag:`a[href]`,getAttrs:e=>{let t=e.getAttribute(`href`);return!t||!this.options.isAllowedUri(t,{defaultValidate:e=>!!eg(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:null}}]},renderHTML({HTMLAttributes:e}){return this.options.isAllowedUri(e.href,{defaultValidate:e=>!!eg(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?[`a`,H(this.options.HTMLAttributes,e),0]:[`a`,H(this.options.HTMLAttributes,{...e,href:``}),0]},markdownTokenName:`link`,parseMarkdown:(e,t)=>t.applyMark(`link`,t.parseInline(e.tokens||[]),{href:e.href,title:e.title||null}),renderMarkdown:(e,t)=>{let n=e.attrs?.href??``,r=e.attrs?.title??``,i=t.renderChildren(e);return r?`[${i}](${n} "${r}")`:`[${i}](${n})`},addCommands(){return{setLink:e=>({chain:t})=>{let{href:n}=e;return this.options.isAllowedUri(n,{defaultValidate:e=>!!eg(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?t().setMark(this.name,e).setMeta(`preventAutolink`,!0).run():!1},toggleLink:e=>({chain:t})=>{let{href:n}=e||{};return n&&!this.options.isAllowedUri(n,{defaultValidate:e=>!!eg(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:t().toggleMark(this.name,e,{extendEmptyMarkRange:!0}).setMeta(`preventAutolink`,!0).run()},unsetLink:()=>({chain:e})=>e().unsetMark(this.name,{extendEmptyMarkRange:!0}).setMeta(`preventAutolink`,!0).run()}},addPasteRules(){return[Wd({find:e=>{let t=[];if(e){let{protocols:n,defaultProtocol:r}=this.options,i=Gh(e).filter(e=>e.isLink&&this.options.isAllowedUri(e.value,{defaultValidate:e=>!!eg(e,n),protocols:n,defaultProtocol:r}));i.length&&i.forEach(e=>{this.options.shouldAutoLink(e.value)&&t.push({text:e.value,data:{href:e.href},index:e.start})})}return t},type:this.type,getAttributes:e=>({href:e.data?.href})})]},addProseMirrorPlugins(){let e=[],{protocols:t,defaultProtocol:n}=this.options;return this.options.autolink&&e.push(Zh({type:this.type,defaultProtocol:this.options.defaultProtocol,validate:e=>this.options.isAllowedUri(e,{defaultValidate:e=>!!eg(e,t),protocols:t,defaultProtocol:n}),shouldAutoLink:this.options.shouldAutoLink})),e.push(Qh({type:this.type,editor:this.editor,openOnClick:this.options.openOnClick===`whenNotEditable`?!0:this.options.openOnClick,enableClickSelection:this.options.enableClickSelection})),this.options.linkOnPaste&&e.push($h({editor:this.editor,defaultProtocol:this.options.defaultProtocol,type:this.type,shouldAutoLink:this.options.shouldAutoLink})),e}}),ng=Object.defineProperty,rg=(e,t)=>{for(var n in t)ng(e,n,{get:t[n],enumerable:!0})},ig=`listItem`,ag=`textStyle`,og=/^\s*([-+*])\s$/,sg=W.create({name:`bulletList`,addOptions(){return{itemTypeName:`listItem`,HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:`block list`,content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul`}]},renderHTML({HTMLAttributes:e}){return[`ul`,H(this.options.HTMLAttributes,e),0]},markdownTokenName:`list`,parseMarkdown:(e,t)=>e.type!==`list`||e.ordered?[]:{type:`bulletList`,content:e.items?t.parseChildren(e.items):[]},renderMarkdown:(e,t)=>e.content?t.renderChildren(e.content,`
|
|
135
|
+
`):``,markdownOptions:{indentsContent:!0},addCommands(){return{toggleBulletList:()=>({commands:e,chain:t})=>this.options.keepAttributes?t().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(ig,this.editor.getAttributes(ag)).run():e.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-8":()=>this.editor.commands.toggleBulletList()}},addInputRules(){let e=kd({find:og,type:this.type});return(this.options.keepMarks||this.options.keepAttributes)&&(e=kd({find:og,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:()=>this.editor.getAttributes(ag),editor:this.editor})),[e]}}),cg=(e,t,n)=>{let{selection:r}=e;if(!r.empty)return null;let{$from:i}=r;if(!i.parent.isTextblock||i.parentOffset!==i.parent.content.size)return null;let a=-1;for(let e=i.depth;e>0;--e)if(i.node(e).type.name===t){a=e;break}if(a<0)return null;let o=i.node(a),s=i.index(a);if(s+1>=o.childCount)return null;let c=o.child(s+1);if(!n.includes(c.type.name))return null;let l=e.schema.nodes[t],u=!1;if(c.forEach(e=>{e.type===l&&e.childCount>1&&(u=!0)}),!u)return null;let d=e.doc.resolve(i.after()).nodeAfter;if(!d||!n.includes(d.type.name))return null;let f=[];return d.forEach(e=>{f.push(e)}),f.length===0?null:{listItemDepth:a,nestedList:d,nestedListPos:i.after(),insertPos:i.after(a),items:f}},lg=(e,t,n,r)=>{let i=cg(e,n,r);if(!i)return!1;let{selection:a}=e,{nestedList:o,nestedListPos:s,insertPos:c,items:l}=i,u=e.tr;u.delete(s,s+o.nodeSize);let d=u.mapping.map(c);return u.insert(d,p.from(l)),u.setSelection(a.map(u.doc,u.mapping)),t&&t(u),!0},ug=(e,t,n)=>lg(e.state,e.view.dispatch,t,n),dg=(e,t)=>U.create({name:`${e}BranchingDeleteKeymap`,priority:101,addKeyboardShortcuts(){let n=()=>ug(this.editor,e,t);return{Delete:n,"Mod-Delete":n}}});function fg(e){let t=e.tokens?.[0];return!!(e.text&&e.tokens?.length===1&&t?.type===`list`&&t.ordered&&t.raw===e.text)}function pg(e,t){return t.tokenizeInline?t.parseInline(t.tokenizeInline(e)):t.parseInline([{type:`text`,raw:e,text:e}])}var mg=W.create({name:`listItem`,addOptions(){return{HTMLAttributes:{},bulletListTypeName:`bulletList`,orderedListTypeName:`orderedList`}},content:`paragraph block*`,defining:!0,parseHTML(){return[{tag:`li`}]},renderHTML({HTMLAttributes:e}){return[`li`,H(this.options.HTMLAttributes,e),0]},markdownTokenName:`list_item`,parseMarkdown:(e,t)=>{if(e.type!==`list_item`)return[];let n=t.parseBlockChildren??t.parseChildren,r=[];if(e.tokens&&e.tokens.length>0){if(fg(e))return{type:`listItem`,content:[{type:`paragraph`,content:pg(e.text||``,t)}]};if(e.tokens.some(e=>e.type===`paragraph`))r=n(e.tokens);else{let i=e.tokens[0];if(i&&i.type===`text`&&i.tokens&&i.tokens.length>0){if(r=[{type:`paragraph`,content:t.parseInline(i.tokens)}],e.tokens.length>1){let t=n(e.tokens.slice(1));r.push(...t)}}else r=n(e.tokens)}}return r.length===0&&(r=[{type:`paragraph`,content:[]}]),{type:`listItem`,content:r}},renderMarkdown:(e,t,n)=>Hd(e,t,e=>e.parentType===`bulletList`?`- `:e.parentType===`orderedList`?`${(e.meta?.parentAttrs?.start||1)+e.index}. `:`- `,n),addExtensions(){return[dg(this.name,[this.options.bulletListTypeName,this.options.orderedListTypeName])]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}});rg({},{findListItemPos:()=>hg,getNextListDepth:()=>gg,handleBackspace:()=>vg,handleDelete:()=>xg,hasListBefore:()=>_g,hasListItemAfter:()=>Sg,hasListItemBefore:()=>Cg,listItemHasSubList:()=>wg,nextListIsDeeper:()=>yg,nextListIsHigher:()=>bg});var hg=(e,t)=>{let{$from:n}=t.selection,r=z(e,t.schema),i=null,a=n.depth,o=n.pos,s=null;for(;a>0&&s===null;)i=n.node(a),i.type===r?s=a:(--a,--o);return s===null?null:{$pos:t.doc.resolve(o),depth:s}},gg=(e,t)=>{let n=hg(e,t);if(!n)return!1;let[,r]=su(t,e,n.$pos.pos+4);return r},_g=(e,t,n)=>{let{$anchor:r}=e.selection,i=Math.max(0,r.pos-2),a=e.doc.resolve(i).node();return!(!a||!n.includes(a.type.name))},vg=(e,t,n)=>{if(e.commands.undoInputRule())return!0;if(e.state.selection.from!==e.state.selection.to)return!1;if(!dl(e.state,t)&&_g(e.state,t,n)){let{$anchor:n}=e.state.selection,r=e.state.doc.resolve(n.before()-1),i=[];r.node().descendants((e,n)=>{e.type.name===t&&i.push({node:e,pos:n})});let a=i.at(-1);if(!a)return!1;let o=e.state.doc.resolve(r.start()+a.pos+1);return e.chain().cut({from:n.start()-1,to:n.end()+1},o.end()).joinForward().run()}return!dl(e.state,t)||!mu(e.state)?!1:e.chain().liftListItem(t).run()},yg=(e,t)=>{let n=gg(e,t),r=hg(e,t);return!r||!n?!1:n>r.depth},bg=(e,t)=>{let n=gg(e,t),r=hg(e,t);return!r||!n?!1:n<r.depth},xg=(e,t)=>{if(!dl(e.state,t)||!pu(e.state,t))return!1;let{selection:n}=e.state,{$from:r,$to:i}=n;return!n.empty&&r.sameParent(i)?!1:yg(t,e.state)?e.chain().focus(e.state.selection.from+4).lift(t).joinBackward().run():bg(t,e.state)?e.chain().joinForward().joinBackward().run():e.commands.joinItemForward()},Sg=(e,t)=>{let{$anchor:n}=t.selection,r=t.doc.resolve(n.pos-n.parentOffset-2);return!(r.index()===r.parent.childCount-1||r.nodeAfter?.type.name!==e)},Cg=(e,t)=>{let{$anchor:n}=t.selection,r=t.doc.resolve(n.pos-2);return!(r.index()===0||r.nodeBefore?.type.name!==e)},wg=(e,t,n)=>{if(!n)return!1;let r=z(e,t.schema),i=!1;return n.descendants(e=>{e.type===r&&(i=!0)}),i},Tg=U.create({name:`listKeymap`,addOptions(){return{listTypes:[{itemName:`listItem`,wrapperNames:[`bulletList`,`orderedList`]},{itemName:`taskItem`,wrapperNames:[`taskList`]}]}},addKeyboardShortcuts(){return{Delete:({editor:e})=>{let t=!1;return this.options.listTypes.forEach(({itemName:n})=>{e.state.schema.nodes[n]!==void 0&&xg(e,n)&&(t=!0)}),t},"Mod-Delete":({editor:e})=>{let t=!1;return this.options.listTypes.forEach(({itemName:n})=>{e.state.schema.nodes[n]!==void 0&&xg(e,n)&&(t=!0)}),t},Backspace:({editor:e})=>{let t=!1;return this.options.listTypes.forEach(({itemName:n,wrapperNames:r})=>{e.state.schema.nodes[n]!==void 0&&vg(e,n,r)&&(t=!0)}),t},"Mod-Backspace":({editor:e})=>{let t=!1;return this.options.listTypes.forEach(({itemName:n,wrapperNames:r})=>{e.state.schema.nodes[n]!==void 0&&vg(e,n,r)&&(t=!0)}),t}}}}),Eg=/^(\s*)(\d+)\.\s+(.*)$/,Dg=/^\s/;function Og(e){let t=e.trimStart();return/^[-+*]\s+/.test(t)||/^\d+\.\s+/.test(t)||/^>\s?/.test(t)||/^```/.test(t)||/^~~~/.test(t)}function kg(e){let t=[],n=[],r=!1;return e.forEach(e=>{if(r){n.push(e);return}if(e.trim()===``){r=!0,n.push(e);return}if(t.length>0&&Og(e)){r=!0,n.push(e);return}t.push(e)}),{paragraphLines:t,blockLines:n}}function Ag(e){let t=[],n=0,r=0;for(;n<e.length;){let i=e[n],a=i.match(Eg);if(!a)break;let[,o,s,c]=a,l=o.length,u=[c],d=n+1,f=[i],p=!1;for(;d<e.length;){let t=e[d];if(t.match(Eg))break;if(t.trim()===``)f.push(t),u.push(``),p=!0,d+=1;else if(t.match(Dg))f.push(t),u.push(t.slice(l+2)),d+=1;else{if(p)break;f.push(t),u.push(t),d+=1}}t.push({indent:l,number:parseInt(s,10),content:u.join(`
|
|
136
|
+
`).trim(),contentLines:u,raw:f.join(`
|
|
137
|
+
`)}),r=d,n=d}return[t,r]}function jg(e,t,n){let r=[],i=0;for(;i<e.length;){let a=e[i];if(a.indent===t){let{paragraphLines:o,blockLines:s}=kg(a.contentLines),c=o.join(`
|
|
138
|
+
`).trim(),l=[];c&&l.push({type:`paragraph`,raw:c,tokens:n.inlineTokens(c)});let u=s.join(`
|
|
139
|
+
`).trim();if(u){let e=n.blockTokens(u);l.push(...e)}let d=i+1,f=[];for(;d<e.length&&e[d].indent>t;)f.push(e[d]),d+=1;if(f.length>0){let e=jg(f,Math.min(...f.map(e=>e.indent)),n);l.push({type:`list`,ordered:!0,start:f[0].number,items:e,raw:f.map(e=>e.raw).join(`
|
|
140
|
+
`)})}r.push({type:`list_item`,raw:a.raw,tokens:l}),i=d}else i+=1}return r}function Mg(e,t){return e.map(e=>{if(e.type!==`list_item`)return t.parseChildren([e])[0];let n=[];return e.tokens&&e.tokens.length>0&&e.tokens.forEach(e=>{if(e.type===`paragraph`||e.type===`list`||e.type===`blockquote`||e.type===`code`)n.push(...t.parseChildren([e]));else if(e.type===`text`&&e.tokens){let r=t.parseChildren([e]);n.push({type:`paragraph`,content:r})}else{let r=t.parseChildren([e]);r.length>0&&n.push(...r)}}),{type:`listItem`,content:n}})}var Ng=`listItem`,Pg=`textStyle`,Fg=/^(\d+)\.\s$/,Ig=W.create({name:`orderedList`,addOptions(){return{itemTypeName:`listItem`,HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:`block list`,content(){return`${this.options.itemTypeName}+`},addAttributes(){return{start:{default:1,parseHTML:e=>e.hasAttribute(`start`)?parseInt(e.getAttribute(`start`)||``,10):1},type:{default:null,parseHTML:e=>e.getAttribute(`type`)}}},parseHTML(){return[{tag:`ol`}]},renderHTML({HTMLAttributes:e}){let{start:t,...n}=e;return t===1?[`ol`,H(this.options.HTMLAttributes,n),0]:[`ol`,H(this.options.HTMLAttributes,e),0]},markdownTokenName:`list`,parseMarkdown:(e,t)=>{if(e.type!==`list`||!e.ordered)return[];let n=e.start||1,r=e.items?Mg(e.items,t):[];return n===1?{type:`orderedList`,content:r}:{type:`orderedList`,attrs:{start:n},content:r}},renderMarkdown:(e,t)=>e.content?t.renderChildren(e.content,`
|
|
141
|
+
`):``,markdownTokenizer:{name:`orderedList`,level:`block`,start:e=>{let t=e.match(/^(\s*)(\d+)\.\s+/)?.index;return t===void 0?-1:t},tokenize:(e,t,n)=>{let r=e.split(`
|
|
142
|
+
`),[i,a]=Ag(r);if(i.length===0)return;let o=jg(i,0,n);if(o.length!==0)return{type:`list`,ordered:!0,start:i[0]?.number||1,items:o,raw:r.slice(0,a).join(`
|
|
143
|
+
`)}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleOrderedList:()=>({commands:e,chain:t})=>this.options.keepAttributes?t().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(Ng,this.editor.getAttributes(Pg)).run():e.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addInputRules(){let e=kd({find:Fg,type:this.type,getAttributes:e=>({start:+e[1]}),joinPredicate:(e,t)=>t.childCount+t.attrs.start===+e[1]});return(this.options.keepMarks||this.options.keepAttributes)&&(e=kd({find:Fg,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:e=>({start:+e[1],...this.editor.getAttributes(Pg)}),joinPredicate:(e,t)=>t.childCount+t.attrs.start===+e[1],editor:this.editor})),[e]}}),Lg=/^\s*(\[([( |x])?\])\s$/,Rg=W.create({name:`taskItem`,addOptions(){return{nested:!1,HTMLAttributes:{},taskListTypeName:`taskList`,a11y:void 0}},content(){return this.options.nested?`paragraph block*`:`paragraph+`},defining:!0,addAttributes(){return{checked:{default:!1,keepOnSplit:!1,parseHTML:e=>{let t=e.getAttribute(`data-checked`);return t===``||t===`true`},renderHTML:e=>({"data-checked":e.checked})}}},parseHTML(){return[{tag:`li[data-type="${this.name}"]`,priority:51}]},renderHTML({node:e,HTMLAttributes:t}){return[`li`,H(this.options.HTMLAttributes,t,{"data-type":this.name}),[`label`,[`input`,{type:`checkbox`,checked:e.attrs.checked?`checked`:null}],[`span`]],[`div`,0]]},parseMarkdown:(e,t)=>{let n=[];if(e.tokens&&e.tokens.length>0?n.push(t.createNode(`paragraph`,{},t.parseInline(e.tokens))):e.text?n.push(t.createNode(`paragraph`,{},[t.createNode(`text`,{text:e.text})])):n.push(t.createNode(`paragraph`,{},[])),e.nestedTokens&&e.nestedTokens.length>0){let r=t.parseChildren(e.nestedTokens);n.push(...r)}return t.createNode(`taskItem`,{checked:e.checked||!1},n)},renderMarkdown:(e,t)=>Hd(e,t,`- [${e.attrs?.checked?`x`:` `}] `),addExtensions(){return this.options.nested?[dg(this.name,[this.options.taskListTypeName])]:[]},addKeyboardShortcuts(){let e={Enter:()=>this.editor.commands.splitListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)};return this.options.nested?{...e,Tab:()=>this.editor.commands.sinkListItem(this.name)}:e},addNodeView(){return({node:e,HTMLAttributes:t,getPos:n,editor:r})=>{let i=document.createElement(`li`),a=document.createElement(`label`),o=document.createElement(`span`),s=document.createElement(`input`),c=document.createElement(`div`),l=e=>{var t;s.ariaLabel=((t=this.options.a11y)?.checkboxLabel)?.call(t,e,s.checked)||`Task item checkbox for ${e.textContent||`empty task item`}`};l(e),a.contentEditable=`false`,s.type=`checkbox`,s.addEventListener(`mousedown`,e=>e.preventDefault()),s.addEventListener(`change`,t=>{if(!r.isEditable&&!this.options.onReadOnlyChecked){s.checked=!s.checked;return}let{checked:i}=t.target;r.isEditable&&typeof n==`function`&&r.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:e})=>{let t=n();if(typeof t!=`number`)return!1;let r=e.doc.nodeAt(t);return e.setNodeMarkup(t,void 0,{...r?.attrs,checked:i}),!0}).run(),!r.isEditable&&this.options.onReadOnlyChecked&&(this.options.onReadOnlyChecked(e,i)||(s.checked=!s.checked))}),Object.entries(this.options.HTMLAttributes).forEach(([e,t])=>{i.setAttribute(e,t)}),i.dataset.checked=e.attrs.checked,s.checked=e.attrs.checked,a.append(s,o),i.append(a,c),Object.entries(t).forEach(([e,t])=>{i.setAttribute(e,t)});let u=new Set(Object.keys(t));return{dom:i,contentDOM:c,update:e=>{if(e.type!==this.type)return!1;i.dataset.checked=e.attrs.checked,s.checked=e.attrs.checked,l(e);let t=r.extensionManager.attributes,n=Ul(e,t),a=new Set(Object.keys(n)),o=this.options.HTMLAttributes;return u.forEach(e=>{a.has(e)||(e in o?i.setAttribute(e,o[e]):i.removeAttribute(e))}),Object.entries(n).forEach(([e,t])=>{t==null?e in o?i.setAttribute(e,o[e]):i.removeAttribute(e):i.setAttribute(e,t)}),u=a,!0}}}},addInputRules(){return[kd({find:Lg,type:this.type,getAttributes:e=>({checked:e[e.length-1]===`x`})})]}}),zg=W.create({name:`taskList`,addOptions(){return{itemTypeName:`taskItem`,HTMLAttributes:{}}},group:`block list`,content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type="${this.name}"]`,priority:51}]},renderHTML({HTMLAttributes:e}){return[`ul`,H(this.options.HTMLAttributes,e,{"data-type":this.name}),0]},parseMarkdown:(e,t)=>t.createNode(`taskList`,{},t.parseChildren(e.items||[])),renderMarkdown:(e,t)=>e.content?t.renderChildren(e.content,`
|
|
144
|
+
`):``,markdownTokenizer:{name:`taskList`,level:`block`,start(e){let t=e.match(/^\s*[-+*]\s+\[([ xX])\]\s+/)?.index;return t===void 0?-1:t},tokenize(e,t,n){let r=e=>{let t=Vd(e,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:e=>({indentLevel:e[1].length,mainContent:e[4],checked:e[3].toLowerCase()===`x`}),createToken:(e,t)=>({type:`taskItem`,raw:``,mainContent:e.mainContent,indentLevel:e.indentLevel,checked:e.checked,text:e.mainContent,tokens:n.inlineTokens(e.mainContent),nestedTokens:t}),customNestedParser:r},n);return t?[{type:`taskList`,raw:t.raw,items:t.items}]:n.blockTokens(e)},i=Vd(e,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:e=>({indentLevel:e[1].length,mainContent:e[4],checked:e[3].toLowerCase()===`x`}),createToken:(e,t)=>({type:`taskItem`,raw:``,mainContent:e.mainContent,indentLevel:e.indentLevel,checked:e.checked,text:e.mainContent,tokens:n.inlineTokens(e.mainContent),nestedTokens:t}),customNestedParser:r},n);if(i)return{type:`taskList`,raw:i.raw,items:i.items}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleTaskList:()=>({commands:e})=>e.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}});U.create({name:`listKit`,addExtensions(){let e=[];return this.options.bulletList!==!1&&e.push(sg.configure(this.options.bulletList)),this.options.listItem!==!1&&e.push(mg.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(Tg.configure(this.options.listKeymap)),this.options.orderedList!==!1&&e.push(Ig.configure(this.options.orderedList)),this.options.taskItem!==!1&&e.push(Rg.configure(this.options.taskItem)),this.options.taskList!==!1&&e.push(zg.configure(this.options.taskList)),e}});var Bg=` `,Vg=`\xA0`,Hg=W.create({name:`paragraph`,priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:`block`,content:`inline*`,parseHTML(){return[{tag:`p`}]},renderHTML({HTMLAttributes:e}){return[`p`,H(this.options.HTMLAttributes,e),0]},parseMarkdown:(e,t)=>{let n=e.tokens||[];if(n.length===1&&n[0].type===`image`)return t.parseChildren([n[0]]);let r=t.parseInline(n);return n.length===1&&n[0].type===`text`&&(n[0].raw===Bg||n[0].text===Bg||n[0].raw===Vg||n[0].text===Vg)&&r.length===1&&r[0].type===`text`&&(r[0].text===Bg||r[0].text===Vg)?t.createNode(`paragraph`,void 0,[]):t.createNode(`paragraph`,void 0,r)},renderMarkdown:(e,t,n)=>{if(!e)return``;let r=Array.isArray(e.content)?e.content:[];if(r.length===0){let e=Array.isArray(n?.previousNode?.content)?n.previousNode.content:[];return n?.previousNode?.type===`paragraph`&&e.length===0?Bg:``}return t.renderChildren(r)},addCommands(){return{setParagraph:()=>({commands:e})=>e.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),Ug=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,Wg=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,Gg=nd.create({name:`strike`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`s`},{tag:`del`},{tag:`strike`},{style:`text-decoration`,consuming:!1,getAttrs:e=>e.includes(`line-through`)?{}:!1}]},renderHTML({HTMLAttributes:e}){return[`s`,H(this.options.HTMLAttributes,e),0]},markdownTokenName:`del`,parseMarkdown:(e,t)=>t.applyMark(`strike`,t.parseInline(e.tokens||[])),renderMarkdown:(e,t)=>`~~${t.renderChildren(e)}~~`,addCommands(){return{setStrike:()=>({commands:e})=>e.setMark(this.name),toggleStrike:()=>({commands:e})=>e.toggleMark(this.name),unsetStrike:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-s":()=>this.editor.commands.toggleStrike()}},addInputRules(){return[Ed({find:Ug,type:this.type})]},addPasteRules(){return[Wd({find:Wg,type:this.type})]}}),Kg=W.create({name:`text`,group:`inline`,parseMarkdown:e=>({type:`text`,text:e.text||``}),renderMarkdown:e=>e.text||``}),qg=nd.create({name:`underline`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`u`},{style:`text-decoration`,consuming:!1,getAttrs:e=>e.includes(`underline`)?{}:!1}]},renderHTML({HTMLAttributes:e}){return[`u`,H(this.options.HTMLAttributes,e),0]},parseMarkdown(e,t){return t.applyMark(this.name||`underline`,t.parseInline(e.tokens||[]))},renderMarkdown(e,t){return`++${t.renderChildren(e)}++`},markdownTokenizer:{name:`underline`,level:`inline`,start(e){return e.indexOf(`++`)},tokenize(e,t,n){let r=/^(\+\+)([\s\S]+?)(\+\+)/.exec(e);if(!r)return;let i=r[2].trim();return{type:`underline`,raw:r[0],text:i,tokens:n.inlineTokens(i)}}},addCommands(){return{setUnderline:()=>({commands:e})=>e.setMark(this.name),toggleUnderline:()=>({commands:e})=>e.toggleMark(this.name),unsetUnderline:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}});function Jg(e={}){return new I({view(t){return new Yg(t,e)}})}var Yg=class{constructor(e,t){this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=t.width??1,this.color=t.color===!1?void 0:t.color||`black`,this.class=t.class,this.handlers=[`dragover`,`dragend`,`drop`,`dragleave`].map(t=>{let n=e=>{this[t](e)};return e.dom.addEventListener(t,n),{name:t,handler:n}})}destroy(){this.handlers.forEach(({name:e,handler:t})=>this.editorView.dom.removeEventListener(e,t))}update(e,t){this.cursorPos!=null&&t.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),t=!e.parent.inlineContent,n,r=this.editorView.dom,i=r.getBoundingClientRect(),a=i.width/r.offsetWidth,o=i.height/r.offsetHeight;if(t){let t=e.nodeBefore,r=e.nodeAfter;if(t||r){let e=this.editorView.nodeDOM(this.cursorPos-(t?t.nodeSize:0));if(e){let i=e.getBoundingClientRect(),a=t?i.bottom:i.top;t&&r&&(a=(a+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2);let s=this.width/2*o;n={left:i.left,right:i.right,top:a-s,bottom:a+s}}}}if(!n){let e=this.editorView.coordsAtPos(this.cursorPos),t=this.width/2*a;n={left:e.left-t,right:e.left+t,top:e.top,bottom:e.bottom}}let s=this.editorView.dom.offsetParent;this.element||(this.element=s.appendChild(document.createElement(`div`)),this.class&&(this.element.className=this.class),this.element.style.cssText=`position: absolute; z-index: 50; pointer-events: none;`,this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle(`prosemirror-dropcursor-block`,t),this.element.classList.toggle(`prosemirror-dropcursor-inline`,!t);let c,l;if(!s||s==document.body&&getComputedStyle(s).position==`static`)c=-pageXOffset,l=-pageYOffset;else{let e=s.getBoundingClientRect(),t=e.width/s.offsetWidth,n=e.height/s.offsetHeight;c=e.left-s.scrollLeft*t,l=e.top-s.scrollTop*n}this.element.style.left=(n.left-c)/a+`px`,this.element.style.top=(n.top-l)/o+`px`,this.element.style.width=(n.right-n.left)/a+`px`,this.element.style.height=(n.bottom-n.top)/o+`px`}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}dragover(e){if(!this.editorView.editable)return;let t=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),n=t&&t.inside>=0&&this.editorView.state.doc.nodeAt(t.inside),r=n&&n.type.spec.disableDropCursor,i=typeof r==`function`?r(this.editorView,t,e):r;if(t&&!i){let e=t.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let t=Jt(this.editorView.state.doc,e,this.editorView.dragging.slice);t!=null&&(e=t)}this.setCursor(e),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}},Xg=class e extends N{constructor(e){super(e,e)}map(t,n){let r=t.resolve(n.map(this.head));return e.valid(r)?new e(r):N.near(r)}content(){return y.empty}eq(t){return t instanceof e&&t.head==this.head}toJSON(){return{type:`gapcursor`,pos:this.head}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for GapCursor.fromJSON`);return new e(t.resolve(n.pos))}getBookmark(){return new Zg(this.anchor)}static valid(e){let t=e.parent;if(t.inlineContent||!$g(e)||!e_(e))return!1;let n=t.type.spec.allowGapCursor;if(n!=null)return n;let r=t.contentMatchAt(e.index()).defaultType;return r&&r.isTextblock}static findGapCursorFrom(t,n,r=!1){search:for(;;){if(!r&&e.valid(t))return t;let i=t.pos,a=null;for(let r=t.depth;;r--){let o=t.node(r);if(n>0?t.indexAfter(r)<o.childCount:t.index(r)>0){a=o.child(n>0?t.indexAfter(r):t.index(r)-1);break}else if(r==0)return null;i+=n;let s=t.doc.resolve(i);if(e.valid(s))return s}for(;;){let o=n>0?a.firstChild:a.lastChild;if(!o){if(a.isAtom&&!a.isText&&!F.isSelectable(a)){t=t.doc.resolve(i+a.nodeSize*n),r=!1;continue search}break}a=o,i+=n;let s=t.doc.resolve(i);if(e.valid(s))return s}return null}}};Xg.prototype.visible=!1,Xg.findFrom=Xg.findGapCursorFrom,N.jsonID(`gapcursor`,Xg);var Zg=class e{constructor(e){this.pos=e}map(t){return new e(t.map(this.pos))}resolve(e){let t=e.resolve(this.pos);return Xg.valid(t)?new Xg(t):N.near(t)}};function Qg(e){return e.isAtom||e.spec.isolating||e.spec.createGapCursor}function $g(e){for(let t=e.depth;t>=0;t--){let n=e.index(t),r=e.node(t);if(n==0){if(r.type.spec.isolating)return!0;continue}for(let e=r.child(n-1);;e=e.lastChild){if(e.childCount==0&&!e.inlineContent||Qg(e.type))return!0;if(e.inlineContent)return!1}}return!0}function e_(e){for(let t=e.depth;t>=0;t--){let n=e.indexAfter(t),r=e.node(t);if(n==r.childCount){if(r.type.spec.isolating)return!0;continue}for(let e=r.child(n);;e=e.firstChild){if(e.childCount==0&&!e.inlineContent||Qg(e.type))return!0;if(e.inlineContent)return!1}}return!0}function t_(){return new I({props:{decorations:o_,createSelectionBetween(e,t,n){return t.pos==n.pos&&Xg.valid(n)?new Xg(n):null},handleClick:i_,handleKeyDown:n_,handleDOMEvents:{beforeinput:a_}}})}var n_=uc({ArrowLeft:r_(`horiz`,-1),ArrowRight:r_(`horiz`,1),ArrowUp:r_(`vert`,-1),ArrowDown:r_(`vert`,1)});function r_(e,t){let n=e==`vert`?t>0?`down`:`up`:t>0?`right`:`left`;return function(e,r,i){let a=e.selection,o=t>0?a.$to:a.$from,s=a.empty;if(a instanceof P){if(!i.endOfTextblock(n)||o.depth==0)return!1;s=!1,o=e.doc.resolve(t>0?o.after():o.before())}let c=Xg.findGapCursorFrom(o,t,s);return c?(r&&r(e.tr.setSelection(new Xg(c))),!0):!1}}function i_(e,t,n){if(!e||!e.editable)return!1;let r=e.state.doc.resolve(t);if(!Xg.valid(r))return!1;let i=e.posAtCoords({left:n.clientX,top:n.clientY});return i&&i.inside>-1&&F.isSelectable(e.state.doc.nodeAt(i.inside))?!1:(e.dispatch(e.state.tr.setSelection(new Xg(r))),!0)}function a_(e,t){if(t.inputType!=`insertCompositionText`||!(e.state.selection instanceof Xg))return!1;let{$from:n}=e.state.selection,r=n.parent.contentMatchAt(n.index()).findWrapping(e.state.schema.nodes.text);if(!r)return!1;let i=p.empty;for(let e=r.length-1;e>=0;e--)i=p.from(r[e].createAndFill(null,i));let a=e.state.tr.replace(n.pos,n.pos,new y(i,0,0));return a.setSelection(P.near(a.doc.resolve(n.pos+1))),e.dispatch(a),!1}function o_(e){if(!(e.selection instanceof Xg))return null;let t=document.createElement(`div`);return t.className=`ProseMirror-gapcursor`,R.create(e.doc,[ss.widget(e.selection.head,t,{key:`gapcursor`})])}var s_=200,c_=function(){};c_.prototype.append=function(e){return e.length?(e=c_.from(e),!this.length&&e||e.length<s_&&this.leafAppend(e)||this.length<s_&&e.leafPrepend(this)||this.appendInner(e)):this},c_.prototype.prepend=function(e){return e.length?c_.from(e).append(this):this},c_.prototype.appendInner=function(e){return new u_(this,e)},c_.prototype.slice=function(e,t){return e===void 0&&(e=0),t===void 0&&(t=this.length),e>=t?c_.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},c_.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},c_.prototype.forEach=function(e,t,n){t===void 0&&(t=0),n===void 0&&(n=this.length),t<=n?this.forEachInner(e,t,n,0):this.forEachInvertedInner(e,t,n,0)},c_.prototype.map=function(e,t,n){t===void 0&&(t=0),n===void 0&&(n=this.length);var r=[];return this.forEach(function(t,n){return r.push(e(t,n))},t,n),r},c_.from=function(e){return e instanceof c_?e:e&&e.length?new l_(e):c_.empty};var l_=function(e){function t(t){e.call(this),this.values=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={length:{configurable:!0},depth:{configurable:!0}};return t.prototype.flatten=function(){return this.values},t.prototype.sliceInner=function(e,n){return e==0&&n==this.length?this:new t(this.values.slice(e,n))},t.prototype.getInner=function(e){return this.values[e]},t.prototype.forEachInner=function(e,t,n,r){for(var i=t;i<n;i++)if(e(this.values[i],r+i)===!1)return!1},t.prototype.forEachInvertedInner=function(e,t,n,r){for(var i=t-1;i>=n;i--)if(e(this.values[i],r+i)===!1)return!1},t.prototype.leafAppend=function(e){if(this.length+e.length<=s_)return new t(this.values.concat(e.flatten()))},t.prototype.leafPrepend=function(e){if(this.length+e.length<=s_)return new t(e.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(t.prototype,n),t}(c_);c_.empty=new l_([]);var u_=function(e){function t(t,n){e.call(this),this.left=t,this.right=n,this.length=t.length+n.length,this.depth=Math.max(t.depth,n.depth)+1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},t.prototype.getInner=function(e){return e<this.left.length?this.left.get(e):this.right.get(e-this.left.length)},t.prototype.forEachInner=function(e,t,n,r){var i=this.left.length;if(t<i&&this.left.forEachInner(e,t,Math.min(n,i),r)===!1||n>i&&this.right.forEachInner(e,Math.max(t-i,0),Math.min(this.length,n)-i,r+i)===!1)return!1},t.prototype.forEachInvertedInner=function(e,t,n,r){var i=this.left.length;if(t>i&&this.right.forEachInvertedInner(e,t-i,Math.max(n,i)-i,r+i)===!1||n<i&&this.left.forEachInvertedInner(e,Math.min(t,i),n,r)===!1)return!1},t.prototype.sliceInner=function(e,t){if(e==0&&t==this.length)return this;var n=this.left.length;return t<=n?this.left.slice(e,t):e>=n?this.right.slice(e-n,t-n):this.left.slice(e,n).append(this.right.slice(0,t-n))},t.prototype.leafAppend=function(e){var n=this.right.leafAppend(e);if(n)return new t(this.left,n)},t.prototype.leafPrepend=function(e){var n=this.left.leafPrepend(e);if(n)return new t(n,this.right)},t.prototype.appendInner=function(e){return this.left.depth>=Math.max(this.right.depth,e.depth)+1?new t(this.left,new t(this.right,e)):new t(this,e)},t}(c_),d_=500,f_=class e{constructor(e,t){this.items=e,this.eventCount=t}popEvent(t,n){if(this.eventCount==0)return null;let r=this.items.length;for(;;r--)if(this.items.get(r-1).selection){--r;break}let i,a;n&&(i=this.remapping(r,this.items.length),a=i.maps.length);let o=t.tr,s,c,l=[],u=[];return this.items.forEach((t,n)=>{if(!t.step){i||(i=this.remapping(r,n+1),a=i.maps.length),a--,u.push(t);return}if(i){u.push(new m_(t.map));let e=t.step.map(i.slice(a)),n;e&&o.maybeStep(e).doc&&(n=o.mapping.maps[o.mapping.maps.length-1],l.push(new m_(n,void 0,void 0,l.length+u.length))),a--,n&&i.appendMap(n,a)}else o.maybeStep(t.step);if(t.selection)return s=i?t.selection.map(i.slice(a)):t.selection,c=new e(this.items.slice(0,r).append(u.reverse().concat(l)),this.eventCount-1),!1},this.items.length,0),{remaining:c,transform:o,selection:s}}addTransform(t,n,r,i){let a=[],o=this.eventCount,s=this.items,c=!i&&s.length?s.get(s.length-1):null;for(let e=0;e<t.steps.length;e++){let r=t.steps[e].invert(t.docs[e]),l=new m_(t.mapping.maps[e],r,n),u;(u=c&&c.merge(l))&&(l=u,e?a.pop():s=s.slice(0,s.length-1)),a.push(l),n&&=(o++,void 0),i||(c=l)}let l=o-r.depth;return l>g_&&(s=p_(s,l),o-=l),new e(s.append(a),o)}remapping(e,t){let n=new ft;return this.items.forEach((t,r)=>{let i=t.mirrorOffset!=null&&r-t.mirrorOffset>=e?n.maps.length-t.mirrorOffset:void 0;n.appendMap(t.map,i)},e,t),n}addMaps(t){return this.eventCount==0?this:new e(this.items.append(t.map(e=>new m_(e))),this.eventCount)}rebased(t,n){if(!this.eventCount)return this;let r=[],i=Math.max(0,this.items.length-n),a=t.mapping,o=t.steps.length,s=this.eventCount;this.items.forEach(e=>{e.selection&&s--},i);let c=n;this.items.forEach(e=>{let n=a.getMirror(--c);if(n==null)return;o=Math.min(o,n);let i=a.maps[n];if(e.step){let o=t.steps[n].invert(t.docs[n]),l=e.selection&&e.selection.map(a.slice(c+1,n));l&&s++,r.push(new m_(i,o,l))}else r.push(new m_(i))},i);let l=[];for(let e=n;e<o;e++)l.push(new m_(a.maps[e]));let u=new e(this.items.slice(0,i).append(l).append(r),s);return u.emptyItemCount()>d_&&(u=u.compress(this.items.length-r.length)),u}emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}compress(t=this.items.length){let n=this.remapping(0,t),r=n.maps.length,i=[],a=0;return this.items.forEach((e,o)=>{if(o>=t)i.push(e),e.selection&&a++;else if(e.step){let t=e.step.map(n.slice(r)),o=t&&t.getMap();if(r--,o&&n.appendMap(o,r),t){let s=e.selection&&e.selection.map(n.slice(r));s&&a++;let c=new m_(o.invert(),t,s),l,u=i.length-1;(l=i.length&&i[u].merge(c))?i[u]=l:i.push(c)}}else e.map&&r--},this.items.length,0),new e(c_.from(i.reverse()),a)}};f_.empty=new f_(c_.empty,0);function p_(e,t){let n;return e.forEach((e,r)=>{if(e.selection&&t--==0)return n=r,!1}),e.slice(n)}var m_=class e{constructor(e,t,n,r){this.map=e,this.step=t,this.selection=n,this.mirrorOffset=r}merge(t){if(this.step&&t.step&&!t.selection){let n=t.step.merge(this.step);if(n)return new e(n.getMap().invert(),n,this.selection)}}},h_=class{constructor(e,t,n,r,i){this.done=e,this.undone=t,this.prevRanges=n,this.prevTime=r,this.prevComposition=i}},g_=20;function __(e,t,n,r){let i=n.getMeta(T_),a;if(i)return i.historyState;n.getMeta(E_)&&(e=new h_(e.done,e.undone,null,0,-1));let o=n.getMeta(`appendedTransaction`);if(n.steps.length==0)return e;if(o&&o.getMeta(T_))return o.getMeta(T_).redo?new h_(e.done.addTransform(n,void 0,r,w_(t)),e.undone,y_(n.mapping.maps),e.prevTime,e.prevComposition):new h_(e.done,e.undone.addTransform(n,void 0,r,w_(t)),null,e.prevTime,e.prevComposition);if(n.getMeta(`addToHistory`)!==!1&&!(o&&o.getMeta(`addToHistory`)===!1)){let i=n.getMeta(`composition`),a=e.prevTime==0||!o&&e.prevComposition!=i&&(e.prevTime<(n.time||0)-r.newGroupDelay||!v_(n,e.prevRanges)),s=o?b_(e.prevRanges,n.mapping):y_(n.mapping.maps);return new h_(e.done.addTransform(n,a?t.selection.getBookmark():void 0,r,w_(t)),f_.empty,s,n.time,i??e.prevComposition)}else if(a=n.getMeta(`rebased`))return new h_(e.done.rebased(n,a),e.undone.rebased(n,a),b_(e.prevRanges,n.mapping),e.prevTime,e.prevComposition);else return new h_(e.done.addMaps(n.mapping.maps),e.undone.addMaps(n.mapping.maps),b_(e.prevRanges,n.mapping),e.prevTime,e.prevComposition)}function v_(e,t){if(!t)return!1;if(!e.docChanged)return!0;let n=!1;return e.mapping.maps[0].forEach((e,r)=>{for(let i=0;i<t.length;i+=2)e<=t[i+1]&&r>=t[i]&&(n=!0)}),n}function y_(e){let t=[];for(let n=e.length-1;n>=0&&t.length==0;n--)e[n].forEach((e,n,r,i)=>t.push(r,i));return t}function b_(e,t){if(!e)return null;let n=[];for(let r=0;r<e.length;r+=2){let i=t.map(e[r],1),a=t.map(e[r+1],-1);i<=a&&n.push(i,a)}return n}function x_(e,t,n){let r=w_(t),i=T_.get(t).spec.config,a=(n?e.undone:e.done).popEvent(t,r);if(!a)return null;let o=a.selection.resolve(a.transform.doc),s=(n?e.done:e.undone).addTransform(a.transform,t.selection.getBookmark(),i,r),c=new h_(n?s:a.remaining,n?a.remaining:s,null,0,-1);return a.transform.setSelection(o).setMeta(T_,{redo:n,historyState:c})}var S_=!1,C_=null;function w_(e){let t=e.plugins;if(C_!=t){S_=!1,C_=t;for(let e=0;e<t.length;e++)if(t[e].spec.historyPreserveItems){S_=!0;break}}return S_}var T_=new L(`history`),E_=new L(`closeHistory`);function D_(e={}){return e={depth:e.depth||100,newGroupDelay:e.newGroupDelay||500},new I({key:T_,state:{init(){return new h_(f_.empty,f_.empty,null,0,-1)},apply(t,n,r){return __(n,r,t,e)}},config:e,props:{handleDOMEvents:{beforeinput(e,t){let n=t.inputType,r=n==`historyUndo`?k_:n==`historyRedo`?A_:null;return!r||!e.editable?!1:(t.preventDefault(),r(e.state,e.dispatch))}}}})}function O_(e,t){return(n,r)=>{let i=T_.getState(n);if(!i||(e?i.undone:i.done).eventCount==0)return!1;if(r){let a=x_(i,n,e);a&&r(t?a.scrollIntoView():a)}return!0}}var k_=O_(!1,!0),A_=O_(!0,!0),j_=U.create({name:`characterCount`,addOptions(){return{limit:null,autoTrim:!0,mode:`textSize`,textCounter:e=>e.length,wordCounter:e=>e.split(` `).filter(e=>e!==``).length}},addStorage(){return{characters:()=>0,words:()=>0}},onBeforeCreate(){this.storage.characters=e=>{let t=e?.node||this.editor.state.doc;if((e?.mode||this.options.mode)===`textSize`){let e=t.textBetween(0,t.content.size,void 0,` `);return this.options.textCounter(e)}return t.nodeSize},this.storage.words=e=>{let t=e?.node||this.editor.state.doc,n=t.textBetween(0,t.content.size,` `,` `);return this.options.wordCounter(n)}},addProseMirrorPlugins(){let e=!1;return[new I({key:new L(`characterCount`),appendTransaction:(t,n,r)=>{if(e)return;let i=this.options.limit,a=this.options.autoTrim;if(i==null||i===0||a===!1){e=!0;return}let o=this.storage.characters({node:r.doc});if(o>i){let t=o-i;console.warn(`[CharacterCount] Initial content exceeded limit of ${i} characters. Content was automatically trimmed.`);let n=r.tr.deleteRange(0,t);return e=!0,n}e=!0},filterTransaction:(e,t)=>{let n=this.options.limit;if(!e.docChanged||n===0||n==null)return!0;let r=this.storage.characters({node:t.doc}),i=this.storage.characters({node:e.doc});if(i<=n||r>n&&i>n&&i<=r)return!0;if(r>n&&i>n&&i>r||!e.getMeta(`paste`))return!1;let a=e.selection.$head.pos,o=a-(i-n),s=a;return e.deleteRange(o,s),!(this.storage.characters({node:e.doc})>n)}})]}}),M_=U.create({name:`dropCursor`,addOptions(){return{color:`currentColor`,width:1,class:void 0}},addProseMirrorPlugins(){return[Jg(this.options)]}});U.create({name:`focus`,addOptions(){return{className:`has-focus`,mode:`all`}},addProseMirrorPlugins(){return[new I({key:new L(`focus`),props:{decorations:({doc:e,selection:t})=>{let{isEditable:n,isFocused:r}=this.editor,{anchor:i}=t,a=[];if(!n||!r)return R.create(e,[]);let o=0;this.options.mode===`deepest`&&e.descendants((e,t)=>{if(!e.isText){if(!(i>=t&&i<=t+e.nodeSize-1))return!1;o+=1}});let s=0;return e.descendants((e,t)=>{if(e.isText||!(i>=t&&i<=t+e.nodeSize-1))return!1;if(s+=1,this.options.mode===`deepest`&&o-s>0||this.options.mode===`shallowest`&&s>1)return this.options.mode===`deepest`;a.push(ss.node(t,t+e.nodeSize,{class:this.options.className}))}),R.create(e,a)}}})]}});var N_=U.create({name:`gapCursor`,addProseMirrorPlugins(){return[t_()]},extendNodeSchema(e){return{allowGapCursor:V(B(e,`allowGapCursor`,{name:e.name,options:e.options,storage:e.storage}))??null}}}),P_=`placeholder`,F_=new L(`tiptap__placeholder`),I_=200;function L_(e){let{editor:t,placeholder:n,dataAttribute:r,pos:i,node:a,isEmptyDoc:o,hasAnchor:s,classes:{emptyNode:c,emptyEditor:l}}=e,u=[c];return o&&u.push(l),ss.node(i,i+a.nodeSize,{class:u.join(` `),[r]:typeof n==`function`?n({editor:t,node:a,pos:i,hasAnchor:s}):n})}function R_(e,t){return typeof e==`function`?e(t):e}function z_({editor:e,options:t,dataAttribute:n,doc:r,selection:i}){if(!(e.isEditable||!t.showOnlyWhenEditable))return null;let{anchor:a}=i,o=[],s=e.isEmpty;if(t.showOnlyCurrent&&!t.includeChildren){let i=r.resolve(a),c=i.depth>0?i.node(1):i.nodeAfter,l=i.depth>0?i.before(1):a;if(c&&c.type.isTextblock&&_u(c)){let r=a>=l&&a<=l+c.nodeSize;o.push(L_({editor:e,isEmptyDoc:s,dataAttribute:n,hasAnchor:r,placeholder:t.placeholder,classes:{emptyEditor:t.emptyEditorClass,emptyNode:R_(t.emptyNodeClass,{editor:e,node:c,pos:l,hasAnchor:r})},node:c,pos:l}))}}else{let i=F_.getState(e.state),c=i?.topPos??0,l=i?.bottomPos??r.content.size;r.nodesBetween(c,l,(r,i)=>{let c=a>=i&&a<=i+r.nodeSize,l=!r.isLeaf&&_u(r);return r.type.isTextblock&&(c||!t.showOnlyCurrent)&&l&&o.push(L_({editor:e,isEmptyDoc:s,dataAttribute:n,hasAnchor:c,placeholder:t.placeholder,classes:{emptyEditor:t.emptyEditorClass,emptyNode:R_(t.emptyNodeClass,{editor:e,node:r,pos:i,hasAnchor:c})},node:r,pos:i})),t.includeChildren})}return R.create(r,o)}function B_(e){return e.replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9-]/g,``).replace(/^[0-9-]+/,``).replace(/^-+/,``).toLowerCase()}function V_(e){let t=getComputedStyle(e),n=`${t.overflow} ${t.overflowY} ${t.overflowX}`;return/auto|scroll|overlay/.test(n)}function H_(e){let t=e;for(;t;){if(V_(t))return t;let e=t.parentElement;if(!e){let e=t.getRootNode();if(e instanceof ShadowRoot){t=e.host;continue}return window}t=e}return window}function U_(e){return e===window?{top:0,bottom:window.innerHeight}:e.getBoundingClientRect()}function W_({doc:e,view:t,scrollContainer:n}){let r=t.dom.getBoundingClientRect(),i=n?U_(n):{top:0,bottom:window.innerHeight},a=Math.max(r.top,i.top)-I_,o=Math.min(r.bottom,i.bottom)+I_;if(a>=o)return{top:0,bottom:e.content.size};let s=getComputedStyle(t.dom).direction===`rtl`?Math.max(r.right-2,r.left+2):r.left+2,c=t.posAtCoords({left:s,top:a+2}),l=t.posAtCoords({left:s,top:o-2});return{top:c?c.pos:0,bottom:l?l.pos:e.content.size}}var G_={init(){return{topPos:null,bottomPos:null}},apply(e,t){let n=e.getMeta(F_);return n?.positions?{topPos:n.positions.top,bottomPos:n.positions.bottom}:e.docChanged?{topPos:t.topPos===null?null:e.mapping.map(t.topPos),bottomPos:t.bottomPos===null?null:e.mapping.map(t.bottomPos)}:t}};function K_(e){let t=H_(e.dom),n=()=>{let n=W_({view:e,doc:e.state.doc,scrollContainer:t}),r=F_.getState(e.state);if(r?.topPos===n.top&&r?.bottomPos===n.bottom)return;let i=e.state.tr.setMeta(F_,{positions:n});e.dispatch(i)},r=null,i=0,a=()=>{r===null&&(r=requestAnimationFrame(()=>{r=null;let e=performance.now();e-i>=150?(i=e,n()):a()}))};return t.addEventListener(`scroll`,a,{passive:!0}),n(),{update(t,n){e.state.doc.content.size!==n.doc.content.size&&a()},destroy:()=>{r!==null&&cancelAnimationFrame(r),t.removeEventListener(`scroll`,a)}}}function q_({editor:e,options:t}){let n=t.dataAttribute?`data-${B_(t.dataAttribute)}`:`data-${P_}`;return new I({key:F_,state:G_,view:K_,props:{decorations:({doc:r,selection:i})=>z_({editor:e,options:t,dataAttribute:n,doc:r,selection:i})}})}var J_=U.create({name:`placeholder`,addOptions(){return{emptyEditorClass:`is-editor-empty`,emptyNodeClass:`is-empty`,dataAttribute:P_,placeholder:`Write something …`,showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[q_({editor:this.editor,options:this.options})]}}),Y_=`.ProseMirror:not(.ProseMirror-focused) *::selection {
|
|
145
|
+
background: transparent;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.ProseMirror:not(.ProseMirror-focused) *::-moz-selection {
|
|
149
|
+
background: transparent;
|
|
150
|
+
}`;U.create({name:`selection`,addOptions(){return{className:`selection`}},addProseMirrorPlugins(){let{editor:e,options:t}=this;return e.options.injectCSS&&typeof document<`u`&&wd(Y_,e.options.injectNonce,`selection`),[new I({key:new L(`selection`),props:{decorations(n){return n.selection.empty||e.isFocused||!e.isEditable||vu(n.selection)||e.view.dragging?null:R.create(n.doc,[ss.inline(n.selection.from,n.selection.to,{class:t.className})])}}})]}});function X_({types:e,node:t}){return t&&Array.isArray(e)&&e.includes(t.type)||t?.type===e}var Z_=U.create({name:`trailingNode`,addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){let e=new L(this.name),t=this.options.node||this.editor.schema.topNodeType.contentMatch.defaultType?.name||`paragraph`,n=Object.entries(this.editor.schema.nodes).map(([,e])=>e).filter(e=>(this.options.notAfter||[]).concat(t).includes(e.name));return[new I({key:e,appendTransaction:(n,r,i)=>{let{doc:a,tr:o,schema:s}=i,c=e.getState(i),l=a.content.size,u=s.nodes[t];if(!n.some(e=>e.getMeta(`skipTrailingNode`))&&c)return o.insert(l,u.create())},state:{init:(e,t)=>{let r=t.tr.doc.lastChild;return!X_({node:r,types:n})},apply:(e,t)=>{if(!e.docChanged||e.getMeta(`__uniqueIDTransaction`))return t;let r=e.doc.lastChild;return!X_({node:r,types:n})}}})]}}),Q_=U.create({name:`undoRedo`,addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:e,dispatch:t})=>k_(e,t),redo:()=>({state:e,dispatch:t})=>A_(e,t)}},addProseMirrorPlugins(){return[D_(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),$_=U.create({name:`starterKit`,addExtensions(){let e=[];return this.options.bold!==!1&&e.push(Dp.configure(this.options.bold)),this.options.blockquote!==!1&&e.push(Sp.configure(this.options.blockquote)),this.options.bulletList!==!1&&e.push(sg.configure(this.options.bulletList)),this.options.code!==!1&&e.push(Ap.configure(this.options.code)),this.options.codeBlock!==!1&&e.push(Pp.configure(this.options.codeBlock)),this.options.document!==!1&&e.push(Fp.configure(this.options.document)),this.options.dropcursor!==!1&&e.push(M_.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&e.push(N_.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&e.push(Ip.configure(this.options.hardBreak)),this.options.heading!==!1&&e.push(Lp.configure(this.options.heading)),this.options.undoRedo!==!1&&e.push(Q_.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&e.push(Rp.configure(this.options.horizontalRule)),this.options.italic!==!1&&e.push(Up.configure(this.options.italic)),this.options.listItem!==!1&&e.push(mg.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(Tg.configure(this.options?.listKeymap)),this.options.link!==!1&&e.push(tg.configure(this.options?.link)),this.options.orderedList!==!1&&e.push(Ig.configure(this.options.orderedList)),this.options.paragraph!==!1&&e.push(Hg.configure(this.options.paragraph)),this.options.strike!==!1&&e.push(Gg.configure(this.options.strike)),this.options.text!==!1&&e.push(Kg.configure(this.options.text)),this.options.underline!==!1&&e.push(qg.configure(this.options?.underline)),this.options.trailingNode!==!1&&e.push(Z_.configure(this.options?.trailingNode)),e}}),ev=nd.create({name:`subscript`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`sub`},{style:`vertical-align`,getAttrs(e){return e===`sub`?null:!1}}]},renderHTML({HTMLAttributes:e}){return[`sub`,H(this.options.HTMLAttributes,e),0]},addCommands(){return{setSubscript:()=>({commands:e})=>e.setMark(this.name),toggleSubscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSubscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-,":()=>this.editor.commands.toggleSubscript()}}}),tv=nd.create({name:`superscript`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`sup`},{style:`vertical-align`,getAttrs(e){return e===`super`?null:!1}}]},renderHTML({HTMLAttributes:e}){return[`sup`,H(this.options.HTMLAttributes,e),0]},addCommands(){return{setSuperscript:()=>({commands:e})=>e.setMark(this.name),toggleSuperscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSuperscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-.":()=>this.editor.commands.toggleSuperscript()}}}),nv=U.create({name:`textAlign`,addOptions(){return{types:[],alignments:[`left`,`center`,`right`,`justify`],defaultAlignment:null}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:e=>{let t=e.style.textAlign;return this.options.alignments.includes(t)?t:this.options.defaultAlignment},renderHTML:e=>e.textAlign?{style:`text-align: ${e.textAlign}`}:{}}}}]},addCommands(){return{setTextAlign:e=>({commands:t})=>this.options.alignments.includes(e)?this.options.types.map(n=>t.updateAttributes(n,{textAlign:e})).some(e=>e):!1,unsetTextAlign:()=>({commands:e})=>this.options.types.map(t=>e.resetAttributes(t,`textAlign`)).some(e=>e),toggleTextAlign:e=>({editor:t,commands:n})=>this.options.alignments.includes(e)?t.isActive({textAlign:e})?n.unsetTextAlign():n.setTextAlign(e):!1}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign(`left`),"Mod-Shift-e":()=>this.editor.commands.setTextAlign(`center`),"Mod-Shift-r":()=>this.editor.commands.setTextAlign(`right`),"Mod-Shift-j":()=>this.editor.commands.setTextAlign(`justify`)}}}),rv=20,iv=(e,t=0)=>{let n=[];return!e.children.length||t>rv||Array.from(e.children).forEach(e=>{e.tagName===`SPAN`?n.push(e):e.children.length&&n.push(...iv(e,t+1))}),n},av=e=>{if(!e.children.length)return;let t=iv(e);t&&t.forEach(e=>{let t=e.getAttribute(`style`),n=(e.parentElement?.closest(`span`))?.getAttribute(`style`);e.setAttribute(`style`,`${n};${t}`)})},ov=nd.create({name:`textStyle`,priority:101,addOptions(){return{HTMLAttributes:{},mergeNestedSpanStyles:!0}},parseHTML(){return[{tag:`span`,consuming:!1,getAttrs:e=>e.hasAttribute(`style`)?(this.options.mergeNestedSpanStyles&&av(e),{}):!1}]},renderHTML({HTMLAttributes:e}){return[`span`,H(this.options.HTMLAttributes,e),0]},addCommands(){return{toggleTextStyle:e=>({commands:t})=>t.toggleMark(this.name,e),removeEmptyTextStyle:()=>({tr:e})=>{let{selection:t}=e;return e.doc.nodesBetween(t.from,t.to,(t,n)=>{if(t.isTextblock)return!0;t.marks.filter(e=>e.type===this.type).some(e=>Object.values(e.attrs).some(e=>!!e))||e.removeMark(n,n+t.nodeSize,this.type)}),!0}}}}),sv=U.create({name:`backgroundColor`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{backgroundColor:{default:null,parseHTML:e=>(Nd(e,`background-color`)??e.style.backgroundColor)?.replace(/['"]+/g,``),renderHTML:e=>e.backgroundColor?{style:`background-color: ${e.backgroundColor}`}:{}}}}]},addCommands(){return{setBackgroundColor:e=>({chain:t})=>t().setMark(`textStyle`,{backgroundColor:e}).run(),unsetBackgroundColor:()=>({chain:e})=>e().setMark(`textStyle`,{backgroundColor:null}).removeEmptyTextStyle().run()}}}),cv=U.create({name:`color`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{color:{default:null,parseHTML:e=>(Nd(e,`color`)??e.style.color)?.replace(/['"]+/g,``),renderHTML:e=>e.color?{style:`color: ${e.color}`}:{}}}}]},addCommands(){return{setColor:e=>({chain:t})=>t().setMark(`textStyle`,{color:e}).run(),unsetColor:()=>({chain:e})=>e().setMark(`textStyle`,{color:null}).removeEmptyTextStyle().run()}}}),lv=U.create({name:`fontFamily`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontFamily:{default:null,parseHTML:e=>Nd(e,`font-family`)??e.style.fontFamily,renderHTML:e=>e.fontFamily?{style:`font-family: ${e.fontFamily}`}:{}}}}]},addCommands(){return{setFontFamily:e=>({chain:t})=>t().setMark(`textStyle`,{fontFamily:e}).run(),unsetFontFamily:()=>({chain:e})=>e().setMark(`textStyle`,{fontFamily:null}).removeEmptyTextStyle().run()}}}),uv=U.create({name:`fontSize`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontSize:{default:null,parseHTML:e=>Nd(e,`font-size`)??e.style.fontSize,renderHTML:e=>e.fontSize?{style:`font-size: ${e.fontSize}`}:{}}}}]},addCommands(){return{setFontSize:e=>({chain:t})=>t().setMark(`textStyle`,{fontSize:e}).run(),unsetFontSize:()=>({chain:e})=>e().setMark(`textStyle`,{fontSize:null}).removeEmptyTextStyle().run()}}}),dv=U.create({name:`lineHeight`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{lineHeight:{default:null,parseHTML:e=>Nd(e,`line-height`)??e.style.lineHeight,renderHTML:e=>e.lineHeight?{style:`line-height: ${e.lineHeight}`}:{}}}}]},addCommands(){return{setLineHeight:e=>({chain:t})=>t().setMark(`textStyle`,{lineHeight:e}).run(),unsetLineHeight:()=>({chain:e})=>e().setMark(`textStyle`,{lineHeight:null}).removeEmptyTextStyle().run()}}});U.create({name:`textStyleKit`,addExtensions(){let e=[];return this.options.backgroundColor!==!1&&e.push(sv.configure(this.options.backgroundColor)),this.options.color!==!1&&e.push(cv.configure(this.options.color)),this.options.fontFamily!==!1&&e.push(lv.configure(this.options.fontFamily)),this.options.fontSize!==!1&&e.push(uv.configure(this.options.fontSize)),this.options.lineHeight!==!1&&e.push(dv.configure(this.options.lineHeight)),this.options.textStyle!==!1&&e.push(ov.configure(this.options.textStyle)),e}});var fv=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))$/,pv=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))/g,mv=nd.create({name:`highlight`,addOptions(){return{multicolor:!1,HTMLAttributes:{}}},addAttributes(){return this.options.multicolor?{color:{default:null,parseHTML:e=>e.getAttribute(`data-color`)||Nd(e,`background-color`)||e.style.backgroundColor,renderHTML:e=>e.color?{"data-color":e.color,style:`background-color: ${e.color}; color: inherit`}:{}}}:{}},parseHTML(){return[{tag:`mark`}]},renderHTML({HTMLAttributes:e}){return[`mark`,H(this.options.HTMLAttributes,e),0]},renderMarkdown:(e,t)=>`==${t.renderChildren(e)}==`,parseMarkdown:(e,t)=>t.applyMark(`highlight`,t.parseInline(e.tokens||[])),markdownTokenizer:{name:`highlight`,level:`inline`,start:e=>e.indexOf(`==`),tokenize(e,t,n){let r=/^(==)([^=]+)(==)/.exec(e);if(r){let e=r[2].trim(),t=n.inlineTokens(e);return{type:`highlight`,raw:r[0],text:e,tokens:t}}}},addCommands(){return{setHighlight:e=>({commands:t})=>t.setMark(this.name,e),toggleHighlight:e=>({commands:t})=>t.toggleMark(this.name,e),unsetHighlight:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-h":()=>this.editor.commands.toggleHighlight()}},addInputRules(){return[Ed({find:fv,type:this.type})]},addPasteRules(){return[Wd({find:pv,type:this.type})]}}),hv=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,gv=W.create({name:`image`,addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{},resize:!1}},inline(){return this.options.inline},group(){return this.options.inline?`inline`:`block`},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null},width:{default:null},height:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?`img[src]`:`img[src]:not([src^="data:"])`}]},renderHTML({HTMLAttributes:e}){return[`img`,H(this.options.HTMLAttributes,e)]},parseMarkdown:(e,t)=>t.createNode(`image`,{src:e.href,title:e.title,alt:e.text}),renderMarkdown:e=>{let t=e.attrs?.src??``,n=e.attrs?.alt??``,r=e.attrs?.title??``;return r?``:``},addNodeView(){if(!this.options.resize||!this.options.resize.enabled||typeof document>`u`)return null;let{directions:e,minWidth:t,minHeight:n,alwaysPreserveAspectRatio:r}=this.options.resize;return({node:i,getPos:a,HTMLAttributes:o,editor:s})=>{let c=document.createElement(`img`);c.draggable=!1;let l=H(this.options.HTMLAttributes,o);Object.entries(l).forEach(([e,t])=>{if(t!=null)switch(e){case`width`:case`height`:break;default:c.setAttribute(e,t);break}}),l.src!==null&&(c.src=l.src);let u=new jd({element:c,editor:s,node:i,getPos:a,onResize:(e,t)=>{c.style.width=`${e}px`,c.style.height=`${t}px`},onCommit:(e,t)=>{let n=a();n!==void 0&&this.editor.chain().setNodeSelection(n).updateAttributes(this.name,{width:e,height:t}).run()},onUpdate:(e,t,n)=>e.type===i.type,options:{directions:e,min:{width:t,height:n},preserveAspectRatio:r===!0}}),d=u.dom;return d.style.visibility=`hidden`,d.style.pointerEvents=`none`,c.onload=()=>{d.style.visibility=``,d.style.pointerEvents=``},u}},addCommands(){return{setImage:e=>({commands:t})=>t.insertContent({type:this.name,attrs:e})}},addInputRules(){return[Dd({find:hv,type:this.type,getAttributes:e=>{let[,,t,n,r]=e;return{src:n,alt:t,title:r}}})]}}),_v,vv;if(typeof WeakMap<`u`){let e=new WeakMap;_v=t=>e.get(t),vv=(t,n)=>(e.set(t,n),n)}else{let e=[],t=0;_v=t=>{for(let n=0;n<e.length;n+=2)if(e[n]==t)return e[n+1]},vv=(n,r)=>(t==10&&(t=0),e[t++]=n,e[t++]=r)}var Z=class{constructor(e,t,n,r){this.width=e,this.height=t,this.map=n,this.problems=r}findCell(e){for(let t=0;t<this.map.length;t++){let n=this.map[t];if(n!=e)continue;let r=t%this.width,i=t/this.width|0,a=r+1,o=i+1;for(let e=1;a<this.width&&this.map[t+e]==n;e++)a++;for(let e=1;o<this.height&&this.map[t+this.width*e]==n;e++)o++;return{left:r,top:i,right:a,bottom:o}}throw RangeError(`No cell with offset ${e} found`)}colCount(e){for(let t=0;t<this.map.length;t++)if(this.map[t]==e)return t%this.width;throw RangeError(`No cell with offset ${e} found`)}nextCell(e,t,n){let{left:r,right:i,top:a,bottom:o}=this.findCell(e);return t==`horiz`?(n<0?r==0:i==this.width)?null:this.map[a*this.width+(n<0?r-1:i)]:(n<0?a==0:o==this.height)?null:this.map[r+this.width*(n<0?a-1:o)]}rectBetween(e,t){let{left:n,right:r,top:i,bottom:a}=this.findCell(e),{left:o,right:s,top:c,bottom:l}=this.findCell(t);return{left:Math.min(n,o),top:Math.min(i,c),right:Math.max(r,s),bottom:Math.max(a,l)}}cellsInRect(e){let t=[],n={};for(let r=e.top;r<e.bottom;r++)for(let i=e.left;i<e.right;i++){let a=r*this.width+i,o=this.map[a];n[o]||(n[o]=!0,!(i==e.left&&i&&this.map[a-1]==o||r==e.top&&r&&this.map[a-this.width]==o)&&t.push(o))}return t}positionAt(e,t,n){for(let r=0,i=0;;r++){let a=i+n.child(r).nodeSize;if(r==e){let n=t+e*this.width,r=(e+1)*this.width;for(;n<r&&this.map[n]<i;)n++;return n==r?a-1:this.map[n]}i=a}}static get(e){return _v(e)||vv(e,yv(e))}};function yv(e){if(e.type.spec.tableRole!=`table`)throw RangeError(`Not a table node: `+e.type.name);let t=bv(e),n=e.childCount,r=[],i=0,a=null,o=[];for(let e=0,i=t*n;e<i;e++)r[e]=0;for(let s=0,c=0;s<n;s++){let l=e.child(s);c++;for(let e=0;;e++){for(;i<r.length&&r[i]!=0;)i++;if(e==l.childCount)break;let u=l.child(e),{colspan:d,rowspan:f,colwidth:p}=u.attrs;for(let e=0;e<f;e++){if(e+s>=n){(a||=[]).push({type:`overlong_rowspan`,pos:c,n:f-e});break}let l=i+e*t;for(let e=0;e<d;e++){r[l+e]==0?r[l+e]=c:(a||=[]).push({type:`collision`,row:s,pos:c,n:d-e});let n=p&&p[e];if(n){let r=(l+e)%t*2,i=o[r];i==null||i!=n&&o[r+1]==1?(o[r]=n,o[r+1]=1):i==n&&o[r+1]++}}}i+=d,c+=u.nodeSize}let u=(s+1)*t,d=0;for(;i<u;)r[i++]==0&&d++;d&&(a||=[]).push({type:`missing`,row:s,n:d}),c++}(t===0||n===0)&&(a||=[]).push({type:`zero_sized`});let s=new Z(t,n,r,a),c=!1;for(let e=0;!c&&e<o.length;e+=2)o[e]!=null&&o[e+1]<n&&(c=!0);return c&&xv(s,o,e),s}function bv(e){let t=-1,n=!1;for(let r=0;r<e.childCount;r++){let i=e.child(r),a=0;if(n)for(let t=0;t<r;t++){let n=e.child(t);for(let e=0;e<n.childCount;e++){let i=n.child(e);t+i.attrs.rowspan>r&&(a+=i.attrs.colspan)}}for(let e=0;e<i.childCount;e++){let t=i.child(e);a+=t.attrs.colspan,t.attrs.rowspan>1&&(n=!0)}t==-1?t=a:t!=a&&(t=Math.max(t,a))}return t}function xv(e,t,n){e.problems||=[];let r={};for(let i=0;i<e.map.length;i++){let a=e.map[i];if(r[a])continue;r[a]=!0;let o=n.nodeAt(a);if(!o)throw RangeError(`No cell with offset ${a} found`);let s=null,c=o.attrs;for(let n=0;n<c.colspan;n++){let r=t[(i+n)%e.width*2];r!=null&&(!c.colwidth||c.colwidth[n]!=r)&&((s||=Sv(c))[n]=r)}s&&e.problems.unshift({type:`colwidth mismatch`,pos:a,colwidth:s})}}function Sv(e){if(e.colwidth)return e.colwidth.slice();let t=[];for(let n=0;n<e.colspan;n++)t.push(0);return t}function Cv(e){let t=e.cached.tableNodeTypes;if(!t){t=e.cached.tableNodeTypes={};for(let n in e.nodes){let r=e.nodes[n],i=r.spec.tableRole;i&&(t[i]=r)}}return t}var wv=new L(`selectingCells`);function Tv(e){for(let t=e.depth-1;t>0;t--)if(e.node(t).type.spec.tableRole==`row`)return e.node(0).resolve(e.before(t+1));return null}function Ev(e){for(let t=e.depth;t>0;t--){let n=e.node(t).type.spec.tableRole;if(n===`cell`||n===`header_cell`)return e.node(t)}return null}function Dv(e){let t=e.selection.$head;for(let e=t.depth;e>0;e--)if(t.node(e).type.spec.tableRole==`row`)return!0;return!1}function Ov(e){let t=e.selection;if(`$anchorCell`in t&&t.$anchorCell)return t.$anchorCell.pos>t.$headCell.pos?t.$anchorCell:t.$headCell;if(`node`in t&&t.node&&t.node.type.spec.tableRole==`cell`)return t.$anchor;let n=Tv(t.$head)||kv(t.$head);if(n)return n;throw RangeError(`No cell found around position ${t.head}`)}function kv(e){for(let t=e.nodeAfter,n=e.pos;t;t=t.firstChild,n++){let r=t.type.spec.tableRole;if(r==`cell`||r==`header_cell`)return e.doc.resolve(n)}for(let t=e.nodeBefore,n=e.pos;t;t=t.lastChild,n--){let r=t.type.spec.tableRole;if(r==`cell`||r==`header_cell`)return e.doc.resolve(n-t.nodeSize)}}function Av(e){return e.parent.type.spec.tableRole==`row`&&!!e.nodeAfter}function jv(e){return e.node(0).resolve(e.pos+e.nodeAfter.nodeSize)}function Mv(e,t){return e.depth==t.depth&&e.pos>=t.start(-1)&&e.pos<=t.end(-1)}function Nv(e,t,n){let r=e.node(-1),i=Z.get(r),a=e.start(-1),o=i.nextCell(e.pos-a,t,n);return o==null?null:e.node(0).resolve(a+o)}function Pv(e,t,n=1){let r={...e,colspan:e.colspan-n};return r.colwidth&&(r.colwidth=r.colwidth.slice(),r.colwidth.splice(t,n),r.colwidth.some(e=>e>0)||(r.colwidth=null)),r}function Fv(e,t,n=1){let r={...e,colspan:e.colspan+n};if(r.colwidth){r.colwidth=r.colwidth.slice();for(let e=0;e<n;e++)r.colwidth.splice(t,0,0)}return r}function Iv(e,t,n){let r=Cv(t.type.schema).header_cell;for(let i=0;i<e.height;i++)if(t.nodeAt(e.map[n+i*e.width]).type!=r)return!1;return!0}var Q=class e extends N{constructor(e,t=e){let n=e.node(-1),r=Z.get(n),i=e.start(-1),a=r.rectBetween(e.pos-i,t.pos-i),o=e.node(0),s=r.cellsInRect(a).filter(e=>e!=t.pos-i);s.unshift(t.pos-i);let c=s.map(e=>{let t=n.nodeAt(e);if(!t)throw RangeError(`No cell with offset ${e} found`);let r=i+e+1;return new gn(o.resolve(r),o.resolve(r+t.content.size))});super(c[0].$from,c[0].$to,c),this.$anchorCell=e,this.$headCell=t}map(t,n){let r=t.resolve(n.map(this.$anchorCell.pos)),i=t.resolve(n.map(this.$headCell.pos));if(Av(r)&&Av(i)&&Mv(r,i)){let t=this.$anchorCell.node(-1)!=r.node(-1);return t&&this.isRowSelection()?e.rowSelection(r,i):t&&this.isColSelection()?e.colSelection(r,i):new e(r,i)}return P.between(r,i)}content(){let e=this.$anchorCell.node(-1),t=Z.get(e),n=this.$anchorCell.start(-1),r=t.rectBetween(this.$anchorCell.pos-n,this.$headCell.pos-n),i={},a=[];for(let n=r.top;n<r.bottom;n++){let o=[];for(let a=n*t.width+r.left,s=r.left;s<r.right;s++,a++){let n=t.map[a];if(i[n])continue;i[n]=!0;let s=t.findCell(n),c=e.nodeAt(n);if(!c)throw RangeError(`No cell with offset ${n} found`);let l=r.left-s.left,u=s.right-r.right;if(l>0||u>0){let e=c.attrs;if(l>0&&(e=Pv(e,0,l)),u>0&&(e=Pv(e,e.colspan-u,u)),s.left<r.left){if(c=c.type.createAndFill(e),!c)throw RangeError(`Could not create cell with attrs ${JSON.stringify(e)}`)}else c=c.type.create(e,c.content)}if(s.top<r.top||s.bottom>r.bottom){let e={...c.attrs,rowspan:Math.min(s.bottom,r.bottom)-Math.max(s.top,r.top)};c=s.top<r.top?c.type.createAndFill(e):c.type.create(e,c.content)}o.push(c)}a.push(e.child(n).copy(p.from(o)))}let o=this.isColSelection()&&this.isRowSelection()?e:a;return new y(p.from(o),1,1)}replace(e,t=y.empty){let n=e.steps.length,r=this.ranges;for(let i=0;i<r.length;i++){let{$from:a,$to:o}=r[i],s=e.mapping.slice(n);e.replace(s.map(a.pos),s.map(o.pos),i?y.empty:t)}let i=N.findFrom(e.doc.resolve(e.mapping.slice(n).map(this.to)),-1);i&&e.setSelection(i)}replaceWith(e,t){this.replace(e,new y(p.from(t),0,0))}forEachCell(e){let t=this.$anchorCell.node(-1),n=Z.get(t),r=this.$anchorCell.start(-1),i=n.cellsInRect(n.rectBetween(this.$anchorCell.pos-r,this.$headCell.pos-r));for(let n=0;n<i.length;n++)e(t.nodeAt(i[n]),r+i[n])}isColSelection(){let e=this.$anchorCell.index(-1),t=this.$headCell.index(-1);if(Math.min(e,t)>0)return!1;let n=e+this.$anchorCell.nodeAfter.attrs.rowspan,r=t+this.$headCell.nodeAfter.attrs.rowspan;return Math.max(n,r)==this.$headCell.node(-1).childCount}static colSelection(t,n=t){let r=t.node(-1),i=Z.get(r),a=t.start(-1),o=i.findCell(t.pos-a),s=i.findCell(n.pos-a),c=t.node(0);return o.top<=s.top?(o.top>0&&(t=c.resolve(a+i.map[o.left])),s.bottom<i.height&&(n=c.resolve(a+i.map[i.width*(i.height-1)+s.right-1]))):(s.top>0&&(n=c.resolve(a+i.map[s.left])),o.bottom<i.height&&(t=c.resolve(a+i.map[i.width*(i.height-1)+o.right-1]))),new e(t,n)}isRowSelection(){let e=this.$anchorCell.node(-1),t=Z.get(e),n=this.$anchorCell.start(-1),r=t.colCount(this.$anchorCell.pos-n),i=t.colCount(this.$headCell.pos-n);if(Math.min(r,i)>0)return!1;let a=r+this.$anchorCell.nodeAfter.attrs.colspan,o=i+this.$headCell.nodeAfter.attrs.colspan;return Math.max(a,o)==t.width}eq(t){return t instanceof e&&t.$anchorCell.pos==this.$anchorCell.pos&&t.$headCell.pos==this.$headCell.pos}static rowSelection(t,n=t){let r=t.node(-1),i=Z.get(r),a=t.start(-1),o=i.findCell(t.pos-a),s=i.findCell(n.pos-a),c=t.node(0);return o.left<=s.left?(o.left>0&&(t=c.resolve(a+i.map[o.top*i.width])),s.right<i.width&&(n=c.resolve(a+i.map[i.width*(s.top+1)-1]))):(s.left>0&&(n=c.resolve(a+i.map[s.top*i.width])),o.right<i.width&&(t=c.resolve(a+i.map[i.width*(o.top+1)-1]))),new e(t,n)}toJSON(){return{type:`cell`,anchor:this.$anchorCell.pos,head:this.$headCell.pos}}static fromJSON(t,n){return new e(t.resolve(n.anchor),t.resolve(n.head))}static create(t,n,r=n){return new e(t.resolve(n),t.resolve(r))}getBookmark(){return new Lv(this.$anchorCell.pos,this.$headCell.pos)}};Q.prototype.visible=!1,N.jsonID(`cell`,Q);var Lv=class e{constructor(e,t){this.anchor=e,this.head=t}map(t){return new e(t.map(this.anchor),t.map(this.head))}resolve(e){let t=e.resolve(this.anchor),n=e.resolve(this.head);return t.parent.type.spec.tableRole==`row`&&n.parent.type.spec.tableRole==`row`&&t.index()<t.parent.childCount&&n.index()<n.parent.childCount&&Mv(t,n)?new Q(t,n):N.near(n,1)}};function Rv(e){if(!(e.selection instanceof Q))return null;let t=[];return e.selection.forEachCell((e,n)=>{t.push(ss.node(n,n+e.nodeSize,{class:`selectedCell`}))}),R.create(e.doc,t)}function zv({$from:e,$to:t}){if(e.pos==t.pos||e.pos<t.pos-6)return!1;let n=e.pos,r=t.pos,i=e.depth;for(;i>=0&&!(e.after(i+1)<e.end(i));i--,n++);for(let e=t.depth;e>=0&&!(t.before(e+1)>t.start(e));e--,r--);return n==r&&/row|table/.test(e.node(i).type.spec.tableRole)}function Bv({$from:e,$to:t}){let n,r;for(let t=e.depth;t>0;t--){let r=e.node(t);if(r.type.spec.tableRole===`cell`||r.type.spec.tableRole===`header_cell`){n=r;break}}for(let e=t.depth;e>0;e--){let n=t.node(e);if(n.type.spec.tableRole===`cell`||n.type.spec.tableRole===`header_cell`){r=n;break}}return n!==r&&t.parentOffset===0}function Vv(e,t,n){let r=(t||e).selection,i=(t||e).doc,a,o;if(r instanceof F&&(o=r.node.type.spec.tableRole)){if(o==`cell`||o==`header_cell`)a=Q.create(i,r.from);else if(o==`row`){let e=i.resolve(r.from+1);a=Q.rowSelection(e,e)}else if(!n){let e=Z.get(r.node),t=r.from+1,n=t+e.map[e.width*e.height-1];a=Q.create(i,t+1,n)}}else r instanceof P&&zv(r)?a=P.create(i,r.from):r instanceof P&&Bv(r)&&(a=P.create(i,r.$from.start(),r.$from.end()));return a&&(t||=e.tr).setSelection(a),t}var Hv=new L(`fix-tables`);function Uv(e,t,n,r){let i=e.childCount,a=t.childCount;outer:for(let o=0,s=0;o<a;o++){let a=t.child(o);for(let t=s,r=Math.min(i,o+3);t<r;t++)if(e.child(t)==a){s=t+1,n+=a.nodeSize;continue outer}r(a,n),s<i&&e.child(s).sameMarkup(a)?Uv(e.child(s),a,n+1,r):a.nodesBetween(0,a.content.size,r,n+1),n+=a.nodeSize}}function Wv(e,t){let n,r=(t,r)=>{t.type.spec.tableRole==`table`&&(n=Gv(e,t,r,n))};return t?t.doc!=e.doc&&Uv(t.doc,e.doc,0,r):e.doc.descendants(r),n}function Gv(e,t,n,r){let i=Z.get(t);if(!i.problems)return r;r||=e.tr;let a=[];for(let e=0;e<i.height;e++)a.push(0);for(let e=0;e<i.problems.length;e++){let o=i.problems[e];if(o.type==`collision`){let e=t.nodeAt(o.pos);if(!e)continue;let i=e.attrs;for(let e=0;e<i.rowspan;e++)a[o.row+e]+=o.n;r.setNodeMarkup(r.mapping.map(n+1+o.pos),null,Pv(i,i.colspan-o.n,o.n))}else if(o.type==`missing`)a[o.row]+=o.n;else if(o.type==`overlong_rowspan`){let e=t.nodeAt(o.pos);if(!e)continue;r.setNodeMarkup(r.mapping.map(n+1+o.pos),null,{...e.attrs,rowspan:e.attrs.rowspan-o.n})}else if(o.type==`colwidth mismatch`){let e=t.nodeAt(o.pos);if(!e)continue;r.setNodeMarkup(r.mapping.map(n+1+o.pos),null,{...e.attrs,colwidth:o.colwidth})}else if(o.type==`zero_sized`){let e=r.mapping.map(n);r.delete(e,e+t.nodeSize)}}let o,s;for(let e=0;e<a.length;e++)a[e]&&(o??=e,s=e);for(let c=0,l=n+1;c<i.height;c++){let n=t.child(c),i=l+n.nodeSize,u=a[c];if(u>0){let t=`cell`;n.firstChild&&(t=n.firstChild.type.spec.tableRole);let a=[];for(let n=0;n<u;n++){let n=Cv(e.schema)[t].createAndFill();n&&a.push(n)}let d=(c==0||o==c-1)&&s==c?l+1:i-1;r.insert(r.mapping.map(d),a)}l=i}return r.setMeta(Hv,{fixTables:!0})}function Kv(e){let t=e.selection,n=Ov(e),r=n.node(-1),i=n.start(-1),a=Z.get(r);return{...t instanceof Q?a.rectBetween(t.$anchorCell.pos-i,t.$headCell.pos-i):a.findCell(n.pos-i),tableStart:i,map:a,table:r}}function qv(e,{map:t,tableStart:n,table:r},i){let a=i>0?-1:0;Iv(t,r,i+a)&&(a=i==0||i==t.width?null:0);for(let o=0;o<t.height;o++){let s=o*t.width+i;if(i>0&&i<t.width&&t.map[s-1]==t.map[s]){let a=t.map[s],c=r.nodeAt(a);e.setNodeMarkup(e.mapping.map(n+a),null,Fv(c.attrs,i-t.colCount(a))),o+=c.attrs.rowspan-1}else{let c=a==null?Cv(r.type.schema).cell:r.nodeAt(t.map[s+a]).type,l=t.positionAt(o,i,r);e.insert(e.mapping.map(n+l),c.createAndFill())}}return e}function Jv(e,t){if(!Dv(e))return!1;if(t){let n=Kv(e);t(qv(e.tr,n,n.left))}return!0}function Yv(e,t){if(!Dv(e))return!1;if(t){let n=Kv(e);t(qv(e.tr,n,n.right))}return!0}function Xv(e,{map:t,table:n,tableStart:r},i){let a=e.mapping.maps.length;for(let o=0;o<t.height;){let s=o*t.width+i,c=t.map[s],l=n.nodeAt(c),u=l.attrs;if(i>0&&t.map[s-1]==c||i<t.width-1&&t.map[s+1]==c)e.setNodeMarkup(e.mapping.slice(a).map(r+c),null,Pv(u,i-t.colCount(c)));else{let t=e.mapping.slice(a).map(r+c);e.delete(t,t+l.nodeSize)}o+=u.rowspan}}function Zv(e,t){if(!Dv(e))return!1;if(t){let n=Kv(e),r=e.tr;if(n.left==0&&n.right==n.map.width)return!1;for(let e=n.right-1;Xv(r,n,e),e!=n.left;e--){let e=n.tableStart?r.doc.nodeAt(n.tableStart-1):r.doc;if(!e)throw RangeError(`No table found`);n.table=e,n.map=Z.get(e)}t(r)}return!0}function Qv(e,t,n){let r=Cv(t.type.schema).header_cell;for(let i=0;i<e.width;i++)if(t.nodeAt(e.map[i+n*e.width])?.type!=r)return!1;return!0}function $v(e,{map:t,tableStart:n,table:r},i){let a=n;for(let e=0;e<i;e++)a+=r.child(e).nodeSize;let o=[],s=i>0?-1:0;Qv(t,r,i+s)&&(s=i==0||i==t.height?null:0);for(let a=0,c=t.width*i;a<t.width;a++,c++)if(i>0&&i<t.height&&t.map[c]==t.map[c-t.width]){let i=t.map[c],o=r.nodeAt(i).attrs;e.setNodeMarkup(n+i,null,{...o,rowspan:o.rowspan+1}),a+=o.colspan-1}else{let e=(s==null?Cv(r.type.schema).cell:r.nodeAt(t.map[c+s*t.width])?.type)?.createAndFill();e&&o.push(e)}return e.insert(a,Cv(r.type.schema).row.create(null,o)),e}function ey(e,t){if(!Dv(e))return!1;if(t){let n=Kv(e);t($v(e.tr,n,n.top))}return!0}function ty(e,t){if(!Dv(e))return!1;if(t){let n=Kv(e);t($v(e.tr,n,n.bottom))}return!0}function ny(e,{map:t,table:n,tableStart:r},i){let a=0;for(let e=0;e<i;e++)a+=n.child(e).nodeSize;let o=a+n.child(i).nodeSize,s=e.mapping.maps.length;e.delete(a+r,o+r);let c=new Set;for(let a=0,o=i*t.width;a<t.width;a++,o++){let l=t.map[o];if(!c.has(l)){if(c.add(l),i>0&&l==t.map[o-t.width]){let t=n.nodeAt(l).attrs;e.setNodeMarkup(e.mapping.slice(s).map(l+r),null,{...t,rowspan:t.rowspan-1}),a+=t.colspan-1}else if(i<t.height&&l==t.map[o+t.width]){let o=n.nodeAt(l),c=o.attrs,u=o.type.create({...c,rowspan:o.attrs.rowspan-1},o.content),d=t.positionAt(i+1,a,n);e.insert(e.mapping.slice(s).map(r+d),u),a+=c.colspan-1}}}}function ry(e,t){if(!Dv(e))return!1;if(t){let n=Kv(e),r=e.tr;if(n.top==0&&n.bottom==n.map.height)return!1;for(let e=n.bottom-1;ny(r,n,e),e!=n.top;e--){let e=n.tableStart?r.doc.nodeAt(n.tableStart-1):r.doc;if(!e)throw RangeError(`No table found`);n.table=e,n.map=Z.get(n.table)}t(r)}return!0}function iy(e){let t=e.content;return t.childCount==1&&t.child(0).isTextblock&&t.child(0).childCount==0}function ay({width:e,height:t,map:n},r){let i=r.top*e+r.left,a=i,o=(r.bottom-1)*e+r.left,s=i+(r.right-r.left-1);for(let t=r.top;t<r.bottom;t++){if(r.left>0&&n[a]==n[a-1]||r.right<e&&n[s]==n[s+1])return!0;a+=e,s+=e}for(let a=r.left;a<r.right;a++){if(r.top>0&&n[i]==n[i-e]||r.bottom<t&&n[o]==n[o+e])return!0;i++,o++}return!1}function oy(e,t){let n=e.selection;if(!(n instanceof Q)||n.$anchorCell.pos==n.$headCell.pos)return!1;let r=Kv(e),{map:i}=r;if(ay(i,r))return!1;if(t){let n=e.tr,a={},o=p.empty,s,c;for(let e=r.top;e<r.bottom;e++)for(let t=r.left;t<r.right;t++){let l=i.map[e*i.width+t],u=r.table.nodeAt(l);if(!(a[l]||!u))if(a[l]=!0,s==null)s=l,c=u;else{iy(u)||(o=o.append(u.content));let e=n.mapping.map(l+r.tableStart);n.delete(e,e+u.nodeSize)}}if(s==null||c==null)return!0;if(n.setNodeMarkup(s+r.tableStart,null,{...Fv(c.attrs,c.attrs.colspan,r.right-r.left-c.attrs.colspan),rowspan:r.bottom-r.top}),o.size>0){let e=s+1+c.content.size,t=iy(c)?s+1:e;n.replaceWith(t+r.tableStart,e+r.tableStart,o)}n.setSelection(new Q(n.doc.resolve(s+r.tableStart))),t(n)}return!0}function sy(e,t){let n=Cv(e.schema);return cy(({node:e})=>n[e.type.spec.tableRole])(e,t)}function cy(e){return(t,n)=>{let r=t.selection,i,a;if(r instanceof Q){if(r.$anchorCell.pos!=r.$headCell.pos)return!1;i=r.$anchorCell.nodeAfter,a=r.$anchorCell.pos}else{if(i=Ev(r.$from),!i)return!1;a=Tv(r.$from)?.pos}if(i==null||a==null||i.attrs.colspan==1&&i.attrs.rowspan==1)return!1;if(n){let o=i.attrs,s=[],c=o.colwidth;o.rowspan>1&&(o={...o,rowspan:1}),o.colspan>1&&(o={...o,colspan:1});let l=Kv(t),u=t.tr;for(let e=0;e<l.right-l.left;e++)s.push(c?{...o,colwidth:c&&c[e]?[c[e]]:null}:o);let d;for(let t=l.top;t<l.bottom;t++){let n=l.map.positionAt(t,l.left,l.table);t==l.top&&(n+=i.nodeSize);for(let r=l.left,a=0;r<l.right;r++,a++)r==l.left&&t==l.top||u.insert(d=u.mapping.map(n+l.tableStart,1),e({node:i,row:t,col:r}).createAndFill(s[a]))}u.setNodeMarkup(a,e({node:i,row:l.top,col:l.left}),s[0]),r instanceof Q&&u.setSelection(new Q(u.doc.resolve(r.$anchorCell.pos),d?u.doc.resolve(d):void 0)),n(u)}return!0}}function ly(e,t){return function(n,r){if(!Dv(n))return!1;let i=Ov(n);if(i.nodeAfter.attrs[e]===t)return!1;if(r){let a=n.tr;n.selection instanceof Q?n.selection.forEachCell((n,r)=>{n.attrs[e]!==t&&a.setNodeMarkup(r,null,{...n.attrs,[e]:t})}):a.setNodeMarkup(i.pos,null,{...i.nodeAfter.attrs,[e]:t}),r(a)}return!0}}function uy(e){return function(t,n){if(!Dv(t))return!1;if(n){let r=Cv(t.schema),i=Kv(t),a=t.tr,o=i.map.cellsInRect(e==`column`?{left:i.left,top:0,right:i.right,bottom:i.map.height}:e==`row`?{left:0,top:i.top,right:i.map.width,bottom:i.bottom}:i),s=o.map(e=>i.table.nodeAt(e));for(let e=0;e<o.length;e++)s[e].type==r.header_cell&&a.setNodeMarkup(i.tableStart+o[e],r.cell,s[e].attrs);if(a.steps.length===0)for(let e=0;e<o.length;e++)a.setNodeMarkup(i.tableStart+o[e],r.header_cell,s[e].attrs);n(a)}return!0}}function dy(e,t,n){let r=t.map.cellsInRect({left:0,top:0,right:e==`row`?t.map.width:1,bottom:e==`column`?t.map.height:1});for(let e=0;e<r.length;e++){let i=t.table.nodeAt(r[e]);if(i&&i.type!==n.header_cell)return!1}return!0}function fy(e,t){return t||={useDeprecatedLogic:!1},t.useDeprecatedLogic?uy(e):function(t,n){if(!Dv(t))return!1;if(n){let r=Cv(t.schema),i=Kv(t),a=t.tr,o=dy(`row`,i,r),s=dy(`column`,i,r),c=(e===`column`?o:e===`row`&&s)?1:0,l=e==`column`?{left:0,top:c,right:1,bottom:i.map.height}:e==`row`?{left:c,top:0,right:i.map.width,bottom:1}:i,u=e==`column`?s?r.cell:r.header_cell:e==`row`?o?r.cell:r.header_cell:r.cell;i.map.cellsInRect(l).forEach(e=>{let t=e+i.tableStart,n=a.doc.nodeAt(t);n&&a.setNodeMarkup(t,u,n.attrs)}),n(a)}return!0}}fy(`row`,{useDeprecatedLogic:!0}),fy(`column`,{useDeprecatedLogic:!0});var py=fy(`cell`,{useDeprecatedLogic:!0});function my(e,t){if(t<0){let t=e.nodeBefore;if(t)return e.pos-t.nodeSize;for(let t=e.index(-1)-1,n=e.before();t>=0;t--){let r=e.node(-1).child(t),i=r.lastChild;if(i)return n-1-i.nodeSize;n-=r.nodeSize}}else{if(e.index()<e.parent.childCount-1)return e.pos+e.nodeAfter.nodeSize;let t=e.node(-1);for(let n=e.indexAfter(-1),r=e.after();n<t.childCount;n++){let e=t.child(n);if(e.childCount)return r+1;r+=e.nodeSize}}return null}function hy(e){return function(t,n){if(!Dv(t))return!1;let r=my(Ov(t),e);if(r==null)return!1;if(n){let e=t.doc.resolve(r);n(t.tr.setSelection(P.between(e,jv(e))).scrollIntoView())}return!0}}function gy(e,t){let n=e.selection.$anchor;for(let r=n.depth;r>0;r--)if(n.node(r).type.spec.tableRole==`table`)return t&&t(e.tr.delete(n.before(r),n.after(r)).scrollIntoView()),!0;return!1}function _y(e,t){let n=e.selection;if(!(n instanceof Q))return!1;if(t){let r=e.tr,i=Cv(e.schema).cell.createAndFill().content;n.forEachCell((e,t)=>{e.content.eq(i)||r.replace(r.mapping.map(t+1),r.mapping.map(t+e.nodeSize-1),new y(i,0,0))}),r.docChanged&&t(r)}return!0}function vy(e){if(e.size===0)return null;let{content:t,openStart:n,openEnd:r}=e;for(;t.childCount==1&&(n>0&&r>0||t.child(0).type.spec.tableRole==`table`);)n--,r--,t=t.child(0).content;let i=t.child(0),a=i.type.spec.tableRole,o=i.type.schema,s=[];if(a==`row`)for(let e=0;e<t.childCount;e++){let i=t.child(e).content,a=e?0:Math.max(0,n-1),c=e<t.childCount-1?0:Math.max(0,r-1);(a||c)&&(i=by(Cv(o).row,new y(i,a,c)).content),s.push(i)}else if(a==`cell`||a==`header_cell`)s.push(n||r?by(Cv(o).row,new y(t,n,r)).content:t);else return null;return yy(o,s)}function yy(e,t){let n=[];for(let e=0;e<t.length;e++){let r=t[e];for(let t=r.childCount-1;t>=0;t--){let{rowspan:i,colspan:a}=r.child(t).attrs;for(let t=e;t<e+i;t++)n[t]=(n[t]||0)+a}}let r=0;for(let e=0;e<n.length;e++)r=Math.max(r,n[e]);for(let i=0;i<n.length;i++)if(i>=t.length&&t.push(p.empty),n[i]<r){let a=Cv(e).cell.createAndFill(),o=[];for(let e=n[i];e<r;e++)o.push(a);t[i]=t[i].append(p.from(o))}return{height:t.length,width:r,rows:t}}function by(e,t){let n=e.createAndFill();return new mn(n).replace(0,n.content.size,t).doc}function xy({width:e,height:t,rows:n},r,i){if(e!=r){let t=[],i=[];for(let e=0;e<n.length;e++){let a=n[e],o=[];for(let n=t[e]||0,i=0;n<r;i++){let s=a.child(i%a.childCount);n+s.attrs.colspan>r&&(s=s.type.createChecked(Pv(s.attrs,s.attrs.colspan,n+s.attrs.colspan-r),s.content)),o.push(s),n+=s.attrs.colspan;for(let n=1;n<s.attrs.rowspan;n++)t[e+n]=(t[e+n]||0)+s.attrs.colspan}i.push(p.from(o))}n=i,e=r}if(t!=i){let e=[];for(let r=0,a=0;r<i;r++,a++){let o=[],s=n[a%t];for(let e=0;e<s.childCount;e++){let t=s.child(e);r+t.attrs.rowspan>i&&(t=t.type.create({...t.attrs,rowspan:Math.max(1,i-t.attrs.rowspan)},t.content)),o.push(t)}e.push(p.from(o))}n=e,t=i}return{width:e,height:t,rows:n}}function Sy(e,t,n,r,i,a,o){let s=e.doc.type.schema,c=Cv(s),l,u;if(i>t.width)for(let a=0,s=0;a<t.height;a++){let d=n.child(a);s+=d.nodeSize;let f=[],p;p=d.lastChild==null||d.lastChild.type==c.cell?l||=c.cell.createAndFill():u||=c.header_cell.createAndFill();for(let e=t.width;e<i;e++)f.push(p);e.insert(e.mapping.slice(o).map(s-1+r),f)}if(a>t.height){let s=[];for(let e=0,r=(t.height-1)*t.width;e<Math.max(t.width,i);e++){let i=e>=t.width?!1:n.nodeAt(t.map[r+e]).type==c.header_cell;s.push(i?u||=c.header_cell.createAndFill():l||=c.cell.createAndFill())}let d=c.row.create(null,p.from(s)),f=[];for(let e=t.height;e<a;e++)f.push(d);e.insert(e.mapping.slice(o).map(r+n.nodeSize-2),f)}return!!(l||u)}function Cy(e,t,n,r,i,a,o,s){if(o==0||o==t.height)return!1;let c=!1;for(let l=i;l<a;l++){let i=o*t.width+l,a=t.map[i];if(t.map[i-t.width]==a){c=!0;let i=n.nodeAt(a),{top:u,left:d}=t.findCell(a);e.setNodeMarkup(e.mapping.slice(s).map(a+r),null,{...i.attrs,rowspan:o-u}),e.insert(e.mapping.slice(s).map(t.positionAt(o,d,n)),i.type.createAndFill({...i.attrs,rowspan:u+i.attrs.rowspan-o})),l+=i.attrs.colspan-1}}return c}function wy(e,t,n,r,i,a,o,s){if(o==0||o==t.width)return!1;let c=!1;for(let l=i;l<a;l++){let i=l*t.width+o,a=t.map[i];if(t.map[i-1]==a){c=!0;let i=n.nodeAt(a),u=t.colCount(a),d=e.mapping.slice(s).map(a+r);e.setNodeMarkup(d,null,Pv(i.attrs,o-u,i.attrs.colspan-(o-u))),e.insert(d+i.nodeSize,i.type.createAndFill(Pv(i.attrs,0,o-u))),l+=i.attrs.rowspan-1}}return c}function Ty(e,t,n,r,i){let a=n?e.doc.nodeAt(n-1):e.doc;if(!a)throw Error(`No table found`);let o=Z.get(a),{top:s,left:c}=r,l=c+i.width,u=s+i.height,d=e.tr,f=0;function p(){if(a=n?d.doc.nodeAt(n-1):d.doc,!a)throw Error(`No table found`);o=Z.get(a),f=d.mapping.maps.length}Sy(d,o,a,n,l,u,f)&&p(),Cy(d,o,a,n,c,l,s,f)&&p(),Cy(d,o,a,n,c,l,u,f)&&p(),wy(d,o,a,n,s,u,c,f)&&p(),wy(d,o,a,n,s,u,l,f)&&p();for(let e=s;e<u;e++){let t=o.positionAt(e,c,a),r=o.positionAt(e,l,a);d.replace(d.mapping.slice(f).map(t+n),d.mapping.slice(f).map(r+n),new y(i.rows[e-s],0,0))}p(),d.setSelection(new Q(d.doc.resolve(n+o.positionAt(s,c,a)),d.doc.resolve(n+o.positionAt(u-1,l-1,a)))),t(d)}var Ey=uc({ArrowLeft:Oy(`horiz`,-1),ArrowRight:Oy(`horiz`,1),ArrowUp:Oy(`vert`,-1),ArrowDown:Oy(`vert`,1),"Shift-ArrowLeft":ky(`horiz`,-1),"Shift-ArrowRight":ky(`horiz`,1),"Shift-ArrowUp":ky(`vert`,-1),"Shift-ArrowDown":ky(`vert`,1),Backspace:_y,"Mod-Backspace":_y,Delete:_y,"Mod-Delete":_y});function Dy(e,t,n){return n.eq(e.selection)?!1:(t&&t(e.tr.setSelection(n).scrollIntoView()),!0)}function Oy(e,t){return(n,r,i)=>{if(!i)return!1;let a=n.selection;if(a instanceof Q)return Dy(n,r,N.near(a.$headCell,t));if(e!=`horiz`&&!a.empty)return!1;let o=Ny(i,e,t);if(o==null)return!1;if(e==`horiz`)return Dy(n,r,N.near(n.doc.resolve(a.head+t),t));{let i=n.doc.resolve(o),a=Nv(i,e,t),s;return s=a?N.near(a,1):t<0?N.near(n.doc.resolve(i.before(-1)),-1):N.near(n.doc.resolve(i.after(-1)),1),Dy(n,r,s)}}}function ky(e,t){return(n,r,i)=>{if(!i)return!1;let a=n.selection,o;if(a instanceof Q)o=a;else{let r=Ny(i,e,t);if(r==null)return!1;o=new Q(n.doc.resolve(r))}let s=Nv(o.$headCell,e,t);return s?Dy(n,r,new Q(o.$anchorCell,s)):!1}}function Ay(e,t){let n=e.state.doc,r=Tv(n.resolve(t));return r?(e.dispatch(e.state.tr.setSelection(new Q(r))),!0):!1}function jy(e,t,n){if(!Dv(e.state))return!1;let r=vy(n),i=e.state.selection;if(i instanceof Q){r||={width:1,height:1,rows:[p.from(by(Cv(e.state.schema).cell,n))]};let t=i.$anchorCell.node(-1),a=i.$anchorCell.start(-1),o=Z.get(t).rectBetween(i.$anchorCell.pos-a,i.$headCell.pos-a);return r=xy(r,o.right-o.left,o.bottom-o.top),Ty(e.state,e.dispatch,a,o,r),!0}else if(r){let t=Ov(e.state),n=t.start(-1);return Ty(e.state,e.dispatch,n,Z.get(t.node(-1)).findCell(t.pos-n),r),!0}else return!1}function My(e,t){if(t.button!=0||t.ctrlKey||t.metaKey)return;let n=Py(e,t.target),r;if(t.shiftKey&&e.state.selection instanceof Q)i(e.state.selection.$anchorCell,t),t.preventDefault();else if(t.shiftKey&&n&&(r=Tv(e.state.selection.$anchor))!=null&&Fy(e,t)?.pos!=r.pos)i(r,t),t.preventDefault();else if(!n)return;function i(t,n){let r=Fy(e,n),i=wv.getState(e.state)==null;if(!r||!Mv(t,r))if(i)r=t;else return;let a=new Q(t,r);if(i||!e.state.selection.eq(a)){let n=e.state.tr.setSelection(a);i&&n.setMeta(wv,t.pos),e.dispatch(n)}}function a(){e.root.removeEventListener(`mouseup`,a),e.root.removeEventListener(`dragstart`,a),e.root.removeEventListener(`mousemove`,o),wv.getState(e.state)!=null&&e.dispatch(e.state.tr.setMeta(wv,-1))}function o(r){let o=r,s=wv.getState(e.state),c;if(s!=null)c=e.state.doc.resolve(s);else if(Py(e,o.target)!=n&&(c=Fy(e,t),!c))return a();c&&i(c,o)}e.root.addEventListener(`mouseup`,a),e.root.addEventListener(`dragstart`,a),e.root.addEventListener(`mousemove`,o)}function Ny(e,t,n){if(!(e.state.selection instanceof P))return null;let{$head:r}=e.state.selection;for(let i=r.depth-1;i>=0;i--){let a=r.node(i);if((n<0?r.index(i):r.indexAfter(i))!=(n<0?0:a.childCount))return null;if(a.type.spec.tableRole==`cell`||a.type.spec.tableRole==`header_cell`){let a=r.before(i),o=t==`vert`?n>0?`down`:`up`:n>0?`right`:`left`;return e.endOfTextblock(o)?a:null}}return null}function Py(e,t){for(;t&&t!=e.dom;t=t.parentNode)if(t.nodeName==`TD`||t.nodeName==`TH`)return t;return null}function Fy(e,t){let n=e.posAtCoords({left:t.clientX,top:t.clientY});if(!n)return null;let{inside:r,pos:i}=n;return r>=0&&Tv(e.state.doc.resolve(r))||Tv(e.state.doc.resolve(i))}var Iy=class{constructor(e,t){this.node=e,this.defaultCellMinWidth=t,this.dom=document.createElement(`div`),this.dom.className=`tableWrapper`,this.table=this.dom.appendChild(document.createElement(`table`)),this.table.style.setProperty(`--default-cell-min-width`,`${t}px`),this.colgroup=this.table.appendChild(document.createElement(`colgroup`)),Ly(e,this.colgroup,this.table,t),this.contentDOM=this.table.appendChild(document.createElement(`tbody`))}update(e){return e.type==this.node.type?(this.node=e,Ly(e,this.colgroup,this.table,this.defaultCellMinWidth),!0):!1}ignoreMutation(e){return e.type==`attributes`&&(e.target==this.table||this.colgroup.contains(e.target))}};function Ly(e,t,n,r,i,a){let o=0,s=!0,c=t.firstChild,l=e.firstChild;if(l){for(let e=0,n=0;e<l.childCount;e++){let{colspan:u,colwidth:d}=l.child(e).attrs;for(let e=0;e<u;e++,n++){let l=i==n?a:d&&d[e],u=l?l+`px`:``;if(o+=l||r,l||(s=!1),c)c.style.width!=u&&(c.style.width=u),c=c.nextSibling;else{let e=document.createElement(`col`);e.style.width=u,t.appendChild(e)}}}for(;c;){var u;let e=c.nextSibling;(u=c.parentNode)==null||u.removeChild(c),c=e}s?(n.style.width=o+`px`,n.style.minWidth=``):(n.style.width=``,n.style.minWidth=o+`px`)}}var Ry=new L(`tableColumnResizing`);function zy({handleWidth:e=5,cellMinWidth:t=25,defaultCellMinWidth:n=100,View:r=Iy,lastColumnResizable:i=!0}={}){let a=new I({key:Ry,state:{init(e,t){var i;let o=(i=a.spec)==null||(i=i.props)==null?void 0:i.nodeViews,s=Cv(t.schema).table.name;return r&&o&&(o[s]=(e,t)=>new r(e,n,t)),new By(-1,!1)},apply(e,t){return t.apply(e)}},props:{attributes:e=>{let t=Ry.getState(e);return t&&t.activeHandle>-1?{class:`resize-cursor`}:{}},handleDOMEvents:{mousemove:(t,n)=>{Vy(t,n,e,i)},mouseleave:e=>{Hy(e)},mousedown:(e,r)=>{Uy(e,r,t,n)}},decorations:e=>{let t=Ry.getState(e);if(t&&t.activeHandle>-1)return Qy(e,t.activeHandle)},nodeViews:{}}});return a}var By=class e{constructor(e,t){this.activeHandle=e,this.dragging=t}apply(t){let n=this,r=t.getMeta(Ry);if(r&&r.setHandle!=null)return new e(r.setHandle,!1);if(r&&r.setDragging!==void 0)return new e(n.activeHandle,r.setDragging);if(n.activeHandle>-1&&t.docChanged){let r=t.mapping.map(n.activeHandle,-1);return Av(t.doc.resolve(r))||(r=-1),new e(r,n.dragging)}return n}};function Vy(e,t,n,r){if(!e.editable)return;let i=Ry.getState(e.state);if(i&&!i.dragging){let a=Gy(t.target),o=-1;if(a){let{left:r,right:i}=a.getBoundingClientRect();t.clientX-r<=n?o=Ky(e,t,`left`,n):i-t.clientX<=n&&(o=Ky(e,t,`right`,n))}if(o!=i.activeHandle){if(!r&&o!==-1){let t=e.state.doc.resolve(o),n=t.node(-1),r=Z.get(n),i=t.start(-1);if(r.colCount(t.pos-i)+t.nodeAfter.attrs.colspan-1==r.width-1)return}Jy(e,o)}}}function Hy(e){if(!e.editable)return;let t=Ry.getState(e.state);t&&t.activeHandle>-1&&!t.dragging&&Jy(e,-1)}function Uy(e,t,n,r){if(!e.editable)return!1;let i=e.dom.ownerDocument.defaultView??window,a=Ry.getState(e.state);if(!a||a.activeHandle==-1||a.dragging)return!1;let o=e.state.doc.nodeAt(a.activeHandle),s=Wy(e,a.activeHandle,o.attrs);e.dispatch(e.state.tr.setMeta(Ry,{setDragging:{startX:t.clientX,startWidth:s}}));function c(t){i.removeEventListener(`mouseup`,c),i.removeEventListener(`mousemove`,l);let r=Ry.getState(e.state);r?.dragging&&(Yy(e,r.activeHandle,qy(r.dragging,t,n)),e.dispatch(e.state.tr.setMeta(Ry,{setDragging:null})))}function l(t){if(!t.which)return c(t);let i=Ry.getState(e.state);if(i&&i.dragging){let a=qy(i.dragging,t,n);Xy(e,i.activeHandle,a,r)}}return Xy(e,a.activeHandle,s,r),i.addEventListener(`mouseup`,c),i.addEventListener(`mousemove`,l),t.preventDefault(),!0}function Wy(e,t,{colspan:n,colwidth:r}){let i=r&&r[r.length-1];if(i)return i;let a=e.domAtPos(t),o=a.node.childNodes[a.offset].offsetWidth,s=n;if(r)for(let e=0;e<n;e++)r[e]&&(o-=r[e],s--);return o/s}function Gy(e){for(;e&&e.nodeName!=`TD`&&e.nodeName!=`TH`;)e=e.classList&&e.classList.contains(`ProseMirror`)?null:e.parentNode;return e}function Ky(e,t,n,r){let i=n==`right`?-r:r,a=e.posAtCoords({left:t.clientX+i,top:t.clientY});if(!a)return-1;let{pos:o}=a,s=Tv(e.state.doc.resolve(o));if(!s)return-1;if(n==`right`)return s.pos;let c=Z.get(s.node(-1)),l=s.start(-1),u=c.map.indexOf(s.pos-l);return u%c.width==0?-1:l+c.map[u-1]}function qy(e,t,n){let r=t.clientX-e.startX;return Math.max(n,e.startWidth+r)}function Jy(e,t){e.dispatch(e.state.tr.setMeta(Ry,{setHandle:t}))}function Yy(e,t,n){let r=e.state.doc.resolve(t),i=r.node(-1),a=Z.get(i),o=r.start(-1),s=a.colCount(r.pos-o)+r.nodeAfter.attrs.colspan-1,c=e.state.tr;for(let e=0;e<a.height;e++){let t=e*a.width+s;if(e&&a.map[t]==a.map[t-a.width])continue;let r=a.map[t],l=i.nodeAt(r).attrs,u=l.colspan==1?0:s-a.colCount(r);if(l.colwidth&&l.colwidth[u]==n)continue;let d=l.colwidth?l.colwidth.slice():Zy(l.colspan);d[u]=n,c.setNodeMarkup(o+r,null,{...l,colwidth:d})}c.docChanged&&e.dispatch(c)}function Xy(e,t,n,r){let i=e.state.doc.resolve(t),a=i.node(-1),o=i.start(-1),s=Z.get(a).colCount(i.pos-o)+i.nodeAfter.attrs.colspan-1,c=e.domAtPos(i.start(-1)).node;for(;c&&c.nodeName!=`TABLE`;)c=c.parentNode;c&&Ly(a,c.firstChild,c,r,s,n)}function Zy(e){return Array(e).fill(0)}function Qy(e,t){let n=[],r=e.doc.resolve(t),i=r.node(-1);if(!i)return R.empty;let a=Z.get(i),o=r.start(-1),s=a.colCount(r.pos-o)+r.nodeAfter.attrs.colspan-1;for(let t=0;t<a.height;t++){let r=s+t*a.width;if((s==a.width-1||a.map[r]!=a.map[r+1])&&(t==0||a.map[r]!=a.map[r-a.width])){let t=a.map[r],s=o+t+i.nodeAt(t).nodeSize-1,c=document.createElement(`div`);c.className=`column-resize-handle`,Ry.getState(e)?.dragging&&n.push(ss.node(o+t,o+t+i.nodeAt(t).nodeSize,{class:`column-resize-dragging`})),n.push(ss.widget(s,c))}}return R.create(e.doc,n)}function $y({allowTableNodeSelection:e=!1}={}){return new I({key:wv,state:{init(){return null},apply(e,t){let n=e.getMeta(wv);if(n!=null)return n==-1?null:n;if(t==null||!e.docChanged)return t;let{deleted:r,pos:i}=e.mapping.mapResult(t);return r?null:i}},props:{decorations:Rv,handleDOMEvents:{mousedown:My},createSelectionBetween(e){return wv.getState(e.state)==null?null:e.state.selection},handleTripleClick:Ay,handleKeyDown:Ey,handlePaste:jy},appendTransaction(t,n,r){return Vv(r,Wv(r,n),e)}})}function eb(e){return e===`left`||e===`right`||e===`center`?e:null}function tb(e){let t=(e.style.textAlign||``).trim().toLowerCase(),n=(e.getAttribute(`align`)||``).trim().toLowerCase();return eb(t||n)}function nb(e){return eb(e?.align)}function rb(){return{default:null,parseHTML:e=>tb(e),renderHTML:e=>e.align?{style:`text-align: ${e.align}`}:{}}}var ib=W.create({name:`tableCell`,addOptions(){return{HTMLAttributes:{}}},content:`block+`,addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:e=>{let t=e.getAttribute(`colwidth`),n=t?t.split(`,`).map(e=>parseInt(e,10)):null;if(!n){let t=e.closest(`table`)?.querySelectorAll(`colgroup > col`),n=Array.from(e.parentElement?.children||[]).indexOf(e);if(n&&n>-1&&t&&t[n]){let e=t[n].getAttribute(`width`);return e?[parseInt(e,10)]:null}}return n}},align:rb()}},tableRole:`cell`,isolating:!0,parseHTML(){return[{tag:`td`}]},renderHTML({HTMLAttributes:e}){return[`td`,H(this.options.HTMLAttributes,e),0]}}),ab=W.create({name:`tableHeader`,addOptions(){return{HTMLAttributes:{}}},content:`block+`,addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:e=>{let t=e.getAttribute(`colwidth`);return t?t.split(`,`).map(e=>parseInt(e,10)):null}},align:rb()}},tableRole:`header_cell`,isolating:!0,parseHTML(){return[{tag:`th`}]},renderHTML({HTMLAttributes:e}){return[`th`,H(this.options.HTMLAttributes,e),0]}}),ob=W.create({name:`tableRow`,addOptions(){return{HTMLAttributes:{}}},content:`(tableCell | tableHeader)*`,tableRole:`row`,parseHTML(){return[{tag:`tr`}]},renderHTML({HTMLAttributes:e}){return[`tr`,H(this.options.HTMLAttributes,e),0]}});function sb(e,t){return t?[`width`,`${Math.max(t,e)}px`]:[`min-width`,`${e}px`]}function cb(e,t,n,r,i,a){var o;let s=0,c=!0,l=t.firstChild,u=e.firstChild;if(u!==null)for(let e=0,n=0;e<u.childCount;e+=1){let{colspan:o,colwidth:d}=u.child(e).attrs;for(let e=0;e<o;e+=1,n+=1){let o=i===n?a:d&&d[e],u=o?`${o}px`:``;if(s+=o||r,o||(c=!1),l){if(l.style.width!==u){let[e,t]=sb(r,o);l.style.setProperty(e,t)}l=l.nextSibling}else{let e=document.createElement(`col`),[n,i]=sb(r,o);e.style.setProperty(n,i),t.appendChild(e)}}}for(;l;){let e=l.nextSibling;(o=l.parentNode)==null||o.removeChild(l),l=e}let d=e.attrs.style&&typeof e.attrs.style==`string`&&/\bwidth\s*:/i.test(e.attrs.style);c&&!d?(n.style.width=`${s}px`,n.style.minWidth=``):(n.style.width=``,n.style.minWidth=`${s}px`)}var lb=class{constructor(e,t,n,r={}){this.node=e,this.cellMinWidth=t,this.dom=document.createElement(`div`),this.dom.className=`tableWrapper`,this.table=this.dom.appendChild(document.createElement(`table`));for(let[e,t]of Object.entries(r))t!=null&&(e===`style`?this.table.style.cssText=String(t):this.table.setAttribute(e,String(t)));e.attrs.style&&(this.table.style.cssText=e.attrs.style),this.colgroup=this.table.appendChild(document.createElement(`colgroup`)),cb(e,this.colgroup,this.table,t),this.contentDOM=this.table.appendChild(document.createElement(`tbody`))}update(e){return e.type===this.node.type?(this.node=e,cb(e,this.colgroup,this.table,this.cellMinWidth),!0):!1}ignoreMutation(e){let t=e.target,n=this.dom.contains(t),r=this.contentDOM.contains(t);return!!(n&&!r&&(e.type===`attributes`||e.type===`childList`||e.type===`characterData`))}};function ub(e,t,n,r){let i=0,a=!0,o=[],s=e.firstChild;if(!s)return{};for(let e=0,c=0;e<s.childCount;e+=1){let{colspan:l,colwidth:u}=s.child(e).attrs;for(let e=0;e<l;e+=1,c+=1){let s=n===c?r:u&&u[e];i+=s||t,s||(a=!1);let[l,d]=sb(t,s);o.push([`col`,{style:`${l}: ${d}`}])}}let c=a?`${i}px`:``,l=a?``:`${i}px`;return{colgroup:[`colgroup`,{},...o],tableWidth:c,tableMinWidth:l}}function db(e,t){return t?e.createChecked(null,t):e.createAndFill()}function fb(e){if(e.cached.tableNodeTypes)return e.cached.tableNodeTypes;let t={};return Object.keys(e.nodes).forEach(n=>{let r=e.nodes[n];r.spec.tableRole&&(t[r.spec.tableRole]=r)}),e.cached.tableNodeTypes=t,t}function pb(e,t,n,r,i){let a=fb(e),o=[],s=[];for(let e=0;e<n;e+=1){let e=db(a.cell,i);if(e&&s.push(e),r){let e=db(a.header_cell,i);e&&o.push(e)}}let c=[];for(let e=0;e<t;e+=1)c.push(a.row.createChecked(null,r&&e===0?o:s));return a.table.createChecked(null,c)}function mb(e){return e instanceof Q}var hb=({editor:e})=>{let{selection:t}=e.state;if(!mb(t))return!1;let n=0;return Nl(t.ranges[0].$from,e=>e.type.name===`table`)?.node.descendants(e=>{if(e.type.name===`table`)return!1;[`tableCell`,`tableHeader`].includes(e.type.name)&&(n+=1)}),n===t.ranges.length?(e.commands.deleteTable(),!0):!1};function gb(e){return(e||``).replace(/\s+/g,` `).trim()}function _b(e,t,n={}){let r=n.cellLineSeparator??``;if(!e||!e.content||e.content.length===0)return``;let i=[];e.content.forEach(e=>{let n=[];e.content&&e.content.forEach(e=>{let i=``;i=e.content&&Array.isArray(e.content)&&e.content.length>1?e.content.map(e=>t.renderChildren(e)).join(r):e.content?t.renderChildren(e.content):``;let a=gb(i),o=e.type===`tableHeader`,s=nb(e.attrs);n.push({text:a,isHeader:o,align:s})}),i.push(n)});let a=i.reduce((e,t)=>Math.max(e,t.length),0);if(a===0)return``;let o=Array.from({length:a}).fill(0);i.forEach(e=>{for(let t=0;t<a;t+=1){let n=(e[t]?.text||``).length;n>o[t]&&(o[t]=n),o[t]<3&&(o[t]=3)}});let s=(e,t)=>e+` `.repeat(Math.max(0,t-e.length)),c=i[0],l=c.some(e=>e.isHeader),u=Array.from({length:a}).fill(null);i.forEach(e=>{for(let t=0;t<a;t+=1)!u[t]&&e[t]?.align&&(u[t]=e[t].align)});let d=`
|
|
151
|
+
`,f=Array.from({length:a}).map((e,t)=>l&&c[t]&&c[t].text||``);return d+=`| ${f.map((e,t)=>s(e,o[t])).join(` | `)} |
|
|
152
|
+
`,d+=`| ${o.map((e,t)=>{let n=Math.max(3,e),r=u[t];return r===`left`?`:${`-`.repeat(n)}`:r===`right`?`${`-`.repeat(n)}:`:r===`center`?`:${`-`.repeat(n)}:`:`-`.repeat(n)}).join(` | `)} |
|
|
153
|
+
`,(l?i.slice(1):i).forEach(e=>{d+=`| ${Array.from({length:a}).fill(0).map((t,n)=>s(e[n]&&e[n].text||``,o[n])).join(` | `)} |
|
|
154
|
+
`}),d}var vb=_b,yb=W.create({name:`table`,addOptions(){return{HTMLAttributes:{},resizable:!1,renderWrapper:!1,handleWidth:5,cellMinWidth:25,View:lb,lastColumnResizable:!0,allowTableNodeSelection:!1}},content:`tableRow+`,tableRole:`table`,isolating:!0,group:`block`,parseHTML(){return[{tag:`table`}]},renderHTML({node:e,HTMLAttributes:t}){let{colgroup:n,tableWidth:r,tableMinWidth:i}=ub(e,this.options.cellMinWidth),a=t.style;function o(){return a||(r?`width: ${r}`:`min-width: ${i}`)}let s=[`table`,H(this.options.HTMLAttributes,t,{style:o()}),n,[`tbody`,0]];return this.options.renderWrapper?[`div`,{class:`tableWrapper`},s]:s},parseMarkdown:(e,t)=>{let n=[],r=Array.isArray(e.align)?e.align:[];if(e.header){let i=[];e.header.forEach((e,n)=>{let a=eb(r[n]??e.align),o=a?{align:a}:{};i.push(t.createNode(`tableHeader`,o,[{type:`paragraph`,content:t.parseInline(e.tokens)}]))}),n.push(t.createNode(`tableRow`,{},i))}return e.rows&&e.rows.forEach(e=>{let i=[];e.forEach((e,n)=>{let a=eb(r[n]??e.align),o=a?{align:a}:{};i.push(t.createNode(`tableCell`,o,[{type:`paragraph`,content:t.parseInline(e.tokens)}]))}),n.push(t.createNode(`tableRow`,{},i))}),t.createNode(`table`,void 0,n)},renderMarkdown:(e,t)=>vb(e,t),addCommands(){return{insertTable:({rows:e=3,cols:t=3,withHeaderRow:n=!0}={})=>({tr:r,dispatch:i,editor:a})=>{let o=pb(a.schema,e,t,n);if(i){let e=r.selection.from+1;r.replaceSelectionWith(o).scrollIntoView().setSelection(P.near(r.doc.resolve(e)))}return!0},addColumnBefore:()=>({state:e,dispatch:t})=>Jv(e,t),addColumnAfter:()=>({state:e,dispatch:t})=>Yv(e,t),deleteColumn:()=>({state:e,dispatch:t})=>Zv(e,t),addRowBefore:()=>({state:e,dispatch:t})=>ey(e,t),addRowAfter:()=>({state:e,dispatch:t})=>ty(e,t),deleteRow:()=>({state:e,dispatch:t})=>ry(e,t),deleteTable:()=>({state:e,dispatch:t})=>gy(e,t),mergeCells:()=>({state:e,dispatch:t})=>oy(e,t),splitCell:()=>({state:e,dispatch:t})=>sy(e,t),toggleHeaderColumn:()=>({state:e,dispatch:t})=>fy(`column`)(e,t),toggleHeaderRow:()=>({state:e,dispatch:t})=>fy(`row`)(e,t),toggleHeaderCell:()=>({state:e,dispatch:t})=>py(e,t),mergeOrSplit:()=>({state:e,dispatch:t})=>oy(e,t)?!0:sy(e,t),setCellAttribute:(e,t)=>({state:n,dispatch:r})=>ly(e,t)(n,r),goToNextCell:()=>({state:e,dispatch:t})=>hy(1)(e,t),goToPreviousCell:()=>({state:e,dispatch:t})=>hy(-1)(e,t),fixTables:()=>({state:e,dispatch:t})=>(t&&Wv(e),!0),setCellSelection:e=>({tr:t,dispatch:n})=>{if(n){let n=Q.create(t.doc,e.anchorCell,e.headCell);t.setSelection(n)}return!0}}},addKeyboardShortcuts(){return{Tab:()=>this.editor.commands.goToNextCell()?!0:this.editor.can().addRowAfter()?this.editor.chain().addRowAfter().goToNextCell().run():!1,"Shift-Tab":()=>this.editor.commands.goToPreviousCell(),Backspace:hb,"Mod-Backspace":hb,Delete:hb,"Mod-Delete":hb}},addProseMirrorPlugins(){return[...this.options.resizable&&this.editor.isEditable?[zy({handleWidth:this.options.handleWidth,cellMinWidth:this.options.cellMinWidth,defaultCellMinWidth:this.options.cellMinWidth,View:this.options.View,lastColumnResizable:this.options.lastColumnResizable})]:[],$y({allowTableNodeSelection:this.options.allowTableNodeSelection})]},addNodeView(){let e=this.options.resizable&&this.editor.isEditable,t=this.options.View;return e||!t?null:({node:e,view:n,HTMLAttributes:r})=>{let i=H(this.options.HTMLAttributes,r);return new t(e,this.options.cellMinWidth,n,i)}},extendNodeSchema(e){return{tableRole:V(B(e,`tableRole`,{name:e.name,options:e.options,storage:e.storage}))}}});U.create({name:`tableKit`,addExtensions(){let e=[];return this.options.table!==!1&&e.push(yb.configure(this.options.table)),this.options.tableCell!==!1&&e.push(ib.configure(this.options.tableCell)),this.options.tableHeader!==!1&&e.push(ab.configure(this.options.tableHeader)),this.options.tableRow!==!1&&e.push(ob.configure(this.options.tableRow)),e}});var bb=l(s(((e,t)=>{function n(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw Error(`map is read-only`)}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw Error(`set is read-only`)}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{let r=e[t],i=typeof r;(i===`object`||i===`function`)&&!Object.isFrozen(r)&&n(r)}),e}var r=class{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function i(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function a(e,...t){let n=Object.create(null);for(let t in e)n[t]=e[t];return t.forEach(function(e){for(let t in e)n[t]=e[t]}),n}var o=`</span>`,s=e=>!!e.scope,c=(e,{prefix:t})=>{if(e.startsWith(`language:`))return e.replace(`language:`,`language-`);if(e.includes(`.`)){let n=e.split(`.`);return[`${t}${n.shift()}`,...n.map((e,t)=>`${e}${`_`.repeat(t+1)}`)].join(` `)}return`${t}${e}`},l=class{constructor(e,t){this.buffer=``,this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=i(e)}openNode(e){if(!s(e))return;let t=c(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){s(e)&&(this.buffer+=o)}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}},u=(e={})=>{let t={children:[]};return Object.assign(t,e),t},d=class e{constructor(){this.rootNode=u(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){let t=u({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t==`string`?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(t=>this._walk(e,t)),e.closeNode(t)),e}static _collapse(t){typeof t!=`string`&&t.children&&(t.children.every(e=>typeof e==`string`)?t.children=[t.children.join(``)]:t.children.forEach(t=>{e._collapse(t)}))}},f=class extends d{constructor(e){super(),this.options=e}addText(e){e!==``&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){let n=e.root;t&&(n.scope=`language:${t}`),this.add(n)}toHTML(){return new l(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function p(e){return e?typeof e==`string`?e:e.source:null}function m(e){return _(`(?=`,e,`)`)}function h(e){return _(`(?:`,e,`)*`)}function g(e){return _(`(?:`,e,`)?`)}function _(...e){return e.map(e=>p(e)).join(``)}function v(e){let t=e[e.length-1];return typeof t==`object`&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function y(...e){return`(`+(v(e).capture?``:`?:`)+e.map(e=>p(e)).join(`|`)+`)`}function b(e){return RegExp(e.toString()+`|`).exec(``).length-1}function x(e,t){let n=e&&e.exec(t);return n&&n.index===0}var S=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function C(e,{joinWith:t}){let n=0;return e.map(e=>{n+=1;let t=n,r=p(e),i=``;for(;r.length>0;){let e=S.exec(r);if(!e){i+=r;break}i+=r.substring(0,e.index),r=r.substring(e.index+e[0].length),e[0][0]===`\\`&&e[1]?i+=`\\`+String(Number(e[1])+t):(i+=e[0],e[0]===`(`&&n++)}return i}).map(e=>`(${e})`).join(t)}var w=/\b\B/,T=`[a-zA-Z]\\w*`,E=`[a-zA-Z_]\\w*`,D=`\\b\\d+(\\.\\d+)?`,O=`(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)`,k=`\\b(0b[01]+)`,A=`!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~`,ee=(e={})=>{let t=/^#![ ]*\//;return e.binary&&(e.begin=_(t,/.*\b/,e.binary,/\b.*/)),a({scope:`meta`,begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{e.index!==0&&t.ignoreMatch()}},e)},j={begin:`\\\\[\\s\\S]`,relevance:0},te={scope:`string`,begin:`'`,end:`'`,illegal:`\\n`,contains:[j]},M={scope:`string`,begin:`"`,end:`"`,illegal:`\\n`,contains:[j]},ne={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},re=function(e,t,n={}){let r=a({scope:`comment`,begin:e,end:t,contains:[]},n);r.contains.push({scope:`doctag`,begin:`[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)`,end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let i=y(`I`,`a`,`is`,`so`,`us`,`to`,`at`,`if`,`in`,`it`,`on`,/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:_(/[ ]+/,`(`,i,/[.]?[:]?([.][ ]|[ ])/,`){3}`)}),r},ie=re(`//`,`$`),ae=re(`/\\*`,`\\*/`),oe=re(`#`,`$`),se=Object.freeze({__proto__:null,APOS_STRING_MODE:te,BACKSLASH_ESCAPE:j,BINARY_NUMBER_MODE:{scope:`number`,begin:k,relevance:0},BINARY_NUMBER_RE:k,COMMENT:re,C_BLOCK_COMMENT_MODE:ae,C_LINE_COMMENT_MODE:ie,C_NUMBER_MODE:{scope:`number`,begin:O,relevance:0},C_NUMBER_RE:O,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})},HASH_COMMENT_MODE:oe,IDENT_RE:T,MATCH_NOTHING_RE:w,METHOD_GUARD:{begin:`\\.\\s*[a-zA-Z_]\\w*`,relevance:0},NUMBER_MODE:{scope:`number`,begin:D,relevance:0},NUMBER_RE:D,PHRASAL_WORDS_MODE:ne,QUOTE_STRING_MODE:M,REGEXP_MODE:{scope:`regexp`,begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[j,{begin:/\[/,end:/\]/,relevance:0,contains:[j]}]},RE_STARTERS_RE:A,SHEBANG:ee,TITLE_MODE:{scope:`title`,begin:T,relevance:0},UNDERSCORE_IDENT_RE:E,UNDERSCORE_TITLE_MODE:{scope:`title`,begin:E,relevance:0}});function ce(e,t){e.input[e.index-1]===`.`&&t.ignoreMatch()}function le(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function ue(e,t){t&&e.beginKeywords&&(e.begin=`\\b(`+e.beginKeywords.split(` `).join(`|`)+`)(?!\\.)(?=\\b|\\s)`,e.__beforeBegin=ce,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function de(e,t){Array.isArray(e.illegal)&&(e.illegal=y(...e.illegal))}function fe(e,t){if(e.match){if(e.begin||e.end)throw Error(`begin & end are not supported with match`);e.begin=e.match,delete e.match}}function pe(e,t){e.relevance===void 0&&(e.relevance=1)}var me=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw Error(`beforeMatch cannot be used with starts`);let n=Object.assign({},e);Object.keys(e).forEach(t=>{delete e[t]}),e.keywords=n.keywords,e.begin=_(n.beforeMatch,m(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},he=[`of`,`and`,`for`,`in`,`not`,`or`,`if`,`then`,`parent`,`list`,`value`],ge=`keyword`;function _e(e,t,n=ge){let r=Object.create(null);return typeof e==`string`?i(n,e.split(` `)):Array.isArray(e)?i(n,e):Object.keys(e).forEach(function(n){Object.assign(r,_e(e[n],t,n))}),r;function i(e,n){t&&(n=n.map(e=>e.toLowerCase())),n.forEach(function(t){let n=t.split(`|`);r[n[0]]=[e,ve(n[0],n[1])]})}}function ve(e,t){return t?Number(t):+!ye(e)}function ye(e){return he.includes(e.toLowerCase())}var be={},xe=e=>{console.error(e)},Se=(e,...t)=>{console.log(`WARN: ${e}`,...t)},Ce=(e,t)=>{be[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),be[`${e}/${t}`]=!0)},we=Error();function Te(e,t,{key:n}){let r=0,i=e[n],a={},o={};for(let e=1;e<=t.length;e++)o[e+r]=i[e],a[e+r]=!0,r+=b(t[e-1]);e[n]=o,e[n]._emit=a,e[n]._multi=!0}function Ee(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw xe(`skip, excludeBegin, returnBegin not compatible with beginScope: {}`),we;if(typeof e.beginScope!=`object`||e.beginScope===null)throw xe(`beginScope must be object`),we;Te(e,e.begin,{key:`beginScope`}),e.begin=C(e.begin,{joinWith:``})}}function De(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw xe(`skip, excludeEnd, returnEnd not compatible with endScope: {}`),we;if(typeof e.endScope!=`object`||e.endScope===null)throw xe(`endScope must be object`),we;Te(e,e.end,{key:`endScope`}),e.end=C(e.end,{joinWith:``})}}function Oe(e){e.scope&&typeof e.scope==`object`&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function ke(e){Oe(e),typeof e.beginScope==`string`&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope==`string`&&(e.endScope={_wrap:e.endScope}),Ee(e),De(e)}function Ae(e){function t(t,n){return new RegExp(p(t),`m`+(e.case_insensitive?`i`:``)+(e.unicodeRegex?`u`:``)+(n?`g`:``))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=b(e)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);let e=this.regexes.map(e=>e[1]);this.matcherRe=t(C(e,{joinWith:`|`}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;let t=this.matcherRe.exec(e);if(!t)return null;let n=t.findIndex((e,t)=>t>0&&e!==void 0),r=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,r)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];let t=new n;return this.rules.slice(e).forEach(([e,n])=>t.addRule(e,n)),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),t.type===`begin`&&this.count++}exec(e){let t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition()&&!(n&&n.index===this.lastIndex)){let t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}function i(e){let t=new r;return e.contains.forEach(e=>t.addRule(e.begin,{rule:e,type:`begin`})),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:`end`}),e.illegal&&t.addRule(e.illegal,{type:`illegal`}),t}function o(n,r){let a=n;if(n.isCompiled)return a;[le,fe,ke,me].forEach(e=>e(n,r)),e.compilerExtensions.forEach(e=>e(n,r)),n.__beforeBegin=null,[ue,de,pe].forEach(e=>e(n,r)),n.isCompiled=!0;let s=null;return typeof n.keywords==`object`&&n.keywords.$pattern&&(n.keywords=Object.assign({},n.keywords),s=n.keywords.$pattern,delete n.keywords.$pattern),s||=/\w+/,n.keywords&&=_e(n.keywords,e.case_insensitive),a.keywordPatternRe=t(s,!0),r&&(n.begin||=/\B|\b/,a.beginRe=t(a.begin),!n.end&&!n.endsWithParent&&(n.end=/\B|\b/),n.end&&(a.endRe=t(a.end)),a.terminatorEnd=p(a.end)||``,n.endsWithParent&&r.terminatorEnd&&(a.terminatorEnd+=(n.end?`|`:``)+r.terminatorEnd)),n.illegal&&(a.illegalRe=t(n.illegal)),n.contains||=[],n.contains=[].concat(...n.contains.map(function(e){return Me(e===`self`?n:e)})),n.contains.forEach(function(e){o(e,a)}),n.starts&&o(n.starts,r),a.matcher=i(a),a}if(e.compilerExtensions||=[],e.contains&&e.contains.includes(`self`))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=a(e.classNameAliases||{}),o(e)}function je(e){return e?e.endsWithParent||je(e.starts):!1}function Me(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return a(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:je(e)?a(e,{starts:e.starts?a(e.starts):null}):Object.isFrozen(e)?a(e):e}var Ne=`11.11.1`,Pe=class extends Error{constructor(e,t){super(e),this.name=`HTMLInjectionError`,this.html=t}},Fe=i,Ie=a,Le=Symbol(`nomatch`),Re=7,ze=function(e){let t=Object.create(null),i=Object.create(null),a=[],o=!0,s=`Could not find the language '{}', did you forget to load/include a language module?`,c={disableAutodetect:!0,name:`Plain text`,contains:[]},l={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:`hljs-`,cssSelector:`pre code`,languages:null,__emitter:f};function u(e){return l.noHighlightRe.test(e)}function d(e){let t=e.className+` `;t+=e.parentNode?e.parentNode.className:``;let n=l.languageDetectRe.exec(t);if(n){let t=te(n[1]);return t||(Se(s.replace(`{}`,n[1])),Se(`Falling back to no-highlight mode for this block.`,e)),t?n[1]:`no-highlight`}return t.split(/\s+/).find(e=>u(e)||te(e))}function p(e,t,n){let r=``,i=``;typeof t==`object`?(r=e,n=t.ignoreIllegals,i=t.language):(Ce(`10.7.0`,`highlight(lang, code, ...args) has been deprecated.`),Ce(`10.7.0`,`Please use highlight(code, options) instead.
|
|
155
|
+
https://github.com/highlightjs/highlight.js/issues/2277`),i=e,r=t),n===void 0&&(n=!0);let a={code:r,language:i};oe(`before:highlight`,a);let o=a.result?a.result:v(a.language,a.code,n);return o.code=a.code,oe(`after:highlight`,o),o}function v(e,n,i,a){let c=Object.create(null);function u(e,t){return e.keywords[t]}function d(){if(!A.keywords){j.addText(M);return}let e=0;A.keywordPatternRe.lastIndex=0;let t=A.keywordPatternRe.exec(M),n=``;for(;t;){n+=M.substring(e,t.index);let r=D.case_insensitive?t[0].toLowerCase():t[0],i=u(A,r);if(i){let[e,a]=i;if(j.addText(n),n=``,c[r]=(c[r]||0)+1,c[r]<=Re&&(ne+=a),e.startsWith(`_`))n+=t[0];else{let n=D.classNameAliases[e]||e;m(t[0],n)}}else n+=t[0];e=A.keywordPatternRe.lastIndex,t=A.keywordPatternRe.exec(M)}n+=M.substring(e),j.addText(n)}function f(){if(M===``)return;let e=null;if(typeof A.subLanguage==`string`){if(!t[A.subLanguage]){j.addText(M);return}e=v(A.subLanguage,M,!0,ee[A.subLanguage]),ee[A.subLanguage]=e._top}else e=S(M,A.subLanguage.length?A.subLanguage:null);A.relevance>0&&(ne+=e.relevance),j.__addSublanguage(e._emitter,e.language)}function p(){A.subLanguage==null?d():f(),M=``}function m(e,t){e!==``&&(j.startScope(t),j.addText(e),j.endScope())}function h(e,t){let n=1,r=t.length-1;for(;n<=r;){if(!e._emit[n]){n++;continue}let r=D.classNameAliases[e[n]]||e[n],i=t[n];r?m(i,r):(M=i,d(),M=``),n++}}function g(e,t){return e.scope&&typeof e.scope==`string`&&j.openNode(D.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(m(M,D.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),M=``):e.beginScope._multi&&(h(e.beginScope,t),M=``)),A=Object.create(e,{parent:{value:A}}),A}function _(e,t,n){let i=x(e.endRe,n);if(i){if(e[`on:end`]){let n=new r(e);e[`on:end`](t,n),n.isMatchIgnored&&(i=!1)}if(i){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return _(e.parent,t,n)}function y(e){return A.matcher.regexIndex===0?(M+=e[0],1):(ae=!0,0)}function b(e){let t=e[0],n=e.rule,i=new r(n),a=[n.__beforeBegin,n[`on:begin`]];for(let n of a)if(n&&(n(e,i),i.isMatchIgnored))return y(t);return n.skip?M+=t:(n.excludeBegin&&(M+=t),p(),!n.returnBegin&&!n.excludeBegin&&(M=t)),g(n,e),n.returnBegin?0:t.length}function C(e){let t=e[0],r=n.substring(e.index),i=_(A,e,r);if(!i)return Le;let a=A;A.endScope&&A.endScope._wrap?(p(),m(t,A.endScope._wrap)):A.endScope&&A.endScope._multi?(p(),h(A.endScope,e)):a.skip?M+=t:(a.returnEnd||a.excludeEnd||(M+=t),p(),a.excludeEnd&&(M=t));do A.scope&&j.closeNode(),!A.skip&&!A.subLanguage&&(ne+=A.relevance),A=A.parent;while(A!==i.parent);return i.starts&&g(i.starts,e),a.returnEnd?0:t.length}function w(){let e=[];for(let t=A;t!==D;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach(e=>j.openNode(e))}let T={};function E(t,r){let a=r&&r[0];if(M+=t,a==null)return p(),0;if(T.type===`begin`&&r.type===`end`&&T.index===r.index&&a===``){if(M+=n.slice(r.index,r.index+1),!o){let t=Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=T.rule,t}return 1}if(T=r,r.type===`begin`)return b(r);if(r.type===`illegal`&&!i){let e=Error(`Illegal lexeme "`+a+`" for mode "`+(A.scope||`<unnamed>`)+`"`);throw e.mode=A,e}else if(r.type===`end`){let e=C(r);if(e!==Le)return e}if(r.type===`illegal`&&a===``)return M+=`
|
|
156
|
+
`,1;if(ie>1e5&&ie>r.index*3)throw Error(`potential infinite loop, way more iterations than matches`);return M+=a,a.length}let D=te(e);if(!D)throw xe(s.replace(`{}`,e)),Error(`Unknown language: "`+e+`"`);let O=Ae(D),k=``,A=a||O,ee={},j=new l.__emitter(l);w();let M=``,ne=0,re=0,ie=0,ae=!1;try{if(D.__emitTokens)D.__emitTokens(n,j);else{for(A.matcher.considerAll();;){ie++,ae?ae=!1:A.matcher.considerAll(),A.matcher.lastIndex=re;let e=A.matcher.exec(n);if(!e)break;let t=E(n.substring(re,e.index),e);re=e.index+t}E(n.substring(re))}return j.finalize(),k=j.toHTML(),{language:e,value:k,relevance:ne,illegal:!1,_emitter:j,_top:A}}catch(t){if(t.message&&t.message.includes(`Illegal`))return{language:e,value:Fe(n),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:re,context:n.slice(re-100,re+100),mode:t.mode,resultSoFar:k},_emitter:j};if(o)return{language:e,value:Fe(n),illegal:!1,relevance:0,errorRaised:t,_emitter:j,_top:A};throw t}}function b(e){let t={value:Fe(e),illegal:!1,relevance:0,_top:c,_emitter:new l.__emitter(l)};return t._emitter.addText(e),t}function S(e,n){n=n||l.languages||Object.keys(t);let r=b(e),i=n.filter(te).filter(ne).map(t=>v(t,e,!1));i.unshift(r);let[a,o]=i.sort((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(te(e.language).supersetOf===t.language)return 1;if(te(t.language).supersetOf===e.language)return-1}return 0}),s=a;return s.secondBest=o,s}function C(e,t,n){let r=t&&i[t]||n;e.classList.add(`hljs`),e.classList.add(`language-${r}`)}function w(e){let t=null,n=d(e);if(u(n))return;if(oe(`before:highlightElement`,{el:e,language:n}),e.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e);return}if(e.children.length>0&&(l.ignoreUnescapedHTML||(console.warn(`One of your code blocks includes unescaped HTML. This is a potentially serious security risk.`),console.warn(`https://github.com/highlightjs/highlight.js/wiki/security`),console.warn(`The element with unescaped HTML:`),console.warn(e)),l.throwUnescapedHTML))throw new Pe(`One of your code blocks includes unescaped HTML.`,e.innerHTML);t=e;let r=t.textContent,i=n?p(r,{language:n,ignoreIllegals:!0}):S(r);e.innerHTML=i.value,e.dataset.highlighted=`yes`,C(e,n,i.language),e.result={language:i.language,re:i.relevance,relevance:i.relevance},i.secondBest&&(e.secondBest={language:i.secondBest.language,relevance:i.secondBest.relevance}),oe(`after:highlightElement`,{el:e,result:i,text:r})}function T(e){l=Ie(l,e)}let E=()=>{k(),Ce(`10.6.0`,`initHighlighting() deprecated. Use highlightAll() now.`)};function D(){k(),Ce(`10.6.0`,`initHighlightingOnLoad() deprecated. Use highlightAll() now.`)}let O=!1;function k(){function e(){k()}if(document.readyState===`loading`){O||window.addEventListener(`DOMContentLoaded`,e,!1),O=!0;return}document.querySelectorAll(l.cssSelector).forEach(w)}function A(n,r){let i=null;try{i=r(e)}catch(e){if(xe(`Language definition for '{}' could not be registered.`.replace(`{}`,n)),o)xe(e);else throw e;i=c}i.name||=n,t[n]=i,i.rawDefinition=r.bind(null,e),i.aliases&&M(i.aliases,{languageName:n})}function ee(e){delete t[e];for(let t of Object.keys(i))i[t]===e&&delete i[t]}function j(){return Object.keys(t)}function te(e){return e=(e||``).toLowerCase(),t[e]||t[i[e]]}function M(e,{languageName:t}){typeof e==`string`&&(e=[e]),e.forEach(e=>{i[e.toLowerCase()]=t})}function ne(e){let t=te(e);return t&&!t.disableAutodetect}function re(e){e[`before:highlightBlock`]&&!e[`before:highlightElement`]&&(e[`before:highlightElement`]=t=>{e[`before:highlightBlock`](Object.assign({block:t.el},t))}),e[`after:highlightBlock`]&&!e[`after:highlightElement`]&&(e[`after:highlightElement`]=t=>{e[`after:highlightBlock`](Object.assign({block:t.el},t))})}function ie(e){re(e),a.push(e)}function ae(e){let t=a.indexOf(e);t!==-1&&a.splice(t,1)}function oe(e,t){let n=e;a.forEach(function(e){e[n]&&e[n](t)})}function ce(e){return Ce(`10.7.0`,`highlightBlock will be removed entirely in v12.0`),Ce(`10.7.0`,`Please use highlightElement now.`),w(e)}Object.assign(e,{highlight:p,highlightAuto:S,highlightAll:k,highlightElement:w,highlightBlock:ce,configure:T,initHighlighting:E,initHighlightingOnLoad:D,registerLanguage:A,unregisterLanguage:ee,listLanguages:j,getLanguage:te,registerAliases:M,autoDetection:ne,inherit:Ie,addPlugin:ie,removePlugin:ae}),e.debugMode=function(){o=!1},e.safeMode=function(){o=!0},e.versionString=Ne,e.regex={concat:_,lookahead:m,either:y,optional:g,anyNumberOfTimes:h};for(let e in se)typeof se[e]==`object`&&n(se[e]);return Object.assign(e,se),e},Be=ze({});Be.newInstance=()=>ze({}),t.exports=Be,Be.HighlightJS=Be,Be.default=Be}))()).default;function xb(e,t=[]){return e.flatMap(e=>{let n=[...t,...e.properties?e.properties.className:[]];return e.children?xb(e.children,n):{text:e.value,classes:n}})}function Sb(e){return e.value||e.children||[]}function Cb(e){return!!bb.getLanguage(e)}function wb({doc:e,name:t,lowlight:n,defaultLanguage:r}){let i=[];return jl(e,e=>e.type.name===t).forEach(e=>{let t=e.pos+1,a=e.node.attrs.language||r,o=n.listLanguages();xb(a&&(o.includes(a)||Cb(a)||n.registered?.call(n,a))?Sb(n.highlight(a,e.node.textContent)):Sb(n.highlightAuto(e.node.textContent))).forEach(e=>{let n=t+e.text.length;if(e.classes.length){let r=ss.inline(t,n,{class:e.classes.join(` `)});i.push(r)}t=n})}),R.create(e,i)}function Tb(e){return typeof e==`function`}function Eb({name:e,lowlight:t,defaultLanguage:n}){if(![`highlight`,`highlightAuto`,`listLanguages`].every(e=>Tb(t[e])))throw Error(`You should provide an instance of lowlight to use the code-block-lowlight extension`);let r=new I({key:new L(`lowlight`),state:{init:(r,{doc:i})=>wb({doc:i,name:e,lowlight:t,defaultLanguage:n}),apply:(r,i,a,o)=>{let s=a.selection.$head.parent.type.name,c=o.selection.$head.parent.type.name,l=jl(a.doc,t=>t.type.name===e),u=jl(o.doc,t=>t.type.name===e);return r.docChanged&&([s,c].includes(e)||u.length!==l.length||r.steps.some(e=>e.from!==void 0&&e.to!==void 0&&l.some(t=>t.pos>=e.from&&t.pos+t.node.nodeSize<=e.to)))?wb({doc:r.doc,name:e,lowlight:t,defaultLanguage:n}):i.map(r.mapping,r.doc)}},props:{decorations(e){return r.getState(e)}}});return r}var Db=Pp.extend({addOptions(){return{...this.parent?.call(this),lowlight:{},languageClassPrefix:`language-`,exitOnTripleEnter:!0,exitOnArrowDown:!0,defaultLanguage:null,enableTabIndentation:!1,tabSize:4,HTMLAttributes:{}}},addProseMirrorPlugins(){return[...this.parent?.call(this)||[],Eb({name:this.name,lowlight:this.options.lowlight,defaultLanguage:this.options.defaultLanguage})]}});function Ob(e){let t=e.regex,n=e.COMMENT(`//`,`$`,{contains:[{begin:/\\\n/}]}),r=`[a-zA-Z_]\\w*::`,i=`(?!struct)(decltype\\(auto\\)|`+t.optional(r)+`[a-zA-Z_]\\w*`+t.optional(`<[^<>]+>`)+`)`,a={className:`type`,begin:`\\b[a-z\\d_]*_t\\b`},o={className:`string`,variants:[{begin:`(u8?|U|L)?"`,end:`"`,illegal:`\\n`,contains:[e.BACKSLASH_ESCAPE]},{begin:`(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)`,end:`'`,illegal:`.`},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},s={className:`number`,variants:[{begin:`[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)`},{begin:`[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)`}],relevance:0},c={className:`meta`,begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:`if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include`},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:`string`}),{className:`string`,begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},l={className:`title`,begin:t.optional(r)+e.IDENT_RE,relevance:0},u=t.optional(r)+e.IDENT_RE+`\\s*\\(`,d=`alignas.alignof.and.and_eq.asm.atomic_cancel.atomic_commit.atomic_noexcept.auto.bitand.bitor.break.case.catch.class.co_await.co_return.co_yield.compl.concept.const_cast|10.consteval.constexpr.constinit.continue.decltype.default.delete.do.dynamic_cast|10.else.enum.explicit.export.extern.false.final.for.friend.goto.if.import.inline.module.mutable.namespace.new.noexcept.not.not_eq.nullptr.operator.or.or_eq.override.private.protected.public.reflexpr.register.reinterpret_cast|10.requires.return.sizeof.static_assert.static_cast|10.struct.switch.synchronized.template.this.thread_local.throw.transaction_safe.transaction_safe_dynamic.true.try.typedef.typeid.typename.union.using.virtual.volatile.while.xor.xor_eq`.split(`.`),f=[`bool`,`char`,`char16_t`,`char32_t`,`char8_t`,`double`,`float`,`int`,`long`,`short`,`void`,`wchar_t`,`unsigned`,`signed`,`const`,`static`],p=`any.auto_ptr.barrier.binary_semaphore.bitset.complex.condition_variable.condition_variable_any.counting_semaphore.deque.false_type.flat_map.flat_set.future.imaginary.initializer_list.istringstream.jthread.latch.lock_guard.multimap.multiset.mutex.optional.ostringstream.packaged_task.pair.promise.priority_queue.queue.recursive_mutex.recursive_timed_mutex.scoped_lock.set.shared_future.shared_lock.shared_mutex.shared_timed_mutex.shared_ptr.stack.string_view.stringstream.timed_mutex.thread.true_type.tuple.unique_lock.unique_ptr.unordered_map.unordered_multimap.unordered_multiset.unordered_set.variant.vector.weak_ptr.wstring.wstring_view`.split(`.`),m=`abort.abs.acos.apply.as_const.asin.atan.atan2.calloc.ceil.cerr.cin.clog.cos.cosh.cout.declval.endl.exchange.exit.exp.fabs.floor.fmod.forward.fprintf.fputs.free.frexp.fscanf.future.invoke.isalnum.isalpha.iscntrl.isdigit.isgraph.islower.isprint.ispunct.isspace.isupper.isxdigit.labs.launder.ldexp.log.log10.make_pair.make_shared.make_shared_for_overwrite.make_tuple.make_unique.malloc.memchr.memcmp.memcpy.memset.modf.move.pow.printf.putchar.puts.realloc.scanf.sin.sinh.snprintf.sprintf.sqrt.sscanf.std.stderr.stdin.stdout.strcat.strchr.strcmp.strcpy.strcspn.strlen.strncat.strncmp.strncpy.strpbrk.strrchr.strspn.strstr.swap.tan.tanh.terminate.to_underlying.tolower.toupper.vfprintf.visit.vprintf.vsprintf`.split(`.`),h={type:f,keyword:d,literal:[`NULL`,`false`,`nullopt`,`nullptr`,`true`],built_in:[`_Pragma`],_type_hints:p},g={className:`function.dispatch`,relevance:0,keywords:{_hint:m},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},_=[g,c,a,n,e.C_BLOCK_COMMENT_MODE,s,o],v={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:`new throw return else`,end:/;/}],keywords:h,contains:_.concat([{begin:/\(/,end:/\)/,keywords:h,contains:_.concat([`self`]),relevance:0}]),relevance:0},y={className:`function`,begin:`(`+i+`[\\*&\\s]+)+`+u,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:h,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:`decltype\\(auto\\)`,keywords:h,relevance:0},{begin:u,returnBegin:!0,contains:[l],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[o,s]},{relevance:0,match:/,/},{className:`params`,begin:/\(/,end:/\)/,keywords:h,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,o,s,a,{begin:/\(/,end:/\)/,keywords:h,relevance:0,contains:[`self`,n,e.C_BLOCK_COMMENT_MODE,o,s,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,c]};return{name:`C++`,aliases:[`cc`,`c++`,`h++`,`hpp`,`hh`,`hxx`,`cxx`],keywords:h,illegal:`</`,classNameAliases:{"function.dispatch":`built_in`},contains:[].concat(v,y,g,_,[c,{begin:`\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)`,end:`>`,keywords:h,contains:[`self`,a]},{begin:e.IDENT_RE+`::`,keywords:h},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:`keyword`,3:`title.class`}}])}}function kb(e){let t={type:[`boolean`,`byte`,`word`,`String`],built_in:`KeyboardController.MouseController.SoftwareSerial.EthernetServer.EthernetClient.LiquidCrystal.RobotControl.GSMVoiceCall.EthernetUDP.EsploraTFT.HttpClient.RobotMotor.WiFiClient.GSMScanner.FileSystem.Scheduler.GSMServer.YunClient.YunServer.IPAddress.GSMClient.GSMModem.Keyboard.Ethernet.Console.GSMBand.Esplora.Stepper.Process.WiFiUDP.GSM_SMS.Mailbox.USBHost.Firmata.PImage.Client.Server.GSMPIN.FileIO.Bridge.Serial.EEPROM.Stream.Mouse.Audio.Servo.File.Task.GPRS.WiFi.Wire.TFT.GSM.SPI.SD`.split(`.`),_hints:`setup.loop.runShellCommandAsynchronously.analogWriteResolution.retrieveCallingNumber.printFirmwareVersion.analogReadResolution.sendDigitalPortPair.noListenOnLocalhost.readJoystickButton.setFirmwareVersion.readJoystickSwitch.scrollDisplayRight.getVoiceCallStatus.scrollDisplayLeft.writeMicroseconds.delayMicroseconds.beginTransmission.getSignalStrength.runAsynchronously.getAsynchronously.listenOnLocalhost.getCurrentCarrier.readAccelerometer.messageAvailable.sendDigitalPorts.lineFollowConfig.countryNameWrite.runShellCommand.readStringUntil.rewindDirectory.readTemperature.setClockDivider.readLightSensor.endTransmission.analogReference.detachInterrupt.countryNameRead.attachInterrupt.encryptionType.readBytesUntil.robotNameWrite.readMicrophone.robotNameRead.cityNameWrite.userNameWrite.readJoystickY.readJoystickX.mouseReleased.openNextFile.scanNetworks.noInterrupts.digitalWrite.beginSpeaker.mousePressed.isActionDone.mouseDragged.displayLogos.noAutoscroll.addParameter.remoteNumber.getModifiers.keyboardRead.userNameRead.waitContinue.processInput.parseCommand.printVersion.readNetworks.writeMessage.blinkVersion.cityNameRead.readMessage.setDataMode.parsePacket.isListening.setBitOrder.beginPacket.isDirectory.motorsWrite.drawCompass.digitalRead.clearScreen.serialEvent.rightToLeft.setTextSize.leftToRight.requestFrom.keyReleased.compassRead.analogWrite.interrupts.WiFiServer.disconnect.playMelody.parseFloat.autoscroll.getPINUsed.setPINUsed.setTimeout.sendAnalog.readSlider.analogRead.beginWrite.createChar.motorsStop.keyPressed.tempoWrite.readButton.subnetMask.debugPrint.macAddress.writeGreen.randomSeed.attachGPRS.readString.sendString.remotePort.releaseAll.mouseMoved.background.getXChange.getYChange.answerCall.getResult.voiceCall.endPacket.constrain.getSocket.writeJSON.getButton.available.connected.findUntil.readBytes.exitValue.readGreen.writeBlue.startLoop.IPAddress.isPressed.sendSysex.pauseMode.gatewayIP.setCursor.getOemKey.tuneWrite.noDisplay.loadImage.switchPIN.onRequest.onReceive.changePIN.playFile.noBuffer.parseInt.overflow.checkPIN.knobRead.beginTFT.bitClear.updateIR.bitWrite.position.writeRGB.highByte.writeRed.setSpeed.readBlue.noStroke.remoteIP.transfer.shutdown.hangCall.beginSMS.endWrite.attached.maintain.noCursor.checkReg.checkPUK.shiftOut.isValid.shiftIn.pulseIn.connect.println.localIP.pinMode.getIMEI.display.noBlink.process.getBand.running.beginSD.drawBMP.lowByte.setBand.release.bitRead.prepare.pointTo.readRed.setMode.noFill.remove.listen.stroke.detach.attach.noTone.exists.buffer.height.bitSet.circle.config.cursor.random.IRread.setDNS.endSMS.getKey.micros.millis.begin.print.write.ready.flush.width.isPIN.blink.clear.press.mkdir.rmdir.close.point.yield.image.BSSID.click.delay.read.text.move.peek.beep.rect.line.open.seek.fill.size.turn.stop.home.find.step.tone.sqrt.RSSI.SSID.end.bit.tan.cos.sin.pow.map.abs.max.min.get.run.put`.split(`.`),literal:[`DIGITAL_MESSAGE`,`FIRMATA_STRING`,`ANALOG_MESSAGE`,`REPORT_DIGITAL`,`REPORT_ANALOG`,`INPUT_PULLUP`,`SET_PIN_MODE`,`INTERNAL2V56`,`SYSTEM_RESET`,`LED_BUILTIN`,`INTERNAL1V1`,`SYSEX_START`,`INTERNAL`,`EXTERNAL`,`DEFAULT`,`OUTPUT`,`INPUT`,`HIGH`,`LOW`]},n=Ob(e),r=n.keywords;return r.type=[...r.type,...t.type],r.literal=[...r.literal,...t.literal],r.built_in=[...r.built_in,...t.built_in],r._hints=t._hints,n.name=`Arduino`,n.aliases=[`ino`],n.supersetOf=`cpp`,n}function Ab(e){let t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:[`self`,{begin:/:-/,contains:[n]}]};Object.assign(n,{className:`variable`,variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,`(?![\\w\\d])(?![$])`)},r]});let i={className:`subst`,begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},a=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:`comment`}}),o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:`string`})]}},s={className:`string`,begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(s);let c={match:/\\"/},l={className:`string`,begin:/'/,end:/'/},u={match:/\\'/},d={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:`number`},e.NUMBER_MODE,n]},f=e.SHEBANG({binary:`(${[`fish`,`bash`,`zsh`,`sh`,`csh`,`ksh`,`tcsh`,`dash`,`scsh`].join(`|`)})`,relevance:10}),p={className:`function`,begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},m=[`if`,`then`,`else`,`elif`,`fi`,`time`,`for`,`while`,`until`,`in`,`do`,`done`,`case`,`esac`,`coproc`,`function`,`select`],h=[`true`,`false`],g={match:/(\/[a-z._-]+)+/},_=[`break`,`cd`,`continue`,`eval`,`exec`,`exit`,`export`,`getopts`,`hash`,`pwd`,`readonly`,`return`,`shift`,`test`,`times`,`trap`,`umask`,`unset`],v=[`alias`,`bind`,`builtin`,`caller`,`command`,`declare`,`echo`,`enable`,`help`,`let`,`local`,`logout`,`mapfile`,`printf`,`read`,`readarray`,`source`,`sudo`,`type`,`typeset`,`ulimit`,`unalias`],y=`autoload.bg.bindkey.bye.cap.chdir.clone.comparguments.compcall.compctl.compdescribe.compfiles.compgroups.compquote.comptags.comptry.compvalues.dirs.disable.disown.echotc.echoti.emulate.fc.fg.float.functions.getcap.getln.history.integer.jobs.kill.limit.log.noglob.popd.print.pushd.pushln.rehash.sched.setcap.setopt.stat.suspend.ttyctl.unfunction.unhash.unlimit.unsetopt.vared.wait.whence.where.which.zcompile.zformat.zftp.zle.zmodload.zparseopts.zprof.zpty.zregexparse.zsocket.zstyle.ztcp`.split(`.`),b=`chcon.chgrp.chown.chmod.cp.dd.df.dir.dircolors.ln.ls.mkdir.mkfifo.mknod.mktemp.mv.realpath.rm.rmdir.shred.sync.touch.truncate.vdir.b2sum.base32.base64.cat.cksum.comm.csplit.cut.expand.fmt.fold.head.join.md5sum.nl.numfmt.od.paste.ptx.pr.sha1sum.sha224sum.sha256sum.sha384sum.sha512sum.shuf.sort.split.sum.tac.tail.tr.tsort.unexpand.uniq.wc.arch.basename.chroot.date.dirname.du.echo.env.expr.factor.groups.hostid.id.link.logname.nice.nohup.nproc.pathchk.pinky.printenv.printf.pwd.readlink.runcon.seq.sleep.stat.stdbuf.stty.tee.test.timeout.tty.uname.unlink.uptime.users.who.whoami.yes`.split(`.`);return{name:`Bash`,aliases:[`sh`,`zsh`],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:m,literal:h,built_in:[..._,...v,`set`,`shopt`,...y,...b]},contains:[f,e.SHEBANG(),p,d,a,o,g,s,c,l,u,n]}}function jb(e){let t=e.regex,n=e.COMMENT(`//`,`$`,{contains:[{begin:/\\\n/}]}),r=`[a-zA-Z_]\\w*::`,i=`(decltype\\(auto\\)|`+t.optional(r)+`[a-zA-Z_]\\w*`+t.optional(`<[^<>]+>`)+`)`,a={className:`type`,variants:[{begin:`\\b[a-z\\d_]*_t\\b`},{match:/\batomic_[a-z]{3,6}\b/}]},o={className:`string`,variants:[{begin:`(u8?|U|L)?"`,end:`"`,illegal:`\\n`,contains:[e.BACKSLASH_ESCAPE]},{begin:`(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)`,end:`'`,illegal:`.`},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},s={className:`number`,variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},c={className:`meta`,begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:`if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include`},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:`string`}),{className:`string`,begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},l={className:`title`,begin:t.optional(r)+e.IDENT_RE,relevance:0},u=t.optional(r)+e.IDENT_RE+`\\s*\\(`,d={keyword:`asm.auto.break.case.continue.default.do.else.enum.extern.for.fortran.goto.if.inline.register.restrict.return.sizeof.typeof.typeof_unqual.struct.switch.typedef.union.volatile.while._Alignas._Alignof._Atomic._Generic._Noreturn._Static_assert._Thread_local.alignas.alignof.noreturn.static_assert.thread_local._Pragma`.split(`.`),type:`float.double.signed.unsigned.int.short.long.char.void._Bool._BitInt._Complex._Imaginary._Decimal32._Decimal64._Decimal96._Decimal128._Decimal64x._Decimal128x._Float16._Float32._Float64._Float128._Float32x._Float64x._Float128x.const.static.constexpr.complex.bool.imaginary`.split(`.`),literal:`true false NULL`,built_in:`std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr`},f=[c,a,n,e.C_BLOCK_COMMENT_MODE,s,o],p={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:`new throw return else`,end:/;/}],keywords:d,contains:f.concat([{begin:/\(/,end:/\)/,keywords:d,contains:f.concat([`self`]),relevance:0}]),relevance:0},m={begin:`(`+i+`[\\*&\\s]+)+`+u,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:d,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:`decltype\\(auto\\)`,keywords:d,relevance:0},{begin:u,returnBegin:!0,contains:[e.inherit(l,{className:`title.function`})],relevance:0},{relevance:0,match:/,/},{className:`params`,begin:/\(/,end:/\)/,keywords:d,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,o,s,a,{begin:/\(/,end:/\)/,keywords:d,relevance:0,contains:[`self`,n,e.C_BLOCK_COMMENT_MODE,o,s,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,c]};return{name:`C`,aliases:[`h`],keywords:d,disableAutodetect:!0,illegal:`</`,contains:[].concat(p,m,f,[c,{begin:e.IDENT_RE+`::`,keywords:d},{className:`class`,beginKeywords:`enum class struct union`,end:/[{;:<>=]/,contains:[{beginKeywords:`final class struct`},e.TITLE_MODE]}]),exports:{preprocessor:c,strings:o,keywords:d}}}function Mb(e){let t=e.regex,n=e.COMMENT(`//`,`$`,{contains:[{begin:/\\\n/}]}),r=`[a-zA-Z_]\\w*::`,i=`(?!struct)(decltype\\(auto\\)|`+t.optional(r)+`[a-zA-Z_]\\w*`+t.optional(`<[^<>]+>`)+`)`,a={className:`type`,begin:`\\b[a-z\\d_]*_t\\b`},o={className:`string`,variants:[{begin:`(u8?|U|L)?"`,end:`"`,illegal:`\\n`,contains:[e.BACKSLASH_ESCAPE]},{begin:`(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)`,end:`'`,illegal:`.`},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},s={className:`number`,variants:[{begin:`[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)`},{begin:`[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)`}],relevance:0},c={className:`meta`,begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:`if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include`},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:`string`}),{className:`string`,begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},l={className:`title`,begin:t.optional(r)+e.IDENT_RE,relevance:0},u=t.optional(r)+e.IDENT_RE+`\\s*\\(`,d=`alignas.alignof.and.and_eq.asm.atomic_cancel.atomic_commit.atomic_noexcept.auto.bitand.bitor.break.case.catch.class.co_await.co_return.co_yield.compl.concept.const_cast|10.consteval.constexpr.constinit.continue.decltype.default.delete.do.dynamic_cast|10.else.enum.explicit.export.extern.false.final.for.friend.goto.if.import.inline.module.mutable.namespace.new.noexcept.not.not_eq.nullptr.operator.or.or_eq.override.private.protected.public.reflexpr.register.reinterpret_cast|10.requires.return.sizeof.static_assert.static_cast|10.struct.switch.synchronized.template.this.thread_local.throw.transaction_safe.transaction_safe_dynamic.true.try.typedef.typeid.typename.union.using.virtual.volatile.while.xor.xor_eq`.split(`.`),f=[`bool`,`char`,`char16_t`,`char32_t`,`char8_t`,`double`,`float`,`int`,`long`,`short`,`void`,`wchar_t`,`unsigned`,`signed`,`const`,`static`],p=`any.auto_ptr.barrier.binary_semaphore.bitset.complex.condition_variable.condition_variable_any.counting_semaphore.deque.false_type.flat_map.flat_set.future.imaginary.initializer_list.istringstream.jthread.latch.lock_guard.multimap.multiset.mutex.optional.ostringstream.packaged_task.pair.promise.priority_queue.queue.recursive_mutex.recursive_timed_mutex.scoped_lock.set.shared_future.shared_lock.shared_mutex.shared_timed_mutex.shared_ptr.stack.string_view.stringstream.timed_mutex.thread.true_type.tuple.unique_lock.unique_ptr.unordered_map.unordered_multimap.unordered_multiset.unordered_set.variant.vector.weak_ptr.wstring.wstring_view`.split(`.`),m=`abort.abs.acos.apply.as_const.asin.atan.atan2.calloc.ceil.cerr.cin.clog.cos.cosh.cout.declval.endl.exchange.exit.exp.fabs.floor.fmod.forward.fprintf.fputs.free.frexp.fscanf.future.invoke.isalnum.isalpha.iscntrl.isdigit.isgraph.islower.isprint.ispunct.isspace.isupper.isxdigit.labs.launder.ldexp.log.log10.make_pair.make_shared.make_shared_for_overwrite.make_tuple.make_unique.malloc.memchr.memcmp.memcpy.memset.modf.move.pow.printf.putchar.puts.realloc.scanf.sin.sinh.snprintf.sprintf.sqrt.sscanf.std.stderr.stdin.stdout.strcat.strchr.strcmp.strcpy.strcspn.strlen.strncat.strncmp.strncpy.strpbrk.strrchr.strspn.strstr.swap.tan.tanh.terminate.to_underlying.tolower.toupper.vfprintf.visit.vprintf.vsprintf`.split(`.`),h={type:f,keyword:d,literal:[`NULL`,`false`,`nullopt`,`nullptr`,`true`],built_in:[`_Pragma`],_type_hints:p},g={className:`function.dispatch`,relevance:0,keywords:{_hint:m},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},_=[g,c,a,n,e.C_BLOCK_COMMENT_MODE,s,o],v={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:`new throw return else`,end:/;/}],keywords:h,contains:_.concat([{begin:/\(/,end:/\)/,keywords:h,contains:_.concat([`self`]),relevance:0}]),relevance:0},y={className:`function`,begin:`(`+i+`[\\*&\\s]+)+`+u,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:h,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:`decltype\\(auto\\)`,keywords:h,relevance:0},{begin:u,returnBegin:!0,contains:[l],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[o,s]},{relevance:0,match:/,/},{className:`params`,begin:/\(/,end:/\)/,keywords:h,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,o,s,a,{begin:/\(/,end:/\)/,keywords:h,relevance:0,contains:[`self`,n,e.C_BLOCK_COMMENT_MODE,o,s,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,c]};return{name:`C++`,aliases:[`cc`,`c++`,`h++`,`hpp`,`hh`,`hxx`,`cxx`],keywords:h,illegal:`</`,classNameAliases:{"function.dispatch":`built_in`},contains:[].concat(v,y,g,_,[c,{begin:`\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)`,end:`>`,keywords:h,contains:[`self`,a]},{begin:e.IDENT_RE+`::`,keywords:h},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:`keyword`,3:`title.class`}}])}}function Nb(e){let t=[`bool`,`byte`,`char`,`decimal`,`delegate`,`double`,`dynamic`,`enum`,`float`,`int`,`long`,`nint`,`nuint`,`object`,`sbyte`,`short`,`string`,`ulong`,`uint`,`ushort`],n=[`public`,`private`,`protected`,`static`,`internal`,`protected`,`abstract`,`async`,`extern`,`override`,`unsafe`,`virtual`,`new`,`sealed`,`partial`],r={keyword:`abstract.as.base.break.case.catch.class.const.continue.do.else.event.explicit.extern.finally.fixed.for.foreach.goto.if.implicit.in.interface.internal.is.lock.namespace.new.operator.out.override.params.private.protected.public.readonly.record.ref.return.scoped.sealed.sizeof.stackalloc.static.struct.switch.this.throw.try.typeof.unchecked.unsafe.using.virtual.void.volatile.while`.split(`.`).concat(`add.alias.and.ascending.args.async.await.by.descending.dynamic.equals.file.from.get.global.group.init.into.join.let.nameof.not.notnull.on.or.orderby.partial.record.remove.required.scoped.select.set.unmanaged.value|0.var.when.where.with.yield`.split(`.`)),built_in:t,literal:[`default`,`false`,`null`,`true`]},i=e.inherit(e.TITLE_MODE,{begin:`[a-zA-Z](\\.?\\w)*`}),a={className:`number`,variants:[{begin:`\\b(0b[01']+)`},{begin:`(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)`},{begin:`(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)`}],relevance:0},o={className:`string`,begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},s={className:`string`,begin:`@"`,end:`"`,contains:[{begin:`""`}]},c=e.inherit(s,{illegal:/\n/}),l={className:`subst`,begin:/\{/,end:/\}/,keywords:r},u=e.inherit(l,{illegal:/\n/}),d={className:`string`,begin:/\$"/,end:`"`,illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,u]},f={className:`string`,begin:/\$@"/,end:`"`,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:`""`},l]},p=e.inherit(f,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:`""`},u]});l.contains=[f,d,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],u.contains=[p,d,c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];let m={variants:[o,f,d,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},h={begin:`<`,end:`>`,contains:[{beginKeywords:`in out`},i]},g=e.IDENT_RE+`(<`+e.IDENT_RE+`(\\s*,\\s*`+e.IDENT_RE+`)*>)?(\\[\\])?`,_={begin:`@`+e.IDENT_RE,relevance:0};return{name:`C#`,aliases:[`cs`,`c#`],keywords:r,illegal:/::/,contains:[e.COMMENT(`///`,`$`,{returnBegin:!0,contains:[{className:`doctag`,variants:[{begin:`///`,relevance:0},{begin:`<!--|-->`},{begin:`</?`,end:`>`}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:`meta`,begin:`#`,end:`$`,keywords:{keyword:`if else elif endif define undef warning error line region endregion pragma checksum`}},m,a,{beginKeywords:`class interface`,relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:`where class`},i,h,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:`namespace`,relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:`record`,relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[i,h,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:`meta`,begin:`^\\s*\\[(?=[\\w])`,excludeBegin:!0,end:`\\]`,excludeEnd:!0,contains:[{className:`string`,begin:/"/,end:/"/}]},{beginKeywords:`new return throw await else`,relevance:0},{className:`function`,begin:`(`+g+`\\s+)+`+e.IDENT_RE+`\\s*(<[^=]+>\\s*)?\\(`,returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:r,contains:[{beginKeywords:n.join(` `),relevance:0},{begin:e.IDENT_RE+`\\s*(<[^=]+>\\s*)?\\(`,returnBegin:!0,contains:[e.TITLE_MODE,h],relevance:0},{match:/\(\)/},{className:`params`,begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:r,relevance:0,contains:[m,a,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},_]}}var Pb=e=>({IMPORTANT:{scope:`meta`,begin:`!important`},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:`number`,begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:`built_in`,begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:`selector-attr`,begin:/\[/,end:/\]/,illegal:`$`,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:`number`,begin:e.NUMBER_RE+`(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?`,relevance:0},CSS_VARIABLE:{className:`attr`,begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Fb=`a.abbr.address.article.aside.audio.b.blockquote.body.button.canvas.caption.cite.code.dd.del.details.dfn.div.dl.dt.em.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hgroup.html.i.iframe.img.input.ins.kbd.label.legend.li.main.mark.menu.nav.object.ol.optgroup.option.p.picture.q.quote.samp.section.select.source.span.strong.summary.sup.table.tbody.td.textarea.tfoot.th.thead.time.tr.ul.var.video`.split(`.`),Ib=`defs.g.marker.mask.pattern.svg.switch.symbol.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feFlood.feGaussianBlur.feImage.feMerge.feMorphology.feOffset.feSpecularLighting.feTile.feTurbulence.linearGradient.radialGradient.stop.circle.ellipse.image.line.path.polygon.polyline.rect.text.use.textPath.tspan.foreignObject.clipPath`.split(`.`),Lb=[...Fb,...Ib],Rb=`any-hover.any-pointer.aspect-ratio.color.color-gamut.color-index.device-aspect-ratio.device-height.device-width.display-mode.forced-colors.grid.height.hover.inverted-colors.monochrome.orientation.overflow-block.overflow-inline.pointer.prefers-color-scheme.prefers-contrast.prefers-reduced-motion.prefers-reduced-transparency.resolution.scan.scripting.update.width.min-width.max-width.min-height.max-height`.split(`.`).sort().reverse(),zb=`active.any-link.blank.checked.current.default.defined.dir.disabled.drop.empty.enabled.first.first-child.first-of-type.fullscreen.future.focus.focus-visible.focus-within.has.host.host-context.hover.indeterminate.in-range.invalid.is.lang.last-child.last-of-type.left.link.local-link.not.nth-child.nth-col.nth-last-child.nth-last-col.nth-last-of-type.nth-of-type.only-child.only-of-type.optional.out-of-range.past.placeholder-shown.read-only.read-write.required.right.root.scope.target.target-within.user-invalid.valid.visited.where`.split(`.`).sort().reverse(),Bb=[`after`,`backdrop`,`before`,`cue`,`cue-region`,`first-letter`,`first-line`,`grammar-error`,`marker`,`part`,`placeholder`,`selection`,`slotted`,`spelling-error`].sort().reverse(),Vb=`accent-color.align-content.align-items.align-self.alignment-baseline.all.anchor-name.animation.animation-composition.animation-delay.animation-direction.animation-duration.animation-fill-mode.animation-iteration-count.animation-name.animation-play-state.animation-range.animation-range-end.animation-range-start.animation-timeline.animation-timing-function.appearance.aspect-ratio.backdrop-filter.backface-visibility.background.background-attachment.background-blend-mode.background-clip.background-color.background-image.background-origin.background-position.background-position-x.background-position-y.background-repeat.background-size.baseline-shift.block-size.border.border-block.border-block-color.border-block-end.border-block-end-color.border-block-end-style.border-block-end-width.border-block-start.border-block-start-color.border-block-start-style.border-block-start-width.border-block-style.border-block-width.border-bottom.border-bottom-color.border-bottom-left-radius.border-bottom-right-radius.border-bottom-style.border-bottom-width.border-collapse.border-color.border-end-end-radius.border-end-start-radius.border-image.border-image-outset.border-image-repeat.border-image-slice.border-image-source.border-image-width.border-inline.border-inline-color.border-inline-end.border-inline-end-color.border-inline-end-style.border-inline-end-width.border-inline-start.border-inline-start-color.border-inline-start-style.border-inline-start-width.border-inline-style.border-inline-width.border-left.border-left-color.border-left-style.border-left-width.border-radius.border-right.border-right-color.border-right-style.border-right-width.border-spacing.border-start-end-radius.border-start-start-radius.border-style.border-top.border-top-color.border-top-left-radius.border-top-right-radius.border-top-style.border-top-width.border-width.bottom.box-align.box-decoration-break.box-direction.box-flex.box-flex-group.box-lines.box-ordinal-group.box-orient.box-pack.box-shadow.box-sizing.break-after.break-before.break-inside.caption-side.caret-color.clear.clip.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.color-scheme.column-count.column-fill.column-gap.column-rule.column-rule-color.column-rule-style.column-rule-width.column-span.column-width.columns.contain.contain-intrinsic-block-size.contain-intrinsic-height.contain-intrinsic-inline-size.contain-intrinsic-size.contain-intrinsic-width.container.container-name.container-type.content.content-visibility.counter-increment.counter-reset.counter-set.cue.cue-after.cue-before.cursor.cx.cy.direction.display.dominant-baseline.empty-cells.enable-background.field-sizing.fill.fill-opacity.fill-rule.filter.flex.flex-basis.flex-direction.flex-flow.flex-grow.flex-shrink.flex-wrap.float.flood-color.flood-opacity.flow.font.font-display.font-family.font-feature-settings.font-kerning.font-language-override.font-optical-sizing.font-palette.font-size.font-size-adjust.font-smooth.font-smoothing.font-stretch.font-style.font-synthesis.font-synthesis-position.font-synthesis-small-caps.font-synthesis-style.font-synthesis-weight.font-variant.font-variant-alternates.font-variant-caps.font-variant-east-asian.font-variant-emoji.font-variant-ligatures.font-variant-numeric.font-variant-position.font-variation-settings.font-weight.forced-color-adjust.gap.glyph-orientation-horizontal.glyph-orientation-vertical.grid.grid-area.grid-auto-columns.grid-auto-flow.grid-auto-rows.grid-column.grid-column-end.grid-column-start.grid-gap.grid-row.grid-row-end.grid-row-start.grid-template.grid-template-areas.grid-template-columns.grid-template-rows.hanging-punctuation.height.hyphenate-character.hyphenate-limit-chars.hyphens.icon.image-orientation.image-rendering.image-resolution.ime-mode.initial-letter.initial-letter-align.inline-size.inset.inset-area.inset-block.inset-block-end.inset-block-start.inset-inline.inset-inline-end.inset-inline-start.isolation.justify-content.justify-items.justify-self.kerning.left.letter-spacing.lighting-color.line-break.line-height.line-height-step.list-style.list-style-image.list-style-position.list-style-type.margin.margin-block.margin-block-end.margin-block-start.margin-bottom.margin-inline.margin-inline-end.margin-inline-start.margin-left.margin-right.margin-top.margin-trim.marker.marker-end.marker-mid.marker-start.marks.mask.mask-border.mask-border-mode.mask-border-outset.mask-border-repeat.mask-border-slice.mask-border-source.mask-border-width.mask-clip.mask-composite.mask-image.mask-mode.mask-origin.mask-position.mask-repeat.mask-size.mask-type.masonry-auto-flow.math-depth.math-shift.math-style.max-block-size.max-height.max-inline-size.max-width.min-block-size.min-height.min-inline-size.min-width.mix-blend-mode.nav-down.nav-index.nav-left.nav-right.nav-up.none.normal.object-fit.object-position.offset.offset-anchor.offset-distance.offset-path.offset-position.offset-rotate.opacity.order.orphans.outline.outline-color.outline-offset.outline-style.outline-width.overflow.overflow-anchor.overflow-block.overflow-clip-margin.overflow-inline.overflow-wrap.overflow-x.overflow-y.overlay.overscroll-behavior.overscroll-behavior-block.overscroll-behavior-inline.overscroll-behavior-x.overscroll-behavior-y.padding.padding-block.padding-block-end.padding-block-start.padding-bottom.padding-inline.padding-inline-end.padding-inline-start.padding-left.padding-right.padding-top.page.page-break-after.page-break-before.page-break-inside.paint-order.pause.pause-after.pause-before.perspective.perspective-origin.place-content.place-items.place-self.pointer-events.position.position-anchor.position-visibility.print-color-adjust.quotes.r.resize.rest.rest-after.rest-before.right.rotate.row-gap.ruby-align.ruby-position.scale.scroll-behavior.scroll-margin.scroll-margin-block.scroll-margin-block-end.scroll-margin-block-start.scroll-margin-bottom.scroll-margin-inline.scroll-margin-inline-end.scroll-margin-inline-start.scroll-margin-left.scroll-margin-right.scroll-margin-top.scroll-padding.scroll-padding-block.scroll-padding-block-end.scroll-padding-block-start.scroll-padding-bottom.scroll-padding-inline.scroll-padding-inline-end.scroll-padding-inline-start.scroll-padding-left.scroll-padding-right.scroll-padding-top.scroll-snap-align.scroll-snap-stop.scroll-snap-type.scroll-timeline.scroll-timeline-axis.scroll-timeline-name.scrollbar-color.scrollbar-gutter.scrollbar-width.shape-image-threshold.shape-margin.shape-outside.shape-rendering.speak.speak-as.src.stop-color.stop-opacity.stroke.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke-width.tab-size.table-layout.text-align.text-align-all.text-align-last.text-anchor.text-combine-upright.text-decoration.text-decoration-color.text-decoration-line.text-decoration-skip.text-decoration-skip-ink.text-decoration-style.text-decoration-thickness.text-emphasis.text-emphasis-color.text-emphasis-position.text-emphasis-style.text-indent.text-justify.text-orientation.text-overflow.text-rendering.text-shadow.text-size-adjust.text-transform.text-underline-offset.text-underline-position.text-wrap.text-wrap-mode.text-wrap-style.timeline-scope.top.touch-action.transform.transform-box.transform-origin.transform-style.transition.transition-behavior.transition-delay.transition-duration.transition-property.transition-timing-function.translate.unicode-bidi.user-modify.user-select.vector-effect.vertical-align.view-timeline.view-timeline-axis.view-timeline-inset.view-timeline-name.view-transition-name.visibility.voice-balance.voice-duration.voice-family.voice-pitch.voice-range.voice-rate.voice-stress.voice-volume.white-space.white-space-collapse.widows.width.will-change.word-break.word-spacing.word-wrap.writing-mode.x.y.z-index.zoom`.split(`.`).sort().reverse();function Hb(e){let t=e.regex,n=Pb(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i=/@-?\w[\w]*(-\w+)*/,a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:`CSS`,case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:`from to`},classNameAliases:{keyframePosition:`selector-tag`},contains:[n.BLOCK_COMMENT,r,n.CSS_NUMBER_MODE,{className:`selector-id`,begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:`selector-class`,begin:`\\.[a-zA-Z-][a-zA-Z0-9_-]*`,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:`selector-pseudo`,variants:[{begin:`:(`+zb.join(`|`)+`)`},{begin:`:(:)?(`+Bb.join(`|`)+`)`}]},n.CSS_VARIABLE,{className:`attribute`,begin:`\\b(`+Vb.join(`|`)+`)\\b`},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:`url data-uri`},contains:[...a,{className:`string`,begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:`[{;]`,relevance:0,illegal:/:/,contains:[{className:`keyword`,begin:i},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:`and or not only`,attribute:Rb.join(` `)},contains:[{begin:/[a-z-]+(?=:)/,className:`attribute`},...a,n.CSS_NUMBER_MODE]}]},{className:`selector-tag`,begin:`\\b(`+Lb.join(`|`)+`)\\b`}]}}function Ub(e){let t=e.regex;return{name:`Diff`,aliases:[`patch`],contains:[{className:`meta`,relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:`comment`,variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:`addition`,begin:/^\+/,end:/$/},{className:`deletion`,begin:/^-/,end:/$/},{className:`addition`,begin:/^!/,end:/$/}]}}function Wb(e){let t={keyword:[`break`,`case`,`chan`,`const`,`continue`,`default`,`defer`,`else`,`fallthrough`,`for`,`func`,`go`,`goto`,`if`,`import`,`interface`,`map`,`package`,`range`,`return`,`select`,`struct`,`switch`,`type`,`var`],type:[`bool`,`byte`,`complex64`,`complex128`,`error`,`float32`,`float64`,`int8`,`int16`,`int32`,`int64`,`string`,`uint8`,`uint16`,`uint32`,`uint64`,`int`,`uint`,`uintptr`,`rune`],literal:[`true`,`false`,`iota`,`nil`],built_in:[`append`,`cap`,`close`,`complex`,`copy`,`imag`,`len`,`make`,`new`,`panic`,`print`,`println`,`real`,`recover`,`delete`]};return{name:`Go`,aliases:[`golang`],keywords:t,illegal:`</`,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:`string`,variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:`number`,variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:`function`,beginKeywords:`func`,end:`\\s*(\\{|$)`,excludeEnd:!0,contains:[e.TITLE_MODE,{className:`params`,begin:/\(/,end:/\)/,endsParent:!0,keywords:t,illegal:/["']/}]}]}}function Gb(e){let t=e.regex;return{name:`GraphQL`,aliases:[`gql`],case_insensitive:!0,disableAutodetect:!1,keywords:{keyword:[`query`,`mutation`,`subscription`,`type`,`input`,`schema`,`directive`,`interface`,`union`,`scalar`,`fragment`,`enum`,`on`],literal:[`true`,`false`,`null`]},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{scope:`punctuation`,match:/[.]{3}/,relevance:0},{scope:`punctuation`,begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:`variable`,begin:/\$/,end:/\W/,excludeEnd:!0,relevance:0},{scope:`meta`,match:/@\w+/,excludeEnd:!0},{scope:`symbol`,begin:t.concat(/[_A-Za-z][_0-9A-Za-z]*/,t.lookahead(/\s*:/)),relevance:0}],illegal:[/[;<']/,/BEGIN/]}}function Kb(e){let t=e.regex,n={className:`number`,relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},r=e.COMMENT();r.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];let i={className:`variable`,variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},a={className:`literal`,begin:/\bon|off|true|false|yes|no\b/},o={className:`string`,contains:[e.BACKSLASH_ESCAPE],variants:[{begin:`'''`,end:`'''`,relevance:10},{begin:`"""`,end:`"""`,relevance:10},{begin:`"`,end:`"`},{begin:`'`,end:`'`}]},s={begin:/\[/,end:/\]/,contains:[r,a,i,o,n,`self`],relevance:0},c=t.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{name:`TOML, also INI`,aliases:[`toml`],case_insensitive:!0,illegal:/\S/,contains:[r,{className:`section`,begin:/\[+/,end:/\]+/},{begin:t.concat(c,`(\\s*\\.\\s*`,c,`)*`,t.lookahead(/\s*=\s*[^#\s]/)),className:`attr`,starts:{end:/$/,contains:[r,s,a,i,o,n]}}]}}var qb=`[0-9](_*[0-9])*`,Jb=`\\.(${qb})`,Yb=`[0-9a-fA-F](_*[0-9a-fA-F])*`,Xb={className:`number`,variants:[{begin:`(\\b(${qb})((${Jb})|\\.)?|(${Jb}))[eE][+-]?(${qb})[fFdD]?\\b`},{begin:`\\b(${qb})((${Jb})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Jb})[fFdD]?\\b`},{begin:`\\b(${qb})[fFdD]\\b`},{begin:`\\b0[xX]((${Yb})\\.?|(${Yb})?\\.(${Yb}))[pP][+-]?(${qb})[fFdD]?\\b`},{begin:`\\b(0|[1-9](_*[0-9])*)[lL]?\\b`},{begin:`\\b0[xX](${Yb})[lL]?\\b`},{begin:`\\b0(_*[0-7])*[lL]?\\b`},{begin:`\\b0[bB][01](_*[01])*[lL]?\\b`}],relevance:0};function Zb(e,t,n){return n===-1?``:e.replace(t,r=>Zb(e,t,n-1))}function Qb(e){let t=e.regex,n=`[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*`,r=n+Zb(`(?:<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*~~~(?:\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*~~~)*>)?`,/~~~/g,2),i={keyword:`synchronized.abstract.private.var.static.if.const .for.while.strictfp.finally.protected.import.native.final.void.enum.else.break.transient.catch.instanceof.volatile.case.assert.package.default.public.try.switch.continue.throws.protected.public.private.module.requires.exports.do.sealed.yield.permits.goto.when`.split(`.`),literal:[`false`,`true`,`null`],type:[`char`,`boolean`,`long`,`float`,`int`,`byte`,`short`,`double`],built_in:[`super`,`this`]},a={className:`meta`,begin:`@[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*`,contains:[{begin:/\(/,end:/\)/,contains:[`self`]}]},o={className:`params`,begin:/\(/,end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:`Java`,aliases:[`jsp`],keywords:i,illegal:/<\/|#/,contains:[e.COMMENT(`/\\*\\*`,`\\*/`,{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:`doctag`,begin:`@[A-Za-z]+`}]}),{begin:/import java\.[a-z]+\./,keywords:`import`,relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:`string`,contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:`keyword`,3:`title.class`}},{match:/non-sealed/,scope:`keyword`},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:`type`,3:`variable`,5:`operator`}},{begin:[/record/,/\s+/,n],className:{1:`keyword`,3:`title.class`},contains:[o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:`new throw return else`,relevance:0},{begin:[`(?:`+r+`\\s+)`,e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:`title.function`},keywords:i,contains:[{className:`params`,begin:/\(/,end:/\)/,keywords:i,relevance:0,contains:[a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,Xb,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},Xb,a]}}var $b=`[A-Za-z$_][0-9A-Za-z$_]*`,ex=`as.in.of.if.for.while.finally.var.new.function.do.return.void.else.break.catch.instanceof.with.throw.case.default.try.switch.continue.typeof.delete.let.yield.const.class.debugger.async.await.static.import.from.export.extends.using`.split(`.`),tx=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`],nx=`Object.Function.Boolean.Symbol.Math.Date.Number.BigInt.String.RegExp.Array.Float32Array.Float64Array.Int8Array.Uint8Array.Uint8ClampedArray.Int16Array.Int32Array.Uint16Array.Uint32Array.BigInt64Array.BigUint64Array.Set.Map.WeakSet.WeakMap.ArrayBuffer.SharedArrayBuffer.Atomics.DataView.JSON.Promise.Generator.GeneratorFunction.AsyncFunction.Reflect.Proxy.Intl.WebAssembly`.split(`.`),rx=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],ix=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`],ax=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`global`],ox=[].concat(ix,nx,rx);function sx(e){let t=e.regex,n=(e,{after:t})=>{let n=`</`+e[0].slice(1);return e.input.indexOf(n,t)!==-1},r=$b,i={begin:`<>`,end:`</>`},a=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let r=e[0].length+e.index,i=e.input[r];if(i===`<`||i===`,`){t.ignoreMatch();return}i===`>`&&(n(e,{after:r})||t.ignoreMatch());let a,o=e.input.substring(r);if(a=o.match(/^\s*=/)){t.ignoreMatch();return}if((a=o.match(/^\s+extends\s+/))&&a.index===0){t.ignoreMatch();return}}},s={$pattern:$b,keyword:ex,literal:tx,built_in:ox,"variable.language":ax},c=`[0-9](_?[0-9])*`,l=`\\.(${c})`,u=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,d={className:`number`,variants:[{begin:`(\\b(${u})((${l})|\\.)?|(${l}))[eE][+-]?(${c})\\b`},{begin:`\\b(${u})\\b((${l})\\b|\\.)?|(${l})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},f={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:s,contains:[]},p={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:`xml`}},m={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:`css`}},h={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:`graphql`}},g={className:`string`,begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,f]},_={className:`comment`,variants:[e.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:`[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},v=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,m,h,g,{match:/\$\d+/},d];f.contains=v.concat({begin:/\{/,end:/\}/,keywords:s,contains:[`self`].concat(v)});let y=[].concat(_,f.contains),b=y.concat([{begin:/(\s*)\(/,end:/\)/,keywords:s,contains:[`self`].concat(y)}]),x={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,contains:b},S={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,`(`,t.concat(/\./,r),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,r],scope:{1:`keyword`,3:`title.class`}}]},C={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...nx,...rx]}},w={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},T={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[x],illegal:/%/},E={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function D(e){return t.concat(`(?!`,e.join(`|`),`)`)}let O={match:t.concat(/\b/,D([...ix,`super`,`import`].map(e=>`${e}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},k={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},A={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},x]},ee=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,j={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(ee)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[x]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:s,exports:{PARAMS_CONTAINS:b,CLASS_REFERENCE:C},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),w,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,m,h,g,_,{match:/\$\d+/},d,C,{scope:`attr`,match:r+t.lookahead(`:`),relevance:0},j,{begin:`(`+e.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[_,e.REGEXP_MODE,{className:`function`,begin:ee,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,contains:b}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:a},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:`xml`,contains:[{begin:o.begin,end:o.end,skip:!0,contains:[`self`]}]}]},T,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[x,e.inherit(e.TITLE_MODE,{begin:r,className:`title.function`})]},{match:/\.\.\./,relevance:0},k,{match:`\\$[A-Za-z$_][0-9A-Za-z$_]*`,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[x]},O,E,S,A,{match:/\$[(.]/}]}}function cx(e){let t={className:`attr`,begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:`punctuation`,relevance:0},r=[`true`,`false`,`null`],i={scope:`literal`,beginKeywords:r.join(` `)};return{name:`JSON`,aliases:[`jsonc`],keywords:{literal:r},contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:`\\S`}}var lx=`[0-9](_*[0-9])*`,ux=`\\.(${lx})`,dx=`[0-9a-fA-F](_*[0-9a-fA-F])*`,fx={className:`number`,variants:[{begin:`(\\b(${lx})((${ux})|\\.)?|(${ux}))[eE][+-]?(${lx})[fFdD]?\\b`},{begin:`\\b(${lx})((${ux})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${ux})[fFdD]?\\b`},{begin:`\\b(${lx})[fFdD]\\b`},{begin:`\\b0[xX]((${dx})\\.?|(${dx})?\\.(${dx}))[pP][+-]?(${lx})[fFdD]?\\b`},{begin:`\\b(0|[1-9](_*[0-9])*)[lL]?\\b`},{begin:`\\b0[xX](${dx})[lL]?\\b`},{begin:`\\b0(_*[0-7])*[lL]?\\b`},{begin:`\\b0[bB][01](_*[01])*[lL]?\\b`}],relevance:0};function px(e){let t={keyword:`abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual`,built_in:`Byte Short Char Int Long Boolean Float Double Void Unit Nothing`,literal:`true false null`},n={className:`keyword`,begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:`symbol`,begin:/@\w+/}]}},r={className:`symbol`,begin:e.UNDERSCORE_IDENT_RE+`@`},i={className:`subst`,begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},a={className:`variable`,begin:`\\$`+e.UNDERSCORE_IDENT_RE},o={className:`string`,variants:[{begin:`"""`,end:`"""(?=[^"])`,contains:[a,i]},{begin:`'`,end:`'`,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:`"`,end:`"`,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,a,i]}]};i.contains.push(o);let s={className:`meta`,begin:`@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*`+e.UNDERSCORE_IDENT_RE+`)?`},c={className:`meta`,begin:`@`+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(o,{className:`string`}),`self`]}]},l=fx,u=e.COMMENT(`/\\*`,`\\*/`,{contains:[e.C_BLOCK_COMMENT_MODE]}),d={variants:[{className:`type`,begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},f=d;return f.variants[1].contains=[d],d.variants[1].contains=[f],{name:`Kotlin`,aliases:[`kt`,`kts`],keywords:t,contains:[e.COMMENT(`/\\*\\*`,`\\*/`,{relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`}]}),e.C_LINE_COMMENT_MODE,u,n,r,s,c,{className:`function`,beginKeywords:`fun`,end:`[(]|$`,returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+`\\s*\\(`,returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:`type`,begin:/</,end:/>/,keywords:`reified`,relevance:0},{className:`params`,begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,u],relevance:0},e.C_LINE_COMMENT_MODE,u,s,c,o,e.C_NUMBER_MODE]},u]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:`title.class`},keywords:`class interface trait`,end:/[:\{(]|$/,excludeEnd:!0,illegal:`extends implements`,contains:[{beginKeywords:`public protected internal private constructor`},e.UNDERSCORE_TITLE_MODE,{className:`type`,begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:`type`,begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},s,c]},o,{className:`meta`,begin:`^#!/usr/bin/env`,end:`$`,illegal:`
|
|
157
|
+
`},l]}}var mx=e=>({IMPORTANT:{scope:`meta`,begin:`!important`},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:`number`,begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:`built_in`,begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:`selector-attr`,begin:/\[/,end:/\]/,illegal:`$`,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:`number`,begin:e.NUMBER_RE+`(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?`,relevance:0},CSS_VARIABLE:{className:`attr`,begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),hx=`a.abbr.address.article.aside.audio.b.blockquote.body.button.canvas.caption.cite.code.dd.del.details.dfn.div.dl.dt.em.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hgroup.html.i.iframe.img.input.ins.kbd.label.legend.li.main.mark.menu.nav.object.ol.optgroup.option.p.picture.q.quote.samp.section.select.source.span.strong.summary.sup.table.tbody.td.textarea.tfoot.th.thead.time.tr.ul.var.video`.split(`.`),gx=`defs.g.marker.mask.pattern.svg.switch.symbol.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feFlood.feGaussianBlur.feImage.feMerge.feMorphology.feOffset.feSpecularLighting.feTile.feTurbulence.linearGradient.radialGradient.stop.circle.ellipse.image.line.path.polygon.polyline.rect.text.use.textPath.tspan.foreignObject.clipPath`.split(`.`),_x=[...hx,...gx],vx=`any-hover.any-pointer.aspect-ratio.color.color-gamut.color-index.device-aspect-ratio.device-height.device-width.display-mode.forced-colors.grid.height.hover.inverted-colors.monochrome.orientation.overflow-block.overflow-inline.pointer.prefers-color-scheme.prefers-contrast.prefers-reduced-motion.prefers-reduced-transparency.resolution.scan.scripting.update.width.min-width.max-width.min-height.max-height`.split(`.`).sort().reverse(),yx=`active.any-link.blank.checked.current.default.defined.dir.disabled.drop.empty.enabled.first.first-child.first-of-type.fullscreen.future.focus.focus-visible.focus-within.has.host.host-context.hover.indeterminate.in-range.invalid.is.lang.last-child.last-of-type.left.link.local-link.not.nth-child.nth-col.nth-last-child.nth-last-col.nth-last-of-type.nth-of-type.only-child.only-of-type.optional.out-of-range.past.placeholder-shown.read-only.read-write.required.right.root.scope.target.target-within.user-invalid.valid.visited.where`.split(`.`).sort().reverse(),bx=[`after`,`backdrop`,`before`,`cue`,`cue-region`,`first-letter`,`first-line`,`grammar-error`,`marker`,`part`,`placeholder`,`selection`,`slotted`,`spelling-error`].sort().reverse(),xx=`accent-color.align-content.align-items.align-self.alignment-baseline.all.anchor-name.animation.animation-composition.animation-delay.animation-direction.animation-duration.animation-fill-mode.animation-iteration-count.animation-name.animation-play-state.animation-range.animation-range-end.animation-range-start.animation-timeline.animation-timing-function.appearance.aspect-ratio.backdrop-filter.backface-visibility.background.background-attachment.background-blend-mode.background-clip.background-color.background-image.background-origin.background-position.background-position-x.background-position-y.background-repeat.background-size.baseline-shift.block-size.border.border-block.border-block-color.border-block-end.border-block-end-color.border-block-end-style.border-block-end-width.border-block-start.border-block-start-color.border-block-start-style.border-block-start-width.border-block-style.border-block-width.border-bottom.border-bottom-color.border-bottom-left-radius.border-bottom-right-radius.border-bottom-style.border-bottom-width.border-collapse.border-color.border-end-end-radius.border-end-start-radius.border-image.border-image-outset.border-image-repeat.border-image-slice.border-image-source.border-image-width.border-inline.border-inline-color.border-inline-end.border-inline-end-color.border-inline-end-style.border-inline-end-width.border-inline-start.border-inline-start-color.border-inline-start-style.border-inline-start-width.border-inline-style.border-inline-width.border-left.border-left-color.border-left-style.border-left-width.border-radius.border-right.border-right-color.border-right-style.border-right-width.border-spacing.border-start-end-radius.border-start-start-radius.border-style.border-top.border-top-color.border-top-left-radius.border-top-right-radius.border-top-style.border-top-width.border-width.bottom.box-align.box-decoration-break.box-direction.box-flex.box-flex-group.box-lines.box-ordinal-group.box-orient.box-pack.box-shadow.box-sizing.break-after.break-before.break-inside.caption-side.caret-color.clear.clip.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.color-scheme.column-count.column-fill.column-gap.column-rule.column-rule-color.column-rule-style.column-rule-width.column-span.column-width.columns.contain.contain-intrinsic-block-size.contain-intrinsic-height.contain-intrinsic-inline-size.contain-intrinsic-size.contain-intrinsic-width.container.container-name.container-type.content.content-visibility.counter-increment.counter-reset.counter-set.cue.cue-after.cue-before.cursor.cx.cy.direction.display.dominant-baseline.empty-cells.enable-background.field-sizing.fill.fill-opacity.fill-rule.filter.flex.flex-basis.flex-direction.flex-flow.flex-grow.flex-shrink.flex-wrap.float.flood-color.flood-opacity.flow.font.font-display.font-family.font-feature-settings.font-kerning.font-language-override.font-optical-sizing.font-palette.font-size.font-size-adjust.font-smooth.font-smoothing.font-stretch.font-style.font-synthesis.font-synthesis-position.font-synthesis-small-caps.font-synthesis-style.font-synthesis-weight.font-variant.font-variant-alternates.font-variant-caps.font-variant-east-asian.font-variant-emoji.font-variant-ligatures.font-variant-numeric.font-variant-position.font-variation-settings.font-weight.forced-color-adjust.gap.glyph-orientation-horizontal.glyph-orientation-vertical.grid.grid-area.grid-auto-columns.grid-auto-flow.grid-auto-rows.grid-column.grid-column-end.grid-column-start.grid-gap.grid-row.grid-row-end.grid-row-start.grid-template.grid-template-areas.grid-template-columns.grid-template-rows.hanging-punctuation.height.hyphenate-character.hyphenate-limit-chars.hyphens.icon.image-orientation.image-rendering.image-resolution.ime-mode.initial-letter.initial-letter-align.inline-size.inset.inset-area.inset-block.inset-block-end.inset-block-start.inset-inline.inset-inline-end.inset-inline-start.isolation.justify-content.justify-items.justify-self.kerning.left.letter-spacing.lighting-color.line-break.line-height.line-height-step.list-style.list-style-image.list-style-position.list-style-type.margin.margin-block.margin-block-end.margin-block-start.margin-bottom.margin-inline.margin-inline-end.margin-inline-start.margin-left.margin-right.margin-top.margin-trim.marker.marker-end.marker-mid.marker-start.marks.mask.mask-border.mask-border-mode.mask-border-outset.mask-border-repeat.mask-border-slice.mask-border-source.mask-border-width.mask-clip.mask-composite.mask-image.mask-mode.mask-origin.mask-position.mask-repeat.mask-size.mask-type.masonry-auto-flow.math-depth.math-shift.math-style.max-block-size.max-height.max-inline-size.max-width.min-block-size.min-height.min-inline-size.min-width.mix-blend-mode.nav-down.nav-index.nav-left.nav-right.nav-up.none.normal.object-fit.object-position.offset.offset-anchor.offset-distance.offset-path.offset-position.offset-rotate.opacity.order.orphans.outline.outline-color.outline-offset.outline-style.outline-width.overflow.overflow-anchor.overflow-block.overflow-clip-margin.overflow-inline.overflow-wrap.overflow-x.overflow-y.overlay.overscroll-behavior.overscroll-behavior-block.overscroll-behavior-inline.overscroll-behavior-x.overscroll-behavior-y.padding.padding-block.padding-block-end.padding-block-start.padding-bottom.padding-inline.padding-inline-end.padding-inline-start.padding-left.padding-right.padding-top.page.page-break-after.page-break-before.page-break-inside.paint-order.pause.pause-after.pause-before.perspective.perspective-origin.place-content.place-items.place-self.pointer-events.position.position-anchor.position-visibility.print-color-adjust.quotes.r.resize.rest.rest-after.rest-before.right.rotate.row-gap.ruby-align.ruby-position.scale.scroll-behavior.scroll-margin.scroll-margin-block.scroll-margin-block-end.scroll-margin-block-start.scroll-margin-bottom.scroll-margin-inline.scroll-margin-inline-end.scroll-margin-inline-start.scroll-margin-left.scroll-margin-right.scroll-margin-top.scroll-padding.scroll-padding-block.scroll-padding-block-end.scroll-padding-block-start.scroll-padding-bottom.scroll-padding-inline.scroll-padding-inline-end.scroll-padding-inline-start.scroll-padding-left.scroll-padding-right.scroll-padding-top.scroll-snap-align.scroll-snap-stop.scroll-snap-type.scroll-timeline.scroll-timeline-axis.scroll-timeline-name.scrollbar-color.scrollbar-gutter.scrollbar-width.shape-image-threshold.shape-margin.shape-outside.shape-rendering.speak.speak-as.src.stop-color.stop-opacity.stroke.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke-width.tab-size.table-layout.text-align.text-align-all.text-align-last.text-anchor.text-combine-upright.text-decoration.text-decoration-color.text-decoration-line.text-decoration-skip.text-decoration-skip-ink.text-decoration-style.text-decoration-thickness.text-emphasis.text-emphasis-color.text-emphasis-position.text-emphasis-style.text-indent.text-justify.text-orientation.text-overflow.text-rendering.text-shadow.text-size-adjust.text-transform.text-underline-offset.text-underline-position.text-wrap.text-wrap-mode.text-wrap-style.timeline-scope.top.touch-action.transform.transform-box.transform-origin.transform-style.transition.transition-behavior.transition-delay.transition-duration.transition-property.transition-timing-function.translate.unicode-bidi.user-modify.user-select.vector-effect.vertical-align.view-timeline.view-timeline-axis.view-timeline-inset.view-timeline-name.view-transition-name.visibility.voice-balance.voice-duration.voice-family.voice-pitch.voice-range.voice-rate.voice-stress.voice-volume.white-space.white-space-collapse.widows.width.will-change.word-break.word-spacing.word-wrap.writing-mode.x.y.z-index.zoom`.split(`.`).sort().reverse(),Sx=yx.concat(bx).sort().reverse();function Cx(e){let t=mx(e),n=Sx,r=`([\\w-]+|@\\{[\\w-]+\\})`,i=[],a=[],o=function(e){return{className:`string`,begin:`~?`+e+`.*?`+e}},s=function(e,t,n){return{className:e,begin:t,relevance:n}},c={$pattern:/[a-z-]+/,keyword:`and or not only`,attribute:vx.join(` `)},l={begin:`\\(`,end:`\\)`,contains:a,keywords:c,relevance:0};a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o(`'`),o(`"`),t.CSS_NUMBER_MODE,{begin:`(url|data-uri)\\(`,starts:{className:`string`,end:`[\\)\\n]`,excludeEnd:!0}},t.HEXCOLOR,l,s(`variable`,`@@?[\\w-]+`,10),s(`variable`,`@\\{[\\w-]+\\}`),s(`built_in`,"~?`[^`]*?`"),{className:`attribute`,begin:`[\\w-]+\\s*:`,end:`:`,returnBegin:!0,excludeEnd:!0},t.IMPORTANT,{beginKeywords:`and not`},t.FUNCTION_DISPATCH);let u=a.concat({begin:/\{/,end:/\}/,contains:i}),d={beginKeywords:`when`,endsWithParent:!0,contains:[{beginKeywords:`and not`}].concat(a)},f={begin:`([\\w-]+|@\\{[\\w-]+\\})\\s*:`,returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:`attribute`,begin:`\\b(`+xx.join(`|`)+`)\\b`,end:/(?=:)/,starts:{endsWithParent:!0,illegal:`[<=$]`,relevance:0,contains:a}}]},p={className:`keyword`,begin:`@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b`,starts:{end:`[;{}]`,keywords:c,returnEnd:!0,contains:a,relevance:0}},m={className:`variable`,variants:[{begin:`@[\\w-]+\\s*:`,relevance:15},{begin:`@[\\w-]+`}],starts:{end:`[;}]`,returnEnd:!0,contains:u}},h={variants:[{begin:`[\\.#:&\\[>]`,end:`[;{}]`},{begin:r,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,d,s(`keyword`,`all\\b`),s(`variable`,`@\\{[\\w-]+\\}`),{begin:`\\b(`+_x.join(`|`)+`)\\b`,className:`selector-tag`},t.CSS_NUMBER_MODE,s(`selector-tag`,r,0),s(`selector-id`,`#([\\w-]+|@\\{[\\w-]+\\})`),s(`selector-class`,`\\.([\\w-]+|@\\{[\\w-]+\\})`,0),s(`selector-tag`,`&`,0),t.ATTRIBUTE_SELECTOR_MODE,{className:`selector-pseudo`,begin:`:(`+yx.join(`|`)+`)`},{className:`selector-pseudo`,begin:`:(:)?(`+bx.join(`|`)+`)`},{begin:/\(/,end:/\)/,relevance:0,contains:u},{begin:`!important`},t.FUNCTION_DISPATCH]},g={begin:`[\\w-]+:(:)?(${n.join(`|`)})`,returnBegin:!0,contains:[h]};return i.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,p,m,g,f,h,d,t.FUNCTION_DISPATCH),{name:`Less`,case_insensitive:!0,illegal:`[=>'/<($"]`,contains:i}}function wx(e){let t=`\\[=*\\[`,n=`\\]=*\\]`,r={begin:t,end:n,contains:[`self`]},i=[e.COMMENT(`--(?!\\[=*\\[)`,`$`),e.COMMENT(`--\\[=*\\[`,n,{contains:[r],relevance:10})];return{name:`Lua`,aliases:[`pluto`],keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:`true false nil`,keyword:`and break do else elseif end for goto if in local not or repeat return then until while`,built_in:`_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove`},contains:i.concat([{className:`function`,beginKeywords:`function`,end:`\\)`,contains:[e.inherit(e.TITLE_MODE,{begin:`([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*`}),{className:`params`,begin:`\\(`,endsWithParent:!0,contains:i}].concat(i)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:`string`,begin:t,end:n,contains:[r],relevance:5}])}}function Tx(e){let t={className:`variable`,variants:[{begin:`\\$\\(`+e.UNDERSCORE_IDENT_RE+`\\)`,contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},n={className:`string`,begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t]},r={className:`variable`,begin:/\$\([\w-]+\s/,end:/\)/,keywords:{built_in:`subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value`},contains:[t,n]},i={begin:`^`+e.UNDERSCORE_IDENT_RE+`\\s*(?=[:+?]?=)`},a={className:`meta`,begin:/^\.PHONY:/,end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:`.PHONY`}},o={className:`section`,begin:/^[^\s]+:/,end:/$/,contains:[t]};return{name:`Makefile`,aliases:[`mk`,`mak`,`make`],keywords:{$pattern:/[\w-]+/,keyword:`define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath`},contains:[e.HASH_COMMENT_MODE,t,n,r,i,a,o]}}function Ex(e){let t=e.regex,n={begin:/<\/?[A-Za-z_]/,end:`>`,subLanguage:`xml`,relevance:0},r={begin:`^[-\\*]{3,}`,end:`$`},i={className:`code`,variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:`(~{3,})[^~](.|\\n)*?\\1~*[ ]*`},{begin:"```",end:"```+[ ]*$"},{begin:`~~~`,end:`~~~+[ ]*$`},{begin:"`.+?`"},{begin:`(?=^( {4}|\\t))`,contains:[{begin:`^( {4}|\\t)`,end:`(\\n)$`}],relevance:0}]},a={className:`bullet`,begin:`^[ ]*([*+-]|(\\d+\\.))(?=\\s+)`,end:`\\s+`,excludeEnd:!0},o={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:`symbol`,begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:`link`,begin:/:\s*/,end:/$/,excludeBegin:!0}]},s={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:`string`,relevance:0,begin:`\\[`,end:`\\]`,excludeBegin:!0,returnEnd:!0},{className:`link`,relevance:0,begin:`\\]\\(`,end:`\\)`,excludeBegin:!0,excludeEnd:!0},{className:`symbol`,relevance:0,begin:`\\]\\[`,end:`\\]`,excludeBegin:!0,excludeEnd:!0}]},c={className:`strong`,contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},l={className:`emphasis`,contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},u=e.inherit(c,{contains:[]}),d=e.inherit(l,{contains:[]});c.contains.push(d),l.contains.push(u);let f=[n,s];return[c,l,u,d].forEach(e=>{e.contains=e.contains.concat(f)}),f=f.concat(c,l),{name:`Markdown`,aliases:[`md`,`mkdown`,`mkd`],contains:[{className:`section`,variants:[{begin:`^#{1,6}`,end:`$`,contains:f},{begin:`(?=^.+?\\n[=-]{2,}$)`,contains:[{begin:`^[=-]*$`},{begin:`^`,end:`\\n`,contains:f}]}]},n,a,c,l,{className:`quote`,begin:`^>\\s+`,contains:f,end:`$`},i,r,s,o,{scope:`literal`,match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function Dx(e){let t={className:`built_in`,begin:`\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+`},n=/[a-zA-Z@][a-zA-Z0-9_]*/,r={"variable.language":[`this`,`super`],$pattern:n,keyword:`while.export.sizeof.typedef.const.struct.for.union.volatile.static.mutable.if.do.return.goto.enum.else.break.extern.asm.case.default.register.explicit.typename.switch.continue.inline.readonly.assign.readwrite.self.@synchronized.id.typeof.nonatomic.IBOutlet.IBAction.strong.weak.copy.in.out.inout.bycopy.byref.oneway.__strong.__weak.__block.__autoreleasing.@private.@protected.@public.@try.@property.@end.@throw.@catch.@finally.@autoreleasepool.@synthesize.@dynamic.@selector.@optional.@required.@encode.@package.@import.@defs.@compatibility_alias.__bridge.__bridge_transfer.__bridge_retained.__bridge_retain.__covariant.__contravariant.__kindof._Nonnull._Nullable._Null_unspecified.__FUNCTION__.__PRETTY_FUNCTION__.__attribute__.getter.setter.retain.unsafe_unretained.nonnull.nullable.null_unspecified.null_resettable.class.instancetype.NS_DESIGNATED_INITIALIZER.NS_UNAVAILABLE.NS_REQUIRES_SUPER.NS_RETURNS_INNER_POINTER.NS_INLINE.NS_AVAILABLE.NS_DEPRECATED.NS_ENUM.NS_OPTIONS.NS_SWIFT_UNAVAILABLE.NS_ASSUME_NONNULL_BEGIN.NS_ASSUME_NONNULL_END.NS_REFINED_FOR_SWIFT.NS_SWIFT_NAME.NS_SWIFT_NOTHROW.NS_DURING.NS_HANDLER.NS_ENDHANDLER.NS_VALUERETURN.NS_VOIDRETURN`.split(`.`),literal:[`false`,`true`,`FALSE`,`TRUE`,`nil`,`YES`,`NO`,`NULL`],built_in:[`dispatch_once_t`,`dispatch_queue_t`,`dispatch_sync`,`dispatch_async`,`dispatch_once`],type:[`int`,`float`,`char`,`unsigned`,`signed`,`short`,`long`,`double`,`wchar_t`,`unichar`,`void`,`bool`,`BOOL`,`id|0`,`_Bool`]},i={$pattern:n,keyword:[`@interface`,`@class`,`@protocol`,`@implementation`]};return{name:`Objective-C`,aliases:[`mm`,`objc`,`obj-c`,`obj-c++`,`objective-c++`],keywords:r,illegal:`</`,contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:`string`,variants:[{begin:`@"`,end:`"`,illegal:`\\n`,contains:[e.BACKSLASH_ESCAPE]}]},{className:`meta`,begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:`if else elif endif define undef warning error line pragma ifdef ifndef include`},contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{className:`string`}),{className:`string`,begin:/<.*?>/,end:/$/,illegal:`\\n`},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:`class`,begin:`(`+i.keyword.join(`|`)+`)\\b`,end:/(\{|$)/,excludeEnd:!0,keywords:i,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:`\\.`+e.UNDERSCORE_IDENT_RE,relevance:0}]}}function Ox(e){let t=e.regex,n=`abs.accept.alarm.and.atan2.bind.binmode.bless.break.caller.chdir.chmod.chomp.chop.chown.chr.chroot.class.close.closedir.connect.continue.cos.crypt.dbmclose.dbmopen.defined.delete.die.do.dump.each.else.elsif.endgrent.endhostent.endnetent.endprotoent.endpwent.endservent.eof.eval.exec.exists.exit.exp.fcntl.field.fileno.flock.for.foreach.fork.format.formline.getc.getgrent.getgrgid.getgrnam.gethostbyaddr.gethostbyname.gethostent.getlogin.getnetbyaddr.getnetbyname.getnetent.getpeername.getpgrp.getpriority.getprotobyname.getprotobynumber.getprotoent.getpwent.getpwnam.getpwuid.getservbyname.getservbyport.getservent.getsockname.getsockopt.given.glob.gmtime.goto.grep.gt.hex.if.index.int.ioctl.join.keys.kill.last.lc.lcfirst.length.link.listen.local.localtime.log.lstat.lt.ma.map.method.mkdir.msgctl.msgget.msgrcv.msgsnd.my.ne.next.no.not.oct.open.opendir.or.ord.our.pack.package.pipe.pop.pos.print.printf.prototype.push.q|0.qq.quotemeta.qw.qx.rand.read.readdir.readline.readlink.readpipe.recv.redo.ref.rename.require.reset.return.reverse.rewinddir.rindex.rmdir.say.scalar.seek.seekdir.select.semctl.semget.semop.send.setgrent.sethostent.setnetent.setpgrp.setpriority.setprotoent.setpwent.setservent.setsockopt.shift.shmctl.shmget.shmread.shmwrite.shutdown.sin.sleep.socket.socketpair.sort.splice.split.sprintf.sqrt.srand.stat.state.study.sub.substr.symlink.syscall.sysopen.sysread.sysseek.system.syswrite.tell.telldir.tie.tied.time.times.tr.truncate.uc.ucfirst.umask.undef.unless.unlink.unpack.unshift.untie.until.use.utime.values.vec.wait.waitpid.wantarray.warn.when.while.write.x|0.xor.y|0`.split(`.`),r=/[dualxmsipngr]{0,12}/,i={$pattern:/[\w.]+/,keyword:n.join(` `)},a={className:`subst`,begin:`[$@]\\{`,end:`\\}`,keywords:i},o={begin:/->\{/,end:/\}/},s={scope:`attr`,match:/\s+:\s*\w+(\s*\(.*?\))?/},c={scope:`variable`,variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,`(?![A-Za-z])(?![@$%])`)},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[s]},l={className:`number`,variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},u=[e.BACKSLASH_ESCAPE,a,c],d=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],f=(e,n,i=`\\1`)=>{let a=i===`\\1`?i:t.concat(i,n);return t.concat(t.concat(`(?:`,e,`)`),n,/(?:\\.|[^\\\/])*?/,a,/(?:\\.|[^\\\/])*?/,i,r)},p=(e,n,i)=>t.concat(t.concat(`(?:`,e,`)`),n,/(?:\\.|[^\\\/])*?/,i,r),m=[c,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),o,{className:`string`,contains:u,variants:[{begin:`q[qwxr]?\\s*\\(`,end:`\\)`,relevance:5},{begin:`q[qwxr]?\\s*\\[`,end:`\\]`,relevance:5},{begin:`q[qwxr]?\\s*\\{`,end:`\\}`,relevance:5},{begin:`q[qwxr]?\\s*\\|`,end:`\\|`,relevance:5},{begin:`q[qwxr]?\\s*<`,end:`>`,relevance:5},{begin:`qw\\s+q`,end:`q`,relevance:5},{begin:`'`,end:`'`,contains:[e.BACKSLASH_ESCAPE]},{begin:`"`,end:`"`},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:`-?\\w+\\s*=>`,relevance:0}]},l,{begin:`(\\/\\/|`+e.RE_STARTERS_RE+`|\\b(split|return|print|reverse|grep)\\b)\\s*`,keywords:`split return print reverse grep`,relevance:0,contains:[e.HASH_COMMENT_MODE,{className:`regexp`,variants:[{begin:f(`s|tr|y`,t.either(...d,{capture:!0}))},{begin:f(`s|tr|y`,`\\(`,`\\)`)},{begin:f(`s|tr|y`,`\\[`,`\\]`)},{begin:f(`s|tr|y`,`\\{`,`\\}`)}],relevance:2},{className:`regexp`,variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:p(`(?:m|qr)?`,/\//,/\//)},{begin:p(`m|qr`,t.either(...d,{capture:!0}),/\1/)},{begin:p(`m|qr`,/\(/,/\)/)},{begin:p(`m|qr`,/\[/,/\]/)},{begin:p(`m|qr`,/\{/,/\}/)}]}]},{className:`function`,beginKeywords:`sub method`,end:`(\\s*\\(.*?\\))?[;{]`,excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,s]},{className:`class`,beginKeywords:`class`,end:`[;{]`,excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,s,l]},{begin:`-\\w\\b`,relevance:0},{begin:`^__DATA__$`,end:`^__END__$`,subLanguage:`mojolicious`,contains:[{begin:`^@@.*`,end:`$`,className:`comment`}]}];return a.contains=m,o.contains=m,{name:`Perl`,aliases:[`pl`,`pm`],keywords:i,contains:m}}function kx(e){let t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),a=t.concat(/[A-Z]+/,n),o={scope:`variable`,match:`\\$+`+r},s={scope:`meta`,variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},c={scope:`subst`,variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},l=e.inherit(e.APOS_STRING_MODE,{illegal:null}),u=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(c)}),d={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(c),"on:begin":(e,t)=>{t.data._beginMatch=e[1]||e[2]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}},f=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),p=`[
|
|
158
|
+
]`,m={scope:`string`,variants:[u,l,d,f]},h={scope:`number`,variants:[{begin:`\\b0[bB][01]+(?:_[01]+)*\\b`},{begin:`\\b0[oO][0-7]+(?:_[0-7]+)*\\b`},{begin:`\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b`},{begin:`(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?`}],relevance:0},g=[`false`,`null`,`true`],_=`__CLASS__.__DIR__.__FILE__.__FUNCTION__.__COMPILER_HALT_OFFSET__.__LINE__.__METHOD__.__NAMESPACE__.__TRAIT__.die.echo.exit.include.include_once.print.require.require_once.array.abstract.and.as.binary.bool.boolean.break.callable.case.catch.class.clone.const.continue.declare.default.do.double.else.elseif.empty.enddeclare.endfor.endforeach.endif.endswitch.endwhile.enum.eval.extends.final.finally.float.for.foreach.from.global.goto.if.implements.instanceof.insteadof.int.integer.interface.isset.iterable.list.match|0.mixed.new.never.object.or.private.protected.public.readonly.real.return.string.switch.throw.trait.try.unset.use.var.void.while.xor.yield`.split(`.`),v=`Error|0.AppendIterator.ArgumentCountError.ArithmeticError.ArrayIterator.ArrayObject.AssertionError.BadFunctionCallException.BadMethodCallException.CachingIterator.CallbackFilterIterator.CompileError.Countable.DirectoryIterator.DivisionByZeroError.DomainException.EmptyIterator.ErrorException.Exception.FilesystemIterator.FilterIterator.GlobIterator.InfiniteIterator.InvalidArgumentException.IteratorIterator.LengthException.LimitIterator.LogicException.MultipleIterator.NoRewindIterator.OutOfBoundsException.OutOfRangeException.OuterIterator.OverflowException.ParentIterator.ParseError.RangeException.RecursiveArrayIterator.RecursiveCachingIterator.RecursiveCallbackFilterIterator.RecursiveDirectoryIterator.RecursiveFilterIterator.RecursiveIterator.RecursiveIteratorIterator.RecursiveRegexIterator.RecursiveTreeIterator.RegexIterator.RuntimeException.SeekableIterator.SplDoublyLinkedList.SplFileInfo.SplFileObject.SplFixedArray.SplHeap.SplMaxHeap.SplMinHeap.SplObjectStorage.SplObserver.SplPriorityQueue.SplQueue.SplStack.SplSubject.SplTempFileObject.TypeError.UnderflowException.UnexpectedValueException.UnhandledMatchError.ArrayAccess.BackedEnum.Closure.Fiber.Generator.Iterator.IteratorAggregate.Serializable.Stringable.Throwable.Traversable.UnitEnum.WeakReference.WeakMap.Directory.__PHP_Incomplete_Class.parent.php_user_filter.self.static.stdClass`.split(`.`),y={keyword:_,literal:(e=>{let t=[];return e.forEach(e=>{t.push(e),e.toLowerCase()===e?t.push(e.toUpperCase()):t.push(e.toLowerCase())}),t})(g),built_in:v},b=e=>e.map(e=>e.replace(/\|\d+$/,``)),x={variants:[{match:[/new/,t.concat(p,`+`),t.concat(`(?!`,b(v).join(`\\b|`),`\\b)`),i],scope:{1:`keyword`,4:`title.class`}}]},S=t.concat(r,`\\b(?!\\()`),C={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),S],scope:{2:`variable.constant`}},{match:[/::/,/class/],scope:{2:`variable.language`}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),S],scope:{1:`title.class`,3:`variable.constant`}},{match:[i,t.concat(`::`,t.lookahead(/(?!class\b)/))],scope:{1:`title.class`}},{match:[i,/::/,/class/],scope:{1:`title.class`,3:`variable.language`}}]},w={scope:`attr`,match:t.concat(r,t.lookahead(`:`),t.lookahead(/(?!::)/))},T={relevance:0,begin:/\(/,end:/\)/,keywords:y,contains:[w,o,C,e.C_BLOCK_COMMENT_MODE,m,h,x]},E={relevance:0,match:[/\b/,t.concat(`(?!fn\\b|function\\b|`,b(_).join(`\\b|`),`|`,b(v).join(`\\b|`),`\\b)`),r,t.concat(p,`*`),t.lookahead(/(?=\()/)],scope:{3:`title.function.invoke`},contains:[T]};T.contains.push(E);let D=[w,C,e.C_BLOCK_COMMENT_MODE,m,h,x],O={begin:t.concat(/#\[\s*\\?/,t.either(i,a)),beginScope:`meta`,end:/]/,endScope:`meta`,keywords:{literal:g,keyword:[`new`,`array`]},contains:[{begin:/\[/,end:/]/,keywords:{literal:g,keyword:[`new`,`array`]},contains:[`self`,...D]},...D,{scope:`meta`,variants:[{match:i},{match:a}]}]};return{case_insensitive:!1,keywords:y,contains:[O,e.HASH_COMMENT_MODE,e.COMMENT(`//`,`$`),e.COMMENT(`/\\*`,`\\*/`,{contains:[{scope:`doctag`,match:`@[A-Za-z]+`}]}),{match:/__halt_compiler\(\);/,keywords:`__halt_compiler`,starts:{scope:`comment`,end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:`meta`,endsParent:!0}]}},s,{scope:`variable.language`,match:/\$this\b/},o,E,C,{match:[/const/,/\s/,r],scope:{1:`keyword`,3:`variable.constant`}},x,{scope:`function`,relevance:0,beginKeywords:`fn function`,end:/[;{]/,excludeEnd:!0,illegal:`[$%\\[]`,contains:[{beginKeywords:`use`},e.UNDERSCORE_TITLE_MODE,{begin:`=>`,endsParent:!0},{scope:`params`,begin:`\\(`,end:`\\)`,excludeBegin:!0,excludeEnd:!0,keywords:y,contains:[`self`,O,o,C,e.C_BLOCK_COMMENT_MODE,m,h]}]},{scope:`class`,variants:[{beginKeywords:`enum`,illegal:/[($"]/},{beginKeywords:`class interface trait`,illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:`extends implements`},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:`namespace`,relevance:0,end:`;`,illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:`title.class`})]},{beginKeywords:`use`,relevance:0,end:`;`,contains:[{match:/\b(as|const|function)\b/,scope:`keyword`},e.UNDERSCORE_TITLE_MODE]},m,h]}}function Ax(e){return{name:`PHP template`,subLanguage:`xml`,contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:`php`,contains:[{begin:`/\\*`,end:`\\*/`,skip:!0},{begin:`b"`,end:`"`,skip:!0},{begin:`b'`,end:`'`,skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function jx(e){return{name:`Plain text`,aliases:[`text`,`txt`],disableAutodetect:!0}}function Mx(e){let t=e.regex,n=/[\p{XID_Start}_]\p{XID_Continue}*/u,r=`and.as.assert.async.await.break.case.class.continue.def.del.elif.else.except.finally.for.from.global.if.import.in.is.lambda.match.nonlocal|10.not.or.pass.raise.return.try.while.with.yield`.split(`.`),i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:`__import__.abs.all.any.ascii.bin.bool.breakpoint.bytearray.bytes.callable.chr.classmethod.compile.complex.delattr.dict.dir.divmod.enumerate.eval.exec.filter.float.format.frozenset.getattr.globals.hasattr.hash.help.hex.id.input.int.isinstance.issubclass.iter.len.list.locals.map.max.memoryview.min.next.object.oct.open.ord.pow.print.property.range.repr.reversed.round.set.setattr.slice.sorted.staticmethod.str.sum.super.tuple.type.vars.zip`.split(`.`),literal:[`__debug__`,`Ellipsis`,`False`,`None`,`NotImplemented`,`True`],type:[`Any`,`Callable`,`Coroutine`,`Dict`,`List`,`Literal`,`Generic`,`Optional`,`Sequence`,`Set`,`Tuple`,`Type`,`Union`]},a={className:`meta`,begin:/^(>>>|\.\.\.) /},o={className:`subst`,begin:/\{/,end:/\}/,keywords:i,illegal:/#/},s={begin:/\{\{/,relevance:0},c={className:`string`,contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,o]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},l=`[0-9](_?[0-9])*`,u=`(\\b(${l}))?\\.(${l})|\\b(${l})\\.`,d=`\\b|${r.join(`|`)}`,f={className:`number`,relevance:0,variants:[{begin:`(\\b(${l})|(${u}))[eE][+-]?(${l})[jJ]?(?=${d})`},{begin:`(${u})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${d})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${d})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`},{begin:`\\b(${l})[jJ](?=${d})`}]},p={className:`comment`,begin:t.lookahead(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:`params`,variants:[{className:``,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:[`self`,a,f,c,e.HASH_COMMENT_MODE]}]};return o.contains=[c,f,a],{name:`Python`,aliases:[`py`,`gyp`,`ipython`],unicodeRegex:!0,keywords:i,illegal:/(<\/|\?)|=>/,contains:[a,f,{scope:`variable.language`,match:/\bself\b/},{beginKeywords:`if`,relevance:0},{match:/\bor\b/,scope:`keyword`},c,p,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:`keyword`,3:`title.function`},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:`keyword`,3:`title.class`,6:`title.class.inherited`}},{className:`meta`,begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[f,m,c]}]}}function Nx(e){return{aliases:[`pycon`],contains:[{className:`meta.prompt`,starts:{end:/ |$/,starts:{end:`$`,subLanguage:`python`}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function Px(e){let t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,r=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,a=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:`R`,keywords:{$pattern:n,keyword:`function if in break next repeat else for while`,literal:`NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10`,built_in:`LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm`},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:`doctag`,match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:`doctag`,begin:`@param`,end:/$/,contains:[{scope:`variable`,variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:`doctag`,match:/@[a-zA-Z]+/},{scope:`keyword`,match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:`string`,contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:`"`,end:`"`,relevance:0},{begin:`'`,end:`'`,relevance:0}]},{relevance:0,variants:[{scope:{1:`operator`,2:`number`},match:[i,r]},{scope:{1:`operator`,2:`number`},match:[/%[^%]*%/,r]},{scope:{1:`punctuation`,2:`number`},match:[a,r]},{scope:{2:`number`},match:[/[^a-zA-Z0-9._]|^/,r]}]},{scope:{3:`operator`},match:[n,/\s+/,/<-/,/\s+/]},{scope:`operator`,relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:`punctuation`,relevance:0,match:a},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function Fx(e){let t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=t.concat(r,/(::\w+)*/),a={"variable.constant":[`__FILE__`,`__LINE__`,`__ENCODING__`],"variable.language":[`self`,`super`],keyword:`alias.and.begin.BEGIN.break.case.class.defined.do.else.elsif.end.END.ensure.for.if.in.module.next.not.or.redo.require.rescue.retry.return.then.undef.unless.until.when.while.yield.include.extend.prepend.public.private.protected.raise.throw`.split(`.`),built_in:[`proc`,`lambda`,`attr_accessor`,`attr_reader`,`attr_writer`,`define_method`,`private_constant`,`module_function`],literal:[`true`,`false`,`nil`]},o={className:`doctag`,begin:`@[A-Za-z]+`},s={begin:`#<`,end:`>`},c=[e.COMMENT(`#`,`$`,{contains:[o]}),e.COMMENT(`^=begin`,`^=end`,{contains:[o],relevance:10}),e.COMMENT(`^__END__`,e.MATCH_NOTHING_RE)],l={className:`subst`,begin:/#\{/,end:/\}/,keywords:a},u={className:`string`,contains:[e.BACKSLASH_ESCAPE,l],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,l]})]}]},d=`[0-9](_?[0-9])*`,f={className:`number`,relevance:0,variants:[{begin:`\\b([1-9](_?[0-9])*|0)(\\.(${d}))?([eE][+-]?(${d})|r)?i?\\b`},{begin:`\\b0[dD][0-9](_?[0-9])*r?i?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*r?i?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*r?i?\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b`},{begin:`\\b0(_?[0-7])+r?i?\\b`}]},p={variants:[{match:/\(\)/},{className:`params`,begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:a}]},m=[u,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{match:[/\b(class|module)\s+/,i]}],scope:{2:`title.class`,4:`title.class.inherited`},keywords:a},{match:[/(include|extend)\s+/,i],scope:{2:`title.class`},keywords:a},{relevance:0,match:[i,/\.new[. (]/],scope:{1:`title.class`}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`},{relevance:0,match:r,scope:`title.class`},{match:[/def/,/\s+/,n],scope:{1:`keyword`,3:`title.function`},contains:[p]},{begin:e.IDENT_RE+`::`},{className:`symbol`,begin:e.UNDERSCORE_IDENT_RE+`(!|\\?)?:`,relevance:0},{className:`symbol`,begin:`:(?!\\s)`,contains:[u,{begin:n}],relevance:0},f,{className:`variable`,begin:`(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])`},{className:`params`,begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:a},{begin:`(`+e.RE_STARTERS_RE+`|unless)\\s*`,keywords:`unless`,contains:[{className:`regexp`,contains:[e.BACKSLASH_ESCAPE,l],illegal:/\n/,variants:[{begin:`/`,end:`/[a-z]*`},{begin:/%r\{/,end:/\}[a-z]*/},{begin:`%r\\(`,end:`\\)[a-z]*`},{begin:`%r!`,end:`![a-z]*`},{begin:`%r\\[`,end:`\\][a-z]*`}]}].concat(s,c),relevance:0}].concat(s,c);l.contains=m,p.contains=m;let h=[{begin:/^\s*=>/,starts:{end:`$`,contains:m}},{className:`meta.prompt`,begin:`^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])`,starts:{end:`$`,keywords:a,contains:m}}];return c.unshift(s),{name:`Ruby`,aliases:[`rb`,`gemspec`,`podspec`,`thor`,`irb`],keywords:a,illegal:/\/\*/,contains:[e.SHEBANG({binary:`ruby`})].concat(h,c,m)}}function Ix(e){let t=e.regex,n=/(r#)?/,r=t.concat(n,e.UNDERSCORE_IDENT_RE),i=t.concat(n,e.IDENT_RE),a={className:`title.function.invoke`,relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,t.lookahead(/\s*\(/))},o=`abstract.as.async.await.become.box.break.const.continue.crate.do.dyn.else.enum.extern.false.final.fn.for.if.impl.in.let.loop.macro.match.mod.move.mut.override.priv.pub.ref.return.self.Self.static.struct.super.trait.true.try.type.typeof.union.unsafe.unsized.use.virtual.where.while.yield`.split(`.`),s=[`true`,`false`,`Some`,`None`,`Ok`,`Err`],c=`drop .Copy.Send.Sized.Sync.Drop.Fn.FnMut.FnOnce.ToOwned.Clone.Debug.PartialEq.PartialOrd.Eq.Ord.AsRef.AsMut.Into.From.Default.Iterator.Extend.IntoIterator.DoubleEndedIterator.ExactSizeIterator.SliceConcatExt.ToString.assert!.assert_eq!.bitflags!.bytes!.cfg!.col!.concat!.concat_idents!.debug_assert!.debug_assert_eq!.env!.eprintln!.panic!.file!.format!.format_args!.include_bytes!.include_str!.line!.local_data_key!.module_path!.option_env!.print!.println!.select!.stringify!.try!.unimplemented!.unreachable!.vec!.write!.writeln!.macro_rules!.assert_ne!.debug_assert_ne!`.split(`.`),l=[`i8`,`i16`,`i32`,`i64`,`i128`,`isize`,`u8`,`u16`,`u32`,`u64`,`u128`,`usize`,`f32`,`f64`,`str`,`char`,`bool`,`Box`,`Option`,`Result`,`String`,`Vec`];return{name:`Rust`,aliases:[`rs`],keywords:{$pattern:e.IDENT_RE+`!?`,type:l,keyword:o,literal:s,built_in:c},illegal:`</`,contains:[e.C_LINE_COMMENT_MODE,e.COMMENT(`/\\*`,`\\*/`,{contains:[`self`]}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:`symbol`,begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:`string`,variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:`char.escape`,match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:`number`,variants:[{begin:`\\b0b([01_]+)([ui](8|16|32|64|128|size)|f(32|64))?`},{begin:`\\b0o([0-7_]+)([ui](8|16|32|64|128|size)|f(32|64))?`},{begin:`\\b0x([A-Fa-f0-9_]+)([ui](8|16|32|64|128|size)|f(32|64))?`},{begin:`\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)([ui](8|16|32|64|128|size)|f(32|64))?`}],relevance:0},{begin:[/fn/,/\s+/,r],className:{1:`keyword`,3:`title.function`}},{className:`meta`,begin:`#!?\\[`,end:`\\]`,contains:[{className:`string`,begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,r],className:{1:`keyword`,3:`keyword`,4:`variable`}},{begin:[/for/,/\s+/,r,/\s+/,/in/],className:{1:`keyword`,3:`variable`,5:`keyword`}},{begin:[/type/,/\s+/,r],className:{1:`keyword`,3:`title.class`}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,r],className:{1:`keyword`,3:`title.class`}},{begin:e.IDENT_RE+`::`,keywords:{keyword:`Self`,built_in:c,type:l}},{className:`punctuation`,begin:`->`},a]}}var Lx=e=>({IMPORTANT:{scope:`meta`,begin:`!important`},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:`number`,begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:`built_in`,begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:`selector-attr`,begin:/\[/,end:/\]/,illegal:`$`,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:`number`,begin:e.NUMBER_RE+`(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?`,relevance:0},CSS_VARIABLE:{className:`attr`,begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Rx=`a.abbr.address.article.aside.audio.b.blockquote.body.button.canvas.caption.cite.code.dd.del.details.dfn.div.dl.dt.em.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hgroup.html.i.iframe.img.input.ins.kbd.label.legend.li.main.mark.menu.nav.object.ol.optgroup.option.p.picture.q.quote.samp.section.select.source.span.strong.summary.sup.table.tbody.td.textarea.tfoot.th.thead.time.tr.ul.var.video`.split(`.`),zx=`defs.g.marker.mask.pattern.svg.switch.symbol.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feFlood.feGaussianBlur.feImage.feMerge.feMorphology.feOffset.feSpecularLighting.feTile.feTurbulence.linearGradient.radialGradient.stop.circle.ellipse.image.line.path.polygon.polyline.rect.text.use.textPath.tspan.foreignObject.clipPath`.split(`.`),Bx=[...Rx,...zx],Vx=`any-hover.any-pointer.aspect-ratio.color.color-gamut.color-index.device-aspect-ratio.device-height.device-width.display-mode.forced-colors.grid.height.hover.inverted-colors.monochrome.orientation.overflow-block.overflow-inline.pointer.prefers-color-scheme.prefers-contrast.prefers-reduced-motion.prefers-reduced-transparency.resolution.scan.scripting.update.width.min-width.max-width.min-height.max-height`.split(`.`).sort().reverse(),Hx=`active.any-link.blank.checked.current.default.defined.dir.disabled.drop.empty.enabled.first.first-child.first-of-type.fullscreen.future.focus.focus-visible.focus-within.has.host.host-context.hover.indeterminate.in-range.invalid.is.lang.last-child.last-of-type.left.link.local-link.not.nth-child.nth-col.nth-last-child.nth-last-col.nth-last-of-type.nth-of-type.only-child.only-of-type.optional.out-of-range.past.placeholder-shown.read-only.read-write.required.right.root.scope.target.target-within.user-invalid.valid.visited.where`.split(`.`).sort().reverse(),Ux=[`after`,`backdrop`,`before`,`cue`,`cue-region`,`first-letter`,`first-line`,`grammar-error`,`marker`,`part`,`placeholder`,`selection`,`slotted`,`spelling-error`].sort().reverse(),Wx=`accent-color.align-content.align-items.align-self.alignment-baseline.all.anchor-name.animation.animation-composition.animation-delay.animation-direction.animation-duration.animation-fill-mode.animation-iteration-count.animation-name.animation-play-state.animation-range.animation-range-end.animation-range-start.animation-timeline.animation-timing-function.appearance.aspect-ratio.backdrop-filter.backface-visibility.background.background-attachment.background-blend-mode.background-clip.background-color.background-image.background-origin.background-position.background-position-x.background-position-y.background-repeat.background-size.baseline-shift.block-size.border.border-block.border-block-color.border-block-end.border-block-end-color.border-block-end-style.border-block-end-width.border-block-start.border-block-start-color.border-block-start-style.border-block-start-width.border-block-style.border-block-width.border-bottom.border-bottom-color.border-bottom-left-radius.border-bottom-right-radius.border-bottom-style.border-bottom-width.border-collapse.border-color.border-end-end-radius.border-end-start-radius.border-image.border-image-outset.border-image-repeat.border-image-slice.border-image-source.border-image-width.border-inline.border-inline-color.border-inline-end.border-inline-end-color.border-inline-end-style.border-inline-end-width.border-inline-start.border-inline-start-color.border-inline-start-style.border-inline-start-width.border-inline-style.border-inline-width.border-left.border-left-color.border-left-style.border-left-width.border-radius.border-right.border-right-color.border-right-style.border-right-width.border-spacing.border-start-end-radius.border-start-start-radius.border-style.border-top.border-top-color.border-top-left-radius.border-top-right-radius.border-top-style.border-top-width.border-width.bottom.box-align.box-decoration-break.box-direction.box-flex.box-flex-group.box-lines.box-ordinal-group.box-orient.box-pack.box-shadow.box-sizing.break-after.break-before.break-inside.caption-side.caret-color.clear.clip.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.color-scheme.column-count.column-fill.column-gap.column-rule.column-rule-color.column-rule-style.column-rule-width.column-span.column-width.columns.contain.contain-intrinsic-block-size.contain-intrinsic-height.contain-intrinsic-inline-size.contain-intrinsic-size.contain-intrinsic-width.container.container-name.container-type.content.content-visibility.counter-increment.counter-reset.counter-set.cue.cue-after.cue-before.cursor.cx.cy.direction.display.dominant-baseline.empty-cells.enable-background.field-sizing.fill.fill-opacity.fill-rule.filter.flex.flex-basis.flex-direction.flex-flow.flex-grow.flex-shrink.flex-wrap.float.flood-color.flood-opacity.flow.font.font-display.font-family.font-feature-settings.font-kerning.font-language-override.font-optical-sizing.font-palette.font-size.font-size-adjust.font-smooth.font-smoothing.font-stretch.font-style.font-synthesis.font-synthesis-position.font-synthesis-small-caps.font-synthesis-style.font-synthesis-weight.font-variant.font-variant-alternates.font-variant-caps.font-variant-east-asian.font-variant-emoji.font-variant-ligatures.font-variant-numeric.font-variant-position.font-variation-settings.font-weight.forced-color-adjust.gap.glyph-orientation-horizontal.glyph-orientation-vertical.grid.grid-area.grid-auto-columns.grid-auto-flow.grid-auto-rows.grid-column.grid-column-end.grid-column-start.grid-gap.grid-row.grid-row-end.grid-row-start.grid-template.grid-template-areas.grid-template-columns.grid-template-rows.hanging-punctuation.height.hyphenate-character.hyphenate-limit-chars.hyphens.icon.image-orientation.image-rendering.image-resolution.ime-mode.initial-letter.initial-letter-align.inline-size.inset.inset-area.inset-block.inset-block-end.inset-block-start.inset-inline.inset-inline-end.inset-inline-start.isolation.justify-content.justify-items.justify-self.kerning.left.letter-spacing.lighting-color.line-break.line-height.line-height-step.list-style.list-style-image.list-style-position.list-style-type.margin.margin-block.margin-block-end.margin-block-start.margin-bottom.margin-inline.margin-inline-end.margin-inline-start.margin-left.margin-right.margin-top.margin-trim.marker.marker-end.marker-mid.marker-start.marks.mask.mask-border.mask-border-mode.mask-border-outset.mask-border-repeat.mask-border-slice.mask-border-source.mask-border-width.mask-clip.mask-composite.mask-image.mask-mode.mask-origin.mask-position.mask-repeat.mask-size.mask-type.masonry-auto-flow.math-depth.math-shift.math-style.max-block-size.max-height.max-inline-size.max-width.min-block-size.min-height.min-inline-size.min-width.mix-blend-mode.nav-down.nav-index.nav-left.nav-right.nav-up.none.normal.object-fit.object-position.offset.offset-anchor.offset-distance.offset-path.offset-position.offset-rotate.opacity.order.orphans.outline.outline-color.outline-offset.outline-style.outline-width.overflow.overflow-anchor.overflow-block.overflow-clip-margin.overflow-inline.overflow-wrap.overflow-x.overflow-y.overlay.overscroll-behavior.overscroll-behavior-block.overscroll-behavior-inline.overscroll-behavior-x.overscroll-behavior-y.padding.padding-block.padding-block-end.padding-block-start.padding-bottom.padding-inline.padding-inline-end.padding-inline-start.padding-left.padding-right.padding-top.page.page-break-after.page-break-before.page-break-inside.paint-order.pause.pause-after.pause-before.perspective.perspective-origin.place-content.place-items.place-self.pointer-events.position.position-anchor.position-visibility.print-color-adjust.quotes.r.resize.rest.rest-after.rest-before.right.rotate.row-gap.ruby-align.ruby-position.scale.scroll-behavior.scroll-margin.scroll-margin-block.scroll-margin-block-end.scroll-margin-block-start.scroll-margin-bottom.scroll-margin-inline.scroll-margin-inline-end.scroll-margin-inline-start.scroll-margin-left.scroll-margin-right.scroll-margin-top.scroll-padding.scroll-padding-block.scroll-padding-block-end.scroll-padding-block-start.scroll-padding-bottom.scroll-padding-inline.scroll-padding-inline-end.scroll-padding-inline-start.scroll-padding-left.scroll-padding-right.scroll-padding-top.scroll-snap-align.scroll-snap-stop.scroll-snap-type.scroll-timeline.scroll-timeline-axis.scroll-timeline-name.scrollbar-color.scrollbar-gutter.scrollbar-width.shape-image-threshold.shape-margin.shape-outside.shape-rendering.speak.speak-as.src.stop-color.stop-opacity.stroke.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke-width.tab-size.table-layout.text-align.text-align-all.text-align-last.text-anchor.text-combine-upright.text-decoration.text-decoration-color.text-decoration-line.text-decoration-skip.text-decoration-skip-ink.text-decoration-style.text-decoration-thickness.text-emphasis.text-emphasis-color.text-emphasis-position.text-emphasis-style.text-indent.text-justify.text-orientation.text-overflow.text-rendering.text-shadow.text-size-adjust.text-transform.text-underline-offset.text-underline-position.text-wrap.text-wrap-mode.text-wrap-style.timeline-scope.top.touch-action.transform.transform-box.transform-origin.transform-style.transition.transition-behavior.transition-delay.transition-duration.transition-property.transition-timing-function.translate.unicode-bidi.user-modify.user-select.vector-effect.vertical-align.view-timeline.view-timeline-axis.view-timeline-inset.view-timeline-name.view-transition-name.visibility.voice-balance.voice-duration.voice-family.voice-pitch.voice-range.voice-rate.voice-stress.voice-volume.white-space.white-space-collapse.widows.width.will-change.word-break.word-spacing.word-wrap.writing-mode.x.y.z-index.zoom`.split(`.`).sort().reverse();function Gx(e){let t=Lx(e),n=Ux,r=Hx,i=`@[a-z-]+`,a={className:`variable`,begin:`(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b`,relevance:0};return{name:`SCSS`,case_insensitive:!0,illegal:`[=/|']`,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:`selector-id`,begin:`#[A-Za-z0-9_-]+`,relevance:0},{className:`selector-class`,begin:`\\.[A-Za-z0-9_-]+`,relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:`selector-tag`,begin:`\\b(`+Bx.join(`|`)+`)\\b`,relevance:0},{className:`selector-pseudo`,begin:`:(`+r.join(`|`)+`)`},{className:`selector-pseudo`,begin:`:(:)?(`+n.join(`|`)+`)`},a,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:`attribute`,begin:`\\b(`+Wx.join(`|`)+`)\\b`},{begin:`\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b`},{begin:/:/,end:/[;}{]/,relevance:0,contains:[t.BLOCK_COMMENT,a,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:`@(page|font-face)`,keywords:{$pattern:i,keyword:`@page @font-face`}},{begin:`@`,end:`[{;]`,returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:`and or not only`,attribute:Vx.join(` `)},contains:[{begin:i,className:`keyword`},{begin:/[a-z-]+(?=:)/,className:`attribute`},a,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}}function Kx(e){return{name:`Shell Session`,aliases:[`console`,`shellsession`],contains:[{className:`meta.prompt`,begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:`bash`}}]}}function qx(e){let t=e.regex,n=e.COMMENT(`--`,`$`),r={scope:`string`,variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},i={begin:/"/,end:/"/,contains:[{match:/""/}]},a=[`true`,`false`,`unknown`],o=[`double precision`,`large object`,`with timezone`,`without timezone`],s=`bigint.binary.blob.boolean.char.character.clob.date.dec.decfloat.decimal.float.int.integer.interval.nchar.nclob.national.numeric.real.row.smallint.time.timestamp.varchar.varying.varbinary`.split(`.`),c=[`add`,`asc`,`collation`,`desc`,`final`,`first`,`last`,`view`],l=`abs.acos.all.allocate.alter.and.any.are.array.array_agg.array_max_cardinality.as.asensitive.asin.asymmetric.at.atan.atomic.authorization.avg.begin.begin_frame.begin_partition.between.bigint.binary.blob.boolean.both.by.call.called.cardinality.cascaded.case.cast.ceil.ceiling.char.char_length.character.character_length.check.classifier.clob.close.coalesce.collate.collect.column.commit.condition.connect.constraint.contains.convert.copy.corr.corresponding.cos.cosh.count.covar_pop.covar_samp.create.cross.cube.cume_dist.current.current_catalog.current_date.current_default_transform_group.current_path.current_role.current_row.current_schema.current_time.current_timestamp.current_path.current_role.current_transform_group_for_type.current_user.cursor.cycle.date.day.deallocate.dec.decimal.decfloat.declare.default.define.delete.dense_rank.deref.describe.deterministic.disconnect.distinct.double.drop.dynamic.each.element.else.empty.end.end_frame.end_partition.end-exec.equals.escape.every.except.exec.execute.exists.exp.external.extract.false.fetch.filter.first_value.float.floor.for.foreign.frame_row.free.from.full.function.fusion.get.global.grant.group.grouping.groups.having.hold.hour.identity.in.indicator.initial.inner.inout.insensitive.insert.int.integer.intersect.intersection.interval.into.is.join.json_array.json_arrayagg.json_exists.json_object.json_objectagg.json_query.json_table.json_table_primitive.json_value.lag.language.large.last_value.lateral.lead.leading.left.like.like_regex.listagg.ln.local.localtime.localtimestamp.log.log10.lower.match.match_number.match_recognize.matches.max.member.merge.method.min.minute.mod.modifies.module.month.multiset.national.natural.nchar.nclob.new.no.none.normalize.not.nth_value.ntile.null.nullif.numeric.octet_length.occurrences_regex.of.offset.old.omit.on.one.only.open.or.order.out.outer.over.overlaps.overlay.parameter.partition.pattern.per.percent.percent_rank.percentile_cont.percentile_disc.period.portion.position.position_regex.power.precedes.precision.prepare.primary.procedure.ptf.range.rank.reads.real.recursive.ref.references.referencing.regr_avgx.regr_avgy.regr_count.regr_intercept.regr_r2.regr_slope.regr_sxx.regr_sxy.regr_syy.release.result.return.returns.revoke.right.rollback.rollup.row.row_number.rows.running.savepoint.scope.scroll.search.second.seek.select.sensitive.session_user.set.show.similar.sin.sinh.skip.smallint.some.specific.specifictype.sql.sqlexception.sqlstate.sqlwarning.sqrt.start.static.stddev_pop.stddev_samp.submultiset.subset.substring.substring_regex.succeeds.sum.symmetric.system.system_time.system_user.table.tablesample.tan.tanh.then.time.timestamp.timezone_hour.timezone_minute.to.trailing.translate.translate_regex.translation.treat.trigger.trim.trim_array.true.truncate.uescape.union.unique.unknown.unnest.update.upper.user.using.value.values.value_of.var_pop.var_samp.varbinary.varchar.varying.versioning.when.whenever.where.width_bucket.window.with.within.without.year`.split(`.`),u=`abs.acos.array_agg.asin.atan.avg.cast.ceil.ceiling.coalesce.corr.cos.cosh.count.covar_pop.covar_samp.cume_dist.dense_rank.deref.element.exp.extract.first_value.floor.json_array.json_arrayagg.json_exists.json_object.json_objectagg.json_query.json_table.json_table_primitive.json_value.lag.last_value.lead.listagg.ln.log.log10.lower.max.min.mod.nth_value.ntile.nullif.percent_rank.percentile_cont.percentile_disc.position.position_regex.power.rank.regr_avgx.regr_avgy.regr_count.regr_intercept.regr_r2.regr_slope.regr_sxx.regr_sxy.regr_syy.row_number.sin.sinh.sqrt.stddev_pop.stddev_samp.substring.substring_regex.sum.tan.tanh.translate.translate_regex.treat.trim.trim_array.unnest.upper.value_of.var_pop.var_samp.width_bucket`.split(`.`),d=[`current_catalog`,`current_date`,`current_default_transform_group`,`current_path`,`current_role`,`current_schema`,`current_transform_group_for_type`,`current_user`,`session_user`,`system_time`,`system_user`,`current_time`,`localtime`,`current_timestamp`,`localtimestamp`],f=[`create table`,`insert into`,`primary key`,`foreign key`,`not null`,`alter table`,`add constraint`,`grouping sets`,`on overflow`,`character set`,`respect nulls`,`ignore nulls`,`nulls first`,`nulls last`,`depth first`,`breadth first`],p=u,m=[...l,...c].filter(e=>!u.includes(e)),h={scope:`variable`,match:/@[a-z0-9][a-z0-9_]*/},g={scope:`operator`,match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},_={match:t.concat(/\b/,t.either(...p),/\s*\(/),relevance:0,keywords:{built_in:p}};function v(e){return t.concat(/\b/,t.either(...e.map(e=>e.replace(/\s+/,`\\s+`))),/\b/)}let y={scope:`keyword`,match:v(f),relevance:0};function b(e,{exceptions:t,when:n}={}){let r=n;return t||=[],e.map(e=>e.match(/\|\d+$/)||t.includes(e)?e:r(e)?`${e}|0`:e)}return{name:`SQL`,case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:b(m,{when:e=>e.length<3}),literal:a,type:s,built_in:d},contains:[{scope:`type`,match:v(o)},y,_,h,r,i,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,g]}}function Jx(e){return e?typeof e==`string`?e:e.source:null}function Yx(e){return $(`(?=`,e,`)`)}function $(...e){return e.map(e=>Jx(e)).join(``)}function Xx(e){let t=e[e.length-1];return typeof t==`object`&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function Zx(...e){return`(`+(Xx(e).capture?``:`?:`)+e.map(e=>Jx(e)).join(`|`)+`)`}var Qx=e=>$(/\b/,e,/\w$/.test(e)?/\b/:/\B/),$x=[`Protocol`,`Type`].map(Qx),eS=[`init`,`self`].map(Qx),tS=[`Any`,`Self`],nS=[`actor`,`any`,`associatedtype`,`async`,`await`,/as\?/,/as!/,`as`,`borrowing`,`break`,`case`,`catch`,`class`,`consume`,`consuming`,`continue`,`convenience`,`copy`,`default`,`defer`,`deinit`,`didSet`,`distributed`,`do`,`dynamic`,`each`,`else`,`enum`,`extension`,`fallthrough`,/fileprivate\(set\)/,`fileprivate`,`final`,`for`,`func`,`get`,`guard`,`if`,`import`,`indirect`,`infix`,/init\?/,/init!/,`inout`,/internal\(set\)/,`internal`,`in`,`is`,`isolated`,`nonisolated`,`lazy`,`let`,`macro`,`mutating`,`nonmutating`,/open\(set\)/,`open`,`operator`,`optional`,`override`,`package`,`postfix`,`precedencegroup`,`prefix`,/private\(set\)/,`private`,`protocol`,/public\(set\)/,`public`,`repeat`,`required`,`rethrows`,`return`,`set`,`some`,`static`,`struct`,`subscript`,`super`,`switch`,`throws`,`throw`,/try\?/,/try!/,`try`,`typealias`,/unowned\(safe\)/,/unowned\(unsafe\)/,`unowned`,`var`,`weak`,`where`,`while`,`willSet`],rS=[`false`,`nil`,`true`],iS=[`assignment`,`associativity`,`higherThan`,`left`,`lowerThan`,`none`,`right`],aS=[`#colorLiteral`,`#column`,`#dsohandle`,`#else`,`#elseif`,`#endif`,`#error`,`#file`,`#fileID`,`#fileLiteral`,`#filePath`,`#function`,`#if`,`#imageLiteral`,`#keyPath`,`#line`,`#selector`,`#sourceLocation`,`#warning`],oS=`abs.all.any.assert.assertionFailure.debugPrint.dump.fatalError.getVaList.isKnownUniquelyReferenced.max.min.numericCast.pointwiseMax.pointwiseMin.precondition.preconditionFailure.print.readLine.repeatElement.sequence.stride.swap.swift_unboxFromSwiftValueWithType.transcode.type.unsafeBitCast.unsafeDowncast.withExtendedLifetime.withUnsafeMutablePointer.withUnsafePointer.withVaList.withoutActuallyEscaping.zip`.split(`.`),sS=Zx(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),cS=Zx(sS,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),lS=$(sS,cS,`*`),uS=Zx(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),dS=Zx(uS,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),fS=$(uS,dS,`*`),pS=$(/[A-Z]/,dS,`*`),mS=[`attached`,`autoclosure`,$(/convention\(/,Zx(`swift`,`block`,`c`),/\)/),`discardableResult`,`dynamicCallable`,`dynamicMemberLookup`,`escaping`,`freestanding`,`frozen`,`GKInspectable`,`IBAction`,`IBDesignable`,`IBInspectable`,`IBOutlet`,`IBSegueAction`,`inlinable`,`main`,`nonobjc`,`NSApplicationMain`,`NSCopying`,`NSManaged`,$(/objc\(/,fS,/\)/),`objc`,`objcMembers`,`propertyWrapper`,`requires_stored_property_inits`,`resultBuilder`,`Sendable`,`testable`,`UIApplicationMain`,`unchecked`,`unknown`,`usableFromInline`,`warn_unqualified_access`],hS=[`iOS`,`iOSApplicationExtension`,`macOS`,`macOSApplicationExtension`,`macCatalyst`,`macCatalystApplicationExtension`,`watchOS`,`watchOSApplicationExtension`,`tvOS`,`tvOSApplicationExtension`,`swift`];function gS(e){let t={match:/\s+/,relevance:0},n=e.COMMENT(`/\\*`,`\\*/`,{contains:[`self`]}),r=[e.C_LINE_COMMENT_MODE,n],i={match:[/\./,Zx(...$x,...eS)],className:{2:`keyword`}},a={match:$(/\./,Zx(...nS)),relevance:0},o=nS.filter(e=>typeof e==`string`).concat([`_|0`]),s={variants:[{className:`keyword`,match:Zx(...nS.filter(e=>typeof e!=`string`).concat(tS).map(Qx),...eS)}]},c={$pattern:Zx(/\b\w+/,/#\w+/),keyword:o.concat(aS),literal:rS},l=[i,a,s],u=[{match:$(/\./,Zx(...oS)),relevance:0},{className:`built_in`,match:$(/\b/,Zx(...oS),/(?=\()/)}],d={match:/->/,relevance:0},f=[d,{className:`operator`,relevance:0,variants:[{match:lS},{match:`\\.(\\.|${cS})+`}]}],p=`([0-9]_*)+`,m=`([0-9a-fA-F]_*)+`,h={className:`number`,relevance:0,variants:[{match:`\\b(${p})(\\.(${p}))?([eE][+-]?(${p}))?\\b`},{match:`\\b0x(${m})(\\.(${m}))?([pP][+-]?(${p}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},g=(e=``)=>({className:`subst`,variants:[{match:$(/\\/,e,/[0\\tnr"']/)},{match:$(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),_=(e=``)=>({className:`subst`,match:$(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),v=(e=``)=>({className:`subst`,label:`interpol`,begin:$(/\\/,e,/\(/),end:/\)/}),y=(e=``)=>({begin:$(e,/"""/),end:$(/"""/,e),contains:[g(e),_(e),v(e)]}),b=(e=``)=>({begin:$(e,/"/),end:$(/"/,e),contains:[g(e),v(e)]}),x={className:`string`,variants:[y(),y(`#`),y(`##`),y(`###`),b(),b(`#`),b(`##`),b(`###`)]},S=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],C={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:S},w=e=>{let t=$(e,/\//),n=$(/\//,e);return{begin:t,end:n,contains:[...S,{scope:`comment`,begin:`#(?!.*${n})`,end:/$/}]}},T={scope:`regexp`,variants:[w(`###`),w(`##`),w(`#`),C]},E={match:$(/`/,fS,/`/)},D=[E,{className:`variable`,match:/\$\d+/},{className:`variable`,match:`\\$${dS}+`}],O=[{match:/(@|#(un)?)available/,scope:`keyword`,starts:{contains:[{begin:/\(/,end:/\)/,keywords:hS,contains:[...f,h,x]}]}},{scope:`keyword`,match:$(/@/,Zx(...mS),Yx(Zx(/\(/,/\s+/)))},{scope:`meta`,match:$(/@/,fS)}],k={match:Yx(/\b[A-Z]/),relevance:0,contains:[{className:`type`,match:$(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,dS,`+`)},{className:`type`,match:pS,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:$(/\s+&\s+/,Yx(pS)),relevance:0}]},A={begin:/</,end:/>/,keywords:c,contains:[...r,...l,...O,d,k]};k.contains.push(A);let ee={begin:/\(/,end:/\)/,relevance:0,keywords:c,contains:[`self`,{match:$(fS,/\s*:/),keywords:`_|0`,relevance:0},...r,T,...l,...u,...f,h,x,...D,...O,k]},j={begin:/</,end:/>/,keywords:`repeat each`,contains:[...r,k]},te={begin:/\(/,end:/\)/,keywords:c,contains:[{begin:Zx(Yx($(fS,/\s*:/)),Yx($(fS,/\s+/,fS,/\s*:/))),end:/:/,relevance:0,contains:[{className:`keyword`,match:/\b_\b/},{className:`params`,match:fS}]},...r,...l,...f,h,x,...O,k,ee],endsParent:!0,illegal:/["']/},M={match:[/(func|macro)/,/\s+/,Zx(E.match,fS,lS)],className:{1:`keyword`,3:`title.function`},contains:[j,te,t],illegal:[/\[/,/%/]},ne={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:`keyword`},contains:[j,te,t],illegal:/\[|%/},re={match:[/operator/,/\s+/,lS],className:{1:`keyword`,3:`title`}},ie={begin:[/precedencegroup/,/\s+/,pS],className:{1:`keyword`,3:`title`},contains:[k],keywords:[...iS,...rS],end:/}/},ae={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:`keyword`,3:`keyword`,5:`title.function`}},oe={match:[/class\b/,/\s+/,/var\b/],scope:{1:`keyword`,3:`keyword`}},se={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,fS,/\s*/],beginScope:{1:`keyword`,3:`title.class`},keywords:c,contains:[j,...l,{begin:/:/,end:/\{/,keywords:c,contains:[{scope:`title.class.inherited`,match:pS},...l],relevance:0}]};for(let e of x.variants){let t=e.contains.find(e=>e.label===`interpol`);t.keywords=c;let n=[...l,...u,...f,h,x,...D];t.contains=[...n,{begin:/\(/,end:/\)/,contains:[`self`,...n]}]}return{name:`Swift`,keywords:c,contains:[...r,M,ne,ae,oe,se,re,ie,{beginKeywords:`import`,end:/$/,contains:[...r],relevance:0},T,...l,...u,...f,h,x,...D,...O,k,ee]}}var _S=`[A-Za-z$_][0-9A-Za-z$_]*`,vS=`as.in.of.if.for.while.finally.var.new.function.do.return.void.else.break.catch.instanceof.with.throw.case.default.try.switch.continue.typeof.delete.let.yield.const.class.debugger.async.await.static.import.from.export.extends.using`.split(`.`),yS=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`],bS=`Object.Function.Boolean.Symbol.Math.Date.Number.BigInt.String.RegExp.Array.Float32Array.Float64Array.Int8Array.Uint8Array.Uint8ClampedArray.Int16Array.Int32Array.Uint16Array.Uint32Array.BigInt64Array.BigUint64Array.Set.Map.WeakSet.WeakMap.ArrayBuffer.SharedArrayBuffer.Atomics.DataView.JSON.Promise.Generator.GeneratorFunction.AsyncFunction.Reflect.Proxy.Intl.WebAssembly`.split(`.`),xS=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],SS=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`],CS=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`global`],wS=[].concat(SS,bS,xS);function TS(e){let t=e.regex,n=(e,{after:t})=>{let n=`</`+e[0].slice(1);return e.input.indexOf(n,t)!==-1},r=_S,i={begin:`<>`,end:`</>`},a=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let r=e[0].length+e.index,i=e.input[r];if(i===`<`||i===`,`){t.ignoreMatch();return}i===`>`&&(n(e,{after:r})||t.ignoreMatch());let a,o=e.input.substring(r);if(a=o.match(/^\s*=/)){t.ignoreMatch();return}if((a=o.match(/^\s+extends\s+/))&&a.index===0){t.ignoreMatch();return}}},s={$pattern:_S,keyword:vS,literal:yS,built_in:wS,"variable.language":CS},c=`[0-9](_?[0-9])*`,l=`\\.(${c})`,u=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,d={className:`number`,variants:[{begin:`(\\b(${u})((${l})|\\.)?|(${l}))[eE][+-]?(${c})\\b`},{begin:`\\b(${u})\\b((${l})\\b|\\.)?|(${l})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},f={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:s,contains:[]},p={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:`xml`}},m={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:`css`}},h={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:`graphql`}},g={className:`string`,begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,f]},_={className:`comment`,variants:[e.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:`[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},v=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,m,h,g,{match:/\$\d+/},d];f.contains=v.concat({begin:/\{/,end:/\}/,keywords:s,contains:[`self`].concat(v)});let y=[].concat(_,f.contains),b=y.concat([{begin:/(\s*)\(/,end:/\)/,keywords:s,contains:[`self`].concat(y)}]),x={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,contains:b},S={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,`(`,t.concat(/\./,r),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,r],scope:{1:`keyword`,3:`title.class`}}]},C={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...bS,...xS]}},w={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},T={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[x],illegal:/%/},E={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function D(e){return t.concat(`(?!`,e.join(`|`),`)`)}let O={match:t.concat(/\b/,D([...SS,`super`,`import`].map(e=>`${e}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},k={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},A={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},x]},ee=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,j={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(ee)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[x]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:s,exports:{PARAMS_CONTAINS:b,CLASS_REFERENCE:C},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),w,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,m,h,g,_,{match:/\$\d+/},d,C,{scope:`attr`,match:r+t.lookahead(`:`),relevance:0},j,{begin:`(`+e.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[_,e.REGEXP_MODE,{className:`function`,begin:ee,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,contains:b}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:a},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:`xml`,contains:[{begin:o.begin,end:o.end,skip:!0,contains:[`self`]}]}]},T,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[x,e.inherit(e.TITLE_MODE,{begin:r,className:`title.function`})]},{match:/\.\.\./,relevance:0},k,{match:`\\$[A-Za-z$_][0-9A-Za-z$_]*`,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[x]},O,E,S,A,{match:/\$[(.]/}]}}function ES(e){let t=e.regex,n=TS(e),r=_S,i=[`any`,`void`,`number`,`boolean`,`string`,`object`,`never`,`symbol`,`bigint`,`unknown`],a={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:`keyword`,3:`title.class`}},o={beginKeywords:`interface`,end:/\{/,excludeEnd:!0,keywords:{keyword:`interface extends`,built_in:i},contains:[n.exports.CLASS_REFERENCE]},s={className:`meta`,relevance:10,begin:/^\s*['"]use strict['"]/},c={$pattern:_S,keyword:vS.concat([`type`,`interface`,`public`,`private`,`protected`,`implements`,`declare`,`abstract`,`readonly`,`enum`,`override`,`satisfies`]),literal:yS,built_in:wS.concat(i),"variable.language":CS},l={className:`meta`,begin:`@[A-Za-z$_][0-9A-Za-z$_]*`},u=(e,t,n)=>{let r=e.contains.findIndex(e=>e.label===t);if(r===-1)throw Error(`can not find mode to replace`);e.contains.splice(r,1,n)};Object.assign(n.keywords,c),n.exports.PARAMS_CONTAINS.push(l);let d=n.contains.find(e=>e.scope===`attr`),f=Object.assign({},d,{match:t.concat(r,t.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,d,f]),n.contains=n.contains.concat([l,a,o,f]),u(n,`shebang`,e.SHEBANG()),u(n,`use_strict`,s);let p=n.contains.find(e=>e.label===`func.def`);return p.relevance=0,Object.assign(n,{name:`TypeScript`,aliases:[`ts`,`tsx`,`mts`,`cts`]}),n}function DS(e){let t=e.regex,n={className:`string`,begin:/"(""|[^/n])"C\b/},r={className:`string`,begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},i=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,o=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,s=/\d{1,2}(:\d{1,2}){1,2}/,c={className:`literal`,variants:[{begin:t.concat(/# */,t.either(a,i),/ *#/)},{begin:t.concat(/# */,s,/ *#/)},{begin:t.concat(/# */,o,/ *#/)},{begin:t.concat(/# */,t.either(a,i),/ +/,t.either(o,s),/ *#/)}]},l={className:`number`,relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},u={className:`label`,begin:/^\w+:/},d=e.COMMENT(/'''/,/$/,{contains:[{className:`doctag`,begin:/<\/?/,end:/>/}]}),f=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:`Visual Basic .NET`,aliases:[`vb`],case_insensitive:!0,classNameAliases:{label:`symbol`},keywords:{keyword:`addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield`,built_in:`addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort`,type:`boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort`,literal:`true false nothing`},illegal:`//|\\{|\\}|endif|gosub|variant|wend|^\\$ `,contains:[n,r,c,l,u,d,f,{className:`meta`,begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:`const disable else elseif enable end externalsource if region then`},contains:[f]}]}}function OS(e){e.regex;let t=e.COMMENT(/\(;/,/;\)/);return t.contains.push(`self`),{name:`WebAssembly`,keywords:{$pattern:/[\w.]+/,keyword:`anyfunc,block,br,br_if,br_table,call,call_indirect,data,drop,elem,else,end,export,func,global.get,global.set,local.get,local.set,local.tee,get_global,get_local,global,if,import,local,loop,memory,memory.grow,memory.size,module,mut,nop,offset,param,result,return,select,set_global,set_local,start,table,tee_local,then,type,unreachable`.split(`,`)},contains:[e.COMMENT(/;;/,/$/),t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:`keyword`,3:`operator`}},{className:`variable`,begin:/\$[\w_]+/},{match:/(\((?!;)|\))+/,className:`punctuation`,relevance:0},{begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:`keyword`,3:`title.function`}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,className:`type`},{className:`keyword`,match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/},{className:`number`,relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/}]}}function kS(e){let t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,i={className:`symbol`,begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},a={begin:/\s/,contains:[{className:`keyword`,begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(a,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{className:`string`}),c=e.inherit(e.QUOTE_STRING_MODE,{className:`string`}),l={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:`attr`,begin:r,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:`string`,endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[i]},{begin:/'/,end:/'/,contains:[i]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:`HTML, XML`,aliases:[`html`,`xhtml`,`rss`,`atom`,`xjb`,`xsd`,`xsl`,`plist`,`wsf`,`svg`],case_insensitive:!0,unicodeRegex:!0,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,relevance:10,contains:[a,c,s,o,{begin:/\[/,end:/\]/,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,contains:[a,o,c,s]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},i,{className:`meta`,end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[c]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:`tag`,begin:/<style(?=\s|>)/,end:/>/,keywords:{name:`style`},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:[`css`,`xml`]}},{className:`tag`,begin:/<script(?=\s|>)/,end:/>/,keywords:{name:`script`},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:[`javascript`,`handlebars`,`xml`]}},{className:`tag`,begin:/<>|<\/>/},{className:`tag`,begin:t.concat(/</,t.lookahead(t.concat(n,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:`name`,begin:n,relevance:0,starts:l}]},{className:`tag`,begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:`name`,begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function AS(e){let t=`true false yes no null`,n={className:`attr`,variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},r={className:`template-variable`,variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},i={className:`string`,relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:`char.escape`,relevance:0}]},a={className:`string`,relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,r]},o=e.inherit(a,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),s={className:`number`,begin:`\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b`},c={end:`,`,endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},l={begin:/\{/,end:/\}/,contains:[c],illegal:`\\n`,relevance:0},u={begin:`\\[`,end:`\\]`,contains:[c],illegal:`\\n`,relevance:0},d=[n,{className:`meta`,begin:`^---\\s*$`,relevance:10},{className:`string`,begin:`[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*`},{begin:`<%[%=-]?`,end:`[%-]?%>`,subLanguage:`ruby`,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:`type`,begin:`!\\w+![\\w#;/?:@&=+$,.~*'()[\\]]+`},{className:`type`,begin:`!<[\\w#;/?:@&=+$,.~*'()[\\]]+>`},{className:`type`,begin:`![\\w#;/?:@&=+$,.~*'()[\\]]+`},{className:`type`,begin:`!![\\w#;/?:@&=+$,.~*'()[\\]]+`},{className:`meta`,begin:`&`+e.UNDERSCORE_IDENT_RE+`$`},{className:`meta`,begin:`\\*`+e.UNDERSCORE_IDENT_RE+`$`},{className:`bullet`,begin:`-(?=[ ]|$)`,relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},s,{className:`number`,begin:e.C_NUMBER_RE+`\\b`,relevance:0},l,u,i,a],f=[...d];return f.pop(),f.push(o),c.contains=f,{name:`YAML`,case_insensitive:!0,aliases:[`yml`],contains:d}}var jS={arduino:kb,bash:Ab,c:jb,cpp:Mb,csharp:Nb,css:Hb,diff:Ub,go:Wb,graphql:Gb,ini:Kb,java:Qb,javascript:sx,json:cx,kotlin:px,less:Cx,lua:wx,makefile:Tx,markdown:Ex,objectivec:Dx,perl:Ox,php:kx,"php-template":Ax,plaintext:jx,python:Mx,"python-repl":Nx,r:Px,ruby:Fx,rust:Ix,scss:Gx,shell:Kx,sql:qx,swift:gS,typescript:ES,vbnet:DS,wasm:OS,xml:kS,yaml:AS},MS={},NS=`hljs-`;function PS(e){let t=bb.newInstance();return e&&a(e),{highlight:n,highlightAuto:r,listLanguages:i,register:a,registerAlias:o,registered:s};function n(e,n,r){let i=r||MS,a=typeof i.prefix==`string`?i.prefix:NS;if(!t.getLanguage(e))throw Error("Unknown language: `"+e+"` is not registered");t.configure({__emitter:FS,classPrefix:a});let o=t.highlight(n,{ignoreIllegals:!0,language:e});if(o.errorRaised)throw Error("Could not highlight with `Highlight.js`",{cause:o.errorRaised});let s=o._emitter.root,c=s.data;return c.language=o.language,c.relevance=o.relevance,s}function r(e,r){let a=(r||MS).subset||i(),o=-1,s=0,c;for(;++o<a.length;){let i=a[o];if(!t.getLanguage(i))continue;let l=n(i,e,r);l.data&&l.data.relevance!==void 0&&l.data.relevance>s&&(s=l.data.relevance,c=l)}return c||{type:`root`,children:[],data:{language:void 0,relevance:s}}}function i(){return t.listLanguages()}function a(e,n){if(typeof e==`string`)t.registerLanguage(e,n);else{let n;for(n in e)Object.hasOwn(e,n)&&t.registerLanguage(n,e[n])}}function o(e,n){if(typeof e==`string`)t.registerAliases(typeof n==`string`?n:[...n],{languageName:e});else{let n;for(n in e)if(Object.hasOwn(e,n)){let r=e[n];t.registerAliases(typeof r==`string`?r:[...r],{languageName:n})}}}function s(e){return!!t.getLanguage(e)}}var FS=class{constructor(e){this.options=e,this.root={type:`root`,children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(e){if(e===``)return;let t=this.stack[this.stack.length-1],n=t.children[t.children.length-1];n&&n.type===`text`?n.value+=e:t.children.push({type:`text`,value:e})}startScope(e){this.openNode(String(e))}endScope(){this.closeNode()}__addSublanguage(e,t){let n=this.stack[this.stack.length-1],r=e.root.children;t?n.children.push({type:`element`,tagName:`span`,properties:{className:[t]},children:r}):n.children.push(...r)}openNode(e){let t=this,n=e.split(`.`).map(function(e,n){return n?e+`_`.repeat(n):t.options.classPrefix+e}),r=this.stack[this.stack.length-1],i={type:`element`,tagName:`span`,properties:{className:n},children:[]};r.children.push(i),this.stack.push(i)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return``}},IS=[{category:`Currency`,chars:[{char:`€`,name:`Euro`},{char:`£`,name:`Pound`},{char:`¥`,name:`Yen`},{char:`¢`,name:`Cent`},{char:`₹`,name:`Rupee`},{char:`₽`,name:`Ruble`},{char:`₿`,name:`Bitcoin`},{char:`₩`,name:`Won`},{char:`₪`,name:`Shekel`},{char:`฿`,name:`Baht`}]},{category:`Math`,chars:[{char:`±`,name:`Plus-minus`},{char:`×`,name:`Multiplication`},{char:`÷`,name:`Division`},{char:`≠`,name:`Not equal`},{char:`≈`,name:`Approximately`},{char:`≤`,name:`Less than or equal`},{char:`≥`,name:`Greater than or equal`},{char:`∞`,name:`Infinity`},{char:`√`,name:`Square root`},{char:`∑`,name:`Sum`},{char:`∏`,name:`Product`},{char:`∫`,name:`Integral`},{char:`π`,name:`Pi`},{char:`∆`,name:`Delta`},{char:`Ω`,name:`Omega`},{char:`∂`,name:`Partial`},{char:`∈`,name:`Element of`},{char:`∉`,name:`Not element of`},{char:`⊂`,name:`Subset`},{char:`∪`,name:`Union`},{char:`∩`,name:`Intersection`}]},{category:`Arrows`,chars:[{char:`←`,name:`Left arrow`},{char:`→`,name:`Right arrow`},{char:`↑`,name:`Up arrow`},{char:`↓`,name:`Down arrow`},{char:`↔`,name:`Left-right arrow`},{char:`↕`,name:`Up-down arrow`},{char:`⇐`,name:`Double left arrow`},{char:`⇒`,name:`Double right arrow`},{char:`⇑`,name:`Double up arrow`},{char:`⇓`,name:`Double down arrow`},{char:`⇔`,name:`Double left-right arrow`},{char:`↵`,name:`Return arrow`}]},{category:`Symbols`,chars:[{char:`©`,name:`Copyright`},{char:`®`,name:`Registered`},{char:`™`,name:`Trademark`},{char:`§`,name:`Section`},{char:`¶`,name:`Paragraph`},{char:`†`,name:`Dagger`},{char:`‡`,name:`Double dagger`},{char:`•`,name:`Bullet`},{char:`◦`,name:`White bullet`},{char:`…`,name:`Ellipsis`},{char:`‰`,name:`Per mille`},{char:`°`,name:`Degree`},{char:`′`,name:`Prime`},{char:`″`,name:`Double prime`},{char:`№`,name:`Numero`},{char:`✓`,name:`Check mark`},{char:`✗`,name:`Cross mark`},{char:`★`,name:`Star`},{char:`☆`,name:`White star`},{char:`♠`,name:`Spade`},{char:`♣`,name:`Club`},{char:`♥`,name:`Heart`},{char:`♦`,name:`Diamond`}]},{category:`Greek`,chars:[{char:`α`,name:`Alpha`},{char:`β`,name:`Beta`},{char:`γ`,name:`Gamma`},{char:`δ`,name:`Delta`},{char:`ε`,name:`Epsilon`},{char:`ζ`,name:`Zeta`},{char:`η`,name:`Eta`},{char:`θ`,name:`Theta`},{char:`ι`,name:`Iota`},{char:`κ`,name:`Kappa`},{char:`λ`,name:`Lambda`},{char:`μ`,name:`Mu`},{char:`ν`,name:`Nu`},{char:`ξ`,name:`Xi`},{char:`ο`,name:`Omicron`},{char:`π`,name:`Pi`},{char:`ρ`,name:`Rho`},{char:`σ`,name:`Sigma`},{char:`τ`,name:`Tau`},{char:`υ`,name:`Upsilon`},{char:`φ`,name:`Phi`},{char:`χ`,name:`Chi`},{char:`ψ`,name:`Psi`},{char:`ω`,name:`Omega`}]},{category:`Punctuation`,chars:[{char:`«`,name:`Left guillemet`},{char:`»`,name:`Right guillemet`},{char:`‹`,name:`Single left guillemet`},{char:`›`,name:`Single right guillemet`},{char:`"`,name:`Left double quote`},{char:`"`,name:`Right double quote`},{char:`‘`,name:`Left single quote`},{char:`’`,name:`Right single quote`},{char:`–`,name:`En dash`},{char:`—`,name:`Em dash`},{char:`‐`,name:`Hyphen`},{char:`·`,name:`Middle dot`},{char:`¡`,name:`Inverted exclamation`},{char:`¿`,name:`Inverted question`}]}],LS=class{options;overlay=null;dialog=null;constructor(e){this.options=e}open(){if(this.overlay){this.overlay.style.display=`flex`;return}this.createDialog()}close(){this.overlay&&(this.overlay.style.display=`none`)}createDialog(){this.overlay=document.createElement(`div`),this.overlay.className=`md-dialog-overlay`,this.overlay.addEventListener(`click`,e=>{e.target===this.overlay&&this.close()}),this.dialog=document.createElement(`div`),this.dialog.className=`md-dialog md-charmap-dialog`;let e=document.createElement(`div`);e.className=`md-dialog-header`,e.innerHTML=`
|
|
159
|
+
<h3>${this.options.trans(`Special Character`)}</h3>
|
|
160
|
+
<button type="button" class="md-dialog-close">×</button>
|
|
161
|
+
`,e.querySelector(`.md-dialog-close`)?.addEventListener(`click`,()=>this.close());let t=document.createElement(`div`);t.className=`md-dialog-body md-charmap-body`;let n=document.createElement(`div`);n.className=`md-charmap-tabs`;let r=document.createElement(`div`);r.className=`md-charmap-chars`,IS.forEach((e,t)=>{let i=document.createElement(`button`);i.type=`button`,i.className=`md-charmap-tab`+(t===0?` md-charmap-tab-active`:``),i.textContent=e.category,i.addEventListener(`click`,()=>{n.querySelectorAll(`.md-charmap-tab`).forEach(e=>e.classList.remove(`md-charmap-tab-active`)),i.classList.add(`md-charmap-tab-active`),this.renderChars(r,e.chars)}),n.appendChild(i)}),this.renderChars(r,IS[0].chars);let i=document.createElement(`div`);i.className=`md-charmap-preview`,i.innerHTML=`
|
|
162
|
+
<span class="md-charmap-preview-char"></span>
|
|
163
|
+
<span class="md-charmap-preview-name"></span>
|
|
164
|
+
`,t.appendChild(n),t.appendChild(r),t.appendChild(i),this.dialog.appendChild(e),this.dialog.appendChild(t),this.overlay.appendChild(this.dialog),document.body.appendChild(this.overlay)}renderChars(e,t){e.innerHTML=``;let n=document.createElement(`div`);n.className=`md-charmap-grid`,t.forEach(({char:e,name:t})=>{let r=document.createElement(`button`);r.type=`button`,r.className=`md-charmap-char`,r.textContent=e,r.title=t,r.addEventListener(`mouseenter`,()=>{let n=this.dialog?.querySelector(`.md-charmap-preview`);n&&(n.querySelector(`.md-charmap-preview-char`).textContent=e,n.querySelector(`.md-charmap-preview-name`).textContent=t)}),r.addEventListener(`click`,()=>{this.options.onSelect(e),this.close()}),n.appendChild(r)}),e.appendChild(n)}destroy(){this.overlay&&(this.overlay.remove(),this.overlay=null,this.dialog=null)}},RS=[{category:`Smileys`,icon:`😀`,emojis:`😀.😃.😄.😁.😆.😅.🤣.😂.🙂.🙃.😉.😊.😇.🥰.😍.🤩.😘.😗.☺️.😚.😙.🥲.😋.😛.😜.🤪.😝.🤑.🤗.🤭.🤫.🤔.🤐.🤨.😐.😑.😶.😏.😒.🙄.😬.🤥.😌.😔.😪.🤤.😴.😷.🤒.🤕.🤢.🤮.🤧.🥵.🥶.🥴.😵.🤯.🤠.🥳.🥸.😎.🤓.🧐.😕.😟.🙁.☹️.😮.😯.😲.😳.🥺.😦.😧.😨.😰.😥.😢.😭.😱.😖.😣.😞.😓.😩.😫.🥱.😤.😡.😠.🤬.😈.👿.💀.☠️.💩.🤡.👹.👺`.split(`.`)},{category:`Gestures`,icon:`👋`,emojis:`👋.🤚.🖐️.✋.🖖.👌.🤌.🤏.✌️.🤞.🤟.🤘.🤙.👈.👉.👆.🖕.👇.☝️.👍.👎.✊.👊.🤛.🤜.👏.🙌.👐.🤲.🤝.🙏.✍️.💅.🤳.💪.🦾.🦵.🦿.🦶.👂.🦻.👃.🧠.🫀.🫁.🦷.🦴.👀.👁️.👅.👄.👶.🧒.👦.👧.🧑.👱.👨.🧔.👩`.split(`.`)},{category:`Hearts`,icon:`❤️`,emojis:`❤️.🧡.💛.💚.💙.💜.🖤.🤍.🤎.💔.❣️.💕.💞.💓.💗.💖.💘.💝.💟.♥️.💋.💌.💐.🌹.🥀.🌷.🌸.💮.🏵️.🌻`.split(`.`)},{category:`Objects`,icon:`📧`,emojis:`📧.📨.📩.📤.📥.📦.📫.📪.📬.📭.📮.📝.💼.📁.📂.📅.📆.📇.📈.📉.📊.📋.📌.📍.📎.📏.📐.✂️.📒.📓.📔.📕.📖.📗.📘.📙.📚.📰.🔖.🏷️.💰.💴.💵.💶.💷.💸.💳.🧾.💹.✉️`.split(`.`)},{category:`Symbols`,icon:`✅`,emojis:`✅.❌.❓.❗.‼️.⁉️.💯.🔴.🟠.🟡.🟢.🔵.🟣.⚫.⚪.🟤.🔶.🔷.🔸.🔹.🔺.🔻.💠.🔘.🔳.🔲.▪️.▫️.◾.◽.◼️.◻️.⬛.⬜.🟥.🟧.🟨.🟩.🟦.🟪.⭐.🌟.✨.💫.⚡.🔥.💥.🎉.🎊.🏆.🥇.🥈.🥉.🏅.🎖️.📣.📢.🔔.🔕.🎵`.split(`.`)},{category:`Arrows`,icon:`➡️`,emojis:`➡️.⬅️.⬆️.⬇️.↗️.↘️.↙️.↖️.↕️.↔️.↩️.↪️.⤴️.⤵️.🔃.🔄.🔙.🔚.🔛.🔜.🔝.▶️.⏩.⏭️.⏯️.◀️.⏪.⏮️.🔀.🔁.🔂.⏸️.⏹️.⏺️.⏏️.🎦.🔅.🔆.📶.📳`.split(`.`)}],zS=class{options;overlay=null;dialog=null;searchInput=null;constructor(e){this.options=e}open(){if(this.overlay){this.overlay.style.display=`flex`,this.searchInput?.focus();return}this.createDialog()}close(){this.overlay&&(this.overlay.style.display=`none`)}createDialog(){this.overlay=document.createElement(`div`),this.overlay.className=`md-dialog-overlay`,this.overlay.addEventListener(`click`,e=>{e.target===this.overlay&&this.close()}),this.dialog=document.createElement(`div`),this.dialog.className=`md-dialog md-emoji-dialog`;let e=document.createElement(`div`);e.className=`md-dialog-header`,e.innerHTML=`
|
|
165
|
+
<h3>${this.options.trans(`Emoticons`)}</h3>
|
|
166
|
+
<button type="button" class="md-dialog-close">×</button>
|
|
167
|
+
`,e.querySelector(`.md-dialog-close`)?.addEventListener(`click`,()=>this.close());let t=document.createElement(`div`);t.className=`md-emoji-search`,this.searchInput=document.createElement(`input`),this.searchInput.type=`text`,this.searchInput.placeholder=this.options.trans(`Search...`),this.searchInput.className=`md-emoji-search-input`,t.appendChild(this.searchInput);let n=document.createElement(`div`);n.className=`md-dialog-body md-emoji-body`;let r=document.createElement(`div`);r.className=`md-emoji-tabs`;let i=document.createElement(`div`);i.className=`md-emoji-container`,RS.forEach((e,t)=>{let n=document.createElement(`button`);n.type=`button`,n.className=`md-emoji-tab`+(t===0?` md-emoji-tab-active`:``),n.textContent=e.icon,n.title=e.category,n.addEventListener(`click`,()=>{r.querySelectorAll(`.md-emoji-tab`).forEach(e=>e.classList.remove(`md-emoji-tab-active`)),n.classList.add(`md-emoji-tab-active`),this.renderEmojis(i,e.emojis),this.searchInput&&(this.searchInput.value=``)}),r.appendChild(n)}),this.searchInput.addEventListener(`input`,e=>{if(e.target.value.toLowerCase()){let e=RS.flatMap(e=>e.emojis);this.renderEmojis(i,e),r.querySelectorAll(`.md-emoji-tab`).forEach(e=>e.classList.remove(`md-emoji-tab-active`))}else r.querySelector(`.md-emoji-tab`)?.classList.add(`md-emoji-tab-active`),this.renderEmojis(i,RS[0].emojis)}),this.renderEmojis(i,RS[0].emojis),n.appendChild(r),n.appendChild(t),n.appendChild(i),this.dialog.appendChild(e),this.dialog.appendChild(n),this.overlay.appendChild(this.dialog),document.body.appendChild(this.overlay),this.searchInput.focus()}renderEmojis(e,t){e.innerHTML=``;let n=document.createElement(`div`);n.className=`md-emoji-grid`,t.forEach(e=>{let t=document.createElement(`button`);t.type=`button`,t.className=`md-emoji-btn`,t.textContent=e,t.addEventListener(`click`,()=>{this.options.onSelect(e),this.close()}),n.appendChild(t)}),e.appendChild(n)}destroy(){this.overlay&&(this.overlay.remove(),this.overlay=null,this.dialog=null,this.searchInput=null)}},BS=10*1024*1024,VS=[`image/jpeg`,`image/png`,`image/gif`,`image/webp`,`image/svg+xml`,`image/bmp`],HS={jpg:`image/jpeg`,jpeg:`image/jpeg`,jpe:`image/jpeg`,png:`image/png`,gif:`image/gif`,bmp:`image/bmp`,webp:`image/webp`,svg:`image/svg+xml`};function US(e){if(!e)return null;let t=e.split(/[\s,|]+/).map(e=>e.trim().toLowerCase().replace(/^\./,``)).filter(Boolean);return t.length>0?t:null}var WS=[`script`,`foreignobject`,`set`,`animate`,`animatetransform`,`animatemotion`,`handler`,`listener`],GS=/^on/i,KS=/javascript:|data:text\/html/i;function qS(e){let t=new DOMParser().parseFromString(e,`image/svg+xml`);if(t.querySelector(`parsererror`))return null;let n=e=>{let t=e.tagName.toLowerCase();if(WS.includes(t)){e.remove();return}let r=Array.from(e.attributes);for(let t of r)(GS.test(t.name)||KS.test(t.value))&&e.removeAttribute(t.name);let i=Array.from(e.children);for(let e of i)n(e)};return n(t.documentElement),new XMLSerializer().serializeToString(t.documentElement)}var JS=class{options;overlay=null;dialog=null;activeTab=`upload`;currentFile=null;fileInput=null;uploading=!1;constructor(e){this.options=e}open(){if(this.overlay){this.reset(),this.overlay.style.display=`flex`;return}this.createDialog()}close(){this.overlay&&(this.overlay.style.display=`none`),this.reset()}reset(){if(this.currentFile=null,this.uploading=!1,!this.dialog)return;this.fileInput&&(this.fileInput.value=``);let e=this.dialog.querySelector(`.md-image-upload-dropzone-text`);e&&(e.textContent=this.options.trans(`Drop image here or click to browse`));let t=this.dialog.querySelector(`.md-image-upload-url-input`);t&&(t.value=``);let n=this.dialog.querySelector(`.md-image-upload-alt-input`);n&&(n.value=``);let r=this.dialog.querySelector(`.md-image-upload-preview`);r&&(r.innerHTML=``,r.style.display=`none`);let i=this.dialog.querySelector(`.md-image-upload-progress`);i&&(i.style.display=`none`);let a=this.dialog.querySelector(`.md-image-upload-insert`);a&&(a.disabled=!0);let o=this.dialog.querySelector(`.md-image-upload-error`);o&&(o.style.display=`none`,o.textContent=``),this.switchTab(`upload`)}createDialog(){let e=this.options.trans;this.overlay=document.createElement(`div`),this.overlay.className=`md-dialog-overlay`,this.overlay.addEventListener(`click`,e=>{e.target===this.overlay&&this.close()}),this.dialog=document.createElement(`div`),this.dialog.className=`md-dialog md-image-upload-dialog`;let t=document.createElement(`div`);t.className=`md-dialog-header`,t.innerHTML=`
|
|
168
|
+
<h3>${e(`Insert image`)}</h3>
|
|
169
|
+
<button type="button" class="md-dialog-close">×</button>
|
|
170
|
+
`,t.querySelector(`.md-dialog-close`)?.addEventListener(`click`,()=>this.close());let n=document.createElement(`div`);n.className=`md-dialog-body`;let r=document.createElement(`div`);r.className=`md-image-upload-tabs`;let i=document.createElement(`button`);i.type=`button`,i.className=`md-image-upload-tab md-image-upload-tab-active`,i.textContent=e(`Upload`),i.addEventListener(`click`,()=>this.switchTab(`upload`));let a=document.createElement(`button`);a.type=`button`,a.className=`md-image-upload-tab`,a.textContent=e(`URL`),a.addEventListener(`click`,()=>this.switchTab(`url`)),r.appendChild(i),r.appendChild(a);let o=document.createElement(`div`);o.className=`md-image-upload-panel md-image-upload-panel-upload`,this.fileInput=document.createElement(`input`),this.fileInput.type=`file`,this.fileInput.accept=`image/*`,this.fileInput.style.display=`none`,this.fileInput.addEventListener(`change`,()=>{let e=this.fileInput?.files?.[0];e&&this.handleFileSelected(e)});let s=document.createElement(`div`);s.className=`md-image-upload-dropzone`,s.innerHTML=`
|
|
171
|
+
<div class="md-image-upload-dropzone-icon">
|
|
172
|
+
<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
|
|
173
|
+
<rect x="3" y="3" width="18" height="18" rx="2"/>
|
|
174
|
+
<circle cx="8.5" cy="8.5" r="1.5"/>
|
|
175
|
+
<polyline points="21 15 16 10 5 21"/>
|
|
176
|
+
</svg>
|
|
177
|
+
</div>
|
|
178
|
+
<div class="md-image-upload-dropzone-text">${e(`Drop image here or click to browse`)}</div>
|
|
179
|
+
<button type="button" class="md-btn md-btn-primary md-image-upload-browse">${e(`Browse...`)}</button>
|
|
180
|
+
`,s.querySelector(`.md-image-upload-browse`)?.addEventListener(`click`,e=>{e.stopPropagation(),this.fileInput?.click()}),s.addEventListener(`click`,()=>{this.fileInput?.click()}),s.addEventListener(`dragover`,e=>{e.preventDefault(),e.stopPropagation(),s.classList.add(`md-image-upload-dropzone-active`),e.dataTransfer&&(e.dataTransfer.dropEffect=`copy`)}),s.addEventListener(`dragleave`,e=>{e.preventDefault(),e.stopPropagation(),s.classList.remove(`md-image-upload-dropzone-active`)}),s.addEventListener(`drop`,e=>{e.preventDefault(),e.stopPropagation(),s.classList.remove(`md-image-upload-dropzone-active`);let t=e.dataTransfer?.files?.[0];t&&this.handleFileSelected(t)}),o.appendChild(this.fileInput),o.appendChild(s);let c=document.createElement(`div`);c.className=`md-image-upload-panel md-image-upload-panel-url`,c.style.display=`none`;let l=document.createElement(`div`);l.className=`md-image-upload-row`,l.innerHTML=`
|
|
181
|
+
<label>${e(`URL`)}</label>
|
|
182
|
+
<input type="url" class="md-image-upload-url-input" placeholder="https://..." />
|
|
183
|
+
`;let u=l.querySelector(`.md-image-upload-url-input`);u.addEventListener(`input`,()=>{this.handleUrlInput(u.value)}),c.appendChild(l);let d=document.createElement(`div`);d.className=`md-image-upload-preview`,d.style.display=`none`;let f=document.createElement(`div`);f.className=`md-image-upload-row`,f.innerHTML=`
|
|
184
|
+
<label>${e(`Alt text`)}</label>
|
|
185
|
+
<input type="text" class="md-image-upload-alt-input" />
|
|
186
|
+
`;let p=document.createElement(`div`);p.className=`md-image-upload-error`,p.style.display=`none`;let m=document.createElement(`div`);m.className=`md-image-upload-progress`,m.style.display=`none`,m.innerHTML=`
|
|
187
|
+
<div class="md-image-upload-progress-bar"><div class="md-image-upload-progress-fill"></div></div>
|
|
188
|
+
<span class="md-image-upload-progress-text">${e(`Uploading...`)}</span>
|
|
189
|
+
`;let h=document.createElement(`div`);h.className=`md-image-upload-footer`,h.innerHTML=`
|
|
190
|
+
<button type="button" class="md-btn md-image-upload-cancel">${e(`Cancel`)}</button>
|
|
191
|
+
<button type="button" class="md-btn md-btn-primary md-image-upload-insert" disabled>${e(`Insert`)}</button>
|
|
192
|
+
`,h.querySelector(`.md-image-upload-cancel`)?.addEventListener(`click`,()=>this.close()),h.querySelector(`.md-image-upload-insert`)?.addEventListener(`click`,()=>this.handleInsert()),n.appendChild(r),n.appendChild(o),n.appendChild(c),n.appendChild(d),n.appendChild(p),n.appendChild(m),n.appendChild(f),n.appendChild(h),this.dialog.appendChild(t),this.dialog.appendChild(n),this.overlay.appendChild(this.dialog),document.body.appendChild(this.overlay)}switchTab(e){if(this.activeTab=e,!this.dialog)return;let t=this.dialog.querySelectorAll(`.md-image-upload-tab`);t[0]?.classList.toggle(`md-image-upload-tab-active`,e===`upload`),t[1]?.classList.toggle(`md-image-upload-tab-active`,e===`url`);let n=this.dialog.querySelector(`.md-image-upload-panel-upload`),r=this.dialog.querySelector(`.md-image-upload-panel-url`);n&&(n.style.display=e===`upload`?``:`none`),r&&(r.style.display=e===`url`?``:`none`)}showError(e){let t=this.dialog?.querySelector(`.md-image-upload-error`);t&&(t.textContent=e,t.style.display=`block`)}clearError(){let e=this.dialog?.querySelector(`.md-image-upload-error`);e&&(e.style.display=`none`,e.textContent=``)}isAcceptedType(e){let t=US(this.options.fileTypes);if(!t)return VS.includes(e.type);let n=(e.name??``).toLowerCase(),r=n.lastIndexOf(`.`),i=r>=0?n.slice(r+1):``;if(i&&t.includes(i))return!0;let a=t.map(e=>HS[e]).filter(Boolean);return!!e.type&&a.includes(e.type)}validateFile(e){let t=this.options.trans;if(this.options.validate){let t=this.options.validate(e);if(t)return t}if(!this.isAcceptedType(e))return t(`Invalid file type`);let n=this.options.uploadMaxSize??BS;return e.size>n?t(`File too large`):null}handleFileSelected(e){this.clearError();let t=this.validateFile(e);if(t){this.showError(t);return}this.currentFile=e,this.showFilePreview(e);let n=this.dialog?.querySelector(`.md-image-upload-dropzone-text`);n&&(n.textContent=e.name);let r=this.dialog?.querySelector(`.md-image-upload-insert`);r&&(r.disabled=!1)}showFilePreview(e){let t=this.dialog?.querySelector(`.md-image-upload-preview`);if(!t)return;let n=URL.createObjectURL(e),r=document.createElement(`img`);r.src=n,r.alt=`Preview`,r.onload=()=>URL.revokeObjectURL(n),t.innerHTML=``,t.appendChild(r),t.style.display=`block`}handleUrlInput(e){this.clearError();let t=this.dialog?.querySelector(`.md-image-upload-preview`),n=this.dialog?.querySelector(`.md-image-upload-insert`);if(!e.trim()){t&&(t.innerHTML=``,t.style.display=`none`),n&&(n.disabled=!0);return}if(!this.isValidUrl(e)){n&&(n.disabled=!0);return}if(t){let r=document.createElement(`img`);r.src=e,r.alt=`Preview`,r.onerror=()=>{t.innerHTML=``,t.style.display=`none`,n&&(n.disabled=!0),this.showError(this.options.trans(`Invalid image URL`))},r.onload=()=>{n&&(n.disabled=!1)},t.innerHTML=``,t.appendChild(r),t.style.display=`block`}}isValidUrl(e){try{let t=new URL(e,window.location.href);return t.protocol===`http:`||t.protocol===`https:`}catch{return!1}}async handleInsert(){if(this.uploading)return;let e=(this.dialog?.querySelector(`.md-image-upload-alt-input`))?.value?.trim()||void 0;if(this.activeTab===`url`){let t=(this.dialog?.querySelector(`.md-image-upload-url-input`))?.value?.trim();t&&this.isValidUrl(t)&&(this.options.onInsert(t,e),this.close());return}if(this.currentFile)try{let t=await this.uploadFile(this.currentFile);this.options.onInsert(t,e),this.close()}catch(e){let t=e instanceof Error&&e.message?e.message:this.options.trans(`Upload failed`);this.showError(t)}}uploadFile(e){let t=this.validateFile(e);return t?Promise.reject(Error(t)):e.type===`image/svg+xml`?this.sanitizeAndUploadSVG(e):this.options.uploadUrl?this.uploadViaXHR(e):this.readAsBase64(e)}sanitizeAndUploadSVG(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let i=r.result,a=qS(i);if(!a){n(Error(`Invalid SVG file`));return}let o=new Blob([a],{type:`image/svg+xml`}),s=new File([o],e.name,{type:`image/svg+xml`});this.options.uploadUrl?this.uploadViaXHR(s).then(t,n):this.readAsBase64(s).then(t,n)},r.onerror=()=>n(Error(`Failed to read file`)),r.readAsText(e)})}readAsBase64(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{typeof r.result==`string`?t(r.result):n(Error(`Failed to read file`))},r.onerror=()=>n(Error(`Failed to read file`)),r.readAsDataURL(e)})}uploadViaXHR(e){return new Promise((t,n)=>{this.uploading=!0;let r=this.dialog?.querySelector(`.md-image-upload-progress`),i=this.dialog?.querySelector(`.md-image-upload-progress-fill`),a=this.dialog?.querySelector(`.md-image-upload-progress-text`),o=this.dialog?.querySelector(`.md-image-upload-insert`);r&&(r.style.display=`flex`),o&&(o.disabled=!0);let s=new XMLHttpRequest,c=new FormData;if(c.append(`file`,e,e.name),s.upload.addEventListener(`progress`,e=>{if(e.lengthComputable&&i&&a){let t=Math.round(e.loaded/e.total*100);i.style.width=`${t}%`,a.textContent=`${t}%`}}),s.addEventListener(`load`,()=>{if(this.uploading=!1,r&&(r.style.display=`none`),s.status>=200&&s.status<300)try{let e=JSON.parse(s.responseText),r=e.location||e.url||e.link;if(!r){n(Error(`No URL returned from server`));return}let i=this.options.uploadBasePath??`/`;r&&!r.startsWith(`http://`)&&!r.startsWith(`https://`)&&!r.startsWith(`data:`)&&(r=i.replace(/\/$/,``)+`/`+r.replace(/^\//,``)),t(r)}catch{n(Error(`Invalid server response`))}else n(Error(`Upload failed: ${s.status}`))}),s.addEventListener(`error`,()=>{this.uploading=!1,r&&(r.style.display=`none`),n(Error(`Network error`))}),s.addEventListener(`abort`,()=>{this.uploading=!1,r&&(r.style.display=`none`),n(Error(`Upload aborted`))}),s.open(`POST`,this.options.uploadUrl),this.options.uploadCredentials!==!1&&(s.withCredentials=!0),this.options.uploadHeaders)for(let[e,t]of Object.entries(this.options.uploadHeaders))s.setRequestHeader(e,t);s.send(c)})}destroy(){this.overlay&&(this.overlay.remove(),this.overlay=null,this.dialog=null,this.fileInput=null)}},YS=class{options;overlay=null;dialog=null;searchInput=null;replaceInput=null;currentResults=[];currentIndex=-1;caseSensitive=!1;wholeWord=!1;constructor(e){this.options=e}get tiptap(){return this.options.editor.getTipTap()}open(){if(this.overlay){this.overlay.style.display=`flex`,this.searchInput?.focus(),this.searchInput?.select();return}this.createDialog()}close(){this.overlay&&(this.overlay.style.display=`none`),this.clearHighlights()}createDialog(){let e=this.options.trans;this.overlay=document.createElement(`div`),this.overlay.className=`md-dialog-overlay md-dialog-overlay-transparent`,this.dialog=document.createElement(`div`),this.dialog.className=`md-dialog md-searchreplace-dialog`;let t=document.createElement(`div`);t.className=`md-dialog-header`,t.innerHTML=`
|
|
193
|
+
<h3>${e(`Find and Replace`)}</h3>
|
|
194
|
+
<button type="button" class="md-dialog-close">×</button>
|
|
195
|
+
`,t.querySelector(`.md-dialog-close`)?.addEventListener(`click`,()=>this.close());let n=document.createElement(`div`);n.className=`md-dialog-body md-searchreplace-body`;let r=document.createElement(`div`);r.className=`md-searchreplace-row`,r.innerHTML=`
|
|
196
|
+
<label>${e(`Find`)}:</label>
|
|
197
|
+
<input type="text" class="md-searchreplace-input md-searchreplace-search" />
|
|
198
|
+
<span class="md-searchreplace-count"></span>
|
|
199
|
+
`,this.searchInput=r.querySelector(`.md-searchreplace-search`);let i=document.createElement(`div`);i.className=`md-searchreplace-row`,i.innerHTML=`
|
|
200
|
+
<label>${e(`Replace`)}:</label>
|
|
201
|
+
<input type="text" class="md-searchreplace-input md-searchreplace-replace" />
|
|
202
|
+
`,this.replaceInput=i.querySelector(`.md-searchreplace-replace`);let a=document.createElement(`div`);a.className=`md-searchreplace-options`,a.innerHTML=`
|
|
203
|
+
<label class="md-searchreplace-option">
|
|
204
|
+
<input type="checkbox" class="md-searchreplace-case" />
|
|
205
|
+
<span>${e(`Case sensitive`)}</span>
|
|
206
|
+
</label>
|
|
207
|
+
<label class="md-searchreplace-option">
|
|
208
|
+
<input type="checkbox" class="md-searchreplace-whole" />
|
|
209
|
+
<span>${e(`Whole word`)}</span>
|
|
210
|
+
</label>
|
|
211
|
+
`;let o=a.querySelector(`.md-searchreplace-case`),s=a.querySelector(`.md-searchreplace-whole`);o.addEventListener(`change`,()=>{this.caseSensitive=o.checked,this.doSearch()}),s.addEventListener(`change`,()=>{this.wholeWord=s.checked,this.doSearch()});let c=document.createElement(`div`);c.className=`md-searchreplace-buttons`,c.innerHTML=`
|
|
212
|
+
<button type="button" class="md-btn md-searchreplace-prev">${e(`Previous`)}</button>
|
|
213
|
+
<button type="button" class="md-btn md-searchreplace-next">${e(`Next`)}</button>
|
|
214
|
+
<button type="button" class="md-btn md-searchreplace-replace-btn">${e(`Replace`)}</button>
|
|
215
|
+
<button type="button" class="md-btn md-searchreplace-replace-all">${e(`Replace All`)}</button>
|
|
216
|
+
`,c.querySelector(`.md-searchreplace-prev`)?.addEventListener(`click`,()=>this.findPrevious()),c.querySelector(`.md-searchreplace-next`)?.addEventListener(`click`,()=>this.findNext()),c.querySelector(`.md-searchreplace-replace-btn`)?.addEventListener(`click`,()=>this.replaceCurrent()),c.querySelector(`.md-searchreplace-replace-all`)?.addEventListener(`click`,()=>this.replaceAll()),this.searchInput.addEventListener(`input`,()=>this.doSearch()),this.searchInput.addEventListener(`keydown`,e=>{e.key===`Enter`?(e.preventDefault(),e.shiftKey?this.findPrevious():this.findNext()):e.key===`Escape`&&this.close()}),this.replaceInput.addEventListener(`keydown`,e=>{e.key===`Enter`?(e.preventDefault(),this.replaceCurrent()):e.key===`Escape`&&this.close()}),n.appendChild(r),n.appendChild(i),n.appendChild(a),n.appendChild(c),this.dialog.appendChild(t),this.dialog.appendChild(n),this.overlay.appendChild(this.dialog),document.body.appendChild(this.overlay),this.searchInput.focus()}doSearch(){let e=this.searchInput?.value??``;if(this.currentResults=[],this.currentIndex=-1,!e||!this.tiptap){this.updateCount(),this.clearHighlights();return}let t=this.tiptap.getText(),n=this.caseSensitive?e:e.toLowerCase(),r=this.caseSensitive?t:t.toLowerCase(),i=0,a=0;for(;(a=r.indexOf(n,i))!==-1;){let n=a+e.length;if(this.wholeWord){let e=a===0||/\W/.test(t[a-1]),r=n===t.length||/\W/.test(t[n]);if(!e||!r){i=a+1;continue}}this.currentResults.push({from:a,to:n,text:t.substring(a,n)}),i=n}this.updateCount(),this.currentResults.length>0&&(this.currentIndex=0,this.highlightCurrent())}updateCount(){let e=this.dialog?.querySelector(`.md-searchreplace-count`);e&&(this.currentResults.length>0?e.textContent=`${this.currentIndex+1} / ${this.currentResults.length}`:e.textContent=this.searchInput?.value?`0 results`:``)}highlightCurrent(){this.currentIndex<0||this.currentIndex>=this.currentResults.length||this.updateCount()}clearHighlights(){}findNext(){if(this.currentResults.length===0){this.doSearch();return}this.currentIndex=(this.currentIndex+1)%this.currentResults.length,this.highlightCurrent()}findPrevious(){if(this.currentResults.length===0){this.doSearch();return}this.currentIndex=(this.currentIndex-1+this.currentResults.length)%this.currentResults.length,this.highlightCurrent()}replaceCurrent(){if(this.currentIndex<0||this.currentIndex>=this.currentResults.length||!this.tiptap)return;let e=this.replaceInput?.value??``,t=this.currentResults[this.currentIndex],n=this.tiptap.getHTML();n=n.replace(t.text,e),this.tiptap.commands.setContent(n),this.doSearch()}replaceAll(){if(this.currentResults.length===0||!this.tiptap)return;let e=this.searchInput?.value??``,t=this.replaceInput?.value??``;if(!e)return;let n=this.tiptap.getHTML(),r=`g`;this.caseSensitive||(r+=`i`);let i=e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);this.wholeWord&&(i=`\\b${i}\\b`);let a=new RegExp(i,r);n=n.replace(a,t),this.tiptap.commands.setContent(n),this.currentResults=[],this.currentIndex=-1,this.updateCount()}destroy(){this.overlay&&(this.overlay.remove(),this.overlay=null,this.dialog=null,this.searchInput=null,this.replaceInput=null)}},XS=class{options;overlay=null;dialog=null;textarea=null;constructor(e){this.options=e}get tiptap(){return this.options.editor.getTipTap()}open(){if(this.overlay){this.textarea&&(this.textarea.value=this.tiptap?.getHTML()??``),this.overlay.style.display=`flex`,this.textarea?.focus();return}this.createDialog()}close(){this.overlay&&(this.overlay.style.display=`none`)}save(){this.textarea&&this.tiptap?.commands.setContent(this.textarea.value),this.close()}createDialog(){let e=this.options.trans,t=this.options.editor.getConfig().skin??`oxide`;this.overlay=document.createElement(`div`),this.overlay.className=`md-dialog-overlay`,this.overlay.addEventListener(`click`,e=>{e.target===this.overlay&&this.close()});let n=document.createElement(`div`);n.className=`md-editor-${t}`,n.style.display=`contents`,this.dialog=document.createElement(`div`),this.dialog.className=`md-dialog md-source-editor-dialog`;let r=document.createElement(`div`);r.className=`md-dialog-header`,r.innerHTML=`
|
|
217
|
+
<h3>${e(`Source code`)}</h3>
|
|
218
|
+
<button type="button" class="md-dialog-close">\u00d7</button>
|
|
219
|
+
`,r.querySelector(`.md-dialog-close`)?.addEventListener(`click`,()=>this.close());let i=document.createElement(`div`);i.className=`md-dialog-body`,this.textarea=document.createElement(`textarea`),this.textarea.className=`md-source-editor-textarea`,this.textarea.value=this.tiptap?.getHTML()??``,this.textarea.spellcheck=!1,this.textarea.addEventListener(`keydown`,e=>{if(e.key===`Tab`){e.preventDefault();let t=this.textarea.selectionStart,n=this.textarea.selectionEnd;this.textarea.value=this.textarea.value.substring(0,t)+` `+this.textarea.value.substring(n),this.textarea.selectionStart=this.textarea.selectionEnd=t+2}}),i.appendChild(this.textarea);let a=document.createElement(`div`);a.className=`md-source-editor-footer`,a.innerHTML=`
|
|
220
|
+
<button type="button" class="md-btn md-source-editor-cancel">${e(`Cancel`)}</button>
|
|
221
|
+
<button type="button" class="md-btn md-btn-primary md-source-editor-save">${e(`Save`)}</button>
|
|
222
|
+
`,a.querySelector(`.md-source-editor-cancel`)?.addEventListener(`click`,()=>this.close()),a.querySelector(`.md-source-editor-save`)?.addEventListener(`click`,()=>this.save()),i.appendChild(a),this.dialog.appendChild(r),this.dialog.appendChild(i),n.appendChild(this.dialog),this.overlay.appendChild(n),this.overlay.addEventListener(`keydown`,e=>{e.key===`Escape`&&this.close()}),document.body.appendChild(this.overlay),this.textarea.focus()}destroy(){this.overlay&&(this.overlay.remove(),this.overlay=null,this.dialog=null,this.textarea=null)}},ZS=class{options;overlay=null;dialog=null;urlInput=null;textInput=null;titleInput=null;targetSelect=null;constructor(e){this.options=e}get tiptap(){return this.options.editor.getTipTap()}open(){this.overlay||this.createDialog(),this.populateFromSelection(),this.overlay.style.display=`flex`,this.urlInput?.focus()}close(){this.overlay&&(this.overlay.style.display=`none`)}populateFromSelection(){let e=this.tiptap;if(!e)return;let t=e.getAttributes(`link`),{from:n,to:r}=e.state.selection,i=e.state.doc.textBetween(n,r,``);this.urlInput&&(this.urlInput.value=t.href??``),this.textInput&&(this.textInput.value=i),this.titleInput&&(this.titleInput.value=t.title??``),this.targetSelect&&(this.targetSelect.value=t.target??``)}normalizeUrl(e){return!e||/^[a-z][a-z0-9+.-]*:/i.test(e)||e.startsWith(`//`)||e.startsWith(`#`)||e.startsWith(`/`)||e.startsWith(`./`)||e.startsWith(`../`)?e:/^(www\.|[^\s/?#@]+\.[a-z]{2,})(?:[/?#:]|$)/i.test(e)?`http://${e}`:e}save(){let e=this.tiptap;if(!e)return;let t=this.normalizeUrl(this.urlInput?.value.trim()??``),n=this.textInput?.value??``,r=this.titleInput?.value.trim()??``,i=this.targetSelect?.value??``;if(!t){e.chain().focus().unsetLink().run(),this.close();return}let a={href:t};i?a.target=i:a.target=null,r?a.title=r:a.title=null;let{from:o,to:s}=e.state.selection,c=e.state.doc.textBetween(o,s,``);n&&n!==c?e.chain().focus().deleteSelection().insertContent({type:`text`,text:n,marks:[{type:`link`,attrs:a}]}).run():o===s&&n?e.chain().focus().insertContent({type:`text`,text:n,marks:[{type:`link`,attrs:a}]}).run():o===s&&!n?e.chain().focus().insertContent({type:`text`,text:t,marks:[{type:`link`,attrs:a}]}).run():e.chain().focus().setLink(a).run(),this.close()}createDialog(){let e=this.options.trans,t=this.options.editor.getConfig().skin??`oxide`;this.overlay=document.createElement(`div`),this.overlay.className=`md-dialog-overlay`,this.overlay.addEventListener(`click`,e=>{e.target===this.overlay&&this.close()});let n=document.createElement(`div`);n.className=`md-editor-${t}`,n.style.display=`contents`,this.dialog=document.createElement(`div`),this.dialog.className=`md-dialog md-link-editor-dialog`;let r=document.createElement(`div`);r.className=`md-dialog-header`,r.innerHTML=`
|
|
223
|
+
<h3>${e(`Insert/Edit Link`)}</h3>
|
|
224
|
+
<button type="button" class="md-dialog-close">\u00d7</button>
|
|
225
|
+
`,r.querySelector(`.md-dialog-close`)?.addEventListener(`click`,()=>this.close());let i=document.createElement(`div`);i.className=`md-dialog-body`;let a=document.createElement(`div`);a.className=`md-link-editor-row`,a.innerHTML=`<label>${e(`URL`)}</label>`,this.urlInput=document.createElement(`input`),this.urlInput.type=`text`,this.urlInput.className=`md-link-editor-input`,a.appendChild(this.urlInput);let o=document.createElement(`div`);o.className=`md-link-editor-row`,o.innerHTML=`<label>${e(`Text to display`)}</label>`,this.textInput=document.createElement(`input`),this.textInput.type=`text`,this.textInput.className=`md-link-editor-input`,o.appendChild(this.textInput);let s=document.createElement(`div`);s.className=`md-link-editor-row`,s.innerHTML=`<label>${e(`Title`)}</label>`,this.titleInput=document.createElement(`input`),this.titleInput.type=`text`,this.titleInput.className=`md-link-editor-input`,s.appendChild(this.titleInput);let c=document.createElement(`div`);c.className=`md-link-editor-row`,c.innerHTML=`<label>${e(`Open link in...`)}</label>`,this.targetSelect=document.createElement(`select`),this.targetSelect.className=`md-link-editor-select`,this.targetSelect.innerHTML=`
|
|
226
|
+
<option value="">${e(`Current window`)}</option>
|
|
227
|
+
<option value="_blank">${e(`New window`)}</option>
|
|
228
|
+
`,c.appendChild(this.targetSelect),i.appendChild(a),i.appendChild(o),i.appendChild(s),i.appendChild(c);let l=document.createElement(`div`);l.className=`md-link-editor-footer`,l.innerHTML=`
|
|
229
|
+
<button type="button" class="md-btn md-link-editor-cancel">${e(`Cancel`)}</button>
|
|
230
|
+
<button type="button" class="md-btn md-btn-primary md-link-editor-save">${e(`Save`)}</button>
|
|
231
|
+
`,l.querySelector(`.md-link-editor-cancel`)?.addEventListener(`click`,()=>this.close()),l.querySelector(`.md-link-editor-save`)?.addEventListener(`click`,()=>this.save()),i.appendChild(l),this.dialog.appendChild(r),this.dialog.appendChild(i),n.appendChild(this.dialog),this.overlay.appendChild(n),this.overlay.addEventListener(`keydown`,e=>{e.key===`Escape`&&this.close()}),document.body.appendChild(this.overlay)}destroy(){this.overlay&&(this.overlay.remove(),this.overlay=null,this.dialog=null,this.urlInput=null,this.textInput=null,this.titleInput=null,this.targetSelect=null)}},QS=class{options;overlay=null;dialog=null;nameInput=null;errorEl=null;constructor(e){this.options=e}get tiptap(){return this.options.editor.getTipTap()}open(){this.overlay||this.createDialog(),this.nameInput&&(this.nameInput.value=``),this.clearError(),this.overlay.style.display=`flex`,this.nameInput?.focus()}close(){this.overlay&&(this.overlay.style.display=`none`)}clearError(){this.errorEl&&(this.errorEl.style.display=`none`,this.errorEl.textContent=``)}showError(e){this.errorEl&&(this.errorEl.textContent=e,this.errorEl.style.display=`block`)}save(){let e=this.options.trans,t=this.nameInput?.value.trim()??``;if(!t){this.showError(e(`Anchor name is required`));return}if(/\s/.test(t)){this.showError(e(`Anchor name cannot contain spaces`));return}this.tiptap?.chain().focus().insertContent({type:`anchor`,attrs:{id:t,name:t}}).run(),this.close()}createDialog(){let e=this.options.trans,t=this.options.editor.getConfig().skin??`oxide`;this.overlay=document.createElement(`div`),this.overlay.className=`md-dialog-overlay`,this.overlay.addEventListener(`click`,e=>{e.target===this.overlay&&this.close()});let n=document.createElement(`div`);n.className=`md-editor-${t}`,n.style.display=`contents`,this.dialog=document.createElement(`div`),this.dialog.className=`md-dialog md-anchor-dialog`;let r=document.createElement(`div`);r.className=`md-dialog-header`,r.innerHTML=`
|
|
232
|
+
<h3>${e(`Insert anchor`)}</h3>
|
|
233
|
+
<button type="button" class="md-dialog-close">×</button>
|
|
234
|
+
`,r.querySelector(`.md-dialog-close`)?.addEventListener(`click`,()=>this.close());let i=document.createElement(`div`);i.className=`md-dialog-body`;let a=document.createElement(`div`);a.className=`md-anchor-dialog-row`,a.innerHTML=`<label>${e(`Anchor name`)}</label>`,this.nameInput=document.createElement(`input`),this.nameInput.type=`text`,this.nameInput.className=`md-anchor-dialog-input`,a.appendChild(this.nameInput),this.errorEl=document.createElement(`div`),this.errorEl.className=`md-anchor-dialog-error`,this.errorEl.style.display=`none`;let o=document.createElement(`div`);o.className=`md-anchor-dialog-footer`,o.innerHTML=`
|
|
235
|
+
<button type="button" class="md-btn md-anchor-dialog-cancel">${e(`Cancel`)}</button>
|
|
236
|
+
<button type="button" class="md-btn md-btn-primary md-anchor-dialog-save">${e(`Save`)}</button>
|
|
237
|
+
`,o.querySelector(`.md-anchor-dialog-cancel`)?.addEventListener(`click`,()=>this.close()),o.querySelector(`.md-anchor-dialog-save`)?.addEventListener(`click`,()=>this.save()),i.appendChild(a),i.appendChild(this.errorEl),i.appendChild(o),this.dialog.appendChild(r),this.dialog.appendChild(i),n.appendChild(this.dialog),this.overlay.appendChild(n),this.overlay.addEventListener(`keydown`,e=>{e.key===`Escape`?this.close():e.key===`Enter`&&this.save()}),document.body.appendChild(this.overlay)}destroy(){this.overlay&&(this.overlay.remove(),this.overlay=null,this.dialog=null,this.nameInput=null,this.errorEl=null)}},$S=[{code:`ar-SA`,name:`العربية`},{code:`ca-ES`,name:`Català`},{code:`cs-CZ`,name:`Čeština`},{code:`da-DK`,name:`Dansk`},{code:`de-DE`,name:`Deutsch`},{code:`el-GR`,name:`Ελληνικά`},{code:`en-US`,name:`English (US)`},{code:`en-GB`,name:`English (UK)`},{code:`es-ES`,name:`Español`},{code:`fi-FI`,name:`Suomi`},{code:`fr-FR`,name:`Français`},{code:`fr-CA`,name:`Français (Canada)`},{code:`hu-HU`,name:`Magyar`},{code:`id-ID`,name:`Bahasa Indonesia`},{code:`it-IT`,name:`Italiano`},{code:`ja-JP`,name:`日本語`},{code:`ko-KR`,name:`한국어`},{code:`nb-NO`,name:`Norsk Bokmål`},{code:`nl-NL`,name:`Nederlands`},{code:`pl-PL`,name:`Polski`},{code:`pt-BR`,name:`Português`},{code:`ro-RO`,name:`Română`},{code:`ru-RU`,name:`Русский`},{code:`sl-SI`,name:`Slovenščina`},{code:`sr-RS`,name:`Српски`},{code:`sv-SE`,name:`Svenska`},{code:`th-TH`,name:`ไทย`},{code:`tr-TR`,name:`Türkçe`},{code:`vi-VN`,name:`Tiếng Việt`},{code:`zh-CN`,name:`中文 (简体)`},{code:`zh-TW`,name:`中文 (繁體)`}],eC={ar:`ar-SA`,ca:`ca-ES`,cs:`cs-CZ`,da:`da-DK`,de:`de-DE`,el:`el-GR`,en:`en-US`,"en-gb":`en-GB`,es:`es-ES`,fi:`fi-FI`,fr:`fr-FR`,"fr-ca":`fr-CA`,hu:`hu-HU`,id:`id-ID`,it:`it-IT`,ja:`ja-JP`,ko:`ko-KR`,nb:`nb-NO`,nl:`nl-NL`,pl:`pl-PL`,pt:`pt-BR`,ro:`ro-RO`,ru:`ru-RU`,sl:`sl-SI`,sr:`sr-RS`,sv:`sv-SE`,th:`th-TH`,tr:`tr-TR`,vi:`vi-VN`,zh:`zh-CN`,"zh-tw":`zh-TW`};function tC(){return!!(window.SpeechRecognition||window.webkitSpeechRecognition)}function nC(){return window.SpeechRecognition||window.webkitSpeechRecognition||null}var rC=class{options;overlay=null;dialog=null;recognition=null;isListening=!1;finalTranscript=``;interimTranscript=``;lastConfidence=0;restartTimer=null;transcriptArea=null;confidenceEl=null;statusEl=null;startStopBtn=null;insertBtn=null;clearBtn=null;languageSelect=null;constructor(e){this.options=e}open(){if(this.overlay){this.overlay.style.display=`flex`;return}this.createDialog()}close(){this.overlay&&(this.overlay.style.display=`none`),this.stopRecognition()}destroy(){this.stopRecognition(),this.overlay?.remove(),this.overlay=null,this.dialog=null,this.transcriptArea=null,this.confidenceEl=null,this.statusEl=null,this.startStopBtn=null,this.insertBtn=null,this.clearBtn=null,this.languageSelect=null}get editorLanguage(){return this.options.editor.getConfig().language??`en`}getDefaultSpeechLang(){return eC[this.editorLanguage]??`en-US`}createDialog(){let e=this.options.trans;this.overlay=document.createElement(`div`),this.overlay.className=`md-dialog-overlay`,this.overlay.addEventListener(`click`,e=>{e.target===this.overlay&&this.close()}),this.dialog=document.createElement(`div`),this.dialog.className=`md-dialog md-speechtotext-dialog`;let t=document.createElement(`div`);t.className=`md-dialog-header`,t.innerHTML=`
|
|
238
|
+
<h3>${e(`Speech to Text`)}</h3>
|
|
239
|
+
<button type="button" class="md-dialog-close">\u00d7</button>
|
|
240
|
+
`,t.querySelector(`.md-dialog-close`).addEventListener(`click`,()=>this.close());let n=document.createElement(`div`);n.className=`md-dialog-body md-speechtotext-body`;let r=document.createElement(`div`);r.className=`md-speechtotext-lang-row`;let i=document.createElement(`label`);i.className=`md-speechtotext-label`,i.textContent=e(`Language`),this.languageSelect=document.createElement(`select`),this.languageSelect.className=`md-speechtotext-language`;let a=this.getDefaultSpeechLang();for(let e of $S){let t=document.createElement(`option`);t.value=e.code,t.textContent=e.name,e.code===a&&(t.selected=!0),this.languageSelect.appendChild(t)}r.appendChild(i),r.appendChild(this.languageSelect),this.statusEl=document.createElement(`div`),this.statusEl.className=`md-speechtotext-status`,this.statusEl.textContent=``,this.transcriptArea=document.createElement(`div`),this.transcriptArea.className=`md-speechtotext-transcript`,this.confidenceEl=document.createElement(`div`),this.confidenceEl.className=`md-speechtotext-confidence`,this.confidenceEl.textContent=``;let o=document.createElement(`div`);o.className=`md-speechtotext-controls`,this.startStopBtn=document.createElement(`button`),this.startStopBtn.type=`button`,this.startStopBtn.className=`md-speechtotext-btn md-speechtotext-btn-start`,this.startStopBtn.textContent=e(`Start`),this.startStopBtn.addEventListener(`click`,()=>this.toggleRecognition()),this.insertBtn=document.createElement(`button`),this.insertBtn.type=`button`,this.insertBtn.className=`md-speechtotext-btn md-speechtotext-btn-insert`,this.insertBtn.textContent=e(`Insert`),this.insertBtn.addEventListener(`click`,()=>this.insertTranscript()),this.clearBtn=document.createElement(`button`),this.clearBtn.type=`button`,this.clearBtn.className=`md-speechtotext-btn md-speechtotext-btn-clear`,this.clearBtn.textContent=e(`Clear`),this.clearBtn.addEventListener(`click`,()=>this.clearTranscript()),o.appendChild(this.startStopBtn),o.appendChild(this.insertBtn),o.appendChild(this.clearBtn),n.appendChild(r),n.appendChild(this.statusEl),n.appendChild(this.transcriptArea),n.appendChild(this.confidenceEl),n.appendChild(o),this.dialog.appendChild(t),this.dialog.appendChild(n),this.overlay.appendChild(this.dialog),document.body.appendChild(this.overlay),this.dialog.addEventListener(`keydown`,e=>{e.key===`Escape`&&this.close()})}toggleRecognition(){this.isListening?this.stopRecognition():this.startRecognition()}startRecognition(){let e=nC();if(e){this.recognition=new e,this.recognition.continuous=!0,this.recognition.interimResults=!0,this.recognition.maxAlternatives=1,this.recognition.lang=this.languageSelect?.value??this.getDefaultSpeechLang(),this.recognition.onresult=this.handleResult.bind(this),this.recognition.onerror=this.handleError.bind(this),this.recognition.onend=this.handleEnd.bind(this);try{this.recognition.start(),this.isListening=!0,this.updateButtonState(),this.setStatus(this.options.trans(`Listening...`))}catch{}}}handleResult(e){this.interimTranscript=``;for(let t=e.resultIndex;t<e.results.length;t++){let n=e.results[t];if(n.isFinal){let e=n[0].transcript;this.finalTranscript.length>0&&!this.finalTranscript.endsWith(` `)&&!e.startsWith(` `)&&(this.finalTranscript+=` `),this.finalTranscript+=e,this.lastConfidence=n[0].confidence}else this.interimTranscript+=n[0].transcript}this.updateTranscriptDisplay(),this.updateConfidenceDisplay()}handleError(e){let t=this.options.trans;e.error===`no-speech`||(e.error===`not-allowed`?(this.stopRecognition(),this.setStatus(t(`Microphone access denied`))):e.error===`audio-capture`?(this.stopRecognition(),this.setStatus(t(`No microphone found`))):e.error===`network`?(this.stopRecognition(),this.setStatus(t(`Network error - speech recognition requires internet`))):e.error)}handleEnd(){this.isListening&&(this.restartTimer=setTimeout(()=>{if(this.isListening)try{this.recognition?.start()}catch{let e=nC();if(!e)return;this.recognition=new e,this.recognition.continuous=!0,this.recognition.interimResults=!0,this.recognition.maxAlternatives=1,this.recognition.lang=this.languageSelect?.value??this.getDefaultSpeechLang(),this.recognition.onresult=this.handleResult.bind(this),this.recognition.onerror=this.handleError.bind(this),this.recognition.onend=this.handleEnd.bind(this);try{this.recognition.start()}catch{this.stopRecognition()}}},300))}stopRecognition(){if(this.isListening=!1,this.restartTimer&&=(clearTimeout(this.restartTimer),null),this.recognition){try{this.recognition.stop()}catch{}this.recognition=null}this.updateButtonState(),this.setStatus(``)}updateButtonState(){let e=this.options.trans;this.startStopBtn&&(this.isListening?(this.startStopBtn.textContent=e(`Stop`),this.startStopBtn.classList.remove(`md-speechtotext-btn-start`),this.startStopBtn.classList.add(`md-speechtotext-btn-stop`)):(this.startStopBtn.textContent=e(`Start`),this.startStopBtn.classList.remove(`md-speechtotext-btn-stop`),this.startStopBtn.classList.add(`md-speechtotext-btn-start`))),this.statusEl&&this.statusEl.classList.toggle(`md-speechtotext-status-active`,this.isListening)}setStatus(e){this.statusEl&&(this.statusEl.textContent=e)}updateTranscriptDisplay(){if(!this.transcriptArea)return;let e=`<span class="md-speechtotext-final">${this.escapeHtml(this.finalTranscript)}</span>`,t=this.interimTranscript?`<span class="md-speechtotext-interim">${this.escapeHtml(this.interimTranscript)}</span>`:``;this.transcriptArea.innerHTML=e+t,this.transcriptArea.scrollTop=this.transcriptArea.scrollHeight}updateConfidenceDisplay(){if(this.confidenceEl&&this.lastConfidence>0){let e=Math.round(this.lastConfidence*100);this.confidenceEl.textContent=`${this.options.trans(`Confidence`)}: ${e}%`}}insertTranscript(){let e=this.finalTranscript.trim();if(!e)return;let t=this.options.editor.getTipTap();t&&t.chain().focus().insertContent(e).run(),this.clearTranscript(),this.close()}clearTranscript(){this.finalTranscript=``,this.interimTranscript=``,this.lastConfidence=0,this.transcriptArea&&(this.transcriptArea.innerHTML=``),this.confidenceEl&&(this.confidenceEl.textContent=``)}escapeHtml(e){let t=document.createElement(`div`);return t.textContent=e,t.innerHTML}},iC={ar:`ar-SA`,ca:`ca-ES`,cs:`cs-CZ`,da:`da-DK`,de:`de-DE`,el:`el-GR`,en:`en-US`,"en-gb":`en-GB`,es:`es-ES`,fi:`fi-FI`,fr:`fr-FR`,"fr-ca":`fr-CA`,hu:`hu-HU`,id:`id-ID`,it:`it-IT`,ja:`ja-JP`,ko:`ko-KR`,nb:`nb-NO`,nl:`nl-NL`,pl:`pl-PL`,pt:`pt-BR`,ro:`ro-RO`,ru:`ru-RU`,sl:`sl-SI`,sr:`sr-RS`,sv:`sv-SE`,th:`th-TH`,tr:`tr-TR`,vi:`vi-VN`,zh:`zh-CN`,"zh-tw":`zh-TW`};function aC(){return window.SpeechRecognition||window.webkitSpeechRecognition||null}var oC=class{options;recognition=null;_isActive=!1;restartTimer=null;interimStart=null;interimLength=0;constructor(e){this.options=e}get isActive(){return this._isActive}toggle(){this._isActive?this.stop():this.start()}start(){let e=aC();if(e){this.recognition=new e,this.recognition.continuous=!0,this.recognition.interimResults=!0,this.recognition.maxAlternatives=1,this.recognition.lang=this.getSpeechLang(),this.recognition.onresult=this.handleResult.bind(this),this.recognition.onerror=this.handleError.bind(this),this.recognition.onend=this.handleEnd.bind(this);try{this.recognition.start(),this._isActive=!0,this.interimStart=null,this.interimLength=0,this.options.onStateChange?.(!0)}catch{}}}stop(){if(this._isActive=!1,this.restartTimer&&=(clearTimeout(this.restartTimer),null),this.clearInterim(),this.recognition){try{this.recognition.stop()}catch{}this.recognition=null}this.options.onStateChange?.(!1)}destroy(){this.stop()}getSpeechLang(){return iC[this.options.editor.getConfig().language??`en`]??`en-US`}handleResult(e){let t=this.options.editor.getTipTap();if(t)for(let n=e.resultIndex;n<e.results.length;n++){let r=e.results[n],i=r[0].transcript;if(r.isFinal){this.clearInterim();let e=i;this.needsLeadingSpace(e)&&(e=` `+e),t.chain().focus().insertContent(e).run()}else{let e=i;this.interimStart===null&&this.needsLeadingSpace(e)&&(e=` `+e),this.replaceInterim(e)}}}replaceInterim(e){let t=this.options.editor.getTipTap();t&&(this.interimStart!==null&&this.interimLength>0&&t.chain().focus().command(({tr:e})=>(e.delete(this.interimStart,this.interimStart+this.interimLength),!0)).run(),this.interimStart===null&&(this.interimStart=t.state.selection.from),t.chain().focus().insertContent(e).run(),this.interimLength=e.length)}clearInterim(){if(this.interimStart!==null&&this.interimLength>0){let e=this.options.editor.getTipTap();e&&e.chain().focus().command(({tr:e})=>(e.delete(this.interimStart,this.interimStart+this.interimLength),!0)).run()}this.interimStart=null,this.interimLength=0}needsLeadingSpace(e){if(e.startsWith(` `))return!1;let t=this.options.editor.getTipTap();if(!t)return!1;let{from:n}=t.state.selection;if(n===0)return!1;let r=t.state.doc.textBetween(Math.max(0,n-1),n,``);return r?r.trim().length>0:!1}handleError(e){e.error===`no-speech`||(e.error===`not-allowed`||e.error===`audio-capture`||e.error===`network`)&&this.stop()}handleEnd(){this._isActive&&(this.restartTimer=setTimeout(()=>{if(this._isActive)try{this.recognition?.start()}catch{let e=aC();if(!e)return;this.recognition=new e,this.recognition.continuous=!0,this.recognition.interimResults=!0,this.recognition.maxAlternatives=1,this.recognition.lang=this.getSpeechLang(),this.recognition.onresult=this.handleResult.bind(this),this.recognition.onerror=this.handleError.bind(this),this.recognition.onend=this.handleEnd.bind(this);try{this.recognition.start()}catch{this.stop()}}},300))}},sC={bold:1,italic:1,underline:1,undo:1,redo:1,link:1,forecolor:1},cC=`Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6`,lC=[{title:`Blue Title`,block:`h3`,styles:{color:`Blue`}},{title:`Red Title`,block:`h3`,styles:{color:`Red`}},{title:`Marker: Yellow`,inline:`span`,styles:{"background-color":`Yellow`}},{title:`Marker: Green`,inline:`span`,styles:{"background-color":`Lime`}}],uC=[{value:`#000000`,label:`Black`},{value:`#434343`,label:`Dark Gray 4`},{value:`#666666`,label:`Dark Gray 3`},{value:`#999999`,label:`Dark Gray 2`},{value:`#B7B7B7`,label:`Dark Gray 1`},{value:`#CCCCCC`,label:`Gray`},{value:`#D9D9D9`,label:`Light Gray 1`},{value:`#EFEFEF`,label:`Light Gray 2`},{value:`#F3F3F3`,label:`Light Gray 3`},{value:`#FFFFFF`,label:`White`},{value:`#FF0000`,label:`Red`},{value:`#FF9900`,label:`Orange`},{value:`#FFFF00`,label:`Yellow`},{value:`#00FF00`,label:`Green`},{value:`#00FFFF`,label:`Cyan`},{value:`#0000FF`,label:`Blue`},{value:`#9900FF`,label:`Purple`},{value:`#FF00FF`,label:`Magenta`},{value:`#F4CCCC`,label:`Light Red`},{value:`#FCE5CD`,label:`Light Orange`},{value:`#FFF2CC`,label:`Light Yellow`},{value:`#D9EAD3`,label:`Light Green`},{value:`#D0E0E3`,label:`Light Cyan`},{value:`#CFE2F3`,label:`Light Blue`},{value:`#D9D2E9`,label:`Light Purple`},{value:`#EAD1DC`,label:`Light Magenta`}];function dC(e){return e.split(`;`).map(e=>{let[t,n]=e.split(`=`);return{label:t.trim(),value:n?.trim()??t.trim().toLowerCase()}})}function fC(e){return e.split(` `).map(e=>e.trim()).filter(Boolean)}var pC=class{container;options;state;buttonElements=new Map;dropdowns=new Map;bodyMenus=[];charMap=null;emojiPicker=null;imageUpload=null;searchReplace=null;sourceEditor=null;linkEditor=null;anchorDialog=null;speechToText=null;dictation=null;updateInterval=null;boundClickHandler=null;boundKeydownHandler=null;buttonsEl=null;toggleBtn=null;resizeObserver=null;constructor(e,t){this.container=e,this.options=t,this.state={isFullscreen:!1,showMoreButtons:!1,isNarrow:!1},this.render(),this.bindEvents(),this.startStateUpdates()}get tiptap(){return this.options.editor.getTipTap()}get trans(){return Ow()}icon(e){return this.options.iconSet[e]??e}render(){this.container.innerHTML=``,this.container.className=`md-toolbar md-toolbar-${this.options.mode}${this.options.sticky?` md-toolbar-sticky`:``}`,this.buttonsEl=document.createElement(`div`),this.buttonsEl.className=`md-toolbar-buttons`;let e=this.options.buttons.replace(/\|\|/g,`|`);this.renderGroups(e,this.buttonsEl),this.container.appendChild(this.buttonsEl),this.toggleBtn=this.createToggleButton(),this.container.appendChild(this.toggleBtn),this.state.showMoreButtons&&(this.buttonsEl.classList.add(`md-toolbar-expanded`),this.toggleBtn.classList.add(`md-toolbar-btn-active`)),this.observeOverflow()}observeOverflow(){this.resizeObserver&&this.resizeObserver.disconnect();let e=this.container.closest(`.md-editor`);this.resizeObserver=new ResizeObserver(()=>{if(!(!this.buttonsEl||!this.toggleBtn))if(e){let t=e.offsetWidth,n=this.options.narrowBreakpoint,r=this.state.isNarrow;if(this.state.isNarrow=t<=n,e.classList.toggle(`md-editor-narrow`,this.state.isNarrow),this.state.isNarrow)this.toggleBtn.style.display=`none`,this.state.showMoreButtons&&(this.state.showMoreButtons=!1,this.buttonsEl.classList.remove(`md-toolbar-expanded`),this.toggleBtn.classList.remove(`md-toolbar-btn-active`)),this.updateScrollIndicators(),r||this.bindScrollIndicators();else{r&&this.unbindScrollIndicators();let e=this.buttonsEl.scrollHeight>this.buttonsEl.clientHeight;this.toggleBtn.style.display=e||this.state.showMoreButtons?``:`none`}}else{let e=this.buttonsEl.scrollHeight>this.buttonsEl.clientHeight;this.toggleBtn.style.display=e||this.state.showMoreButtons?``:`none`}}),this.resizeObserver.observe(this.buttonsEl),e&&this.resizeObserver.observe(e)}scrollHandler=null;bindScrollIndicators(){this.buttonsEl&&(this.scrollHandler=()=>this.updateScrollIndicators(),this.buttonsEl.addEventListener(`scroll`,this.scrollHandler,{passive:!0}))}unbindScrollIndicators(){this.buttonsEl&&this.scrollHandler&&(this.buttonsEl.removeEventListener(`scroll`,this.scrollHandler),this.scrollHandler=null),this.container.classList.remove(`md-toolbar-scroll-start`,`md-toolbar-scroll-middle`,`md-toolbar-scroll-end`)}updateScrollIndicators(){if(!this.buttonsEl)return;let{scrollLeft:e,scrollWidth:t,clientWidth:n}=this.buttonsEl,r=t-n;if(r<=1){this.container.classList.remove(`md-toolbar-scroll-start`,`md-toolbar-scroll-middle`,`md-toolbar-scroll-end`);return}let i=e<=1,a=e>=r-1;this.container.classList.remove(`md-toolbar-scroll-start`,`md-toolbar-scroll-middle`,`md-toolbar-scroll-end`),i?this.container.classList.add(`md-toolbar-scroll-start`):a?this.container.classList.add(`md-toolbar-scroll-end`):this.container.classList.add(`md-toolbar-scroll-middle`)}getButtonPriority(e){let t=this.options.priorityOverrides;return t[e]===void 0?sC[e]??2:t[e]}renderGroups(e,t){let n=e.split(`|`).map(e=>e.trim()).filter(Boolean);n.forEach((e,r)=>{let i=document.createElement(`div`);i.className=`md-toolbar-group`;let a=e.split(` `).filter(Boolean),o=2;if(a.forEach(e=>{let t=this.createButton(e);if(t){let n=this.getButtonPriority(e);t.setAttribute(`data-priority`,String(n)),n<o&&(o=n),i.appendChild(t),this.buttonElements.set(e,t)}}),i.setAttribute(`data-priority`,String(o)),t.appendChild(i),r<n.length-1){let e=document.createElement(`div`);e.className=`md-toolbar-separator`,t.appendChild(e)}})}createToggleButton(){let e=document.createElement(`button`);return e.type=`button`,e.className=`md-toolbar-btn md-toolbar-toggle-btn`,e.setAttribute(`data-button`,`togglemore`),e.title=this.trans(`More`),e.innerHTML=`<span class="md-toolbar-btn-icon">${this.icon(`togglemore`)}</span>`,e.addEventListener(`click`,e=>{e.preventDefault(),this.toggleOverflow()}),e}toggleOverflow(){this.state.showMoreButtons=!this.state.showMoreButtons,this.buttonsEl&&this.buttonsEl.classList.toggle(`md-toolbar-expanded`,this.state.showMoreButtons),this.toggleBtn&&(this.toggleBtn.classList.toggle(`md-toolbar-btn-active`,this.state.showMoreButtons),this.state.showMoreButtons&&(this.toggleBtn.style.display=``))}createButton(e){let t=this.options.customButtons.get(e);if(t)return this.createCustomButton(e,t);switch(e.toLowerCase()){case`bold`:return this.createActionButton(`bold`,this.icon(`bold`),this.trans(`Bold`),()=>{this.tiptap?.chain().focus().toggleBold().run()},()=>this.tiptap?.isActive(`bold`)??!1);case`italic`:return this.createActionButton(`italic`,this.icon(`italic`),this.trans(`Italic`),()=>{this.tiptap?.chain().focus().toggleItalic().run()},()=>this.tiptap?.isActive(`italic`)??!1);case`underline`:return this.createActionButton(`underline`,this.icon(`underline`),this.trans(`Underline`),()=>{this.tiptap?.chain().focus().toggleUnderline().run()},()=>this.tiptap?.isActive(`underline`)??!1);case`strikethrough`:return this.createActionButton(`strikethrough`,this.icon(`strikethrough`),this.trans(`Strikethrough`),()=>{this.tiptap?.chain().focus().toggleStrike().run()},()=>this.tiptap?.isActive(`strike`)??!1);case`subscript`:return this.createActionButton(`subscript`,this.icon(`subscript`),this.trans(`Subscript`),()=>{this.tiptap?.chain().focus().toggleSubscript().run()},()=>this.tiptap?.isActive(`subscript`)??!1);case`superscript`:return this.createActionButton(`superscript`,this.icon(`superscript`),this.trans(`Superscript`),()=>{this.tiptap?.chain().focus().toggleSuperscript().run()},()=>this.tiptap?.isActive(`superscript`)??!1);case`hr`:return this.createActionButton(`hr`,this.icon(`hr`),this.trans(`Horizontal rule`),()=>{this.tiptap?.chain().focus().setHorizontalRule().run()});case`blocks`:case`formatselect`:return this.createFormatDropdown();case`styles`:return this.createStylesDropdown();case`table`:return this.createTableDropdown();case`anchor`:return this.createActionButton(`anchor`,this.icon(`anchor`),this.trans(`Insert anchor`),()=>{this.openAnchorDialog()});case`unlink`:return this.createActionButton(`unlink`,this.icon(`unlink`),this.trans(`Unlink`),()=>{this.tiptap?.chain().focus().unsetLink().run()},()=>this.tiptap?.isActive(`link`)??!1);case`bullist`:return this.createActionButton(`bullist`,this.icon(`bullist`),this.trans(`Bullet list`),()=>{this.tiptap?.chain().focus().toggleBulletList().run()},()=>this.tiptap?.isActive(`bulletList`)??!1);case`numlist`:return this.createActionButton(`numlist`,this.icon(`numlist`),this.trans(`Numbered list`),()=>{this.tiptap?.chain().focus().toggleOrderedList().run()},()=>this.tiptap?.isActive(`orderedList`)??!1);case`outdent`:return this.createActionButton(`outdent`,this.icon(`outdent`),this.trans(`Decrease indent`),()=>{this.tiptap?.isActive(`listItem`)&&this.tiptap?.chain().focus().liftListItem(`listItem`).run()});case`indent`:return this.createActionButton(`indent`,this.icon(`indent`),this.trans(`Increase indent`),()=>{this.tiptap?.isActive(`listItem`)&&this.tiptap?.chain().focus().sinkListItem(`listItem`).run()});case`blockquote`:return this.createActionButton(`blockquote`,this.icon(`blockquote`),this.trans(`Blockquote`),()=>{this.tiptap?.chain().focus().toggleBlockquote().run()},()=>this.tiptap?.isActive(`blockquote`)??!1);case`fontfamily`:return this.createFontFamilyDropdown();case`fontsize`:return this.createFontSizeDropdown();case`lineheight`:return this.createLineHeightDropdown();case`alignleft`:return this.createActionButton(`alignleft`,this.icon(`alignleft`),this.trans(`Align left`),()=>{this.tiptap?.chain().focus().setTextAlign(`left`).run()},()=>this.tiptap?.isActive({textAlign:`left`})??!1);case`aligncenter`:return this.createActionButton(`aligncenter`,this.icon(`aligncenter`),this.trans(`Align center`),()=>{this.tiptap?.chain().focus().setTextAlign(`center`).run()},()=>this.tiptap?.isActive({textAlign:`center`})??!1);case`alignright`:return this.createActionButton(`alignright`,this.icon(`alignright`),this.trans(`Align right`),()=>{this.tiptap?.chain().focus().setTextAlign(`right`).run()},()=>this.tiptap?.isActive({textAlign:`right`})??!1);case`alignjustify`:return this.createActionButton(`alignjustify`,this.icon(`alignjustify`),this.trans(`Justify`),()=>{this.tiptap?.chain().focus().setTextAlign(`justify`).run()},()=>this.tiptap?.isActive({textAlign:`justify`})??!1);case`forecolor`:return this.createColorPicker(`forecolor`,this.trans(`Text color`),e=>{this.tiptap?.chain().focus().setColor(e).run()});case`backcolor`:return this.createColorPicker(`backcolor`,this.trans(`Background color`),e=>{this.tiptap?.chain().focus().setHighlight({color:e}).run()});case`removeformat`:return this.createActionButton(`removeformat`,this.icon(`removeformat`),this.trans(`Remove formatting`),()=>{this.tiptap?.chain().focus().unsetAllMarks().clearNodes().run()});case`copy`:return this.createActionButton(`copy`,this.icon(`copy`),this.trans(`Copy`),()=>{document.execCommand(`copy`)});case`cut`:return this.createActionButton(`cut`,this.icon(`cut`),this.trans(`Cut`),()=>{document.execCommand(`cut`)});case`paste`:return this.createActionButton(`paste`,this.icon(`paste`),this.trans(`Paste`),()=>{this.pasteFromClipboard()});case`undo`:return this.createActionButton(`undo`,this.icon(`undo`),this.trans(`Undo`),()=>{this.tiptap?.chain().focus().undo().run()});case`redo`:return this.createActionButton(`redo`,this.icon(`redo`),this.trans(`Redo`),()=>{this.tiptap?.chain().focus().redo().run()});case`image`:return this.createActionButton(`image`,this.icon(`image`),this.trans(`Insert image`),()=>{this.openImageDialog()});case`charmap`:return this.createActionButton(`charmap`,this.icon(`charmap`),this.trans(`Special character`),()=>{this.openCharMap()});case`emoticons`:return this.createActionButton(`emoticons`,this.icon(`emoticons`),this.trans(`Emoticons`),()=>{this.openEmojiPicker()});case`fullscreen`:return this.createActionButton(`fullscreen`,this.icon(`fullscreen`),this.trans(`Fullscreen`),()=>{this.toggleFullscreen()},()=>this.state.isFullscreen);case`preview`:return this.createActionButton(`preview`,this.icon(`preview`),this.trans(`Preview`),()=>{this.openPreview()});case`code`:return this.createActionButton(`code`,this.icon(`code`),this.trans(`Source code`),()=>{this.openSourceCode()});case`link`:return this.createActionButton(`link`,this.icon(`link`),this.trans(`Insert link`),()=>{this.openLinkDialog()},()=>this.tiptap?.isActive(`link`)??!1);case`codesample`:return this.createActionButton(`codesample`,this.icon(`codesample`),this.trans(`Code sample`),()=>{this.tiptap?.chain().focus().toggleCodeBlock().run()},()=>this.tiptap?.isActive(`codeBlock`)??!1);case`ltr`:return this.createActionButton(`ltr`,this.icon(`ltr`),this.trans(`Left to right`),()=>{this.tiptap?.chain().focus().setTextDirection(`ltr`).run()});case`rtl`:return this.createActionButton(`rtl`,this.icon(`rtl`),this.trans(`Right to left`),()=>{this.tiptap?.chain().focus().setTextDirection(`rtl`).run()});case`searchreplace`:return this.createActionButton(`searchreplace`,this.icon(`searchreplace`),this.trans(`Find and replace`),()=>{this.openSearchReplace()});case`speechtotext`:if(this.options.config.speech_to_text===!1)return null;if(!tC()){let e=this.createActionButton(`speechtotext`,this.icon(`speechtotext`),this.trans(`Speech to text is not supported in this browser`),()=>{});return e.classList.add(`md-toolbar-btn-disabled`),e.setAttribute(`aria-disabled`,`true`),e}return this.createActionButton(`speechtotext`,this.icon(`speechtotext`),this.trans(`Speech to Text`),()=>{this.openSpeechToText()});case`dictate`:if(this.options.config.speech_to_text===!1)return null;if(!tC()){let e=this.createActionButton(`dictate`,this.icon(`dictate`),this.trans(`Speech to text is not supported in this browser`),()=>{});return e.classList.add(`md-toolbar-btn-disabled`),e.setAttribute(`aria-disabled`,`true`),e}return this.createActionButton(`dictate`,this.icon(`dictate`),this.trans(`Dictate`),()=>{this.toggleDictation()});case`template`:return this.createTemplateDropdown();default:return console.warn(`Unknown toolbar button: ${e}`),null}}createActionButton(e,t,n,r,i){let a=document.createElement(`button`);return a.type=`button`,a.className=`md-toolbar-btn`,a.setAttribute(`data-button`,e),a.title=n,a.innerHTML=`<span class="md-toolbar-btn-icon md-icon-${e}">${t}</span>`,a.addEventListener(`click`,e=>{e.preventDefault(),r(),this.updateButtonStates()}),i&&a.setAttribute(`data-has-active`,`true`),a}async pasteFromClipboard(){if(!this.tiptap)return;this.tiptap.commands.focus();let e=typeof navigator<`u`?navigator.clipboard:void 0;if(!e||typeof e.read!=`function`&&typeof e.readText!=`function`){console.warn(`[html-editor] Paste button: the Clipboard API is unavailable. Use Ctrl/Cmd+V instead.`);return}let t=null,n=null;try{if(typeof e.read==`function`){let r=await e.read();for(let e of r)e.types.includes(`text/html`)?t=await(await e.getType(`text/html`)).text():e.types.includes(`text/plain`)&&n===null&&(n=await(await e.getType(`text/plain`)).text())}}catch(e){console.debug(`[html-editor] clipboard.read() failed, falling back to readText():`,e)}if(t===null&&n===null)try{typeof e.readText==`function`&&(n=await e.readText())}catch(e){console.warn(`[html-editor] Paste button: clipboard read was blocked by the browser. Use Ctrl/Cmd+V instead.`,e);return}let r=t===null?n:this.extractClipboardFragment(t);r&&(this.tiptap.chain().focus().insertContent(r).run(),this.updateButtonStates())}extractClipboardFragment(e){let t=e.indexOf(`<!--StartFragment-->`),n=e.indexOf(`<!--EndFragment-->`);if(t!==-1&&n!==-1)return e.slice(t+20,n).trim();let r=/<body[^>]*>([\s\S]*?)<\/body>/i.exec(e);return r?r[1].trim():e.replace(/^\s*<meta[^>]*>/i,``).trim()}createCustomButton(e,t){let n=document.createElement(`button`);n.type=`button`,n.className=`md-toolbar-btn md-toolbar-btn-custom`,n.setAttribute(`data-button`,e),t.tooltip&&(n.title=t.tooltip),t.icon?n.innerHTML=`<img src="${t.icon}" class="md-toolbar-btn-icon-img" />`:t.text&&(n.innerHTML=`<span class="md-toolbar-btn-text">${t.text}</span>`);let r={isEnabled:()=>!n.disabled,setEnabled:e=>{n.disabled=!e},isActive:()=>n.classList.contains(`md-toolbar-btn-active`),setActive:e=>{n.classList.toggle(`md-toolbar-btn-active`,e)}};return t.onSetup&&t.onSetup(r),t.onAction&&n.addEventListener(`click`,e=>{e.preventDefault(),t.onAction(r)}),n}createFontFamilyDropdown(){let e=dC(this.options.config.font_family_formats??`Andale Mono=andale mono,times; Arial=arial,helvetica,sans-serif; Arial Black=arial black,avant garde; Book Antiqua=book antiqua,palatino; Comic Sans MS=comic sans ms,sans-serif; Courier New=courier new,courier; Georgia=georgia,palatino; Helvetica=helvetica; Impact=impact,chicago; Tahoma=tahoma,arial,helvetica,sans-serif; Terminal=terminal,monaco; Times New Roman=times new roman,times; Trebuchet MS=trebuchet ms,geneva; Verdana=verdana,geneva`);return this.createDropdown(`fontfamily`,this.trans(`Font`),e,e=>{this.tiptap?.chain().focus().setFontFamily(e.value).run()},()=>this.tiptap?.getAttributes(`textStyle`)?.fontFamily??``)}createFontSizeDropdown(){let e=fC(this.options.config.font_size_formats??`8pt 9pt 10pt 12pt 14pt 18pt 24pt 36pt`).map(e=>({label:e,value:e}));return this.createDropdown(`fontsize`,this.trans(`Font size`),e,e=>{this.tiptap?.chain().focus().setFontSize(e.value).run()},()=>this.tiptap?.getAttributes(`textStyle`)?.fontSize??``)}createLineHeightDropdown(){return this.createDropdown(`lineheight`,this.trans(`Line height`),[{label:`1`,value:`1`},{label:`1.2`,value:`1.2`},{label:`1.4`,value:`1.4`},{label:`1.6`,value:`1.6`},{label:`2`,value:`2`}],e=>{this.tiptap?.chain().focus().setLineHeight(e.value).run()})}createTemplateDropdown(){let e=this.options.config.templates??[],t=e.map(e=>({label:e.title,value:e.content,description:e.description}));return this.createDropdown(`template`,this.trans(`Templates`),t,t=>{this.tiptap?.chain().focus().insertContent(t.value).run();let n=e.find(e=>e.content===t.value);n&&this.options.editor.fire(`templatechange`,n)})}createFormatDropdown(){let e=(this.options.config.block_formats??cC).split(`;`).map(e=>{let[t,n]=e.split(`=`);return{label:this.trans(t.trim()),value:(n??t).trim().toLowerCase()}}).filter(e=>e.value);return this.createDropdown(`blocks`,this.trans(`Format`),e,e=>{let t=this.tiptap?.chain().focus();if(!t)return;let n=/^h([1-6])$/.exec(e.value);n?t.toggleHeading({level:Number(n[1])}).run():t.setParagraph().run()},()=>{for(let e=1;e<=6;e++)if(this.tiptap?.isActive(`heading`,{level:e}))return`h${e}`;return this.tiptap?.isActive(`paragraph`)?`p`:``})}getStyleFormats(){return this.options.config.style_formats??lC}createStylesDropdown(){let e=this.getStyleFormats(),t=e.map((e,t)=>({label:e.title,value:String(t)}));return this.createDropdown(`styles`,this.trans(`Styles`),t,t=>{let n=e[Number(t.value)];n&&this.applyStyleFormat(n)})}applyStyleFormat(e){let t=this.tiptap?.chain().focus();if(!t)return;let n=e.block;if(n){let e=/^h([1-6])$/.exec(n);e?t.setHeading({level:Number(e[1])}):n===`p`&&t.setParagraph()}if(e.styles){e.styles.color&&t.setColor(e.styles.color);let n=e.styles[`background-color`];n&&t.setHighlight({color:n})}e.classes&&t.setInlineClass(e.classes),t.run()}createTableDropdown(){let e=this.trans,t=[{label:e(`Insert table`),value:`insert`},{label:e(`Insert row before`),value:`rowBefore`},{label:e(`Insert row after`),value:`rowAfter`},{label:e(`Delete row`),value:`deleteRow`},{label:e(`Insert column before`),value:`colBefore`},{label:e(`Insert column after`),value:`colAfter`},{label:e(`Delete column`),value:`deleteCol`},{label:e(`Merge cells`),value:`merge`},{label:e(`Split cell`),value:`split`},{label:e(`Toggle header row`),value:`headerRow`},{label:e(`Delete table`),value:`deleteTable`}];return this.createDropdown(`table`,this.trans(`Table`),t,e=>{let t=this.tiptap?.chain().focus();if(t)switch(e.value){case`insert`:t.insertTable({rows:3,cols:3,withHeaderRow:!0}).run();break;case`rowBefore`:t.addRowBefore().run();break;case`rowAfter`:t.addRowAfter().run();break;case`deleteRow`:t.deleteRow().run();break;case`colBefore`:t.addColumnBefore().run();break;case`colAfter`:t.addColumnAfter().run();break;case`deleteCol`:t.deleteColumn().run();break;case`merge`:t.mergeCells().run();break;case`split`:t.splitCell().run();break;case`headerRow`:t.toggleHeaderRow().run();break;case`deleteTable`:t.deleteTable().run();break}})}positionMenu(e,t){let n=e.getBoundingClientRect();t.style.top=`${n.bottom}px`,t.style.left=`${n.left}px`}createDropdown(e,t,n,r,i){let a=document.createElement(`div`);a.className=`md-toolbar-dropdown`,a.setAttribute(`data-dropdown`,e);let o=document.createElement(`button`);o.type=`button`,o.className=`md-toolbar-dropdown-btn`,o.title=t,o.innerHTML=`
|
|
241
|
+
<span class="md-toolbar-dropdown-label">${t}</span>
|
|
242
|
+
<span class="md-toolbar-dropdown-arrow"><svg width="8" height="8" viewBox="0 0 8 8" fill="currentColor"><path d="M0 2l4 4 4-4z"/></svg></span>
|
|
243
|
+
`;let s=document.createElement(`div`);return s.className=`md-toolbar-dropdown-menu`,s.style.display=`none`,n.forEach(t=>{let n=document.createElement(`button`);n.type=`button`,n.className=`md-toolbar-dropdown-item`,n.setAttribute(`data-value`,t.value);let i=`<span class="md-toolbar-dropdown-item-label">${t.label}</span>`;t.description&&(i+=`<span class="md-toolbar-dropdown-item-desc">${t.description}</span>`),n.innerHTML=i,e===`fontfamily`&&(n.style.fontFamily=t.value),n.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),r(t),s.style.display=`none`,a.classList.remove(`md-toolbar-dropdown-open`)}),s.appendChild(n)}),o.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),this.dropdowns.forEach((t,n)=>{n!==e&&t.classList.remove(`md-toolbar-dropdown-open`,`md-toolbar-colorpicker-open`)}),this.bodyMenus.forEach(e=>{e!==s&&(e.style.display=`none`)});let n=s.style.display!==`none`;if(s.style.display=n?`none`:`block`,a.classList.toggle(`md-toolbar-dropdown-open`,!n),n||this.positionMenu(o,s),!n&&i){let e=i();s.querySelectorAll(`.md-toolbar-dropdown-item`).forEach(t=>{let n=t.getAttribute(`data-value`);t.classList.toggle(`md-toolbar-dropdown-item-selected`,n===e)})}}),a.appendChild(o),document.body.appendChild(s),this.bodyMenus.push(s),this.dropdowns.set(e,a),a}createColorPicker(e,t,n){let r=document.createElement(`div`);r.className=`md-toolbar-colorpicker`,r.setAttribute(`data-colorpicker`,e);let i=document.createElement(`button`);i.type=`button`,i.className=`md-toolbar-btn md-toolbar-colorpicker-btn`,i.title=t,i.innerHTML=`
|
|
244
|
+
<span class="md-toolbar-colorpicker-icon md-icon-${e}">A</span>
|
|
245
|
+
<span class="md-toolbar-colorpicker-preview" style="background-color: ${e===`forecolor`?`#000`:`#ff0`}"></span>
|
|
246
|
+
<span class="md-toolbar-dropdown-arrow"><svg width="8" height="8" viewBox="0 0 8 8" fill="currentColor"><path d="M0 2l4 4 4-4z"/></svg></span>
|
|
247
|
+
`;let a=document.createElement(`div`);a.className=`md-toolbar-colorpicker-menu`,a.style.display=`none`;let o=document.createElement(`div`);o.className=`md-toolbar-colorpicker-grid`,uC.forEach(e=>{let t=document.createElement(`button`);t.type=`button`,t.className=`md-toolbar-colorpicker-swatch`,t.title=e.label??e.value,t.style.backgroundColor=e.value,t.setAttribute(`data-color`,e.value),t.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),n(e.value);let o=i.querySelector(`.md-toolbar-colorpicker-preview`);o&&(o.style.backgroundColor=e.value),a.style.display=`none`,r.classList.remove(`md-toolbar-colorpicker-open`)}),o.appendChild(t)});let s=document.createElement(`div`);s.className=`md-toolbar-colorpicker-custom`,s.innerHTML=`
|
|
248
|
+
<input type="color" class="md-toolbar-colorpicker-input" value="#000000" />
|
|
249
|
+
<button type="button" class="md-toolbar-colorpicker-apply">${this.trans(`Apply`)}</button>
|
|
250
|
+
`;let c=s.querySelector(`input`);return s.querySelector(`button`).addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),n(c.value);let t=i.querySelector(`.md-toolbar-colorpicker-preview`);t&&(t.style.backgroundColor=c.value),a.style.display=`none`,r.classList.remove(`md-toolbar-colorpicker-open`)}),a.appendChild(o),a.appendChild(s),i.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),this.dropdowns.forEach((t,n)=>{n!==e&&t.classList.remove(`md-toolbar-dropdown-open`,`md-toolbar-colorpicker-open`)}),this.bodyMenus.forEach(e=>{e!==a&&(e.style.display=`none`)});let n=a.style.display!==`none`;a.style.display=n?`none`:`block`,r.classList.toggle(`md-toolbar-colorpicker-open`,!n),n||this.positionMenu(i,a)}),r.appendChild(i),document.body.appendChild(a),this.bodyMenus.push(a),this.dropdowns.set(e,r),r}bindEvents(){this.unbindEvents(),this.boundClickHandler=e=>{let t=e.target,n=t.closest(`.md-toolbar-dropdown, .md-toolbar-colorpicker`),r=this.bodyMenus.some(e=>e.contains(t));!n&&!r&&this.closeAllDropdowns()},document.addEventListener(`click`,this.boundClickHandler),this.boundKeydownHandler=e=>{if(!this.tiptap?.isFocused)return;let t=e.ctrlKey||e.metaKey;t&&e.key===`b`?(e.preventDefault(),this.tiptap?.chain().focus().toggleBold().run()):t&&e.key===`i`?(e.preventDefault(),this.tiptap?.chain().focus().toggleItalic().run()):t&&e.key===`u`?(e.preventDefault(),this.tiptap?.chain().focus().toggleUnderline().run()):t&&e.key===`z`?(e.preventDefault(),e.shiftKey?this.tiptap?.chain().focus().redo().run():this.tiptap?.chain().focus().undo().run()):t&&e.key===`f`&&(e.preventDefault(),this.openSearchReplace())},document.addEventListener(`keydown`,this.boundKeydownHandler)}unbindEvents(){this.boundClickHandler&&=(document.removeEventListener(`click`,this.boundClickHandler),null),this.boundKeydownHandler&&=(document.removeEventListener(`keydown`,this.boundKeydownHandler),null)}closeAllDropdowns(){this.dropdowns.forEach(e=>{e.classList.remove(`md-toolbar-dropdown-open`,`md-toolbar-colorpicker-open`)}),this.bodyMenus.forEach(e=>{e.style.display=`none`})}startStateUpdates(){this.updateInterval=setInterval(()=>{this.updateButtonStates()},100)}updateButtonStates(){this.buttonElements.forEach((e,t)=>{if(e.getAttribute(`data-has-active`)!==`true`)return;let n=!1;switch(t){case`bold`:n=this.tiptap?.isActive(`bold`)??!1;break;case`italic`:n=this.tiptap?.isActive(`italic`)??!1;break;case`underline`:n=this.tiptap?.isActive(`underline`)??!1;break;case`strikethrough`:n=this.tiptap?.isActive(`strike`)??!1;break;case`subscript`:n=this.tiptap?.isActive(`subscript`)??!1;break;case`superscript`:n=this.tiptap?.isActive(`superscript`)??!1;break;case`unlink`:n=this.tiptap?.isActive(`link`)??!1;break;case`bullist`:n=this.tiptap?.isActive(`bulletList`)??!1;break;case`numlist`:n=this.tiptap?.isActive(`orderedList`)??!1;break;case`blockquote`:n=this.tiptap?.isActive(`blockquote`)??!1;break;case`alignleft`:n=this.tiptap?.isActive({textAlign:`left`})??!1;break;case`aligncenter`:n=this.tiptap?.isActive({textAlign:`center`})??!1;break;case`alignright`:n=this.tiptap?.isActive({textAlign:`right`})??!1;break;case`alignjustify`:n=this.tiptap?.isActive({textAlign:`justify`})??!1;break;case`link`:n=this.tiptap?.isActive(`link`)??!1;break;case`codesample`:n=this.tiptap?.isActive(`codeBlock`)??!1;break;case`fullscreen`:n=this.state.isFullscreen;break}e.classList.toggle(`md-toolbar-btn-active`,n)})}openImageDialog(){this.imageUpload||=new JS({onInsert:(e,t)=>{this.tiptap?.chain().focus().setImage({src:e,alt:t??``}).run()},uploadUrl:this.options.config.images_upload_url,uploadCredentials:this.options.config.images_upload_credentials,uploadBasePath:this.options.config.images_upload_base_path,uploadMaxSize:this.options.config.images_upload_max_size,uploadHeaders:this.options.config.images_upload_headers,fileTypes:this.options.config.images_file_types,validate:this.options.config.images_upload_validate,onError:this.options.config.images_upload_error,trans:this.trans}),this.imageUpload.open()}openLinkDialog(){this.linkEditor||=new ZS({editor:this.options.editor,trans:this.trans}),this.linkEditor.open()}openAnchorDialog(){this.anchorDialog||=new QS({editor:this.options.editor,trans:this.trans}),this.anchorDialog.open()}setEnabled(e){this.container.classList.toggle(`md-toolbar-disabled`,!e),e||this.closeAllDropdowns()}openCharMap(){this.charMap||=new LS({onSelect:e=>{this.tiptap?.chain().focus().insertContent(e).run()},trans:this.trans}),this.charMap.open()}openEmojiPicker(){this.emojiPicker||=new zS({onSelect:e=>{this.tiptap?.chain().focus().insertContent(e).run()},trans:this.trans}),this.emojiPicker.open()}openSearchReplace(){this.searchReplace||=new YS({editor:this.options.editor,trans:this.trans}),this.searchReplace.open()}openSpeechToText(){this.speechToText||=new rC({editor:this.options.editor,trans:this.trans}),this.speechToText.open()}toggleDictation(){this.dictation||=new oC({editor:this.options.editor,trans:this.trans,onStateChange:e=>{let t=this.buttonElements.get(`dictate`);t&&(t.classList.toggle(`md-toolbar-btn-active`,e),t.classList.toggle(`md-toolbar-btn-dictating`,e))}}),this.dictation.toggle()}openSourceCode(){this.sourceEditor||=new XS({editor:this.options.editor,trans:this.trans}),this.sourceEditor.open()}openPreview(){let e=this.tiptap?.getHTML()??``,t=window.open(``,`_blank`,`width=800,height=600`);t&&(t.document.write(`
|
|
251
|
+
<!DOCTYPE html>
|
|
252
|
+
<html>
|
|
253
|
+
<head>
|
|
254
|
+
<title>${this.trans(`Preview`)}</title>
|
|
255
|
+
<style>body { font-family: sans-serif; padding: 20px; }</style>
|
|
256
|
+
</head>
|
|
257
|
+
<body>${e}</body>
|
|
258
|
+
</html>
|
|
259
|
+
`),t.document.close())}toggleFullscreen(){this.state.isFullscreen=!this.state.isFullscreen;let e=this.container.closest(`.md-editor`);e&&e.classList.toggle(`md-editor-fullscreen`,this.state.isFullscreen),this.state.isFullscreen?document.body.style.overflow=`hidden`:document.body.style.overflow=``,this.updateButtonStates()}rebuild(){this.charMap?.destroy(),this.charMap=null,this.emojiPicker?.destroy(),this.emojiPicker=null,this.imageUpload?.destroy(),this.imageUpload=null,this.searchReplace?.destroy(),this.searchReplace=null,this.speechToText?.destroy(),this.speechToText=null,this.dictation?.destroy(),this.dictation=null,this.anchorDialog?.destroy(),this.anchorDialog=null,this.linkEditor?.destroy(),this.linkEditor=null,this.sourceEditor?.destroy(),this.sourceEditor=null,this.buttonElements.clear(),this.dropdowns.clear(),this.removeBodyMenus(),this.buttonsEl=null,this.toggleBtn=null,this.render(),this.bindEvents()}destroy(){this.updateInterval&&clearInterval(this.updateInterval),this.resizeObserver&&=(this.resizeObserver.disconnect(),null),this.unbindScrollIndicators(),this.unbindEvents(),this.charMap?.destroy(),this.emojiPicker?.destroy(),this.imageUpload?.destroy(),this.searchReplace?.destroy(),this.speechToText?.destroy(),this.dictation?.destroy(),this.anchorDialog?.destroy(),this.linkEditor?.destroy(),this.sourceEditor?.destroy(),this.buttonElements.clear(),this.dropdowns.clear(),this.removeBodyMenus(),this.container.innerHTML=``}removeBodyMenus(){this.bodyMenus.forEach(e=>{e.remove()}),this.bodyMenus=[]}},mC=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="15" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>`,hC=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="3" y1="6" x2="21" y2="6"/><line x1="6" y1="12" x2="18" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>`,gC=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="3" y1="6" x2="21" y2="6"/><line x1="9" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>`,_C=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>`,vC=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/></svg>`,yC=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg>`,bC=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="3" y1="12" x2="21" y2="12"/></svg>`,xC=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="1"/><line x1="3" y1="9" x2="21" y2="9"/><line x1="3" y1="15" x2="21" y2="15"/><line x1="9" y1="3" x2="9" y2="21"/><line x1="15" y1="3" x2="15" y2="21"/></svg>`,SC=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="3"/><line x1="12" y1="22" x2="12" y2="8"/><path d="M5 12H2a10 10 0 0 0 20 0h-3"/></svg>`,CC=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18.84 12.25l1.72-1.71a4 4 0 0 0-5.66-5.66l-1.71 1.72"/><path d="M5.17 11.75l-1.71 1.71a4 4 0 0 0 5.66 5.66l1.71-1.71"/><line x1="2" y1="2" x2="22" y2="22"/></svg>`,wC={bold:`B`,italic:`I`,underline:`U`,strikethrough:`S`,bullist:`•`,numlist:`1.`,outdent:`←`,indent:`→`,blockquote:`"`,alignleft:mC,aligncenter:hC,alignright:gC,alignjustify:_C,removeformat:`✕`,copy:`📋`,cut:`✂`,paste:`📄`,undo:`↩`,redo:`↪`,image:vC,charmap:`Ω`,emoticons:`😀`,fullscreen:`⛶`,preview:`👁`,code:yC,link:`🔗`,codesample:`{}`,ltr:`⇐`,rtl:`⇒`,searchreplace:`🔍`,speechtotext:`🎤`,dictate:`🎙️`,togglemore:`…`,subscript:`X₂`,superscript:`X²`,hr:bC,table:xC,anchor:SC,unlink:CC,blocks:`¶`,styles:`A`},TC={bold:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z"/><path d="M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z"/></svg>`,italic:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="19" y1="4" x2="10" y2="4"/><line x1="14" y1="20" x2="5" y2="20"/><line x1="15" y1="4" x2="9" y2="20"/></svg>`,underline:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3"/><line x1="4" y1="21" x2="20" y2="21"/></svg>`,strikethrough:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 4c-1.5-1-3.2-1.5-5-1.5C7.7 2.5 5 4.6 5 7.5c0 1.5.7 2.7 1.8 3.5"/><path d="M8 20c1.5 1 3.2 1.5 5 1.5 3.3 0 6-2.1 6-5 0-1.5-.7-2.7-1.8-3.5"/><line x1="2" y1="12" x2="22" y2="12"/></svg>`,bullist:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="9" y1="6" x2="20" y2="6"/><line x1="9" y1="12" x2="20" y2="12"/><line x1="9" y1="18" x2="20" y2="18"/><circle cx="5" cy="6" r="1" fill="currentColor" stroke="none"/><circle cx="5" cy="12" r="1" fill="currentColor" stroke="none"/><circle cx="5" cy="18" r="1" fill="currentColor" stroke="none"/></svg>`,numlist:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="10" y1="6" x2="21" y2="6"/><line x1="10" y1="12" x2="21" y2="12"/><line x1="10" y1="18" x2="21" y2="18"/><text x="3" y="8" font-size="7" fill="currentColor" stroke="none" font-family="sans-serif">1</text><text x="3" y="14" font-size="7" fill="currentColor" stroke="none" font-family="sans-serif">2</text><text x="3" y="20" font-size="7" fill="currentColor" stroke="none" font-family="sans-serif">3</text></svg>`,outdent:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="4" x2="21" y2="4"/><line x1="3" y1="20" x2="21" y2="20"/><line x1="11" y1="9" x2="21" y2="9"/><line x1="11" y1="15" x2="21" y2="15"/><polyline points="7 9 3 12 7 15"/></svg>`,indent:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="4" x2="21" y2="4"/><line x1="3" y1="20" x2="21" y2="20"/><line x1="11" y1="9" x2="21" y2="9"/><line x1="11" y1="15" x2="21" y2="15"/><polyline points="3 9 7 12 3 15"/></svg>`,blockquote:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.76-2.02-2-2H4c-1.25 0-2 .76-2 2v6c0 1.25.76 2 2 2h4.5c-1 2-3.5 3.5-5.5 3.5"/><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.76-2.02-2-2h-4c-1.25 0-2 .76-2 2v6c0 1.25.76 2 2 2h4.5c-1 2-3.5 3.5-5.5 3.5"/></svg>`,alignleft:mC,aligncenter:hC,alignright:gC,alignjustify:_C,removeformat:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="2.7 16.8 7 21 13 21 14 20 5 11" fill="currentColor" fill-opacity="0.3" stroke="none"/><path d="m7 21-4.3-4.3a2 2 0 0 1 0-2.8l9.6-9.6a2 2 0 0 1 2.8 0l5.6 5.6a2 2 0 0 1 0 2.8L13 21"/><path d="M22 21H7"/><path d="m5 11 9 9"/></svg>`,copy:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>`,cut:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="6" r="3"/><circle cx="6" cy="18" r="3"/><line x1="20" y1="4" x2="8.1" y2="15.9"/><line x1="14.5" y1="9.5" x2="20" y2="4"/><line x1="8.1" y1="8.1" x2="20" y2="20"/></svg>`,paste:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/><rect x="8" y="2" width="8" height="4" rx="1"/></svg>`,undo:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="1 4 1 10 7 10"/><path d="M3.5 14a9 9 0 1 0 2.2-5.8L1 10"/></svg>`,redo:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 4 23 10 17 10"/><path d="M20.5 14a9 9 0 1 1-2.2-5.8L23 10"/></svg>`,image:vC,charmap:`Ω`,emoticons:`😀`,fullscreen:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 3 21 3 21 9"/><polyline points="9 21 3 21 3 15"/><line x1="21" y1="3" x2="14" y2="10"/><line x1="3" y1="21" x2="10" y2="14"/></svg>`,preview:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>`,code:yC,link:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.5.5l3-3a5 5 0 0 0-7.1-7.1l-1.7 1.7"/><path d="M14 11a5 5 0 0 0-7.5-.5l-3 3a5 5 0 0 0 7.1 7.1l1.7-1.7"/></svg>`,codesample:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5a2 2 0 0 0 2 2h1"/><path d="M16 3h1a2 2 0 0 1 2 2v5a2 2 0 0 0 2 2 2 2 0 0 0-2 2v5a2 2 0 0 1-2 2h-1"/></svg>`,ltr:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="18" y1="5" x2="18" y2="19"/><path d="M8 5a4 4 0 0 0 0 8h4"/><polyline points="4 17 8 21 12 17"/></svg>`,rtl:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="6" y1="5" x2="6" y2="19"/><path d="M16 5a4 4 0 0 1 0 8h-4"/><polyline points="20 17 16 21 12 17"/></svg>`,searchreplace:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.6" y2="16.6"/></svg>`,speechtotext:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><line x1="12" y1="19" x2="12" y2="23"/><line x1="8" y1="23" x2="16" y2="23"/></svg>`,dictate:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><circle cx="12" cy="12" r="1" fill="currentColor" stroke="none"/><circle cx="12" cy="8" r="1" fill="currentColor" stroke="none"/><circle cx="12" cy="16" r="0.5" fill="currentColor" stroke="none"/></svg>`,togglemore:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1" fill="currentColor"/><circle cx="5" cy="12" r="1" fill="currentColor"/><circle cx="19" cy="12" r="1" fill="currentColor"/></svg>`,subscript:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5l8 10M12 5L4 15"/><path d="M20 19h-4c0-1.5.44-2 1.5-2.5S20 15.33 20 14c0-.47-.17-.93-.48-1.29a2 2 0 0 0-2.62-.44c-.42.24-.74.62-.9 1.07"/></svg>`,superscript:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 9l8 10M12 9l-8 10"/><path d="M20 8h-4c0-1.5.44-2 1.5-2.5S20 4.33 20 3c0-.47-.17-.93-.48-1.29a2 2 0 0 0-2.62-.44c-.42.24-.74.62-.9 1.07"/></svg>`,hr:bC,table:xC,anchor:SC,unlink:CC,blocks:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 4v16"/><path d="M17 4v16"/><path d="M19 4H9.5a4.5 4.5 0 0 0 0 9H13"/></svg>`,styles:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3l4 7h-8z"/><path d="M8 10h8l-4 11z"/></svg>`},EC=U.create({name:`fontSize`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontSize:{default:null,parseHTML:e=>e.style.fontSize?.replace(/['"]+/g,``),renderHTML:e=>e.fontSize?{style:`font-size: ${e.fontSize}`}:{}}}}]},addCommands(){return{setFontSize:e=>({chain:t})=>t().setMark(`textStyle`,{fontSize:e}).run(),unsetFontSize:()=>({chain:e})=>e().setMark(`textStyle`,{fontSize:null}).removeEmptyTextStyle().run()}}}),DC=U.create({name:`blockFontStyle`,addOptions(){return{fontFamilyTypes:[`paragraph`,`heading`],fontSizeTypes:[`paragraph`],defaultFontFamily:`arial, helvetica, sans-serif`,defaultFontSize:`12pt`}},addGlobalAttributes(){return[{types:this.options.fontFamilyTypes,attributes:{blockFontFamily:{default:this.options.defaultFontFamily,parseHTML:e=>e.style.fontFamily?.replace(/['"]+/g,``)||this.options.defaultFontFamily,renderHTML:e=>e.blockFontFamily?{style:`font-family: ${e.blockFontFamily}`}:{}}}},{types:this.options.fontSizeTypes,attributes:{blockFontSize:{default:this.options.defaultFontSize,parseHTML:e=>e.style.fontSize?.replace(/['"]+/g,``)||this.options.defaultFontSize,renderHTML:e=>e.blockFontSize?{style:`font-size: ${e.blockFontSize}`}:{}}}}]}}),OC=U.create({name:`lineHeight`,addOptions(){return{types:[`paragraph`,`heading`],defaultLineHeight:`1.2`}},addGlobalAttributes(){return[{types:this.options.types,attributes:{lineHeight:{default:this.options.defaultLineHeight,parseHTML:e=>e.style.lineHeight||this.options.defaultLineHeight,renderHTML:e=>!e.lineHeight||e.lineHeight===this.options.defaultLineHeight?{}:{style:`line-height: ${e.lineHeight}`}}}}]},addCommands(){return{setLineHeight:e=>({commands:t})=>this.options.types.every(n=>t.updateAttributes(n,{lineHeight:e})),unsetLineHeight:()=>({commands:e})=>this.options.types.every(t=>e.resetAttributes(t,`lineHeight`))}}}),kC=U.create({name:`textDirection`,addOptions(){return{types:[`paragraph`,`heading`,`blockquote`,`listItem`],defaultDirection:`ltr`}},addGlobalAttributes(){return[{types:this.options.types,attributes:{dir:{default:null,parseHTML:e=>e.getAttribute(`dir`),renderHTML:e=>e.dir?{dir:e.dir}:{}}}}]},addCommands(){return{setTextDirection:e=>({commands:t})=>this.options.types.every(n=>t.updateAttributes(n,{dir:e})),unsetTextDirection:()=>({commands:e})=>this.options.types.every(t=>e.resetAttributes(t,`dir`))}}}),AC=W.create({name:`signatureBlock`,group:`block`,content:`block+`,defining:!0,isolating:!0,addAttributes(){return{id:{default:`signature`}}},parseHTML(){return[{tag:`div[id="signature"]`,priority:100}]},renderHTML({HTMLAttributes:e}){return[`div`,H(e),0]}}),jC=W.create({name:`mention`,group:`inline`,inline:!0,atom:!0,selectable:!0,draggable:!1,addAttributes(){return{jid:{default:null,parseHTML:e=>e.getAttribute(`data-jid`),renderHTML:e=>e.jid?{"data-jid":e.jid}:{}},display:{default:null,parseHTML:e=>e.getAttribute(`data-display`),renderHTML:e=>e.display?{"data-display":e.display}:{}}}},parseHTML(){return[{tag:`span.composer-mention`}]},renderHTML({node:e,HTMLAttributes:t}){return[`span`,H({class:`composer-mention`,contenteditable:`false`},t),`@${e.attrs.display}`]}}),MC=W.create({name:`anchor`,inline:!0,group:`inline`,atom:!0,selectable:!0,addOptions(){return{HTMLAttributes:{class:`md-anchor`}}},addAttributes(){return{id:{default:null,parseHTML:e=>e.getAttribute(`id`),renderHTML:e=>e.id?{id:e.id}:{}},name:{default:null,parseHTML:e=>e.getAttribute(`name`),renderHTML:e=>e.name?{name:e.name}:{}}}},parseHTML(){return[{tag:`a[id]:not([href])`,priority:60}]},renderHTML({HTMLAttributes:e}){return[`a`,H(this.options.HTMLAttributes,e)]},addCommands(){return{setAnchor:e=>({commands:t})=>t.insertContent({type:this.name,attrs:{id:e,name:e}})}}}),NC=U.create({name:`inlineStyle`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{styleClass:{default:null,parseHTML:e=>e.getAttribute(`class`)||null,renderHTML:e=>e.styleClass?{class:e.styleClass}:{}}}}]},addCommands(){return{setInlineClass:e=>({chain:t})=>t().setMark(`textStyle`,{styleClass:e}).run(),unsetInlineClass:()=>({chain:e})=>e().setMark(`textStyle`,{styleClass:null}).removeEmptyTextStyle().run()}}}),PC=[`xmlns:o="urn:schemas-microsoft-com:office:office"`,`xmlns:w="urn:schemas-microsoft-com:office:word"`,`class="Mso`,`class=Mso`,`style="mso-`,`style='mso-`],FC=[`xmlns:x="urn:schemas-microsoft-com:office:excel"`,`ProgId content=Excel.Sheet`,`ProgId content="Excel.Sheet"`];function IC(e){return PC.some(t=>e.includes(t))}function LC(e){return FC.some(t=>e.includes(t))}function RC(e){return IC(e)||LC(e)}function zC(e){return e.replace(/<!--\[if[^\]]*\]>[\s\S]*?<!\[endif\]-->/gi,``)}var BC=/(?:<\/?)(?:o|w|v|m|x|st\d):/i;function VC(e){let t=Array.from(e.body.querySelectorAll(`*`));for(let e of t){let t=e.tagName.toLowerCase();if(BC.test(`<${t}`)){let t=e.parentNode;if(t){for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e)}}}let n=Array.from(e.body.querySelectorAll(`*`));for(let e of n){let t=Array.from(e.attributes);for(let n of t)(n.name.startsWith(`xmlns:`)||n.name===`xmlns`)&&e.removeAttribute(n.name)}}function HC(e){let t=new Map,n=e.querySelectorAll(`style`);for(let e of Array.from(n)){let n=e.textContent??``,r=/@list\s+(l\d+):level(\d+)\s*\{([^}]*)\}/gi,i;for(;(i=r.exec(n))!==null;){let e=i[1],n=i[2],r=i[3],a=`${e}:level${n}`,o=/mso-level-number-format:\s*([^;]+)/i.exec(r);if(o){let e=o[1].trim().toLowerCase();t.set(a,e!==`bullet`)}else t.set(a,!0)}}return t}function UC(e){let t=/mso-list:\s*(l\d+)\s+level(\d+)\s+/i.exec(e);return t?{listId:t[1],level:parseInt(t[2],10),isOrdered:!1}:null}function WC(e){let t=HC(e),n=Array.from(e.body.querySelectorAll(`[class*="MsoList"]`));if(n.length===0)return;let r=[],i=[];for(let e of n){let t=e;if(UC(t.getAttribute(`style`)??``)){if(i.length>0){let e=i[i.length-1].nextElementSibling;for(;e&&e!==t&&e.textContent?.trim()===``;)e=e.nextElementSibling;e!==t&&(r.push(i),i=[])}i.push(t)}}i.length>0&&r.push(i);for(let n of r)GC(e,n,t)}function GC(e,t,n){if(t.length===0)return;let r=UC(t[0].getAttribute(`style`)??``);if(!r)return;let i=t[0].parentNode;if(!i)return;let a=`${r.listId}:level${r.level}`,o=n.get(a)??!1,s=e.createElement(o?`ol`:`ul`),c=[{element:s,level:r.level}];for(let r of t){let t=r.getAttribute(`style`)??``,i=UC(t);if(!i)continue;let a=`${i.listId}:level${i.level}`,o=n.get(a)??!1;for(;c.length>1&&c[c.length-1].level>=i.level;)c.pop();if(i.level>c[c.length-1].level){let t=c[c.length-1].element,n=t.lastElementChild;(!n||n.tagName.toLowerCase()!==`li`)&&(n=e.createElement(`li`),t.appendChild(n));let r=e.createElement(o?`ol`:`ul`);n.appendChild(r),c.push({element:r,level:i.level})}let s=e.createElement(`li`);for(KC(r);r.firstChild;)s.appendChild(r.firstChild);let l=YC(t);l&&s.setAttribute(`style`,l),c[c.length-1].element.appendChild(s)}i.insertBefore(s,t[0]);for(let e of t)e.remove()}function KC(e){let t=Array.from(e.querySelectorAll(`span`));for(let e of t){let t=e.getAttribute(`style`)??``;/mso-list:\s*Ignore/i.test(t)&&e.remove()}}var qC=/\bmso-[^:]+:[^;]+;?\s*/gi,JC=/\bMso\w*|\bxl\d+/g;function YC(e){let t=e.replace(qC,``);return t=t.replace(/;\s*;/g,`;`).replace(/^\s*;\s*/,``).replace(/\s*;\s*$/,``).trim(),t||``}function XC(e){return e.split(`,`)[0].trim().replace(/^["']|["']$/g,``)}function ZC(e){let t=Array.from(e.body.querySelectorAll(`*`));for(let e of t){let t=e.getAttribute(`class`);if(t){let n=t.replace(JC,``).trim();n?e.setAttribute(`class`,n):e.removeAttribute(`class`)}let n=e.getAttribute(`style`);if(n){let t=YC(n),r=/font-family:\s*([^;]+)/i.exec(t);if(r){let e=XC(r[1]);t=t.replace(r[0],`font-family: ${e}`)}t?e.setAttribute(`style`,t):e.removeAttribute(`style`)}let r=Array.from(e.attributes).filter(e=>e.name.startsWith(`v:`)||e.name.startsWith(`o:`)||e.name===`lang`);for(let t of r)e.removeAttribute(t.name)}}function QC(e){let t=!0;for(;t;){t=!1;let n=Array.from(e.body.querySelectorAll(`span`));for(let e of n)if(e.attributes.length===0){let n=e.parentNode;if(n){for(;e.firstChild;)n.insertBefore(e.firstChild,e);n.removeChild(e),t=!0}}}let n=Array.from(e.body.querySelectorAll(`p`));for(let t of n)t.innerHTML.trim()===``&&e.body.children.length>1&&t.remove()}function $C(e){let t=Array.from(e.body.querySelectorAll(`table`));for(let e of t){tw(e);let t=Array.from(e.querySelectorAll(`td, th`));for(let e of t){tw(e);let t=e.getAttribute(`style`);if(t){let n=YC(t);n?e.setAttribute(`style`,n):e.removeAttribute(`style`)}}let n=Array.from(e.querySelectorAll(`tr`));for(let e of n)tw(e)}}var ew=[`x:num`,`x:str`,`x:fmla`,`x:autofilter`,`mso-number-format`];function tw(e){for(let t of ew)e.removeAttribute(t);let t=e.getAttribute(`class`);if(t){let n=t.replace(JC,``).trim();n?e.setAttribute(`class`,n):e.removeAttribute(`class`)}}var nw=[`script`,`iframe`,`object`,`embed`,`applet`,`form`,`input`,`textarea`,`select`,`button`],rw=/^on/i,iw=/^\s*(javascript|vbscript|data\s*:(?!image))/i;function aw(e){for(let t of nw){let n=Array.from(e.body.querySelectorAll(t));for(let e of n)e.remove()}let t=Array.from(e.body.querySelectorAll(`*`));for(let e of t){let t=Array.from(e.attributes);for(let n of t){if(rw.test(n.name)){e.removeAttribute(n.name);continue}(n.name===`href`||n.name===`src`||n.name===`action`)&&iw.test(n.value)&&e.removeAttribute(n.name)}let n=e.getAttribute(`src`);n&&n.startsWith(`file://`)&&e.removeAttribute(`src`);let r=e.getAttribute(`href`);r&&r.startsWith(`file://`)&&e.removeAttribute(`href`)}}function ow(e){let t=Array.from(e.querySelectorAll(`style`));for(let e of t)e.remove()}function sw(e){for(let t of[`meta`,`link`,`title`,`xml`]){let n=Array.from(e.body.querySelectorAll(t));for(let e of n)e.remove()}}function cw(e){if(!RC(e))return e;let t=zC(e),n=new DOMParser().parseFromString(t,`text/html`);return sw(n),IC(e)&&WC(n),VC(n),LC(e)&&$C(n),ZC(n),ow(n),QC(n),aw(n),n.body.innerHTML}var lw=U.create({name:`pasteFromOffice`,addOptions(){return{enabled:!0}},addStorage(){return{}},transformPastedHTML(e){return this.options.enabled?cw(e):e}}),uw={Bold:`Bold`,Italic:`Italic`,Underline:`Underline`,Strikethrough:`Strikethrough`,"Bullet list":`Bullet list`,"Numbered list":`Numbered list`,"Decrease indent":`Decrease indent`,"Increase indent":`Increase indent`,Blockquote:`Blockquote`,"Align left":`Align left`,"Align center":`Align center`,"Align right":`Align right`,Justify:`Justify`,"Text color":`Text color`,"Background color":`Background color`,"Remove formatting":`Remove formatting`,Copy:`Copy`,Cut:`Cut`,Paste:`Paste`,Undo:`Undo`,Redo:`Redo`,"Insert image":`Insert image`,"Special character":`Special character`,Emoticons:`Emoticons`,Fullscreen:`Fullscreen`,Preview:`Preview`,"Source code":`Source code`,"Insert link":`Insert link`,"Code sample":`Code sample`,"Left to right":`Left to right`,"Right to left":`Right to left`,"Find and replace":`Find and replace`,Font:`Font`,"Font size":`Font size`,"Line height":`Line height`,Templates:`Templates`,Apply:`Apply`,"Enter image URL:":`Enter image URL:`,"Enter URL:":`Enter URL:`,"Edit HTML source:":`Edit HTML source:`,"Find and Replace":`Find and Replace`,Find:`Find`,Replace:`Replace`,"Case sensitive":`Case sensitive`,"Whole word":`Whole word`,Previous:`Previous`,Next:`Next`,"Replace All":`Replace All`,"Search...":`Search...`,"Special Character":`Special Character`,Upload:`Upload`,URL:`URL`,"Browse...":`Browse...`,"Drop image here or click to browse":`Drop image here or click to browse`,"Alt text":`Alt text`,Insert:`Insert`,Cancel:`Cancel`,"Uploading...":`Uploading...`,"Upload failed":`Upload failed`,"Invalid image URL":`Invalid image URL`,"File too large":`File too large`,"Invalid file type":`Invalid file type`,More:`More`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Speech to Text`,Dictate:`Dictate`,Start:`Start`,Stop:`Stop`,Clear:`Clear`,Language:`Language`,Confidence:`Confidence`,"Listening...":`Listening...`,"Speech to text is not supported in this browser":`Speech to text is not supported in this browser`,"No speech detected":`No speech detected`,"Microphone access denied":`Microphone access denied`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Subscript`,Superscript:`Superscript`,"Horizontal rule":`Horizontal rule`,Unlink:`Unlink`,Format:`Format`,Paragraph:`Paragraph`,"Heading 1":`Heading 1`,"Heading 2":`Heading 2`,"Heading 3":`Heading 3`,"Heading 4":`Heading 4`,"Heading 5":`Heading 5`,"Heading 6":`Heading 6`,Styles:`Styles`,"Insert anchor":`Insert anchor`,Anchor:`Anchor`,"Anchor name":`Anchor name`,"Anchor name is required":`Anchor name is required`,"Anchor name cannot contain spaces":`Anchor name cannot contain spaces`,Table:`Table`,"Insert table":`Insert table`,"Insert row before":`Insert row before`,"Insert row after":`Insert row after`,"Delete row":`Delete row`,"Insert column before":`Insert column before`,"Insert column after":`Insert column after`,"Delete column":`Delete column`,"Merge cells":`Merge cells`,"Split cell":`Split cell`,"Toggle header row":`Toggle header row`,"Delete table":`Delete table`},dw={en:uw,ar:{Bold:`غامق`,Italic:`مائل`,Underline:`تسطير`,Strikethrough:`يتوسطه خط`,"Bullet list":`قائمة نقطية`,"Numbered list":`قائمة مرقمة`,"Decrease indent":`تقليل المسافة البادئة`,"Increase indent":`زيادة المسافة البادئة`,Blockquote:`اقتباس`,"Align left":`محاذاة لليسار`,"Align center":`توسيط`,"Align right":`محاذاة لليمين`,Justify:`ضبط`,"Text color":`لون النص`,"Background color":`لون الخلفية`,"Remove formatting":`إزالة التنسيق`,Copy:`نسخ`,Cut:`قص`,Paste:`لصق`,Undo:`تراجع`,Redo:`إعادة`,"Insert image":`إدراج صورة`,"Special character":`حرف خاص`,Emoticons:`رموز تعبيرية`,Fullscreen:`ملء الشاشة`,Preview:`معاينة`,"Source code":`شفرة المصدر`,"Insert link":`إدراج رابط`,"Code sample":`عينة من الشفرة`,"Left to right":`من اليسار إلى اليمين`,"Right to left":`من اليمين إلى اليسار`,"Find and replace":`بحث واستبدال`,Font:`الخط`,"Font size":`حجم الخط`,"Line height":`ارتفاع السطر`,Templates:`قوالب`,Apply:`تطبيق`,"Enter image URL:":`أدخل رابط الصورة:`,"Enter URL:":`أدخل الرابط:`,"Edit HTML source:":`تحرير مصدر HTML:`,"Find and Replace":`بحث واستبدال`,Find:`بحث`,Replace:`استبدال`,"Case sensitive":`حساس لحالة الأحرف`,"Whole word":`كلمة كاملة`,Previous:`السابق`,Next:`التالي`,"Replace All":`استبدال الكل`,"Search...":`بحث...`,"Special Character":`حرف خاص`,Upload:`رفع`,URL:`رابط`,"Browse...":`استعراض...`,"Drop image here or click to browse":`أسقط الصورة هنا أو انقر للاستعراض`,"Alt text":`نص بديل`,Insert:`?????`,Cancel:`إلغاء`,"Uploading...":`جارٍ الرفع...`,"Upload failed":`فشل الرفع`,"Invalid image URL":`رابط صورة غير صالح`,"File too large":`الملف كبير جداً`,"Invalid file type":`نوع ملف غير صالح`,More:`المزيد`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`????? ?????? ??? ??`,Dictate:`إملاء`,Start:`???`,Stop:`?????`,Clear:`???`,Language:`?????`,Confidence:`?????`,"Listening...":`???? ????????...`,"Speech to text is not supported in this browser":`????? ?????? ??? ?? ??? ????? ?? ??? ???????`,"No speech detected":`?? ??? ?????? ????`,"Microphone access denied":`?? ??? ?????? ??? ??????????`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`منخفض`,Superscript:`مرتفع`,"Horizontal rule":`خط أفقي`,Unlink:`إزالة الرابط`,Format:`تنسيق`,Paragraph:`فقرة`,"Heading 1":`عنوان 1`,"Heading 2":`عنوان 2`,"Heading 3":`عنوان 3`,"Heading 4":`عنوان 4`,"Heading 5":`عنوان 5`,"Heading 6":`عنوان 6`,Styles:`أنماط`,"Insert anchor":`إدراج مرساة`,Anchor:`مرساة`,"Anchor name":`اسم المرساة`,"Anchor name is required":`اسم المرساة مطلوب`,"Anchor name cannot contain spaces":`لا يمكن أن يحتوي اسم المرساة على مسافات`,Table:`جدول`,"Insert table":`إدراج جدول`,"Insert row before":`إدراج صف قبل`,"Insert row after":`إدراج صف بعد`,"Delete row":`حذف الصف`,"Insert column before":`إدراج عمود قبل`,"Insert column after":`إدراج عمود بعد`,"Delete column":`حذف العمود`,"Merge cells":`دمج الخلايا`,"Split cell":`تقسيم الخلية`,"Toggle header row":`تبديل صف الرأس`,"Delete table":`حذف الجدول`},ca:{Bold:`Negreta`,Italic:`Cursiva`,Underline:`Subratllat`,Strikethrough:`Barrat`,"Bullet list":`Llista de pics`,"Numbered list":`Llista numerada`,"Decrease indent":`Reduir sagnat`,"Increase indent":`Augmentar sagnat`,Blockquote:`Citació`,"Align left":`Alinear a l'esquerra`,"Align center":`Centrar`,"Align right":`Alinear a la dreta`,Justify:`Justificar`,"Text color":`Color del text`,"Background color":`Color de fons`,"Remove formatting":`Eliminar format`,Copy:`Copiar`,Cut:`Tallar`,Paste:`Enganxar`,Undo:`Desfer`,Redo:`Refer`,"Insert image":`Inserir imatge`,"Special character":`Caràcter especial`,Emoticons:`Emoticones`,Fullscreen:`Pantalla completa`,Preview:`Previsualització`,"Source code":`Codi font`,"Insert link":`Inserir enllaç`,"Code sample":`Mostra de codi`,"Left to right":`D'esquerra a dreta`,"Right to left":`De dreta a esquerra`,"Find and replace":`Cercar i reemplaçar`,Font:`Tipus de lletra`,"Font size":`Mida de lletra`,"Line height":`Alçada de línia`,Templates:`Plantilles`,Apply:`Aplicar`,"Enter image URL:":`Introduïu l'URL de la imatge:`,"Enter URL:":`Introduïu l'URL:`,"Edit HTML source:":`Editar codi font HTML:`,"Find and Replace":`Cercar i reemplaçar`,Find:`Cercar`,Replace:`Reemplaçar`,"Case sensitive":`Distingir majúscules`,"Whole word":`Paraula sencera`,Previous:`Anterior`,Next:`Següent`,"Replace All":`Reemplaçar tot`,"Search...":`Cercar...`,"Special Character":`Caràcter especial`,Upload:`Pujar`,URL:`URL`,"Browse...":`Explorar...`,"Drop image here or click to browse":`Deixa anar la imatge aquí o fes clic per explorar`,"Alt text":`Text alternatiu`,Insert:`Inserir`,Cancel:`Cancel·lar`,"Uploading...":`Pujant...`,"Upload failed":`Error en pujar`,"Invalid image URL":`URL d'imatge no vàlida`,"File too large":`Fitxer massa gran`,"Invalid file type":`Tipus de fitxer no vàlid`,More:`Més`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Veu a text`,Dictate:`Dictar`,Start:`Iniciar`,Stop:`Aturar`,Clear:`Esborrar`,Language:`Idioma`,Confidence:`Confian�a`,"Listening...":`Escoltant...`,"Speech to text is not supported in this browser":`La veu a text no �s compatible amb aquest navegador`,"No speech detected":`No s'ha detectat veu`,"Microphone access denied":`Acc�s al micr�fon denegat`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Subíndex`,Superscript:`Superíndex`,"Horizontal rule":`Línia horitzontal`,Unlink:`Treure enllaç`,Format:`Format`,Paragraph:`Paràgraf`,"Heading 1":`Encapçalament 1`,"Heading 2":`Encapçalament 2`,"Heading 3":`Encapçalament 3`,"Heading 4":`Encapçalament 4`,"Heading 5":`Encapçalament 5`,"Heading 6":`Encapçalament 6`,Styles:`Estils`,"Insert anchor":`Inserir àncora`,Anchor:`Àncora`,"Anchor name":`Nom de l'àncora`,"Anchor name is required":`El nom de l'àncora és obligatori`,"Anchor name cannot contain spaces":`El nom de l'àncora no pot contenir espais`,Table:`Taula`,"Insert table":`Inserir taula`,"Insert row before":`Inserir fila a sobre`,"Insert row after":`Inserir fila a sota`,"Delete row":`Eliminar fila`,"Insert column before":`Inserir columna abans`,"Insert column after":`Inserir columna després`,"Delete column":`Eliminar columna`,"Merge cells":`Combinar cel·les`,"Split cell":`Dividir cel·la`,"Toggle header row":`Alternar fila de capçalera`,"Delete table":`Eliminar taula`},zh:{Bold:`粗体`,Italic:`斜体`,Underline:`下划线`,Strikethrough:`删除线`,"Bullet list":`项目符号列表`,"Numbered list":`编号列表`,"Decrease indent":`减少缩进`,"Increase indent":`增加缩进`,Blockquote:`引用`,"Align left":`左对齐`,"Align center":`居中对齐`,"Align right":`右对齐`,Justify:`两端对齐`,"Text color":`文字颜色`,"Background color":`背景颜色`,"Remove formatting":`清除格式`,Copy:`复制`,Cut:`剪切`,Paste:`粘贴`,Undo:`撤销`,Redo:`重做`,"Insert image":`插入图片`,"Special character":`特殊字符`,Emoticons:`表情符号`,Fullscreen:`全屏`,Preview:`预览`,"Source code":`源代码`,"Insert link":`插入链接`,"Code sample":`代码示例`,"Left to right":`从左到右`,"Right to left":`从右到左`,"Find and replace":`查找和替换`,Font:`字体`,"Font size":`字号`,"Line height":`行高`,Templates:`模板`,Apply:`应用`,"Enter image URL:":`输入图片链接:`,"Enter URL:":`输入链接:`,"Edit HTML source:":`编辑HTML源代码:`,"Find and Replace":`查找和替换`,Find:`查找`,Replace:`替换`,"Case sensitive":`区分大小写`,"Whole word":`全字匹配`,Previous:`上一个`,Next:`下一个`,"Replace All":`全部替换`,"Search...":`搜索...`,"Special Character":`特殊字符`,Upload:`上传`,URL:`URL`,"Browse...":`浏览...`,"Drop image here or click to browse":`将图片拖放到此处或点击浏览`,"Alt text":`替代文本`,Insert:`??`,Cancel:`取消`,"Uploading...":`上传中...`,"Upload failed":`上传失败`,"Invalid image URL":`无效的图片 URL`,"File too large":`文件过大`,"Invalid file type":`无效的文件类型`,More:`更多`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`?????`,Dictate:`听写`,Start:`??`,Stop:`??`,Clear:`??`,Language:`??`,Confidence:`???`,"Listening...":`????...`,"Speech to text is not supported in this browser":`????????????`,"No speech detected":`??????`,"Microphone access denied":`????????`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`下标`,Superscript:`上标`,"Horizontal rule":`水平线`,Unlink:`取消链接`,Format:`格式`,Paragraph:`段落`,"Heading 1":`标题 1`,"Heading 2":`标题 2`,"Heading 3":`标题 3`,"Heading 4":`标题 4`,"Heading 5":`标题 5`,"Heading 6":`标题 6`,Styles:`样式`,"Insert anchor":`插入锚点`,Anchor:`锚点`,"Anchor name":`锚点名称`,"Anchor name is required":`锚点名称为必填项`,"Anchor name cannot contain spaces":`锚点名称不能包含空格`,Table:`表格`,"Insert table":`插入表格`,"Insert row before":`在上方插入行`,"Insert row after":`在下方插入行`,"Delete row":`删除行`,"Insert column before":`在左侧插入列`,"Insert column after":`在右侧插入列`,"Delete column":`删除列`,"Merge cells":`合并单元格`,"Split cell":`拆分单元格`,"Toggle header row":`切换标题行`,"Delete table":`删除表格`},cs:{Bold:`Tučné`,Italic:`Kurzíva`,Underline:`Podtržené`,Strikethrough:`Přeškrtnuté`,"Bullet list":`Odrážkový seznam`,"Numbered list":`Číslovaný seznam`,"Decrease indent":`Zmenšit odsazení`,"Increase indent":`Zvětšit odsazení`,Blockquote:`Citace`,"Align left":`Zarovnat vlevo`,"Align center":`Zarovnat na střed`,"Align right":`Zarovnat vpravo`,Justify:`Zarovnat do bloku`,"Text color":`Barva textu`,"Background color":`Barva pozadí`,"Remove formatting":`Odstranit formátování`,Copy:`Kopírovat`,Cut:`Vyjmout`,Paste:`Vložit`,Undo:`Zpět`,Redo:`Znovu`,"Insert image":`Vložit obrázek`,"Special character":`Speciální znak`,Emoticons:`Emotikony`,Fullscreen:`Celá obrazovka`,Preview:`Náhled`,"Source code":`Zdrojový kód`,"Insert link":`Vložit odkaz`,"Code sample":`Ukázka kódu`,"Left to right":`Zleva doprava`,"Right to left":`Zprava doleva`,"Find and replace":`Najít a nahradit`,Font:`Písmo`,"Font size":`Velikost písma`,"Line height":`Výška řádku`,Templates:`Šablony`,Apply:`Použít`,"Enter image URL:":`Zadejte URL obrázku:`,"Enter URL:":`Zadejte URL:`,"Edit HTML source:":`Upravit HTML zdroj:`,"Find and Replace":`Najít a nahradit`,Find:`Najít`,Replace:`Nahradit`,"Case sensitive":`Rozlišovat velikost písmen`,"Whole word":`Celé slovo`,Previous:`Předchozí`,Next:`Další`,"Replace All":`Nahradit vše`,"Search...":`Hledat...`,"Special Character":`Speciální znak`,Upload:`Nahrát`,URL:`URL`,"Browse...":`Procházet...`,"Drop image here or click to browse":`Přetáhněte obrázek sem nebo klikněte pro výběr`,"Alt text":`Alternativní text`,Insert:`Vlo�it`,Cancel:`Zrušit`,"Uploading...":`Nahrávání...`,"Upload failed":`Nahrávání selhalo`,"Invalid image URL":`Neplatná URL obrázku`,"File too large":`Soubor je příliš velký`,"Invalid file type":`Neplatný typ souboru`,More:`Více`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Rec na text`,Dictate:`Diktovat`,Start:`Spustit`,Stop:`Zastavit`,Clear:`Vymazat`,Language:`Jazyk`,Confidence:`Spolehlivost`,"Listening...":`Poslouch�m...`,"Speech to text is not supported in this browser":`Rec na text nen� v tomto prohl�eci podporov�na`,"No speech detected":`Nebyla detekov�na rec`,"Microphone access denied":`Pr�stup k mikrofonu zam�tnut`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Dolní index`,Superscript:`Horní index`,"Horizontal rule":`Vodorovná čára`,Unlink:`Odebrat odkaz`,Format:`Formát`,Paragraph:`Odstavec`,"Heading 1":`Nadpis 1`,"Heading 2":`Nadpis 2`,"Heading 3":`Nadpis 3`,"Heading 4":`Nadpis 4`,"Heading 5":`Nadpis 5`,"Heading 6":`Nadpis 6`,Styles:`Styly`,"Insert anchor":`Vložit kotvu`,Anchor:`Kotva`,"Anchor name":`Název kotvy`,"Anchor name is required":`Název kotvy je povinný`,"Anchor name cannot contain spaces":`Název kotvy nesmí obsahovat mezery`,Table:`Tabulka`,"Insert table":`Vložit tabulku`,"Insert row before":`Vložit řádek před`,"Insert row after":`Vložit řádek za`,"Delete row":`Odstranit řádek`,"Insert column before":`Vložit sloupec před`,"Insert column after":`Vložit sloupec za`,"Delete column":`Odstranit sloupec`,"Merge cells":`Sloučit buňky`,"Split cell":`Rozdělit buňku`,"Toggle header row":`Přepnout řádek záhlaví`,"Delete table":`Odstranit tabulku`},da:{Bold:`Fed`,Italic:`Kursiv`,Underline:`Understreget`,Strikethrough:`Gennemstreget`,"Bullet list":`Punktliste`,"Numbered list":`Nummereret liste`,"Decrease indent":`Formindsk indrykning`,"Increase indent":`Forøg indrykning`,Blockquote:`Blokcitat`,"Align left":`Venstrejuster`,"Align center":`Centrer`,"Align right":`Højrejuster`,Justify:`Lige margener`,"Text color":`Tekstfarve`,"Background color":`Baggrundsfarve`,"Remove formatting":`Fjern formatering`,Copy:`Kopier`,Cut:`Klip`,Paste:`Indsæt`,Undo:`Fortryd`,Redo:`Annuller fortryd`,"Insert image":`Indsæt billede`,"Special character":`Specialtegn`,Emoticons:`Humørikoner`,Fullscreen:`Fuldskærm`,Preview:`Forhåndsvisning`,"Source code":`Kildekode`,"Insert link":`Indsæt link`,"Code sample":`Kodeeksempel`,"Left to right":`Venstre mod højre`,"Right to left":`Højre mod venstre`,"Find and replace":`Søg og erstat`,Font:`Skrifttype`,"Font size":`Skriftstørrelse`,"Line height":`Linjehøjde`,Templates:`Skabeloner`,Apply:`Anvend`,"Enter image URL:":`Indtast billed-URL:`,"Enter URL:":`Indtast URL:`,"Edit HTML source:":`Rediger HTML-kilde:`,"Find and Replace":`Søg og erstat`,Find:`Søg`,Replace:`Erstat`,"Case sensitive":`Forskel på store/små bogstaver`,"Whole word":`Helt ord`,Previous:`Forrige`,Next:`Næste`,"Replace All":`Erstat alle`,"Search...":`Søg...`,"Special Character":`Specialtegn`,Upload:`Upload`,URL:`URL`,"Browse...":`Gennemse...`,"Drop image here or click to browse":`Træk billede hertil eller klik for at gennemse`,"Alt text":`Alternativ tekst`,Insert:`Inds�t`,Cancel:`Annuller`,"Uploading...":`Uploader...`,"Upload failed":`Upload mislykkedes`,"Invalid image URL":`Ugyldig billed-URL`,"File too large":`Filen er for stor`,"Invalid file type":`Ugyldig filtype`,More:`Mere`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Tale til tekst`,Dictate:`Dikter`,Start:`Start`,Stop:`Stop`,Clear:`Ryd`,Language:`Sprog`,Confidence:`Tillid`,"Listening...":`Lytter...`,"Speech to text is not supported in this browser":`Tale til tekst underst�ttes ikke i denne browser`,"No speech detected":`Ingen tale registreret`,"Microphone access denied":`Mikrofonadgang n�gtet`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Sænket skrift`,Superscript:`Hævet skrift`,"Horizontal rule":`Vandret streg`,Unlink:`Fjern link`,Format:`Format`,Paragraph:`Afsnit`,"Heading 1":`Overskrift 1`,"Heading 2":`Overskrift 2`,"Heading 3":`Overskrift 3`,"Heading 4":`Overskrift 4`,"Heading 5":`Overskrift 5`,"Heading 6":`Overskrift 6`,Styles:`Typografier`,"Insert anchor":`Indsæt anker`,Anchor:`Anker`,"Anchor name":`Ankernavn`,"Anchor name is required":`Ankernavn er påkrævet`,"Anchor name cannot contain spaces":`Ankernavn må ikke indeholde mellemrum`,Table:`Tabel`,"Insert table":`Indsæt tabel`,"Insert row before":`Indsæt række før`,"Insert row after":`Indsæt række efter`,"Delete row":`Slet række`,"Insert column before":`Indsæt kolonne før`,"Insert column after":`Indsæt kolonne efter`,"Delete column":`Slet kolonne`,"Merge cells":`Flet celler`,"Split cell":`Opdel celle`,"Toggle header row":`Skift overskriftsrække`,"Delete table":`Slet tabel`},"en-gb":{Bold:`Bold`,Italic:`Italic`,Underline:`Underline`,Strikethrough:`Strikethrough`,"Bullet list":`Bullet list`,"Numbered list":`Numbered list`,"Decrease indent":`Decrease indent`,"Increase indent":`Increase indent`,Blockquote:`Blockquote`,"Align left":`Align left`,"Align center":`Align centre`,"Align right":`Align right`,Justify:`Justify`,"Text color":`Text colour`,"Background color":`Background colour`,"Remove formatting":`Remove formatting`,Copy:`Copy`,Cut:`Cut`,Paste:`Paste`,Undo:`Undo`,Redo:`Redo`,"Insert image":`Insert image`,"Special character":`Special character`,Emoticons:`Emoticons`,Fullscreen:`Fullscreen`,Preview:`Preview`,"Source code":`Source code`,"Insert link":`Insert link`,"Code sample":`Code sample`,"Left to right":`Left to right`,"Right to left":`Right to left`,"Find and replace":`Find and replace`,Font:`Font`,"Font size":`Font size`,"Line height":`Line height`,Templates:`Templates`,Apply:`Apply`,"Enter image URL:":`Enter image URL:`,"Enter URL:":`Enter URL:`,"Edit HTML source:":`Edit HTML source:`,"Find and Replace":`Find and Replace`,Find:`Find`,Replace:`Replace`,"Case sensitive":`Case sensitive`,"Whole word":`Whole word`,Previous:`Previous`,Next:`Next`,"Replace All":`Replace All`,"Search...":`Search...`,"Special Character":`Special Character`,Upload:`Upload`,URL:`URL`,"Browse...":`Browse...`,"Drop image here or click to browse":`Drop image here or click to browse`,"Alt text":`Alt text`,Insert:`Insert`,Cancel:`Cancel`,"Uploading...":`Uploading...`,"Upload failed":`Upload failed`,"Invalid image URL":`Invalid image URL`,"File too large":`File too large`,"Invalid file type":`Invalid file type`,More:`More`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Speech to Text`,Dictate:`Dictate`,Start:`Start`,Stop:`Stop`,Clear:`Clear`,Language:`Language`,Confidence:`Confidence`,"Listening...":`Listening...`,"Speech to text is not supported in this browser":`Speech to text is not supported in this browser`,"No speech detected":`No speech detected`,"Microphone access denied":`Microphone access denied`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Subscript`,Superscript:`Superscript`,"Horizontal rule":`Horizontal rule`,Unlink:`Unlink`,Format:`Format`,Paragraph:`Paragraph`,"Heading 1":`Heading 1`,"Heading 2":`Heading 2`,"Heading 3":`Heading 3`,"Heading 4":`Heading 4`,"Heading 5":`Heading 5`,"Heading 6":`Heading 6`,Styles:`Styles`,"Insert anchor":`Insert anchor`,Anchor:`Anchor`,"Anchor name":`Anchor name`,"Anchor name is required":`Anchor name is required`,"Anchor name cannot contain spaces":`Anchor name cannot contain spaces`,Table:`Table`,"Insert table":`Insert table`,"Insert row before":`Insert row before`,"Insert row after":`Insert row after`,"Delete row":`Delete row`,"Insert column before":`Insert column before`,"Insert column after":`Insert column after`,"Delete column":`Delete column`,"Merge cells":`Merge cells`,"Split cell":`Split cell`,"Toggle header row":`Toggle header row`,"Delete table":`Delete table`},fi:{Bold:`Lihavoitu`,Italic:`Kursivoitu`,Underline:`Alleviivattu`,Strikethrough:`Yliviivattu`,"Bullet list":`Luettelomerkkilista`,"Numbered list":`Numeroitu lista`,"Decrease indent":`Pienennä sisennystä`,"Increase indent":`Suurenna sisennystä`,Blockquote:`Lainaus`,"Align left":`Tasaa vasemmalle`,"Align center":`Keskitä`,"Align right":`Tasaa oikealle`,Justify:`Tasaa molemmat reunat`,"Text color":`Tekstin väri`,"Background color":`Taustaväri`,"Remove formatting":`Poista muotoilu`,Copy:`Kopioi`,Cut:`Leikkaa`,Paste:`Liitä`,Undo:`Kumoa`,Redo:`Tee uudelleen`,"Insert image":`Lisää kuva`,"Special character":`Erikoismerkki`,Emoticons:`Hymiöt`,Fullscreen:`Koko näyttö`,Preview:`Esikatselu`,"Source code":`Lähdekoodi`,"Insert link":`Lisää linkki`,"Code sample":`Koodiesimerkki`,"Left to right":`Vasemmalta oikealle`,"Right to left":`Oikealta vasemmalle`,"Find and replace":`Etsi ja korvaa`,Font:`Kirjasin`,"Font size":`Kirjasinkoko`,"Line height":`Rivin korkeus`,Templates:`Mallipohjat`,Apply:`Käytä`,"Enter image URL:":`Syötä kuvan URL:`,"Enter URL:":`Syötä URL:`,"Edit HTML source:":`Muokkaa HTML-lähdekoodia:`,"Find and Replace":`Etsi ja korvaa`,Find:`Etsi`,Replace:`Korvaa`,"Case sensitive":`Huomioi kirjainkoko`,"Whole word":`Koko sana`,Previous:`Edellinen`,Next:`Seuraava`,"Replace All":`Korvaa kaikki`,"Search...":`Etsi...`,"Special Character":`Erikoismerkki`,Upload:`Lataa`,URL:`URL`,"Browse...":`Selaa...`,"Drop image here or click to browse":`Pudota kuva tähän tai napsauta selataksesi`,"Alt text":`Vaihtoehtoinen teksti`,Insert:`Lis��`,Cancel:`Peruuta`,"Uploading...":`Ladataan...`,"Upload failed":`Lataus epäonnistui`,"Invalid image URL":`Virheellinen kuvan URL`,"File too large":`Tiedosto on liian suuri`,"Invalid file type":`Virheellinen tiedostotyyppi`,More:`Lisää`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Puhe tekstiksi`,Dictate:`Sanele`,Start:`Aloita`,Stop:`Lopeta`,Clear:`Tyhjenn�`,Language:`Kieli`,Confidence:`Luotettavuus`,"Listening...":`Kuuntelee...`,"Speech to text is not supported in this browser":`Puhe tekstiksi ei ole tuettu t�ss� selaimessa`,"No speech detected":`Puhetta ei havaittu`,"Microphone access denied":`Mikrofonin k�ytt� estetty`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Alaindeksi`,Superscript:`Yläindeksi`,"Horizontal rule":`Vaakaviiva`,Unlink:`Poista linkki`,Format:`Muotoilu`,Paragraph:`Kappale`,"Heading 1":`Otsikko 1`,"Heading 2":`Otsikko 2`,"Heading 3":`Otsikko 3`,"Heading 4":`Otsikko 4`,"Heading 5":`Otsikko 5`,"Heading 6":`Otsikko 6`,Styles:`Tyylit`,"Insert anchor":`Lisää ankkuri`,Anchor:`Ankkuri`,"Anchor name":`Ankkurin nimi`,"Anchor name is required":`Ankkurin nimi vaaditaan`,"Anchor name cannot contain spaces":`Ankkurin nimi ei voi sisältää välilyöntejä`,Table:`Taulukko`,"Insert table":`Lisää taulukko`,"Insert row before":`Lisää rivi ennen`,"Insert row after":`Lisää rivi jälkeen`,"Delete row":`Poista rivi`,"Insert column before":`Lisää sarake ennen`,"Insert column after":`Lisää sarake jälkeen`,"Delete column":`Poista sarake`,"Merge cells":`Yhdistä solut`,"Split cell":`Jaa solu`,"Toggle header row":`Vaihda otsikkorivi`,"Delete table":`Poista taulukko`},fr:{Bold:`Gras`,Italic:`Italique`,Underline:`Souligné`,Strikethrough:`Barré`,"Bullet list":`Liste à puces`,"Numbered list":`Liste numérotée`,"Decrease indent":`Réduire le retrait`,"Increase indent":`Augmenter le retrait`,Blockquote:`Citation`,"Align left":`Aligner à gauche`,"Align center":`Centrer`,"Align right":`Aligner à droite`,Justify:`Justifier`,"Text color":`Couleur du texte`,"Background color":`Couleur d'arrière-plan`,"Remove formatting":`Supprimer la mise en forme`,Copy:`Copier`,Cut:`Couper`,Paste:`Coller`,Undo:`Annuler`,Redo:`Rétablir`,"Insert image":`Insérer une image`,"Special character":`Caractère spécial`,Emoticons:`Émoticônes`,Fullscreen:`Plein écran`,Preview:`Aperçu`,"Source code":`Code source`,"Insert link":`Insérer un lien`,"Code sample":`Exemple de code`,"Left to right":`De gauche à droite`,"Right to left":`De droite à gauche`,"Find and replace":`Rechercher et remplacer`,Font:`Police`,"Font size":`Taille de police`,"Line height":`Hauteur de ligne`,Templates:`Modèles`,Apply:`Appliquer`,"Enter image URL:":`Entrez l'URL de l'image :`,"Enter URL:":`Entrez l'URL :`,"Edit HTML source:":`Modifier le code source HTML :`,"Find and Replace":`Rechercher et remplacer`,Find:`Rechercher`,Replace:`Remplacer`,"Case sensitive":`Sensible à la casse`,"Whole word":`Mot entier`,Previous:`Précédent`,Next:`Suivant`,"Replace All":`Tout remplacer`,"Search...":`Rechercher...`,"Special Character":`Caractère spécial`,Upload:`Télécharger`,URL:`URL`,"Browse...":`Parcourir...`,"Drop image here or click to browse":`Déposez l'image ici ou cliquez pour parcourir`,"Alt text":`Texte alternatif`,Insert:`Ins�rer`,Cancel:`Annuler`,"Uploading...":`Téléchargement...`,"Upload failed":`Échec du téléchargement`,"Invalid image URL":`URL d'image invalide`,"File too large":`Fichier trop volumineux`,"Invalid file type":`Type de fichier invalide`,More:`Plus`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Reconnaissance vocale`,Dictate:`Dicter`,Start:`D�marrer`,Stop:`Arr�ter`,Clear:`Effacer`,Language:`Langue`,Confidence:`Confiance`,"Listening...":`�coute en cours...`,"Speech to text is not supported in this browser":`La reconnaissance vocale n'est pas prise en charge dans ce navigateur`,"No speech detected":`Aucune parole d�tect�e`,"Microphone access denied":`Acc�s au microphone refus�`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Indice`,Superscript:`Exposant`,"Horizontal rule":`Ligne horizontale`,Unlink:`Supprimer le lien`,Format:`Format`,Paragraph:`Paragraphe`,"Heading 1":`Titre 1`,"Heading 2":`Titre 2`,"Heading 3":`Titre 3`,"Heading 4":`Titre 4`,"Heading 5":`Titre 5`,"Heading 6":`Titre 6`,Styles:`Styles`,"Insert anchor":`Insérer une ancre`,Anchor:`Ancre`,"Anchor name":`Nom de l'ancre`,"Anchor name is required":`Le nom de l'ancre est requis`,"Anchor name cannot contain spaces":`Le nom de l'ancre ne peut pas contenir d'espaces`,Table:`Tableau`,"Insert table":`Insérer un tableau`,"Insert row before":`Insérer une ligne avant`,"Insert row after":`Insérer une ligne après`,"Delete row":`Supprimer la ligne`,"Insert column before":`Insérer une colonne avant`,"Insert column after":`Insérer une colonne après`,"Delete column":`Supprimer la colonne`,"Merge cells":`Fusionner les cellules`,"Split cell":`Diviser la cellule`,"Toggle header row":`Basculer la ligne d'en-tête`,"Delete table":`Supprimer le tableau`},"fr-ca":{Bold:`Gras`,Italic:`Italique`,Underline:`Souligné`,Strikethrough:`Barré`,"Bullet list":`Liste à puces`,"Numbered list":`Liste numérotée`,"Decrease indent":`Réduire le retrait`,"Increase indent":`Augmenter le retrait`,Blockquote:`Citation`,"Align left":`Aligner à gauche`,"Align center":`Centrer`,"Align right":`Aligner à droite`,Justify:`Justifier`,"Text color":`Couleur du texte`,"Background color":`Couleur d'arrière-plan`,"Remove formatting":`Supprimer la mise en forme`,Copy:`Copier`,Cut:`Couper`,Paste:`Coller`,Undo:`Annuler`,Redo:`Rétablir`,"Insert image":`Insérer une image`,"Special character":`Caractère spécial`,Emoticons:`Émoticônes`,Fullscreen:`Plein écran`,Preview:`Aperçu`,"Source code":`Code source`,"Insert link":`Insérer un lien`,"Code sample":`Exemple de code`,"Left to right":`De gauche à droite`,"Right to left":`De droite à gauche`,"Find and replace":`Rechercher et remplacer`,Font:`Police`,"Font size":`Taille de police`,"Line height":`Hauteur de ligne`,Templates:`Modèles`,Apply:`Appliquer`,"Enter image URL:":`Entrez l'URL de l'image :`,"Enter URL:":`Entrez l'URL :`,"Edit HTML source:":`Modifier le code source HTML :`,"Find and Replace":`Rechercher et remplacer`,Find:`Rechercher`,Replace:`Remplacer`,"Case sensitive":`Sensible à la casse`,"Whole word":`Mot entier`,Previous:`Précédent`,Next:`Suivant`,"Replace All":`Tout remplacer`,"Search...":`Rechercher...`,"Special Character":`Caractère spécial`,Upload:`Téléverser`,URL:`URL`,"Browse...":`Parcourir...`,"Drop image here or click to browse":`Déposez l'image ici ou cliquez pour parcourir`,"Alt text":`Texte alternatif`,Insert:`Ins�rer`,Cancel:`Annuler`,"Uploading...":`Téléversement...`,"Upload failed":`Échec du téléversement`,"Invalid image URL":`URL d'image invalide`,"File too large":`Fichier trop volumineux`,"Invalid file type":`Type de fichier invalide`,More:`Plus`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Reconnaissance vocale`,Dictate:`Dicter`,Start:`D�marrer`,Stop:`Arr�ter`,Clear:`Effacer`,Language:`Langue`,Confidence:`Confiance`,"Listening...":`�coute en cours...`,"Speech to text is not supported in this browser":`La reconnaissance vocale n'est pas prise en charge dans ce navigateur`,"No speech detected":`Aucune parole d�tect�e`,"Microphone access denied":`Acc�s au microphone refus�`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Indice`,Superscript:`Exposant`,"Horizontal rule":`Ligne horizontale`,Unlink:`Supprimer le lien`,Format:`Format`,Paragraph:`Paragraphe`,"Heading 1":`Titre 1`,"Heading 2":`Titre 2`,"Heading 3":`Titre 3`,"Heading 4":`Titre 4`,"Heading 5":`Titre 5`,"Heading 6":`Titre 6`,Styles:`Styles`,"Insert anchor":`Insérer une ancre`,Anchor:`Ancre`,"Anchor name":`Nom de l'ancre`,"Anchor name is required":`Le nom de l'ancre est requis`,"Anchor name cannot contain spaces":`Le nom de l'ancre ne peut pas contenir d'espaces`,Table:`Tableau`,"Insert table":`Insérer un tableau`,"Insert row before":`Insérer une ligne avant`,"Insert row after":`Insérer une ligne après`,"Delete row":`Supprimer la ligne`,"Insert column before":`Insérer une colonne avant`,"Insert column after":`Insérer une colonne après`,"Delete column":`Supprimer la colonne`,"Merge cells":`Fusionner les cellules`,"Split cell":`Diviser la cellule`,"Toggle header row":`Basculer la ligne d'en-tête`,"Delete table":`Supprimer le tableau`},de:{Bold:`Fett`,Italic:`Kursiv`,Underline:`Unterstrichen`,Strikethrough:`Durchgestrichen`,"Bullet list":`Aufzählung`,"Numbered list":`Nummerierte Liste`,"Decrease indent":`Einzug verkleinern`,"Increase indent":`Einzug vergrößern`,Blockquote:`Zitat`,"Align left":`Linksbündig`,"Align center":`Zentriert`,"Align right":`Rechtsbündig`,Justify:`Blocksatz`,"Text color":`Textfarbe`,"Background color":`Hintergrundfarbe`,"Remove formatting":`Formatierung entfernen`,Copy:`Kopieren`,Cut:`Ausschneiden`,Paste:`Einfügen`,Undo:`Rückgängig`,Redo:`Wiederherstellen`,"Insert image":`Bild einfügen`,"Special character":`Sonderzeichen`,Emoticons:`Emoticons`,Fullscreen:`Vollbild`,Preview:`Vorschau`,"Source code":`Quellcode`,"Insert link":`Link einfügen`,"Code sample":`Codebeispiel`,"Left to right":`Links nach rechts`,"Right to left":`Rechts nach links`,"Find and replace":`Suchen und ersetzen`,Font:`Schriftart`,"Font size":`Schriftgröße`,"Line height":`Zeilenhöhe`,Templates:`Vorlagen`,Apply:`Anwenden`,"Enter image URL:":`Bild-URL eingeben:`,"Enter URL:":`URL eingeben:`,"Edit HTML source:":`HTML-Quellcode bearbeiten:`,"Find and Replace":`Suchen und Ersetzen`,Find:`Suchen`,Replace:`Ersetzen`,"Case sensitive":`Groß-/Kleinschreibung`,"Whole word":`Ganzes Wort`,Previous:`Zurück`,Next:`Weiter`,"Replace All":`Alle ersetzen`,"Search...":`Suchen...`,"Special Character":`Sonderzeichen`,Upload:`Hochladen`,URL:`URL`,"Browse...":`Durchsuchen...`,"Drop image here or click to browse":`Bild hierher ziehen oder klicken zum Durchsuchen`,"Alt text":`Alternativtext`,Insert:`Einf�gen`,Cancel:`Abbrechen`,"Uploading...":`Wird hochgeladen...`,"Upload failed":`Hochladen fehlgeschlagen`,"Invalid image URL":`Ungültige Bild-URL`,"File too large":`Datei zu groß`,"Invalid file type":`Ungültiger Dateityp`,More:`Mehr`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Sprache zu Text`,Dictate:`Diktieren`,Start:`Starten`,Stop:`Stoppen`,Clear:`L�schen`,Language:`Sprache`,Confidence:`Zuverl�ssigkeit`,"Listening...":`Zuh�ren...`,"Speech to text is not supported in this browser":`Sprache-zu-Text wird in diesem Browser nicht unterst�tzt`,"No speech detected":`Keine Sprache erkannt`,"Microphone access denied":`Mikrofonzugriff verweigert`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Tiefgestellt`,Superscript:`Hochgestellt`,"Horizontal rule":`Horizontale Linie`,Unlink:`Link entfernen`,Format:`Format`,Paragraph:`Absatz`,"Heading 1":`Überschrift 1`,"Heading 2":`Überschrift 2`,"Heading 3":`Überschrift 3`,"Heading 4":`Überschrift 4`,"Heading 5":`Überschrift 5`,"Heading 6":`Überschrift 6`,Styles:`Formatvorlagen`,"Insert anchor":`Anker einfügen`,Anchor:`Anker`,"Anchor name":`Ankername`,"Anchor name is required":`Ankername ist erforderlich`,"Anchor name cannot contain spaces":`Ankername darf keine Leerzeichen enthalten`,Table:`Tabelle`,"Insert table":`Tabelle einfügen`,"Insert row before":`Zeile davor einfügen`,"Insert row after":`Zeile danach einfügen`,"Delete row":`Zeile löschen`,"Insert column before":`Spalte davor einfügen`,"Insert column after":`Spalte danach einfügen`,"Delete column":`Spalte löschen`,"Merge cells":`Zellen verbinden`,"Split cell":`Zelle teilen`,"Toggle header row":`Kopfzeile umschalten`,"Delete table":`Tabelle löschen`},el:{Bold:`Έντονα`,Italic:`Πλάγια`,Underline:`Υπογράμμιση`,Strikethrough:`Διαγράμμιση`,"Bullet list":`Λίστα με κουκκίδες`,"Numbered list":`Αριθμημένη λίστα`,"Decrease indent":`Μείωση εσοχής`,"Increase indent":`Αύξηση εσοχής`,Blockquote:`Παράθεση`,"Align left":`Στοίχιση αριστερά`,"Align center":`Κεντράρισμα`,"Align right":`Στοίχιση δεξιά`,Justify:`Πλήρης στοίχιση`,"Text color":`Χρώμα κειμένου`,"Background color":`Χρώμα φόντου`,"Remove formatting":`Αφαίρεση μορφοποίησης`,Copy:`Αντιγραφή`,Cut:`Αποκοπή`,Paste:`Επικόλληση`,Undo:`Αναίρεση`,Redo:`Επανάληψη`,"Insert image":`Εισαγωγή εικόνας`,"Special character":`Ειδικός χαρακτήρας`,Emoticons:`Εικονίδια συναισθημάτων`,Fullscreen:`Πλήρης οθόνη`,Preview:`Προεπισκόπηση`,"Source code":`Πηγαίος κώδικας`,"Insert link":`Εισαγωγή συνδέσμου`,"Code sample":`Δείγμα κώδικα`,"Left to right":`Αριστερά προς δεξιά`,"Right to left":`Δεξιά προς αριστερά`,"Find and replace":`Εύρεση και αντικατάσταση`,Font:`Γραμματοσειρά`,"Font size":`Μέγεθος γραμματοσειράς`,"Line height":`Ύψος γραμμής`,Templates:`Πρότυπα`,Apply:`Εφαρμογή`,"Enter image URL:":`Εισάγετε URL εικόνας:`,"Enter URL:":`Εισάγετε URL:`,"Edit HTML source:":`Επεξεργασία πηγαίου κώδικα HTML:`,"Find and Replace":`Εύρεση και αντικατάσταση`,Find:`Εύρεση`,Replace:`Αντικατάσταση`,"Case sensitive":`Διάκριση πεζών-κεφαλαίων`,"Whole word":`Ολόκληρη λέξη`,Previous:`Προηγούμενο`,Next:`Επόμενο`,"Replace All":`Αντικατάσταση όλων`,"Search...":`Αναζήτηση...`,"Special Character":`Ειδικός χαρακτήρας`,Upload:`Μεταφόρτωση`,URL:`URL`,"Browse...":`Αναζήτηση...`,"Drop image here or click to browse":`Σύρτε την εικόνα εδώ ή κάντε κλικ για αναζήτηση`,"Alt text":`Εναλλακτικό κείμενο`,Insert:`??sa????`,Cancel:`Ακύρωση`,"Uploading...":`Μεταφόρτωση...`,"Upload failed":`Η μεταφόρτωση απέτυχε`,"Invalid image URL":`Μη έγκυρο URL εικόνας`,"File too large":`Το αρχείο είναι πολύ μεγάλο`,"Invalid file type":`Μη έγκυρος τύπος αρχείου`,More:`Περισσότερα`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`?�???a se ?e?�e??`,Dictate:`Υπαγόρευση`,Start:`??????s?`,Stop:`??a??p?`,Clear:`???a????s?`,Language:`G??ssa`,Confidence:`????p?st?a`,"Listening...":`????e?...`,"Speech to text is not supported in this browser":`? ?�???a se ?e?�e?? de? ?p?st????eta? se a?t?? t?? pe?????t?`,"No speech detected":`?e? a????e????e ?�???a`,"Microphone access denied":`? p??s�as? st? �????f??? ap????f???e`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Δείκτης`,Superscript:`Εκθέτης`,"Horizontal rule":`Οριζόντια γραμμή`,Unlink:`Κατάργηση συνδέσμου`,Format:`Μορφή`,Paragraph:`Παράγραφος`,"Heading 1":`Επικεφαλίδα 1`,"Heading 2":`Επικεφαλίδα 2`,"Heading 3":`Επικεφαλίδα 3`,"Heading 4":`Επικεφαλίδα 4`,"Heading 5":`Επικεφαλίδα 5`,"Heading 6":`Επικεφαλίδα 6`,Styles:`Στυλ`,"Insert anchor":`Εισαγωγή αγκύρωσης`,Anchor:`Αγκύρωση`,"Anchor name":`Όνομα αγκύρωσης`,"Anchor name is required":`Απαιτείται όνομα αγκύρωσης`,"Anchor name cannot contain spaces":`Το όνομα αγκύρωσης δεν μπορεί να περιέχει κενά`,Table:`Πίνακας`,"Insert table":`Εισαγωγή πίνακα`,"Insert row before":`Εισαγωγή γραμμής πριν`,"Insert row after":`Εισαγωγή γραμμής μετά`,"Delete row":`Διαγραφή γραμμής`,"Insert column before":`Εισαγωγή στήλης πριν`,"Insert column after":`Εισαγωγή στήλης μετά`,"Delete column":`Διαγραφή στήλης`,"Merge cells":`Συγχώνευση κελιών`,"Split cell":`Διαίρεση κελιού`,"Toggle header row":`Εναλλαγή γραμμής κεφαλίδας`,"Delete table":`Διαγραφή πίνακα`},hu:{Bold:`Félkövér`,Italic:`Dőlt`,Underline:`Aláhúzott`,Strikethrough:`Áthúzott`,"Bullet list":`Felsorolás`,"Numbered list":`Számozott lista`,"Decrease indent":`Behúzás csökkentése`,"Increase indent":`Behúzás növelése`,Blockquote:`Idézet`,"Align left":`Balra igazítás`,"Align center":`Középre igazítás`,"Align right":`Jobbra igazítás`,Justify:`Sorkizárt`,"Text color":`Szöveg színe`,"Background color":`Háttérszín`,"Remove formatting":`Formázás eltávolítása`,Copy:`Másolás`,Cut:`Kivágás`,Paste:`Beillesztés`,Undo:`Visszavonás`,Redo:`Újra`,"Insert image":`Kép beszúrása`,"Special character":`Speciális karakter`,Emoticons:`Hangulatjelek`,Fullscreen:`Teljes képernyő`,Preview:`Előnézet`,"Source code":`Forráskód`,"Insert link":`Hivatkozás beszúrása`,"Code sample":`Kódminta`,"Left to right":`Balról jobbra`,"Right to left":`Jobbról balra`,"Find and replace":`Keresés és csere`,Font:`Betűtípus`,"Font size":`Betűméret`,"Line height":`Sormagasság`,Templates:`Sablonok`,Apply:`Alkalmaz`,"Enter image URL:":`Adja meg a kép URL-jét:`,"Enter URL:":`Adja meg az URL-t:`,"Edit HTML source:":`HTML forráskód szerkesztése:`,"Find and Replace":`Keresés és csere`,Find:`Keresés`,Replace:`Csere`,"Case sensitive":`Kis- és nagybetű érzékeny`,"Whole word":`Teljes szó`,Previous:`Előző`,Next:`Következő`,"Replace All":`Összes cseréje`,"Search...":`Keresés...`,"Special Character":`Speciális karakter`,Upload:`Feltöltés`,URL:`URL`,"Browse...":`Tallózás...`,"Drop image here or click to browse":`Húzza ide a képet, vagy kattintson a tallózáshoz`,"Alt text":`Alternatív szöveg`,Insert:`Besz�r�s`,Cancel:`Mégse`,"Uploading...":`Feltöltés...`,"Upload failed":`A feltöltés sikertelen`,"Invalid image URL":`Érvénytelen kép URL`,"File too large":`A fájl túl nagy`,"Invalid file type":`Érvénytelen fájltípus`,More:`Több`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Besz�d sz�vegg�`,Dictate:`Diktálás`,Start:`Ind�t�s`,Stop:`Le�ll�t�s`,Clear:`T�rl�s`,Language:`Nyelv`,Confidence:`Megb�zhat�s�g`,"Listening...":`Hallgat�s...`,"Speech to text is not supported in this browser":`A besz�d sz�vegg� alak�t�s nem t�mogatott ebben a b�ng�szoben`,"No speech detected":`Nem �szlelheto besz�d`,"Microphone access denied":`Mikrofon hozz�f�r�s megtagadva`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Alsó index`,Superscript:`Felső index`,"Horizontal rule":`Vízszintes vonal`,Unlink:`Hivatkozás eltávolítása`,Format:`Formátum`,Paragraph:`Bekezdés`,"Heading 1":`Címsor 1`,"Heading 2":`Címsor 2`,"Heading 3":`Címsor 3`,"Heading 4":`Címsor 4`,"Heading 5":`Címsor 5`,"Heading 6":`Címsor 6`,Styles:`Stílusok`,"Insert anchor":`Horgony beszúrása`,Anchor:`Horgony`,"Anchor name":`Horgony neve`,"Anchor name is required":`A horgony neve kötelező`,"Anchor name cannot contain spaces":`A horgony neve nem tartalmazhat szóközöket`,Table:`Táblázat`,"Insert table":`Táblázat beszúrása`,"Insert row before":`Sor beszúrása elé`,"Insert row after":`Sor beszúrása mögé`,"Delete row":`Sor törlése`,"Insert column before":`Oszlop beszúrása elé`,"Insert column after":`Oszlop beszúrása mögé`,"Delete column":`Oszlop törlése`,"Merge cells":`Cellák egyesítése`,"Split cell":`Cella felosztása`,"Toggle header row":`Fejlécsor be-/kikapcsolása`,"Delete table":`Táblázat törlése`},id:{Bold:`Tebal`,Italic:`Miring`,Underline:`Garis bawah`,Strikethrough:`Coret`,"Bullet list":`Daftar berpoin`,"Numbered list":`Daftar bernomor`,"Decrease indent":`Kurangi indentasi`,"Increase indent":`Tambah indentasi`,Blockquote:`Kutipan`,"Align left":`Rata kiri`,"Align center":`Rata tengah`,"Align right":`Rata kanan`,Justify:`Rata kiri-kanan`,"Text color":`Warna teks`,"Background color":`Warna latar belakang`,"Remove formatting":`Hapus pemformatan`,Copy:`Salin`,Cut:`Potong`,Paste:`Tempel`,Undo:`Batalkan`,Redo:`Ulangi`,"Insert image":`Sisipkan gambar`,"Special character":`Karakter khusus`,Emoticons:`Emotikon`,Fullscreen:`Layar penuh`,Preview:`Pratinjau`,"Source code":`Kode sumber`,"Insert link":`Sisipkan tautan`,"Code sample":`Contoh kode`,"Left to right":`Kiri ke kanan`,"Right to left":`Kanan ke kiri`,"Find and replace":`Cari dan ganti`,Font:`Font`,"Font size":`Ukuran font`,"Line height":`Tinggi baris`,Templates:`Templat`,Apply:`Terapkan`,"Enter image URL:":`Masukkan URL gambar:`,"Enter URL:":`Masukkan URL:`,"Edit HTML source:":`Edit kode sumber HTML:`,"Find and Replace":`Cari dan ganti`,Find:`Cari`,Replace:`Ganti`,"Case sensitive":`Peka huruf besar/kecil`,"Whole word":`Kata utuh`,Previous:`Sebelumnya`,Next:`Berikutnya`,"Replace All":`Ganti semua`,"Search...":`Cari...`,"Special Character":`Karakter khusus`,Upload:`Unggah`,URL:`URL`,"Browse...":`Telusuri...`,"Drop image here or click to browse":`Seret gambar ke sini atau klik untuk menelusuri`,"Alt text":`Teks alternatif`,Insert:`Sisipkan`,Cancel:`Batal`,"Uploading...":`Mengunggah...`,"Upload failed":`Gagal mengunggah`,"Invalid image URL":`URL gambar tidak valid`,"File too large":`File terlalu besar`,"Invalid file type":`Jenis file tidak valid`,More:`Lainnya`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Ucapan ke teks`,Dictate:`Dikte`,Start:`Mulai`,Stop:`Berhenti`,Clear:`Hapus`,Language:`Bahasa`,Confidence:`Kepercayaan`,"Listening...":`Mendengarkan...`,"Speech to text is not supported in this browser":`Ucapan ke teks tidak didukung di browser ini`,"No speech detected":`Tidak ada ucapan terdeteksi`,"Microphone access denied":`Akses mikrofon ditolak`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Subskrip`,Superscript:`Superskrip`,"Horizontal rule":`Garis horizontal`,Unlink:`Hapus tautan`,Format:`Format`,Paragraph:`Paragraf`,"Heading 1":`Judul 1`,"Heading 2":`Judul 2`,"Heading 3":`Judul 3`,"Heading 4":`Judul 4`,"Heading 5":`Judul 5`,"Heading 6":`Judul 6`,Styles:`Gaya`,"Insert anchor":`Sisipkan jangkar`,Anchor:`Jangkar`,"Anchor name":`Nama jangkar`,"Anchor name is required":`Nama jangkar wajib diisi`,"Anchor name cannot contain spaces":`Nama jangkar tidak boleh mengandung spasi`,Table:`Tabel`,"Insert table":`Sisipkan tabel`,"Insert row before":`Sisipkan baris sebelum`,"Insert row after":`Sisipkan baris sesudah`,"Delete row":`Hapus baris`,"Insert column before":`Sisipkan kolom sebelum`,"Insert column after":`Sisipkan kolom sesudah`,"Delete column":`Hapus kolom`,"Merge cells":`Gabungkan sel`,"Split cell":`Pisahkan sel`,"Toggle header row":`Alihkan baris header`,"Delete table":`Hapus tabel`},it:{Bold:`Grassetto`,Italic:`Corsivo`,Underline:`Sottolineato`,Strikethrough:`Barrato`,"Bullet list":`Elenco puntato`,"Numbered list":`Elenco numerato`,"Decrease indent":`Riduci rientro`,"Increase indent":`Aumenta rientro`,Blockquote:`Citazione`,"Align left":`Allinea a sinistra`,"Align center":`Centra`,"Align right":`Allinea a destra`,Justify:`Giustifica`,"Text color":`Colore testo`,"Background color":`Colore sfondo`,"Remove formatting":`Rimuovi formattazione`,Copy:`Copia`,Cut:`Taglia`,Paste:`Incolla`,Undo:`Annulla`,Redo:`Ripristina`,"Insert image":`Inserisci immagine`,"Special character":`Carattere speciale`,Emoticons:`Emoticon`,Fullscreen:`Schermo intero`,Preview:`Anteprima`,"Source code":`Codice sorgente`,"Insert link":`Inserisci collegamento`,"Code sample":`Esempio di codice`,"Left to right":`Da sinistra a destra`,"Right to left":`Da destra a sinistra`,"Find and replace":`Trova e sostituisci`,Font:`Carattere`,"Font size":`Dimensione carattere`,"Line height":`Altezza riga`,Templates:`Modelli`,Apply:`Applica`,"Enter image URL:":`Inserisci URL immagine:`,"Enter URL:":`Inserisci URL:`,"Edit HTML source:":`Modifica codice sorgente HTML:`,"Find and Replace":`Trova e sostituisci`,Find:`Trova`,Replace:`Sostituisci`,"Case sensitive":`Maiuscole/minuscole`,"Whole word":`Parola intera`,Previous:`Precedente`,Next:`Successivo`,"Replace All":`Sostituisci tutto`,"Search...":`Cerca...`,"Special Character":`Carattere speciale`,Upload:`Carica`,URL:`URL`,"Browse...":`Sfoglia...`,"Drop image here or click to browse":`Trascina l'immagine qui o fai clic per sfogliare`,"Alt text":`Testo alternativo`,Insert:`Inserisci`,Cancel:`Annulla`,"Uploading...":`Caricamento...`,"Upload failed":`Caricamento fallito`,"Invalid image URL":`URL immagine non valido`,"File too large":`File troppo grande`,"Invalid file type":`Tipo di file non valido`,More:`Altro`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Riconoscimento vocale`,Dictate:`Dettare`,Start:`Avvia`,Stop:`Ferma`,Clear:`Cancella`,Language:`Lingua`,Confidence:`Affidabilit�`,"Listening...":`Ascolto in corso...`,"Speech to text is not supported in this browser":`Il riconoscimento vocale non � supportato in questo browser`,"No speech detected":`Nessun discorso rilevato`,"Microphone access denied":`Accesso al microfono negato`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Pedice`,Superscript:`Apice`,"Horizontal rule":`Linea orizzontale`,Unlink:`Rimuovi collegamento`,Format:`Formato`,Paragraph:`Paragrafo`,"Heading 1":`Titolo 1`,"Heading 2":`Titolo 2`,"Heading 3":`Titolo 3`,"Heading 4":`Titolo 4`,"Heading 5":`Titolo 5`,"Heading 6":`Titolo 6`,Styles:`Stili`,"Insert anchor":`Inserisci ancora`,Anchor:`Ancora`,"Anchor name":`Nome ancora`,"Anchor name is required":`Il nome dell'ancora è obbligatorio`,"Anchor name cannot contain spaces":`Il nome dell'ancora non può contenere spazi`,Table:`Tabella`,"Insert table":`Inserisci tabella`,"Insert row before":`Inserisci riga prima`,"Insert row after":`Inserisci riga dopo`,"Delete row":`Elimina riga`,"Insert column before":`Inserisci colonna prima`,"Insert column after":`Inserisci colonna dopo`,"Delete column":`Elimina colonna`,"Merge cells":`Unisci celle`,"Split cell":`Dividi cella`,"Toggle header row":`Attiva/disattiva riga di intestazione`,"Delete table":`Elimina tabella`},ja:{Bold:`太字`,Italic:`斜体`,Underline:`下線`,Strikethrough:`取り消し線`,"Bullet list":`箇条書き`,"Numbered list":`番号付きリスト`,"Decrease indent":`インデント解除`,"Increase indent":`インデント`,Blockquote:`引用`,"Align left":`左揃え`,"Align center":`中央揃え`,"Align right":`右揃え`,Justify:`両端揃え`,"Text color":`文字色`,"Background color":`背景色`,"Remove formatting":`書式のクリア`,Copy:`コピー`,Cut:`切り取り`,Paste:`貼り付け`,Undo:`元に戻す`,Redo:`やり直し`,"Insert image":`画像の挿入`,"Special character":`特殊文字`,Emoticons:`絵文字`,Fullscreen:`全画面`,Preview:`プレビュー`,"Source code":`ソースコード`,"Insert link":`リンクの挿入`,"Code sample":`コードサンプル`,"Left to right":`左から右`,"Right to left":`右から左`,"Find and replace":`検索と置換`,Font:`フォント`,"Font size":`フォントサイズ`,"Line height":`行の高さ`,Templates:`テンプレート`,Apply:`適用`,"Enter image URL:":`画像のURLを入力:`,"Enter URL:":`URLを入力:`,"Edit HTML source:":`HTMLソースを編集:`,"Find and Replace":`検索と置換`,Find:`検索`,Replace:`置換`,"Case sensitive":`大文字小文字を区別`,"Whole word":`単語全体`,Previous:`前へ`,Next:`次へ`,"Replace All":`すべて置換`,"Search...":`検索...`,"Special Character":`特殊文字`,Upload:`アップロード`,URL:`URL`,"Browse...":`参照...`,"Drop image here or click to browse":`画像をここにドロップするかクリックして参照`,"Alt text":`代替テキスト`,Insert:`??`,Cancel:`キャンセル`,"Uploading...":`アップロード中...`,"Upload failed":`アップロードに失敗しました`,"Invalid image URL":`無効な画像URL`,"File too large":`ファイルが大きすぎます`,"Invalid file type":`無効なファイル形式`,More:`もっと見る`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`????`,Dictate:`音声入力`,Start:`??`,Stop:`??`,Clear:`???`,Language:`??`,Confidence:`???`,"Listening...":`?????...`,"Speech to text is not supported in this browser":`????????????????????????`,"No speech detected":`?????????????`,"Microphone access denied":`?????????????????`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`下付き文字`,Superscript:`上付き文字`,"Horizontal rule":`水平線`,Unlink:`リンクの解除`,Format:`書式`,Paragraph:`段落`,"Heading 1":`見出し 1`,"Heading 2":`見出し 2`,"Heading 3":`見出し 3`,"Heading 4":`見出し 4`,"Heading 5":`見出し 5`,"Heading 6":`見出し 6`,Styles:`スタイル`,"Insert anchor":`アンカーの挿入`,Anchor:`アンカー`,"Anchor name":`アンカー名`,"Anchor name is required":`アンカー名は必須です`,"Anchor name cannot contain spaces":`アンカー名にスペースを含めることはできません`,Table:`テーブル`,"Insert table":`テーブルの挿入`,"Insert row before":`上に行を挿入`,"Insert row after":`下に行を挿入`,"Delete row":`行の削除`,"Insert column before":`左に列を挿入`,"Insert column after":`右に列を挿入`,"Delete column":`列の削除`,"Merge cells":`セルの結合`,"Split cell":`セルの分割`,"Toggle header row":`ヘッダー行の切り替え`,"Delete table":`テーブルの削除`},ko:{Bold:`굵게`,Italic:`기울임꼴`,Underline:`밑줄`,Strikethrough:`취소선`,"Bullet list":`글머리 기호 목록`,"Numbered list":`번호 매기기 목록`,"Decrease indent":`내어쓰기`,"Increase indent":`들여쓰기`,Blockquote:`인용구`,"Align left":`왼쪽 맞춤`,"Align center":`가운데 맞춤`,"Align right":`오른쪽 맞춤`,Justify:`양쪽 맞춤`,"Text color":`글자 색`,"Background color":`배경색`,"Remove formatting":`서식 제거`,Copy:`복사`,Cut:`잘라내기`,Paste:`붙여넣기`,Undo:`실행 취소`,Redo:`다시 실행`,"Insert image":`이미지 삽입`,"Special character":`특수 문자`,Emoticons:`이모티콘`,Fullscreen:`전체 화면`,Preview:`미리보기`,"Source code":`소스 코드`,"Insert link":`링크 삽입`,"Code sample":`코드 샘플`,"Left to right":`왼쪽에서 오른쪽`,"Right to left":`오른쪽에서 왼쪽`,"Find and replace":`찾기 및 바꾸기`,Font:`글꼴`,"Font size":`글꼴 크기`,"Line height":`줄 높이`,Templates:`템플릿`,Apply:`적용`,"Enter image URL:":`이미지 URL 입력:`,"Enter URL:":`URL 입력:`,"Edit HTML source:":`HTML 소스 편집:`,"Find and Replace":`찾기 및 바꾸기`,Find:`찾기`,Replace:`바꾸기`,"Case sensitive":`대/소문자 구분`,"Whole word":`단어 단위`,Previous:`이전`,Next:`다음`,"Replace All":`모두 바꾸기`,"Search...":`검색...`,"Special Character":`특수 문자`,Upload:`업로드`,URL:`URL`,"Browse...":`찾아보기...`,"Drop image here or click to browse":`이미지를 여기에 끌어다 놓거나 클릭하여 찾아보기`,"Alt text":`대체 텍스트`,Insert:`??`,Cancel:`취소`,"Uploading...":`업로드 중...`,"Upload failed":`업로드 실패`,"Invalid image URL":`잘못된 이미지 URL`,"File too large":`파일이 너무 큽니다`,"Invalid file type":`잘못된 파일 형식`,More:`더 보기`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`?? ??`,Dictate:`받아쓰기`,Start:`??`,Stop:`??`,Clear:`???`,Language:`??`,Confidence:`???`,"Listening...":`?? ?...`,"Speech to text is not supported in this browser":`? ??????? ?? ??? ???? ????`,"No speech detected":`??? ???? ?????`,"Microphone access denied":`??? ??? ???????`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`아래 첨자`,Superscript:`위 첨자`,"Horizontal rule":`가로줄`,Unlink:`링크 제거`,Format:`형식`,Paragraph:`단락`,"Heading 1":`제목 1`,"Heading 2":`제목 2`,"Heading 3":`제목 3`,"Heading 4":`제목 4`,"Heading 5":`제목 5`,"Heading 6":`제목 6`,Styles:`스타일`,"Insert anchor":`앵커 삽입`,Anchor:`앵커`,"Anchor name":`앵커 이름`,"Anchor name is required":`앵커 이름은 필수입니다`,"Anchor name cannot contain spaces":`앵커 이름에 공백을 포함할 수 없습니다`,Table:`표`,"Insert table":`표 삽입`,"Insert row before":`위에 행 삽입`,"Insert row after":`아래에 행 삽입`,"Delete row":`행 삭제`,"Insert column before":`왼쪽에 열 삽입`,"Insert column after":`오른쪽에 열 삽입`,"Delete column":`열 삭제`,"Merge cells":`셀 병합`,"Split cell":`셀 분할`,"Toggle header row":`머리글 행 전환`,"Delete table":`표 삭제`},nl:{Bold:`Vet`,Italic:`Cursief`,Underline:`Onderstreept`,Strikethrough:`Doorgehaald`,"Bullet list":`Opsommingslijst`,"Numbered list":`Genummerde lijst`,"Decrease indent":`Inspringing verkleinen`,"Increase indent":`Inspringing vergroten`,Blockquote:`Citaat`,"Align left":`Links uitlijnen`,"Align center":`Centreren`,"Align right":`Rechts uitlijnen`,Justify:`Uitvullen`,"Text color":`Tekstkleur`,"Background color":`Achtergrondkleur`,"Remove formatting":`Opmaak verwijderen`,Copy:`Kopiëren`,Cut:`Knippen`,Paste:`Plakken`,Undo:`Ongedaan maken`,Redo:`Opnieuw`,"Insert image":`Afbeelding invoegen`,"Special character":`Speciaal teken`,Emoticons:`Emoticons`,Fullscreen:`Volledig scherm`,Preview:`Voorbeeld`,"Source code":`Broncode`,"Insert link":`Link invoegen`,"Code sample":`Codevoorbeeld`,"Left to right":`Links naar rechts`,"Right to left":`Rechts naar links`,"Find and replace":`Zoeken en vervangen`,Font:`Lettertype`,"Font size":`Lettergrootte`,"Line height":`Regelhoogte`,Templates:`Sjablonen`,Apply:`Toepassen`,"Enter image URL:":`Voer afbeeldings-URL in:`,"Enter URL:":`Voer URL in:`,"Edit HTML source:":`HTML-bron bewerken:`,"Find and Replace":`Zoeken en vervangen`,Find:`Zoeken`,Replace:`Vervangen`,"Case sensitive":`Hoofdlettergevoelig`,"Whole word":`Heel woord`,Previous:`Vorige`,Next:`Volgende`,"Replace All":`Alles vervangen`,"Search...":`Zoeken...`,"Special Character":`Speciaal teken`,Upload:`Uploaden`,URL:`URL`,"Browse...":`Bladeren...`,"Drop image here or click to browse":`Sleep afbeelding hierheen of klik om te bladeren`,"Alt text":`Alt-tekst`,Insert:`Invoegen`,Cancel:`Annuleren`,"Uploading...":`Uploaden...`,"Upload failed":`Upload mislukt`,"Invalid image URL":`Ongeldige afbeeldings-URL`,"File too large":`Bestand te groot`,"Invalid file type":`Ongeldig bestandstype`,More:`Meer`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Spraak naar tekst`,Dictate:`Dicteren`,Start:`Starten`,Stop:`Stoppen`,Clear:`Wissen`,Language:`Taal`,Confidence:`Betrouwbaarheid`,"Listening...":`Luisteren...`,"Speech to text is not supported in this browser":`Spraak naar tekst wordt niet ondersteund in deze browser`,"No speech detected":`Geen spraak gedetecteerd`,"Microphone access denied":`Toegang tot microfoon geweigerd`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Subscript`,Superscript:`Superscript`,"Horizontal rule":`Horizontale lijn`,Unlink:`Link verwijderen`,Format:`Opmaak`,Paragraph:`Alinea`,"Heading 1":`Kop 1`,"Heading 2":`Kop 2`,"Heading 3":`Kop 3`,"Heading 4":`Kop 4`,"Heading 5":`Kop 5`,"Heading 6":`Kop 6`,Styles:`Stijlen`,"Insert anchor":`Anker invoegen`,Anchor:`Anker`,"Anchor name":`Ankernaam`,"Anchor name is required":`Ankernaam is verplicht`,"Anchor name cannot contain spaces":`Ankernaam mag geen spaties bevatten`,Table:`Tabel`,"Insert table":`Tabel invoegen`,"Insert row before":`Rij ervoor invoegen`,"Insert row after":`Rij erna invoegen`,"Delete row":`Rij verwijderen`,"Insert column before":`Kolom ervoor invoegen`,"Insert column after":`Kolom erna invoegen`,"Delete column":`Kolom verwijderen`,"Merge cells":`Cellen samenvoegen`,"Split cell":`Cel splitsen`,"Toggle header row":`Koprij in-/uitschakelen`,"Delete table":`Tabel verwijderen`},nb:{Bold:`Fet`,Italic:`Kursiv`,Underline:`Understreket`,Strikethrough:`Gjennomstreket`,"Bullet list":`Punktliste`,"Numbered list":`Nummerert liste`,"Decrease indent":`Reduser innrykk`,"Increase indent":`Øk innrykk`,Blockquote:`Blokksitat`,"Align left":`Venstrejuster`,"Align center":`Midtstill`,"Align right":`Høyrejuster`,Justify:`Blokkjuster`,"Text color":`Tekstfarge`,"Background color":`Bakgrunnsfarge`,"Remove formatting":`Fjern formatering`,Copy:`Kopier`,Cut:`Klipp ut`,Paste:`Lim inn`,Undo:`Angre`,Redo:`Gjør om`,"Insert image":`Sett inn bilde`,"Special character":`Spesialtegn`,Emoticons:`Humørifjes`,Fullscreen:`Fullskjerm`,Preview:`Forhåndsvisning`,"Source code":`Kildekode`,"Insert link":`Sett inn lenke`,"Code sample":`Kodeeksempel`,"Left to right":`Venstre mot høyre`,"Right to left":`Høyre mot venstre`,"Find and replace":`Søk og erstatt`,Font:`Skrifttype`,"Font size":`Skriftstørrelse`,"Line height":`Linjehøyde`,Templates:`Maler`,Apply:`Bruk`,"Enter image URL:":`Skriv inn bilde-URL:`,"Enter URL:":`Skriv inn URL:`,"Edit HTML source:":`Rediger HTML-kilde:`,"Find and Replace":`Søk og erstatt`,Find:`Søk`,Replace:`Erstatt`,"Case sensitive":`Skille mellom store/små bokstaver`,"Whole word":`Helt ord`,Previous:`Forrige`,Next:`Neste`,"Replace All":`Erstatt alle`,"Search...":`Søk...`,"Special Character":`Spesialtegn`,Upload:`Last opp`,URL:`URL`,"Browse...":`Bla gjennom...`,"Drop image here or click to browse":`Slipp bildet her eller klikk for å bla gjennom`,"Alt text":`Alternativ tekst`,Insert:`Sett inn`,Cancel:`Avbryt`,"Uploading...":`Laster opp...`,"Upload failed":`Opplasting mislyktes`,"Invalid image URL":`Ugyldig bilde-URL`,"File too large":`Filen er for stor`,"Invalid file type":`Ugyldig filtype`,More:`Mer`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Tale til tekst`,Dictate:`Dikter`,Start:`Start`,Stop:`Stopp`,Clear:`T�m`,Language:`Spr�k`,Confidence:`P�litelighet`,"Listening...":`Lytter...`,"Speech to text is not supported in this browser":`Tale til tekst st�ttes ikke i denne nettleseren`,"No speech detected":`Ingen tale oppdaget`,"Microphone access denied":`Mikrofontilgang nektet`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Senket skrift`,Superscript:`Hevet skrift`,"Horizontal rule":`Horisontal linje`,Unlink:`Fjern lenke`,Format:`Format`,Paragraph:`Avsnitt`,"Heading 1":`Overskrift 1`,"Heading 2":`Overskrift 2`,"Heading 3":`Overskrift 3`,"Heading 4":`Overskrift 4`,"Heading 5":`Overskrift 5`,"Heading 6":`Overskrift 6`,Styles:`Stiler`,"Insert anchor":`Sett inn anker`,Anchor:`Anker`,"Anchor name":`Ankernavn`,"Anchor name is required":`Ankernavn er påkrevd`,"Anchor name cannot contain spaces":`Ankernavn kan ikke inneholde mellomrom`,Table:`Tabell`,"Insert table":`Sett inn tabell`,"Insert row before":`Sett inn rad før`,"Insert row after":`Sett inn rad etter`,"Delete row":`Slett rad`,"Insert column before":`Sett inn kolonne før`,"Insert column after":`Sett inn kolonne etter`,"Delete column":`Slett kolonne`,"Merge cells":`Slå sammen celler`,"Split cell":`Del celle`,"Toggle header row":`Veksle overskriftsrad`,"Delete table":`Slett tabell`},pl:{Bold:`Pogrubienie`,Italic:`Kursywa`,Underline:`Podkreślenie`,Strikethrough:`Przekreślenie`,"Bullet list":`Lista punktowana`,"Numbered list":`Lista numerowana`,"Decrease indent":`Zmniejsz wcięcie`,"Increase indent":`Zwiększ wcięcie`,Blockquote:`Cytat blokowy`,"Align left":`Wyrównaj do lewej`,"Align center":`Wyśrodkuj`,"Align right":`Wyrównaj do prawej`,Justify:`Wyjustuj`,"Text color":`Kolor tekstu`,"Background color":`Kolor tła`,"Remove formatting":`Usuń formatowanie`,Copy:`Kopiuj`,Cut:`Wytnij`,Paste:`Wklej`,Undo:`Cofnij`,Redo:`Ponów`,"Insert image":`Wstaw obraz`,"Special character":`Znak specjalny`,Emoticons:`Emotikony`,Fullscreen:`Pełny ekran`,Preview:`Podgląd`,"Source code":`Kod źródłowy`,"Insert link":`Wstaw odnośnik`,"Code sample":`Przykład kodu`,"Left to right":`Od lewej do prawej`,"Right to left":`Od prawej do lewej`,"Find and replace":`Znajdź i zamień`,Font:`Czcionka`,"Font size":`Rozmiar czcionki`,"Line height":`Wysokość wiersza`,Templates:`Szablony`,Apply:`Zastosuj`,"Enter image URL:":`Wprowadź adres URL obrazu:`,"Enter URL:":`Wprowadź adres URL:`,"Edit HTML source:":`Edytuj źródło HTML:`,"Find and Replace":`Znajdź i zamień`,Find:`Znajdź`,Replace:`Zamień`,"Case sensitive":`Rozróżniaj wielkość liter`,"Whole word":`Całe słowo`,Previous:`Poprzedni`,Next:`Następny`,"Replace All":`Zamień wszystko`,"Search...":`Szukaj...`,"Special Character":`Znak specjalny`,Upload:`Prześlij`,URL:`URL`,"Browse...":`Przeglądaj...`,"Drop image here or click to browse":`Przeciągnij obraz tutaj lub kliknij, aby przeglądać`,"Alt text":`Tekst alternatywny`,Insert:`Wstaw`,Cancel:`Anuluj`,"Uploading...":`Przesyłanie...`,"Upload failed":`Przesyłanie nie powiodło się`,"Invalid image URL":`Nieprawidłowy URL obrazu`,"File too large":`Plik jest za duży`,"Invalid file type":`Nieprawidłowy typ pliku`,More:`Więcej`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Mowa na tekst`,Dictate:`Dyktuj`,Start:`Rozpocznij`,Stop:`Zatrzymaj`,Clear:`Wyczysc`,Language:`Jezyk`,Confidence:`Pewnosc`,"Listening...":`Nasluchiwanie...`,"Speech to text is not supported in this browser":`Mowa na tekst nie jest obslugiwana w tej przegladarce`,"No speech detected":`Nie wykryto mowy`,"Microphone access denied":`Odmowa dostepu do mikrofonu`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Indeks dolny`,Superscript:`Indeks górny`,"Horizontal rule":`Linia pozioma`,Unlink:`Usuń odnośnik`,Format:`Format`,Paragraph:`Akapit`,"Heading 1":`Nagłówek 1`,"Heading 2":`Nagłówek 2`,"Heading 3":`Nagłówek 3`,"Heading 4":`Nagłówek 4`,"Heading 5":`Nagłówek 5`,"Heading 6":`Nagłówek 6`,Styles:`Style`,"Insert anchor":`Wstaw kotwicę`,Anchor:`Kotwica`,"Anchor name":`Nazwa kotwicy`,"Anchor name is required":`Nazwa kotwicy jest wymagana`,"Anchor name cannot contain spaces":`Nazwa kotwicy nie może zawierać spacji`,Table:`Tabela`,"Insert table":`Wstaw tabelę`,"Insert row before":`Wstaw wiersz przed`,"Insert row after":`Wstaw wiersz po`,"Delete row":`Usuń wiersz`,"Insert column before":`Wstaw kolumnę przed`,"Insert column after":`Wstaw kolumnę po`,"Delete column":`Usuń kolumnę`,"Merge cells":`Scal komórki`,"Split cell":`Podziel komórkę`,"Toggle header row":`Przełącz wiersz nagłówka`,"Delete table":`Usuń tabelę`},pt:{Bold:`Negrito`,Italic:`Itálico`,Underline:`Sublinhado`,Strikethrough:`Riscado`,"Bullet list":`Lista com marcadores`,"Numbered list":`Lista numerada`,"Decrease indent":`Diminuir recuo`,"Increase indent":`Aumentar recuo`,Blockquote:`Citação`,"Align left":`Alinhar à esquerda`,"Align center":`Centralizar`,"Align right":`Alinhar à direita`,Justify:`Justificar`,"Text color":`Cor do texto`,"Background color":`Cor de fundo`,"Remove formatting":`Remover formatação`,Copy:`Copiar`,Cut:`Cortar`,Paste:`Colar`,Undo:`Desfazer`,Redo:`Refazer`,"Insert image":`Inserir imagem`,"Special character":`Caractere especial`,Emoticons:`Emoticons`,Fullscreen:`Tela cheia`,Preview:`Pré-visualização`,"Source code":`Código fonte`,"Insert link":`Inserir link`,"Code sample":`Exemplo de código`,"Left to right":`Esquerda para a direita`,"Right to left":`Direita para a esquerda`,"Find and replace":`Localizar e substituir`,Font:`Fonte`,"Font size":`Tamanho da fonte`,"Line height":`Altura da linha`,Templates:`Modelos`,Apply:`Aplicar`,"Enter image URL:":`Insira o URL da imagem:`,"Enter URL:":`Insira o URL:`,"Edit HTML source:":`Editar código fonte HTML:`,"Find and Replace":`Localizar e substituir`,Find:`Localizar`,Replace:`Substituir`,"Case sensitive":`Diferenciar maiúsculas/minúsculas`,"Whole word":`Palavra inteira`,Previous:`Anterior`,Next:`Próximo`,"Replace All":`Substituir tudo`,"Search...":`Pesquisar...`,"Special Character":`Caractere especial`,Upload:`Carregar`,URL:`URL`,"Browse...":`Procurar...`,"Drop image here or click to browse":`Arraste a imagem aqui ou clique para procurar`,"Alt text":`Texto alternativo`,Insert:`Inserir`,Cancel:`Cancelar`,"Uploading...":`Carregando...`,"Upload failed":`Falha no carregamento`,"Invalid image URL":`URL de imagem inválido`,"File too large":`Arquivo muito grande`,"Invalid file type":`Tipo de arquivo inválido`,More:`Mais`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Voz para texto`,Dictate:`Ditar`,Start:`Iniciar`,Stop:`Parar`,Clear:`Limpar`,Language:`Idioma`,Confidence:`Confian�a`,"Listening...":`Ouvindo...`,"Speech to text is not supported in this browser":`Voz para texto n�o � suportado neste navegador`,"No speech detected":`Nenhuma fala detectada`,"Microphone access denied":`Acesso ao microfone negado`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Subscrito`,Superscript:`Sobrescrito`,"Horizontal rule":`Linha horizontal`,Unlink:`Remover link`,Format:`Formato`,Paragraph:`Parágrafo`,"Heading 1":`Título 1`,"Heading 2":`Título 2`,"Heading 3":`Título 3`,"Heading 4":`Título 4`,"Heading 5":`Título 5`,"Heading 6":`Título 6`,Styles:`Estilos`,"Insert anchor":`Inserir âncora`,Anchor:`Âncora`,"Anchor name":`Nome da âncora`,"Anchor name is required":`O nome da âncora é obrigatório`,"Anchor name cannot contain spaces":`O nome da âncora não pode conter espaços`,Table:`Tabela`,"Insert table":`Inserir tabela`,"Insert row before":`Inserir linha antes`,"Insert row after":`Inserir linha depois`,"Delete row":`Excluir linha`,"Insert column before":`Inserir coluna antes`,"Insert column after":`Inserir coluna depois`,"Delete column":`Excluir coluna`,"Merge cells":`Mesclar células`,"Split cell":`Dividir célula`,"Toggle header row":`Alternar linha de cabeçalho`,"Delete table":`Excluir tabela`},ro:{Bold:`Îngroșat`,Italic:`Cursiv`,Underline:`Subliniat`,Strikethrough:`Tăiat`,"Bullet list":`Listă cu marcatori`,"Numbered list":`Listă numerotată`,"Decrease indent":`Micșorare indentare`,"Increase indent":`Mărire indentare`,Blockquote:`Citat`,"Align left":`Aliniere la stânga`,"Align center":`Centrare`,"Align right":`Aliniere la dreapta`,Justify:`Aliniere stânga-dreapta`,"Text color":`Culoare text`,"Background color":`Culoare fundal`,"Remove formatting":`Eliminare formatare`,Copy:`Copiere`,Cut:`Decupare`,Paste:`Lipire`,Undo:`Anulare`,Redo:`Refacere`,"Insert image":`Inserare imagine`,"Special character":`Caracter special`,Emoticons:`Emoticoane`,Fullscreen:`Ecran complet`,Preview:`Previzualizare`,"Source code":`Cod sursă`,"Insert link":`Inserare link`,"Code sample":`Exemplu de cod`,"Left to right":`De la stânga la dreapta`,"Right to left":`De la dreapta la stânga`,"Find and replace":`Căutare și înlocuire`,Font:`Font`,"Font size":`Dimensiune font`,"Line height":`Înălțime linie`,Templates:`Șabloane`,Apply:`Aplicare`,"Enter image URL:":`Introduceți URL-ul imaginii:`,"Enter URL:":`Introduceți URL-ul:`,"Edit HTML source:":`Editare sursă HTML:`,"Find and Replace":`Căutare și înlocuire`,Find:`Căutare`,Replace:`Înlocuire`,"Case sensitive":`Sensibil la majuscule`,"Whole word":`Cuvânt întreg`,Previous:`Anterior`,Next:`Următor`,"Replace All":`Înlocuire totală`,"Search...":`Căutare...`,"Special Character":`Caracter special`,Upload:`Încarcă`,URL:`URL`,"Browse...":`Răsfoiește...`,"Drop image here or click to browse":`Trage imaginea aici sau dă clic pentru a răsfoi`,"Alt text":`Text alternativ`,Insert:`Inserare`,Cancel:`Anulează`,"Uploading...":`Se încarcă...`,"Upload failed":`Încarcare eșuată`,"Invalid image URL":`URL imagine invalid`,"File too large":`Fișierul este prea mare`,"Invalid file type":`Tip de fișier invalid`,More:`Mai mult`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Voce �n text`,Dictate:`Dictare`,Start:`Pornire`,Stop:`Oprire`,Clear:`?tergere`,Language:`Limba`,Confidence:`�ncredere`,"Listening...":`Ascultare...`,"Speech to text is not supported in this browser":`Voce �n text nu este acceptata �n acest browser`,"No speech detected":`Nu a fost detectata nicio voce`,"Microphone access denied":`Accesul la microfon a fost refuzat`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Indice`,Superscript:`Exponent`,"Horizontal rule":`Linie orizontală`,Unlink:`Eliminare link`,Format:`Format`,Paragraph:`Paragraf`,"Heading 1":`Titlu 1`,"Heading 2":`Titlu 2`,"Heading 3":`Titlu 3`,"Heading 4":`Titlu 4`,"Heading 5":`Titlu 5`,"Heading 6":`Titlu 6`,Styles:`Stiluri`,"Insert anchor":`Inserare ancoră`,Anchor:`Ancoră`,"Anchor name":`Nume ancoră`,"Anchor name is required":`Numele ancorei este obligatoriu`,"Anchor name cannot contain spaces":`Numele ancorei nu poate conține spații`,Table:`Tabel`,"Insert table":`Inserare tabel`,"Insert row before":`Inserare rând înainte`,"Insert row after":`Inserare rând după`,"Delete row":`Ștergere rând`,"Insert column before":`Inserare coloană înainte`,"Insert column after":`Inserare coloană după`,"Delete column":`Ștergere coloană`,"Merge cells":`Îmbinare celule`,"Split cell":`Divizare celulă`,"Toggle header row":`Comutare rând antet`,"Delete table":`Ștergere tabel`},ru:{Bold:`Полужирный`,Italic:`Курсив`,Underline:`Подчёркнутый`,Strikethrough:`Зачёркнутый`,"Bullet list":`Маркированный список`,"Numbered list":`Нумерованный список`,"Decrease indent":`Уменьшить отступ`,"Increase indent":`Увеличить отступ`,Blockquote:`Цитата`,"Align left":`По левому краю`,"Align center":`По центру`,"Align right":`По правому краю`,Justify:`По ширине`,"Text color":`Цвет текста`,"Background color":`Цвет фона`,"Remove formatting":`Очистить форматирование`,Copy:`Копировать`,Cut:`Вырезать`,Paste:`Вставить`,Undo:`Отменить`,Redo:`Повторить`,"Insert image":`Вставить изображение`,"Special character":`Специальный символ`,Emoticons:`Смайлики`,Fullscreen:`Полный экран`,Preview:`Предварительный просмотр`,"Source code":`Исходный код`,"Insert link":`Вставить ссылку`,"Code sample":`Пример кода`,"Left to right":`Слева направо`,"Right to left":`Справа налево`,"Find and replace":`Найти и заменить`,Font:`Шрифт`,"Font size":`Размер шрифта`,"Line height":`Высота строки`,Templates:`Шаблоны`,Apply:`Применить`,"Enter image URL:":`Введите URL изображения:`,"Enter URL:":`Введите URL:`,"Edit HTML source:":`Редактировать HTML-код:`,"Find and Replace":`Найти и заменить`,Find:`Найти`,Replace:`Заменить`,"Case sensitive":`С учётом регистра`,"Whole word":`Слово целиком`,Previous:`Предыдущий`,Next:`Следующий`,"Replace All":`Заменить все`,"Search...":`Поиск...`,"Special Character":`Специальный символ`,Upload:`Загрузить`,URL:`URL`,"Browse...":`Обзор...`,"Drop image here or click to browse":`Перетащите изображение сюда или нажмите для обзора`,"Alt text":`Альтернативный текст`,Insert:`????????`,Cancel:`Отмена`,"Uploading...":`Загрузка...`,"Upload failed":`Ошибка загрузки`,"Invalid image URL":`Недопустимый URL изображения`,"File too large":`Файл слишком большой`,"Invalid file type":`Недопустимый тип файла`,More:`Ещё`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`????? ? ?????`,Dictate:`Диктовать`,Start:`??????`,Stop:`??????????`,Clear:`????????`,Language:`????`,Confidence:`????????`,"Listening...":`??????...`,"Speech to text is not supported in this browser":`????????? ???? ?? ?????????????? ? ???? ????????`,"No speech detected":`???? ?? ??????????`,"Microphone access denied":`?????? ? ????????? ????????`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Подстрочный`,Superscript:`Надстрочный`,"Horizontal rule":`Горизонтальная линия`,Unlink:`Удалить ссылку`,Format:`Формат`,Paragraph:`Абзац`,"Heading 1":`Заголовок 1`,"Heading 2":`Заголовок 2`,"Heading 3":`Заголовок 3`,"Heading 4":`Заголовок 4`,"Heading 5":`Заголовок 5`,"Heading 6":`Заголовок 6`,Styles:`Стили`,"Insert anchor":`Вставить якорь`,Anchor:`Якорь`,"Anchor name":`Имя якоря`,"Anchor name is required":`Требуется имя якоря`,"Anchor name cannot contain spaces":`Имя якоря не может содержать пробелы`,Table:`Таблица`,"Insert table":`Вставить таблицу`,"Insert row before":`Вставить строку выше`,"Insert row after":`Вставить строку ниже`,"Delete row":`Удалить строку`,"Insert column before":`Вставить столбец слева`,"Insert column after":`Вставить столбец справа`,"Delete column":`Удалить столбец`,"Merge cells":`Объединить ячейки`,"Split cell":`Разделить ячейку`,"Toggle header row":`Переключить строку заголовка`,"Delete table":`Удалить таблицу`},sr:{Bold:`Подебљано`,Italic:`Курзив`,Underline:`Подвучено`,Strikethrough:`Прецртано`,"Bullet list":`Листа са знаковима`,"Numbered list":`Нумерисана листа`,"Decrease indent":`Смањи увлачење`,"Increase indent":`Повећај увлачење`,Blockquote:`Цитат`,"Align left":`Поравнај лево`,"Align center":`Центрирај`,"Align right":`Поравнај десно`,Justify:`Обострано поравнање`,"Text color":`Боја текста`,"Background color":`Боја позадине`,"Remove formatting":`Уклони форматирање`,Copy:`Копирај`,Cut:`Исеци`,Paste:`Налепи`,Undo:`Опозови`,Redo:`Понови`,"Insert image":`Уметни слику`,"Special character":`Специјални знак`,Emoticons:`Емотикони`,Fullscreen:`Цео екран`,Preview:`Преглед`,"Source code":`Изворни код`,"Insert link":`Уметни везу`,"Code sample":`Пример кода`,"Left to right":`Слева надесно`,"Right to left":`Здесна налево`,"Find and replace":`Пронађи и замени`,Font:`Фонт`,"Font size":`Величина фонта`,"Line height":`Висина реда`,Templates:`Шаблони`,Apply:`Примени`,"Enter image URL:":`Унесите URL слике:`,"Enter URL:":`Унесите URL:`,"Edit HTML source:":`Уреди HTML извор:`,"Find and Replace":`Пронађи и замени`,Find:`Пронађи`,Replace:`Замени`,"Case sensitive":`Разликуј велика/мала слова`,"Whole word":`Цела реч`,Previous:`Претходно`,Next:`Следеће`,"Replace All":`Замени све`,"Search...":`Претрага...`,"Special Character":`Специјални знак`,Upload:`Отпреми`,URL:`URL`,"Browse...":`Претражи...`,"Drop image here or click to browse":`Превуците слику овде или кликните за претрагу`,"Alt text":`Алтернативни текст`,Insert:`?????`,Cancel:`Откажи`,"Uploading...":`Отпремање...`,"Upload failed":`Отпремање није успело`,"Invalid image URL":`Неважећи URL слике`,"File too large":`Датотека је превелика`,"Invalid file type":`Неважећи тип датотеке`,More:`Још`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`????? ? ?????`,Dictate:`Диктирање`,Start:`???????`,Stop:`????????`,Clear:`??????`,Language:`?????`,Confidence:`??????????`,"Listening...":`??????...`,"Speech to text is not supported in this browser":`????? ? ????? ???? ??????? ? ???? ??????????`,"No speech detected":`????? ???? ????????`,"Microphone access denied":`??????? ????????? ???????`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Индекс`,Superscript:`Експонент`,"Horizontal rule":`Хоризонтална линија`,Unlink:`Уклони везу`,Format:`Формат`,Paragraph:`Пасус`,"Heading 1":`Наслов 1`,"Heading 2":`Наслов 2`,"Heading 3":`Наслов 3`,"Heading 4":`Наслов 4`,"Heading 5":`Наслов 5`,"Heading 6":`Наслов 6`,Styles:`Стилови`,"Insert anchor":`Уметни сидро`,Anchor:`Сидро`,"Anchor name":`Назив сидра`,"Anchor name is required":`Назив сидра је обавезан`,"Anchor name cannot contain spaces":`Назив сидра не може садржати размаке`,Table:`Табела`,"Insert table":`Уметни табелу`,"Insert row before":`Уметни ред изнад`,"Insert row after":`Уметни ред испод`,"Delete row":`Обриши ред`,"Insert column before":`Уметни колону лево`,"Insert column after":`Уметни колону десно`,"Delete column":`Обриши колону`,"Merge cells":`Споји ћелије`,"Split cell":`Подели ћелију`,"Toggle header row":`Укључи/искључи ред заглавља`,"Delete table":`Обриши табелу`},sl:{Bold:`Krepko`,Italic:`Ležeče`,Underline:`Podčrtano`,Strikethrough:`Prečrtano`,"Bullet list":`Seznam z oznakami`,"Numbered list":`Oštevilčen seznam`,"Decrease indent":`Zmanjšaj zamik`,"Increase indent":`Povečaj zamik`,Blockquote:`Citat`,"Align left":`Poravnaj levo`,"Align center":`Sredinska poravnava`,"Align right":`Poravnaj desno`,Justify:`Obojestranska poravnava`,"Text color":`Barva besedila`,"Background color":`Barva ozadja`,"Remove formatting":`Odstrani oblikovanje`,Copy:`Kopiraj`,Cut:`Izreži`,Paste:`Prilepi`,Undo:`Razveljavi`,Redo:`Uveljavi`,"Insert image":`Vstavi sliko`,"Special character":`Posebni znak`,Emoticons:`Emotikoni`,Fullscreen:`Celoten zaslon`,Preview:`Predogled`,"Source code":`Izvorna koda`,"Insert link":`Vstavi povezavo`,"Code sample":`Primer kode`,"Left to right":`Od leve proti desni`,"Right to left":`Od desne proti levi`,"Find and replace":`Najdi in zamenjaj`,Font:`Pisava`,"Font size":`Velikost pisave`,"Line height":`Višina vrstice`,Templates:`Predloge`,Apply:`Uporabi`,"Enter image URL:":`Vnesite URL slike:`,"Enter URL:":`Vnesite URL:`,"Edit HTML source:":`Uredi HTML izvorno kodo:`,"Find and Replace":`Najdi in zamenjaj`,Find:`Najdi`,Replace:`Zamenjaj`,"Case sensitive":`Razlikuj velike/male črke`,"Whole word":`Cela beseda`,Previous:`Prejšnji`,Next:`Naslednji`,"Replace All":`Zamenjaj vse`,"Search...":`Iskanje...`,"Special Character":`Posebni znak`,Upload:`Naloži`,URL:`URL`,"Browse...":`Prebrskaj...`,"Drop image here or click to browse":`Povlecite sliko sem ali kliknite za brskanje`,"Alt text":`Nadomestno besedilo`,Insert:`Vstavi`,Cancel:`Prekliči`,"Uploading...":`Nalaganje...`,"Upload failed":`Nalaganje ni uspelo`,"Invalid image URL":`Neveljaven URL slike`,"File too large":`Datoteka je prevelika`,"Invalid file type":`Neveljavna vrsta datoteke`,More:`Več`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Govor v besedilo`,Dictate:`Narekovanje`,Start:`Zacni`,Stop:`Ustavi`,Clear:`Pocisti`,Language:`Jezik`,Confidence:`Zaupanje`,"Listening...":`Poslu�am...`,"Speech to text is not supported in this browser":`Govor v besedilo ni podprt v tem brskalniku`,"No speech detected":`Govor ni bil zaznan`,"Microphone access denied":`Dostop do mikrofona zavrnjen`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Podpisano`,Superscript:`Nadpisano`,"Horizontal rule":`Vodoravna črta`,Unlink:`Odstrani povezavo`,Format:`Oblika`,Paragraph:`Odstavek`,"Heading 1":`Naslov 1`,"Heading 2":`Naslov 2`,"Heading 3":`Naslov 3`,"Heading 4":`Naslov 4`,"Heading 5":`Naslov 5`,"Heading 6":`Naslov 6`,Styles:`Slogi`,"Insert anchor":`Vstavi sidro`,Anchor:`Sidro`,"Anchor name":`Ime sidra`,"Anchor name is required":`Ime sidra je obvezno`,"Anchor name cannot contain spaces":`Ime sidra ne sme vsebovati presledkov`,Table:`Tabela`,"Insert table":`Vstavi tabelo`,"Insert row before":`Vstavi vrstico pred`,"Insert row after":`Vstavi vrstico za`,"Delete row":`Izbriši vrstico`,"Insert column before":`Vstavi stolpec pred`,"Insert column after":`Vstavi stolpec za`,"Delete column":`Izbriši stolpec`,"Merge cells":`Združi celice`,"Split cell":`Razdeli celico`,"Toggle header row":`Preklopi vrstico glave`,"Delete table":`Izbriši tabelo`},es:{Bold:`Negrita`,Italic:`Cursiva`,Underline:`Subrayado`,Strikethrough:`Tachado`,"Bullet list":`Lista con viñetas`,"Numbered list":`Lista numerada`,"Decrease indent":`Disminuir sangría`,"Increase indent":`Aumentar sangría`,Blockquote:`Cita`,"Align left":`Alinear a la izquierda`,"Align center":`Centrar`,"Align right":`Alinear a la derecha`,Justify:`Justificar`,"Text color":`Color del texto`,"Background color":`Color de fondo`,"Remove formatting":`Quitar formato`,Copy:`Copiar`,Cut:`Cortar`,Paste:`Pegar`,Undo:`Deshacer`,Redo:`Rehacer`,"Insert image":`Insertar imagen`,"Special character":`Carácter especial`,Emoticons:`Emoticonos`,Fullscreen:`Pantalla completa`,Preview:`Vista previa`,"Source code":`Código fuente`,"Insert link":`Insertar enlace`,"Code sample":`Ejemplo de código`,"Left to right":`De izquierda a derecha`,"Right to left":`De derecha a izquierda`,"Find and replace":`Buscar y reemplazar`,Font:`Fuente`,"Font size":`Tamaño de fuente`,"Line height":`Altura de línea`,Templates:`Plantillas`,Apply:`Aplicar`,"Enter image URL:":`Introduzca la URL de la imagen:`,"Enter URL:":`Introduzca la URL:`,"Edit HTML source:":`Editar código fuente HTML:`,"Find and Replace":`Buscar y reemplazar`,Find:`Buscar`,Replace:`Reemplazar`,"Case sensitive":`Distinguir mayúsculas/minúsculas`,"Whole word":`Palabra completa`,Previous:`Anterior`,Next:`Siguiente`,"Replace All":`Reemplazar todo`,"Search...":`Buscar...`,"Special Character":`Carácter especial`,Upload:`Subir`,URL:`URL`,"Browse...":`Examinar...`,"Drop image here or click to browse":`Arrastra la imagen aquí o haz clic para examinar`,"Alt text":`Texto alternativo`,Insert:`Insertar`,Cancel:`Cancelar`,"Uploading...":`Subiendo...`,"Upload failed":`Error al subir`,"Invalid image URL":`URL de imagen no válida`,"File too large":`Archivo demasiado grande`,"Invalid file type":`Tipo de archivo no válido`,More:`Más`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Voz a texto`,Dictate:`Dictar`,Start:`Iniciar`,Stop:`Detener`,Clear:`Borrar`,Language:`Idioma`,Confidence:`Confianza`,"Listening...":`Escuchando...`,"Speech to text is not supported in this browser":`La voz a texto no es compatible con este navegador`,"No speech detected":`No se detect� voz`,"Microphone access denied":`Acceso al micr�fono denegado`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Subíndice`,Superscript:`Superíndice`,"Horizontal rule":`Línea horizontal`,Unlink:`Quitar enlace`,Format:`Formato`,Paragraph:`Párrafo`,"Heading 1":`Encabezado 1`,"Heading 2":`Encabezado 2`,"Heading 3":`Encabezado 3`,"Heading 4":`Encabezado 4`,"Heading 5":`Encabezado 5`,"Heading 6":`Encabezado 6`,Styles:`Estilos`,"Insert anchor":`Insertar ancla`,Anchor:`Ancla`,"Anchor name":`Nombre del ancla`,"Anchor name is required":`El nombre del ancla es obligatorio`,"Anchor name cannot contain spaces":`El nombre del ancla no puede contener espacios`,Table:`Tabla`,"Insert table":`Insertar tabla`,"Insert row before":`Insertar fila antes`,"Insert row after":`Insertar fila después`,"Delete row":`Eliminar fila`,"Insert column before":`Insertar columna antes`,"Insert column after":`Insertar columna después`,"Delete column":`Eliminar columna`,"Merge cells":`Combinar celdas`,"Split cell":`Dividir celda`,"Toggle header row":`Alternar fila de encabezado`,"Delete table":`Eliminar tabla`},sv:{Bold:`Fet`,Italic:`Kursiv`,Underline:`Understruken`,Strikethrough:`Genomstruken`,"Bullet list":`Punktlista`,"Numbered list":`Numrerad lista`,"Decrease indent":`Minska indrag`,"Increase indent":`Öka indrag`,Blockquote:`Blockcitat`,"Align left":`Vänsterjustera`,"Align center":`Centrera`,"Align right":`Högerjustera`,Justify:`Marginaljustera`,"Text color":`Textfärg`,"Background color":`Bakgrundsfärg`,"Remove formatting":`Ta bort formatering`,Copy:`Kopiera`,Cut:`Klipp ut`,Paste:`Klistra in`,Undo:`Ångra`,Redo:`Gör om`,"Insert image":`Infoga bild`,"Special character":`Specialtecken`,Emoticons:`Emotikoner`,Fullscreen:`Helskärm`,Preview:`Förhandsgranska`,"Source code":`Källkod`,"Insert link":`Infoga länk`,"Code sample":`Kodexempel`,"Left to right":`Vänster till höger`,"Right to left":`Höger till vänster`,"Find and replace":`Sök och ersätt`,Font:`Teckensnitt`,"Font size":`Teckenstorlek`,"Line height":`Radhöjd`,Templates:`Mallar`,Apply:`Tillämpa`,"Enter image URL:":`Ange bild-URL:`,"Enter URL:":`Ange URL:`,"Edit HTML source:":`Redigera HTML-källa:`,"Find and Replace":`Sök och ersätt`,Find:`Sök`,Replace:`Ersätt`,"Case sensitive":`Skiftlägeskänslig`,"Whole word":`Helt ord`,Previous:`Föregående`,Next:`Nästa`,"Replace All":`Ersätt alla`,"Search...":`Sök...`,"Special Character":`Specialtecken`,Upload:`Ladda upp`,URL:`URL`,"Browse...":`Bläddra...`,"Drop image here or click to browse":`Dra bilden hit eller klicka för att bläddra`,"Alt text":`Alternativtext`,Insert:`Infoga`,Cancel:`Avbryt`,"Uploading...":`Laddar upp...`,"Upload failed":`Uppladdning misslyckades`,"Invalid image URL":`Ogiltig bild-URL`,"File too large":`Filen är för stor`,"Invalid file type":`Ogiltig filtyp`,More:`Mer`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Tal till text`,Dictate:`Diktera`,Start:`Starta`,Stop:`Stoppa`,Clear:`Rensa`,Language:`Spr�k`,Confidence:`Tillf�rlitlighet`,"Listening...":`Lyssnar...`,"Speech to text is not supported in this browser":`Tal till text st�ds inte i denna webbl�sare`,"No speech detected":`Inget tal detekterat`,"Microphone access denied":`Mikrofon�tkomst nekad`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Nedsänkt`,Superscript:`Upphöjd`,"Horizontal rule":`Vågrät linje`,Unlink:`Ta bort länk`,Format:`Format`,Paragraph:`Stycke`,"Heading 1":`Rubrik 1`,"Heading 2":`Rubrik 2`,"Heading 3":`Rubrik 3`,"Heading 4":`Rubrik 4`,"Heading 5":`Rubrik 5`,"Heading 6":`Rubrik 6`,Styles:`Stilar`,"Insert anchor":`Infoga ankare`,Anchor:`Ankare`,"Anchor name":`Ankarnamn`,"Anchor name is required":`Ankarnamn krävs`,"Anchor name cannot contain spaces":`Ankarnamn får inte innehålla mellanslag`,Table:`Tabell`,"Insert table":`Infoga tabell`,"Insert row before":`Infoga rad före`,"Insert row after":`Infoga rad efter`,"Delete row":`Ta bort rad`,"Insert column before":`Infoga kolumn före`,"Insert column after":`Infoga kolumn efter`,"Delete column":`Ta bort kolumn`,"Merge cells":`Slå samman celler`,"Split cell":`Dela cell`,"Toggle header row":`Växla rubrikrad`,"Delete table":`Ta bort tabell`},"zh-tw":{Bold:`粗體`,Italic:`斜體`,Underline:`底線`,Strikethrough:`刪除線`,"Bullet list":`項目符號清單`,"Numbered list":`編號清單`,"Decrease indent":`減少縮排`,"Increase indent":`增加縮排`,Blockquote:`引用`,"Align left":`靠左對齊`,"Align center":`置中對齊`,"Align right":`靠右對齊`,Justify:`左右對齊`,"Text color":`文字顏色`,"Background color":`背景顏色`,"Remove formatting":`清除格式`,Copy:`複製`,Cut:`剪下`,Paste:`貼上`,Undo:`復原`,Redo:`重做`,"Insert image":`插入圖片`,"Special character":`特殊字元`,Emoticons:`表情符號`,Fullscreen:`全螢幕`,Preview:`預覽`,"Source code":`原始碼`,"Insert link":`插入連結`,"Code sample":`程式碼範例`,"Left to right":`由左至右`,"Right to left":`由右至左`,"Find and replace":`尋找與取代`,Font:`字型`,"Font size":`字型大小`,"Line height":`行高`,Templates:`範本`,Apply:`套用`,"Enter image URL:":`輸入圖片網址:`,"Enter URL:":`輸入網址:`,"Edit HTML source:":`編輯HTML原始碼:`,"Find and Replace":`尋找與取代`,Find:`尋找`,Replace:`取代`,"Case sensitive":`區分大小寫`,"Whole word":`全字拼寫`,Previous:`上一個`,Next:`下一個`,"Replace All":`全部取代`,"Search...":`搜尋...`,"Special Character":`特殊字元`,Upload:`上傳`,URL:`URL`,"Browse...":`瀏覽...`,"Drop image here or click to browse":`將圖片拖放至此處或點擊瀏覽`,"Alt text":`替代文字`,Insert:`??`,Cancel:`取消`,"Uploading...":`上傳中...`,"Upload failed":`上傳失敗`,"Invalid image URL":`無效的圖片 URL`,"File too large":`檔案過大`,"Invalid file type":`無效的檔案類型`,More:`更多`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`?????`,Dictate:`聽寫`,Start:`??`,Stop:`??`,Clear:`??`,Language:`??`,Confidence:`???`,"Listening...":`????...`,"Speech to text is not supported in this browser":`????????????`,"No speech detected":`??????`,"Microphone access denied":`????????`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`下標`,Superscript:`上標`,"Horizontal rule":`水平線`,Unlink:`移除連結`,Format:`格式`,Paragraph:`段落`,"Heading 1":`標題 1`,"Heading 2":`標題 2`,"Heading 3":`標題 3`,"Heading 4":`標題 4`,"Heading 5":`標題 5`,"Heading 6":`標題 6`,Styles:`樣式`,"Insert anchor":`插入錨點`,Anchor:`錨點`,"Anchor name":`錨點名稱`,"Anchor name is required":`錨點名稱為必填`,"Anchor name cannot contain spaces":`錨點名稱不能包含空格`,Table:`表格`,"Insert table":`插入表格`,"Insert row before":`在上方插入列`,"Insert row after":`在下方插入列`,"Delete row":`刪除列`,"Insert column before":`在左側插入欄`,"Insert column after":`在右側插入欄`,"Delete column":`刪除欄`,"Merge cells":`合併儲存格`,"Split cell":`分割儲存格`,"Toggle header row":`切換標題列`,"Delete table":`刪除表格`},th:{Bold:`ตัวหนา`,Italic:`ตัวเอียง`,Underline:`ขีดเส้นใต้`,Strikethrough:`ขีดฆ่า`,"Bullet list":`รายการสัญลักษณ์`,"Numbered list":`รายการลำดับเลข`,"Decrease indent":`ลดการเยื้อง`,"Increase indent":`เพิ่มการเยื้อง`,Blockquote:`บล็อกอ้างอิง`,"Align left":`จัดชิดซ้าย`,"Align center":`จัดกึ่งกลาง`,"Align right":`จัดชิดขวา`,Justify:`จัดเต็มบรรทัด`,"Text color":`สีตัวอักษร`,"Background color":`สีพื้นหลัง`,"Remove formatting":`ล้างการจัดรูปแบบ`,Copy:`คัดลอก`,Cut:`ตัด`,Paste:`วาง`,Undo:`เลิกทำ`,Redo:`ทำซ้ำ`,"Insert image":`แทรกรูปภาพ`,"Special character":`อักขระพิเศษ`,Emoticons:`อิโมติคอน`,Fullscreen:`เต็มจอ`,Preview:`ดูตัวอย่าง`,"Source code":`ซอร์สโค้ด`,"Insert link":`แทรกลิงก์`,"Code sample":`ตัวอย่างโค้ด`,"Left to right":`ซ้ายไปขวา`,"Right to left":`ขวาไปซ้าย`,"Find and replace":`ค้นหาและแทนที่`,Font:`แบบอักษร`,"Font size":`ขนาดอักษร`,"Line height":`ความสูงบรรทัด`,Templates:`เทมเพลต`,Apply:`นำไปใช้`,"Enter image URL:":`ป้อน URL รูปภาพ:`,"Enter URL:":`ป้อน URL:`,"Edit HTML source:":`แก้ไขซอร์สโค้ด HTML:`,"Find and Replace":`ค้นหาและแทนที่`,Find:`ค้นหา`,Replace:`แทนที่`,"Case sensitive":`ตรงตามตัวพิมพ์`,"Whole word":`ทั้งคำ`,Previous:`ก่อนหน้า`,Next:`ถัดไป`,"Replace All":`แทนที่ทั้งหมด`,"Search...":`ค้นหา...`,"Special Character":`อักขระพิเศษ`,Upload:`อัปโหลด`,URL:`URL`,"Browse...":`เรียกดู...`,"Drop image here or click to browse":`ลากรูปภาพมาที่นี่หรือคลิกเพื่อเรียกดู`,"Alt text":`ข้อความทดแทน`,Insert:`????`,Cancel:`ยกเลิก`,"Uploading...":`กำลังอัปโหลด...`,"Upload failed":`อัปโหลดล้มเหลว`,"Invalid image URL":`URL รูปภาพไม่ถูกต้อง`,"File too large":`ไฟล์ใหญ่เกินไป`,"Invalid file type":`ประเภทไฟล์ไม่ถูกต้อง`,More:`เพิ่มเติม`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`????????????????`,Dictate:`เขียนตามคำบอก`,Start:`?????`,Stop:`????`,Clear:`????`,Language:`????`,Confidence:`?????????????`,"Listening...":`????????...`,"Speech to text is not supported in this browser":`?????????????????????????????????????????`,"No speech detected":`?????????????`,"Microphone access denied":`???????????????????????????`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`ตัวห้อย`,Superscript:`ตัวยก`,"Horizontal rule":`เส้นแนวนอน`,Unlink:`ลบลิงก์`,Format:`รูปแบบ`,Paragraph:`ย่อหน้า`,"Heading 1":`หัวข้อ 1`,"Heading 2":`หัวข้อ 2`,"Heading 3":`หัวข้อ 3`,"Heading 4":`หัวข้อ 4`,"Heading 5":`หัวข้อ 5`,"Heading 6":`หัวข้อ 6`,Styles:`สไตล์`,"Insert anchor":`แทรกจุดยึด`,Anchor:`จุดยึด`,"Anchor name":`ชื่อจุดยึด`,"Anchor name is required":`ต้องระบุชื่อจุดยึด`,"Anchor name cannot contain spaces":`ชื่อจุดยึดต้องไม่มีช่องว่าง`,Table:`ตาราง`,"Insert table":`แทรกตาราง`,"Insert row before":`แทรกแถวก่อนหน้า`,"Insert row after":`แทรกแถวถัดไป`,"Delete row":`ลบแถว`,"Insert column before":`แทรกคอลัมน์ก่อนหน้า`,"Insert column after":`แทรกคอลัมน์ถัดไป`,"Delete column":`ลบคอลัมน์`,"Merge cells":`ผสานเซลล์`,"Split cell":`แยกเซลล์`,"Toggle header row":`สลับแถวส่วนหัว`,"Delete table":`ลบตาราง`},tr:{Bold:`Kalın`,Italic:`İtalik`,Underline:`Altı çizili`,Strikethrough:`Üstü çizili`,"Bullet list":`Madde işaretli liste`,"Numbered list":`Numaralı liste`,"Decrease indent":`Girintiyi azalt`,"Increase indent":`Girintiyi artır`,Blockquote:`Alıntı`,"Align left":`Sola hizala`,"Align center":`Ortala`,"Align right":`Sağa hizala`,Justify:`İki yana yasla`,"Text color":`Metin rengi`,"Background color":`Arka plan rengi`,"Remove formatting":`Biçimlendirmeyi kaldır`,Copy:`Kopyala`,Cut:`Kes`,Paste:`Yapıştır`,Undo:`Geri al`,Redo:`Yinele`,"Insert image":`Resim ekle`,"Special character":`Özel karakter`,Emoticons:`İfadeler`,Fullscreen:`Tam ekran`,Preview:`Önizleme`,"Source code":`Kaynak kodu`,"Insert link":`Bağlantı ekle`,"Code sample":`Kod örneği`,"Left to right":`Soldan sağa`,"Right to left":`Sağdan sola`,"Find and replace":`Bul ve değiştir`,Font:`Yazı tipi`,"Font size":`Yazı tipi boyutu`,"Line height":`Satır yüksekliği`,Templates:`Şablonlar`,Apply:`Uygula`,"Enter image URL:":`Resim URL'sini girin:`,"Enter URL:":`URL girin:`,"Edit HTML source:":`HTML kaynağını düzenle:`,"Find and Replace":`Bul ve değiştir`,Find:`Bul`,Replace:`Değiştir`,"Case sensitive":`Büyük/küçük harf duyarlı`,"Whole word":`Tam kelime`,Previous:`Önceki`,Next:`Sonraki`,"Replace All":`Tümünü değiştir`,"Search...":`Ara...`,"Special Character":`Özel karakter`,Upload:`Yükle`,URL:`URL`,"Browse...":`Gözat...`,"Drop image here or click to browse":`Resmi buraya sürükleyin veya gözatmak için tıklayın`,"Alt text":`Alternatif metin`,Insert:`Ekle`,Cancel:`İptal`,"Uploading...":`Yükleniyor...`,"Upload failed":`Yükleme başarısız`,"Invalid image URL":`Geçersiz resim URL'si`,"File too large":`Dosya çok büyük`,"Invalid file type":`Geçersiz dosya türü`,More:`Daha fazla`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Konusmayi metne �evir`,Dictate:`Dikte et`,Start:`Baslat`,Stop:`Durdur`,Clear:`Temizle`,Language:`Dil`,Confidence:`G�venilirlik`,"Listening...":`Dinliyor...`,"Speech to text is not supported in this browser":`Bu tarayicida konusmayi metne �evirme desteklenmiyor`,"No speech detected":`Konusma algilanmadi`,"Microphone access denied":`Mikrofon erisimi reddedildi`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Alt simge`,Superscript:`Üst simge`,"Horizontal rule":`Yatay çizgi`,Unlink:`Bağlantıyı kaldır`,Format:`Biçim`,Paragraph:`Paragraf`,"Heading 1":`Başlık 1`,"Heading 2":`Başlık 2`,"Heading 3":`Başlık 3`,"Heading 4":`Başlık 4`,"Heading 5":`Başlık 5`,"Heading 6":`Başlık 6`,Styles:`Stiller`,"Insert anchor":`Çapa ekle`,Anchor:`Çapa`,"Anchor name":`Çapa adı`,"Anchor name is required":`Çapa adı gereklidir`,"Anchor name cannot contain spaces":`Çapa adı boşluk içeremez`,Table:`Tablo`,"Insert table":`Tablo ekle`,"Insert row before":`Önceye satır ekle`,"Insert row after":`Sonraya satır ekle`,"Delete row":`Satırı sil`,"Insert column before":`Önceye sütun ekle`,"Insert column after":`Sonraya sütun ekle`,"Delete column":`Sütunu sil`,"Merge cells":`Hücreleri birleştir`,"Split cell":`Hücreyi böl`,"Toggle header row":`Başlık satırını aç/kapat`,"Delete table":`Tabloyu sil`},vi:{Bold:`In đậm`,Italic:`In nghiêng`,Underline:`Gạch chân`,Strikethrough:`Gạch ngang`,"Bullet list":`Danh sách có dấu đầu dòng`,"Numbered list":`Danh sách đánh số`,"Decrease indent":`Giảm thụt lề`,"Increase indent":`Tăng thụt lề`,Blockquote:`Trích dẫn`,"Align left":`Căn trái`,"Align center":`Căn giữa`,"Align right":`Căn phải`,Justify:`Căn đều`,"Text color":`Màu chữ`,"Background color":`Màu nền`,"Remove formatting":`Xóa định dạng`,Copy:`Sao chép`,Cut:`Cắt`,Paste:`Dán`,Undo:`Hoàn tác`,Redo:`Làm lại`,"Insert image":`Chèn hình ảnh`,"Special character":`Ký tự đặc biệt`,Emoticons:`Biểu tượng cảm xúc`,Fullscreen:`Toàn màn hình`,Preview:`Xem trước`,"Source code":`Mã nguồn`,"Insert link":`Chèn liên kết`,"Code sample":`Mẫu mã`,"Left to right":`Trái sang phải`,"Right to left":`Phải sang trái`,"Find and replace":`Tìm và thay thế`,Font:`Phông chữ`,"Font size":`Cỡ chữ`,"Line height":`Chiều cao dòng`,Templates:`Mẫu`,Apply:`Áp dụng`,"Enter image URL:":`Nhập URL hình ảnh:`,"Enter URL:":`Nhập URL:`,"Edit HTML source:":`Chỉnh sửa mã nguồn HTML:`,"Find and Replace":`Tìm và thay thế`,Find:`Tìm`,Replace:`Thay thế`,"Case sensitive":`Phân biệt chữ hoa/thường`,"Whole word":`Toàn bộ từ`,Previous:`Trước`,Next:`Tiếp`,"Replace All":`Thay thế tất cả`,"Search...":`Tìm kiếm...`,"Special Character":`Ký tự đặc biệt`,Upload:`Tải lên`,URL:`URL`,"Browse...":`Duyệt...`,"Drop image here or click to browse":`Kéo thả hình ảnh vào đây hoặc nhấp để duyệt`,"Alt text":`Văn bản thay thế`,Insert:`Ch�n`,Cancel:`Hủy`,"Uploading...":`Đang tải lên...`,"Upload failed":`Tải lên thất bại`,"Invalid image URL":`URL hình ảnh không hợp lệ`,"File too large":`Tệp quá lớn`,"Invalid file type":`Loại tệp không hợp lệ`,More:`Thêm`,Save:`Save`,"Insert/Edit Link":`Insert/Edit Link`,"Text to display":`Text to display`,Title:`Title`,"Open link in...":`Open link in...`,"Current window":`Current window`,"New window":`New window`,"Speech to Text":`Gi?ng n�i th�nh van b?n`,Dictate:`Đọc chính tả`,Start:`B?t d?u`,Stop:`D?ng`,Clear:`X�a`,Language:`Ng�n ng?`,Confidence:`�? tin c?y`,"Listening...":`�ang nghe...`,"Speech to text is not supported in this browser":`Gi?ng n�i th�nh van b?n kh�ng du?c h? tr? trong tr�nh duy?t n�y`,"No speech detected":`Kh�ng ph�t hi?n gi?ng n�i`,"Microphone access denied":`Quy?n truy c?p micr� b? t? ch?i`,"No microphone found":`No microphone found`,"Network error - speech recognition requires internet":`Network error - speech recognition requires internet`,Subscript:`Chỉ số dưới`,Superscript:`Chỉ số trên`,"Horizontal rule":`Đường kẻ ngang`,Unlink:`Bỏ liên kết`,Format:`Định dạng`,Paragraph:`Đoạn văn`,"Heading 1":`Tiêu đề 1`,"Heading 2":`Tiêu đề 2`,"Heading 3":`Tiêu đề 3`,"Heading 4":`Tiêu đề 4`,"Heading 5":`Tiêu đề 5`,"Heading 6":`Tiêu đề 6`,Styles:`Kiểu`,"Insert anchor":`Chèn neo`,Anchor:`Neo`,"Anchor name":`Tên neo`,"Anchor name is required":`Tên neo là bắt buộc`,"Anchor name cannot contain spaces":`Tên neo không được chứa khoảng trắng`,Table:`Bảng`,"Insert table":`Chèn bảng`,"Insert row before":`Chèn hàng phía trước`,"Insert row after":`Chèn hàng phía sau`,"Delete row":`Xóa hàng`,"Insert column before":`Chèn cột phía trước`,"Insert column after":`Chèn cột phía sau`,"Delete column":`Xóa cột`,"Merge cells":`Gộp ô`,"Split cell":`Tách ô`,"Toggle header row":`Bật/tắt hàng tiêu đề`,"Delete table":`Xóa bảng`}};function fw(e){return dw[e]??dw.en}function pw(e){let t=fw(e);return e=>t[e]??e}var mw=Object.keys(dw),hw=Object.keys(uw),gw=PS(jS),_w=`Andale Mono=andale mono,times; Arial=arial,helvetica,sans-serif; Arial Black=arial black,avant garde; Book Antiqua=book antiqua,palatino; Comic Sans MS=comic sans ms,sans-serif; Courier New=courier new,courier; Georgia=georgia,palatino; Helvetica=helvetica; Impact=impact,chicago; Tahoma=tahoma,arial,helvetica,sans-serif; Terminal=terminal,monaco; Times New Roman=times new roman,times; Trebuchet MS=trebuchet ms,geneva; Verdana=verdana,geneva`,vw=`bold italic underline strikethrough subscript superscript | blocks styles | bullist numlist outdent indent blockquote | fontfamily fontsize | lineheight alignleft aligncenter alignright alignjustify | forecolor backcolor | removeformat copy cut paste | undo redo | image table charmap emoticons hr | fullscreen preview | code link unlink anchor codesample | ltr rtl | searchreplace`,yw=`bold italic underline strikethrough subscript superscript | bullist numlist outdent indent | fontfamily fontsize blockquote | lineheight alignleft aligncenter alignright alignjustify | forecolor backcolor | removeformat copy cut paste | undo redo | charmap emoticons | link unlink | ltr rtl | searchreplace`,bw=`8pt 9pt 10pt 12pt 14pt 18pt 24pt 36pt`,xw=`arial, helvetica, sans-serif`,Sw=`12pt`,Cw=0,ww=e=>e,Tw=!1,Ew=e=>e;function Dw(e){ww=e,Tw=!0}function Ow(){return ww}function kw(){ww=e=>e,Tw=!1}function Aw(e){Ew=e}function jw(){return Ew}var Mw=class{id;ui;tiptap=null;container;editorWrapper=null;toolbar=null;config;dirty=!1;customButtons=new Map;eventListeners=new Map;changeTimeout=null;imageUploadHelper=null;constructor(e,t={}){this.id=`md-editor-${++Cw}`,this.container=e,this.config=this.normalizeConfig(t),this.ui={registry:{addButton:(e,t)=>{this.customButtons.set(e,t)},getButton:e=>this.customButtons.get(e)}},t.setup&&t.setup(this),this.createEditor()}normalizeConfig(e){return{basicEditor:e.basicEditor??!1,readonly:e.readonly??!1,forced_root_block:e.forced_root_block??`p`,includeTemplates:e.includeTemplates??!1,templates:e.templates??[],dropbox:e.dropbox??!1,images_upload_url:e.images_upload_url,images_upload_credentials:e.images_upload_credentials??!0,images_upload_base_path:e.images_upload_base_path??`/`,images_upload_max_size:e.images_upload_max_size,images_upload_headers:e.images_upload_headers,images_file_types:e.images_file_types,images_upload_validate:e.images_upload_validate,images_upload_error:e.images_upload_error,font_family_formats:e.font_family_formats??e.font_names??`Andale Mono=andale mono,times; Arial=arial,helvetica,sans-serif; Arial Black=arial black,avant garde; Book Antiqua=book antiqua,palatino; Comic Sans MS=comic sans ms,sans-serif; Courier New=courier new,courier; Georgia=georgia,palatino; Helvetica=helvetica; Impact=impact,chicago; Tahoma=tahoma,arial,helvetica,sans-serif; Terminal=terminal,monaco; Times New Roman=times new roman,times; Trebuchet MS=trebuchet ms,geneva; Verdana=verdana,geneva`,font_size_formats:e.font_size_formats??e.fontSize_sizes??bw,block_formats:e.block_formats,style_formats:e.style_formats,fontName:e.fontName,fontSize:e.fontSize,directionality:e.directionality??`ltr`,language:e.language??`en`,height:e.height??300,min_height:e.min_height,max_height:e.max_height,auto_focus:e.auto_focus,setFocus:e.setFocus,skin:e.skin??`oxide`,content_css:e.content_css??`default`,content_style:e.content_style,toolbar:e.toolbar??(e.basicEditor?yw:vw),toolbar_mode:e.toolbar_mode??`wrap`,toolbar_sticky:e.toolbar_sticky??!0,menubar:e.menubar??!1,contextmenu:e.contextmenu??``,quickbars_selection_toolbar:e.quickbars_selection_toolbar??`bold italic | quicklink blockquote`,quickbars_image_toolbar:e.quickbars_image_toolbar??!1,quickbars_insert_toolbar:e.quickbars_insert_toolbar??!1,browser_spellcheck:e.browser_spellcheck??!0,elementpath:e.elementpath??!1,entity_encoding:e.entity_encoding??`raw`,valid_children:e.valid_children,convert_unsafe_embeds:e.convert_unsafe_embeds??!0,format_empty_lines:e.format_empty_lines??!0,toolbar_narrow_breakpoint:e.toolbar_narrow_breakpoint,toolbar_priority:e.toolbar_priority,paste_from_office:e.paste_from_office??!0,speech_to_text:e.speech_to_text??!0}}createEditor(){Tw||(ww=pw(this.config.language??`en`)),this.editorWrapper=document.createElement(`div`),this.editorWrapper.className=`md-editor md-editor-${this.config.skin}`,this.editorWrapper.id=this.id,this.editorWrapper.setAttribute(`dir`,this.config.directionality??`ltr`),this.config.height&&(typeof this.config.height==`number`?this.editorWrapper.style.height=`${this.config.height}px`:this.editorWrapper.style.height=this.config.height),this.config.min_height&&(typeof this.config.min_height==`number`?this.editorWrapper.style.minHeight=`${this.config.min_height}px`:this.editorWrapper.style.minHeight=this.config.min_height),this.config.max_height&&(typeof this.config.max_height==`number`?this.editorWrapper.style.maxHeight=`${this.config.max_height}px`:this.editorWrapper.style.maxHeight=this.config.max_height);let e=document.createElement(`div`);e.className=`md-editor-toolbar`,this.editorWrapper.appendChild(e);let t=document.createElement(`div`);t.className=`md-editor-content`,this.editorWrapper.appendChild(t),this.container.appendChild(this.editorWrapper);let n={element:t,extensions:this.buildExtensions(),content:``,editable:!this.config.readonly,editorProps:{attributes:{class:`md-editor-body`,spellcheck:this.config.browser_spellcheck?`true`:`false`}},onUpdate:({editor:e})=>{this.handleChange(e.getHTML())},onFocus:()=>{this.fire(`focus`)},onBlur:()=>{this.fire(`blur`)},onCreate:({editor:e})=>{this.config.fontName&&e.chain().focus().setFontFamily(this.config.fontName).run(),this.config.fontSize&&e.chain().focus().setFontSize(this.config.fontSize).run(),this.fire(`init`,this)}};this.tiptap=new Td(n);let r=this.config.skin?.startsWith(`confab`)?TC:wC;this.toolbar=new pC(e,{editor:this,buttons:this.config.toolbar??yw,mode:this.config.toolbar_mode??`sliding`,sticky:this.config.toolbar_sticky??!0,customButtons:this.customButtons,config:this.config,iconSet:r,narrowBreakpoint:this.config.toolbar_narrow_breakpoint??768,priorityOverrides:this.config.toolbar_priority??{}}),this.config.readonly&&(this.editorWrapper.classList.add(`md-editor-readonly`),this.toolbar.setEnabled(!1)),this.config.auto_focus?setTimeout(()=>this.focus(),10):this.config.setFocus&&setTimeout(()=>{let e=document.querySelector(this.config.setFocus);e&&e.focus()},10),this.config.basicEditor||this.setupImageHandlers(t)}getImageUploadHelper(){return this.imageUploadHelper||=new JS({onInsert:()=>{},uploadUrl:this.config.images_upload_url,uploadCredentials:this.config.images_upload_credentials,uploadBasePath:this.config.images_upload_base_path,uploadMaxSize:this.config.images_upload_max_size,uploadHeaders:this.config.images_upload_headers,fileTypes:this.config.images_file_types,validate:this.config.images_upload_validate,onError:this.config.images_upload_error,trans:ww}),this.imageUploadHelper}setupImageHandlers(e){e.addEventListener(`dragover`,e=>{e.dataTransfer?.types.includes(`Files`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`,this.editorWrapper?.classList.add(`md-editor-dragover`))}),e.addEventListener(`dragleave`,t=>{let n=t.relatedTarget;(!n||!e.contains(n))&&this.editorWrapper?.classList.remove(`md-editor-dragover`)}),e.addEventListener(`drop`,e=>{this.editorWrapper?.classList.remove(`md-editor-dragover`);let t=e.dataTransfer?.files;if(!t||t.length===0)return;let n=Array.from(t).find(e=>e.type.startsWith(`image/`));n&&(e.preventDefault(),e.stopPropagation(),this.handleImageFileUpload(n))}),e.addEventListener(`paste`,e=>{let t=e.clipboardData?.items;if(t){for(let n of Array.from(t))if(n.type.startsWith(`image/`)){let t=n.getAsFile();if(t){e.preventDefault(),this.handleImageFileUpload(t);return}}}})}handleImageFileUpload(e){this.getImageUploadHelper().uploadFile(e).then(e=>{this.tiptap?.chain().focus().setImage({src:e}).run()}).catch(e=>{let t=e instanceof Error&&e.message?e.message:ww(`Upload failed`);this.config.images_upload_error?.(t)})}buildExtensions(){let e=this.config.forced_root_block===`div`,t=[$_.configure({codeBlock:!1,trailingNode:this.config.trailingNode?void 0:!1,...e?{paragraph:!1}:{}}),AC,jC,MC,ev,tv,qg,ov,NC,lv,EC,DC.configure({defaultFontFamily:this.config.fontName??xw,defaultFontSize:this.config.fontSize??Sw}),OC,cv,mv.configure({multicolor:!0}),nv.configure({types:[`heading`,`paragraph`]}),tg.extend({addAttributes(){return{...this.parent?.(),title:{default:null,parseHTML:e=>e.getAttribute(`title`),renderHTML:e=>e.title?{title:e.title}:{}}}}}).configure({openOnClick:!1,HTMLAttributes:{rel:`noopener noreferrer`}}),j_,J_.configure({placeholder:``}),kC];return e&&t.push(Hg.extend({parseHTML(){return[{tag:`p`},{tag:`div`}]},renderHTML({HTMLAttributes:e}){return[`div`,H(this.options.HTMLAttributes,e),0]}})),this.config.paste_from_office!==!1&&t.push(lw),this.config.basicEditor||t.push(gv.configure({allowBase64:!0,HTMLAttributes:{class:`md-editor-image`}})),t.push(Db.configure({lowlight:gw})),t.push(yb.configure({resizable:!0,HTMLAttributes:{class:`md-editor-table`}}),ob,ib,ab),t}handleChange(e){this.dirty||(this.dirty=!0,this.fire(`dirty`,!0)),this.changeTimeout&&clearTimeout(this.changeTimeout),this.changeTimeout=setTimeout(()=>{this.fire(`change`,e)},20)}getContent(){return this.tiptap?.getHTML()??``}setContent(e){this.tiptap?.commands.setContent(e)}insertContent(e){this.tiptap?.commands.insertContent(e)}execCommand(e,t,n){if(!this.tiptap)return!1;let r=this.tiptap.chain().focus();switch(e.toLowerCase()){case`bold`:return r.toggleBold().run(),!0;case`italic`:return r.toggleItalic().run(),!0;case`underline`:return r.toggleUnderline().run(),!0;case`strikethrough`:return r.toggleStrike().run(),!0;case`subscript`:return r.toggleSubscript().run(),!0;case`superscript`:return r.toggleSuperscript().run(),!0;case`fontname`:return typeof n==`string`&&r.setFontFamily(n).run(),!0;case`fontsize`:return typeof n==`string`&&r.setFontSize(n).run(),!0;case`lineheight`:return typeof n==`string`&&r.setLineHeight(n).run(),!0;case`forecolor`:return typeof n==`string`&&r.setColor(n).run(),!0;case`hilitecolor`:case`backcolor`:return typeof n==`string`&&r.setHighlight({color:n}).run(),!0;case`justifyleft`:return r.setTextAlign(`left`).run(),!0;case`justifycenter`:return r.setTextAlign(`center`).run(),!0;case`justifyright`:return r.setTextAlign(`right`).run(),!0;case`justifyfull`:return r.setTextAlign(`justify`).run(),!0;case`insertunorderedlist`:return r.toggleBulletList().run(),!0;case`insertorderedlist`:return r.toggleOrderedList().run(),!0;case`indent`:return this.tiptap.isActive(`listItem`)&&r.sinkListItem(`listItem`).run(),!0;case`outdent`:return this.tiptap.isActive(`listItem`)&&r.liftListItem(`listItem`).run(),!0;case`undo`:return r.undo().run(),!0;case`redo`:return r.redo().run(),!0;case`removeformat`:return r.unsetAllMarks().clearNodes().run(),!0;case`unlink`:return r.unsetLink().run(),!0;case`inserthorizontalrule`:return r.setHorizontalRule().run(),!0;case`mceremoveeditor`:return this.destroy(),!0;default:return console.warn(`Unknown command: ${e}`),!1}}isDirty(){return this.dirty}setDirty(e){this.dirty=e,e||this.fire(`dirty`,!1)}setReadOnly(e){this.config.readonly=e,this.tiptap?.setEditable(!e),this.editorWrapper?.classList.toggle(`md-editor-readonly`,e),this.toolbar?.setEnabled(!e)}isReadOnly(){return this.config.readonly??!1}focus(){this.tiptap?.commands.focus()}hasFocus(){return this.tiptap?.isFocused??!1}on(e,t){this.eventListeners.has(e)||this.eventListeners.set(e,new Set),this.eventListeners.get(e).add(t)}off(e,t){this.eventListeners.get(e)?.delete(t)}fire(e,...t){let n=this.eventListeners.get(e);n&&n.forEach(e=>{e(...t)})}destroy(){this.changeTimeout&&clearTimeout(this.changeTimeout),this.toolbar?.destroy(),this.toolbar=null,this.tiptap?.destroy(),this.tiptap=null,this.imageUploadHelper?.destroy(),this.imageUploadHelper=null,this.editorWrapper&&this.editorWrapper.remove(),this.editorWrapper=null,this.eventListeners.clear(),this.customButtons.clear()}getTipTap(){return this.tiptap}setLanguage(e){this.config.language=e,ww=pw(e),this.toolbar?.rebuild(),this.fire(`languagechange`,e)}getConfig(){return this.config}isBasicEditor(){return this.config.basicEditor??!1}};e.Anchor=MC,e.AnchorDialog=QS,e.BlockFontStyle=DC,e.CHAR_MAP=IS,e.CONFAB_ICONS=TC,e.CharacterMap=LS,e.DEFAULT_ICONS=wC,e.Dictation=oC,e.EMOJI_CATEGORIES=RS,e.EmojiPicker=zS,e.FontSize=EC,e.HTMLEditor=Mw,e.InlineStyle=NC,e.LineHeight=OC,e.LinkEditor=ZS,e.Mention=jC,e.PasteFromOffice=lw,e.SearchReplace=YS,e.SignatureBlock=AC,e.SourceEditor=XS,e.SpeechToText=rC,e.TRANSLATION_KEYS=hw,e.TextDirection=kC,e.Toolbar=pC,e.availableLocales=mw,e.createTranslateFunction=pw,e.fontNames=_w,e.getGetFileSrc=jw,e.getLocale=fw,e.getTranslate=Ow,e.isSpeechRecognitionSupported=tC,e.resetTranslate=kw,e.setGetFileSrc=Aw,e.setTranslate=Dw});
|