@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.
- package/dist/index.mjs +560 -405
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -4
- package/src/components/Editor/Editor.vue +22 -6
- package/src/plugins/code/index.css +31 -2
- package/src/plugins/code/index.ts +7 -0
- package/src/plugins/list/ListRenderer/ChecklistRenderer.ts +1 -1
- package/src/plugins/list/ListTabulator/index.ts +1 -1
- package/src/plugins/list/index.ts +118 -123
- package/src/plugins/list/styles/.cdx-list .css +168 -0
- package/src/plugins/list/utils/normalizeData.ts +0 -1
- package/src/plugins/list-bak/ListRenderer/ChecklistRenderer.ts +208 -0
- package/src/plugins/list-bak/ListRenderer/ListRenderer.ts +73 -0
- package/src/plugins/list-bak/ListRenderer/OrderedListRenderer.ts +123 -0
- package/src/plugins/list-bak/ListRenderer/UnorderedListRenderer.ts +123 -0
- package/src/plugins/list-bak/ListRenderer/index.ts +6 -0
- package/src/plugins/list-bak/ListTabulator/index.ts +1179 -0
- package/src/plugins/list-bak/index.ts +485 -0
- package/src/plugins/list-bak/styles/CssPrefix.ts +4 -0
- package/src/plugins/list-bak/styles/input.css +36 -0
- package/src/plugins/list-bak/styles/list.css +165 -0
- package/src/plugins/list-bak/types/Elements.ts +14 -0
- package/src/plugins/list-bak/types/ItemMeta.ts +40 -0
- package/src/plugins/list-bak/types/ListParams.ts +102 -0
- package/src/plugins/list-bak/types/ListRenderer.ts +6 -0
- package/src/plugins/list-bak/types/OlCounterType.ts +63 -0
- package/src/plugins/list-bak/types/index.ts +14 -0
- package/src/plugins/list-bak/utils/focusItem.ts +18 -0
- package/src/plugins/list-bak/utils/getChildItems.ts +40 -0
- package/src/plugins/list-bak/utils/getItemChildWrapper.ts +10 -0
- package/src/plugins/list-bak/utils/getItemContentElement.ts +10 -0
- package/src/plugins/list-bak/utils/getSiblings.ts +52 -0
- package/src/plugins/list-bak/utils/isLastItem.ts +9 -0
- package/src/plugins/list-bak/utils/itemHasSublist.ts +10 -0
- package/src/plugins/list-bak/utils/normalizeData.ts +84 -0
- package/src/plugins/list-bak/utils/removeChildWrapperIfEmpty.ts +31 -0
- package/src/plugins/list-bak/utils/renderToolboxInput.ts +105 -0
- package/src/plugins/list-bak/utils/stripNumbers.ts +7 -0
- 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
|
|
3
|
-
import
|
|
4
|
-
import { bundledLanguagesInfo as
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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)
|
|
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)
|
|
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
|
|
83
|
-
class
|
|
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:
|
|
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:
|
|
173
|
+
return { icon: ut, title: "H1" };
|
|
165
174
|
}
|
|
166
175
|
}
|
|
167
|
-
class
|
|
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:
|
|
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:
|
|
257
|
+
return { icon: gt, title: "H2" };
|
|
249
258
|
}
|
|
250
259
|
}
|
|
251
|
-
class
|
|
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:
|
|
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:
|
|
341
|
+
return { icon: mt, title: "H3" };
|
|
333
342
|
}
|
|
334
343
|
}
|
|
335
|
-
class
|
|
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:
|
|
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:
|
|
425
|
+
return { icon: ft, title: "H4" };
|
|
417
426
|
}
|
|
418
427
|
}
|
|
419
|
-
class
|
|
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:
|
|
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:
|
|
509
|
+
return { icon: Ct, title: "H5" };
|
|
501
510
|
}
|
|
502
511
|
}
|
|
503
|
-
class
|
|
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:
|
|
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:
|
|
593
|
+
return { icon: vt, title: "H6" };
|
|
585
594
|
}
|
|
586
595
|
}
|
|
587
|
-
class
|
|
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 :
|
|
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:
|
|
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
|
|
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 :
|
|
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)
|
|
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)
|
|
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:
|
|
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
|
|
738
|
-
for (;
|
|
739
|
-
` && l > 0; )
|
|
740
|
-
|
|
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)
|
|
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
|
|
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"),
|
|
751
|
-
const
|
|
752
|
-
|
|
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:
|
|
754
|
-
d.innerHTML =
|
|
755
|
-
}), o.addEventListener("change", (
|
|
756
|
-
const
|
|
757
|
-
this._selectorLanguage =
|
|
758
|
-
d.innerHTML = u, s.innerHTML =
|
|
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", (
|
|
761
|
-
const
|
|
762
|
-
this._selectorTheme =
|
|
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:
|
|
767
|
-
d.innerHTML =
|
|
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", (
|
|
770
|
-
|
|
771
|
-
d.innerHTML =
|
|
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", (
|
|
774
|
-
this.copyCode(this.data.code,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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: `${
|
|
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 ?
|
|
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: `${
|
|
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 ?
|
|
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(
|
|
938
|
-
return
|
|
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: `${
|
|
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 ?
|
|
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
|
|
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(
|
|
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(
|
|
994
|
-
let e =
|
|
995
|
-
return
|
|
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(
|
|
998
|
-
return
|
|
1014
|
+
function A(p) {
|
|
1015
|
+
return p.querySelector(`.${k.itemChildren}`);
|
|
999
1016
|
}
|
|
1000
|
-
function
|
|
1001
|
-
let t =
|
|
1002
|
-
|
|
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
|
|
1005
|
-
return
|
|
1021
|
+
function K(p) {
|
|
1022
|
+
return p.querySelector(`.${k.itemContent}`);
|
|
1006
1023
|
}
|
|
1007
|
-
function
|
|
1008
|
-
const e =
|
|
1009
|
-
e &&
|
|
1024
|
+
function N(p, t = !0) {
|
|
1025
|
+
const e = K(p);
|
|
1026
|
+
e && ee(e, t);
|
|
1010
1027
|
}
|
|
1011
|
-
class
|
|
1028
|
+
class et {
|
|
1012
1029
|
get currentItem() {
|
|
1013
1030
|
const t = window.getSelection();
|
|
1014
|
-
if (!t)
|
|
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)
|
|
1038
|
+
if (t === null)
|
|
1039
|
+
return null;
|
|
1021
1040
|
let e = t.parentNode, i = 0;
|
|
1022
|
-
for (; e !== null && e !== this.listWrapper; )
|
|
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 =
|
|
1055
|
-
if (i === null || s === null || (s.insertAdjacentHTML("beforeend", t.items[0].content), this.listWrapper === void 0))
|
|
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)
|
|
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
|
|
1104
|
+
var h;
|
|
1083
1105
|
const d = a.querySelector(`:scope > ${i}`), l = d ? r(d) : [];
|
|
1084
|
-
return { content: (
|
|
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)
|
|
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)
|
|
1100
|
-
return
|
|
1101
|
-
|
|
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 &&
|
|
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))
|
|
1137
|
+
if (!t.parentNode || !R(t.parentNode))
|
|
1138
|
+
return;
|
|
1114
1139
|
const e = t.parentNode.closest(`.${k.item}`);
|
|
1115
|
-
if (!e)
|
|
1140
|
+
if (!e)
|
|
1141
|
+
return;
|
|
1116
1142
|
let i = A(t);
|
|
1117
|
-
if (t.parentElement === null)
|
|
1118
|
-
|
|
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),
|
|
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),
|
|
1154
|
+
this.unshiftItem(a), N(t, !1);
|
|
1128
1155
|
}
|
|
1129
|
-
if (t.previousElementSibling === null && t.parentNode === this.listWrapper)
|
|
1130
|
-
|
|
1131
|
-
|
|
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] =
|
|
1141
|
-
if (e === null)
|
|
1142
|
-
|
|
1169
|
+
const [e, i] = se();
|
|
1170
|
+
if (e === null)
|
|
1171
|
+
return;
|
|
1172
|
+
const s = K(t);
|
|
1143
1173
|
let n;
|
|
1144
|
-
n = s === null ? "" :
|
|
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),
|
|
1176
|
+
t == null || t.after(o), r && o.appendChild(r), N(o);
|
|
1147
1177
|
}
|
|
1148
1178
|
mergeItemWithPrevious(t) {
|
|
1149
|
-
var
|
|
1179
|
+
var h;
|
|
1150
1180
|
const e = t.previousElementSibling, i = t.parentNode;
|
|
1151
|
-
if (i === null || !R(i))
|
|
1181
|
+
if (i === null || !R(i))
|
|
1182
|
+
return;
|
|
1152
1183
|
const s = i.closest(`.${k.item}`);
|
|
1153
|
-
if (!e && !s || e && !R(e))
|
|
1184
|
+
if (!e && !s || e && !R(e))
|
|
1185
|
+
return;
|
|
1154
1186
|
let n;
|
|
1155
1187
|
if (e) {
|
|
1156
|
-
const
|
|
1157
|
-
n =
|
|
1158
|
-
} else
|
|
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)
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
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)
|
|
1167
|
-
|
|
1168
|
-
e
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
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)
|
|
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)
|
|
1218
|
+
if (r !== null && r === this.config.maxLevel)
|
|
1219
|
+
return;
|
|
1182
1220
|
}
|
|
1183
1221
|
const i = e.previousSibling;
|
|
1184
|
-
if (i === null || !R(i))
|
|
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
|
-
|
|
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)
|
|
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),
|
|
1249
|
+
this.unshiftItem(r), N(t);
|
|
1210
1250
|
}
|
|
1211
|
-
const i =
|
|
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
|
|
1234
|
-
class
|
|
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:
|
|
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) =>
|
|
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(
|
|
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} ${
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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; )
|
|
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
|
|
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)
|
|
1405
|
-
|
|
1406
|
-
|
|
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))
|
|
1433
|
-
|
|
1434
|
-
else if (
|
|
1435
|
-
|
|
1436
|
-
else if (
|
|
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
|
|
1533
|
+
const i = this.holder.getElementsByClassName("ce-block__content"), s = new ct(i[t].firstChild);
|
|
1448
1534
|
setTimeout(() => s.setPos(e), 50);
|
|
1449
|
-
} else
|
|
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)
|
|
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),
|
|
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
|
-
},
|
|
1575
|
+
}, c = (u) => {
|
|
1488
1576
|
l(u, a, o) && (u.preventDefault(), this.redo());
|
|
1489
1577
|
};
|
|
1490
|
-
t.addEventListener("keydown",
|
|
1491
|
-
t.removeEventListener("keydown",
|
|
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 =
|
|
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)
|
|
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
|
|
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,
|
|
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 = (
|
|
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)
|
|
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)
|
|
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,
|
|
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:
|
|
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:
|
|
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}>${
|
|
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;">${
|
|
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(
|
|
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)
|
|
1721
|
-
|
|
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)
|
|
1816
|
+
if (t < 0)
|
|
1817
|
+
return !1;
|
|
1724
1818
|
const e = this.api.blocks.getBlockByIndex(t);
|
|
1725
|
-
if (!e)
|
|
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)
|
|
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)
|
|
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)
|
|
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)
|
|
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))
|
|
1851
|
+
if (!((n = this.block) != null && n.id))
|
|
1852
|
+
return;
|
|
1753
1853
|
const e = this.handlePropagationForKeyEvent(t);
|
|
1754
|
-
if (!e)
|
|
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)
|
|
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
|
|
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)
|
|
1763
|
-
|
|
1764
|
-
|
|
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
|
|
1767
|
-
|
|
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)
|
|
1788
|
-
|
|
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(
|
|
1912
|
+
applyStylesToWrapper(t, e = parseInt(t.getAttribute(x.DATA_INDENT_LEVEL) || "0")) {
|
|
1808
1913
|
const i = e * this.config.indentSize;
|
|
1809
|
-
t.setAttribute(
|
|
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))
|
|
1916
|
+
if (!(s instanceof HTMLElement && n))
|
|
1917
|
+
return;
|
|
1812
1918
|
const r = n.getBoundingClientRect().width;
|
|
1813
|
-
if (r === 0)
|
|
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
|
|
1817
|
-
|
|
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(
|
|
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(
|
|
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(`[${
|
|
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}"] [${
|
|
1838
|
-
return (n = (s = document.querySelector(e)) != null ? s : (i = this.api.blocks.getById(t)) == null ? void 0 : i.holder.querySelector(`[${
|
|
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)
|
|
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",
|
|
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)
|
|
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
|
-
|
|
1873
|
-
let
|
|
1874
|
-
class
|
|
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
|
|
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)
|
|
1892
|
-
|
|
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(
|
|
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,
|
|
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
|
|
2021
|
+
return St;
|
|
1912
2022
|
}
|
|
1913
2023
|
static get sanitize() {
|
|
1914
|
-
return { mark: { class:
|
|
2024
|
+
return { mark: { class: P.CSS } };
|
|
1915
2025
|
}
|
|
1916
2026
|
}
|
|
1917
|
-
class
|
|
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)
|
|
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
|
|
2067
|
+
class ke extends ve {
|
|
1957
2068
|
static get sanitize() {
|
|
1958
2069
|
}
|
|
1959
2070
|
}
|
|
1960
|
-
const
|
|
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)
|
|
1972
|
-
|
|
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(
|
|
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)
|
|
2095
|
+
if (!e)
|
|
2096
|
+
return;
|
|
1984
2097
|
const i = e.getRangeAt(0);
|
|
1985
|
-
if (!i)
|
|
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,
|
|
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:
|
|
2112
|
+
return { u: { class: U.CSS } };
|
|
1999
2113
|
}
|
|
2000
2114
|
};
|
|
2001
|
-
|
|
2002
|
-
let
|
|
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)
|
|
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)
|
|
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(
|
|
2046
|
-
const i = document.createElement(
|
|
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)
|
|
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
|
|
2052
|
-
const t =
|
|
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
|
|
2056
|
-
const e =
|
|
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
|
|
2176
|
+
function _t(p, t) {
|
|
2060
2177
|
var e;
|
|
2061
|
-
return (e = t == null ? void 0 : t.parentNode) == null ? void 0 : e.insertBefore(
|
|
2178
|
+
return (e = t == null ? void 0 : t.parentNode) == null ? void 0 : e.insertBefore(p, t);
|
|
2062
2179
|
}
|
|
2063
|
-
function
|
|
2180
|
+
function It(p, t = !0) {
|
|
2064
2181
|
const e = document.createRange(), i = window.getSelection();
|
|
2065
|
-
e.selectNodeContents(
|
|
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)
|
|
2202
|
+
if (!e)
|
|
2203
|
+
return;
|
|
2086
2204
|
const i = e.dataset.index;
|
|
2087
|
-
if (!i)
|
|
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
|
|
2158
|
-
class
|
|
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)
|
|
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(`.${
|
|
2290
|
+
const o = r.closest(`.${Bt}`) !== null, a = r.closest(`.${Ht}`) === null;
|
|
2171
2291
|
(o || a) && this.hideToolboxes();
|
|
2172
|
-
const d = r.closest(`.${
|
|
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",
|
|
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))
|
|
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(`.${
|
|
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:
|
|
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:
|
|
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}) .${
|
|
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(`.${
|
|
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)
|
|
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),
|
|
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 &&
|
|
2370
|
+
d && e && It(d);
|
|
2249
2371
|
}
|
|
2250
2372
|
}
|
|
2251
|
-
const s = this.wrapper.querySelector(`.${
|
|
2252
|
-
(n = this.config) != null && n.maxcols && this.numberOfColumns > this.config.maxcols - 1 && s && s.classList.add(
|
|
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)
|
|
2259
|
-
|
|
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 &&
|
|
2262
|
-
const o = this.wrapper.querySelector(`.${
|
|
2263
|
-
return this.config && this.config.maxrows && this.numberOfRows >= this.config.maxrows && o && o.classList.add(
|
|
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)
|
|
2391
|
+
if (!s)
|
|
2392
|
+
return;
|
|
2269
2393
|
s.remove();
|
|
2270
2394
|
}
|
|
2271
|
-
const e = this.wrapper.querySelector(`.${
|
|
2272
|
-
e && e.classList.remove(
|
|
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(`.${
|
|
2277
|
-
e && e.classList.remove(
|
|
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",
|
|
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++)
|
|
2289
|
-
|
|
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)
|
|
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)
|
|
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",
|
|
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 .${
|
|
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)
|
|
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(`.${
|
|
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 } =
|
|
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(
|
|
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(
|
|
2513
|
+
e && (this.selectedRow = t, e.classList.add(st));
|
|
2382
2514
|
}
|
|
2383
2515
|
unselectRow() {
|
|
2384
|
-
if (this.selectedRow <= 0)
|
|
2385
|
-
|
|
2386
|
-
t
|
|
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(
|
|
2524
|
+
i && i.classList.add(nt);
|
|
2392
2525
|
}
|
|
2393
2526
|
this.selectedColumn = t;
|
|
2394
2527
|
}
|
|
2395
2528
|
unselectColumn() {
|
|
2396
|
-
if (this.selectedColumn <= 0)
|
|
2397
|
-
|
|
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(
|
|
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(
|
|
2405
|
-
const g =
|
|
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
|
|
2410
|
-
i = this.binSearch(this.numberOfColumns, (g) => this.getCell(1, g),
|
|
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
|
|
2414
|
-
e = this.binSearch(this.numberOfRows, (g) => this.getCell(g, 1),
|
|
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:
|
|
2417
|
-
return { row: a, column: d, deltaXCell: l, deltaYCell:
|
|
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 } =
|
|
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 =
|
|
2428
|
-
if (i(l))
|
|
2561
|
+
const d = e(n), l = it(this.table, d);
|
|
2562
|
+
if (i(l))
|
|
2563
|
+
o = n;
|
|
2429
2564
|
else {
|
|
2430
|
-
if (!s(l))
|
|
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(`.${
|
|
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
|
|
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
|
|
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
|
|
2494
|
-
const i = document.createElement(
|
|
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)
|
|
2632
|
+
for (const s in e)
|
|
2633
|
+
e.hasOwnProperty(s) && (i[s] = e[s]);
|
|
2497
2634
|
return i;
|
|
2498
2635
|
}
|
|
2499
|
-
var
|
|
2500
|
-
class
|
|
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:
|
|
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 =
|
|
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
|
|
2528
|
-
|
|
2529
|
-
|
|
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 =
|
|
2538
|
-
return t.innerHTML = (e = this.config.buttonContent) != null ? e : `${
|
|
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
|
|
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))
|
|
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()))
|
|
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
|
|
2582
|
-
if (
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
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 =
|
|
2598
|
-
if (s.status !== 200 || s.data.success === !1)
|
|
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()))
|
|
2751
|
+
if (!i.includes(n.toLowerCase()))
|
|
2752
|
+
return void this.onError("文件类型不支持");
|
|
2609
2753
|
let r = {};
|
|
2610
2754
|
if (this.config.userStore) {
|
|
2611
|
-
const
|
|
2612
|
-
|
|
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 =
|
|
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)
|
|
2761
|
+
if (a.status !== 200)
|
|
2762
|
+
return void this.onError(a.statusText);
|
|
2618
2763
|
const d = a.data;
|
|
2619
|
-
if (!d.success)
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
|
|
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
|
|
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
|
|
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:
|
|
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 =
|
|
2668
|
-
((n = this.config.features) == null ? void 0 : n.caption) === "optional" && t.push({ name: "caption", icon:
|
|
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")
|
|
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),
|
|
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
|
|
2894
|
+
class Te {
|
|
2748
2895
|
constructor({ api: t, data: e, config: i, block: s }) {
|
|
2749
|
-
var n, r, o, a, d, l,
|
|
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: (
|
|
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)
|
|
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)
|
|
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)
|
|
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)
|
|
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)
|
|
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
|
|
2894
|
-
e === "right" && (
|
|
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
|
|
2952
|
-
const i =
|
|
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 =
|
|
2955
|
-
let r = null;
|
|
2956
|
-
const
|
|
2957
|
-
return
|
|
2958
|
-
|
|
2959
|
-
|
|
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
|
|
2963
|
-
} }).initialize(
|
|
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
|
-
}),
|
|
2966
|
-
|
|
2967
|
-
}),
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
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((
|
|
2974
|
-
if (
|
|
2975
|
-
|
|
3127
|
+
return new Promise((l, h) => {
|
|
3128
|
+
if (a === null)
|
|
3129
|
+
return l(null);
|
|
3130
|
+
a.save().then((c) => l(c));
|
|
2976
3131
|
});
|
|
2977
|
-
} }), (
|
|
2978
|
-
} }),
|
|
2979
|
-
let
|
|
2980
|
-
for (let
|
|
2981
|
-
const t =
|
|
2982
|
-
|
|
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
|
|
2985
|
-
t[
|
|
2986
|
-
} }))(
|
|
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
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
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
|