@ebl-vue/editor-full 2.31.10 → 2.31.12

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.
Files changed (39) hide show
  1. package/dist/index.mjs +560 -405
  2. package/dist/index.mjs.map +1 -1
  3. package/package.json +2 -4
  4. package/src/components/Editor/Editor.vue +22 -6
  5. package/src/plugins/code/index.css +31 -2
  6. package/src/plugins/code/index.ts +7 -0
  7. package/src/plugins/list/ListRenderer/ChecklistRenderer.ts +1 -1
  8. package/src/plugins/list/ListTabulator/index.ts +1 -1
  9. package/src/plugins/list/index.ts +118 -123
  10. package/src/plugins/list/styles/.cdx-list .css +168 -0
  11. package/src/plugins/list/utils/normalizeData.ts +0 -1
  12. package/src/plugins/list-bak/ListRenderer/ChecklistRenderer.ts +208 -0
  13. package/src/plugins/list-bak/ListRenderer/ListRenderer.ts +73 -0
  14. package/src/plugins/list-bak/ListRenderer/OrderedListRenderer.ts +123 -0
  15. package/src/plugins/list-bak/ListRenderer/UnorderedListRenderer.ts +123 -0
  16. package/src/plugins/list-bak/ListRenderer/index.ts +6 -0
  17. package/src/plugins/list-bak/ListTabulator/index.ts +1179 -0
  18. package/src/plugins/list-bak/index.ts +485 -0
  19. package/src/plugins/list-bak/styles/CssPrefix.ts +4 -0
  20. package/src/plugins/list-bak/styles/input.css +36 -0
  21. package/src/plugins/list-bak/styles/list.css +165 -0
  22. package/src/plugins/list-bak/types/Elements.ts +14 -0
  23. package/src/plugins/list-bak/types/ItemMeta.ts +40 -0
  24. package/src/plugins/list-bak/types/ListParams.ts +102 -0
  25. package/src/plugins/list-bak/types/ListRenderer.ts +6 -0
  26. package/src/plugins/list-bak/types/OlCounterType.ts +63 -0
  27. package/src/plugins/list-bak/types/index.ts +14 -0
  28. package/src/plugins/list-bak/utils/focusItem.ts +18 -0
  29. package/src/plugins/list-bak/utils/getChildItems.ts +40 -0
  30. package/src/plugins/list-bak/utils/getItemChildWrapper.ts +10 -0
  31. package/src/plugins/list-bak/utils/getItemContentElement.ts +10 -0
  32. package/src/plugins/list-bak/utils/getSiblings.ts +52 -0
  33. package/src/plugins/list-bak/utils/isLastItem.ts +9 -0
  34. package/src/plugins/list-bak/utils/itemHasSublist.ts +10 -0
  35. package/src/plugins/list-bak/utils/normalizeData.ts +84 -0
  36. package/src/plugins/list-bak/utils/removeChildWrapperIfEmpty.ts +31 -0
  37. package/src/plugins/list-bak/utils/renderToolboxInput.ts +105 -0
  38. package/src/plugins/list-bak/utils/stripNumbers.ts +7 -0
  39. package/src/plugins/list-bak/utils/type-guards.ts +8 -0
