@ckeditor/ckeditor5-html-embed 31.0.0 → 33.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +2 -2
- package/build/html-embed.js +3 -3
- package/build/html-embed.js.map +1 -0
- package/build/translations/bs.js +1 -0
- package/build/translations/el.js +1 -0
- package/build/translations/es.js +1 -1
- package/build/translations/pt-br.js +1 -1
- package/build/translations/uz.js +1 -0
- package/build/translations/zh.js +1 -0
- package/ckeditor5-metadata.json +1 -0
- package/lang/translations/bs.po +45 -0
- package/lang/translations/cs.po +1 -1
- package/lang/translations/de-ch.po +1 -1
- package/lang/translations/de.po +1 -1
- package/lang/translations/el.po +45 -0
- package/lang/translations/en-au.po +1 -1
- package/lang/translations/en.po +1 -1
- package/lang/translations/es.po +4 -4
- package/lang/translations/fr.po +1 -1
- package/lang/translations/gl.po +1 -1
- package/lang/translations/hr.po +1 -1
- package/lang/translations/hu.po +1 -1
- package/lang/translations/id.po +1 -1
- package/lang/translations/it.po +1 -1
- package/lang/translations/nl.po +1 -1
- package/lang/translations/pl.po +1 -1
- package/lang/translations/pt-br.po +5 -5
- package/lang/translations/ro.po +1 -1
- package/lang/translations/ru.po +1 -1
- package/lang/translations/sk.po +1 -1
- package/lang/translations/sl.po +1 -1
- package/lang/translations/sr-latn.po +1 -1
- package/lang/translations/sr.po +1 -1
- package/lang/translations/uk.po +1 -1
- package/lang/translations/uz.po +45 -0
- package/lang/translations/vi.po +1 -1
- package/lang/translations/zh-cn.po +1 -1
- package/lang/translations/zh.po +45 -0
- package/package.json +17 -17
- package/src/htmlembed.js +1 -1
- package/src/htmlembedcommand.js +1 -1
- package/src/htmlembedediting.js +8 -14
- package/src/htmlembedui.js +1 -1
- package/src/index.js +1 -1
- package/theme/htmlembed.css +1 -1
package/LICENSE.md
CHANGED
|
@@ -2,7 +2,7 @@ Software License Agreement
|
|
|
2
2
|
==========================
|
|
3
3
|
|
|
4
4
|
**CKEditor 5 HTML embed feature** – https://github.com/ckeditor/ckeditor5-html-embed <br>
|
|
5
|
-
Copyright (c) 2003-
|
|
5
|
+
Copyright (c) 2003-2022, [CKSource](http://cksource.com) Holding sp. z o.o. All rights reserved.
|
|
6
6
|
|
|
7
7
|
Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html).
|
|
8
8
|
|
|
@@ -14,4 +14,4 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi
|
|
|
14
14
|
Trademarks
|
|
15
15
|
----------
|
|
16
16
|
|
|
17
|
-
**CKEditor** is a trademark of [CKSource](http://cksource.com)
|
|
17
|
+
**CKEditor** is a trademark of [CKSource](http://cksource.com) Holding sp. z o.o. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.
|
package/build/html-embed.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
!function(e){const t=e.en=e.en||{};t.dictionary=Object.assign(t.dictionary||{},{"Edit source":"Edit source","Empty snippet content":"Empty snippet content","HTML snippet":"HTML snippet","Insert HTML":"Insert HTML","No preview available":"No preview available","Paste raw HTML here...":"Paste raw HTML here...","Save changes":"Save changes"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),
|
|
1
2
|
/*!
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
3
|
+
* @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
4
|
* For licensing, see LICENSE.md.
|
|
4
|
-
*/
|
|
5
|
-
!function(e){const t=e.en=e.en||{};t.dictionary=Object.assign(t.dictionary||{},{"Edit source":"Edit source","Empty snippet content":"Empty snippet content","HTML snippet":"HTML snippet","Insert HTML":"Insert HTML","No preview available":"No preview available","Paste raw HTML here...":"Paste raw HTML here...","Save changes":"Save changes"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),window.CKEditor5=window.CKEditor5||{},window.CKEditor5.htmlEmbed=function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=8)}([function(e,t,n){e.exports=n(3)("./src/core.js")},function(e,t,n){e.exports=n(3)("./src/utils.js")},function(e,t,n){e.exports=n(3)("./src/widget.js")},function(e,t){e.exports=CKEditor5.dll},function(e,t,n){e.exports=n(3)("./src/ui.js")},function(e,t,n){var r=n(6),i=n(7);"string"==typeof(i=i.__esModule?i.default:i)&&(i=[[e.i,i,""]]);var a={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};r(i,a);e.exports=i.locals||{}},function(e,t,n){"use strict";var r,i=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},a=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),o=[];function c(e){for(var t=-1,n=0;n<o.length;n++)if(o[n].identifier===e){t=n;break}return t}function l(e,t){for(var n={},r=[],i=0;i<e.length;i++){var a=e[i],l=t.base?a[0]+t.base:a[0],d=n[l]||0,s="".concat(l," ").concat(d);n[l]=d+1;var m=c(s),u={css:a[1],media:a[2],sourceMap:a[3]};-1!==m?(o[m].references++,o[m].updater(u)):o.push({identifier:s,updater:w(u,t),references:1}),r.push(s)}return r}function d(e){var t=document.createElement("style"),r=e.attributes||{};if(void 0===r.nonce){var i=n.nc;i&&(r.nonce=i)}if(Object.keys(r).forEach((function(e){t.setAttribute(e,r[e])})),"function"==typeof e.insert)e.insert(t);else{var o=a(e.insert||"head");if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(t)}return t}var s,m=(s=[],function(e,t){return s[e]=t,s.filter(Boolean).join("\n")});function u(e,t,n,r){var i=n?"":r.media?"@media ".concat(r.media," {").concat(r.css,"}"):r.css;if(e.styleSheet)e.styleSheet.cssText=m(t,i);else{var a=document.createTextNode(i),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(a,o[t]):e.appendChild(a)}}function b(e,t,n){var r=n.css,i=n.media,a=n.sourceMap;if(i?e.setAttribute("media",i):e.removeAttribute("media"),a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),e.styleSheet)e.styleSheet.cssText=r;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r))}}var p=null,h=0;function w(e,t){var n,r,i;if(t.singleton){var a=h++;n=p||(p=d(t)),r=u.bind(null,n,a,!1),i=u.bind(null,n,a,!0)}else n=d(t),r=b.bind(null,n,t),i=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)};return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else i()}}e.exports=function(e,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=i());var n=l(e=e||[],t);return function(e){if(e=e||[],"[object Array]"===Object.prototype.toString.call(e)){for(var r=0;r<n.length;r++){var i=c(n[r]);o[i].references--}for(var a=l(e,t),d=0;d<n.length;d++){var s=c(n[d]);0===o[s].references&&(o[s].updater(),o.splice(s,1))}n=a}}}},function(e,t){e.exports=".ck-widget.raw-html-embed{margin:.9em auto;position:relative;display:flow-root;min-width:15em;font-style:normal}.ck-widget.raw-html-embed:before{position:absolute;z-index:1}.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper{position:absolute;display:flex;flex-direction:column}.ck-widget.raw-html-embed .raw-html-embed__preview{position:relative;overflow:hidden;display:flex}.ck-widget.raw-html-embed .raw-html-embed__preview-content{width:100%;position:relative;margin:auto;display:table;border-collapse:separate;border-spacing:7px}.ck-widget.raw-html-embed .raw-html-embed__preview-placeholder{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}:root{--ck-html-embed-content-width:calc(100% - var(--ck-icon-size)*1.5);--ck-html-embed-source-height:10em;--ck-html-embed-unfocused-outline-width:1px;--ck-html-embed-content-min-height:calc(var(--ck-icon-size) + var(--ck-spacing-standard));--ck-html-embed-source-disabled-background:var(--ck-color-base-foreground);--ck-html-embed-source-disabled-color:#737373}.ck-widget.raw-html-embed{font-size:var(--ck-font-size-base);background-color:var(--ck-color-base-foreground)}.ck-widget.raw-html-embed:not(.ck-widget_selected):not(:hover){outline:var(--ck-html-embed-unfocused-outline-width) dashed var(--ck-color-widget-blurred-border)}.ck-widget.raw-html-embed[dir=ltr]{text-align:left}.ck-widget.raw-html-embed[dir=rtl]{text-align:right}.ck-widget.raw-html-embed:before{content:attr(data-html-embed-label);top:calc(var(--ck-html-embed-unfocused-outline-width)*-1);left:var(--ck-spacing-standard);background:#999;transition:background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);padding:calc(var(--ck-spacing-tiny) + var(--ck-html-embed-unfocused-outline-width)) var(--ck-spacing-small) var(--ck-spacing-tiny);border-radius:0 0 var(--ck-border-radius) var(--ck-border-radius);color:var(--ck-color-base-background);font-size:var(--ck-font-size-tiny);font-family:var(--ck-font-face)}.ck-widget.raw-html-embed[dir=rtl]:before{left:auto;right:var(--ck-spacing-standard)}.ck-widget.raw-html-embed[dir=ltr] .ck-widget__type-around .ck-widget__type-around__button.ck-widget__type-around__button_before{margin-left:50px}.ck.ck-editor__editable.ck-blurred .ck-widget.raw-html-embed.ck-widget_selected:before{top:0;padding:var(--ck-spacing-tiny) var(--ck-spacing-small)}.ck.ck-editor__editable:not(.ck-blurred) .ck-widget.raw-html-embed.ck-widget_selected:before{top:0;padding:var(--ck-spacing-tiny) var(--ck-spacing-small);background:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck-widget.raw-html-embed:not(.ck-widget_selected):hover:before{top:0;padding:var(--ck-spacing-tiny) var(--ck-spacing-small)}.ck-widget.raw-html-embed .raw-html-embed__content-wrapper{padding:var(--ck-spacing-standard)}.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper{top:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button.raw-html-embed__save-button{color:var(--ck-color-button-save)}.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button.raw-html-embed__cancel-button{color:var(--ck-color-button-cancel)}.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button:not(:first-child){margin-top:var(--ck-spacing-small)}.ck-widget.raw-html-embed[dir=rtl] .raw-html-embed__buttons-wrapper{left:var(--ck-spacing-standard);right:auto}.ck-widget.raw-html-embed .raw-html-embed__source{box-sizing:border-box;height:var(--ck-html-embed-source-height);width:var(--ck-html-embed-content-width);resize:none;min-width:0;padding:var(--ck-spacing-standard);font-family:monospace;tab-size:4;white-space:pre-wrap;font-size:var(--ck-font-size-base);text-align:left;direction:ltr}.ck-widget.raw-html-embed .raw-html-embed__source[disabled]{background:var(--ck-html-embed-source-disabled-background);color:var(--ck-html-embed-source-disabled-color);-webkit-text-fill-color:var(--ck-html-embed-source-disabled-color);opacity:1}.ck-widget.raw-html-embed .raw-html-embed__preview{min-height:var(--ck-html-embed-content-min-height);width:var(--ck-html-embed-content-width)}.ck-editor__editable:not(.ck-read-only) .ck-widget.raw-html-embed .raw-html-embed__preview{pointer-events:none}.ck-widget.raw-html-embed .raw-html-embed__preview-content{box-sizing:border-box;background-color:var(--ck-color-base-foreground)}.ck-widget.raw-html-embed .raw-html-embed__preview-content>*{margin-left:auto;margin-right:auto}.ck-widget.raw-html-embed .raw-html-embed__preview-placeholder{color:var(--ck-html-embed-source-disabled-color)}"},function(e,t,n){"use strict";n.r(t),n.d(t,"HtmlEmbed",(function(){return u})),n.d(t,"HtmlEmbedEditing",(function(){return d})),n.d(t,"HtmlEmbedUI",(function(){return m}));var r=n(0),i=n(2),a=n(4),o=n(1);class c extends r.Command{refresh(){const e=this.editor.model,t=e.schema,n=e.document.selection,r=l(n);this.isEnabled=function(e,t,n){const r=function(e,t){const n=Object(i.findOptimalInsertionRange)(e,t).start.parent;if(n.isEmpty&&!n.is("element","$root"))return n.parent;return n}(e,n);return t.checkChild(r,"rawHtml")}(n,t,e),this.value=r?r.getAttribute("value")||"":null}execute(e){const t=this.editor.model,n=t.document.selection;t.change(r=>{let i;null!==this.value?i=l(n):(i=r.createElement("rawHtml"),t.insertContent(i),r.setSelection(i,"on")),r.setAttribute("value",e,i)})}}function l(e){const t=e.getSelectedElement();return t&&t.is("element","rawHtml")?t:null}n(5);class d extends r.Plugin{static get pluginName(){return"HtmlEmbedEditing"}constructor(e){super(e),e.config.define("htmlEmbed",{showPreviews:!1,sanitizeHtml:e=>(Object(o.logWarning)("html-embed-provide-sanitize-function"),{html:e,hasChanged:!1})}),this._widgetButtonViewReferences=new Set}init(){const e=this.editor;e.model.schema.register("rawHtml",{isObject:!0,allowWhere:"$block",allowAttributes:["value"]}),e.commands.add("htmlEmbed",new c(e)),this._setupConversion()}_setupConversion(){const e=this.editor,t=e.t,n=e.editing.view,r=this._widgetButtonViewReferences,a=e.config.get("htmlEmbed");function c({domElement:e,editor:n,state:i,props:a}){e.textContent="";const c=e.ownerDocument;let d;if(i.isEditable){const t={isDisabled:!1,placeholder:a.textareaPlaceholder};d=l({domDocument:c,state:i,props:t}),e.append(d)}else if(i.showPreviews){const r={sanitizeHtml:a.sanitizeHtml};e.append(function({domDocument:e,state:n,props:r,editor:i}){const a=r.sanitizeHtml(n.getRawHtmlValue()),c=n.getRawHtmlValue().length>0?t("No preview available"):t("Empty snippet content"),l=Object(o.createElement)(e,"div",{class:"ck ck-reset_all raw-html-embed__preview-placeholder"},c),d=Object(o.createElement)(e,"div",{class:"raw-html-embed__preview-content",dir:i.locale.contentLanguageDirection}),s=e.createRange().createContextualFragment(a.html);d.appendChild(s);return Object(o.createElement)(e,"div",{class:"raw-html-embed__preview"},[l,d])}({domDocument:c,state:i,props:r,editor:n}))}else{const t={isDisabled:!0,placeholder:a.textareaPlaceholder};e.append(l({domDocument:c,state:i,props:t}))}const m={onEditClick:a.onEditClick,onSaveClick:()=>{a.onSaveClick(d.value)},onCancelClick:a.onCancelClick};e.prepend(function({editor:e,domDocument:t,state:n,props:i}){const a=Object(o.createElement)(t,"div",{class:"raw-html-embed__buttons-wrapper"});if(n.isEditable){const t=s(e,"save",i.onSaveClick),n=s(e,"cancel",i.onCancelClick);a.append(t.element,n.element),r.add(t).add(n)}else{const t=s(e,"edit",i.onEditClick);a.append(t.element),r.add(t)}return a}({editor:n,domDocument:c,state:i,props:m}))}function l({domDocument:e,state:t,props:n}){const r=Object(o.createElement)(e,"textarea",{placeholder:n.placeholder,class:"ck ck-reset ck-input ck-input-text raw-html-embed__source"});return r.disabled=n.isDisabled,r.value=t.getRawHtmlValue(),r}this.editor.editing.view.on("render",()=>{for(const e of r){if(e.element.isConnected)return;e.destroy(),r.delete(e)}},{priority:"lowest"}),e.data.registerRawContentMatcher({name:"div",classes:"raw-html-embed"}),e.conversion.for("upcast").elementToElement({view:{name:"div",classes:"raw-html-embed"},model:(e,{writer:t})=>t.createElement("rawHtml",{value:e.getCustomProperty("$rawContent")})}),e.conversion.for("dataDowncast").elementToElement({model:"rawHtml",view:(e,{writer:t})=>t.createRawElement("div",{class:"raw-html-embed"},(function(t){t.innerHTML=e.getAttribute("value")||""}))}),e.conversion.for("editingDowncast").elementToElement({triggerBy:{attributes:["value"]},model:"rawHtml",view:(r,{writer:o})=>{let l,d,s;const m=o.createContainerElement("div",{class:"raw-html-embed","data-html-embed-label":t("HTML snippet"),dir:e.locale.uiLanguageDirection}),u=o.createRawElement("div",{class:"raw-html-embed__content-wrapper"},(function(t){l=t,c({domElement:t,editor:e,state:d,props:s}),l.addEventListener("mousedown",()=>{if(d.isEditable){const t=e.model;t.document.selection.getSelectedElement()!==r&&t.change(e=>e.setSelection(r,"on"))}},!0)})),b={makeEditable(){d=Object.assign({},d,{isEditable:!0}),c({domElement:l,editor:e,state:d,props:s}),n.change(e=>{e.setAttribute("data-cke-ignore-events","true",u)}),l.querySelector("textarea").focus()},save(t){t!==d.getRawHtmlValue()?(e.execute("htmlEmbed",t),e.editing.view.focus()):this.cancel()},cancel(){d=Object.assign({},d,{isEditable:!1}),c({domElement:l,editor:e,state:d,props:s}),e.editing.view.focus(),n.change(e=>{e.removeAttribute("data-cke-ignore-events",u)})}};return d={showPreviews:a.showPreviews,isEditable:!1,getRawHtmlValue:()=>r.getAttribute("value")||""},s={sanitizeHtml:a.sanitizeHtml,textareaPlaceholder:t("Paste raw HTML here..."),onEditClick(){b.makeEditable()},onSaveClick(e){b.save(e)},onCancelClick(){b.cancel()}},o.insert(o.createPositionAt(m,0),u),o.setCustomProperty("rawHtmlApi",b,m),o.setCustomProperty("rawHtml",!0,m),Object(i.toWidget)(m,o,{widgetLabel:t("HTML snippet"),hasSelectionHandle:!0})}})}}function s(e,t,n){const i=e.locale.t,o=new a.ButtonView(e.locale),c=e.commands.get("htmlEmbed");return o.set({class:`raw-html-embed__${t}-button`,icon:r.icons.pencil,tooltip:!0,tooltipPosition:"rtl"===e.locale.uiLanguageDirection?"e":"w"}),o.render(),"edit"===t?(o.set({icon:r.icons.pencil,label:i("Edit source")}),o.bind("isEnabled").to(c)):"save"===t?(o.set({icon:r.icons.check,label:i("Save changes")}),o.bind("isEnabled").to(c)):o.set({icon:r.icons.cancel,label:i("Cancel")}),o.on("execute",n),o}class m extends r.Plugin{static get pluginName(){return"HtmlEmbedUI"}init(){const e=this.editor,t=e.t;e.ui.componentFactory.add("htmlEmbed",n=>{const r=e.commands.get("htmlEmbed"),i=new a.ButtonView(n);return i.set({label:t("Insert HTML"),icon:'<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M17 0a2 2 0 0 1 2 2v7a1 1 0 0 1 1 1v5a1 1 0 0 1-.883.993l-.118.006L19 17a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2l-.001-1.001-.116-.006A1 1 0 0 1 0 15v-5a1 1 0 0 1 .999-1L1 2a2 2 0 0 1 2-2h14zm.499 15.999h-15L2.5 17a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5l-.001-1.001zm-3.478-6.013-.014.014H14v.007l-1.525 1.525-1.46-1.46-.015.013V10h-1v5h1v-3.53l1.428 1.43.048.043.131-.129L14 11.421V15h1v-5h-.965l-.014-.014zM2 10H1v5h1v-2h2v2h1v-5H4v2H2v-2zm7 0H6v1h1v4h1v-4h1v-1zm8 0h-1v5h3v-1h-2v-4zm0-8.5H3a.5.5 0 0 0-.5.5l-.001 6.999h15L17.5 2a.5.5 0 0 0-.5-.5zM10 7v1H4V7h6zm3-2v1H4V5h9zm-3-2v1H4V3h6z"/></svg>',tooltip:!0}),i.bind("isEnabled").to(r,"isEnabled"),this.listenTo(i,"execute",()=>{e.execute("htmlEmbed"),e.editing.view.focus();e.editing.view.document.selection.getSelectedElement().getCustomProperty("rawHtmlApi").makeEditable()}),i})}}class u extends r.Plugin{static get requires(){return[d,m,i.Widget]}static get pluginName(){return"HtmlEmbed"}}}]);
|
|
5
|
+
*/(()=>{var e={600:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(609),a=n.n(r)()((function(e){return e[1]}));a.push([e.id,".ck-widget.raw-html-embed{margin:.9em auto;position:relative;display:flow-root;min-width:15em;font-style:normal}.ck-widget.raw-html-embed:before{position:absolute;z-index:1}.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper{position:absolute;display:flex;flex-direction:column}.ck-widget.raw-html-embed .raw-html-embed__preview{position:relative;overflow:hidden;display:flex}.ck-widget.raw-html-embed .raw-html-embed__preview-content{width:100%;position:relative;margin:auto;display:table;border-collapse:separate;border-spacing:7px}.ck-widget.raw-html-embed .raw-html-embed__preview-placeholder{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}:root{--ck-html-embed-content-width:calc(100% - var(--ck-icon-size)*1.5);--ck-html-embed-source-height:10em;--ck-html-embed-unfocused-outline-width:1px;--ck-html-embed-content-min-height:calc(var(--ck-icon-size) + var(--ck-spacing-standard));--ck-html-embed-source-disabled-background:var(--ck-color-base-foreground);--ck-html-embed-source-disabled-color:#737373}.ck-widget.raw-html-embed{font-size:var(--ck-font-size-base);background-color:var(--ck-color-base-foreground)}.ck-widget.raw-html-embed:not(.ck-widget_selected):not(:hover){outline:var(--ck-html-embed-unfocused-outline-width) dashed var(--ck-color-widget-blurred-border)}.ck-widget.raw-html-embed[dir=ltr]{text-align:left}.ck-widget.raw-html-embed[dir=rtl]{text-align:right}.ck-widget.raw-html-embed:before{content:attr(data-html-embed-label);top:calc(var(--ck-html-embed-unfocused-outline-width)*-1);left:var(--ck-spacing-standard);background:#999;transition:background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);padding:calc(var(--ck-spacing-tiny) + var(--ck-html-embed-unfocused-outline-width)) var(--ck-spacing-small) var(--ck-spacing-tiny);border-radius:0 0 var(--ck-border-radius) var(--ck-border-radius);color:var(--ck-color-base-background);font-size:var(--ck-font-size-tiny);font-family:var(--ck-font-face)}.ck-widget.raw-html-embed[dir=rtl]:before{left:auto;right:var(--ck-spacing-standard)}.ck-widget.raw-html-embed[dir=ltr] .ck-widget__type-around .ck-widget__type-around__button.ck-widget__type-around__button_before{margin-left:50px}.ck.ck-editor__editable.ck-blurred .ck-widget.raw-html-embed.ck-widget_selected:before{top:0;padding:var(--ck-spacing-tiny) var(--ck-spacing-small)}.ck.ck-editor__editable:not(.ck-blurred) .ck-widget.raw-html-embed.ck-widget_selected:before{top:0;padding:var(--ck-spacing-tiny) var(--ck-spacing-small);background:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck-widget.raw-html-embed:not(.ck-widget_selected):hover:before{top:0;padding:var(--ck-spacing-tiny) var(--ck-spacing-small)}.ck-widget.raw-html-embed .raw-html-embed__content-wrapper{padding:var(--ck-spacing-standard)}.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper{top:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button.raw-html-embed__save-button{color:var(--ck-color-button-save)}.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button.raw-html-embed__cancel-button{color:var(--ck-color-button-cancel)}.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button:not(:first-child){margin-top:var(--ck-spacing-small)}.ck-widget.raw-html-embed[dir=rtl] .raw-html-embed__buttons-wrapper{left:var(--ck-spacing-standard);right:auto}.ck-widget.raw-html-embed .raw-html-embed__source{box-sizing:border-box;height:var(--ck-html-embed-source-height);width:var(--ck-html-embed-content-width);resize:none;min-width:0;padding:var(--ck-spacing-standard);font-family:monospace;tab-size:4;white-space:pre-wrap;font-size:var(--ck-font-size-base);text-align:left;direction:ltr}.ck-widget.raw-html-embed .raw-html-embed__source[disabled]{background:var(--ck-html-embed-source-disabled-background);color:var(--ck-html-embed-source-disabled-color);-webkit-text-fill-color:var(--ck-html-embed-source-disabled-color);opacity:1}.ck-widget.raw-html-embed .raw-html-embed__preview{min-height:var(--ck-html-embed-content-min-height);width:var(--ck-html-embed-content-width)}.ck-editor__editable:not(.ck-read-only) .ck-widget.raw-html-embed .raw-html-embed__preview{pointer-events:none}.ck-widget.raw-html-embed .raw-html-embed__preview-content{box-sizing:border-box;background-color:var(--ck-color-base-foreground)}.ck-widget.raw-html-embed .raw-html-embed__preview-content>*{margin-left:auto;margin-right:auto}.ck-widget.raw-html-embed .raw-html-embed__preview-placeholder{color:var(--ck-html-embed-source-disabled-color)}",""]);const i=a},609:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var a={};if(r)for(var i=0;i<this.length;i++){var o=this[i][0];null!=o&&(a[o]=!0)}for(var c=0;c<e.length;c++){var l=[].concat(e[c]);r&&a[l[0]]||(n&&(l[2]?l[2]="".concat(n," and ").concat(l[2]):l[2]=n),t.push(l))}},t}},62:(e,t,n)=>{"use strict";var r,a=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},i=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),o=[];function c(e){for(var t=-1,n=0;n<o.length;n++)if(o[n].identifier===e){t=n;break}return t}function l(e,t){for(var n={},r=[],a=0;a<e.length;a++){var i=e[a],l=t.base?i[0]+t.base:i[0],d=n[l]||0,s="".concat(l," ").concat(d);n[l]=d+1;var m=c(s),u={css:i[1],media:i[2],sourceMap:i[3]};-1!==m?(o[m].references++,o[m].updater(u)):o.push({identifier:s,updater:w(u,t),references:1}),r.push(s)}return r}function d(e){var t=document.createElement("style"),r=e.attributes||{};if(void 0===r.nonce){var a=n.nc;a&&(r.nonce=a)}if(Object.keys(r).forEach((function(e){t.setAttribute(e,r[e])})),"function"==typeof e.insert)e.insert(t);else{var o=i(e.insert||"head");if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(t)}return t}var s,m=(s=[],function(e,t){return s[e]=t,s.filter(Boolean).join("\n")});function u(e,t,n,r){var a=n?"":r.media?"@media ".concat(r.media," {").concat(r.css,"}"):r.css;if(e.styleSheet)e.styleSheet.cssText=m(t,a);else{var i=document.createTextNode(a),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(i,o[t]):e.appendChild(i)}}function b(e,t,n){var r=n.css,a=n.media,i=n.sourceMap;if(a?e.setAttribute("media",a):e.removeAttribute("media"),i&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),e.styleSheet)e.styleSheet.cssText=r;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r))}}var h=null,p=0;function w(e,t){var n,r,a;if(t.singleton){var i=p++;n=h||(h=d(t)),r=u.bind(null,n,i,!1),a=u.bind(null,n,i,!0)}else n=d(t),r=b.bind(null,n,t),a=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)};return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else a()}}e.exports=function(e,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=a());var n=l(e=e||[],t);return function(e){if(e=e||[],"[object Array]"===Object.prototype.toString.call(e)){for(var r=0;r<n.length;r++){var a=c(n[r]);o[a].references--}for(var i=l(e,t),d=0;d<n.length;d++){var s=c(n[d]);0===o[s].references&&(o[s].updater(),o.splice(s,1))}n=i}}}},704:(e,t,n)=>{e.exports=n(79)("./src/core.js")},273:(e,t,n)=>{e.exports=n(79)("./src/ui.js")},209:(e,t,n)=>{e.exports=n(79)("./src/utils.js")},995:(e,t,n)=>{e.exports=n(79)("./src/widget.js")},79:e=>{"use strict";e.exports=CKEditor5.dll}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={id:r,exports:{}};return e[r](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{"use strict";n.r(r),n.d(r,{HtmlEmbed:()=>p,HtmlEmbedEditing:()=>u,HtmlEmbedUI:()=>h});var e=n(704),t=n(995),a=n(273),i=n(209);class o extends e.Command{refresh(){const e=this.editor.model,n=e.schema,r=e.document.selection,a=c(r);this.isEnabled=function(e,n,r){const a=function(e,n){const r=(0,t.findOptimalInsertionRange)(e,n).start.parent;if(r.isEmpty&&!r.is("element","$root"))return r.parent;return r}(e,r);return n.checkChild(a,"rawHtml")}(r,n,e),this.value=a?a.getAttribute("value")||"":null}execute(e){const t=this.editor.model,n=t.document.selection;t.change((r=>{let a;null!==this.value?a=c(n):(a=r.createElement("rawHtml"),t.insertContent(a),r.setSelection(a,"on")),r.setAttribute("value",e,a)}))}}function c(e){const t=e.getSelectedElement();return t&&t.is("element","rawHtml")?t:null}var l=n(62),d=n.n(l),s=n(600),m={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};d()(s.Z,m);s.Z.locals;class u extends e.Plugin{static get pluginName(){return"HtmlEmbedEditing"}constructor(e){super(e),e.config.define("htmlEmbed",{showPreviews:!1,sanitizeHtml:e=>((0,i.logWarning)("html-embed-provide-sanitize-function"),{html:e,hasChanged:!1})}),this._widgetButtonViewReferences=new Set}init(){const e=this.editor;e.model.schema.register("rawHtml",{isObject:!0,allowWhere:"$block",allowAttributes:["value"]}),e.commands.add("htmlEmbed",new o(e)),this._setupConversion()}_setupConversion(){const e=this.editor,n=e.t,r=e.editing.view,a=this._widgetButtonViewReferences,o=e.config.get("htmlEmbed");function c({domElement:e,editor:t,state:r,props:o}){e.textContent="";const c=e.ownerDocument;let d;if(r.isEditable){const t={isDisabled:!1,placeholder:o.textareaPlaceholder};d=l({domDocument:c,state:r,props:t}),e.append(d)}else if(r.showPreviews){const a={sanitizeHtml:o.sanitizeHtml};e.append(function({domDocument:e,state:t,props:r,editor:a}){const o=r.sanitizeHtml(t.getRawHtmlValue()),c=t.getRawHtmlValue().length>0?n("No preview available"):n("Empty snippet content"),l=(0,i.createElement)(e,"div",{class:"ck ck-reset_all raw-html-embed__preview-placeholder"},c),d=(0,i.createElement)(e,"div",{class:"raw-html-embed__preview-content",dir:a.locale.contentLanguageDirection}),s=e.createRange().createContextualFragment(o.html);d.appendChild(s);return(0,i.createElement)(e,"div",{class:"raw-html-embed__preview"},[l,d])}({domDocument:c,state:r,props:a,editor:t}))}else{const t={isDisabled:!0,placeholder:o.textareaPlaceholder};e.append(l({domDocument:c,state:r,props:t}))}const s={onEditClick:o.onEditClick,onSaveClick:()=>{o.onSaveClick(d.value)},onCancelClick:o.onCancelClick};e.prepend(function({editor:e,domDocument:t,state:n,props:r}){const o=(0,i.createElement)(t,"div",{class:"raw-html-embed__buttons-wrapper"});if(n.isEditable){const t=b(e,"save",r.onSaveClick),n=b(e,"cancel",r.onCancelClick);o.append(t.element,n.element),a.add(t).add(n)}else{const t=b(e,"edit",r.onEditClick);o.append(t.element),a.add(t)}return o}({editor:t,domDocument:c,state:r,props:s}))}function l({domDocument:e,state:t,props:n}){const r=(0,i.createElement)(e,"textarea",{placeholder:n.placeholder,class:"ck ck-reset ck-input ck-input-text raw-html-embed__source"});return r.disabled=n.isDisabled,r.value=t.getRawHtmlValue(),r}this.editor.editing.view.on("render",(()=>{for(const e of a){if(e.element.isConnected)return;e.destroy(),a.delete(e)}}),{priority:"lowest"}),e.data.registerRawContentMatcher({name:"div",classes:"raw-html-embed"}),e.conversion.for("upcast").elementToElement({view:{name:"div",classes:"raw-html-embed"},model:(e,{writer:t})=>t.createElement("rawHtml",{value:e.getCustomProperty("$rawContent")})}),e.conversion.for("dataDowncast").elementToElement({model:"rawHtml",view:(e,{writer:t})=>t.createRawElement("div",{class:"raw-html-embed"},(function(t){t.innerHTML=e.getAttribute("value")||""}))}),e.conversion.for("editingDowncast").elementToStructure({model:{name:"rawHtml",attributes:["value"]},view:(a,{writer:i})=>{let l,d,s;const m=i.createRawElement("div",{class:"raw-html-embed__content-wrapper"},(function(t){l=t,c({domElement:t,editor:e,state:d,props:s}),l.addEventListener("mousedown",(()=>{if(d.isEditable){const t=e.model;t.document.selection.getSelectedElement()!==a&&t.change((e=>e.setSelection(a,"on")))}}),!0)})),u={makeEditable(){d=Object.assign({},d,{isEditable:!0}),c({domElement:l,editor:e,state:d,props:s}),r.change((e=>{e.setAttribute("data-cke-ignore-events","true",m)})),l.querySelector("textarea").focus()},save(t){t!==d.getRawHtmlValue()?(e.execute("htmlEmbed",t),e.editing.view.focus()):this.cancel()},cancel(){d=Object.assign({},d,{isEditable:!1}),c({domElement:l,editor:e,state:d,props:s}),e.editing.view.focus(),r.change((e=>{e.removeAttribute("data-cke-ignore-events",m)}))}};d={showPreviews:o.showPreviews,isEditable:!1,getRawHtmlValue:()=>a.getAttribute("value")||""},s={sanitizeHtml:o.sanitizeHtml,textareaPlaceholder:n("Paste raw HTML here..."),onEditClick(){u.makeEditable()},onSaveClick(e){u.save(e)},onCancelClick(){u.cancel()}};const b=i.createContainerElement("div",{class:"raw-html-embed","data-html-embed-label":n("HTML snippet"),dir:e.locale.uiLanguageDirection},m);return i.setCustomProperty("rawHtmlApi",u,b),i.setCustomProperty("rawHtml",!0,b),(0,t.toWidget)(b,i,{widgetLabel:n("HTML snippet"),hasSelectionHandle:!0})}})}}function b(t,n,r){const i=t.locale.t,o=new a.ButtonView(t.locale),c=t.commands.get("htmlEmbed");return o.set({class:`raw-html-embed__${n}-button`,icon:e.icons.pencil,tooltip:!0,tooltipPosition:"rtl"===t.locale.uiLanguageDirection?"e":"w"}),o.render(),"edit"===n?(o.set({icon:e.icons.pencil,label:i("Edit source")}),o.bind("isEnabled").to(c)):"save"===n?(o.set({icon:e.icons.check,label:i("Save changes")}),o.bind("isEnabled").to(c)):o.set({icon:e.icons.cancel,label:i("Cancel")}),o.on("execute",r),o}class h extends e.Plugin{static get pluginName(){return"HtmlEmbedUI"}init(){const e=this.editor,t=e.t;e.ui.componentFactory.add("htmlEmbed",(n=>{const r=e.commands.get("htmlEmbed"),i=new a.ButtonView(n);return i.set({label:t("Insert HTML"),icon:'<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M17 0a2 2 0 0 1 2 2v7a1 1 0 0 1 1 1v5a1 1 0 0 1-.883.993l-.118.006L19 17a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2l-.001-1.001-.116-.006A1 1 0 0 1 0 15v-5a1 1 0 0 1 .999-1L1 2a2 2 0 0 1 2-2h14zm.499 15.999h-15L2.5 17a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5l-.001-1.001zm-3.478-6.013-.014.014H14v.007l-1.525 1.525-1.46-1.46-.015.013V10h-1v5h1v-3.53l1.428 1.43.048.043.131-.129L14 11.421V15h1v-5h-.965l-.014-.014zM2 10H1v5h1v-2h2v2h1v-5H4v2H2v-2zm7 0H6v1h1v4h1v-4h1v-1zm8 0h-1v5h3v-1h-2v-4zm0-8.5H3a.5.5 0 0 0-.5.5l-.001 6.999h15L17.5 2a.5.5 0 0 0-.5-.5zM10 7v1H4V7h6zm3-2v1H4V5h9zm-3-2v1H4V3h6z"/></svg>',tooltip:!0}),i.bind("isEnabled").to(r,"isEnabled"),this.listenTo(i,"execute",(()=>{e.execute("htmlEmbed"),e.editing.view.focus();e.editing.view.document.selection.getSelectedElement().getCustomProperty("rawHtmlApi").makeEditable()})),i}))}}class p extends e.Plugin{static get requires(){return[u,h,t.Widget]}static get pluginName(){return"HtmlEmbed"}}})(),(window.CKEditor5=window.CKEditor5||{}).htmlEmbed=r})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack://CKEditor5.htmlEmbed/./theme/htmlembed.css","webpack://CKEditor5.htmlEmbed/../node_modules/css-loader/dist/runtime/api.js","webpack://CKEditor5.htmlEmbed/../node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack://CKEditor5.htmlEmbed/./theme/icons/html.svg","webpack://CKEditor5.htmlEmbed/./theme/htmlembed.css?b945","webpack://CKEditor5.htmlEmbed/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://CKEditor5.htmlEmbed/./src/htmlembed.js","webpack://CKEditor5.htmlEmbed/./src/htmlembedcommand.js","webpack://CKEditor5.htmlEmbed/./src/htmlembedediting.js","webpack://CKEditor5.htmlEmbed/./src/htmlembedui.js","webpack://CKEditor5.htmlEmbed/delegated \"./src/core.js\" from dll-reference CKEditor5.dll","webpack://CKEditor5.htmlEmbed/delegated \"./src/ui.js\" from dll-reference CKEditor5.dll","webpack://CKEditor5.htmlEmbed/delegated \"./src/utils.js\" from dll-reference CKEditor5.dll","webpack://CKEditor5.htmlEmbed/delegated \"./src/widget.js\" from dll-reference CKEditor5.dll","webpack://CKEditor5.htmlEmbed/external var \"CKEditor5.dll\"","webpack://CKEditor5.htmlEmbed/webpack/bootstrap","webpack://CKEditor5.htmlEmbed/webpack/runtime/compat get default export","webpack://CKEditor5.htmlEmbed/webpack/runtime/define property getters","webpack://CKEditor5.htmlEmbed/webpack/runtime/hasOwnProperty shorthand","webpack://CKEditor5.htmlEmbed/webpack/runtime/make namespace object","webpack://CKEditor5.htmlEmbed/./src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAC4H;AAC7B;AAC/F,8BAA8B,mFAA2B,CAAC,wGAAqC;AAC/F;AACA,oEAAoE,iBAAiB,kBAAkB,kBAAkB,eAAe,kBAAkB,iCAAiC,kBAAkB,UAAU,2DAA2D,kBAAkB,aAAa,sBAAsB,mDAAmD,kBAAkB,gBAAgB,aAAa,2DAA2D,WAAW,kBAAkB,YAAY,cAAc,yBAAyB,mBAAmB,+DAA+D,kBAAkB,OAAO,MAAM,QAAQ,SAAS,aAAa,mBAAmB,uBAAuB,MAAM,mEAAmE,mCAAmC,4CAA4C,0FAA0F,2EAA2E,8CAA8C,0BAA0B,mCAAmC,iDAAiD,+DAA+D,kGAAkG,mCAAmC,gBAAgB,mCAAmC,iBAAiB,iCAAiC,oCAAoC,0DAA0D,gCAAgC,gBAAgB,2GAA2G,mIAAmI,kEAAkE,sCAAsC,mCAAmC,gCAAgC,0CAA0C,UAAU,iCAAiC,iIAAiI,iBAAiB,uFAAuF,MAAM,uDAAuD,6FAA6F,MAAM,uDAAuD,wCAAwC,wFAAwF,MAAM,uDAAuD,2DAA2D,mCAAmC,2DAA2D,+BAA+B,iCAAiC,kGAAkG,kCAAkC,oGAAoG,oCAAoC,wFAAwF,mCAAmC,oEAAoE,gCAAgC,WAAW,kDAAkD,sBAAsB,0CAA0C,yCAAyC,YAAY,YAAY,mCAAmC,sBAAsB,WAAW,qBAAqB,mCAAmC,gBAAgB,cAAc,4DAA4D,2DAA2D,iDAAiD,mEAAmE,UAAU,mDAAmD,mDAAmD,yCAAyC,2FAA2F,oBAAoB,2DAA2D,sBAAsB,iDAAiD,6DAA6D,iBAAiB,kBAAkB,+DAA+D,iDAAiD,OAAO,unDAAunD,wPAAwP,uBAAuB,uBAAuB,yNAAyN,uFAAuF,wHAAwH,yBAAyB,8EAA8E,KAAK,2LAA2L,yBAAyB,oBAAoB,6BAA6B,KAAK,kCAAkC,yBAAyB,uBAAuB,oBAAoB,KAAK,0CAA0C,kBAAkB,yBAAyB,mBAAmB,wHAAwH,gCAAgC,0BAA0B,KAAK,8CAA8C,yBAAyB,cAAc,aAAa,eAAe,gBAAgB,sBAAsB,0BAA0B,8BAA8B,KAAK,GAAG,0LAA0L,0EAA0E,wCAAwC,iDAAiD,+FAA+F,kFAAkF,4DAA4D,GAAG,6DAA6D,wCAAwC,sDAAsD,8CAA8C,yGAAyG,KAAK,6FAA6F,uBAAuB,KAAK,sBAAsB,wBAAwB,KAAK,uHAAuH,2CAA2C,mEAAmE,uCAAuC,mCAAmC,kHAAkH,0IAA0I,yEAAyE,6CAA6C,0CAA0C,uCAAuC,KAAK,8BAA8B,iBAAiB,wCAAwC,KAAK,wLAAwL,wBAAwB,KAAK,6EAA6E,eAAe,8DAA8D,KAAK,mFAAmF,aAAa,8DAA8D,+CAA+C,KAAK,8EAA8E,eAAe,8DAA8D,KAAK,kJAAkJ,0CAA0C,KAAK,mFAAmF,sCAAsC,wCAAwC,kDAAkD,2CAA2C,OAAO,oDAAoD,6CAA6C,OAAO,wCAAwC,4CAA4C,OAAO,KAAK,uDAAuD,uCAAuC,kBAAkB,KAAK,mEAAmE,6BAA6B,iDAAiD,gDAAgD,mBAAmB,mBAAmB,0CAA0C,+BAA+B,kBAAkB,4BAA4B,2CAA2C,6FAA6F,qBAAqB,qBAAqB,oEAAoE,0DAA0D,8MAA8M,mBAAmB,OAAO,KAAK,uEAAuE,0DAA0D,gDAAgD,0IAA0I,6BAA6B,OAAO,KAAK,0CAA0C,6BAA6B,wDAAwD,eAAe,0BAA0B,2BAA2B,OAAO,KAAK,8CAA8C,4DAA4D,GAAG,qBAAqB;AACxwZ;AACA,iEAAe,uBAAuB,EAAC;;;;;;;;;;;;ACP1B;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA,4CAA4C,qBAAqB;AACjE;;AAEA;AACA,KAAK;AACL,KAAK;AACL;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,sBAAsB,iBAAiB;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,qBAAqB;AAC1C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACjEa;;AAEb,kCAAkC;;AAElC,8BAA8B;;AAE9B,kDAAkD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD;;AAE7S,uCAAuC,uDAAuD,uCAAuC,SAAS,OAAO,oBAAoB;;AAEzK,yCAAyC,8FAA8F,wBAAwB,eAAe,eAAe,gBAAgB,YAAY,MAAM,wBAAwB,+BAA+B,aAAa,qBAAqB,uCAAuC,cAAc,WAAW,YAAY,UAAU,MAAM,mDAAmD,UAAU,sBAAsB;;AAEve,gCAAgC;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,uDAAuD,cAAc;AACrE;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACnCA,iEAAe,upBAAupB;;;;;;;;;;;;;;;;;;ACAvkB;AAC/F,YAA8K;;AAE9K,eAAe,+CAA+C;;AAE9D;AACA;;AAEA,aAAa,0GAAG,CAAC,0JAAO;;;;AAIxB,iEAAe,iKAAc,MAAM;;;;;;;;;;;ACZtB;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,wDAAwD;;AAExD;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,KAAwC,GAAG,sBAAiB,GAAG,CAAI;;AAEnF;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,qEAAqE,qBAAqB,cAAc;;AAExG;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,yDAAyD;AACzD,IAAI;;AAEJ;;;AAGA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;;AAEA;;AAEA,qBAAqB,6BAA6B;AAClD;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC5QA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE4C;AACE;;AAEI;AACV;;AAExC;AACA;AACA;AACA;AACA;AACA,uCAAuC,+CAA+C;AACtF;AACA;AACA;AACe,wBAAwB,sDAAM;AAC7C;AACA;AACA;AACA;AACA,WAAW,yDAAgB,EAAE,oDAAW,EAAE,wDAAM;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,QAAQ,sEAAsE;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iGAAiG;AACrG;AACA,+DAA+D,gDAAgD;AAC/G,QAAQ,uCAAuC;AAC/C;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA,+DAA+D,gDAAgD;AAC/G,QAAQ,uCAAuC;AAC/C;AACA;AACA,qBAAqB,2DAA2D;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,IAAI,gGAAgG;AACpG;AACA,YAAY,UAAU;AACtB;;AAEA;AACA,8BAA8B,gEAAgE;AAC9F;AACA;AACA;;AAEA;AACA,yDAAyD,iEAAiE;AAC1H;AACA,YAAY,QAAQ;AACpB;;AAEA;AACA;AACA;AACA,YAAY,SAAS;AACrB;;;;;;;;;;;;;;;;;;AC3HA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE6C;AACoB;;AAEjE;AACA;AACA;AACA,iCAAiC,2DAA2D;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,+BAA+B,uDAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA,WAAW,iGAAiG;AAC5G,WAAW,mCAAmC;AAC9C,WAAW,iCAAiC;AAC5C,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,iGAAiG;AAC5G,WAAW,iCAAiC;AAC5C,aAAa;AACb;AACA,wBAAwB,+EAAyB;AACjD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,yCAAyC;AACpD,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;ACpHA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEmD;AACL;AACE;AACgB;;AAEd;;AAElB;;AAEhC;AACA;AACA;AACA;AACA;AACe,+BAA+B,sDAAM;AACpD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+CAA+C;AAC1F;AACA;AACA;AACA,IAAI,+DAAU;;AAEd;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA,0BAA0B,qEAAqE;AAC/F;AACA;AACA;AACA,cAAc,8CAA8C;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ,wCAAwC,yDAAgB;;AAExD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG,IAAI,qBAAqB;;AAE5B;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,IAAI;AACJ,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,IAAI;;AAEJ;AACA;AACA,2BAA2B,SAAS;AACpC,6CAA6C,yBAAyB;AACtE;AACA,MAAM;AACN;AACA,IAAI;;AAEJ;AACA;AACA;AACA,IAAI;AACJ;AACA,2BAA2B,SAAS;AACpC;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,sBAAsB,mCAAmC;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,MAAM;;AAEN;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,QAAQ;;AAER,uBAAuB,sDAAsD;;AAE7E;AACA;AACA,QAAQ;;AAER;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA,+BAA+B;AAC/B;AACA,QAAQ;;AAER,uBAAuB,sDAAsD;AAC7E;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,WAAW,8DAAQ;AACnB;AACA;AACA,MAAM;AACN;AACA,IAAI;;AAEJ,4BAA4B,mCAAmC;AAC/D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,2CAA2C;;AAElF;AACA,KAAK;AACL;AACA;AACA;;AAEA,iDAAiD,2DAA2D;AAC5G,KAAK;AACL;AACA;AACA;AACA;;AAEA,4CAA4C,2CAA2C;AACvF;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,kDAAkD,yDAAyD;AAC3G;;AAEA,sCAAsC,oCAAoC;AAC1E,6BAA6B,kEAAa;AAC1C;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,gCAAgC,4BAA4B;AAC5D,uBAAuB,kEAAa;AACpC;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA,qCAAqC,oCAAoC;AACzE;AACA;AACA;AACA;;AAEA,iCAAiC,kEAAa;AAC9C;AACA,IAAI;;AAEJ,6BAA6B,kEAAa;AAC1C;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;;AAEA,+BAA+B,kEAAa;AAC5C;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,4BAA4B;AACxC,YAAY,wBAAwB;AACpC,YAAY,UAAU;AACtB,cAAc;AACd;AACA;AACA,wBAAwB,wDAAU;AAClC;;AAEA;AACA,6BAA6B,MAAM;AACnC,QAAQ,4DAAY;AACpB;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA,SAAS,4DAAY;AACrB;AACA,IAAI;;AAEJ;AACA,GAAG;AACH;AACA,SAAS,2DAAW;AACpB;AACA,IAAI;;AAEJ;AACA,GAAG;AACH;AACA,SAAS,4DAAY;AACrB;AACA,IAAI;AACJ;;AAEA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;ACpZA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE4C;AACE;;AAEM;;AAEpD;AACA;AACA;AACA;AACA;AACe,0BAA0B,sDAAM;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,wDAAU;;AAE9B;AACA;AACA,UAAU,6DAAa;AACvB;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA,IAAI;AACJ;AACA;;;;;;;;;;;AC5DA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEmD;AACc;AACV","file":"html-embed.js","sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-widget.raw-html-embed{margin:.9em auto;position:relative;display:flow-root;min-width:15em;font-style:normal}.ck-widget.raw-html-embed:before{position:absolute;z-index:1}.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper{position:absolute;display:flex;flex-direction:column}.ck-widget.raw-html-embed .raw-html-embed__preview{position:relative;overflow:hidden;display:flex}.ck-widget.raw-html-embed .raw-html-embed__preview-content{width:100%;position:relative;margin:auto;display:table;border-collapse:separate;border-spacing:7px}.ck-widget.raw-html-embed .raw-html-embed__preview-placeholder{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}:root{--ck-html-embed-content-width:calc(100% - var(--ck-icon-size)*1.5);--ck-html-embed-source-height:10em;--ck-html-embed-unfocused-outline-width:1px;--ck-html-embed-content-min-height:calc(var(--ck-icon-size) + var(--ck-spacing-standard));--ck-html-embed-source-disabled-background:var(--ck-color-base-foreground);--ck-html-embed-source-disabled-color:#737373}.ck-widget.raw-html-embed{font-size:var(--ck-font-size-base);background-color:var(--ck-color-base-foreground)}.ck-widget.raw-html-embed:not(.ck-widget_selected):not(:hover){outline:var(--ck-html-embed-unfocused-outline-width) dashed var(--ck-color-widget-blurred-border)}.ck-widget.raw-html-embed[dir=ltr]{text-align:left}.ck-widget.raw-html-embed[dir=rtl]{text-align:right}.ck-widget.raw-html-embed:before{content:attr(data-html-embed-label);top:calc(var(--ck-html-embed-unfocused-outline-width)*-1);left:var(--ck-spacing-standard);background:#999;transition:background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);padding:calc(var(--ck-spacing-tiny) + var(--ck-html-embed-unfocused-outline-width)) var(--ck-spacing-small) var(--ck-spacing-tiny);border-radius:0 0 var(--ck-border-radius) var(--ck-border-radius);color:var(--ck-color-base-background);font-size:var(--ck-font-size-tiny);font-family:var(--ck-font-face)}.ck-widget.raw-html-embed[dir=rtl]:before{left:auto;right:var(--ck-spacing-standard)}.ck-widget.raw-html-embed[dir=ltr] .ck-widget__type-around .ck-widget__type-around__button.ck-widget__type-around__button_before{margin-left:50px}.ck.ck-editor__editable.ck-blurred .ck-widget.raw-html-embed.ck-widget_selected:before{top:0;padding:var(--ck-spacing-tiny) var(--ck-spacing-small)}.ck.ck-editor__editable:not(.ck-blurred) .ck-widget.raw-html-embed.ck-widget_selected:before{top:0;padding:var(--ck-spacing-tiny) var(--ck-spacing-small);background:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck-widget.raw-html-embed:not(.ck-widget_selected):hover:before{top:0;padding:var(--ck-spacing-tiny) var(--ck-spacing-small)}.ck-widget.raw-html-embed .raw-html-embed__content-wrapper{padding:var(--ck-spacing-standard)}.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper{top:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button.raw-html-embed__save-button{color:var(--ck-color-button-save)}.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button.raw-html-embed__cancel-button{color:var(--ck-color-button-cancel)}.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button:not(:first-child){margin-top:var(--ck-spacing-small)}.ck-widget.raw-html-embed[dir=rtl] .raw-html-embed__buttons-wrapper{left:var(--ck-spacing-standard);right:auto}.ck-widget.raw-html-embed .raw-html-embed__source{box-sizing:border-box;height:var(--ck-html-embed-source-height);width:var(--ck-html-embed-content-width);resize:none;min-width:0;padding:var(--ck-spacing-standard);font-family:monospace;tab-size:4;white-space:pre-wrap;font-size:var(--ck-font-size-base);text-align:left;direction:ltr}.ck-widget.raw-html-embed .raw-html-embed__source[disabled]{background:var(--ck-html-embed-source-disabled-background);color:var(--ck-html-embed-source-disabled-color);-webkit-text-fill-color:var(--ck-html-embed-source-disabled-color);opacity:1}.ck-widget.raw-html-embed .raw-html-embed__preview{min-height:var(--ck-html-embed-content-min-height);width:var(--ck-html-embed-content-width)}.ck-editor__editable:not(.ck-read-only) .ck-widget.raw-html-embed .raw-html-embed__preview{pointer-events:none}.ck-widget.raw-html-embed .raw-html-embed__preview-content{box-sizing:border-box;background-color:var(--ck-color-base-foreground)}.ck-widget.raw-html-embed .raw-html-embed__preview-content>*{margin-left:auto;margin-right:auto}.ck-widget.raw-html-embed .raw-html-embed__preview-placeholder{color:var(--ck-html-embed-source-disabled-color)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./theme/htmlembed.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-html-embed/htmlembed.css\"],\"names\":[],\"mappings\":\"AAMA,0BAIC,gBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAIlB,cAAe,CAGf,iBAgDD,CA5CC,iCACC,iBAAkB,CAGlB,SACD,CAKA,2DACC,iBAAkB,CAClB,YAAa,CACb,qBACD,CAEA,mDACC,iBAAkB,CAClB,eAAgB,CAChB,YACD,CAEA,2DACC,UAAW,CACX,iBAAkB,CAClB,WAAY,CAGZ,aAAc,CACd,wBAAyB,CACzB,kBACD,CAEA,+DACC,iBAAkB,CAClB,MAAO,CACP,KAAM,CACN,OAAQ,CACR,QAAS,CAET,YAAa,CACb,kBAAmB,CACnB,sBACD,CC7DD,MACC,kEAAqE,CACrE,kCAAmC,CACnC,2CAA4C,CAC5C,yFAA0F,CAE1F,0EAA2E,CAC3E,6CACD,CAGA,0BACC,kCAAmC,CACnC,gDAyID,CAvIC,+DACC,iGACD,CAGA,mCACC,eACD,CAEA,mCACC,gBACD,CAIA,iCACC,mCAAoC,CACpC,yDAA4D,CAC5D,+BAAgC,CAChC,eAA4B,CAC5B,0GAA2G,CAC3G,kIAAmI,CACnI,iEAAkE,CAClE,qCAAsC,CACtC,kCAAmC,CACnC,+BACD,CAEA,0CACC,SAAU,CACV,gCACD,CAGA,iIACC,gBACD,CAxCD,uFA2CE,KAAQ,CACR,sDA+FF,CA3IA,6FAgDE,KAAM,CACN,sDAAuD,CACvD,uCAyFF,CA3IA,wFAsDE,KAAQ,CACR,sDAoFF,CA/EC,2DACC,kCACD,CAGA,2DACC,8BAA+B,CAC/B,gCAaD,CAXC,kGACC,iCACD,CAEA,oGACC,mCACD,CAEA,wFACC,kCACD,CAGD,oEACC,+BAAgC,CAChC,UACD,CAGA,kDACC,qBAAsB,CACtB,yCAA0C,CAC1C,wCAAyC,CACzC,WAAY,CACZ,WAAY,CACZ,kCAAmC,CAEnC,qBAAsB,CACtB,UAAW,CACX,oBAAqB,CACrB,kCAAmC,CAGnC,eAAgB,CAChB,aAUD,CARC,4DACC,0DAA2D,CAC3D,gDAAiD,CAGjD,kEAAmE,CACnE,SACD,CAID,mDACC,kDAAmD,CACnD,wCAMD,CARA,2FAME,mBAEF,CAEA,2DACC,qBAAsB,CACtB,gDAMD,CAJC,6DACC,gBAAiB,CACjB,iBACD,CAGD,+DACC,gDACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* The feature container. */\\n.ck-widget.raw-html-embed {\\n\\t/* Give the embed some air. */\\n\\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\\n\\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\\n\\tmargin: 0.9em auto;\\n\\tposition: relative;\\n\\tdisplay: flow-root;\\n\\n\\t/* Give the html embed some minimal width in the content to prevent them\\n\\tfrom being \\\"squashed\\\" in tight spaces, e.g. in table cells (https://github.com/ckeditor/ckeditor5/issues/8331) */\\n\\tmin-width: 15em;\\n\\n\\t/* Don't inherit the style, e.g. when in a block quote. */\\n\\tfont-style: normal;\\n\\n\\t/* ----- Emebed label in the upper left corner ----------------------------------------------- */\\n\\n\\t&::before {\\n\\t\\tposition: absolute;\\n\\n\\t\\t/* Make sure the content does not cover the label. */\\n\\t\\tz-index: 1;\\n\\t}\\n\\n\\t/* ----- Emebed internals --------------------------------------------------------------------- */\\n\\n\\t/* The switch mode button wrapper. */\\n\\t& .raw-html-embed__buttons-wrapper {\\n\\t\\tposition: absolute;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t}\\n\\n\\t& .raw-html-embed__preview {\\n\\t\\tposition: relative;\\n\\t\\toverflow: hidden;\\n\\t\\tdisplay: flex;\\n\\t}\\n\\n\\t& .raw-html-embed__preview-content {\\n\\t\\twidth: 100%;\\n\\t\\tposition: relative;\\n\\t\\tmargin: auto;\\n\\n\\t\\t/* Gives spacing to the small renderable elements, so they always cover the placeholder. */\\n\\t\\tdisplay: table;\\n\\t\\tborder-collapse: separate;\\n\\t\\tborder-spacing: 7px;\\n\\t}\\n\\n\\t& .raw-html-embed__preview-placeholder {\\n\\t\\tposition: absolute;\\n\\t\\tleft: 0;\\n\\t\\ttop: 0;\\n\\t\\tright: 0;\\n\\t\\tbottom: 0;\\n\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-html-embed-content-width: calc(100% - 1.5 * var(--ck-icon-size));\\n\\t--ck-html-embed-source-height: 10em;\\n\\t--ck-html-embed-unfocused-outline-width: 1px;\\n\\t--ck-html-embed-content-min-height: calc(var(--ck-icon-size) + var(--ck-spacing-standard));\\n\\n\\t--ck-html-embed-source-disabled-background: var(--ck-color-base-foreground);\\n\\t--ck-html-embed-source-disabled-color: hsl(0deg 0% 45%);\\n}\\n\\n/* The feature container. */\\n.ck-widget.raw-html-embed {\\n\\tfont-size: var(--ck-font-size-base);\\n\\tbackground-color: var(--ck-color-base-foreground);\\n\\n\\t&:not(.ck-widget_selected):not(:hover) {\\n\\t\\toutline: var(--ck-html-embed-unfocused-outline-width) dashed var(--ck-color-widget-blurred-border);\\n\\t}\\n\\n\\t/* HTML embed widget itself should respect UI language direction */\\n\\t&[dir=\\\"ltr\\\"] {\\n\\t\\ttext-align: left;\\n\\t}\\n\\n\\t&[dir=\\\"rtl\\\"] {\\n\\t\\ttext-align: right;\\n\\t}\\n\\n\\t/* ----- Embed label in the upper left corner ----------------------------------------------- */\\n\\n\\t&::before {\\n\\t\\tcontent: attr(data-html-embed-label);\\n\\t\\ttop: calc(-1 * var(--ck-html-embed-unfocused-outline-width));\\n\\t\\tleft: var(--ck-spacing-standard);\\n\\t\\tbackground: hsl(0deg 0% 60%);\\n\\t\\ttransition: background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\\n\\t\\tpadding: calc(var(--ck-spacing-tiny) + var(--ck-html-embed-unfocused-outline-width)) var(--ck-spacing-small) var(--ck-spacing-tiny);\\n\\t\\tborder-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);\\n\\t\\tcolor: var(--ck-color-base-background);\\n\\t\\tfont-size: var(--ck-font-size-tiny);\\n\\t\\tfont-family: var(--ck-font-face);\\n\\t}\\n\\n\\t&[dir=\\\"rtl\\\"]::before {\\n\\t\\tleft: auto;\\n\\t\\tright: var(--ck-spacing-standard);\\n\\t}\\n\\n\\t/* Make space for label but it only collides in LTR languages */\\n\\t&[dir=\\\"ltr\\\"] .ck-widget__type-around .ck-widget__type-around__button.ck-widget__type-around__button_before {\\n\\t\\tmargin-left: 50px;\\n\\t}\\n\\n\\t@nest .ck.ck-editor__editable.ck-blurred &.ck-widget_selected::before {\\n\\t\\ttop: 0px;\\n\\t\\tpadding: var(--ck-spacing-tiny) var(--ck-spacing-small);\\n\\t}\\n\\n\\t@nest .ck.ck-editor__editable:not(.ck-blurred) &.ck-widget_selected::before {\\n\\t\\ttop: 0;\\n\\t\\tpadding: var(--ck-spacing-tiny) var(--ck-spacing-small);\\n\\t\\tbackground: var(--ck-color-focus-border);\\n\\t}\\n\\n\\t@nest .ck.ck-editor__editable &:not(.ck-widget_selected):hover::before {\\n\\t\\ttop: 0px;\\n\\t\\tpadding: var(--ck-spacing-tiny) var(--ck-spacing-small);\\n\\t}\\n\\n\\t/* ----- Emebed internals --------------------------------------------------------------------- */\\n\\n\\t& .raw-html-embed__content-wrapper {\\n\\t\\tpadding: var(--ck-spacing-standard);\\n\\t}\\n\\n\\t/* The switch mode button wrapper. */\\n\\t& .raw-html-embed__buttons-wrapper {\\n\\t\\ttop: var(--ck-spacing-standard);\\n\\t\\tright: var(--ck-spacing-standard);\\n\\n\\t\\t& .ck-button.raw-html-embed__save-button {\\n\\t\\t\\tcolor: var(--ck-color-button-save);\\n\\t\\t}\\n\\n\\t\\t& .ck-button.raw-html-embed__cancel-button {\\n\\t\\t\\tcolor: var(--ck-color-button-cancel);\\n\\t\\t}\\n\\n\\t\\t& .ck-button:not(:first-child) {\\n\\t\\t\\tmargin-top: var(--ck-spacing-small);\\n\\t\\t}\\n\\t}\\n\\n\\t&[dir=\\\"rtl\\\"] .raw-html-embed__buttons-wrapper {\\n\\t\\tleft: var(--ck-spacing-standard);\\n\\t\\tright: auto;\\n\\t}\\n\\n\\t/* The edit source element. */\\n\\t& .raw-html-embed__source {\\n\\t\\tbox-sizing: border-box;\\n\\t\\theight: var(--ck-html-embed-source-height);\\n\\t\\twidth: var(--ck-html-embed-content-width);\\n\\t\\tresize: none;\\n\\t\\tmin-width: 0;\\n\\t\\tpadding: var(--ck-spacing-standard);\\n\\n\\t\\tfont-family: monospace;\\n\\t\\ttab-size: 4;\\n\\t\\twhite-space: pre-wrap;\\n\\t\\tfont-size: var(--ck-font-size-base); /* Safari needs this. */\\n\\n\\t\\t/* HTML code is direction–agnostic. */\\n\\t\\ttext-align: left;\\n\\t\\tdirection: ltr;\\n\\n\\t\\t&[disabled] {\\n\\t\\t\\tbackground: var(--ck-html-embed-source-disabled-background);\\n\\t\\t\\tcolor: var(--ck-html-embed-source-disabled-color);\\n\\n\\t\\t\\t/* Safari needs this for the proper text color in disabled input (https://github.com/ckeditor/ckeditor5/issues/8320). */\\n\\t\\t\\t-webkit-text-fill-color: var(--ck-html-embed-source-disabled-color);\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t/* The preview data container. */\\n\\t& .raw-html-embed__preview {\\n\\t\\tmin-height: var(--ck-html-embed-content-min-height);\\n\\t\\twidth: var(--ck-html-embed-content-width);\\n\\n\\t\\t/* Disable all mouse interaction as long as the editor is not read–only. */\\n\\t\\t@nest .ck-editor__editable:not(.ck-read-only) & {\\n\\t\\t\\tpointer-events: none;\\n\\t\\t}\\n\\t}\\n\\n\\t& .raw-html-embed__preview-content {\\n\\t\\tbox-sizing: border-box;\\n\\t\\tbackground-color: var(--ck-color-base-foreground);\\n\\n\\t\\t& > * {\\n\\t\\t\\tmargin-left: auto;\\n\\t\\t\\tmargin-right: auto;\\n\\t\\t}\\n\\t}\\n\\n\\t& .raw-html-embed__preview-placeholder {\\n\\t\\tcolor: var(--ck-html-embed-source-disabled-color)\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M17 0a2 2 0 0 1 2 2v7a1 1 0 0 1 1 1v5a1 1 0 0 1-.883.993l-.118.006L19 17a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2l-.001-1.001-.116-.006A1 1 0 0 1 0 15v-5a1 1 0 0 1 .999-1L1 2a2 2 0 0 1 2-2h14zm.499 15.999h-15L2.5 17a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5l-.001-1.001zm-3.478-6.013-.014.014H14v.007l-1.525 1.525-1.46-1.46-.015.013V10h-1v5h1v-3.53l1.428 1.43.048.043.131-.129L14 11.421V15h1v-5h-.965l-.014-.014zM2 10H1v5h1v-2h2v2h1v-5H4v2H2v-2zm7 0H6v1h1v4h1v-4h1v-1zm8 0h-1v5h3v-1h-2v-4zm0-8.5H3a.5.5 0 0 0-.5.5l-.001 6.999h15L17.5 2a.5.5 0 0 0-.5-.5zM10 7v1H4V7h6zm3-2v1H4V5h9zm-3-2v1H4V3h6z\\\"/></svg>\";","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./htmlembed.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module html-embed/htmlembed\n */\n\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Widget } from 'ckeditor5/src/widget';\n\nimport HtmlEmbedEditing from './htmlembedediting';\nimport HtmlEmbedUI from './htmlembedui';\n\n/**\n * The HTML embed feature.\n *\n * It allows inserting HTML snippets directly into the editor.\n *\n * For a detailed overview, check the {@glink features/html-embed HTML embed feature} documentation.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class HtmlEmbed extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get requires() {\n\t\treturn [ HtmlEmbedEditing, HtmlEmbedUI, Widget ];\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'HtmlEmbed';\n\t}\n}\n\n/**\n * The configuration of the HTML embed feature.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n * \t\t\t\thtmlEmbed: ... // HTML embed feature options.\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n *\n * @interface HtmlEmbedConfig\n */\n\n/**\n * Whether the feature should render previews of the embedded HTML.\n *\n * When set to `true`, the feature will produce a preview of the inserted HTML based on a sanitized\n * version of the HTML provided by the user.\n *\n * The function responsible for sanitizing the HTML needs to be specified in\n * {@link module:html-embed/htmlembed~HtmlEmbedConfig#sanitizeHtml `config.htmlEmbed.sanitizeHtml()`}.\n *\n * Read more about the security aspect of this feature in the {@glink features/html-embed#security \"Security\"} section of\n * the {@glink features/html-embed HTML embed} feature guide.\n *\n * @member {Boolean} [module:html-embed/htmlembed~HtmlEmbedConfig#showPreviews=false]\n */\n\n/**\n * Callback used to sanitize the HTML provided by the user when generating previews of it in the editor.\n *\n * We strongly recommend overwriting the default function to avoid XSS vulnerabilities.\n *\n * Read more about the security aspect of this feature in the {@glink features/html-embed#security \"Security\"} section of\n * the {@glink features/html-embed HTML embed} feature guide.\n *\n * The function receives the input HTML (as a string), and should return an object\n * that matches the {@link module:html-embed/htmlembed~HtmlEmbedSanitizeOutput} interface.\n *\n * \tClassicEditor\n * \t\t\t.create( editorElement, {\n * \t\t\t\thtmlEmbed: {\n * \t\t\t\t\tshowPreviews: true,\n * \t\t\t\t\tsanitizeHtml( inputHtml ) {\n * \t\t\t\t\t\t// Strip unsafe elements and attributes, e.g.:\n * \t\t\t\t\t\t// the `<script>` elements and `on*` attributes.\n * \t\t\t\t\t\tconst outputHtml = sanitize( inputHtml );\n *\n * \t\t\t\t\t\treturn {\n * \t\t\t\t\t\t\thtml: outputHtml,\n *\t\t\t\t\t\t\t// true or false depending on whether the sanitizer stripped anything.\n * \t\t\t\t\t\t\thasChanged: ...\n * \t\t\t\t\t\t};\n * \t\t\t\t\t},\n * \t\t\t\t}\n * \t\t\t} )\n * \t\t\t.then( ... )\n * \t\t\t.catch( ... );\n *\n * **Note:** The function is used only when the feature\n * {@link module:html-embed/htmlembed~HtmlEmbedConfig#showPreviews is configured to render previews}.\n *\n * @member {Function} [module:html-embed/htmlembed~HtmlEmbedConfig#sanitizeHtml]\n */\n\n/**\n * An object returned by the {@link module:html-embed/htmlembed~HtmlEmbedConfig#sanitizeHtml} function.\n *\n * @interface HtmlEmbedSanitizeOutput\n */\n\n/**\n * An output (safe) HTML that will be inserted into the {@glink framework/guides/architecture/editing-engine editing view}.\n *\n * @member {String} module:html-embed/htmlembed~HtmlEmbedSanitizeOutput#html\n */\n\n/**\n * A flag that indicates whether the output HTML is different than the input value.\n *\n * @member {Boolean} [module:html-embed/htmlembed~HtmlEmbedSanitizeOutput#hasChanged]\n */\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module html-embed/htmlembedcommand\n */\n\nimport { Command } from 'ckeditor5/src/core';\nimport { findOptimalInsertionRange } from 'ckeditor5/src/widget';\n\n/**\n * The insert HTML embed element command.\n *\n * The command is registered by {@link module:html-embed/htmlembedediting~HtmlEmbedEditing} as `'htmlEmbed'`.\n *\n * To insert an empty HTML embed element at the current selection, execute the command:\n *\n *\t\teditor.execute( 'htmlEmbed' );\n *\n * You can specify the initial content of a new HTML embed in the argument:\n *\n *\t\teditor.execute( 'htmlEmbed', '<b>Initial content.</b>' );\n *\n * To update the content of the HTML embed, select it in the model and pass the content in the argument:\n *\n *\t\teditor.execute( 'htmlEmbed', '<b>New content of an existing embed.</b>' );\n *\n * @extends module:core/command~Command\n */\nexport default class HtmlEmbedCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\trefresh() {\n\t\tconst model = this.editor.model;\n\t\tconst schema = model.schema;\n\t\tconst selection = model.document.selection;\n\t\tconst selectedRawHtmlElement = getSelectedRawHtmlModelWidget( selection );\n\n\t\tthis.isEnabled = isHtmlEmbedAllowedInParent( selection, schema, model );\n\t\tthis.value = selectedRawHtmlElement ? selectedRawHtmlElement.getAttribute( 'value' ) || '' : null;\n\t}\n\n\t/**\n\t * Executes the command, which either:\n\t *\n\t * * creates and inserts a new HTML embed element if none was selected,\n\t * * updates the content of the HTML embed if one was selected.\n\t *\n\t * @fires execute\n\t * @param {String} [value] When passed, the value (content) will be set on a new embed or a selected one.\n\t */\n\texecute( value ) {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\n\t\tmodel.change( writer => {\n\t\t\tlet htmlEmbedElement;\n\n\t\t\t// If the command has a non-null value, there must be some HTML embed selected in the model.\n\t\t\tif ( this.value !== null ) {\n\t\t\t\thtmlEmbedElement = getSelectedRawHtmlModelWidget( selection );\n\t\t\t} else {\n\t\t\t\thtmlEmbedElement = writer.createElement( 'rawHtml' );\n\n\t\t\t\tmodel.insertContent( htmlEmbedElement );\n\t\t\t\twriter.setSelection( htmlEmbedElement, 'on' );\n\t\t\t}\n\n\t\t\twriter.setAttribute( 'value', value, htmlEmbedElement );\n\t\t} );\n\t}\n}\n\n// Checks if an HTML embed is allowed by the schema in the optimal insertion parent.\n//\n// @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\n// @param {module:engine/model/schema~Schema} schema\n// @param {module:engine/model/model~Model} model\n// @returns {Boolean}\nfunction isHtmlEmbedAllowedInParent( selection, schema, model ) {\n\tconst parent = getInsertHtmlEmbedParent( selection, model );\n\n\treturn schema.checkChild( parent, 'rawHtml' );\n}\n\n// Returns a node that will be used to insert a html embed with `model.insertContent` to check if a html embed element can be placed there.\n//\n// @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\n// @param {module:engine/model/model~Model} model\n// @returns {module:engine/model/element~Element}\nfunction getInsertHtmlEmbedParent( selection, model ) {\n\tconst insertionRange = findOptimalInsertionRange( selection, model );\n\tconst parent = insertionRange.start.parent;\n\n\tif ( parent.isEmpty && !parent.is( 'element', '$root' ) ) {\n\t\treturn parent.parent;\n\t}\n\n\treturn parent;\n}\n\n// Returns the selected HTML embed element in the model, if any.\n//\n// @param {module:engine/model/selection~Selection} selection\n// @returns {module:engine/model/element~Element|null}\nfunction getSelectedRawHtmlModelWidget( selection ) {\n\tconst selectedElement = selection.getSelectedElement();\n\n\tif ( selectedElement && selectedElement.is( 'element', 'rawHtml' ) ) {\n\t\treturn selectedElement;\n\t}\n\n\treturn null;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module html-embed/htmlembedediting\n */\n\nimport { Plugin, icons } from 'ckeditor5/src/core';\nimport { ButtonView } from 'ckeditor5/src/ui';\nimport { toWidget } from 'ckeditor5/src/widget';\nimport { logWarning, createElement } from 'ckeditor5/src/utils';\n\nimport HtmlEmbedCommand from './htmlembedcommand';\n\nimport '../theme/htmlembed.css';\n\n/**\n * The HTML embed editing feature.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class HtmlEmbedEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'HtmlEmbedEditing';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor ) {\n\t\tsuper( editor );\n\n\t\teditor.config.define( 'htmlEmbed', {\n\t\t\tshowPreviews: false,\n\t\t\tsanitizeHtml: rawHtml => {\n\t\t\t\t/**\n\t\t\t\t * When using the HTML embed feature with the `htmlEmbed.showPreviews=true` option, it is strongly recommended to\n\t\t\t\t * define a sanitize function that will clean up the input HTML in order to avoid XSS vulnerability.\n\t\t\t\t *\n\t\t\t\t * For a detailed overview, check the {@glink features/html-embed HTML embed feature} documentation.\n\t\t\t\t *\n\t\t\t\t * @error html-embed-provide-sanitize-function\n\t\t\t\t */\n\t\t\t\tlogWarning( 'html-embed-provide-sanitize-function' );\n\n\t\t\t\treturn {\n\t\t\t\t\thtml: rawHtml,\n\t\t\t\t\thasChanged: false\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t/**\n\t\t * Keeps references to {@link module:ui/button/buttonview~ButtonView edit, save, and cancel} button instances created for\n\t\t * each widget so they can be destroyed if they are no longer in DOM after the editing view was re-rendered.\n\t\t *\n\t\t * @private\n\t\t * @member {Set.<module:ui/button/buttonview~ButtonView>} #_widgetButtonViewReferences\n\t\t */\n\t\tthis._widgetButtonViewReferences = new Set();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\n\t\tschema.register( 'rawHtml', {\n\t\t\tisObject: true,\n\t\t\tallowWhere: '$block',\n\t\t\tallowAttributes: [ 'value' ]\n\t\t} );\n\n\t\teditor.commands.add( 'htmlEmbed', new HtmlEmbedCommand( editor ) );\n\n\t\tthis._setupConversion();\n\t}\n\n\t/**\n\t * Prepares converters for the feature.\n\t *\n\t * @private\n\t */\n\t_setupConversion() {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\t\tconst view = editor.editing.view;\n\t\tconst widgetButtonViewReferences = this._widgetButtonViewReferences;\n\n\t\tconst htmlEmbedConfig = editor.config.get( 'htmlEmbed' );\n\n\t\t// Destroy UI buttons created for widgets that have been removed from the view document (e.g. in the previous conversion).\n\t\t// This prevents unexpected memory leaks from UI views.\n\t\tthis.editor.editing.view.on( 'render', () => {\n\t\t\tfor ( const buttonView of widgetButtonViewReferences ) {\n\t\t\t\tif ( buttonView.element.isConnected ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tbuttonView.destroy();\n\t\t\t\twidgetButtonViewReferences.delete( buttonView );\n\t\t\t}\n\t\t}, { priority: 'lowest' } );\n\n\t\t// Register div.raw-html-embed as a raw content element so all of it's content will be provided\n\t\t// as a view element's custom property while data upcasting.\n\t\teditor.data.registerRawContentMatcher( {\n\t\t\tname: 'div',\n\t\t\tclasses: 'raw-html-embed'\n\t\t} );\n\n\t\teditor.conversion.for( 'upcast' ).elementToElement( {\n\t\t\tview: {\n\t\t\t\tname: 'div',\n\t\t\t\tclasses: 'raw-html-embed'\n\t\t\t},\n\t\t\tmodel: ( viewElement, { writer } ) => {\n\t\t\t\t// The div.raw-html-embed is registered as a raw content element,\n\t\t\t\t// so all it's content is available in a custom property.\n\t\t\t\treturn writer.createElement( 'rawHtml', {\n\t\t\t\t\tvalue: viewElement.getCustomProperty( '$rawContent' )\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\teditor.conversion.for( 'dataDowncast' ).elementToElement( {\n\t\t\tmodel: 'rawHtml',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\treturn writer.createRawElement( 'div', { class: 'raw-html-embed' }, function( domElement ) {\n\t\t\t\t\tdomElement.innerHTML = modelElement.getAttribute( 'value' ) || '';\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\teditor.conversion.for( 'editingDowncast' ).elementToElement( {\n\t\t\ttriggerBy: {\n\t\t\t\tattributes: [ 'value' ]\n\t\t\t},\n\t\t\tmodel: 'rawHtml',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tlet domContentWrapper, state, props;\n\n\t\t\t\tconst viewContainer = writer.createContainerElement( 'div', {\n\t\t\t\t\tclass: 'raw-html-embed',\n\t\t\t\t\t'data-html-embed-label': t( 'HTML snippet' ),\n\t\t\t\t\tdir: editor.locale.uiLanguageDirection\n\t\t\t\t} );\n\t\t\t\t// Widget cannot be a raw element because the widget system would not be able\n\t\t\t\t// to add its UI to it. Thus, we need this wrapper.\n\t\t\t\tconst viewContentWrapper = writer.createRawElement( 'div', {\n\t\t\t\t\tclass: 'raw-html-embed__content-wrapper'\n\t\t\t\t}, function( domElement ) {\n\t\t\t\t\tdomContentWrapper = domElement;\n\n\t\t\t\t\trenderContent( { domElement, editor, state, props } );\n\n\t\t\t\t\t// Since there is a `data-cke-ignore-events` attribute set on the wrapper element in the editable mode,\n\t\t\t\t\t// the explicit `mousedown` handler on the `capture` phase is needed to move the selection onto the whole\n\t\t\t\t\t// HTML embed widget.\n\t\t\t\t\tdomContentWrapper.addEventListener( 'mousedown', () => {\n\t\t\t\t\t\tif ( state.isEditable ) {\n\t\t\t\t\t\t\tconst model = editor.model;\n\t\t\t\t\t\t\tconst selectedElement = model.document.selection.getSelectedElement();\n\n\t\t\t\t\t\t\t// Move the selection onto the whole HTML embed widget if it's currently not selected.\n\t\t\t\t\t\t\tif ( selectedElement !== modelElement ) {\n\t\t\t\t\t\t\t\tmodel.change( writer => writer.setSelection( modelElement, 'on' ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, true );\n\t\t\t\t} );\n\n\t\t\t\t// API exposed on each raw HTML embed widget so other features can control a particular widget.\n\t\t\t\tconst rawHtmlApi = {\n\t\t\t\t\tmakeEditable() {\n\t\t\t\t\t\tstate = Object.assign( {}, state, {\n\t\t\t\t\t\t\tisEditable: true\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\trenderContent( { domElement: domContentWrapper, editor, state, props } );\n\n\t\t\t\t\t\tview.change( writer => {\n\t\t\t\t\t\t\twriter.setAttribute( 'data-cke-ignore-events', 'true', viewContentWrapper );\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t// This could be potentially pulled to a separate method called focusTextarea().\n\t\t\t\t\t\tdomContentWrapper.querySelector( 'textarea' ).focus();\n\t\t\t\t\t},\n\t\t\t\t\tsave( newValue ) {\n\t\t\t\t\t\t// If the value didn't change, we just cancel. If it changed,\n\t\t\t\t\t\t// it's enough to update the model – the entire widget will be reconverted.\n\t\t\t\t\t\tif ( newValue !== state.getRawHtmlValue() ) {\n\t\t\t\t\t\t\teditor.execute( 'htmlEmbed', newValue );\n\t\t\t\t\t\t\teditor.editing.view.focus();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.cancel();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tcancel() {\n\t\t\t\t\t\tstate = Object.assign( {}, state, {\n\t\t\t\t\t\t\tisEditable: false\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\trenderContent( { domElement: domContentWrapper, editor, state, props } );\n\t\t\t\t\t\teditor.editing.view.focus();\n\n\t\t\t\t\t\tview.change( writer => {\n\t\t\t\t\t\t\twriter.removeAttribute( 'data-cke-ignore-events', viewContentWrapper );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tstate = {\n\t\t\t\t\tshowPreviews: htmlEmbedConfig.showPreviews,\n\t\t\t\t\tisEditable: false,\n\t\t\t\t\tgetRawHtmlValue: () => modelElement.getAttribute( 'value' ) || ''\n\t\t\t\t};\n\n\t\t\t\tprops = {\n\t\t\t\t\tsanitizeHtml: htmlEmbedConfig.sanitizeHtml,\n\t\t\t\t\ttextareaPlaceholder: t( 'Paste raw HTML here...' ),\n\n\t\t\t\t\tonEditClick() {\n\t\t\t\t\t\trawHtmlApi.makeEditable();\n\t\t\t\t\t},\n\t\t\t\t\tonSaveClick( newValue ) {\n\t\t\t\t\t\trawHtmlApi.save( newValue );\n\t\t\t\t\t},\n\t\t\t\t\tonCancelClick() {\n\t\t\t\t\t\trawHtmlApi.cancel();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\twriter.insert( writer.createPositionAt( viewContainer, 0 ), viewContentWrapper );\n\n\t\t\t\twriter.setCustomProperty( 'rawHtmlApi', rawHtmlApi, viewContainer );\n\t\t\t\twriter.setCustomProperty( 'rawHtml', true, viewContainer );\n\n\t\t\t\treturn toWidget( viewContainer, writer, {\n\t\t\t\t\twidgetLabel: t( 'HTML snippet' ),\n\t\t\t\t\thasSelectionHandle: true\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\tfunction renderContent( { domElement, editor, state, props } ) {\n\t\t\t// Remove all children;\n\t\t\tdomElement.textContent = '';\n\n\t\t\tconst domDocument = domElement.ownerDocument;\n\t\t\tlet domTextarea;\n\n\t\t\tif ( state.isEditable ) {\n\t\t\t\tconst textareaProps = {\n\t\t\t\t\tisDisabled: false,\n\t\t\t\t\tplaceholder: props.textareaPlaceholder\n\t\t\t\t};\n\n\t\t\t\tdomTextarea = createDomTextarea( { domDocument, state, props: textareaProps } );\n\n\t\t\t\tdomElement.append( domTextarea );\n\t\t\t} else if ( state.showPreviews ) {\n\t\t\t\tconst previewContainerProps = {\n\t\t\t\t\tsanitizeHtml: props.sanitizeHtml\n\t\t\t\t};\n\n\t\t\t\tdomElement.append( createPreviewContainer( { domDocument, state, props: previewContainerProps, editor } ) );\n\t\t\t} else {\n\t\t\t\tconst textareaProps = {\n\t\t\t\t\tisDisabled: true,\n\t\t\t\t\tplaceholder: props.textareaPlaceholder\n\t\t\t\t};\n\n\t\t\t\tdomElement.append( createDomTextarea( { domDocument, state, props: textareaProps } ) );\n\t\t\t}\n\n\t\t\tconst buttonsWrapperProps = {\n\t\t\t\tonEditClick: props.onEditClick,\n\t\t\t\tonSaveClick: () => {\n\t\t\t\t\tprops.onSaveClick( domTextarea.value );\n\t\t\t\t},\n\t\t\t\tonCancelClick: props.onCancelClick\n\t\t\t};\n\n\t\t\tdomElement.prepend( createDomButtonsWrapper( { editor, domDocument, state, props: buttonsWrapperProps } ) );\n\t\t}\n\n\t\tfunction createDomButtonsWrapper( { editor, domDocument, state, props } ) {\n\t\t\tconst domButtonsWrapper = createElement( domDocument, 'div', {\n\t\t\t\tclass: 'raw-html-embed__buttons-wrapper'\n\t\t\t} );\n\n\t\t\tif ( state.isEditable ) {\n\t\t\t\tconst saveButtonView = createUIButton( editor, 'save', props.onSaveClick );\n\t\t\t\tconst cancelButtonView = createUIButton( editor, 'cancel', props.onCancelClick );\n\n\t\t\t\tdomButtonsWrapper.append( saveButtonView.element, cancelButtonView.element );\n\t\t\t\twidgetButtonViewReferences.add( saveButtonView ).add( cancelButtonView );\n\t\t\t} else {\n\t\t\t\tconst editButtonView = createUIButton( editor, 'edit', props.onEditClick );\n\n\t\t\t\tdomButtonsWrapper.append( editButtonView.element );\n\t\t\t\twidgetButtonViewReferences.add( editButtonView );\n\t\t\t}\n\n\t\t\treturn domButtonsWrapper;\n\t\t}\n\n\t\tfunction createDomTextarea( { domDocument, state, props } ) {\n\t\t\tconst domTextarea = createElement( domDocument, 'textarea', {\n\t\t\t\tplaceholder: props.placeholder,\n\t\t\t\tclass: 'ck ck-reset ck-input ck-input-text raw-html-embed__source'\n\t\t\t} );\n\n\t\t\tdomTextarea.disabled = props.isDisabled;\n\t\t\tdomTextarea.value = state.getRawHtmlValue();\n\n\t\t\treturn domTextarea;\n\t\t}\n\n\t\tfunction createPreviewContainer( { domDocument, state, props, editor } ) {\n\t\t\tconst sanitizedOutput = props.sanitizeHtml( state.getRawHtmlValue() );\n\t\t\tconst placeholderText = state.getRawHtmlValue().length > 0 ?\n\t\t\t\tt( 'No preview available' ) :\n\t\t\t\tt( 'Empty snippet content' );\n\n\t\t\tconst domPreviewPlaceholder = createElement( domDocument, 'div', {\n\t\t\t\tclass: 'ck ck-reset_all raw-html-embed__preview-placeholder'\n\t\t\t}, placeholderText );\n\n\t\t\tconst domPreviewContent = createElement( domDocument, 'div', {\n\t\t\t\tclass: 'raw-html-embed__preview-content',\n\t\t\t\tdir: editor.locale.contentLanguageDirection\n\t\t\t} );\n\n\t\t\t// Creating a contextual document fragment allows executing scripts when inserting into the preview element.\n\t\t\t// See: #8326.\n\t\t\tconst domRange = domDocument.createRange();\n\t\t\tconst domDocumentFragment = domRange.createContextualFragment( sanitizedOutput.html );\n\n\t\t\tdomPreviewContent.appendChild( domDocumentFragment );\n\n\t\t\tconst domPreviewContainer = createElement( domDocument, 'div', {\n\t\t\t\tclass: 'raw-html-embed__preview'\n\t\t\t}, [\n\t\t\t\tdomPreviewPlaceholder, domPreviewContent\n\t\t\t] );\n\n\t\t\treturn domPreviewContainer;\n\t\t}\n\t}\n}\n\n// Returns a UI button view that can be used in conversion.\n//\n// @param {module:utils/locale~Locale} locale Editor locale.\n// @param {'edit'|'save'|'cancel'} type Type of button to create.\n// @param {Function} onClick The callback executed on button click.\n// @returns {module:ui/button/buttonview~ButtonView}\nfunction createUIButton( editor, type, onClick ) {\n\tconst t = editor.locale.t;\n\tconst buttonView = new ButtonView( editor.locale );\n\tconst command = editor.commands.get( 'htmlEmbed' );\n\n\tbuttonView.set( {\n\t\tclass: `raw-html-embed__${ type }-button`,\n\t\ticon: icons.pencil,\n\t\ttooltip: true,\n\t\ttooltipPosition: editor.locale.uiLanguageDirection === 'rtl' ? 'e' : 'w'\n\t} );\n\n\tbuttonView.render();\n\n\tif ( type === 'edit' ) {\n\t\tbuttonView.set( {\n\t\t\ticon: icons.pencil,\n\t\t\tlabel: t( 'Edit source' )\n\t\t} );\n\n\t\tbuttonView.bind( 'isEnabled' ).to( command );\n\t} else if ( type === 'save' ) {\n\t\tbuttonView.set( {\n\t\t\ticon: icons.check,\n\t\t\tlabel: t( 'Save changes' )\n\t\t} );\n\n\t\tbuttonView.bind( 'isEnabled' ).to( command );\n\t} else {\n\t\tbuttonView.set( {\n\t\t\ticon: icons.cancel,\n\t\t\tlabel: t( 'Cancel' )\n\t\t} );\n\t}\n\n\tbuttonView.on( 'execute', onClick );\n\n\treturn buttonView;\n}\n","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module html-embed/htmlembedui\n */\n\nimport { Plugin } from 'ckeditor5/src/core';\nimport { ButtonView } from 'ckeditor5/src/ui';\n\nimport htmlEmbedIcon from '../theme/icons/html.svg';\n\n/**\n * The HTML embed UI plugin.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class HtmlEmbedUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'HtmlEmbedUI';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\n\t\t// Add the `htmlEmbed` button to feature components.\n\t\teditor.ui.componentFactory.add( 'htmlEmbed', locale => {\n\t\t\tconst command = editor.commands.get( 'htmlEmbed' );\n\t\t\tconst view = new ButtonView( locale );\n\n\t\t\tview.set( {\n\t\t\t\tlabel: t( 'Insert HTML' ),\n\t\t\t\ticon: htmlEmbedIcon,\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\tview.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\n\t\t\t// Execute the command.\n\t\t\tthis.listenTo( view, 'execute', () => {\n\t\t\t\teditor.execute( 'htmlEmbed' );\n\t\t\t\teditor.editing.view.focus();\n\n\t\t\t\tconst widgetWrapper = editor.editing.view.document.selection.getSelectedElement();\n\n\t\t\t\twidgetWrapper.getCustomProperty( 'rawHtmlApi' ).makeEditable();\n\t\t\t} );\n\n\t\t\treturn view;\n\t\t} );\n\t}\n}\n","module.exports = (__webpack_require__(/*! dll-reference CKEditor5.dll */ \"dll-reference CKEditor5.dll\"))(\"./src/core.js\");","module.exports = (__webpack_require__(/*! dll-reference CKEditor5.dll */ \"dll-reference CKEditor5.dll\"))(\"./src/ui.js\");","module.exports = (__webpack_require__(/*! dll-reference CKEditor5.dll */ \"dll-reference CKEditor5.dll\"))(\"./src/utils.js\");","module.exports = (__webpack_require__(/*! dll-reference CKEditor5.dll */ \"dll-reference CKEditor5.dll\"))(\"./src/widget.js\");","module.exports = CKEditor5.dll;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module html-embed\n */\n\nexport { default as HtmlEmbed } from './htmlembed';\nexport { default as HtmlEmbedEditing } from './htmlembedediting';\nexport { default as HtmlEmbedUI } from './htmlembedui';\n"],"sourceRoot":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(e){const a=e.bs=e.bs||{};a.dictionary=Object.assign(a.dictionary||{},{"Edit source":"Uredi izvor","Empty snippet content":"HTML odlomak nema sadžaj","HTML snippet":"HTML odlomak","Insert HTML":"Umetni HTML","No preview available":"Pregled nedostupan","Paste raw HTML here...":"Zalijepi HTML ovdje...","Save changes":"Sačuvaj izmjene"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(e){const n=e.el=e.el||{};n.dictionary=Object.assign(n.dictionary||{},{"Edit source":"Επεξεργασία κώδικα","Empty snippet content":"Άδειο περιεχόμενο αποσπάσματος","HTML snippet":"Απόσπασμα HTML","Insert HTML":"Εισαγωγή HTML","No preview available":"Η προεπισκόπηση δεν είναι διαθέσιμη","Paste raw HTML here...":"Επικολλήστε κώδικα HTML εδώ...","Save changes":"Αποθήκευση αλλαγών"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
package/build/translations/es.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e){const
|
|
1
|
+
!function(e){const a=e.es=e.es||{};a.dictionary=Object.assign(a.dictionary||{},{"Edit source":"Editar fuente","Empty snippet content":"Fragmento vacío","HTML snippet":"Fragmento HTML","Insert HTML":"Insertar HTML","No preview available":"No hay ninguna previsualización","Paste raw HTML here...":"Pegue el código HTML aquí…","Save changes":"Guardar cambios"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e){const
|
|
1
|
+
!function(e){const i=e["pt-br"]=e["pt-br"]||{};i.dictionary=Object.assign(i.dictionary||{},{"Edit source":"Editar código","Empty snippet content":"Trecho sem conteúdo","HTML snippet":"Trecho HTML","Insert HTML":"Inserir HTML","No preview available":"Nenhuma visualização disponível","Paste raw HTML here...":"Cole o HTML puro aqui","Save changes":"Salvar alterações"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(i){const n=i.uz=i.uz||{};n.dictionary=Object.assign(n.dictionary||{},{"Edit source":"Kodni o'zgartirish","Empty snippet content":"","HTML snippet":"HTML snippet","Insert HTML":"HTML kiritish","No preview available":"","Paste raw HTML here...":"HTML kodini shu yerga joylashtiring...","Save changes":"O'zgarishlarni saqlash"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(e){const n=e.zh=e.zh||{};n.dictionary=Object.assign(n.dictionary||{},{"Edit source":"編輯HTML","Empty snippet content":"HTML標籤中無內容","HTML snippet":"HTML標籤","Insert HTML":"輸入HTML","No preview available":"無法顯示預覽","Paste raw HTML here...":"在此貼上純HTML","Save changes":"儲存變更"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
package/ckeditor5-metadata.json
CHANGED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
2
|
+
#
|
|
3
|
+
# !!! IMPORTANT !!!
|
|
4
|
+
#
|
|
5
|
+
# Before you edit this file, please keep in mind that contributing to the project
|
|
6
|
+
# translations is possible ONLY via the Transifex online service.
|
|
7
|
+
#
|
|
8
|
+
# To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
|
|
9
|
+
#
|
|
10
|
+
# To learn more, check out the official contributor's guide:
|
|
11
|
+
# https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
|
|
12
|
+
#
|
|
13
|
+
msgid ""
|
|
14
|
+
msgstr ""
|
|
15
|
+
"Language-Team: Bosnian (https://www.transifex.com/ckeditor/teams/11143/bs/)\n"
|
|
16
|
+
"Language: bs\n"
|
|
17
|
+
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
|
18
|
+
|
|
19
|
+
msgctxt "Toolbar button tooltip for the HTML embed feature."
|
|
20
|
+
msgid "Insert HTML"
|
|
21
|
+
msgstr "Umetni HTML"
|
|
22
|
+
|
|
23
|
+
msgctxt "The HTML snippet."
|
|
24
|
+
msgid "HTML snippet"
|
|
25
|
+
msgstr "HTML odlomak"
|
|
26
|
+
|
|
27
|
+
msgctxt "A placeholder that will be displayed in the raw HTML textarea field."
|
|
28
|
+
msgid "Paste raw HTML here..."
|
|
29
|
+
msgstr "Zalijepi HTML ovdje..."
|
|
30
|
+
|
|
31
|
+
msgctxt "A label of a button that switches the HTML embed to the source editing mode."
|
|
32
|
+
msgid "Edit source"
|
|
33
|
+
msgstr "Uredi izvor"
|
|
34
|
+
|
|
35
|
+
msgctxt "A label of a button that saves the HTML embed content and navigates back to the preview."
|
|
36
|
+
msgid "Save changes"
|
|
37
|
+
msgstr "Sačuvaj izmjene"
|
|
38
|
+
|
|
39
|
+
msgctxt "An information displayed in the HTML embed preview if the content is not previewable."
|
|
40
|
+
msgid "No preview available"
|
|
41
|
+
msgstr "Pregled nedostupan"
|
|
42
|
+
|
|
43
|
+
msgctxt "An information displayed in the HTML embed preview if the HTML snippet has no content."
|
|
44
|
+
msgid "Empty snippet content"
|
|
45
|
+
msgstr "HTML odlomak nema sadžaj"
|
package/lang/translations/cs.po
CHANGED
package/lang/translations/de.po
CHANGED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
2
|
+
#
|
|
3
|
+
# !!! IMPORTANT !!!
|
|
4
|
+
#
|
|
5
|
+
# Before you edit this file, please keep in mind that contributing to the project
|
|
6
|
+
# translations is possible ONLY via the Transifex online service.
|
|
7
|
+
#
|
|
8
|
+
# To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
|
|
9
|
+
#
|
|
10
|
+
# To learn more, check out the official contributor's guide:
|
|
11
|
+
# https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
|
|
12
|
+
#
|
|
13
|
+
msgid ""
|
|
14
|
+
msgstr ""
|
|
15
|
+
"Language-Team: Greek (https://www.transifex.com/ckeditor/teams/11143/el/)\n"
|
|
16
|
+
"Language: el\n"
|
|
17
|
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
18
|
+
|
|
19
|
+
msgctxt "Toolbar button tooltip for the HTML embed feature."
|
|
20
|
+
msgid "Insert HTML"
|
|
21
|
+
msgstr "Εισαγωγή HTML"
|
|
22
|
+
|
|
23
|
+
msgctxt "The HTML snippet."
|
|
24
|
+
msgid "HTML snippet"
|
|
25
|
+
msgstr "Απόσπασμα HTML"
|
|
26
|
+
|
|
27
|
+
msgctxt "A placeholder that will be displayed in the raw HTML textarea field."
|
|
28
|
+
msgid "Paste raw HTML here..."
|
|
29
|
+
msgstr "Επικολλήστε κώδικα HTML εδώ..."
|
|
30
|
+
|
|
31
|
+
msgctxt "A label of a button that switches the HTML embed to the source editing mode."
|
|
32
|
+
msgid "Edit source"
|
|
33
|
+
msgstr "Επεξεργασία κώδικα"
|
|
34
|
+
|
|
35
|
+
msgctxt "A label of a button that saves the HTML embed content and navigates back to the preview."
|
|
36
|
+
msgid "Save changes"
|
|
37
|
+
msgstr "Αποθήκευση αλλαγών"
|
|
38
|
+
|
|
39
|
+
msgctxt "An information displayed in the HTML embed preview if the content is not previewable."
|
|
40
|
+
msgid "No preview available"
|
|
41
|
+
msgstr "Η προεπισκόπηση δεν είναι διαθέσιμη"
|
|
42
|
+
|
|
43
|
+
msgctxt "An information displayed in the HTML embed preview if the HTML snippet has no content."
|
|
44
|
+
msgid "Empty snippet content"
|
|
45
|
+
msgstr "Άδειο περιεχόμενο αποσπάσματος"
|
package/lang/translations/en.po
CHANGED
package/lang/translations/es.po
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2003-
|
|
1
|
+
# Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
2
2
|
#
|
|
3
3
|
# !!! IMPORTANT !!!
|
|
4
4
|
#
|
|
@@ -22,11 +22,11 @@ msgstr "Insertar HTML"
|
|
|
22
22
|
|
|
23
23
|
msgctxt "The HTML snippet."
|
|
24
24
|
msgid "HTML snippet"
|
|
25
|
-
msgstr ""
|
|
25
|
+
msgstr "Fragmento HTML"
|
|
26
26
|
|
|
27
27
|
msgctxt "A placeholder that will be displayed in the raw HTML textarea field."
|
|
28
28
|
msgid "Paste raw HTML here..."
|
|
29
|
-
msgstr "Pegue
|
|
29
|
+
msgstr "Pegue el código HTML aquí…"
|
|
30
30
|
|
|
31
31
|
msgctxt "A label of a button that switches the HTML embed to the source editing mode."
|
|
32
32
|
msgid "Edit source"
|
|
@@ -42,4 +42,4 @@ msgstr "No hay ninguna previsualización"
|
|
|
42
42
|
|
|
43
43
|
msgctxt "An information displayed in the HTML embed preview if the HTML snippet has no content."
|
|
44
44
|
msgid "Empty snippet content"
|
|
45
|
-
msgstr ""
|
|
45
|
+
msgstr "Fragmento vacío"
|
package/lang/translations/fr.po
CHANGED
package/lang/translations/gl.po
CHANGED
package/lang/translations/hr.po
CHANGED
package/lang/translations/hu.po
CHANGED
package/lang/translations/id.po
CHANGED
package/lang/translations/it.po
CHANGED
package/lang/translations/nl.po
CHANGED
package/lang/translations/pl.po
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2003-
|
|
1
|
+
# Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
2
2
|
#
|
|
3
3
|
# !!! IMPORTANT !!!
|
|
4
4
|
#
|
|
@@ -22,11 +22,11 @@ msgstr "Inserir HTML"
|
|
|
22
22
|
|
|
23
23
|
msgctxt "The HTML snippet."
|
|
24
24
|
msgid "HTML snippet"
|
|
25
|
-
msgstr "
|
|
25
|
+
msgstr "Trecho HTML"
|
|
26
26
|
|
|
27
27
|
msgctxt "A placeholder that will be displayed in the raw HTML textarea field."
|
|
28
28
|
msgid "Paste raw HTML here..."
|
|
29
|
-
msgstr ""
|
|
29
|
+
msgstr "Cole o HTML puro aqui"
|
|
30
30
|
|
|
31
31
|
msgctxt "A label of a button that switches the HTML embed to the source editing mode."
|
|
32
32
|
msgid "Edit source"
|
|
@@ -38,8 +38,8 @@ msgstr "Salvar alterações"
|
|
|
38
38
|
|
|
39
39
|
msgctxt "An information displayed in the HTML embed preview if the content is not previewable."
|
|
40
40
|
msgid "No preview available"
|
|
41
|
-
msgstr ""
|
|
41
|
+
msgstr "Nenhuma visualização disponível"
|
|
42
42
|
|
|
43
43
|
msgctxt "An information displayed in the HTML embed preview if the HTML snippet has no content."
|
|
44
44
|
msgid "Empty snippet content"
|
|
45
|
-
msgstr ""
|
|
45
|
+
msgstr "Trecho sem conteúdo"
|
package/lang/translations/ro.po
CHANGED
package/lang/translations/ru.po
CHANGED
package/lang/translations/sk.po
CHANGED
package/lang/translations/sl.po
CHANGED
package/lang/translations/sr.po
CHANGED
package/lang/translations/uk.po
CHANGED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
2
|
+
#
|
|
3
|
+
# !!! IMPORTANT !!!
|
|
4
|
+
#
|
|
5
|
+
# Before you edit this file, please keep in mind that contributing to the project
|
|
6
|
+
# translations is possible ONLY via the Transifex online service.
|
|
7
|
+
#
|
|
8
|
+
# To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
|
|
9
|
+
#
|
|
10
|
+
# To learn more, check out the official contributor's guide:
|
|
11
|
+
# https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
|
|
12
|
+
#
|
|
13
|
+
msgid ""
|
|
14
|
+
msgstr ""
|
|
15
|
+
"Language-Team: Uzbek (https://www.transifex.com/ckeditor/teams/11143/uz/)\n"
|
|
16
|
+
"Language: uz\n"
|
|
17
|
+
"Plural-Forms: nplurals=1; plural=0;\n"
|
|
18
|
+
|
|
19
|
+
msgctxt "Toolbar button tooltip for the HTML embed feature."
|
|
20
|
+
msgid "Insert HTML"
|
|
21
|
+
msgstr "HTML kiritish"
|
|
22
|
+
|
|
23
|
+
msgctxt "The HTML snippet."
|
|
24
|
+
msgid "HTML snippet"
|
|
25
|
+
msgstr "HTML snippet"
|
|
26
|
+
|
|
27
|
+
msgctxt "A placeholder that will be displayed in the raw HTML textarea field."
|
|
28
|
+
msgid "Paste raw HTML here..."
|
|
29
|
+
msgstr "HTML kodini shu yerga joylashtiring..."
|
|
30
|
+
|
|
31
|
+
msgctxt "A label of a button that switches the HTML embed to the source editing mode."
|
|
32
|
+
msgid "Edit source"
|
|
33
|
+
msgstr "Kodni o'zgartirish"
|
|
34
|
+
|
|
35
|
+
msgctxt "A label of a button that saves the HTML embed content and navigates back to the preview."
|
|
36
|
+
msgid "Save changes"
|
|
37
|
+
msgstr "O'zgarishlarni saqlash"
|
|
38
|
+
|
|
39
|
+
msgctxt "An information displayed in the HTML embed preview if the content is not previewable."
|
|
40
|
+
msgid "No preview available"
|
|
41
|
+
msgstr ""
|
|
42
|
+
|
|
43
|
+
msgctxt "An information displayed in the HTML embed preview if the HTML snippet has no content."
|
|
44
|
+
msgid "Empty snippet content"
|
|
45
|
+
msgstr ""
|
package/lang/translations/vi.po
CHANGED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
2
|
+
#
|
|
3
|
+
# !!! IMPORTANT !!!
|
|
4
|
+
#
|
|
5
|
+
# Before you edit this file, please keep in mind that contributing to the project
|
|
6
|
+
# translations is possible ONLY via the Transifex online service.
|
|
7
|
+
#
|
|
8
|
+
# To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
|
|
9
|
+
#
|
|
10
|
+
# To learn more, check out the official contributor's guide:
|
|
11
|
+
# https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
|
|
12
|
+
#
|
|
13
|
+
msgid ""
|
|
14
|
+
msgstr ""
|
|
15
|
+
"Language-Team: Chinese (Taiwan) (https://www.transifex.com/ckeditor/teams/11143/zh_TW/)\n"
|
|
16
|
+
"Language: zh_TW\n"
|
|
17
|
+
"Plural-Forms: nplurals=1; plural=0;\n"
|
|
18
|
+
|
|
19
|
+
msgctxt "Toolbar button tooltip for the HTML embed feature."
|
|
20
|
+
msgid "Insert HTML"
|
|
21
|
+
msgstr "輸入HTML"
|
|
22
|
+
|
|
23
|
+
msgctxt "The HTML snippet."
|
|
24
|
+
msgid "HTML snippet"
|
|
25
|
+
msgstr "HTML標籤"
|
|
26
|
+
|
|
27
|
+
msgctxt "A placeholder that will be displayed in the raw HTML textarea field."
|
|
28
|
+
msgid "Paste raw HTML here..."
|
|
29
|
+
msgstr "在此貼上純HTML"
|
|
30
|
+
|
|
31
|
+
msgctxt "A label of a button that switches the HTML embed to the source editing mode."
|
|
32
|
+
msgid "Edit source"
|
|
33
|
+
msgstr "編輯HTML"
|
|
34
|
+
|
|
35
|
+
msgctxt "A label of a button that saves the HTML embed content and navigates back to the preview."
|
|
36
|
+
msgid "Save changes"
|
|
37
|
+
msgstr "儲存變更"
|
|
38
|
+
|
|
39
|
+
msgctxt "An information displayed in the HTML embed preview if the content is not previewable."
|
|
40
|
+
msgid "No preview available"
|
|
41
|
+
msgstr "無法顯示預覽"
|
|
42
|
+
|
|
43
|
+
msgctxt "An information displayed in the HTML embed preview if the HTML snippet has no content."
|
|
44
|
+
msgid "Empty snippet content"
|
|
45
|
+
msgstr "HTML標籤中無內容"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckeditor/ckeditor5-html-embed",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "33.0.0",
|
|
4
4
|
"description": "HTML embed feature for CKEditor 5.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ckeditor",
|
|
@@ -12,28 +12,28 @@
|
|
|
12
12
|
],
|
|
13
13
|
"main": "src/index.js",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"ckeditor5": "^
|
|
15
|
+
"ckeditor5": "^33.0.0"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@ckeditor/ckeditor5-basic-styles": "^
|
|
19
|
-
"@ckeditor/ckeditor5-core": "^
|
|
20
|
-
"@ckeditor/ckeditor5-dev-utils": "^
|
|
21
|
-
"@ckeditor/ckeditor5-clipboard": "^
|
|
22
|
-
"@ckeditor/ckeditor5-editor-classic": "^
|
|
23
|
-
"@ckeditor/ckeditor5-engine": "^
|
|
24
|
-
"@ckeditor/ckeditor5-media-embed": "^
|
|
25
|
-
"@ckeditor/ckeditor5-paragraph": "^
|
|
26
|
-
"@ckeditor/ckeditor5-table": "^
|
|
27
|
-
"@ckeditor/ckeditor5-ui": "^
|
|
28
|
-
"@ckeditor/ckeditor5-theme-lark": "^
|
|
29
|
-
"@ckeditor/ckeditor5-widget": "^
|
|
18
|
+
"@ckeditor/ckeditor5-basic-styles": "^33.0.0",
|
|
19
|
+
"@ckeditor/ckeditor5-core": "^33.0.0",
|
|
20
|
+
"@ckeditor/ckeditor5-dev-utils": "^28.0.1",
|
|
21
|
+
"@ckeditor/ckeditor5-clipboard": "^33.0.0",
|
|
22
|
+
"@ckeditor/ckeditor5-editor-classic": "^33.0.0",
|
|
23
|
+
"@ckeditor/ckeditor5-engine": "^33.0.0",
|
|
24
|
+
"@ckeditor/ckeditor5-media-embed": "^33.0.0",
|
|
25
|
+
"@ckeditor/ckeditor5-paragraph": "^33.0.0",
|
|
26
|
+
"@ckeditor/ckeditor5-table": "^33.0.0",
|
|
27
|
+
"@ckeditor/ckeditor5-ui": "^33.0.0",
|
|
28
|
+
"@ckeditor/ckeditor5-theme-lark": "^33.0.0",
|
|
29
|
+
"@ckeditor/ckeditor5-widget": "^33.0.0",
|
|
30
30
|
"lodash-es": "^4.17.15",
|
|
31
31
|
"sanitize-html": "^2.1.0",
|
|
32
|
-
"webpack": "^
|
|
33
|
-
"webpack-cli": "^
|
|
32
|
+
"webpack": "^5.58.1",
|
|
33
|
+
"webpack-cli": "^4.9.0"
|
|
34
34
|
},
|
|
35
35
|
"engines": {
|
|
36
|
-
"node": ">=
|
|
36
|
+
"node": ">=14.0.0",
|
|
37
37
|
"npm": ">=5.7.1"
|
|
38
38
|
},
|
|
39
39
|
"author": "CKSource (http://cksource.com/)",
|
package/src/htmlembed.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
4
|
*/
|
|
5
5
|
|
package/src/htmlembedcommand.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
4
|
*/
|
|
5
5
|
|
package/src/htmlembedediting.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -139,21 +139,11 @@ export default class HtmlEmbedEditing extends Plugin {
|
|
|
139
139
|
}
|
|
140
140
|
} );
|
|
141
141
|
|
|
142
|
-
editor.conversion.for( 'editingDowncast' ).
|
|
143
|
-
|
|
144
|
-
attributes: [ 'value' ]
|
|
145
|
-
},
|
|
146
|
-
model: 'rawHtml',
|
|
142
|
+
editor.conversion.for( 'editingDowncast' ).elementToStructure( {
|
|
143
|
+
model: { name: 'rawHtml', attributes: [ 'value' ] },
|
|
147
144
|
view: ( modelElement, { writer } ) => {
|
|
148
145
|
let domContentWrapper, state, props;
|
|
149
146
|
|
|
150
|
-
const viewContainer = writer.createContainerElement( 'div', {
|
|
151
|
-
class: 'raw-html-embed',
|
|
152
|
-
'data-html-embed-label': t( 'HTML snippet' ),
|
|
153
|
-
dir: editor.locale.uiLanguageDirection
|
|
154
|
-
} );
|
|
155
|
-
// Widget cannot be a raw element because the widget system would not be able
|
|
156
|
-
// to add its UI to it. Thus, we need this wrapper.
|
|
157
147
|
const viewContentWrapper = writer.createRawElement( 'div', {
|
|
158
148
|
class: 'raw-html-embed__content-wrapper'
|
|
159
149
|
}, function( domElement ) {
|
|
@@ -238,7 +228,11 @@ export default class HtmlEmbedEditing extends Plugin {
|
|
|
238
228
|
}
|
|
239
229
|
};
|
|
240
230
|
|
|
241
|
-
|
|
231
|
+
const viewContainer = writer.createContainerElement( 'div', {
|
|
232
|
+
class: 'raw-html-embed',
|
|
233
|
+
'data-html-embed-label': t( 'HTML snippet' ),
|
|
234
|
+
dir: editor.locale.uiLanguageDirection
|
|
235
|
+
}, viewContentWrapper );
|
|
242
236
|
|
|
243
237
|
writer.setCustomProperty( 'rawHtmlApi', rawHtmlApi, viewContainer );
|
|
244
238
|
writer.setCustomProperty( 'rawHtml', true, viewContainer );
|
package/src/htmlembedui.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
4
|
*/
|
|
5
5
|
|
package/src/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2003-
|
|
2
|
+
* @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
4
|
*/
|
|
5
5
|
|
package/theme/htmlembed.css
CHANGED