@akilli/editor 4.7.0 → 4.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/editor.css CHANGED
@@ -1 +1 @@
1
- :root{--editor-block-background: #191919;--editor-block-color: #fff;--editor-border: #19191933;--editor-button-background: #191919;--editor-button-color: #fff;--editor-cancel-background: #f1c40f;--editor-cancel-color: #191919;--editor-dialog-backdrop: #000000cc;--editor-dialog-background: #fff;--editor-dialog-color: #191919;--editor-error: #960200;--editor-focus: #f1c40f;--editor-hover: #f1c40f;--editor-placeholder: #19191933;--editor-slot: #54442b;--editor-sortover: #191919;--editor-toolbar-background: #fff;--editor-toolbar-color: #191919;--editor-text-block: "Block: " attr(id);--editor-text-editable: "Gimme some text!";--editor-text-root: "Gimme some widgets!";--editor-text-slot: "Focus this slot and gimme some widgets!"}akilli-editor[lang=de]{--editor-text-editable: "Gib mir Text!";--editor-text-root: "Gib mir Widgets!";--editor-text-slot: "Fokussiere diesen Slot und gib mir Widgets!"}@font-face{font-family:editor;font-display:block;font-style:normal;font-weight:900;src:url(editor.woff2) format("woff2")}akilli-editor{position:relative;display:block}akilli-editor editor-root{display:block;width:100%;padding:.75rem .6875rem .6875rem;border:.0625rem solid var(--editor-border);border-top:0}akilli-editor editor-root:before{display:table;content:" "}akilli-editor editor-root:after{display:table;content:" ";clear:both}akilli-editor editor-root:empty:after{color:var(--editor-placeholder);content:var(--editor-text-root)}akilli-editor editor-root :hover{outline:.25rem dotted var(--editor-hover)}akilli-editor editor-root :focus{outline:.25rem dashed var(--editor-focus)}akilli-editor editor-root [contenteditable]{min-height:1.5rem}akilli-editor editor-root [contenteditable=true]:hover{outline:.25rem dotted var(--editor-hover)}akilli-editor editor-root [contenteditable=true]:empty:after{color:var(--editor-placeholder);content:var(--editor-text-editable)}akilli-editor editor-root :is(td,th)[contenteditable]{height:1.5rem}akilli-editor editor-root slot[contenteditable]{display:block;padding:.25rem;outline:.25rem solid var(--editor-slot)}akilli-editor editor-root slot[contenteditable=true]:empty:after{color:var(--editor-slot);content:var(--editor-text-slot)}akilli-editor editor-root [contenteditable=true] :hover{cursor:context-menu}akilli-editor editor-root [data-sortable][data-sort]:hover{cursor:grab}akilli-editor editor-root :is([data-sortover],[contenteditable][data-sortover]){outline:.25rem dashed var(--editor-sortover)}akilli-editor editor-root :is(audio,iframe,img,video){pointer-events:none}akilli-editor summary{white-space:pre-wrap}akilli-editor app-block{display:block;padding:.25rem;border:.0625rem solid var(--editor-block-background)}akilli-editor app-block:before{display:block;margin:-.25rem -.25rem .5rem;padding:.125rem .25rem;color:var(--editor-block-color);background:var(--editor-block-background);content:var(--editor-text-block)}akilli-editor editor-dialog{display:none}akilli-editor editor-dialog[open]{position:fixed;left:0;right:0;top:0;bottom:0;z-index:999;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100vh;background:var(--editor-dialog-backdrop)}akilli-editor editor-dialog form{padding:.75rem;color:var(--editor-dialog-color);background:var(--editor-dialog-background)}akilli-editor editor-dialog :is(form,fieldset)>:not(:first-child){margin-top:1.5rem}akilli-editor editor-dialog legend{font-size:1.25rem}akilli-editor editor-dialog label{display:block}akilli-editor editor-dialog [data-required] label:after{content:" *"}akilli-editor editor-dialog button{padding:.75rem;color:var(--editor-button-color);background:var(--editor-button-background)}akilli-editor editor-dialog button+button{margin-left:1.5rem}akilli-editor editor-dialog button[type=button]{color:var(--editor-cancel-color);background:var(--editor-cancel-background)}akilli-editor editor-dialog input:is([type=email],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=url]),akilli-editor editor-dialog select{width:100%;padding:.71875rem 0;border-bottom:.0625rem solid var(--editor-border)}akilli-editor editor-dialog input:is([type=email],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=url]):invalid,akilli-editor editor-dialog select:invalid{border-color:var(--editor-error)}akilli-editor editor-toolbar{position:sticky;top:0;display:flex;flex-wrap:wrap;color:var(--editor-toolbar-color);background:var(--editor-toolbar-background);border:.0625rem solid var(--editor-border)}akilli-editor :is(editor-focusbar,editor-formatbar){position:absolute;left:0;display:flex;flex-wrap:wrap;color:var(--editor-toolbar-color);background:var(--editor-toolbar-background);border:.0625rem solid var(--editor-border)}akilli-editor editor-focusbar:empty,akilli-editor editor-focusbar [data-command]{display:none}akilli-editor editor-focusbar[data-alignable] [data-command^=align-],akilli-editor editor-focusbar[data-deletable] [data-command=delete],akilli-editor editor-focusbar[data-sortable] [data-command^=sort-]{display:inline-block}akilli-editor [data-command]{display:inline-block;line-height:1;padding:.25rem .5rem;font-family:editor;font-size:0}akilli-editor [data-command]:focus{color:var(--editor-focus)}akilli-editor [data-command]:before{font-size:1.5rem}akilli-editor [data-command=abbreviation]:before{content:"\e800"}akilli-editor [data-command=align-center]:before{content:"\e801"}akilli-editor [data-command=align-left]:before{content:"\e802"}akilli-editor [data-command=align-none]:before{content:"\e803"}akilli-editor [data-command=align-right]:before{content:"\e804"}akilli-editor [data-command=audio]:before{content:"\e805"}akilli-editor [data-command=block]:before{content:"\e806"}akilli-editor [data-command=blockquote]:before{content:"\e807"}akilli-editor [data-command=bold]:before{content:"\e808"}akilli-editor [data-command=cite]:before{content:"\e809"}akilli-editor [data-command=code]:before{content:"\e80a"}akilli-editor [data-command=data]:before{content:"\e80b"}akilli-editor [data-command=definition]:before{content:"\e80c"}akilli-editor [data-command=delete]:before{content:"\e80d"}akilli-editor [data-command=deletion]:before{content:"\e80e"}akilli-editor [data-command=details]:before{content:"\e80f"}akilli-editor [data-command=division]:before{content:"\e810"}akilli-editor [data-command=emphasis]:before{content:"\e811"}akilli-editor [data-command=heading]:before{content:"\e812"}akilli-editor [data-command=horizontalrule]:before{content:"\e813"}akilli-editor [data-command=iframe]:before{content:"\e814"}akilli-editor [data-command=image]:before{content:"\e815"}akilli-editor [data-command=insertion]:before{content:"\e816"}akilli-editor [data-command=italic]:before{content:"\e817"}akilli-editor [data-command=keyboard]:before{content:"\e818"}akilli-editor [data-command=link]:before{content:"\e819"}akilli-editor [data-command=mark]:before{content:"\e81a"}akilli-editor [data-command=orderedlist]:before{content:"\e81b"}akilli-editor [data-command=paragraph]:before{content:"\e81c"}akilli-editor [data-command=preformat]:before{content:"\e81d"}akilli-editor [data-command=quote]:before{content:"\e81e"}akilli-editor [data-command=sample]:before{content:"\e81f"}akilli-editor [data-command=section]:before{content:"\e820"}akilli-editor [data-command=small]:before{content:"\e821"}akilli-editor [data-command=sort-first]:before{content:"\e822"}akilli-editor [data-command=sort-last]:before{content:"\e823"}akilli-editor [data-command=sort-next]:before{content:"\e824"}akilli-editor [data-command=sort-prev]:before{content:"\e825"}akilli-editor [data-command=strikethrough]:before{content:"\e826"}akilli-editor [data-command=strong]:before{content:"\e827"}akilli-editor [data-command=subheading]:before{content:"\e828"}akilli-editor [data-command=subscript]:before{content:"\e829"}akilli-editor [data-command=superscript]:before{content:"\e82a"}akilli-editor [data-command=table]:before{content:"\e82b"}akilli-editor [data-command=tablecolumn-insertafter]:before{content:"\e82c"}akilli-editor [data-command=tablecolumn-insertbefore]:before{content:"\e82d"}akilli-editor [data-command=tablecolumn-removeafter]:before{content:"\e82e"}akilli-editor [data-command=tablecolumn-removebefore]:before{content:"\e82e";transform:translate(-1,1)}akilli-editor [data-command=tablerow-insertafter]:before{content:"\e82f"}akilli-editor [data-command=tablerow-insertbefore]:before{content:"\e830"}akilli-editor [data-command=tablerow-removeafter]:before{content:"\e831"}akilli-editor [data-command=tablerow-removebefore]:before{content:"\e831";transform:translate(1,-1)}akilli-editor [data-command=time]:before{content:"\e832"}akilli-editor [data-command=underline]:before{content:"\e833"}akilli-editor [data-command=unorderedlist]:before{content:"\e834"}akilli-editor [data-command=variable]:before{content:"\e835"}akilli-editor [data-command=video]:before{content:"\e836"}
1
+ :root{--editor-block-background: #191919;--editor-block-color: #fff;--editor-border: #19191933;--editor-button-background: #191919;--editor-button-color: #fff;--editor-cancel-background: #f1c40f;--editor-cancel-color: #191919;--editor-dialog-backdrop: #000000cc;--editor-dialog-background: #fff;--editor-dialog-color: #191919;--editor-error: #960200;--editor-focus: #f1c40f;--editor-hover: #f1c40f;--editor-placeholder: #19191933;--editor-slot: #54442b;--editor-sortover: #191919;--editor-toolbar-background: #fff;--editor-toolbar-color: #191919;--editor-text-block: "Block: " attr(id);--editor-text-editable: "Gimme some text!";--editor-text-root: "Gimme some widgets!";--editor-text-slot: "Focus this slot and gimme some widgets!"}akilli-editor[lang=de]{--editor-text-editable: "Gib mir Text!";--editor-text-root: "Gib mir Widgets!";--editor-text-slot: "Fokussiere diesen Slot und gib mir Widgets!"}@font-face{font-family:editor;font-display:block;font-style:normal;font-weight:900;src:url(editor.woff2) format("woff2")}akilli-editor{position:relative;display:block}akilli-editor editor-root{display:block;width:100%;padding:.75rem .6875rem .6875rem;border:.0625rem solid var(--editor-border);border-top:0}akilli-editor editor-root:before{display:table;content:" "}akilli-editor editor-root:after{display:table;content:" ";clear:both}akilli-editor editor-root:empty:after{color:var(--editor-placeholder);content:var(--editor-text-root)}akilli-editor editor-root :hover{outline:.25rem dotted var(--editor-hover)}akilli-editor editor-root :focus{outline:.25rem dashed var(--editor-focus)}akilli-editor editor-root [contenteditable]{min-height:1.5rem}akilli-editor editor-root [contenteditable=true]:hover{outline:.25rem dotted var(--editor-hover)}akilli-editor editor-root [contenteditable=true]:empty:after{color:var(--editor-placeholder);content:var(--editor-text-editable)}akilli-editor editor-root :is(td,th)[contenteditable]{height:1.5rem}akilli-editor editor-root slot[contenteditable]{display:block;padding:.25rem;outline:.25rem solid var(--editor-slot)}akilli-editor editor-root slot[contenteditable=true]:empty:after{color:var(--editor-slot);content:var(--editor-text-slot)}akilli-editor editor-root [contenteditable=true] :hover{cursor:context-menu}akilli-editor editor-root [data-sortable][data-sort]:hover{cursor:grab}akilli-editor editor-root :is([data-sortover],[contenteditable][data-sortover]){outline:.25rem dashed var(--editor-sortover)}akilli-editor editor-root :is(audio,iframe,img,video){pointer-events:none}akilli-editor summary{white-space:pre-wrap}akilli-editor app-block{display:block;padding:.25rem;border:.0625rem solid var(--editor-block-background)}akilli-editor app-block:before{display:block;margin:-.25rem -.25rem .5rem;padding:.125rem .25rem;color:var(--editor-block-color);background:var(--editor-block-background);content:var(--editor-text-block)}akilli-editor editor-dialog{display:none}akilli-editor editor-dialog[open]{position:fixed;inset:0;z-index:999;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100vh;background:var(--editor-dialog-backdrop)}akilli-editor editor-dialog form{padding:.75rem;color:var(--editor-dialog-color);background:var(--editor-dialog-background)}akilli-editor editor-dialog :is(form,fieldset)>:not(:first-child){margin-top:1.5rem}akilli-editor editor-dialog legend{font-size:1.25rem}akilli-editor editor-dialog label{display:block}akilli-editor editor-dialog [data-required] label:after{content:" *"}akilli-editor editor-dialog button{padding:.75rem;color:var(--editor-button-color);background:var(--editor-button-background)}akilli-editor editor-dialog button+button{margin-left:1.5rem}akilli-editor editor-dialog button[type=button]{color:var(--editor-cancel-color);background:var(--editor-cancel-background)}akilli-editor editor-dialog input:is([type=email],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=url]),akilli-editor editor-dialog select{width:100%;padding:.71875rem 0;border-bottom:.0625rem solid var(--editor-border)}akilli-editor editor-dialog input:is([type=email],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=url]):invalid,akilli-editor editor-dialog select:invalid{border-color:var(--editor-error)}akilli-editor editor-toolbar{position:sticky;top:0;display:flex;flex-wrap:wrap;color:var(--editor-toolbar-color);background:var(--editor-toolbar-background);border:.0625rem solid var(--editor-border)}akilli-editor :is(editor-focusbar,editor-formatbar){position:absolute;left:0;display:flex;flex-wrap:wrap;color:var(--editor-toolbar-color);background:var(--editor-toolbar-background);border:.0625rem solid var(--editor-border)}akilli-editor editor-focusbar:empty,akilli-editor editor-focusbar [data-command]{display:none}akilli-editor editor-focusbar[data-alignable] [data-command^=align-],akilli-editor editor-focusbar[data-deletable] [data-command=delete],akilli-editor editor-focusbar[data-sortable] [data-command^=sort-]{display:inline-block}akilli-editor [data-command]{display:inline-block;line-height:1;padding:.25rem .5rem;font-family:editor;font-size:0}akilli-editor [data-command]:focus{color:var(--editor-focus)}akilli-editor [data-command]:before{font-size:1.5rem}akilli-editor [data-command=abbreviation]:before{content:"\e800"}akilli-editor [data-command=align-center]:before{content:"\e801"}akilli-editor [data-command=align-left]:before{content:"\e802"}akilli-editor [data-command=align-none]:before{content:"\e803"}akilli-editor [data-command=align-right]:before{content:"\e804"}akilli-editor [data-command=audio]:before{content:"\e805"}akilli-editor [data-command=block]:before{content:"\e806"}akilli-editor [data-command=blockquote]:before{content:"\e807"}akilli-editor [data-command=bold]:before{content:"\e808"}akilli-editor [data-command=cite]:before{content:"\e809"}akilli-editor [data-command=code]:before{content:"\e80a"}akilli-editor [data-command=data]:before{content:"\e80b"}akilli-editor [data-command=definition]:before{content:"\e80c"}akilli-editor [data-command=delete]:before{content:"\e80d"}akilli-editor [data-command=deletion]:before{content:"\e80e"}akilli-editor [data-command=details]:before{content:"\e80f"}akilli-editor [data-command=division]:before{content:"\e810"}akilli-editor [data-command=emphasis]:before{content:"\e811"}akilli-editor [data-command=heading]:before{content:"\e812"}akilli-editor [data-command=horizontalrule]:before{content:"\e813"}akilli-editor [data-command=iframe]:before{content:"\e814"}akilli-editor [data-command=image]:before{content:"\e815"}akilli-editor [data-command=insertion]:before{content:"\e816"}akilli-editor [data-command=italic]:before{content:"\e817"}akilli-editor [data-command=keyboard]:before{content:"\e818"}akilli-editor [data-command=link]:before{content:"\e819"}akilli-editor [data-command=mark]:before{content:"\e81a"}akilli-editor [data-command=orderedlist]:before{content:"\e81b"}akilli-editor [data-command=paragraph]:before{content:"\e81c"}akilli-editor [data-command=preformat]:before{content:"\e81d"}akilli-editor [data-command=quote]:before{content:"\e81e"}akilli-editor [data-command=sample]:before{content:"\e81f"}akilli-editor [data-command=section]:before{content:"\e820"}akilli-editor [data-command=small]:before{content:"\e821"}akilli-editor [data-command=sort-first]:before{content:"\e822"}akilli-editor [data-command=sort-last]:before{content:"\e823"}akilli-editor [data-command=sort-next]:before{content:"\e824"}akilli-editor [data-command=sort-prev]:before{content:"\e825"}akilli-editor [data-command=strikethrough]:before{content:"\e826"}akilli-editor [data-command=strong]:before{content:"\e827"}akilli-editor [data-command=subheading]:before{content:"\e828"}akilli-editor [data-command=subscript]:before{content:"\e829"}akilli-editor [data-command=superscript]:before{content:"\e82a"}akilli-editor [data-command=table]:before{content:"\e82b"}akilli-editor [data-command=tablecol-add-next]:before{content:"\e82c"}akilli-editor [data-command=tablecol-add-prev]:before{content:"\e82d"}akilli-editor [data-command=tablecol-delete-next]:before{content:"\e82e"}akilli-editor [data-command=tablecol-delete-prev]:before{content:"\e82e";transform:translate(-1,1)}akilli-editor [data-command=tablerow-add-next]:before{content:"\e82f"}akilli-editor [data-command=tablerow-add-prev]:before{content:"\e830"}akilli-editor [data-command=tablerow-delete-next]:before{content:"\e831"}akilli-editor [data-command=tablerow-delete-prev]:before{content:"\e831";transform:translate(1,-1)}akilli-editor [data-command=time]:before{content:"\e832"}akilli-editor [data-command=underline]:before{content:"\e833"}akilli-editor [data-command=unorderedlist]:before{content:"\e834"}akilli-editor [data-command=variable]:before{content:"\e835"}akilli-editor [data-command=video]:before{content:"\e836"}
package/dist/editor.js CHANGED
@@ -1,2 +1,2 @@
1
- var Ns=Object.defineProperty;var _s=(o,e,t)=>e in o?Ns(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var O=(o,e,t)=>(_s(o,typeof e!="symbol"?e+"":e,t),t),di=(o,e,t)=>{if(!e.has(o))throw TypeError("Cannot "+t)};var m=(o,e,t)=>(di(o,e,"read from private field"),t?t.call(o):e.get(o)),l=(o,e,t)=>{if(e.has(o))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(o):e.set(o,t)},b=(o,e,t,i)=>(di(o,e,"write to private field"),i?i.call(o,t):e.set(o,t),t);var h=(o,e,t)=>(di(o,e,"access private method"),t);var M=Object.freeze({CENTER:"center",LEFT:"left",NONE:"none",RIGHT:"right"}),p=Object.freeze({INVALID_ARGUMENT:"Invalid argument",MISSING_NAME:"Missing name",NOT_IMPLEMENTED:"Not implemented"}),a=Object.freeze({A:"a",B:"b",BACKSPACE:"Backspace",C:"c",D:"d",DEL:"Delete",DOWN:"ArrowDown",E:"e",END:"End",ENTER:"Enter",ESC:"Escape",F:"f",G:"g",HOME:"Home",I:"i",J:"j",K:"k",L:"l",LEFT:"ArrowLeft",M:"m",O:"o",Q:"q",R:"r",RIGHT:"ArrowRight",S:"s",SPACE:" ",T:"t",TAB:"Tab",U:"u",UP:"ArrowUp",V:"v",W:"w",X:"x",Y:"y",Z:"z"}),j=Object.freeze({AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"}),R=Object.freeze({FIRST:"first",LAST:"last",NEXT:"next",PREV:"prev"}),s=Object.freeze({AUDIO:"audio",BLOCK:"block",BREAK:"break",CAPTION:"caption",CONTAINER:"container",FIGURE:"figure",FORMAT:"format",HEADING:"heading",IFRAME:"iframe",IMAGE:"image",LIST:"list",LISTITEM:"listitem",PARAGRAPH:"paragraph",PREFORMAT:"preformat",QUOTE:"quote",ROOT:"root",RULE:"rule",SLOT:"slot",SUMMARY:"summary",TABLE:"table",TABLECELL:"tablecell",TABLEROW:"tablerow",TABLESECTION:"tablesection",VIDEO:"video"}),r=Object.freeze({A:"a",ABBR:"abbr",ALL:"*",AUDIO:"audio",B:"b",BLOCK:"app-block",BLOCKQUOTE:"blockquote",BR:"br",BUTTON:"button",CITE:"cite",CODE:"code",DATA:"data",DEL:"del",DETAILS:"details",DFN:"dfn",DIALOG:"editor-dialog",DIV:"div",EDITOR:"akilli-editor",EM:"em",FIELDSET:"fieldset",FIGCAPTION:"figcaption",FIGURE:"figure",FOCUSBAR:"editor-focusbar",FORM:"form",FORMATBAR:"editor-formatbar",H2:"h2",H3:"h3",HR:"hr",I:"i",IFRAME:"iframe",IMG:"img",INPUT:"input",INS:"ins",KBD:"kbd",LABEL:"label",LEGEND:"legend",LI:"li",MARK:"mark",OL:"ol",P:"p",PRE:"pre",Q:"q",ROOT:"editor-root",S:"s",SAMP:"samp",SECTION:"section",SLOT:"slot",SMALL:"small",STRONG:"strong",SUB:"sub",SUMMARY:"summary",SUP:"sup",TABLE:"table",TBODY:"tbody",TD:"td",TFOOT:"tfoot",TH:"th",THEAD:"thead",TIME:"time",TOOLBAR:"editor-toolbar",TR:"tr",U:"u",UL:"ul",VAR:"var",VIDEO:"video"}),gt=Object.freeze({FUNCTION:"function",STRING:"string",UNDEFINED:"undefined"});function A(o,e,{alt:t=!1,ctrl:i=!1,shift:n=!1}={}){return(Array.isArray(e)&&e.includes(o.key)||o.key===e)&&o.altKey===t&&o.ctrlKey===i&&o.shiftKey===n}function _e(o){return typeof o===gt.UNDEFINED}function v(o){return typeof o===gt.FUNCTION}function x(o){return o&&typeof o===gt.STRING}function V(o){return _e(o)||x(o)}function ci(o){return _e(o)||Array.isArray(o)&&o.length>0}function ui(o){return _e(o)||o instanceof HTMLElement}var Re,De,we,Be,Oe,Ei,Me,Ti,C=class{constructor(e,t,i=void 0){l(this,Oe);l(this,Me);l(this,Re,void 0);l(this,De,void 0);l(this,we,void 0);l(this,Be,void 0);if(!(e instanceof w)||!x(t)||!V(i))throw p.INVALID_ARGUMENT;b(this,Re,e),b(this,De,t),b(this,we,i&&this.editor.tags.get(i)),b(this,Be,this.editor.dialogs.get(t))}get editor(){return m(this,Re)}get name(){return m(this,De)}get tag(){return m(this,we)}get dialog(){return m(this,Be)}execute(){this.dialog?this.openDialog():this.insert(h(this,Oe,Ei).call(this))}insert(e={}){if(!this.tag)return;h(this,Me,Ti).call(this,e);let t=this.editor.dom.getSelectedElementByName(this.tag.name);this.tag.group!==s.FORMAT?this.editor.dom.insert(this.editor.dom.createElement(this.tag.name,{attributes:e})):t&&Object.keys(e).length>0?t.parentElement.replaceChild(this.editor.dom.createElement(this.tag.name,{attributes:e,html:t.textContent}),t):t?t.parentElement.replaceChild(this.editor.dom.createText(t.textContent),t):this.editor.dom.format(this.editor.dom.createElement(this.tag.name,{attributes:e}))}openDialog(){this.dialog?.open(e=>this.insert(e),h(this,Oe,Ei).call(this))}};Re=new WeakMap,De=new WeakMap,we=new WeakMap,Be=new WeakMap,Oe=new WeakSet,Ei=function(){if(!this.tag)return{};let e=this.editor.dom.getSelectedAttributesByName(this.tag.name);return h(this,Me,Ti).call(this,e),e},Me=new WeakSet,Ti=function(e){Object.keys(e).forEach(t=>this.tag.attributes.includes(t)&&e[t]||delete e[t])};var K,bt=class{constructor(e=[]){l(this,K,new Map);e.forEach(t=>this.set(t))}get(e){return m(this,K).get(e)}set(e){if(!(e instanceof C))throw p.INVALID_ARGUMENT;m(this,K).set(e.name,e)}find(e){return Array.from(m(this,K).values()).find(t=>t.tag?.name===e)}execute(e){this.get(e).execute()}freeze(){m(this,K).forEach(e=>Object.freeze(e)),Object.freeze(m(this,K)),Object.freeze(this)}};K=new WeakMap;var J,Et=class{constructor(e=[]){l(this,J,new Map);e.forEach(t=>this.set(t))}get(e){return m(this,J).get(e)}set(e){if(!(e instanceof L))throw p.INVALID_ARGUMENT;m(this,J).set(e.name,e)}freeze(){m(this,J).forEach(e=>Object.freeze(e)),Object.freeze(m(this,J)),Object.freeze(this)}};J=new WeakMap;var ae,ne,hi,Tt,Rs,ee=class{constructor(e){l(this,ne);l(this,Tt);l(this,ae,void 0);if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;b(this,ae,e),this.register(h(this,Tt,Rs).bind(this))}dispatch(e,t=void 0,i=void 0){if(!x(e)||!ui(t)||!ui(i))throw p.INVALID_ARGUMENT;m(this,ae).dispatchEvent(new CustomEvent(e,{detail:{element:t,target:i}}))}register(e,t={childList:!0,subtree:!0}){if(!v(e))throw p.INVALID_ARGUMENT;new MutationObserver(e).observe(m(this,ae),t)}};ae=new WeakMap,ne=new WeakSet,hi=function(e,t,i){t instanceof HTMLElement&&i instanceof HTMLElement&&(this.dispatch(e,t,i),this.dispatch(`${e}${t.localName.replace("-","")}`,t,i))},Tt=new WeakSet,Rs=function(e){e.forEach(t=>{t.addedNodes.forEach(i=>{i instanceof HTMLElement&&(h(this,ne,hi).call(this,"insert",i,t.target),Array.from(i.getElementsByTagName(r.ALL)).forEach(n=>h(this,ne,hi).call(this,"insert",n,t.target)))}),t.removedNodes.forEach(i=>i instanceof HTMLElement&&h(this,ne,hi).call(this,"delete",i,t.target))})};var Ce,Se,ye,Fe,Lt,jt,Ds,le=class{constructor(e,t){l(this,jt);l(this,Ce,void 0);l(this,Se,void 0);l(this,ye,void 0);l(this,Fe,void 0);l(this,Lt,{alwaysRaised:"yes",dependent:"yes",height:"",location:"no",menubar:"no",minimizable:"no",modal:"yes",resizable:"yes",scrollbars:"yes",toolbar:"no",width:""});if(!(e instanceof w)||!(t instanceof Document))throw p.INVALID_ARGUMENT;b(this,Ce,e),b(this,Se,t),b(this,ye,this.document.defaultView),b(this,Fe,this.document.documentElement)}get editor(){return m(this,Ce)}get document(){return m(this,Se)}get window(){return m(this,ye)}get root(){return m(this,Fe)}registerElement(e,t,i=void 0){_e(this.window.customElements.get(e))&&this.window.customElements.define(e,t,i?{extends:i}:void 0)}createElement(e,{attributes:t={},html:i=""}={}){let n=this.document.createElement(e);return n.innerHTML=i,Object.entries(t).forEach(([u,f])=>f&&n.setAttribute(u,`${f}`)),n}insert(e){if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;let t=this.getSelectedEditable();if(t instanceof HTMLSlotElement&&this.editor.tags.allowed(t.parentElement,e))t.insertAdjacentElement(j.BEFOREBEGIN,e);else if(t)this.closest(t,e)?.insertAdjacentElement(j.AFTEREND,e),t.hasAttribute("data-deletable")&&!t.textContent.trim()&&t.parentElement.removeChild(t);else if(this.editor.tags.allowed(this.editor.root,e))this.editor.root.appendChild(e);else throw p.INVALID_ARGUMENT}insertText(e){let t=this.getSelectedEditable();if(t){let i=this.getRange();i.deleteContents(),i.insertNode(this.createText(e)),i.collapse(),t.normalize()}}format(e){if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;let t=this.getRange(),i=this.getSelectedEditable();if(!t||t.collapsed||!t.toString().trim()||!i||!this.editor.tags.allowed(i,e))return;t.startContainer instanceof Text&&t.startContainer.parentElement!==i&&t.setStartBefore(t.startContainer.parentElement),t.endContainer instanceof Text&&t.endContainer.parentElement!==i&&t.setEndAfter(t.endContainer.parentElement);let n=t.toString(),u=Array.from(t.cloneContents().childNodes).every(f=>f instanceof Text&&!f.textContent.trim()||f instanceof HTMLElement&&f.localName===e.localName);t.deleteContents(),u?t.insertNode(this.createText(n)):(e.textContent=n,t.insertNode(e)),i.normalize()}createText(e){return this.document.createTextNode(e)}arbitrary(e){return e===this.editor.root||e?.hasAttribute("data-arbitrary")}contains(e){if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;if(this.editor.root.contains(e))return!0;let t=e.closest(this.editor.root.localName);return t&&!t.parentElement}closest(e,t){if(!(e instanceof HTMLElement)||!this.contains(e.parentElement))throw p.INVALID_ARGUMENT;let i=e,n=e.parentElement;do if(this.arbitrary(n)&&this.editor.tags.allowed(n,t))return i;while((i=n)&&(n=n.parentElement)&&this.contains(n))}wrap(e,t,i={}){let n;if(e instanceof HTMLElement){if(e.parentElement.localName!==t&&(n=this.closest(e,t))){let u=this.createElement(t,i);n.insertAdjacentElement(j.AFTEREND,u),u.appendChild(e)}}else throw p.INVALID_ARGUMENT}getActiveElement(){let e=this.document.activeElement;return e&&this.contains(e)?e:void 0}getSelectedElement(){let e=this.getSelection(),t=e.anchorNode instanceof Text?e.anchorNode.parentElement:e.anchorNode,i=e.focusNode instanceof Text?e.focusNode.parentElement:e.focusNode;if(t instanceof HTMLElement&&i instanceof HTMLElement&&t===i&&this.contains(t))return t}getSelectedElementByName(e){let t=this.getSelectedElement();return t?.localName===e&&t||void 0}getSelectedAttributesByName(e){let t=this.getSelectedElementByName(e),i={};return t&&Array.from(t.attributes).forEach(n=>i[n.nodeName]=n.nodeValue),i}getSelectedEditable(){let e=this.getSelection(),t=e.anchorNode instanceof Text?e.anchorNode.parentElement:e.anchorNode,i=e.focusNode instanceof Text?e.focusNode.parentElement:e.focusNode;if(t instanceof HTMLElement&&i instanceof HTMLElement){let n=t.closest("[contenteditable=true]"),u=i.closest("[contenteditable=true]");if(n instanceof HTMLElement&&n===u&&this.contains(n))return n}}getSelection(){return this.window.getSelection()}getRange(){let e=this.getSelection();return e.rangeCount>0?e.getRangeAt(0):void 0}setRange(e){let t=this.getSelection();t.removeAllRanges(),t.addRange(e)}selectContents(e){if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;let t=this.document.createRange();t.selectNodeContents(e),this.setRange(t)}focusEnd(e){if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;e.focus();let t=this.document.createRange();t.selectNodeContents(e),t.collapse(),this.setRange(t)}delete(e){if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;let t=e.previousElementSibling,i=e.nextElementSibling;e.parentElement.removeChild(e),t instanceof HTMLElement&&t.hasAttribute("data-focusable")?this.focusEnd(t):i instanceof HTMLElement&&i.hasAttribute("data-focusable")&&i.focus()}sort(e,t){if(!(e instanceof HTMLElement)||!Object.values(R).includes(t))throw p.INVALID_ARGUMENT;let i=e.parentElement,n=e.previousElementSibling,u=e.nextElementSibling,f=i.firstElementChild,E=i.lastElementChild,T=e===f,I=e===E;t===R.PREV&&!T&&n.hasAttribute("data-sortable")?(n.insertAdjacentHTML(j.BEFOREBEGIN,e.outerHTML),i.removeChild(e)):t===R.NEXT&&!I&&u.hasAttribute("data-sortable")?(u.insertAdjacentHTML(j.AFTEREND,e.outerHTML),i.removeChild(e)):(t===R.FIRST&&!T||t===R.NEXT&&I)&&f.hasAttribute("data-sortable")?(f.insertAdjacentHTML(j.BEFOREBEGIN,e.outerHTML),i.removeChild(e)):(t===R.LAST&&!I||t===R.PREV&&T)&&E.hasAttribute("data-sortable")&&(E.insertAdjacentHTML(j.AFTEREND,e.outerHTML),i.removeChild(e))}open({url:e,name:t,call:i,params:n={}}){if(!x(e)||!x(t)||!v(i))throw p.INVALID_ARGUMENT;let u=this.createElement(r.A,{attributes:{href:e}}),f=new URL(u.href);Object.entries(n).forEach(([T,I])=>f.searchParams.set(T,`${I}`));let E=this.window.open(f.toString(),t,h(this,jt,Ds).call(this));this.window.addEventListener("message",T=>{T.origin===f.origin&&T.source===E&&(i(T.data),E.close())},!1)}getWidth(){return this.window.screen.width}getHeight(){return this.window.screen.height}};Ce=new WeakMap,Se=new WeakMap,ye=new WeakMap,Fe=new WeakMap,Lt=new WeakMap,jt=new WeakSet,Ds=function(){let e=Object.assign({},m(this,Lt),{height:`${this.getHeight()}`,width:`${this.getWidth()}`},this.editor.config.base.browser);return Object.entries(e).filter(([,t])=>!!t).map(([t,i])=>`${t}=${i}`).join(",")};var Pe,D=class{constructor(e){l(this,Pe,void 0);if(!(e instanceof w))throw p.INVALID_ARGUMENT;b(this,Pe,e)}get editor(){return m(this,Pe)}filter(e){throw p.NOT_IMPLEMENTED}};Pe=new WeakMap;var te,At=class{constructor(){l(this,te,new Set)}add(e){if(!(e instanceof D))throw p.INVALID_ARGUMENT;m(this,te).add(e)}filter(e){if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;m(this,te).forEach(t=>{e.normalize(),t.filter(e)})}freeze(){m(this,te).forEach(e=>Object.freeze(e)),Object.freeze(m(this,te)),Object.freeze(this)}};te=new WeakMap;var me=class{constructor({name:e,group:t,...i}={}){O(this,"name");O(this,"group");O(this,"children");O(this,"attributes");O(this,"alignable");O(this,"arbitrary");O(this,"deletable");O(this,"editable");O(this,"empty");O(this,"focusable");O(this,"navigable");O(this,"slotable");O(this,"sortable");O(this,"enter");if(!x(e)||!x(t)||!ci(i.children)||!ci(i.attributes)||!V(i.enter))throw p.INVALID_ARGUMENT;this.name=e,this.group=t,this.children=i.children||[],this.attributes=i.attributes||[],this.arbitrary=i.arbitrary===!0,this.alignable=i.alignable===!0,this.deletable=i.deletable===!0,this.editable=i.editable===!0,this.empty=i.empty===!0,this.focusable=i.focusable===!0,this.navigable=i.navigable===!0,this.slotable=i.slotable===!0,this.sortable=i.sortable===!0,this.enter=i.enter}};var ke,de,fi,d=class{constructor(e){l(this,de);l(this,ke,void 0);if(!(e instanceof w))throw p.INVALID_ARGUMENT;b(this,ke,e)}get editor(){return m(this,ke)}static get name(){throw p.MISSING_NAME}static get dependencies(){return[]}static get config(){return{}}init(){throw p.NOT_IMPLEMENTED}_(e){return this.editor.translator.translate(this.constructor.name,e)}_base(e){return this.editor.translator.translate("base",e)}_i18n(e){e[this.editor.config.base.lang]&&this.editor.translator.set(this.constructor.name,e[this.editor.config.base.lang])}_tag(e){this.editor.tags.set(new me(e))}_command(e){this.editor.commands.set(new C(this.editor,this.constructor.name,e))}_toolbar(e,t=void 0){this.editor.toolbar.appendChild(h(this,de,fi).call(this,e,e,void 0,t))}_formatbar(e,t=void 0,i=void 0){let n=this._base("Alt"),u=this._base("Shift"),f=e+(t?` [${n} + ${u} + ${t}]`:"");this.editor.formatbar.appendChild(h(this,de,fi).call(this,e,f,t,i))}_focusbar(e,t=void 0){this.editor.focusbar.appendChild(h(this,de,fi).call(this,e,e,void 0,t))}};ke=new WeakMap,de=new WeakSet,fi=function(e,t,i=void 0,n=void 0){if(!x(e)||!x(t)||!V(i))throw p.INVALID_ARGUMENT;return this.editor.dom.createElement(r.BUTTON,{attributes:{type:"button",title:t,"data-command":n||this.constructor.name,"data-key":i},html:e})};var z,It=class{constructor(e=[]){l(this,z,new Map);e.forEach(t=>this.set(t))}get(e){return m(this,z).get(e)}set(e){if(!(e instanceof d))throw p.INVALID_ARGUMENT;m(this,z).set(e.constructor.name,e)}init(){m(this,z).forEach(e=>e.init())}freeze(){m(this,z).forEach(e=>Object.freeze(e)),Object.freeze(m(this,z)),Object.freeze(this)}};z=new WeakMap;var re,xt=class{constructor(e=[]){l(this,re,new Map);e.forEach(t=>this.set(t))}get(e){return m(this,re).get(e instanceof HTMLElement?e.localName:e)}set(e){if(!(e instanceof me))throw p.INVALID_ARGUMENT;m(this,re).set(e.name,e)}allowed(e,t,i=!1){let n=i?t:this.get(t)?.group;return!!this.get(e)?.children.includes(n)}freeze(){m(this,re).forEach(e=>{Object.freeze(e.children),Object.freeze(e.attributes),Object.freeze(e)}),Object.freeze(m(this,re)),Object.freeze(this)}};re=new WeakMap;var ie,Nt=class{constructor(){l(this,ie,new Map)}get(e){return m(this,ie).get(e)}set(e,t){if(!x(e)||!(t instanceof Object))throw p.INVALID_ARGUMENT;m(this,ie).set(e,t)}translate(e,t){return this.get(e)?.[t]||t}freeze(){m(this,ie).forEach(e=>Object.freeze(e)),Object.freeze(m(this,ie)),Object.freeze(this)}};ie=new WeakMap;var Ue,ce,Ge,He,ve,Ve,Ke,ze,qe,We,$e,Qe,_t,Rt,Dt,wt,Bt,Ot,w=class{constructor(e,t={}){l(this,Ue,void 0);l(this,ce,{});l(this,Ge,void 0);l(this,He,void 0);l(this,ve,void 0);l(this,Ve,void 0);l(this,Ke,void 0);l(this,ze,void 0);l(this,qe,void 0);l(this,We,void 0);l(this,$e,void 0);l(this,Qe,void 0);l(this,_t,new Nt);l(this,Rt,new xt);l(this,Dt,new At);l(this,wt,new Et);l(this,Bt,new bt);l(this,Ot,new It);if(!(e instanceof HTMLElement)||!(t instanceof Object))throw p.INVALID_ARGUMENT;b(this,Ue,e),b(this,ce,t),b(this,Ge,new le(this,this.orig.ownerDocument)),b(this,He,this.dom.createElement(r.EDITOR)),b(this,ve,this.dom.createElement(r.TOOLBAR,{attributes:{role:"toolbar"}})),this.element.appendChild(this.toolbar),b(this,Ve,new ee(this.toolbar)),b(this,Ke,this.dom.createElement(r.FORMATBAR,{attributes:{role:"toolbar"}})),this.formatbar.hidden=!0,this.element.appendChild(this.formatbar),b(this,ze,new ee(this.formatbar)),b(this,qe,this.dom.createElement(r.FOCUSBAR,{attributes:{role:"toolbar"}})),this.focusbar.hidden=!0,this.element.appendChild(this.focusbar),b(this,We,new ee(this.focusbar)),b(this,$e,this.dom.createElement(r.ROOT)),this.element.appendChild(this.root),b(this,Qe,new ee(this.root))}get orig(){return m(this,Ue)}get config(){return m(this,ce)}get dom(){return m(this,Ge)}get element(){return m(this,He)}get toolbar(){return m(this,ve)}get toolbarDispatcher(){return m(this,Ve)}get formatbar(){return m(this,Ke)}get formatbarDispatcher(){return m(this,ze)}get focusbar(){return m(this,qe)}get focusbarDispatcher(){return m(this,We)}get root(){return m(this,$e)}get rootDispatcher(){return m(this,Qe)}get translator(){return m(this,_t)}get tags(){return m(this,Rt)}get filters(){return m(this,Dt)}get dialogs(){return m(this,wt)}get commands(){return m(this,Bt)}get plugins(){return m(this,Ot)}static get defaultConfig(){return{}}init(){let e=this.config;b(this,ce,{});let t=this.constructor.defaultConfig.base?.plugins||[],i=t;if(Array.isArray(e.base?.plugins)&&e.base.plugins.length>0){let f=e.base.plugins;e.base?.pluginsDisabled?i=i.filter(E=>!f.includes(E.name)):(i=[],f.forEach(E=>{let T=t.find(I=>I.name===E);T&&i.push(T)}))}let n=new Set,u=f=>{f.dependencies?.forEach(u),n.add(f)};i.map(u),n.forEach(f=>{Object.entries(f.config).forEach(([E,T])=>{var I,P;(I=this.config)[P=f.name]??(I[P]={}),this.config[f.name][E]=e[f.name]?.[E]||this.constructor.defaultConfig[f.name]?.[E]||T}),this.plugins.set(new f(this))}),this.config.base.lang&&(this.element.lang=this.config.base.lang),this.plugins.init(),this.toolbarDispatcher.dispatch("init"),this.formatbarDispatcher.dispatch("init"),this.focusbarDispatcher.dispatch("init"),this.rootDispatcher.dispatch("init")}freeze(){Object.freeze(this.config),this.translator.freeze(),this.tags.freeze(),this.filters.freeze(),this.dialogs.freeze(),this.commands.freeze(),this.plugins.freeze()}load(){this.orig instanceof HTMLTextAreaElement?(this.orig.form.addEventListener("submit",()=>this.save()),this.setHtml(this.orig.value.replace("/&nbsp;/g"," "))):this.setHtml(this.orig.innerHTML),this.orig.insertAdjacentElement(j.AFTEREND,this.element),this.orig.hidden=!0,this.rootDispatcher.dispatch("load")}destroy(){this.element.parentElement.removeChild(this.element),this.orig.hidden=!1,this.rootDispatcher.dispatch("destroy")}getHtml(){let e=this.dom.createElement(this.root.localName,{html:this.root.innerHTML});return this.filters.filter(e),this.rootDispatcher.dispatch("gethtml",e),e.innerHTML}setHtml(e){let t=this.dom.createElement(this.root.localName,{html:e});this.rootDispatcher.dispatch("sethtml",t),this.filters.filter(t),this.root.innerHTML=t.innerHTML}save(){this.orig instanceof HTMLTextAreaElement?this.orig.value=this.getHtml():this.orig.innerHTML=this.getHtml(),this.rootDispatcher.dispatch("save")}url(e){let t=this.dom.window.origin||this.dom.window.location.origin,i=this.dom.createElement(r.A,{attributes:{href:e}});return t===i.origin?i.pathname:i.href}static create(e,t={}){let i=new this(e,t);return i.init(),i.freeze(),i.load(),i}};Ue=new WeakMap,ce=new WeakMap,Ge=new WeakMap,He=new WeakMap,ve=new WeakMap,Ve=new WeakMap,Ke=new WeakMap,ze=new WeakMap,qe=new WeakMap,We=new WeakMap,$e=new WeakMap,Qe=new WeakMap,_t=new WeakMap,Rt=new WeakMap,Dt=new WeakMap,wt=new WeakMap,Bt=new WeakMap,Ot=new WeakMap;var y,q,W,Ct,ws,St,Bs,Mt=class{constructor(e,t,i,n){l(this,Ct);l(this,St);l(this,y,void 0);l(this,q,void 0);l(this,W,void 0);var u,f;if(!(e instanceof le)||!x(t)||!x(i)||!v(n))throw p.INVALID_ARGUMENT;b(this,y,e),b(this,q,m(this,y).createElement(r.FORM,{attributes:{method:"dialog"}})),h(f=h(u=this.addFieldset(),Ct,ws).call(u,i,n),St,Bs).call(f,t)}get form(){return m(this,q)}addFieldset(){let e=m(this,y).createElement(r.FIELDSET);return m(this,W)?m(this,W).insertAdjacentElement(j.AFTEREND,e):m(this,q).insertAdjacentElement(j.AFTERBEGIN,e),b(this,W,e),this}addLegend(e){if(!x(e))throw p.INVALID_ARGUMENT;return m(this,W).appendChild(m(this,y).createElement(r.LEGEND,{html:e})),this}addTextInput(e,t,i={}){return this.addInput(e,t,i,"text")}addNumberInput(e,t,i={}){return this.addInput(e,t,i,"number")}addInput(e,t,i={},n="text"){if(!x(e)||!x(t)||!x(n))throw p.INVALID_ARGUMENT;Object.assign(i,{id:`editor-${e}`,name:e,type:n});let u=m(this,y).createElement(r.DIV);return u.appendChild(m(this,y).createElement(r.LABEL,{attributes:{for:i.id},html:t})),u.appendChild(m(this,y).createElement(r.INPUT,{attributes:i})),i.required&&u.setAttribute("data-required",""),m(this,W).appendChild(u),this}};y=new WeakMap,q=new WeakMap,W=new WeakMap,Ct=new WeakSet,ws=function(e,t){let i=m(this,y).createElement(r.BUTTON,{attributes:{type:"button"},html:e});return i.addEventListener("click",t),m(this,q).appendChild(i),this},St=new WeakSet,Bs=function(e){return m(this,q).appendChild(m(this,y).createElement(r.BUTTON,{html:e})),this};var Ye,Ze,Xe,Je,yt,Os,Ft,Ms,et,Li,L=class{constructor(e,t,i=void 0){l(this,yt);l(this,Ft);l(this,et);l(this,Ye,void 0);l(this,Ze,void 0);l(this,Xe,void 0);l(this,Je,void 0);if(!(e instanceof w)||!x(t)||!V(i))throw p.INVALID_ARGUMENT;b(this,Ye,e),b(this,Ze,t),b(this,Xe,i)}get editor(){return m(this,Ye)}get name(){return m(this,Ze)}get url(){return m(this,Xe)}get formCreator(){return m(this,Je)}open(e,t={}){this.url?h(this,yt,Os).call(this,e,t):h(this,Ft,Ms).call(this,e,t)}_(e){return this.editor.translator.translate(this.name,e)}_prepareForm(){throw p.NOT_IMPLEMENTED}};Ye=new WeakMap,Ze=new WeakMap,Xe=new WeakMap,Je=new WeakMap,yt=new WeakSet,Os=function(e,t={}){this.editor.dom.open({url:this.url,name:this.name,call:e,params:t})},Ft=new WeakSet,Ms=function(e,t={}){let i=this.editor.dom.getRange(),n=()=>{i&&this.editor.dom.setRange(i),h(this,et,Li).call(this)};h(this,et,Li).call(this),b(this,Je,new Mt(this.editor.dom,this._("Save"),this._("Cancel"),n)),this._prepareForm();let u=this.formCreator.form;u.addEventListener("submit",E=>{E.preventDefault(),E.stopPropagation(),n();let T={};Array.from(u.elements).forEach(I=>T[I.name]=I.value),e(T)}),Object.entries(t).forEach(([E,T])=>u.elements[E]&&(u.elements[E].value=T));let f=this.editor.dom.createElement(r.DIALOG);f.addEventListener("close",n),f.appendChild(u),f.show(),this.editor.element.appendChild(f)},et=new WeakSet,Li=function(){Array.from(this.editor.element.getElementsByTagName(r.DIALOG)).forEach(e=>{e.parentElement.removeChild(e)})};var Pt=class extends L{constructor(e){super(e,ue.name)}_prepareForm(){this.formCreator.addLegend(this._("Abbreviation")).addTextInput("title",this._("Full term"),{placeholder:this._("Insert full term or leave empty to remove it")})}};var tt,g=class{constructor(e){l(this,tt,void 0);if(!(e instanceof w))throw p.INVALID_ARGUMENT;b(this,tt,e)}get editor(){return m(this,tt)}handleEvent(e){v(this[e.type])&&this[e.type](e)}};tt=new WeakMap;var kt=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insert",this)}insert(e){e.detail.element.hasAttribute("data-alignable")&&e.detail.element.addEventListener("keydown",this)}keydown(e){let t={[a.UP]:M.NONE,[a.LEFT]:M.LEFT,[a.DOWN]:M.CENTER,[a.RIGHT]:M.RIGHT};e.target===e.currentTarget&&A(e,Object.keys(t),{shift:!0})&&(e.preventDefault(),e.stopPropagation(),e.target.classList.remove(...Object.values(t)),t[e.key]!==M.NONE&&e.target.classList.add(t[e.key]))}};var Gt,Cs,rt,ji,Ut=class extends D{constructor(){super(...arguments);l(this,Gt);l(this,rt)}filter(e){let t=this.editor.tags.get(e),i=this.editor.tags.allowed(e,r.P),n=t.editable||t.group===s.FORMAT,u=[],f=(E=null)=>{i&&u.length>0&&(e.insertBefore(this.editor.dom.createElement(r.P,{html:u.join(" ")}),E),u=[])};Array.from(e.childNodes).forEach(E=>{let T=E.textContent.trim();if(E instanceof HTMLElement){let I=h(this,Gt,Cs).call(this,E),P=this.editor.tags.get(I);if(P&&this.editor.tags.allowed(e,I))f(I),h(this,rt,ji).call(this,I,P);else if(P&&P.group===s.FORMAT&&i){let _=h(this,rt,ji).call(this,I,P);_&&(u.push(_.outerHTML),e.removeChild(_))}else!n&&T&&i?(u.push(T),e.removeChild(I)):n&&T?e.replaceChild(this.editor.dom.createText(T),I):e.removeChild(I)}else E instanceof Text?(!n&&T&&i&&u.push(T),(!n||!T)&&e.removeChild(E)):E instanceof Node&&e.removeChild(E)}),f()}};Gt=new WeakSet,Cs=function(e){let t=this.editor.config.base.filter[e.localName];if(!t)return e;let i=this.editor.dom.createElement(t,{html:e.innerHTML});return e.parentElement.replaceChild(i,e),i},rt=new WeakSet,ji=function(e,t){if(Array.from(e.attributes).forEach(i=>!t.attributes.includes(i.name)&&e.removeAttribute(i.name)),e.hasChildNodes()&&this.editor.filters.filter(e),e.hasChildNodes()||t.empty)return e;e.parentElement?.removeChild(e)};var Ht=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insert",this)}insert(e){e.detail.element.hasAttribute("data-deletable")&&e.detail.element.addEventListener("keydown",this)}keydown(e){e.target===e.currentTarget&&A(e,a.DEL,{ctrl:!0})&&(this.editor.dom.delete(e.target),e.preventDefault(),e.stopPropagation())}};var vt=class extends HTMLElement{get open(){return this.hasAttribute("open")}set open(e){e===!0?this.setAttribute("open",""):this.removeAttribute("open")}constructor(){super();this.addEventListener("keydown",e=>e.key===a.ESC&&this.close()),this.addEventListener("click",e=>e.target===this&&this.close())}connectedCallback(){this.setAttribute("role","dialog"),this.tabIndex=-1,this.focus()}show(){this.open=!0,this.dispatchEvent(new CustomEvent("show",{detail:{element:this,target:this}}))}close(){this.open=!1,this.dispatchEvent(new CustomEvent("close",{detail:{element:this,target:this}}))}};var Vt=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insert",this)}insert(e){e.detail.element.contentEditable==="true"?e.detail.element.addEventListener("keydown",this):e.detail.element.parentElement.contentEditable==="true"&&e.detail.element.addEventListener("dblclick",this)}keydown(e){if(A(e,a.ENTER,{shift:!0})&&!this.editor.tags.allowed(e.target,r.BR))e.preventDefault(),e.stopPropagation();else if(A(e,a.ENTER)){e.preventDefault(),e.stopPropagation();let t=this.editor.tags.get(e.target)?.enter;t&&(e.target.textContent.trim()||!e.target.hasAttribute("data-deletable")?this.editor.dom.closest(e.target,t)?.insertAdjacentElement(j.AFTEREND,this.editor.dom.createElement(t)):e.target instanceof HTMLParagraphElement||(this.editor.dom.closest(e.target,r.P)?.insertAdjacentElement(j.AFTEREND,this.editor.dom.createElement(r.P)),e.target.parentElement.removeChild(e.target)))}else A(e,a.BACKSPACE)&&!e.target.textContent&&e.target.hasAttribute("data-deletable")?(this.editor.dom.delete(e.target),e.preventDefault(),e.stopPropagation()):/^[A-Z]$/.test(e.key)&&A(e,e.key,{alt:!0,shift:!0})&&(e.preventDefault(),e.stopPropagation(),this.editor.formatbar.querySelector(`${r.BUTTON}[data-key=${e.key.toLowerCase()}]`)?.click())}dblclick(e){this.editor.dom.selectContents(e.target),this.editor.commands.find(e.target.localName)?.execute()}};var Kt=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insert",this)}insert(e){e.detail.element.hasAttribute("data-focusable")&&e.detail.element.focus()}};var $=class extends g{insertbutton(e){e.detail.element.getAttribute("data-command")&&e.detail.element.addEventListener("click",this)}click(e){this.editor.commands.execute(e.target.getAttribute("data-command"))}keydown(e){if(A(e,[a.LEFT,a.RIGHT,a.HOME,a.END])){let t=e.target.previousElementSibling,i=e.target.nextElementSibling,n=e.target.parentElement.firstElementChild,u=e.target.parentElement.lastElementChild,f=e.target===n,E=e.target===u;e.key===a.LEFT&&!f?t.focus():e.key===a.RIGHT&&!E?i.focus():e.key===a.HOME||e.key===a.RIGHT&&E?n.focus():(e.key===a.END||e.key===a.LEFT&&f)&&u.focus(),e.preventDefault(),e.stopPropagation()}}_show(e,t){if(!(e instanceof HTMLElement)||!(t instanceof HTMLElement))throw p.INVALID_ARGUMENT;e.hidden=!1;let i=t.offsetLeft+e.clientWidth-this.editor.root.clientWidth,n=e.clientWidth<this.editor.root.clientWidth?t.offsetLeft:0;n>0&&i>0&&(n=n>i?n-i:0),e.style.left=`${n}px`;let u=t.offsetTop-t.scrollTop-e.clientHeight;e.style.top=`${u}px`}_hide(e){e.hidden=!0,e.removeAttribute("style")}};var it,Ai,st,Ii,zt=class extends ${constructor(e){super(e);l(this,it);l(this,st);this.editor.focusbar.addEventListener("insertbutton",this),this.editor.root.addEventListener("focusin",this),this.editor.root.addEventListener("focusout",this),this.editor.dom.document.addEventListener("selectionchange",this)}insertbutton(e){super.insertbutton(e),e.detail.element.getAttribute("data-command")&&e.detail.element.addEventListener("mousedown",this)}mousedown(e){e.preventDefault(),e.stopPropagation()}focusin(e){e.target instanceof HTMLElement&&e.target.hasAttribute("data-focusable")&&h(this,it,Ai).call(this,e.target)}focusout(){h(this,st,Ii).call(this)}selectionchange(){let e=this.editor.dom.getActiveElement();!this.editor.dom.getSelection().isCollapsed||!e?h(this,st,Ii).call(this):e instanceof HTMLElement&&e.hasAttribute("data-focusable")&&h(this,it,Ai).call(this,e)}};it=new WeakSet,Ai=function(e){!this.editor.focusbar.children.length||(this._show(this.editor.focusbar,e),Object.keys(e.dataset).forEach(t=>this.editor.focusbar.dataset[t]=e.dataset[t]),this.editor.focusbar.dataset.tag=e.localName)},st=new WeakSet,Ii=function(){this._hide(this.editor.focusbar),Object.keys(this.editor.focusbar.dataset).forEach(e=>delete this.editor.focusbar.dataset[e])};var qt=class extends ${constructor(e){super(e);this.editor.formatbar.addEventListener("insertbutton",this),this.editor.dom.document.addEventListener("selectionchange",this)}selectionchange(){let e=this.editor.dom.getSelectedEditable();e&&!this.editor.dom.getSelection().isCollapsed&&this.editor.tags.allowed(e,s.FORMAT,!0)?this._show(this.editor.formatbar,e):this._hide(this.editor.formatbar)}};var $t,Ss,Wt=class extends g{constructor(e){super(e);l(this,$t);this.editor.root.addEventListener("insert",this)}insert(e){e.detail.element.hasAttribute("data-navigable")&&(e.detail.element.tabIndex=0,e.detail.element.addEventListener("keydown",this))}keydown(e){if(e.target===e.currentTarget&&A(e,[a.UP,a.DOWN,a.HOME,a.END])&&h(this,$t,Ss).call(this,e.target)){let t=e.target.previousElementSibling,i=e.target.nextElementSibling,n=e.target.parentElement.firstElementChild,u=e.target.parentElement.lastElementChild,f=e.target===n,E=e.target===u;e.key===a.UP&&!f&&t.hasAttribute("data-navigable")?t.focus():e.key===a.DOWN&&!E&&i.hasAttribute("data-navigable")?i.focus():(e.key===a.HOME||e.key===a.DOWN&&E)&&n.hasAttribute("data-navigable")?n.focus():(e.key===a.END||e.key===a.UP&&f)&&u.hasAttribute("data-navigable")&&u.focus(),e.preventDefault(),e.stopPropagation()}}};$t=new WeakSet,Ss=function(e){if(e.contentEditable!=="true")return!0;let t=this.editor.dom.getSelection(),i=this.editor.dom.getSelectedEditable(),n=this.editor.dom.getSelectedElement();return t.isCollapsed&&t.anchorOffset===0&&[i,e.firstChild].includes(n)};var Qt=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insert",this)}insert(e){e.detail.element instanceof HTMLSlotElement?e.detail.element.addEventListener("keydown",this):e.detail.element.hasAttribute("data-slotable")&&!e.detail.element.querySelector(":scope > "+r.SLOT)&&e.detail.element.appendChild(this.editor.dom.createElement(r.SLOT))}keydown(e){!A(e,a.TAB)&&!A(e,a.TAB,{shift:!0})&&(e.preventDefault(),e.stopPropagation())}};var ot,xi,at,Ni,Yt=class extends g{constructor(e){super(e);l(this,ot);l(this,at);this.editor.root.addEventListener("insert",this)}insert(e){e.detail.element.hasAttribute("data-sortable")&&(e.detail.element.addEventListener("keydown",this),e.detail.element.addEventListener("pointerdown",this),e.detail.element.addEventListener("pointermove",this),e.detail.element.addEventListener("pointerup",this))}keydown(e){let t={[a.HOME]:R.FIRST,[a.UP]:R.PREV,[a.DOWN]:R.NEXT,[a.END]:R.LAST};e.target===e.currentTarget&&A(e,Object.keys(t),{ctrl:!0})&&(this.editor.dom.sort(e.target,t[e.key]),e.preventDefault(),e.stopPropagation())}pointerdown(e){let t=e.target.closest("[data-sortable]");t&&this.editor.dom.contains(t)&&(t.setAttribute("data-sort",""),t.setPointerCapture(e.pointerId))}pointermove(e){let t=e.target.closest("[data-sortable][data-sort]"),i=this.editor.dom.document.elementFromPoint(e.x,e.y);h(this,ot,xi).call(this),t&&this.editor.dom.contains(t)&&h(this,at,Ni).call(this,t,i)&&i.setAttribute("data-sortover","")}pointerup(e){let t=e.target.closest("[data-sortable][data-sort]");if(t&&this.editor.dom.contains(t)){let i=this.editor.dom.document.elementFromPoint(e.x,e.y);h(this,ot,xi).call(this),t.removeAttribute("data-sort"),t.releasePointerCapture(e.pointerId),h(this,at,Ni).call(this,t,i)&&i.insertAdjacentElement(j.BEFOREBEGIN,t)}}};ot=new WeakSet,xi=function(){this.editor.root.querySelectorAll("[data-sortover]").forEach(e=>e.removeAttribute("data-sortover"))},at=new WeakSet,Ni=function(e,t){return e instanceof HTMLElement&&t instanceof HTMLElement&&this.editor.dom.contains(t)&&![this.editor.root,e].includes(t)&&t.hasAttribute("data-sortable")&&(e.parentElement===t.parentElement||this.editor.dom.arbitrary(e.parentElement)&&this.editor.dom.arbitrary(t.parentElement))&&this.editor.tags.allowed(t.parentElement,e)};var Zt=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insert",this)}insert(e){let t=this.editor.tags.get(e.detail.element);t&&(t.editable&&(e.detail.element.contentEditable="true"),["alignable","arbitrary","deletable","focusable","navigable","slotable","sortable"].forEach(i=>{t[i]&&(e.detail.element.dataset[i]="")}))}};var Xt=class extends ${constructor(e){super(e);this.editor.toolbar.addEventListener("insertbutton",this)}insertbutton(e){super.insertbutton(e),e.detail.element.tabIndex=e.detail.element===this.editor.toolbar.firstElementChild?0:-1,e.detail.element.addEventListener("keydown",this)}};var _i={de:{Alt:"Alt",Shift:"Umschalt"}};var c=class extends d{static get name(){return"base"}static get config(){return{browser:{},filter:{},lang:void 0,plugins:[],pluginsDisabled:!1}}init(){this._i18n(_i),this.editor.dom.registerElement(r.DIALOG,vt),this._tag({name:r.ROOT,group:s.ROOT,children:[s.AUDIO,s.BLOCK,s.CONTAINER,s.FIGURE,s.HEADING,s.IFRAME,s.IMAGE,s.LIST,s.PARAGRAPH,s.PREFORMAT,s.QUOTE,s.RULE,s.TABLE,s.VIDEO]}),this._tag({name:r.SLOT,group:s.SLOT,editable:!0,focusable:!0,navigable:!0,sortable:!0}),new Zt(this.editor),new Xt(this.editor),new qt(this.editor),new zt(this.editor),new Vt(this.editor),new Ht(this.editor),new Wt(this.editor),new Yt(this.editor),new kt(this.editor),new Kt(this.editor),new Qt(this.editor),this.editor.filters.add(new Ut(this.editor))}};var Ri={de:{Abbreviation:"Abk\xFCrzung",Cancel:"Abbrechen","Full term":"Langform","Insert full term or leave empty to remove it":"Langform eingeben oder zum Entfernen leer lassen",Save:"Speichern"}};var ue=class extends d{static get name(){return"abbreviation"}static get dependencies(){return[c]}init(){this._i18n(Ri),this._tag({name:r.ABBR,group:s.FORMAT,attributes:["title"]}),this.editor.dialogs.set(new Pt(this.editor)),this._command(r.ABBR),this._formatbar(this._("Abbreviation"),a.A)}};var he,Jt=class extends C{constructor(e,t){let i=Object.entries(M).find(([,n])=>n===t)?.[0].toLowerCase();if(!i)throw p.INVALID_ARGUMENT;super(e,fe.name+"-"+i);l(this,he,void 0);b(this,he,t)}execute(){let e=this.editor.dom.getActiveElement();e?.hasAttribute("data-alignable")&&(e.classList.remove(...Object.values(M)),m(this,he)!==M.NONE&&e.classList.add(m(this,he)))}};he=new WeakMap;var Di={de:{"Align center":"zentriert","Align left":"linksb\xFCndig","Align right":"rechtsb\xFCndig","No alignment":"Keine Ausrichtung"}};var fe=class extends d{static get name(){return"align"}static get dependencies(){return[c]}init(){this._i18n(Di);let e={[M.NONE]:this._("No alignment"),[M.LEFT]:this._("Align left"),[M.CENTER]:this._("Align center"),[M.RIGHT]:this._("Align right")};Object.entries(e).forEach(([t,i])=>{let n=new Jt(this.editor,t);this.editor.commands.set(n),this._focusbar(i,n.name)})}};var er=class extends L{constructor(e,t=void 0){super(e,Q.name,t)}_prepareForm(){this.formCreator.addLegend(this._("Audio")).addTextInput("src",this._("URL"),{pattern:"(https?|/).+",placeholder:this._("Insert URL to audio"),required:"required"}).addTextInput("id",this._("ID"))}};var nt,wi,tr=class extends g{constructor(e){super(e);l(this,nt);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("insertaudio",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.AUDIO)).forEach(t=>h(this,nt,wi).call(this,t))}insertaudio(e){h(this,nt,wi).call(this,e.detail.element)}};nt=new WeakSet,wi=function(e){let t=e.getAttribute("src");t?(e.setAttribute("src",this.editor.url(t)),e.controls=!0,this.editor.dom.wrap(e,r.FIGURE,{attributes:{class:Q.name}})):e.parentElement.removeChild(e)};var rr=class extends D{filter(e){e.querySelectorAll(`${r.FIGURE} > ${r.FIGCAPTION}:only-child`).forEach(t=>t.parentElement.removeChild(t))}};var ir=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insertfigure",this)}insertfigure(e){e.detail.element.querySelector(":scope > "+r.FIGCAPTION)||e.detail.element.appendChild(this.editor.dom.createElement(r.FIGCAPTION))}};var B=class extends d{static get name(){return"figure"}static get dependencies(){return[c]}init(){this._tag({name:r.FIGURE,group:s.FIGURE,children:[s.AUDIO,s.CAPTION,s.IFRAME,s.IMAGE,s.PREFORMAT,s.QUOTE,s.TABLE,s.VIDEO],attributes:["class"],alignable:!0,deletable:!0,focusable:!0,navigable:!0,sortable:!0}),this._tag({name:r.FIGCAPTION,group:s.CAPTION,children:[s.FORMAT],editable:!0,navigable:!0,enter:r.P}),new ir(this.editor),this.editor.filters.add(new rr(this.editor))}};var Bi={de:{Audio:"Audio",Cancel:"Abbrechen",ID:"ID","Insert URL to audio":"URL zur Audiodatei eingeben",Save:"Speichern",URL:"URL"}};var Q=class extends d{static get name(){return"audio"}static get dependencies(){return[c,B]}static get config(){return{browser:void 0}}init(){this._i18n(Bi),this._tag({name:r.AUDIO,group:s.AUDIO,attributes:["controls","id","src"],empty:!0,navigable:!0}),new tr(this.editor),this.editor.dialogs.set(new er(this.editor,this.editor.config.audio.browser)),this._command(r.AUDIO),this._toolbar(this._("Audio"))}};var sr=class extends L{constructor(e,t=void 0){super(e,pe.name,t)}_prepareForm(){this.formCreator.addLegend(this._("Block")).addTextInput("id",this._("ID"),{required:"required"})}};var or=class extends HTMLElement{get content(){return this.shadowRoot.innerHTML}set content(e){this.shadowRoot.innerHTML=e}constructor(){super();this.attachShadow({mode:"open"})}};var ar=class extends g{constructor(e){super(e);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("insertappblock",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.BLOCK)).forEach(t=>t.id||t.parentElement.removeChild(t))}async insertappblock(e){if(!e.detail.element.id){e.detail.element.parentElement.removeChild(e.detail.element);return}if(!this.editor.config.block.api)return;let t=this.editor.config.block.api.replace("{id}",e.detail.element.id),i=await fetch(t,{mode:"no-cors"});if(!i.ok)return;let n="";this.editor.config.block.css&&(n=this.editor.config.block.css.split(",").map(f=>`<link rel="stylesheet" href="${f}">`).join(""));let u=await i.text();e.detail.element.content=n+u}};var nr={de:{Cancel:"Abbrechen",Height:"H\xF6he",ID:"ID",Ifrane:"Iframe","Insert URL to embedded page":"URL zur eingebetteten Seite eingeben",Save:"Speichern",URL:"URL",Width:"Breite"}};var pe=class extends d{static get name(){return"block"}static get dependencies(){return[c]}static get config(){return{api:void 0,browser:void 0,css:void 0}}init(){this._i18n(nr),this.editor.dom.registerElement(r.BLOCK,or),this._tag({name:r.BLOCK,group:s.BLOCK,attributes:["id"],deletable:!0,empty:!0,focusable:!0,navigable:!0,sortable:!0}),new ar(this.editor),this.editor.dialogs.set(new sr(this.editor,this.editor.config.block.browser)),this._command(r.BLOCK),this._toolbar(this._("Block"))}};var lr=class extends D{filter(e){e instanceof HTMLElement&&e.localName===r.FIGURE&&e.classList.contains(G.name)&&e.querySelector(":scope > "+r.BLOCKQUOTE)&&!e.querySelector(":scope > "+r.FIGCAPTION)&&(e.insertAdjacentElement(j.BEFOREBEGIN,e.querySelector(":scope > "+r.BLOCKQUOTE)),e.parentElement.removeChild(e))}};var mr=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insertblockquote",this),this.editor.root.addEventListener("deleteblockquote",this)}insertblockquote(e){this.editor.dom.wrap(e.detail.element,r.FIGURE,{attributes:{class:G.name}})}deleteblockquote(e){e.detail.target.localName===r.FIGURE&&e.detail.target.classList.contains(G.name)&&e.detail.target.parentElement.removeChild(e.detail.target)}};var dr=class extends D{filter(e){if(e instanceof HTMLPreElement){e.outerHTML=e.outerHTML.replace(/(<br\s*\/?>)/gi,`
2
- `);return}e.innerHTML=e.innerHTML.replace(/^\s*(<br\s*\/?>\s*)+/gi,"").replace(/\s*(<br\s*\/?>\s*)+$/gi,""),e instanceof HTMLParagraphElement?e.outerHTML=e.outerHTML.replace(/\s*(<br\s*\/?>\s*){2,}/gi,"</p><p>"):e.innerHTML=e.innerHTML.replace(/\s*(<br\s*\/?>\s*){2,}/gi,"<br>")}};var F=class extends d{static get name(){return"break"}static get dependencies(){return[c]}init(){this._tag({name:r.BR,group:s.BREAK,empty:!0}),this.editor.filters.add(new dr(this.editor))}};var Oi={de:{Blockquote:"Blockzitat"}};var G=class extends d{static get name(){return"blockquote"}static get dependencies(){return[c,F,B]}init(){this._i18n(Oi),this._tag({name:r.BLOCKQUOTE,group:s.QUOTE,children:[s.BREAK,s.FORMAT],deletable:!0,editable:!0,navigable:!0,enter:r.P}),new mr(this.editor),this._command(r.BLOCKQUOTE),this._toolbar(this._("Blockquote")),this.editor.filters.add(new lr(this.editor))}};var Mi={de:{bold:"fett"}};var cr=class extends d{static get name(){return"bold"}static get dependencies(){return[c]}init(){this._i18n(Mi),this._tag({name:r.B,group:s.FORMAT}),this._command(r.B),this._formatbar(this._("bold"),a.B)}};var Ci={de:{Citation:"Zitatquelle"}};var ur=class extends d{static get name(){return"cite"}static get dependencies(){return[c]}init(){this._i18n(Ci),this._tag({name:r.CITE,group:s.FORMAT}),this._command(r.CITE),this._formatbar(this._("Citation"),a.Z)}};var Si={de:{Code:"Quelltext"}};var hr=class extends d{static get name(){return"code"}static get dependencies(){return[c]}init(){this._i18n(Si),this._tag({name:r.CODE,group:s.FORMAT}),this._command(r.CODE),this._formatbar(this._("Code"),a.C)}};var fr=class extends L{constructor(e){super(e,ge.name)}_prepareForm(){this.formCreator.addLegend(this._("Data")).addTextInput("value",this._("Machine-readable Value"),{placeholder:this._("Insert value or leave empty to remove it")})}};var yi={de:{Cancel:"Abbrechen",Data:"Data","Machine-readable Value":"Maschinenlesbarer Wert","Insert value or leave empty to remove it":"Wert eingeben oder zum Entfernen leer lassen",Save:"Speichern"}};var ge=class extends d{static get name(){return"data"}static get dependencies(){return[c]}init(){this._i18n(yi),this._tag({name:r.DATA,group:s.FORMAT,attributes:["value"]}),this.editor.dialogs.set(new fr(this.editor)),this._command(r.DATA),this._formatbar(this._("Data"),a.J)}};var Fi={de:{Definition:"Definition"}};var pr=class extends d{static get name(){return"definition"}static get dependencies(){return[c]}init(){this._i18n(Fi),this._tag({name:r.DFN,group:s.FORMAT}),this._command(r.DFN),this._formatbar(this._("Definition"),a.D)}};var gr=class extends C{constructor(e){super(e,be.name)}execute(){let e=this.editor.dom.getActiveElement();e?.hasAttribute("data-deletable")&&this.editor.dom.delete(e)}};var Pi={de:{Delete:"L\xF6schen"}};var be=class extends d{static get name(){return"delete"}static get dependencies(){return[c]}init(){this._i18n(Pi),this.editor.commands.set(new gr(this.editor)),this._focusbar(this._("Delete"),this.constructor.name)}};var ki={de:{"Text Deletion":"Textl\xF6schung"}};var br=class extends d{static get name(){return"deletion"}static get dependencies(){return[c]}init(){this._i18n(ki),this._tag({name:r.DEL,group:s.FORMAT}),this._command(r.DEL),this._formatbar(this._("Text Deletion"),a.G)}};var Er=class extends D{filter(e){e.querySelectorAll(`${r.SUMMARY}:not(:first-child)`).forEach(t=>t.parentElement.removeChild(t)),e.querySelectorAll(`${r.SUMMARY}:only-child`).forEach(t=>t.parentElement.removeChild(t))}};var lt,Ui,Tr=class extends g{constructor(e){super(e);l(this,lt);this.editor.root.addEventListener("insertdetails",this),this.editor.root.addEventListener("insertsummary",this)}insertdetails(e){e.detail.element.open=!0,e.detail.element.querySelector(`:scope > ${r.SUMMARY}:first-child`)||e.detail.element.insertAdjacentElement(j.AFTERBEGIN,this.editor.dom.createElement(r.SUMMARY))}insertsummary(e){h(this,lt,Ui).call(this,e.detail.element),e.detail.element.addEventListener("click",this),e.detail.element.addEventListener("blur",this),e.detail.element.addEventListener("keydown",this)}click(e){e.preventDefault(),e.stopPropagation(),e.target.parentElement.open=!0}blur(e){h(this,lt,Ui).call(this,e.target)}keydown(e){A(e,a.SPACE)?(e.preventDefault(),e.stopPropagation(),this.editor.dom.insertText(" ")):A(e,a.ENTER)&&(e.preventDefault(),e.stopPropagation(),e.target.parentElement.open=!0)}};lt=new WeakSet,Ui=function(e){e.textContent.trim()?e.querySelectorAll(r.BR+":not(:last-child)").forEach(t=>t.parentElement.removeChild(t)):e.textContent=this.editor.translator.translate(Ee.name,"Details"),e.lastElementChild instanceof HTMLBRElement||e.appendChild(this.editor.dom.createElement(r.BR))};var Gi={de:{Details:"Details"}};var Ee=class extends d{static get name(){return"details"}static get dependencies(){return[c]}init(){this._i18n(Gi),this._tag({name:r.DETAILS,group:s.CONTAINER,children:[s.AUDIO,s.FIGURE,s.IFRAME,s.IMAGE,s.LIST,s.PARAGRAPH,s.PREFORMAT,s.QUOTE,s.RULE,s.SUMMARY,s.TABLE,s.VIDEO],arbitrary:!0,deletable:!0,focusable:!0,navigable:!0,slotable:!0,sortable:!0}),this._tag({name:r.SUMMARY,group:s.SUMMARY,editable:!0,navigable:!0,enter:r.P}),new Tr(this.editor),this._command(r.DETAILS),this._toolbar(this._("Details")),this.editor.filters.add(new Er(this.editor))}};var Lr=class extends L{constructor(e){super(e,Te.name)}_prepareForm(){this.formCreator.addLegend(this._("Division")).addTextInput("class",this._("CSS class"),{placeholder:this._("Insert CSS class")})}};var Hi={de:{Cancel:"Abbrechen","CSS class":"CSS-Klasse",Division:"Division","Insert CSS class":"CSS-Klasse eingeben",Save:"Speichern"}};var Te=class extends d{static get name(){return"division"}static get dependencies(){return[c]}init(){this._i18n(Hi),this._tag({name:r.DIV,group:s.CONTAINER,children:[s.AUDIO,s.BLOCK,s.FIGURE,s.IFRAME,s.IMAGE,s.PREFORMAT,s.QUOTE,s.RULE,s.TABLE,s.VIDEO],attributes:["class"],arbitrary:!0,deletable:!0,focusable:!0,navigable:!0,slotable:!0,sortable:!0}),this.editor.dialogs.set(new Lr(this.editor)),this._command(r.DIV),this._toolbar(this._("Division"))}};var vi={de:{emphasized:"betont"}};var jr=class extends d{static get name(){return"emphasis"}static get dependencies(){return[c]}init(){this._i18n(vi),this._tag({name:r.EM,group:s.FORMAT}),this._command(r.EM),this._formatbar(this._("emphasized"),a.E)}};var Vi={de:{Heading:"\xDCberschrift"}};var Ar=class extends d{static get name(){return"heading"}static get dependencies(){return[c]}init(){this._i18n(Vi),this._tag({name:r.H2,group:s.HEADING,deletable:!0,editable:!0,focusable:!0,navigable:!0,sortable:!0,enter:r.P}),this._command(r.H2),this._toolbar(this._("Heading"))}};var Ki={de:{"Horizontal Rule":"Horizontale Linie"}};var Ir=class extends d{static get name(){return"horizontalrule"}static get dependencies(){return[c]}init(){this._i18n(Ki),this._tag({name:r.HR,group:s.RULE,deletable:!0,empty:!0,focusable:!0,navigable:!0,sortable:!0}),this._command(r.HR),this._toolbar(this._("Horizontal Rule"))}};var xr=class extends L{constructor(e,t=void 0){super(e,Y.name,t)}_prepareForm(){this.formCreator.addLegend(this._("Iframe")).addTextInput("src",this._("URL"),{pattern:"(https?|/).+",placeholder:this._("Insert URL to embedded page"),required:"required"}).addNumberInput("width",this._("Width")).addNumberInput("height",this._("Height")).addTextInput("id",this._("ID"))}};var mt,zi,Nr=class extends g{constructor(e){super(e);l(this,mt);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("insertiframe",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.IFRAME)).forEach(t=>h(this,mt,zi).call(this,t))}insertiframe(e){h(this,mt,zi).call(this,e.detail.element)}};mt=new WeakSet,zi=function(e){let t=e.getAttribute("src");t?(e.setAttribute("src",this.editor.url(t)),e.allowFullscreen=!0,this.editor.dom.wrap(e,r.FIGURE,{attributes:{class:Y.name}})):e.parentElement.removeChild(e)};var Y=class extends d{static get name(){return"iframe"}static get dependencies(){return[c,B]}static get config(){return{browser:void 0}}init(){this._i18n(nr),this._tag({name:r.IFRAME,group:s.IFRAME,attributes:["allowfullscreen","height","id","src","width"],empty:!0,navigable:!0}),new Nr(this.editor),this.editor.dialogs.set(new xr(this.editor,this.editor.config.iframe.browser)),this._command(r.IFRAME),this._toolbar(this._("Iframe"))}};var _r=class extends L{constructor(e,t=void 0){super(e,Z.name,t)}_prepareForm(){this.formCreator.addLegend(this._("Image")).addTextInput("src",this._("URL"),{pattern:"(https?|/).+",placeholder:this._("Insert URL to image"),required:"required"}).addTextInput("alt",this._("Alternative text"),{placeholder:this._("Text shown when media element is not available")}).addNumberInput("width",this._("Width")).addNumberInput("height",this._("Height")).addTextInput("id",this._("ID"))}};var dt,qi,Rr=class extends g{constructor(e){super(e);l(this,dt);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("insertimg",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.IMG)).forEach(t=>h(this,dt,qi).call(this,t))}insertimg(e){h(this,dt,qi).call(this,e.detail.element)}};dt=new WeakSet,qi=function(e){let t=e.getAttribute("src");t?(e.setAttribute("src",this.editor.url(t)),this.editor.dom.wrap(e,r.FIGURE,{attributes:{class:Z.name}})):e.parentElement.removeChild(e)};var Wi={de:{"Alternative text":"Alternativtext",Cancel:"Abbrechen",Height:"H\xF6he",ID:"ID",Image:"Bild","Insert URL to image":"URL zur Bilddatei eingeben",Save:"Speichern","Text shown when media element is not available":"Ersatztext, falls Medienelement nicht verf\xFCgbar ist",URL:"URL",Width:"Breite"}};var Z=class extends d{static get name(){return"image"}static get dependencies(){return[c,B]}static get config(){return{browser:void 0}}init(){this._i18n(Wi),this._tag({name:r.IMG,group:s.IMAGE,attributes:["alt","height","id","src","width"],empty:!0,navigable:!0}),new Rr(this.editor),this.editor.dialogs.set(new _r(this.editor,this.editor.config.image.browser)),this._command(r.IMG),this._toolbar(this._("Image"))}};var $i={de:{"Text Insertion":"Texteinf\xFCgung"}};var Dr=class extends d{static get name(){return"insertion"}static get dependencies(){return[c]}init(){this._i18n($i),this._tag({name:r.INS,group:s.FORMAT}),this._command(r.INS),this._formatbar(this._("Text Insertion"),a.F)}};var Qi={de:{italic:"kursiv"}};var wr=class extends d{static get name(){return"italic"}static get dependencies(){return[c]}init(){this._i18n(Qi),this._tag({name:r.I,group:s.FORMAT}),this._command(r.I),this._formatbar(this._("italic"),a.I)}};var Yi={de:{"User Input":"Benutzereingabe"}};var Br=class extends d{static get name(){return"keyboard"}static get dependencies(){return[c]}init(){this._i18n(Yi),this._tag({name:r.KBD,group:s.FORMAT}),this._command(r.KBD),this._formatbar(this._("User Input"),a.K)}};var Or=class extends L{constructor(e){super(e,Le.name)}_prepareForm(){this.formCreator.addLegend(this._("Link")).addTextInput("href",this._("URL"),{pattern:"(https?|/|mailto:|tel:).+",placeholder:this._("Insert link or leave empty to unlink")})}};var ct,Zi,Mr=class extends g{constructor(e){super(e);l(this,ct);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("inserta",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.A)).forEach(t=>h(this,ct,Zi).call(this,t))}inserta(e){h(this,ct,Zi).call(this,e.detail.element)}};ct=new WeakSet,Zi=function(e){let t=e.getAttribute("href");t?e.setAttribute("href",this.editor.url(t)):e.parentElement.replaceChild(this.editor.dom.createText(e.textContent),e)};var Xi={de:{Cancel:"Abbrechen","Insert link or leave empty to unlink":"Link eingeben oder zum Entfernen leer lassen",Link:"Link",Save:"Speichern",URL:"URL"}};var Le=class extends d{static get name(){return"link"}static get dependencies(){return[c]}init(){this._i18n(Xi),this._tag({name:r.A,group:s.FORMAT,attributes:["href"]}),new Mr(this.editor),this.editor.dialogs.set(new Or(this.editor)),this._command(r.A),this._formatbar(this._("Link"),a.L)}};var Ji={de:{mark:"markiert"}};var Cr=class extends d{static get name(){return"mark"}static get dependencies(){return[c]}init(){this._i18n(Ji),this._tag({name:r.MARK,group:s.FORMAT}),this._command(r.MARK),this._formatbar(this._("mark"),a.M)}};var ut,es,Sr=class extends g{constructor(e){super(e);l(this,ut);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("insertli",this),this.editor.root.addEventListener("deleteli",this),this.editor.root.addEventListener("insertol",this),this.editor.root.addEventListener("insertul",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.LI)).forEach(t=>h(this,ut,es).call(this,t))}insertli(e){h(this,ut,es).call(this,e.detail.element)}deleteli(e){e.detail.target.children.length===0&&e.detail.target.parentElement.removeChild(e.detail.target)}insertol(e){e.detail.element.children.length===0&&e.detail.element.appendChild(this.editor.dom.createElement(r.LI))}insertul(e){this.insertol(e)}};ut=new WeakSet,es=function(e){!(e.parentElement instanceof HTMLOListElement)&&!(e.parentElement instanceof HTMLUListElement)&&this.editor.dom.wrap(e,r.UL)};var je=class extends d{static get name(){return"list"}static get dependencies(){return[c,F]}init(){this._tag({name:r.LI,group:s.LISTITEM,children:[s.BREAK,s.FORMAT],deletable:!0,editable:!0,focusable:!0,navigable:!0,sortable:!0,enter:r.LI}),new Sr(this.editor)}};var ts={de:{"Ordered List":"Geordnete Liste"}};var yr=class extends d{static get name(){return"orderedlist"}static get dependencies(){return[c,je]}init(){this._i18n(ts),this._tag({name:r.OL,group:s.LIST,children:[s.LISTITEM],arbitrary:!0,deletable:!0,focusable:!0,navigable:!0,sortable:!0}),this._command(r.OL),this._toolbar(this._("Ordered List"))}};var ht,rs,Fr=class extends g{constructor(e){super(e);l(this,ht);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("insertp",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.P)).forEach(t=>h(this,ht,rs).call(this,t))}insertp(e){h(this,ht,rs).call(this,e.detail.element)}paste(e){this.editor.dom.window.setTimeout(()=>this.editor.filters.filter(e.target))}};ht=new WeakSet,rs=function(e){e.addEventListener("paste",this)};var is={de:{Paragraph:"Absatz"}};var Pr=class extends d{static get name(){return"paragraph"}static get dependencies(){return[c,F]}init(){this._i18n(is),this._tag({name:r.P,group:s.PARAGRAPH,children:[s.BREAK,s.FORMAT],deletable:!0,editable:!0,focusable:!0,navigable:!0,sortable:!0,enter:r.P}),new Fr(this.editor),this._command(r.P),this._toolbar(this._("Paragraph"))}};var kr=class extends D{filter(e){e instanceof HTMLElement&&e.localName===r.FIGURE&&e.classList.contains(H.name)&&e.querySelector(":scope > "+r.PRE)&&!e.querySelector(":scope > "+r.FIGCAPTION)&&(e.insertAdjacentElement(j.BEFOREBEGIN,e.querySelector(":scope > "+r.PRE)),e.parentElement.removeChild(e))}};var Ur=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insertpre",this),this.editor.root.addEventListener("deletepre",this)}insertpre(e){this.editor.dom.wrap(e.detail.element,r.FIGURE,{attributes:{class:H.name}})}deletepre(e){e.detail.target.localName===r.FIGURE&&e.detail.target.classList.contains(H.name)&&e.detail.target.parentElement.removeChild(e.detail.target)}};var ss={de:{"Preformatted Text":"Vorformatierter Text"}};var H=class extends d{static get name(){return"preformat"}static get dependencies(){return[c,F,B]}init(){this._i18n(ss),this._tag({name:r.PRE,group:s.PREFORMAT,children:[s.BREAK],deletable:!0,editable:!0,navigable:!0,enter:r.P}),new Ur(this.editor),this._command(r.PRE),this._toolbar(this._("Preformatted Text")),this.editor.filters.add(new kr(this.editor))}};var os={de:{Quote:"Zitat"}};var Gr=class extends d{static get name(){return"quote"}static get dependencies(){return[c]}init(){this._i18n(os),this._tag({name:r.Q,group:s.FORMAT}),this._command(r.Q),this._formatbar(this._("Quote"),a.Q)}};var as={de:{"Sample Output":"Beispielausgabe"}};var Hr=class extends d{static get name(){return"sample"}static get dependencies(){return[c]}init(){this._i18n(as),this._tag({name:r.SAMP,group:s.FORMAT}),this._command(r.SAMP),this._formatbar(this._("Sample Output"),a.O)}};var vr=class extends L{constructor(e){super(e,Ae.name)}_prepareForm(){this.formCreator.addLegend(this._("Section")).addTextInput("class",this._("CSS class"),{placeholder:this._("Insert CSS class")})}};var ns={de:{Cancel:"Abbrechen","CSS class":"CSS-Klasse","Insert CSS class":"CSS-Klasse eingeben",Save:"Speichern",Section:"Sektion"}};var Ae=class extends d{static get name(){return"section"}static get dependencies(){return[c]}init(){this._i18n(ns),this._tag({name:r.SECTION,group:s.CONTAINER,children:[s.AUDIO,s.FIGURE,s.HEADING,s.IFRAME,s.IMAGE,s.LIST,s.PARAGRAPH,s.PREFORMAT,s.QUOTE,s.RULE,s.TABLE,s.VIDEO],attributes:["class"],arbitrary:!0,deletable:!0,focusable:!0,navigable:!0,slotable:!0,sortable:!0}),this.editor.dialogs.set(new vr(this.editor)),this._command(r.SECTION),this._toolbar(this._("Section"))}};var ls={de:{small:"klein"}};var Vr=class extends d{static get name(){return"small"}static get dependencies(){return[c]}init(){this._i18n(ls),this._tag({name:r.SMALL,group:s.FORMAT}),this._command(r.SMALL),this._formatbar(this._("small"),a.W)}};var ft,Kr=class extends C{constructor(e,t){let i=Object.entries(R).find(([,n])=>n===t)?.[0].toLowerCase();if(!i)throw p.INVALID_ARGUMENT;super(e,Ie.name+"-"+i);l(this,ft,void 0);b(this,ft,t)}execute(){let e=this.editor.dom.getActiveElement();e?.hasAttribute("data-sortable")&&this.editor.dom.sort(e,m(this,ft))}};ft=new WeakMap;var ms={de:{"Sort first":"An den Anfang sortieren","Sort last":"Ans Ende sortieren","Sort next":"Eins zur\xFCck sortieren","Sort previous":"Eins vor sortieren"}};var Ie=class extends d{static get name(){return"sort"}static get dependencies(){return[c]}init(){this._i18n(ms);let e={[R.FIRST]:this._("Sort first"),[R.PREV]:this._("Sort previous"),[R.NEXT]:this._("Sort next"),[R.LAST]:this._("Sort last")};Object.entries(e).forEach(([t,i])=>{let n=new Kr(this.editor,t);this.editor.commands.set(n),this._focusbar(i,n.name)})}};var ds={de:{strikethrough:"durchgestrichen"}};var zr=class extends d{static get name(){return"strikethrough"}static get dependencies(){return[c]}init(){this._i18n(ds),this._tag({name:r.S,group:s.FORMAT}),this._command(r.S),this._formatbar(this._("strikethrough"),a.R)}};var cs={de:{"strongly emphasized":"stark betont"}};var qr=class extends d{static get name(){return"strong"}static get dependencies(){return[c]}init(){this._i18n(cs),this._tag({name:r.STRONG,group:s.FORMAT}),this._command(r.STRONG),this._formatbar(this._("strongly emphasized"),a.S)}};var us={de:{Subheading:"Unter\xFCberschrift"}};var Wr=class extends d{static get name(){return"subheading"}static get dependencies(){return[c]}init(){this._i18n(us),this._tag({name:r.H3,group:s.HEADING,deletable:!0,editable:!0,focusable:!0,navigable:!0,sortable:!0,enter:r.P}),this._command(r.H3),this._toolbar(this._("Subheading"))}};var hs={de:{subscript:"tiefgestellt"}};var $r=class extends d{static get name(){return"subscript"}static get dependencies(){return[c]}init(){this._i18n(hs),this._tag({name:r.SUB,group:s.FORMAT}),this._command(r.SUB),this._formatbar(this._("subscript"),a.X)}};var fs={de:{superscript:"hochgestellt"}};var Qr=class extends d{static get name(){return"superscript"}static get dependencies(){return[c]}init(){this._i18n(fs),this._tag({name:r.SUP,group:s.FORMAT}),this._command(r.SUP),this._formatbar(this._("superscript"),a.Y)}};var Yr=class extends C{constructor(e){super(e,S.name,r.TABLE)}insert({rows:e=1,cols:t=1}={}){let i=this.editor.dom.createElement(r.FIGURE,{attributes:{class:S.name}}),n=this.editor.dom.createElement(r.TABLE),u=this.editor.dom.createElement(r.TBODY);for(let f=0;f<e;f++){let E=this.editor.dom.createElement(r.TR);u.appendChild(E);for(let T=0;T<t;++T)E.appendChild(this.editor.dom.createElement(r.TD))}n.appendChild(u),i.appendChild(n),this.editor.dom.insert(i)}};var Zr=class extends L{constructor(e){super(e,S.name)}_prepareForm(){this.formCreator.addLegend(this._("Table")).addNumberInput("rows",this._("Rows"),{min:"1",required:"required",value:"1"}).addNumberInput("cols",this._("Columns"),{min:"1",required:"required",value:"1"})}};var Xr=class extends D{filter(e){e instanceof HTMLElement&&e.localName===r.FIGURE&&e.classList.contains(S.name)&&e.querySelector(":scope > "+r.TABLE)&&!e.querySelector(":scope > "+r.FIGCAPTION)?(e.insertAdjacentElement(j.BEFOREBEGIN,e.querySelector(":scope > "+r.TABLE)),e.parentElement.removeChild(e)):(e instanceof HTMLTableElement&&e.querySelector(`:scope > ${r.THEAD}, :scope > ${r.TFOOT}`)&&!e.querySelector(":scope > "+r.TBODY)||e instanceof HTMLTableSectionElement&&e.rows.length<=0||e instanceof HTMLTableRowElement&&!e.querySelector(`:scope > ${r.TH}:not(:empty), :scope > ${r.TD}:not(:empty)`))&&e.parentElement.removeChild(e)}};var se,ei,xe,pi,ti,ys,Jr=class extends g{constructor(e){super(e);l(this,se);l(this,xe);l(this,ti);this.editor.root.addEventListener("inserttable",this),this.editor.root.addEventListener("inserttd",this),this.editor.root.addEventListener("insertth",this)}inserttable(e){this.editor.dom.wrap(e.detail.element,r.FIGURE,{attributes:{class:S.name}}),e.detail.element.tBodies.length>0&&e.detail.element.tBodies[0].rows[0]&&(!e.detail.element.tHead||!e.detail.element.tFoot)&&(e.detail.element.tHead||h(this,se,ei).call(this,e.detail.element.createTHead(),e.detail.element.tBodies[0].rows[0].cells.length),e.detail.element.tFoot||h(this,se,ei).call(this,e.detail.element.createTFoot(),e.detail.element.tBodies[0].rows[0].cells.length))}inserttd(e){e.detail.element.addEventListener("keydown",this)}insertth(e){e.detail.element.addEventListener("keydown",this)}keydown(e){let t=e.target,i=t.parentElement,n=i.parentElement,u=n instanceof HTMLTableElement?n:n.parentElement,f=[a.LEFT,a.RIGHT,a.UP,a.DOWN],E=A(e,f),T=A(e,f,{ctrl:!0}),I=A(e,f,{alt:!0}),P=A(e,f,{alt:!0,shift:!0});if(t instanceof HTMLTableCellElement&&i instanceof HTMLTableRowElement&&(n instanceof HTMLTableElement||n instanceof HTMLTableSectionElement)&&u instanceof HTMLTableElement&&(E&&h(this,ti,ys).call(this,t,e.key)||T||I||P)){let _=t.cellIndex,U=i.cells.length,oe=n.rows.length,k=n instanceof HTMLTableElement?i.rowIndex:i.sectionRowIndex,li=_===0,mi=_===U-1,Is=k===0,xs=k===oe-1,gi=i.rowIndex===0,bi=i.rowIndex===u.rows.length-1;e.preventDefault(),e.stopPropagation(),E?e.key===a.LEFT&&!li?this.editor.dom.focusEnd(i.cells[_-1]):e.key===a.LEFT&&gi?this.editor.dom.focusEnd(u.rows[u.rows.length-1].cells[U-1]):e.key===a.LEFT?this.editor.dom.focusEnd(u.rows[i.rowIndex-1].cells[U-1]):e.key===a.RIGHT&&!mi?i.cells[_+1].focus():e.key===a.RIGHT&&bi?u.rows[0].cells[0].focus():e.key===a.RIGHT?u.rows[i.rowIndex+1].cells[0].focus():e.key===a.UP&&gi?u.rows[u.rows.length-1].cells[_].focus():e.key===a.UP?u.rows[i.rowIndex-1].cells[_].focus():e.key===a.DOWN&&bi?u.rows[0].cells[_].focus():e.key===a.DOWN&&u.rows[i.rowIndex+1].cells[_].focus():T?(e.key===a.LEFT&&U>1&&li?Array.from(u.rows).forEach(N=>N.appendChild(N.cells[_])):e.key===a.LEFT&&U>1?Array.from(u.rows).forEach(N=>N.insertBefore(N.cells[_],N.cells[_-1])):e.key===a.RIGHT&&U>1&&mi?Array.from(u.rows).forEach(N=>N.insertBefore(N.cells[_],N.cells[0])):e.key===a.RIGHT&&U>1?Array.from(u.rows).forEach(N=>N.insertBefore(N.cells[_+1],N.cells[_])):e.key===a.UP&&oe>1&&Is?n.appendChild(i):e.key===a.UP&&oe>1?n.insertBefore(i,n.rows[k-1]):e.key===a.DOWN&&oe>1&&xs?n.insertBefore(i,n.rows[0]):e.key===a.DOWN&&oe>1&&n.insertBefore(n.rows[k+1],i),t.focus()):I?e.key===a.LEFT?Array.from(u.rows).forEach(N=>h(this,xe,pi).call(this,N,N.cells[_])):e.key===a.RIGHT?Array.from(u.rows).forEach(N=>h(this,xe,pi).call(this,N,N.cells[_+1])):e.key===a.UP?h(this,se,ei).call(this,n,U,k):e.key===a.DOWN&&h(this,se,ei).call(this,n,U,k+1):P&&(e.key===a.LEFT&&!li?Array.from(u.rows).forEach(N=>N.deleteCell(_-1)):e.key===a.RIGHT&&!mi?Array.from(u.rows).forEach(N=>N.deleteCell(_+1)):e.key===a.UP&&k>0?n.deleteRow(k-1):e.key===a.DOWN&&k<oe-1&&n.deleteRow(k+1))}}};se=new WeakSet,ei=function(e,t,i=0){let n=e.insertRow(i);for(let u=0;u<t;u++)h(this,xe,pi).call(this,n)},xe=new WeakSet,pi=function(e,t=null){let i=e.parentElement.localName===r.THEAD?r.TH:r.TD;e.insertBefore(this.editor.dom.createElement(i),t)},ti=new WeakSet,ys=function(e,t){if([a.UP,a.DOWN].includes(t))return!0;let i=this.editor.dom.getSelection(),n=i.anchorNode instanceof HTMLElement&&i.anchorNode;if(!i.isCollapsed)return!1;if(t===a.LEFT){let f=e.firstChild;return f instanceof HTMLElement&&(f=f.firstChild),i.anchorOffset===0&&[e,f].includes(n)}let u=e.lastChild;return e.lastChild instanceof HTMLBRElement&&e.lastChild.previousSibling&&(u=e.lastChild.previousSibling),u instanceof HTMLElement&&(u=u.lastChild),i.anchorOffset===n.textContent.length&&[e,u].includes(n)};var ps={de:{Cancel:"Abbrechen",Columns:"Spalten",Rows:"Zeilen",Save:"Speichern",Table:"Tabelle"}};var S=class extends d{static get name(){return"table"}static get dependencies(){return[c,F,B]}init(){this._i18n(ps),this._tag({name:r.TABLE,group:s.TABLE,children:[s.TABLESECTION],deletable:!0,navigable:!0}),this._tag({name:r.THEAD,group:s.TABLESECTION,children:[s.TABLEROW]}),this._tag({name:r.TBODY,group:s.TABLESECTION,children:[s.TABLEROW]}),this._tag({name:r.TFOOT,group:s.TABLESECTION,children:[s.TABLEROW]}),this._tag({name:r.TR,group:s.TABLEROW,children:[s.TABLECELL]}),this._tag({name:r.TH,group:s.TABLECELL,children:[s.BREAK,s.FORMAT],editable:!0,empty:!0}),this._tag({name:r.TD,group:s.TABLECELL,children:[s.BREAK,s.FORMAT],editable:!0,empty:!0}),new Jr(this.editor),this.editor.filters.add(new Xr(this.editor)),this.editor.dialogs.set(new Zr(this.editor)),this.editor.commands.set(new Yr(this.editor)),this._toolbar(this._("Table"))}};var ri=class extends L{constructor(e){super(e,Ne.name)}_prepareForm(){this.formCreator.addLegend(this._("Data")).addTextInput("datetime",this._("Machine-readable Datetime"),{placeholder:this._("Insert date/time or leave empty to remove it")})}};var gs={de:{Cancel:"Abbrechen","Insert date/time or leave empty to remove it":"Datum/Zeit eingeben oder zum Entfernen leer lassen","Machine-readable Datetime":"Maschinenlesbare Datums-/Zeitangabe",Save:"Speichern",Time:"Zeit"}};var Ne=class extends d{static get name(){return"time"}static get dependencies(){return[c]}init(){this._i18n(gs),this._tag({name:r.TIME,group:s.FORMAT,attributes:["datetime"]}),this.editor.dialogs.set(new ri(this.editor)),this._command(r.TIME),this._formatbar(this._("Time"),a.T)}};var bs={de:{underline:"unterstrichen"}};var ii=class extends d{static get name(){return"underline"}static get dependencies(){return[c]}init(){this._i18n(bs),this._tag({name:r.U,group:s.FORMAT}),this._command(r.U),this._formatbar(this._("underline"),a.U)}};var Es={de:{"Unordered List":"Ungeordnete Liste"}};var si=class extends d{static get name(){return"unorderedlist"}static get dependencies(){return[c,je]}init(){this._i18n(Es),this._tag({name:r.UL,group:s.LIST,children:[s.LISTITEM],arbitrary:!0,deletable:!0,focusable:!0,navigable:!0,sortable:!0}),this._command(r.UL),this._toolbar(this._("Unordered List"))}};var Ts={de:{Variable:"Variable"}};var oi=class extends d{static get name(){return"variable"}static get dependencies(){return[c]}init(){this._i18n(Ts),this._tag({name:r.VAR,group:s.FORMAT}),this._command(r.VAR),this._formatbar(this._("Variable"),a.V)}};var ai=class extends L{constructor(e,t=void 0){super(e,X.name,t)}_prepareForm(){this.formCreator.addLegend(this._("Video")).addTextInput("src",this._("URL"),{pattern:"(https?|/).+",placeholder:this._("Insert URL to video"),required:"required"}).addNumberInput("width",this._("Width")).addNumberInput("height",this._("Height")).addTextInput("id",this._("ID"))}};var pt,Ls,ni=class extends g{constructor(e){super(e);l(this,pt);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("insertvideo",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.VIDEO)).forEach(t=>h(this,pt,Ls).call(this,t))}insertvideo(e){h(this,pt,Ls).call(this,e.detail.element)}};pt=new WeakSet,Ls=function(e){let t=e.getAttribute("src");t?(e.setAttribute("src",this.editor.url(t)),e.controls=!0,this.editor.dom.wrap(e,r.FIGURE,{attributes:{class:X.name}})):e.parentElement.removeChild(e)};var js={de:{Cancel:"Abbrechen",Height:"H\xF6he",ID:"ID","Insert URL to video":"URL zur Videodatei eingeben",Save:"Speichern",URL:"URL",Video:"Video",Width:"Breite"}};var X=class extends d{static get name(){return"video"}static get dependencies(){return[c,B]}static get config(){return{browser:void 0}}init(){this._i18n(js),this._tag({name:r.VIDEO,group:s.VIDEO,attributes:["controls","height","id","src","width"],empty:!0,navigable:!0}),new ni(this.editor),this.editor.dialogs.set(new ai(this.editor,this.editor.config.video.browser)),this._command(r.VIDEO),this._toolbar(this._("Video"))}};var As=class extends w{static get defaultConfig(){return{base:{plugins:[cr,wr,qr,jr,ii,zr,Le,Cr,Vr,pr,ue,Gr,ur,hr,Br,Hr,oi,$r,Qr,Ne,ge,Dr,br,Pr,Ar,Wr,si,yr,Ir,G,Z,X,Q,Y,S,H,Ae,Ee,Te,pe,fe,Ie,be]}}}};export{As as default};
1
+ var _s=Object.defineProperty;var Ds=(o,e,t)=>e in o?_s(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var O=(o,e,t)=>(Ds(o,typeof e!="symbol"?e+"":e,t),t),ci=(o,e,t)=>{if(!e.has(o))throw TypeError("Cannot "+t)};var m=(o,e,t)=>(ci(o,e,"read from private field"),t?t.call(o):e.get(o)),l=(o,e,t)=>{if(e.has(o))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(o):e.set(o,t)},b=(o,e,t,i)=>(ci(o,e,"write to private field"),i?i.call(o,t):e.set(o,t),t);var u=(o,e,t)=>(ci(o,e,"access private method"),t);var S=Object.freeze({CENTER:"center",LEFT:"left",NONE:"none",RIGHT:"right"}),p=Object.freeze({INVALID_ARGUMENT:"Invalid argument",MISSING_NAME:"Missing name",NOT_IMPLEMENTED:"Not implemented"}),a=Object.freeze({A:"a",B:"b",BACKSPACE:"Backspace",C:"c",D:"d",DEL:"Delete",DOWN:"ArrowDown",E:"e",END:"End",ENTER:"Enter",ESC:"Escape",F:"f",G:"g",HOME:"Home",I:"i",J:"j",K:"k",L:"l",LEFT:"ArrowLeft",M:"m",O:"o",Q:"q",R:"r",RIGHT:"ArrowRight",S:"s",SPACE:" ",T:"t",TAB:"Tab",U:"u",UP:"ArrowUp",V:"v",W:"w",X:"x",Y:"y",Z:"z"}),A=Object.freeze({AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"}),D=Object.freeze({FIRST:"first",LAST:"last",NEXT:"next",PREV:"prev"}),s=Object.freeze({AUDIO:"audio",BLOCK:"block",BREAK:"break",CAPTION:"caption",CONTAINER:"container",FIGURE:"figure",FORMAT:"format",HEADING:"heading",IFRAME:"iframe",IMAGE:"image",LIST:"list",LISTITEM:"listitem",PARAGRAPH:"paragraph",PREFORMAT:"preformat",QUOTE:"quote",ROOT:"root",RULE:"rule",SLOT:"slot",SUMMARY:"summary",TABLE:"table",TABLECELL:"tablecell",TABLEROW:"tablerow",TABLESECTION:"tablesection",VIDEO:"video"}),r=Object.freeze({A:"a",ABBR:"abbr",ALL:"*",AUDIO:"audio",B:"b",BLOCK:"app-block",BLOCKQUOTE:"blockquote",BR:"br",BUTTON:"button",CITE:"cite",CODE:"code",DATA:"data",DEL:"del",DETAILS:"details",DFN:"dfn",DIALOG:"editor-dialog",DIV:"div",EDITOR:"akilli-editor",EM:"em",FIELDSET:"fieldset",FIGCAPTION:"figcaption",FIGURE:"figure",FOCUSBAR:"editor-focusbar",FORM:"form",FORMATBAR:"editor-formatbar",H2:"h2",H3:"h3",HR:"hr",I:"i",IFRAME:"iframe",IMG:"img",INPUT:"input",INS:"ins",KBD:"kbd",LABEL:"label",LEGEND:"legend",LI:"li",MARK:"mark",OL:"ol",P:"p",PRE:"pre",Q:"q",ROOT:"editor-root",S:"s",SAMP:"samp",SECTION:"section",SLOT:"slot",SMALL:"small",STRONG:"strong",SUB:"sub",SUMMARY:"summary",SUP:"sup",TABLE:"table",TBODY:"tbody",TD:"td",TFOOT:"tfoot",TH:"th",THEAD:"thead",TIME:"time",TOOLBAR:"editor-toolbar",TR:"tr",U:"u",UL:"ul",VAR:"var",VIDEO:"video"}),bt=Object.freeze({FUNCTION:"function",STRING:"string",UNDEFINED:"undefined"});function I(o,e,{alt:t=!1,ctrl:i=!1,shift:n=!1}={}){return(Array.isArray(e)&&e.includes(o.key)||o.key===e)&&o.altKey===t&&o.ctrlKey===i&&o.shiftKey===n}function De(o){return typeof o===bt.UNDEFINED}function v(o){return typeof o===bt.FUNCTION}function x(o){return o&&typeof o===bt.STRING}function V(o){return De(o)||x(o)}function hi(o){return De(o)||Array.isArray(o)&&o.length>0}function ui(o){return De(o)||o instanceof HTMLElement}var Re,we,Be,Oe,Se,Ti,Me,Li,C=class{constructor(e,t,i=void 0){l(this,Se);l(this,Me);l(this,Re,void 0);l(this,we,void 0);l(this,Be,void 0);l(this,Oe,void 0);if(!(e instanceof w)||!x(t)||!V(i))throw p.INVALID_ARGUMENT;b(this,Re,e),b(this,we,t),b(this,Be,i&&this.editor.tags.get(i)),b(this,Oe,this.editor.dialogs.get(t))}get editor(){return m(this,Re)}get name(){return m(this,we)}get tag(){return m(this,Be)}get dialog(){return m(this,Oe)}execute(){this.dialog?this.openDialog():this.insert(u(this,Se,Ti).call(this))}insert(e={}){if(!this.tag)return;u(this,Me,Li).call(this,e);let t=this.editor.dom.getSelectedElementByName(this.tag.name);this.tag.group!==s.FORMAT?this.editor.dom.insert(this.editor.dom.createElement(this.tag.name,{attributes:e})):t&&Object.keys(e).length>0?t.parentElement.replaceChild(this.editor.dom.createElement(this.tag.name,{attributes:e,html:t.textContent}),t):t?t.parentElement.replaceChild(this.editor.dom.createText(t.textContent),t):this.editor.dom.format(this.editor.dom.createElement(this.tag.name,{attributes:e}))}openDialog(){this.dialog?.open(e=>this.insert(e),u(this,Se,Ti).call(this))}};Re=new WeakMap,we=new WeakMap,Be=new WeakMap,Oe=new WeakMap,Se=new WeakSet,Ti=function(){if(!this.tag)return{};let e=this.editor.dom.getSelectedAttributesByName(this.tag.name);return u(this,Me,Li).call(this,e),e},Me=new WeakSet,Li=function(e){Object.keys(e).forEach(t=>this.tag.attributes.includes(t)&&e[t]||delete e[t])};var K,Et=class{constructor(e=[]){l(this,K,new Map);e.forEach(t=>this.set(t))}get(e){return m(this,K).get(e)}set(e){if(!(e instanceof C))throw p.INVALID_ARGUMENT;m(this,K).set(e.name,e)}find(e){return Array.from(m(this,K).values()).find(t=>t.tag?.name===e)}execute(e){this.get(e).execute()}freeze(){m(this,K).forEach(e=>Object.freeze(e)),Object.freeze(m(this,K)),Object.freeze(this)}};K=new WeakMap;var J,Tt=class{constructor(e=[]){l(this,J,new Map);e.forEach(t=>this.set(t))}get(e){return m(this,J).get(e)}set(e){if(!(e instanceof L))throw p.INVALID_ARGUMENT;m(this,J).set(e.name,e)}freeze(){m(this,J).forEach(e=>Object.freeze(e)),Object.freeze(m(this,J)),Object.freeze(this)}};J=new WeakMap;var ae,ne,fi,Lt,Rs,ee=class{constructor(e){l(this,ne);l(this,Lt);l(this,ae,void 0);if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;b(this,ae,e),this.register(u(this,Lt,Rs).bind(this))}dispatch(e,t=void 0,i=void 0){if(!x(e)||!ui(t)||!ui(i))throw p.INVALID_ARGUMENT;m(this,ae).dispatchEvent(new CustomEvent(e,{detail:{element:t,target:i}}))}register(e,t={childList:!0,subtree:!0}){if(!v(e))throw p.INVALID_ARGUMENT;new MutationObserver(e).observe(m(this,ae),t)}};ae=new WeakMap,ne=new WeakSet,fi=function(e,t,i){t instanceof HTMLElement&&i instanceof HTMLElement&&(this.dispatch(e,t,i),this.dispatch(`${e}${t.localName.replace("-","")}`,t,i))},Lt=new WeakSet,Rs=function(e){e.forEach(t=>{t.addedNodes.forEach(i=>{i instanceof HTMLElement&&(u(this,ne,fi).call(this,"insert",i,t.target),Array.from(i.getElementsByTagName(r.ALL)).forEach(n=>u(this,ne,fi).call(this,"insert",n,t.target)))}),t.removedNodes.forEach(i=>i instanceof HTMLElement&&u(this,ne,fi).call(this,"delete",i,t.target))})};var Ce,ye,Fe,Pe,jt,At,ws,le=class{constructor(e,t){l(this,At);l(this,Ce,void 0);l(this,ye,void 0);l(this,Fe,void 0);l(this,Pe,void 0);l(this,jt,{alwaysRaised:"yes",dependent:"yes",height:"",location:"no",menubar:"no",minimizable:"no",modal:"yes",resizable:"yes",scrollbars:"yes",toolbar:"no",width:""});if(!(e instanceof w)||!(t instanceof Document))throw p.INVALID_ARGUMENT;b(this,Ce,e),b(this,ye,t),b(this,Fe,this.document.defaultView),b(this,Pe,this.document.documentElement)}get editor(){return m(this,Ce)}get document(){return m(this,ye)}get window(){return m(this,Fe)}get root(){return m(this,Pe)}registerElement(e,t,i=void 0){De(this.window.customElements.get(e))&&this.window.customElements.define(e,t,i?{extends:i}:void 0)}createElement(e,{attributes:t={},html:i=""}={}){let n=this.document.createElement(e);return n.innerHTML=i,Object.entries(t).forEach(([h,f])=>f&&n.setAttribute(h,`${f}`)),n}insert(e){if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;let t=this.getSelectedEditable();if(t instanceof HTMLSlotElement&&this.editor.tags.allowed(t.parentElement,e))t.insertAdjacentElement(A.BEFOREBEGIN,e);else if(t)this.closest(t,e)?.insertAdjacentElement(A.AFTEREND,e),t.hasAttribute("data-deletable")&&!t.textContent.trim()&&t.parentElement.removeChild(t);else if(this.editor.tags.allowed(this.editor.root,e))this.editor.root.appendChild(e);else throw p.INVALID_ARGUMENT}insertText(e){let t=this.getSelectedEditable();if(t){let i=this.getRange();i.deleteContents(),i.insertNode(this.createText(e)),i.collapse(),t.normalize()}}format(e){if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;let t=this.getRange(),i=this.getSelectedEditable();if(!t||t.collapsed||!t.toString().trim()||!i||!this.editor.tags.allowed(i,e))return;t.startContainer instanceof Text&&t.startContainer.parentElement!==i&&t.setStartBefore(t.startContainer.parentElement),t.endContainer instanceof Text&&t.endContainer.parentElement!==i&&t.setEndAfter(t.endContainer.parentElement);let n=t.toString(),h=Array.from(t.cloneContents().childNodes).every(f=>f instanceof Text&&!f.textContent.trim()||f instanceof HTMLElement&&f.localName===e.localName);t.deleteContents(),h?t.insertNode(this.createText(n)):(e.textContent=n,t.insertNode(e)),i.normalize()}createText(e){return this.document.createTextNode(e)}arbitrary(e){return e===this.editor.root||e?.hasAttribute("data-arbitrary")}contains(e){if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;if(this.editor.root.contains(e))return!0;let t=e.closest(this.editor.root.localName);return t&&!t.parentElement}closest(e,t){if(!(e instanceof HTMLElement)||!this.contains(e.parentElement))throw p.INVALID_ARGUMENT;let i=e,n=e.parentElement;do if(this.arbitrary(n)&&this.editor.tags.allowed(n,t))return i;while((i=n)&&(n=n.parentElement)&&this.contains(n))}wrap(e,t,i={}){let n;if(e instanceof HTMLElement){if(e.parentElement.localName!==t&&(n=this.closest(e,t))){let h=this.createElement(t,i);n.insertAdjacentElement(A.AFTEREND,h),h.appendChild(e)}}else throw p.INVALID_ARGUMENT}getActiveElement(){let e=this.document.activeElement;return e&&this.contains(e)?e:void 0}getSelectedElement(){let e=this.getSelection(),t=e.anchorNode instanceof Text?e.anchorNode.parentElement:e.anchorNode,i=e.focusNode instanceof Text?e.focusNode.parentElement:e.focusNode;if(t instanceof HTMLElement&&i instanceof HTMLElement&&t===i&&this.contains(t))return t}getSelectedElementByName(e){let t=this.getSelectedElement();return t?.localName===e&&t||void 0}getSelectedAttributesByName(e){let t=this.getSelectedElementByName(e),i={};return t&&Array.from(t.attributes).forEach(n=>i[n.nodeName]=n.nodeValue),i}getSelectedEditable(){let e=this.getSelection(),t=e.anchorNode instanceof Text?e.anchorNode.parentElement:e.anchorNode,i=e.focusNode instanceof Text?e.focusNode.parentElement:e.focusNode;if(t instanceof HTMLElement&&i instanceof HTMLElement){let n=t.closest("[contenteditable=true]"),h=i.closest("[contenteditable=true]");if(n instanceof HTMLElement&&n===h&&this.contains(n))return n}}getSelection(){return this.window.getSelection()}getRange(){let e=this.getSelection();return e.rangeCount>0?e.getRangeAt(0):void 0}setRange(e){let t=this.getSelection();t.removeAllRanges(),t.addRange(e)}selectContents(e){if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;let t=this.document.createRange();t.selectNodeContents(e),this.setRange(t)}focusEnd(e){if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;e.focus();let t=this.document.createRange();t.selectNodeContents(e),t.collapse(),this.setRange(t)}delete(e){if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;let t=e.previousElementSibling,i=e.nextElementSibling;e.parentElement.removeChild(e),t instanceof HTMLElement&&t.hasAttribute("data-focusable")?this.focusEnd(t):i instanceof HTMLElement&&i.hasAttribute("data-focusable")&&i.focus()}sort(e,t){if(!(e instanceof HTMLElement)||!Object.values(D).includes(t))throw p.INVALID_ARGUMENT;let i=e.parentElement,n=e.previousElementSibling,h=e.nextElementSibling,f=i.firstElementChild,E=i.lastElementChild,T=e===f,j=e===E;t===D.PREV&&!T&&n.hasAttribute("data-sortable")?(n.insertAdjacentHTML(A.BEFOREBEGIN,e.outerHTML),i.removeChild(e)):t===D.NEXT&&!j&&h.hasAttribute("data-sortable")?(h.insertAdjacentHTML(A.AFTEREND,e.outerHTML),i.removeChild(e)):(t===D.FIRST&&!T||t===D.NEXT&&j)&&f.hasAttribute("data-sortable")?(f.insertAdjacentHTML(A.BEFOREBEGIN,e.outerHTML),i.removeChild(e)):(t===D.LAST&&!j||t===D.PREV&&T)&&E.hasAttribute("data-sortable")&&(E.insertAdjacentHTML(A.AFTEREND,e.outerHTML),i.removeChild(e))}open({url:e,name:t,call:i,params:n={}}){if(!x(e)||!x(t)||!v(i))throw p.INVALID_ARGUMENT;let h=this.createElement(r.A,{attributes:{href:e}}),f=new URL(h.href);Object.entries(n).forEach(([T,j])=>f.searchParams.set(T,`${j}`));let E=this.window.open(f.toString(),t,u(this,At,ws).call(this));this.window.addEventListener("message",T=>{T.origin===f.origin&&T.source===E&&(i(T.data),E.close())},!1)}getWidth(){return this.window.screen.width}getHeight(){return this.window.screen.height}};Ce=new WeakMap,ye=new WeakMap,Fe=new WeakMap,Pe=new WeakMap,jt=new WeakMap,At=new WeakSet,ws=function(){let e=Object.assign({},m(this,jt),{height:`${this.getHeight()}`,width:`${this.getWidth()}`},this.editor.config.base.browser);return Object.entries(e).filter(([,t])=>!!t).map(([t,i])=>`${t}=${i}`).join(",")};var ke,R=class{constructor(e){l(this,ke,void 0);if(!(e instanceof w))throw p.INVALID_ARGUMENT;b(this,ke,e)}get editor(){return m(this,ke)}filter(e){throw p.NOT_IMPLEMENTED}};ke=new WeakMap;var te,It=class{constructor(){l(this,te,new Set)}add(e){if(!(e instanceof R))throw p.INVALID_ARGUMENT;m(this,te).add(e)}filter(e){if(!(e instanceof HTMLElement))throw p.INVALID_ARGUMENT;m(this,te).forEach(t=>{e.normalize(),t.filter(e)})}freeze(){m(this,te).forEach(e=>Object.freeze(e)),Object.freeze(m(this,te)),Object.freeze(this)}};te=new WeakMap;var me=class{constructor({name:e,group:t,...i}={}){O(this,"name");O(this,"group");O(this,"children");O(this,"attributes");O(this,"alignable");O(this,"arbitrary");O(this,"deletable");O(this,"editable");O(this,"empty");O(this,"focusable");O(this,"navigable");O(this,"slotable");O(this,"sortable");O(this,"enter");if(!x(e)||!x(t)||!hi(i.children)||!hi(i.attributes)||!V(i.enter))throw p.INVALID_ARGUMENT;this.name=e,this.group=t,this.children=i.children||[],this.attributes=i.attributes||[],this.arbitrary=i.arbitrary===!0,this.alignable=i.alignable===!0,this.deletable=i.deletable===!0,this.editable=i.editable===!0,this.empty=i.empty===!0,this.focusable=i.focusable===!0,this.navigable=i.navigable===!0,this.slotable=i.slotable===!0,this.sortable=i.sortable===!0,this.enter=i.enter}};var Ue,de,pi,d=class{constructor(e){l(this,de);l(this,Ue,void 0);if(!(e instanceof w))throw p.INVALID_ARGUMENT;b(this,Ue,e)}get editor(){return m(this,Ue)}static get name(){throw p.MISSING_NAME}static get dependencies(){return[]}static get config(){return{}}init(){throw p.NOT_IMPLEMENTED}_(e){return this.editor.translator.translate(this.constructor.name,e)}_base(e){return this.editor.translator.translate("base",e)}_i18n(e){e[this.editor.config.base.lang]&&this.editor.translator.set(this.constructor.name,e[this.editor.config.base.lang])}_tag(e){this.editor.tags.set(new me(e))}_command(e){this.editor.commands.set(new C(this.editor,this.constructor.name,e))}_toolbar(e,t=void 0){this.editor.toolbar.appendChild(u(this,de,pi).call(this,e,e,void 0,t))}_formatbar(e,t=void 0,i=void 0){let n=this._base("Alt"),h=this._base("Shift"),f=e+(t?` [${n} + ${h} + ${t}]`:"");this.editor.formatbar.appendChild(u(this,de,pi).call(this,e,f,t,i))}_focusbar(e,t=void 0){this.editor.focusbar.appendChild(u(this,de,pi).call(this,e,e,void 0,t))}};Ue=new WeakMap,de=new WeakSet,pi=function(e,t,i=void 0,n=void 0){if(!x(e)||!x(t)||!V(i))throw p.INVALID_ARGUMENT;return this.editor.dom.createElement(r.BUTTON,{attributes:{type:"button",title:t,"data-command":n||this.constructor.name,"data-key":i},html:e})};var z,xt=class{constructor(e=[]){l(this,z,new Map);e.forEach(t=>this.set(t))}get(e){return m(this,z).get(e)}set(e){if(!(e instanceof d))throw p.INVALID_ARGUMENT;m(this,z).set(e.constructor.name,e)}init(){m(this,z).forEach(e=>e.init())}freeze(){m(this,z).forEach(e=>Object.freeze(e)),Object.freeze(m(this,z)),Object.freeze(this)}};z=new WeakMap;var re,Nt=class{constructor(e=[]){l(this,re,new Map);e.forEach(t=>this.set(t))}get(e){return m(this,re).get(e instanceof HTMLElement?e.localName:e)}set(e){if(!(e instanceof me))throw p.INVALID_ARGUMENT;m(this,re).set(e.name,e)}allowed(e,t,i=!1){let n=i?t:this.get(t)?.group;return!!this.get(e)?.children.includes(n)}freeze(){m(this,re).forEach(e=>{Object.freeze(e.children),Object.freeze(e.attributes),Object.freeze(e)}),Object.freeze(m(this,re)),Object.freeze(this)}};re=new WeakMap;var ie,_t=class{constructor(){l(this,ie,new Map)}get(e){return m(this,ie).get(e)}set(e,t){if(!x(e)||!(t instanceof Object))throw p.INVALID_ARGUMENT;m(this,ie).set(e,t)}translate(e,t){return this.get(e)?.[t]||t}freeze(){m(this,ie).forEach(e=>Object.freeze(e)),Object.freeze(m(this,ie)),Object.freeze(this)}};ie=new WeakMap;var Ge,ce,He,ve,Ve,Ke,ze,qe,We,$e,Qe,Ye,Dt,Rt,wt,Bt,Ot,St,w=class{constructor(e,t={}){l(this,Ge,void 0);l(this,ce,{});l(this,He,void 0);l(this,ve,void 0);l(this,Ve,void 0);l(this,Ke,void 0);l(this,ze,void 0);l(this,qe,void 0);l(this,We,void 0);l(this,$e,void 0);l(this,Qe,void 0);l(this,Ye,void 0);l(this,Dt,new _t);l(this,Rt,new Nt);l(this,wt,new It);l(this,Bt,new Tt);l(this,Ot,new Et);l(this,St,new xt);if(!(e instanceof HTMLElement)||!(t instanceof Object))throw p.INVALID_ARGUMENT;b(this,Ge,e),b(this,ce,t),b(this,He,new le(this,this.orig.ownerDocument)),b(this,ve,this.dom.createElement(r.EDITOR)),b(this,Ve,this.dom.createElement(r.TOOLBAR,{attributes:{role:"toolbar"}})),this.element.appendChild(this.toolbar),b(this,Ke,new ee(this.toolbar)),b(this,ze,this.dom.createElement(r.FORMATBAR,{attributes:{role:"toolbar"}})),this.formatbar.hidden=!0,this.element.appendChild(this.formatbar),b(this,qe,new ee(this.formatbar)),b(this,We,this.dom.createElement(r.FOCUSBAR,{attributes:{role:"toolbar"}})),this.focusbar.hidden=!0,this.element.appendChild(this.focusbar),b(this,$e,new ee(this.focusbar)),b(this,Qe,this.dom.createElement(r.ROOT)),this.element.appendChild(this.root),b(this,Ye,new ee(this.root))}get orig(){return m(this,Ge)}get config(){return m(this,ce)}get dom(){return m(this,He)}get element(){return m(this,ve)}get toolbar(){return m(this,Ve)}get toolbarDispatcher(){return m(this,Ke)}get formatbar(){return m(this,ze)}get formatbarDispatcher(){return m(this,qe)}get focusbar(){return m(this,We)}get focusbarDispatcher(){return m(this,$e)}get root(){return m(this,Qe)}get rootDispatcher(){return m(this,Ye)}get translator(){return m(this,Dt)}get tags(){return m(this,Rt)}get filters(){return m(this,wt)}get dialogs(){return m(this,Bt)}get commands(){return m(this,Ot)}get plugins(){return m(this,St)}static get defaultConfig(){return{}}init(){let e=this.config;b(this,ce,{});let t=this.constructor.defaultConfig.base?.plugins||[],i=t;if(Array.isArray(e.base?.plugins)&&e.base.plugins.length>0){let f=e.base.plugins;e.base?.pluginsDisabled?i=i.filter(E=>!f.includes(E.name)):(i=[],f.forEach(E=>{let T=t.find(j=>j.name===E);T&&i.push(T)}))}let n=new Set,h=f=>{f.dependencies?.forEach(h),n.add(f)};i.map(h),n.forEach(f=>{Object.entries(f.config).forEach(([E,T])=>{var j,M;(j=this.config)[M=f.name]??(j[M]={}),this.config[f.name][E]=e[f.name]?.[E]||this.constructor.defaultConfig[f.name]?.[E]||T}),this.plugins.set(new f(this))}),this.config.base.lang&&(this.element.lang=this.config.base.lang),this.plugins.init(),this.toolbarDispatcher.dispatch("init"),this.formatbarDispatcher.dispatch("init"),this.focusbarDispatcher.dispatch("init"),this.rootDispatcher.dispatch("init")}freeze(){Object.freeze(this.config),this.translator.freeze(),this.tags.freeze(),this.filters.freeze(),this.dialogs.freeze(),this.commands.freeze(),this.plugins.freeze()}load(){this.orig instanceof HTMLTextAreaElement?(this.orig.form.addEventListener("submit",()=>this.save()),this.setHtml(this.orig.value.replace("/&nbsp;/g"," "))):this.setHtml(this.orig.innerHTML),this.orig.insertAdjacentElement(A.AFTEREND,this.element),this.orig.hidden=!0,this.rootDispatcher.dispatch("load")}destroy(){this.element.parentElement.removeChild(this.element),this.orig.hidden=!1,this.rootDispatcher.dispatch("destroy")}getHtml(){let e=this.dom.createElement(this.root.localName,{html:this.root.innerHTML});return this.filters.filter(e),this.rootDispatcher.dispatch("gethtml",e),e.innerHTML}setHtml(e){let t=this.dom.createElement(this.root.localName,{html:e});this.rootDispatcher.dispatch("sethtml",t),this.filters.filter(t),this.root.innerHTML=t.innerHTML}save(){this.orig instanceof HTMLTextAreaElement?this.orig.value=this.getHtml():this.orig.innerHTML=this.getHtml(),this.rootDispatcher.dispatch("save")}url(e){let t=this.dom.window.origin||this.dom.window.location.origin,i=this.dom.createElement(r.A,{attributes:{href:e}});return t===i.origin?i.pathname:i.href}static create(e,t={}){let i=new this(e,t);return i.init(),i.freeze(),i.load(),i}};Ge=new WeakMap,ce=new WeakMap,He=new WeakMap,ve=new WeakMap,Ve=new WeakMap,Ke=new WeakMap,ze=new WeakMap,qe=new WeakMap,We=new WeakMap,$e=new WeakMap,Qe=new WeakMap,Ye=new WeakMap,Dt=new WeakMap,Rt=new WeakMap,wt=new WeakMap,Bt=new WeakMap,Ot=new WeakMap,St=new WeakMap;var F,q,W,Ct,Bs,yt,Os,Mt=class{constructor(e,t,i,n){l(this,Ct);l(this,yt);l(this,F,void 0);l(this,q,void 0);l(this,W,void 0);var h,f;if(!(e instanceof le)||!x(t)||!x(i)||!v(n))throw p.INVALID_ARGUMENT;b(this,F,e),b(this,q,m(this,F).createElement(r.FORM,{attributes:{method:"dialog"}})),u(f=u(h=this.addFieldset(),Ct,Bs).call(h,i,n),yt,Os).call(f,t)}get form(){return m(this,q)}addFieldset(){let e=m(this,F).createElement(r.FIELDSET);return m(this,W)?m(this,W).insertAdjacentElement(A.AFTEREND,e):m(this,q).insertAdjacentElement(A.AFTERBEGIN,e),b(this,W,e),this}addLegend(e){if(!x(e))throw p.INVALID_ARGUMENT;return m(this,W).appendChild(m(this,F).createElement(r.LEGEND,{html:e})),this}addTextInput(e,t,i={}){return this.addInput(e,t,i,"text")}addNumberInput(e,t,i={}){return this.addInput(e,t,i,"number")}addInput(e,t,i={},n="text"){if(!x(e)||!x(t)||!x(n))throw p.INVALID_ARGUMENT;Object.assign(i,{id:`editor-${e}`,name:e,type:n});let h=m(this,F).createElement(r.DIV);return h.appendChild(m(this,F).createElement(r.LABEL,{attributes:{for:i.id},html:t})),h.appendChild(m(this,F).createElement(r.INPUT,{attributes:i})),i.required&&h.setAttribute("data-required",""),m(this,W).appendChild(h),this}};F=new WeakMap,q=new WeakMap,W=new WeakMap,Ct=new WeakSet,Bs=function(e,t){let i=m(this,F).createElement(r.BUTTON,{attributes:{type:"button"},html:e});return i.addEventListener("click",t),m(this,q).appendChild(i),this},yt=new WeakSet,Os=function(e){return m(this,q).appendChild(m(this,F).createElement(r.BUTTON,{html:e})),this};var Ze,Xe,Je,et,Ft,Ss,Pt,Ms,tt,ji,L=class{constructor(e,t,i=void 0){l(this,Ft);l(this,Pt);l(this,tt);l(this,Ze,void 0);l(this,Xe,void 0);l(this,Je,void 0);l(this,et,void 0);if(!(e instanceof w)||!x(t)||!V(i))throw p.INVALID_ARGUMENT;b(this,Ze,e),b(this,Xe,t),b(this,Je,i)}get editor(){return m(this,Ze)}get name(){return m(this,Xe)}get url(){return m(this,Je)}get formCreator(){return m(this,et)}open(e,t={}){this.url?u(this,Ft,Ss).call(this,e,t):u(this,Pt,Ms).call(this,e,t)}_(e){return this.editor.translator.translate(this.name,e)}_prepareForm(){throw p.NOT_IMPLEMENTED}};Ze=new WeakMap,Xe=new WeakMap,Je=new WeakMap,et=new WeakMap,Ft=new WeakSet,Ss=function(e,t={}){this.editor.dom.open({url:this.url,name:this.name,call:e,params:t})},Pt=new WeakSet,Ms=function(e,t={}){let i=this.editor.dom.getRange(),n=()=>{i&&this.editor.dom.setRange(i),u(this,tt,ji).call(this)};u(this,tt,ji).call(this),b(this,et,new Mt(this.editor.dom,this._("Save"),this._("Cancel"),n)),this._prepareForm();let h=this.formCreator.form;h.addEventListener("submit",E=>{E.preventDefault(),E.stopPropagation(),n();let T={};Array.from(h.elements).forEach(j=>T[j.name]=j.value),e(T)}),Object.entries(t).forEach(([E,T])=>h.elements[E]&&(h.elements[E].value=T));let f=this.editor.dom.createElement(r.DIALOG);f.addEventListener("close",n),f.appendChild(h),f.show(),this.editor.element.appendChild(f)},tt=new WeakSet,ji=function(){Array.from(this.editor.element.getElementsByTagName(r.DIALOG)).forEach(e=>{e.parentElement.removeChild(e)})};var kt=class extends L{constructor(e){super(e,he.name)}_prepareForm(){this.formCreator.addLegend(this._("Abbreviation")).addTextInput("title",this._("Full term"),{placeholder:this._("Insert full term or leave empty to remove it")})}};var rt,g=class{constructor(e){l(this,rt,void 0);if(!(e instanceof w))throw p.INVALID_ARGUMENT;b(this,rt,e)}get editor(){return m(this,rt)}handleEvent(e){v(this[e.type])&&this[e.type](e)}};rt=new WeakMap;var Ut=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insert",this)}insert(e){e.detail.element.hasAttribute("data-alignable")&&e.detail.element.addEventListener("keydown",this)}keydown(e){let t={[a.UP]:S.NONE,[a.LEFT]:S.LEFT,[a.DOWN]:S.CENTER,[a.RIGHT]:S.RIGHT};e.target===e.currentTarget&&I(e,Object.keys(t),{shift:!0})&&(e.preventDefault(),e.stopPropagation(),e.target.classList.remove(...Object.values(t)),t[e.key]!==S.NONE&&e.target.classList.add(t[e.key]))}};var Ht,Cs,it,Ai,Gt=class extends R{constructor(){super(...arguments);l(this,Ht);l(this,it)}filter(e){let t=this.editor.tags.get(e),i=this.editor.tags.allowed(e,r.P),n=t.editable||t.group===s.FORMAT,h=[],f=(E=null)=>{i&&h.length>0&&(e.insertBefore(this.editor.dom.createElement(r.P,{html:h.join(" ")}),E),h=[])};Array.from(e.childNodes).forEach(E=>{let T=E.textContent.trim();if(E instanceof HTMLElement){let j=u(this,Ht,Cs).call(this,E),M=this.editor.tags.get(j);if(M&&this.editor.tags.allowed(e,j))f(j),u(this,it,Ai).call(this,j,M);else if(M&&M.group===s.FORMAT&&i){let _=u(this,it,Ai).call(this,j,M);_&&(h.push(_.outerHTML),e.removeChild(_))}else!n&&T&&i?(h.push(T),e.removeChild(j)):n&&T?e.replaceChild(this.editor.dom.createText(T),j):e.removeChild(j)}else E instanceof Text?(!n&&T&&i&&h.push(T),(!n||!T)&&e.removeChild(E)):E instanceof Node&&e.removeChild(E)}),f()}};Ht=new WeakSet,Cs=function(e){let t=this.editor.config.base.filter[e.localName];if(!t)return e;let i=this.editor.dom.createElement(t,{html:e.innerHTML});return e.parentElement.replaceChild(i,e),i},it=new WeakSet,Ai=function(e,t){if(Array.from(e.attributes).forEach(i=>!t.attributes.includes(i.name)&&e.removeAttribute(i.name)),e.hasChildNodes()&&this.editor.filters.filter(e),e.hasChildNodes()||t.empty)return e;e.parentElement?.removeChild(e)};var vt=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insert",this)}insert(e){e.detail.element.hasAttribute("data-deletable")&&e.detail.element.addEventListener("keydown",this)}keydown(e){e.target===e.currentTarget&&I(e,a.DEL,{ctrl:!0})&&(this.editor.dom.delete(e.target),e.preventDefault(),e.stopPropagation())}};var Vt=class extends HTMLElement{get open(){return this.hasAttribute("open")}set open(e){e===!0?this.setAttribute("open",""):this.removeAttribute("open")}constructor(){super();this.addEventListener("keydown",e=>e.key===a.ESC&&this.close()),this.addEventListener("click",e=>e.target===this&&this.close())}connectedCallback(){this.setAttribute("role","dialog"),this.tabIndex=-1,this.focus()}show(){this.open=!0,this.dispatchEvent(new CustomEvent("show",{detail:{element:this,target:this}}))}close(){this.open=!1,this.dispatchEvent(new CustomEvent("close",{detail:{element:this,target:this}}))}};var Kt=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insert",this)}insert(e){e.detail.element.contentEditable==="true"?e.detail.element.addEventListener("keydown",this):e.detail.element.parentElement.contentEditable==="true"&&e.detail.element.addEventListener("dblclick",this)}keydown(e){if(I(e,a.ENTER,{shift:!0})&&!this.editor.tags.allowed(e.target,r.BR))e.preventDefault(),e.stopPropagation();else if(I(e,a.ENTER)){e.preventDefault(),e.stopPropagation();let t=this.editor.tags.get(e.target)?.enter;t&&(e.target.textContent.trim()||!e.target.hasAttribute("data-deletable")?this.editor.dom.closest(e.target,t)?.insertAdjacentElement(A.AFTEREND,this.editor.dom.createElement(t)):e.target instanceof HTMLParagraphElement||(this.editor.dom.closest(e.target,r.P)?.insertAdjacentElement(A.AFTEREND,this.editor.dom.createElement(r.P)),e.target.parentElement.removeChild(e.target)))}else I(e,a.BACKSPACE)&&!e.target.textContent&&e.target.hasAttribute("data-deletable")?(this.editor.dom.delete(e.target),e.preventDefault(),e.stopPropagation()):/^[A-Z]$/.test(e.key)&&I(e,e.key,{alt:!0,shift:!0})&&(e.preventDefault(),e.stopPropagation(),this.editor.formatbar.querySelector(`${r.BUTTON}[data-key=${e.key.toLowerCase()}]`)?.click())}dblclick(e){this.editor.dom.selectContents(e.target),this.editor.commands.find(e.target.localName)?.execute()}};var zt=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insert",this)}insert(e){e.detail.element.hasAttribute("data-focusable")&&e.detail.element.focus()}};var $=class extends g{insertbutton(e){e.detail.element.getAttribute("data-command")&&e.detail.element.addEventListener("click",this)}click(e){this.editor.commands.execute(e.target.getAttribute("data-command"))}keydown(e){if(I(e,[a.LEFT,a.RIGHT,a.HOME,a.END])){let t=e.target.previousElementSibling,i=e.target.nextElementSibling,n=e.target.parentElement.firstElementChild,h=e.target.parentElement.lastElementChild,f=e.target===n,E=e.target===h;e.key===a.LEFT&&!f?t.focus():e.key===a.RIGHT&&!E?i.focus():e.key===a.HOME||e.key===a.RIGHT&&E?n.focus():(e.key===a.END||e.key===a.LEFT&&f)&&h.focus(),e.preventDefault(),e.stopPropagation()}}_show(e,t){if(!(e instanceof HTMLElement)||!(t instanceof HTMLElement))throw p.INVALID_ARGUMENT;e.hidden=!1;let i=t.offsetLeft+e.clientWidth-this.editor.root.clientWidth,n=e.clientWidth<this.editor.root.clientWidth?t.offsetLeft:0;n>0&&i>0&&(n=n>i?n-i:0),e.style.left=`${n}px`;let h=t.offsetTop-t.scrollTop-e.clientHeight;e.style.top=`${h}px`}_hide(e){e.hidden=!0,e.removeAttribute("style")}};var st,Ii,ot,xi,qt=class extends ${constructor(e){super(e);l(this,st);l(this,ot);this.editor.focusbar.addEventListener("insertbutton",this),this.editor.root.addEventListener("focusin",this),this.editor.root.addEventListener("focusout",this),this.editor.dom.document.addEventListener("selectionchange",this)}insertbutton(e){super.insertbutton(e),e.detail.element.getAttribute("data-command")&&e.detail.element.addEventListener("mousedown",this)}mousedown(e){e.preventDefault(),e.stopPropagation()}focusin(e){e.target instanceof HTMLElement&&e.target.hasAttribute("data-focusable")&&u(this,st,Ii).call(this,e.target)}focusout(){u(this,ot,xi).call(this)}selectionchange(){let e=this.editor.dom.getActiveElement();!this.editor.dom.getSelection().isCollapsed||!e?u(this,ot,xi).call(this):e instanceof HTMLElement&&e.hasAttribute("data-focusable")&&u(this,st,Ii).call(this,e)}};st=new WeakSet,Ii=function(e){!this.editor.focusbar.children.length||(this._show(this.editor.focusbar,e),Object.keys(e.dataset).forEach(t=>this.editor.focusbar.dataset[t]=e.dataset[t]),this.editor.focusbar.dataset.tag=e.localName)},ot=new WeakSet,xi=function(){this._hide(this.editor.focusbar),Object.keys(this.editor.focusbar.dataset).forEach(e=>delete this.editor.focusbar.dataset[e])};var Wt=class extends ${constructor(e){super(e);this.editor.formatbar.addEventListener("insertbutton",this),this.editor.dom.document.addEventListener("selectionchange",this)}selectionchange(){let e=this.editor.dom.getSelectedEditable();e&&!this.editor.dom.getSelection().isCollapsed&&this.editor.tags.allowed(e,s.FORMAT,!0)?this._show(this.editor.formatbar,e):this._hide(this.editor.formatbar)}};var Qt,ys,$t=class extends g{constructor(e){super(e);l(this,Qt);this.editor.root.addEventListener("insert",this)}insert(e){e.detail.element.hasAttribute("data-navigable")&&(e.detail.element.tabIndex=0,e.detail.element.addEventListener("keydown",this))}keydown(e){if(e.target===e.currentTarget&&I(e,[a.UP,a.DOWN,a.HOME,a.END])&&u(this,Qt,ys).call(this,e.target)){let t=e.target.previousElementSibling,i=e.target.nextElementSibling,n=e.target.parentElement.firstElementChild,h=e.target.parentElement.lastElementChild,f=e.target===n,E=e.target===h;e.key===a.UP&&!f&&t.hasAttribute("data-navigable")?t.focus():e.key===a.DOWN&&!E&&i.hasAttribute("data-navigable")?i.focus():(e.key===a.HOME||e.key===a.DOWN&&E)&&n.hasAttribute("data-navigable")?n.focus():(e.key===a.END||e.key===a.UP&&f)&&h.hasAttribute("data-navigable")&&h.focus(),e.preventDefault(),e.stopPropagation()}}};Qt=new WeakSet,ys=function(e){if(e.contentEditable!=="true")return!0;let t=this.editor.dom.getSelection(),i=this.editor.dom.getSelectedEditable(),n=this.editor.dom.getSelectedElement();return t.isCollapsed&&t.anchorOffset===0&&[i,e.firstChild].includes(n)};var Yt=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insert",this)}insert(e){e.detail.element instanceof HTMLSlotElement?e.detail.element.addEventListener("keydown",this):e.detail.element.hasAttribute("data-slotable")&&!e.detail.element.querySelector(":scope > "+r.SLOT)&&e.detail.element.appendChild(this.editor.dom.createElement(r.SLOT))}keydown(e){!I(e,a.TAB)&&!I(e,a.TAB,{shift:!0})&&(e.preventDefault(),e.stopPropagation())}};var at,Ni,nt,_i,Zt=class extends g{constructor(e){super(e);l(this,at);l(this,nt);this.editor.root.addEventListener("insert",this)}insert(e){e.detail.element.hasAttribute("data-sortable")&&(e.detail.element.addEventListener("keydown",this),e.detail.element.addEventListener("pointerdown",this),e.detail.element.addEventListener("pointermove",this),e.detail.element.addEventListener("pointerup",this))}keydown(e){let t={[a.HOME]:D.FIRST,[a.UP]:D.PREV,[a.DOWN]:D.NEXT,[a.END]:D.LAST};e.target===e.currentTarget&&I(e,Object.keys(t),{ctrl:!0})&&(this.editor.dom.sort(e.target,t[e.key]),e.preventDefault(),e.stopPropagation())}pointerdown(e){let t=e.target.closest("[data-sortable]");t&&this.editor.dom.contains(t)&&(t.setAttribute("data-sort",""),t.setPointerCapture(e.pointerId))}pointermove(e){let t=e.target.closest("[data-sortable][data-sort]"),i=this.editor.dom.document.elementFromPoint(e.x,e.y);u(this,at,Ni).call(this),t&&this.editor.dom.contains(t)&&u(this,nt,_i).call(this,t,i)&&i.setAttribute("data-sortover","")}pointerup(e){let t=e.target.closest("[data-sortable][data-sort]");if(t&&this.editor.dom.contains(t)){let i=this.editor.dom.document.elementFromPoint(e.x,e.y);u(this,at,Ni).call(this),t.removeAttribute("data-sort"),t.releasePointerCapture(e.pointerId),u(this,nt,_i).call(this,t,i)&&i.insertAdjacentElement(A.BEFOREBEGIN,t)}}};at=new WeakSet,Ni=function(){this.editor.root.querySelectorAll("[data-sortover]").forEach(e=>e.removeAttribute("data-sortover"))},nt=new WeakSet,_i=function(e,t){return e instanceof HTMLElement&&t instanceof HTMLElement&&this.editor.dom.contains(t)&&![this.editor.root,e].includes(t)&&t.hasAttribute("data-sortable")&&(e.parentElement===t.parentElement||this.editor.dom.arbitrary(e.parentElement)&&this.editor.dom.arbitrary(t.parentElement))&&this.editor.tags.allowed(t.parentElement,e)};var Xt=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insert",this)}insert(e){let t=this.editor.tags.get(e.detail.element);t&&(t.editable&&(e.detail.element.contentEditable="true"),["alignable","arbitrary","deletable","focusable","navigable","slotable","sortable"].forEach(i=>{t[i]&&(e.detail.element.dataset[i]="")}))}};var Jt=class extends ${constructor(e){super(e);this.editor.toolbar.addEventListener("insertbutton",this)}insertbutton(e){super.insertbutton(e),e.detail.element.tabIndex=e.detail.element===this.editor.toolbar.firstElementChild?0:-1,e.detail.element.addEventListener("keydown",this)}};var Di={de:{Alt:"Alt",Shift:"Umschalt"}};var c=class extends d{static get name(){return"base"}static get config(){return{browser:{},filter:{},lang:void 0,plugins:[],pluginsDisabled:!1}}init(){this._i18n(Di),this.editor.dom.registerElement(r.DIALOG,Vt),this._tag({name:r.ROOT,group:s.ROOT,children:[s.AUDIO,s.BLOCK,s.CONTAINER,s.FIGURE,s.HEADING,s.IFRAME,s.IMAGE,s.LIST,s.PARAGRAPH,s.PREFORMAT,s.QUOTE,s.RULE,s.TABLE,s.VIDEO]}),this._tag({name:r.SLOT,group:s.SLOT,editable:!0,focusable:!0,navigable:!0,sortable:!0}),new Xt(this.editor),new Jt(this.editor),new Wt(this.editor),new qt(this.editor),new Kt(this.editor),new vt(this.editor),new $t(this.editor),new Zt(this.editor),new Ut(this.editor),new zt(this.editor),new Yt(this.editor),this.editor.filters.add(new Gt(this.editor))}};var Ri={de:{Abbreviation:"Abk\xFCrzung",Cancel:"Abbrechen","Full term":"Langform","Insert full term or leave empty to remove it":"Langform eingeben oder zum Entfernen leer lassen",Save:"Speichern"}};var he=class extends d{static get name(){return"abbreviation"}static get dependencies(){return[c]}init(){this._i18n(Ri),this._tag({name:r.ABBR,group:s.FORMAT,attributes:["title"]}),this.editor.dialogs.set(new kt(this.editor)),this._command(r.ABBR),this._formatbar(this._("Abbreviation"),a.A)}};var ue,er=class extends C{constructor(e,t){let i=Object.entries(S).find(([,n])=>n===t)?.[0].toLowerCase();if(!i)throw p.INVALID_ARGUMENT;super(e,fe.name+"-"+i);l(this,ue,void 0);b(this,ue,t)}execute(){let e=this.editor.dom.getActiveElement();e?.hasAttribute("data-alignable")&&(e.classList.remove(...Object.values(S)),m(this,ue)!==S.NONE&&e.classList.add(m(this,ue)))}};ue=new WeakMap;var wi={de:{"Align center":"zentriert","Align left":"linksb\xFCndig","Align right":"rechtsb\xFCndig","No alignment":"Keine Ausrichtung"}};var fe=class extends d{static get name(){return"align"}static get dependencies(){return[c]}init(){this._i18n(wi);let e={[S.NONE]:this._("No alignment"),[S.LEFT]:this._("Align left"),[S.CENTER]:this._("Align center"),[S.RIGHT]:this._("Align right")};Object.entries(e).forEach(([t,i])=>{let n=new er(this.editor,t);this.editor.commands.set(n),this._focusbar(i,n.name)})}};var tr=class extends L{constructor(e,t=void 0){super(e,Q.name,t)}_prepareForm(){this.formCreator.addLegend(this._("Audio")).addTextInput("src",this._("URL"),{pattern:"(https?|/).+",placeholder:this._("Insert URL to audio"),required:"required"}).addTextInput("id",this._("ID"))}};var lt,Bi,rr=class extends g{constructor(e){super(e);l(this,lt);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("insertaudio",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.AUDIO)).forEach(t=>u(this,lt,Bi).call(this,t))}insertaudio(e){u(this,lt,Bi).call(this,e.detail.element)}};lt=new WeakSet,Bi=function(e){let t=e.getAttribute("src");t?(e.setAttribute("src",this.editor.url(t)),e.controls=!0,this.editor.dom.wrap(e,r.FIGURE,{attributes:{class:Q.name}})):e.parentElement.removeChild(e)};var ir=class extends R{filter(e){e.querySelectorAll(`${r.FIGURE} > ${r.FIGCAPTION}:only-child`).forEach(t=>t.parentElement.removeChild(t))}};var sr=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insertfigure",this)}insertfigure(e){e.detail.element.querySelector(":scope > "+r.FIGCAPTION)||e.detail.element.appendChild(this.editor.dom.createElement(r.FIGCAPTION))}};var B=class extends d{static get name(){return"figure"}static get dependencies(){return[c]}init(){this._tag({name:r.FIGURE,group:s.FIGURE,children:[s.AUDIO,s.CAPTION,s.IFRAME,s.IMAGE,s.PREFORMAT,s.QUOTE,s.TABLE,s.VIDEO],attributes:["class"],alignable:!0,deletable:!0,focusable:!0,navigable:!0,sortable:!0}),this._tag({name:r.FIGCAPTION,group:s.CAPTION,children:[s.FORMAT],editable:!0,navigable:!0,enter:r.P}),new sr(this.editor),this.editor.filters.add(new ir(this.editor))}};var Oi={de:{Audio:"Audio",Cancel:"Abbrechen",ID:"ID","Insert URL to audio":"URL zur Audiodatei eingeben",Save:"Speichern",URL:"URL"}};var Q=class extends d{static get name(){return"audio"}static get dependencies(){return[c,B]}static get config(){return{browser:void 0}}init(){this._i18n(Oi),this._tag({name:r.AUDIO,group:s.AUDIO,attributes:["controls","id","src"],empty:!0,navigable:!0}),new rr(this.editor),this.editor.dialogs.set(new tr(this.editor,this.editor.config.audio.browser)),this._command(r.AUDIO),this._toolbar(this._("Audio"))}};var or=class extends L{constructor(e,t=void 0){super(e,pe.name,t)}_prepareForm(){this.formCreator.addLegend(this._("Block")).addTextInput("id",this._("ID"),{required:"required"})}};var ar=class extends HTMLElement{get content(){return this.shadowRoot.innerHTML}set content(e){this.shadowRoot.innerHTML=e}constructor(){super();this.attachShadow({mode:"open"})}};var nr=class extends g{constructor(e){super(e);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("insertappblock",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.BLOCK)).forEach(t=>t.id||t.parentElement.removeChild(t))}async insertappblock(e){if(!e.detail.element.id){e.detail.element.parentElement.removeChild(e.detail.element);return}if(!this.editor.config.block.api)return;let t=this.editor.config.block.api.replace("{id}",e.detail.element.id),i=await fetch(t,{mode:"no-cors"});if(!i.ok)return;let n="";this.editor.config.block.css&&(n=this.editor.config.block.css.split(",").map(f=>`<link rel="stylesheet" href="${f}">`).join(""));let h=await i.text();e.detail.element.content=n+h}};var lr={de:{Cancel:"Abbrechen",Height:"H\xF6he",ID:"ID",Ifrane:"Iframe","Insert URL to embedded page":"URL zur eingebetteten Seite eingeben",Save:"Speichern",URL:"URL",Width:"Breite"}};var pe=class extends d{static get name(){return"block"}static get dependencies(){return[c]}static get config(){return{api:void 0,browser:void 0,css:void 0}}init(){this._i18n(lr),this.editor.dom.registerElement(r.BLOCK,ar),this._tag({name:r.BLOCK,group:s.BLOCK,attributes:["id"],deletable:!0,empty:!0,focusable:!0,navigable:!0,sortable:!0}),new nr(this.editor),this.editor.dialogs.set(new or(this.editor,this.editor.config.block.browser)),this._command(r.BLOCK),this._toolbar(this._("Block"))}};var mr=class extends R{filter(e){e instanceof HTMLElement&&e.localName===r.FIGURE&&e.classList.contains(G.name)&&e.querySelector(":scope > "+r.BLOCKQUOTE)&&!e.querySelector(":scope > "+r.FIGCAPTION)&&(e.insertAdjacentElement(A.BEFOREBEGIN,e.querySelector(":scope > "+r.BLOCKQUOTE)),e.parentElement.removeChild(e))}};var dr=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insertblockquote",this),this.editor.root.addEventListener("deleteblockquote",this)}insertblockquote(e){this.editor.dom.wrap(e.detail.element,r.FIGURE,{attributes:{class:G.name}})}deleteblockquote(e){e.detail.target.localName===r.FIGURE&&e.detail.target.classList.contains(G.name)&&e.detail.target.parentElement.removeChild(e.detail.target)}};var cr=class extends R{filter(e){if(e instanceof HTMLPreElement){e.outerHTML=e.outerHTML.replace(/(<br\s*\/?>)/gi,`
2
+ `);return}e.innerHTML=e.innerHTML.replace(/^\s*(<br\s*\/?>\s*)+/gi,"").replace(/\s*(<br\s*\/?>\s*)+$/gi,""),e instanceof HTMLParagraphElement?e.outerHTML=e.outerHTML.replace(/\s*(<br\s*\/?>\s*){2,}/gi,"</p><p>"):e.innerHTML=e.innerHTML.replace(/\s*(<br\s*\/?>\s*){2,}/gi,"<br>")}};var P=class extends d{static get name(){return"break"}static get dependencies(){return[c]}init(){this._tag({name:r.BR,group:s.BREAK,empty:!0}),this.editor.filters.add(new cr(this.editor))}};var Si={de:{Blockquote:"Blockzitat"}};var G=class extends d{static get name(){return"blockquote"}static get dependencies(){return[c,P,B]}init(){this._i18n(Si),this._tag({name:r.BLOCKQUOTE,group:s.QUOTE,children:[s.BREAK,s.FORMAT],deletable:!0,editable:!0,navigable:!0,enter:r.P}),new dr(this.editor),this._command(r.BLOCKQUOTE),this._toolbar(this._("Blockquote")),this.editor.filters.add(new mr(this.editor))}};var Mi={de:{bold:"fett"}};var hr=class extends d{static get name(){return"bold"}static get dependencies(){return[c]}init(){this._i18n(Mi),this._tag({name:r.B,group:s.FORMAT}),this._command(r.B),this._formatbar(this._("bold"),a.B)}};var Ci={de:{Citation:"Zitatquelle"}};var ur=class extends d{static get name(){return"cite"}static get dependencies(){return[c]}init(){this._i18n(Ci),this._tag({name:r.CITE,group:s.FORMAT}),this._command(r.CITE),this._formatbar(this._("Citation"),a.Z)}};var yi={de:{Code:"Quelltext"}};var fr=class extends d{static get name(){return"code"}static get dependencies(){return[c]}init(){this._i18n(yi),this._tag({name:r.CODE,group:s.FORMAT}),this._command(r.CODE),this._formatbar(this._("Code"),a.C)}};var pr=class extends L{constructor(e){super(e,ge.name)}_prepareForm(){this.formCreator.addLegend(this._("Data")).addTextInput("value",this._("Machine-readable Value"),{placeholder:this._("Insert value or leave empty to remove it")})}};var Fi={de:{Cancel:"Abbrechen",Data:"Data","Machine-readable Value":"Maschinenlesbarer Wert","Insert value or leave empty to remove it":"Wert eingeben oder zum Entfernen leer lassen",Save:"Speichern"}};var ge=class extends d{static get name(){return"data"}static get dependencies(){return[c]}init(){this._i18n(Fi),this._tag({name:r.DATA,group:s.FORMAT,attributes:["value"]}),this.editor.dialogs.set(new pr(this.editor)),this._command(r.DATA),this._formatbar(this._("Data"),a.J)}};var gr=class extends L{constructor(e){super(e,be.name)}_prepareForm(){this.formCreator.addLegend(this._("Definition")).addTextInput("title",this._("Term"),{placeholder:this._("Insert term or leave empty to remove it")})}};var Pi={de:{Definition:"Definition","Insert term or leave empty to remove it":"Begriff eingeben oder zum Entfernen leer lassen",Term:"Begriff"}};var be=class extends d{static get name(){return"definition"}static get dependencies(){return[c]}init(){this._i18n(Pi),this._tag({name:r.DFN,group:s.FORMAT,attributes:["title"]}),this.editor.dialogs.set(new gr(this.editor)),this._command(r.DFN),this._formatbar(this._("Definition"),a.D)}};var br=class extends C{constructor(e){super(e,Ee.name)}execute(){let e=this.editor.dom.getActiveElement();e?.hasAttribute("data-deletable")&&this.editor.dom.delete(e)}};var ki={de:{Delete:"L\xF6schen"}};var Ee=class extends d{static get name(){return"delete"}static get dependencies(){return[c]}init(){this._i18n(ki),this.editor.commands.set(new br(this.editor)),this._focusbar(this._("Delete"),this.constructor.name)}};var Ui={de:{"Text Deletion":"Textl\xF6schung"}};var Er=class extends d{static get name(){return"deletion"}static get dependencies(){return[c]}init(){this._i18n(Ui),this._tag({name:r.DEL,group:s.FORMAT}),this._command(r.DEL),this._formatbar(this._("Text Deletion"),a.G)}};var Tr=class extends R{filter(e){e.querySelectorAll(`${r.SUMMARY}:not(:first-child)`).forEach(t=>t.parentElement.removeChild(t)),e.querySelectorAll(`${r.SUMMARY}:only-child`).forEach(t=>t.parentElement.removeChild(t))}};var mt,Gi,Lr=class extends g{constructor(e){super(e);l(this,mt);this.editor.root.addEventListener("insertdetails",this),this.editor.root.addEventListener("insertsummary",this)}insertdetails(e){e.detail.element.open=!0,e.detail.element.querySelector(`:scope > ${r.SUMMARY}:first-child`)||e.detail.element.insertAdjacentElement(A.AFTERBEGIN,this.editor.dom.createElement(r.SUMMARY))}insertsummary(e){u(this,mt,Gi).call(this,e.detail.element),e.detail.element.addEventListener("click",this),e.detail.element.addEventListener("blur",this),e.detail.element.addEventListener("keydown",this)}click(e){e.preventDefault(),e.stopPropagation(),e.target.parentElement.open=!0}blur(e){u(this,mt,Gi).call(this,e.target)}keydown(e){I(e,a.SPACE)?(e.preventDefault(),e.stopPropagation(),this.editor.dom.insertText(" ")):I(e,a.ENTER)&&(e.preventDefault(),e.stopPropagation(),e.target.parentElement.open=!0)}};mt=new WeakSet,Gi=function(e){e.textContent.trim()?e.querySelectorAll(r.BR+":not(:last-child)").forEach(t=>t.parentElement.removeChild(t)):e.textContent=this.editor.translator.translate(Te.name,"Details"),e.lastElementChild instanceof HTMLBRElement||e.appendChild(this.editor.dom.createElement(r.BR))};var Hi={de:{Details:"Details"}};var Te=class extends d{static get name(){return"details"}static get dependencies(){return[c]}init(){this._i18n(Hi),this._tag({name:r.DETAILS,group:s.CONTAINER,children:[s.AUDIO,s.FIGURE,s.IFRAME,s.IMAGE,s.LIST,s.PARAGRAPH,s.PREFORMAT,s.QUOTE,s.RULE,s.SUMMARY,s.TABLE,s.VIDEO],arbitrary:!0,deletable:!0,focusable:!0,navigable:!0,slotable:!0,sortable:!0}),this._tag({name:r.SUMMARY,group:s.SUMMARY,editable:!0,navigable:!0,enter:r.P}),new Lr(this.editor),this._command(r.DETAILS),this._toolbar(this._("Details")),this.editor.filters.add(new Tr(this.editor))}};var jr=class extends L{constructor(e){super(e,Le.name)}_prepareForm(){this.formCreator.addLegend(this._("Division")).addTextInput("class",this._("CSS class"),{placeholder:this._("Insert CSS class")})}};var vi={de:{Cancel:"Abbrechen","CSS class":"CSS-Klasse",Division:"Division","Insert CSS class":"CSS-Klasse eingeben",Save:"Speichern"}};var Le=class extends d{static get name(){return"division"}static get dependencies(){return[c]}init(){this._i18n(vi),this._tag({name:r.DIV,group:s.CONTAINER,children:[s.AUDIO,s.BLOCK,s.FIGURE,s.IFRAME,s.IMAGE,s.PREFORMAT,s.QUOTE,s.RULE,s.TABLE,s.VIDEO],attributes:["class"],arbitrary:!0,deletable:!0,focusable:!0,navigable:!0,slotable:!0,sortable:!0}),this.editor.dialogs.set(new jr(this.editor)),this._command(r.DIV),this._toolbar(this._("Division"))}};var Vi={de:{emphasized:"betont"}};var Ar=class extends d{static get name(){return"emphasis"}static get dependencies(){return[c]}init(){this._i18n(Vi),this._tag({name:r.EM,group:s.FORMAT}),this._command(r.EM),this._formatbar(this._("emphasized"),a.E)}};var Ki={de:{Heading:"\xDCberschrift"}};var Ir=class extends d{static get name(){return"heading"}static get dependencies(){return[c]}init(){this._i18n(Ki),this._tag({name:r.H2,group:s.HEADING,deletable:!0,editable:!0,focusable:!0,navigable:!0,sortable:!0,enter:r.P}),this._command(r.H2),this._toolbar(this._("Heading"))}};var zi={de:{"Horizontal Rule":"Horizontale Linie"}};var xr=class extends d{static get name(){return"horizontalrule"}static get dependencies(){return[c]}init(){this._i18n(zi),this._tag({name:r.HR,group:s.RULE,deletable:!0,empty:!0,focusable:!0,navigable:!0,sortable:!0}),this._command(r.HR),this._toolbar(this._("Horizontal Rule"))}};var Nr=class extends L{constructor(e,t=void 0){super(e,Y.name,t)}_prepareForm(){this.formCreator.addLegend(this._("Iframe")).addTextInput("src",this._("URL"),{pattern:"(https?|/).+",placeholder:this._("Insert URL to embedded page"),required:"required"}).addNumberInput("width",this._("Width")).addNumberInput("height",this._("Height")).addTextInput("id",this._("ID"))}};var dt,qi,_r=class extends g{constructor(e){super(e);l(this,dt);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("insertiframe",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.IFRAME)).forEach(t=>u(this,dt,qi).call(this,t))}insertiframe(e){u(this,dt,qi).call(this,e.detail.element)}};dt=new WeakSet,qi=function(e){let t=e.getAttribute("src");t?(e.setAttribute("src",this.editor.url(t)),e.allowFullscreen=!0,this.editor.dom.wrap(e,r.FIGURE,{attributes:{class:Y.name}})):e.parentElement.removeChild(e)};var Y=class extends d{static get name(){return"iframe"}static get dependencies(){return[c,B]}static get config(){return{browser:void 0}}init(){this._i18n(lr),this._tag({name:r.IFRAME,group:s.IFRAME,attributes:["allowfullscreen","height","id","src","width"],empty:!0,navigable:!0}),new _r(this.editor),this.editor.dialogs.set(new Nr(this.editor,this.editor.config.iframe.browser)),this._command(r.IFRAME),this._toolbar(this._("Iframe"))}};var Dr=class extends L{constructor(e,t=void 0){super(e,Z.name,t)}_prepareForm(){this.formCreator.addLegend(this._("Image")).addTextInput("src",this._("URL"),{pattern:"(https?|/).+",placeholder:this._("Insert URL to image"),required:"required"}).addTextInput("alt",this._("Alternative text"),{placeholder:this._("Text shown when media element is not available")}).addNumberInput("width",this._("Width")).addNumberInput("height",this._("Height")).addTextInput("id",this._("ID"))}};var ct,Wi,Rr=class extends g{constructor(e){super(e);l(this,ct);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("insertimg",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.IMG)).forEach(t=>u(this,ct,Wi).call(this,t))}insertimg(e){u(this,ct,Wi).call(this,e.detail.element)}};ct=new WeakSet,Wi=function(e){let t=e.getAttribute("src");t?(e.setAttribute("src",this.editor.url(t)),this.editor.dom.wrap(e,r.FIGURE,{attributes:{class:Z.name}})):e.parentElement.removeChild(e)};var $i={de:{"Alternative text":"Alternativtext",Cancel:"Abbrechen",Height:"H\xF6he",ID:"ID",Image:"Bild","Insert URL to image":"URL zur Bilddatei eingeben",Save:"Speichern","Text shown when media element is not available":"Ersatztext, falls Medienelement nicht verf\xFCgbar ist",URL:"URL",Width:"Breite"}};var Z=class extends d{static get name(){return"image"}static get dependencies(){return[c,B]}static get config(){return{browser:void 0}}init(){this._i18n($i),this._tag({name:r.IMG,group:s.IMAGE,attributes:["alt","height","id","src","width"],empty:!0,navigable:!0}),new Rr(this.editor),this.editor.dialogs.set(new Dr(this.editor,this.editor.config.image.browser)),this._command(r.IMG),this._toolbar(this._("Image"))}};var Qi={de:{"Text Insertion":"Texteinf\xFCgung"}};var wr=class extends d{static get name(){return"insertion"}static get dependencies(){return[c]}init(){this._i18n(Qi),this._tag({name:r.INS,group:s.FORMAT}),this._command(r.INS),this._formatbar(this._("Text Insertion"),a.F)}};var Yi={de:{italic:"kursiv"}};var Br=class extends d{static get name(){return"italic"}static get dependencies(){return[c]}init(){this._i18n(Yi),this._tag({name:r.I,group:s.FORMAT}),this._command(r.I),this._formatbar(this._("italic"),a.I)}};var Zi={de:{"User Input":"Benutzereingabe"}};var Or=class extends d{static get name(){return"keyboard"}static get dependencies(){return[c]}init(){this._i18n(Zi),this._tag({name:r.KBD,group:s.FORMAT}),this._command(r.KBD),this._formatbar(this._("User Input"),a.K)}};var Sr=class extends L{constructor(e){super(e,je.name)}_prepareForm(){this.formCreator.addLegend(this._("Link")).addTextInput("href",this._("URL"),{pattern:"(https?|/|mailto:|tel:).+",placeholder:this._("Insert link or leave empty to unlink")})}};var ht,Xi,Mr=class extends g{constructor(e){super(e);l(this,ht);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("inserta",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.A)).forEach(t=>u(this,ht,Xi).call(this,t))}inserta(e){u(this,ht,Xi).call(this,e.detail.element)}};ht=new WeakSet,Xi=function(e){let t=e.getAttribute("href");t?e.setAttribute("href",this.editor.url(t)):e.parentElement.replaceChild(this.editor.dom.createText(e.textContent),e)};var Ji={de:{Cancel:"Abbrechen","Insert link or leave empty to unlink":"Link eingeben oder zum Entfernen leer lassen",Link:"Link",Save:"Speichern",URL:"URL"}};var je=class extends d{static get name(){return"link"}static get dependencies(){return[c]}init(){this._i18n(Ji),this._tag({name:r.A,group:s.FORMAT,attributes:["href"]}),new Mr(this.editor),this.editor.dialogs.set(new Sr(this.editor)),this._command(r.A),this._formatbar(this._("Link"),a.L)}};var es={de:{mark:"markiert"}};var Cr=class extends d{static get name(){return"mark"}static get dependencies(){return[c]}init(){this._i18n(es),this._tag({name:r.MARK,group:s.FORMAT}),this._command(r.MARK),this._formatbar(this._("mark"),a.M)}};var ut,ts,yr=class extends g{constructor(e){super(e);l(this,ut);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("insertli",this),this.editor.root.addEventListener("deleteli",this),this.editor.root.addEventListener("insertol",this),this.editor.root.addEventListener("insertul",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.LI)).forEach(t=>u(this,ut,ts).call(this,t))}insertli(e){u(this,ut,ts).call(this,e.detail.element)}deleteli(e){e.detail.target.children.length===0&&e.detail.target.parentElement.removeChild(e.detail.target)}insertol(e){e.detail.element.children.length===0&&e.detail.element.appendChild(this.editor.dom.createElement(r.LI))}insertul(e){this.insertol(e)}};ut=new WeakSet,ts=function(e){!(e.parentElement instanceof HTMLOListElement)&&!(e.parentElement instanceof HTMLUListElement)&&this.editor.dom.wrap(e,r.UL)};var Ae=class extends d{static get name(){return"list"}static get dependencies(){return[c,P]}init(){this._tag({name:r.LI,group:s.LISTITEM,children:[s.BREAK,s.FORMAT],deletable:!0,editable:!0,focusable:!0,navigable:!0,sortable:!0,enter:r.LI}),new yr(this.editor)}};var rs={de:{"Ordered List":"Geordnete Liste"}};var Fr=class extends d{static get name(){return"orderedlist"}static get dependencies(){return[c,Ae]}init(){this._i18n(rs),this._tag({name:r.OL,group:s.LIST,children:[s.LISTITEM],arbitrary:!0,deletable:!0,focusable:!0,navigable:!0,sortable:!0}),this._command(r.OL),this._toolbar(this._("Ordered List"))}};var ft,is,Pr=class extends g{constructor(e){super(e);l(this,ft);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("insertp",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.P)).forEach(t=>u(this,ft,is).call(this,t))}insertp(e){u(this,ft,is).call(this,e.detail.element)}paste(e){this.editor.dom.window.setTimeout(()=>this.editor.filters.filter(e.target))}};ft=new WeakSet,is=function(e){e.addEventListener("paste",this)};var ss={de:{Paragraph:"Absatz"}};var kr=class extends d{static get name(){return"paragraph"}static get dependencies(){return[c,P]}init(){this._i18n(ss),this._tag({name:r.P,group:s.PARAGRAPH,children:[s.BREAK,s.FORMAT],deletable:!0,editable:!0,focusable:!0,navigable:!0,sortable:!0,enter:r.P}),new Pr(this.editor),this._command(r.P),this._toolbar(this._("Paragraph"))}};var Ur=class extends R{filter(e){e instanceof HTMLElement&&e.localName===r.FIGURE&&e.classList.contains(H.name)&&e.querySelector(":scope > "+r.PRE)&&!e.querySelector(":scope > "+r.FIGCAPTION)&&(e.insertAdjacentElement(A.BEFOREBEGIN,e.querySelector(":scope > "+r.PRE)),e.parentElement.removeChild(e))}};var Gr=class extends g{constructor(e){super(e);this.editor.root.addEventListener("insertpre",this),this.editor.root.addEventListener("deletepre",this)}insertpre(e){this.editor.dom.wrap(e.detail.element,r.FIGURE,{attributes:{class:H.name}})}deletepre(e){e.detail.target.localName===r.FIGURE&&e.detail.target.classList.contains(H.name)&&e.detail.target.parentElement.removeChild(e.detail.target)}};var os={de:{"Preformatted Text":"Vorformatierter Text"}};var H=class extends d{static get name(){return"preformat"}static get dependencies(){return[c,P,B]}init(){this._i18n(os),this._tag({name:r.PRE,group:s.PREFORMAT,children:[s.BREAK],deletable:!0,editable:!0,navigable:!0,enter:r.P}),new Gr(this.editor),this._command(r.PRE),this._toolbar(this._("Preformatted Text")),this.editor.filters.add(new Ur(this.editor))}};var as={de:{Quote:"Zitat"}};var Hr=class extends d{static get name(){return"quote"}static get dependencies(){return[c]}init(){this._i18n(as),this._tag({name:r.Q,group:s.FORMAT}),this._command(r.Q),this._formatbar(this._("Quote"),a.Q)}};var ns={de:{"Sample Output":"Beispielausgabe"}};var vr=class extends d{static get name(){return"sample"}static get dependencies(){return[c]}init(){this._i18n(ns),this._tag({name:r.SAMP,group:s.FORMAT}),this._command(r.SAMP),this._formatbar(this._("Sample Output"),a.O)}};var Vr=class extends L{constructor(e){super(e,Ie.name)}_prepareForm(){this.formCreator.addLegend(this._("Section")).addTextInput("class",this._("CSS class"),{placeholder:this._("Insert CSS class")})}};var ls={de:{Cancel:"Abbrechen","CSS class":"CSS-Klasse","Insert CSS class":"CSS-Klasse eingeben",Save:"Speichern",Section:"Sektion"}};var Ie=class extends d{static get name(){return"section"}static get dependencies(){return[c]}init(){this._i18n(ls),this._tag({name:r.SECTION,group:s.CONTAINER,children:[s.AUDIO,s.FIGURE,s.HEADING,s.IFRAME,s.IMAGE,s.LIST,s.PARAGRAPH,s.PREFORMAT,s.QUOTE,s.RULE,s.TABLE,s.VIDEO],attributes:["class"],arbitrary:!0,deletable:!0,focusable:!0,navigable:!0,slotable:!0,sortable:!0}),this.editor.dialogs.set(new Vr(this.editor)),this._command(r.SECTION),this._toolbar(this._("Section"))}};var ms={de:{small:"klein"}};var Kr=class extends d{static get name(){return"small"}static get dependencies(){return[c]}init(){this._i18n(ms),this._tag({name:r.SMALL,group:s.FORMAT}),this._command(r.SMALL),this._formatbar(this._("small"),a.W)}};var pt,zr=class extends C{constructor(e,t){let i=Object.entries(D).find(([,n])=>n===t)?.[0].toLowerCase();if(!i)throw p.INVALID_ARGUMENT;super(e,xe.name+"-"+i);l(this,pt,void 0);b(this,pt,t)}execute(){let e=this.editor.dom.getActiveElement();e?.hasAttribute("data-sortable")&&this.editor.dom.sort(e,m(this,pt))}};pt=new WeakMap;var ds={de:{"Sort after next element":"Hinter das n\xE4chste Element sortieren","Sort before previous element":"Vor das vorherige Element sortieren","Sort to the beginning":"An den Anfang sortieren","Sort to the end":"Ans Ende sortieren"}};var xe=class extends d{static get name(){return"sort"}static get dependencies(){return[c]}init(){this._i18n(ds);let e={[D.FIRST]:this._("Sort to the beginning"),[D.PREV]:this._("Sort before previous element"),[D.NEXT]:this._("Sort after next element"),[D.LAST]:this._("Sort to the end")};Object.entries(e).forEach(([t,i])=>{let n=new zr(this.editor,t);this.editor.commands.set(n),this._focusbar(i,n.name)})}};var cs={de:{strikethrough:"durchgestrichen"}};var qr=class extends d{static get name(){return"strikethrough"}static get dependencies(){return[c]}init(){this._i18n(cs),this._tag({name:r.S,group:s.FORMAT}),this._command(r.S),this._formatbar(this._("strikethrough"),a.R)}};var hs={de:{"strongly emphasized":"stark betont"}};var Wr=class extends d{static get name(){return"strong"}static get dependencies(){return[c]}init(){this._i18n(hs),this._tag({name:r.STRONG,group:s.FORMAT}),this._command(r.STRONG),this._formatbar(this._("strongly emphasized"),a.S)}};var us={de:{Subheading:"Unter\xFCberschrift"}};var $r=class extends d{static get name(){return"subheading"}static get dependencies(){return[c]}init(){this._i18n(us),this._tag({name:r.H3,group:s.HEADING,deletable:!0,editable:!0,focusable:!0,navigable:!0,sortable:!0,enter:r.P}),this._command(r.H3),this._toolbar(this._("Subheading"))}};var fs={de:{subscript:"tiefgestellt"}};var Qr=class extends d{static get name(){return"subscript"}static get dependencies(){return[c]}init(){this._i18n(fs),this._tag({name:r.SUB,group:s.FORMAT}),this._command(r.SUB),this._formatbar(this._("subscript"),a.X)}};var ps={de:{superscript:"hochgestellt"}};var Yr=class extends d{static get name(){return"superscript"}static get dependencies(){return[c]}init(){this._i18n(ps),this._tag({name:r.SUP,group:s.FORMAT}),this._command(r.SUP),this._formatbar(this._("superscript"),a.Y)}};var Zr=class extends C{constructor(e){super(e,y.name,r.TABLE)}insert({rows:e,cols:t}={}){let i=this.editor.dom.createElement(r.FIGURE,{attributes:{class:y.name}}),n=this.editor.dom.createElement(r.TABLE),h=this.editor.dom.createElement(r.TBODY),f=parseInt(e,10)||1,E=parseInt(t,10)||1;for(let T=0;T<f;T++){let j=this.editor.dom.createElement(r.TR);h.appendChild(j);for(let M=0;M<E;++M)j.appendChild(this.editor.dom.createElement(r.TD))}n.appendChild(h),i.appendChild(n),this.editor.dom.insert(i)}};var Xr=class extends L{constructor(e){super(e,y.name)}_prepareForm(){this.formCreator.addLegend(this._("Table")).addNumberInput("rows",this._("Rows"),{min:"1",required:"required",value:"1"}).addNumberInput("cols",this._("Columns"),{min:"1",required:"required",value:"1"})}};var Jr=class extends R{filter(e){e instanceof HTMLElement&&e.localName===r.FIGURE&&e.classList.contains(y.name)&&e.querySelector(":scope > "+r.TABLE)&&!e.querySelector(":scope > "+r.FIGCAPTION)?(e.insertAdjacentElement(A.BEFOREBEGIN,e.querySelector(":scope > "+r.TABLE)),e.parentElement.removeChild(e)):(e instanceof HTMLTableElement&&e.querySelector(`:scope > ${r.THEAD}, :scope > ${r.TFOOT}`)&&!e.querySelector(":scope > "+r.TBODY)||e instanceof HTMLTableSectionElement&&e.rows.length<=0||e instanceof HTMLTableRowElement&&!e.querySelector(`:scope > ${r.TH}:not(:empty), :scope > ${r.TD}:not(:empty)`))&&e.parentElement.removeChild(e)}};var se,ti,Ne,gi,ri,Fs,ei=class extends g{constructor(e){super(e);l(this,se);l(this,Ne);l(this,ri);this.editor.root.addEventListener("inserttable",this),this.editor.root.addEventListener("inserttd",this),this.editor.root.addEventListener("insertth",this)}inserttable(e){this.editor.dom.wrap(e.detail.element,r.FIGURE,{attributes:{class:y.name}}),e.detail.element.tBodies.length>0&&e.detail.element.tBodies[0].rows[0]&&(!e.detail.element.tHead||!e.detail.element.tFoot)&&(e.detail.element.tHead||u(this,se,ti).call(this,e.detail.element.createTHead(),e.detail.element.tBodies[0].rows[0].cells.length),e.detail.element.tFoot||u(this,se,ti).call(this,e.detail.element.createTFoot(),e.detail.element.tBodies[0].rows[0].cells.length))}inserttd(e){e.detail.element.addEventListener("keydown",this)}insertth(e){e.detail.element.addEventListener("keydown",this)}keydown(e){let t=e.target,i=t.parentElement,n=i.parentElement,h=n instanceof HTMLTableElement?n:n.parentElement,f=[a.LEFT,a.RIGHT,a.UP,a.DOWN],E=I(e,f),T=I(e,f,{ctrl:!0}),j=I(e,f,{alt:!0}),M=I(e,f,{alt:!0,shift:!0});if(t instanceof HTMLTableCellElement&&i instanceof HTMLTableRowElement&&(n instanceof HTMLTableElement||n instanceof HTMLTableSectionElement)&&h instanceof HTMLTableElement&&(E&&u(this,ri,Fs).call(this,t,e.key)||T||j||M)){let _=t.cellIndex,U=i.cells.length,oe=n.rows.length,k=n instanceof HTMLTableElement?i.rowIndex:i.sectionRowIndex,mi=_===0,di=_===U-1,xs=k===0,Ns=k===oe-1,bi=i.rowIndex===0,Ei=i.rowIndex===h.rows.length-1;e.preventDefault(),e.stopPropagation(),E?e.key===a.LEFT&&!mi?this.editor.dom.focusEnd(i.cells[_-1]):e.key===a.LEFT&&bi?this.editor.dom.focusEnd(h.rows[h.rows.length-1].cells[U-1]):e.key===a.LEFT?this.editor.dom.focusEnd(h.rows[i.rowIndex-1].cells[U-1]):e.key===a.RIGHT&&!di?i.cells[_+1].focus():e.key===a.RIGHT&&Ei?h.rows[0].cells[0].focus():e.key===a.RIGHT?h.rows[i.rowIndex+1].cells[0].focus():e.key===a.UP&&bi?h.rows[h.rows.length-1].cells[_].focus():e.key===a.UP?h.rows[i.rowIndex-1].cells[_].focus():e.key===a.DOWN&&Ei?h.rows[0].cells[_].focus():e.key===a.DOWN&&h.rows[i.rowIndex+1].cells[_].focus():T?(e.key===a.LEFT&&U>1&&mi?Array.from(h.rows).forEach(N=>N.appendChild(N.cells[_])):e.key===a.LEFT&&U>1?Array.from(h.rows).forEach(N=>N.insertBefore(N.cells[_],N.cells[_-1])):e.key===a.RIGHT&&U>1&&di?Array.from(h.rows).forEach(N=>N.insertBefore(N.cells[_],N.cells[0])):e.key===a.RIGHT&&U>1?Array.from(h.rows).forEach(N=>N.insertBefore(N.cells[_+1],N.cells[_])):e.key===a.UP&&oe>1&&xs?n.appendChild(i):e.key===a.UP&&oe>1?n.insertBefore(i,n.rows[k-1]):e.key===a.DOWN&&oe>1&&Ns?n.insertBefore(i,n.rows[0]):e.key===a.DOWN&&oe>1&&n.insertBefore(n.rows[k+1],i),t.focus()):j?e.key===a.LEFT?Array.from(h.rows).forEach(N=>u(this,Ne,gi).call(this,N,N.cells[_])):e.key===a.RIGHT?Array.from(h.rows).forEach(N=>u(this,Ne,gi).call(this,N,N.cells[_+1])):e.key===a.UP?u(this,se,ti).call(this,n,U,k):e.key===a.DOWN&&u(this,se,ti).call(this,n,U,k+1):M&&(e.key===a.LEFT&&!mi?Array.from(h.rows).forEach(N=>N.deleteCell(_-1)):e.key===a.RIGHT&&!di?Array.from(h.rows).forEach(N=>N.deleteCell(_+1)):e.key===a.UP&&k>0?n.deleteRow(k-1):e.key===a.DOWN&&k<oe-1&&n.deleteRow(k+1))}}};se=new WeakSet,ti=function(e,t,i=0){let n=e.insertRow(i);for(let h=0;h<t;h++)u(this,Ne,gi).call(this,n)},Ne=new WeakSet,gi=function(e,t=null){let i=e.parentElement.localName===r.THEAD?r.TH:r.TD;e.insertBefore(this.editor.dom.createElement(i),t)},ri=new WeakSet,Fs=function(e,t){if([a.UP,a.DOWN].includes(t))return!0;let i=this.editor.dom.getSelection(),n=i.anchorNode instanceof HTMLElement?i.anchorNode:e;if(!i.isCollapsed)return!1;if(t===a.LEFT){let f=e.firstChild;return f instanceof HTMLElement&&(f=f.firstChild),i.anchorOffset===0&&[e,f].includes(n)}let h=e.lastChild;return e.lastChild instanceof HTMLBRElement&&e.lastChild.previousSibling&&(h=e.lastChild.previousSibling),h instanceof HTMLElement&&(h=h.lastChild),i.anchorOffset===n.textContent.length&&[e,h].includes(n)};var gs={de:{Cancel:"Abbrechen",Columns:"Spalten","Delete next column":"N\xE4chste Spalte l\xF6schen","Delete next row":"N\xE4chste Zeile l\xF6schen","Delete previous column":"Vorherige Spalte l\xF6schen","Delete previous row":"Vorherige Zeile l\xF6schen",Rows:"Zeilen",Save:"Speichern","Sort after next column":"Hinter die n\xE4chste Spalte sortieren","Sort after next row":"Hinter die n\xE4chste Zeile sortieren","Sort before previous column":"Vor die vorherige Spalte sortieren","Sort before previous row":"Vor die vorherige Zeile sortieren","Sort column to the beginning":"Spalte an den Anfang sortieren","Sort row to the beginning":"Zeile an den Anfang sortieren","Sort column to the end":"Spalte ans Ende sortieren","Sort row to the end":"Zeile ans Ende sortieren",Table:"Tabelle"}};var y=class extends d{static get name(){return"table"}static get dependencies(){return[c,P,B]}init(){this._i18n(gs),this._tag({name:r.TABLE,group:s.TABLE,children:[s.TABLESECTION],deletable:!0,navigable:!0}),this._tag({name:r.THEAD,group:s.TABLESECTION,children:[s.TABLEROW]}),this._tag({name:r.TBODY,group:s.TABLESECTION,children:[s.TABLEROW]}),this._tag({name:r.TFOOT,group:s.TABLESECTION,children:[s.TABLEROW]}),this._tag({name:r.TR,group:s.TABLEROW,children:[s.TABLECELL]}),this._tag({name:r.TH,group:s.TABLECELL,children:[s.BREAK,s.FORMAT],editable:!0,empty:!0}),this._tag({name:r.TD,group:s.TABLECELL,children:[s.BREAK,s.FORMAT],editable:!0,empty:!0}),new ei(this.editor),this.editor.filters.add(new Jr(this.editor)),this.editor.dialogs.set(new Xr(this.editor)),this.editor.commands.set(new Zr(this.editor)),this._toolbar(this._("Table"))}};var ii=class extends L{constructor(e){super(e,_e.name)}_prepareForm(){this.formCreator.addLegend(this._("Data")).addTextInput("datetime",this._("Machine-readable Datetime"),{placeholder:this._("Insert date/time or leave empty to remove it")})}};var bs={de:{Cancel:"Abbrechen","Insert date/time or leave empty to remove it":"Datum/Zeit eingeben oder zum Entfernen leer lassen","Machine-readable Datetime":"Maschinenlesbare Datums-/Zeitangabe",Save:"Speichern",Time:"Zeit"}};var _e=class extends d{static get name(){return"time"}static get dependencies(){return[c]}init(){this._i18n(bs),this._tag({name:r.TIME,group:s.FORMAT,attributes:["datetime"]}),this.editor.dialogs.set(new ii(this.editor)),this._command(r.TIME),this._formatbar(this._("Time"),a.T)}};var Es={de:{underline:"unterstrichen"}};var si=class extends d{static get name(){return"underline"}static get dependencies(){return[c]}init(){this._i18n(Es),this._tag({name:r.U,group:s.FORMAT}),this._command(r.U),this._formatbar(this._("underline"),a.U)}};var Ts={de:{"Unordered List":"Ungeordnete Liste"}};var oi=class extends d{static get name(){return"unorderedlist"}static get dependencies(){return[c,Ae]}init(){this._i18n(Ts),this._tag({name:r.UL,group:s.LIST,children:[s.LISTITEM],arbitrary:!0,deletable:!0,focusable:!0,navigable:!0,sortable:!0}),this._command(r.UL),this._toolbar(this._("Unordered List"))}};var Ls={de:{Variable:"Variable"}};var ai=class extends d{static get name(){return"variable"}static get dependencies(){return[c]}init(){this._i18n(Ls),this._tag({name:r.VAR,group:s.FORMAT}),this._command(r.VAR),this._formatbar(this._("Variable"),a.V)}};var ni=class extends L{constructor(e,t=void 0){super(e,X.name,t)}_prepareForm(){this.formCreator.addLegend(this._("Video")).addTextInput("src",this._("URL"),{pattern:"(https?|/).+",placeholder:this._("Insert URL to video"),required:"required"}).addNumberInput("width",this._("Width")).addNumberInput("height",this._("Height")).addTextInput("id",this._("ID"))}};var gt,js,li=class extends g{constructor(e){super(e);l(this,gt);this.editor.root.addEventListener("sethtml",this),this.editor.root.addEventListener("insertvideo",this)}sethtml(e){Array.from(e.detail.element.getElementsByTagName(r.VIDEO)).forEach(t=>u(this,gt,js).call(this,t))}insertvideo(e){u(this,gt,js).call(this,e.detail.element)}};gt=new WeakSet,js=function(e){let t=e.getAttribute("src");t?(e.setAttribute("src",this.editor.url(t)),e.controls=!0,this.editor.dom.wrap(e,r.FIGURE,{attributes:{class:X.name}})):e.parentElement.removeChild(e)};var As={de:{Cancel:"Abbrechen",Height:"H\xF6he",ID:"ID","Insert URL to video":"URL zur Videodatei eingeben",Save:"Speichern",URL:"URL",Video:"Video",Width:"Breite"}};var X=class extends d{static get name(){return"video"}static get dependencies(){return[c,B]}static get config(){return{browser:void 0}}init(){this._i18n(As),this._tag({name:r.VIDEO,group:s.VIDEO,attributes:["controls","height","id","src","width"],empty:!0,navigable:!0}),new li(this.editor),this.editor.dialogs.set(new ni(this.editor,this.editor.config.video.browser)),this._command(r.VIDEO),this._toolbar(this._("Video"))}};var Is=class extends w{static get defaultConfig(){return{base:{plugins:[hr,Br,Wr,Ar,si,qr,je,Cr,Kr,be,he,Hr,ur,fr,Or,vr,ai,Qr,Yr,_e,ge,wr,Er,kr,Ir,$r,oi,Fr,xr,G,Z,X,Q,Y,y,H,Ie,Te,Le,pe,fe,xe,Ee]}}}};export{Is as default};
package/dist/editor.woff2 CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akilli/editor",
3
- "version": "4.7.0",
3
+ "version": "4.7.4",
4
4
  "description": "A HTML standards-compliant and dependency-free rich text editor",
5
5
  "keywords": [
6
6
  "contenteditable",
@@ -33,6 +33,6 @@
33
33
  "start": "npx --yes servor --reload . index.html 20000"
34
34
  },
35
35
  "devDependencies": {
36
- "esbuild": "^0.13.12"
36
+ "esbuild": "^0.13.15"
37
37
  }
38
38
  }