package/dist/index.mjs CHANGED
@@ -1,21 +1,29 @@
1
- (function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode(':root{--color-border: #EFF0F1}.ebl-editor{cursor:text;font-size:16px;font-weight:400;background-color:#fff}@media (min-width: 1050px){.ce-block__content,.ce-toolbar__content{max-width:700px}}.ce-toolbar,.ce-inline-toolbar{z-index:1000}.ce-toolbar__plus{border:1px solid #EFF0F1}.ce-toolbar .ce-popover__items{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.ce-toolbar .ce-popover__items .ce-popover-item{position:relative}.ce-toolbar .ce-popover__items .ce-popover-item__title{display:none}.ce-toolbar .ce-popover-item-html,.ce-toolbar .ce-popover-item-separator,.ce-toolbar .ce-popover-item[data-item-name=convert-to]{width:100%}.ce-toolbar .ce-popover-item[data-item-name=convert-to] .ce-popover-item__title{display:block}.ce-inline-toolbar .ce-popover__items{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.ce-inline-toolbar .ce-popover__items{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.ce-inline-toolbar .ce-popover__items .ce-popover-item__title{display:none}.ce-block--drop-target .ce-block__content:before{content:"";position:absolute;top:50%;left:-20px;margin-top:-1px;height:8px;width:8px;border:solid #a0a0a0;border-width:1px 1px 0 0;-webkit-transform-origin:right;transform-origin:right;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.ce-block--drop-target .ce-block__content:after{background:none}.ce-header{padding:.6em 0 3px;margin:0;line-height:1.25em;outline:none}.ce-header p,.ce-header div{padding:0!important;margin:0!important}.ce-tune-alignment--right{text-align:right}.ce-tune-alignment--center{text-align:center}.ce-tune-alignment--left{text-align:left}.ce-paragraph{line-height:1.6em;outline:none}.ce-block:only-of-type .ce-paragraph[data-placeholder-active]:empty:before,.ce-block:only-of-type .ce-paragraph[data-placeholder-active][data-empty=true]:before{content:attr(data-placeholder-active)}.ce-paragraph p:first-of-type{margin-top:0}.ce-paragraph p:last-of-type{margin-bottom:0}.ce-editorjs-x-shiki{border-radius:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:10px 0}.ce-editorjs-x-shiki__code{position:relative;float:left;min-width:100%;overflow-x:auto}.ce-editorjs-x-shiki__selector{display:-webkit-box;display:-ms-flexbox;display:flex;gap:15px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;z-index:12;border-bottom-style:solid;border-color:#9ca3af0d;border-bottom-width:1px;padding:8px}.ce-editorjs-x-shiki__selector-language,.ce-editorjs-x-shiki__selector-theme{font-size:13px;font-family:inherit}.ce-editorjs-x-shiki__selector-language{width:90px}.ce-editorjs-x-shiki__selector select{border:none;outline:none}.ce-editorjs-x-shiki__span{position:relative;z-index:0;padding:20px;margin:0;white-space:pre;font-size:13px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.ce-editorjs-x-shiki__textarea{white-space:pre;overflow:hidden;background-color:transparent;position:absolute;padding:20px;inset:0;color:transparent;z-index:0;font-size:13px;caret-color:#999;resize:none;border:none;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.ce-editorjs-x-shiki__copy{width:24px;height:24px;cursor:pointer;position:relative;margin-right:0}.ce-editorjs-x-shiki__copy_tip{font-size:12px;width:60px;margin-left:-20px;background-color:#0c0c0c;color:#ececec;text-align:center;border-radius:6px;padding:5px 10px;position:absolute;z-index:1;top:125%;-webkit-transition:opacity .3s;transition:opacity .3s;visibility:hidden;opacity:0}.ce-editorjs-x-shiki__copy_tip:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #0c0c0c transparent}.ce-editorjs-x-shiki__copy_tip.visible{visibility:visible;opacity:1}.cdx-quote{overflow:hidden;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;word-wrap:break-word;word-break:break-all}.cdx-quote blockquote{margin:0}.cdx-block-quote{border:solid #acacac;border-width:0 0 0 3px;-webkit-box-shadow:none;box-shadow:none;color:#666;line-height:1.6em;padding:1px 0 0 12px;text-align:left}.ce-delimiter__line__wrapper{height:24px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.ce-delimiter__line{-webkit-box-flex:1;-ms-flex:1;flex:1;height:2px;background-color:#eff0f1}.cdx-list{margin:0;padding:0;outline:none;display:grid;counter-reset:item;grid-gap:var(--spacing-s);padding:var(--spacing-xs);--spacing-s: 8px;--spacing-xs: 6px;--list-counter-type: numeric;--radius-border: 5px;--checkbox-background: #fff;--color-border: #C9C9C9;--color-bg-checked: #369FFF;--line-height: 1.45em;--color-bg-checked-hover: #0059AB;--color-tick: #fff;--size-checkbox: 1.2em}.cdx-list ol{padding-left:0}.cdx-list__item{line-height:var(--line-height);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;grid-template-areas:"checkbox content" ". child"}.cdx-list__item-children{display:grid;grid-area:child;grid-gap:var(--spacing-s);padding-top:var(--spacing-s)}.cdx-list__item [contenteditable]{outline:none}.cdx-list__item-content{word-break:break-word;white-space:pre-wrap;grid-area:content;padding-left:var(--spacing-s)}.cdx-list__item:before{counter-increment:item;white-space:nowrap}.cdx-list-ordered .cdx-list__item:before{content:counters(item,".",var(--list-counter-type)) "."}.cdx-list-ordered{counter-reset:item}.cdx-list-unordered{padding-left:0}.cdx-list-unordered .cdx-list__item:before{content:"•"}.cdx-list-checklist .cdx-list__item:before{content:""}.cdx-list__settings .cdx-settings-button{width:50%}.cdx-list__checkbox{padding-top:calc((var(--line-height) - var(--size-checkbox)) / 2);grid-area:checkbox;width:var(--size-checkbox);height:var(--size-checkbox);display:-webkit-box;display:-ms-flexbox;display:flex;cursor:pointer}.cdx-list__checkbox svg{opacity:0;height:var(--size-checkbox);width:var(--size-checkbox);left:-1px;top:-1px;position:absolute}@media (hover: hover){.cdx-list__checkbox:not(.cdx-list__checkbox--no-hover):hover .cdx-list__checkbox-check svg{opacity:1}}.cdx-list__checkbox--checked{line-height:var(--line-height)}@media (hover: hover){.cdx-list__checkbox--checked:not(.cdx-list__checkbox--checked--no-hover):hover .cdx-checklist__checkbox-check{background:var(--color-bg-checked-hover);border-color:var(--color-bg-checked-hover)}}.cdx-list__checkbox--checked .cdx-list__checkbox-check{background:var(--color-bg-checked);border-color:var(--color-bg-checked)}.cdx-list__checkbox--checked .cdx-list__checkbox-check svg{opacity:1}.cdx-list__checkbox--checked .cdx-list__checkbox-check svg path{stroke:var(--color-tick)}.cdx-list__checkbox--checked .cdx-list__checkbox-check:before{opacity:0;visibility:visible;-webkit-transform:scale(2.5);transform:scale(2.5)}.cdx-list__checkbox-check{cursor:pointer;display:inline-block;position:relative;margin:0 auto;width:var(--size-checkbox);height:var(--size-checkbox);-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:var(--radius-border);border:1px solid var(--color-border);background:var(--checkbox-background)}.cdx-list__checkbox-check:before{content:"";position:absolute;inset:0;border-radius:100%;background-color:var(--color-bg-checked);visibility:hidden;pointer-events:none;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:opacity .4s,-webkit-transform .4s ease-out;transition:opacity .4s,-webkit-transform .4s ease-out;transition:transform .4s ease-out,opacity .4s;transition:transform .4s ease-out,opacity .4s,-webkit-transform .4s ease-out}.cdx-list__checkbox-check--disabled{pointer-events:none}.cdx-list-start-with-field{background:#f8f8f8;border:1px solid rgba(226,226,229,.2);border-radius:6px;padding:2px;display:grid;grid-template-columns:auto auto 1fr;grid-template-rows:auto}.cdx-list-start-with-field--invalid{background:#ffeced;border:1px solid #E13F3F}.cdx-list-start-with-field--invalid .cdx-list-start-with-field__input{color:#e13f3f}.cdx-list-start-with-field__input{font-size:14px;outline:none;font-weight:500;font-family:inherit;border:0;background:transparent;margin:0;padding:0;line-height:22px;min-width:calc(100% - var(--toolbox-buttons-size) - var(--icon-margin-right))}.cdx-list-start-with-field__input::-webkit-input-placeholder{color:var(--grayText);font-weight:500}.cdx-list-start-with-field__input::-moz-placeholder{color:var(--grayText);font-weight:500}.cdx-list-start-with-field__input:-ms-input-placeholder{color:var(--grayText);font-weight:500}.cdx-list-start-with-field__input::-ms-input-placeholder{color:var(--grayText);font-weight:500}.cdx-list-start-with-field__input::placeholder{color:var(--grayText);font-weight:500}.cdx-alert{position:relative;padding:10px;border-radius:5px;margin-bottom:10px}.cdx-alert-primary{background-color:#ebf8ff;border:1px solid #4299e1;color:#2b6cb0}.cdx-alert-secondary{background-color:#f7fafc;border:1px solid #cbd5e0;color:#222731}.cdx-alert-info{background-color:#e6fdff;border:1px solid #4cd4ce;color:#00727c}.cdx-alert-success{background-color:#f0fff4;border:1px solid #68d391;color:#2f855a}.cdx-alert-warning{background-color:#fffaf0;border:1px solid #ed8936;color:#c05621}.cdx-alert-danger{background-color:#fff5f5;border:1px solid #fc8181;color:#c53030}.cdx-alert-light{background-color:#fff;border:1px solid #edf2f7;color:#1a202c}.cdx-alert-dark{background-color:#2d3748;border:1px solid #1a202c;color:#d3d3d3}.cdx-alert-align-left{text-align:left}.cdx-alert-align-center{text-align:center}.cdx-alert-align-right{text-align:right}.cdx-alert__message{outline:none}.cdx-alert [contentEditable=true][data-placeholder]:before{position:absolute;content:attr(data-placeholder);color:#707684;font-weight:400;opacity:0}.cdx-alert [contentEditable=true][data-placeholder]:empty:before{opacity:1}.cdx-alert [contentEditable=true][data-placeholder]:empty:focus:before{opacity:0}.ce-popover__item[data-item-name=alert-primary] .ce-popover__item-icon svg #background{fill:#ebf8ff;stroke:#4299e1}.ce-popover__item[data-item-name=alert-primary] .ce-popover__item-icon svg #content{fill:#2b6cb0}.ce-popover__item[data-item-name=alert-secondary] .ce-popover__item-icon svg #background{fill:#f7fafc;stroke:#cbd5e0}.ce-popover__item[data-item-name=alert-secondary] .ce-popover__item-icon svg #content{fill:#222731}.ce-popover__item[data-item-name=alert-info] .ce-popover__item-icon svg #background{fill:#e6fdff;stroke:#4cd4ce}.ce-popover__item[data-item-name=alert-info] .ce-popover__item-icon svg #content{fill:#00727c}.ce-popover__item[data-item-name=alert-success] .ce-popover__item-icon svg #background{fill:#f0fff4;stroke:#68d391}.ce-popover__item[data-item-name=alert-success] .ce-popover__item-icon svg #content{fill:#2f855a}.ce-popover__item[data-item-name=alert-warning] .ce-popover__item-icon svg #background{fill:#fffaf0;stroke:#ed8936}.ce-popover__item[data-item-name=alert-warning] .ce-popover__item-icon svg #content{fill:#c05621}.ce-popover__item[data-item-name=alert-danger] .ce-popover__item-icon svg #background{fill:#fff5f5;stroke:#fc8181}.ce-popover__item[data-item-name=alert-danger] .ce-popover__item-icon svg #content{fill:#c53030}.ce-popover__item[data-item-name=alert-light] .ce-popover__item-icon svg #background{fill:#fff;stroke:#edf2f7}.ce-popover__item[data-item-name=alert-light] .ce-popover__item-icon svg #content{fill:#1a202c}.ce-popover__item[data-item-name=alert-dark] .ce-popover__item-icon svg #background{fill:#2d3748;stroke:#1a202c}.ce-popover__item[data-item-name=alert-dark] .ce-popover__item-icon svg #content{fill:#d3d3d3}.cdx-alert_setting__icon_wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:10px}.cdx-alert_setting__icon_wrapper_align{margin-top:10px}.cdx-alert_setting__icon{display:inline-block;width:24px;height:24px;text-align:center;line-height:24px;cursor:pointer}.cdx-alert_setting__icon_active{opacity:.3}.ce-popover-indent-item{cursor:default!important}.ce-popover-indent-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:3px}.ce-popover-indent-item[version^="2.26"]{gap:10px}.ce-popover-indent-item:hover{background-color:transparent!important}.ce-popover-indent-item .ce-popover-item__icon{width:26px;height:26px;cursor:pointer;will-change:background-color,color;transition:.3s background-color,.3s color;padding:0;border-width:0px;color:#000;background-color:#fff;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;-webkit-transition:.3s background-color,.3s color;-moz-transition:.3s background-color,.3s color;-ms-transition:.3s background-color,.3s color;-o-transition:.3s background-color,.3s color}.ce-popover-indent-item .ce-popover-item--disabled{color:#707684;opacity:.3;cursor:default}.ce-popover-indent-item .ce-popover-item__icon:focus{outline:none}.ce-popover-indent-item[version^="2.26"]:hover .ce-popover-item__icon,.ce-popover-indent-item[version^="2.27"]:hover .ce-popover-item__icon,.ce-popover-indent-item[version^="2.28"]:hover .ce-popover-item__icon,.ce-popover-indent-item[version^="2.29"]:hover .ce-popover-item__icon,.ce-popover-indent-item[version^="2.26"] .ce-popover-item__icon,.ce-popover-indent-item[version^="2.27"] .ce-popover-item__icon,.ce-popover-indent-item[version^="2.28"] .ce-popover-item__icon,.ce-popover-indent-item[version^="2.29"] .ce-popover-item__icon{box-shadow:0 0 0 1px #c9c9cc7a!important;-webkit-box-shadow:0 0 0 1px rgba(201,201,204,.48)!important}.ce-popover-indent-item[version^="2.26"] .ce-popover-item__icon:hover,.ce-popover-indent-item[version^="2.27"] .ce-popover-item__icon:hover,.ce-popover-indent-item[version^="2.28"] .ce-popover-item__icon:hover,.ce-popover-indent-item[version^="2.29"] .ce-popover-item__icon:hover{background-color:#eff2f5}.ce-highlight-indent{display:inline-block;height:1.6em;top:50%;position:absolute;transform:translateY(-50%);-webkit-transform:translate(0px,-50%);-moz-transform:translate(0px,-50%);-ms-transform:translate(0px,-50%);-o-transform:translate(0px,-50%)}.ce-popover-indent-item[version^="2.3"] .ce-popover-item__title{margin-left:4px}.cdx-marker{background:#f5eb6f4a;padding:3px 0}.ce-popover--inline .ce-popover--nested .ce-popover__container{width:-webkit-min-content!important;width:-moz-min-content!important;width:min-content!important;min-width:0!important;min-width:initial!important}.ce-popover--inline .ce-popover--nested .ce-popover__items{width:-webkit-max-content;width:-moz-max-content;width:max-content}.editorjs__color-selector-container{display:grid;grid-gap:10px;padding:4px}.editorjs__color-selector__container-item{width:30px;height:30px;display:block;cursor:pointer;border-radius:100%;-webkit-transition:-webkit-transform .2s ease;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease}.editorjs__color-selector__container-item:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.cdx-underline{-webkit-text-decoration:underline;text-decoration:underline}.inline-code{background:#faeff0c7;color:#b44437;padding:3px 4px;border-radius:5px;margin:0 1px;font-family:inherit;font-size:.86em;font-weight:500;letter-spacing:.3px}.tc-wrap{--color-background: #f9f9fb;--color-text-secondary: #7b7e89;--color-border: #e8e8eb;--cell-size: 34px;--toolbox-icon-size: 18px;--toolbox-padding: 6px;--toolbox-aiming-field-size: calc(var(--toolbox-icon-size) + var(--toolbox-padding)*2);--col-width: 100px 100px 100px;position:relative;height:100%;margin-top:var(--toolbox-icon-size);-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-grid;z-index:0}.tc-wrap svg{vertical-align:top}@media print{.tc-wrap{border-left-color:var(--color-border);border-left-style:solid;border-left-width:1px}}@media print{.tc-wrap .tc-row:after{display:none}}.tc-table{position:relative;width:100%;height:100%;display:grid;font-size:14px;border-top:1px solid var(--color-border);border-left:1px solid var(--color-border);line-height:1.4;overflow-x:auto}.tc-table:after{width:calc(var(--cell-size));height:100%;left:calc(var(--cell-size)*-1);top:0}.tc-table:after,.tc-table:before{position:absolute;content:""}.tc-table:before{width:100%;height:var(--toolbox-aiming-field-size);top:calc(var(--toolbox-aiming-field-size)*-1);left:0}.tc-table--heading .tc-row:first-child{font-weight:600;border-bottom:2px solid var(--color-border);position:sticky;top:0;z-index:2;background:var(--color-background)}.tc-table--heading .tc-row:first-child [contenteditable]:empty:before{content:attr(heading);color:var(--color-text-secondary)}.tc-table--heading .tc-row:first-child:after{bottom:-2px;border-bottom:2px solid var(--color-border)}.tc-add-column,.tc-add-row{display:-webkit-box;display:-ms-flexbox;display:flex;color:var(--color-text-secondary)}@media print{.tc-add{display:none}}.tc-add-column{display:grid;border-top:1px solid var(--color-border);grid-auto-rows:var(--cell-size);-webkit-box-align:center;-ms-flex-align:center;align-items:center;justify-items:center}.tc-add-column svg{padding:5px;position:sticky;top:0;background-color:var(--color-background)}.tc-add-column--disabled{visibility:hidden}@media print{.tc-add-column{display:none}}.tc-add-row{height:var(--cell-size);-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:4px;position:relative}.tc-add-row--disabled{display:none}.tc-add-row:before{content:"";position:absolute;right:calc(var(--cell-size)*-1);width:var(--cell-size);height:100%}@media print{.tc-add-row{display:none}}.tc-add-column,.tc-add-row{-webkit-transition:0s;transition:0s;cursor:pointer;will-change:background-color}.tc-add-column:hover,.tc-add-row:hover{-webkit-transition:background-color .1s ease;transition:background-color .1s ease;background-color:var(--color-background)}.tc-add-row{margin-top:1px}.tc-add-row:hover:before{-webkit-transition:.1s;transition:.1s;background-color:var(--color-background)}.tc-row{display:grid;grid-template-columns:var(--col-width);position:relative;border-bottom:1px solid var(--color-border)}.tc-row--selected{background:var(--color-background)}.tc-row--selected:after{background:var(--color-background)}.tc-cell{border-right:1px solid var(--color-border);padding:6px 12px;overflow:hidden;outline:none;line-break:normal}.tc-cell--selected{background:var(--color-background)}.tc-wrap--readonly .tc-row:after{display:none}.tc-toolbox{--toolbox-padding: 6px;--popover-margin: 30px;--toggler-click-zone-size: 30px;--toggler-dots-color: #7b7e89;--toggler-dots-color-hovered: #1d202b;position:absolute;cursor:pointer;z-index:1;opacity:0;-webkit-transition:opacity .1s;transition:opacity .1s;will-change:left,opacity}.tc-toolbox--column{top:calc(var(--toggler-click-zone-size)*-1);-webkit-transform:translate(calc(var(--toggler-click-zone-size)*-1/2));transform:translate(calc(var(--toggler-click-zone-size)*-1/2));will-change:left,opacity}.tc-toolbox--row{left:calc(var(--popover-margin)*-1);-webkit-transform:translateY(calc(var(--toggler-click-zone-size)*-1/2));transform:translateY(calc(var(--toggler-click-zone-size)*-1/2));margin-top:-1px;will-change:top,opacity}.tc-toolbox--showed{opacity:1}.tc-toolbox .tc-popover{position:absolute;top:0;left:var(--popover-margin)}.tc-toolbox__toggler{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:var(--toggler-click-zone-size);height:var(--toggler-click-zone-size);color:var(--toggler-dots-color);opacity:0;-webkit-transition:opacity .15s ease;transition:opacity .15s ease;will-change:opacity}.tc-toolbox__toggler:hover{color:var(--toggler-dots-color-hovered)}.tc-toolbox__toggler svg{fill:currentColor}.tc-wrap:hover .tc-toolbox__toggler{opacity:1}.tc-settings .cdx-settings-button{width:50%;margin:0}.tc-popover{--color-border: #eaeaea;--color-background: #fff;--color-background-hover: rgba(232, 232, 235, .49);--color-background-confirm: #e24a4a;--color-background-confirm-hover: #d54040;--color-text-confirm: #fff;background:var(--color-background);border:1px solid var(--color-border);-webkit-box-shadow:0 3px 15px -3px rgba(13,20,33,.12941);box-shadow:0 3px 15px -3px #0d142121;border-radius:6px;padding:6px;display:none;will-change:opacity,transform}.tc-popover--opened{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-animation:menuShowing .1s cubic-bezier(.215,.61,.355,1) forwards;animation:menuShowing .1s cubic-bezier(.215,.61,.355,1) forwards}.tc-popover__item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:2px 14px 2px 2px;border-radius:5px;cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tc-popover__item:hover{background:var(--color-background-hover)}.tc-popover__item:not(:last-of-type){margin-bottom:2px}.tc-popover__item-icon{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;width:26px;height:26px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;background:var(--color-background);border-radius:5px;border:1px solid var(--color-border);margin-right:8px}.tc-popover__item-label{line-height:22px;font-size:14px;font-weight:500}.tc-popover__item--confirm{background:var(--color-background-confirm);color:var(--color-text-confirm)}.tc-popover__item--confirm:hover{background-color:var(--color-background-confirm-hover)}.tc-popover__item--confirm .tc-popover__item-icon{background:var(--color-background-confirm);border-color:#0000001a}.tc-popover__item--confirm .tc-popover__item-icon svg{-webkit-transition:-webkit-transform .2s ease-in;transition:-webkit-transform .2s ease-in;transition:transform .2s ease-in;transition:transform .2s ease-in,-webkit-transform .2s ease-in;-webkit-transform:rotate(90deg) scale(1.2);transform:rotate(90deg) scale(1.2)}.tc-popover__item--hidden{display:none}@-webkit-keyframes menuShowing{0%{opacity:0;-webkit-transform:translateY(-8px) scale(.9);transform:translateY(-8px) scale(.9)}70%{opacity:1;-webkit-transform:translateY(2px);transform:translateY(2px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes menuShowing{0%{opacity:0;-webkit-transform:translateY(-8px) scale(.9);transform:translateY(-8px) scale(.9)}70%{opacity:1;-webkit-transform:translateY(2px);transform:translateY(2px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}.cell-resizable{cursor:col-resize}.image-tool{--bg-color: #cdd1e0;--front-color: #388ae5;--border-color: #e8e8eb;display:inline-block}.image-tool__image{border-radius:3px;overflow:hidden;margin-bottom:10px;padding-bottom:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.image-tool__image-picture{max-width:100%;vertical-align:bottom;display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.image-tool__image-preloader{width:50px;height:50px;border-radius:50%;background-size:cover;margin:auto;position:relative;background-color:var(--bg-color);background-position:center center}.image-tool__image-preloader:after{content:"";position:absolute;z-index:3;width:60px;height:60px;border-radius:50%;border:2px solid var(--bg-color);border-top-color:var(--front-color);left:50%;top:50%;margin-top:-30px;margin-left:-30px;-webkit-animation:image-preloader-spin 2s infinite linear;animation:image-preloader-spin 2s infinite linear;-webkit-box-sizing:border-box;box-sizing:border-box}.image-tool__caption{visibility:hidden;position:absolute;bottom:0;left:0;margin-bottom:10px}.image-tool__caption[contentEditable=true][data-placeholder]:before{position:absolute!important}.image-tool__caption[contentEditable=true][data-placeholder]:before{content:attr(data-placeholder);color:#707684;font-weight:400;display:none}.image-tool__caption[contentEditable=true][data-placeholder]:empty:before{display:block}.image-tool__caption[contentEditable=true][data-placeholder]:empty:focus:before{display:none}.image-tool--empty .image-tool__image,.image-tool--empty .image-tool__image-preloader{display:none}.image-tool--empty .image-tool__caption,.image-tool--uploading .image-tool__caption{visibility:hidden!important}.image-tool .cdx-button{display:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.image-tool .cdx-button svg{height:auto;margin:0 6px 0 0}.image-tool--filled .cdx-button,.image-tool--filled .image-tool__image-preloader{display:none}.image-tool--uploading .image-tool__image{min-height:200px;display:-webkit-box;display:-ms-flexbox;display:flex;border:1px solid var(--border-color);background-color:#fff}.image-tool--uploading .image-tool__image-picture,.image-tool--uploading .cdx-button{display:none}.image-tool--withBorder .image-tool__image{border:1px solid var(--border-color)}.image-tool--withBackground .image-tool__image{padding:15px;background:var(--bg-color)}.image-tool--withBackground .image-tool__image-picture{max-width:60%;margin:0 auto}.image-tool--stretched .image-tool__image-picture{width:100%}.image-tool--caption .image-tool__caption{visibility:visible}.image-tool--caption{padding-bottom:50px}@-webkit-keyframes image-preloader-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes image-preloader-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cdx-image-tool-tune--floatLeft .cdx-block,.cdx-image-tool-tune--center .cdx-block,.cdx-image-tool-tune--floatRight .cdx-block,.cdx-image-tool-tune--floatLeft .image-tool__image,.cdx-image-tool-tune--center .image-tool__image,.cdx-image-tool-tune--floatRight .image-tool__image{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}:root{--primary: #2492F5;--primary-content: #E9F4FE}.cdx-settings-button--active{background:#e9f4fe;color:#2492f5}.cdx-settings-button:hover{background:#e9f4fe}.cdx-image-tool-tune--center{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}@media all and (min-width: 470px){.codex-editor:not(.read-only) .cdx-image-tool-tune--floatLeft.ce-block__content,.codex-editor:not(.read-only) .cdx-image-tool-tune--floatRight.ce-block__content{min-height:20px}.cdx-image-tool-tune--floatLeft.ce-block__content .image-tool__image,.cdx-image-tool-tune--floatRight.ce-block__content .image-tool__image{margin-top:40px}.cdx-image-tool-tune--floatLeft.ce-block__content .image-tool__image{margin-left:20px}.cdx-image-tool-tune--floatRight.ce-block__content .image-tool__image{margin-right:20px}.cdx-image-tool-tune--floatLeft.ce-block__content .cdx-input,.cdx-image-tool-tune--floatRight.ce-block__content .cdx-input{width:calc(100% - 20px)}.cdx-image-tool-tune--floatLeft.ce-block__content .cdx-input{margin-left:20px}.cdx-image-tool-tune--floatRight.ce-block__content .cdx-input{margin-right:20px}.cdx-image-tool-tune--floatLeft .cdx-block{float:left;margin-right:10px}.cdx-image-tool-tune--floatRight .cdx-block{float:right;margin-left:10px}.cdx-image-tool-tune--sizeSmall .cdx-block{max-width:25%!important}.cdx-image-tool-tune--sizeMiddle .cdx-block{max-width:50%!important}.cdx-image-tool-tune--sizeLarge .cdx-block{max-width:75%!important}}.cdx-image-tool-tune--sizeLarge img,.cdx-image-tool-tune--sizeSmall img,.cdx-image-tool-tune--sizeMiddle img{-o-object-fit:cover;object-fit:cover;max-width:100%}.codex-editor.read-only .cdx-input.image-tool__caption:empty,.read-only>.codex-editor .cdx-input.image-tool__caption:empty{display:none}.cdx-image-tool-tune--resize .cdx-block{position:relative;overflow:visible}.cdx-image-tool-tune--resize .cdx-block .resizable{display:none}.cdx-image-tool-tune--resize .image-tool__image-picture{width:100%!important}.cdx-image-tool-tune--resize .cdx-block:hover .resizable{display:block}.cdx-image-tool-tune--resize .cdx-block .resizable .resizers .resizer{width:8px;height:8px;border-radius:50%;background:#e9f4fe;border:3px solid #2492F5;position:absolute}.cdx-image-tool-tune--resize .cdx-block .resizable .resizers .resizer.top-left{left:-8px;top:2px;cursor:nwse-resize}.cdx-image-tool-tune--resize .cdx-block .resizable .resizers .resizer.top-right{right:-8px;top:1px;cursor:nesw-resize}.cdx-image-tool-tune--resize .cdx-block .resizable .resizers .resizer.bottom-left{left:-9px;bottom:10px;cursor:nesw-resize}.cdx-image-tool-tune--resize .cdx-block .resizable .resizers .resizer.bottom-right{right:-9px;bottom:10px;cursor:nwse-resize}.cdx-image-tool-tune--crop:hover,.cdx-image-tool-tune--crop.isCropping,.cdx-image-tool-tune--resize:hover{z-index:2}.cdx-image-tool-tune--crop .image-tool__image{position:relative}.cdx-image-tool-tune--crop .isCropping .image-tool__image{min-height:600px;min-width:100%}.cdx-image-tool-tune--crop .image-tool__image .crop-btn,.cdx-image-tool-tune--crop .image-tool__image .crop-save{position:absolute;top:0;left:0;padding:7px;background:#2492f5;color:#e9f4fe;text-align:center;line-height:20px;cursor:pointer;display:none}.cdx-image-tool-tune--crop .image-tool__image:hover .crop-btn,.cdx-image-tool-tune--crop .image-tool__image:hover .crop-save{display:block}.cdx-image-tool-tune--crop .image-tool__image img.isCropped{position:absolute;min-width:0;min-width:initial;max-width:none;max-width:initial;min-height:0;min-height:initial;max-height:none;max-height:initial}.cdx-image-tool-tune--crop .cdx-block.image-tool.isCropping{min-width:0!important;min-width:initial!important;max-width:none!important;max-width:initial!important;min-height:0!important;min-height:initial!important;max-height:none!important;max-height:initial!important}.image-tool__caption{background-color:#fff}.image-tool{position:relative;z-index:1}.cdx-image-tool-tune{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;gap:4px;width:100%}')),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
2
- import { defineComponent as Nt, inject as zt, onMounted as Ft, toRaw as Pt, onUnmounted as Wt, createElementBlock as $t, openBlock as qt } from "vue";
3
- import Ut from "@ebl-vue/editorjs";
4
- import { bundledLanguagesInfo as jt, codeToHtml as Vt } from "shiki";
5
- import { make as S, isEmpty as rt } from "@editorjs/dom";
6
- import { focus as Kt, isCaretAtStartOfInput as Yt, getCaretNodeAndOffset as Gt, getContenteditableSlice as Jt } from "@editorjs/caret";
7
- import lt from "vanilla-caret-js";
8
- import U from "axios";
9
- const dt = Symbol("INSTALLED_KEY"), Xt = (h, t) => (h.install = (e) => {
10
- for (const i of [h, ...Object.values({})]) e.component(i.name, i);
11
- }, h);
12
- class Qt {
1
+ (function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode(':root{--color-border: #EFF0F1}.ebl-editor{cursor:text;font-size:16px;font-weight:400;background-color:#fff}@media (min-width: 1050px){.ce-block__content,.ce-toolbar__content{max-width:700px}}.ce-toolbar,.ce-inline-toolbar{z-index:1000}.ce-toolbar__plus{border:1px solid #EFF0F1}.ce-toolbar .ce-popover__items{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.ce-toolbar .ce-popover__items .ce-popover-item{position:relative}.ce-toolbar .ce-popover__items .ce-popover-item__title{display:none}.ce-toolbar .ce-popover-item-html,.ce-toolbar .ce-popover-item-separator,.ce-toolbar .ce-popover-item[data-item-name=convert-to]{width:100%}.ce-toolbar .ce-popover-item[data-item-name=convert-to] .ce-popover-item__title{display:block}.ce-inline-toolbar .ce-popover__items{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.ce-inline-toolbar .ce-popover__items{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.ce-inline-toolbar .ce-popover__items .ce-popover-item__title{display:none}.ce-block--drop-target .ce-block__content:before{content:"";position:absolute;top:50%;left:-20px;margin-top:-1px;height:8px;width:8px;border:solid #a0a0a0;border-width:1px 1px 0 0;-webkit-transform-origin:right;transform-origin:right;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.ce-block--drop-target .ce-block__content:after{background:none}.ce-header{padding:.6em 0 3px;margin:0;line-height:1.25em;outline:none}.ce-header p,.ce-header div{padding:0!important;margin:0!important}.ce-tune-alignment--right{text-align:right}.ce-tune-alignment--center{text-align:center}.ce-tune-alignment--left{text-align:left}.ce-paragraph{line-height:1.6em;outline:none}.ce-block:only-of-type .ce-paragraph[data-placeholder-active]:empty:before,.ce-block:only-of-type .ce-paragraph[data-placeholder-active][data-empty=true]:before{content:attr(data-placeholder-active)}.ce-paragraph p:first-of-type{margin-top:0}.ce-paragraph p:last-of-type{margin-bottom:0}.ce-editorjs-x-shiki{border-radius:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:10px 0}.ce-editorjs-x-shiki__code{position:relative;float:left;min-width:100%;overflow-x:auto}.ce-editorjs-x-shiki__selector{display:-webkit-box;display:-ms-flexbox;display:flex;gap:15px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;z-index:12;border-bottom-style:solid;border-color:#9ca3af0d;border-bottom-width:1px;padding:8px}.ce-editorjs-x-shiki__selector-language,.ce-editorjs-x-shiki__selector-theme{font-size:13px;font-family:inherit}.ce-editorjs-x-shiki__selector-language{width:90px}.ce-editorjs-x-shiki__selector select{border:none;outline:none}.ce-editorjs-x-shiki__span{position:relative;z-index:0;padding:20px 20px 20px 55px;margin:0;white-space:pre;font-size:13px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.ce-editorjs-x-shiki__textarea{white-space:pre;overflow:hidden;background-color:transparent;position:absolute;padding:20px 20px 20px 55px;inset:0;color:transparent;z-index:0;font-size:13px;caret-color:#999;resize:none;border:none;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.ce-editorjs-x-shiki__copy{width:24px;height:24px;cursor:pointer;position:relative;margin-right:0}.ce-editorjs-x-shiki__copy_tip{font-size:12px;width:60px;margin-left:-20px;background-color:#0c0c0c;color:#ececec;text-align:center;border-radius:6px;padding:5px 10px;position:absolute;z-index:1;top:125%;-webkit-transition:opacity .3s;transition:opacity .3s;visibility:hidden;opacity:0}.ce-editorjs-x-shiki__copy_tip:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #0c0c0c transparent}.ce-editorjs-x-shiki__copy_tip.visible{visibility:visible;opacity:1}.ce-editorjs-x-shiki__span.shiki .line:before{content:attr(data-line);width:40px;display:inline-block;text-align:right;color:#888;position:absolute;left:0}.cdx-quote{overflow:hidden;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;word-wrap:break-word;word-break:break-all}.cdx-quote blockquote{margin:0}.cdx-block-quote{border:solid #acacac;border-width:0 0 0 3px;-webkit-box-shadow:none;box-shadow:none;color:#666;line-height:1.6em;padding:1px 0 0 12px;text-align:left}.ce-delimiter__line__wrapper{height:24px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.ce-delimiter__line{-webkit-box-flex:1;-ms-flex:1;flex:1;height:2px;background-color:#eff0f1}.cdx-list{margin:0;padding:0;outline:none;display:grid;counter-reset:item;grid-gap:var(--spacing-s);padding:var(--spacing-xs);--spacing-s: 8px;--spacing-xs: 6px;--list-counter-type: numeric;--radius-border: 5px;--checkbox-background: #fff;--color-border: #C9C9C9;--color-bg-checked: #369FFF;--line-height: 1.45em;--color-bg-checked-hover: #0059AB;--color-tick: #fff;--size-checkbox: 1.2em}.cdx-list ol{padding-left:0}.cdx-list__item{line-height:var(--line-height);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;grid-template-areas:"checkbox content" ". child"}.cdx-list__item-children{display:grid;grid-area:child;grid-gap:var(--spacing-s);padding-top:var(--spacing-s)}.cdx-list__item [contenteditable]{outline:none}.cdx-list__item-content{word-break:break-word;white-space:pre-wrap;grid-area:content;padding-left:var(--spacing-s)}.cdx-list__item:before{counter-increment:item;white-space:nowrap}.cdx-list-ordered .cdx-list__item:before{content:counters(item,".",var(--list-counter-type)) "."}.cdx-list-ordered{counter-reset:item}.cdx-list-unordered{padding-left:0}.cdx-list-unordered .cdx-list__item:before{content:"•"}.cdx-list-checklist .cdx-list__item:before{content:""}.cdx-list__settings .cdx-settings-button{width:50%}.cdx-list__checkbox{padding-top:calc((var(--line-height) - var(--size-checkbox)) / 2);grid-area:checkbox;width:var(--size-checkbox);height:var(--size-checkbox);display:-webkit-box;display:-ms-flexbox;display:flex;cursor:pointer}.cdx-list__checkbox svg{opacity:0;height:var(--size-checkbox);width:var(--size-checkbox);left:-1px;top:-1px;position:absolute}@media (hover: hover){.cdx-list__checkbox:not(.cdx-list__checkbox--no-hover):hover .cdx-list__checkbox-check svg{opacity:1}}.cdx-list__checkbox--checked{line-height:var(--line-height)}@media (hover: hover){.cdx-list__checkbox--checked:not(.cdx-list__checkbox--checked--no-hover):hover .cdx-checklist__checkbox-check{background:var(--color-bg-checked-hover);border-color:var(--color-bg-checked-hover)}}.cdx-list__checkbox--checked .cdx-list__checkbox-check{background:var(--color-bg-checked);border-color:var(--color-bg-checked)}.cdx-list__checkbox--checked .cdx-list__checkbox-check svg{opacity:1}.cdx-list__checkbox--checked .cdx-list__checkbox-check svg path{stroke:var(--color-tick)}.cdx-list__checkbox--checked .cdx-list__checkbox-check:before{opacity:0;visibility:visible;-webkit-transform:scale(2.5);transform:scale(2.5)}.cdx-list__checkbox-check{cursor:pointer;display:inline-block;position:relative;margin:0 auto;width:var(--size-checkbox);height:var(--size-checkbox);-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:var(--radius-border);border:1px solid var(--color-border);background:var(--checkbox-background)}.cdx-list__checkbox-check:before{content:"";position:absolute;inset:0;border-radius:100%;background-color:var(--color-bg-checked);visibility:hidden;pointer-events:none;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:opacity .4s,-webkit-transform .4s ease-out;transition:opacity .4s,-webkit-transform .4s ease-out;transition:transform .4s ease-out,opacity .4s;transition:transform .4s ease-out,opacity .4s,-webkit-transform .4s ease-out}.cdx-list__checkbox-check--disabled{pointer-events:none}.cdx-list-start-with-field{background:#F8F8F8;border:1px solid rgba(226,226,229,.2);border-radius:6px;padding:2px;display:grid;grid-template-columns:auto auto 1fr;grid-template-rows:auto}.cdx-list-start-with-field--invalid{background:#FFECED;border:1px solid #E13F3F}.cdx-list-start-with-field--invalid .cdx-list-start-with-field__input{color:#e13f3f}.cdx-list-start-with-field__input{font-size:14px;outline:none;font-weight:500;font-family:inherit;border:0;background:transparent;margin:0;padding:0;line-height:22px;min-width:calc(100% - var(--toolbox-buttons-size) - var(--icon-margin-right))}.cdx-list-start-with-field__input::-webkit-input-placeholder{color:var(--grayText);font-weight:500}.cdx-list-start-with-field__input::-moz-placeholder{color:var(--grayText);font-weight:500}.cdx-list-start-with-field__input:-ms-input-placeholder{color:var(--grayText);font-weight:500}.cdx-list-start-with-field__input::-ms-input-placeholder{color:var(--grayText);font-weight:500}.cdx-list-start-with-field__input::placeholder{color:var(--grayText);font-weight:500}.cdx-alert{position:relative;padding:10px;border-radius:5px;margin-bottom:10px}.cdx-alert-primary{background-color:#ebf8ff;border:1px solid #4299e1;color:#2b6cb0}.cdx-alert-secondary{background-color:#f7fafc;border:1px solid #cbd5e0;color:#222731}.cdx-alert-info{background-color:#e6fdff;border:1px solid #4cd4ce;color:#00727c}.cdx-alert-success{background-color:#f0fff4;border:1px solid #68d391;color:#2f855a}.cdx-alert-warning{background-color:#fffaf0;border:1px solid #ed8936;color:#c05621}.cdx-alert-danger{background-color:#fff5f5;border:1px solid #fc8181;color:#c53030}.cdx-alert-light{background-color:#fff;border:1px solid #edf2f7;color:#1a202c}.cdx-alert-dark{background-color:#2d3748;border:1px solid #1a202c;color:#d3d3d3}.cdx-alert-align-left{text-align:left}.cdx-alert-align-center{text-align:center}.cdx-alert-align-right{text-align:right}.cdx-alert__message{outline:none}.cdx-alert [contentEditable=true][data-placeholder]:before{position:absolute;content:attr(data-placeholder);color:#707684;font-weight:400;opacity:0}.cdx-alert [contentEditable=true][data-placeholder]:empty:before{opacity:1}.cdx-alert [contentEditable=true][data-placeholder]:empty:focus:before{opacity:0}.ce-popover__item[data-item-name=alert-primary] .ce-popover__item-icon svg #background{fill:#ebf8ff;stroke:#4299e1}.ce-popover__item[data-item-name=alert-primary] .ce-popover__item-icon svg #content{fill:#2b6cb0}.ce-popover__item[data-item-name=alert-secondary] .ce-popover__item-icon svg #background{fill:#f7fafc;stroke:#cbd5e0}.ce-popover__item[data-item-name=alert-secondary] .ce-popover__item-icon svg #content{fill:#222731}.ce-popover__item[data-item-name=alert-info] .ce-popover__item-icon svg #background{fill:#e6fdff;stroke:#4cd4ce}.ce-popover__item[data-item-name=alert-info] .ce-popover__item-icon svg #content{fill:#00727c}.ce-popover__item[data-item-name=alert-success] .ce-popover__item-icon svg #background{fill:#f0fff4;stroke:#68d391}.ce-popover__item[data-item-name=alert-success] .ce-popover__item-icon svg #content{fill:#2f855a}.ce-popover__item[data-item-name=alert-warning] .ce-popover__item-icon svg #background{fill:#fffaf0;stroke:#ed8936}.ce-popover__item[data-item-name=alert-warning] .ce-popover__item-icon svg #content{fill:#c05621}.ce-popover__item[data-item-name=alert-danger] .ce-popover__item-icon svg #background{fill:#fff5f5;stroke:#fc8181}.ce-popover__item[data-item-name=alert-danger] .ce-popover__item-icon svg #content{fill:#c53030}.ce-popover__item[data-item-name=alert-light] .ce-popover__item-icon svg #background{fill:#fff;stroke:#edf2f7}.ce-popover__item[data-item-name=alert-light] .ce-popover__item-icon svg #content{fill:#1a202c}.ce-popover__item[data-item-name=alert-dark] .ce-popover__item-icon svg #background{fill:#2d3748;stroke:#1a202c}.ce-popover__item[data-item-name=alert-dark] .ce-popover__item-icon svg #content{fill:#d3d3d3}.cdx-alert_setting__icon_wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:10px}.cdx-alert_setting__icon_wrapper_align{margin-top:10px}.cdx-alert_setting__icon{display:inline-block;width:24px;height:24px;text-align:center;line-height:24px;cursor:pointer}.cdx-alert_setting__icon_active{opacity:.3}.ce-popover-indent-item{cursor:default!important}.ce-popover-indent-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:3px}.ce-popover-indent-item[version^="2.26"]{gap:10px}.ce-popover-indent-item:hover{background-color:transparent!important}.ce-popover-indent-item .ce-popover-item__icon{width:26px;height:26px;cursor:pointer;will-change:background-color,color;transition:.3s background-color,.3s color;padding:0;border-width:0px;color:#000;background-color:#fff;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;-webkit-transition:.3s background-color,.3s color;-moz-transition:.3s background-color,.3s color;-ms-transition:.3s background-color,.3s color;-o-transition:.3s background-color,.3s color}.ce-popover-indent-item .ce-popover-item--disabled{color:#707684;opacity:.3;cursor:default}.ce-popover-indent-item .ce-popover-item__icon:focus{outline:none}.ce-popover-indent-item[version^="2.26"]:hover .ce-popover-item__icon,.ce-popover-indent-item[version^="2.27"]:hover .ce-popover-item__icon,.ce-popover-indent-item[version^="2.28"]:hover .ce-popover-item__icon,.ce-popover-indent-item[version^="2.29"]:hover .ce-popover-item__icon,.ce-popover-indent-item[version^="2.26"] .ce-popover-item__icon,.ce-popover-indent-item[version^="2.27"] .ce-popover-item__icon,.ce-popover-indent-item[version^="2.28"] .ce-popover-item__icon,.ce-popover-indent-item[version^="2.29"] .ce-popover-item__icon{box-shadow:0 0 0 1px #c9c9cc7a!important;-webkit-box-shadow:0 0 0 1px rgba(201,201,204,.48)!important}.ce-popover-indent-item[version^="2.26"] .ce-popover-item__icon:hover,.ce-popover-indent-item[version^="2.27"] .ce-popover-item__icon:hover,.ce-popover-indent-item[version^="2.28"] .ce-popover-item__icon:hover,.ce-popover-indent-item[version^="2.29"] .ce-popover-item__icon:hover{background-color:#eff2f5}.ce-highlight-indent{display:inline-block;height:1.6em;top:50%;position:absolute;transform:translateY(-50%);-webkit-transform:translate(0px,-50%);-moz-transform:translate(0px,-50%);-ms-transform:translate(0px,-50%);-o-transform:translate(0px,-50%)}.ce-popover-indent-item[version^="2.3"] .ce-popover-item__title{margin-left:4px}.cdx-marker{background:rgba(245,235,111,.29);padding:3px 0}.ce-popover--inline .ce-popover--nested .ce-popover__container{width:-webkit-min-content!important;width:-moz-min-content!important;width:min-content!important;min-width:0!important;min-width:initial!important}.ce-popover--inline .ce-popover--nested .ce-popover__items{width:-webkit-max-content;width:-moz-max-content;width:max-content}.editorjs__color-selector-container{display:grid;grid-gap:10px;padding:4px}.editorjs__color-selector__container-item{width:30px;height:30px;display:block;cursor:pointer;border-radius:100%;-webkit-transition:-webkit-transform .2s ease;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease}.editorjs__color-selector__container-item:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.cdx-underline{-webkit-text-decoration:underline;text-decoration:underline}.inline-code{background:rgba(250,239,240,.78);color:#b44437;padding:3px 4px;border-radius:5px;margin:0 1px;font-family:inherit;font-size:.86em;font-weight:500;letter-spacing:.3px}.tc-wrap{--color-background: #f9f9fb;--color-text-secondary: #7b7e89;--color-border: #e8e8eb;--cell-size: 34px;--toolbox-icon-size: 18px;--toolbox-padding: 6px;--toolbox-aiming-field-size: calc(var(--toolbox-icon-size) + var(--toolbox-padding)*2);--col-width: 100px 100px 100px;position:relative;height:100%;margin-top:var(--toolbox-icon-size);-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-grid;z-index:0}.tc-wrap svg{vertical-align:top}@media print{.tc-wrap{border-left-color:var(--color-border);border-left-style:solid;border-left-width:1px}}@media print{.tc-wrap .tc-row:after{display:none}}.tc-table{position:relative;width:100%;height:100%;display:grid;font-size:14px;border-top:1px solid var(--color-border);border-left:1px solid var(--color-border);line-height:1.4;overflow-x:auto}.tc-table:after{width:calc(var(--cell-size));height:100%;left:calc(var(--cell-size)*-1);top:0}.tc-table:after,.tc-table:before{position:absolute;content:""}.tc-table:before{width:100%;height:var(--toolbox-aiming-field-size);top:calc(var(--toolbox-aiming-field-size)*-1);left:0}.tc-table--heading .tc-row:first-child{font-weight:600;border-bottom:2px solid var(--color-border);position:sticky;top:0;z-index:2;background:var(--color-background)}.tc-table--heading .tc-row:first-child [contenteditable]:empty:before{content:attr(heading);color:var(--color-text-secondary)}.tc-table--heading .tc-row:first-child:after{bottom:-2px;border-bottom:2px solid var(--color-border)}.tc-add-column,.tc-add-row{display:-webkit-box;display:-ms-flexbox;display:flex;color:var(--color-text-secondary)}@media print{.tc-add{display:none}}.tc-add-column{display:grid;border-top:1px solid var(--color-border);grid-auto-rows:var(--cell-size);-webkit-box-align:center;-ms-flex-align:center;align-items:center;justify-items:center}.tc-add-column svg{padding:5px;position:sticky;top:0;background-color:var(--color-background)}.tc-add-column--disabled{visibility:hidden}@media print{.tc-add-column{display:none}}.tc-add-row{height:var(--cell-size);-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:4px;position:relative}.tc-add-row--disabled{display:none}.tc-add-row:before{content:"";position:absolute;right:calc(var(--cell-size)*-1);width:var(--cell-size);height:100%}@media print{.tc-add-row{display:none}}.tc-add-column,.tc-add-row{-webkit-transition:0s;transition:0s;cursor:pointer;will-change:background-color}.tc-add-column:hover,.tc-add-row:hover{-webkit-transition:background-color .1s ease;transition:background-color .1s ease;background-color:var(--color-background)}.tc-add-row{margin-top:1px}.tc-add-row:hover:before{-webkit-transition:.1s;transition:.1s;background-color:var(--color-background)}.tc-row{display:grid;grid-template-columns:var(--col-width);position:relative;border-bottom:1px solid var(--color-border)}.tc-row--selected{background:var(--color-background)}.tc-row--selected:after{background:var(--color-background)}.tc-cell{border-right:1px solid var(--color-border);padding:6px 12px;overflow:hidden;outline:none;line-break:normal}.tc-cell--selected{background:var(--color-background)}.tc-wrap--readonly .tc-row:after{display:none}.tc-toolbox{--toolbox-padding: 6px;--popover-margin: 30px;--toggler-click-zone-size: 30px;--toggler-dots-color: #7b7e89;--toggler-dots-color-hovered: #1d202b;position:absolute;cursor:pointer;z-index:1;opacity:0;-webkit-transition:opacity .1s;transition:opacity .1s;will-change:left,opacity}.tc-toolbox--column{top:calc(var(--toggler-click-zone-size)*-1);-webkit-transform:translate(calc(var(--toggler-click-zone-size)*-1/2));transform:translate(calc(var(--toggler-click-zone-size)*-1/2));will-change:left,opacity}.tc-toolbox--row{left:calc(var(--popover-margin)*-1);-webkit-transform:translateY(calc(var(--toggler-click-zone-size)*-1/2));transform:translateY(calc(var(--toggler-click-zone-size)*-1/2));margin-top:-1px;will-change:top,opacity}.tc-toolbox--showed{opacity:1}.tc-toolbox .tc-popover{position:absolute;top:0;left:var(--popover-margin)}.tc-toolbox__toggler{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:var(--toggler-click-zone-size);height:var(--toggler-click-zone-size);color:var(--toggler-dots-color);opacity:0;-webkit-transition:opacity .15s ease;transition:opacity .15s ease;will-change:opacity}.tc-toolbox__toggler:hover{color:var(--toggler-dots-color-hovered)}.tc-toolbox__toggler svg{fill:currentColor}.tc-wrap:hover .tc-toolbox__toggler{opacity:1}.tc-settings .cdx-settings-button{width:50%;margin:0}.tc-popover{--color-border: #eaeaea;--color-background: #fff;--color-background-hover: rgba(232, 232, 235, .49);--color-background-confirm: #e24a4a;--color-background-confirm-hover: #d54040;--color-text-confirm: #fff;background:var(--color-background);border:1px solid var(--color-border);-webkit-box-shadow:0 3px 15px -3px rgba(13,20,33,.12941);box-shadow:0 3px 15px -3px #0d142121;border-radius:6px;padding:6px;display:none;will-change:opacity,transform}.tc-popover--opened{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-animation:menuShowing .1s cubic-bezier(.215,.61,.355,1) forwards;animation:menuShowing .1s cubic-bezier(.215,.61,.355,1) forwards}.tc-popover__item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:2px 14px 2px 2px;border-radius:5px;cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tc-popover__item:hover{background:var(--color-background-hover)}.tc-popover__item:not(:last-of-type){margin-bottom:2px}.tc-popover__item-icon{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;width:26px;height:26px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;background:var(--color-background);border-radius:5px;border:1px solid var(--color-border);margin-right:8px}.tc-popover__item-label{line-height:22px;font-size:14px;font-weight:500}.tc-popover__item--confirm{background:var(--color-background-confirm);color:var(--color-text-confirm)}.tc-popover__item--confirm:hover{background-color:var(--color-background-confirm-hover)}.tc-popover__item--confirm .tc-popover__item-icon{background:var(--color-background-confirm);border-color:#0000001a}.tc-popover__item--confirm .tc-popover__item-icon svg{-webkit-transition:-webkit-transform .2s ease-in;transition:-webkit-transform .2s ease-in;transition:transform .2s ease-in;transition:transform .2s ease-in,-webkit-transform .2s ease-in;-webkit-transform:rotate(90deg) scale(1.2);transform:rotate(90deg) scale(1.2)}.tc-popover__item--hidden{display:none}@-webkit-keyframes menuShowing{0%{opacity:0;-webkit-transform:translateY(-8px) scale(.9);transform:translateY(-8px) scale(.9)}70%{opacity:1;-webkit-transform:translateY(2px);transform:translateY(2px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes menuShowing{0%{opacity:0;-webkit-transform:translateY(-8px) scale(.9);transform:translateY(-8px) scale(.9)}70%{opacity:1;-webkit-transform:translateY(2px);transform:translateY(2px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}.cell-resizable{cursor:col-resize}.image-tool{--bg-color: #cdd1e0;--front-color: #388ae5;--border-color: #e8e8eb;display:inline-block}.image-tool__image{border-radius:3px;overflow:hidden;margin-bottom:10px;padding-bottom:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.image-tool__image-picture{max-width:100%;vertical-align:bottom;display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.image-tool__image-preloader{width:50px;height:50px;border-radius:50%;background-size:cover;margin:auto;position:relative;background-color:var(--bg-color);background-position:center center}.image-tool__image-preloader:after{content:"";position:absolute;z-index:3;width:60px;height:60px;border-radius:50%;border:2px solid var(--bg-color);border-top-color:var(--front-color);left:50%;top:50%;margin-top:-30px;margin-left:-30px;-webkit-animation:image-preloader-spin 2s infinite linear;animation:image-preloader-spin 2s infinite linear;-webkit-box-sizing:border-box;box-sizing:border-box}.image-tool__caption{visibility:hidden;position:absolute;bottom:0;left:0;margin-bottom:10px}.image-tool__caption[contentEditable=true][data-placeholder]:before{position:absolute!important}.image-tool__caption[contentEditable=true][data-placeholder]:before{content:attr(data-placeholder);color:#707684;font-weight:400;display:none}.image-tool__caption[contentEditable=true][data-placeholder]:empty:before{display:block}.image-tool__caption[contentEditable=true][data-placeholder]:empty:focus:before{display:none}.image-tool--empty .image-tool__image,.image-tool--empty .image-tool__image-preloader{display:none}.image-tool--empty .image-tool__caption,.image-tool--uploading .image-tool__caption{visibility:hidden!important}.image-tool .cdx-button{display:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.image-tool .cdx-button svg{height:auto;margin:0 6px 0 0}.image-tool--filled .cdx-button,.image-tool--filled .image-tool__image-preloader{display:none}.image-tool--uploading .image-tool__image{min-height:200px;display:-webkit-box;display:-ms-flexbox;display:flex;border:1px solid var(--border-color);background-color:#fff}.image-tool--uploading .image-tool__image-picture,.image-tool--uploading .cdx-button{display:none}.image-tool--withBorder .image-tool__image{border:1px solid var(--border-color)}.image-tool--withBackground .image-tool__image{padding:15px;background:var(--bg-color)}.image-tool--withBackground .image-tool__image-picture{max-width:60%;margin:0 auto}.image-tool--stretched .image-tool__image-picture{width:100%}.image-tool--caption .image-tool__caption{visibility:visible}.image-tool--caption{padding-bottom:50px}@-webkit-keyframes image-preloader-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes image-preloader-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cdx-image-tool-tune--floatLeft .cdx-block,.cdx-image-tool-tune--center .cdx-block,.cdx-image-tool-tune--floatRight .cdx-block,.cdx-image-tool-tune--floatLeft .image-tool__image,.cdx-image-tool-tune--center .image-tool__image,.cdx-image-tool-tune--floatRight .image-tool__image{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}:root{--primary: #2492F5;--primary-content: #E9F4FE}.cdx-settings-button--active{background:#E9F4FE;color:#2492f5}.cdx-settings-button:hover{background:#E9F4FE}.cdx-image-tool-tune--center{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}@media all and (min-width: 470px){.codex-editor:not(.read-only) .cdx-image-tool-tune--floatLeft.ce-block__content,.codex-editor:not(.read-only) .cdx-image-tool-tune--floatRight.ce-block__content{min-height:20px}.cdx-image-tool-tune--floatLeft.ce-block__content .image-tool__image,.cdx-image-tool-tune--floatRight.ce-block__content .image-tool__image{margin-top:40px}.cdx-image-tool-tune--floatLeft.ce-block__content .image-tool__image{margin-left:20px}.cdx-image-tool-tune--floatRight.ce-block__content .image-tool__image{margin-right:20px}.cdx-image-tool-tune--floatLeft.ce-block__content .cdx-input,.cdx-image-tool-tune--floatRight.ce-block__content .cdx-input{width:calc(100% - 20px)}.cdx-image-tool-tune--floatLeft.ce-block__content .cdx-input{margin-left:20px}.cdx-image-tool-tune--floatRight.ce-block__content .cdx-input{margin-right:20px}.cdx-image-tool-tune--floatLeft .cdx-block{float:left;margin-right:10px}.cdx-image-tool-tune--floatRight .cdx-block{float:right;margin-left:10px}.cdx-image-tool-tune--sizeSmall .cdx-block{max-width:25%!important}.cdx-image-tool-tune--sizeMiddle .cdx-block{max-width:50%!important}.cdx-image-tool-tune--sizeLarge .cdx-block{max-width:75%!important}}.cdx-image-tool-tune--sizeLarge img,.cdx-image-tool-tune--sizeSmall img,.cdx-image-tool-tune--sizeMiddle img{-o-object-fit:cover;object-fit:cover;max-width:100%}.codex-editor.read-only .cdx-input.image-tool__caption:empty,.read-only>.codex-editor .cdx-input.image-tool__caption:empty{display:none}.cdx-image-tool-tune--resize .cdx-block{position:relative;overflow:visible}.cdx-image-tool-tune--resize .cdx-block .resizable{display:none}.cdx-image-tool-tune--resize .image-tool__image-picture{width:100%!important}.cdx-image-tool-tune--resize .cdx-block:hover .resizable{display:block}.cdx-image-tool-tune--resize .cdx-block .resizable .resizers .resizer{width:8px;height:8px;border-radius:50%;background:#E9F4FE;border:3px solid #2492F5;position:absolute}.cdx-image-tool-tune--resize .cdx-block .resizable .resizers .resizer.top-left{left:-8px;top:2px;cursor:nwse-resize}.cdx-image-tool-tune--resize .cdx-block .resizable .resizers .resizer.top-right{right:-8px;top:1px;cursor:nesw-resize}.cdx-image-tool-tune--resize .cdx-block .resizable .resizers .resizer.bottom-left{left:-9px;bottom:10px;cursor:nesw-resize}.cdx-image-tool-tune--resize .cdx-block .resizable .resizers .resizer.bottom-right{right:-9px;bottom:10px;cursor:nwse-resize}.cdx-image-tool-tune--crop:hover,.cdx-image-tool-tune--crop.isCropping,.cdx-image-tool-tune--resize:hover{z-index:2}.cdx-image-tool-tune--crop .image-tool__image{position:relative}.cdx-image-tool-tune--crop .isCropping .image-tool__image{min-height:600px;min-width:100%}.cdx-image-tool-tune--crop .image-tool__image .crop-btn,.cdx-image-tool-tune--crop .image-tool__image .crop-save{position:absolute;top:0;left:0;padding:7px;background:#2492F5;color:#e9f4fe;text-align:center;line-height:20px;cursor:pointer;display:none}.cdx-image-tool-tune--crop .image-tool__image:hover .crop-btn,.cdx-image-tool-tune--crop .image-tool__image:hover .crop-save{display:block}.cdx-image-tool-tune--crop .image-tool__image img.isCropped{position:absolute;min-width:0;min-width:initial;max-width:none;max-width:initial;min-height:0;min-height:initial;max-height:none;max-height:initial}.cdx-image-tool-tune--crop .cdx-block.image-tool.isCropping{min-width:0!important;min-width:initial!important;max-width:none!important;max-width:initial!important;min-height:0!important;min-height:initial!important;max-height:none!important;max-height:initial!important}.image-tool__caption{background-color:#fff}.image-tool{position:relative;z-index:1}.cdx-image-tool-tune{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;gap:4px;width:100%}')),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
2
+ import { defineComponent as qt, inject as Vt, toRaw as Q, onMounted as Kt, onUnmounted as Yt, watch as Gt, openBlock as Xt, createElementBlock as Jt } from "vue";
3
+ import Qt from "@ebl-vue/editorjs";
4
+ import { bundledLanguagesInfo as Zt, codeToHtml as te } from "shiki";
5
+ import * as ht from "@editorjs/dom";
6
+ import { make as S, isEmpty as at } from "@editorjs/dom";
7
+ import { focus as ee, isCaretAtStartOfInput as ie, getCaretNodeAndOffset as se, getContenteditableSlice as ne } from "@editorjs/caret";
8
+ import ct from "vanilla-caret-js";
9
+ import V from "axios";
10
+ const pt = Symbol("INSTALLED_KEY"), re = (p, t) => {
11
+ if (p.install = (e) => {
12
+ for (const i of [p, ...Object.values(t != null ? t : {})])
13
+ e.component(i.name, i);
14
+ }, t)
15
+ for (const [e, i] of Object.entries(t))
16
+ p[e] = i;
17
+ return p;
18
+ };
19
+ class oe {
13
20
  constructor(t, e, i, s) {
14
21
  const { blocks: n, toolbar: r } = i;
15
22
  this.toolbar = r, this.borderStyle = s || "1px dashed #aaa", this.api = n, this.holder = document.getElementById(t), this.readOnly = e, this.startBlock = null, this.endBlock = null, this.setDragListener(), this.setDropListener();
16
23
  }
17
24
  setElementCursor(t) {
18
- if (!t) return;
25
+ if (!t)
26
+ return;
19
27
  const e = document.createRange(), i = window.getSelection();
20
28
  e.setStart(t.childNodes[0], 0), e.collapse(!0), i == null || i.removeAllRanges(), i == null || i.addRange(e), t.focus();
21
29
  }
@@ -43,7 +51,8 @@ class Qt {
43
51
  setBorderBlocks(t, e) {
44
52
  Object.values(t).forEach((i) => {
45
53
  const s = i.querySelector(".ce-block__content");
46
- if (i !== e) s == null || s.style.removeProperty("border-top"), s == null || s.style.removeProperty("border-bottom");
54
+ if (i !== e)
55
+ s == null || s.style.removeProperty("border-top"), s == null || s.style.removeProperty("border-bottom");
47
56
  else {
48
57
  const n = Object.keys(t).find((r) => t[Number(r)] === e);
49
58
  n && Number(n) > this.startBlock ? s.style.borderBottom = this.borderStyle : s.style.borderTop = this.borderStyle;
@@ -79,8 +88,8 @@ class Qt {
79
88
  this.isTheOnlyBlock() || this.api.move(this.endBlock, this.startBlock);
80
89
  }
81
90
  }
82
- const ht = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M6 7L6 12M6 17L6 12M6 12L12 12M12 7V12M12 17L12 12"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M19 17V10.2135C19 10.1287 18.9011 10.0824 18.836 10.1367L16 12.5"/></svg>', ct = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M6 7L6 12M6 17L6 12M6 12L12 12M12 7V12M12 17L12 12"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M16 11C16 10 19 9.5 19 12C19 13.9771 16.0684 13.9997 16.0012 16.8981C15.9999 16.9533 16.0448 17 16.1 17L19.3 17"/></svg>', pt = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M6 7L6 12M6 17L6 12M6 12L12 12M12 7V12M12 17L12 12"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M16 11C16 10.5 16.8323 10 17.6 10C18.3677 10 19.5 10.311 19.5 11.5C19.5 12.5315 18.7474 12.9022 18.548 12.9823C18.5378 12.9864 18.5395 13.0047 18.5503 13.0063C18.8115 13.0456 20 13.3065 20 14.8C20 16 19.5 17 17.8 17C17.8 17 16 17 16 16.3"/></svg>', ut = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M6 7L6 12M6 17L6 12M6 12L12 12M12 7V12M12 17L12 12"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M18 10L15.2834 14.8511C15.246 14.9178 15.294 15 15.3704 15C16.8489 15 18.7561 15 20.2 15M19 17C19 15.7187 19 14.8813 19 13.6"/></svg>', gt = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M6 7L6 12M6 17L6 12M6 12L12 12M12 7V12M12 17L12 12"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M16 15.9C16 15.9 16.3768 17 17.8 17C19.5 17 20 15.6199 20 14.7C20 12.7323 17.6745 12.0486 16.1635 12.9894C16.094 13.0327 16 12.9846 16 12.9027V10.1C16 10.0448 16.0448 10 16.1 10H19.8"/></svg>', mt = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M6 7L6 12M6 17L6 12M6 12L12 12M12 7V12M12 17L12 12"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M19.5 10C16.5 10.5 16 13.3285 16 15M16 15V15C16 16.1046 16.8954 17 18 17H18.3246C19.3251 17 20.3191 16.3492 20.2522 15.3509C20.0612 12.4958 16 12.6611 16 15Z"/></svg>', It = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M18 7L6 7"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M18 17H6"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M16 12L8 12"/></svg>', Ht = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M17 7L5 7"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M17 17H5"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M13 12L5 12"/></svg>', Bt = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M19 7L7 7"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M19 17H7"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M19 12L11 12"/></svg>', ft = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M8 8L12 12M12 12L16 16M12 12L16 8M12 12L8 16"/></svg>', Ct = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-width="2" d="M11.3535 9.31802L12.7678 7.90381C13.5488 7.12276 14.8151 7.12276 15.5962 7.90381C16.3772 8.68486 16.3772 9.95119 15.5962 10.7322L14.182 12.1464M11.3535 9.31802L7.96729 12.7043C7.40889 13.2627 7.02826 13.9739 6.87339 14.7482L6.69798 15.6253C6.55803 16.325 7.17495 16.942 7.87467 16.802L8.75175 16.6266C9.52612 16.4717 10.2373 16.0911 10.7957 15.5327L14.182 12.1464M11.3535 9.31802L14.182 12.1464"/><line x1="15" x2="19" y1="17" y2="17" stroke="currentColor" stroke-linecap="round" stroke-width="2"/></svg>', At = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><rect width="14" height="14" x="5" y="5" stroke="currentColor" stroke-width="2" rx="4"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5.13968 15.32L8.69058 11.5661C9.02934 11.2036 9.48873 11 9.96774 11C10.4467 11 10.9061 11.2036 11.2449 11.5661L15.3871 16M13.5806 14.0664L15.0132 12.533C15.3519 12.1705 15.8113 11.9668 16.2903 11.9668C16.7693 11.9668 17.2287 12.1705 17.5675 12.533L18.841 13.9634"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.7778 9.33331H13.7867"/></svg>', Ot = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M8 9V7.2C8 7.08954 8.08954 7 8.2 7L12 7M16 9V7.2C16 7.08954 15.9105 7 15.8 7L12 7M12 7L12 17M12 17H10M12 17H14"/></svg>', vt = '<svg t="1763708081701" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2604" width="24" height="24"><path d="M469.3330000000001 725.333H896V640H469.3330000000001v85.333zM128 512l170.667 170.667V341.3330000000001L128 512z m0 384h768v-85.333H128V896z m0-768v85.333h768V128H128z m341.333 256H896v-85.333H469.3330000000001V384z m0 170.667H896v-85.334H469.3330000000001v85.334z" p-id="2605" fill="#000000"></path></svg>', kt = '<svg t="1763708124227" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2788" width="24" height="24"><path d="M128 896h768v-85.333H128V896z m0-554.667v341.334L298.667 512 128 341.333z m341.333 384H896V640H469.333v85.333zM128 128v85.333h768V128H128z m341.333 256H896v-85.333H469.333V384z m0 170.667H896v-85.334H469.333v85.334z" p-id="2789" fill="#000000"></path></svg>';
83
- class Zt {
91
+ const ut = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M6 7L6 12M6 17L6 12M6 12L12 12M12 7V12M12 17L12 12"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M19 17V10.2135C19 10.1287 18.9011 10.0824 18.836 10.1367L16 12.5"/></svg>', gt = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M6 7L6 12M6 17L6 12M6 12L12 12M12 7V12M12 17L12 12"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M16 11C16 10 19 9.5 19 12C19 13.9771 16.0684 13.9997 16.0012 16.8981C15.9999 16.9533 16.0448 17 16.1 17L19.3 17"/></svg>', mt = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M6 7L6 12M6 17L6 12M6 12L12 12M12 7V12M12 17L12 12"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M16 11C16 10.5 16.8323 10 17.6 10C18.3677 10 19.5 10.311 19.5 11.5C19.5 12.5315 18.7474 12.9022 18.548 12.9823C18.5378 12.9864 18.5395 13.0047 18.5503 13.0063C18.8115 13.0456 20 13.3065 20 14.8C20 16 19.5 17 17.8 17C17.8 17 16 17 16 16.3"/></svg>', ft = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M6 7L6 12M6 17L6 12M6 12L12 12M12 7V12M12 17L12 12"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M18 10L15.2834 14.8511C15.246 14.9178 15.294 15 15.3704 15C16.8489 15 18.7561 15 20.2 15M19 17C19 15.7187 19 14.8813 19 13.6"/></svg>', Ct = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M6 7L6 12M6 17L6 12M6 12L12 12M12 7V12M12 17L12 12"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M16 15.9C16 15.9 16.3768 17 17.8 17C19.5 17 20 15.6199 20 14.7C20 12.7323 17.6745 12.0486 16.1635 12.9894C16.094 13.0327 16 12.9846 16 12.9027V10.1C16 10.0448 16.0448 10 16.1 10H19.8"/></svg>', vt = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M6 7L6 12M6 17L6 12M6 12L12 12M12 7V12M12 17L12 12"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M19.5 10C16.5 10.5 16 13.3285 16 15M16 15V15C16 16.1046 16.8954 17 18 17H18.3246C19.3251 17 20.3191 16.3492 20.2522 15.3509C20.0612 12.4958 16 12.6611 16 15Z"/></svg>', zt = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M18 7L6 7"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M18 17H6"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M16 12L8 12"/></svg>', Nt = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M17 7L5 7"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M17 17H5"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M13 12L5 12"/></svg>', Wt = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M19 7L7 7"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M19 17H7"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M19 12L11 12"/></svg>', kt = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M9.2 12L11.0586 13.8586C11.1367 13.9367 11.2633 13.9367 11.3414 13.8586L14.7 10.5"/><rect width="14" height="14" x="5" y="5" stroke="currentColor" stroke-width="2" rx="4"/></svg>', wt = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M8 8L12 12M12 12L16 16M12 12L16 8M12 12L8 16"/></svg>', bt = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><line x1="9" x2="19" y1="7" y2="7" stroke="currentColor" stroke-linecap="round" stroke-width="2"/><line x1="9" x2="19" y1="12" y2="12" stroke="currentColor" stroke-linecap="round" stroke-width="2"/><line x1="9" x2="19" y1="17" y2="17" stroke="currentColor" stroke-linecap="round" stroke-width="2"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M5.00001 17H4.99002"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M5.00001 12H4.99002"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M5.00001 7H4.99002"/></svg>', yt = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><line x1="12" x2="19" y1="7" y2="7" stroke="currentColor" stroke-linecap="round" stroke-width="2"/><line x1="12" x2="19" y1="12" y2="12" stroke="currentColor" stroke-linecap="round" stroke-width="2"/><line x1="12" x2="19" y1="17" y2="17" stroke="currentColor" stroke-linecap="round" stroke-width="2"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M7.79999 14L7.79999 7.2135C7.79999 7.12872 7.7011 7.0824 7.63597 7.13668L4.79999 9.5"/></svg>', St = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-width="2" d="M11.3535 9.31802L12.7678 7.90381C13.5488 7.12276 14.8151 7.12276 15.5962 7.90381C16.3772 8.68486 16.3772 9.95119 15.5962 10.7322L14.182 12.1464M11.3535 9.31802L7.96729 12.7043C7.40889 13.2627 7.02826 13.9739 6.87339 14.7482L6.69798 15.6253C6.55803 16.325 7.17495 16.942 7.87467 16.802L8.75175 16.6266C9.52612 16.4717 10.2373 16.0911 10.7957 15.5327L14.182 12.1464M11.3535 9.31802L14.182 12.1464"/><line x1="15" x2="19" y1="17" y2="17" stroke="currentColor" stroke-linecap="round" stroke-width="2"/></svg>', Ft = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><rect width="14" height="14" x="5" y="5" stroke="currentColor" stroke-width="2" rx="4"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5.13968 15.32L8.69058 11.5661C9.02934 11.2036 9.48873 11 9.96774 11C10.4467 11 10.9061 11.2036 11.2449 11.5661L15.3871 16M13.5806 14.0664L15.0132 12.533C15.3519 12.1705 15.8113 11.9668 16.2903 11.9668C16.7693 11.9668 17.2287 12.1705 17.5675 12.533L18.841 13.9634"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.7778 9.33331H13.7867"/></svg>', Pt = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M8 9V7.2C8 7.08954 8.08954 7 8.2 7L12 7M16 9V7.2C16 7.08954 15.9105 7 15.8 7L12 7M12 7L12 17M12 17H10M12 17H14"/></svg>', Lt = '<svg t="1763708081701" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2604" width="24" height="24"><path d="M469.3330000000001 725.333H896V640H469.3330000000001v85.333zM128 512l170.667 170.667V341.3330000000001L128 512z m0 384h768v-85.333H128V896z m0-768v85.333h768V128H128z m341.333 256H896v-85.333H469.3330000000001V384z m0 170.667H896v-85.334H469.3330000000001v85.334z" p-id="2605" fill="#000000"></path></svg>', xt = '<svg t="1763708124227" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2788" width="24" height="24"><path d="M128 896h768v-85.333H128V896z m0-554.667v341.334L298.667 512 128 341.333z m341.333 384H896V640H469.333v85.333zM128 128v85.333h768V128H128z m341.333 256H896v-85.333H469.333V384z m0 170.667H896v-85.334H469.333v85.334z" p-id="2789" fill="#000000"></path></svg>';
92
+ class ae {
84
93
  constructor({ data: t, config: e, api: i, readOnly: s }) {
85
94
  this.api = i, this.readOnly = s, this._settings = { placeholder: "H1" }, this._data = this.normalizeData(t), this._element = this.getTag();
86
95
  }
@@ -148,7 +157,7 @@ class Zt {
148
157
  t.dataset.placeholder = this.api.i18n.t(this._settings.placeholder || "");
149
158
  }
150
159
  get defaultLevel() {
151
- return { number: 1, tag: "H1", svg: ht };
160
+ return { number: 1, tag: "H1", svg: ut };
152
161
  }
153
162
  onPaste(t) {
154
163
  const e = t.detail;
@@ -161,10 +170,10 @@ class Zt {
161
170
  return { tags: ["H1"] };
162
171
  }
163
172
  static get toolbox() {
164
- return { icon: ht, title: "H1" };
173
+ return { icon: ut, title: "H1" };
165
174
  }
166
175
  }
167
- class te {
176
+ class le {
168
177
  constructor({ data: t, config: e, api: i, readOnly: s }) {
169
178
  this.api = i, this.readOnly = s, this._settings = { placeholder: "H2" }, this._data = this.normalizeData(t), this._element = this.getTag();
170
179
  }
@@ -232,7 +241,7 @@ class te {
232
241
  t.dataset.placeholder = this.api.i18n.t(this._settings.placeholder || "");
233
242
  }
234
243
  get defaultLevel() {
235
- return { number: 2, tag: "H2", svg: ct };
244
+ return { number: 2, tag: "H2", svg: gt };
236
245
  }
237
246
  onPaste(t) {
238
247
  const e = t.detail;
@@ -245,10 +254,10 @@ class te {
245
254
  return { tags: ["H2"] };
246
255
  }
247
256
  static get toolbox() {
248
- return { icon: ct, title: "H2" };
257
+ return { icon: gt, title: "H2" };
249
258
  }
250
259
  }
251
- class ee {
260
+ class de {
252
261
  constructor({ data: t, config: e, api: i, readOnly: s }) {
253
262
  this.api = i, this.readOnly = s, this._settings = { placeholder: "H3" }, this._data = this.normalizeData(t), this._element = this.getTag();
254
263
  }
@@ -316,7 +325,7 @@ class ee {
316
325
  t.dataset.placeholder = this.api.i18n.t(this._settings.placeholder || "");
317
326
  }
318
327
  get defaultLevel() {
319
- return { number: 3, tag: "H3", svg: pt };
328
+ return { number: 3, tag: "H3", svg: mt };
320
329
  }
321
330
  onPaste(t) {
322
331
  const e = t.detail;
@@ -329,10 +338,10 @@ class ee {
329
338
  return { tags: ["H3"] };
330
339
  }
331
340
  static get toolbox() {
332
- return { icon: pt, title: "H3" };
341
+ return { icon: mt, title: "H3" };
333
342
  }
334
343
  }
335
- class ie {
344
+ class he {
336
345
  constructor({ data: t, config: e, api: i, readOnly: s }) {
337
346
  this.api = i, this.readOnly = s, this._settings = { placeholder: "H4" }, this._data = this.normalizeData(t), this._element = this.getTag();
338
347
  }
@@ -400,7 +409,7 @@ class ie {
400
409
  t.dataset.placeholder = this.api.i18n.t(this._settings.placeholder || "");
401
410
  }
402
411
  get defaultLevel() {
403
- return { number: 4, tag: "H4", svg: ut };
412
+ return { number: 4, tag: "H4", svg: ft };
404
413
  }
405
414
  onPaste(t) {
406
415
  const e = t.detail;
@@ -413,10 +422,10 @@ class ie {
413
422
  return { tags: ["H4"] };
414
423
  }
415
424
  static get toolbox() {
416
- return { icon: ut, title: "H4" };
425
+ return { icon: ft, title: "H4" };
417
426
  }
418
427
  }
419
- class se {
428
+ class ce {
420
429
  constructor({ data: t, config: e, api: i, readOnly: s }) {
421
430
  this.api = i, this.readOnly = s, this._settings = { placeholder: "H5" }, this._data = this.normalizeData(t), this._element = this.getTag();
422
431
  }
@@ -484,7 +493,7 @@ class se {
484
493
  t.dataset.placeholder = this.api.i18n.t(this._settings.placeholder || "");
485
494
  }
486
495
  get defaultLevel() {
487
- return { number: 5, tag: "H5", svg: gt };
496
+ return { number: 5, tag: "H5", svg: Ct };
488
497
  }
489
498
  onPaste(t) {
490
499
  const e = t.detail;
@@ -497,10 +506,10 @@ class se {
497
506
  return { tags: ["H5"] };
498
507
  }
499
508
  static get toolbox() {
500
- return { icon: gt, title: "H5" };
509
+ return { icon: Ct, title: "H5" };
501
510
  }
502
511
  }
503
- class ne {
512
+ class pe {
504
513
  constructor({ data: t, config: e, api: i, readOnly: s }) {
505
514
  this.api = i, this.readOnly = s, this._settings = { placeholder: "H6" }, this._data = this.normalizeData(t), this._element = this.getTag();
506
515
  }
@@ -568,7 +577,7 @@ class ne {
568
577
  t.dataset.placeholder = this.api.i18n.t(this._settings.placeholder || "");
569
578
  }
570
579
  get defaultLevel() {
571
- return { number: 6, tag: "H6", svg: mt };
580
+ return { number: 6, tag: "H6", svg: vt };
572
581
  }
573
582
  onPaste(t) {
574
583
  const e = t.detail;
@@ -581,10 +590,10 @@ class ne {
581
590
  return { tags: ["H6"] };
582
591
  }
583
592
  static get toolbox() {
584
- return { icon: mt, title: "H6" };
593
+ return { icon: vt, title: "H6" };
585
594
  }
586
595
  }
587
- class ot {
596
+ class lt {
588
597
  static get DEFAULT_ALIGNMENT() {
589
598
  return "left";
590
599
  }
@@ -593,10 +602,10 @@ class ot {
593
602
  }
594
603
  getAlignment() {
595
604
  var t, e;
596
- return (t = this.settings) != null && t.blocks && this.settings.blocks.hasOwnProperty(this.block.name) ? this.settings.blocks[this.block.name] : (e = this.settings) != null && e.default ? this.settings.default : ot.DEFAULT_ALIGNMENT;
605
+ return (t = this.settings) != null && t.blocks && this.settings.blocks.hasOwnProperty(this.block.name) ? this.settings.blocks[this.block.name] : (e = this.settings) != null && e.default ? this.settings.default : lt.DEFAULT_ALIGNMENT;
597
606
  }
598
607
  constructor({ api: t, data: e, config: i, block: s }) {
599
- this.api = t, this.block = s, this.settings = i, this.data = e || { alignment: this.getAlignment() }, this.alignmentSettings = [{ name: "left", icon: Ht }, { name: "center", icon: It }, { name: "right", icon: Bt }], this._CSS = { alignment: { left: "ce-tune-alignment--left", center: "ce-tune-alignment--center", right: "ce-tune-alignment--right" } };
608
+ this.api = t, this.block = s, this.settings = i, this.data = e || { alignment: this.getAlignment() }, this.alignmentSettings = [{ name: "left", icon: Nt }, { name: "center", icon: zt }, { name: "right", icon: Wt }], this._CSS = { alignment: { left: "ce-tune-alignment--left", center: "ce-tune-alignment--center", right: "ce-tune-alignment--right" } };
600
609
  }
601
610
  wrap(t) {
602
611
  return this.wrapper = document.createElement("div"), this.wrapper.classList.toggle(this._CSS.alignment[this.data.alignment]), this.wrapper.append(t), this.wrapper;
@@ -621,16 +630,17 @@ class ot {
621
630
  return this.data;
622
631
  }
623
632
  }
624
- class at {
633
+ class dt {
625
634
  static get DEFAULT_PLACEHOLDER() {
626
635
  return "";
627
636
  }
628
637
  constructor({ data: t, config: e, api: i, readOnly: s }) {
629
638
  var n;
630
- this.api = i, this.readOnly = s, this._CSS = { block: this.api.styles.block, wrapper: "ce-paragraph" }, this.readOnly || (this.onKeyUp = this.onKeyUp.bind(this)), this._placeholder = e.placeholder ? e.placeholder : at.DEFAULT_PLACEHOLDER, this._data = t != null ? t : {}, this._element = null, this._preserveBlank = (n = e.preserveBlank) != null ? n : !1;
639
+ this.api = i, this.readOnly = s, this._CSS = { block: this.api.styles.block, wrapper: "ce-paragraph" }, this.readOnly || (this.onKeyUp = this.onKeyUp.bind(this)), this._placeholder = e.placeholder ? e.placeholder : dt.DEFAULT_PLACEHOLDER, this._data = t != null ? t : {}, this._element = null, this._preserveBlank = (n = e.preserveBlank) != null ? n : !1;
631
640
  }
632
641
  onKeyUp(t) {
633
- if (t.code !== "Backspace" && t.code !== "Delete" || !this._element) return;
642
+ if (t.code !== "Backspace" && t.code !== "Delete" || !this._element)
643
+ return;
634
644
  const { textContent: e } = this._element;
635
645
  e === "" && (this._element.innerHTML = "");
636
646
  }
@@ -642,7 +652,8 @@ class at {
642
652
  return this._element = this.drawView(), this._element;
643
653
  }
644
654
  merge(t) {
645
- if (!this._element) return;
655
+ if (!this._element)
656
+ return;
646
657
  this._data.text += t.text;
647
658
  const e = function(i) {
648
659
  const s = document.createElement("div");
@@ -677,7 +688,7 @@ class at {
677
688
  return { tags: ["P"] };
678
689
  }
679
690
  static get toolbox() {
680
- return { icon: Ot, title: "Text" };
691
+ return { icon: Pt, title: "Text" };
681
692
  }
682
693
  }
683
694
  class q {
@@ -734,52 +745,57 @@ class q {
734
745
  let o;
735
746
  if (i) {
736
747
  const a = function(d, l) {
737
- let c = "";
738
- for (; c !== `
739
- ` && l > 0; ) l -= 1, c = d.substr(l, 1);
740
- return c === `
748
+ let h = "";
749
+ for (; h !== `
750
+ ` && l > 0; )
751
+ l -= 1, h = d.substr(l, 1);
752
+ return h === `
741
753
  ` && (l += 1), l;
742
754
  }(n, s);
743
- if (n.substr(a, 2) !== r) return;
755
+ if (n.substr(a, 2) !== r)
756
+ return;
744
757
  e.value = n.substring(0, a) + n.substring(a + 2), o = s - 2;
745
- } else o = s + 2, e.value = n.substring(0, s) + r + n.substring(s);
758
+ } else
759
+ o = s + 2, e.value = n.substring(0, s) + r + n.substring(s);
746
760
  e.setSelectionRange(o, o);
747
761
  }
748
762
  drawView() {
749
763
  const t = document.createElement("div"), e = document.createElement("div"), i = document.createElement("div"), s = document.createElement("div"), n = document.createElement("div"), r = document.createElement("div"), o = document.createElement("select"), a = document.createElement("select"), d = document.createElement("span"), l = document.createElement("textarea");
750
- return t.classList.add(this.CSS.baseClass, this.CSS.wrapper), e.classList.add("ce-editorjs-x-shiki__code"), i.classList.add("ce-editorjs-x-shiki__selector"), s.classList.add("ce-editorjs-x-shiki__lang"), n.classList.add("ce-editorjs-x-shiki__copy"), r.classList.add("ce-editorjs-x-shiki__copy_tip"), o.classList.add(this.CSS.selectorLanguage), l.classList.add(this.CSS.textarea, this.CSS.input), s.innerHTML = this.data.lang, n.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.25 8.5H10.25C9.2835 8.5 8.5 9.2835 8.5 10.25V17.25C8.5 18.2165 9.2835 19 10.25 19H17.25C18.2165 19 19 18.2165 19 17.25V10.25C19 9.2835 18.2165 8.5 17.25 8.5Z"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.5 8.5V6.75C15.5 6.28587 15.3156 5.84075 14.9874 5.51256C14.6592 5.18437 14.2141 5 13.75 5H6.75C6.28587 5 5.84075 5.18437 5.51256 5.51256C5.18437 5.84075 5 6.28587 5 6.75V13.75C5 14.2141 5.18437 14.6592 5.51256 14.9874C5.84075 15.3156 6.28587 15.5 6.75 15.5H8.5"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 12L15.5 12"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15.5L15.5 15.5"/></svg>', r.innerText = this.api.i18n.t("Copied"), jt.forEach((c) => {
751
- const p = document.createElement("option");
752
- p.value = c.id, p.text = c.name, o.appendChild(p);
753
- }), o.value = this.data.lang, l.value = this.data.code, l.placeholder = this.placeholder, l.spellcheck = !1, l.autocomplete = "off", l.autocapitalize = "off", this.readOnly && (l.disabled = !0), e.appendChild(d), e.appendChild(l), this.readOnly ? i.appendChild(s) : i.appendChild(o), n.appendChild(r), i.appendChild(n), t.appendChild(i), t.appendChild(e), this.runShiki().then(({ html: c, preStyle: p }) => {
754
- d.innerHTML = c, t == null || t.setAttribute("style", p), o.setAttribute("style", p), a.setAttribute("style", p);
755
- }), o.addEventListener("change", (c) => {
756
- const p = c.target.value;
757
- this._selectorLanguage = p, this.runShiki().then(({ html: u, preStyle: g }) => {
758
- d.innerHTML = u, s.innerHTML = p;
764
+ return t.classList.add(this.CSS.baseClass, this.CSS.wrapper), e.classList.add("ce-editorjs-x-shiki__code"), i.classList.add("ce-editorjs-x-shiki__selector"), s.classList.add("ce-editorjs-x-shiki__lang"), n.classList.add("ce-editorjs-x-shiki__copy"), r.classList.add("ce-editorjs-x-shiki__copy_tip"), o.classList.add(this.CSS.selectorLanguage), l.classList.add(this.CSS.textarea, this.CSS.input), s.innerHTML = this.data.lang, n.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.25 8.5H10.25C9.2835 8.5 8.5 9.2835 8.5 10.25V17.25C8.5 18.2165 9.2835 19 10.25 19H17.25C18.2165 19 19 18.2165 19 17.25V10.25C19 9.2835 18.2165 8.5 17.25 8.5Z"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.5 8.5V6.75C15.5 6.28587 15.3156 5.84075 14.9874 5.51256C14.6592 5.18437 14.2141 5 13.75 5H6.75C6.28587 5 5.84075 5.18437 5.51256 5.51256C5.18437 5.84075 5 6.28587 5 6.75V13.75C5 14.2141 5.18437 14.6592 5.51256 14.9874C5.84075 15.3156 6.28587 15.5 6.75 15.5H8.5"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 12L15.5 12"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15.5L15.5 15.5"/></svg>', r.innerText = this.api.i18n.t("Copied"), Zt.forEach((h) => {
765
+ const c = document.createElement("option");
766
+ c.value = h.id, c.text = h.name, o.appendChild(c);
767
+ }), o.value = this.data.lang, l.value = this.data.code, l.placeholder = this.placeholder, l.spellcheck = !1, l.autocomplete = "off", l.autocapitalize = "off", this.readOnly && (l.disabled = !0), e.appendChild(d), e.appendChild(l), this.readOnly ? i.appendChild(s) : i.appendChild(o), n.appendChild(r), i.appendChild(n), t.appendChild(i), t.appendChild(e), this.runShiki().then(({ html: h, preStyle: c }) => {
768
+ d.innerHTML = h, t == null || t.setAttribute("style", c), o.setAttribute("style", c), a.setAttribute("style", c);
769
+ }), o.addEventListener("change", (h) => {
770
+ const c = h.target.value;
771
+ this._selectorLanguage = c, this.runShiki().then(({ html: u, preStyle: g }) => {
772
+ d.innerHTML = u, s.innerHTML = c;
759
773
  });
760
- }), a.addEventListener("change", (c) => {
761
- const p = c.target.value;
762
- this._selectorTheme = p, this.runShiki().then(({ html: u, preStyle: g }) => {
774
+ }), a.addEventListener("change", (h) => {
775
+ const c = h.target.value;
776
+ this._selectorTheme = c, this.runShiki().then(({ html: u, preStyle: g }) => {
763
777
  d.innerHTML = u, t == null || t.setAttribute("style", g), o.setAttribute("style", g), a.setAttribute("style", g);
764
778
  });
765
779
  }), l.addEventListener("input", () => {
766
- this.data.code = l.value, this.runShiki().then(({ html: c, preStyle: p }) => {
767
- d.innerHTML = c, t == null || t.setAttribute("style", p), o.setAttribute("style", p), a.setAttribute("style", p);
780
+ this.data.code = l.value, this.runShiki().then(({ html: h, preStyle: c }) => {
781
+ d.innerHTML = h, t == null || t.setAttribute("style", c), o.setAttribute("style", c), a.setAttribute("style", c);
768
782
  });
769
- }), l.addEventListener("keydown", (c) => {
770
- c.code === "Tab" && (this.tabHandler(c), this.data.code = l.value, this.runShiki().then(({ html: p, preStyle: u }) => {
771
- d.innerHTML = p;
783
+ }), l.addEventListener("keydown", (h) => {
784
+ h.code === "Tab" && (this.tabHandler(h), this.data.code = l.value, this.runShiki().then(({ html: c, preStyle: u }) => {
785
+ d.innerHTML = c;
772
786
  }));
773
- }), n.addEventListener("click", (c) => {
774
- this.copyCode(this.data.code, c);
787
+ }), n.addEventListener("click", (h) => {
788
+ this.copyCode(this.data.code, h);
775
789
  }), this.nodes.textarea = l, t;
776
790
  }
777
791
  async runShiki() {
778
792
  let t = "";
779
- return { html: await Vt(this.data.code, { lang: this._selectorLanguage, theme: this._selectorTheme, transformers: [{ preprocess: (e) => `${e}
793
+ return { html: await te(this.data.code, { lang: this._selectorLanguage, theme: this._selectorTheme, transformers: [{ preprocess: (e) => `${e}
780
794
  `, pre(e) {
781
795
  var i;
782
796
  this.addClassToHast(e, "ce-editorjs-x-shiki__span"), t = ((i = e.properties) == null ? void 0 : i.style) || "";
797
+ }, line(e, i) {
798
+ e.properties = e.properties || {}, e.properties["data-line"] = i;
783
799
  } }] }), preStyle: t };
784
800
  }
785
801
  copyCode(t, e) {
@@ -798,7 +814,7 @@ class q {
798
814
  });
799
815
  }
800
816
  }
801
- class re {
817
+ class ue {
802
818
  constructor({ data: t, api: e, readOnly: i }) {
803
819
  this.api = e, this.readOnly = i, this._data = { text: t.text || "" }, this._CSS = { baseClass: this.api.styles.block, wrapper: "cdx-quote", text: "cdx-quote__text", input: this.api.styles.input };
804
820
  }
@@ -851,7 +867,7 @@ class re {
851
867
  return { text: { br: !0 } };
852
868
  }
853
869
  }
854
- class oe {
870
+ class ge {
855
871
  static get isReadOnlySupported() {
856
872
  return !0;
857
873
  }
@@ -881,10 +897,10 @@ class oe {
881
897
  this.data = {};
882
898
  }
883
899
  }
884
- const x = "cdx-list", k = { wrapper: x, item: `${x}__item`, itemContent: `${x}__item-content`, itemChildren: `${x}__item-children` };
900
+ const b = "cdx-list", k = { wrapper: b, item: `${b}__item`, itemContent: `${b}__item-content`, itemChildren: `${b}__item-children` };
885
901
  class E {
886
902
  static get CSS() {
887
- return { ...k, orderedList: `${x}-ordered` };
903
+ return { ...k, orderedList: `${b}-ordered` };
888
904
  }
889
905
  constructor(t, e) {
890
906
  this.config = e, this.readOnly = t;
@@ -899,7 +915,7 @@ class E {
899
915
  }
900
916
  getItemContent(t) {
901
917
  const e = t.querySelector(`.${E.CSS.itemContent}`);
902
- return e ? rt(e) ? "" : e.innerHTML : "";
918
+ return e ? at(e) ? "" : e.innerHTML : "";
903
919
  }
904
920
  getItemMeta() {
905
921
  return {};
@@ -910,7 +926,7 @@ class E {
910
926
  }
911
927
  class M {
912
928
  static get CSS() {
913
- return { ...k, unorderedList: `${x}-unordered` };
929
+ return { ...k, unorderedList: `${b}-unordered` };
914
930
  }
915
931
  constructor(t, e) {
916
932
  this.config = e, this.readOnly = t;
@@ -925,7 +941,7 @@ class M {
925
941
  }
926
942
  getItemContent(t) {
927
943
  const e = t.querySelector(`.${M.CSS.itemContent}`);
928
- return e ? rt(e) ? "" : e.innerHTML : "";
944
+ return e ? at(e) ? "" : e.innerHTML : "";
929
945
  }
930
946
  getItemMeta() {
931
947
  return {};
@@ -934,12 +950,12 @@ class M {
934
950
  return {};
935
951
  }
936
952
  }
937
- function R(h) {
938
- return h.nodeType === Node.ELEMENT_NODE;
953
+ function R(p) {
954
+ return p.nodeType === Node.ELEMENT_NODE;
939
955
  }
940
956
  class C {
941
957
  static get CSS() {
942
- return { ...k, checklist: `${x}-checklist`, itemChecked: `${x}__checkbox--checked`, noHover: `${x}__checkbox--no-hover`, checkbox: `${x}__checkbox-check`, checkboxContainer: `${x}__checkbox`, checkboxCheckDisabled: `${x}__checkbox-check--disabled` };
958
+ return { ...k, checklist: `${b}-checklist`, itemChecked: `${b}__checkbox--checked`, noHover: `${b}__checkbox--no-hover`, checkbox: `${b}__checkbox-check`, checkboxContainer: `${b}__checkbox`, checkboxCheckDisabled: `${b}__checkbox-check--disabled` };
943
959
  }
944
960
  constructor(t, e) {
945
961
  this.config = e, this.readOnly = t;
@@ -960,7 +976,7 @@ class C {
960
976
  }
961
977
  getItemContent(t) {
962
978
  const e = t.querySelector(`.${C.CSS.itemContent}`);
963
- return e ? rt(e) ? "" : e.innerHTML : "";
979
+ return e ? at(e) ? "" : e.innerHTML : "";
964
980
  }
965
981
  getItemMeta(t) {
966
982
  const e = t.querySelector(`.${C.CSS.checkboxContainer}`);
@@ -976,7 +992,7 @@ class C {
976
992
  t.classList.remove(C.CSS.noHover);
977
993
  }
978
994
  }
979
- function G(h, t = "after") {
995
+ function Z(p, t = "after") {
980
996
  const e = [];
981
997
  let i;
982
998
  function s(n) {
@@ -987,39 +1003,43 @@ function G(h, t = "after") {
987
1003
  return n.previousElementSibling;
988
1004
  }
989
1005
  }
990
- for (i = s(h); i !== null; ) e.push(i), i = s(i);
1006
+ for (i = s(p); i !== null; )
1007
+ e.push(i), i = s(i);
991
1008
  return e.length !== 0 ? e : null;
992
1009
  }
993
- function I(h, t = !0) {
994
- let e = h;
995
- return h.classList.contains(k.item) && (e = h.querySelector(`.${k.itemChildren}`)), e === null ? [] : t ? Array.from(e.querySelectorAll(`:scope > .${k.item}`)) : Array.from(e.querySelectorAll(`.${k.item}`));
1010
+ function I(p, t = !0) {
1011
+ let e = p;
1012
+ return p.classList.contains(k.item) && (e = p.querySelector(`.${k.itemChildren}`)), e === null ? [] : t ? Array.from(e.querySelectorAll(`:scope > .${k.item}`)) : Array.from(e.querySelectorAll(`.${k.item}`));
996
1013
  }
997
- function A(h) {
998
- return h.querySelector(`.${k.itemChildren}`);
1014
+ function A(p) {
1015
+ return p.querySelector(`.${k.itemChildren}`);
999
1016
  }
1000
- function J(h) {
1001
- let t = h;
1002
- h.classList.contains(k.item) && (t = A(h)), t !== null && I(t).length === 0 && t.remove();
1017
+ function tt(p) {
1018
+ let t = p;
1019
+ p.classList.contains(k.item) && (t = A(p)), t !== null && I(t).length === 0 && t.remove();
1003
1020
  }
1004
- function j(h) {
1005
- return h.querySelector(`.${k.itemContent}`);
1021
+ function K(p) {
1022
+ return p.querySelector(`.${k.itemContent}`);
1006
1023
  }
1007
- function F(h, t = !0) {
1008
- const e = j(h);
1009
- e && Kt(e, t);
1024
+ function N(p, t = !0) {
1025
+ const e = K(p);
1026
+ e && ee(e, t);
1010
1027
  }
1011
- class X {
1028
+ class et {
1012
1029
  get currentItem() {
1013
1030
  const t = window.getSelection();
1014
- if (!t) return null;
1031
+ if (!t)
1032
+ return null;
1015
1033
  let e = t.anchorNode;
1016
1034
  return e ? (R(e) || (e = e.parentNode), e && R(e) ? e.closest(`.${k.item}`) : null) : null;
1017
1035
  }
1018
1036
  get currentItemLevel() {
1019
1037
  const t = this.currentItem;
1020
- if (t === null) return null;
1038
+ if (t === null)
1039
+ return null;
1021
1040
  let e = t.parentNode, i = 0;
1022
- for (; e !== null && e !== this.listWrapper; ) R(e) && e.classList.contains(k.item) && (i += 1), e = e.parentNode;
1041
+ for (; e !== null && e !== this.listWrapper; )
1042
+ R(e) && e.classList.contains(k.item) && (i += 1), e = e.parentNode;
1023
1043
  return i + 1;
1024
1044
  }
1025
1045
  constructor({ data: t, config: e, api: i, readOnly: s, block: n }, r) {
@@ -1051,10 +1071,12 @@ class X {
1051
1071
  return { tags: ["OL", "UL", "LI"] };
1052
1072
  }
1053
1073
  merge(t) {
1054
- const e = this.block.holder.querySelectorAll(`.${k.item}`), i = e[e.length - 1], s = j(i);
1055
- if (i === null || s === null || (s.insertAdjacentHTML("beforeend", t.items[0].content), this.listWrapper === void 0)) return;
1074
+ const e = this.block.holder.querySelectorAll(`.${k.item}`), i = e[e.length - 1], s = K(i);
1075
+ if (i === null || s === null || (s.insertAdjacentHTML("beforeend", t.items[0].content), this.listWrapper === void 0))
1076
+ return;
1056
1077
  const n = I(this.listWrapper);
1057
- if (n.length === 0) return;
1078
+ if (n.length === 0)
1079
+ return;
1058
1080
  let r = A(n[n.length - 1]);
1059
1081
  const o = t.items.shift();
1060
1082
  o !== void 0 && (o.items.length !== 0 && (r === null && (r = this.renderer.renderWrapper(!1)), this.appendItems(o.items, r)), t.items.length > 0 && this.appendItems(t.items, this.listWrapper));
@@ -1079,9 +1101,9 @@ class X {
1079
1101
  const n = { style: s, meta: {}, items: [] };
1080
1102
  s === "ordered" && (this.data.meta.counterType = "numeric", this.data.meta.start = 1);
1081
1103
  const r = (o) => Array.from(o.querySelectorAll(":scope > li")).map((a) => {
1082
- var c;
1104
+ var h;
1083
1105
  const d = a.querySelector(`:scope > ${i}`), l = d ? r(d) : [];
1084
- return { content: (c = a.innerHTML) != null ? c : "", meta: {}, items: l };
1106
+ return { content: (h = a.innerHTML) != null ? h : "", meta: {}, items: l };
1085
1107
  });
1086
1108
  return n.items = r(t), n;
1087
1109
  }
@@ -1094,41 +1116,48 @@ class X {
1094
1116
  enterPressed(t) {
1095
1117
  var o;
1096
1118
  const e = this.currentItem;
1097
- if (t.stopPropagation(), t.preventDefault(), t.isComposing || e === null) return;
1119
+ if (t.stopPropagation(), t.preventDefault(), t.isComposing || e === null)
1120
+ return;
1098
1121
  const i = ((o = this.renderer) == null ? void 0 : o.getItemContent(e).trim().length) === 0, s = e.parentNode === this.listWrapper, n = e.previousElementSibling === null, r = this.api.blocks.getCurrentBlockIndex();
1099
- if (s && i) return e.nextElementSibling !== null || function(a) {
1100
- return a.querySelector(`.${k.itemChildren}`) !== null;
1101
- }(e) ? void this.splitList(e) : void (n ? this.convertItemToDefaultBlock(r, !0) : this.convertItemToDefaultBlock());
1122
+ if (s && i)
1123
+ return e.nextElementSibling !== null || function(a) {
1124
+ return a.querySelector(`.${k.itemChildren}`) !== null;
1125
+ }(e) ? void this.splitList(e) : void (n ? this.convertItemToDefaultBlock(r, !0) : this.convertItemToDefaultBlock());
1102
1126
  i ? this.unshiftItem(e) : this.splitItem(e);
1103
1127
  }
1104
1128
  backspace(t) {
1105
1129
  var i;
1106
1130
  const e = this.currentItem;
1107
- e !== null && Yt(e) && ((i = window.getSelection()) == null ? void 0 : i.isCollapsed) !== !1 && (t.stopPropagation(), e.parentNode !== this.listWrapper || e.previousElementSibling !== null ? (t.preventDefault(), this.mergeItemWithPrevious(e)) : this.convertFirstItemToDefaultBlock());
1131
+ e !== null && ie(e) && ((i = window.getSelection()) == null ? void 0 : i.isCollapsed) !== !1 && (t.stopPropagation(), e.parentNode !== this.listWrapper || e.previousElementSibling !== null ? (t.preventDefault(), this.mergeItemWithPrevious(e)) : this.convertFirstItemToDefaultBlock());
1108
1132
  }
1109
1133
  shiftTab(t) {
1110
1134
  t.stopPropagation(), t.preventDefault(), this.currentItem !== null && this.unshiftItem(this.currentItem);
1111
1135
  }
1112
1136
  unshiftItem(t) {
1113
- if (!t.parentNode || !R(t.parentNode)) return;
1137
+ if (!t.parentNode || !R(t.parentNode))
1138
+ return;
1114
1139
  const e = t.parentNode.closest(`.${k.item}`);
1115
- if (!e) return;
1140
+ if (!e)
1141
+ return;
1116
1142
  let i = A(t);
1117
- if (t.parentElement === null) return;
1118
- const s = G(t);
1143
+ if (t.parentElement === null)
1144
+ return;
1145
+ const s = Z(t);
1119
1146
  s !== null && (i === null && (i = this.renderer.renderWrapper(!1)), s.forEach((n) => {
1120
1147
  i.appendChild(n);
1121
- }), t.appendChild(i)), e.after(t), F(t, !1), J(e);
1148
+ }), t.appendChild(i)), e.after(t), N(t, !1), tt(e);
1122
1149
  }
1123
1150
  splitList(t) {
1124
1151
  const e = I(t), i = this.block, s = this.api.blocks.getCurrentBlockIndex();
1125
1152
  if (e.length !== 0) {
1126
1153
  const a = e[0];
1127
- this.unshiftItem(a), F(t, !1);
1154
+ this.unshiftItem(a), N(t, !1);
1128
1155
  }
1129
- if (t.previousElementSibling === null && t.parentNode === this.listWrapper) return void this.convertItemToDefaultBlock(s);
1130
- const n = G(t);
1131
- if (n === null) return;
1156
+ if (t.previousElementSibling === null && t.parentNode === this.listWrapper)
1157
+ return void this.convertItemToDefaultBlock(s);
1158
+ const n = Z(t);
1159
+ if (n === null)
1160
+ return;
1132
1161
  const r = this.renderer.renderWrapper(!0);
1133
1162
  n.forEach((a) => {
1134
1163
  r.appendChild(a);
@@ -1137,51 +1166,61 @@ class X {
1137
1166
  o.meta.start = this.data.style == "ordered" ? 1 : void 0, this.api.blocks.insert(i == null ? void 0 : i.name, o, this.config, s + 1), this.convertItemToDefaultBlock(s + 1), r.remove();
1138
1167
  }
1139
1168
  splitItem(t) {
1140
- const [e, i] = Gt();
1141
- if (e === null) return;
1142
- const s = j(t);
1169
+ const [e, i] = se();
1170
+ if (e === null)
1171
+ return;
1172
+ const s = K(t);
1143
1173
  let n;
1144
- n = s === null ? "" : Jt(s, e, i, "right", !0);
1174
+ n = s === null ? "" : ne(s, e, i, "right", !0);
1145
1175
  const r = A(t), o = this.renderItem(n);
1146
- t == null || t.after(o), r && o.appendChild(r), F(o);
1176
+ t == null || t.after(o), r && o.appendChild(r), N(o);
1147
1177
  }
1148
1178
  mergeItemWithPrevious(t) {
1149
- var c;
1179
+ var h;
1150
1180
  const e = t.previousElementSibling, i = t.parentNode;
1151
- if (i === null || !R(i)) return;
1181
+ if (i === null || !R(i))
1182
+ return;
1152
1183
  const s = i.closest(`.${k.item}`);
1153
- if (!e && !s || e && !R(e)) return;
1184
+ if (!e && !s || e && !R(e))
1185
+ return;
1154
1186
  let n;
1155
1187
  if (e) {
1156
- const p = I(e, !1);
1157
- n = p.length !== 0 && p.length !== 0 ? p[p.length - 1] : e;
1158
- } else n = s;
1188
+ const c = I(e, !1);
1189
+ n = c.length !== 0 && c.length !== 0 ? c[c.length - 1] : e;
1190
+ } else
1191
+ n = s;
1159
1192
  const r = this.renderer.getItemContent(t);
1160
- if (!n) return;
1161
- F(n, !1);
1162
- const o = j(n);
1163
- if (o === null) return;
1193
+ if (!n)
1194
+ return;
1195
+ N(n, !1);
1196
+ const o = K(n);
1197
+ if (o === null)
1198
+ return;
1164
1199
  o.insertAdjacentHTML("beforeend", r);
1165
1200
  const a = I(t);
1166
- if (a.length === 0) return t.remove(), void J(n);
1167
- const d = e || s, l = (c = A(d)) != null ? c : this.renderer.renderWrapper(!1);
1168
- e ? a.forEach((p) => {
1169
- l.appendChild(p);
1170
- }) : a.forEach((p) => {
1171
- l.prepend(p);
1201
+ if (a.length === 0)
1202
+ return t.remove(), void tt(n);
1203
+ const d = e || s, l = (h = A(d)) != null ? h : this.renderer.renderWrapper(!1);
1204
+ e ? a.forEach((c) => {
1205
+ l.appendChild(c);
1206
+ }) : a.forEach((c) => {
1207
+ l.prepend(c);
1172
1208
  }), A(d) === null && n.appendChild(l), t.remove();
1173
1209
  }
1174
1210
  addTab(t) {
1175
1211
  var n;
1176
1212
  t.stopPropagation(), t.preventDefault();
1177
1213
  const e = this.currentItem;
1178
- if (!e) return;
1214
+ if (!e)
1215
+ return;
1179
1216
  if (((n = this.config) == null ? void 0 : n.maxLevel) !== void 0) {
1180
1217
  const r = this.currentItemLevel;
1181
- if (r !== null && r === this.config.maxLevel) return;
1218
+ if (r !== null && r === this.config.maxLevel)
1219
+ return;
1182
1220
  }
1183
1221
  const i = e.previousSibling;
1184
- if (i === null || !R(i)) return;
1222
+ if (i === null || !R(i))
1223
+ return;
1185
1224
  const s = A(i);
1186
1225
  if (s)
1187
1226
  s.appendChild(e), I(e).forEach((r) => {
@@ -1193,7 +1232,7 @@ class X {
1193
1232
  r.appendChild(o);
1194
1233
  }), i.appendChild(r);
1195
1234
  }
1196
- J(e), F(e, !1);
1235
+ tt(e), N(e, !1);
1197
1236
  }
1198
1237
  convertItemToDefaultBlock(t, e) {
1199
1238
  let i;
@@ -1202,13 +1241,14 @@ class X {
1202
1241
  }
1203
1242
  convertFirstItemToDefaultBlock() {
1204
1243
  const t = this.currentItem;
1205
- if (t === null) return;
1244
+ if (t === null)
1245
+ return;
1206
1246
  const e = I(t);
1207
1247
  if (e.length !== 0) {
1208
1248
  const r = e[0];
1209
- this.unshiftItem(r), F(t);
1249
+ this.unshiftItem(r), N(t);
1210
1250
  }
1211
- const i = G(t), s = this.api.blocks.getCurrentBlockIndex(), n = i === null;
1251
+ const i = Z(t), s = this.api.blocks.getCurrentBlockIndex(), n = i === null;
1212
1252
  this.convertItemToDefaultBlock(s, n);
1213
1253
  }
1214
1254
  renderItem(t, e) {
@@ -1230,8 +1270,8 @@ class X {
1230
1270
  });
1231
1271
  }
1232
1272
  }
1233
- const ae = /* @__PURE__ */ new Map([["Numeric", "numeric"], ["Lower Roman", "lower-roman"], ["Upper Roman", "upper-roman"], ["Lower Alpha", "lower-alpha"], ["Upper Alpha", "upper-alpha"]]);
1234
- class K {
1273
+ const W = { wrapper: `${b}-start-with-field`, input: `${b}-start-with-field__input`, startWithElementWrapperInvalid: `${b}-start-with-field--invalid` }, j = /* @__PURE__ */ new Map([["Numeric", "numeric"], ["Lower Roman", "lower-roman"], ["Upper Roman", "upper-roman"], ["Lower Alpha", "lower-alpha"], ["Upper Alpha", "upper-alpha"]]), Tt = /* @__PURE__ */ new Map([["numeric", '<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10 14.2L10 7.4135C10 7.32872 9.90111 7.28241 9.83598 7.33668L7 9.7" stroke="black" stroke-width="1.6" stroke-linecap="round"/><path d="M13.2087 14.2H13.2" stroke="black" stroke-width="1.6" stroke-linecap="round"/></svg>'], ["lower-roman", '<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.2087 14.2H13.2" stroke="black" stroke-width="1.6" stroke-linecap="round"/><path d="M10 14.2L10 9.5" stroke="black" stroke-width="1.6" stroke-linecap="round"/><path d="M10 7.01L10 7" stroke="black" stroke-width="1.8" stroke-linecap="round"/></svg>'], ["upper-roman", '<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.2087 14.2H13.2" stroke="black" stroke-width="1.6" stroke-linecap="round"/><path d="M10 14.2L10 7.2" stroke="black" stroke-width="1.6" stroke-linecap="round"/></svg>'], ["lower-alpha", '<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.2087 14.2H14.2" stroke="black" stroke-width="1.6" stroke-linecap="round"/><path d="M11.5 14.5C11.5 14.5 11 13.281 11 12.5M7 9.5C7 9.5 7.5 8.5 9 8.5C10.5 8.5 11 9.5 11 10.5L11 11.5M11 11.5L11 12.5M11 11.5C11 11.5 7 11 7 13C7 15.3031 11 15 11 12.5" stroke="black" stroke-width="1.6" stroke-linecap="round"/></svg>'], ["upper-alpha", '<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M16.0087 14.2H16" stroke="black" stroke-width="1.6" stroke-linecap="round"/><path d="M7 14.2L7.78865 12M13 14.2L12.1377 12M7.78865 12C7.78865 12 9.68362 7 10 7C10.3065 7 12.1377 12 12.1377 12M7.78865 12L12.1377 12" stroke="black" stroke-width="1.6" stroke-linecap="round"/></svg>']]);
1274
+ class X {
1235
1275
  static get isReadOnlySupported() {
1236
1276
  return !0;
1237
1277
  }
@@ -1239,13 +1279,13 @@ class K {
1239
1279
  return !0;
1240
1280
  }
1241
1281
  static get toolbox() {
1242
- return [{ icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><line x1="9" x2="19" y1="7" y2="7" stroke="currentColor" stroke-linecap="round" stroke-width="2"/><line x1="9" x2="19" y1="12" y2="12" stroke="currentColor" stroke-linecap="round" stroke-width="2"/><line x1="9" x2="19" y1="17" y2="17" stroke="currentColor" stroke-linecap="round" stroke-width="2"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M5.00001 17H4.99002"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M5.00001 12H4.99002"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M5.00001 7H4.99002"/></svg>', title: "Unordered List", data: { style: "unordered" } }, { icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><line x1="12" x2="19" y1="7" y2="7" stroke="currentColor" stroke-linecap="round" stroke-width="2"/><line x1="12" x2="19" y1="12" y2="12" stroke="currentColor" stroke-linecap="round" stroke-width="2"/><line x1="12" x2="19" y1="17" y2="17" stroke="currentColor" stroke-linecap="round" stroke-width="2"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M7.79999 14L7.79999 7.2135C7.79999 7.12872 7.7011 7.0824 7.63597 7.13668L4.79999 9.5"/></svg>', title: "Ordered List", data: { style: "ordered" } }, { icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M9.2 12L11.0586 13.8586C11.1367 13.9367 11.2633 13.9367 11.3414 13.8586L14.7 10.5"/><rect width="14" height="14" x="5" y="5" stroke="currentColor" stroke-width="2" rx="4"/></svg>', title: "Checklist", data: { style: "checklist" } }];
1282
+ return [{ icon: bt, title: "Unordered List", data: { style: "unordered" } }, { icon: yt, title: "Ordered List", data: { style: "ordered" } }, { icon: kt, title: "Checklist", data: { style: "checklist" } }];
1243
1283
  }
1244
1284
  static get pasteConfig() {
1245
1285
  return { tags: ["OL", "UL", "LI"] };
1246
1286
  }
1247
1287
  static get conversionConfig() {
1248
- return { export: (t) => K.joinRecursive(t), import: (t, e) => ({ meta: {}, items: [{ content: t, meta: {}, items: [] }], style: (e == null ? void 0 : e.defaultStyle) !== void 0 ? e.defaultStyle : "unordered" }) };
1288
+ return { export: (t) => X.joinRecursive(t), import: (t, e) => ({ meta: {}, items: [{ content: t, meta: {}, items: [] }], style: (e == null ? void 0 : e.defaultStyle) !== void 0 ? e.defaultStyle : "unordered" }) };
1249
1289
  }
1250
1290
  get listStyle() {
1251
1291
  return this.data.style || this.defaultListStyle;
@@ -1258,7 +1298,7 @@ class K {
1258
1298
  }
1259
1299
  constructor({ data: t, config: e, api: i, readOnly: s, block: n }) {
1260
1300
  var o;
1261
- this.api = i, this.readOnly = s, this.config = e, this.block = n, this.defaultListStyle = ((o = this.config) == null ? void 0 : o.defaultStyle) || "unordered", this.defaultCounterTypes = this.config.counterTypes || Array.from(ae.values());
1301
+ this.api = i, this.readOnly = s, this.config = e, this.block = n, this.defaultListStyle = ((o = this.config) == null ? void 0 : o.defaultStyle) || "unordered", this.defaultCounterTypes = this.config.counterTypes || Array.from(j.values());
1262
1302
  const r = { style: this.defaultListStyle, meta: {}, items: [] };
1263
1303
  this.data = Object.keys(t).length ? function(a) {
1264
1304
  const d = [];
@@ -1276,7 +1316,7 @@ class K {
1276
1316
  }(t) : r, this.listStyle === "ordered" && this.data.meta.counterType === void 0 && (this.data.meta.counterType = "numeric"), this.changeTabulatorByStyle();
1277
1317
  }
1278
1318
  static joinRecursive(t) {
1279
- return t.items.map((e) => `${e.content} ${K.joinRecursive(e)}`).join("");
1319
+ return t.items.map((e) => `${e.content} ${X.joinRecursive(e)}`).join("");
1280
1320
  }
1281
1321
  render() {
1282
1322
  return this.listElement = this.list.render(), this.listElement;
@@ -1287,6 +1327,37 @@ class K {
1287
1327
  merge(t) {
1288
1328
  this.list.merge(t);
1289
1329
  }
1330
+ renderSettings() {
1331
+ var e;
1332
+ const t = [{ label: this.api.i18n.t("Unordered"), icon: bt, closeOnActivate: !0, isActive: this.listStyle == "unordered", onActivate: () => {
1333
+ this.listStyle = "unordered";
1334
+ } }, { label: this.api.i18n.t("Ordered"), icon: yt, closeOnActivate: !0, isActive: this.listStyle == "ordered", onActivate: () => {
1335
+ this.listStyle = "ordered";
1336
+ } }, { label: this.api.i18n.t("Checklist"), icon: kt, closeOnActivate: !0, isActive: this.listStyle == "checklist", onActivate: () => {
1337
+ this.listStyle = "checklist";
1338
+ } }];
1339
+ if (this.listStyle === "ordered") {
1340
+ const i = function(r, { value: o, placeholder: a, attributes: d, sanitize: l }) {
1341
+ const h = ht.make("div", W.wrapper), c = ht.make("input", W.input, { placeholder: a, tabIndex: -1, value: o });
1342
+ for (const u in d)
1343
+ c.setAttribute(u, d[u]);
1344
+ return h.appendChild(c), c.addEventListener("input", () => {
1345
+ l !== void 0 && (c.value = l(c.value));
1346
+ const u = c.checkValidity();
1347
+ u || h.classList.contains(W.startWithElementWrapperInvalid) || h.classList.add(W.startWithElementWrapperInvalid), u && h.classList.contains(W.startWithElementWrapperInvalid) && h.classList.remove(W.startWithElementWrapperInvalid), u && r(c.value);
1348
+ }), h;
1349
+ }((r) => this.changeStartWith(Number(r)), { value: String((e = this.data.meta.start) != null ? e : 1), placeholder: "", attributes: { required: "true" }, sanitize: (r) => function(o) {
1350
+ return o.replace(/\D+/g, "");
1351
+ }(r) }), s = [{ label: this.api.i18n.t("Start with"), icon: '<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8 14.2L8 7.4135C8 7.32872 7.90111 7.28241 7.83598 7.33668L5 9.7" stroke="black" stroke-width="1.6" stroke-linecap="round"/><path d="M14 13L16.4167 10.7778M16.4167 10.7778L14 8.5M16.4167 10.7778H11.6562" stroke="black" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg>', children: { items: [{ element: i, type: "html" }] } }], n = { label: this.api.i18n.t("Counter type"), icon: Tt.get(this.data.meta.counterType), children: { items: [] } };
1352
+ j.forEach((r, o) => {
1353
+ const a = j.get(o);
1354
+ this.defaultCounterTypes.includes(a) && n.children.items.push({ title: this.api.i18n.t(o), icon: Tt.get(a), isActive: this.data.meta.counterType === j.get(o), closeOnActivate: !0, onActivate: () => {
1355
+ this.changeCounters(j.get(o));
1356
+ } });
1357
+ }), n.children.items.length > 1 && s.push(n), t.push({ type: "separator" }, ...s);
1358
+ }
1359
+ return t;
1360
+ }
1290
1361
  onPaste(t) {
1291
1362
  const { tagName: e } = t.detail.data;
1292
1363
  switch (e) {
@@ -1302,20 +1373,28 @@ class K {
1302
1373
  pasteHandler(t) {
1303
1374
  return this.list.pasteHandler(t);
1304
1375
  }
1376
+ changeCounters(t) {
1377
+ var e;
1378
+ (e = this.list) == null || e.changeCounters(t), this.data.meta.counterType = t;
1379
+ }
1380
+ changeStartWith(t) {
1381
+ var e;
1382
+ (e = this.list) == null || e.changeStartWith(t), this.data.meta.start = t;
1383
+ }
1305
1384
  changeTabulatorByStyle() {
1306
1385
  switch (this.listStyle) {
1307
1386
  case "ordered":
1308
- this.list = new X({ data: this.data, readOnly: this.readOnly, api: this.api, config: this.config, block: this.block }, new E(this.readOnly, this.config));
1387
+ this.list = new et({ data: this.data, readOnly: this.readOnly, api: this.api, config: this.config, block: this.block }, new E(this.readOnly, this.config));
1309
1388
  break;
1310
1389
  case "unordered":
1311
- this.list = new X({ data: this.data, readOnly: this.readOnly, api: this.api, config: this.config, block: this.block }, new M(this.readOnly, this.config));
1390
+ this.list = new et({ data: this.data, readOnly: this.readOnly, api: this.api, config: this.config, block: this.block }, new M(this.readOnly, this.config));
1312
1391
  break;
1313
1392
  case "checklist":
1314
- this.list = new X({ data: this.data, readOnly: this.readOnly, api: this.api, config: this.config, block: this.block }, new C(this.readOnly, this.config));
1393
+ this.list = new et({ data: this.data, readOnly: this.readOnly, api: this.api, config: this.config, block: this.block }, new C(this.readOnly, this.config));
1315
1394
  }
1316
1395
  }
1317
1396
  }
1318
- class le {
1397
+ class me {
1319
1398
  constructor(t, e, i) {
1320
1399
  this.holder = e, this.observer = null, this.debounceTimer = i, this.mutationDebouncer = this.debounce(() => {
1321
1400
  t();
@@ -1355,18 +1434,19 @@ class le {
1355
1434
  document.dispatchEvent(t), (e = this.observer) == null || e.disconnect();
1356
1435
  }
1357
1436
  }
1358
- class de {
1437
+ class fe {
1359
1438
  constructor({ editor: t, config: e = {}, onUpdate: i, maxLength: s }) {
1360
1439
  this.position = 0;
1361
1440
  const n = { maxLength: 30, onUpdate() {
1362
- }, config: { debounceTimer: 200, shortcuts: { undo: ["CMD+Z"], redo: ["CMD+Y", "CMD+SHIFT+Z"] } } }, { blocks: r, caret: o } = t, { configuration: a } = t, { holder: d, defaultBlock: l } = a, c = n.config.shortcuts, { shortcuts: p } = e, u = { ...c, ...p }, g = Array.isArray(u.undo) ? u.undo : [u.undo], m = Array.isArray(u.redo) ? u.redo : [u.redo], f = n.config.debounceTimer, { debounceTimer: v = f } = e;
1363
- this.holder = typeof d == "string" ? document.getElementById(d) : d, this.editor = t, this.defaultBlock = l, this.blocks = r, this.caret = o, this.shouldSaveHistory = !0, this.readOnly = a.readOnly, this.maxLength = s || n.maxLength, this.onUpdate = i || n.onUpdate, this.config = { debounceTimer: v, shortcuts: { undo: g, redo: m } }, new le(() => this.registerChange(), this.holder, this.config.debounceTimer).setMutationObserver(), this.setEventListeners(), this.initialItem = null, this.clear();
1441
+ }, config: { debounceTimer: 200, shortcuts: { undo: ["CMD+Z"], redo: ["CMD+Y", "CMD+SHIFT+Z"] } } }, { blocks: r, caret: o } = t, { configuration: a } = t, { holder: d, defaultBlock: l } = a, h = n.config.shortcuts, { shortcuts: c } = e, u = { ...h, ...c }, g = Array.isArray(u.undo) ? u.undo : [u.undo], m = Array.isArray(u.redo) ? u.redo : [u.redo], f = n.config.debounceTimer, { debounceTimer: v = f } = e;
1442
+ this.holder = typeof d == "string" ? document.getElementById(d) : d, this.editor = t, this.defaultBlock = l, this.blocks = r, this.caret = o, this.shouldSaveHistory = !0, this.readOnly = a.readOnly, this.maxLength = s || n.maxLength, this.onUpdate = i || n.onUpdate, this.config = { debounceTimer: v, shortcuts: { undo: g, redo: m } }, new me(() => this.registerChange(), this.holder, this.config.debounceTimer).setMutationObserver(), this.setEventListeners(), this.initialItem = null, this.clear();
1364
1443
  }
1365
1444
  static get isReadOnlySupported() {
1366
1445
  return !0;
1367
1446
  }
1368
1447
  truncate(t, e) {
1369
- for (; t.length > e; ) t.shift();
1448
+ for (; t.length > e; )
1449
+ t.shift();
1370
1450
  }
1371
1451
  initialize(t) {
1372
1452
  const e = "blocks" in t ? t.blocks : t, i = { index: e.length - 1, state: e };
@@ -1398,13 +1478,14 @@ class de {
1398
1478
  }
1399
1479
  getCaretIndex(t) {
1400
1480
  const e = this.holder.getElementsByClassName("ce-block__content");
1401
- return new lt(e[t].firstChild).getPos();
1481
+ return new ct(e[t].firstChild).getPos();
1402
1482
  }
1403
1483
  insertDeletedBlock(t, e, i) {
1404
- for (let s = 0; s < t.length; s += 1) if (!e[s] || t[s].id !== e[s].id) {
1405
- this.blocks.insert(t[s].type, t[s].data, {}, s, !0), this.caret.setToBlock(i, "end");
1406
- break;
1407
- }
1484
+ for (let s = 0; s < t.length; s += 1)
1485
+ if (!e[s] || t[s].id !== e[s].id) {
1486
+ this.blocks.insert(t[s].type, t[s].data, {}, s, !0), this.caret.setToBlock(i, "end");
1487
+ break;
1488
+ }
1408
1489
  }
1409
1490
  blockWasDropped(t, e) {
1410
1491
  return t.length === e.length && t.some((i, s) => i.id !== e[s].id);
@@ -1429,11 +1510,16 @@ class de {
1429
1510
  const { state: s, caretIndex: n } = this.stack[this.position];
1430
1511
  this.onUpdate();
1431
1512
  const r = this.blocks.getBlocksCount();
1432
- if (s[i] || (i -= 1, this.stack[this.position].index = i), this.blockWasDeleted(s, e)) this.insertDeletedBlock(s, e, i);
1433
- else if (this.contentWasCopied(s, e, i)) await this.blocks.render({ blocks: s }), this.caret.setToBlock(i, "end");
1434
- else if (i < t && this.blockWasSkipped(s, e)) await this.blocks.delete(t), this.caret.setToBlock(i, "end");
1435
- else if (r > s.length) await this.blocks.render({ blocks: s }), this.setCaretIndex(i, n);
1436
- else if (this.blockWasDropped(s, e)) await this.blocks.render({ blocks: s }), this.caret.setToBlock(i, "end");
1513
+ if (s[i] || (i -= 1, this.stack[this.position].index = i), this.blockWasDeleted(s, e))
1514
+ this.insertDeletedBlock(s, e, i);
1515
+ else if (this.contentWasCopied(s, e, i))
1516
+ await this.blocks.render({ blocks: s }), this.caret.setToBlock(i, "end");
1517
+ else if (i < t && this.blockWasSkipped(s, e))
1518
+ await this.blocks.delete(t), this.caret.setToBlock(i, "end");
1519
+ else if (r > s.length)
1520
+ await this.blocks.render({ blocks: s }), this.setCaretIndex(i, n);
1521
+ else if (this.blockWasDropped(s, e))
1522
+ await this.blocks.render({ blocks: s }), this.caret.setToBlock(i, "end");
1437
1523
  else if (this.contentChangedInNoFocusBlock(i, t)) {
1438
1524
  const { id: a } = this.blocks.getBlockByIndex(t);
1439
1525
  await this.blocks.update(a, s[t].data), this.setCaretIndex(i, n);
@@ -1444,15 +1530,17 @@ class de {
1444
1530
  }
1445
1531
  setCaretIndex(t, e) {
1446
1532
  if (e && e !== -1) {
1447
- const i = this.holder.getElementsByClassName("ce-block__content"), s = new lt(i[t].firstChild);
1533
+ const i = this.holder.getElementsByClassName("ce-block__content"), s = new ct(i[t].firstChild);
1448
1534
  setTimeout(() => s.setPos(e), 50);
1449
- } else this.caret.setToBlock(t, "end");
1535
+ } else
1536
+ this.caret.setToBlock(t, "end");
1450
1537
  }
1451
1538
  async insertBlock(t, e) {
1452
1539
  await this.blocks.insert(t[e].type, t[e].data, {}, e, !0);
1453
1540
  }
1454
1541
  async insertSkippedBlocks(t, e, i) {
1455
- for (let s = t.length; s < e.length; s += 1) this.insertBlock(e, s);
1542
+ for (let s = t.length; s < e.length; s += 1)
1543
+ this.insertBlock(e, s);
1456
1544
  JSON.stringify(t[i - 1]) !== JSON.stringify(e[i - 1]) && await this.updateModifiedBlock(e, i);
1457
1545
  }
1458
1546
  async updateModifiedBlock(t, e) {
@@ -1482,13 +1570,13 @@ class de {
1482
1570
  return i.push(s), i;
1483
1571
  }
1484
1572
  setEventListeners() {
1485
- const { holder: t } = this, { shortcuts: e } = this.config, { undo: i, redo: s } = e, n = i.map((u) => u.replace(/ /g, "").split("+")), r = s.map((u) => u.replace(/ /g, "").split("+")), o = n.map((u) => this.parseKeys(u)), a = r.map((u) => this.parseKeys(u)), d = (u, g) => g.reduce((m, f) => m || ((v, L) => L.length === 3 && v[L[0]] && v[L[1]] && v.key.toLowerCase() === L[2])(u, f), !1), l = (u, g, m) => !(!((f, v) => v.reduce((L, w) => L || ((_, B) => B.length === 2 && _[B[0]] && _.key.toLowerCase() === B[1])(f, w), !1))(u, g) || d(u, m)) || !!d(u, g), c = (u) => {
1573
+ const { holder: t } = this, { shortcuts: e } = this.config, { undo: i, redo: s } = e, n = i.map((u) => u.replace(/ /g, "").split("+")), r = s.map((u) => u.replace(/ /g, "").split("+")), o = n.map((u) => this.parseKeys(u)), a = r.map((u) => this.parseKeys(u)), d = (u, g) => g.reduce((m, f) => m || ((v, L) => L.length === 3 && v[L[0]] && v[L[1]] && v.key.toLowerCase() === L[2])(u, f), !1), l = (u, g, m) => !(!((f, v) => v.reduce((L, w) => L || ((_, B) => B.length === 2 && _[B[0]] && _.key.toLowerCase() === B[1])(f, w), !1))(u, g) || d(u, m)) || !!d(u, g), h = (u) => {
1486
1574
  l(u, o, a) && (u.preventDefault(), this.undo());
1487
- }, p = (u) => {
1575
+ }, c = (u) => {
1488
1576
  l(u, a, o) && (u.preventDefault(), this.redo());
1489
1577
  };
1490
- t.addEventListener("keydown", c), t.addEventListener("keydown", p), t.addEventListener("destroy", () => {
1491
- t.removeEventListener("keydown", c), t.removeEventListener("keydown", p);
1578
+ t.addEventListener("keydown", h), t.addEventListener("keydown", c), t.addEventListener("destroy", () => {
1579
+ t.removeEventListener("keydown", h), t.removeEventListener("keydown", c);
1492
1580
  });
1493
1581
  }
1494
1582
  }
@@ -1573,7 +1661,7 @@ class H {
1573
1661
  });
1574
1662
  }), H.ALIGN_TYPES.map((s) => {
1575
1663
  let n;
1576
- return s === "left" && (n = document.createElement("div"), n.classList.add("cdx-alert_setting__icon"), n.innerHTML = Ht), s === "right" && (n = document.createElement("div"), n.classList.add("cdx-alert_setting__icon"), n.innerHTML = Bt), s === "center" && (n = document.createElement("div"), n.classList.add("cdx-alert_setting__icon"), n.innerHTML = It), n == null || n.setAttribute("data-align", s), this.api.tooltip.onHover(n, this.api.i18n.t(`align-${s}`), { placement: "top" }), i.appendChild(n), n;
1664
+ return s === "left" && (n = document.createElement("div"), n.classList.add("cdx-alert_setting__icon"), n.innerHTML = Nt), s === "right" && (n = document.createElement("div"), n.classList.add("cdx-alert_setting__icon"), n.innerHTML = Wt), s === "center" && (n = document.createElement("div"), n.classList.add("cdx-alert_setting__icon"), n.innerHTML = zt), n == null || n.setAttribute("data-align", s), this.api.tooltip.onHover(n, this.api.i18n.t(`align-${s}`), { placement: "top" }), i.appendChild(n), n;
1577
1665
  }).forEach((s, n, r) => {
1578
1666
  const o = s.getAttribute("data-align") || "";
1579
1667
  s.addEventListener("click", () => {
@@ -1606,7 +1694,8 @@ class H {
1606
1694
  _make(t, e, i = {}) {
1607
1695
  let s = document.createElement(t);
1608
1696
  Array.isArray(e) ? s.classList.add(...e) : e && s.classList.add(e);
1609
- for (let n in i) s.setAttribute(n, i[n]);
1697
+ for (let n in i)
1698
+ s.setAttribute(n, i[n]);
1610
1699
  return s;
1611
1700
  }
1612
1701
  onPaste(t) {
@@ -1620,11 +1709,11 @@ class H {
1620
1709
  return { message: !0, type: !1, alignType: !1 };
1621
1710
  }
1622
1711
  }
1623
- const wt = { orientation: !1 }, b = class b {
1712
+ const Et = { orientation: !1 }, Y = class x {
1624
1713
  constructor({ api: t, data: e, config: i, block: s, ...n }) {
1625
- var o, a, d, l, c, p;
1714
+ var o, a, d, l, h, c;
1626
1715
  this.wrapper = document.createElement("div"), this.DEFAULT_INDENT_KEY = "Tab", this.lastResizeTimeout = null, this.cachedMaxWidthForContent = null, this.api = t, this.block = s, !i && "settings" in n && (i = (o = n.settings) != null ? o : {}), this.config = { indentSize: 24, maxIndent: 8, minIndent: 0, multiblock: !1, autoIndent: !1, tuneName: null, orientation: "horizontal", customBlockIndentLimits: {}, handleShortcut: void 0, direction: "ltr", directionChangeHandler: null, version: "2.30", ...i != null ? i : {} }, this.changeConfigBasedOnVersionIfNeeded(), (a = this.config) != null && a.directionChangeHandler && this.config.directionChangeHandler(this.alignmentChangeListener.bind(this));
1627
- const r = (p = (c = this.config.customBlockIndentLimits[(l = (d = this.block) == null ? void 0 : d.name) != null ? l : ""]) == null ? void 0 : c.min) != null ? p : this.config.minIndent;
1716
+ const r = (c = (h = this.config.customBlockIndentLimits[(l = (d = this.block) == null ? void 0 : d.name) != null ? l : ""]) == null ? void 0 : h.min) != null ? c : this.config.minIndent;
1628
1717
  this.data = { indentLevel: r, ...e != null ? e : {} }, this.config.multiblock && this.config.tuneName, window.addEventListener("resize", (u) => this.onResize.call(this, u)), this.api.events.on("block changed", ({ event: u }) => {
1629
1718
  var f;
1630
1719
  const g = u.detail.target.id;
@@ -1643,35 +1732,37 @@ const wt = { orientation: !1 }, b = class b {
1643
1732
  const t = () => {
1644
1733
  if (this.data.indentLevel == this.maxIndent) {
1645
1734
  const a = this.getTuneButton("indent");
1646
- if (a == null || a.classList.add(this.CSS.disabledItem), !a) return !0;
1735
+ if (a == null || a.classList.add(this.CSS.disabledItem), !a)
1736
+ return !0;
1647
1737
  }
1648
1738
  if (this.data.indentLevel == this.minIndent) {
1649
1739
  const a = this.getTuneButton("unindent");
1650
- if (a == null || a.classList.add(this.CSS.disabledItem), !a) return !0;
1740
+ if (a == null || a.classList.add(this.CSS.disabledItem), !a)
1741
+ return !0;
1651
1742
  }
1652
1743
  };
1653
1744
  if (queueMicrotask(() => {
1654
1745
  t() && setTimeout(t, 300);
1655
1746
  }), this.config.orientation === "vertical") {
1656
1747
  const a = `${this.TuneNames.indentLeft}-${(r = this.block) == null ? void 0 : r.id}`, d = `${this.TuneNames.indentRight}-${(o = this.block) == null ? void 0 : o.id}`;
1657
- return [{ title: this.rightText, hint: { title: this.api.i18n.t(this.rightText) }, onActivate: (l, c) => {
1748
+ return [{ title: this.rightText, hint: { title: this.api.i18n.t(this.rightText) }, onActivate: (l, h) => {
1658
1749
  this.handleIndentRight(), l.title = this.rightText;
1659
- }, icon: kt, name: d }, { title: this.leftText, hint: { title: this.api.i18n.t(this.leftText) }, onActivate: (l, c) => {
1750
+ }, icon: xt, name: d }, { title: this.leftText, hint: { title: this.api.i18n.t(this.leftText) }, onActivate: (l, h) => {
1660
1751
  this.handleIndentLeft(), l.title = this.leftText;
1661
- }, icon: vt, name: a }];
1752
+ }, icon: Lt, name: a }];
1662
1753
  }
1663
1754
  const e = `
1664
1755
  <div class="${this.CSS.popoverItem} ${this.CSS.customPopoverItem}" data-item-name='indent' version=${this.config.version}>
1665
- <button type="button" class="${this.CSS.popoverItemIcon}" data-${this.TuneNames.indentLeft}>${vt}</button>
1756
+ <button type="button" class="${this.CSS.popoverItemIcon}" data-${this.TuneNames.indentLeft}>${Lt}</button>
1666
1757
  <span class="${this.CSS.popoverItemTitle}">${this.api.sanitizer.clean(this.api.i18n.t("Indent"), {})}</span>
1667
- <button type="button" class="${this.CSS.popoverItemIcon}" data-${this.TuneNames.indentRight} style="margin-left:10px;">${kt}</button>
1758
+ <button type="button" class="${this.CSS.popoverItemIcon}" data-${this.TuneNames.indentRight} style="margin-left:10px;">${xt}</button>
1668
1759
  </div>
1669
1760
  `, i = this.createElementFromTemplate(e), s = i.querySelector(`[data-${this.TuneNames.indentRight}]`), n = i.querySelector(`[data-${this.TuneNames.indentLeft}]`);
1670
1761
  return s && (s.addEventListener("click", () => this.handleIndentRight()), this.api.tooltip.onHover(s, this.api.i18n.t("Indent right"), { placement: "top" })), n && (n.addEventListener("click", () => this.handleIndentLeft()), this.api.tooltip.onHover(n, this.api.i18n.t("Indent left"), { placement: "top" })), i;
1671
1762
  }
1672
1763
  wrap(t) {
1673
1764
  var i, s, n, r, o;
1674
- this.wrapper.appendChild(t), this.wrapper.setAttribute(b.DATA_WRAPPER_NAME, "");
1765
+ this.wrapper.appendChild(t), this.wrapper.setAttribute(x.DATA_WRAPPER_NAME, "");
1675
1766
  let e = !!this.config.highlightIndent;
1676
1767
  if ((i = this.config.highlightIndent) != null && i.tuneNames && !this.config.highlightIndent.tuneNames.includes((n = (s = this.block) == null ? void 0 : s.name) != null ? n : "") && (e = !1), e) {
1677
1768
  const a = this.createElementFromTemplate(`
@@ -1717,22 +1808,29 @@ const wt = { orientation: !1 }, b = class b {
1717
1808
  }
1718
1809
  get shouldApplyAutoIndent() {
1719
1810
  var s;
1720
- if (!this.config.autoIndent) return !1;
1721
- if (typeof this.config.autoIndent == "boolean") return this.config.autoIndent;
1811
+ if (!this.config.autoIndent)
1812
+ return !1;
1813
+ if (typeof this.config.autoIndent == "boolean")
1814
+ return this.config.autoIndent;
1722
1815
  const t = this.api.blocks.getCurrentBlockIndex();
1723
- if (t < 0) return !1;
1816
+ if (t < 0)
1817
+ return !1;
1724
1818
  const e = this.api.blocks.getBlockByIndex(t);
1725
- if (!e) return !1;
1819
+ if (!e)
1820
+ return !1;
1726
1821
  const i = e.name;
1727
1822
  return !((s = this.config.autoIndent.tuneNames) != null && s.length) || this.config.autoIndent.tuneNames.includes(i);
1728
1823
  }
1729
1824
  handlePropagationForKeyEvent(t) {
1730
1825
  var r, o, a;
1731
- if (!((r = this.block) != null && r.id) || this.config.handleShortcut === !1) return null;
1826
+ if (!((r = this.block) != null && r.id) || this.config.handleShortcut === !1)
1827
+ return null;
1732
1828
  const e = t.key == this.DEFAULT_INDENT_KEY, i = typeof this.config.handleShortcut == "function";
1733
- if (!i && !e) return null;
1829
+ if (!i && !e)
1830
+ return null;
1734
1831
  const s = (a = (o = this.config).handleShortcut) == null ? void 0 : a.call(o, t, this.block.id);
1735
- if (!s && i) return null;
1832
+ if (!s && i)
1833
+ return null;
1736
1834
  let n;
1737
1835
  switch (s) {
1738
1836
  case "indent":
@@ -1742,29 +1840,35 @@ const wt = { orientation: !1 }, b = class b {
1742
1840
  n = !1;
1743
1841
  break;
1744
1842
  default:
1745
- if (!e) return null;
1843
+ if (!e)
1844
+ return null;
1746
1845
  n = !t.shiftKey;
1747
1846
  }
1748
1847
  return t.stopPropagation(), t.preventDefault(), { isIndent: n };
1749
1848
  }
1750
1849
  onKeyDown(t) {
1751
1850
  var n, r, o;
1752
- if (!((n = this.block) != null && n.id)) return;
1851
+ if (!((n = this.block) != null && n.id))
1852
+ return;
1753
1853
  const e = this.handlePropagationForKeyEvent(t);
1754
- if (!e) return;
1854
+ if (!e)
1855
+ return;
1755
1856
  const { isIndent: i } = e;
1756
1857
  this.api.inlineToolbar.close();
1757
1858
  const s = this.getGlobalSelectedBlocks();
1758
- if (!this.config.multiblock || s.length < 2) return i ? this.indentBlock() : this.unIndentBlock(), void ((o = (r = this.block).dispatchChange) == null ? void 0 : o.call(r));
1859
+ if (!this.config.multiblock || s.length < 2)
1860
+ return i ? this.indentBlock() : this.unIndentBlock(), void ((o = (r = this.block).dispatchChange) == null ? void 0 : o.call(r));
1759
1861
  this.config.tuneName && s.forEach(async (a) => {
1760
- var p, u, g, m;
1862
+ var c, u, g, m;
1761
1863
  const d = await a.save();
1762
- if (!d || !("tunes" in d) || typeof d.tunes != "object" || !d.tunes) return;
1763
- const l = d.tunes[(p = this.config.tuneName) != null ? p : ""];
1764
- if (!l) return;
1864
+ if (!d || !("tunes" in d) || typeof d.tunes != "object" || !d.tunes)
1865
+ return;
1866
+ const l = d.tunes[(c = this.config.tuneName) != null ? c : ""];
1867
+ if (!l)
1868
+ return;
1765
1869
  l.indentLevel = i ? Math.min(this.config.maxIndent, ((u = l.indentLevel) != null ? u : 0) + 1) : Math.max(0, ((g = l.indentLevel) != null ? g : 0) - 1), (m = a.dispatchChange) == null || m.call(a);
1766
- const c = this.getWrapperBlockById(a.id);
1767
- c instanceof HTMLElement && this.applyStylesToWrapper(c, l.indentLevel);
1870
+ const h = this.getWrapperBlockById(a.id);
1871
+ h instanceof HTMLElement && this.applyStylesToWrapper(h, l.indentLevel);
1768
1872
  });
1769
1873
  }
1770
1874
  handleIndentLeft() {
@@ -1784,8 +1888,9 @@ const wt = { orientation: !1 }, b = class b {
1784
1888
  autoIndentBlock() {
1785
1889
  var r, o;
1786
1890
  const t = this.api.blocks.getBlockIndex(this.block.id), e = this.api.blocks.getBlockByIndex(t - 1);
1787
- if (!e) return;
1788
- const i = (o = (r = e.holder) == null ? void 0 : r.querySelector(`[${b.DATA_WRAPPER_NAME}]`)) == null ? void 0 : o.getAttribute(b.DATA_INDENT_LEVEL), s = Number(i != null ? i : 0), n = Math.min(Math.max(s, this.minIndent), this.maxIndent);
1891
+ if (!e)
1892
+ return;
1893
+ const i = (o = (r = e.holder) == null ? void 0 : r.querySelector(`[${x.DATA_WRAPPER_NAME}]`)) == null ? void 0 : o.getAttribute(x.DATA_INDENT_LEVEL), s = Number(i != null ? i : 0), n = Math.min(Math.max(s, this.minIndent), this.maxIndent);
1789
1894
  this.data.indentLevel = n, this.applyStylesToWrapper(this.wrapper, this.data.indentLevel);
1790
1895
  }
1791
1896
  toggleDisableStateForButtons() {
@@ -1804,27 +1909,29 @@ const wt = { orientation: !1 }, b = class b {
1804
1909
  var e;
1805
1910
  return (e = this.getTuneByName(t)) == null ? void 0 : e.querySelector(`.${this.CSS.popoverItemTitle}`);
1806
1911
  }
1807
- applyStylesToWrapper(t, e = parseInt(t.getAttribute(b.DATA_INDENT_LEVEL) || "0")) {
1912
+ applyStylesToWrapper(t, e = parseInt(t.getAttribute(x.DATA_INDENT_LEVEL) || "0")) {
1808
1913
  const i = e * this.config.indentSize;
1809
- t.setAttribute(b.DATA_INDENT_LEVEL, e.toString());
1914
+ t.setAttribute(x.DATA_INDENT_LEVEL, e.toString());
1810
1915
  const s = t.querySelector(`.${this.EditorCSS.content}`), n = this.getBlockForWrapper(t) || document.querySelector(`.${this.EditorCSS.redactor}`);
1811
- if (!(s instanceof HTMLElement && n)) return;
1916
+ if (!(s instanceof HTMLElement && n))
1917
+ return;
1812
1918
  const r = n.getBoundingClientRect().width;
1813
- if (r === 0) return void queueMicrotask(() => this.applyStylesToWrapper.bind(this)(t, e));
1919
+ if (r === 0)
1920
+ return void queueMicrotask(() => this.applyStylesToWrapper.bind(this)(t, e));
1814
1921
  const o = (r - this.maxWidthForContent(t)) / 2, a = Math.max(0, Math.min(o, i)), d = 2 * a + "px", l = `${a}px`;
1815
1922
  this.isDirectionInverted ? (t.style.paddingLeft = "0px", t.style.paddingRight = d) : (t.style.paddingLeft = d, t.style.paddingRight = "0px");
1816
- const c = t.querySelector(`.${this.CSS.highlightIndent}`);
1817
- c instanceof HTMLElement && (this.isDirectionInverted ? (c.style.width = l, c.style.left = "100%", c.style.right = "") : (c.style.width = l, c.style.left = "", c.style.right = "100%"));
1923
+ const h = t.querySelector(`.${this.CSS.highlightIndent}`);
1924
+ h instanceof HTMLElement && (this.isDirectionInverted ? (h.style.width = l, h.style.left = "100%", h.style.right = "") : (h.style.width = l, h.style.left = "", h.style.right = "100%"));
1818
1925
  }
1819
1926
  onFocus(t) {
1820
- t.target instanceof HTMLElement && this.wrapper.contains(t.target) && this.wrapper.setAttribute(b.DATA_FOCUSED, "");
1927
+ t.target instanceof HTMLElement && this.wrapper.contains(t.target) && this.wrapper.setAttribute(x.DATA_FOCUSED, "");
1821
1928
  }
1822
1929
  onBlur(t) {
1823
- t.target instanceof HTMLElement && this.wrapper.contains(t.target) && this.wrapper.removeAttribute(b.DATA_FOCUSED);
1930
+ t.target instanceof HTMLElement && this.wrapper.contains(t.target) && this.wrapper.removeAttribute(x.DATA_FOCUSED);
1824
1931
  }
1825
1932
  onResize(t) {
1826
1933
  this.lastResizeTimeout && clearTimeout(this.lastResizeTimeout), this.lastResizeTimeout = setTimeout(() => {
1827
- document.querySelectorAll(`[${b.DATA_WRAPPER_NAME}]`).forEach((e) => {
1934
+ document.querySelectorAll(`[${x.DATA_WRAPPER_NAME}]`).forEach((e) => {
1828
1935
  e instanceof HTMLElement && this.applyStylesToWrapper(e);
1829
1936
  });
1830
1937
  }, 500);
@@ -1834,13 +1941,14 @@ const wt = { orientation: !1 }, b = class b {
1834
1941
  }
1835
1942
  getWrapperBlockById(t) {
1836
1943
  var i, s, n;
1837
- const e = `.${this.EditorCSS.block}[data-id="${t}"] [${b.DATA_WRAPPER_NAME}]`;
1838
- return (n = (s = document.querySelector(e)) != null ? s : (i = this.api.blocks.getById(t)) == null ? void 0 : i.holder.querySelector(`[${b.DATA_WRAPPER_NAME}]`)) != null ? n : null;
1944
+ const e = `.${this.EditorCSS.block}[data-id="${t}"] [${x.DATA_WRAPPER_NAME}]`;
1945
+ return (n = (s = document.querySelector(e)) != null ? s : (i = this.api.blocks.getById(t)) == null ? void 0 : i.holder.querySelector(`[${x.DATA_WRAPPER_NAME}]`)) != null ? n : null;
1839
1946
  }
1840
1947
  getBlockForWrapper(t) {
1841
1948
  let e = t;
1842
1949
  for (; !e.classList.contains(this.EditorCSS.block); ) {
1843
- if (!e.parentElement || e instanceof HTMLHtmlElement) return null;
1950
+ if (!e.parentElement || e instanceof HTMLHtmlElement)
1951
+ return null;
1844
1952
  e = e.parentElement;
1845
1953
  }
1846
1954
  return e;
@@ -1858,22 +1966,23 @@ const wt = { orientation: !1 }, b = class b {
1858
1966
  return new DOMParser().parseFromString(t, "text/html").body.firstChild;
1859
1967
  }
1860
1968
  changeConfigBasedOnVersionIfNeeded() {
1861
- this.config.version && this.config.version < "2.27" && this.config.orientation === "vertical" && (this.config.orientation = "horizontal", wt.orientation, wt.orientation = !0);
1969
+ this.config.version && this.config.version < "2.27" && this.config.orientation === "vertical" && (this.config.orientation = "horizontal", Et.orientation, Et.orientation = !0);
1862
1970
  }
1863
1971
  maxWidthForContent(t) {
1864
1972
  const e = t.querySelector(`.${this.EditorCSS.content}`);
1865
1973
  if (e instanceof HTMLElement) {
1866
1974
  const { maxWidth: i } = window.getComputedStyle(e);
1867
- if (i) return this.cachedMaxWidthForContent = parseInt(i), this.cachedMaxWidthForContent;
1975
+ if (i)
1976
+ return this.cachedMaxWidthForContent = parseInt(i), this.cachedMaxWidthForContent;
1868
1977
  }
1869
1978
  return this.cachedMaxWidthForContent !== null || (this.cachedMaxWidthForContent = 650), this.cachedMaxWidthForContent;
1870
1979
  }
1871
1980
  };
1872
- b.DATA_WRAPPER_NAME = "data-block-indent-wrapper", b.DATA_FOCUSED = "data-focused", b.DATA_INDENT_LEVEL = "data-indent-level";
1873
- let st = b;
1874
- class W {
1981
+ Y.DATA_WRAPPER_NAME = "data-block-indent-wrapper", Y.DATA_FOCUSED = "data-focused", Y.DATA_INDENT_LEVEL = "data-indent-level";
1982
+ let Ce = Y;
1983
+ class P {
1875
1984
  static get toolboxIcon() {
1876
- return Ct;
1985
+ return St;
1877
1986
  }
1878
1987
  static get CSS() {
1879
1988
  return "cdx-marker";
@@ -1888,13 +1997,14 @@ class W {
1888
1997
  return this.button = document.createElement("button"), this.button.setAttribute("type", "button"), this.button.classList.add(this.iconClasses.base), this.button.innerHTML = this.toolboxIcon, this.button;
1889
1998
  }
1890
1999
  surround(t) {
1891
- if (!t) return;
1892
- let e = this.api.selection.findParentTag(this.tag, W.CSS);
2000
+ if (!t)
2001
+ return;
2002
+ let e = this.api.selection.findParentTag(this.tag, P.CSS);
1893
2003
  e ? this.unwrap(e) : this.wrap(t);
1894
2004
  }
1895
2005
  wrap(t) {
1896
2006
  let e = document.createElement(this.tag);
1897
- e.classList.add(W.CSS), e.appendChild(t.extractContents()), t.insertNode(e), this.api.selection.expandToTag(e);
2007
+ e.classList.add(P.CSS), e.appendChild(t.extractContents()), t.insertNode(e), this.api.selection.expandToTag(e);
1898
2008
  }
1899
2009
  unwrap(t) {
1900
2010
  var n;
@@ -1904,17 +2014,17 @@ class W {
1904
2014
  }
1905
2015
  checkState() {
1906
2016
  var e;
1907
- const t = this.api.selection.findParentTag(this.tag, W.CSS);
2017
+ const t = this.api.selection.findParentTag(this.tag, P.CSS);
1908
2018
  (e = this.button) == null || e.classList.toggle(this.iconClasses.active, !!t);
1909
2019
  }
1910
2020
  get toolboxIcon() {
1911
- return Ct;
2021
+ return St;
1912
2022
  }
1913
2023
  static get sanitize() {
1914
- return { mark: { class: W.CSS } };
2024
+ return { mark: { class: P.CSS } };
1915
2025
  }
1916
2026
  }
1917
- class he {
2027
+ class ve {
1918
2028
  constructor(t) {
1919
2029
  this.tag = "SPAN", this.class = "cdx-text-color", this.defaultColor = "#2644FF", this.lastRange = null, this.colors = ["#182a4e", "#0055cc", "#1f6a83", "#206e4e", "#e56910", "#ae2e24", "#5e4db2", "#758195", "#1e7afd", "#2998bd", "#23a06b", "#fea363", "#c9372c", "#8270db"], this.columns = 7;
1920
2030
  const { api: e, config: i } = t;
@@ -1936,7 +2046,8 @@ class he {
1936
2046
  this.lastRange = t;
1937
2047
  }
1938
2048
  wrapAndColor(t, e) {
1939
- if (!t) return;
2049
+ if (!t)
2050
+ return;
1940
2051
  const i = t.extractContents(), s = document.createElement(this.tag);
1941
2052
  s.classList.add(this.class), s.appendChild(i), s.style.color = e, s.innerHTML = s.textContent || "", t.insertNode(s), this.api.selection.expandToTag(s);
1942
2053
  }
@@ -1953,11 +2064,11 @@ class he {
1953
2064
  return { span: { style: { color: !0 } } };
1954
2065
  }
1955
2066
  }
1956
- class ce extends he {
2067
+ class ke extends ve {
1957
2068
  static get sanitize() {
1958
2069
  }
1959
2070
  }
1960
- const z = class z {
2071
+ const $t = class U {
1961
2072
  constructor(t) {
1962
2073
  this.tag = "U", this.api = t.api, this.iconClasses = { base: this.api.styles.inlineToolButton, active: this.api.styles.inlineToolButtonActive };
1963
2074
  }
@@ -1968,38 +2079,41 @@ const z = class z {
1968
2079
  return this.button = document.createElement("button"), this.button.type = "button", this.button.classList.add(this.iconClasses.base), this.button.innerHTML = this.toolboxIcon, this.button;
1969
2080
  }
1970
2081
  surround(t) {
1971
- if (!t) return;
1972
- const e = this.api.selection.findParentTag(this.tag, z.CSS);
2082
+ if (!t)
2083
+ return;
2084
+ const e = this.api.selection.findParentTag(this.tag, U.CSS);
1973
2085
  e ? this.unwrap(e) : this.wrap(t);
1974
2086
  }
1975
2087
  wrap(t) {
1976
2088
  const e = document.createElement(this.tag);
1977
- e.classList.add(z.CSS), e.appendChild(t.extractContents()), t.insertNode(e), this.api.selection.expandToTag(e);
2089
+ e.classList.add(U.CSS), e.appendChild(t.extractContents()), t.insertNode(e), this.api.selection.expandToTag(e);
1978
2090
  }
1979
2091
  unwrap(t) {
1980
2092
  var n;
1981
2093
  this.api.selection.expandToTag(t);
1982
2094
  const e = window.getSelection();
1983
- if (!e) return;
2095
+ if (!e)
2096
+ return;
1984
2097
  const i = e.getRangeAt(0);
1985
- if (!i) return;
2098
+ if (!i)
2099
+ return;
1986
2100
  const s = i.extractContents();
1987
2101
  s && ((n = t.parentNode) == null || n.removeChild(t), i.insertNode(s), e.removeAllRanges(), e.addRange(i));
1988
2102
  }
1989
2103
  checkState() {
1990
2104
  var e;
1991
- const t = this.api.selection.findParentTag(this.tag, z.CSS);
2105
+ const t = this.api.selection.findParentTag(this.tag, U.CSS);
1992
2106
  return (e = this.button) == null || e.classList.toggle(this.iconClasses.active, !!t), !!t;
1993
2107
  }
1994
2108
  get toolboxIcon() {
1995
2109
  return '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 7.5V11.5C9 12.2956 9.31607 13.0587 9.87868 13.6213C10.4413 14.1839 11.2044 14.5 12 14.5C12.7956 14.5 13.5587 14.1839 14.1213 13.6213C14.6839 13.0587 15 12.2956 15 11.5V7.5"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7.71429 18H16.2857"/></svg>';
1996
2110
  }
1997
2111
  static get sanitize() {
1998
- return { u: { class: z.CSS } };
2112
+ return { u: { class: U.CSS } };
1999
2113
  }
2000
2114
  };
2001
- z.isInline = !0;
2002
- let nt = z;
2115
+ $t.isInline = !0;
2116
+ let we = $t;
2003
2117
  class $ {
2004
2118
  constructor({ api: t }) {
2005
2119
  this.tag = "CODE", this.api = t, this.button = null, this.iconClasses = { base: this.api.styles.inlineToolButton, active: this.api.styles.inlineToolButtonActive };
@@ -2015,7 +2129,8 @@ class $ {
2015
2129
  }
2016
2130
  surround(t) {
2017
2131
  var i;
2018
- if (!t) return;
2132
+ if (!t)
2133
+ return;
2019
2134
  let e = this.api.selection.findParentTag(this.tag, $.CSS);
2020
2135
  e ? this.unwrap(e) : (i = t.commonAncestorContainer.parentElement) != null && i.querySelector(this.tag) || this.wrap(t);
2021
2136
  }
@@ -2027,7 +2142,8 @@ class $ {
2027
2142
  var n;
2028
2143
  this.api.selection.expandToTag(t);
2029
2144
  const e = window.getSelection();
2030
- if (!e) return;
2145
+ if (!e)
2146
+ return;
2031
2147
  const i = e.getRangeAt(0), s = i.extractContents();
2032
2148
  (n = t.parentNode) == null || n.removeChild(t), i.insertNode(s), e.removeAllRanges(), e.addRange(i);
2033
2149
  }
@@ -2042,27 +2158,28 @@ class $ {
2042
2158
  return { code: { class: $.CSS } };
2043
2159
  }
2044
2160
  }
2045
- function T(h, t, e = {}) {
2046
- const i = document.createElement(h);
2161
+ function T(p, t, e = {}) {
2162
+ const i = document.createElement(p);
2047
2163
  Array.isArray(t) ? i.classList.add(...t) : t && i.classList.add(t);
2048
- for (const s in e) Object.prototype.hasOwnProperty.call(e, s) && (i[s] = e[s]);
2164
+ for (const s in e)
2165
+ Object.prototype.hasOwnProperty.call(e, s) && (i[s] = e[s]);
2049
2166
  return i;
2050
2167
  }
2051
- function bt(h) {
2052
- const t = h.getBoundingClientRect();
2168
+ function Mt(p) {
2169
+ const t = p.getBoundingClientRect();
2053
2170
  return { y1: Math.floor(t.top + window.pageYOffset), x1: Math.floor(t.left + window.pageXOffset), x2: Math.floor(t.right + window.pageXOffset), y2: Math.floor(t.bottom + window.pageYOffset) };
2054
2171
  }
2055
- function Q(h, t) {
2056
- const e = bt(h), i = bt(t);
2172
+ function it(p, t) {
2173
+ const e = Mt(p), i = Mt(t);
2057
2174
  return { fromTopBorder: i.y1 - e.y1, fromLeftBorder: i.x1 - e.x1, fromRightBorder: e.x2 - i.x2, fromBottomBorder: e.y2 - i.y2 };
2058
2175
  }
2059
- function yt(h, t) {
2176
+ function _t(p, t) {
2060
2177
  var e;
2061
- return (e = t == null ? void 0 : t.parentNode) == null ? void 0 : e.insertBefore(h, t);
2178
+ return (e = t == null ? void 0 : t.parentNode) == null ? void 0 : e.insertBefore(p, t);
2062
2179
  }
2063
- function St(h, t = !0) {
2180
+ function It(p, t = !0) {
2064
2181
  const e = document.createRange(), i = window.getSelection();
2065
- e.selectNodeContents(h), e.collapse(t), i == null || i.removeAllRanges(), i == null || i.addRange(e);
2182
+ e.selectNodeContents(p), e.collapse(t), i == null || i.removeAllRanges(), i == null || i.addRange(e);
2066
2183
  }
2067
2184
  class y {
2068
2185
  constructor({ items: t }) {
@@ -2082,9 +2199,11 @@ class y {
2082
2199
  }
2083
2200
  popoverClicked(t) {
2084
2201
  const e = t.target.closest(`.${y.CSS.item}`);
2085
- if (!e) return;
2202
+ if (!e)
2203
+ return;
2086
2204
  const i = e.dataset.index;
2087
- if (!i) return;
2205
+ if (!i)
2206
+ return;
2088
2207
  const s = this.items[parseInt(i)];
2089
2208
  !s.confirmationRequired || this.hasConfirmationState(e) ? s.onClick() : this.setConfirmationState(e);
2090
2209
  }
@@ -2154,22 +2273,23 @@ class O {
2154
2273
  (t = this.popover) == null || t.close(), this.wrapper.classList.remove(O.CSS.toolboxShowed);
2155
2274
  }
2156
2275
  }
2157
- const Lt = "tc-wrap", pe = "tc-wrap--readonly", xt = "tc-table", D = "tc-row", Tt = "tc-table--heading", Z = "tc-row--selected", N = "tc-cell", tt = "tc-cell--selected", et = "tc-add-row", Et = "tc-add-row--disabled", it = "tc-add-column", Mt = "tc-add-column--disabled";
2158
- class ue {
2276
+ const Ht = "tc-wrap", be = "tc-wrap--readonly", Bt = "tc-table", D = "tc-row", At = "tc-table--heading", st = "tc-row--selected", z = "tc-cell", nt = "tc-cell--selected", rt = "tc-add-row", Ot = "tc-add-row--disabled", ot = "tc-add-column", Rt = "tc-add-column--disabled";
2277
+ class ye {
2159
2278
  constructor(t, e, i, s) {
2160
2279
  this.minCellWidhth = 50, this.defaultCellWidth = 100, this.handleDocumentMousedown = (n) => {
2161
2280
  this.wrapper.contains(n.target) && n.target.classList.contains("cell-resizable") && (n.preventDefault(), this.isDragging = !0, this.table.classList.add("table-resizing"), document.addEventListener("mousemove", this.handleDocumentMousemove), document.addEventListener("mouseup", this.handleDocumentMouseup), this.draggingColumn = this.hoveredColumn, this.startWidth = this.colWidthArr[this.draggingColumn - 1], this.mouseStartX = n.clientX);
2162
2281
  }, this.handleDocumentMousemove = (n) => {
2163
- if (!this.isDragging) return;
2282
+ if (!this.isDragging)
2283
+ return;
2164
2284
  const r = n.clientX - this.mouseStartX, o = Math.max(this.startWidth + r, this.minCellWidhth);
2165
2285
  this.colWidthArr[this.draggingColumn - 1] = o, this.updateColWidth();
2166
2286
  }, this.handleDocumentMouseup = () => {
2167
2287
  this.updateToolboxesPosition(), this.isDragging = !1, this.table.classList.remove("table-resizing"), document.removeEventListener("mousemove", this.handleDocumentMousemove), document.removeEventListener("mouseup", this.handleDocumentMouseup);
2168
2288
  }, this.readOnly = t, this.api = e, this.data = i, this.config = s, this.wrapper = null, this.table = null, this.hoveredCell = null, this.isDragging = !1, this.draggingColumn = 0, this.startWidth = 0, this.mouseStartX = 0, this.colWidthArr = [], this.focusedCell = { row: 0, col: 0 }, this.toolboxColumn = this.createColumnToolbox(), this.toolboxRow = this.createRowToolbox(), this.createTableWrapper(), this.hoveredRow = 0, this.hoveredColumn = 0, this.selectedRow = 0, this.selectedColumn = 0, this.tunes = { withHeadings: !1 }, this.resize(), this.data.colWidth.length > 0 && (this.colWidthArr = this.data.colWidth), this.updateColWidth(), this.fill(), this.focusedCell = { row: 0, column: 0 }, this.documentClicked = (n) => {
2169
2289
  let r = n.target;
2170
- const o = r.closest(`.${xt}`) !== null, a = r.closest(`.${Lt}`) === null;
2290
+ const o = r.closest(`.${Bt}`) !== null, a = r.closest(`.${Ht}`) === null;
2171
2291
  (o || a) && this.hideToolboxes();
2172
- const d = r.closest(`.${et}`), l = r.closest(`.${it}`);
2292
+ const d = r.closest(`.${rt}`), l = r.closest(`.${ot}`);
2173
2293
  d && d.parentNode === this.wrapper ? (this.addRow(void 0, !0), this.hideToolboxes()) : l && l.parentNode === this.wrapper && (this.addColumn(void 0, !0), this.hideToolboxes());
2174
2294
  }, this.readOnly || this.bindEvents();
2175
2295
  }
@@ -2177,18 +2297,19 @@ class ue {
2177
2297
  return this.wrapper;
2178
2298
  }
2179
2299
  bindEvents() {
2180
- document.addEventListener("click", this.documentClicked), document.addEventListener("mousedown", (t) => this.handleDocumentMousedown(t)), this.table.addEventListener("mousemove", /* @__PURE__ */ function(t, e) {
2300
+ document.addEventListener("click", this.documentClicked), document.addEventListener("mousedown", (t) => this.handleDocumentMousedown(t)), this.table.addEventListener("mousemove", function(t, e) {
2181
2301
  let i = 0;
2182
2302
  return function(...s) {
2183
2303
  const n = (/* @__PURE__ */ new Date()).getTime();
2184
- if (!(n - i < t)) return i = n, e(...s);
2304
+ if (!(n - i < t))
2305
+ return i = n, e(...s);
2185
2306
  };
2186
2307
  }(150, (t) => this.onMouseMoveInTable(t)), { passive: !0 }), this.table.onkeypress = (t) => this.onKeyPressListener(t), this.table.addEventListener("keydown", (t) => this.onKeyDownListener(t)), this.table.addEventListener("focusin", (t) => this.focusInTableListener(t));
2187
2308
  }
2188
2309
  getCellInCol(t) {
2189
2310
  const e = [];
2190
2311
  return this.table.querySelectorAll(`.${D}`).forEach((i) => {
2191
- const s = i.querySelector(`.${N}:nth-child(${t})`);
2312
+ const s = i.querySelector(`.${z}:nth-child(${t})`);
2192
2313
  s && e.push(s);
2193
2314
  }), e;
2194
2315
  }
@@ -2197,7 +2318,7 @@ class ue {
2197
2318
  this.addColumn(this.selectedColumn, !0), this.hideToolboxes(), this.updateColWidth();
2198
2319
  } }, { label: this.api.i18n.t("Add column to right"), icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.13333 14.9167L12.4667 18.25M12.4667 18.25L15.8 14.9167M12.4667 18.25L12.4667 10.0833C12.4667 9.19928 12.1155 8.35143 11.4904 7.72631C10.8652 7.10119 10.0174 6.75 9.13333 6.75"/></svg>', hideIf: () => this.numberOfColumns === this.config.maxcols, onClick: () => {
2199
2320
  this.addColumn(this.selectedColumn + 1, !0), this.hideToolboxes(), this.updateColWidth();
2200
- } }, { label: this.api.i18n.t("Delete column"), icon: ft, hideIf: () => this.numberOfColumns === 1, confirmationRequired: !0, onClick: () => {
2321
+ } }, { label: this.api.i18n.t("Delete column"), icon: wt, hideIf: () => this.numberOfColumns === 1, confirmationRequired: !0, onClick: () => {
2201
2322
  this.deleteColumn(this.selectedColumn), this.hideToolboxes(), this.updateColWidth();
2202
2323
  } }], onOpen: () => {
2203
2324
  this.selectColumn(this.hoveredColumn), this.hideRowToolbox();
@@ -2210,7 +2331,7 @@ class ue {
2210
2331
  this.addRow(this.selectedRow, !0), this.hideToolboxes();
2211
2332
  } }, { label: this.api.i18n.t("Add row below"), icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14.8833 9.16666L18.2167 12.5M18.2167 12.5L14.8833 15.8333M18.2167 12.5H10.05C9.16594 12.5 8.31809 12.1488 7.69297 11.5237C7.06785 10.8986 6.71666 10.0507 6.71666 9.16666"/></svg>', hideIf: () => this.numberOfRows === this.config.maxrows, onClick: () => {
2212
2333
  this.addRow(this.selectedRow + 1, !0), this.hideToolboxes();
2213
- } }, { label: this.api.i18n.t("Delete row"), icon: ft, hideIf: () => this.numberOfRows === 1, confirmationRequired: !0, onClick: () => {
2334
+ } }, { label: this.api.i18n.t("Delete row"), icon: wt, hideIf: () => this.numberOfRows === 1, confirmationRequired: !0, onClick: () => {
2214
2335
  this.deleteRow(this.selectedRow), this.hideToolboxes();
2215
2336
  } }], onOpen: () => {
2216
2337
  this.selectRow(this.hoveredRow), this.hideColumnToolbox();
@@ -2222,7 +2343,7 @@ class ue {
2222
2343
  this.focusedCell.row !== this.numberOfRows ? (this.focusedCell.row += 1, this.focusCell()) : (this.addRow(), this.focusedCell.row += 1, this.focusCell(), this.updateToolboxesPosition(0, 0));
2223
2344
  }
2224
2345
  getCell(t, e) {
2225
- return this.table.querySelectorAll(`.${D}:nth-child(${t}) .${N}`)[e - 1];
2346
+ return this.table.querySelectorAll(`.${D}:nth-child(${t}) .${z}`)[e - 1];
2226
2347
  }
2227
2348
  getRow(t) {
2228
2349
  return this.table.querySelector(`.${D}:nth-child(${t})`);
@@ -2231,7 +2352,7 @@ class ue {
2231
2352
  return t.parentElement;
2232
2353
  }
2233
2354
  getRowFirstCell(t) {
2234
- return t.querySelector(`.${N}:first-child`);
2355
+ return t.querySelector(`.${z}:first-child`);
2235
2356
  }
2236
2357
  setCellContent(t, e, i) {
2237
2358
  this.getCell(t, e).innerHTML = i;
@@ -2239,45 +2360,48 @@ class ue {
2239
2360
  addColumn(t = -1, e = !1) {
2240
2361
  var n;
2241
2362
  let i = this.numberOfColumns;
2242
- if (this.config && this.config.maxcols && this.numberOfColumns >= this.config.maxcols) return;
2363
+ if (this.config && this.config.maxcols && this.numberOfColumns >= this.config.maxcols)
2364
+ return;
2243
2365
  for (let r = 1; r <= this.numberOfRows; r++) {
2244
2366
  let o;
2245
2367
  const a = this.createCell();
2246
- if (t > 0 && t <= i ? (o = this.getCell(r, t), yt(a, o)) : o = this.getRow(r).appendChild(a), r === 1) {
2368
+ if (t > 0 && t <= i ? (o = this.getCell(r, t), _t(a, o)) : o = this.getRow(r).appendChild(a), r === 1) {
2247
2369
  const d = this.getCell(r, t > 0 ? t : i + 1);
2248
- d && e && St(d);
2370
+ d && e && It(d);
2249
2371
  }
2250
2372
  }
2251
- const s = this.wrapper.querySelector(`.${it}`);
2252
- (n = this.config) != null && n.maxcols && this.numberOfColumns > this.config.maxcols - 1 && s && s.classList.add(Mt), this.addHeadingAttrToFirstRow(), this.colWidthArr.splice(t - 1, 0, this.defaultCellWidth);
2373
+ const s = this.wrapper.querySelector(`.${ot}`);
2374
+ (n = this.config) != null && n.maxcols && this.numberOfColumns > this.config.maxcols - 1 && s && s.classList.add(Rt), this.addHeadingAttrToFirstRow(), this.colWidthArr.splice(t - 1, 0, this.defaultCellWidth);
2253
2375
  }
2254
2376
  addRow(t = -1, e = !1) {
2255
2377
  let i, s = T("div", D);
2256
2378
  this.tunes.withHeadings && this.removeHeadingAttrFromFirstRow();
2257
2379
  let n = this.numberOfColumns;
2258
- if (this.config && this.config.maxrows && this.numberOfRows >= this.config.maxrows) return;
2259
- t > 0 && t <= this.numberOfRows ? i = yt(s, this.getRow(t)) : i = this.table.appendChild(s), this.fillRow(i, n), this.tunes.withHeadings && this.addHeadingAttrToFirstRow();
2380
+ if (this.config && this.config.maxrows && this.numberOfRows >= this.config.maxrows)
2381
+ return;
2382
+ t > 0 && t <= this.numberOfRows ? i = _t(s, this.getRow(t)) : i = this.table.appendChild(s), this.fillRow(i, n), this.tunes.withHeadings && this.addHeadingAttrToFirstRow();
2260
2383
  const r = this.getRowFirstCell(i);
2261
- r && e && St(r);
2262
- const o = this.wrapper.querySelector(`.${et}`);
2263
- return this.config && this.config.maxrows && this.numberOfRows >= this.config.maxrows && o && o.classList.add(Et), i;
2384
+ r && e && It(r);
2385
+ const o = this.wrapper.querySelector(`.${rt}`);
2386
+ return this.config && this.config.maxrows && this.numberOfRows >= this.config.maxrows && o && o.classList.add(Ot), i;
2264
2387
  }
2265
2388
  deleteColumn(t) {
2266
2389
  for (let i = 1; i <= this.numberOfRows; i++) {
2267
2390
  const s = this.getCell(i, t);
2268
- if (!s) return;
2391
+ if (!s)
2392
+ return;
2269
2393
  s.remove();
2270
2394
  }
2271
- const e = this.wrapper.querySelector(`.${it}`);
2272
- e && e.classList.remove(Mt), this.colWidthArr.splice(t - 1, 1);
2395
+ const e = this.wrapper.querySelector(`.${ot}`);
2396
+ e && e.classList.remove(Rt), this.colWidthArr.splice(t - 1, 1);
2273
2397
  }
2274
2398
  deleteRow(t) {
2275
2399
  this.getRow(t).remove();
2276
- const e = this.wrapper.querySelector(`.${et}`);
2277
- e && e.classList.remove(Et), this.addHeadingAttrToFirstRow();
2400
+ const e = this.wrapper.querySelector(`.${rt}`);
2401
+ e && e.classList.remove(Ot), this.addHeadingAttrToFirstRow();
2278
2402
  }
2279
2403
  createTableWrapper() {
2280
- this.wrapper = T("div", Lt), this.table = T("div", xt), this.readOnly && this.wrapper.classList.add(pe), this.wrapper.appendChild(this.toolboxRow.element), this.wrapper.appendChild(this.toolboxColumn.element), this.wrapper.appendChild(this.table);
2404
+ this.wrapper = T("div", Ht), this.table = T("div", Bt), this.readOnly && this.wrapper.classList.add(be), this.wrapper.appendChild(this.toolboxRow.element), this.wrapper.appendChild(this.toolboxColumn.element), this.wrapper.appendChild(this.table);
2281
2405
  }
2282
2406
  computeInitialSize() {
2283
2407
  const t = this.data && this.data.content, e = Array.isArray(t), i = !!e && t.length, s = e ? t.length : void 0, n = i ? t[0].length : void 0, r = Number.parseInt(this.config && this.config.rows), o = Number.parseInt(this.config && this.config.cols), a = !isNaN(r) && r > 0 ? r : void 0, d = !isNaN(o) && o > 0 ? o : void 0;
@@ -2285,17 +2409,24 @@ class ue {
2285
2409
  }
2286
2410
  resize() {
2287
2411
  const { rows: t, cols: e } = this.computeInitialSize();
2288
- for (let i = 0; i < t; i++) this.addRow();
2289
- for (let i = 0; i < e; i++) this.addColumn();
2412
+ for (let i = 0; i < t; i++)
2413
+ this.addRow();
2414
+ for (let i = 0; i < e; i++)
2415
+ this.addColumn();
2290
2416
  }
2291
2417
  updateColWidth() {
2292
2418
  let t = "";
2293
- if (this.colWidthArr && this.colWidthArr.length > 0) for (let e = 0; e < this.colWidthArr.length; e++) t += " " + this.colWidthArr[e] + "px";
2419
+ if (this.colWidthArr && this.colWidthArr.length > 0)
2420
+ for (let e = 0; e < this.colWidthArr.length; e++)
2421
+ t += " " + this.colWidthArr[e] + "px";
2294
2422
  t && this.wrapper.style.setProperty("--col-width", t);
2295
2423
  }
2296
2424
  fill() {
2297
2425
  const t = this.data;
2298
- if (t && t.content) for (let e = 0; e < t.content.length; e++) for (let i = 0; i < t.content[e].length; i++) this.setCellContent(e + 1, i + 1, t.content[e][i]);
2426
+ if (t && t.content)
2427
+ for (let e = 0; e < t.content.length; e++)
2428
+ for (let i = 0; i < t.content[e].length; i++)
2429
+ this.setCellContent(e + 1, i + 1, t.content[e][i]);
2299
2430
  }
2300
2431
  fillRow(t, e) {
2301
2432
  for (let i = 1; i <= e; i++) {
@@ -2304,13 +2435,13 @@ class ue {
2304
2435
  }
2305
2436
  }
2306
2437
  createCell() {
2307
- return T("div", N, { contentEditable: !this.readOnly });
2438
+ return T("div", z, { contentEditable: !this.readOnly });
2308
2439
  }
2309
2440
  get numberOfRows() {
2310
2441
  return this.table.childElementCount;
2311
2442
  }
2312
2443
  get numberOfColumns() {
2313
- return this.numberOfRows ? this.table.querySelectorAll(`.${D}:first-child .${N}`).length : 0;
2444
+ return this.numberOfRows ? this.table.querySelectorAll(`.${D}:first-child .${z}`).length : 0;
2314
2445
  }
2315
2446
  get isColumnMenuShowing() {
2316
2447
  return this.selectedColumn !== 0;
@@ -2327,7 +2458,8 @@ class ue {
2327
2458
  }
2328
2459
  onKeyPressListener(t) {
2329
2460
  if (t.key === "Enter") {
2330
- if (t.shiftKey) return !0;
2461
+ if (t.shiftKey)
2462
+ return !0;
2331
2463
  this.moveCursorToNextRow();
2332
2464
  }
2333
2465
  return t.key !== "Enter";
@@ -2337,7 +2469,7 @@ class ue {
2337
2469
  }
2338
2470
  focusInTableListener(t) {
2339
2471
  const e = t.target, i = this.getRowByCell(e);
2340
- i && (this.focusedCell = { row: Array.from(this.table.querySelectorAll(`.${D}`)).indexOf(i) + 1, column: Array.from(i.querySelectorAll(`.${N}`)).indexOf(e) + 1 });
2472
+ i && (this.focusedCell = { row: Array.from(this.table.querySelectorAll(`.${D}`)).indexOf(i) + 1, column: Array.from(i.querySelectorAll(`.${z}`)).indexOf(e) + 1 });
2341
2473
  }
2342
2474
  hideToolboxes() {
2343
2475
  this.hideRowToolbox(), this.hideColumnToolbox(), this.updateToolboxesPosition();
@@ -2357,12 +2489,12 @@ class ue {
2357
2489
  }
2358
2490
  updateToolboxesPosition(t = this.hoveredRow, e = this.hoveredColumn) {
2359
2491
  this.isColumnMenuShowing || e > 0 && e <= this.numberOfColumns && this.toolboxColumn.show(() => ({ left: `calc((100% - var(--cell-size)) / (${this.numberOfColumns} * 2) * (1 + (${e} - 1) * 2))` })), this.isRowMenuShowing || t > 0 && t <= this.numberOfRows && this.toolboxRow.show(() => {
2360
- const i = this.getRow(t), { fromTopBorder: s } = Q(this.table, i), { height: n } = i.getBoundingClientRect();
2492
+ const i = this.getRow(t), { fromTopBorder: s } = it(this.table, i), { height: n } = i.getBoundingClientRect();
2361
2493
  return { top: `${Math.ceil(s + n / 2)}px` };
2362
2494
  });
2363
2495
  }
2364
2496
  setHeadingsSetting(t) {
2365
- this.tunes.withHeadings = t, t ? (this.table.classList.add(Tt), this.addHeadingAttrToFirstRow()) : (this.table.classList.remove(Tt), this.removeHeadingAttrFromFirstRow());
2497
+ this.tunes.withHeadings = t, t ? (this.table.classList.add(At), this.addHeadingAttrToFirstRow()) : (this.table.classList.remove(At), this.removeHeadingAttrFromFirstRow());
2366
2498
  }
2367
2499
  addHeadingAttrToFirstRow() {
2368
2500
  for (let t = 1; t <= this.numberOfColumns; t++) {
@@ -2378,56 +2510,60 @@ class ue {
2378
2510
  }
2379
2511
  selectRow(t) {
2380
2512
  const e = this.getRow(t);
2381
- e && (this.selectedRow = t, e.classList.add(Z));
2513
+ e && (this.selectedRow = t, e.classList.add(st));
2382
2514
  }
2383
2515
  unselectRow() {
2384
- if (this.selectedRow <= 0) return;
2385
- const t = this.table.querySelector(`.${Z}`);
2386
- t && t.classList.remove(Z), this.selectedRow = 0;
2516
+ if (this.selectedRow <= 0)
2517
+ return;
2518
+ const t = this.table.querySelector(`.${st}`);
2519
+ t && t.classList.remove(st), this.selectedRow = 0;
2387
2520
  }
2388
2521
  selectColumn(t) {
2389
2522
  for (let e = 1; e <= this.numberOfRows; e++) {
2390
2523
  const i = this.getCell(e, t);
2391
- i && i.classList.add(tt);
2524
+ i && i.classList.add(nt);
2392
2525
  }
2393
2526
  this.selectedColumn = t;
2394
2527
  }
2395
2528
  unselectColumn() {
2396
- if (this.selectedColumn <= 0) return;
2397
- let t = this.table.querySelectorAll(`.${tt}`);
2529
+ if (this.selectedColumn <= 0)
2530
+ return;
2531
+ let t = this.table.querySelectorAll(`.${nt}`);
2398
2532
  Array.from(t).forEach((e) => {
2399
- e.classList.remove(tt);
2533
+ e.classList.remove(nt);
2400
2534
  }), this.selectedColumn = 0;
2401
2535
  }
2402
2536
  getHoveredCell(t) {
2403
2537
  let e = this.hoveredRow, i = this.hoveredColumn;
2404
- const { width: s, height: n, x: r, y: o } = function(p, u) {
2405
- const g = p.getBoundingClientRect(), { width: m, height: f, x: v, y: L } = g, { clientX: w, clientY: _ } = u;
2538
+ const { width: s, height: n, x: r, y: o } = function(c, u) {
2539
+ const g = c.getBoundingClientRect(), { width: m, height: f, x: v, y: L } = g, { clientX: w, clientY: _ } = u;
2406
2540
  return { width: m, height: f, x: w - v, y: _ - L };
2407
2541
  }(this.table, t);
2408
2542
  if (r >= 0) {
2409
- const p = ({ fromLeftBorder: g }) => r < g, u = ({ fromRightBorder: g }) => r > s - g;
2410
- i = this.binSearch(this.numberOfColumns, (g) => this.getCell(1, g), p, u);
2543
+ const c = ({ fromLeftBorder: g }) => r < g, u = ({ fromRightBorder: g }) => r > s - g;
2544
+ i = this.binSearch(this.numberOfColumns, (g) => this.getCell(1, g), c, u);
2411
2545
  }
2412
2546
  if (o >= 0) {
2413
- const p = ({ fromTopBorder: g }) => o < g, u = ({ fromBottomBorder: g }) => o > n - g;
2414
- e = this.binSearch(this.numberOfRows, (g) => this.getCell(g, 1), p, u);
2547
+ const c = ({ fromTopBorder: g }) => o < g, u = ({ fromBottomBorder: g }) => o > n - g;
2548
+ e = this.binSearch(this.numberOfRows, (g) => this.getCell(g, 1), c, u);
2415
2549
  }
2416
- const a = e || this.hoveredRow, d = i || this.hoveredColumn, { deltaXCell: l, deltaYCell: c } = this.getMousePositionRelateToCell(a, d, r, o);
2417
- return { row: a, column: d, deltaXCell: l, deltaYCell: c };
2550
+ const a = e || this.hoveredRow, d = i || this.hoveredColumn, { deltaXCell: l, deltaYCell: h } = this.getMousePositionRelateToCell(a, d, r, o);
2551
+ return { row: a, column: d, deltaXCell: l, deltaYCell: h };
2418
2552
  }
2419
2553
  getMousePositionRelateToCell(t, e, i, s) {
2420
- const n = this.getCell(t, e), { fromTopBorder: r, fromLeftBorder: o } = Q(this.table, n);
2554
+ const n = this.getCell(t, e), { fromTopBorder: r, fromLeftBorder: o } = it(this.table, n);
2421
2555
  return { deltaXCell: i - o, deltaYCell: s - r };
2422
2556
  }
2423
2557
  binSearch(t, e, i, s) {
2424
2558
  let n, r = 0, o = t + 1, a = 0;
2425
2559
  for (; r < o - 1 && a < 10; ) {
2426
2560
  n = Math.ceil((r + o) / 2);
2427
- const d = e(n), l = Q(this.table, d);
2428
- if (i(l)) o = n;
2561
+ const d = e(n), l = it(this.table, d);
2562
+ if (i(l))
2563
+ o = n;
2429
2564
  else {
2430
- if (!s(l)) break;
2565
+ if (!s(l))
2566
+ break;
2431
2567
  r = n;
2432
2568
  }
2433
2569
  a++;
@@ -2437,7 +2573,7 @@ class ue {
2437
2573
  getData() {
2438
2574
  const t = [];
2439
2575
  for (let e = 1; e <= this.numberOfRows; e++) {
2440
- const i = this.table.querySelector(`.${D}:nth-child(${e})`), s = Array.from(i.querySelectorAll(`.${N}`));
2576
+ const i = this.table.querySelector(`.${D}:nth-child(${e})`), s = Array.from(i.querySelectorAll(`.${z}`));
2441
2577
  s.every((n) => !n.textContent.trim()) || t.push(s.map((n) => n.innerHTML));
2442
2578
  }
2443
2579
  return t;
@@ -2446,7 +2582,7 @@ class ue {
2446
2582
  document.removeEventListener("click", this.documentClicked);
2447
2583
  }
2448
2584
  }
2449
- class ge {
2585
+ class Se {
2450
2586
  static get isReadOnlySupported() {
2451
2587
  return !0;
2452
2588
  }
@@ -2460,7 +2596,7 @@ class ge {
2460
2596
  return { icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-width="2" d="M10 5V18.5"/><path stroke="currentColor" stroke-width="2" d="M5 10H19"/><rect width="14" height="14" x="5" y="5" stroke="currentColor" stroke-width="2" rx="4"/></svg>', title: "Table" };
2461
2597
  }
2462
2598
  render() {
2463
- return this.table = new ue(this.readOnly, this.api, this.data, this.config), this.container = T("div", this.api.styles.block), this.container.appendChild(this.table.getWrapper()), this.table.setHeadingsSetting(this.data.withHeadings), this.container;
2599
+ return this.table = new ye(this.readOnly, this.api, this.data, this.config), this.container = T("div", this.api.styles.block), this.container.appendChild(this.table.getWrapper()), this.table.setHeadingsSetting(this.data.withHeadings), this.container;
2464
2600
  }
2465
2601
  renderSettings() {
2466
2602
  return [{ label: this.api.i18n.t("With headings"), icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-width="2" d="M5 10H19"/><rect width="14" height="14" x="5" y="5" stroke="currentColor" stroke-width="2" rx="4"/></svg>', isActive: this.data.withHeadings, closeOnActivate: !0, toggle: !0, hint: { title: this.api.i18n.t("With headings") }, onActivate: () => {
@@ -2490,16 +2626,17 @@ class ge {
2490
2626
  }
2491
2627
  }
2492
2628
  }
2493
- function P(h, t = null, e = {}) {
2494
- const i = document.createElement(h);
2629
+ function F(p, t = null, e = {}) {
2630
+ const i = document.createElement(p);
2495
2631
  Array.isArray(t) ? i.classList.add(...t) : t !== null && i.classList.add(t);
2496
- for (const s in e) e.hasOwnProperty(s) && (i[s] = e[s]);
2632
+ for (const s in e)
2633
+ e.hasOwnProperty(s) && (i[s] = e[s]);
2497
2634
  return i;
2498
2635
  }
2499
- var V = ((h) => (h.Empty = "empty", h.Uploading = "uploading", h.Filled = "filled", h))(V || {});
2500
- class me {
2636
+ var G = ((p) => (p.Empty = "empty", p.Uploading = "uploading", p.Filled = "filled", p))(G || {});
2637
+ class Le {
2501
2638
  constructor({ api: t, config: e, onSelectFile: i, readOnly: s }) {
2502
- this.api = t, this.config = e, this.onSelectFile = i, this.readOnly = s, this.nodes = { wrapper: P("div", [this.CSS.baseClass, this.CSS.wrapper]), imageContainer: P("div", [this.CSS.imageContainer]), fileButton: this.createFileButton(), imageEl: void 0, imagePreloader: P("div", this.CSS.imagePreloader), caption: P("div", [this.CSS.input, this.CSS.caption], { contentEditable: !this.readOnly }) }, this.nodes.caption.dataset.placeholder = this.config.captionPlaceholder, this.nodes.imageContainer.appendChild(this.nodes.imagePreloader), this.nodes.wrapper.appendChild(this.nodes.imageContainer), this.nodes.wrapper.appendChild(this.nodes.caption), this.nodes.wrapper.appendChild(this.nodes.fileButton);
2639
+ this.api = t, this.config = e, this.onSelectFile = i, this.readOnly = s, this.nodes = { wrapper: F("div", [this.CSS.baseClass, this.CSS.wrapper]), imageContainer: F("div", [this.CSS.imageContainer]), fileButton: this.createFileButton(), imageEl: void 0, imagePreloader: F("div", this.CSS.imagePreloader), caption: F("div", [this.CSS.input, this.CSS.caption], { contentEditable: !this.readOnly }) }, this.nodes.caption.dataset.placeholder = this.config.captionPlaceholder, this.nodes.imageContainer.appendChild(this.nodes.imagePreloader), this.nodes.wrapper.appendChild(this.nodes.imageContainer), this.nodes.wrapper.appendChild(this.nodes.caption), this.nodes.wrapper.appendChild(this.nodes.fileButton);
2503
2640
  }
2504
2641
  applyTune(t, e) {
2505
2642
  this.nodes.wrapper.classList.toggle(`${this.CSS.wrapper}--${t}`, e);
@@ -2516,7 +2653,7 @@ class me {
2516
2653
  fillImage(t) {
2517
2654
  const e = /\.mp4$/.test(t) ? "VIDEO" : "IMG", i = { src: t };
2518
2655
  let s = "load";
2519
- e === "VIDEO" && (i.autoplay = !0, i.loop = !0, i.muted = !0, i.playsinline = !0, s = "loadeddata"), this.nodes.imageEl = P(e, this.CSS.imageEl, i), this.nodes.imageEl.addEventListener(s, () => {
2656
+ e === "VIDEO" && (i.autoplay = !0, i.loop = !0, i.muted = !0, i.playsinline = !0, s = "loadeddata"), this.nodes.imageEl = F(e, this.CSS.imageEl, i), this.nodes.imageEl.addEventListener(s, () => {
2520
2657
  this.toggleStatus("filled"), this.nodes.imagePreloader !== void 0 && (this.nodes.imagePreloader.style.backgroundImage = "");
2521
2658
  }), this.nodes.imageContainer.appendChild(this.nodes.imageEl);
2522
2659
  }
@@ -2524,23 +2661,24 @@ class me {
2524
2661
  this.nodes.caption !== void 0 && (this.nodes.caption.innerHTML = t);
2525
2662
  }
2526
2663
  toggleStatus(t) {
2527
- for (const e in V) if (Object.prototype.hasOwnProperty.call(V, e)) {
2528
- const i = V[e];
2529
- this.nodes.wrapper.classList.toggle(`${this.CSS.wrapper}--${i}`, i === t);
2530
- }
2664
+ for (const e in G)
2665
+ if (Object.prototype.hasOwnProperty.call(G, e)) {
2666
+ const i = G[e];
2667
+ this.nodes.wrapper.classList.toggle(`${this.CSS.wrapper}--${i}`, i === t);
2668
+ }
2531
2669
  }
2532
2670
  get CSS() {
2533
2671
  return { baseClass: this.api.styles.block, loading: this.api.styles.loader, input: this.api.styles.input, button: this.api.styles.button, wrapper: "image-tool", imageContainer: "image-tool__image", imagePreloader: "image-tool__image-preloader", imageEl: "image-tool__image-picture", caption: "image-tool__caption" };
2534
2672
  }
2535
2673
  createFileButton() {
2536
2674
  var e;
2537
- const t = P("div", [this.CSS.button]);
2538
- return t.innerHTML = (e = this.config.buttonContent) != null ? e : `${At} ${this.api.i18n.t("Select an Image")}`, t.addEventListener("click", () => {
2675
+ const t = F("div", [this.CSS.button]);
2676
+ return t.innerHTML = (e = this.config.buttonContent) != null ? e : `${Ft} ${this.api.i18n.t("Select an Image")}`, t.addEventListener("click", () => {
2539
2677
  this.onSelectFile();
2540
2678
  }), t;
2541
2679
  }
2542
2680
  }
2543
- class fe {
2681
+ class xe {
2544
2682
  constructor({ config: t, onUpload: e, onError: i }) {
2545
2683
  this.config = t, this.onUpload = e, this.onError = i;
2546
2684
  }
@@ -2562,7 +2700,8 @@ class fe {
2562
2700
  }, { once: !0 }), w.click();
2563
2701
  });
2564
2702
  }({ accept: (g = this.config.types) != null ? g : "image/*" });
2565
- if (!(n && n.length > 0)) return void e();
2703
+ if (!(n && n.length > 0))
2704
+ return void e();
2566
2705
  (function(m) {
2567
2706
  const f = new FileReader();
2568
2707
  f.readAsDataURL(m), f.onload = (v) => {
@@ -2571,18 +2710,21 @@ class fe {
2571
2710
  })(n[0]);
2572
2711
  const r = n[0], o = this.config.types.split(",");
2573
2712
  let a = r.name.lastIndexOf("."), d = r.name.slice(a);
2574
- if (!o.includes(d.toLowerCase())) return void this.onError("文件类型不支持");
2713
+ if (!o.includes(d.toLowerCase()))
2714
+ return void this.onError("文件类型不支持");
2575
2715
  let l = {};
2576
2716
  if (this.config.userStore) {
2577
2717
  const m = this.config.userStore.token, f = this.config.userStore.tokenName, v = this.config.userStore.tokenPrefix;
2578
2718
  m && f && (l[f] = v + " " + m);
2579
2719
  }
2580
2720
  l["Content-Type"] = "application/json";
2581
- const c = U.create({ timeout: 18e5, headers: l }), p = await c.post(this.config.endpoints.byFile, { fileName: r.name, contentType: r.type });
2582
- if (p.status !== 200) return void this.onError(p.statusText);
2583
- const u = p.data;
2584
- if (!u.success) return void this.onError(u.message);
2585
- i = u.data.cdn, s = u.data.objectKey, U.create({ timeout: 18e5, headers: { "Content-Type": r.type } }).put(u.data.presignedUrl, r).then((m) => {
2721
+ const h = V.create({ timeout: 18e5, headers: l }), c = await h.post(this.config.endpoints.byFile, { fileName: r.name, contentType: r.type });
2722
+ if (c.status !== 200)
2723
+ return void this.onError(c.statusText);
2724
+ const u = c.data;
2725
+ if (!u.success)
2726
+ return void this.onError(u.message);
2727
+ i = u.data.cdn, s = u.data.objectKey, V.create({ timeout: 18e5, headers: { "Content-Type": r.type } }).put(u.data.presignedUrl, r).then((m) => {
2586
2728
  m.status === 200 && (m = { success: 1, file: { url: i + s } }), this.onUpload(m);
2587
2729
  }).catch((m) => {
2588
2730
  this.onError(m);
@@ -2594,8 +2736,9 @@ class fe {
2594
2736
  const s = this.config.userStore.token, n = this.config.userStore.tokenName, r = this.config.userStore.tokenPrefix;
2595
2737
  s && n && (i[n] = r + " " + s);
2596
2738
  }
2597
- e = U.create({ timeout: 18e5, headers: i }).post(this.config.endpoints.byUrl, { url: t, accept: ".jpg,.jpeg,.gif,.png,.webp" }), e.then((s) => {
2598
- if (s.status !== 200 || s.data.success === !1) return void this.onError(s.data.message);
2739
+ e = V.create({ timeout: 18e5, headers: i }).post(this.config.endpoints.byUrl, { url: t, accept: ".jpg,.jpeg,.gif,.png,.webp" }), e.then((s) => {
2740
+ if (s.status !== 200 || s.data.success === !1)
2741
+ return void this.onError(s.data.message);
2599
2742
  let n = { success: 1, file: { url: s.data.data.cdn + s.data.data.objectKey } };
2600
2743
  this.onUpload(n);
2601
2744
  }).catch((s) => {
@@ -2605,30 +2748,33 @@ class fe {
2605
2748
  async uploadByFile(t, { onPreview: e }) {
2606
2749
  const i = this.config.types.split(",");
2607
2750
  let s = t.name.lastIndexOf("."), n = t.name.slice(s);
2608
- if (!i.includes(n.toLowerCase())) return void this.onError("文件类型不支持");
2751
+ if (!i.includes(n.toLowerCase()))
2752
+ return void this.onError("文件类型不支持");
2609
2753
  let r = {};
2610
2754
  if (this.config.userStore) {
2611
- const p = this.config.userStore.token, u = this.config.userStore.tokenName, g = this.config.userStore.tokenPrefix;
2612
- p && u && (r[u] = g + " " + p);
2755
+ const c = this.config.userStore.token, u = this.config.userStore.tokenName, g = this.config.userStore.tokenPrefix;
2756
+ c && u && (r[u] = g + " " + c);
2613
2757
  }
2614
- const o = U.create({ timeout: 18e5, headers: r });
2758
+ const o = V.create({ timeout: 18e5, headers: r });
2615
2759
  r["Content-Type"] = "application/json";
2616
2760
  const a = await o.post(this.config.endpoints.byFile, { fileName: t.name, contentType: t.type });
2617
- if (a.status !== 200) return void this.onError(a.statusText);
2761
+ if (a.status !== 200)
2762
+ return void this.onError(a.statusText);
2618
2763
  const d = a.data;
2619
- if (!d.success) return void this.onError(d.message);
2620
- let l = d.data.cdn, c = d.data.objectKey;
2621
- r["Content-Type"] = t.type, o.put(d.data.presignedUrl, t).then((p) => {
2622
- p.status === 200 && (p = { success: 1, file: { url: l + c } }), this.onUpload(p);
2623
- }).catch((p) => {
2624
- this.onError(p);
2764
+ if (!d.success)
2765
+ return void this.onError(d.message);
2766
+ let l = d.data.cdn, h = d.data.objectKey;
2767
+ r["Content-Type"] = t.type, o.put(d.data.presignedUrl, t).then((c) => {
2768
+ c.status === 200 && (c = { success: 1, file: { url: l + h } }), this.onUpload(c);
2769
+ }).catch((c) => {
2770
+ this.onError(c);
2625
2771
  });
2626
2772
  }
2627
2773
  }
2628
- class Y {
2774
+ class J {
2629
2775
  constructor({ data: t, config: e, api: i, readOnly: s, block: n }) {
2630
2776
  var r;
2631
- this.isCaptionEnabled = null, this.api = i, this.block = n, this.userStore = e == null ? void 0 : e.userStore, this.config = { endpoints: e.endpoints, additionalRequestData: e.additionalRequestData, additionalRequestHeaders: e.additionalRequestHeaders, field: e.field, types: e.types, captionPlaceholder: this.api.i18n.t((r = e.captionPlaceholder) != null ? r : "Caption"), buttonContent: e.buttonContent, uploader: e.uploader, actions: e.actions, features: e.features || {}, userStore: e.userStore }, this.uploader = new fe({ config: this.config, onUpload: (o) => this.onUpload(o), onError: (o) => this.uploadingFailed(o) }), this.ui = new me({ api: i, config: this.config, onSelectFile: () => {
2777
+ this.isCaptionEnabled = null, this.api = i, this.block = n, this.userStore = e == null ? void 0 : e.userStore, this.config = { endpoints: e.endpoints, additionalRequestData: e.additionalRequestData, additionalRequestHeaders: e.additionalRequestHeaders, field: e.field, types: e.types, captionPlaceholder: this.api.i18n.t((r = e.captionPlaceholder) != null ? r : "Caption"), buttonContent: e.buttonContent, uploader: e.uploader, actions: e.actions, features: e.features || {}, userStore: e.userStore }, this.uploader = new xe({ config: this.config, onUpload: (o) => this.onUpload(o), onError: (o) => this.uploadingFailed(o) }), this.ui = new Le({ api: i, config: this.config, onSelectFile: () => {
2632
2778
  this.uploader.uploadSelectedFile({ onPreview: (o) => {
2633
2779
  this.ui.showPreloader(o);
2634
2780
  }, noSelectedFile: () => {
@@ -2646,7 +2792,7 @@ class Y {
2646
2792
  return !0;
2647
2793
  }
2648
2794
  static get toolbox() {
2649
- return { icon: At, title: "Image" };
2795
+ return { icon: Ft, title: "Image" };
2650
2796
  }
2651
2797
  static get tunes() {
2652
2798
  return [{ name: "withBorder", icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.9919 9.5H19.0015"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14.5 5H14.5096"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M14.625 5H15C17.2091 5 19 6.79086 19 9V9.375"/><path stroke="currentColor" stroke-width="2" d="M9.375 5L9 5C6.79086 5 5 6.79086 5 9V9.375"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.3725 5H9.38207"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 9.5H5.00957"/><path stroke="currentColor" stroke-width="2" d="M9.375 19H9C6.79086 19 5 17.2091 5 15V14.625"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.3725 19H9.38207"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 14.55H5.00957"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M16 13V16M16 19V16M19 16H16M16 16H13"/></svg>', title: "With border", toggle: !0 }, { name: "stretched", icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 9L20 12L17 15"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 12H20"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 9L4 12L7 15"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 12H10"/></svg>', title: "Stretch image", toggle: !0 }, { name: "withBackground", icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 19V19C9.13623 19 8.20435 19 7.46927 18.6955C6.48915 18.2895 5.71046 17.5108 5.30448 16.5307C5 15.7956 5 14.8638 5 13V12C5 9.19108 5 7.78661 5.67412 6.77772C5.96596 6.34096 6.34096 5.96596 6.77772 5.67412C7.78661 5 9.19108 5 12 5H13.5C14.8956 5 15.5933 5 16.1611 5.17224C17.4395 5.56004 18.44 6.56046 18.8278 7.83886C19 8.40666 19 9.10444 19 10.5V10.5"/><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M16 13V16M16 19V16M19 16H16M16 16H13"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6.5 17.5L17.5 6.5"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.9919 10.5H19.0015"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.9919 19H11.0015"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13L13 5"/></svg>', title: "With background", toggle: !0 }];
@@ -2664,8 +2810,8 @@ class Y {
2664
2810
  }
2665
2811
  renderSettings() {
2666
2812
  var n;
2667
- const t = Y.tunes.concat(this.config.actions || []), e = { border: "withBorder", background: "withBackground", stretch: "stretched", caption: "caption" };
2668
- ((n = this.config.features) == null ? void 0 : n.caption) === "optional" && t.push({ name: "caption", icon: Ot, title: "With caption", toggle: !0 });
2813
+ const t = J.tunes.concat(this.config.actions || []), e = { border: "withBorder", background: "withBackground", stretch: "stretched", caption: "caption" };
2814
+ ((n = this.config.features) == null ? void 0 : n.caption) === "optional" && t.push({ name: "caption", icon: Pt, title: "With caption", toggle: !0 });
2669
2815
  const i = t.filter((r) => {
2670
2816
  var a, d;
2671
2817
  const o = Object.keys(e).find((l) => e[l] === r.name);
@@ -2676,7 +2822,8 @@ class Y {
2676
2822
  return r.name === "caption" && (o = (a = this.isCaptionEnabled) != null ? a : o), o;
2677
2823
  };
2678
2824
  return i.map((r) => ({ icon: r.icon, label: this.api.i18n.t(r.title), name: r.name, toggle: r.toggle, isActive: s(r), onActivate: () => {
2679
- if (typeof r.action == "function") return void r.action(r.name);
2825
+ if (typeof r.action == "function")
2826
+ return void r.action(r.name);
2680
2827
  let o = !s(r);
2681
2828
  r.name === "caption" && (this.isCaptionEnabled = !this.isCaptionEnabled, o = this.isCaptionEnabled), this.tuneToggled(r.name, o);
2682
2829
  } }));
@@ -2708,7 +2855,7 @@ class Y {
2708
2855
  }
2709
2856
  set data(t) {
2710
2857
  var e;
2711
- this.image = t.file, this._data.caption = t.caption || "", this.ui.fillCaption(this._data.caption), Y.tunes.forEach(({ name: i }) => {
2858
+ this.image = t.file, this._data.caption = t.caption || "", this.ui.fillCaption(this._data.caption), J.tunes.forEach(({ name: i }) => {
2712
2859
  const s = t[i] !== void 0 && (t[i] === !0 || t[i] === "true");
2713
2860
  this.setTune(i, s);
2714
2861
  }), (t.caption || ((e = this.config.features) == null ? void 0 : e.caption) === !0) && this.setTune("caption", !0);
@@ -2744,10 +2891,10 @@ class Y {
2744
2891
  this.ui.showPreloader(t), this.uploader.uploadByUrl(t);
2745
2892
  }
2746
2893
  }
2747
- class Ce {
2894
+ class Te {
2748
2895
  constructor({ api: t, data: e, config: i, block: s }) {
2749
- var n, r, o, a, d, l, c, p, u, g, m, f, v, L, w, _, B;
2750
- this.settings = [], this.api = t, this.block = s, this.data = { floatLeft: (n = e == null ? void 0 : e.floatLeft) != null ? n : !1, floatRight: (r = e == null ? void 0 : e.floatRight) != null ? r : !1, center: (o = e == null ? void 0 : e.center) != null ? o : !1, sizeSmall: (a = e == null ? void 0 : e.sizeSmall) != null ? a : !1, sizeMiddle: (d = e == null ? void 0 : e.sizeMiddle) != null ? d : !1, sizeLarge: (l = e == null ? void 0 : e.sizeLarge) != null ? l : !1, resize: (p = (c = e == null ? void 0 : e.resize) != null ? c : i == null ? void 0 : i.resize) != null ? p : !1, resizeSize: (u = e == null ? void 0 : e.resizeSize) != null ? u : 0, crop: (m = (g = e == null ? void 0 : e.crop) != null ? g : i == null ? void 0 : i.crop) != null ? m : !1, cropperFrameHeight: (f = e == null ? void 0 : e.cropperFrameHeight) != null ? f : 0, cropperFrameWidth: (v = e == null ? void 0 : e.cropperFrameWidth) != null ? v : 0, cropperFrameLeft: (L = e == null ? void 0 : e.cropperFrameLeft) != null ? L : 0, cropperFrameTop: (w = e == null ? void 0 : e.cropperFrameTop) != null ? w : 0, cropperImageHeight: (_ = e == null ? void 0 : e.cropperImageHeight) != null ? _ : 0, cropperImageWidth: (B = e == null ? void 0 : e.cropperImageWidth) != null ? B : 0, cropperInterface: void 0 }, this.wrapper = void 0, this.buttons = [], this.styles = { settingsButton: "cdx-settings-button", settingsButtonActive: "cdx-settings-button--active", settingsButtonModifier: "", settingsButtonModifierActive: "" };
2896
+ var n, r, o, a, d, l, h, c, u, g, m, f, v, L, w, _, B;
2897
+ this.settings = [], this.api = t, this.block = s, this.data = { floatLeft: (n = e == null ? void 0 : e.floatLeft) != null ? n : !1, floatRight: (r = e == null ? void 0 : e.floatRight) != null ? r : !1, center: (o = e == null ? void 0 : e.center) != null ? o : !1, sizeSmall: (a = e == null ? void 0 : e.sizeSmall) != null ? a : !1, sizeMiddle: (d = e == null ? void 0 : e.sizeMiddle) != null ? d : !1, sizeLarge: (l = e == null ? void 0 : e.sizeLarge) != null ? l : !1, resize: (c = (h = e == null ? void 0 : e.resize) != null ? h : i == null ? void 0 : i.resize) != null ? c : !1, resizeSize: (u = e == null ? void 0 : e.resizeSize) != null ? u : 0, crop: (m = (g = e == null ? void 0 : e.crop) != null ? g : i == null ? void 0 : i.crop) != null ? m : !1, cropperFrameHeight: (f = e == null ? void 0 : e.cropperFrameHeight) != null ? f : 0, cropperFrameWidth: (v = e == null ? void 0 : e.cropperFrameWidth) != null ? v : 0, cropperFrameLeft: (L = e == null ? void 0 : e.cropperFrameLeft) != null ? L : 0, cropperFrameTop: (w = e == null ? void 0 : e.cropperFrameTop) != null ? w : 0, cropperImageHeight: (_ = e == null ? void 0 : e.cropperImageHeight) != null ? _ : 0, cropperImageWidth: (B = e == null ? void 0 : e.cropperImageWidth) != null ? B : 0, cropperInterface: void 0 }, this.wrapper = void 0, this.buttons = [], this.styles = { settingsButton: "cdx-settings-button", settingsButtonActive: "cdx-settings-button--active", settingsButtonModifier: "", settingsButtonModifierActive: "" };
2751
2898
  }
2752
2899
  static get isTune() {
2753
2900
  return !0;
@@ -2807,14 +2954,16 @@ class Ce {
2807
2954
  this.data.floatLeft ? t.classList.add(this.CSS.isFloatLeft) : t.classList.remove(this.CSS.isFloatLeft), this.data.floatRight ? t.classList.add(this.CSS.isFloatRight) : t.classList.remove(this.CSS.isFloatRight), this.data.center ? t.classList.add(this.CSS.isCenter) : t.classList.remove(this.CSS.isCenter), this.data.sizeSmall ? t.classList.add(this.CSS.isSizeSmall) : t.classList.remove(this.CSS.isSizeSmall), this.data.sizeMiddle ? t.classList.add(this.CSS.isSizeMiddle) : t.classList.remove(this.CSS.isSizeMiddle), this.data.sizeLarge ? t.classList.add(this.CSS.isSizeLarge) : t.classList.remove(this.CSS.isSizeLarge), this.data.resize ? (t.classList.add(this.CSS.isResize), this.data.resizeSize > 0 && (t.getElementsByClassName("cdx-block")[0].style.width = this.data.resizeSize + "px"), this.resize(t)) : (t.classList.remove(this.CSS.isResize), this.unresize(t)), this.data.crop ? (t.classList.add(this.CSS.isCrop), this.crop(t), this.data.cropperFrameHeight > 0 && this.data.cropperFrameWidth > 0 && this.applyCrop(t)) : (t.classList.remove(this.CSS.isCrop), this.uncrop(t));
2808
2955
  }
2809
2956
  crop(t) {
2810
- if (this.api.readOnly.isEnabled) return;
2957
+ if (this.api.readOnly.isEnabled)
2958
+ return;
2811
2959
  const e = t.getElementsByClassName("image-tool__image")[0], i = document.createElement("div");
2812
2960
  i.classList.add("crop-btn", "btn-crop-action"), i.innerHTML = this.api.i18n.t("Crop"), i.addEventListener("click", () => {
2813
2961
  e.removeChild(i), this.appendCrop(t);
2814
2962
  }), e.appendChild(i);
2815
2963
  }
2816
2964
  appendCrop(t) {
2817
- if (this.api.readOnly.isEnabled) return;
2965
+ if (this.api.readOnly.isEnabled)
2966
+ return;
2818
2967
  this.uncrop(t);
2819
2968
  const e = t.getElementsByClassName("cdx-block")[0], i = e.getElementsByTagName("img")[0];
2820
2969
  e.classList.add("isCropping"), this.data.cropperInterface = new Cropper(i);
@@ -2836,7 +2985,8 @@ class Ce {
2836
2985
  const a = t.getElementsByClassName("btn-crop-action")[0];
2837
2986
  a && r.removeChild(a);
2838
2987
  }
2839
- if (this.data.cropperInterface && (this.data.cropperInterface.destroy(), this.data.cropperInterface = void 0), this.api.readOnly.isEnabled) return;
2988
+ if (this.data.cropperInterface && (this.data.cropperInterface.destroy(), this.data.cropperInterface = void 0), this.api.readOnly.isEnabled)
2989
+ return;
2840
2990
  const i = document.createElement("div");
2841
2991
  i.classList.add("crop-btn", "btn-crop-action"), i.innerHTML = this.api.i18n.t("Crop");
2842
2992
  const s = t.getElementsByClassName("image-tool__image")[0];
@@ -2845,7 +2995,8 @@ class Ce {
2845
2995
  }), s.appendChild(i)), t.classList.remove("isCropping"), this.block.dispatchChange();
2846
2996
  }
2847
2997
  uncrop(t) {
2848
- if (this.api.readOnly.isEnabled) return;
2998
+ if (this.api.readOnly.isEnabled)
2999
+ return;
2849
3000
  const e = t.getElementsByClassName("image-tool__image")[0], i = t.getElementsByClassName("btn-crop-action")[0];
2850
3001
  i && e && e.removeChild(i);
2851
3002
  const s = t.getElementsByClassName("btn-crop-action")[0];
@@ -2863,7 +3014,8 @@ class Ce {
2863
3014
  t.classList.remove("isCropping"), this.data.cropperInterface && (this.data.cropperInterface.destroy(), this.data.cropperInterface = void 0), this.data.cropperFrameHeight = 0, this.data.cropperFrameWidth = 0, this.data.cropperFrameLeft = 0, this.data.cropperFrameTop = 0, this.data.cropperImageHeight = 0, this.data.cropperImageWidth = 0;
2864
3015
  }
2865
3016
  resize(t) {
2866
- if (this.api.readOnly.isEnabled) return;
3017
+ if (this.api.readOnly.isEnabled)
3018
+ return;
2867
3019
  const e = document.createElement("div");
2868
3020
  e.classList.add("resizable");
2869
3021
  const i = document.createElement("div");
@@ -2890,8 +3042,8 @@ class Ce {
2890
3042
  let n = 0, r = 0;
2891
3043
  const o = (d) => {
2892
3044
  const l = d.clientX - n;
2893
- let c = r;
2894
- e === "right" && (c += l), e === "left" && (c -= l), c > 50 && c < s && (t.style.width = c + "px");
3045
+ let h = r;
3046
+ e === "right" && (h += l), e === "left" && (h -= l), h > 50 && h < s && (t.style.width = h + "px");
2895
3047
  }, a = () => {
2896
3048
  const d = parseInt(window.getComputedStyle(t).width, 10);
2897
3049
  d > 0 && (this.data.resizeSize = d), document.removeEventListener("mousemove", o), document.removeEventListener("mouseup", a), this.block.dispatchChange();
@@ -2948,47 +3100,50 @@ class Ce {
2948
3100
  this.setTune(t);
2949
3101
  }
2950
3102
  }
2951
- const ve = { class: "ebl-editor", id: "holder" }, ke = Nt({ name: "EblEditor", inheritAttrs: !1, __name: "Editor", props: { readOnly: { type: Boolean, default: !1 }, placeholder: { default: "Enter something" }, data: { default: () => ({ blocks: [] }) }, locale: { default: {} }, userStore: {} }, emits: ["onReady", "onChange"], setup(h, { expose: t, emit: e }) {
2952
- const i = zt("EblEditorSettings");
3103
+ const Ee = { class: "ebl-editor", id: "holder" }, Me = qt({ name: "EblEditor", inheritAttrs: !1, __name: "Editor", props: { readOnly: { type: Boolean, default: !1 }, placeholder: { default: "Enter something" }, data: { default: () => ({ blocks: [] }) }, locale: { default: {} }, userStore: {} }, emits: ["onReady", "onChange"], setup(p, { expose: t, emit: e }) {
3104
+ const i = Vt("EblEditorSettings");
2953
3105
  let s = e;
2954
- const n = h;
2955
- let r = null;
2956
- const o = ["indent", "blockAlignment"];
2957
- return Ft(() => {
2958
- const a = Pt(n.data);
2959
- r = new Ut({ minHeight: 100, holder: "holder", autofocus: !0, defaultBlock: "paragraph", placeholder: n.placeholder, tunes: o, tools: { inlineCode: $, underline: nt, Color: { class: ce }, marker: { class: W }, indent: { class: st }, alert: { class: H, inlineToolbar: !0 }, List: { class: K, inlineToolbar: !0, config: { defaultStyle: "unordered" } }, h1: { class: Zt, inlineToolbar: !0 }, h2: { class: te, inlineToolbar: !0 }, h3: { class: ee, inlineToolbar: !0 }, h4: { class: ie, inlineToolbar: !0 }, h5: { class: se, inlineToolbar: !0 }, h6: { class: ne, inlineToolbar: !0 }, paragraph: { class: at, inlineToolbar: !0 }, blockAlignment: { class: ot, inlineToolbar: !0 }, code: { class: q, config: { lang: "javascript", theme: "github-dark-dimmed" } }, quote: { class: re, inlineToolbar: !0 }, delimiter: oe, table: { class: ge, inlineToolbar: !0, config: { rows: 2, cols: 3 } }, image: { class: Y, inlineToolbar: !0, tunes: o.concat(["imageResize"]), config: { types: ".png,.jpeg,.jpg,.gif,.webp", userStore: n.userStore, endpoints: { byFile: i == null ? void 0 : i.fileUploadEndpoint, byUrl: i == null ? void 0 : i.urlUploadEndpoint }, features: { caption: !1, stretch: !1, border: !1, background: !1 } } }, imageResize: { class: Ce, config: { resize: !0, crop: !1 } } }, data: a, readOnly: n.readOnly, i18n: n.locale, onChange: (d, l) => {
2960
- s("onChange", d, l);
3106
+ const n = p;
3107
+ let r = Q(n.data), o = !1, a = null;
3108
+ const d = ["indent", "blockAlignment"];
3109
+ return Kt(() => {
3110
+ a = new Qt({ minHeight: 100, holder: "holder", autofocus: !0, defaultBlock: "paragraph", placeholder: n.placeholder, tunes: d, tools: { inlineCode: $, underline: we, Color: { class: ke }, marker: { class: P }, indent: { class: Ce }, alert: { class: H, inlineToolbar: !0 }, List: { class: X, inlineToolbar: !0, config: { defaultStyle: "checklist", maxLevel: 4 } }, h1: { class: ae, inlineToolbar: !0 }, h2: { class: le, inlineToolbar: !0 }, h3: { class: de, inlineToolbar: !0 }, h4: { class: he, inlineToolbar: !0 }, h5: { class: ce, inlineToolbar: !0 }, h6: { class: pe, inlineToolbar: !0 }, paragraph: { class: dt, inlineToolbar: !0 }, blockAlignment: { class: lt, inlineToolbar: !0 }, code: { class: q, config: { lang: "javascript", theme: "github-dark-dimmed" } }, quote: { class: ue, inlineToolbar: !0 }, delimiter: ge, table: { class: Se, inlineToolbar: !0, config: { rows: 2, cols: 3 } }, image: { class: J, inlineToolbar: !0, tunes: d.concat(["imageResize"]), config: { types: ".png,.jpeg,.jpg,.gif,.webp", userStore: n.userStore, endpoints: { byFile: i == null ? void 0 : i.fileUploadEndpoint }, features: { caption: !1, stretch: !1, border: !1, background: !1 } } }, imageResize: { class: Te, config: { resize: !0, crop: !1 } } }, data: r, readOnly: n.readOnly, i18n: n.locale, onChange: (l, h) => {
3111
+ s("onChange", l, h);
2961
3112
  }, onReady: () => {
2962
- new Qt("holder", n.readOnly, r, "1px solid #999"), new de({ editor: r, config: { debounceTimer: 200, maxLength: 100 }, onUpdate: () => {
2963
- } }).initialize(a), s("onReady");
3113
+ o = !0, new oe("holder", n.readOnly, a, "1px solid #999"), new fe({ editor: a, config: { debounceTimer: 200, maxLength: 100 }, onUpdate: () => {
3114
+ } }).initialize(r), s("onReady"), n.data && n.data.blocks && n.data.blocks.length > 0 && (r = Q(n.data), a.render(r));
2964
3115
  } });
2965
- }), Wt(() => {
2966
- r !== null && (r.destroy(), r = null);
2967
- }), t({ validate: function() {
2968
- return new Promise((a, d) => {
2969
- if (r === null) return a(!1);
2970
- r.save().then((l) => l.blocks.length > 0 ? a(!0) : a(!1));
3116
+ }), Yt(() => {
3117
+ a !== null && (a.destroy(), a = null);
3118
+ }), Gt(() => n.data, (l, h) => {
3119
+ a != null && o && (r = Q(l), a.render(r));
3120
+ }, { deep: !0 }), t({ validate: function() {
3121
+ return new Promise((l, h) => {
3122
+ if (a === null)
3123
+ return l(!1);
3124
+ a.save().then((c) => c.blocks.length > 0 ? l(!0) : l(!1));
2971
3125
  });
2972
3126
  }, getData: function() {
2973
- return new Promise((a, d) => {
2974
- if (r === null) return a(null);
2975
- r.save().then((l) => a(l));
3127
+ return new Promise((l, h) => {
3128
+ if (a === null)
3129
+ return l(null);
3130
+ a.save().then((c) => l(c));
2976
3131
  });
2977
- } }), (a, d) => (qt(), $t("div", ve));
2978
- } }), _t = [ke];
2979
- let Rt = [];
2980
- for (let h in _t) {
2981
- const t = Xt(_t[h]);
2982
- Rt.push(t);
3132
+ } }), (l, h) => (Xt(), Jt("div", Ee));
3133
+ } }), Dt = [Me];
3134
+ let jt = [];
3135
+ for (let p in Dt) {
3136
+ const t = re(Dt[p]);
3137
+ jt.push(t);
2983
3138
  }
2984
- const Ee = { messages: { ui: { blockTunes: { toggler: { "Click to tune": "可拖拽和点击" } }, toolbar: { toolbox: { Add: "添加", Filter: "过滤", "Nothing found": "无内容" }, popover: { Filter: "过滤", "Nothing found": "无内容" } }, popover: { Filter: "筛选", "Nothing found": "未找到任何内容", "Convert to": "转化为" } }, toolNames: { Text: "段落", H1: "一级标题", H2: "二级标题", H3: "三级标题", H4: "四级标题", H5: "五级标题", H6: "六级标题", "Ordered List": "有序列表", "Unordered List": "无序列表", Checklist: "任务列表", Quote: "引用", Code: "代码块", Delimiter: "分割线", Link: "链接", Bold: "加粗", Italic: "倾斜", Alert: "高亮块", indent: "缩进", Marker: "突出显示", Color: "文本颜色", Underline: "下划线", InlineCode: "行内代码", Table: "表格", Image: "图片" }, tools: { image: { "Couldn’t upload image. Please try another.": "上传图片失败,请稍后重试。" }, table: { "Add row above": "在下面插入行", "Add row below": "在下面插入行", "Delete row": "删除行", "Add column to left": "在左边插入列", "Add column to right": "在右边插入列", "Delete column": "删除列", "With headings": "使用标题行", "Without headings": "不使用标题行" }, marker: { Marker: "突出显示" }, link: { "Add a link": "添加链接", Save: "保存", "Pasted link is not valid.": "链接地址无效" }, List: { Unordered: "无序", Ordered: "有序", Checklist: "任务列表", "Counter type": "计数器类型", Numeric: "阿拉伯数字", "Lower Roman": "小写罗马数字", "Upper Roman": "大写罗马数字", "Lower Alpha": "小写字母", "Upper Alpha": "大写字母", "Start with": "从" }, paragraph: { "Enter something": "请输入内容" }, stub: { "The block can not be displayed correctly.": "该模块不能放置在这里" }, code: { "Enter your code": "输入代码", Copied: "已复制" }, convertTo: { "Convert to": "转化为" }, alert: { "alert-primary": "主要样式", "alert-secondary": "次要样式", "alert-info": "信息", "alert-success": "成功", "alert-warning": "警告", "alert-danger": "危险", "alert-light": "浅色", "alert-dark": "深色", "align-left": "左对齐", "align-center": "居中", "align-right": "右对齐" } }, blockTunes: { delete: { Delete: "删除", "Click to delete": "点击删除" }, moveUp: { "Move up": "向上移" }, moveDown: { "Move down": "向下移" }, filter: { Filter: "过滤" }, blockAlignment: { "left align": "左对齐", "center align": "居中对齐", "right align": "右对齐", "justify align": "两端对齐" }, indent: { "Indent right": "向右缩进", "Indent left": "向左缩进" } } } }, Dt = /* @__PURE__ */ ((h = []) => ({ version: "2.31.10", install: (t, e) => {
2985
- t[dt] || (t[dt] = !0, h.forEach((i) => t.use(i)), t.provide("EblEditorSettings", e));
2986
- } }))(Rt), Me = Dt.install, _e = Dt.version;
3139
+ const De = { messages: { ui: { blockTunes: { toggler: { "Click to tune": "可拖拽和点击" } }, toolbar: { toolbox: { Add: "添加", Filter: "过滤", "Nothing found": "无内容" }, popover: { Filter: "过滤", "Nothing found": "无内容" } }, popover: { Filter: "筛选", "Nothing found": "未找到任何内容", "Convert to": "转化为" } }, toolNames: { Text: "段落", H1: "一级标题", H2: "二级标题", H3: "三级标题", H4: "四级标题", H5: "五级标题", H6: "六级标题", "Ordered List": "有序列表", "Unordered List": "无序列表", Checklist: "任务列表", Quote: "引用", Code: "代码块", Delimiter: "分割线", Link: "链接", Bold: "加粗", Italic: "倾斜", Alert: "高亮块", indent: "缩进", Marker: "突出显示", Color: "文本颜色", Underline: "下划线", InlineCode: "行内代码", Table: "表格", Image: "图片" }, tools: { image: { "Couldn’t upload image. Please try another.": "上传图片失败,请稍后重试。" }, table: { "Add row above": "在下面插入行", "Add row below": "在下面插入行", "Delete row": "删除行", "Add column to left": "在左边插入列", "Add column to right": "在右边插入列", "Delete column": "删除列", "With headings": "使用标题行", "Without headings": "不使用标题行" }, marker: { Marker: "突出显示" }, link: { "Add a link": "添加链接", Save: "保存", "Pasted link is not valid.": "链接地址无效" }, List: { Unordered: "无序", Ordered: "有序", Checklist: "任务列表", "Counter type": "计数器类型", Numeric: "阿拉伯数字", "Lower Roman": "小写罗马数字", "Upper Roman": "大写罗马数字", "Lower Alpha": "小写字母", "Upper Alpha": "大写字母", "Start with": "从" }, paragraph: { "Enter something": "请输入内容" }, stub: { "The block can not be displayed correctly.": "该模块不能放置在这里" }, code: { "Enter your code": "输入代码", Copied: "已复制" }, convertTo: { "Convert to": "转化为" }, alert: { "alert-primary": "主要样式", "alert-secondary": "次要样式", "alert-info": "信息", "alert-success": "成功", "alert-warning": "警告", "alert-danger": "危险", "alert-light": "浅色", "alert-dark": "深色", "align-left": "左对齐", "align-center": "居中", "align-right": "右对齐" } }, blockTunes: { delete: { Delete: "删除", "Click to delete": "点击删除" }, moveUp: { "Move up": "向上移" }, moveDown: { "Move down": "向下移" }, filter: { Filter: "过滤" }, blockAlignment: { "left align": "左对齐", "center align": "居中对齐", "right align": "右对齐", "justify align": "两端对齐" }, indent: { "Indent right": "向右缩进", "Indent left": "向左缩进" } } } }, Ut = ((p = []) => ({ version: "2.31.12", install: (t, e) => {
3140
+ t[pt] || (t[pt] = !0, p.forEach((i) => t.use(i)), t.provide("EblEditorSettings", e));
3141
+ } }))(jt), ze = Ut.install, Ne = Ut.version;
2987
3142
  export {
2988
- ke as EblEditor,
2989
- Dt as default,
2990
- Me as install,
2991
- _e as version,
2992
- Ee as zhCn
3143
+ Me as EblEditor,
3144
+ Ut as default,
3145
+ ze as install,
3146
+ Ne as version,
3147
+ De as zhCn
2993
3148
  };
2994
3149
  //# sourceMappingURL=index.mjs.map