diff --git a/ckeditor5_plugins/icon/src/iconconfig.ts b/ckeditor5_plugins/icon/src/iconconfig.ts index 13fe71a..8735afe 100644 --- a/ckeditor5_plugins/icon/src/iconconfig.ts +++ b/ckeditor5_plugins/icon/src/iconconfig.ts @@ -4,8 +4,14 @@ import type { FontAwesomeVersion, FontAwesomeStyle, SelectableOption, CategoryDefinitions, IconName, IconDefinition, IconDefinitionAlt } from './icontypes'; import type { ToolbarConfigItem } from 'ckeditor5/src/core'; -import { icons } from 'ckeditor5/src/core'; import objectSizeExtraSmall from '../../../icons/object-size-extra-small.svg'; +import objectSizeSmall from '../../../icons/object-size-small.svg'; +import objectSizeMedium from '../../../icons/object-size-medium.svg'; +import objectSizeLarge from '../../../icons/object-size-large.svg'; +import objectSizeFull from '../../../icons/object-size-full.svg'; +import objectCenter from '../../../icons/object-center.svg'; +import objectLeft from '../../../icons/object-left.svg'; +import objectRight from '../../../icons/object-right.svg'; /** * The options available in `editor.config.get('icon')`. @@ -36,21 +42,21 @@ export const sizeOptions: { [key in Size]: SelectableOption; } = { }, small: { label: 'Small', - icon: icons.objectSizeSmall, + icon: objectSizeSmall, className: 'fa-sm' }, regular: { label: 'Regular', - icon: icons.objectSizeMedium + icon: objectSizeMedium }, large: { label: 'Large', - icon: icons.objectSizeLarge, + icon: objectSizeLarge, className: 'fa-lg' }, extraLarge: { label: 'Extra Large', - icon: icons.objectSizeFull, + icon: objectSizeFull, className: 'fa-xl', compatibility: ['6'] }, @@ -100,16 +106,16 @@ export type AlignmentAttributeDefinition = ModelAttributeDefinition(); addListToDropdown(this.styleDropdownView, this.styleDropdownItems); - this.submitButtonView = createButton(locale, t('Insert'), icons.check, 'ck-button-save'); + this.submitButtonView = createButton(locale, t('Insert'), check, 'ck-button-save'); // Submit type of the button will trigger the submit event on entire form when clicked //(see submitHandler() in render() below). this.submitButtonView.type = 'submit'; - this.cancelButtonView = createButton(locale, t('Cancel'), icons.cancel, 'ck-button-cancel'); + this.cancelButtonView = createButton(locale, t('Cancel'), cancel, 'ck-button-cancel'); this.cancelButtonView.delegate('execute').to(this, 'cancel'); this.setTemplate({ diff --git a/ckeditor5_plugins/icon/src/view/iconpickersearch.ts b/ckeditor5_plugins/icon/src/view/iconpickersearch.ts index 061360e..01df89a 100644 --- a/ckeditor5_plugins/icon/src/view/iconpickersearch.ts +++ b/ckeditor5_plugins/icon/src/view/iconpickersearch.ts @@ -1,10 +1,10 @@ import type { InputViewInputEvent } from '@ckeditor/ckeditor5-ui/src/input/inputview'; import type { Locale } from 'ckeditor5/src/utils'; import type { ButtonView, InputTextView, ButtonExecuteEvent } from 'ckeditor5/src/ui'; -import { icons } from 'ckeditor5/src/core'; import { createLabeledInputText, LabeledFieldView, View } from 'ckeditor5/src/ui'; import HideableView from './hideableview'; import { createButton } from './viewutils'; +import cancel from '../../../../icons/cancel.svg'; // cSpell:ignore inputview @@ -45,7 +45,7 @@ export default class IconPickerSearch extends View { this.searchFieldView.fieldView.on('input', () => this._search(true, this.searchFieldView.fieldView.element?.value)); - this.clearButtonView = createButton(locale, t('Clear search'), icons.cancel, 'ck-button-cancel'); + this.clearButtonView = createButton(locale, t('Clear search'), cancel, 'ck-button-cancel'); this.clearButtonView.isVisible = false; this.clearButtonView.on('execute', () => { this._search(false); diff --git a/icons/align-bottom.svg b/icons/align-bottom.svg new file mode 100644 index 0000000..2c462d1 --- /dev/null +++ b/icons/align-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/align-center.svg b/icons/align-center.svg new file mode 100644 index 0000000..4d5a61d --- /dev/null +++ b/icons/align-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/align-justify.svg b/icons/align-justify.svg new file mode 100644 index 0000000..277c3de --- /dev/null +++ b/icons/align-justify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/align-left.svg b/icons/align-left.svg new file mode 100644 index 0000000..bf1a932 --- /dev/null +++ b/icons/align-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/align-middle.svg b/icons/align-middle.svg new file mode 100644 index 0000000..0a0fead --- /dev/null +++ b/icons/align-middle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/align-right.svg b/icons/align-right.svg new file mode 100644 index 0000000..4d51b5b --- /dev/null +++ b/icons/align-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/align-top.svg b/icons/align-top.svg new file mode 100644 index 0000000..7302ca0 --- /dev/null +++ b/icons/align-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/bold.svg b/icons/bold.svg new file mode 100644 index 0000000..4cf547d --- /dev/null +++ b/icons/bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/cancel.svg b/icons/cancel.svg new file mode 100644 index 0000000..8ce47b4 --- /dev/null +++ b/icons/cancel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/caption.svg b/icons/caption.svg new file mode 100644 index 0000000..b0ac841 --- /dev/null +++ b/icons/caption.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/check.svg b/icons/check.svg new file mode 100644 index 0000000..4b9b547 --- /dev/null +++ b/icons/check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/cog.svg b/icons/cog.svg new file mode 100644 index 0000000..588fb84 --- /dev/null +++ b/icons/cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/eraser.svg b/icons/eraser.svg new file mode 100644 index 0000000..4dc55a4 --- /dev/null +++ b/icons/eraser.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/image.svg b/icons/image.svg new file mode 100644 index 0000000..1449860 --- /dev/null +++ b/icons/image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/importexport.svg b/icons/importexport.svg new file mode 100644 index 0000000..51085b7 --- /dev/null +++ b/icons/importexport.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/low-vision.svg b/icons/low-vision.svg new file mode 100644 index 0000000..628b3dd --- /dev/null +++ b/icons/low-vision.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/object-center.svg b/icons/object-center.svg new file mode 100644 index 0000000..45445a4 --- /dev/null +++ b/icons/object-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/object-full-width.svg b/icons/object-full-width.svg new file mode 100644 index 0000000..a3dbfb6 --- /dev/null +++ b/icons/object-full-width.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/object-inline-left.svg b/icons/object-inline-left.svg new file mode 100644 index 0000000..59f1864 --- /dev/null +++ b/icons/object-inline-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/object-inline-right.svg b/icons/object-inline-right.svg new file mode 100644 index 0000000..f58ee12 --- /dev/null +++ b/icons/object-inline-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/object-inline.svg b/icons/object-inline.svg new file mode 100644 index 0000000..550a10a --- /dev/null +++ b/icons/object-inline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/object-left.svg b/icons/object-left.svg new file mode 100644 index 0000000..a25ba4f --- /dev/null +++ b/icons/object-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/object-right.svg b/icons/object-right.svg new file mode 100644 index 0000000..aef13f8 --- /dev/null +++ b/icons/object-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/object-size-full.svg b/icons/object-size-full.svg new file mode 100644 index 0000000..4490edc --- /dev/null +++ b/icons/object-size-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/object-size-large.svg b/icons/object-size-large.svg new file mode 100644 index 0000000..bcaa5b8 --- /dev/null +++ b/icons/object-size-large.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/object-size-medium.svg b/icons/object-size-medium.svg new file mode 100644 index 0000000..f0b5621 --- /dev/null +++ b/icons/object-size-medium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/object-size-small.svg b/icons/object-size-small.svg new file mode 100644 index 0000000..4a32bad --- /dev/null +++ b/icons/object-size-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/paragraph.svg b/icons/paragraph.svg new file mode 100644 index 0000000..452bff5 --- /dev/null +++ b/icons/paragraph.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/pencil.svg b/icons/pencil.svg new file mode 100644 index 0000000..db2bd80 --- /dev/null +++ b/icons/pencil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/pilcrow.svg b/icons/pilcrow.svg new file mode 100644 index 0000000..dc793e9 --- /dev/null +++ b/icons/pilcrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/plus.svg b/icons/plus.svg new file mode 100644 index 0000000..384c0a1 --- /dev/null +++ b/icons/plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/quote.svg b/icons/quote.svg new file mode 100644 index 0000000..a3da8f0 --- /dev/null +++ b/icons/quote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/text.svg b/icons/text.svg new file mode 100644 index 0000000..1245023 --- /dev/null +++ b/icons/text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/three-vertical-dots.svg b/icons/three-vertical-dots.svg new file mode 100644 index 0000000..d32f9fe --- /dev/null +++ b/icons/three-vertical-dots.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/js/build/icon.js b/js/build/icon.js index 163419f..3fd8857 100644 --- a/js/build/icon.js +++ b/js/build/icon.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.CKEditor5=t():(e.CKEditor5=e.CKEditor5||{},e.CKEditor5.icon=t())}(self,(()=>(()=>{var e=[(e,t,i)=>{e.exports=i(6)("./src/ui.js")},(e,t,i)=>{e.exports=i(6)("./src/core.js")},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{a(n.next(e))}catch(e){s(e)}}function c(e){try{a(n.throw(e))}catch(e){s(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,c)}a((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.matchAllFAStyleClasses=t.allFAStyleClasses=void 0,t.getSelectedIconWidget=function(e){const t=e.getSelectedElement();return t&&t.is("element")&&function(e){return"icon"===e.name}(t)?t:null},t.getSelectedIconViewElement=function(e){const t=e.getSelectedElement();return t&&t.is("element")&&t.hasClass("ckeditor5-icons__widget")?t:null},t.metadataLoaded=function(){return!!(s&&r&&c)},t.getFontAwesomeMetadata=function(e){return n(this,void 0,void 0,(function*(){const t=e.config;if(s&&r&&c)return{categories:s,icons:r,styles:c};const i=t.get("icon.faCategories"),n=t.get("icon.faIcons");if(c=t.get("icon.faStyles")||Object.keys(o.faStyleLabels),i&&n)return a(i,n,c);const l=t.get("icon.asyncMetadataURI"),u=yield fetch(l),d=yield u.json();return a(d.categories,d.icons,c)}))},t.getValidIconStyle=function(e,t){const i=e.styles;let n=0;if(t){const e=i.indexOf(t);-1!==e&&(n=e)}return i[n]},t.getFAStyleClass=function(e,t){return o.faStyleClassByVersion[e][t]||"fas"};const o=i(3);let s,r,c;function a(e,t,i){for(const[e,n]of Object.entries(t))n.styles=n.styles.filter((e=>i.includes(e))),n.styles.length?void 0!==n.search_terms&&(n.search={terms:n.search_terms.map((e=>(""+e).trim()))},delete n.search_terms):delete t[e];for(const[i,n]of Object.entries(e))n.icons=n.icons.filter((e=>!!t[e])),n.icons.length||delete e[i];return s=e,r=t,{categories:s,icons:r,styles:i}}t.allFAStyleClasses=function(){const e=Object.keys(o.faStyleLabels),t={};return e.forEach((e=>{(function(e){const t=Object.keys(o.faStyleClassByVersion),i=[];for(const n of t){const t=o.faStyleClassByVersion[n][e];t&&i.push(t)}return i})(e).forEach((i=>t[i]=e))})),t}(),t.matchAllFAStyleClasses=new RegExp(Object.keys(t.allFAStyleClasses).join("|"))},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.faStyleClassByVersion=t.styleDefault=t.faStyleLabels=t.alignmentDefault=t.alignmentOptions=t.sizeDefault=t.sizeOptions=void 0;const o=i(1),s=n(i(34));t.sizeOptions={extraSmall:{label:"Extra Small",icon:s.default,className:"fa-xs"},small:{label:"Small",icon:o.icons.objectSizeSmall,className:"fa-sm"},regular:{label:"Regular",icon:o.icons.objectSizeMedium},large:{label:"Large",icon:o.icons.objectSizeLarge,className:"fa-lg"},extraLarge:{label:"Extra Large",icon:o.icons.objectSizeFull,className:"fa-xl",compatibility:["6"]},"2x":{label:"2x",className:"fa-2x"},"3x":{label:"3x",className:"fa-3x"},"4x":{label:"4x",className:"fa-4x"},"5x":{label:"5x",className:"fa-5x"},"6x":{label:"6x",className:"fa-6x"},"7x":{label:"7x",className:"fa-7x"},"8x":{label:"8x",className:"fa-8x"},"9x":{label:"9x",className:"fa-9x"},"10x":{label:"10x",className:"fa-10x"}},t.sizeDefault="regular",t.alignmentOptions={none:{label:"With text",icon:o.icons.objectCenter},left:{label:"Pull left",icon:o.icons.objectLeft,className:"fa-pull-left"},right:{label:"Pull right",icon:o.icons.objectRight,className:"fa-pull-right"}},t.alignmentDefault="none",t.faStyleLabels={solid:"Solid",regular:"Regular",light:"Light",thin:"Thin",duotone:"Duotone",brands:"Brands",custom:"Custom"},t.styleDefault=Object.keys(t.faStyleLabels)[0],t.faStyleClassByVersion={6:{solid:"fa-solid",regular:"fa-regular",light:"fa-light",thin:"fa-thin",duotone:"fa-duotone",brands:"fa-brands",custom:"fa-kit"},5:{solid:"fas",regular:"far",light:"fal",duotone:"fad",brands:"fab",custom:"fak"}}},(e,t,i)=>{e.exports=i(6)("./src/utils.js")},(e,t,i)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UiViewModel=void 0;const n=i(0);t.UiViewModel=void 0!==n.ViewModel?n.ViewModel:n.Model},e=>{"use strict";e.exports=CKEditor5.dll},(e,t,i)=>{e.exports=i(6)("./src/widget.js")},(e,t,i)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=i(0);class o extends n.View{constructor(e,t,i,n=!0){super(e),this.set("isVisible",n),this.setTemplate({tag:t,attributes:{class:["ck",this.bindTemplate.to("isVisible",(e=>e?"":"ck-hidden"))]},children:i})}}t.default=o},(e,t,i)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createButton=function(e,t,i,o,s){const r=new n.ButtonView(e);return r.set({label:"string"==typeof s?s:t,icon:i,tooltip:!!i&&t,withText:s||!i,class:o}),r};const n=i(0)},(e,t,i)=>{"use strict";i.d(t,{A:()=>n});const n=i(26).A.Symbol},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{a(n.next(e))}catch(e){s(e)}}function c(e){try{a(n.throw(e))}catch(e){s(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,c)}a((n=n.apply(e,t||[])).next())}))},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(1),r=i(0),c=o(i(35)),a=o(i(16)),l=i(2),u=o(i(23));class d extends s.Plugin{static get pluginName(){return"IconPicker"}init(){const{commands:e,config:t,ui:i}=this.editor,o=e.get("insertIcon"),s=i.componentFactory,a=t.get("icon.faVersion"),d=t.get("icon.recommendedIcons");s.add("icon",(e=>{const t=(0,r.createDropdown)(e);let i,s,h=null;return t.buttonView.set({label:e.t("Icons"),icon:c.default,tooltip:!0}),t.bind("isEnabled").to(o,"isEnabled"),t.on("change:isOpen",(()=>n(this,void 0,void 0,(function*(){if(!i){if(!(0,l.metadataLoaded)()){const i=Date.now();if(s&&i-s<1e3)return;s=i,h||(h=new u.default(e),h.extendTemplate({attributes:{class:["ck","ckeditor5-icons__picker-loading"],tabindex:"-1"}}),t.panelView.children.add(h))}const{categories:n,icons:r,styles:c}=yield(0,l.getFontAwesomeMetadata)(this.editor);i||(i=this._createIconPickerView(e,o,a,n,r,c,d),t.panelView.children.add(i),t.isOpen&&i.focus()),h&&(t.panelView.children.remove(h),h=null)}})))),t}))}_createIconPickerView(e,t,i,n,o,s,r){const c=new a.default(e,i,n,o,s,r);return this.listenTo(c,"execute",((e,i,n)=>{t.execute({iconFA:i,iconStyle:n})})),c}}t.default=d},function(e,t,i){"use strict";var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{a(n.next(e))}catch(e){s(e)}}function c(e){try{a(n.throw(e))}catch(e){s(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,c)}a((n=n.apply(e,t||[])).next())}))},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(4),r=i(0),c=i(5),a=i(3),l=i(1),u=i(7),d=i(9),h=o(i(23)),f=i(2);class b extends l.Plugin{static get pluginName(){return"IconToolbar"}static get requires(){return[u.WidgetToolbarRepository]}init(){const e=this.editor,t=e.commands,i=e.ui.componentFactory,o=e.editing.view.document,l=e.config.get("icon.faVersion");i.add("iconSize",(e=>m(e,l,"Icon size",a.sizeOptions[a.sizeDefault].icon,t.get("sizeIcon"),a.sizeOptions,a.sizeDefault))),i.add("iconAlignment",(e=>m(e,l,"Icon alignment",a.alignmentOptions[a.alignmentDefault].icon,t.get("alignIcon"),a.alignmentOptions,a.alignmentDefault))),i.add("iconStyle",(e=>function(e,t){const i=t.editor,o=(0,r.createDropdown)(e);o.buttonView.set({tooltip:e.t("Icon style"),withText:!0,class:"ck-dropdown__button_label-width_auto"}),o.bind("isEnabled").to(t,"isEnabled"),o.buttonView.bind("label").to(t,"value",(e=>a.faStyleLabels[e]));let l,u,d=null,b=null;return o.on("change:isOpen",(()=>n(this,void 0,void 0,(function*(){if(!(0,f.metadataLoaded)()){const t=Date.now();if(l&&t-l<1e3)return;l=t,d||(d=new h.default(e),d.extendTemplate({attributes:{class:["ck","ckeditor5-icons__picker-loading"],tabindex:"-1"}}),o.panelView.children.add(d))}if(t.iconWidget&&t.iconWidget!==b){const e=(yield(0,f.getFontAwesomeMetadata)(i)).icons;if(!t.iconWidget)return;u?u.clear():(d&&(o.panelView.children.remove(d),d=null),u=new s.Collection,(0,r.addListToDropdown)(o,u));const l=(n=t.iconWidget.getAttribute("iconFA"),m=Object.keys(e),n.split(" ").find((e=>m.includes(e))));if(l){for(const i of e[l].styles){const e=new c.UiViewModel({name:i,label:a.faStyleLabels[i],withText:!0});e.bind("isOn").to(t,"value",(e=>e===i)),u.add({type:"button",model:e})}o.on("execute",(e=>{t.execute({value:e.source.name}),i.editing.view.focus()}))}b=t.iconWidget}var n,m})))),o}(e,t.get("styleIcon")))),this.listenTo(o,"click",((e,t)=>{(0,f.getSelectedIconViewElement)(o.selection)&&(t.preventDefault(),e.stop())}),{priority:"high"})}afterInit(){const e=this.editor;e.plugins.get(u.WidgetToolbarRepository).register("icon",{items:e.config.get("icon.toolbarItems"),getRelatedElement:e=>(0,f.getSelectedIconViewElement)(e)})}}function m(e,t,i,n,o,s,c){const a=(0,r.createDropdown)(e),l=a.buttonView,u=e.t;return(0,r.addToolbarToDropdown)(a,Object.entries(s).filter((([e,i])=>!i.compatibility||i.compatibility.includes(t))).map((([t,i])=>function(e,t,i,n,o){const s=n.editor,r=(0,d.createButton)(e,t,i);return r.tooltip=!!i,r.isToggleable=!0,r.bind("isEnabled").to(n),r.bind("isOn").to(n,"value",(e=>e===o)),r.on("execute",(()=>{n.execute({value:o}),s.editing.view.focus()})),r}(e,i.label,i.icon,o,t)))),l.set({label:u(i),icon:n,tooltip:u(i),withText:!n,class:"ck-dropdown__button_label-width_auto"}),n===s[c].icon&&o.on("change:value",((e,t,i)=>{const n=s[i];l.label=u(n.label),l.icon&&!n.icon?l.children.remove(l.iconView):!l.icon&&n.icon&&l.children.add(l.iconView,0),l.icon=n.icon,l.withText=!n.icon})),a.bind("isEnabled").to(o,"isEnabled"),a}t.default=b},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(i(14)),s=n(i(39)),r=n(i(41));t.default={Icon:o.default,IconGeneralHtmlSupport:s.default,IconLinkEditing:r.default}},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(1),s=n(i(15)),r=n(i(11)),c=n(i(12));class a extends o.Plugin{static get pluginName(){return"Icon"}static get requires(){return[s.default,r.default,c.default]}}t.default=a},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(1),s=i(7),r=n(i(31)),c=n(i(33)),a=i(3),l=i(2);class u extends o.Plugin{static get pluginName(){return"IconEditing"}static get requires(){return[s.Widget]}init(){this._defineSchema(),this._defineConverters(),this._defineCommands()}_defineSchema(){this.editor.model.schema.register("icon",{isObject:!0,isInline:!0,allowWhere:"$text",allowAttributes:["iconFA","iconStyle","iconSize","iconAlignment"]})}_defineConverters(){const e=this.editor.config.get("icon.faVersion")||"6",{conversion:t}=this.editor;t.attributeToAttribute(d("iconSize",a.sizeOptions)),t.attributeToAttribute(d("iconAlignment",a.alignmentOptions)),t.for("upcast").elementToElement({model:(e,{writer:t})=>{const i=t.createElement("icon"),n=e.getClassNames();let o="",s=a.styleDefault;for(const e of n){let t;l.allFAStyleClasses[e]?s=l.allFAStyleClasses[e]:!(t=e.match(/fa-([a-z0-9\-]+)/))||e.match(/fa-(2xs|xs|sm|lg|xl|2xl|([0-9]|10)x)/)||e.match(/fa-(pull-left|pull-right)/)||(o+=o?" "+t[1]:t[1])}return t.setAttribute("iconFA",o,i),t.setAttribute("iconStyle",s,i),i},view:{name:"i",classes:l.matchAllFAStyleClasses}}),t.for("dataDowncast").elementToElement({model:"icon",view:(t,{writer:i})=>function(e,t,i){return t.createContainerElement("i",{class:h(e,i)})}(t,i,e)}),t.for("editingDowncast").elementToElement({model:"icon",view:(t,{writer:i})=>function(e,t,i){return(0,s.toWidget)(t.createContainerElement("span",{class:"ckeditor5-icons__widget"},[t.createRawElement("span",{},(t=>t.innerHTML=''))]),t,{label:"icon widget"})}(t,i,e)}),t.for("editingDowncast").add((e=>{e.on("attribute:iconStyle",((e,t,i)=>{t.attributeOldValue&&!i.consumable.consume(t.item,"insert")&&(i.writer.remove(i.mapper.toViewRange(t.range)),i.convertItem(t.item))}))}))}_defineCommands(){const e=this.editor,t=e.commands;t.add("insertIcon",new r.default(e)),t.add("styleIcon",new c.default(e,"iconStyle",a.styleDefault)),t.add("sizeIcon",new c.default(e,"iconSize",a.sizeDefault)),t.add("alignIcon",new c.default(e,"iconAlignment",a.alignmentDefault))}}function d(e,t){const i={},n=[];for(const[e,o]of Object.entries(t))o.className&&(n.push(e),i[e]={key:"class",value:o.className});return{model:{key:e,values:n},view:i}}function h(e,t){const i=e.getAttribute("iconFA"),n=(0,l.getFAStyleClass)(t,e.getAttribute("iconStyle")),o=i.split(" ").map((e=>e?"fa-"+e:"")).join(" ");return n+(o?" "+o:"")}t.default=u},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(0),s=i(4),r=i(2),c=n(i(17)),a=n(i(18)),l=n(i(20));class u extends o.View{constructor(e,t,i,n,u,d){super(e),this.set("iconName",null),this.set("iconStyle",null),this.set("iconDefinition",null),this.headerView=new c.default(e,t,i,u,d),this.gridView=new a.default(e,t),this.footerView=new l.default(e,t,u),this.searchFieldView=this.footerView.searchView.searchFieldView.fieldView,this.searchClearButtonView=this.footerView.searchView.clearButtonView,this.items=this.createCollection(),this.focusTracker=new s.FocusTracker,this.keystrokes=new s.KeystrokeHandler,new o.FocusCycler({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ckeditor5-icons__picker"],tabindex:"-1"},children:[this.headerView,this.gridView,this.footerView]}),this.items.add(this.headerView),this.listenTo(this.headerView,"execute",((e,t,i)=>{this.iconName=null,this.iconDefinition=null,this.gridView.refresh(n,t,i),this.footerView.refresh(),this._stopTrackingFooterForm(),"_brands"===t?(this.footerView.styleFilterView.buttonView.isVisible=!1,this._stopTracking(this.footerView.styleFilterView.buttonView)):this.footerView.styleFilterView.buttonView.isVisible=!0,this.searchQuery=null})),this.listenTo(this.gridView,"execute",((e,t,i)=>{t&&i?(this.iconName=t,this.iconStyle=(0,r.getValidIconStyle)(i,this.iconStyle),this.iconDefinition=i,this.footerView.refresh(),this._startTrackingFooterForm()):this._clearSelectedIcon()})),this.listenTo(this.gridView,"gridSectionLoad",((e,t,i)=>{t?this._startTracking(this.gridView,this.items.getIndex(this.headerView)+1):this._stopTracking(this.gridView),this.gridView.allCategoryFilterView.buttonView.isVisible?this._startTracking(this.gridView.allCategoryFilterView.buttonView,this.items.getIndex(this.headerView)+1):this._stopTracking(this.gridView.allCategoryFilterView.buttonView),i?this._startTracking(this.gridView.expandButtonView,this.items.getIndex(this.gridView)+1):this._stopTracking(this.gridView.expandButtonView)})),this.listenTo(this.footerView,"search",((e,t)=>{this.iconName&&(this.iconName=null,this.iconDefinition=null,this.footerView.refresh(),this._stopTrackingFooterForm()),t?(this.gridView.refresh(n,"_all",i._all,t),this.headerView.set("categoryAttributionName","_search"),this.headerView.categoryDropdownView.buttonView.isVisible=!1,this._stopTracking(this.headerView),this.searchClearButtonView.isVisible=!0,this._startTracking(this.searchClearButtonView,this.items.getIndex(this.searchFieldView)+1),this.footerView.styleFilterView.buttonView.isVisible=!0,this._startTracking(this.footerView.styleFilterView.buttonView),this.searchQuery=t):(this._startTracking(this.headerView,0),this.headerView.fire("execute",this.headerView.categoryName,this.headerView.categoryDefinition),this.searchClearButtonView.isVisible=!1,this._stopTracking(this.searchClearButtonView),this.headerView.categoryDropdownView.buttonView.isVisible=!0)})),this.listenTo(this.gridView,"change:styleFilter",(()=>{this.searchQuery?this.gridView.refresh(n,"_all",i._all,this.searchQuery):this.gridView.refresh(n)})),this.listenTo(this.footerView,"changeStyle",((e,t)=>{this.set("iconStyle",t),this.footerView.refresh()})),this.on("cancel",(e=>this._clearSelectedIcon(!0))),this.keystrokes.set("Esc",((e,t)=>{this.iconName?(this._clearSelectedIcon(!0),t()):this.items.has(this.searchClearButtonView)&&(this.searchClearButtonView.fire("execute"),t())})),this.gridView.bind("iconName").to(this),this.gridView.bind("categoryName","categoryDefinition").to(this.headerView),this.gridView.bind("styleFilter").to(this.footerView),this.footerView.bind("iconName","iconStyle","iconDefinition").to(this),this.footerView.on("execute",(()=>{this.fire("execute",this.iconName,this.iconStyle),this._clearSelectedIcon()})),this.footerView.delegate("cancel").to(this),i._recommended?this.headerView.fire("execute","_recommended",i._recommended):this.headerView.fire("execute","_all",i._all)}_startTracking(e,t){this.items.has(e)||(this.items.add(e,t),this.focusTracker.add(e.element))}_stopTracking(e){this.items.has(e)&&(this.items.remove(e),this.focusTracker.remove(e.element))}_startTrackingFooterForm(){this._stopTracking(this.footerView.styleFilterView.buttonView),this._stopTracking(this.searchFieldView),this.searchQuery&&this._stopTracking(this.searchClearButtonView),this._startTracking(this.footerView.formView.styleDropdownView.buttonView),this._startTracking(this.footerView.formView.submitButtonView),this._startTracking(this.footerView.formView.cancelButtonView)}_stopTrackingFooterForm(){this._stopTracking(this.footerView.formView.styleDropdownView.buttonView),this._stopTracking(this.footerView.formView.submitButtonView),this._stopTracking(this.footerView.formView.cancelButtonView),this._startTracking(this.searchFieldView),this.searchQuery&&this._startTracking(this.searchClearButtonView),this._startTracking(this.footerView.styleFilterView.buttonView)}_clearSelectedIcon(e=!1){var t;e&&this.focusTracker.isFocused&&(null===(t=this.focusTracker.focusedElement)||void 0===t?void 0:t.parentElement)===this.footerView.formView.element&&this.gridView.focus(),this.iconName=null,this.iconDefinition=null,this.footerView.refresh(),this._stopTrackingFooterForm()}render(){super.render(),this.focusTracker.add(this.headerView.element),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.items.has(this.searchFieldView)?this.searchFieldView.focus():this.headerView.focus()}}t.default=u},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(4),s=i(0),r=i(5),c=n(i(36));class a extends s.View{constructor(e,t,i,n,o){super(e);const r=this.bindTemplate,c=e.t;this.categoryDropdownView=this._createCategoryDropdown(e,i,n,o),this.categoryDropdownView.panelPosition="rtl"===e.uiLanguageDirection?"se":"sw",this.attributionIconView=new s.View(e),this.attributionIconView.setTemplate({tag:"span",attributes:{class:["ck",r.to("categoryAttributionName",(e=>"_recommended"===e||"_search"===e?"ck-hidden":""))]}}),this.attributionView=new s.View(e),this.attributionView.setTemplate({tag:"div",attributes:{class:["ck","ckeditor5-icons__library-attr"]},children:[this.attributionIconView,{tag:"span",children:[{text:r.to("categoryAttributionName",(e=>"_recommended"===e?c("Recommended"):"_search"===e?c("Search"):"5"===t?"Font Awesome 5":"Font Awesome 6"))}]}]}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-form__header","ckeditor5-icons__picker-header"]},children:[{tag:"div",children:[{tag:"h2",attributes:{class:["ck","ck-form__header__label"]},children:[{text:c("Icons")}]},this.attributionView]},this.categoryDropdownView]}),this.on("execute",((e,t,i)=>{this.set("categoryName",t),this.set("categoryAttributionName",t),this.set("categoryDefinition",i)}))}render(){super.render(),this.attributionIconView.element.innerHTML=c.default}focus(){this.categoryDropdownView.focus()}_createCategoryDropdown(e,t,i,n){const o=(0,s.createDropdown)(e),r=this._createCategoryDropdownItems(e,t,i,n),c="Select a category",a=e.t;return o.buttonView.set({label:a(c),tooltip:a("Icon categories"),withText:!0,class:"ck-dropdown__button_label-width_auto"}),o.buttonView.bind("label").to(this,"categoryDefinition",(e=>a(e?e.label:c))),o.panelView.extendTemplate({attributes:{tabindex:"-1"}}),o.on("execute",(e=>{const i=e.source.name;this.fire("execute",i,t[i])})),(0,s.addListToDropdown)(o,r),o}_createCategoryDropdownItems(e,t,i,n){const s=new o.Collection,r=[],c={all:{icons:[],label:"All"},brands:{icons:[],label:"Brands"}};if(n){const i=t._recommended={icons:n,label:"Recommended"};this._addCategoryDropdownItem(e,s,"_recommended",i),s.add({type:"separator"})}r.push("all"),i.includes("brands")&&r.push("brands");const a=Object.entries(t);for(const i of r){const n=c[i],o="_"+i;this._addCategoryDropdownItem(e,s,o,n),t[o]=n}s.add({type:"separator"});for(const[t,i]of a)"_"!==t[0]&&this._addCategoryDropdownItem(e,s,t,i);return s}_addCategoryDropdownItem(e,t,i,n){const o=new r.UiViewModel({name:i,label:e.t(n.label),withText:!0});o.bind("isOn").to(this,"categoryName",(e=>e===i)),t.add({type:"button",model:o})}}t.default=a},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(4),s=i(0),r=i(5),c=n(i(37)),a=n(i(19)),l=i(0),u=n(i(8)),d=i(3);class h extends s.View{constructor(e,t){super(e),this.faVersion=t,this.set("allCategoryFilter","a");const n=this.bindTemplate,r=e.t;this.items=this.createCollection(),this.sections=this.createCollection(),this.allCategoryFilterView=this._createAllCategoryFilterDropdown(e),this.itemsView=new s.View(e),this.itemsView.setTemplate({tag:"div",attributes:{class:["ck","ckeditor5-icons__grid-section"]}}),this.fallbackView=new u.default(e,"div",[{text:n.to("styleFilter",(e=>e&&"all"!==e?r("No icons in the %0 style match your search.",[d.faStyleLabels[e]]):r("No icons match your search.")))}]),this.fallbackView.extendTemplate({attributes:{class:"ckeditor5-icons__grid-fallback"}}),this.expandButtonView=new l.ButtonView(e),this.expandButtonView.set({icon:'',label:r("Expand"),tooltip:r("Show more icons"),withText:!0,isVisible:!1,class:"ckeditor5-icons__grid-expand"}),this.setTemplate({tag:"div",attributes:{class:["ck","ckeditor5-icons__grid"]},children:[{tag:"div",attributes:{class:["ck","ckeditor5-icons__grid-options","ckeditor5-icons__grid-options-top",this.allCategoryFilterView.buttonView.bindTemplate.to("isVisible",(e=>e?"":"ck-hidden"))]},children:[this.allCategoryFilterView]},{tag:"div",attributes:{class:["ck","ckeditor5-icons__grid-scrollable"]},children:[this.fallbackView,this.itemsView,{tag:"div",attributes:{class:["ck","ckeditor5-icons__grid-options","ckeditor5-icons__grid-options-bottom",this.expandButtonView.bindTemplate.to("isVisible",(e=>e?"":"ck-hidden"))]},children:[this.expandButtonView]}]}]}),this.focusTracker=new o.FocusTracker,this.keystrokes=new o.KeystrokeHandler,(0,c.default)({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:()=>i.g.window.getComputedStyle(this.itemsView.element.firstChild).getPropertyValue("grid-template-columns").split(" ").length,uiLanguageDirection:e.uiLanguageDirection})}_createItem(e,t){const i=new a.default(this.locale,this.faVersion,e,t,this.styleFilter&&"all"!==this.styleFilter?this.styleFilter:null);return i.on("mouseover",(()=>this.fire("itemHover",e,t))),i.on("focus",(()=>this.fire("itemFocus",e,t))),i.on("execute",(()=>this.fire("execute",e,t))),i.bind("isOn").to(this,"iconName",(t=>e===t)),i}refresh(e,t,i,n){const o=t||this.categoryName,s=i||this.categoryDefinition;let r;if(this.items.clear(),this.itemsView.deregisterChild(this.sections),this.itemsView.element&&(this.itemsView.element.innerText=""),this.sections.clear(),r="_all"===o?Object.keys(e):"_brands"===o?Object.keys(e).filter((t=>e[t].styles.includes("brands"))):s?s.icons:[],n&&(r=function(e,t,i){i=i.toLowerCase(),i.length>3&&"fa-"===i.substring(0,3)&&(i=i.substring(3));const n=[],o=new Set;e.includes(i)&&(n.push(i),o.add(i));for(const s of e)s!==i&&t[s].search.terms.includes(i)&&(n.push(s),o.add(s));for(const t of e)o.has(t)||0!==t.indexOf(i)||(n.push(t),o.add(t));return n}(r,e,n)),n||"_all"!==o)this.allCategoryFilterView.buttonView.isVisible=!1;else{const t=this.allCategoryFilter;r="#"===t?r.filter((e=>"0123456789".includes(e[0]))):r.filter((e=>e[0]===t[0])),this.allCategoryFilterViewItems||(this.allCategoryFilterViewItems=this._createAllCategoryFilterDropdownItems(),(0,l.addListToDropdown)(this.allCategoryFilterView,this.allCategoryFilterViewItems),this.on("change:allCategoryFilter",(()=>{this.refresh(e),this.fire("execute",null,null)}))),this.allCategoryFilterView.buttonView.isVisible=!0}"_brands"!==o&&this.styleFilter&&"all"!==this.styleFilter&&(r=r.filter((t=>{var i;return null===(i=e[t])||void 0===i?void 0:i.styles.includes(this.styleFilter)}))),0===r.length?(this.fallbackView.isVisible=!0,this.expandButtonView.isVisible=!1,this.fire("gridSectionLoad",!1,!1)):(this.fallbackView.isVisible=!1,this._populateGrid(r,e))}render(){super.render();const e=this.sections.get(0);if(e){for(const t of this.items){const i=t.element;e.element.appendChild(i),this.focusTracker.add(i)}this.itemsView.element.appendChild(e.element)}this.items.on("change",((e,{added:t,removed:i})=>{for(const e of t)this.focusTracker.add(e.element);for(const e of i)this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){if(this.iconName){const e=this.items.find((e=>e.isOn));if(e)return void e.focus()}const e=this.items.first;e&&e.focus()}_populateGrid(e,t,i=0){const n=this.expandButtonView;this.stopListening(n,"execute");const o=e.length-i,r=new s.View,c=this.createCollection();for(let n=0;n200?(n.isVisible=!0,this.listenTo(n,"execute",(()=>{this.items.last.focus(),this._populateGrid(e,t,i+200)})),this.fire("gridSectionLoad",!this.fallbackView.isVisible,!0)):(n.isVisible=!1,this.fire("gridSectionLoad",!this.fallbackView.isVisible,!1))}_createAllCategoryFilterDropdown(e){const t=(0,s.createDropdown)(e),i=e.t;return t.buttonView.set({tooltip:i("Filter All"),withText:!0,isVisible:!1,class:"ck-dropdown__button_label-width_auto"}),t.buttonView.bind("label").to(this,"allCategoryFilter",(e=>e.toUpperCase())),t.panelView.extendTemplate({attributes:{tabindex:"-1"}}),t.on("execute",(e=>this.set("allCategoryFilter",e.source.name))),t}_createAllCategoryFilterDropdownItems(){const e=new o.Collection;for(const t of"#abcdefghijklmnopqrstuvwxyz"){const i=new r.UiViewModel({name:t,label:t.toUpperCase(),withText:!0});i.bind("isOn").to(this,"allCategoryFilter",(e=>e===t)),e.add({type:"button",model:i})}return e}}t.default=h},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(0),s=n(i(22));class r extends o.ButtonView{constructor(e,t,i,n,o){super(e);const r=this.bindTemplate;this.set({label:e.t(n.label),class:"ckeditor5-icons__grid-item",isOn:!1,withText:!0}),this.faIcon=new s.default(e,t,i,n,o),this.faIcon.extendTemplate({attributes:{class:["ck","ck-icon","ck-button__icon","ck-icon_inherit-color"]}}),this.extendTemplate({attributes:{title:i},on:{mouseover:r.to("mouseover"),focus:r.to("focus")}}),this.registerChild([this.faIcon])}render(){super.render();const e=this.element;e.insertBefore(this.faIcon.element,e.firstChild)}}t.default=r},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(4),s=i(0),r=i(5),c=n(i(22)),a=n(i(38)),l=n(i(21)),u=i(3),d=n(i(8));class h extends s.View{constructor(e,t,i){super(e),this.faVersion=t,this.set("styleFilter","all");const n=e.t,o=this.bindTemplate;this.searchView=new l.default(e),this.searchView.delegate("search").to(this),this.styleFilterView=this._createStyleFilterDropdown(e,i);const r=new d.default(e,"div",[this.styleFilterView]);r.bind("isVisible").to(this.styleFilterView.buttonView,"isVisible"),this.iconPreviewView=new s.View,this.iconPreviewView.setTemplate({tag:"div",attributes:{class:["ck","ckeditor5-icons__icon-preview"]}}),this.faIcon=null,this.formView=new a.default(e),this.formView.delegate("changeStyle","cancel").to(this),this.formView.delegate("submit").to(this,"execute"),this.formView.bind("iconStyle").to(this),this.setTemplate({tag:"div",attributes:{class:["ck","ckeditor5-icons__picker-footer"]},children:[{tag:"div",attributes:{class:["ck",o.to("iconName",(e=>e?"":"ck-hidden"))]},children:[{tag:"div",attributes:{class:["ck","ckeditor5-icons__picker-preview"]},children:[this.iconPreviewView,{tag:"div",attributes:{class:["ck","ckeditor5-icons__icon-info"]},children:[{tag:"span",attributes:{class:["ck","ckeditor5-icons__icon-label"]},children:[{text:o.to("iconDefinition",(e=>e?n(e.label):""))}]},{tag:"span",attributes:{class:["ck","ckeditor5-icons__icon-name"]},children:[{text:o.to("iconName")}]}]}]},this.formView]},{tag:"div",attributes:{class:["ck",o.to("iconName",(e=>e?"ck-hidden":""))]},children:[this.searchView,r]}]})}refresh(){this.iconDefinition&&this.formView.refresh(this.iconName,this.iconDefinition);const e=this.iconPreviewView;let t=null;this.faIcon&&(e.deregisterChild(this.faIcon),e.element.innerText=""),this.iconName&&this.iconDefinition&&(t=new c.default(this.locale,this.faVersion,this.iconName,this.iconDefinition,this.iconStyle),e.registerChild(t),e.element.appendChild(t.element)),this.faIcon=t}_createStyleFilterDropdown(e,t){const i=(0,s.createDropdown)(e),n=e.t;i.buttonView.set({label:n("Select a style"),tooltip:n("Filter by style"),withText:!0,class:"ck-dropdown__button_label-width_auto"}),i.buttonView.bind("label").to(this,"styleFilter",(e=>"all"===e?n("All"):u.faStyleLabels[e])),i.on("execute",(e=>{const t=e.source.name;this.set("styleFilter",t),"all"!==t&&this.formView.fire("changeStyle",t)}));const c=new o.Collection,a=new r.UiViewModel({name:"all",label:n("All"),withText:!0});a.bind("isOn").to(this,"styleFilter",(e=>"all"===e)),c.add({type:"button",model:a}),c.add({type:"separator"});for(const e of t){const t=new r.UiViewModel({name:e,label:u.faStyleLabels[e],withText:!0});t.bind("isOn").to(this,"styleFilter",(t=>t===e)),c.add({type:"button",model:t})}return(0,s.addListToDropdown)(i,c),i}}t.default=h},function(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(1),s=i(0),r=n(i(8)),c=i(9);class a extends s.View{constructor(e){super(e);const t=e.t;this.searchFieldView=new s.LabeledFieldView(e,s.createLabeledInputText),this.searchFieldView.label=t("Search all icons"),this.searchFieldView.fieldView.on("input",(()=>{var e;return this._search(!0,null===(e=this.searchFieldView.fieldView.element)||void 0===e?void 0:e.value)})),this.clearButtonView=(0,c.createButton)(e,t("Clear search"),o.icons.cancel,"ck-button-cancel"),this.clearButtonView.isVisible=!1,this.clearButtonView.on("execute",(()=>{this._search(!1),this.searchFieldView.focus()}));const i=new r.default(e,"div",[this.clearButtonView]);i.bind("isVisible").to(this.clearButtonView,"isVisible"),this.setTemplate({tag:"form",attributes:{class:["ck","ckeditor5-icons__picker-search"]},children:[this.searchFieldView,i]})}render(){super.render(),this.element.addEventListener("submit",(e=>{var t;e.preventDefault(),this._search(!1,null===(t=this.searchFieldView.fieldView.element)||void 0===t?void 0:t.value)}))}_search(e,t){const i=()=>this.fire("search",t);if(this.delayTimer&&clearTimeout(this.delayTimer),e){const e=500;this.delayTimer=setTimeout(i,e)}else i();this.searchFieldView.fieldView.set("value",t)}}t.default=a},(e,t,i)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=i(0),o=i(2);class s extends n.View{constructor(e,t,i,n,s){super(e),this.setTemplate({tag:"span",attributes:{class:["ck-reset_all-excluded"]},children:[{tag:"i",attributes:{class:["ck","ckeditor5-icons__icon",(0,o.getFAStyleClass)(t,(0,o.getValidIconStyle)(n,s)),"fa-"+i]}}]})}}t.default=s},(e,t,i)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=i(0);class o extends n.View{constructor(e){super(e),this.setTemplate({tag:"div",attributes:{class:["ck-reset_all-excluded"]}})}render(){super.render(),window.Drupal&&(this.element.innerHTML=window.Drupal.theme.ajaxProgressThrobber())}focus(){var e;null===(e=this.element)||void 0===e||e.focus()}}t.default=o},(e,t,i)=>{"use strict";i.d(t,{A:()=>x});const n=function(e,t,i){var n=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(i=i>o?o:i)<0&&(i+=o),o=t>i?0:i-t>>>0,t>>>=0;for(var s=Array(o);++n=o?e:n(e,t,i)};var s=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");const r=function(e){return s.test(e)};const c=function(e){return e.split("")};var a="\\ud800-\\udfff",l="["+a+"]",u="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",d="\\ud83c[\\udffb-\\udfff]",h="[^"+a+"]",f="(?:\\ud83c[\\udde6-\\uddff]){2}",b="[\\ud800-\\udbff][\\udc00-\\udfff]",m="(?:"+u+"|"+d+")"+"?",p="[\\ufe0e\\ufe0f]?",w=p+m+("(?:\\u200d(?:"+[h,f,b].join("|")+")"+p+m+")*"),g="(?:"+[h+u+"?",u,f,b,l].join("|")+")",y=RegExp(d+"(?="+d+")|"+g+w,"g");const v=function(e){return e.match(y)||[]};const _=function(e){return r(e)?v(e):c(e)};var V=i(25);const x=function(e){return function(t){t=(0,V.A)(t);var i=r(t)?_(t):void 0,n=i?i[0]:t.charAt(0),s=i?o(i,1).join(""):t.slice(1);return n[e]()+s}}("toUpperCase")},(e,t,i)=>{"use strict";i.d(t,{A:()=>h});var n=i(10);const o=function(e,t){for(var i=-1,n=null==e?0:e.length,o=Array(n);++i{"use strict";i.d(t,{A:()=>s});var n=i(27),o="object"==typeof self&&self&&self.Object===Object&&self;const s=n.A||o||Function("return this")()},(e,t,i)=>{"use strict";i.d(t,{A:()=>n});const n="object"==typeof global&&global&&global.Object===Object&&global},(e,t,i)=>{"use strict";i.d(t,{A:()=>n});const n=Array.isArray},(e,t,i)=>{"use strict";i.d(t,{A:()=>h});var n=i(10),o=Object.prototype,s=o.hasOwnProperty,r=o.toString,c=n.A?n.A.toStringTag:void 0;const a=function(e){var t=s.call(e,c),i=e[c];try{e[c]=void 0;var n=!0}catch(e){}var o=r.call(e);return n&&(t?e[c]=i:delete e[c]),o};var l=Object.prototype.toString;const u=function(e){return l.call(e)};var d=n.A?n.A.toStringTag:void 0;const h=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":d&&d in Object(e)?a(e):u(e)}},(e,t,i)=>{"use strict";i.d(t,{A:()=>n});const n=function(e){return null!=e&&"object"==typeof e}},(e,t,i)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=i(1),o=i(7),s=i(32);class r extends n.Command{execute({iconFA:e,iconStyle:t}){const{editing:i,model:n}=this.editor;n.change((o=>{let s;const r=this._getSelectedLinkElement();r&&(s=r.getAttribute("href"));const c=o.createElement("icon",s?{linkHref:s,iconFA:e,iconStyle:t}:{iconFA:e,iconStyle:t});n.insertContent(c),i.view.focus(),o.setSelection(c,"on")}))}refresh(){const{model:e}=this.editor,{document:t,schema:i}=e,n=i.checkChild(function(e,t){const i=(0,o.findOptimalInsertionRange)(e,t).start.parent;return i.isEmpty&&!i.is("element","$root")?i.parent:i}(t.selection,e),"icon");this.isEnabled=null!==n}_getSelectedLinkElement(){const e=this.editor.editing.view,t=e.document.selection,i=t.getSelectedElement();if(t.isCollapsed||i&&(0,o.isWidget)(i))return c(t.getFirstPosition());{const i=t.getFirstRange().getTrimmed(),n=c(i.start),o=c(i.end);return n&&n==o&&e.createRangeIn(n).getTrimmed().isEqual(i)?n:null}}}function c(e){return e.getAncestors().find((e=>(0,s.isLinkElement)(e)))||null}t.default=r},(e,t,i)=>{"use strict";i.r(t),i.d(t,{LINK_KEYSTROKE:()=>l,addLinkProtocolIfApplicable:()=>w,createBookmarkCallbacks:()=>v,createLinkElement:()=>d,ensureSafeUrl:()=>h,getLocalizedDecorators:()=>f,isEmail:()=>p,isLinkElement:()=>u,isLinkableElement:()=>m,linkHasProtocol:()=>g,normalizeDecorators:()=>b,openLink:()=>y});var n=i(24);const o=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,s="^(?:(?:):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))",r=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,c=/^((\w+:(\/{2,})?)|(\W))/i,a=["https?","ftps?","mailto"],l="Ctrl+K";function u(e){return e.is("attributeElement")&&!!e.getCustomProperty("link")}function d(e,{writer:t}){const i=t.createAttributeElement("a",{href:e},{priority:5});return t.setCustomProperty("link",!0,i),i}function h(e,t=a){const i=String(e),n=t.join("|");return function(e,t){const i=e.replace(o,"");return!!i.match(t)}(i,new RegExp(`${s.replace("",n)}`,"i"))?i:"#"}function f(e,t){const i={"Open in a new tab":e("Open in a new tab"),Downloadable:e("Downloadable")};return t.forEach((e=>("label"in e&&i[e.label]&&(e.label=i[e.label]),e))),t}function b(e){const t=[];if(e)for(const[i,o]of Object.entries(e)){const e=Object.assign({},o,{id:`link${(0,n.A)(i)}`});t.push(e)}return t}function m(e,t){return!!e&&t.checkAttribute(e.name,"linkHref")}function p(e){return r.test(e)}function w(e,t){const i=p(e)?"mailto:":t,n=!!i&&!g(e);return e&&n?i+e:e}function g(e){return c.test(e)}function y(e){window.open(e,"_blank","noopener")}function v(e){const t=e.plugins.has("BookmarkEditing")?e.plugins.get("BookmarkEditing"):null;return{isScrollableToTarget:function(e){return!!e&&e.startsWith("#")&&!!t&&!!t.getElementForBookmarkId(e.slice(1))},scrollToTarget:function(i){const n=i.slice(1),o=t.getElementForBookmarkId(n);e.model.change((e=>{e.setSelection(o,"on")})),e.editing.view.scrollToTheSelection({alignToTop:!0,forceScroll:!0})}}}},(e,t,i)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=i(1),o=i(2);class s extends n.Command{constructor(e,t,i){super(e),this.iconWidget=null,this.attributeName=t,this.defaultValue=i,this.value=i}refresh(){const e=this.editor.model,t=this.attributeName,i=this.defaultValue;this.iconWidget=(0,o.getSelectedIconWidget)(e.document.selection),this.isEnabled=!!this.iconWidget,this.isEnabled?this.value=this.iconWidget.hasAttribute(t)?this.iconWidget.getAttribute(t):i:this.value=i}execute(e={value:this.defaultValue}){const t=this.editor.model,i=this.iconWidget,n=this.attributeName,o=this.defaultValue;i&&t.change((t=>t.setAttribute(n,e.value||o,i)))}}t.default=s},(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>n});const n=''},(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>n});const n='\x3c!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --\x3e'},(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>n});const n='\x3c!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --\x3e'},(e,t,i)=>{"use strict";function n({keystrokeHandler:e,focusTracker:t,gridItems:i,numberOfColumns:n,uiLanguageDirection:o}){const s="number"==typeof n?()=>n:n;function r(e){return n=>{const o=i.find((e=>e.element===t.focusedElement)),s=i.getIndex(o),r=e(s,i);i.get(r).focus(),n.stopPropagation(),n.preventDefault()}}function c(e,t){return e===t-1?0:e+1}function a(e,t){return 0===e?t-1:e-1}e.set("arrowright",r(((e,t)=>"rtl"===o?a(e,t.length):c(e,t.length)))),e.set("arrowleft",r(((e,t)=>"rtl"===o?c(e,t.length):a(e,t.length)))),e.set("arrowup",r(((e,t)=>{let i=e-s();return i<0&&(i=e+s()*Math.floor(t.length/s()),i>t.length-1&&(i-=s())),i}))),e.set("arrowdown",r(((e,t)=>{let i=e+s();return i>t.length-1&&(i=e%s()),i})))}i.r(t),i.d(t,{default:()=>n})},(e,t,i)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=i(0),o=i(5),s=i(1),r=i(4),c=i(3),a=i(9);class l extends n.View{constructor(e){super(e);const t=e.t;this.styleDropdownView=this._createStyleDropdown(e),this.styleDropdownItems=new r.Collection,(0,n.addListToDropdown)(this.styleDropdownView,this.styleDropdownItems),this.submitButtonView=(0,a.createButton)(e,t("Insert"),s.icons.check,"ck-button-save"),this.submitButtonView.type="submit",this.cancelButtonView=(0,a.createButton)(e,t("Cancel"),s.icons.cancel,"ck-button-cancel"),this.cancelButtonView.delegate("execute").to(this,"cancel"),this.setTemplate({tag:"form",attributes:{class:["ck","ckeditor5-icons__picker-form"]},children:[this.styleDropdownView,this.submitButtonView,this.cancelButtonView]})}refresh(e,t){if(!e||e===this.iconName)return;const i=this.styleDropdownItems;i.clear();for(const e of t.styles){const t=new o.UiViewModel({name:e,label:c.faStyleLabels[e],withText:!0});t.bind("isOn").to(this,"iconStyle",(t=>t===e)),i.add({type:"button",model:t})}this.iconName=e}render(){super.render(),(0,n.submitHandler)({view:this})}focus(){this.submitButtonView.isEnabled&&this.submitButtonView.focus()}_createStyleDropdown(e){const t=(0,n.createDropdown)(e),i=e.t;return t.buttonView.set({label:i("Select a style"),tooltip:i("Styles available for this icon"),withText:!0,class:"ck-dropdown__button_label-width_auto"}),t.buttonView.bind("label").to(this,"iconStyle",(e=>c.faStyleLabels[e])),t.on("execute",(e=>this.fire("changeStyle",e.source.name))),t}}t.default=l},(e,t,i)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=i(1),o=i(40),s=i(2);class r extends n.Plugin{static get pluginName(){return"IconGeneralHtmlSupport"}init(){const{editor:e}=this,{plugins:t}=e;if(!t.has("GeneralHtmlSupport")||!t.has("DataFilter"))return;const{model:i,conversion:n}=e,{schema:r}=i,c=t.get("DataFilter");r.extend("icon",{allowAttributes:["htmlLinkAttributes","htmlAttributes"]}),n.for("upcast").add((e=>{e.on("element:i",((e,t,i)=>{var n;const o=t.viewItem;if(!(null===(n=o.getAttribute("class"))||void 0===n?void 0:n.match(s.matchAllFAStyleClasses)))return;const r=o.parent,a=(e,n)=>{const o=c.processViewAttributes(e,i);o&&i.writer.setAttribute(n,o,t.modelRange)};a(o,"htmlAttributes"),(null==r?void 0:r.is("element","a"))&&a(r,"htmlLinkAttributes")}),{priority:"low"})})),n.for("editingDowncast").add((e=>{e.on("attribute:linkHref:icon",((e,t,i)=>{if(!i.consumable.consume(t.item,"attribute:htmlLinkAttributes:icon"))return;const n=t.item,s=i.mapper.toViewElement(n),r=function(e,t,i){const n=e.createRangeOn(t);for(const{item:e}of n.getWalker())if(e.is("element",i))return e;return}(i.writer,s,"a");r&&(0,o.setViewAttributes)(i.writer,n.getAttribute("htmlLinkAttributes"),r)}),{priority:"low"})})),n.for("dataDowncast").add((e=>{e.on("attribute:linkHref:icon",((e,t,i)=>{if(!i.consumable.consume(t.item,"attribute:htmlLinkAttributes:icon"))return;const n=t.item,s=i.mapper.toViewElement(n),r=null==s?void 0:s.parent;(null==r?void 0:r.is("element","a"))&&(0,o.setViewAttributes)(i.writer,n.getAttribute("htmlLinkAttributes"),r)}),{priority:"low"}),e.on("attribute:htmlAttributes:icon",((e,t,i)=>{if(!i.consumable.consume(t.item,e.name))return;const n=t.item,s=i.mapper.toViewElement(n);(null==s?void 0:s.is("element","i"))&&(0,o.setViewAttributes)(i.writer,t.attributeNewValue,s)}),{priority:"low"})}))}}t.default=r},(e,t,i)=>{"use strict";i.r(t),i.d(t,{getHtmlAttributeName:()=>Ji,mergeViewElementAttributes:()=>qi,modifyGhsAttribute:()=>Qi,removeViewAttributes:()=>Zi,setViewAttributes:()=>Ki,toPascalCase:()=>Yi,updateViewAttributes:()=>Gi});const n=function(){this.__data__=[],this.size=0};const o=function(e,t){return e===t||e!=e&&t!=t};const s=function(e,t){for(var i=e.length;i--;)if(o(e[i][0],t))return i;return-1};var r=Array.prototype.splice;const c=function(e){var t=this.__data__,i=s(t,e);return!(i<0)&&(i==t.length-1?t.pop():r.call(t,i,1),--this.size,!0)};const a=function(e){var t=this.__data__,i=s(t,e);return i<0?void 0:t[i][1]};const l=function(e){return s(this.__data__,e)>-1};const u=function(e,t){var i=this.__data__,n=s(i,e);return n<0?(++this.size,i.push([e,t])):i[n][1]=t,this};function d(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991};var Te={};Te["[object Float32Array]"]=Te["[object Float64Array]"]=Te["[object Int8Array]"]=Te["[object Int16Array]"]=Te["[object Int32Array]"]=Te["[object Uint8Array]"]=Te["[object Uint8ClampedArray]"]=Te["[object Uint16Array]"]=Te["[object Uint32Array]"]=!0,Te["[object Arguments]"]=Te["[object Array]"]=Te["[object ArrayBuffer]"]=Te["[object Boolean]"]=Te["[object DataView]"]=Te["[object Date]"]=Te["[object Error]"]=Te["[object Function]"]=Te["[object Map]"]=Te["[object Number]"]=Te["[object Object]"]=Te["[object RegExp]"]=Te["[object Set]"]=Te["[object String]"]=Te["[object WeakMap]"]=!1;const Se=function(e){return(0,he.A)(e)&&Ae(e.length)&&!!Te[(0,w.A)(e)]};const Oe=function(e){return function(t){return e(t)}};var Fe=i(27),Ce="object"==typeof exports&&exports&&!exports.nodeType&&exports,De=Ce&&"object"==typeof module&&module&&!module.nodeType&&module,Ie=De&&De.exports===Ce&&Fe.A.process;const ze=function(){try{var e=De&&De.require&&De.require("util").types;return e||Ie&&Ie.binding&&Ie.binding("util")}catch(e){}}();var Ee=ze&&ze.isTypedArray;const Le=Ee?Oe(Ee):Se;var Me=Object.prototype.hasOwnProperty;const Pe=function(e,t){var i=(0,ge.A)(e),n=!i&&we(e),o=!i&&!n&&xe(e),s=!i&&!n&&!o&&Le(e),r=i||n||o||s,c=r?de(e.length,String):[],a=c.length;for(var l in e)!t&&!Me.call(e,l)||r&&("length"==l||o&&("offset"==l||"parent"==l)||s&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||je(l,a))||c.push(l);return c};var Be=Object.prototype;const Ne=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Be)};const Ue=function(e,t){return function(i){return e(t(i))}};const Re=Ue(Object.keys,Object);var We=Object.prototype.hasOwnProperty;const He=function(e){if(!Ne(e))return Re(e);var t=[];for(var i in Object(e))We.call(e,i)&&"constructor"!=i&&t.push(i);return t};const $e=function(e){return null!=e&&Ae(e.length)&&!y(e)};const Ge=function(e){return $e(e)?Pe(e):He(e)};const Ke=function(e,t){return e&&ue(t,Ge(t),e)};const Ze=function(e){var t=[];if(null!=e)for(var i in Object(e))t.push(i);return t};var qe=Object.prototype.hasOwnProperty;const Qe=function(e){if(!g(e))return Ze(e);var t=Ne(e),i=[];for(var n in e)("constructor"!=n||!t&&qe.call(e,n))&&i.push(n);return i};const Ye=function(e){return $e(e)?Pe(e,!0):Qe(e)};const Je=function(e,t){return e&&ue(t,Ye(t),e)};var Xe="object"==typeof exports&&exports&&!exports.nodeType&&exports,et=Xe&&"object"==typeof module&&module&&!module.nodeType&&module,tt=et&&et.exports===Xe?v.A.Buffer:void 0,it=tt?tt.allocUnsafe:void 0;const nt=function(e,t){if(t)return e.slice();var i=e.length,n=it?it(i):new e.constructor(i);return e.copy(n),n};const ot=function(e,t){var i=-1,n=e.length;for(t||(t=Array(n));++i{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=i(1);class o extends n.Plugin{static get pluginName(){return"IconLinkEditing"}init(){const{editor:e}=this;e.plugins.has("LinkEditing")&&e.model.schema.extend("icon",{allowAttributes:["linkHref"]})}}t.default=o}],t={};function i(n){var o=t[n];if(void 0!==o)return o.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,i),s.exports}i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n=i(13);return n=n.default})())); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.CKEditor5=e():(t.CKEditor5=t.CKEditor5||{},t.CKEditor5.icon=e())}(self,()=>(()=>{var t=[(t,e,i)=>{t.exports=i(6)("./src/ui.js")},function(t,e,i){"use strict";var n=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))(function(o,s){function r(t){try{a(n.next(t))}catch(t){s(t)}}function c(t){try{a(n.throw(t))}catch(t){s(t)}}function a(t){var e;t.done?o(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(r,c)}a((n=n.apply(t,e||[])).next())})};Object.defineProperty(e,"__esModule",{value:!0}),e.matchAllFAStyleClasses=e.allFAStyleClasses=void 0,e.getSelectedIconWidget=function(t){const e=t.getSelectedElement();return e&&e.is("element")&&function(t){return"icon"===t.name}(e)?e:null},e.getSelectedIconViewElement=function(t){const e=t.getSelectedElement();return e&&e.is("element")&&e.hasClass("ckeditor5-icons__widget")?e:null},e.metadataLoaded=function(){return!!(s&&r&&c)},e.getFontAwesomeMetadata=function(t){return n(this,void 0,void 0,function*(){const e=t.config;if(s&&r&&c)return{categories:s,icons:r,styles:c};const i=e.get("icon.faCategories"),n=e.get("icon.faIcons");if(c=e.get("icon.faStyles")||Object.keys(o.faStyleLabels),i&&n)return a(i,n,c);const l=e.get("icon.asyncMetadataURI"),u=yield fetch(l),h=yield u.json();return a(h.categories,h.icons,c)})},e.getValidIconStyle=function(t,e){const i=t.styles;let n=0;if(e){const t=i.indexOf(e);-1!==t&&(n=t)}return i[n]},e.getFAStyleClass=function(t,e){return o.faStyleClassByVersion[t][e]||"fas"};const o=i(3);let s,r,c;function a(t,e,i){for(const[t,n]of Object.entries(e))n.styles=n.styles.filter(t=>i.includes(t)),n.styles.length?void 0!==n.search_terms&&(n.search={terms:n.search_terms.map(t=>(""+t).trim())},delete n.search_terms):delete e[t];for(const[i,n]of Object.entries(t))n.icons=n.icons.filter(t=>!!e[t]),n.icons.length||delete t[i];return s=t,r=e,{categories:s,icons:r,styles:i}}e.allFAStyleClasses=function(){const t=Object.keys(o.faStyleLabels),e={};return t.forEach(t=>{(function(t){const e=Object.keys(o.faStyleClassByVersion),i=[];for(const n of e){const e=o.faStyleClassByVersion[n][t];e&&i.push(e)}return i})(t).forEach(i=>e[i]=t)}),e}(),e.matchAllFAStyleClasses=new RegExp(Object.keys(e.allFAStyleClasses).join("|"))},(t,e,i)=>{t.exports=i(6)("./src/core.js")},function(t,e,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.faStyleClassByVersion=e.styleDefault=e.faStyleLabels=e.alignmentDefault=e.alignmentOptions=e.sizeDefault=e.sizeOptions=void 0;const o=n(i(36)),s=n(i(37)),r=n(i(38)),c=n(i(39)),a=n(i(40)),l=n(i(41)),u=n(i(42)),h=n(i(43));e.sizeOptions={extraSmall:{label:"Extra Small",icon:o.default,className:"fa-xs"},small:{label:"Small",icon:s.default,className:"fa-sm"},regular:{label:"Regular",icon:r.default},large:{label:"Large",icon:c.default,className:"fa-lg"},extraLarge:{label:"Extra Large",icon:a.default,className:"fa-xl",compatibility:["6"]},"2x":{label:"2x",className:"fa-2x"},"3x":{label:"3x",className:"fa-3x"},"4x":{label:"4x",className:"fa-4x"},"5x":{label:"5x",className:"fa-5x"},"6x":{label:"6x",className:"fa-6x"},"7x":{label:"7x",className:"fa-7x"},"8x":{label:"8x",className:"fa-8x"},"9x":{label:"9x",className:"fa-9x"},"10x":{label:"10x",className:"fa-10x"}},e.sizeDefault="regular",e.alignmentOptions={none:{label:"With text",icon:l.default},left:{label:"Pull left",icon:u.default,className:"fa-pull-left"},right:{label:"Pull right",icon:h.default,className:"fa-pull-right"}},e.alignmentDefault="none",e.faStyleLabels={solid:"Solid",regular:"Regular",light:"Light",thin:"Thin",duotone:"Duotone",brands:"Brands",custom:"Custom"},e.styleDefault=Object.keys(e.faStyleLabels)[0],e.faStyleClassByVersion={6:{solid:"fa-solid",regular:"fa-regular",light:"fa-light",thin:"fa-thin",duotone:"fa-duotone",brands:"fa-brands",custom:"fa-kit"},5:{solid:"fas",regular:"far",light:"fal",duotone:"fad",brands:"fab",custom:"fak"}}},(t,e,i)=>{t.exports=i(6)("./src/utils.js")},(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UiViewModel=void 0;const n=i(0);e.UiViewModel=void 0!==n.ViewModel?n.ViewModel:n.Model},t=>{"use strict";t.exports=CKEditor5.dll},(t,e,i)=>{t.exports=i(6)("./src/widget.js")},(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=i(0);class o extends n.View{constructor(t,e,i,n=!0){super(t),this.set("isVisible",n),this.setTemplate({tag:e,attributes:{class:["ck",this.bindTemplate.to("isVisible",t=>t?"":"ck-hidden")]},children:i})}}e.default=o},(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createButton=function(t,e,i,o,s){const r=new n.ButtonView(t);return r.set({label:"string"==typeof s?s:e,icon:i,tooltip:!!i&&e,withText:s||!i,class:o}),r};const n=i(0)},(t,e,i)=>{"use strict";i.d(e,{A:()=>n});const n=i(28).A.Symbol},function(t,e,i){"use strict";var n=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))(function(o,s){function r(t){try{a(n.next(t))}catch(t){s(t)}}function c(t){try{a(n.throw(t))}catch(t){s(t)}}function a(t){var e;t.done?o(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(r,c)}a((n=n.apply(t,e||[])).next())})},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const s=i(2),r=i(0),c=o(i(44)),a=o(i(16)),l=i(1),u=o(i(25));class h extends s.Plugin{static get pluginName(){return"IconPicker"}init(){const{commands:t,config:e,ui:i}=this.editor,o=t.get("insertIcon"),s=i.componentFactory,a=e.get("icon.faVersion"),h=e.get("icon.recommendedIcons");s.add("icon",t=>{const e=(0,r.createDropdown)(t);let i,s,d=null;return e.buttonView.set({label:t.t("Icons"),icon:c.default,tooltip:!0}),e.bind("isEnabled").to(o,"isEnabled"),e.on("change:isOpen",()=>n(this,void 0,void 0,function*(){if(!i){if(!(0,l.metadataLoaded)()){const i=Date.now();if(s&&i-s<1e3)return;s=i,d||(d=new u.default(t),d.extendTemplate({attributes:{class:["ck","ckeditor5-icons__picker-loading"],tabindex:"-1"}}),e.panelView.children.add(d))}const{categories:n,icons:r,styles:c}=yield(0,l.getFontAwesomeMetadata)(this.editor);i||(i=this._createIconPickerView(t,o,a,n,r,c,h),e.panelView.children.add(i),e.isOpen&&i.focus()),d&&(e.panelView.children.remove(d),d=null)}})),e})}_createIconPickerView(t,e,i,n,o,s,r){const c=new a.default(t,i,n,o,s,r);return this.listenTo(c,"execute",(t,i,n)=>{e.execute({iconFA:i,iconStyle:n})}),c}}e.default=h},function(t,e,i){"use strict";var n=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))(function(o,s){function r(t){try{a(n.next(t))}catch(t){s(t)}}function c(t){try{a(n.throw(t))}catch(t){s(t)}}function a(t){var e;t.done?o(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(r,c)}a((n=n.apply(t,e||[])).next())})},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const s=i(4),r=i(0),c=i(5),a=i(3),l=i(2),u=i(7),h=i(9),d=o(i(25)),f=i(1);class m extends l.Plugin{static get pluginName(){return"IconToolbar"}static get requires(){return[u.WidgetToolbarRepository]}init(){const t=this.editor,e=t.commands,i=t.ui.componentFactory,o=t.editing.view.document,l=t.config.get("icon.faVersion");i.add("iconSize",t=>v(t,l,"Icon size",a.sizeOptions[a.sizeDefault].icon,e.get("sizeIcon"),a.sizeOptions,a.sizeDefault)),i.add("iconAlignment",t=>v(t,l,"Icon alignment",a.alignmentOptions[a.alignmentDefault].icon,e.get("alignIcon"),a.alignmentOptions,a.alignmentDefault)),i.add("iconStyle",t=>function(t,e){const i=e.editor,o=(0,r.createDropdown)(t);o.buttonView.set({tooltip:t.t("Icon style"),withText:!0,class:"ck-dropdown__button_label-width_auto"}),o.bind("isEnabled").to(e,"isEnabled"),o.buttonView.bind("label").to(e,"value",t=>a.faStyleLabels[t]);let l,u,h=null,m=null;return o.on("change:isOpen",()=>n(this,void 0,void 0,function*(){if(!(0,f.metadataLoaded)()){const e=Date.now();if(l&&e-l<1e3)return;l=e,h||(h=new d.default(t),h.extendTemplate({attributes:{class:["ck","ckeditor5-icons__picker-loading"],tabindex:"-1"}}),o.panelView.children.add(h))}if(e.iconWidget&&e.iconWidget!==m){const t=(yield(0,f.getFontAwesomeMetadata)(i)).icons;if(!e.iconWidget)return;u?u.clear():(h&&(o.panelView.children.remove(h),h=null),u=new s.Collection,(0,r.addListToDropdown)(o,u));const l=(n=e.iconWidget.getAttribute("iconFA"),v=Object.keys(t),n.split(" ").find(t=>v.includes(t)));if(l){for(const i of t[l].styles){const t=new c.UiViewModel({name:i,label:a.faStyleLabels[i],withText:!0});t.bind("isOn").to(e,"value",t=>t===i),u.add({type:"button",model:t})}o.on("execute",t=>{e.execute({value:t.source.name}),i.editing.view.focus()})}m=e.iconWidget}var n,v})),o}(t,e.get("styleIcon"))),this.listenTo(o,"click",(t,e)=>{(0,f.getSelectedIconViewElement)(o.selection)&&(e.preventDefault(),t.stop())},{priority:"high"})}afterInit(){const t=this.editor;t.plugins.get(u.WidgetToolbarRepository).register("icon",{items:t.config.get("icon.toolbarItems"),getRelatedElement:t=>(0,f.getSelectedIconViewElement)(t)})}}function v(t,e,i,n,o,s,c){const a=(0,r.createDropdown)(t),l=a.buttonView,u=t.t;return(0,r.addToolbarToDropdown)(a,Object.entries(s).filter(([t,i])=>!i.compatibility||i.compatibility.includes(e)).map(([e,i])=>function(t,e,i,n,o){const s=n.editor,r=(0,h.createButton)(t,e,i);return r.tooltip=!!i,r.isToggleable=!0,r.bind("isEnabled").to(n),r.bind("isOn").to(n,"value",t=>t===o),r.on("execute",()=>{n.execute({value:o}),s.editing.view.focus()}),r}(t,i.label,i.icon,o,e))),l.set({label:u(i),icon:n,tooltip:u(i),withText:!n,class:"ck-dropdown__button_label-width_auto"}),n===s[c].icon&&o.on("change:value",(t,e,i)=>{const n=s[i];l.label=u(n.label),l.icon&&!n.icon?l.children.remove(l.iconView):!l.icon&&n.icon&&l.children.add(l.iconView,0),l.icon=n.icon,l.withText=!n.icon}),a.bind("isEnabled").to(o,"isEnabled"),a}e.default=m},function(t,e,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const o=n(i(14)),s=n(i(48)),r=n(i(50));e.default={Icon:o.default,IconGeneralHtmlSupport:s.default,IconLinkEditing:r.default}},function(t,e,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const o=i(2),s=n(i(15)),r=n(i(11)),c=n(i(12));class a extends o.Plugin{static get pluginName(){return"Icon"}static get requires(){return[s.default,r.default,c.default]}}e.default=a},function(t,e,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const o=i(2),s=i(7),r=n(i(33)),c=n(i(35)),a=i(3),l=i(1);class u extends o.Plugin{static get pluginName(){return"IconEditing"}static get requires(){return[s.Widget]}init(){this._defineSchema(),this._defineConverters(),this._defineCommands()}_defineSchema(){this.editor.model.schema.register("icon",{isObject:!0,isInline:!0,allowWhere:"$text",allowAttributes:["iconFA","iconStyle","iconSize","iconAlignment"]})}_defineConverters(){const t=this.editor.config.get("icon.faVersion")||"6",{conversion:e}=this.editor;e.attributeToAttribute(h("iconSize",a.sizeOptions)),e.attributeToAttribute(h("iconAlignment",a.alignmentOptions)),e.for("upcast").elementToElement({model:(t,{writer:e})=>{const i=e.createElement("icon"),n=t.getClassNames();let o="",s=a.styleDefault;for(const t of n){let e;l.allFAStyleClasses[t]?s=l.allFAStyleClasses[t]:!(e=t.match(/fa-([a-z0-9\-]+)/))||t.match(/fa-(2xs|xs|sm|lg|xl|2xl|([0-9]|10)x)/)||t.match(/fa-(pull-left|pull-right)/)||(o+=o?" "+e[1]:e[1])}return e.setAttribute("iconFA",o,i),e.setAttribute("iconStyle",s,i),i},view:{name:"i",classes:l.matchAllFAStyleClasses}}),e.for("dataDowncast").elementToElement({model:"icon",view:(e,{writer:i})=>function(t,e,i){return e.createContainerElement("i",{class:d(t,i)})}(e,i,t)}),e.for("editingDowncast").elementToElement({model:"icon",view:(e,{writer:i})=>function(t,e,i){return(0,s.toWidget)(e.createContainerElement("span",{class:"ckeditor5-icons__widget"},[e.createRawElement("span",{},e=>e.innerHTML='')]),e,{label:"icon widget"})}(e,i,t)}),e.for("editingDowncast").add(t=>{t.on("attribute:iconStyle",(t,e,i)=>{e.attributeOldValue&&!i.consumable.consume(e.item,"insert")&&(i.writer.remove(i.mapper.toViewRange(e.range)),i.convertItem(e.item))})})}_defineCommands(){const t=this.editor,e=t.commands;e.add("insertIcon",new r.default(t)),e.add("styleIcon",new c.default(t,"iconStyle",a.styleDefault)),e.add("sizeIcon",new c.default(t,"iconSize",a.sizeDefault)),e.add("alignIcon",new c.default(t,"iconAlignment",a.alignmentDefault))}}function h(t,e){const i={},n=[];for(const[t,o]of Object.entries(e))o.className&&(n.push(t),i[t]={key:"class",value:o.className});return{model:{key:t,values:n},view:i}}function d(t,e){const i=t.getAttribute("iconFA"),n=(0,l.getFAStyleClass)(e,t.getAttribute("iconStyle")),o=i.split(" ").map(t=>t?"fa-"+t:"").join(" ");return n+(o?" "+o:"")}e.default=u},function(t,e,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const o=i(0),s=i(4),r=i(1),c=n(i(17)),a=n(i(18)),l=n(i(20));class u extends o.View{constructor(t,e,i,n,u,h){super(t),this.set("iconName",null),this.set("iconStyle",null),this.set("iconDefinition",null),this.headerView=new c.default(t,e,i,u,h),this.gridView=new a.default(t,e),this.footerView=new l.default(t,e,u),this.searchFieldView=this.footerView.searchView.searchFieldView.fieldView,this.searchClearButtonView=this.footerView.searchView.clearButtonView,this.items=this.createCollection(),this.focusTracker=new s.FocusTracker,this.keystrokes=new s.KeystrokeHandler,new o.FocusCycler({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ckeditor5-icons__picker"],tabindex:"-1"},children:[this.headerView,this.gridView,this.footerView]}),this.items.add(this.headerView),this.listenTo(this.headerView,"execute",(t,e,i)=>{this.iconName=null,this.iconDefinition=null,this.gridView.refresh(n,e,i),this.footerView.refresh(),this._stopTrackingFooterForm(),"_brands"===e?(this.footerView.styleFilterView.buttonView.isVisible=!1,this._stopTracking(this.footerView.styleFilterView.buttonView)):this.footerView.styleFilterView.buttonView.isVisible=!0,this.searchQuery=null}),this.listenTo(this.gridView,"execute",(t,e,i)=>{e&&i?(this.iconName=e,this.iconStyle=(0,r.getValidIconStyle)(i,this.iconStyle),this.iconDefinition=i,this.footerView.refresh(),this._startTrackingFooterForm()):this._clearSelectedIcon()}),this.listenTo(this.gridView,"gridSectionLoad",(t,e,i)=>{e?this._startTracking(this.gridView,this.items.getIndex(this.headerView)+1):this._stopTracking(this.gridView),this.gridView.allCategoryFilterView.buttonView.isVisible?this._startTracking(this.gridView.allCategoryFilterView.buttonView,this.items.getIndex(this.headerView)+1):this._stopTracking(this.gridView.allCategoryFilterView.buttonView),i?this._startTracking(this.gridView.expandButtonView,this.items.getIndex(this.gridView)+1):this._stopTracking(this.gridView.expandButtonView)}),this.listenTo(this.footerView,"search",(t,e)=>{this.iconName&&(this.iconName=null,this.iconDefinition=null,this.footerView.refresh(),this._stopTrackingFooterForm()),e?(this.gridView.refresh(n,"_all",i._all,e),this.headerView.set("categoryAttributionName","_search"),this.headerView.categoryDropdownView.buttonView.isVisible=!1,this._stopTracking(this.headerView),this.searchClearButtonView.isVisible=!0,this._startTracking(this.searchClearButtonView,this.items.getIndex(this.searchFieldView)+1),this.footerView.styleFilterView.buttonView.isVisible=!0,this._startTracking(this.footerView.styleFilterView.buttonView),this.searchQuery=e):(this._startTracking(this.headerView,0),this.headerView.fire("execute",this.headerView.categoryName,this.headerView.categoryDefinition),this.searchClearButtonView.isVisible=!1,this._stopTracking(this.searchClearButtonView),this.headerView.categoryDropdownView.buttonView.isVisible=!0)}),this.listenTo(this.gridView,"change:styleFilter",()=>{this.searchQuery?this.gridView.refresh(n,"_all",i._all,this.searchQuery):this.gridView.refresh(n)}),this.listenTo(this.footerView,"changeStyle",(t,e)=>{this.set("iconStyle",e),this.footerView.refresh()}),this.on("cancel",t=>this._clearSelectedIcon(!0)),this.keystrokes.set("Esc",(t,e)=>{this.iconName?(this._clearSelectedIcon(!0),e()):this.items.has(this.searchClearButtonView)&&(this.searchClearButtonView.fire("execute"),e())}),this.gridView.bind("iconName").to(this),this.gridView.bind("categoryName","categoryDefinition").to(this.headerView),this.gridView.bind("styleFilter").to(this.footerView),this.footerView.bind("iconName","iconStyle","iconDefinition").to(this),this.footerView.on("execute",()=>{this.fire("execute",this.iconName,this.iconStyle),this._clearSelectedIcon()}),this.footerView.delegate("cancel").to(this),i._recommended?this.headerView.fire("execute","_recommended",i._recommended):this.headerView.fire("execute","_all",i._all)}_startTracking(t,e){this.items.has(t)||(this.items.add(t,e),this.focusTracker.add(t.element))}_stopTracking(t){this.items.has(t)&&(this.items.remove(t),this.focusTracker.remove(t.element))}_startTrackingFooterForm(){this._stopTracking(this.footerView.styleFilterView.buttonView),this._stopTracking(this.searchFieldView),this.searchQuery&&this._stopTracking(this.searchClearButtonView),this._startTracking(this.footerView.formView.styleDropdownView.buttonView),this._startTracking(this.footerView.formView.submitButtonView),this._startTracking(this.footerView.formView.cancelButtonView)}_stopTrackingFooterForm(){this._stopTracking(this.footerView.formView.styleDropdownView.buttonView),this._stopTracking(this.footerView.formView.submitButtonView),this._stopTracking(this.footerView.formView.cancelButtonView),this._startTracking(this.searchFieldView),this.searchQuery&&this._startTracking(this.searchClearButtonView),this._startTracking(this.footerView.styleFilterView.buttonView)}_clearSelectedIcon(t=!1){var e;t&&this.focusTracker.isFocused&&(null===(e=this.focusTracker.focusedElement)||void 0===e?void 0:e.parentElement)===this.footerView.formView.element&&this.gridView.focus(),this.iconName=null,this.iconDefinition=null,this.footerView.refresh(),this._stopTrackingFooterForm()}render(){super.render(),this.focusTracker.add(this.headerView.element),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.items.has(this.searchFieldView)?this.searchFieldView.focus():this.headerView.focus()}}e.default=u},function(t,e,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const o=i(4),s=i(0),r=i(5),c=n(i(45));class a extends s.View{constructor(t,e,i,n,o){super(t);const r=this.bindTemplate,c=t.t;this.categoryDropdownView=this._createCategoryDropdown(t,i,n,o),this.categoryDropdownView.panelPosition="rtl"===t.uiLanguageDirection?"se":"sw",this.attributionIconView=new s.View(t),this.attributionIconView.setTemplate({tag:"span",attributes:{class:["ck",r.to("categoryAttributionName",t=>"_recommended"===t||"_search"===t?"ck-hidden":"")]}}),this.attributionView=new s.View(t),this.attributionView.setTemplate({tag:"div",attributes:{class:["ck","ckeditor5-icons__library-attr"]},children:[this.attributionIconView,{tag:"span",children:[{text:r.to("categoryAttributionName",t=>"_recommended"===t?c("Recommended"):"_search"===t?c("Search"):"5"===e?"Font Awesome 5":"Font Awesome 6")}]}]}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-form__header","ckeditor5-icons__picker-header"]},children:[{tag:"div",children:[{tag:"h2",attributes:{class:["ck","ck-form__header__label"]},children:[{text:c("Icons")}]},this.attributionView]},this.categoryDropdownView]}),this.on("execute",(t,e,i)=>{this.set("categoryName",e),this.set("categoryAttributionName",e),this.set("categoryDefinition",i)})}render(){super.render(),this.attributionIconView.element.innerHTML=c.default}focus(){this.categoryDropdownView.focus()}_createCategoryDropdown(t,e,i,n){const o=(0,s.createDropdown)(t),r=this._createCategoryDropdownItems(t,e,i,n),c="Select a category",a=t.t;return o.buttonView.set({label:a(c),tooltip:a("Icon categories"),withText:!0,class:"ck-dropdown__button_label-width_auto"}),o.buttonView.bind("label").to(this,"categoryDefinition",t=>a(t?t.label:c)),o.panelView.extendTemplate({attributes:{tabindex:"-1"}}),o.on("execute",t=>{const i=t.source.name;this.fire("execute",i,e[i])}),(0,s.addListToDropdown)(o,r),o}_createCategoryDropdownItems(t,e,i,n){const s=new o.Collection,r=[],c={all:{icons:[],label:"All"},brands:{icons:[],label:"Brands"}};if(n){const i=e._recommended={icons:n,label:"Recommended"};this._addCategoryDropdownItem(t,s,"_recommended",i),s.add({type:"separator"})}r.push("all"),i.includes("brands")&&r.push("brands");const a=Object.entries(e);for(const i of r){const n=c[i],o="_"+i;this._addCategoryDropdownItem(t,s,o,n),e[o]=n}s.add({type:"separator"});for(const[e,i]of a)"_"!==e[0]&&this._addCategoryDropdownItem(t,s,e,i);return s}_addCategoryDropdownItem(t,e,i,n){const o=new r.UiViewModel({name:i,label:t.t(n.label),withText:!0});o.bind("isOn").to(this,"categoryName",t=>t===i),e.add({type:"button",model:o})}}e.default=a},function(t,e,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const o=i(4),s=i(0),r=i(5),c=n(i(46)),a=n(i(19)),l=i(0),u=n(i(8)),h=i(3);class d extends s.View{constructor(t,e){super(t),this.faVersion=e,this.set("allCategoryFilter","a");const n=this.bindTemplate,r=t.t;this.items=this.createCollection(),this.sections=this.createCollection(),this.allCategoryFilterView=this._createAllCategoryFilterDropdown(t),this.itemsView=new s.View(t),this.itemsView.setTemplate({tag:"div",attributes:{class:["ck","ckeditor5-icons__grid-section"]}}),this.fallbackView=new u.default(t,"div",[{text:n.to("styleFilter",t=>t&&"all"!==t?r("No icons in the %0 style match your search.",[h.faStyleLabels[t]]):r("No icons match your search."))}]),this.fallbackView.extendTemplate({attributes:{class:"ckeditor5-icons__grid-fallback"}}),this.expandButtonView=new l.ButtonView(t),this.expandButtonView.set({icon:'',label:r("Expand"),tooltip:r("Show more icons"),withText:!0,isVisible:!1,class:"ckeditor5-icons__grid-expand"}),this.setTemplate({tag:"div",attributes:{class:["ck","ckeditor5-icons__grid"]},children:[{tag:"div",attributes:{class:["ck","ckeditor5-icons__grid-options","ckeditor5-icons__grid-options-top",this.allCategoryFilterView.buttonView.bindTemplate.to("isVisible",t=>t?"":"ck-hidden")]},children:[this.allCategoryFilterView]},{tag:"div",attributes:{class:["ck","ckeditor5-icons__grid-scrollable"]},children:[this.fallbackView,this.itemsView,{tag:"div",attributes:{class:["ck","ckeditor5-icons__grid-options","ckeditor5-icons__grid-options-bottom",this.expandButtonView.bindTemplate.to("isVisible",t=>t?"":"ck-hidden")]},children:[this.expandButtonView]}]}]}),this.focusTracker=new o.FocusTracker,this.keystrokes=new o.KeystrokeHandler,(0,c.default)({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:()=>i.g.window.getComputedStyle(this.itemsView.element.firstChild).getPropertyValue("grid-template-columns").split(" ").length,uiLanguageDirection:t.uiLanguageDirection})}_createItem(t,e){const i=new a.default(this.locale,this.faVersion,t,e,this.styleFilter&&"all"!==this.styleFilter?this.styleFilter:null);return i.on("mouseover",()=>this.fire("itemHover",t,e)),i.on("focus",()=>this.fire("itemFocus",t,e)),i.on("execute",()=>this.fire("execute",t,e)),i.bind("isOn").to(this,"iconName",e=>t===e),i}refresh(t,e,i,n){const o=e||this.categoryName,s=i||this.categoryDefinition;let r;if(this.items.clear(),this.itemsView.deregisterChild(this.sections),this.itemsView.element&&(this.itemsView.element.innerText=""),this.sections.clear(),r="_all"===o?Object.keys(t):"_brands"===o?Object.keys(t).filter(e=>t[e].styles.includes("brands")):s?s.icons:[],n&&(r=function(t,e,i){i=i.toLowerCase(),i.length>3&&"fa-"===i.substring(0,3)&&(i=i.substring(3));const n=[],o=new Set;t.includes(i)&&(n.push(i),o.add(i));for(const s of t)s!==i&&e[s].search.terms.includes(i)&&(n.push(s),o.add(s));for(const e of t)o.has(e)||0!==e.indexOf(i)||(n.push(e),o.add(e));return n}(r,t,n)),n||"_all"!==o)this.allCategoryFilterView.buttonView.isVisible=!1;else{const e=this.allCategoryFilter;r="#"===e?r.filter(t=>"0123456789".includes(t[0])):r.filter(t=>t[0]===e[0]),this.allCategoryFilterViewItems||(this.allCategoryFilterViewItems=this._createAllCategoryFilterDropdownItems(),(0,l.addListToDropdown)(this.allCategoryFilterView,this.allCategoryFilterViewItems),this.on("change:allCategoryFilter",()=>{this.refresh(t),this.fire("execute",null,null)})),this.allCategoryFilterView.buttonView.isVisible=!0}"_brands"!==o&&this.styleFilter&&"all"!==this.styleFilter&&(r=r.filter(e=>{var i;return null===(i=t[e])||void 0===i?void 0:i.styles.includes(this.styleFilter)})),0===r.length?(this.fallbackView.isVisible=!0,this.expandButtonView.isVisible=!1,this.fire("gridSectionLoad",!1,!1)):(this.fallbackView.isVisible=!1,this._populateGrid(r,t))}render(){super.render();const t=this.sections.get(0);if(t){for(const e of this.items){const i=e.element;t.element.appendChild(i),this.focusTracker.add(i)}this.itemsView.element.appendChild(t.element)}this.items.on("change",(t,{added:e,removed:i})=>{for(const t of e)this.focusTracker.add(t.element);for(const t of i)this.focusTracker.remove(t.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){if(this.iconName){const t=this.items.find(t=>t.isOn);if(t)return void t.focus()}const t=this.items.first;t&&t.focus()}_populateGrid(t,e,i=0){const n=this.expandButtonView;this.stopListening(n,"execute");const o=t.length-i,r=new s.View,c=this.createCollection();for(let n=0;n200?(n.isVisible=!0,this.listenTo(n,"execute",()=>{this.items.last.focus(),this._populateGrid(t,e,i+200)}),this.fire("gridSectionLoad",!this.fallbackView.isVisible,!0)):(n.isVisible=!1,this.fire("gridSectionLoad",!this.fallbackView.isVisible,!1))}_createAllCategoryFilterDropdown(t){const e=(0,s.createDropdown)(t),i=t.t;return e.buttonView.set({tooltip:i("Filter All"),withText:!0,isVisible:!1,class:"ck-dropdown__button_label-width_auto"}),e.buttonView.bind("label").to(this,"allCategoryFilter",t=>t.toUpperCase()),e.panelView.extendTemplate({attributes:{tabindex:"-1"}}),e.on("execute",t=>this.set("allCategoryFilter",t.source.name)),e}_createAllCategoryFilterDropdownItems(){const t=new o.Collection;for(const e of"#abcdefghijklmnopqrstuvwxyz"){const i=new r.UiViewModel({name:e,label:e.toUpperCase(),withText:!0});i.bind("isOn").to(this,"allCategoryFilter",t=>t===e),t.add({type:"button",model:i})}return t}}e.default=d},function(t,e,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const o=i(0),s=n(i(23));class r extends o.ButtonView{constructor(t,e,i,n,o){super(t);const r=this.bindTemplate;this.set({label:t.t(n.label),class:"ckeditor5-icons__grid-item",isOn:!1,withText:!0}),this.faIcon=new s.default(t,e,i,n,o),this.faIcon.extendTemplate({attributes:{class:["ck","ck-icon","ck-button__icon","ck-icon_inherit-color"]}}),this.extendTemplate({attributes:{title:i},on:{mouseover:r.to("mouseover"),focus:r.to("focus")}}),this.registerChild([this.faIcon])}render(){super.render();const t=this.element;t.insertBefore(this.faIcon.element,t.firstChild)}}e.default=r},function(t,e,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const o=i(4),s=i(0),r=i(5),c=n(i(23)),a=n(i(21)),l=n(i(22)),u=i(3),h=n(i(8));class d extends s.View{constructor(t,e,i){super(t),this.faVersion=e,this.set("styleFilter","all");const n=t.t,o=this.bindTemplate;this.searchView=new l.default(t),this.searchView.delegate("search").to(this),this.styleFilterView=this._createStyleFilterDropdown(t,i);const r=new h.default(t,"div",[this.styleFilterView]);r.bind("isVisible").to(this.styleFilterView.buttonView,"isVisible"),this.iconPreviewView=new s.View,this.iconPreviewView.setTemplate({tag:"div",attributes:{class:["ck","ckeditor5-icons__icon-preview"]}}),this.faIcon=null,this.formView=new a.default(t),this.formView.delegate("changeStyle","cancel").to(this),this.formView.delegate("submit").to(this,"execute"),this.formView.bind("iconStyle").to(this),this.setTemplate({tag:"div",attributes:{class:["ck","ckeditor5-icons__picker-footer"]},children:[{tag:"div",attributes:{class:["ck",o.to("iconName",t=>t?"":"ck-hidden")]},children:[{tag:"div",attributes:{class:["ck","ckeditor5-icons__picker-preview"]},children:[this.iconPreviewView,{tag:"div",attributes:{class:["ck","ckeditor5-icons__icon-info"]},children:[{tag:"span",attributes:{class:["ck","ckeditor5-icons__icon-label"]},children:[{text:o.to("iconDefinition",t=>t?n(t.label):"")}]},{tag:"span",attributes:{class:["ck","ckeditor5-icons__icon-name"]},children:[{text:o.to("iconName")}]}]}]},this.formView]},{tag:"div",attributes:{class:["ck",o.to("iconName",t=>t?"ck-hidden":"")]},children:[this.searchView,r]}]})}refresh(){this.iconDefinition&&this.formView.refresh(this.iconName,this.iconDefinition);const t=this.iconPreviewView;let e=null;this.faIcon&&(t.deregisterChild(this.faIcon),t.element.innerText=""),this.iconName&&this.iconDefinition&&(e=new c.default(this.locale,this.faVersion,this.iconName,this.iconDefinition,this.iconStyle),t.registerChild(e),t.element.appendChild(e.element)),this.faIcon=e}_createStyleFilterDropdown(t,e){const i=(0,s.createDropdown)(t),n=t.t;i.buttonView.set({label:n("Select a style"),tooltip:n("Filter by style"),withText:!0,class:"ck-dropdown__button_label-width_auto"}),i.buttonView.bind("label").to(this,"styleFilter",t=>"all"===t?n("All"):u.faStyleLabels[t]),i.on("execute",t=>{const e=t.source.name;this.set("styleFilter",e),"all"!==e&&this.formView.fire("changeStyle",e)});const c=new o.Collection,a=new r.UiViewModel({name:"all",label:n("All"),withText:!0});a.bind("isOn").to(this,"styleFilter",t=>"all"===t),c.add({type:"button",model:a}),c.add({type:"separator"});for(const t of e){const e=new r.UiViewModel({name:t,label:u.faStyleLabels[t],withText:!0});e.bind("isOn").to(this,"styleFilter",e=>e===t),c.add({type:"button",model:e})}return(0,s.addListToDropdown)(i,c),i}}e.default=d},function(t,e,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const o=i(0),s=i(5),r=i(4),c=i(3),a=i(9),l=n(i(47)),u=n(i(24));class h extends o.View{constructor(t){super(t);const e=t.t;this.styleDropdownView=this._createStyleDropdown(t),this.styleDropdownItems=new r.Collection,(0,o.addListToDropdown)(this.styleDropdownView,this.styleDropdownItems),this.submitButtonView=(0,a.createButton)(t,e("Insert"),l.default,"ck-button-save"),this.submitButtonView.type="submit",this.cancelButtonView=(0,a.createButton)(t,e("Cancel"),u.default,"ck-button-cancel"),this.cancelButtonView.delegate("execute").to(this,"cancel"),this.setTemplate({tag:"form",attributes:{class:["ck","ckeditor5-icons__picker-form"]},children:[this.styleDropdownView,this.submitButtonView,this.cancelButtonView]})}refresh(t,e){if(!t||t===this.iconName)return;const i=this.styleDropdownItems;i.clear();for(const t of e.styles){const e=new s.UiViewModel({name:t,label:c.faStyleLabels[t],withText:!0});e.bind("isOn").to(this,"iconStyle",e=>e===t),i.add({type:"button",model:e})}this.iconName=t}render(){super.render(),(0,o.submitHandler)({view:this})}focus(){this.submitButtonView.isEnabled&&this.submitButtonView.focus()}_createStyleDropdown(t){const e=(0,o.createDropdown)(t),i=t.t;return e.buttonView.set({label:i("Select a style"),tooltip:i("Styles available for this icon"),withText:!0,class:"ck-dropdown__button_label-width_auto"}),e.buttonView.bind("label").to(this,"iconStyle",t=>c.faStyleLabels[t]),e.on("execute",t=>this.fire("changeStyle",t.source.name)),e}}e.default=h},function(t,e,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const o=i(0),s=n(i(8)),r=i(9),c=n(i(24));class a extends o.View{constructor(t){super(t);const e=t.t;this.searchFieldView=new o.LabeledFieldView(t,o.createLabeledInputText),this.searchFieldView.label=e("Search all icons"),this.searchFieldView.fieldView.on("input",()=>{var t;return this._search(!0,null===(t=this.searchFieldView.fieldView.element)||void 0===t?void 0:t.value)}),this.clearButtonView=(0,r.createButton)(t,e("Clear search"),c.default,"ck-button-cancel"),this.clearButtonView.isVisible=!1,this.clearButtonView.on("execute",()=>{this._search(!1),this.searchFieldView.focus()});const i=new s.default(t,"div",[this.clearButtonView]);i.bind("isVisible").to(this.clearButtonView,"isVisible"),this.setTemplate({tag:"form",attributes:{class:["ck","ckeditor5-icons__picker-search"]},children:[this.searchFieldView,i]})}render(){super.render(),this.element.addEventListener("submit",t=>{var e;t.preventDefault(),this._search(!1,null===(e=this.searchFieldView.fieldView.element)||void 0===e?void 0:e.value)})}_search(t,e){const i=()=>this.fire("search",e);if(this.delayTimer&&clearTimeout(this.delayTimer),t){const t=500;this.delayTimer=setTimeout(i,t)}else i();this.searchFieldView.fieldView.set("value",e)}}e.default=a},(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=i(0),o=i(1);class s extends n.View{constructor(t,e,i,n,s){super(t),this.setTemplate({tag:"span",attributes:{class:["ck-reset_all-excluded"]},children:[{tag:"i",attributes:{class:["ck","ckeditor5-icons__icon",(0,o.getFAStyleClass)(e,(0,o.getValidIconStyle)(n,s)),"fa-"+i]}}]})}}e.default=s},(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>n});const n=''},(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=i(0);class o extends n.View{constructor(t){super(t),this.setTemplate({tag:"div",attributes:{class:["ck-reset_all-excluded"]}})}render(){super.render(),window.Drupal&&(this.element.innerHTML=window.Drupal.theme.ajaxProgressThrobber())}focus(){var t;null===(t=this.element)||void 0===t||t.focus()}}e.default=o},(t,e,i)=>{"use strict";i.d(e,{A:()=>x});const n=function(t,e,i){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(i=i>o?o:i)<0&&(i+=o),o=e>i?0:i-e>>>0,e>>>=0;for(var s=Array(o);++n=o?t:n(t,e,i)};var s=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");const r=function(t){return s.test(t)};const c=function(t){return t.split("")};var a="\\ud800-\\udfff",l="["+a+"]",u="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",h="\\ud83c[\\udffb-\\udfff]",d="[^"+a+"]",f="(?:\\ud83c[\\udde6-\\uddff]){2}",m="[\\ud800-\\udbff][\\udc00-\\udfff]",v="(?:"+u+"|"+h+")"+"?",w="[\\ufe0e\\ufe0f]?",b=w+v+("(?:\\u200d(?:"+[d,f,m].join("|")+")"+w+v+")*"),p="(?:"+[d+u+"?",u,f,m,l].join("|")+")",g=RegExp(h+"(?="+h+")|"+p+b,"g");const y=function(t){return t.match(g)||[]};const _=function(t){return r(t)?y(t):c(t)};var V=i(27);const x=function(t){return function(e){e=(0,V.A)(e);var i=r(e)?_(e):void 0,n=i?i[0]:e.charAt(0),s=i?o(i,1).join(""):e.slice(1);return n[t]()+s}}("toUpperCase")},(t,e,i)=>{"use strict";i.d(e,{A:()=>d});var n=i(10);const o=function(t,e){for(var i=-1,n=null==t?0:t.length,o=Array(n);++i{"use strict";i.d(e,{A:()=>s});var n=i(29),o="object"==typeof self&&self&&self.Object===Object&&self;const s=n.A||o||Function("return this")()},(t,e,i)=>{"use strict";i.d(e,{A:()=>n});const n="object"==typeof global&&global&&global.Object===Object&&global},(t,e,i)=>{"use strict";i.d(e,{A:()=>n});const n=Array.isArray},(t,e,i)=>{"use strict";i.d(e,{A:()=>d});var n=i(10),o=Object.prototype,s=o.hasOwnProperty,r=o.toString,c=n.A?n.A.toStringTag:void 0;const a=function(t){var e=s.call(t,c),i=t[c];try{t[c]=void 0;var n=!0}catch(t){}var o=r.call(t);return n&&(e?t[c]=i:delete t[c]),o};var l=Object.prototype.toString;const u=function(t){return l.call(t)};var h=n.A?n.A.toStringTag:void 0;const d=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":h&&h in Object(t)?a(t):u(t)}},(t,e,i)=>{"use strict";i.d(e,{A:()=>n});const n=function(t){return null!=t&&"object"==typeof t}},(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=i(2),o=i(7),s=i(34);class r extends n.Command{execute({iconFA:t,iconStyle:e}){const{editing:i,model:n}=this.editor;n.change(o=>{let s;const r=this._getSelectedLinkElement();r&&(s=r.getAttribute("href"));const c=o.createElement("icon",s?{linkHref:s,iconFA:t,iconStyle:e}:{iconFA:t,iconStyle:e});n.insertContent(c),i.view.focus(),o.setSelection(c,"on")})}refresh(){const{model:t}=this.editor,{document:e,schema:i}=t,n=i.checkChild(function(t,e){const i=(0,o.findOptimalInsertionRange)(t,e).start.parent;return i.isEmpty&&!i.is("element","$root")?i.parent:i}(e.selection,t),"icon");this.isEnabled=null!==n}_getSelectedLinkElement(){const t=this.editor.editing.view,e=t.document.selection,i=e.getSelectedElement();if(e.isCollapsed||i&&(0,o.isWidget)(i))return c(e.getFirstPosition());{const i=e.getFirstRange().getTrimmed(),n=c(i.start),o=c(i.end);return n&&n==o&&t.createRangeIn(n).getTrimmed().isEqual(i)?n:null}}}function c(t){return t.getAncestors().find(t=>(0,s.isLinkElement)(t))||null}e.default=r},(t,e,i)=>{"use strict";i.r(e),i.d(e,{LINK_KEYSTROKE:()=>l,addLinkProtocolIfApplicable:()=>b,createBookmarkCallbacks:()=>y,createLinkElement:()=>h,ensureSafeUrl:()=>d,getLocalizedDecorators:()=>f,isEmail:()=>w,isLinkElement:()=>u,isLinkableElement:()=>v,linkHasProtocol:()=>p,normalizeDecorators:()=>m,openLink:()=>g});var n=i(26);const o=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,s="^(?:(?:):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))",r=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,c=/^((\w+:(\/{2,})?)|(\W))/i,a=["https?","ftps?","mailto"],l="Ctrl+K";function u(t){return t.is("attributeElement")&&!!t.getCustomProperty("link")}function h(t,{writer:e}){const i=e.createAttributeElement("a",{href:t},{priority:5});return e.setCustomProperty("link",!0,i),i}function d(t,e=a){const i=String(t),n=e.join("|");return function(t,e){const i=t.replace(o,"");return!!i.match(e)}(i,new RegExp(`${s.replace("",n)}`,"i"))?i:"#"}function f(t,e){const i={"Open in a new tab":t("Open in a new tab"),Downloadable:t("Downloadable")};return e.forEach(t=>("label"in t&&i[t.label]&&(t.label=i[t.label]),t)),e}function m(t){const e=[];if(t)for(const[i,o]of Object.entries(t)){const t=Object.assign({},o,{id:`link${(0,n.A)(i)}`});e.push(t)}return e}function v(t,e){return!!t&&e.checkAttribute(t.name,"linkHref")}function w(t){return r.test(t)}function b(t,e){const i=w(t)?"mailto:":e,n=!!i&&!p(t);return t&&n?i+t:t}function p(t){return c.test(t)}function g(t){window.open(t,"_blank","noopener")}function y(t){const e=t.plugins.has("BookmarkEditing")?t.plugins.get("BookmarkEditing"):null;return{isScrollableToTarget:function(t){return!!t&&t.startsWith("#")&&!!e&&!!e.getElementForBookmarkId(t.slice(1))},scrollToTarget:function(i){const n=i.slice(1),o=e.getElementForBookmarkId(n);t.model.change(t=>{t.setSelection(o,"on")}),t.editing.view.scrollToTheSelection({alignToTop:!0,forceScroll:!0})}}}},(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=i(2),o=i(1);class s extends n.Command{constructor(t,e,i){super(t),this.iconWidget=null,this.attributeName=e,this.defaultValue=i,this.value=i}refresh(){const t=this.editor.model,e=this.attributeName,i=this.defaultValue;this.iconWidget=(0,o.getSelectedIconWidget)(t.document.selection),this.isEnabled=!!this.iconWidget,this.isEnabled?this.value=this.iconWidget.hasAttribute(e)?this.iconWidget.getAttribute(e):i:this.value=i}execute(t={value:this.defaultValue}){const e=this.editor.model,i=this.iconWidget,n=this.attributeName,o=this.defaultValue;i&&e.change(e=>e.setAttribute(n,t.value||o,i))}}e.default=s},(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>n});const n=''},(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>n});const n=''},(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>n});const n=''},(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>n});const n=''},(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>n});const n=''},(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>n});const n=''},(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>n});const n=''},(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>n});const n=''},(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>n});const n='\x3c!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --\x3e'},(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>n});const n='\x3c!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --\x3e'},(t,e,i)=>{"use strict";function n({keystrokeHandler:t,focusTracker:e,gridItems:i,numberOfColumns:n,uiLanguageDirection:o}){const s="number"==typeof n?()=>n:n;function r(t){return n=>{const o=i.find(t=>t.element===e.focusedElement),s=i.getIndex(o),r=t(s,i);i.get(r).focus(),n.stopPropagation(),n.preventDefault()}}function c(t,e){return t===e-1?0:t+1}function a(t,e){return 0===t?e-1:t-1}t.set("arrowright",r((t,e)=>"rtl"===o?a(t,e.length):c(t,e.length))),t.set("arrowleft",r((t,e)=>"rtl"===o?c(t,e.length):a(t,e.length))),t.set("arrowup",r((t,e)=>{let i=t-s();return i<0&&(i=t+s()*Math.floor(e.length/s()),i>e.length-1&&(i-=s())),i})),t.set("arrowdown",r((t,e)=>{let i=t+s();return i>e.length-1&&(i=t%s()),i}))}i.r(e),i.d(e,{default:()=>n})},(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>n});const n=''},(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=i(2),o=i(49),s=i(1);class r extends n.Plugin{static get pluginName(){return"IconGeneralHtmlSupport"}init(){const{editor:t}=this,{plugins:e}=t;if(!e.has("GeneralHtmlSupport")||!e.has("DataFilter"))return;const{model:i,conversion:n}=t,{schema:r}=i,c=e.get("DataFilter");r.extend("icon",{allowAttributes:["htmlLinkAttributes","htmlAttributes"]}),n.for("upcast").add(t=>{t.on("element:i",(t,e,i)=>{var n;const o=e.viewItem;if(!(null===(n=o.getAttribute("class"))||void 0===n?void 0:n.match(s.matchAllFAStyleClasses)))return;const r=o.parent,a=(t,n)=>{const o=c.processViewAttributes(t,i);o&&i.writer.setAttribute(n,o,e.modelRange)};a(o,"htmlAttributes"),(null==r?void 0:r.is("element","a"))&&a(r,"htmlLinkAttributes")},{priority:"low"})}),n.for("editingDowncast").add(t=>{t.on("attribute:linkHref:icon",(t,e,i)=>{if(!i.consumable.consume(e.item,"attribute:htmlLinkAttributes:icon"))return;const n=e.item,s=i.mapper.toViewElement(n),r=function(t,e,i){const n=t.createRangeOn(e);for(const{item:t}of n.getWalker())if(t.is("element",i))return t;return}(i.writer,s,"a");r&&(0,o.setViewAttributes)(i.writer,n.getAttribute("htmlLinkAttributes"),r)},{priority:"low"})}),n.for("dataDowncast").add(t=>{t.on("attribute:linkHref:icon",(t,e,i)=>{if(!i.consumable.consume(e.item,"attribute:htmlLinkAttributes:icon"))return;const n=e.item,s=i.mapper.toViewElement(n),r=null==s?void 0:s.parent;(null==r?void 0:r.is("element","a"))&&(0,o.setViewAttributes)(i.writer,n.getAttribute("htmlLinkAttributes"),r)},{priority:"low"}),t.on("attribute:htmlAttributes:icon",(t,e,i)=>{if(!i.consumable.consume(e.item,t.name))return;const n=e.item,s=i.mapper.toViewElement(n);(null==s?void 0:s.is("element","i"))&&(0,o.setViewAttributes)(i.writer,e.attributeNewValue,s)},{priority:"low"})})}}e.default=r},(t,e,i)=>{"use strict";i.r(e),i.d(e,{getHtmlAttributeName:()=>Ji,mergeViewElementAttributes:()=>qi,modifyGhsAttribute:()=>Qi,removeViewAttributes:()=>Zi,setViewAttributes:()=>Ki,toPascalCase:()=>Yi,updateViewAttributes:()=>Gi});const n=function(){this.__data__=[],this.size=0};const o=function(t,e){return t===e||t!=t&&e!=e};const s=function(t,e){for(var i=t.length;i--;)if(o(t[i][0],e))return i;return-1};var r=Array.prototype.splice;const c=function(t){var e=this.__data__,i=s(e,t);return!(i<0)&&(i==e.length-1?e.pop():r.call(e,i,1),--this.size,!0)};const a=function(t){var e=this.__data__,i=s(e,t);return i<0?void 0:e[i][1]};const l=function(t){return s(this.__data__,t)>-1};const u=function(t,e){var i=this.__data__,n=s(i,t);return n<0?(++this.size,i.push([t,e])):i[n][1]=e,this};function h(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e-1&&t%1==0&&t-1&&t%1==0&&t<=9007199254740991};var jt={};jt["[object Float32Array]"]=jt["[object Float64Array]"]=jt["[object Int8Array]"]=jt["[object Int16Array]"]=jt["[object Int32Array]"]=jt["[object Uint8Array]"]=jt["[object Uint8ClampedArray]"]=jt["[object Uint16Array]"]=jt["[object Uint32Array]"]=!0,jt["[object Arguments]"]=jt["[object Array]"]=jt["[object ArrayBuffer]"]=jt["[object Boolean]"]=jt["[object DataView]"]=jt["[object Date]"]=jt["[object Error]"]=jt["[object Function]"]=jt["[object Map]"]=jt["[object Number]"]=jt["[object Object]"]=jt["[object RegExp]"]=jt["[object Set]"]=jt["[object String]"]=jt["[object WeakMap]"]=!1;const Tt=function(t){return(0,dt.A)(t)&&At(t.length)&&!!jt[(0,b.A)(t)]};const St=function(t){return function(e){return t(e)}};var Ot=i(29),Ft="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ct=Ft&&"object"==typeof module&&module&&!module.nodeType&&module,Dt=Ct&&Ct.exports===Ft&&Ot.A.process;const It=function(){try{var t=Ct&&Ct.require&&Ct.require("util").types;return t||Dt&&Dt.binding&&Dt.binding("util")}catch(t){}}();var Mt=It&&It.isTypedArray;const Et=Mt?St(Mt):Tt;var Lt=Object.prototype.hasOwnProperty;const Bt=function(t,e){var i=(0,pt.A)(t),n=!i&&bt(t),o=!i&&!n&&xt(t),s=!i&&!n&&!o&&Et(t),r=i||n||o||s,c=r?ht(t.length,String):[],a=c.length;for(var l in t)!e&&!Lt.call(t,l)||r&&("length"==l||o&&("offset"==l||"parent"==l)||s&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||kt(l,a))||c.push(l);return c};var Pt=Object.prototype;const Nt=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Pt)};const Ht=function(t,e){return function(i){return t(e(i))}};const Ut=Ht(Object.keys,Object);var Rt=Object.prototype.hasOwnProperty;const Wt=function(t){if(!Nt(t))return Ut(t);var e=[];for(var i in Object(t))Rt.call(t,i)&&"constructor"!=i&&e.push(i);return e};const $t=function(t){return null!=t&&At(t.length)&&!g(t)};const Gt=function(t){return $t(t)?Bt(t):Wt(t)};const Kt=function(t,e){return t&&ut(e,Gt(e),t)};const Zt=function(t){var e=[];if(null!=t)for(var i in Object(t))e.push(i);return e};var qt=Object.prototype.hasOwnProperty;const Qt=function(t){if(!p(t))return Zt(t);var e=Nt(t),i=[];for(var n in t)("constructor"!=n||!e&&qt.call(t,n))&&i.push(n);return i};const Yt=function(t){return $t(t)?Bt(t,!0):Qt(t)};const Jt=function(t,e){return t&&ut(e,Yt(e),t)};var Xt="object"==typeof exports&&exports&&!exports.nodeType&&exports,te=Xt&&"object"==typeof module&&module&&!module.nodeType&&module,ee=te&&te.exports===Xt?y.A.Buffer:void 0,ie=ee?ee.allocUnsafe:void 0;const ne=function(t,e){if(e)return t.slice();var i=t.length,n=ie?ie(i):new t.constructor(i);return t.copy(n),n};const oe=function(t,e){var i=-1,n=t.length;for(e||(e=Array(n));++i{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=i(2);class o extends n.Plugin{static get pluginName(){return"IconLinkEditing"}init(){const{editor:t}=this;t.plugins.has("LinkEditing")&&t.model.schema.extend("icon",{allowAttributes:["linkHref"]})}}e.default=o}],e={};function i(n){var o=e[n];if(void 0!==o)return o.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,i),s.exports}i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n=i(13);return n=n.default})()); \ No newline at end of file