@ckeditor/ckeditor5-style 34.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 ADDED
@@ -0,0 +1,17 @@
1
+ Software License Agreement
2
+ ==========================
3
+
4
+ **CKEditor 5 style feature** – https://github.com/ckeditor/ckeditor5-style <br>
5
+ Copyright (c) 2003-2022, [CKSource](http://cksource.com) Holding sp. z o.o. All rights reserved.
6
+
7
+ Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html).
8
+
9
+ Sources of Intellectual Property Included in CKEditor
10
+ -----------------------------------------------------
11
+
12
+ Where not otherwise indicated, all CKEditor content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission.
13
+
14
+ Trademarks
15
+ ----------
16
+
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/README.md ADDED
@@ -0,0 +1,21 @@
1
+ CKEditor 5 style feature
2
+ ========================================
3
+
4
+ [![npm version](https://badge.fury.io/js/%40ckeditor%2Fckeditor5-style.svg)](https://www.npmjs.com/package/@ckeditor/ckeditor5-style)
5
+ [![Coverage Status](https://coveralls.io/repos/github/ckeditor/ckeditor5/badge.svg?branch=master)](https://coveralls.io/github/ckeditor/ckeditor5?branch=master)
6
+ [![Build Status](https://travis-ci.com/ckeditor/ckeditor5.svg?branch=master)](https://app.travis-ci.com/github/ckeditor/ckeditor5)
7
+ ![Dependency Status](https://img.shields.io/librariesio/release/npm/@ckeditor/ckeditor5-style)
8
+
9
+ This package implements the style feature for CKEditor 5.
10
+
11
+ ## Demo
12
+
13
+ Check out the demo in the [style feature guide](https://ckeditor.com/docs/ckeditor5/latest/features/style.html#demo) in the CKEditor 5 documentation.
14
+
15
+ ## Documentation
16
+
17
+ See the [`@ckeditor/ckeditor5-style` package](https://ckeditor.com/docs/ckeditor5/latest/api/style.html) page in [CKEditor 5 documentation](https://ckeditor.com/docs/ckeditor5/latest/).
18
+
19
+ ## License
20
+
21
+ Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html). For full details about the license, please check the `LICENSE.md` file or [https://ckeditor.com/legal/ckeditor-oss-license](https://ckeditor.com/legal/ckeditor-oss-license).
package/build/style.js ADDED
@@ -0,0 +1,5 @@
1
+ !function(e){const t=e.en=e.en||{};t.dictionary=Object.assign(t.dictionary||{},{"Block styles":"Block styles","Multiple styles":"Multiple styles",Styles:"Styles","Text styles":"Text styles"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),
2
+ /*!
3
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
4
+ * For licensing, see LICENSE.md.
5
+ */(()=>{var e={529:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var s=n(609),i=n.n(s)()((function(e){return e[1]}));i.push([e.id,".ck.ck-dropdown.ck-style-dropdown.ck-style-dropdown_multiple-active>.ck-button>.ck-button__label{font-style:italic}",""]);const l=i},945:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var s=n(609),i=n.n(s)()((function(e){return e[1]}));i.push([e.id,":root{--ck-style-panel-columns:3}.ck.ck-style-panel .ck-style-grid{display:grid;grid-template-columns:repeat(var(--ck-style-panel-columns),auto)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button{display:flex;flex-direction:column;justify-content:space-between}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-style-grid__button__preview{align-content:center;align-items:center;display:flex;flex-basis:100%;flex-grow:1;justify-content:flex-start}:root{--ck-style-panel-button-width:120px;--ck-style-panel-button-height:80px;--ck-style-panel-button-shadow-color:rgba(0,0,0,.1);--ck-style-panel-button-shadow:0px 0px 6px var(--ck-style-panel-button-shadow-color);--ck-style-panel-button-label-background:#e6e6e6;--ck-style-panel-button-hover-label-background:#ccc;--ck-style-panel-button-hover-border-color:#b3b3b3}.ck.ck-style-panel .ck-style-grid{column-gap:var(--ck-spacing-large);row-gap:var(--ck-spacing-large)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button{--ck-color-button-default-hover-background:var(--ck-color-base-background);--ck-color-button-default-active-background:var(--ck-color-base-background);height:var(--ck-style-panel-button-height);padding:0;width:var(--ck-style-panel-button-width)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:not(:focus){border:1px solid var(--ck-color-base-border);box-shadow:var(--ck-style-panel-button-shadow)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-button__label{background:var(--ck-style-panel-button-label-background);flex-shrink:0;height:22px;line-height:22px;overflow:hidden;padding:0 var(--ck-spacing-medium);text-overflow:ellipsis;width:100%}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-style-grid__button__preview{border:2px solid var(--ck-color-base-background);opacity:.9;overflow:hidden;padding:var(--ck-spacing-medium);width:100%}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled{--ck-color-button-default-disabled-background:var(--ck-color-base-foreground)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled:not(:focus){border-color:var(--ck-style-panel-button-label-background);box-shadow:none}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled .ck-button__label{background:var(--ck-style-panel-button-label-background)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled .ck-style-grid__button__preview{border-color:var(--ck-color-base-foreground);filter:saturate(.3);opacity:.4}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on{--ck-color-button-on-background:var(--ck-color-base-background);--ck-color-button-on-hover-background:var(--ck-color-base-background);--ck-color-button-on-active-background:var(--ck-color-base-background);--ck-style-panel-button-shadow-color:rgba(25,140,240,.1);border-color:var(--ck-color-base-active)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on .ck-button__label{background:var(--ck-color-base-active);color:var(--ck-color-base-background)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on:hover{border-color:var(--ck-color-base-active-focus)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on:hover .ck-button__label{background:var(--ck-color-base-active-focus)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:hover:not(.ck-disabled):not(.ck-on){border-color:var(--ck-style-panel-button-hover-border-color)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:hover:not(.ck-disabled):not(.ck-on) .ck-style-grid__button__preview{opacity:1}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:hover:not(.ck-disabled):not(.ck-on) .ck-button__label{background:var(--ck-style-panel-button-hover-label-background)}",""]);const l=i},561:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var s=n(609),i=n.n(s)()((function(e){return e[1]}));i.push([e.id,".ck.ck-style-panel .ck-style-panel__style-group>.ck-label{margin:var(--ck-spacing-large) 0}.ck.ck-style-panel .ck-style-panel__style-group:first-child>.ck-label{margin-top:0}",""]);const l=i},662:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var s=n(609),i=n.n(s)()((function(e){return e[1]}));i.push([e.id,":root{--ck-style-panel-max-height:470px}.ck.ck-style-panel{max-height:var(--ck-style-panel-max-height);overflow-y:auto;padding:var(--ck-spacing-large)}",""]);const l=i},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,s){"string"==typeof e&&(e=[[null,e,""]]);var i={};if(s)for(var l=0;l<this.length;l++){var o=this[l][0];null!=o&&(i[o]=!0)}for(var r=0;r<e.length;r++){var c=[].concat(e[r]);s&&i[c[0]]||(n&&(c[2]?c[2]="".concat(n," and ").concat(c[2]):c[2]=n),t.push(c))}},t}},62:(e,t,n)=>{"use strict";var s,i=function(){return void 0===s&&(s=Boolean(window&&document&&document.all&&!window.atob)),s},l=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 r(e){for(var t=-1,n=0;n<o.length;n++)if(o[n].identifier===e){t=n;break}return t}function c(e,t){for(var n={},s=[],i=0;i<e.length;i++){var l=e[i],c=t.base?l[0]+t.base:l[0],a=n[c]||0,d="".concat(c," ").concat(a);n[c]=a+1;var u=r(d),h={css:l[1],media:l[2],sourceMap:l[3]};-1!==u?(o[u].references++,o[u].updater(h)):o.push({identifier:d,updater:p(h,t),references:1}),s.push(d)}return s}function a(e){var t=document.createElement("style"),s=e.attributes||{};if(void 0===s.nonce){var i=n.nc;i&&(s.nonce=i)}if(Object.keys(s).forEach((function(e){t.setAttribute(e,s[e])})),"function"==typeof e.insert)e.insert(t);else{var o=l(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 d,u=(d=[],function(e,t){return d[e]=t,d.filter(Boolean).join("\n")});function h(e,t,n,s){var i=n?"":s.media?"@media ".concat(s.media," {").concat(s.css,"}"):s.css;if(e.styleSheet)e.styleSheet.cssText=u(t,i);else{var l=document.createTextNode(i),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(l,o[t]):e.appendChild(l)}}function k(e,t,n){var s=n.css,i=n.media,l=n.sourceMap;if(i?e.setAttribute("media",i):e.removeAttribute("media"),l&&"undefined"!=typeof btoa&&(s+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(l))))," */")),e.styleSheet)e.styleSheet.cssText=s;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(s))}}var y=null,b=0;function p(e,t){var n,s,i;if(t.singleton){var l=b++;n=y||(y=a(t)),s=h.bind(null,n,l,!1),i=h.bind(null,n,l,!0)}else n=a(t),s=k.bind(null,n,t),i=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)};return s(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;s(e=t)}else i()}}e.exports=function(e,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=i());var n=c(e=e||[],t);return function(e){if(e=e||[],"[object Array]"===Object.prototype.toString.call(e)){for(var s=0;s<n.length;s++){var i=r(n[s]);o[i].references--}for(var l=c(e,t),a=0;a<n.length;a++){var d=r(n[a]);0===o[d].references&&(o[d].updater(),o.splice(d,1))}n=l}}}},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")},79:e=>{"use strict";e.exports=CKEditor5.dll}},t={};function n(s){var i=t[s];if(void 0!==i)return i.exports;var l=t[s]={id:s,exports:{}};return e[s](l,l.exports,n),l.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 s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},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 s={};(()=>{"use strict";n.r(s),n.d(s,{Style:()=>V,StyleEditing:()=>S,StyleUI:()=>w});var e=n(704),t=n(273),i=n(209);const l=["caption","colgroup","dd","dt","figcaption","legend","li","optgroup","option","rp","rt","summary","tbody","td","tfoot","th","thead","tr"];class o extends t.ButtonView{constructor(e,t){super(e),this.styleDefinition=t,this.previewView=this._createPreview(),this.set({label:t.name,class:"ck-style-grid__button",withText:!0}),this.extendTemplate({attributes:{role:"option"}}),this.children.add(this.previewView,0)}_createPreview(){const{element:e,classes:n}=this.styleDefinition,s=new t.View(this.locale);return s.setTemplate({tag:"div",attributes:{class:["ck","ck-reset_all-excluded","ck-style-grid__button__preview","ck-content"]},children:[{tag:this._isPreviewable(e)?e:"div",attributes:{class:n},children:[{text:"AaBbCcDdEeFfGgHhIiJj"}]}]}),s}_isPreviewable(e){return!l.includes(e)}}var r=n(62),c=n.n(r),a=n(945),d={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};c()(a.Z,d);a.Z.locals;class u extends t.View{constructor(e,t){super(e),this.set("activeStyles",[]),this.set("enabledStyles",[]),this.children=this.createCollection(),this.children.delegate("execute").to(this);for(const n of t){const t=new o(e,n);this.children.add(t)}this.on("change:activeStyles",(()=>{for(const e of this.children)e.isOn=this.activeStyles.includes(e.styleDefinition.name)})),this.on("change:enabledStyles",(()=>{for(const e of this.children)e.isEnabled=this.enabledStyles.includes(e.styleDefinition.name)})),this.setTemplate({tag:"div",attributes:{class:["ck","ck-style-grid"],role:"listbox"},children:this.children})}}var h=n(561),k={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};c()(h.Z,k);h.Z.locals;class y extends t.View{constructor(e,n,s){super(e),this.labelView=new t.LabelView(e),this.labelView.text=n,this.gridView=new u(e,s),this.setTemplate({tag:"div",attributes:{class:["ck","ck-style-panel__style-group"],role:"group","aria-labelledby":this.labelView.id},children:[this.labelView,this.gridView]})}}var b=n(662),p={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};c()(b.Z,p);b.Z.locals;class g extends t.View{constructor(e,n){super(e);const s=e.t;this.focusTracker=new i.FocusTracker,this.keystrokes=new i.KeystrokeHandler,this.children=this.createCollection(),this.blockStylesGroupView=new y(e,s("Block styles"),n.block),this.inlineStylesGroupView=new y(e,s("Text styles"),n.inline),this.set("activeStyles",[]),this.set("enabledStyles",[]),this._focusables=new t.ViewCollection,this._focusCycler=new t.FocusCycler({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:["arrowup","arrowleft"],focusNext:["arrowdown","arrowright"]}}),n.block.length&&this.children.add(this.blockStylesGroupView),n.inline.length&&this.children.add(this.inlineStylesGroupView),this.blockStylesGroupView.gridView.delegate("execute").to(this),this.inlineStylesGroupView.gridView.delegate("execute").to(this),this.blockStylesGroupView.gridView.bind("activeStyles","enabledStyles").to(this),this.inlineStylesGroupView.gridView.bind("activeStyles","enabledStyles").to(this),this.setTemplate({tag:"div",attributes:{class:["ck","ck-style-panel"]},children:this.children})}render(){super.render();[...this.blockStylesGroupView.gridView.children,...this.inlineStylesGroupView.gridView.children].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}}function f(e,t=[]){const n={block:[],inline:[]};for(const s of t){const t=Array.from(e.getDefinitionsForView(s.element)),i=t.map((({model:e})=>e)),l=t.some((({isBlock:e})=>e));l?n.block.push({isBlock:l,modelElements:i,...s}):n.inline.push({isBlock:l,modelElements:i,...s})}return n}var m=n(529),v={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};c()(m.Z,v);m.Z.locals;class w extends e.Plugin{static get pluginName(){return"StyleUI"}init(){const e=this.editor,n=f(e.plugins.get("DataSchema"),e.config.get("style.definitions"));e.ui.componentFactory.add("style",(s=>{const i=s.t,l=(0,t.createDropdown)(s),o=new g(s,n),r=e.commands.get("style");return l.bind("isEnabled").to(r),l.panelView.children.add(o),l.buttonView.withText=!0,l.buttonView.bind("label").to(r,"value",(e=>e.length>1?i("Multiple styles"):1===e.length?e[0]:i("Styles"))),l.bind("class").to(r,"value",(e=>{const t=["ck-style-dropdown"];return e.length>1&&t.push("ck-style-dropdown_multiple-active"),t.join(" ")})),o.delegate("execute").to(l),o.on("execute",(t=>{e.execute("style",t.source.styleDefinition.name)})),o.bind("activeStyles").to(r,"value"),o.bind("enabledStyles").to(r,"enabledStyles"),l}))}}class _ extends e.Command{constructor(e,t){super(e),this.styles=t,this.set("enabledStyles",[]),this.refresh()}refresh(){let e=[];const t=this.editor,n=t.model.document.selection,s=(0,i.first)(n.getSelectedBlocks());this.enabledStyles=[],s&&t.model.schema.isObject(s)||(e=this._prepareNewInlineElementValue(e,n),this.enabledStyles=this.styles.getInlineElementsNames(),s&&(e=this._prepareNewBlockElementValue(e,s))),this.isEnabled=this.enabledStyles.length>0,this.value=this.isEnabled?e:[]}execute(e){if(!this.enabledStyles.includes(e))return void(0,i.logWarning)("style-command-executed-with-incorrect-style-name");const t=this.editor.model.document.selection,n=(0,i.first)(t.getSelectedBlocks()),s=this.styles.getDefinitionsByName(e);n&&s.isBlock?this._handleStyleUpdate(s,n):this._handleStyleUpdate(s,t)}_handleStyleUpdate(e,t){const{name:n,element:s,classes:i}=e,l=this.editor.plugins.get("GeneralHtmlSupport");this.value.includes(n)?l.removeModelHtmlClass(s,i,t):l.addModelHtmlClass(s,i,t)}_prepareNewInlineElementValue(e,t){let n=[...e];const s=t.getAttributes();for(const[e]of s)n=[...n,...this._getAttributeValue(e)];return n}_prepareNewBlockElementValue(e,t){const n=this.styles.getDefinitionsByElementName(t.name);if(n){const e=n.map((({name:e})=>e));this.enabledStyles=[...this.enabledStyles,...e]}return[...e,...this._getAttributeValue("htmlAttributes")]}_getAttributeValue(e){const t=[],n="htmlAttributes"===e?this._getValueFromBlockElement():this._getValueFromFirstAllowedNode(e);for(const e of n){const{name:n}=this.styles.getDefinitionsByClassName(e)||{};t.push(n)}return t}_getValueFromBlockElement(){const e=this.editor.model.document.selection,t=(0,i.first)(e.getSelectedBlocks()).getAttribute("htmlAttributes");return t?t.classes:[]}_getValueFromFirstAllowedNode(e){const t=this.editor.model,n=t.schema,s=t.document.selection;if(s.isCollapsed){const{classes:t}=s.getAttribute(e)||{};return t||[]}for(const t of s.getRanges())for(const s of t.getItems())if(n.checkAttribute(s,e)){const{classes:t}=s.getAttribute(e)||{};return t||[]}return[]}}class S extends e.Plugin{static get pluginName(){return"StyleEditing"}static get requires(){return["GeneralHtmlSupport"]}init(){const e=this.editor,t=f(e.plugins.get("DataSchema"),e.config.get("style.definitions")),n=new x(t);e.commands.add("style",new _(e,n)),this._configureGHSDataFilter(t)}_configureGHSDataFilter({block:e,inline:t}){const n=this.editor.plugins.get("DataFilter");n.loadAllowedConfig(e.map(T)),n.loadAllowedConfig(t.map(T))}}class x{constructor(e){this.styleTypes=["inline","block"],this.styleDefinitions=e,this.elementToDefinition=new Map,this.classToDefinition=new Map,this.nameToDefinition=new Map,this._prepareDefinitionsMapping()}_prepareDefinitionsMapping(){for(const e of this.styleTypes)for(const{modelElements:t,name:n,element:s,classes:i,isBlock:l}of this.styleDefinitions[e]){for(const e of t){const t=[...this.elementToDefinition.get(e)||[],{name:n,element:s,classes:i}];this.elementToDefinition.set(e,t)}this.classToDefinition.set(i.join(" "),{name:n,element:s,classes:i}),this.nameToDefinition.set(n,{name:n,element:s,classes:i,isBlock:l})}}getInlineElementsNames(){return this.styleDefinitions.inline.map((({name:e})=>e))}getDefinitionsByElementName(e){return this.elementToDefinition.get(e)}getDefinitionsByName(e){return this.nameToDefinition.get(e)}getDefinitionsByClassName(e){return this.classToDefinition.get(e)}}function T({element:e,classes:t}){return{name:e,classes:t}}class V extends e.Plugin{static get pluginName(){return"Style"}static get requires(){return[S,w]}}})(),(window.CKEditor5=window.CKEditor5||{}).style=s})();
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack://CKEditor5.style/./theme/style.css","webpack://CKEditor5.style/./theme/stylegrid.css","webpack://CKEditor5.style/./theme/stylegroup.css","webpack://CKEditor5.style/./theme/stylepanel.css","webpack://CKEditor5.style/../node_modules/css-loader/dist/runtime/api.js","webpack://CKEditor5.style/../node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack://CKEditor5.style/./theme/style.css?8fd6","webpack://CKEditor5.style/./theme/stylegrid.css?e256","webpack://CKEditor5.style/./theme/stylegroup.css?b9f8","webpack://CKEditor5.style/./theme/stylepanel.css?e19c","webpack://CKEditor5.style/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://CKEditor5.style/./src/style.js","webpack://CKEditor5.style/./src/stylecommand.js","webpack://CKEditor5.style/./src/styleediting.js","webpack://CKEditor5.style/./src/styleui.js","webpack://CKEditor5.style/./src/ui/stylegridbuttonview.js","webpack://CKEditor5.style/./src/ui/stylegridview.js","webpack://CKEditor5.style/./src/ui/stylegroupview.js","webpack://CKEditor5.style/./src/ui/stylepanelview.js","webpack://CKEditor5.style/./src/utils.js","webpack://CKEditor5.style/delegated \"./src/core.js\" from dll-reference CKEditor5.dll","webpack://CKEditor5.style/delegated \"./src/ui.js\" from dll-reference CKEditor5.dll","webpack://CKEditor5.style/delegated \"./src/utils.js\" from dll-reference CKEditor5.dll","webpack://CKEditor5.style/external var \"CKEditor5.dll\"","webpack://CKEditor5.style/webpack/bootstrap","webpack://CKEditor5.style/webpack/runtime/compat get default export","webpack://CKEditor5.style/webpack/runtime/define property getters","webpack://CKEditor5.style/webpack/runtime/hasOwnProperty shorthand","webpack://CKEditor5.style/webpack/runtime/make namespace object","webpack://CKEditor5.style/./src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAC4H;AAC7B;AAC/F,8BAA8B,mFAA2B,CAAC,wGAAqC;AAC/F;AACA,2IAA2I,kBAAkB,OAAO,8aAA8a,uBAAuB,GAAG,qBAAqB;AACjoB;AACA,iEAAe,uBAAuB,EAAC;;;;;;;;;;;;;;;;;;;;ACPvC;AAC4H;AAC7B;AAC/F,8BAA8B,mFAA2B,CAAC,wGAAqC;AAC/F;AACA,gDAAgD,2BAA2B,kCAAkC,aAAa,iEAAiE,yDAAyD,aAAa,sBAAsB,8BAA8B,yFAAyF,qBAAqB,mBAAmB,aAAa,gBAAgB,YAAY,2BAA2B,MAAM,oCAAoC,oCAAoC,oDAAoD,qFAAqF,iDAAiD,oDAAoD,mDAAmD,kCAAkC,mCAAmC,gCAAgC,yDAAyD,2EAA2E,4EAA4E,2CAA2C,UAAU,yCAAyC,qEAAqE,6CAA6C,+CAA+C,2EAA2E,yDAAyD,cAAc,YAAY,iBAAiB,gBAAgB,mCAAmC,uBAAuB,WAAW,yFAAyF,iDAAiD,WAAW,gBAAgB,iCAAiC,WAAW,qEAAqE,8EAA8E,iFAAiF,2DAA2D,gBAAgB,uFAAuF,yDAAyD,qGAAqG,6CAA6C,oBAAoB,WAAW,+DAA+D,gEAAgE,sEAAsE,uEAAuE,yDAAyD,yCAAyC,iFAAiF,uCAAuC,sCAAsC,qEAAqE,+CAA+C,uFAAuF,6CAA6C,6FAA6F,6DAA6D,6HAA6H,UAAU,+GAA+G,+DAA+D,OAAO,yqCAAyqC,gCAAgC,GAAG,uCAAuC,kBAAkB,sEAAsE,gCAAgC,oBAAoB,qCAAqC,6BAA6B,2CAA2C,sBAAsB,8BAA8B,oCAAoC,4BAA4B,qBAAqB,yBAAyB,OAAO,KAAK,GAAG,0LAA0L,yCAAyC,yCAAyC,gEAAgE,0FAA0F,8DAA8D,oEAAoE,gEAAgE,GAAG,uCAAuC,qCAAqC,wCAAwC,gCAAgC,kFAAkF,mFAAmF,mBAAmB,gDAAgD,kDAAkD,6EAA6E,sDAAsD,wDAAwD,OAAO,6BAA6B,qBAAqB,0BAA0B,oBAAoB,4CAA4C,yBAAyB,gCAAgC,uBAAuB,kEAAkE,OAAO,2CAA2C,oBAAoB,yBAAyB,oBAAoB,4CAA4C,0DAA0D,OAAO,uBAAuB,uFAAuF,iFAAiF,2BAA2B,sEAAsE,SAAS,+BAA+B,oEAAoE,SAAS,6CAA6C,sBAAsB,0DAA0D,+BAA+B,SAAS,OAAO,iBAAiB,yEAAyE,+EAA+E,gFAAgF,uEAAuE,oDAAoD,+BAA+B,kDAAkD,iDAAiD,SAAS,mBAAmB,0DAA0D,iCAAiC,0DAA0D,WAAW,SAAS,OAAO,+CAA+C,sEAAsE,6CAA6C,qBAAqB,SAAS,+BAA+B,0EAA0E,SAAS,OAAO,KAAK,GAAG,qBAAqB;AAC3oR;AACA,iEAAe,uBAAuB,EAAC;;;;;;;;;;;;;;;;;;;;ACPvC;AAC4H;AAC7B;AAC/F,8BAA8B,mFAA2B,CAAC,wGAAqC;AAC/F;AACA,oGAAoG,iCAAiC,sEAAsE,aAAa,OAAO,8YAA8Y,mBAAmB,wCAAwC,KAAK,qBAAqB,qBAAqB,sBAAsB,OAAO,KAAK,GAAG,qBAAqB;AACjxB;AACA,iEAAe,uBAAuB,EAAC;;;;;;;;;;;;;;;;;;;;ACPvC;AAC4H;AAC7B;AAC/F,8BAA8B,mFAA2B,CAAC,wGAAqC;AAC/F;AACA,gDAAgD,kCAAkC,mBAAmB,4CAA4C,gBAAgB,gCAAgC,OAAO,6XAA6X,uCAAuC,GAAG,wBAAwB,qCAAqC,qBAAqB,iDAAiD,GAAG,qBAAqB;AAC1wB;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;;;;;;;;;;;;;;;;;;ACnC+F;AAC/F,YAA0K;;AAE1K,eAAe,+CAA+C;;AAE9D;AACA;;AAEA,aAAa,0GAAG,CAAC,sJAAO;;;;AAIxB,iEAAe,6JAAc,MAAM;;;;;;;;;;;;;;;;;;ACZ4D;AAC/F,YAA8K;;AAE9K,eAAe,+CAA+C;;AAE9D;AACA;;AAEA,aAAa,0GAAG,CAAC,0JAAO;;;;AAIxB,iEAAe,iKAAc,MAAM;;;;;;;;;;;;;;;;;;ACZ4D;AAC/F,YAA+K;;AAE/K,eAAe,+CAA+C;;AAE9D;AACA;;AAEA,aAAa,0GAAG,CAAC,2JAAO;;;;AAIxB,iEAAe,kKAAc,MAAM;;;;;;;;;;;;;;;;;;ACZ4D;AAC/F,YAA+K;;AAE/K,eAAe,+CAA+C;;AAE9D;AACA;;AAEA,aAAa,0GAAG,CAAC,2JAAO;;;;AAIxB,iEAAe,kKAAc,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;;AAEZ;AACU;;AAE1C;AACA;AACA;AACA,2CAA2C;AAC3C,QAAQ,oDAAoD;AAC5D;AACA;AACA;AACe,oBAAoB,sDAAM;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,qDAAY,EAAE,gDAAO;AAChC;AACA;;AAEA;AACA,6BAA6B,gCAAgC;AAC7D;AACA,iBAAiB,qCAAqC;AACtD;AACA,YAAY,gCAAgC;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,QAAQ,sEAAsE;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI,4DAA4D;AAChE;AACA;AACA;AACA,iDAAiD;AACjD;AACA,6CAA6C,4EAA4E;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI,kEAAkE;AACtE,IAAI,sEAAsE;AAC1E;AACA,YAAY,4CAA4C;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;;;;;;;;;;;;;;;;;;ACtHA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE6C;AACW;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACe,2BAA2B,uDAAO;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,gEAAgE;AACtE;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,gEAAgE;AACtE;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0DAAK;;AAErB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,oDAAoD,uDAAuD;AAC3G;AACA;AACA;AACA;AACA;AACA,KAAK,uDAAuD;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,+DAAU;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B,0DAAK;AACpC;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,0CAA0C;AACtD;AACA;AACA,UAAU,yBAAyB;AACnC;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,yCAAyC;AACrD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,aAAa;AACzB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA,yDAAyD,OAAO;AAChE;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;;AAElB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0DAAK;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;;AAErB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;;AAEvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC1QA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE4C;AACF;;AAEA;;AAE1C;AACA;AACA;AACA,sBAAsB,mEAAmE;AACzF,IAAI,+EAA+E;AACnF,IAAI,4DAA4D;AAChE;AACA;AACA;AACe,2BAA2B,sDAAM;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uDAAe;AACpD;;AAEA,oCAAoC,qDAAY;;AAEhD;AACA;;AAEA;AACA;AACA,KAAK,4DAA4D,IAAI;AACrE,+BAA+B,iDAAiD;AAChF;AACA;AACA,YAAY,QAAQ;AACpB;AACA,4BAA4B,qDAAqD;AACjF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,8EAA8E;AAClF,IAAI,6CAA6C;AACjD;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iDAAiD;AAClE;AACA;AACA,2CAA2C,yBAAyB;AACpE;AACA;;AAEA,uDAAuD,yBAAyB;AAChF,uCAAuC,kCAAkC;AACzE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA,+CAA+C,OAAO;AACtD;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb,sDAAsD,mBAAmB;AACzE;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AChKA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE4C;AACM;;AAED;AACP;;AAEd;;AAE5B;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACe,sBAAsB,sDAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uDAAe;;AAEpD;AACA;AACA;AACA,oBAAoB,gEAAc;AAClC,yBAAyB,0DAAc;AACvC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;;;;;;;;;;;;;;;;AClGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAK0B;;AAE1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACe,kCAAkC,wDAAU;AAC3D;AACA,gCAAgC,+DAA+D;AAC/F;AACA,YAAY,4BAA4B;AACxC,YAAY,oCAAoC;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,oCAAoC;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU,mBAAmB;AAC7B,0BAA0B,kDAAI;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,QAAQ;AACR;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAoC;AAChD,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACrHA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEwC;AACgB;;AAErB;;AAEnC;AACA,2CAA2C,sEAAsE;AACjH;AACA;AACA;AACA;AACA;AACe,4BAA4B,kDAAI;AAC/C;AACA,gCAAgC,mDAAmD;AACnF;AACA,YAAY,4BAA4B;AACxC,YAAY,4CAA4C;AACxD;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;;AAEA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;;AAEA;AACA,4BAA4B,sEAAsE;AAClG;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA,4BAA4B,4DAAmB;;AAE/C;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA,IAAI;;AAEJ;AACA,mBAAmB,qEAAqE;AACxF;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACpGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAK0B;AACkB;;AAER;;AAEpC;AACA;AACA;AACA,cAAc,8DAA8D;AAC5E;AACA;AACA;AACA;AACe,6BAA6B,kDAAI;AAChD;AACA,gCAAgC,qDAAqD;AACrF;AACA,YAAY,4BAA4B;AACxC,YAAY,QAAQ;AACpB,YAAY,4CAA4C;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,2BAA2B;AACzC;AACA,uBAAuB,uDAAS;AAChC;;AAEA;AACA;AACA;AACA;AACA,cAAc,6CAA6C;AAC3D;AACA,sBAAsB,sDAAa;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;;;;;;;;;;;;;;;;;;;ACxEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAM0B;AAC2C;AACvB;;AAEV;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACe,6BAA6B,kDAAI;AAChD;AACA,gCAAgC,qDAAqD;AACrF;AACA,YAAY,4BAA4B;AACxC,YAAY,QAAQ;AACpB,YAAY,4CAA4C;AACxD,YAAY,4CAA4C;AACxD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,0BAA0B,6DAAY;;AAEtC;AACA,yBAAyB,qDAAqD;AAC9E;AACA;AACA,cAAc;AACd;AACA,wBAAwB,iEAAgB;;AAExC;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,kCAAkC,uDAAc;;AAEhD;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,mCAAmC,uDAAc;;AAEjD;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;;AAEA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,yBAAyB,4DAAc;;AAEvC;AACA,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA,cAAc;AACd;AACA,0BAA0B,yDAAW;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACxMA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe,kDAAkD;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,2CAA2C;AACtD,WAAW,4CAA4C;AACvD,aAAa,QAAQ;AACrB;AACO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA,qDAAqD,QAAQ;AAC7D,gDAAgD,UAAU;;AAE1D;AACA,uCAAuC,wCAAwC;AAC/E,IAAI;AACJ,wCAAwC,wCAAwC;AAChF;AACA;AACA;AACA;;;;;;;;;;;ACjDA;;;;;;;;;;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;;AAE2C;AACc;AACV","file":"style.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.ck-dropdown.ck-style-dropdown.ck-style-dropdown_multiple-active>.ck-button>.ck-button__label{font-style:italic}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-style/style.css\"],\"names\":[],\"mappings\":\"AAKA,iGACC,iBACD\",\"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.ck.ck-dropdown.ck-style-dropdown.ck-style-dropdown_multiple-active > .ck-button > .ck-button__label {\\n\\tfont-style: italic;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// 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, \":root{--ck-style-panel-columns:3}.ck.ck-style-panel .ck-style-grid{display:grid;grid-template-columns:repeat(var(--ck-style-panel-columns),auto)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button{display:flex;flex-direction:column;justify-content:space-between}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-style-grid__button__preview{align-content:center;align-items:center;display:flex;flex-basis:100%;flex-grow:1;justify-content:flex-start}:root{--ck-style-panel-button-width:120px;--ck-style-panel-button-height:80px;--ck-style-panel-button-shadow-color:rgba(0,0,0,.1);--ck-style-panel-button-shadow:0px 0px 6px var(--ck-style-panel-button-shadow-color);--ck-style-panel-button-label-background:#e6e6e6;--ck-style-panel-button-hover-label-background:#ccc;--ck-style-panel-button-hover-border-color:#b3b3b3}.ck.ck-style-panel .ck-style-grid{column-gap:var(--ck-spacing-large);row-gap:var(--ck-spacing-large)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button{--ck-color-button-default-hover-background:var(--ck-color-base-background);--ck-color-button-default-active-background:var(--ck-color-base-background);height:var(--ck-style-panel-button-height);padding:0;width:var(--ck-style-panel-button-width)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:not(:focus){border:1px solid var(--ck-color-base-border);box-shadow:var(--ck-style-panel-button-shadow)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-button__label{background:var(--ck-style-panel-button-label-background);flex-shrink:0;height:22px;line-height:22px;overflow:hidden;padding:0 var(--ck-spacing-medium);text-overflow:ellipsis;width:100%}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-style-grid__button__preview{border:2px solid var(--ck-color-base-background);opacity:.9;overflow:hidden;padding:var(--ck-spacing-medium);width:100%}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled{--ck-color-button-default-disabled-background:var(--ck-color-base-foreground)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled:not(:focus){border-color:var(--ck-style-panel-button-label-background);box-shadow:none}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled .ck-button__label{background:var(--ck-style-panel-button-label-background)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled .ck-style-grid__button__preview{border-color:var(--ck-color-base-foreground);filter:saturate(.3);opacity:.4}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on{--ck-color-button-on-background:var(--ck-color-base-background);--ck-color-button-on-hover-background:var(--ck-color-base-background);--ck-color-button-on-active-background:var(--ck-color-base-background);--ck-style-panel-button-shadow-color:rgba(25,140,240,.1);border-color:var(--ck-color-base-active)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on .ck-button__label{background:var(--ck-color-base-active);color:var(--ck-color-base-background)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on:hover{border-color:var(--ck-color-base-active-focus)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on:hover .ck-button__label{background:var(--ck-color-base-active-focus)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:hover:not(.ck-disabled):not(.ck-on){border-color:var(--ck-style-panel-button-hover-border-color)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:hover:not(.ck-disabled):not(.ck-on) .ck-style-grid__button__preview{opacity:1}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:hover:not(.ck-disabled):not(.ck-on) .ck-button__label{background:var(--ck-style-panel-button-hover-label-background)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./theme/stylegrid.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-style/stylegrid.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,0BACD,CAEA,kCACC,YAAa,CACb,gEAgBD,CAdC,yDACC,YAAa,CAEb,qBAAsB,CADtB,6BAWD,CARC,yFAEC,oBAAqB,CAErB,kBAAmB,CAHnB,YAAa,CAKb,eAAgB,CADhB,WAAY,CAFZ,0BAID,CCpBF,MACC,mCAAoC,CACpC,mCAAoC,CACpC,mDAA2D,CAC3D,oFAAqF,CACrF,gDAAyD,CACzD,mDAA+D,CAC/D,kDACD,CAEA,kCAEC,kCAAmC,CADnC,+BA4FD,CAzFC,yDACC,0EAA2E,CAC3E,2EAA4E,CAI5E,0CAA2C,CAF3C,SAAU,CACV,wCAmFD,CA/EC,qEACC,4CAA6C,CAC7C,8CACD,CAEA,2EAQC,wDAAyD,CADzD,aAAc,CANd,WAAY,CACZ,gBAAiB,CAGjB,eAAgB,CADhB,kCAAmC,CAEnC,sBAAuB,CAHvB,UAMD,CAEA,yFAMC,gDAAiD,CAHjD,UAAW,CADX,eAAgB,CAGhB,gCAAiC,CAJjC,UAMD,CAEA,qEACC,6EAkBD,CAfC,iFAEC,0DAA2D,CAD3D,eAED,CAEA,uFACC,wDACD,CAEA,qGAGC,4CAA6C,CAC7C,mBAAoB,CAHpB,UAID,CAGD,+DACC,+DAAgE,CAChE,qEAAsE,CACtE,sEAAuE,CACvE,wDAA8D,CAE9D,wCAcD,CAZC,iFACC,sCAAuC,CACvC,qCACD,CAEA,qEACC,8CAKD,CAHC,uFACC,4CACD,CAIF,6FACC,4DASD,CAPC,6HACC,SACD,CAEA,+GACC,8DACD\",\"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:root {\\n\\t--ck-style-panel-columns: 3;\\n}\\n\\n.ck.ck-style-panel .ck-style-grid {\\n\\tdisplay: grid;\\n\\tgrid-template-columns: repeat(var(--ck-style-panel-columns),auto);\\n\\n\\t& .ck-style-grid__button {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: space-between;\\n\\t\\tflex-direction: column;\\n\\n\\t\\t& .ck-style-grid__button__preview {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-content: center;\\n\\t\\t\\tjustify-content: flex-start;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t}\\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-style-panel-button-width: 120px;\\n\\t--ck-style-panel-button-height: 80px;\\n\\t--ck-style-panel-button-shadow-color: hsl(0deg 0% 0% / 10%);\\n\\t--ck-style-panel-button-shadow: 0px 0px 6px var(--ck-style-panel-button-shadow-color);\\n\\t--ck-style-panel-button-label-background: hsl(0, 0%, 90%);\\n\\t--ck-style-panel-button-hover-label-background: hsl(0, 0%, 80%);\\n\\t--ck-style-panel-button-hover-border-color: hsl(0, 0%, 70%);\\n}\\n\\n.ck.ck-style-panel .ck-style-grid {\\n\\trow-gap: var(--ck-spacing-large);\\n\\tcolumn-gap: var(--ck-spacing-large);\\n\\n\\t& .ck-style-grid__button {\\n\\t\\t--ck-color-button-default-hover-background: var(--ck-color-base-background);\\n\\t\\t--ck-color-button-default-active-background: var(--ck-color-base-background);\\n\\n\\t\\tpadding: 0;\\n\\t\\twidth: var(--ck-style-panel-button-width);\\n\\t\\theight: var(--ck-style-panel-button-height);\\n\\n\\t\\t/* Let default .ck-button :focus styles apply */\\n\\t\\t&:not(:focus) {\\n\\t\\t\\tborder: 1px solid var(--ck-color-base-border);\\n\\t\\t\\tbox-shadow: var(--ck-style-panel-button-shadow);\\n\\t\\t}\\n\\n\\t\\t& .ck-button__label {\\n\\t\\t\\theight: 22px;\\n\\t\\t\\tline-height: 22px;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tpadding: 0 var(--ck-spacing-medium);\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\tflex-shrink: 0;\\n\\t\\t\\tbackground: var(--ck-style-panel-button-label-background);\\n\\t\\t}\\n\\n\\t\\t& .ck-style-grid__button__preview {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\topacity: .9;\\n\\n\\t\\t\\tpadding: var(--ck-spacing-medium);\\n\\t\\t\\tborder: 2px solid var(--ck-color-base-background);\\n\\t\\t}\\n\\n\\t\\t&.ck-disabled {\\n\\t\\t\\t--ck-color-button-default-disabled-background: var(--ck-color-base-foreground);\\n\\n\\t\\t\\t/* Let default .ck-button :focus styles apply */\\n\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\tbox-shadow: none;\\n\\t\\t\\t\\tborder-color: var(--ck-style-panel-button-label-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\tbackground: var(--ck-style-panel-button-label-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-style-grid__button__preview {\\n\\t\\t\\t\\topacity: .4;\\n\\n\\t\\t\\t\\tborder-color: var(--ck-color-base-foreground);\\n\\t\\t\\t\\tfilter: saturate(.3);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-on {\\n\\t\\t\\t--ck-color-button-on-background: var(--ck-color-base-background);\\n\\t\\t\\t--ck-color-button-on-hover-background: var(--ck-color-base-background);\\n\\t\\t\\t--ck-color-button-on-active-background: var(--ck-color-base-background);\\n\\t\\t\\t--ck-style-panel-button-shadow-color: hsla(208, 88%, 52%, 0.1);\\n\\n\\t\\t\\tborder-color: var(--ck-color-base-active);\\n\\n\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\tbackground: var(--ck-color-base-active);\\n\\t\\t\\t\\tcolor: var(--ck-color-base-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tborder-color: var(--ck-color-base-active-focus);\\n\\n\\t\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\t\\tbackground: var(--ck-color-base-active-focus);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:hover:not(.ck-disabled):not(.ck-on) {\\n\\t\\t\\tborder-color: var(--ck-style-panel-button-hover-border-color);\\n\\n\\t\\t\\t& .ck-style-grid__button__preview {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\tbackground: var(--ck-style-panel-button-hover-label-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// 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.ck-style-panel .ck-style-panel__style-group>.ck-label{margin:var(--ck-spacing-large) 0}.ck.ck-style-panel .ck-style-panel__style-group:first-child>.ck-label{margin-top:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-style/stylegroup.css\"],\"names\":[],\"mappings\":\"AAMC,0DACC,gCACD,CAGC,sEACC,YACD\",\"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.ck.ck-style-panel .ck-style-panel__style-group {\\n\\t& > .ck-label {\\n\\t\\tmargin: var(--ck-spacing-large) 0;\\n\\t}\\n\\n\\t&:first-child {\\n\\t\\t& > .ck-label {\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// 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, \":root{--ck-style-panel-max-height:470px}.ck.ck-style-panel{max-height:var(--ck-style-panel-max-height);overflow-y:auto;padding:var(--ck-spacing-large)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-style/stylepanel.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,iCACD,CAEA,mBAGC,2CAA4C,CAD5C,eAAgB,CADhB,+BAGD\",\"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:root {\\n\\t--ck-style-panel-max-height: 470px;\\n}\\n\\n.ck.ck-style-panel {\\n\\tpadding: var(--ck-spacing-large);\\n\\toverflow-y: auto;\\n\\tmax-height: var(--ck-style-panel-max-height);\\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};","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]!./style.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 || {};","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]!./stylegrid.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 || {};","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]!./stylegroup.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 || {};","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]!./stylepanel.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 style/style\n */\n\nimport { Plugin } from 'ckeditor5/src/core';\n\nimport StyleUI from './styleui';\nimport StyleEditing from './styleediting';\n\n/**\n * The style plugin.\n *\n * This is a \"glue\" plugin that loads the {@link module:style/styleediting~StyleEditing style editing feature}\n * and {@link module:style/styleui~StyleUI style UI feature}.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class Style extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'Style';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get requires() {\n\t\treturn [ StyleEditing, StyleUI ];\n\t}\n}\n\n/**\n * The configuration of the {@link module:style/style~Style} feature.\n *\n * Read more in {@link module:style/style~StyleConfig}.\n *\n * @member {module:style/style~StyleConfig} module:core/editor/editorconfig~EditorConfig#style\n */\n\n/**\n * The configuration of the style feature.\n *\n *\t\tClassicEditor\n *\t\t\t.create( {\n * \t\t\t\tstyle: ... // Style feature config.\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 StyleConfig\n */\n\n/**\n * The available style definitions.\n *\n * Style definitions are displayed in the `'style'` UI dropdown and get applied by the\n * {@link module:style/stylecommand~StyleCommand style command} to the content of the document.\n *\n * In the `'style'` UI dropdown, definitions are automatically grouped into two categories based on the of the `element` property:\n *\n * * **Block styles**: Can be applied to entire {@link module:html-support/dataschema~DataSchema#registerBlockElement block elements}\n * only (e.g. headings, paragraphs, divs).\n * * **Text styles**: Can by applied to any {@link module:html-support/dataschema~DataSchema#registerInlineElement text} in any element\n * in the document.\n *\n * An example configuration:\n *\n *\t\t[\n *\t\t\t// Definitions of block styles.\n *\t\t\t{\n *\t\t\t\tname: 'Red heading',\n *\t\t\t\telement: 'h2',\n *\t\t\t\tclasses: [ 'red-heading' ]\n *\t\t\t},\n *\t\t\t{\n *\t\t\t\tname: 'Vibrant code',\n *\t\t\t\telement: 'pre',\n *\t\t\t\tclasses: [ 'vibrant-code' ]\n *\t\t\t},\n *\n *\t\t\t// Definitions of text (inline) styles.\n *\t\t\t{\n *\t\t\t\tname: 'Marker',\n *\t\t\t\telement: 'span',\n *\t\t\t\tclasses: [ 'marker' ]\n *\t\t\t},\n *\t\t\t// ...\n *\t\t]\n *\n * **Note**: Configuring style definitions will automatically configure the\n * {@glink features/general-html-support General HTML Support feature}. **You do not need to repeat the configuration in\n * {@link module:html-support/generalhtmlsupport~GeneralHtmlSupportConfig}**.\n *\n * @member {Array.<module:style/style~StyleDefinition>} module:style/style~StyleConfig#definitions\n */\n\n/**\n * Style definition.\n *\n * An object describing a style definition. It contains the style `name`, `element` name and an array of CSS `classes`.\n *\n *\t\t// This style will create <h2 class=\"foo\">...</h2> in the document data.\n *\t\t{\n *\t\t\tname: 'Example style',\n *\t\t\telement: 'h2',\n *\t\t\tclasses: [ 'foo' ]\n *\t\t}\n *\n * @typedef {Object} module:style/style~StyleDefinition\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 style/stylecommand\n */\n\nimport { Command } from 'ckeditor5/src/core';\nimport { logWarning, first } from 'ckeditor5/src/utils';\n\n/**\n * Style command.\n *\n * Applies and removes styles from selection and elements.\n *\n * @extends module:core/command~Command\n */\nexport default class StyleCommand extends Command {\n\tconstructor( editor, styles ) {\n\t\tsuper( editor );\n\n\t\t/**\n\t\t * Set of currently applied styles on current selection.\n\t\t *\n\t\t * Names of styles correspond to the `name` property of\n\t\t * {@link module:style/style~StyleDefinition configured definitions}.\n\t\t *\n\t\t * @observable\n\t\t * @readonly\n\t\t * @member {Boolean|String} #value\n\t\t */\n\n\t\t/**\n\t\t * Styles object. Helps in getting styles definitions by\n\t\t * class name, style name and model element name.\n\t\t *\n\t\t * @private\n\t\t * @readonly\n\t\t * @member {module:style/styleediting~Styles}\n\t\t */\n\t\tthis.styles = styles;\n\n\t\t/**\n\t\t * Names of enabled styles (styles that can be applied to the current selection).\n\t\t *\n\t\t * Names of enabled styles correspond to the `name` property of\n\t\t * {@link module:style/style~StyleDefinition configured definitions}.\n\t\t *\n\t\t * @readonly\n\t\t * @observable\n\t\t * @member {Array.<String>} #enabledStyles\n\t\t */\n\t\tthis.set( 'enabledStyles', [] );\n\n\t\t/**\n\t\t * Refresh state.\n\t\t */\n\t\tthis.refresh();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\trefresh() {\n\t\tlet value = [];\n\t\tconst editor = this.editor;\n\t\tconst selection = editor.model.document.selection;\n\t\tconst block = first( selection.getSelectedBlocks() );\n\n\t\tthis.enabledStyles = [];\n\n\t\tif ( !block || !editor.model.schema.isObject( block ) ) {\n\t\t\tvalue = this._prepareNewInlineElementValue( value, selection );\n\t\t\tthis.enabledStyles = this.styles.getInlineElementsNames();\n\n\t\t\tif ( block ) {\n\t\t\t\tvalue = this._prepareNewBlockElementValue( value, block );\n\t\t\t}\n\t\t}\n\n\t\tthis.isEnabled = this.enabledStyles.length > 0;\n\t\tthis.value = this.isEnabled ? value : [];\n\t}\n\n\t/**\n\t * Executes the command &mdash; applies the style classes to the selection or removes it from the selection.\n\t *\n\t * If the command value already contains the requested style, it will remove the style classes. Otherwise, it will set it.\n\t *\n\t * The execution result differs, depending on the {@link module:engine/model/document~Document#selection} and the\n\t * style type (inline or block):\n\t *\n\t * * When applying inline styles:\n\t * * If the selection is on a range, the command applies the style classes to all nodes in that range.\n\t * * If the selection is collapsed in a non-empty node, the command applies the style classes to the\n\t * {@link module:engine/model/document~Document#selection} itself (note that typed characters copy style classes from the selection).\n\t *\n\t * * When applying block styles:\n\t * * If the selection is on a range, the command applies the style classes to the nearest block parent element.\n\t *\n\t * * When selection is set on a widget object:\n\t * * Do nothing. Widgets are not yet supported by the style command.\n\t *\n\t * @fires execute\n\t * @param {String} styleName Style name matching the one defined in the config.\n\t */\n\texecute( styleName ) {\n\t\tif ( !this.enabledStyles.includes( styleName ) ) {\n\t\t\t/**\n\t\t\t * Style command can be executed only on a correct style name.\n\t\t\t * This warning may be caused by passing name that it not specified in any of the\n\t\t\t * definitions in the styles config, when trying to apply style that is not allowed\n\t\t\t * on given element or passing class name instead of the style name.\n\t\t\t *\n\t\t\t * @error style-command-executed-with-incorrect-style-name\n\t\t\t */\n\t\t\tlogWarning( 'style-command-executed-with-incorrect-style-name' );\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst doc = model.document;\n\t\tconst selection = doc.selection;\n\n\t\tconst selectedBlockElement = first( selection.getSelectedBlocks() );\n\t\tconst definition = this.styles.getDefinitionsByName( styleName );\n\n\t\tif ( selectedBlockElement && definition.isBlock ) {\n\t\t\tthis._handleStyleUpdate( definition, selectedBlockElement );\n\t\t} else {\n\t\t\tthis._handleStyleUpdate( definition, selection );\n\t\t}\n\t}\n\n\t/**\n\t * Adds or removes classes to element, range or selection.\n\t *\n\t * @private\n\t * @param {Object} definition Style definition object.\n\t * @param {module:engine/model/selection~Selectable} selectable Selection, range or element to update the style on.\n\t */\n\t_handleStyleUpdate( definition, selectable ) {\n\t\tconst { name, element, classes } = definition;\n\t\tconst htmlSupport = this.editor.plugins.get( 'GeneralHtmlSupport' );\n\n\t\tif ( this.value.includes( name ) ) {\n\t\t\thtmlSupport.removeModelHtmlClass( element, classes, selectable );\n\t\t} else {\n\t\t\thtmlSupport.addModelHtmlClass( element, classes, selectable );\n\t\t}\n\t}\n\n\t/**\n\t * Returns inline element value.\n\t *\n\t * @private\n\t * @param {Array} value\n\t * @param {module:engine/model/selection~Selection} selection\n\t */\n\t_prepareNewInlineElementValue( value, selection ) {\n\t\tlet newValue = [];\n\n\t\tconst attributes = selection.getAttributes();\n\n\t\tfor ( const [ attribute ] of attributes ) {\n\t\t\tnewValue = [ ...value, ...this._getAttributeValue( attribute ) ];\n\t\t}\n\n\t\treturn newValue;\n\t}\n\n\t/**\n\t * Returns element value and sets enabled styles.\n\t *\n\t * @private\n\t * @param {Array} value\n\t * @param {Object|null} element\n\t * @return {Array} Current block element styles value.\n\t */\n\t_prepareNewBlockElementValue( value, element ) {\n\t\tconst availableDefinitions = this.styles.getDefinitionsByElementName( element.name );\n\n\t\tif ( availableDefinitions ) {\n\t\t\tconst blockStyleNames = availableDefinitions.map( ( { name } ) => name );\n\t\t\tthis.enabledStyles = [ ...this.enabledStyles, ...blockStyleNames ];\n\t\t}\n\n\t\treturn [ ...value, ...this._getAttributeValue( 'htmlAttributes' ) ];\n\t}\n\n\t/**\n\t * Get classes attribute value.\n\t *\n\t * @private\n\t * @param {String} attribute\n\t */\n\t_getAttributeValue( attribute ) {\n\t\tconst value = [];\n\t\tconst classes = attribute === 'htmlAttributes' ?\n\t\t\tthis._getValueFromBlockElement() :\n\t\t\tthis._getValueFromFirstAllowedNode( attribute );\n\n\t\tfor ( const htmlClass of classes ) {\n\t\t\tconst { name } = this.styles.getDefinitionsByClassName( htmlClass ) || {};\n\n\t\t\tvalue.push( name );\n\t\t}\n\n\t\treturn value;\n\t}\n\n\t/**\n\t * Gets classes from currently selected block element.\n\t *\n\t * @private\n\t */\n\t_getValueFromBlockElement() {\n\t\tconst selection = this.editor.model.document.selection;\n\t\tconst block = first( selection.getSelectedBlocks() );\n\t\tconst attributes = block.getAttribute( 'htmlAttributes' );\n\n\t\tif ( attributes ) {\n\t\t\treturn attributes.classes;\n\t\t}\n\n\t\treturn [];\n\t}\n\n\t/**\n\t * Gets classes from currently selected text element.\n\t *\n\t * @private\n\t * @param {String} attributeName Text attribute name.\n\t */\n\t_getValueFromFirstAllowedNode( attributeName ) {\n\t\tconst model = this.editor.model;\n\t\tconst schema = model.schema;\n\t\tconst selection = model.document.selection;\n\n\t\tif ( selection.isCollapsed ) {\n\t\t\t/* istanbul ignore next */\n\t\t\tconst { classes } = selection.getAttribute( attributeName ) || {};\n\n\t\t\t/* istanbul ignore next */\n\t\t\treturn classes || [];\n\t\t}\n\n\t\tfor ( const range of selection.getRanges() ) {\n\t\t\tfor ( const item of range.getItems() ) {\n\t\t\t\t/* istanbul ignore else */\n\t\t\t\tif ( schema.checkAttribute( item, attributeName ) ) {\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tconst { classes } = item.getAttribute( attributeName ) || {};\n\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\treturn classes || [];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/* istanbul ignore next */\n\t\treturn [];\n\t}\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 style/styleediting\n */\n\nimport { Plugin } from 'ckeditor5/src/core';\nimport { normalizeConfig } from './utils';\n\nimport StyleCommand from './stylecommand';\n\n/**\n * The style engine feature.\n *\n * It configures the {@glink features/general-html-support General HTML Support feature} based on\n * {@link module:style/style~StyleConfig#definitions configured style definitions} and introduces the\n * {@link module:style/stylecommand~StyleCommand style command} that applies styles to the content of the document.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class StyleEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'StyleEditing';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get requires() {\n\t\treturn [ 'GeneralHtmlSupport' ];\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst dataSchema = editor.plugins.get( 'DataSchema' );\n\t\tconst normalizedStyleDefinitions = normalizeConfig( dataSchema, editor.config.get( 'style.definitions' ) );\n\t\tconst styles = new Styles( normalizedStyleDefinitions );\n\n\t\teditor.commands.add( 'style', new StyleCommand( editor, styles ) );\n\n\t\tthis._configureGHSDataFilter( normalizedStyleDefinitions );\n\t}\n\n\t/**\n\t * This is where the styles feature configures the GHS feature. This method translates normalized\n\t * {@link module:style/style~StyleDefinition style definitions} to {@link module:engine/view/matcher~MatcherPattern matcher patterns}\n\t * and feeds them to the GHS {@link module:html-support/datafilter~DataFilter} plugin.\n\t *\n\t * @private\n\t * @param {Object} normalizedStyleDefinitions\n\t */\n\t_configureGHSDataFilter( { block: blockDefinitions, inline: inlineDefinitions } ) {\n\t\tconst ghsDataFilter = this.editor.plugins.get( 'DataFilter' );\n\n\t\tghsDataFilter.loadAllowedConfig( blockDefinitions.map( normalizedStyleDefinitionToMatcherPattern ) );\n\t\tghsDataFilter.loadAllowedConfig( inlineDefinitions.map( normalizedStyleDefinitionToMatcherPattern ) );\n\t}\n}\n\n/**\n * The helper class storing various mappings based on\n * {@link module:style/style~StyleConfig#definitions configured style definitions}. Used internally by\n * {@link module:style/stylecommand~StyleCommand}.\n *\n * @private\n */\nclass Styles {\n\t/**\n\t * @param {Object} An object with normalized style definitions grouped into `block` and `inline` categories (arrays).\n\t */\n\tconstructor( styleDefinitions ) {\n\t\tthis.styleTypes = [ 'inline', 'block' ];\n\t\tthis.styleDefinitions = styleDefinitions;\n\t\tthis.elementToDefinition = new Map();\n\t\tthis.classToDefinition = new Map();\n\t\tthis.nameToDefinition = new Map();\n\n\t\tthis._prepareDefinitionsMapping();\n\t}\n\n\t/**\n\t * Populates various maps to simplify getting config definitions\n\t * by model name,class name and style name.\n\t *\n\t * @private\n\t */\n\t_prepareDefinitionsMapping() {\n\t\tfor ( const type of this.styleTypes ) {\n\t\t\tfor ( const { modelElements, name, element, classes, isBlock } of this.styleDefinitions[ type ] ) {\n\t\t\t\tfor ( const modelElement of modelElements ) {\n\t\t\t\t\tconst currentValue = this.elementToDefinition.get( modelElement ) || [];\n\t\t\t\t\tconst newValue = [ ...currentValue, { name, element, classes } ];\n\t\t\t\t\tthis.elementToDefinition.set( modelElement, newValue );\n\t\t\t\t}\n\n\t\t\t\tthis.classToDefinition.set( classes.join( ' ' ), { name, element, classes } );\n\t\t\t\tthis.nameToDefinition.set( name, { name, element, classes, isBlock } );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns all inline definitions elements names.\n\t *\n\t * @protected\n\t * @return {Array.<String>} Inline elements names.\n\t */\n\tgetInlineElementsNames() {\n\t\treturn this.styleDefinitions.inline.map( ( { name } ) => name );\n\t}\n\n\t/**\n\t * Returns the style config definitions by the model element name.\n\t *\n\t * @protected\n\t * @return {Object} Style config definition.\n\t */\n\tgetDefinitionsByElementName( elementName ) {\n\t\treturn this.elementToDefinition.get( elementName );\n\t}\n\n\t/**\n\t * Returns the style config definitions by the style name.\n\t *\n\t * @protected\n\t * @return {Object} Style config definition.\n\t */\n\tgetDefinitionsByName( name ) {\n\t\treturn this.nameToDefinition.get( name );\n\t}\n\n\t/**\n\t * Returns the style config definitions by the style name.\n\t *\n\t * @protected\n\t * @return {Object} Style config definition.\n\t */\n\tgetDefinitionsByClassName( className ) {\n\t\treturn this.classToDefinition.get( className );\n\t}\n}\n\n// Translates a normalized style definition to a view matcher pattern.\n//\n// @param {Object} definition A normalized style definition.\n// @returns {module:engine/view/matcher~MatcherPattern}\nfunction normalizedStyleDefinitionToMatcherPattern( { element, classes } ) {\n\treturn {\n\t\tname: element,\n\t\tclasses\n\t};\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 style/styleui\n */\n\nimport { Plugin } from 'ckeditor5/src/core';\nimport { createDropdown } from 'ckeditor5/src/ui';\n\nimport StylePanelView from './ui/stylepanelview';\nimport { normalizeConfig } from './utils';\n\nimport '../theme/style.css';\n\n/**\n * The UI plugin of the style feature .\n *\n * It registers the `'style'` UI dropdown in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}\n * that displays a grid of styles and allows changing styles of the content.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class StyleUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'StyleUI';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst dataSchema = editor.plugins.get( 'DataSchema' );\n\t\tconst normalizedStyleDefinitions = normalizeConfig( dataSchema, editor.config.get( 'style.definitions' ) );\n\n\t\t// Add the dropdown fo the component factory.\n\t\teditor.ui.componentFactory.add( 'style', locale => {\n\t\t\tconst t = locale.t;\n\t\t\tconst dropdown = createDropdown( locale );\n\t\t\tconst panelView = new StylePanelView( locale, normalizedStyleDefinitions );\n\t\t\tconst styleCommand = editor.commands.get( 'style' );\n\n\t\t\t// The entire dropdown will be disabled together with the command (e.g. when the editor goes read-only).\n\t\t\tdropdown.bind( 'isEnabled' ).to( styleCommand );\n\n\t\t\t// Put the styles panel is the dropdown.\n\t\t\tdropdown.panelView.children.add( panelView );\n\n\t\t\t// This dropdown has no icon. It displays text label depending on the selection.\n\t\t\tdropdown.buttonView.withText = true;\n\n\t\t\t// The label of the dropdown is dynamic and depends on how many styles are active at a time.\n\t\t\tdropdown.buttonView.bind( 'label' ).to( styleCommand, 'value', value => {\n\t\t\t\tif ( value.length > 1 ) {\n\t\t\t\t\treturn t( 'Multiple styles' );\n\t\t\t\t} else if ( value.length === 1 ) {\n\t\t\t\t\treturn value[ 0 ];\n\t\t\t\t} else {\n\t\t\t\t\treturn t( 'Styles' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// The dropdown has a static CSS class for easy customization. There's another CSS class\n\t\t\t// that gets displayed when multiple styles are active at a time allowing visual customization of\n\t\t\t// the label.\n\t\t\tdropdown.bind( 'class' ).to( styleCommand, 'value', value => {\n\t\t\t\tconst classes = [\n\t\t\t\t\t'ck-style-dropdown'\n\t\t\t\t];\n\n\t\t\t\tif ( value.length > 1 ) {\n\t\t\t\t\tclasses.push( 'ck-style-dropdown_multiple-active' );\n\t\t\t\t}\n\n\t\t\t\treturn classes.join( ' ' );\n\t\t\t} );\n\n\t\t\t// Close the dropdown when a style is selected in the styles panel.\n\t\t\tpanelView.delegate( 'execute' ).to( dropdown );\n\n\t\t\t// Execute the command when a style is selected in the styles panel.\n\t\t\tpanelView.on( 'execute', evt => {\n\t\t\t\teditor.execute( 'style', evt.source.styleDefinition.name );\n\t\t\t} );\n\n\t\t\t// Bind the state of the styles panel to the command.\n\t\t\tpanelView.bind( 'activeStyles' ).to( styleCommand, 'value' );\n\t\t\tpanelView.bind( 'enabledStyles' ).to( styleCommand, 'enabledStyles' );\n\n\t\t\treturn dropdown;\n\t\t} );\n\t}\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 style/ui/stylegridbuttonview\n */\n\nimport {\n\tButtonView,\n\tView\n} from 'ckeditor5/src/ui';\n\n// These are intermediate element names that can't be rendered as style preview because they don't make sense standalone.\nconst NON_PREVIEWABLE_ELEMENT_NAMES = [\n\t'caption', 'colgroup', 'dd', 'dt', 'figcaption', 'legend', 'li', 'optgroup', 'option', 'rp',\n\t'rt', 'summary', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr'\n];\n\n/**\n * A class representing an individual button (style) in the grid. Renders a rich preview of the style.\n *\n * @protected\n * @extends {module:ui/button/buttonview~ButtonView}\n */\nexport default class StyleGridButtonView extends ButtonView {\n\t/**\n\t * Creates an instance of the {@link module:style/ui/stylegridbuttonview~StyleGridButtonView} class.\n\t *\n\t * @param {module:utils/locale~Locale} locale The localization services instance.\n\t * @param {module:style/style~StyleDefinition} styleDefinition Definition of the style.\n\t */\n\tconstructor( locale, styleDefinition ) {\n\t\tsuper( locale );\n\n\t\t/**\n\t\t * Definition of the style the button will apply when executed.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:style/style~StyleDefinition} #styleDefinition\n\t\t */\n\t\tthis.styleDefinition = styleDefinition;\n\n\t\t/**\n\t\t * The view rendering the preview of the style.\n\t\t *\n\t\t * @protected\n\t\t * @readonly\n\t\t * @member {module:ui/view~View} #previewView\n\t\t */\n\t\tthis.previewView = this._createPreview();\n\n\t\tthis.set( {\n\t\t\tlabel: styleDefinition.name,\n\t\t\tclass: 'ck-style-grid__button',\n\t\t\twithText: true\n\t\t} );\n\n\t\tthis.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\trole: 'option'\n\t\t\t}\n\t\t} );\n\n\t\tthis.children.add( this.previewView, 0 );\n\t}\n\n\t/**\n\t * Creates the view representing the preview of the style.\n\t *\n\t * @private\n\t * @returns {module:ui/view~View}\n\t */\n\t_createPreview() {\n\t\tconst { element, classes } = this.styleDefinition;\n\t\tconst previewView = new View( this.locale );\n\n\t\tpreviewView.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-reset_all-excluded',\n\t\t\t\t\t'ck-style-grid__button__preview',\n\t\t\t\t\t'ck-content'\n\t\t\t\t]\n\t\t\t},\n\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttag: this._isPreviewable( element ) ? element : 'div',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: classes\n\t\t\t\t\t},\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t{ text: 'AaBbCcDdEeFfGgHhIiJj' }\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\n\t\treturn previewView;\n\t}\n\n\t/**\n\t * Decides whether an element should be created in the preview or a substitute `<div>` should\n\t * be used instead. This avoids previewing a standalone `<td>`, `<li>`, etc. without a parent.\n\t *\n\t * @private\n\t * @param {module:style/style~StyleDefinition} styleDefinition\n\t * @returns {Boolean} `true` when the element can be rendered. `false` otherwise.\n\t */\n\t_isPreviewable( elementName ) {\n\t\treturn !NON_PREVIEWABLE_ELEMENT_NAMES.includes( elementName );\n\t}\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 style/ui/stylegridview\n */\n\nimport { View } from 'ckeditor5/src/ui';\nimport StyleGridButtonView from './stylegridbuttonview';\n\nimport '../../theme/stylegrid.css';\n\n/**\n * A class representing a grid of styles ({@link module:style/ui/stylegridbuttonview~StyleGridButtonView buttons}).\n * Allows users to select a style.\n *\n * @protected\n * @extends module:ui/view~View\n */\nexport default class StyleGridView extends View {\n\t/**\n\t * Creates an instance of the {@link module:style/ui/stylegridview~StyleGridView} class.\n\t *\n\t * @param {module:utils/locale~Locale} locale The localization services instance.\n\t * @param {Array.<module:style/style~StyleDefinition>} styleDefinitions Definitions of the styles.\n\t */\n\tconstructor( locale, styleDefinitions ) {\n\t\tsuper( locale );\n\n\t\t/**\n\t\t * Array of active style names. They must correspond to the names of styles from\n\t\t * definitions passed to the {@link #constructor}.\n\t\t *\n\t\t * @observable\n\t\t * @readonly\n\t\t * @default []\n\t\t * @member {Array.<String>} #activeStyles\n\t\t */\n\t\tthis.set( 'activeStyles', [] );\n\n\t\t/**\n\t\t * Array of enabled style names. They must correspond to the names of styles from\n\t\t * definitions passed to the {@link #constructor}.\n\t\t *\n\t\t * @observable\n\t\t * @readonly\n\t\t * @default []\n\t\t * @member {Array.<String>} #enabledStyles\n\t\t */\n\t\tthis.set( 'enabledStyles', [] );\n\n\t\t/**\n\t\t * A collection of style {@link module:style/ui/stylegridbuttonview~StyleGridButtonView buttons}.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:ui/viewcollection~ViewCollection}\n\t\t */\n\t\tthis.children = this.createCollection();\n\t\tthis.children.delegate( 'execute' ).to( this );\n\n\t\tfor ( const definition of styleDefinitions ) {\n\t\t\tconst gridTileView = new StyleGridButtonView( locale, definition );\n\n\t\t\tthis.children.add( gridTileView );\n\t\t}\n\n\t\tthis.on( 'change:activeStyles', () => {\n\t\t\tfor ( const child of this.children ) {\n\t\t\t\tchild.isOn = this.activeStyles.includes( child.styleDefinition.name );\n\t\t\t}\n\t\t} );\n\n\t\tthis.on( 'change:enabledStyles', () => {\n\t\t\tfor ( const child of this.children ) {\n\t\t\t\tchild.isEnabled = this.enabledStyles.includes( child.styleDefinition.name );\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-style-grid'\n\t\t\t\t],\n\t\t\t\trole: 'listbox'\n\t\t\t},\n\n\t\t\tchildren: this.children\n\t\t} );\n\n\t\t/**\n\t\t * Fired when a {@link module:style/ui/stylegridbuttonview~StyleGridButtonView style} was selected (clicked) by the user.\n\t\t *\n\t\t * @event execute\n\t\t */\n\t}\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 style/ui/stylegroupview\n */\n\nimport {\n\tLabelView,\n\tView\n} from 'ckeditor5/src/ui';\nimport StyleGridView from './stylegridview';\n\nimport '../../theme/stylegroup.css';\n\n/**\n * A class representing a group of styles (e.g. \"block\" or \"inline\").\n *\n * Renders a {@link module:style/ui/stylegridview~StyleGridView style grid} and a label.\n *\n * @protected\n * @extends module:ui/view~View\n */\nexport default class StyleGroupView extends View {\n\t/**\n\t * Creates an instance of the {@link module:style/ui/stylegroupview~StyleGroupView} class.\n\t *\n\t * @param {module:utils/locale~Locale} locale The localization services instance.\n\t * @param {String} label The localized label of the group.\n\t * @param {Array.<module:style/style~StyleDefinition>} styleDefinitions Definitions of the styles in the group.\n\t */\n\tconstructor( locale, label, styleDefinitions ) {\n\t\tsuper( locale );\n\n\t\t/**\n\t\t * The label of the group.\n\t\t *\n\t\t * @protected\n\t\t * @readonly\n\t\t * @member {module:ui/label~LabelView} #labelView\n\t\t */\n\t\tthis.labelView = new LabelView( locale );\n\t\tthis.labelView.text = label;\n\n\t\t/**\n\t\t * The styles grid of the group.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:style/ui/stylegridview~StyleGridView} #gridView\n\t\t */\n\t\tthis.gridView = new StyleGridView( locale, styleDefinitions );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-style-panel__style-group'\n\t\t\t\t],\n\t\t\t\trole: 'group',\n\t\t\t\t'aria-labelledby': this.labelView.id\n\t\t\t},\n\n\t\t\tchildren: [\n\t\t\t\tthis.labelView,\n\t\t\t\tthis.gridView\n\t\t\t]\n\t\t} );\n\t}\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 style/ui/stylepanelview\n */\n\nimport {\n\tFocusCycler,\n\tView,\n\tViewCollection\n} from 'ckeditor5/src/ui';\nimport { FocusTracker, KeystrokeHandler } from 'ckeditor5/src/utils';\nimport StyleGroupView from './stylegroupview';\n\nimport '../../theme/stylepanel.css';\n\n/**\n * A class representing a panel with available content styles. It renders styles in button grids, grouped\n * in categories.\n *\n * @protected\n * @extends module:ui/view~View\n */\nexport default class StylePanelView extends View {\n\t/**\n\t * Creates an instance of the {@link module:style/ui/stylegroupview~StyleGroupView} class.\n\t *\n\t * @param {module:utils/locale~Locale} locale The localization services instance.\n\t * @param {Object} styleDefinitions Normalized definitions of the styles.\n\t * @param {Array.<module:style/style~StyleDefinition>} styleDefinitions.block Definitions of block styles.\n\t * @param {Array.<module:style/style~StyleDefinition>} styleDefinitions.inline Definitions of inline styles.\n\t */\n\tconstructor( locale, styleDefinitions ) {\n\t\tsuper( locale );\n\n\t\tconst t = locale.t;\n\n\t\t/**\n\t\t * Tracks information about DOM focus in the panel.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:utils/focustracker~FocusTracker}\n\t\t */\n\t\tthis.focusTracker = new FocusTracker();\n\n\t\t/**\n\t\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:utils/keystrokehandler~KeystrokeHandler}\n\t\t */\n\t\tthis.keystrokes = new KeystrokeHandler();\n\n\t\t/**\n\t\t * A collection of panel children.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:ui/viewcollection~ViewCollection}\n\t\t */\n\t\tthis.children = this.createCollection();\n\n\t\t/**\n\t\t * A view representing block styles group.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:style/ui/stylegroupview~StyleGroupView}\n\t\t */\n\t\tthis.blockStylesGroupView = new StyleGroupView( locale, t( 'Block styles' ), styleDefinitions.block );\n\n\t\t/**\n\t\t * A view representing inline styles group.\n\t\t *\n\t\t * @readonly\n\t\t * @member {module:style/ui/stylegroupview~StyleGroupView}\n\t\t */\n\t\tthis.inlineStylesGroupView = new StyleGroupView( locale, t( 'Text styles' ), styleDefinitions.inline );\n\n\t\t/**\n\t\t * Array of active style names. They must correspond to the names of styles from\n\t\t * definitions passed to the {@link #constructor}.\n\t\t *\n\t\t * @observable\n\t\t * @readonly\n\t\t * @default []\n\t\t * @member {Array.<String>} #activeStyles\n\t\t */\n\t\tthis.set( 'activeStyles', [] );\n\n\t\t/**\n\t\t * Array of enabled style names. They must correspond to the names of styles from\n\t\t * definitions passed to the {@link #constructor}.\n\t\t *\n\t\t * @observable\n\t\t * @readonly\n\t\t * @default []\n\t\t * @member {Array.<String>} #enabledStyles\n\t\t */\n\t\tthis.set( 'enabledStyles', [] );\n\n\t\t/**\n\t\t * A collection of views that can be focused in the panel.\n\t\t *\n\t\t * @readonly\n\t\t * @protected\n\t\t * @member {module:ui/viewcollection~ViewCollection}\n\t\t */\n\t\tthis._focusables = new ViewCollection();\n\n\t\t/**\n\t\t * Helps cycling over {@link #_focusables} in the panel.\n\t\t *\n\t\t * @readonly\n\t\t * @protected\n\t\t * @member {module:ui/focuscycler~FocusCycler}\n\t\t */\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate style buttons backwards using the ↑ or ← keystrokes.\n\t\t\t\tfocusPrevious: [ 'arrowup', 'arrowleft' ],\n\n\t\t\t\t// Navigate style buttons forward using the Arrow ↓ or → keystrokes.\n\t\t\t\tfocusNext: [ 'arrowdown', 'arrowright' ]\n\t\t\t}\n\t\t} );\n\n\t\tif ( styleDefinitions.block.length ) {\n\t\t\tthis.children.add( this.blockStylesGroupView );\n\t\t}\n\n\t\tif ( styleDefinitions.inline.length ) {\n\t\t\tthis.children.add( this.inlineStylesGroupView );\n\t\t}\n\n\t\tthis.blockStylesGroupView.gridView.delegate( 'execute' ).to( this );\n\t\tthis.inlineStylesGroupView.gridView.delegate( 'execute' ).to( this );\n\n\t\tthis.blockStylesGroupView.gridView.bind( 'activeStyles', 'enabledStyles' ).to( this );\n\t\tthis.inlineStylesGroupView.gridView.bind( 'activeStyles', 'enabledStyles' ).to( this );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-style-panel'\n\t\t\t\t]\n\t\t\t},\n\n\t\t\tchildren: this.children\n\t\t} );\n\n\t\t/**\n\t\t * Fired when a style was selected (clicked) by the user.\n\t\t *\n\t\t * @event execute\n\t\t */\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\trender() {\n\t\tsuper.render();\n\n\t\tconst childViews = [\n\t\t\t...this.blockStylesGroupView.gridView.children,\n\t\t\t...this.inlineStylesGroupView.gridView.children\n\t\t];\n\n\t\tchildViews.forEach( v => {\n\t\t\t// Register the view as focusable.\n\t\t\tthis._focusables.add( v );\n\n\t\t\t// Register the view in the focus tracker.\n\t\t\tthis.focusTracker.add( v.element );\n\t\t} );\n\n\t\tthis.keystrokes.listenTo( this.element );\n\t}\n\n\t/**\n\t * Focuses the first focusable element in the panel.\n\t */\n\tfocus() {\n\t\tthis._focusCycler.focusFirst();\n\t}\n\n\t/**\n\t * Focuses the last focusable element in the panel.\n\t */\n\tfocusLast() {\n\t\tthis._focusCycler.focusLast();\n\t}\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 style/utils\n */\n\n/**\n * Normalizes {@link module:style/style~StyleConfig#definitions} in the configuration of the styles feature.\n * The structure of normalized styles looks as follows:\n *\n *\t\t{\n *\t\t\tblock: [\n *\t\t\t\t<module:style/style~StyleDefinition>,\n *\t\t\t\t<module:style/style~StyleDefinition>,\n *\t\t\t\t...\n *\t\t\t],\n *\t\t\tinline: [\n *\t\t\t\t<module:style/style~StyleDefinition>,\n *\t\t\t\t<module:style/style~StyleDefinition>,\n *\t\t\t\t...\n *\t\t\t]\n *\t\t}\n *\n * @protected\n * @param {module:html-support/dataschema~DataSchema} dataSchema\n * @param {Array.<module:style/style~StyleDefinition>} styleDefinitions\n * @returns {Object} An object with normalized style definitions grouped into `block` and `inline` categories (arrays).\n */\nexport function normalizeConfig( dataSchema, styleDefinitions = [] ) {\n\tconst normalizedDefinitions = {\n\t\tblock: [],\n\t\tinline: []\n\t};\n\n\tfor ( const definition of styleDefinitions ) {\n\t\tconst matchingDefinitions = Array.from( dataSchema.getDefinitionsForView( definition.element ) );\n\t\tconst modelElements = matchingDefinitions.map( ( { model } ) => model );\n\t\tconst isBlock = matchingDefinitions.some( ( { isBlock } ) => isBlock );\n\n\t\tif ( isBlock ) {\n\t\t\tnormalizedDefinitions.block.push( { isBlock, modelElements, ...definition } );\n\t\t} else {\n\t\t\tnormalizedDefinitions.inline.push( { isBlock, modelElements, ...definition } );\n\t\t}\n\t}\n\treturn normalizedDefinitions;\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 = 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 style\n */\n\nexport { default as Style } from './style';\nexport { default as StyleEditing } from './styleediting';\nexport { default as StyleUI } from './styleui';\n"],"sourceRoot":""}
@@ -0,0 +1,25 @@
1
+ {
2
+ "plugins": [
3
+ {
4
+ "name": "Style",
5
+ "className": "Style",
6
+ "description": "Allows applying pre-configured styles to editor content.",
7
+ "docs": "features/style.html",
8
+ "path": "src/style.js",
9
+ "uiComponents": [
10
+ {
11
+ "type": "Dropdown",
12
+ "name": "style",
13
+ "label": "Style"
14
+ }
15
+ ],
16
+ "htmlOutput": [
17
+ {
18
+ "elements": "*",
19
+ "classes": "*",
20
+ "_comment": "The plugin can output any arbitrary HTML depending on its configuration."
21
+ }
22
+ ]
23
+ }
24
+ ]
25
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "Styles": "The label of the styles dropdown button in the toolbar displayed when no style is currently active.",
3
+ "Multiple styles": "The label of the styles dropdown button in the toolbar displayed when multiple styles are currently active.",
4
+ "Block styles": "The label of the group in the styles dropdown containing styles applicable to blocks only (paragraphs, headings, etc.).",
5
+ "Text styles": "The label of the group in the styles dropdown containing inline applicable to text only."
6
+ }
@@ -0,0 +1,33 @@
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: \n"
16
+ "Language-Team: \n"
17
+ "Plural-Forms: \n"
18
+
19
+ msgctxt "The label of the styles dropdown button in the toolbar displayed when no style is currently active."
20
+ msgid "Styles"
21
+ msgstr "Styles"
22
+
23
+ msgctxt "The label of the styles dropdown button in the toolbar displayed when multiple styles are currently active."
24
+ msgid "Multiple styles"
25
+ msgstr "Multiple styles"
26
+
27
+ msgctxt "The label of the group in the styles dropdown containing styles applicable to blocks only (paragraphs, headings, etc.)."
28
+ msgid "Block styles"
29
+ msgstr "Block styles"
30
+
31
+ msgctxt "The label of the group in the styles dropdown containing inline applicable to text only."
32
+ msgid "Text styles"
33
+ msgstr "Text styles"
package/package.json ADDED
@@ -0,0 +1,76 @@
1
+ {
2
+ "name": "@ckeditor/ckeditor5-style",
3
+ "version": "34.0.0",
4
+ "description": "Style feature for CKEditor 5.",
5
+ "keywords": [
6
+ "ckeditor",
7
+ "ckeditor5",
8
+ "ckeditor 5",
9
+ "ckeditor5-feature",
10
+ "ckeditor5-plugin",
11
+ "ckeditor5-dll"
12
+ ],
13
+ "main": "src/index.js",
14
+ "dependencies": {
15
+ "ckeditor5": "^34.0.0"
16
+ },
17
+ "devDependencies": {
18
+ "@ckeditor/ckeditor5-alignment": "^34.0.0",
19
+ "@ckeditor/ckeditor5-basic-styles": "^34.0.0",
20
+ "@ckeditor/ckeditor5-cloud-services": "^34.0.0",
21
+ "@ckeditor/ckeditor5-code-block": "^34.0.0",
22
+ "@ckeditor/ckeditor5-core": "^34.0.0",
23
+ "@ckeditor/ckeditor5-dev-utils": "^30.0.0",
24
+ "@ckeditor/ckeditor5-easy-image": "^34.0.0",
25
+ "@ckeditor/ckeditor5-editor-classic": "^34.0.0",
26
+ "@ckeditor/ckeditor5-engine": "^34.0.0",
27
+ "@ckeditor/ckeditor5-font": "^34.0.0",
28
+ "@ckeditor/ckeditor5-heading": "^34.0.0",
29
+ "@ckeditor/ckeditor5-highlight": "^34.0.0",
30
+ "@ckeditor/ckeditor5-horizontal-line": "^34.0.0",
31
+ "@ckeditor/ckeditor5-html-embed": "^34.0.0",
32
+ "@ckeditor/ckeditor5-html-support": "^34.0.0",
33
+ "@ckeditor/ckeditor5-image": "^34.0.0",
34
+ "@ckeditor/ckeditor5-indent": "^34.0.0",
35
+ "@ckeditor/ckeditor5-language": "^34.0.0",
36
+ "@ckeditor/ckeditor5-link": "^34.0.0",
37
+ "@ckeditor/ckeditor5-list": "^34.0.0",
38
+ "@ckeditor/ckeditor5-mention": "^34.0.0",
39
+ "@ckeditor/ckeditor5-page-break": "^34.0.0",
40
+ "@ckeditor/ckeditor5-paragraph": "^34.0.0",
41
+ "@ckeditor/ckeditor5-paste-from-office": "^34.0.0",
42
+ "@ckeditor/ckeditor5-remove-format": "^34.0.0",
43
+ "@ckeditor/ckeditor5-source-editing": "^34.0.0",
44
+ "@ckeditor/ckeditor5-table": "^34.0.0",
45
+ "@ckeditor/ckeditor5-theme-lark": "^34.0.0",
46
+ "@ckeditor/ckeditor5-typing": "^34.0.0",
47
+ "@ckeditor/ckeditor5-ui": "^34.0.0",
48
+ "@ckeditor/ckeditor5-utils": "^34.0.0",
49
+ "@ckeditor/ckeditor5-word-count": "^34.0.0",
50
+ "webpack": "^5.58.1",
51
+ "webpack-cli": "^4.9.0"
52
+ },
53
+ "engines": {
54
+ "node": ">=14.0.0",
55
+ "npm": ">=5.7.1"
56
+ },
57
+ "author": "CKSource (http://cksource.com/)",
58
+ "license": "GPL-2.0-or-later",
59
+ "homepage": "https://ckeditor.com/ckeditor-5",
60
+ "bugs": "https://github.com/ckeditor/ckeditor5/issues",
61
+ "repository": {
62
+ "type": "git",
63
+ "url": "https://github.com/ckeditor/ckeditor5.git",
64
+ "directory": "packages/ckeditor5-style"
65
+ },
66
+ "files": [
67
+ "lang",
68
+ "src",
69
+ "theme",
70
+ "build",
71
+ "ckeditor5-metadata.json"
72
+ ],
73
+ "scripts": {
74
+ "dll:build": "webpack"
75
+ }
76
+ }
package/src/index.js ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+
6
+ /**
7
+ * @module style
8
+ */
9
+
10
+ export { default as Style } from './style';
11
+ export { default as StyleEditing } from './styleediting';
12
+ export { default as StyleUI } from './styleui';
package/src/style.js ADDED
@@ -0,0 +1,119 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+
6
+ /**
7
+ * @module style/style
8
+ */
9
+
10
+ import { Plugin } from 'ckeditor5/src/core';
11
+
12
+ import StyleUI from './styleui';
13
+ import StyleEditing from './styleediting';
14
+
15
+ /**
16
+ * The style plugin.
17
+ *
18
+ * This is a "glue" plugin that loads the {@link module:style/styleediting~StyleEditing style editing feature}
19
+ * and {@link module:style/styleui~StyleUI style UI feature}.
20
+ *
21
+ * @extends module:core/plugin~Plugin
22
+ */
23
+ export default class Style extends Plugin {
24
+ /**
25
+ * @inheritDoc
26
+ */
27
+ static get pluginName() {
28
+ return 'Style';
29
+ }
30
+
31
+ /**
32
+ * @inheritDoc
33
+ */
34
+ static get requires() {
35
+ return [ StyleEditing, StyleUI ];
36
+ }
37
+ }
38
+
39
+ /**
40
+ * The configuration of the {@link module:style/style~Style} feature.
41
+ *
42
+ * Read more in {@link module:style/style~StyleConfig}.
43
+ *
44
+ * @member {module:style/style~StyleConfig} module:core/editor/editorconfig~EditorConfig#style
45
+ */
46
+
47
+ /**
48
+ * The configuration of the style feature.
49
+ *
50
+ * ClassicEditor
51
+ * .create( {
52
+ * style: ... // Style feature config.
53
+ * } )
54
+ * .then( ... )
55
+ * .catch( ... );
56
+ *
57
+ * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.
58
+ *
59
+ * @interface StyleConfig
60
+ */
61
+
62
+ /**
63
+ * The available style definitions.
64
+ *
65
+ * Style definitions are displayed in the `'style'` UI dropdown and get applied by the
66
+ * {@link module:style/stylecommand~StyleCommand style command} to the content of the document.
67
+ *
68
+ * In the `'style'` UI dropdown, definitions are automatically grouped into two categories based on the of the `element` property:
69
+ *
70
+ * * **Block styles**: Can be applied to entire {@link module:html-support/dataschema~DataSchema#registerBlockElement block elements}
71
+ * only (e.g. headings, paragraphs, divs).
72
+ * * **Text styles**: Can by applied to any {@link module:html-support/dataschema~DataSchema#registerInlineElement text} in any element
73
+ * in the document.
74
+ *
75
+ * An example configuration:
76
+ *
77
+ * [
78
+ * // Definitions of block styles.
79
+ * {
80
+ * name: 'Red heading',
81
+ * element: 'h2',
82
+ * classes: [ 'red-heading' ]
83
+ * },
84
+ * {
85
+ * name: 'Vibrant code',
86
+ * element: 'pre',
87
+ * classes: [ 'vibrant-code' ]
88
+ * },
89
+ *
90
+ * // Definitions of text (inline) styles.
91
+ * {
92
+ * name: 'Marker',
93
+ * element: 'span',
94
+ * classes: [ 'marker' ]
95
+ * },
96
+ * // ...
97
+ * ]
98
+ *
99
+ * **Note**: Configuring style definitions will automatically configure the
100
+ * {@glink features/general-html-support General HTML Support feature}. **You do not need to repeat the configuration in
101
+ * {@link module:html-support/generalhtmlsupport~GeneralHtmlSupportConfig}**.
102
+ *
103
+ * @member {Array.<module:style/style~StyleDefinition>} module:style/style~StyleConfig#definitions
104
+ */
105
+
106
+ /**
107
+ * Style definition.
108
+ *
109
+ * An object describing a style definition. It contains the style `name`, `element` name and an array of CSS `classes`.
110
+ *
111
+ * // This style will create <h2 class="foo">...</h2> in the document data.
112
+ * {
113
+ * name: 'Example style',
114
+ * element: 'h2',
115
+ * classes: [ 'foo' ]
116
+ * }
117
+ *
118
+ * @typedef {Object} module:style/style~StyleDefinition
119
+ */