{"version":3,"file":"ckeditor.js","mappings":"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","sources":["webpack://DecoupledEditor/webpack/universalModuleDefinition","webpack://DecoupledEditor/./node_modules/color-convert/conversions.js","webpack://DecoupledEditor/./node_modules/color-convert/index.js","webpack://DecoupledEditor/./node_modules/color-convert/route.js","webpack://DecoupledEditor/./node_modules/color-name/index.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/theme/code.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-block-quote/theme/blockquote.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-clipboard/theme/clipboard.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/theme/placeholder.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/theme/renderer.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/theme/findandreplace.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/theme/findandreplaceform.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/theme/fontsize.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-heading/theme/heading.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-highlight/theme/highlight.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-horizontal-line/theme/horizontalline.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/theme/datafilter.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/image.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imagecaption.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageinsert.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageinsertformrowview.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageresize.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imagestyle.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadicon.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadloader.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadprogress.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/textalternativeform.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/theme/link.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/theme/linkactions.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/theme/linkform.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/theme/linkimage.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/collapsible.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/documentlist.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/list.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/listproperties.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/liststyles.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/todolist.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaembed.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaembedediting.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaform.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-page-break/theme/pagebreak.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/theme/charactergrid.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/theme/characterinfo.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/theme/specialcharacters.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/theme/style.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/theme/stylegrid.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/theme/stylegroup.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/theme/stylepanel.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/colorinput.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/form.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/formrow.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/inserttable.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/table.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tablecaption.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tablecellproperties.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tablecolumnresize.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableediting.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableform.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableproperties.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableselection.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/button.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/switchbutton.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorgrid/colorgrid.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorpicker/colorpicker.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorselector/colorselector.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/dropdown.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/listdropdown.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/splitbutton.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/toolbardropdown.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/editorui/editorui.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/formheader/formheader.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/icon/icon.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/input/input.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/label/label.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/list/list.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonpanel.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonrotator.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/fakepanel.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/stickypanel.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/blocktoolbar.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/toolbar.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/tooltip.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/globals/globals.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/widget.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/widgetresize.css","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/widgettypearound.css","webpack://DecoupledEditor/./node_modules/css-loader/dist/runtime/api.js","webpack://DecoupledEditor/./node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack://DecoupledEditor/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://DecoupledEditor/webpack/bootstrap","webpack://DecoupledEditor/webpack/runtime/compat get default export","webpack://DecoupledEditor/webpack/runtime/define property getters","webpack://DecoupledEditor/webpack/runtime/hasOwnProperty shorthand","webpack://DecoupledEditor/webpack/runtime/nonce","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/env.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/fastdiff.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/diff.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/spy.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/eventinfo.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/uid.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/priorities.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/inserttopriorityarray.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/ckeditorerror.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/version.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/emittermixin.js","webpack://DecoupledEditor/./node_modules/lodash-es/isObject.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/observablemixin.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/count.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/comparearrays.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/isiterable.js","webpack://DecoupledEditor/./node_modules/lodash-es/_freeGlobal.js","webpack://DecoupledEditor/./node_modules/lodash-es/_root.js","webpack://DecoupledEditor/./node_modules/lodash-es/_Symbol.js","webpack://DecoupledEditor/./node_modules/lodash-es/_getRawTag.js","webpack://DecoupledEditor/./node_modules/lodash-es/_objectToString.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseGetTag.js","webpack://DecoupledEditor/./node_modules/lodash-es/isArray.js","webpack://DecoupledEditor/./node_modules/lodash-es/isObjectLike.js","webpack://DecoupledEditor/./node_modules/lodash-es/isString.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/createelement.js","webpack://DecoupledEditor/./node_modules/lodash-es/_overArg.js","webpack://DecoupledEditor/./node_modules/lodash-es/_getPrototype.js","webpack://DecoupledEditor/./node_modules/lodash-es/isPlainObject.js","webpack://DecoupledEditor/./node_modules/lodash-es/_listCacheClear.js","webpack://DecoupledEditor/./node_modules/lodash-es/eq.js","webpack://DecoupledEditor/./node_modules/lodash-es/_assocIndexOf.js","webpack://DecoupledEditor/./node_modules/lodash-es/_listCacheDelete.js","webpack://DecoupledEditor/./node_modules/lodash-es/_listCacheGet.js","webpack://DecoupledEditor/./node_modules/lodash-es/_listCacheHas.js","webpack://DecoupledEditor/./node_modules/lodash-es/_listCacheSet.js","webpack://DecoupledEditor/./node_modules/lodash-es/_ListCache.js","webpack://DecoupledEditor/./node_modules/lodash-es/_stackClear.js","webpack://DecoupledEditor/./node_modules/lodash-es/_stackDelete.js","webpack://DecoupledEditor/./node_modules/lodash-es/_stackGet.js","webpack://DecoupledEditor/./node_modules/lodash-es/_stackHas.js","webpack://DecoupledEditor/./node_modules/lodash-es/isFunction.js","webpack://DecoupledEditor/./node_modules/lodash-es/_coreJsData.js","webpack://DecoupledEditor/./node_modules/lodash-es/_isMasked.js","webpack://DecoupledEditor/./node_modules/lodash-es/_toSource.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseIsNative.js","webpack://DecoupledEditor/./node_modules/lodash-es/_getValue.js","webpack://DecoupledEditor/./node_modules/lodash-es/_getNative.js","webpack://DecoupledEditor/./node_modules/lodash-es/_Map.js","webpack://DecoupledEditor/./node_modules/lodash-es/_nativeCreate.js","webpack://DecoupledEditor/./node_modules/lodash-es/_hashClear.js","webpack://DecoupledEditor/./node_modules/lodash-es/_hashDelete.js","webpack://DecoupledEditor/./node_modules/lodash-es/_hashGet.js","webpack://DecoupledEditor/./node_modules/lodash-es/_hashHas.js","webpack://DecoupledEditor/./node_modules/lodash-es/_hashSet.js","webpack://DecoupledEditor/./node_modules/lodash-es/_Hash.js","webpack://DecoupledEditor/./node_modules/lodash-es/_mapCacheClear.js","webpack://DecoupledEditor/./node_modules/lodash-es/_isKeyable.js","webpack://DecoupledEditor/./node_modules/lodash-es/_getMapData.js","webpack://DecoupledEditor/./node_modules/lodash-es/_mapCacheDelete.js","webpack://DecoupledEditor/./node_modules/lodash-es/_mapCacheGet.js","webpack://DecoupledEditor/./node_modules/lodash-es/_mapCacheHas.js","webpack://DecoupledEditor/./node_modules/lodash-es/_mapCacheSet.js","webpack://DecoupledEditor/./node_modules/lodash-es/_MapCache.js","webpack://DecoupledEditor/./node_modules/lodash-es/_stackSet.js","webpack://DecoupledEditor/./node_modules/lodash-es/_Stack.js","webpack://DecoupledEditor/./node_modules/lodash-es/_arrayEach.js","webpack://DecoupledEditor/./node_modules/lodash-es/_defineProperty.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseAssignValue.js","webpack://DecoupledEditor/./node_modules/lodash-es/_assignValue.js","webpack://DecoupledEditor/./node_modules/lodash-es/_copyObject.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseTimes.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseIsArguments.js","webpack://DecoupledEditor/./node_modules/lodash-es/isArguments.js","webpack://DecoupledEditor/./node_modules/lodash-es/stubFalse.js","webpack://DecoupledEditor/./node_modules/lodash-es/isBuffer.js","webpack://DecoupledEditor/./node_modules/lodash-es/_isIndex.js","webpack://DecoupledEditor/./node_modules/lodash-es/isLength.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseUnary.js","webpack://DecoupledEditor/./node_modules/lodash-es/_nodeUtil.js","webpack://DecoupledEditor/./node_modules/lodash-es/isTypedArray.js","webpack://DecoupledEditor/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://DecoupledEditor/./node_modules/lodash-es/_isPrototype.js","webpack://DecoupledEditor/./node_modules/lodash-es/_nativeKeys.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseKeys.js","webpack://DecoupledEditor/./node_modules/lodash-es/isArrayLike.js","webpack://DecoupledEditor/./node_modules/lodash-es/keys.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseAssign.js","webpack://DecoupledEditor/./node_modules/lodash-es/_nativeKeysIn.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseKeysIn.js","webpack://DecoupledEditor/./node_modules/lodash-es/keysIn.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseAssignIn.js","webpack://DecoupledEditor/./node_modules/lodash-es/_cloneBuffer.js","webpack://DecoupledEditor/./node_modules/lodash-es/_copyArray.js","webpack://DecoupledEditor/./node_modules/lodash-es/_arrayFilter.js","webpack://DecoupledEditor/./node_modules/lodash-es/stubArray.js","webpack://DecoupledEditor/./node_modules/lodash-es/_getSymbols.js","webpack://DecoupledEditor/./node_modules/lodash-es/_copySymbols.js","webpack://DecoupledEditor/./node_modules/lodash-es/_arrayPush.js","webpack://DecoupledEditor/./node_modules/lodash-es/_getSymbolsIn.js","webpack://DecoupledEditor/./node_modules/lodash-es/_copySymbolsIn.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://DecoupledEditor/./node_modules/lodash-es/_getAllKeys.js","webpack://DecoupledEditor/./node_modules/lodash-es/_getAllKeysIn.js","webpack://DecoupledEditor/./node_modules/lodash-es/_DataView.js","webpack://DecoupledEditor/./node_modules/lodash-es/_Promise.js","webpack://DecoupledEditor/./node_modules/lodash-es/_Set.js","webpack://DecoupledEditor/./node_modules/lodash-es/_WeakMap.js","webpack://DecoupledEditor/./node_modules/lodash-es/_getTag.js","webpack://DecoupledEditor/./node_modules/lodash-es/_initCloneArray.js","webpack://DecoupledEditor/./node_modules/lodash-es/_Uint8Array.js","webpack://DecoupledEditor/./node_modules/lodash-es/_cloneArrayBuffer.js","webpack://DecoupledEditor/./node_modules/lodash-es/_cloneDataView.js","webpack://DecoupledEditor/./node_modules/lodash-es/_cloneRegExp.js","webpack://DecoupledEditor/./node_modules/lodash-es/_cloneSymbol.js","webpack://DecoupledEditor/./node_modules/lodash-es/_cloneTypedArray.js","webpack://DecoupledEditor/./node_modules/lodash-es/_initCloneByTag.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseCreate.js","webpack://DecoupledEditor/./node_modules/lodash-es/_initCloneObject.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseIsMap.js","webpack://DecoupledEditor/./node_modules/lodash-es/isMap.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseIsSet.js","webpack://DecoupledEditor/./node_modules/lodash-es/isSet.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseClone.js","webpack://DecoupledEditor/./node_modules/lodash-es/cloneDeepWith.js","webpack://DecoupledEditor/./node_modules/lodash-es/isElement.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/config.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/isnode.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/iswindow.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/emittermixin.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/global.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/istext.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/isrange.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/getborderwidths.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/rect.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/resizeobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/setdatainelement.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/tounit.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/indexof.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/insertat.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/iscomment.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/isvalidattributename.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/isvisible.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/position.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/getpositionedancestor.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/remove.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/scroll.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/keyboard.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/toarray.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/translation-service.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/language.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/locale.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/collection.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/first.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/focustracker.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/keystrokehandler.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/tomap.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/objecttomap.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/delay.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/unicode.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/src/plugin.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/src/command.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/src/multicommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/src/plugincollection.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/src/context.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/src/contextplugin.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/theme/placeholder.css?2387","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/placeholder.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/typecheckable.js","webpack://DecoupledEditor/./node_modules/lodash-es/clone.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/node.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/text.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/textproxy.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/matcher.js","webpack://DecoupledEditor/./node_modules/lodash-es/isSymbol.js","webpack://DecoupledEditor/./node_modules/lodash-es/_isKey.js","webpack://DecoupledEditor/./node_modules/lodash-es/memoize.js","webpack://DecoupledEditor/./node_modules/lodash-es/_memoizeCapped.js","webpack://DecoupledEditor/./node_modules/lodash-es/_stringToPath.js","webpack://DecoupledEditor/./node_modules/lodash-es/_arrayMap.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseToString.js","webpack://DecoupledEditor/./node_modules/lodash-es/toString.js","webpack://DecoupledEditor/./node_modules/lodash-es/_castPath.js","webpack://DecoupledEditor/./node_modules/lodash-es/last.js","webpack://DecoupledEditor/./node_modules/lodash-es/_toKey.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseGet.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseSlice.js","webpack://DecoupledEditor/./node_modules/lodash-es/_parent.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseUnset.js","webpack://DecoupledEditor/./node_modules/lodash-es/unset.js","webpack://DecoupledEditor/./node_modules/lodash-es/get.js","webpack://DecoupledEditor/./node_modules/lodash-es/_assignMergeValue.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseFor.js","webpack://DecoupledEditor/./node_modules/lodash-es/_createBaseFor.js","webpack://DecoupledEditor/./node_modules/lodash-es/isArrayLikeObject.js","webpack://DecoupledEditor/./node_modules/lodash-es/_safeGet.js","webpack://DecoupledEditor/./node_modules/lodash-es/toPlainObject.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseMergeDeep.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseMerge.js","webpack://DecoupledEditor/./node_modules/lodash-es/identity.js","webpack://DecoupledEditor/./node_modules/lodash-es/_apply.js","webpack://DecoupledEditor/./node_modules/lodash-es/_overRest.js","webpack://DecoupledEditor/./node_modules/lodash-es/constant.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseSetToString.js","webpack://DecoupledEditor/./node_modules/lodash-es/_shortOut.js","webpack://DecoupledEditor/./node_modules/lodash-es/_setToString.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseRest.js","webpack://DecoupledEditor/./node_modules/lodash-es/_isIterateeCall.js","webpack://DecoupledEditor/./node_modules/lodash-es/_createAssigner.js","webpack://DecoupledEditor/./node_modules/lodash-es/merge.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseSet.js","webpack://DecoupledEditor/./node_modules/lodash-es/set.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/stylesmap.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/element.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/containerelement.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/editableelement.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/rooteditableelement.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/treewalker.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/position.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/range.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/selection.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/documentselection.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/bubblingeventinfo.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/bubblingemittermixin.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/document.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/attributeelement.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/emptyelement.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/uielement.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/rawelement.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/documentfragment.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/downcastwriter.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/filler.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/theme/renderer.css?b595","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/renderer.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/domconverter.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/getancestors.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/observer.js","webpack://DecoupledEditor/./node_modules/lodash-es/assignIn.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/domeventdata.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/domeventobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/keyobserver.js","webpack://DecoupledEditor/./node_modules/lodash-es/now.js","webpack://DecoupledEditor/./node_modules/lodash-es/_trimmedEndIndex.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseTrim.js","webpack://DecoupledEditor/./node_modules/lodash-es/toNumber.js","webpack://DecoupledEditor/./node_modules/lodash-es/debounce.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/fakeselectionobserver.js","webpack://DecoupledEditor/./node_modules/lodash-es/_setCacheAdd.js","webpack://DecoupledEditor/./node_modules/lodash-es/_setCacheHas.js","webpack://DecoupledEditor/./node_modules/lodash-es/_SetCache.js","webpack://DecoupledEditor/./node_modules/lodash-es/_arraySome.js","webpack://DecoupledEditor/./node_modules/lodash-es/_cacheHas.js","webpack://DecoupledEditor/./node_modules/lodash-es/_equalArrays.js","webpack://DecoupledEditor/./node_modules/lodash-es/_mapToArray.js","webpack://DecoupledEditor/./node_modules/lodash-es/_setToArray.js","webpack://DecoupledEditor/./node_modules/lodash-es/_equalByTag.js","webpack://DecoupledEditor/./node_modules/lodash-es/_equalObjects.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseIsEqualDeep.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseIsEqual.js","webpack://DecoupledEditor/./node_modules/lodash-es/isEqualWith.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/mutationobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/focusobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/selectionobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/compositionobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/datatransfer.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/inputobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/arrowkeysobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/tabobserver.js","webpack://DecoupledEditor/./node_modules/lodash-es/cloneDeep.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/view.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/typecheckable.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/node.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/nodelist.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/splicearray.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/text.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/textproxy.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/element.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/treewalker.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/position.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/range.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/mapper.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/modelconsumable.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/downcastdispatcher.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/selection.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/liverange.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/documentselection.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/conversionhelpers.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/downcasthelpers.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/utils/autoparagraphing.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/upcasthelpers.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/utils/selection-post-fixer.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/controller/editingcontroller.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/viewconsumable.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/schema.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/upcastdispatcher.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/dataprocessor/basichtmlwriter.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/dataprocessor/htmldataprocessor.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/controller/datacontroller.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/conversion.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/operation.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/moveoperation.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/insertoperation.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/splitoperation.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/mergeoperation.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/markeroperation.js","webpack://DecoupledEditor/./node_modules/lodash-es/isEqual.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/attributeoperation.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/nooperation.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/renameoperation.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/rootattributeoperation.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/rootoperation.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/operationfactory.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/transform.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/liveposition.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/batch.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/differ.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/history.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/rootelement.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/document.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/markercollection.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/detachoperation.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/documentfragment.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/writer.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/utils/deletecontent.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/utils/getselectedcontent.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/utils/insertcontent.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/utils/findoptimalinsertionrange.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/utils/insertobject.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/utils/modifyselection.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/model.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/clickobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/mouseobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/upcastwriter.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/styles/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/styles/background.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/styles/border.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/styles/margin.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/styles/padding.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/src/commandcollection.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/src/editingkeystrokehandler.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/src/editor/editor.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/src/editor/utils/dataapimixin.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/src/editor/utils/elementapimixin.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/src/pendingactions.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/cancel.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/check.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/eraser.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/src/index.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/bold.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/caption.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/cog.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/image.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/low-vision.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/importexport.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/paragraph.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/plus.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/text.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/align-bottom.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/align-middle.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/align-top.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/align-left.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/align-center.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/align-right.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/align-justify.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-inline-left.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-center.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-inline-right.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-full-width.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-inline.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-left.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-right.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-size-full.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-size-large.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-size-small.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-size-medium.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/pencil.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/pilcrow.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/quote.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/three-vertical-dots.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-watchdog/src/watchdog.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-watchdog/src/utils/getsubnodes.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-watchdog/src/utils/areconnectedthroughproperties.js","webpack://DecoupledEditor/./node_modules/lodash-es/throttle.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-watchdog/src/editorwatchdog.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-watchdog/src/contextwatchdog.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/bindings/clickoutsidehandler.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/bindings/csstransitiondisablermixin.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/bindings/submithandler.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/bindings/addkeyboardhandlingforgrid.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/viewcollection.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/globals/globals.css?88bf","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/view.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/template.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editorui/bodycollection.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/icon/icon.css?7842","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/icon/iconview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/button.css?25b6","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/button/buttonview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/switchbutton.css?3d85","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/button/switchbuttonview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorgrid/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorgrid/colortileview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/icons/color-tile-check.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorgrid/colorgrid.css?5b3f","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorgrid/colorgridview.js","webpack://DecoupledEditor/./node_modules/color-parse/index.mjs","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorpicker/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/label/label.css?491e","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/label/labelview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css?9a70","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/labeledfield/labeledfieldview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/input/input.css?6d05","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/input/inputview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/inputtext/inputtextview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/inputnumber/inputnumberview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/dropdownpanelview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/dropdown.css?6264","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/dropdownview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/icons/dropdown-arrow.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/button/dropdownbuttonview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/focuscycler.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/toolbar/toolbarseparatorview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/toolbar/toolbarlinebreakview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/toolbar.css?b0b9","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/toolbar/toolbarview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/bindings/preventdefault.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/toolbar/normalizetoolbarconfig.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/list/list.css?e77b","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/list/listview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/list/listitemview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/list/listseparatorview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/splitbutton.css?2ea3","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/button/splitbuttonview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/toolbardropdown.css?dd20","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/listdropdown.css?2e03","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/labeledfield/utils.js","webpack://DecoupledEditor/./node_modules/vanilla-colorful/lib/utils/math.js","webpack://DecoupledEditor/./node_modules/vanilla-colorful/lib/utils/convert.js","webpack://DecoupledEditor/./node_modules/vanilla-colorful/lib/utils/compare.js","webpack://DecoupledEditor/./node_modules/vanilla-colorful/lib/utils/dom.js","webpack://DecoupledEditor/./node_modules/vanilla-colorful/lib/components/slider.js","webpack://DecoupledEditor/./node_modules/vanilla-colorful/lib/components/hue.js","webpack://DecoupledEditor/./node_modules/vanilla-colorful/lib/components/saturation.js","webpack://DecoupledEditor/./node_modules/vanilla-colorful/lib/styles/color-picker.js","webpack://DecoupledEditor/./node_modules/vanilla-colorful/lib/components/color-picker.js","webpack://DecoupledEditor/./node_modules/vanilla-colorful/lib/styles/hue.js","webpack://DecoupledEditor/./node_modules/vanilla-colorful/lib/styles/saturation.js","webpack://DecoupledEditor/./node_modules/vanilla-colorful/lib/entrypoints/hex.js","webpack://DecoupledEditor/./node_modules/vanilla-colorful/hex-color-picker.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorpicker/colorpicker.css?f94d","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorpicker/colorpickerview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorselector/documentcolorcollection.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/icons/color-palette.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorselector/colorgridsfragmentview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorselector/colorpickerfragmentview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorselector/colorselector.css?703d","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorselector/colorselectorview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/componentfactory.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonpanel.css?7885","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/panel/balloon/balloonpanelview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/tooltip.css?a734","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/tooltipmanager.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/icons/project-logo.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editorui/poweredby.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/verifylicense.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/findclosestscrollableancestor.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editorui/editorui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/editorui/editorui.css?fa00","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editorui/editoruiview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editableui/editableuiview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editableui/inline/inlineeditableuiview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/formheader/formheader.css?d25b","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/formheader/formheaderview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/notification/notification.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/model.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/icons/previous-arrow.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonrotator.css?9fe6","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/fakepanel.css?8e3e","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/panel/balloon/contextualballoon.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/icons/next-arrow.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/stickypanel.css?4e4f","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/panel/sticky/stickypanelview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/toolbar/balloon/balloontoolbar.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/blocktoolbar.css?856d","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/toolbar/block/blockbuttonview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/src/toolbar/block/blocktoolbar.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-editor-decoupled/src/decouplededitorui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-editor-decoupled/src/decouplededitoruiview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-editor-decoupled/src/decouplededitor.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/getdatafromelement.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-core/src/editor/utils/securesourceelement.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-alignment/src/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-alignment/src/alignmentcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-alignment/src/alignmentediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-alignment/src/alignmentui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-typing/src/utils/changebuffer.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-typing/src/inserttextcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-typing/src/inserttextobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-typing/src/input.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-typing/src/deletecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-typing/src/deleteobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-typing/src/delete.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-typing/src/typing.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-typing/src/utils/getlasttextline.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-typing/src/textwatcher.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-typing/src/twostepcaretmovement.js","webpack://DecoupledEditor/./node_modules/lodash-es/escapeRegExp.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-typing/src/texttransformation.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-typing/src/utils/findattributerange.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-typing/src/utils/inlinehighlight.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-autoformat/src/blockautoformatediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-autoformat/src/inlineautoformatediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-autoformat/src/autoformat.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/attributecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/bold/boldediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/bold/boldui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/code/codeediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/theme/code.css?5c51","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/code/codeui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/theme/icons/code.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/italic/italicediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/theme/icons/italic.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/italic/italicui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/strikethrough/strikethroughediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/theme/icons/strikethrough.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/strikethrough/strikethroughui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/subscript/subscriptediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/theme/icons/subscript.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/subscript/subscriptui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/superscript/superscriptediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/theme/icons/superscript.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/superscript/superscriptui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/underline/underlineediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/theme/icons/underline.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/underline/underlineui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-enter/src/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-enter/src/entercommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-enter/src/enterobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-enter/src/enter.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-enter/src/shiftentercommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-enter/src/shiftenter.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-block-quote/src/blockquotecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-block-quote/src/blockquoteediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-block-quote/theme/blockquote.css?4c87","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-block-quote/src/blockquoteui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-cloud-services/src/token/token.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-cloud-services/src/uploadgateway/fileuploader.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-cloud-services/src/uploadgateway/uploadgateway.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-cloud-services/src/cloudservicescore.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/clipboardobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/utils/viewtoplaintext.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/clipboardpipeline.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/utils/normalizeclipboarddata.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/utils/plaintexttohtml.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/src/highlightstack.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/icons/drag-handle.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/src/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widgettypearound/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/widgettypearound.css?c0dd","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widgettypearound/widgettypearound.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/icons/return-arrow.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/src/verticalnavigation.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/widget.css?ec5f","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widget.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widgettoolbarrepository.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widgetresize/resizerstate.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widgetresize/sizeview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widgetresize/resizer.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/widgetresize.css?049a","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widgetresize.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-clipboard/theme/clipboard.css?7ddd","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/dragdrop.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/pasteplaintext.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/clipboard.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/lineview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-select-all/src/selectallcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-select-all/src/selectallediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-select-all/src/selectallui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-select-all/theme/icons/select-all.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-select-all/src/selectall.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-undo/src/basecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-undo/src/undocommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-undo/src/redocommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-undo/src/undoediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-undo/theme/icons/undo.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-undo/theme/icons/redo.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-undo/src/undoui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-undo/src/undo.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css?1157","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/theme/findandreplaceform.css?b6df","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/src/ui/findandreplaceformview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/src/findandreplaceui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/theme/icons/find-replace.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/src/findcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/src/replacecommandbase.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/src/replacecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/src/replaceallcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/src/findnextcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/src/findpreviouscommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/src/findandreplacestate.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/src/findandreplaceutils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/theme/findandreplace.css?f494","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/src/findandreplaceediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontfamily/fontfamilycommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontfamily/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontfamily/fontfamilyediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontfamily/fontfamilyui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/theme/icons/font-family.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontsize/fontsizecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontsize/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontsize/fontsizeediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/theme/fontsize.css?2103","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontsize/fontsizeui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/theme/icons/font-size.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontcolor/fontcolorcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontcolor/fontcolorediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/ui/colorui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontcolor/fontcolorui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/theme/icons/font-color.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/theme/icons/font-background.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paragraph/src/paragraphcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paragraph/src/insertparagraphcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paragraph/src/paragraph.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-heading/src/headingcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-heading/src/headingediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-heading/theme/heading.css?6332","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-heading/src/headingui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-heading/src/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-heading/src/title.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-highlight/src/highlightcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-highlight/src/highlightediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-highlight/theme/highlight.css?9e88","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-highlight/src/highlightui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-highlight/theme/icons/marker.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-highlight/theme/icons/pen.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-horizontal-line/src/horizontallinecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-horizontal-line/theme/horizontalline.css?834d","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-horizontal-line/src/horizontallineediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-horizontal-line/src/horizontallineui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-horizontal-line/theme/icons/horizontalline.svg","webpack://DecoupledEditor/./node_modules/lodash-es/_arrayReduce.js","webpack://DecoupledEditor/./node_modules/lodash-es/_deburrLetter.js","webpack://DecoupledEditor/./node_modules/lodash-es/_basePropertyOf.js","webpack://DecoupledEditor/./node_modules/lodash-es/deburr.js","webpack://DecoupledEditor/./node_modules/lodash-es/_asciiWords.js","webpack://DecoupledEditor/./node_modules/lodash-es/_hasUnicodeWord.js","webpack://DecoupledEditor/./node_modules/lodash-es/_unicodeWords.js","webpack://DecoupledEditor/./node_modules/lodash-es/words.js","webpack://DecoupledEditor/./node_modules/lodash-es/_createCompounder.js","webpack://DecoupledEditor/./node_modules/lodash-es/_castSlice.js","webpack://DecoupledEditor/./node_modules/lodash-es/_hasUnicode.js","webpack://DecoupledEditor/./node_modules/lodash-es/_asciiToArray.js","webpack://DecoupledEditor/./node_modules/lodash-es/_unicodeToArray.js","webpack://DecoupledEditor/./node_modules/lodash-es/_stringToArray.js","webpack://DecoupledEditor/./node_modules/lodash-es/upperFirst.js","webpack://DecoupledEditor/./node_modules/lodash-es/_createCaseFirst.js","webpack://DecoupledEditor/./node_modules/lodash-es/startCase.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/converters.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/schemadefinitions.js","webpack://DecoupledEditor/./node_modules/lodash-es/mergeWith.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/dataschema.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseFindIndex.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseIsNaN.js","webpack://DecoupledEditor/./node_modules/lodash-es/_strictIndexOf.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseIndexOf.js","webpack://DecoupledEditor/./node_modules/lodash-es/_baseIndexOfWith.js","webpack://DecoupledEditor/./node_modules/lodash-es/_basePullAll.js","webpack://DecoupledEditor/./node_modules/lodash-es/pull.js","webpack://DecoupledEditor/./node_modules/lodash-es/pullAll.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/theme/datafilter.css?af9f","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/datafilter.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/integrations/codeblock.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/integrations/dualcontent.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/integrations/heading.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/integrations/integrationutils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/integrations/image.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/integrations/mediaembed.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/integrations/script.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/integrations/table.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/integrations/style.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/integrations/documentlist.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/integrations/customelement.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-html-support/src/generalhtmlsupport.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageutils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/autoimage.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagetextalternative/imagetextalternativecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagetextalternative/imagetextalternativeediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/textalternativeform.css?d987","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagetextalternative/ui/textalternativeformview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/ui/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagetextalternative/imagetextalternativeui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagetextalternative.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/converters.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/imageloadobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/insertimagecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/replaceimagesourcecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/imageediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/imagetypecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/imageblockediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/image.css?6ac8","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageblock.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/imageinlineediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageinline.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagecaption/imagecaptionutils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagecaption/toggleimagecaptioncommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagecaption/imagecaptionediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagecaption/imagecaptionui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imagecaption.css?cb5b","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-upload/src/filereader.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-upload/src/filerepository.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-upload/src/ui/filedialogbuttonview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-upload/src/adapters/base64uploadadapter.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageupload/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageupload/imageuploadui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadprogress.css?d28e","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadicon.css?8bec","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadloader.css?779f","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageupload/imageuploadprogress.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageupload/uploadimagecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageupload/imageuploadediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageupload.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageinsertformrowview.css?c623","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageinsert/ui/imageinsertformrowview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageinsert.css?df59","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageinsert/ui/imageinsertpanelview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageinsert/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageinsert/imageinsertui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageinsertviaurl.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize/resizeimagecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize/imageresizeediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize/imageresizebuttons.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize/imageresizehandles.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageresize.css?0b44","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagestyle/imagestylecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagestyle/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagestyle/converters.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagestyle/imagestyleediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imagestyle.css?29db","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagestyle/imagestyleui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-indent/src/indentediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-indent/theme/icons/indent.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-indent/theme/icons/outdent.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-indent/src/indentui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-indent/src/indentblockcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-indent/src/indentcommandbehavior/indentusingoffset.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-indent/src/indentcommandbehavior/indentusingclasses.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-indent/src/indentblock.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/src/utils/automaticdecorators.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/src/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/src/linkcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/src/unlinkcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/src/utils/manualdecorator.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/theme/link.css?2820","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/src/linkediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/theme/linkform.css?6af2","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/src/ui/linkformview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/theme/linkactions.css?80dc","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/src/ui/linkactionsview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/theme/icons/unlink.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/theme/icons/link.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/src/linkui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/src/autolink.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/src/linkimageediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/src/linkimageui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/theme/linkimage.css?fb5a","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/documentlist/utils/listwalker.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/documentlist.css?3b45","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/list.css?1143","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/icons/numberedlist.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/icons/bulletedlist.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/listui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/documentlistproperties/utils/style.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/collapsible.css?e6cc","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/listproperties/ui/collapsibleview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/listproperties.css?f12a","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/listproperties/ui/listpropertiesview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/liststyles.css?2106","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/listproperties/listpropertiesui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/icons/liststyledisc.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/icons/liststylecircle.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/icons/liststylesquare.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/icons/liststyledecimal.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/icons/liststyledecimalleadingzero.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/icons/liststylelowerroman.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/icons/liststyleupperroman.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/icons/liststylelowerlatin.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/icons/liststyleupperlatin.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/indentcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/listcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/listutils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/converters.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/listediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/listproperties/liststylecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/listproperties/listreversedcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/listproperties/liststartcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/listproperties/listpropertiesediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/todolist/checktodolistcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/todolist/todolistconverters.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/todolist/todolistediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/todolist/todolistui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/icons/todolist.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/theme/todolist.css?5a5c","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/src/converters.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/src/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/src/mediaembedcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/src/mediaregistry.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/theme/icons/media-placeholder.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaembedediting.css?2e22","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/src/mediaembedediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/src/automediaembed.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaform.css?7cb7","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/src/ui/mediaformview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/src/mediaembedui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/theme/icons/media.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaembed.css?9c55","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-page-break/src/pagebreakcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-page-break/theme/pagebreak.css?4649","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-page-break/src/pagebreakediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-page-break/src/pagebreakui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-page-break/theme/icons/pagebreak.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/list.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/image.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/normalizers/mswordnormalizer.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/br.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/normalizers/googledocsnormalizer.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removeboldwrapper.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/normalizers/googlesheetsnormalizer.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removegooglesheetstag.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removexmlns.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removeinvalidtablewidth.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removestyleblock.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/space.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/parse.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-remove-format/theme/icons/remove-format.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-remove-format/src/removeformatui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-remove-format/src/removeformatcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-remove-format/src/removeformatediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/src/ui/specialcharactersnavigationview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/theme/charactergrid.css?86a1","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/src/ui/charactergridview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/theme/characterinfo.css?b263","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/src/ui/characterinfoview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/src/ui/specialcharactersview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/theme/specialcharacters.css?b0ee","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/src/specialcharacters.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/src/specialcharactersarrows.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/src/specialcharacterstext.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/src/specialcharactersmathematical.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/src/specialcharacterslatin.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/src/specialcharacterscurrency.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/src/ui/stylegridbuttonview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/theme/stylegrid.css?c256","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/src/ui/stylegridview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/theme/stylegroup.css?50de","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/src/ui/stylegroupview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/theme/stylepanel.css?c601","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/src/ui/stylepanelview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/src/styleutils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/theme/style.css?03e7","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/src/styleui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/src/stylecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/src/integrations/documentlist.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/src/integrations/table.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/src/integrations/link.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/src/styleediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/converters/tableproperties.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/utils/common.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/converters/upcasttable.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablewalker.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/converters/downcast.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/inserttablecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/insertrowcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/insertcolumncommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/splitcellcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/utils/structure.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/mergecellcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/removerowcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/removecolumncommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/setheaderrowcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/setheadercolumncommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecolumnresize/constants.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecolumnresize/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableutils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/mergecellscommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/selectrowcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/selectcolumncommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/converters/table-layout-post-fixer.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/converters/table-cell-paragraph-post-fixer.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/converters/table-cell-refresh-handler.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableediting.css?85df","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/converters/table-headings-refresh-handler.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/inserttable.css?d86f","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/ui/inserttableview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/icons/table.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/icons/table-column.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/icons/table-row.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/icons/table-merge-cell.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableselection.css?215b","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableselection.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableclipboard.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablekeyboard.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablemouse/mouseeventsobserver.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablemouse.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/table.css?7804","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/utils/ui/widget.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/colorinput.css?8e6e","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/ui/colorinputview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/utils/ui/table-properties.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/formrow.css?80d9","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/ui/formrowview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/form.css?186b","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableform.css?1788","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tablecellproperties.css?2c07","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/ui/tablecellpropertiesview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/utils/ui/contextualballoon.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/utils/table-properties.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/tablecellpropertiesui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/icons/table-cell-properties.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellpropertycommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellwidth/commands/tablecellwidthcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellwidth/tablecellwidthediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellpaddingcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellheightcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellverticalalignmentcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellborderstylecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellbordercolorcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellborderwidthcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/tablecellpropertiesediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tablepropertycommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tablebackgroundcolorcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tablebordercolorcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tableborderstylecommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tableborderwidthcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tablewidthcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tableheightcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tablealignmentcommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/tablepropertiesediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableproperties.css?fd8b","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/ui/tablepropertiesview.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/icons/table-properties.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/tablepropertiesui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/converters/table-caption-post-fixer.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecaption/utils.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecaption/toggletablecaptioncommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecaption/tablecaptionediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecaption/tablecaptionui.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tablecaption.css?54bb","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecolumnresize/tablewidthscommand.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecolumnresize/converters.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecolumnresize/tablecolumnresizeediting.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tablecolumnresize.css?7d54","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-word-count/src/utils.js","webpack://DecoupledEditor/./src/editor-util.ts","webpack://DecoupledEditor/./src/ckeditor.ts","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-alignment/src/alignment.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-autosave/src/autosave.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-block-quote/src/blockquote.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/bold.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-cloud-services/src/cloudservices.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-essentials/src/essentials.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-find-and-replace/src/findandreplace.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontcolor.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontfamily.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-font/src/fontsize.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-heading/src/heading.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-highlight/src/highlight.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-horizontal-line/src/horizontalline.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/image.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagecaption.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageinsert.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagestyle.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagetoolbar.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-indent/src/indent.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/italic.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/src/link.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-link/src/linkimage.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/list.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/listproperties.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/src/mediaembed.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-media-embed/src/mediaembedtoolbar.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-page-break/src/pagebreak.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/pastefromoffice.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-remove-format/src/removeformat.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/theme/icons/specialcharacters.svg","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-special-characters/src/specialcharactersessentials.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/strikethrough.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-style/src/style.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/subscript.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/superscript.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/table.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecaption.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecolumnresize.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-table/src/tabletoolbar.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-list/src/todolist.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/underline.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/code.js","webpack://DecoupledEditor/./node_modules/@ckeditor/ckeditor5-word-count/src/wordcount.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DecoupledEditor\"] = factory();\n\telse\n\t\troot[\"DecoupledEditor\"] = factory();\n})(self, () => {\nreturn ","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content code{background-color:hsla(0,0%,78%,.3);border-radius:2px;padding:.15em}.ck.ck-editor__editable .ck-code_selected{background-color:hsla(0,0%,78%,.5)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-basic-styles/theme/code.css\"],\"names\":[],\"mappings\":\"AAKA,iBACC,kCAAuC,CAEvC,iBAAkB,CADlB,aAED,CAEA,0CACC,kCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content code {\\n\\tbackground-color: hsla(0, 0%, 78%, 0.3);\\n\\tpadding: .15em;\\n\\tborder-radius: 2px;\\n}\\n\\n.ck.ck-editor__editable .ck-code_selected {\\n\\tbackground-color: hsla(0, 0%, 78%, 0.5);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content blockquote{border-left:5px solid #ccc;font-style:italic;margin-left:0;margin-right:0;overflow:hidden;padding-left:1.5em;padding-right:1.5em}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-block-quote/theme/blockquote.css\"],\"names\":[],\"mappings\":\"AAKA,uBAWC,0BAAsC,CADtC,iBAAkB,CAFlB,aAAc,CACd,cAAe,CAPf,eAAgB,CAIhB,kBAAmB,CADnB,mBAOD,CAEA,gCACC,aAAc,CACd,2BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content blockquote {\\n\\t/* See #12 */\\n\\toverflow: hidden;\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */\\n\\tpadding-right: 1.5em;\\n\\tpadding-left: 1.5em;\\n\\n\\tmargin-left: 0;\\n\\tmargin-right: 0;\\n\\tfont-style: italic;\\n\\tborder-left: solid 5px hsl(0, 0%, 80%);\\n}\\n\\n.ck-content[dir=\\\"rtl\\\"] blockquote {\\n\\tborder-left: 0;\\n\\tborder-right: solid 5px hsl(0, 0%, 80%);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-editor__editable .ck.ck-clipboard-drop-target-position{display:inline;pointer-events:none;position:relative}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{position:absolute;width:0}.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__selection-handle,.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__type-around{display:none}.ck.ck-clipboard-drop-target-line{pointer-events:none;position:absolute}:root{--ck-clipboard-drop-target-dot-width:12px;--ck-clipboard-drop-target-dot-height:8px;--ck-clipboard-drop-target-color:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);bottom:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);margin-left:-1px;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span:after{border-color:var(--ck-clipboard-drop-target-color) transparent transparent transparent;border-style:solid;border-width:calc(var(--ck-clipboard-drop-target-dot-height)) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5);content:\\\"\\\";display:block;height:0;left:50%;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);transform:translateX(-50%);width:0}.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range{outline:var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color)!important}.ck.ck-editor__editable .ck-widget:-webkit-drag{zoom:.6;outline:none!important}.ck.ck-clipboard-drop-target-line{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);height:0;margin-top:-1px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-clipboard/theme/clipboard.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-clipboard/clipboard.css\"],\"names\":[],\"mappings\":\"AASC,8DACC,cAAe,CAEf,mBAAoB,CADpB,iBAOD,CAJC,mEACC,iBAAkB,CAClB,OACD,CAWA,qJACC,YACD,CAIF,kCAEC,mBAAoB,CADpB,iBAED,CChCA,MACC,yCAA0C,CAC1C,yCAA0C,CAC1C,6DACD,CAOE,mEAIC,gDAAiD,CADjD,sDAAuD,CAFvD,2DAA8D,CAI9D,gBAAiB,CAHjB,wDAqBD,CAfC,yEAWC,sFAAuF,CAEvF,kBAAmB,CADnB,qKAA0K,CAX1K,UAAW,CAIX,aAAc,CAFd,QAAS,CAIT,QAAS,CADT,iBAAkB,CAElB,wDAA2D,CAE3D,0BAA2B,CAR3B,OAYD,CAOF,kEACC,gGACD,CAKA,gDACC,OAAS,CACT,sBACD,CAGD,kCAGC,gDAAiD,CADjD,sDAAuD,CADvD,QAAS,CAGT,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-editor__editable {\\n\\t/*\\n\\t * Vertical drop target (in text).\\n\\t */\\n\\t& .ck.ck-clipboard-drop-target-position {\\n\\t\\tdisplay: inline;\\n\\t\\tposition: relative;\\n\\t\\tpointer-events: none;\\n\\n\\t\\t& span {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\twidth: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget being dragged (its preview).\\n\\t */\\n\\t& .ck-widget:-webkit-drag {\\n\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\n\\t\\t& > .ck-widget__type-around {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-clipboard-drop-target-line {\\n\\tposition: absolute;\\n\\tpointer-events: none;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-clipboard-drop-target-dot-width: 12px;\\n\\t--ck-clipboard-drop-target-dot-height: 8px;\\n\\t--ck-clipboard-drop-target-color: var(--ck-color-focus-border)\\n}\\n\\n.ck.ck-editor__editable {\\n\\t/*\\n\\t * Vertical drop target (in text).\\n\\t */\\n\\t& .ck.ck-clipboard-drop-target-position {\\n\\t\\t& span {\\n\\t\\t\\tbottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\\n\\t\\t\\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\\n\\t\\t\\tborder: 1px solid var(--ck-clipboard-drop-target-color);\\n\\t\\t\\tbackground: var(--ck-clipboard-drop-target-color);\\n\\t\\t\\tmargin-left: -1px;\\n\\n\\t\\t\\t/* The triangle above the marker */\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\t\\twidth: 0;\\n\\t\\t\\t\\theight: 0;\\n\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tleft: 50%;\\n\\t\\t\\t\\ttop: calc(var(--ck-clipboard-drop-target-dot-height) * -.5);\\n\\n\\t\\t\\t\\ttransform: translateX(-50%);\\n\\t\\t\\t\\tborder-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;\\n\\t\\t\\t\\tborder-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));\\n\\t\\t\\t\\tborder-style: solid;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget that it a drop target.\\n\\t */\\n\\t& .ck-widget.ck-clipboard-drop-target-range {\\n\\t\\toutline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget being dragged (its preview).\\n\\t */\\n\\t& .ck-widget:-webkit-drag {\\n\\t\\tzoom: 0.6;\\n\\t\\toutline: none !important;\\n\\t}\\n}\\n\\n.ck.ck-clipboard-drop-target-line {\\n\\theight: 0;\\n\\tborder: 1px solid var(--ck-clipboard-drop-target-color);\\n\\tbackground: var(--ck-clipboard-drop-target-color);\\n\\tmargin-top: -1px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-placeholder,.ck.ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{content:attr(data-placeholder);left:0;pointer-events:none;position:absolute;right:0}.ck.ck-read-only .ck-placeholder:before{display:none}.ck.ck-reset_all .ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{color:var(--ck-color-engine-placeholder-text);cursor:text}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-engine/theme/placeholder.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-engine/placeholder.css\"],\"names\":[],\"mappings\":\"AAMA,uCAEC,iBAWD,CATC,qDAIC,8BAA+B,CAF/B,MAAO,CAKP,mBAAoB,CANpB,iBAAkB,CAElB,OAKD,CAKA,wCACC,YACD,CAQD,iCACC,iBACD,CC5BC,qDAEC,6CAA8C,CAD9C,WAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* See ckeditor/ckeditor5#936. */\\n.ck.ck-placeholder,\\n.ck .ck-placeholder {\\n\\tposition: relative;\\n\\n\\t&::before {\\n\\t\\tposition: absolute;\\n\\t\\tleft: 0;\\n\\t\\tright: 0;\\n\\t\\tcontent: attr(data-placeholder);\\n\\n\\t\\t/* See ckeditor/ckeditor5#469. */\\n\\t\\tpointer-events: none;\\n\\t}\\n}\\n\\n/* See ckeditor/ckeditor5#1987. */\\n.ck.ck-read-only .ck-placeholder {\\n\\t&::before {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\\n/*\\n * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.\\n * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.\\n * See https://github.com/ckeditor/ckeditor5/issues/11418.\\n */\\n.ck.ck-reset_all .ck-placeholder {\\n\\tposition: relative;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* See ckeditor/ckeditor5#936. */\\n.ck.ck-placeholder, .ck .ck-placeholder {\\n\\t&::before {\\n\\t\\tcursor: text;\\n\\t\\tcolor: var(--ck-color-engine-placeholder-text);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-editor__editable span[data-ck-unsafe-element]{display:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-engine/theme/renderer.css\"],\"names\":[],\"mappings\":\"AAMA,qDACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* Elements marked by the Renderer as hidden should be invisible in the editor. */\\n.ck.ck-editor__editable span[data-ck-unsafe-element] {\\n\\tdisplay: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-find-result{background:var(--ck-color-highlight-background);color:var(--ck-color-text)}.ck-find-result_selected{background:#ff9633}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-find-and-replace/theme/findandreplace.css\"],\"names\":[],\"mappings\":\"AAKA,gBACC,+CAAgD,CAChD,0BACD,CAEA,yBACC,kBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-find-result {\\n\\tbackground: var(--ck-color-highlight-background);\\n\\tcolor: var(--ck-color-text);\\n}\\n\\n.ck-find-result_selected {\\n\\tbackground: hsl(29, 100%, 60%);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-find-and-replace-form{max-width:100%}.ck.ck-find-and-replace-form fieldset{display:flex}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find .ck-results-counter{position:absolute}.ck.ck-find-and-replace-form{width:400px}.ck.ck-find-and-replace-form:focus{outline:none}.ck.ck-find-and-replace-form fieldset{align-content:stretch;align-items:center;border:0;flex-direction:row;flex-wrap:nowrap;margin:0;padding:var(--ck-spacing-large)}.ck.ck-find-and-replace-form fieldset>.ck-button{flex:0 0 auto}[dir=ltr] .ck.ck-find-and-replace-form fieldset>*+*{margin-left:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-find-and-replace-form fieldset>*+*{margin-right:var(--ck-spacing-standard)}.ck.ck-find-and-replace-form fieldset .ck-labeled-field-view{flex:1 1 auto}.ck.ck-find-and-replace-form fieldset .ck-labeled-field-view .ck-input{min-width:50px;width:100%}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find{align-items:flex-start}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button-find{font-weight:700}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button-find .ck-button__label{padding-left:var(--ck-spacing-large);padding-right:var(--ck-spacing-large)}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button-prev>.ck-icon{transform:rotate(90deg)}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button-next>.ck-icon{transform:rotate(-90deg)}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find .ck-results-counter{top:50%;transform:translateY(-50%)}[dir=ltr] .ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find .ck-results-counter{right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find .ck-results-counter{left:var(--ck-spacing-standard)}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find .ck-results-counter{color:var(--ck-color-base-border)}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace{flex-wrap:wrap;justify-content:flex-end;margin-top:calc(var(--ck-spacing-large)*-1)}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace>.ck-labeled-field-view{margin-bottom:var(--ck-spacing-large)}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace>.ck-options-dropdown{margin-left:0;margin-right:auto}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace>.ck-labeled-field-view,.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace>.ck-labeled-field-view .ck-input{width:100%}@media screen and (max-width:600px){.ck.ck-find-and-replace-form{width:300px}.ck.ck-find-and-replace-form fieldset{flex-wrap:wrap}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find .ck-labeled-field-view{flex:1 0 auto;margin-bottom:var(--ck-spacing-standard);width:100%}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button{text-align:center}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button:first-of-type{flex:1 1 auto}[dir=ltr] .ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button:first-of-type{margin-left:0}[dir=rtl] .ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button:first-of-type{margin-right:0}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button:first-of-type .ck-button__label{text-align:center;width:100%}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace>:not(.ck-labeled-field-view){flex:1 1 auto}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace>.ck-dropdown:not(.ck-labeled-field-view){flex-grow:0}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace>.ck-button:not(.ck-labeled-field-view)>.ck-button__label{text-align:center;width:100%}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-find-and-replace/theme/findandreplaceform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-find-and-replace/findandreplaceform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAKA,6BACC,cAUD,CARC,sCACC,YAMD,CAHC,yFACC,iBACD,CCNF,6BACC,WAyGD,CAnGC,mCACC,YACD,CAEA,sCAIC,qBAAsB,CADtB,kBAAmB,CAInB,QAAS,CANT,kBAAmB,CACnB,gBAAiB,CAMjB,QAAS,CAFT,+BAwFD,CApFC,iDACC,aACD,CAGC,oDACC,sCACD,CAIA,oDACC,uCACD,CAGD,6DACC,aAMD,CAJC,uEAEC,cAAe,CADf,UAED,CAID,qEAEC,sBAkCD,CAhCC,qFACC,eAOD,CAJC,uGACC,oCAAqC,CACrC,qCACD,CAGD,8FACC,uBACD,CAEA,8FACC,wBACD,CAEA,yFACC,OAAQ,CACR,0BAWD,CAbA,mGAKE,gCAQF,CAbA,mGASE,+BAIF,CAbA,yFAYC,iCACD,CAID,wEACC,cAAe,CACf,wBAAyB,CACzB,2CAeD,CAbC,+FACC,qCACD,CAEA,6FAEC,aAAc,CADd,iBAED,CAEA,wMAEC,UACD,CCzGF,oCD+GA,6BACC,WAiDD,CA/CC,sCACC,cA6CD,CAzCE,4FACC,aAAc,CAEd,wCAAyC,CADzC,UAED,CAEA,gFACC,iBAkBD,CAhBC,8FACC,aAcD,CAfA,wGAIE,aAWF,CAfA,wGAQE,cAOF,CAJC,gHAEC,iBAAkB,CADlB,UAED,CAMH,qGACC,aAUD,CARC,iHACC,WACD,CAEA,iIAEC,iBAAkB,CADlB,UAED,CC5JH\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-find-and-replace-form {\\n\\tmax-width: 100%;\\n\\n\\t& fieldset {\\n\\t\\tdisplay: flex;\\n\\n\\t\\t/* The find fieldset */\\n\\t\\t&.ck-find-and-replace-form__find .ck-results-counter {\\n\\t\\t\\tposition: absolute;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-find-and-replace-form {\\n\\twidth: 400px;\\n\\n\\t/*\\n\\t * The
needs tabindex=\\\"-1\\\" for proper Esc handling after being clicked\\n\\t * but the side effect is that this creates a nasty focus outline in some browsers.\\n\\t */\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t& fieldset {\\n\\t\\tflex-direction: row;\\n\\t\\tflex-wrap: nowrap;\\n\\t\\talign-items: center;\\n\\t\\talign-content: stretch;\\n\\n\\t\\tpadding: var(--ck-spacing-large);\\n\\t\\tborder: 0;\\n\\t\\tmargin: 0;\\n\\n\\t\\t& > .ck-button {\\n\\t\\t\\tflex: 0 0 auto;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t& > * + * {\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t& > * + * {\\n\\t\\t\\t\\tmargin-right: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\tflex: 1 1 auto;\\n\\n\\t\\t\\t& .ck-input {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\tmin-width: 50px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* The find fieldset */\\n\\t\\t&.ck-find-and-replace-form__find {\\n\\t\\t\\t/* To display all controls in line when there's an error under the input */\\n\\t\\t\\talign-items: flex-start;\\n\\n\\t\\t\\t& > .ck-button-find {\\n\\t\\t\\t\\tfont-weight: bold;\\n\\n\\t\\t\\t\\t/* Beef the find button up a little. It's the main action button in the form */\\n\\t\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\t\\tpadding-left: var(--ck-spacing-large);\\n\\t\\t\\t\\t\\tpadding-right: var(--ck-spacing-large);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > .ck-button-prev > .ck-icon {\\n\\t\\t\\t\\ttransform: rotate(90deg);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > .ck-button-next > .ck-icon {\\n\\t\\t\\t\\ttransform: rotate(-90deg);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-results-counter {\\n\\t\\t\\t\\ttop: 50%;\\n\\t\\t\\t\\ttransform: translateY(-50%);\\n\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\tright: var(--ck-spacing-standard);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\tleft: var(--ck-spacing-standard);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tcolor: var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* The replace fieldset */\\n\\t\\t&.ck-find-and-replace-form__replace {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t\\tjustify-content: flex-end;\\n\\t\\t\\tmargin-top: calc( -1 * var(--ck-spacing-large) );\\n\\n\\t\\t\\t& > .ck-labeled-field-view {\\n\\t\\t\\t\\tmargin-bottom: var(--ck-spacing-large);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > .ck-options-dropdown {\\n\\t\\t\\t\\tmargin-right: auto;\\n\\t\\t\\t\\tmargin-left: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > .ck-labeled-field-view,\\n\\t\\t\\t& > .ck-labeled-field-view .ck-input {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin ck-media-phone {\\n\\t.ck.ck-find-and-replace-form {\\n\\t\\twidth: 300px;\\n\\n\\t\\t& fieldset {\\n\\t\\t\\tflex-wrap: wrap;\\n\\n\\t\\t\\t/* The find fieldset */\\n\\t\\t\\t&.ck-find-and-replace-form__find {\\n\\t\\t\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\t\\t\\tflex: 1 0 auto;\\n\\t\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t\\tmargin-bottom: var(--ck-spacing-standard);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t& > .ck-button {\\n\\t\\t\\t\\t\\ttext-align: center;\\n\\n\\t\\t\\t\\t\\t&:first-of-type {\\n\\t\\t\\t\\t\\t\\tflex: 1 1 auto;\\n\\n\\t\\t\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\t\\t\\tmargin-left: 0;\\n\\t\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\t\\t\\tmargin-right: 0;\\n\\t\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t\\t\\t\\ttext-align: center;\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t/* The replace fieldset */\\n\\t\\t\\t&.ck-find-and-replace-form__replace > :not(.ck-labeled-field-view) {\\n\\t\\t\\t\\tflex: 1 1 auto;\\n\\n\\t\\t\\t\\t&.ck-dropdown {\\n\\t\\t\\t\\t\\tflex-grow: 0;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&.ck-button > .ck-button__label {\\n\\t\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t\\ttext-align: center;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content .text-tiny{font-size:.7em}.ck-content .text-small{font-size:.85em}.ck-content .text-big{font-size:1.4em}.ck-content .text-huge{font-size:1.8em}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-font/theme/fontsize.css\"],\"names\":[],\"mappings\":\"AAUC,uBACC,cACD,CAEA,wBACC,eACD,CAEA,sBACC,eACD,CAEA,uBACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* The values should be synchronized with the \\\"FONT_SIZE_PRESET_UNITS\\\" object in the \\\"/src/fontsize/utils.js\\\" file. */\\n\\n/* Styles should be prefixed with the `.ck-content` class.\\nSee https://github.com/ckeditor/ckeditor5/issues/6636 */\\n.ck-content {\\n\\t& .text-tiny {\\n\\t\\tfont-size: .7em;\\n\\t}\\n\\n\\t& .text-small {\\n\\t\\tfont-size: .85em;\\n\\t}\\n\\n\\t& .text-big {\\n\\t\\tfont-size: 1.4em;\\n\\t}\\n\\n\\t& .text-huge {\\n\\t\\tfont-size: 1.8em;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-heading_heading1{font-size:20px}.ck.ck-heading_heading2{font-size:17px}.ck.ck-heading_heading3{font-size:14px}.ck[class*=ck-heading_heading]{font-weight:700}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item{min-width:18em}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-heading/theme/heading.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-heading/heading.css\"],\"names\":[],\"mappings\":\"AAKA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,+BACC,eACD,CCZC,2EACC,SACD,CAEA,uEACC,cACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-heading_heading1 {\\n\\tfont-size: 20px;\\n}\\n\\n.ck.ck-heading_heading2 {\\n\\tfont-size: 17px;\\n}\\n\\n.ck.ck-heading_heading3 {\\n\\tfont-size: 14px;\\n}\\n\\n.ck[class*=\\\"ck-heading_heading\\\"] {\\n\\tfont-weight: bold;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* Resize dropdown's button label. */\\n.ck.ck-dropdown.ck-heading-dropdown {\\n\\t& .ck-dropdown__button .ck-button__label {\\n\\t\\twidth: 8em;\\n\\t}\\n\\n\\t& .ck-dropdown__panel .ck-list__item {\\n\\t\\tmin-width: 18em;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-highlight-marker-yellow:#fdfd77;--ck-highlight-marker-green:#62f962;--ck-highlight-marker-pink:#fc7899;--ck-highlight-marker-blue:#72ccfd;--ck-highlight-pen-red:#e71313;--ck-highlight-pen-green:#128a00}.ck-content .marker-yellow{background-color:var(--ck-highlight-marker-yellow)}.ck-content .marker-green{background-color:var(--ck-highlight-marker-green)}.ck-content .marker-pink{background-color:var(--ck-highlight-marker-pink)}.ck-content .marker-blue{background-color:var(--ck-highlight-marker-blue)}.ck-content .pen-red{background-color:transparent;color:var(--ck-highlight-pen-red)}.ck-content .pen-green{background-color:transparent;color:var(--ck-highlight-pen-green)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-highlight/theme/highlight.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,oCAA+C,CAC/C,mCAA+C,CAC/C,kCAA8C,CAC9C,kCAA8C,CAC9C,8BAAwC,CACxC,gCACD,CAGC,2BACC,kDACD,CAFA,0BACC,iDACD,CAFA,yBACC,gDACD,CAFA,yBACC,gDACD,CAIA,qBAIC,4BAA6B,CAH7B,iCAID,CALA,uBAIC,4BAA6B,CAH7B,mCAID\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-highlight-marker-yellow: hsl(60, 97%, 73%);\\n\\t--ck-highlight-marker-green: hsl(120, 93%, 68%);\\n\\t--ck-highlight-marker-pink: hsl(345, 96%, 73%);\\n\\t--ck-highlight-marker-blue: hsl(201, 97%, 72%);\\n\\t--ck-highlight-pen-red: hsl(0, 85%, 49%);\\n\\t--ck-highlight-pen-green: hsl(112, 100%, 27%);\\n}\\n\\n@define-mixin highlight-marker-color $color {\\n\\t.ck-content .marker-$color {\\n\\t\\tbackground-color: var(--ck-highlight-marker-$color);\\n\\t}\\n}\\n\\n@define-mixin highlight-pen-color $color {\\n\\t.ck-content .pen-$color {\\n\\t\\tcolor: var(--ck-highlight-pen-$color);\\n\\n\\t\\t/* Override default yellow background of `` from user agent stylesheet */\\n\\t\\tbackground-color: transparent;\\n\\t}\\n}\\n\\n@mixin highlight-marker-color yellow;\\n@mixin highlight-marker-color green;\\n@mixin highlight-marker-color pink;\\n@mixin highlight-marker-color blue;\\n\\n@mixin highlight-pen-color red;\\n@mixin highlight-pen-color green;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-editor__editable .ck-horizontal-line{display:flow-root}.ck-content hr{background:#dedede;border:0;height:4px;margin:15px 0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-horizontal-line/theme/horizontalline.css\"],\"names\":[],\"mappings\":\"AAMA,yCAEC,iBACD,CAEA,eAGC,kBAA2B,CAC3B,QAAS,CAFT,UAAW,CADX,aAID\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n\\n.ck-editor__editable .ck-horizontal-line {\\n\\t/* Necessary to render properly next to floated objects, e.g. side image case. */\\n\\tdisplay: flow-root;\\n}\\n\\n.ck-content hr {\\n\\tmargin: 15px 0;\\n\\theight: 4px;\\n\\tbackground: hsl(0, 0%, 87%);\\n\\tborder: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-html-object-embed-unfocused-outline-width:1px}.ck-widget.html-object-embed{background-color:var(--ck-color-base-foreground);font-size:var(--ck-font-size-base);min-width:calc(76px + var(--ck-spacing-standard));padding:var(--ck-spacing-small);padding-top:calc(var(--ck-font-size-tiny) + var(--ck-spacing-large))}.ck-widget.html-object-embed:not(.ck-widget_selected):not(:hover){outline:var(--ck-html-object-embed-unfocused-outline-width) dashed var(--ck-color-widget-blurred-border)}.ck-widget.html-object-embed:before{background:#999;border-radius:0 0 var(--ck-border-radius) var(--ck-border-radius);color:var(--ck-color-base-background);content:attr(data-html-object-embed-label);font-family:var(--ck-font-face);font-size:var(--ck-font-size-tiny);font-style:normal;font-weight:400;left:var(--ck-spacing-standard);padding:calc(var(--ck-spacing-tiny) + var(--ck-html-object-embed-unfocused-outline-width)) var(--ck-spacing-small) var(--ck-spacing-tiny);position:absolute;top:0;transition:background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}.ck-widget.html-object-embed .ck-widget__type-around .ck-widget__type-around__button.ck-widget__type-around__button_before{margin-left:50px}.ck-widget.html-object-embed .html-object-embed__content{pointer-events:none}div.ck-widget.html-object-embed{margin:1em auto}span.ck-widget.html-object-embed{display:inline-block}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-html-support/theme/datafilter.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,kDACD,CAEA,6BAEC,gDAAiD,CADjD,kCAAmC,CAKnC,iDAAkD,CAHlD,+BAAgC,CAEhC,oEAgCD,CA7BC,kEACC,wGACD,CAEA,oCAOC,eAA4B,CAG5B,iEAAkE,CAClE,qCAAsC,CAPtC,0CAA2C,CAS3C,+BAAgC,CADhC,kCAAmC,CAVnC,iBAAkB,CADlB,eAAmB,CAKnB,+BAAgC,CAGhC,yIAA0I,CAN1I,iBAAkB,CAElB,KAAM,CAGN,0GAMD,CAGA,2HACC,gBACD,CAEA,yDAEC,mBACD,CAGD,gCACC,eACD,CAEA,iCACC,oBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-html-object-embed-unfocused-outline-width: 1px;\\n}\\n\\n.ck-widget.html-object-embed {\\n\\tfont-size: var(--ck-font-size-base);\\n\\tbackground-color: var(--ck-color-base-foreground);\\n\\tpadding: var(--ck-spacing-small);\\n\\t/* Leave space for label */\\n\\tpadding-top: calc(var(--ck-font-size-tiny) + var(--ck-spacing-large));\\n\\tmin-width: calc(76px + var(--ck-spacing-standard));\\n\\n\\t&:not(.ck-widget_selected):not(:hover) {\\n\\t\\toutline: var(--ck-html-object-embed-unfocused-outline-width) dashed var(--ck-color-widget-blurred-border);\\n\\t}\\n\\n\\t&::before {\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-style: normal;\\n\\t\\tposition: absolute;\\n\\t\\tcontent: attr(data-html-object-embed-label);\\n\\t\\ttop: 0;\\n\\t\\tleft: var(--ck-spacing-standard);\\n\\t\\tbackground: hsl(0deg 0% 60%);\\n\\t\\ttransition: background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\\n\\t\\tpadding: calc(var(--ck-spacing-tiny) + var(--ck-html-object-embed-unfocused-outline-width)) var(--ck-spacing-small) var(--ck-spacing-tiny);\\n\\t\\tborder-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);\\n\\t\\tcolor: var(--ck-color-base-background);\\n\\t\\tfont-size: var(--ck-font-size-tiny);\\n\\t\\tfont-family: var(--ck-font-face);\\n\\t}\\n\\n\\t/* Make space for label. */\\n\\t& .ck-widget__type-around .ck-widget__type-around__button.ck-widget__type-around__button_before {\\n\\t\\tmargin-left: 50px;\\n\\t}\\n\\n\\t& .html-object-embed__content {\\n\\t\\t/* Disable user interaction with embed content */\\n\\t\\tpointer-events: none;\\n\\t}\\n}\\n\\ndiv.ck-widget.html-object-embed {\\n\\tmargin: 1em auto;\\n}\\n\\nspan.ck-widget.html-object-embed {\\n\\tdisplay: inline-block;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content .image{clear:both;display:table;margin:.9em auto;min-width:50px;text-align:center}.ck-content .image img{display:block;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{align-items:flex-start;display:inline-flex;max-width:100%}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}.ck.ck-editor__editable .image-inline.ck-widget_selected,.ck.ck-editor__editable .image.ck-widget_selected{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/image.css\"],\"names\":[],\"mappings\":\"AAMC,mBAEC,UAAW,CADX,aAAc,CAOd,gBAAkB,CAGlB,cAAe,CARf,iBAuBD,CAbC,uBAEC,aAAc,CAGd,aAAc,CAGd,cAAe,CAGf,cACD,CAGD,0BAYC,sBAAuB,CANvB,mBAAoB,CAGpB,cAoBD,CAdC,kCACC,YACD,CAGA,gEAGC,WAAY,CACZ,aAAc,CAGd,cACD,CAUD,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAWA,2GACC,SAUD,CAHC,qEACC,YACD,CAOA,0FACC,cACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content {\\n\\t& .image {\\n\\t\\tdisplay: table;\\n\\t\\tclear: both;\\n\\t\\ttext-align: center;\\n\\n\\t\\t/* Make sure there is some space between the content and the image. Center image by default. */\\n\\t\\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\\n\\t \\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\\n\\t\\tmargin: 0.9em auto;\\n\\n\\t\\t/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */\\n\\t\\tmin-width: 50px;\\n\\n\\t\\t& img {\\n\\t\\t\\t/* Prevent unnecessary margins caused by line-height (see #44). */\\n\\t\\t\\tdisplay: block;\\n\\n\\t\\t\\t/* Center the image if its width is smaller than the content's width. */\\n\\t\\t\\tmargin: 0 auto;\\n\\n\\t\\t\\t/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */\\n\\t\\t\\tmax-width: 100%;\\n\\n\\t\\t\\t/* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */\\n\\t\\t\\tmin-width: 100%\\n\\t\\t}\\n\\t}\\n\\n\\t& .image-inline {\\n\\t\\t/*\\n\\t\\t * Normally, the .image-inline would have \\\"display: inline-block\\\" and \\\"img { width: 100% }\\\" (to follow the wrapper while resizing).\\n\\t\\t * Unfortunately, together with \\\"srcset\\\", it gets automatically stretched up to the width of the editing root.\\n\\t\\t * This strange behavior does not happen with inline-flex.\\n\\t\\t */\\n\\t\\tdisplay: inline-flex;\\n\\n\\t\\t/* While being resized, don't allow the image to exceed the width of the editing root. */\\n\\t\\tmax-width: 100%;\\n\\n\\t\\t/* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */\\n\\t\\talign-items: flex-start;\\n\\n\\t\\t/* When the picture is present it must act as a flex container to let the img resize properly */\\n\\t\\t& picture {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t}\\n\\n\\t\\t/* When the picture is present, it must act like a resizable img. */\\n\\t\\t& picture,\\n\\t\\t& img {\\n\\t\\t\\t/* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\tflex-shrink: 1;\\n\\n\\t\\t\\t/* Prevents overflowing the editing root boundaries when an inline image is very wide. */\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-editor__editable {\\n\\t/*\\n\\t * Inhertit the content styles padding of the
in case the integration overrides `text-align: center`\\n\\t * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native\\n\\t * caret does, and not at the edge of
.\\n\\t */\\n\\t& .image > figcaption.ck-placeholder::before {\\n\\t\\tpadding-left: inherit;\\n\\t\\tpadding-right: inherit;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the image caption placeholder doesn't overflow the placeholder area.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\\n\\t\\t */\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\n\\n\\t/*\\n\\t * Make sure the selected inline image always stays on top of its siblings.\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\\n\\t */\\n\\t& .image.ck-widget_selected {\\n\\t\\tz-index: 1;\\n\\t}\\n\\n\\t& .image-inline.ck-widget_selected {\\n\\t\\tz-index: 1;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the native browser selection style is not displayed.\\n\\t\\t * Inline image widgets have their own styles for the selected state and\\n\\t\\t * leaving this up to the browser is asking for a visual collision.\\n\\t\\t */\\n\\t\\t& ::selection {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t/* The inline image nested in the table should have its original size if not resized.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\\n\\t& td,\\n\\t& th {\\n\\t\\t& .image-inline img {\\n\\t\\t\\tmax-width: none;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-image-caption-background:#f7f7f7;--ck-color-image-caption-text:#333;--ck-color-image-caption-highligted-background:#fd0}.ck-content .image>figcaption{background-color:var(--ck-color-image-caption-background);caption-side:bottom;color:var(--ck-color-image-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;word-break:break-word}.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:ck-image-caption-highlight .6s ease-out}@keyframes ck-image-caption-highlight{0%{background-color:var(--ck-color-image-caption-highligted-background)}to{background-color:var(--ck-color-image-caption-background)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imagecaption.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,2CAAoD,CACpD,kCAA8C,CAC9C,mDACD,CAGA,8BAKC,yDAA0D,CAH1D,mBAAoB,CAEpB,wCAAyC,CAHzC,qBAAsB,CAMtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,qBAMD,CAGA,qEACC,iDACD,CAEA,sCACC,GACC,oEACD,CAEA,GACC,yDACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-image-caption-background: hsl(0, 0%, 97%);\\n\\t--ck-color-image-caption-text: hsl(0, 0%, 20%);\\n\\t--ck-color-image-caption-highligted-background: hsl(52deg 100% 50%);\\n}\\n\\n/* Content styles */\\n.ck-content .image > figcaption {\\n\\tdisplay: table-caption;\\n\\tcaption-side: bottom;\\n\\tword-break: break-word;\\n\\tcolor: var(--ck-color-image-caption-text);\\n\\tbackground-color: var(--ck-color-image-caption-background);\\n\\tpadding: .6em;\\n\\tfont-size: .75em;\\n\\toutline-offset: -1px;\\n}\\n\\n/* Editing styles */\\n.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {\\n\\tanimation: ck-image-caption-highlight .6s ease-out;\\n}\\n\\n@keyframes ck-image-caption-highlight {\\n\\t0% {\\n\\t\\tbackground-color: var(--ck-color-image-caption-highligted-background);\\n\\t}\\n\\n\\t100% {\\n\\t\\tbackground-color: var(--ck-color-image-caption-background);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-image-insert__panel{padding:var(--ck-spacing-large)}.ck.ck-image-insert__ck-finder-button{border:1px solid #ccc;border-radius:var(--ck-border-radius);display:block;margin:var(--ck-spacing-standard) auto;width:100%}.ck.ck-splitbutton>.ck-file-dialog-button.ck-button{border:none;margin:0;padding:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageinsert.css\"],\"names\":[],\"mappings\":\"AAKA,2BACC,+BACD,CAEA,sCAIC,qBAAiC,CACjC,qCAAsC,CAJtC,aAAc,CAEd,sCAAuC,CADvC,UAID,CAGA,oDAGC,WAAY,CADZ,QAAS,CADT,SAGD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-image-insert__panel {\\n\\tpadding: var(--ck-spacing-large);\\n}\\n\\n.ck.ck-image-insert__ck-finder-button {\\n\\tdisplay: block;\\n\\twidth: 100%;\\n\\tmargin: var(--ck-spacing-standard) auto;\\n\\tborder: 1px solid hsl(0, 0%, 80%);\\n\\tborder-radius: var(--ck-border-radius);\\n}\\n\\n/* https://github.com/ckeditor/ckeditor5/issues/7986 */\\n.ck.ck-splitbutton > .ck-file-dialog-button.ck-button {\\n\\tpadding: 0;\\n\\tmargin: 0;\\n\\tborder: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-image-insert-form:focus{outline:none}.ck.ck-form__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__row>:not(.ck-label){flex-grow:1}.ck.ck-form__row.ck-image-insert-form__action-row{margin-top:var(--ck-spacing-standard)}.ck.ck-form__row.ck-image-insert-form__action-row .ck-button-cancel,.ck.ck-form__row.ck-image-insert-form__action-row .ck-button-save{justify-content:center}.ck.ck-form__row.ck-image-insert-form__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageinsertformrowview.css\"],\"names\":[],\"mappings\":\"AAMC,+BAEC,YACD,CAGD,iBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAmBD,CAhBC,iCACC,WACD,CAEA,kDACC,qCAUD,CARC,sIAEC,sBACD,CAEA,+EACC,0BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-image-insert-form {\\n\\t&:focus {\\n\\t\\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\\n\\t\\toutline: none;\\n\\t}\\n}\\n\\n.ck.ck-form__row {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\tjustify-content: space-between;\\n\\n\\t/* Ignore labels that work as fieldset legends */\\n\\t& > *:not(.ck-label) {\\n\\t\\tflex-grow: 1;\\n\\t}\\n\\n\\t&.ck-image-insert-form__action-row {\\n\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\n\\t\\t& .ck-button-save,\\n\\t\\t& .ck-button-cancel {\\n\\t\\t\\tjustify-content: center;\\n\\t\\t}\\n\\n\\t\\t& .ck-button .ck-button__label {\\n\\t\\t\\tcolor: var(--ck-color-text);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content .image.image_resized{box-sizing:border-box;display:block;max-width:100%}.ck-content .image.image_resized img{width:100%}.ck-content .image.image_resized>figcaption{display:block}.ck.ck-editor__editable td .image-inline.image_resized img,.ck.ck-editor__editable th .image-inline.image_resized img{max-width:100%}[dir=ltr] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-left:var(--ck-spacing-standard)}.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label{width:4em}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageresize.css\"],\"names\":[],\"mappings\":\"AAKA,iCAQC,qBAAsB,CADtB,aAAc,CANd,cAkBD,CATC,qCAEC,UACD,CAEA,4CAEC,aACD,CAQC,sHACC,cACD,CAIF,oFACC,uCACD,CAEA,oFACC,sCACD,CAEA,oEACC,SACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content .image.image_resized {\\n\\tmax-width: 100%;\\n\\t/*\\n\\tThe `
` element for resized images must not use `display:table` as browsers do not support `max-width` for it well.\\n\\tSee https://stackoverflow.com/questions/4019604/chrome-safari-ignoring-max-width-in-table/14420691#14420691 for more.\\n\\tFortunately, since we control the width, there is no risk that the image will look bad.\\n\\t*/\\n\\tdisplay: block;\\n\\tbox-sizing: border-box;\\n\\n\\t& img {\\n\\t\\t/* For resized images it is the `
` element that determines the image width. */\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t& > figcaption {\\n\\t\\t/* The `
` element uses `display:block`, so `
` also has to. */\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\\n.ck.ck-editor__editable {\\n\\t/* The resized inline image nested in the table should respect its parent size.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\\n\\t& td,\\n\\t& th {\\n\\t\\t& .image-inline.image_resized img {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t}\\n\\t}\\n}\\n\\n[dir=\\\"ltr\\\"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\\n\\tmargin-right: var(--ck-spacing-standard);\\n}\\n\\n[dir=\\\"rtl\\\"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\\n\\tmargin-left: var(--ck-spacing-standard);\\n}\\n\\n.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label {\\n\\twidth: 4em;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-image-style-spacing:1.5em;--ck-inline-image-style-spacing:calc(var(--ck-image-style-spacing)/2)}.ck-content .image-style-block-align-left,.ck-content .image-style-block-align-right{max-width:calc(100% - var(--ck-image-style-spacing))}.ck-content .image-style-align-left,.ck-content .image-style-align-right{clear:none}.ck-content .image-style-side{float:right;margin-left:var(--ck-image-style-spacing);max-width:50%}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}.ck-content .image-style-block-align-right{margin-left:auto;margin-right:0}.ck-content .image-style-block-align-left{margin-left:0;margin-right:auto}.ck-content p+.image-style-align-left,.ck-content p+.image-style-align-right,.ck-content p+.image-style-side{margin-top:0}.ck-content .image-inline.image-style-align-left,.ck-content .image-inline.image-style-align-right{margin-bottom:var(--ck-inline-image-style-spacing);margin-top:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-inline-image-style-spacing)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-background)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after{display:none}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-hover-background)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imagestyle.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,8BAA+B,CAC/B,qEACD,CAMC,qFAEC,oDACD,CAIA,yEAEC,UACD,CAEA,8BACC,WAAY,CACZ,yCAA0C,CAC1C,aACD,CAEA,oCACC,UAAW,CACX,0CACD,CAEA,sCACC,gBAAiB,CACjB,iBACD,CAEA,qCACC,WAAY,CACZ,yCACD,CAEA,2CAEC,gBAAiB,CADjB,cAED,CAEA,0CACC,aAAc,CACd,iBACD,CAGA,6GAGC,YACD,CAGC,mGAGC,kDAAmD,CADnD,+CAED,CAEA,iDACC,iDACD,CAEA,kDACC,gDACD,CAUC,0lBAGC,qDAKD,CAHC,8nBACC,YACD,CAKD,oVAGC,2DACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-image-style-spacing: 1.5em;\\n\\t--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);\\n}\\n\\n.ck-content {\\n\\t/* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback\\n\\tconfirming successful application of the style if image width exceeds the editor's size.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/9342 */\\n\\t& .image-style-block-align-left,\\n\\t& .image-style-block-align-right {\\n\\t\\tmax-width: calc(100% - var(--ck-image-style-spacing));\\n\\t}\\n\\n\\t/* Allows displaying multiple floating images in the same line.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */\\n\\t& .image-style-align-left,\\n\\t& .image-style-align-right {\\n\\t\\tclear: none;\\n\\t}\\n\\n\\t& .image-style-side {\\n\\t\\tfloat: right;\\n\\t\\tmargin-left: var(--ck-image-style-spacing);\\n\\t\\tmax-width: 50%;\\n\\t}\\n\\n\\t& .image-style-align-left {\\n\\t\\tfloat: left;\\n\\t\\tmargin-right: var(--ck-image-style-spacing);\\n\\t}\\n\\n\\t& .image-style-align-center {\\n\\t\\tmargin-left: auto;\\n\\t\\tmargin-right: auto;\\n\\t}\\n\\n\\t& .image-style-align-right {\\n\\t\\tfloat: right;\\n\\t\\tmargin-left: var(--ck-image-style-spacing);\\n\\t}\\n\\n\\t& .image-style-block-align-right {\\n\\t\\tmargin-right: 0;\\n\\t\\tmargin-left: auto;\\n\\t}\\n\\n\\t& .image-style-block-align-left {\\n\\t\\tmargin-left: 0;\\n\\t\\tmargin-right: auto;\\n\\t}\\n\\n\\t/* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */\\n\\t& p + .image-style-align-left,\\n\\t& p + .image-style-align-right,\\n\\t& p + .image-style-side {\\n\\t\\tmargin-top: 0;\\n\\t}\\n\\n\\t& .image-inline {\\n\\t\\t&.image-style-align-left,\\n\\t\\t&.image-style-align-right {\\n\\t\\t\\tmargin-top: var(--ck-inline-image-style-spacing);\\n\\t\\t\\tmargin-bottom: var(--ck-inline-image-style-spacing);\\n\\t\\t}\\n\\n\\t\\t&.image-style-align-left {\\n\\t\\t\\tmargin-right: var(--ck-inline-image-style-spacing);\\n\\t\\t}\\n\\n\\t\\t&.image-style-align-right {\\n\\t\\t\\tmargin-left: var(--ck-inline-image-style-spacing);\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-splitbutton {\\n\\t/* The button should display as a regular drop-down if the action button\\n\\tis forced to fire the same action as the arrow button. */\\n\\t&.ck-splitbutton_flatten {\\n\\t\\t&:hover,\\n\\t\\t&.ck-splitbutton_open {\\n\\t\\t\\t& > .ck-splitbutton__action:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\\n\\t\\t\\t\\tbackground-color: var(--ck-color-button-on-background);\\n\\n\\t\\t\\t\\t&::after {\\n\\t\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-splitbutton_open:hover {\\n\\t\\t\\t& > .ck-splitbutton__action:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\\n\\t\\t\\t\\tbackground-color: var(--ck-color-button-on-hover-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-image-upload-complete-icon{border-radius:50%;display:block;position:absolute;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);z-index:1}.ck-image-upload-complete-icon:after{content:\\\"\\\";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20;--ck-image-upload-icon-width:2px;--ck-image-upload-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck-image-upload-complete-icon{animation-delay:0ms,3s;animation-duration:.5s,.5s;animation-fill-mode:forwards,forwards;animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;background:var(--ck-color-image-upload-icon-background);font-size:calc(1px*var(--ck-image-upload-icon-size));height:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size));opacity:0;overflow:hidden;width:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size))}.ck-image-upload-complete-icon:after{animation-delay:.5s;animation-duration:.5s;animation-fill-mode:forwards;animation-name:ck-upload-complete-icon-check;border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);box-sizing:border-box;height:0;left:25%;opacity:0;top:50%;transform:scaleX(-1) rotate(135deg);transform-origin:left top;width:0}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{height:0;opacity:1;width:0}33%{height:0;width:.3em}to{height:.45em;opacity:1;width:.3em}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadicon.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadicon.css\"],\"names\":[],\"mappings\":\"AAKA,+BAUC,iBAAkB,CATlB,aAAc,CACd,iBAAkB,CAOlB,sCAAwC,CADxC,oCAAsC,CAGtC,SAMD,CAJC,qCACC,UAAW,CACX,iBACD,CChBD,MACC,iCAA8C,CAC9C,+CAA4D,CAG5D,8BAA+B,CAC/B,gCAAiC,CACjC,4DACD,CAEA,+BAWC,sBAA4B,CAN5B,0BAAgC,CADhC,qCAAuC,CADvC,wEAA0E,CAD1E,uDAAwD,CAMxD,oDAAuD,CAWvD,oFAAuF,CAlBvF,SAAU,CAgBV,eAAgB,CAChB,mFA0BD,CAtBC,qCAgBC,mBAAsB,CADtB,sBAAyB,CAEzB,4BAA6B,CAH7B,4CAA6C,CAF7C,sFAAuF,CADvF,oFAAqF,CASrF,qBAAsB,CAdtB,QAAS,CAJT,QAAS,CAGT,SAAU,CADV,OAAQ,CAKR,mCAAoC,CACpC,yBAA0B,CAH1B,OAcD,CAGD,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,yCACC,GAGC,QAAS,CAFT,SAAU,CACV,OAED,CACA,IAEC,QAAS,CADT,UAED,CACA,GAGC,YAAc,CAFd,SAAU,CACV,UAED,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-image-upload-complete-icon {\\n\\tdisplay: block;\\n\\tposition: absolute;\\n\\n\\t/*\\n\\t * Smaller images should have the icon closer to the border.\\n\\t * Match the icon position with the linked image indicator brought by the link image feature.\\n\\t */\\n\\ttop: min(var(--ck-spacing-medium), 6%);\\n\\tright: min(var(--ck-spacing-medium), 6%);\\n\\tborder-radius: 50%;\\n\\tz-index: 1;\\n\\n\\t&::after {\\n\\t\\tcontent: \\\"\\\";\\n\\t\\tposition: absolute;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-image-upload-icon: hsl(0, 0%, 100%);\\n\\t--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);\\n\\n\\t/* Match the icon size with the linked image indicator brought by the link image feature. */\\n\\t--ck-image-upload-icon-size: 20;\\n\\t--ck-image-upload-icon-width: 2px;\\n\\t--ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px);\\n}\\n\\n.ck-image-upload-complete-icon {\\n\\topacity: 0;\\n\\tbackground: var(--ck-color-image-upload-icon-background);\\n\\tanimation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;\\n\\tanimation-fill-mode: forwards, forwards;\\n\\tanimation-duration: 500ms, 500ms;\\n\\n\\t/* To make animation scalable. */\\n\\tfont-size: calc(1px * var(--ck-image-upload-icon-size));\\n\\n\\t/* Hide completed upload icon after 3 seconds. */\\n\\tanimation-delay: 0ms, 3000ms;\\n\\n\\t/*\\n\\t * Use CSS math to simulate container queries.\\n\\t * https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\\n\\t */\\n\\toverflow: hidden;\\n\\twidth: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\\n\\theight: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\\n\\n\\t/* This is check icon element made from border-width mixed with animations. */\\n\\t&::after {\\n\\t\\t/* Because of border transformation we need to \\\"hard code\\\" left position. */\\n\\t\\tleft: 25%;\\n\\n\\t\\ttop: 50%;\\n\\t\\topacity: 0;\\n\\t\\theight: 0;\\n\\t\\twidth: 0;\\n\\n\\t\\ttransform: scaleX(-1) rotate(135deg);\\n\\t\\ttransform-origin: left top;\\n\\t\\tborder-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\\n\\t\\tborder-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\\n\\n\\t\\tanimation-name: ck-upload-complete-icon-check;\\n\\t\\tanimation-duration: 500ms;\\n\\t\\tanimation-delay: 500ms;\\n\\t\\tanimation-fill-mode: forwards;\\n\\n\\t\\t/* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n}\\n\\n@keyframes ck-upload-complete-icon-show {\\n\\tfrom {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\tto {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n@keyframes ck-upload-complete-icon-hide {\\n\\tfrom {\\n\\t\\topacity: 1;\\n\\t}\\n\\n\\tto {\\n\\t\\topacity: 0;\\n\\t}\\n}\\n\\n@keyframes ck-upload-complete-icon-check {\\n\\t0% {\\n\\t\\topacity: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t}\\n\\t33% {\\n\\t\\twidth: 0.3em;\\n\\t\\theight: 0;\\n\\t}\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t\\twidth: 0.3em;\\n\\t\\theight: 0.45em;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-upload-placeholder-loader{align-items:center;display:flex;justify-content:center;left:0;position:absolute;top:0}.ck .ck-upload-placeholder-loader:before{content:\\\"\\\";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px;--ck-upload-placeholder-image-aspect-ratio:2.8}.ck .ck-image-upload-placeholder{margin:0;width:100%}.ck .ck-image-upload-placeholder.image-inline{width:calc(var(--ck-upload-placeholder-loader-size)*2*var(--ck-upload-placeholder-image-aspect-ratio))}.ck .ck-image-upload-placeholder img{aspect-ratio:var(--ck-upload-placeholder-image-aspect-ratio)}.ck .ck-upload-placeholder-loader{height:100%;width:100%}.ck .ck-upload-placeholder-loader:before{animation:ck-upload-placeholder-loader 1s linear infinite;border-radius:50%;border-right:2px solid transparent;border-top:3px solid var(--ck-color-upload-placeholder-loader);height:var(--ck-upload-placeholder-loader-size);width:var(--ck-upload-placeholder-loader-size)}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadloader.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadloader.css\"],\"names\":[],\"mappings\":\"AAKA,kCAGC,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CAEvB,MAAO,CALP,iBAAkB,CAIlB,KAOD,CAJC,yCACC,UAAW,CACX,iBACD,CCXD,MACC,4CAAqD,CACrD,wCAAyC,CACzC,8CACD,CAEA,iCAGC,QAAS,CADT,UAgBD,CAbC,8CACC,sGACD,CAEA,qCAOC,4DACD,CAGD,kCAEC,WAAY,CADZ,UAWD,CARC,yCAMC,yDAA0D,CAH1D,iBAAkB,CAElB,kCAAmC,CADnC,8DAA+D,CAF/D,+CAAgD,CADhD,8CAMD,CAGD,wCACC,GACC,uBACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-upload-placeholder-loader {\\n\\tposition: absolute;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\n\\t&::before {\\n\\t\\tcontent: '';\\n\\t\\tposition: relative;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);\\n\\t--ck-upload-placeholder-loader-size: 32px;\\n\\t--ck-upload-placeholder-image-aspect-ratio: 2.8;\\n}\\n\\n.ck .ck-image-upload-placeholder {\\n\\t/* We need to control the full width of the SVG gray background. */\\n\\twidth: 100%;\\n\\tmargin: 0;\\n\\n\\t&.image-inline {\\n\\t\\twidth: calc( 2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio) );\\n\\t}\\n\\n\\t& img {\\n\\t\\t/*\\n\\t\\t * This is an arbitrary aspect for a 1x1 px GIF to display to the user. Not too tall, not too short.\\n\\t\\t * There's nothing special about this number except that it should make the image placeholder look like\\n\\t\\t * a real image during this short period after the upload started and before the image was read from the\\n\\t\\t * file system (and a rich preview was loaded).\\n\\t\\t */\\n\\t\\taspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio);\\n\\t}\\n}\\n\\n.ck .ck-upload-placeholder-loader {\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\n\\t&::before {\\n\\t\\twidth: var(--ck-upload-placeholder-loader-size);\\n\\t\\theight: var(--ck-upload-placeholder-loader-size);\\n\\t\\tborder-radius: 50%;\\n\\t\\tborder-top: 3px solid var(--ck-color-upload-placeholder-loader);\\n\\t\\tborder-right: 2px solid transparent;\\n\\t\\tanimation: ck-upload-placeholder-loader 1s linear infinite;\\n\\t}\\n}\\n\\n@keyframes ck-upload-placeholder-loader {\\n\\tto {\\n\\t\\ttransform: rotate( 360deg );\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-editor__editable .image,.ck.ck-editor__editable .image-inline{position:relative}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{left:0;position:absolute;top:0}.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{background:var(--ck-color-upload-bar-background);height:2px;transition:width .1s;width:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadprogress.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadprogress.css\"],\"names\":[],\"mappings\":\"AAMC,qEAEC,iBACD,CAGA,uGAIC,MAAO,CAFP,iBAAkB,CAClB,KAED,CCRC,yFACC,oBACD,CAID,uGAIC,gDAAiD,CAFjD,UAAW,CAGX,oBAAuB,CAFvB,OAGD,CAGD,kBACC,GAAO,SAAY,CACnB,GAAO,SAAY,CACpB\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-editor__editable {\\n\\t& .image,\\n\\t& .image-inline {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t/* Upload progress bar. */\\n\\t& .image .ck-progress-bar,\\n\\t& .image-inline .ck-progress-bar {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-editor__editable {\\n\\t& .image,\\n\\t& .image-inline {\\n\\t\\t/* Showing animation. */\\n\\t\\t&.ck-appear {\\n\\t\\t\\tanimation: fadeIn 700ms;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Upload progress bar. */\\n\\t& .image .ck-progress-bar,\\n\\t& .image-inline .ck-progress-bar {\\n\\t\\theight: 2px;\\n\\t\\twidth: 0;\\n\\t\\tbackground: var(--ck-color-upload-bar-background);\\n\\t\\ttransition: width 100ms;\\n\\t}\\n}\\n\\n@keyframes fadeIn {\\n\\tfrom { opacity: 0; }\\n\\tto { opacity: 1; }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-text-alternative-form{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-text-alternative-form .ck-labeled-field-view{display:inline-block}.ck.ck-text-alternative-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-text-alternative-form{flex-wrap:wrap}.ck.ck-text-alternative-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-text-alternative-form .ck-button{flex-basis:50%}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/textalternativeform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAOA,6BACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,oDACC,oBACD,CAEA,uCACC,YACD,CCZA,oCDCD,6BAcE,cAUF,CARE,oDACC,eACD,CAEA,wCACC,cACD,CCrBD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-text-alternative-form {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\n\\t& .ck-labeled-field-view {\\n\\t\\tdisplay: inline-block;\\n\\t}\\n\\n\\t& .ck-label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tflex-wrap: wrap;\\n\\n\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button {\\n\\t\\t\\tflex-basis: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-link_selected{background:var(--ck-color-link-selected-background)}.ck .ck-link_selected span.image-inline{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background)}.ck .ck-fake-link-selection{background:var(--ck-color-link-fake-selection)}.ck .ck-fake-link-selection_collapsed{border-right:1px solid var(--ck-color-base-text);height:100%;margin-right:-1px;outline:1px solid hsla(0,0%,100%,.5)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/link.css\"],\"names\":[],\"mappings\":\"AAMA,sBACC,mDAMD,CAHC,wCACC,yFACD,CAOD,4BACC,8CACD,CAGA,sCAEC,gDAAiD,CADjD,WAAY,CAEZ,iBAAkB,CAClB,oCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* Class added to span element surrounding currently selected link. */\\n.ck .ck-link_selected {\\n\\tbackground: var(--ck-color-link-selected-background);\\n\\n\\t/* Give linked inline images some outline to let the user know they are also part of the link. */\\n\\t& span.image-inline {\\n\\t\\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background);\\n\\t}\\n}\\n\\n/*\\n * Classes used by the \\\"fake visual selection\\\" displayed in the content when an input\\n * in the link UI has focus (the browser does not render the native selection in this state).\\n */\\n.ck .ck-fake-link-selection {\\n\\tbackground: var(--ck-color-link-fake-selection);\\n}\\n\\n/* A collapsed fake visual selection. */\\n.ck .ck-fake-link-selection_collapsed {\\n\\theight: 100%;\\n\\tborder-right: 1px solid var(--ck-color-base-text);\\n\\tmargin-right: -1px;\\n\\toutline: solid 1px hsla(0, 0%, 100%, .5);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-link-actions{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-link-actions .ck-link-actions__preview{display:inline-block}.ck.ck-link-actions .ck-link-actions__preview .ck-button__label{overflow:hidden}@media screen and (max-width:600px){.ck.ck-link-actions{flex-wrap:wrap}.ck.ck-link-actions .ck-link-actions__preview{flex-basis:100%}.ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){flex-basis:50%}}.ck.ck-link-actions .ck-button.ck-link-actions__preview{padding-left:0;padding-right:0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{color:var(--ck-color-link-default);cursor:pointer;max-width:var(--ck-input-width);min-width:3em;padding:0 var(--ck-spacing-medium);text-align:center;text-overflow:ellipsis}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label:hover{text-decoration:underline}.ck.ck-link-actions .ck-button.ck-link-actions__preview,.ck.ck-link-actions .ck-button.ck-link-actions__preview:active,.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus,.ck.ck-link-actions .ck-button.ck-link-actions__preview:hover{background:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:active{box-shadow:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus .ck-button__label{text-decoration:underline}[dir=ltr] .ck.ck-link-actions .ck-button:not(:first-child),[dir=rtl] .ck.ck-link-actions .ck-button:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-link-actions .ck-button.ck-link-actions__preview{margin:var(--ck-spacing-standard) var(--ck-spacing-standard) 0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{max-width:100%;min-width:0}[dir=ltr] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview),[dir=rtl] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){margin-left:0}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-link/theme/linkactions.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/linkactions.css\"],\"names\":[],\"mappings\":\"AAOA,oBACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,8CACC,oBAKD,CAHC,gEACC,eACD,CCXD,oCDCD,oBAcE,cAUF,CARE,8CACC,eACD,CAEA,8DACC,cACD,CCrBD,CCIA,wDACC,cAAe,CACf,eAmCD,CAjCC,0EAEC,kCAAmC,CAEnC,cAAe,CAIf,+BAAgC,CAChC,aAAc,CARd,kCAAmC,CASnC,iBAAkB,CAPlB,sBAYD,CAHC,gFACC,yBACD,CAGD,mPAIC,eACD,CAEA,+DACC,eACD,CAGC,gFACC,yBACD,CAWD,qHACC,sCACD,CDtDD,oCC0DC,wDACC,8DAMD,CAJC,0EAEC,cAAe,CADf,WAED,CAGD,gJAME,aAEF,CDzED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-link-actions {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\n\\t& .ck-link-actions__preview {\\n\\t\\tdisplay: inline-block;\\n\\n\\t\\t& .ck-button__label {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tflex-wrap: wrap;\\n\\n\\t\\t& .ck-link-actions__preview {\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button:not(.ck-link-actions__preview) {\\n\\t\\t\\tflex-basis: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n@import \\\"../mixins/_focus.css\\\";\\n@import \\\"../mixins/_shadow.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-link-actions {\\n\\t& .ck-button.ck-link-actions__preview {\\n\\t\\tpadding-left: 0;\\n\\t\\tpadding-right: 0;\\n\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tpadding: 0 var(--ck-spacing-medium);\\n\\t\\t\\tcolor: var(--ck-color-link-default);\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\tcursor: pointer;\\n\\n\\t\\t\\t/* Match the box model of the link editor form's input so the balloon\\n\\t\\t\\tdoes not change width when moving between actions and the form. */\\n\\t\\t\\tmax-width: var(--ck-input-width);\\n\\t\\t\\tmin-width: 3em;\\n\\t\\t\\ttext-align: center;\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\ttext-decoration: underline;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&,\\n\\t\\t&:hover,\\n\\t\\t&:focus,\\n\\t\\t&:active {\\n\\t\\t\\tbackground: none;\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t}\\n\\n\\t\\t&:focus {\\n\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\ttext-decoration: underline;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-dir ltr {\\n\\t\\t& .ck-button:not(:first-child) {\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-dir rtl {\\n\\t\\t& .ck-button:not(:last-child) {\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\t& .ck-button.ck-link-actions__preview {\\n\\t\\t\\tmargin: var(--ck-spacing-standard) var(--ck-spacing-standard) 0;\\n\\n\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\tmax-width: 100%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& .ck-button:not(.ck-link-actions__preview) {\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tmargin-left: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-left: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-link-form{display:flex}.ck.ck-link-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-link-form{flex-wrap:wrap}.ck.ck-link-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-link-form .ck-button{flex-basis:50%}}.ck.ck-link-form_layout-vertical{display:block}.ck.ck-link-form_layout-vertical .ck-button.ck-button-cancel,.ck.ck-link-form_layout-vertical .ck-button.ck-button-save{margin-top:var(--ck-spacing-medium)}.ck.ck-link-form_layout-vertical{min-width:var(--ck-input-width);padding:0}.ck.ck-link-form_layout-vertical .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small)}.ck.ck-link-form_layout-vertical .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-link-form_layout-vertical>.ck-button{border-radius:0;margin:0;padding:var(--ck-spacing-standard);width:50%}.ck.ck-link-form_layout-vertical>.ck-button:not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-link-form_layout-vertical>.ck-button,[dir=rtl] .ck.ck-link-form_layout-vertical>.ck-button{margin-left:0}[dir=rtl] .ck.ck-link-form_layout-vertical>.ck-button:last-of-type{border-right:1px solid var(--ck-color-base-border)}.ck.ck-link-form_layout-vertical .ck.ck-list{margin:var(--ck-spacing-standard) var(--ck-spacing-large)}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton{padding:0;width:100%}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton:hover{background:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-link/theme/linkform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/linkform.css\"],\"names\":[],\"mappings\":\"AAOA,iBACC,YAiBD,CAfC,2BACC,YACD,CCNA,oCDCD,iBAQE,cAUF,CARE,wCACC,eACD,CAEA,4BACC,cACD,CCfD,CDuBD,iCACC,aAYD,CALE,wHAEC,mCACD,CE/BF,iCAEC,+BAAgC,CADhC,SAgDD,CA7CC,wDACC,8EAMD,CAJC,uEACC,WAAY,CACZ,UACD,CAGD,4CAIC,eAAgB,CAFhB,QAAS,CADT,kCAAmC,CAEnC,SAkBD,CAfC,wDACC,gDACD,CARD,4GAeE,aAMF,CAJE,mEACC,kDACD,CAKF,6CACC,yDAUD,CARC,wEACC,SAAU,CACV,UAKD,CAHC,8EACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-link-form {\\n\\tdisplay: flex;\\n\\n\\t& .ck-label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tflex-wrap: wrap;\\n\\n\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button {\\n\\t\\t\\tflex-basis: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * Style link form differently when manual decorators are available.\\n * See: https://github.com/ckeditor/ckeditor5-link/issues/186.\\n */\\n.ck.ck-link-form_layout-vertical {\\n\\tdisplay: block;\\n\\n\\t/*\\n\\t * Whether the form is in the responsive mode or not, if there are decorator buttons\\n\\t * keep the top margin of action buttons medium.\\n\\t */\\n\\t& .ck-button {\\n\\t\\t&.ck-button-save,\\n\\t\\t&.ck-button-cancel {\\n\\t\\t\\tmargin-top: var(--ck-spacing-medium);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n/*\\n * Style link form differently when manual decorators are available.\\n * See: https://github.com/ckeditor/ckeditor5-link/issues/186.\\n */\\n.ck.ck-link-form_layout-vertical {\\n\\tpadding: 0;\\n\\tmin-width: var(--ck-input-width);\\n\\n\\t& .ck-labeled-field-view {\\n\\t\\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small);\\n\\n\\t\\t& .ck-input-text {\\n\\t\\t\\tmin-width: 0;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-button {\\n\\t\\tpadding: var(--ck-spacing-standard);\\n\\t\\tmargin: 0;\\n\\t\\twidth: 50%;\\n\\t\\tborder-radius: 0;\\n\\n\\t\\t&:not(:focus) {\\n\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tmargin-left: 0;\\n\\n\\t\\t\\t&:last-of-type {\\n\\t\\t\\t\\tborder-right: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* Using additional `.ck` class for stronger CSS specificity than `.ck.ck-link-form > :not(:first-child)`. */\\n\\t& .ck.ck-list {\\n\\t\\tmargin: var(--ck-spacing-standard) var(--ck-spacing-large);\\n\\n\\t\\t& .ck-button.ck-switchbutton {\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tbackground: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-editor__editable a span.image-inline:after,.ck.ck-editor__editable figure.image>a:after{display:block;position:absolute}:root{--ck-link-image-indicator-icon-size:20;--ck-link-image-indicator-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck.ck-editor__editable a span.image-inline:after,.ck.ck-editor__editable figure.image>a:after{background-color:rgba(0,0,0,.4);background-image:url(\\\"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTExLjA3NyAxNSAuOTkxLTEuNDE2YS43NS43NSAwIDEgMSAxLjIyOS44NmwtMS4xNDggMS42NGEuNzQ4Ljc0OCAwIDAgMS0uMjE3LjIwNiA1LjI1MSA1LjI1MSAwIDAgMS04LjUwMy01Ljk1NS43NDEuNzQxIDAgMCAxIC4xMi0uMjc0bDEuMTQ3LTEuNjM5YS43NS43NSAwIDEgMSAxLjIyOC44Nkw0LjkzMyAxMC43bC4wMDYuMDAzYTMuNzUgMy43NSAwIDAgMCA2LjEzMiA0LjI5NGwuMDA2LjAwNHptNS40OTQtNS4zMzVhLjc0OC43NDggMCAwIDEtLjEyLjI3NGwtMS4xNDcgMS42MzlhLjc1Ljc1IDAgMSAxLTEuMjI4LS44NmwuODYtMS4yM2EzLjc1IDMuNzUgMCAwIDAtNi4xNDQtNC4zMDFsLS44NiAxLjIyOWEuNzUuNzUgMCAwIDEtMS4yMjktLjg2bDEuMTQ4LTEuNjRhLjc0OC43NDggMCAwIDEgLjIxNy0uMjA2IDUuMjUxIDUuMjUxIDAgMCAxIDguNTAzIDUuOTU1em0tNC41NjMtMi41MzJhLjc1Ljc1IDAgMCAxIC4xODQgMS4wNDVsLTMuMTU1IDQuNTA1YS43NS43NSAwIDEgMS0xLjIyOS0uODZsMy4xNTUtNC41MDZhLjc1Ljc1IDAgMCAxIDEuMDQ1LS4xODR6Ii8+PC9zdmc+\\\");background-position:50%;background-repeat:no-repeat;background-size:14px;border-radius:100%;content:\\\"\\\";height:calc(var(--ck-link-image-indicator-icon-is-visible)*var(--ck-link-image-indicator-icon-size));overflow:hidden;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);width:calc(var(--ck-link-image-indicator-icon-is-visible)*var(--ck-link-image-indicator-icon-size))}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-link/theme/linkimage.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/linkimage.css\"],\"names\":[],\"mappings\":\"AASE,+FACC,aAAc,CACd,iBACD,CCPF,MAEC,sCAAuC,CACvC,oEACD,CAME,+FAUC,+BAAqC,CACrC,83BAA+3B,CAG/3B,uBAA2B,CAD3B,2BAA4B,CAD5B,oBAAqB,CAGrB,kBAAmB,CAdnB,UAAW,CAsBX,oGAAuG,CAFvG,eAAgB,CAbhB,sCAAwC,CADxC,oCAAsC,CAetC,mGAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-editor__editable {\\n\\t/* Linked image indicator */\\n\\t& figure.image > a,\\n\\t& a span.image-inline {\\n\\t\\t&::after {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tposition: absolute;\\n\\t\\t}\\n\\t}\\n}\\n\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/* Match the icon size with the upload indicator brought by the image upload feature. */\\n\\t--ck-link-image-indicator-icon-size: 20;\\n\\t--ck-link-image-indicator-icon-is-visible: clamp(0px, 100% - 50px, 1px);\\n}\\n\\n.ck.ck-editor__editable {\\n\\t/* Linked image indicator */\\n\\t& figure.image > a,\\n\\t& a span.image-inline {\\n\\t\\t&::after {\\n\\t\\t\\tcontent: \\\"\\\";\\n\\n\\t\\t\\t/*\\n\\t\\t\\t * Smaller images should have the icon closer to the border.\\n\\t\\t\\t * Match the icon position with the upload indicator brought by the image upload feature.\\n\\t\\t\\t */\\n\\t\\t\\ttop: min(var(--ck-spacing-medium), 6%);\\n\\t\\t\\tright: min(var(--ck-spacing-medium), 6%);\\n\\n\\t\\t\\tbackground-color: hsla(0, 0%, 0%, .4);\\n\\t\\t\\tbackground-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTExLjA3NyAxNSAuOTkxLTEuNDE2YS43NS43NSAwIDEgMSAxLjIyOS44NmwtMS4xNDggMS42NGEuNzQ4Ljc0OCAwIDAgMS0uMjE3LjIwNiA1LjI1MSA1LjI1MSAwIDAgMS04LjUwMy01Ljk1NS43NDEuNzQxIDAgMCAxIC4xMi0uMjc0bDEuMTQ3LTEuNjM5YS43NS43NSAwIDEgMSAxLjIyOC44Nkw0LjkzMyAxMC43bC4wMDYuMDAzYTMuNzUgMy43NSAwIDAgMCA2LjEzMiA0LjI5NGwuMDA2LjAwNHptNS40OTQtNS4zMzVhLjc0OC43NDggMCAwIDEtLjEyLjI3NGwtMS4xNDcgMS42MzlhLjc1Ljc1IDAgMSAxLTEuMjI4LS44NmwuODYtMS4yM2EzLjc1IDMuNzUgMCAwIDAtNi4xNDQtNC4zMDFsLS44NiAxLjIyOWEuNzUuNzUgMCAwIDEtMS4yMjktLjg2bDEuMTQ4LTEuNjRhLjc0OC43NDggMCAwIDEgLjIxNy0uMjA2IDUuMjUxIDUuMjUxIDAgMCAxIDguNTAzIDUuOTU1em0tNC41NjMtMi41MzJhLjc1Ljc1IDAgMCAxIC4xODQgMS4wNDVsLTMuMTU1IDQuNTA1YS43NS43NSAwIDEgMS0xLjIyOS0uODZsMy4xNTUtNC41MDZhLjc1Ljc1IDAgMCAxIDEuMDQ1LS4xODR6Ii8+PC9zdmc+\\\");\\n\\t\\t\\tbackground-size: 14px;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tborder-radius: 100%;\\n\\n\\t\\t\\t/*\\n\\t\\t\\t* Use CSS math to simulate container queries.\\n\\t\\t\\t* https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\\n\\t\\t\\t*/\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twidth: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));\\n\\t\\t\\theight: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-collapsible.ck-collapsible_collapsed>.ck-collapsible__children{display:none}:root{--ck-collapsible-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-collapsible>.ck.ck-button{border-radius:0;color:inherit;font-weight:700;padding:var(--ck-spacing-medium) var(--ck-spacing-large);width:100%}.ck.ck-collapsible>.ck.ck-button:focus{background:transparent}.ck.ck-collapsible>.ck.ck-button:active,.ck.ck-collapsible>.ck.ck-button:hover:not(:focus),.ck.ck-collapsible>.ck.ck-button:not(:focus){background:transparent;border-color:transparent;box-shadow:none}.ck.ck-collapsible>.ck.ck-button>.ck-icon{margin-right:var(--ck-spacing-medium);width:var(--ck-collapsible-arrow-size)}.ck.ck-collapsible>.ck-collapsible__children{padding:0 var(--ck-spacing-large) var(--ck-spacing-large)}.ck.ck-collapsible.ck-collapsible_collapsed>.ck.ck-button .ck-icon{transform:rotate(-90deg)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-list/theme/collapsible.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-list/collapsible.css\"],\"names\":[],\"mappings\":\"AAMC,sEACC,YACD,CCHD,MACC,yDACD,CAGC,iCAIC,eAAgB,CAChB,aAAc,CAHd,eAAiB,CACjB,wDAAyD,CAFzD,UAoBD,CAdC,uCACC,sBACD,CAEA,wIACC,sBAAuB,CACvB,wBAAyB,CACzB,eACD,CAEA,0CACC,qCAAsC,CACtC,sCACD,CAGD,6CACC,yDACD,CAGC,mEACC,wBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-collapsible.ck-collapsible_collapsed {\\n\\t& > .ck-collapsible__children {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-collapsible-arrow-size: calc(0.5 * var(--ck-icon-size));\\n}\\n\\n.ck.ck-collapsible {\\n\\t& > .ck.ck-button {\\n\\t\\twidth: 100%;\\n\\t\\tfont-weight: bold;\\n\\t\\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large);\\n\\t\\tborder-radius: 0;\\n\\t\\tcolor: inherit;\\n\\n\\t\\t&:focus {\\n\\t\\t\\tbackground: transparent;\\n\\t\\t}\\n\\n\\t\\t&:active, &:not(:focus), &:hover:not(:focus) {\\n\\t\\t\\tbackground: transparent;\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t}\\n\\n\\t\\t& > .ck-icon {\\n\\t\\t\\tmargin-right: var(--ck-spacing-medium);\\n\\t\\t\\twidth: var(--ck-collapsible-arrow-size);\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-collapsible__children {\\n\\t\\tpadding: 0 var(--ck-spacing-large) var(--ck-spacing-large);\\n\\t}\\n\\n\\t&.ck-collapsible_collapsed {\\n\\t\\t& > .ck.ck-button .ck-icon {\\n\\t\\t\\ttransform: rotate(-90deg);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-editor__editable .ck-list-bogus-paragraph{display:block}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-list/theme/documentlist.css\"],\"names\":[],\"mappings\":\"AAKA,8CACC,aACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-editor__editable .ck-list-bogus-paragraph {\\n\\tdisplay: block;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content ol{list-style-type:decimal}.ck-content ol ol{list-style-type:lower-latin}.ck-content ol ol ol{list-style-type:lower-roman}.ck-content ol ol ol ol{list-style-type:upper-latin}.ck-content ol ol ol ol ol{list-style-type:upper-roman}.ck-content ul{list-style-type:disc}.ck-content ul ul{list-style-type:circle}.ck-content ul ul ul,.ck-content ul ul ul ul{list-style-type:square}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-list/theme/list.css\"],\"names\":[],\"mappings\":\"AAKA,eACC,uBAiBD,CAfC,kBACC,2BAaD,CAXC,qBACC,2BASD,CAPC,wBACC,2BAKD,CAHC,2BACC,2BACD,CAMJ,eACC,oBAaD,CAXC,kBACC,sBASD,CAJE,6CACC,sBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content ol {\\n\\tlist-style-type: decimal;\\n\\n\\t& ol {\\n\\t\\tlist-style-type: lower-latin;\\n\\n\\t\\t& ol {\\n\\t\\t\\tlist-style-type: lower-roman;\\n\\n\\t\\t\\t& ol {\\n\\t\\t\\t\\tlist-style-type: upper-latin;\\n\\n\\t\\t\\t\\t& ol {\\n\\t\\t\\t\\t\\tlist-style-type: upper-roman;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck-content ul {\\n\\tlist-style-type: disc;\\n\\n\\t& ul {\\n\\t\\tlist-style-type: circle;\\n\\n\\t\\t& ul {\\n\\t\\t\\tlist-style-type: square;\\n\\n\\t\\t\\t& ul {\\n\\t\\t\\t\\tlist-style-type: square;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-list-properties.ck-list-properties_without-styles{padding:var(--ck-spacing-large)}.ck.ck-list-properties.ck-list-properties_without-styles>*{min-width:14em}.ck.ck-list-properties.ck-list-properties_without-styles>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-list-styles-list{grid-template-columns:repeat(4,auto)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible{border-top:1px solid var(--ck-color-base-border)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*{width:100%}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties .ck.ck-numbered-list-properties__start-index .ck-input{min-width:auto;width:100%}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order{background:transparent;margin-bottom:calc(var(--ck-spacing-tiny)*-1);padding-left:0;padding-right:0}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:active,.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:hover{background:none;border-color:transparent;box-shadow:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-list/listproperties.css\"],\"names\":[],\"mappings\":\"AAOC,yDACC,+BASD,CAPC,2DACC,cAKD,CAHC,6DACC,qCACD,CASD,wFACC,oCACD,CAGA,mFACC,gDAWD,CARE,+GACC,UAKD,CAHC,iHACC,qCACD,CAMJ,8EACC,cAAe,CACf,UACD,CAEA,uEACC,sBAAuB,CAGvB,6CAAgD,CAFhD,cAAe,CACf,eAQD,CALC,2JAGC,eAAgB,CADhB,wBAAyB,CADzB,eAGD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-list-properties {\\n\\t/* When there are no list styles and there is no collapsible. */\\n\\t&.ck-list-properties_without-styles {\\n\\t\\tpadding: var(--ck-spacing-large);\\n\\n\\t\\t& > * {\\n\\t\\t\\tmin-width: 14em;\\n\\n\\t\\t\\t& + * {\\n\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * When the numbered list property fields (start at, reversed) should be displayed,\\n\\t * more horizontal space is needed. Reconfigure the style grid to create that space.\\n\\t */\\n\\t&.ck-list-properties_with-numbered-properties {\\n\\t\\t& > .ck-list-styles-list {\\n\\t\\t\\tgrid-template-columns: repeat( 4, auto );\\n\\t\\t}\\n\\n\\t\\t/* When list styles are rendered and property fields are in a collapsible. */\\n\\t\\t& > .ck-collapsible {\\n\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\n\\t\\t\\t& > .ck-collapsible__children {\\n\\t\\t\\t\\t& > * {\\n\\t\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t\\t& + * {\\n\\t\\t\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-numbered-list-properties__start-index .ck-input {\\n\\t\\tmin-width: auto;\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t& .ck.ck-numbered-list-properties__reversed-order {\\n\\t\\tbackground: transparent;\\n\\t\\tpadding-left: 0;\\n\\t\\tpadding-right: 0;\\n\\t\\tmargin-bottom: calc(-1 * var(--ck-spacing-tiny));\\n\\n\\t\\t&:active, &:hover {\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tbackground: none;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-list-styles-list{display:grid}:root{--ck-list-style-button-size:44px}.ck.ck-list-styles-list{column-gap:var(--ck-spacing-medium);grid-template-columns:repeat(3,auto);padding:var(--ck-spacing-large);row-gap:var(--ck-spacing-medium)}.ck.ck-list-styles-list .ck-button{box-sizing:content-box;margin:0;padding:0}.ck.ck-list-styles-list .ck-button,.ck.ck-list-styles-list .ck-button .ck-icon{height:var(--ck-list-style-button-size);width:var(--ck-list-style-button-size)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-list/theme/liststyles.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-list/liststyles.css\"],\"names\":[],\"mappings\":\"AAKA,wBACC,YACD,CCFA,MACC,gCACD,CAEA,wBAGC,mCAAoC,CAFpC,oCAAwC,CAGxC,+BAAgC,CAFhC,gCA4BD,CAxBC,mCAiBC,sBAAuB,CAPvB,QAAS,CANT,SAmBD,CAJC,+EAhBA,uCAAwC,CADxC,sCAoBA\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-list-styles-list {\\n\\tdisplay: grid;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-list-style-button-size: 44px;\\n}\\n\\n.ck.ck-list-styles-list {\\n\\tgrid-template-columns: repeat( 3, auto );\\n\\trow-gap: var(--ck-spacing-medium);\\n\\tcolumn-gap: var(--ck-spacing-medium);\\n\\tpadding: var(--ck-spacing-large);\\n\\n\\t& .ck-button {\\n\\t\\t/* Make the button look like a thumbnail (the icon \\\"takes it all\\\"). */\\n\\t\\twidth: var(--ck-list-style-button-size);\\n\\t\\theight: var(--ck-list-style-button-size);\\n\\t\\tpadding: 0;\\n\\n\\t\\t/*\\n\\t\\t * Buttons are aligned by the grid so disable default button margins to not collide with the\\n\\t\\t * gaps in the grid.\\n\\t\\t */\\n\\t\\tmargin: 0;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the button border (which is displayed on focus, BTW) does not steal pixels\\n\\t\\t * from the button dimensions and, as a result, decrease the size of the icon\\n\\t\\t * (which becomes blurry as it scales down).\\n\\t\\t */\\n\\t\\tbox-sizing: content-box;\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\twidth: var(--ck-list-style-button-size);\\n\\t\\t\\theight: var(--ck-list-style-button-size);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-todo-list-checkmark-size:16px}.ck-content .todo-list{list-style:none}.ck-content .todo-list li{margin-bottom:5px}.ck-content .todo-list li .todo-list{margin-top:5px}.ck-content .todo-list .todo-list__label>input{-webkit-appearance:none;border:0;display:inline-block;height:var(--ck-todo-list-checkmark-size);left:-25px;margin-left:0;margin-right:-15px;position:relative;right:0;vertical-align:middle;width:var(--ck-todo-list-checkmark-size)}.ck-content .todo-list .todo-list__label>input:before{border:1px solid #333;border-radius:2px;box-sizing:border-box;content:\\\"\\\";display:block;height:100%;position:absolute;transition:box-shadow .25s ease-in-out,background .25s ease-in-out,border .25s ease-in-out;width:100%}.ck-content .todo-list .todo-list__label>input:after{border-color:transparent;border-style:solid;border-width:0 calc(var(--ck-todo-list-checkmark-size)/8) calc(var(--ck-todo-list-checkmark-size)/8) 0;box-sizing:content-box;content:\\\"\\\";display:block;height:calc(var(--ck-todo-list-checkmark-size)/2.6);left:calc(var(--ck-todo-list-checkmark-size)/3);pointer-events:none;position:absolute;top:calc(var(--ck-todo-list-checkmark-size)/5.3);transform:rotate(45deg);width:calc(var(--ck-todo-list-checkmark-size)/5.3)}.ck-content .todo-list .todo-list__label>input[checked]:before{background:#26ab33;border-color:#26ab33}.ck-content .todo-list .todo-list__label>input[checked]:after{border-color:#fff}.ck-content .todo-list .todo-list__label .todo-list__label__description{vertical-align:middle}[dir=rtl] .todo-list .todo-list__label>input{left:0;margin-left:-15px;margin-right:0;right:-25px}.ck-editor__editable .todo-list .todo-list__label>input{cursor:pointer}.ck-editor__editable .todo-list .todo-list__label>input:hover:before{box-shadow:0 0 0 5px rgba(0,0,0,.1)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-list/theme/todolist.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,kCACD,CAEA,uBACC,eA0ED,CAxEC,0BACC,iBAKD,CAHC,qCACC,cACD,CAIA,+CACC,uBAAwB,CAQxB,QAAS,CAPT,oBAAqB,CAGrB,yCAA0C,CAO1C,UAAW,CAGX,aAAc,CAFd,kBAAmB,CAVnB,iBAAkB,CAWlB,OAAQ,CARR,qBAAsB,CAFtB,wCAqDD,CAxCC,sDAOC,qBAAiC,CACjC,iBAAkB,CALlB,qBAAsB,CACtB,UAAW,CAHX,aAAc,CAKd,WAAY,CAJZ,iBAAkB,CAOlB,0FAAgG,CAJhG,UAKD,CAEA,qDAaC,wBAAyB,CADzB,kBAAmB,CAEnB,sGAA+G,CAX/G,sBAAuB,CAEvB,UAAW,CAJX,aAAc,CAUd,mDAAwD,CAHxD,+CAAoD,CAJpD,mBAAoB,CAFpB,iBAAkB,CAOlB,gDAAqD,CAMrD,uBAAwB,CALxB,kDAMD,CAGC,+DACC,kBAA8B,CAC9B,oBACD,CAEA,8DACC,iBACD,CAIF,wEACC,qBACD,CAKF,6CACC,MAAO,CAGP,iBAAkB,CAFlB,cAAe,CACf,WAED,CAMA,wDACC,cAKD,CAHC,qEACC,mCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-todo-list-checkmark-size: 16px;\\n}\\n\\n.ck-content .todo-list {\\n\\tlist-style: none;\\n\\n\\t& li {\\n\\t\\tmargin-bottom: 5px;\\n\\n\\t\\t& .todo-list {\\n\\t\\t\\tmargin-top: 5px;\\n\\t\\t}\\n\\t}\\n\\n\\t& .todo-list__label {\\n\\t\\t& > input {\\n\\t\\t\\t-webkit-appearance: none;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\tposition: relative;\\n\\t\\t\\twidth: var(--ck-todo-list-checkmark-size);\\n\\t\\t\\theight: var(--ck-todo-list-checkmark-size);\\n\\t\\t\\tvertical-align: middle;\\n\\n\\t\\t\\t/* Needed on iOS */\\n\\t\\t\\tborder: 0;\\n\\n\\t\\t\\t/* LTR styles */\\n\\t\\t\\tleft: -25px;\\n\\t\\t\\tmargin-right: -15px;\\n\\t\\t\\tright: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\t\\tcontent: '';\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\tborder: 1px solid hsl(0, 0%, 20%);\\n\\t\\t\\t\\tborder-radius: 2px;\\n\\t\\t\\t\\ttransition: 250ms ease-in-out box-shadow, 250ms ease-in-out background, 250ms ease-in-out border;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tbox-sizing: content-box;\\n\\t\\t\\t\\tpointer-events: none;\\n\\t\\t\\t\\tcontent: '';\\n\\n\\t\\t\\t\\t/* Calculate tick position, size and border-width proportional to the checkmark size. */\\n\\t\\t\\t\\tleft: calc( var(--ck-todo-list-checkmark-size) / 3 );\\n\\t\\t\\t\\ttop: calc( var(--ck-todo-list-checkmark-size) / 5.3 );\\n\\t\\t\\t\\twidth: calc( var(--ck-todo-list-checkmark-size) / 5.3 );\\n\\t\\t\\t\\theight: calc( var(--ck-todo-list-checkmark-size) / 2.6 );\\n\\t\\t\\t\\tborder-style: solid;\\n\\t\\t\\t\\tborder-color: transparent;\\n\\t\\t\\t\\tborder-width: 0 calc( var(--ck-todo-list-checkmark-size) / 8 ) calc( var(--ck-todo-list-checkmark-size) / 8 ) 0;\\n\\t\\t\\t\\ttransform: rotate(45deg);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&[checked] {\\n\\t\\t\\t\\t&::before {\\n\\t\\t\\t\\t\\tbackground: hsl(126, 64%, 41%);\\n\\t\\t\\t\\t\\tborder-color: hsl(126, 64%, 41%);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&::after {\\n\\t\\t\\t\\t\\tborder-color: hsl(0, 0%, 100%);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& .todo-list__label__description {\\n\\t\\t\\tvertical-align: middle;\\n\\t\\t}\\n\\t}\\n}\\n\\n/* RTL styles */\\n[dir=\\\"rtl\\\"] .todo-list .todo-list__label > input {\\n\\tleft: 0;\\n\\tmargin-right: 0;\\n\\tright: -25px;\\n\\tmargin-left: -15px;\\n}\\n\\n/*\\n * To-do list should be interactive only during the editing\\n * (https://github.com/ckeditor/ckeditor5/issues/2090).\\n */\\n.ck-editor__editable .todo-list .todo-list__label > input {\\n\\tcursor: pointer;\\n\\n\\t&:hover::before {\\n\\t\\tbox-shadow: 0 0 0 5px hsla(0, 0%, 0%, 0.1);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content .media{clear:both;display:block;margin:.9em 0;min-width:15em}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaembed.css\"],\"names\":[],\"mappings\":\"AAKA,mBAGC,UAAW,CASX,aAAc,CAJd,aAAe,CAQf,cACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content .media {\\n\\t/* Don't allow floated content overlap the media.\\n\\thttps://github.com/ckeditor/ckeditor5-media-embed/issues/53 */\\n\\tclear: both;\\n\\n\\t/* Make sure there is some space between the content and the media. */\\n\\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\\n\\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\\n\\tmargin: 0.9em 0;\\n\\n\\t/* Make sure media is not overriden with Bootstrap default `flex` value.\\n\\tSee: https://github.com/ckeditor/ckeditor5/issues/1373. */\\n\\tdisplay: block;\\n\\n\\t/* Give the media some minimal width in the content to prevent them\\n\\tfrom being \\\"squashed\\\" in tight spaces, e.g. in table cells (#44) */\\n\\tmin-width: 15em;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-media__wrapper .ck-media__placeholder{align-items:center;display:flex;flex-direction:column}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url{max-width:100%;position:relative}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-media__placeholder__url__text{display:block;overflow:hidden}.ck-media__wrapper[data-oembed-url*=\\\"facebook.com\\\"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*=\\\"goo.gl/maps\\\"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*=\\\"google.com/maps\\\"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*=\\\"instagram.com\\\"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*=\\\"maps.app.goo.gl\\\"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*=\\\"maps.google.com\\\"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*=\\\"twitter.com\\\"] .ck-media__placeholder__icon *{display:none}.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper>:not(.ck-media__placeholder),.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder{pointer-events:none}:root{--ck-media-embed-placeholder-icon-size:3em;--ck-color-media-embed-placeholder-url-text:#757575;--ck-color-media-embed-placeholder-url-text-hover:var(--ck-color-base-text)}.ck-media__wrapper{margin:0 auto}.ck-media__wrapper .ck-media__placeholder{background:var(--ck-color-base-foreground);padding:calc(var(--ck-spacing-standard)*3)}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon{background-position:50%;background-size:cover;height:var(--ck-media-embed-placeholder-icon-size);margin-bottom:var(--ck-spacing-large);min-width:var(--ck-media-embed-placeholder-icon-size)}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon .ck-icon{height:100%;width:100%}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text{color:var(--ck-color-media-embed-placeholder-url-text);font-style:italic;text-align:center;text-overflow:ellipsis;white-space:nowrap}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:var(--ck-color-media-embed-placeholder-url-text-hover);cursor:pointer;text-decoration:underline}.ck-media__wrapper[data-oembed-url*=\\\"open.spotify.com\\\"]{max-height:380px;max-width:300px}.ck-media__wrapper[data-oembed-url*=\\\"goo.gl/maps\\\"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*=\\\"google.com/maps\\\"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*=\\\"maps.app.goo.gl\\\"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*=\\\"maps.google.com\\\"] .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Im0yMDYuNDc3IDI2MC45LTI4Ljk4NyAyOC45ODdhNS4yMTggNS4yMTggMCAwIDAgMy43OCAxLjYxaDQ5LjYyMWMxLjY5NCAwIDMuMTktLjc5OCA0LjE0Ni0yLjAzN3oiIGZpbGw9IiM1Yzg4YzUiLz48cGF0aCBkPSJNMjI2Ljc0MiAyMjIuOTg4Yy05LjI2NiAwLTE2Ljc3NyA3LjE3LTE2Ljc3NyAxNi4wMTQuMDA3IDIuNzYyLjY2MyA1LjQ3NCAyLjA5MyA3Ljg3NS40My43MDMuODMgMS40MDggMS4xOSAyLjEwNy4zMzMuNTAyLjY1IDEuMDA1Ljk1IDEuNTA4LjM0My40NzcuNjczLjk1Ny45ODggMS40NCAxLjMxIDEuNzY5IDIuNSAzLjUwMiAzLjYzNyA1LjE2OC43OTMgMS4yNzUgMS42ODMgMi42NCAyLjQ2NiAzLjk5IDIuMzYzIDQuMDk0IDQuMDA3IDguMDkyIDQuNiAxMy45MTR2LjAxMmMuMTgyLjQxMi41MTYuNjY2Ljg3OS42NjcuNDAzLS4wMDEuNzY4LS4zMTQuOTMtLjc5OS42MDMtNS43NTYgMi4yMzgtOS43MjkgNC41ODUtMTMuNzk0Ljc4Mi0xLjM1IDEuNjczLTIuNzE1IDIuNDY1LTMuOTkgMS4xMzctMS42NjYgMi4zMjgtMy40IDMuNjM4LTUuMTY5LjMxNS0uNDgyLjY0NS0uOTYyLjk4OC0xLjQzOS4zLS41MDMuNjE3LTEuMDA2Ljk1LTEuNTA4LjM1OS0uNy43Ni0xLjQwNCAxLjE5LTIuMTA3IDEuNDI2LTIuNDAyIDItNS4xMTQgMi4wMDQtNy44NzUgMC04Ljg0NC03LjUxMS0xNi4wMTQtMTYuNzc2LTE2LjAxNHoiIGZpbGw9IiNkZDRiM2UiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PGVsbGlwc2Ugcnk9IjUuNTY0IiByeD0iNS44MjgiIGN5PSIyMzkuMDAyIiBjeD0iMjI2Ljc0MiIgZmlsbD0iIzgwMmQyNyIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMTkwLjMwMSAyMzcuMjgzYy00LjY3IDAtOC40NTcgMy44NTMtOC40NTcgOC42MDZzMy43ODYgOC42MDcgOC40NTcgOC42MDdjMy4wNDMgMCA0LjgwNi0uOTU4IDYuMzM3LTIuNTE2IDEuNTMtMS41NTcgMi4wODctMy45MTMgMi4wODctNi4yOSAwLS4zNjItLjAyMy0uNzIyLS4wNjQtMS4wNzloLTguMjU3djMuMDQzaDQuODVjLS4xOTcuNzU5LS41MzEgMS40NS0xLjA1OCAxLjk4Ni0uOTQyLjk1OC0yLjAyOCAxLjU0OC0zLjkwMSAxLjU0OC0yLjg3NiAwLTUuMjA4LTIuMzcyLTUuMjA4LTUuMjk5IDAtMi45MjYgMi4zMzItNS4yOTkgNS4yMDgtNS4yOTkgMS4zOTkgMCAyLjYxOC40MDcgMy41ODQgMS4yOTNsMi4zODEtMi4zOGMwLS4wMDItLjAwMy0uMDA0LS4wMDQtLjAwNS0xLjU4OC0xLjUyNC0zLjYyLTIuMjE1LTUuOTU1LTIuMjE1em00LjQzIDUuNjYuMDAzLjAwNnYtLjAwM3oiIGZpbGw9IiNmZmYiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0ibTIxNS4xODQgMjUxLjkyOS03Ljk4IDcuOTc5IDI4LjQ3NyAyOC40NzVhNS4yMzMgNS4yMzMgMCAwIDAgLjQ0OS0yLjEyM3YtMzEuMTY1Yy0uNDY5LjY3NS0uOTM0IDEuMzQ5LTEuMzgyIDIuMDA1LS43OTIgMS4yNzUtMS42ODIgMi42NC0yLjQ2NSAzLjk5LTIuMzQ3IDQuMDY1LTMuOTgyIDguMDM4LTQuNTg1IDEzLjc5NC0uMTYyLjQ4NS0uNTI3Ljc5OC0uOTMuNzk5LS4zNjMtLjAwMS0uNjk3LS4yNTUtLjg3OS0uNjY3di0uMDEyYy0uNTkzLTUuODIyLTIuMjM3LTkuODItNC42LTEzLjkxNC0uNzgzLTEuMzUtMS42NzMtMi43MTUtMi40NjYtMy45OS0xLjEzNy0xLjY2Ni0yLjMyNy0zLjQtMy42MzctNS4xNjlsLS4wMDItLjAwM3oiIGZpbGw9IiNjM2MzYzMiLz48cGF0aCBkPSJtMjEyLjk4MyAyNDguNDk1LTM2Ljk1MiAzNi45NTN2LjgxMmE1LjIyNyA1LjIyNyAwIDAgMCA1LjIzOCA1LjIzOGgxLjAxNWwzNS42NjYtMzUuNjY2YTEzNi4yNzUgMTM2LjI3NSAwIDAgMC0yLjc2NC0zLjkgMzcuNTc1IDM3LjU3NSAwIDAgMC0uOTg5LTEuNDQgMzUuMTI3IDM1LjEyNyAwIDAgMC0uOTUtMS41MDhjLS4wODMtLjE2Mi0uMTc2LS4zMjYtLjI2NC0uNDg5eiIgZmlsbD0iI2ZkZGM0ZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJtMjExLjk5OCAyNjEuMDgzLTYuMTUyIDYuMTUxIDI0LjI2NCAyNC4yNjRoLjc4MWE1LjIyNyA1LjIyNyAwIDAgMCA1LjIzOS01LjIzOHYtMS4wNDV6IiBmaWxsPSIjZmZmIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjwvZz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*=\\\"facebook.com\\\"] .ck-media__placeholder{background:#4268b3}.ck-media__wrapper[data-oembed-url*=\\\"facebook.com\\\"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05NjcuNDg0IDBINTYuNTE3QzI1LjMwNCAwIDAgMjUuMzA0IDAgNTYuNTE3djkxMC45NjZDMCA5OTguNjk0IDI1LjI5NyAxMDI0IDU2LjUyMiAxMDI0SDU0N1Y2MjhINDE0VjQ3M2gxMzNWMzU5LjAyOWMwLTEzMi4yNjIgODAuNzczLTIwNC4yODIgMTk4Ljc1Ni0yMDQuMjgyIDU2LjUxMyAwIDEwNS4wODYgNC4yMDggMTE5LjI0NCA2LjA4OVYyOTlsLTgxLjYxNi4wMzdjLTYzLjk5MyAwLTc2LjM4NCAzMC40OTItNzYuMzg0IDc1LjIzNlY0NzNoMTUzLjQ4N2wtMTkuOTg2IDE1NUg3MDd2Mzk2aDI2MC40ODRjMzEuMjEzIDAgNTYuNTE2LTI1LjMwMyA1Ni41MTYtNTYuNTE2VjU2LjUxNUMxMDI0IDI1LjMwMyA5OTguNjk3IDAgOTY3LjQ4NCAwIiBmaWxsPSIjRkZGRkZFIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*=\\\"facebook.com\\\"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#cdf}.ck-media__wrapper[data-oembed-url*=\\\"facebook.com\\\"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*=\\\"instagram.com\\\"] .ck-media__placeholder{background:linear-gradient(-135deg,#1400c7,#b800b1,#f50000)}.ck-media__wrapper[data-oembed-url*=\\\"instagram.com\\\"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTA0IiBoZWlnaHQ9IjUwNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIC4xNTloNTAzLjg0MVY1MDMuOTRIMHoiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+PHVzZSB4bGluazpocmVmPSIjYSIvPjwvbWFzaz48cGF0aCBkPSJNMjUxLjkyMS4xNTljLTY4LjQxOCAwLTc2Ljk5Ny4yOS0xMDMuODY3IDEuNTE2LTI2LjgxNCAxLjIyMy00NS4xMjcgNS40ODItNjEuMTUxIDExLjcxLTE2LjU2NiA2LjQzNy0zMC42MTUgMTUuMDUxLTQ0LjYyMSAyOS4wNTYtMTQuMDA1IDE0LjAwNi0yMi42MTkgMjguMDU1LTI5LjA1NiA0NC42MjEtNi4yMjggMTYuMDI0LTEwLjQ4NyAzNC4zMzctMTEuNzEgNjEuMTUxQy4yOSAxNzUuMDgzIDAgMTgzLjY2MiAwIDI1Mi4wOGMwIDY4LjQxNy4yOSA3Ni45OTYgMS41MTYgMTAzLjg2NiAxLjIyMyAyNi44MTQgNS40ODIgNDUuMTI3IDExLjcxIDYxLjE1MSA2LjQzNyAxNi41NjYgMTUuMDUxIDMwLjYxNSAyOS4wNTYgNDQuNjIxIDE0LjAwNiAxNC4wMDUgMjguMDU1IDIyLjYxOSA0NC42MjEgMjkuMDU3IDE2LjAyNCA2LjIyNyAzNC4zMzcgMTAuNDg2IDYxLjE1MSAxMS43MDkgMjYuODcgMS4yMjYgMzUuNDQ5IDEuNTE2IDEwMy44NjcgMS41MTYgNjguNDE3IDAgNzYuOTk2LS4yOSAxMDMuODY2LTEuNTE2IDI2LjgxNC0xLjIyMyA0NS4xMjctNS40ODIgNjEuMTUxLTExLjcwOSAxNi41NjYtNi40MzggMzAuNjE1LTE1LjA1MiA0NC42MjEtMjkuMDU3IDE0LjAwNS0xNC4wMDYgMjIuNjE5LTI4LjA1NSAyOS4wNTctNDQuNjIxIDYuMjI3LTE2LjAyNCAxMC40ODYtMzQuMzM3IDExLjcwOS02MS4xNTEgMS4yMjYtMjYuODcgMS41MTYtMzUuNDQ5IDEuNTE2LTEwMy44NjYgMC02OC40MTgtLjI5LTc2Ljk5Ny0xLjUxNi0xMDMuODY3LTEuMjIzLTI2LjgxNC01LjQ4Mi00NS4xMjctMTEuNzA5LTYxLjE1MS02LjQzOC0xNi41NjYtMTUuMDUyLTMwLjYxNS0yOS4wNTctNDQuNjIxLTE0LjAwNi0xNC4wMDUtMjguMDU1LTIyLjYxOS00NC42MjEtMjkuMDU2LTE2LjAyNC02LjIyOC0zNC4zMzctMTAuNDg3LTYxLjE1MS0xMS43MUMzMjguOTE3LjQ0OSAzMjAuMzM4LjE1OSAyNTEuOTIxLjE1OVptMCA0NS4zOTFjNjcuMjY1IDAgNzUuMjMzLjI1NyAxMDEuNzk3IDEuNDY5IDI0LjU2MiAxLjEyIDM3LjkwMSA1LjIyNCA0Ni43NzggOC42NzQgMTEuNzU5IDQuNTcgMjAuMTUxIDEwLjAyOSAyOC45NjYgMTguODQ1IDguODE2IDguODE1IDE0LjI3NSAxNy4yMDcgMTguODQ1IDI4Ljk2NiAzLjQ1IDguODc3IDcuNTU0IDIyLjIxNiA4LjY3NCA0Ni43NzggMS4yMTIgMjYuNTY0IDEuNDY5IDM0LjUzMiAxLjQ2OSAxMDEuNzk4IDAgNjcuMjY1LS4yNTcgNzUuMjMzLTEuNDY5IDEwMS43OTctMS4xMiAyNC41NjItNS4yMjQgMzcuOTAxLTguNjc0IDQ2Ljc3OC00LjU3IDExLjc1OS0xMC4wMjkgMjAuMTUxLTE4Ljg0NSAyOC45NjYtOC44MTUgOC44MTYtMTcuMjA3IDE0LjI3NS0yOC45NjYgMTguODQ1LTguODc3IDMuNDUtMjIuMjE2IDcuNTU0LTQ2Ljc3OCA4LjY3NC0yNi41NiAxLjIxMi0zNC41MjcgMS40NjktMTAxLjc5NyAxLjQ2OS02Ny4yNzEgMC03NS4yMzctLjI1Ny0xMDEuNzk4LTEuNDY5LTI0LjU2Mi0xLjEyLTM3LjkwMS01LjIyNC00Ni43NzgtOC42NzQtMTEuNzU5LTQuNTctMjAuMTUxLTEwLjAyOS0yOC45NjYtMTguODQ1LTguODE1LTguODE1LTE0LjI3NS0xNy4yMDctMTguODQ1LTI4Ljk2Ni0zLjQ1LTguODc3LTcuNTU0LTIyLjIxNi04LjY3NC00Ni43NzgtMS4yMTItMjYuNTY0LTEuNDY5LTM0LjUzMi0xLjQ2OS0xMDEuNzk3IDAtNjcuMjY2LjI1Ny03NS4yMzQgMS40NjktMTAxLjc5OCAxLjEyLTI0LjU2MiA1LjIyNC0zNy45MDEgOC42NzQtNDYuNzc4IDQuNTctMTEuNzU5IDEwLjAyOS0yMC4xNTEgMTguODQ1LTI4Ljk2NiA4LjgxNS04LjgxNiAxNy4yMDctMTQuMjc1IDI4Ljk2Ni0xOC44NDUgOC44NzctMy40NSAyMi4yMTYtNy41NTQgNDYuNzc4LTguNjc0IDI2LjU2NC0xLjIxMiAzNC41MzItMS40NjkgMTAxLjc5OC0xLjQ2OVoiIGZpbGw9IiNGRkYiIG1hc2s9InVybCgjYikiLz48cGF0aCBkPSJNMjUxLjkyMSAzMzYuMDUzYy00Ni4zNzggMC04My45NzQtMzcuNTk2LTgzLjk3NC04My45NzMgMC00Ni4zNzggMzcuNTk2LTgzLjk3NCA4My45NzQtODMuOTc0IDQ2LjM3NyAwIDgzLjk3MyAzNy41OTYgODMuOTczIDgzLjk3NCAwIDQ2LjM3Ny0zNy41OTYgODMuOTczLTgzLjk3MyA4My45NzNabTAtMjEzLjMzOGMtNzEuNDQ3IDAtMTI5LjM2NSA1Ny45MTgtMTI5LjM2NSAxMjkuMzY1IDAgNzEuNDQ2IDU3LjkxOCAxMjkuMzY0IDEyOS4zNjUgMTI5LjM2NCA3MS40NDYgMCAxMjkuMzY0LTU3LjkxOCAxMjkuMzY0LTEyOS4zNjQgMC03MS40NDctNTcuOTE4LTEyOS4zNjUtMTI5LjM2NC0xMjkuMzY1Wk00MTYuNjI3IDExNy42MDRjMCAxNi42OTYtMTMuNTM1IDMwLjIzLTMwLjIzMSAzMC4yMy0xNi42OTUgMC0zMC4yMy0xMy41MzQtMzAuMjMtMzAuMjMgMC0xNi42OTYgMTMuNTM1LTMwLjIzMSAzMC4yMy0zMC4yMzEgMTYuNjk2IDAgMzAuMjMxIDEzLjUzNSAzMC4yMzEgMzAuMjMxIiBmaWxsPSIjRkZGIi8+PC9nPjwvc3ZnPg==)}.ck-media__wrapper[data-oembed-url*=\\\"instagram.com\\\"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#ffe0fe}.ck-media__wrapper[data-oembed-url*=\\\"instagram.com\\\"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*=\\\"twitter.com\\\"] .ck.ck-media__placeholder{background:linear-gradient(90deg,#71c6f4,#0d70a5)}.ck-media__wrapper[data-oembed-url*=\\\"twitter.com\\\"] .ck.ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MDAgNDAwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBkPSJNNDAwIDIwMGMwIDExMC41LTg5LjUgMjAwLTIwMCAyMDBTMCAzMTAuNSAwIDIwMCA4OS41IDAgMjAwIDBzMjAwIDg5LjUgMjAwIDIwMHpNMTYzLjQgMzA1LjVjODguNyAwIDEzNy4yLTczLjUgMTM3LjItMTM3LjIgMC0yLjEgMC00LjItLjEtNi4yIDkuNC02LjggMTcuNi0xNS4zIDI0LjEtMjUtOC42IDMuOC0xNy45IDYuNC0yNy43IDcuNiAxMC02IDE3LjYtMTUuNCAyMS4yLTI2LjctOS4zIDUuNS0xOS42IDkuNS0zMC42IDExLjctOC44LTkuNC0yMS4zLTE1LjItMzUuMi0xNS4yLTI2LjYgMC00OC4yIDIxLjYtNDguMiA0OC4yIDAgMy44LjQgNy41IDEuMyAxMS00MC4xLTItNzUuNi0yMS4yLTk5LjQtNTAuNC00LjEgNy4xLTYuNSAxNS40LTYuNSAyNC4yIDAgMTYuNyA4LjUgMzEuNSAyMS41IDQwLjEtNy45LS4yLTE1LjMtMi40LTIxLjgtNnYuNmMwIDIzLjQgMTYuNiA0Mi44IDM4LjcgNDcuMy00IDEuMS04LjMgMS43LTEyLjcgMS43LTMuMSAwLTYuMS0uMy05LjEtLjkgNi4xIDE5LjIgMjMuOSAzMy4xIDQ1IDMzLjUtMTYuNSAxMi45LTM3LjMgMjAuNi01OS45IDIwLjYtMy45IDAtNy43LS4yLTExLjUtLjcgMjEuMSAxMy44IDQ2LjUgMjEuOCA3My43IDIxLjgiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*=\\\"twitter.com\\\"] .ck.ck-media__placeholder .ck-media__placeholder__url__text{color:#b8e6ff}.ck-media__wrapper[data-oembed-url*=\\\"twitter.com\\\"] .ck.ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaembedediting.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-media-embed/mediaembedediting.css\"],\"names\":[],\"mappings\":\"AAMC,0CAGC,kBAAmB,CAFnB,YAAa,CACb,qBAcD,CAXC,sEAEC,cAAe,CAEf,iBAMD,CAJC,wGAEC,aAAc,CADd,eAED,CAWD,6kBACC,YACD,CAYF,2LACC,mBACD,CC1CA,MACC,0CAA2C,CAE3C,mDAA4D,CAC5D,2EACD,CAEA,mBACC,aA+FD,CA7FC,0CAEC,0CAA2C,CAD3C,0CA6BD,CA1BC,uEAIC,uBAA2B,CAC3B,qBAAsB,CAHtB,kDAAmD,CACnD,qCAAsC,CAFtC,qDAUD,CAJC,gFAEC,WAAY,CADZ,UAED,CAGD,4EACC,sDAAuD,CAGvD,iBAAkB,CADlB,iBAAkB,CAElB,sBAAuB,CAHvB,kBAUD,CALC,kFACC,4DAA6D,CAC7D,cAAe,CACf,yBACD,CAIF,wDAEC,gBAAiB,CADjB,eAED,CAEA,4UAIC,wvGACD,CAEA,2EACC,kBAaD,CAXC,wGACC,orBACD,CAEA,6GACC,UAKD,CAHC,mHACC,UACD,CAIF,4EACC,2DAcD,CAZC,yGACC,4jHACD,CAGA,8GACC,aAKD,CAHC,oHACC,UACD,CAIF,6EAEC,iDAaD,CAXC,0GACC,wiCACD,CAEA,+GACC,aAKD,CAHC,qHACC,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-media__wrapper {\\n\\t& .ck-media__placeholder {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\n\\t\\t& .ck-media__placeholder__url {\\n\\t\\t\\t/* Otherwise the URL will overflow when the content is very narrow. */\\n\\t\\t\\tmax-width: 100%;\\n\\n\\t\\t\\tposition: relative;\\n\\n\\t\\t\\t& .ck-media__placeholder__url__text {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&[data-oembed-url*=\\\"twitter.com\\\"],\\n\\t&[data-oembed-url*=\\\"google.com/maps\\\"],\\n\\t&[data-oembed-url*=\\\"goo.gl/maps\\\"],\\n\\t&[data-oembed-url*=\\\"maps.google.com\\\"],\\n\\t&[data-oembed-url*=\\\"maps.app.goo.gl\\\"],\\n\\t&[data-oembed-url*=\\\"facebook.com\\\"],\\n\\t&[data-oembed-url*=\\\"instagram.com\\\"] {\\n\\t\\t& .ck-media__placeholder__icon * {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\\n/* Disable all mouse interaction as long as the editor is not read–only.\\n https://github.com/ckeditor/ckeditor5-media-embed/issues/58 */\\n.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper > *:not(.ck-media__placeholder) {\\n\\tpointer-events: none;\\n}\\n\\n/* Disable all mouse interaction when the widget is not selected (e.g. to avoid opening links by accident).\\n https://github.com/ckeditor/ckeditor5-media-embed/issues/18 */\\n.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder {\\n\\tpointer-events: none;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-media-embed-placeholder-icon-size: 3em;\\n\\n\\t--ck-color-media-embed-placeholder-url-text: hsl(0, 0%, 46%);\\n\\t--ck-color-media-embed-placeholder-url-text-hover: var(--ck-color-base-text);\\n}\\n\\n.ck-media__wrapper {\\n\\tmargin: 0 auto;\\n\\n\\t& .ck-media__placeholder {\\n\\t\\tpadding: calc( 3 * var(--ck-spacing-standard) );\\n\\t\\tbackground: var(--ck-color-base-foreground);\\n\\n\\t\\t& .ck-media__placeholder__icon {\\n\\t\\t\\tmin-width: var(--ck-media-embed-placeholder-icon-size);\\n\\t\\t\\theight: var(--ck-media-embed-placeholder-icon-size);\\n\\t\\t\\tmargin-bottom: var(--ck-spacing-large);\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tbackground-size: cover;\\n\\n\\t\\t\\t& .ck-icon {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& .ck-media__placeholder__url__text {\\n\\t\\t\\tcolor: var(--ck-color-media-embed-placeholder-url-text);\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\tfont-style: italic;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tcolor: var(--ck-color-media-embed-placeholder-url-text-hover);\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t\\ttext-decoration: underline;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&[data-oembed-url*=\\\"open.spotify.com\\\"] {\\n\\t\\tmax-width: 300px;\\n\\t\\tmax-height: 380px;\\n\\t}\\n\\n\\t&[data-oembed-url*=\\\"google.com/maps\\\"] .ck-media__placeholder__icon,\\n\\t&[data-oembed-url*=\\\"goo.gl/maps\\\"] .ck-media__placeholder__icon,\\n\\t&[data-oembed-url*=\\\"maps.google.com\\\"] .ck-media__placeholder__icon,\\n\\t&[data-oembed-url*=\\\"maps.app.goo.gl\\\"] .ck-media__placeholder__icon {\\n\\t\\tbackground-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0yMDYuNDc3IDI2MC45bC0yOC45ODcgMjguOTg3YTUuMjE4IDUuMjE4IDAgMCAwIDMuNzggMS42MWg0OS42MjFjMS42OTQgMCAzLjE5LS43OTggNC4xNDYtMi4wMzd6IiBmaWxsPSIjNWM4OGM1Ii8+PHBhdGggZD0iTTIyNi43NDIgMjIyLjk4OGMtOS4yNjYgMC0xNi43NzcgNy4xNy0xNi43NzcgMTYuMDE0LjAwNyAyLjc2Mi42NjMgNS40NzQgMi4wOTMgNy44NzUuNDMuNzAzLjgzIDEuNDA4IDEuMTkgMi4xMDcuMzMzLjUwMi42NSAxLjAwNS45NSAxLjUwOC4zNDMuNDc3LjY3My45NTcuOTg4IDEuNDQgMS4zMSAxLjc2OSAyLjUgMy41MDIgMy42MzcgNS4xNjguNzkzIDEuMjc1IDEuNjgzIDIuNjQgMi40NjYgMy45OSAyLjM2MyA0LjA5NCA0LjAwNyA4LjA5MiA0LjYgMTMuOTE0di4wMTJjLjE4Mi40MTIuNTE2LjY2Ni44NzkuNjY3LjQwMy0uMDAxLjc2OC0uMzE0LjkzLS43OTkuNjAzLTUuNzU2IDIuMjM4LTkuNzI5IDQuNTg1LTEzLjc5NC43ODItMS4zNSAxLjY3My0yLjcxNSAyLjQ2NS0zLjk5IDEuMTM3LTEuNjY2IDIuMzI4LTMuNCAzLjYzOC01LjE2OS4zMTUtLjQ4Mi42NDUtLjk2Mi45ODgtMS40MzkuMy0uNTAzLjYxNy0xLjAwNi45NS0xLjUwOC4zNTktLjcuNzYtMS40MDQgMS4xOS0yLjEwNyAxLjQyNi0yLjQwMiAyLTUuMTE0IDIuMDA0LTcuODc1IDAtOC44NDQtNy41MTEtMTYuMDE0LTE2Ljc3Ni0xNi4wMTR6IiBmaWxsPSIjZGQ0YjNlIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxlbGxpcHNlIHJ5PSI1LjU2NCIgcng9IjUuODI4IiBjeT0iMjM5LjAwMiIgY3g9IjIyNi43NDIiIGZpbGw9IiM4MDJkMjciIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTE5MC4zMDEgMjM3LjI4M2MtNC42NyAwLTguNDU3IDMuODUzLTguNDU3IDguNjA2czMuNzg2IDguNjA3IDguNDU3IDguNjA3YzMuMDQzIDAgNC44MDYtLjk1OCA2LjMzNy0yLjUxNiAxLjUzLTEuNTU3IDIuMDg3LTMuOTEzIDIuMDg3LTYuMjkgMC0uMzYyLS4wMjMtLjcyMi0uMDY0LTEuMDc5aC04LjI1N3YzLjA0M2g0Ljg1Yy0uMTk3Ljc1OS0uNTMxIDEuNDUtMS4wNTggMS45ODYtLjk0Mi45NTgtMi4wMjggMS41NDgtMy45MDEgMS41NDgtMi44NzYgMC01LjIwOC0yLjM3Mi01LjIwOC01LjI5OSAwLTIuOTI2IDIuMzMyLTUuMjk5IDUuMjA4LTUuMjk5IDEuMzk5IDAgMi42MTguNDA3IDMuNTg0IDEuMjkzbDIuMzgxLTIuMzhjMC0uMDAyLS4wMDMtLjAwNC0uMDA0LS4wMDUtMS41ODgtMS41MjQtMy42Mi0yLjIxNS01Ljk1NS0yLjIxNXptNC40MyA1LjY2bC4wMDMuMDA2di0uMDAzeiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjE1LjE4NCAyNTEuOTI5bC03Ljk4IDcuOTc5IDI4LjQ3NyAyOC40NzVjLjI4Ny0uNjQ5LjQ0OS0xLjM2Ni40NDktMi4xMjN2LTMxLjE2NWMtLjQ2OS42NzUtLjkzNCAxLjM0OS0xLjM4MiAyLjAwNS0uNzkyIDEuMjc1LTEuNjgyIDIuNjQtMi40NjUgMy45OS0yLjM0NyA0LjA2NS0zLjk4MiA4LjAzOC00LjU4NSAxMy43OTQtLjE2Mi40ODUtLjUyNy43OTgtLjkzLjc5OS0uMzYzLS4wMDEtLjY5Ny0uMjU1LS44NzktLjY2N3YtLjAxMmMtLjU5My01LjgyMi0yLjIzNy05LjgyLTQuNi0xMy45MTQtLjc4My0xLjM1LTEuNjczLTIuNzE1LTIuNDY2LTMuOTktMS4xMzctMS42NjYtMi4zMjctMy40LTMuNjM3LTUuMTY5bC0uMDAyLS4wMDN6IiBmaWxsPSIjYzNjM2MzIi8+PHBhdGggZD0iTTIxMi45ODMgMjQ4LjQ5NWwtMzYuOTUyIDM2Ljk1M3YuODEyYTUuMjI3IDUuMjI3IDAgMCAwIDUuMjM4IDUuMjM4aDEuMDE1bDM1LjY2Ni0zNS42NjZhMTM2LjI3NSAxMzYuMjc1IDAgMCAwLTIuNzY0LTMuOSAzNy41NzUgMzcuNTc1IDAgMCAwLS45ODktMS40NGMtLjI5OS0uNTAzLS42MTYtMS4wMDYtLjk1LTEuNTA4LS4wODMtLjE2Mi0uMTc2LS4zMjYtLjI2NC0uNDg5eiIgZmlsbD0iI2ZkZGM0ZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjExLjk5OCAyNjEuMDgzbC02LjE1MiA2LjE1MSAyNC4yNjQgMjQuMjY0aC43ODFhNS4yMjcgNS4yMjcgMCAwIDAgNS4yMzktNS4yMzh2LTEuMDQ1eiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48L2c+PC9zdmc+);\\n\\t}\\n\\n\\t&[data-oembed-url*=\\\"facebook.com\\\"] .ck-media__placeholder {\\n\\t\\tbackground: hsl(220, 46%, 48%);\\n\\n\\t\\t& .ck-media__placeholder__icon {\\n\\t\\t\\tbackground-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMDI0cHgiIGhlaWdodD0iMTAyNHB4IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPiAgICAgICAgPHRpdGxlPkZpbGwgMTwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz48L2RlZnM+ICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImZMb2dvX1doaXRlIiBmaWxsPSIjRkZGRkZFIj4gICAgICAgICAgICA8cGF0aCBkPSJNOTY3LjQ4NCwwIEw1Ni41MTcsMCBDMjUuMzA0LDAgMCwyNS4zMDQgMCw1Ni41MTcgTDAsOTY3LjQ4MyBDMCw5OTguNjk0IDI1LjI5NywxMDI0IDU2LjUyMiwxMDI0IEw1NDcsMTAyNCBMNTQ3LDYyOCBMNDE0LDYyOCBMNDE0LDQ3MyBMNTQ3LDQ3MyBMNTQ3LDM1OS4wMjkgQzU0NywyMjYuNzY3IDYyNy43NzMsMTU0Ljc0NyA3NDUuNzU2LDE1NC43NDcgQzgwMi4yNjksMTU0Ljc0NyA4NTAuODQyLDE1OC45NTUgODY1LDE2MC44MzYgTDg2NSwyOTkgTDc4My4zODQsMjk5LjAzNyBDNzE5LjM5MSwyOTkuMDM3IDcwNywzMjkuNTI5IDcwNywzNzQuMjczIEw3MDcsNDczIEw4NjAuNDg3LDQ3MyBMODQwLjUwMSw2MjggTDcwNyw2MjggTDcwNywxMDI0IEw5NjcuNDg0LDEwMjQgQzk5OC42OTcsMTAyNCAxMDI0LDk5OC42OTcgMTAyNCw5NjcuNDg0IEwxMDI0LDU2LjUxNSBDMTAyNCwyNS4zMDMgOTk4LjY5NywwIDk2Ny40ODQsMCIgaWQ9IkZpbGwtMSI+PC9wYXRoPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+);\\n\\t\\t}\\n\\n\\t\\t& .ck-media__placeholder__url__text {\\n\\t\\t\\tcolor: hsl(220, 100%, 90%);\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tcolor: hsl(0, 0%, 100%);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&[data-oembed-url*=\\\"instagram.com\\\"] .ck-media__placeholder {\\n\\t\\tbackground: linear-gradient(-135deg,hsl(246, 100%, 39%),hsl(302, 100%, 36%),hsl(0, 100%, 48%));\\n\\n\\t\\t& .ck-media__placeholder__icon {\\n\\t\\t\\tbackground-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI1MDRweCIgaGVpZ2h0PSI1MDRweCIgdmlld0JveD0iMCAwIDUwNCA1MDQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+ICAgICAgICA8dGl0bGU+Z2x5cGgtbG9nb19NYXkyMDE2PC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPiAgICAgICAgPHBvbHlnb24gaWQ9InBhdGgtMSIgcG9pbnRzPSIwIDAuMTU5IDUwMy44NDEgMC4xNTkgNTAzLjg0MSA1MDMuOTQgMCA1MDMuOTQiPjwvcG9seWdvbj4gICAgPC9kZWZzPiAgICA8ZyBpZD0iZ2x5cGgtbG9nb19NYXkyMDE2IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxnIGlkPSJHcm91cC0zIj4gICAgICAgICAgICA8bWFzayBpZD0ibWFzay0yIiBmaWxsPSJ3aGl0ZSI+ICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+ICAgICAgICAgICAgPC9tYXNrPiAgICAgICAgICAgIDxnIGlkPSJDbGlwLTIiPjwvZz4gICAgICAgICAgICA8cGF0aCBkPSJNMjUxLjkyMSwwLjE1OSBDMTgzLjUwMywwLjE1OSAxNzQuOTI0LDAuNDQ5IDE0OC4wNTQsMS42NzUgQzEyMS4yNCwyLjg5OCAxMDIuOTI3LDcuMTU3IDg2LjkwMywxMy4zODUgQzcwLjMzNywxOS44MjIgNTYuMjg4LDI4LjQzNiA0Mi4yODIsNDIuNDQxIEMyOC4yNzcsNTYuNDQ3IDE5LjY2Myw3MC40OTYgMTMuMjI2LDg3LjA2MiBDNi45OTgsMTAzLjA4NiAyLjczOSwxMjEuMzk5IDEuNTE2LDE0OC4yMTMgQzAuMjksMTc1LjA4MyAwLDE4My42NjIgMCwyNTIuMDggQzAsMzIwLjQ5NyAwLjI5LDMyOS4wNzYgMS41MTYsMzU1Ljk0NiBDMi43MzksMzgyLjc2IDYuOTk4LDQwMS4wNzMgMTMuMjI2LDQxNy4wOTcgQzE5LjY2Myw0MzMuNjYzIDI4LjI3Nyw0NDcuNzEyIDQyLjI4Miw0NjEuNzE4IEM1Ni4yODgsNDc1LjcyMyA3MC4zMzcsNDg0LjMzNyA4Ni45MDMsNDkwLjc3NSBDMTAyLjkyNyw0OTcuMDAyIDEyMS4yNCw1MDEuMjYxIDE0OC4wNTQsNTAyLjQ4NCBDMTc0LjkyNCw1MDMuNzEgMTgzLjUwMyw1MDQgMjUxLjkyMSw1MDQgQzMyMC4zMzgsNTA0IDMyOC45MTcsNTAzLjcxIDM1NS43ODcsNTAyLjQ4NCBDMzgyLjYwMSw1MDEuMjYxIDQwMC45MTQsNDk3LjAwMiA0MTYuOTM4LDQ5MC43NzUgQzQzMy41MDQsNDg0LjMzNyA0NDcuNTUzLDQ3NS43MjMgNDYxLjU1OSw0NjEuNzE4IEM0NzUuNTY0LDQ0Ny43MTIgNDg0LjE3OCw0MzMuNjYzIDQ5MC42MTYsNDE3LjA5NyBDNDk2Ljg0Myw0MDEuMDczIDUwMS4xMDIsMzgyLjc2IDUwMi4zMjUsMzU1Ljk0NiBDNTAzLjU1MSwzMjkuMDc2IDUwMy44NDEsMzIwLjQ5NyA1MDMuODQxLDI1Mi4wOCBDNTAzLjg0MSwxODMuNjYyIDUwMy41NTEsMTc1LjA4MyA1MDIuMzI1LDE0OC4yMTMgQzUwMS4xMDIsMTIxLjM5OSA0OTYuODQzLDEwMy4wODYgNDkwLjYxNiw4Ny4wNjIgQzQ4NC4xNzgsNzAuNDk2IDQ3NS41NjQsNTYuNDQ3IDQ2MS41NTksNDIuNDQxIEM0NDcuNTUzLDI4LjQzNiA0MzMuNTA0LDE5LjgyMiA0MTYuOTM4LDEzLjM4NSBDNDAwLjkxNCw3LjE1NyAzODIuNjAxLDIuODk4IDM1NS43ODcsMS42NzUgQzMyOC45MTcsMC40NDkgMzIwLjMzOCwwLjE1OSAyNTEuOTIxLDAuMTU5IFogTTI1MS45MjEsNDUuNTUgQzMxOS4xODYsNDUuNTUgMzI3LjE1NCw0NS44MDcgMzUzLjcxOCw0Ny4wMTkgQzM3OC4yOCw0OC4xMzkgMzkxLjYxOSw1Mi4yNDMgNDAwLjQ5Niw1NS42OTMgQzQxMi4yNTUsNjAuMjYzIDQyMC42NDcsNjUuNzIyIDQyOS40NjIsNzQuNTM4IEM0MzguMjc4LDgzLjM1MyA0NDMuNzM3LDkxLjc0NSA0NDguMzA3LDEwMy41MDQgQzQ1MS43NTcsMTEyLjM4MSA0NTUuODYxLDEyNS43MiA0NTYuOTgxLDE1MC4yODIgQzQ1OC4xOTMsMTc2Ljg0NiA0NTguNDUsMTg0LjgxNCA0NTguNDUsMjUyLjA4IEM0NTguNDUsMzE5LjM0NSA0NTguMTkzLDMyNy4zMTMgNDU2Ljk4MSwzNTMuODc3IEM0NTUuODYxLDM3OC40MzkgNDUxLjc1NywzOTEuNzc4IDQ0OC4zMDcsNDAwLjY1NSBDNDQzLjczNyw0MTIuNDE0IDQzOC4yNzgsNDIwLjgwNiA0MjkuNDYyLDQyOS42MjEgQzQyMC42NDcsNDM4LjQzNyA0MTIuMjU1LDQ0My44OTYgNDAwLjQ5Niw0NDguNDY2IEMzOTEuNjE5LDQ1MS45MTYgMzc4LjI4LDQ1Ni4wMiAzNTMuNzE4LDQ1Ny4xNCBDMzI3LjE1OCw0NTguMzUyIDMxOS4xOTEsNDU4LjYwOSAyNTEuOTIxLDQ1OC42MDkgQzE4NC42NSw0NTguNjA5IDE3Ni42ODQsNDU4LjM1MiAxNTAuMTIzLDQ1Ny4xNCBDMTI1LjU2MSw0NTYuMDIgMTEyLjIyMiw0NTEuOTE2IDEwMy4zNDUsNDQ4LjQ2NiBDOTEuNTg2LDQ0My44OTYgODMuMTk0LDQzOC40MzcgNzQuMzc5LDQyOS42MjEgQzY1LjU2NCw0MjAuODA2IDYwLjEwNCw0MTIuNDE0IDU1LjUzNCw0MDAuNjU1IEM1Mi4wODQsMzkxLjc3OCA0Ny45OCwzNzguNDM5IDQ2Ljg2LDM1My44NzcgQzQ1LjY0OCwzMjcuMzEzIDQ1LjM5MSwzMTkuMzQ1IDQ1LjM5MSwyNTIuMDggQzQ1LjM5MSwxODQuODE0IDQ1LjY0OCwxNzYuODQ2IDQ2Ljg2LDE1MC4yODIgQzQ3Ljk4LDEyNS43MiA1Mi4wODQsMTEyLjM4MSA1NS41MzQsMTAzLjUwNCBDNjAuMTA0LDkxLjc0NSA2NS41NjMsODMuMzUzIDc0LjM3OSw3NC41MzggQzgzLjE5NCw2NS43MjIgOTEuNTg2LDYwLjI2MyAxMDMuMzQ1LDU1LjY5MyBDMTEyLjIyMiw1Mi4yNDMgMTI1LjU2MSw0OC4xMzkgMTUwLjEyMyw0Ny4wMTkgQzE3Ni42ODcsNDUuODA3IDE4NC42NTUsNDUuNTUgMjUxLjkyMSw0NS41NSBaIiBpZD0iRmlsbC0xIiBmaWxsPSIjRkZGRkZGIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgICAgIDxwYXRoIGQ9Ik0yNTEuOTIxLDMzNi4wNTMgQzIwNS41NDMsMzM2LjA1MyAxNjcuOTQ3LDI5OC40NTcgMTY3Ljk0NywyNTIuMDggQzE2Ny45NDcsMjA1LjcwMiAyMDUuNTQzLDE2OC4xMDYgMjUxLjkyMSwxNjguMTA2IEMyOTguMjk4LDE2OC4xMDYgMzM1Ljg5NCwyMDUuNzAyIDMzNS44OTQsMjUyLjA4IEMzMzUuODk0LDI5OC40NTcgMjk4LjI5OCwzMzYuMDUzIDI1MS45MjEsMzM2LjA1MyBaIE0yNTEuOTIxLDEyMi43MTUgQzE4MC40NzQsMTIyLjcxNSAxMjIuNTU2LDE4MC42MzMgMTIyLjU1NiwyNTIuMDggQzEyMi41NTYsMzIzLjUyNiAxODAuNDc0LDM4MS40NDQgMjUxLjkyMSwzODEuNDQ0IEMzMjMuMzY3LDM4MS40NDQgMzgxLjI4NSwzMjMuNTI2IDM4MS4yODUsMjUyLjA4IEMzODEuMjg1LDE4MC42MzMgMzIzLjM2NywxMjIuNzE1IDI1MS45MjEsMTIyLjcxNSBaIiBpZD0iRmlsbC00IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgICAgICA8cGF0aCBkPSJNNDE2LjYyNywxMTcuNjA0IEM0MTYuNjI3LDEzNC4zIDQwMy4wOTIsMTQ3LjgzNCAzODYuMzk2LDE0Ny44MzQgQzM2OS43MDEsMTQ3LjgzNCAzNTYuMTY2LDEzNC4zIDM1Ni4xNjYsMTE3LjYwNCBDMzU2LjE2NiwxMDAuOTA4IDM2OS43MDEsODcuMzczIDM4Ni4zOTYsODcuMzczIEM0MDMuMDkyLDg3LjM3MyA0MTYuNjI3LDEwMC45MDggNDE2LjYyNywxMTcuNjA0IiBpZD0iRmlsbC01IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgIDwvZz48L3N2Zz4=);\\n\\t\\t}\\n\\n\\t\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t\\t& .ck-media__placeholder__url__text {\\n\\t\\t\\tcolor: hsl(302, 100%, 94%);\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tcolor: hsl(0, 0%, 100%);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&[data-oembed-url*=\\\"twitter.com\\\"] .ck.ck-media__placeholder {\\n\\t\\t/* Use gradient to contrast with focused widget (ckeditor/ckeditor5-media-embed#22). */\\n\\t\\tbackground: linear-gradient( to right, hsl(201, 85%, 70%), hsl(201, 85%, 35%) );\\n\\n\\t\\t& .ck-media__placeholder__icon {\\n\\t\\t\\tbackground-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IldoaXRlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQwMCA0MDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5zdDB7ZmlsbDojRkZGRkZGO308L3N0eWxlPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MDAsMjAwYzAsMTEwLjUtODkuNSwyMDAtMjAwLDIwMFMwLDMxMC41LDAsMjAwUzg5LjUsMCwyMDAsMFM0MDAsODkuNSw0MDAsMjAweiBNMTYzLjQsMzA1LjVjODguNywwLDEzNy4yLTczLjUsMTM3LjItMTM3LjJjMC0yLjEsMC00LjItMC4xLTYuMmM5LjQtNi44LDE3LjYtMTUuMywyNC4xLTI1Yy04LjYsMy44LTE3LjksNi40LTI3LjcsNy42YzEwLTYsMTcuNi0xNS40LDIxLjItMjYuN2MtOS4zLDUuNS0xOS42LDkuNS0zMC42LDExLjdjLTguOC05LjQtMjEuMy0xNS4yLTM1LjItMTUuMmMtMjYuNiwwLTQ4LjIsMjEuNi00OC4yLDQ4LjJjMCwzLjgsMC40LDcuNSwxLjMsMTFjLTQwLjEtMi03NS42LTIxLjItOTkuNC01MC40Yy00LjEsNy4xLTYuNSwxNS40LTYuNSwyNC4yYzAsMTYuNyw4LjUsMzEuNSwyMS41LDQwLjFjLTcuOS0wLjItMTUuMy0yLjQtMjEuOC02YzAsMC4yLDAsMC40LDAsMC42YzAsMjMuNCwxNi42LDQyLjgsMzguNyw0Ny4zYy00LDEuMS04LjMsMS43LTEyLjcsMS43Yy0zLjEsMC02LjEtMC4zLTkuMS0wLjljNi4xLDE5LjIsMjMuOSwzMy4xLDQ1LDMzLjVjLTE2LjUsMTIuOS0zNy4zLDIwLjYtNTkuOSwyMC42Yy0zLjksMC03LjctMC4yLTExLjUtMC43QzExMC44LDI5Ny41LDEzNi4yLDMwNS41LDE2My40LDMwNS41Ii8+PC9zdmc+);\\n\\t\\t}\\n\\n\\t\\t& .ck-media__placeholder__url__text {\\n\\t\\t\\tcolor: hsl(201, 100%, 86%);\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tcolor: hsl(0, 0%, 100%);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-media-form{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-media-form .ck-labeled-field-view{display:inline-block}.ck.ck-media-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-media-form{flex-wrap:wrap}.ck.ck-media-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-media-form .ck-button{flex-basis:50%}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAOA,kBAEC,sBAAuB,CADvB,YAAa,CAEb,kBAAmB,CACnB,gBAqBD,CAnBC,yCACC,oBACD,CAEA,4BACC,YACD,CCbA,oCDCD,kBAeE,cAUF,CARE,yCACC,eACD,CAEA,6BACC,cACD,CCtBD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-media-form {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\n\\t& .ck-labeled-field-view {\\n\\t\\tdisplay: inline-block;\\n\\t}\\n\\n\\t& .ck-label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tflex-wrap: wrap;\\n\\n\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button {\\n\\t\\t\\tflex-basis: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content .page-break{align-items:center;clear:both;display:flex;justify-content:center;padding:5px 0;position:relative}.ck-content .page-break:after{border-bottom:2px dashed #c4c4c4;content:\\\"\\\";position:absolute;width:100%}.ck-content .page-break__label{background:#fff;border:1px solid #c4c4c4;border-radius:2px;box-shadow:2px 2px 1px rgba(0,0,0,.15);color:#333;display:block;font-family:Helvetica,Arial,Tahoma,Verdana,Sans-Serif;font-size:.75em;font-weight:700;padding:.3em .6em;position:relative;text-transform:uppercase;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}@media print{.ck-content .page-break{padding:0}.ck-content .page-break:after{display:none}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-page-break/theme/pagebreak.css\"],\"names\":[],\"mappings\":\"AAKA,wBAKC,kBAAmB,CAHnB,UAAW,CAEX,YAAa,CAEb,sBAAuB,CAHvB,aAAc,CAFd,iBAaD,CANC,8BAGC,gCAAyC,CAFzC,UAAW,CACX,iBAAkB,CAElB,UACD,CAGD,+BAYC,eAA4B,CAN5B,wBAAiC,CACjC,iBAAkB,CAMlB,sCAA6C,CAF7C,UAAsB,CAPtB,aAAc,CAId,qDAA0D,CAC1D,eAAiB,CACjB,eAAiB,CAPjB,iBAAkB,CAFlB,iBAAkB,CAIlB,wBAAyB,CAWzB,wBAAyB,CACzB,qBAAsB,CACtB,oBAAqB,CACrB,gBAAiB,CAjBjB,SAkBD,CAGA,aACC,wBACC,SAKD,CAHC,8BACC,YACD,CAEF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content .page-break {\\n\\tposition: relative;\\n\\tclear: both;\\n\\tpadding: 5px 0;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\n\\t&::after {\\n\\t\\tcontent: '';\\n\\t\\tposition: absolute;\\n\\t\\tborder-bottom: 2px dashed hsl(0, 0%, 77%);\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\\n.ck-content .page-break__label {\\n\\tposition: relative;\\n\\tz-index: 1;\\n\\tpadding: .3em .6em;\\n\\tdisplay: block;\\n\\ttext-transform: uppercase;\\n\\tborder: 1px solid hsl(0, 0%, 77%);\\n\\tborder-radius: 2px;\\n\\tfont-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;\\n\\tfont-size: 0.75em;\\n\\tfont-weight: bold;\\n\\tcolor: hsl(0, 0%, 20%);\\n\\tbackground: hsl(0, 0%, 100%);\\n\\tbox-shadow: 2px 2px 1px hsla(0, 0%, 0%, 0.15);\\n\\n\\t/* Disable the possibility to select the label text by the user. */\\n\\t-webkit-user-select: none;\\n\\t-moz-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none;\\n}\\n\\n/* Do not show the page break element inside the print preview window. */\\n@media print {\\n\\t.ck-content .page-break {\\n\\t\\tpadding: 0;\\n\\n\\t\\t&::after {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-character-grid{max-width:100%}.ck.ck-character-grid .ck-character-grid__tiles{display:grid}:root{--ck-character-grid-tile-size:24px}.ck.ck-character-grid{max-height:200px;overflow-x:hidden;overflow-y:auto;width:350px}@media screen and (max-width:600px){.ck.ck-character-grid{width:190px}}.ck.ck-character-grid .ck-character-grid__tiles{grid-gap:var(--ck-spacing-standard);grid-template-columns:repeat(10,1fr);margin:var(--ck-spacing-standard) var(--ck-spacing-large)}@media screen and (max-width:600px){.ck.ck-character-grid .ck-character-grid__tiles{grid-template-columns:repeat(5,1fr)}}.ck.ck-character-grid .ck-character-grid__tile{border:0;font-size:1.2em;height:var(--ck-character-grid-tile-size);min-height:var(--ck-character-grid-tile-size);min-width:var(--ck-character-grid-tile-size);padding:0;transition:box-shadow .2s ease;width:var(--ck-character-grid-tile-size)}.ck.ck-character-grid .ck-character-grid__tile:focus:not(.ck-disabled),.ck.ck-character-grid .ck-character-grid__tile:hover:not(.ck-disabled){border:0;box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}.ck.ck-character-grid .ck-character-grid__tile .ck-button__label{line-height:var(--ck-character-grid-tile-size);text-align:center;width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-special-characters/theme/charactergrid.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-special-characters/charactergrid.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAKA,sBACC,cAKD,CAHC,gDACC,YACD,CCFD,MACC,kCACD,CAEA,sBAIC,gBAAiB,CAFjB,iBAAkB,CADlB,eAAgB,CAEhB,WAyCD,CClDC,oCDMD,sBAOE,WAqCF,CChDC,CDcA,gDAGC,mCAAoC,CAFpC,oCAAsC,CACtC,yDAMD,CCxBA,oCDgBA,gDAME,mCAEF,CCtBA,CDwBA,+CAQC,QAAS,CAHT,eAAgB,CAHhB,yCAA0C,CAE1C,6CAA8C,CAD9C,4CAA6C,CAG7C,SAAU,CACV,8BAA+B,CAN/B,wCAsBD,CAbC,8IAGC,QAAS,CACT,iGACD,CAGA,iEACC,8CAA+C,CAE/C,iBAAkB,CADlB,UAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-character-grid {\\n\\tmax-width: 100%;\\n\\t\\n\\t& .ck-character-grid__tiles {\\n\\t\\tdisplay: grid;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n@import \\\"../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-character-grid-tile-size: 24px;\\n}\\n\\n.ck.ck-character-grid {\\n\\toverflow-y: auto;\\n\\toverflow-x: hidden;\\n\\twidth: 350px;\\n\\tmax-height: 200px;\\n\\n\\t@mixin ck-media-phone {\\n\\t\\twidth: 190px;\\n\\t}\\n\\n\\t& .ck-character-grid__tiles {\\n\\t\\tgrid-template-columns: repeat(10, 1fr);\\n\\t\\tmargin: var(--ck-spacing-standard) var(--ck-spacing-large);\\n\\t\\tgrid-gap: var(--ck-spacing-standard);\\n\\n\\t\\t@mixin ck-media-phone {\\n\\t\\t\\tgrid-template-columns: repeat(5, 1fr);\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-character-grid__tile {\\n\\t\\twidth: var(--ck-character-grid-tile-size);\\n\\t\\theight: var(--ck-character-grid-tile-size);\\n\\t\\tmin-width: var(--ck-character-grid-tile-size);\\n\\t\\tmin-height: var(--ck-character-grid-tile-size);\\n\\t\\tfont-size: 1.2em;\\n\\t\\tpadding: 0;\\n\\t\\ttransition: .2s ease box-shadow;\\n\\t\\tborder: 0;\\n\\n\\t\\t&:focus:not( .ck-disabled ),\\n\\t\\t&:hover:not( .ck-disabled ) {\\n\\t\\t\\t/* Disable the default .ck-button's border ring. */\\n\\t\\t\\tborder: 0;\\n\\t\\t\\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\\n\\t\\t}\\n\\n\\t\\t/* Make sure the glyph is rendered in the center of the button */\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tline-height: var(--ck-character-grid-tile-size);\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\ttext-align: center;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-character-info{border-top:1px solid var(--ck-color-base-border);display:flex;justify-content:space-between;padding:var(--ck-spacing-small) var(--ck-spacing-large)}.ck.ck-character-info>*{font-size:var(--ck-font-size-small);text-transform:uppercase}.ck.ck-character-info .ck-character-info__name{max-width:280px;overflow:hidden;text-overflow:ellipsis}.ck.ck-character-info .ck-character-info__code{opacity:.6}@media screen and (max-width:600px){.ck.ck-character-info{max-width:190px}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-special-characters/theme/characterinfo.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-special-characters/characterinfo.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAKA,sBCIC,gDAAiD,CDHjD,YAAa,CACb,6BAA8B,CCC9B,uDDAD,CCGC,wBAEC,mCAAoC,CADpC,wBAED,CAEA,+CACC,eAAgB,CAEhB,eAAgB,CADhB,sBAED,CAEA,+CACC,UACD,CClBA,oCDCD,sBAoBE,eAEF,CCrBC\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-character-info {\\n\\tdisplay: flex;\\n\\tjustify-content: space-between;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-character-info {\\n\\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\\n\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\n\\t& > * {\\n\\t\\ttext-transform: uppercase;\\n\\t\\tfont-size: var(--ck-font-size-small);\\n\\t}\\n\\n\\t& .ck-character-info__name {\\n\\t\\tmax-width: 280px;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t& .ck-character-info__code {\\n\\t\\topacity: .6;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tmax-width: 190px;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-special-characters-navigation>.ck-label{max-width:160px;overflow:hidden;text-overflow:ellipsis}.ck.ck-special-characters-navigation>.ck-dropdown .ck-dropdown__panel{max-height:250px;overflow-x:hidden;overflow-y:auto}@media screen and (max-width:600px){.ck.ck-special-characters-navigation{max-width:190px}.ck.ck-special-characters-navigation>.ck-form__header__label{overflow:hidden;text-overflow:ellipsis}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-special-characters/specialcharacters.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAUC,+CACC,eAAgB,CAEhB,eAAgB,CADhB,sBAED,CAEA,sEAEC,gBAAiB,CAEjB,iBAAkB,CADlB,eAED,CCfA,oCDED,qCAgBE,eAOF,CALE,6DAEC,eAAgB,CADhB,sBAED,CCrBD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-special-characters-navigation {\\n\\n\\t& > .ck-label {\\n\\t\\tmax-width: 160px;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t& > .ck-dropdown .ck-dropdown__panel {\\n\\t\\t/* There could be dozens of categories available. Use scroll to prevent a 10e6px dropdown. */\\n\\t\\tmax-height: 250px;\\n\\t\\toverflow-y: auto;\\n\\t\\toverflow-x: hidden;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tmax-width: 190px;\\n\\n\\t\\t& > .ck-form__header__label {\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-dropdown.ck-style-dropdown.ck-style-dropdown_multiple-active>.ck-button>.ck-button__label{font-style:italic}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-style/style.css\"],\"names\":[],\"mappings\":\"AAKA,iGACC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-dropdown.ck-style-dropdown.ck-style-dropdown_multiple-active > .ck-button > .ck-button__label {\\n\\tfont-style: italic;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-style-panel-columns:3}.ck.ck-style-panel .ck-style-grid{display:grid;grid-template-columns:repeat(var(--ck-style-panel-columns),auto);justify-content:start}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button{display:flex;flex-direction:column;justify-content:space-between}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-style-grid__button__preview{align-content:center;align-items:center;display:flex;flex-basis:100%;flex-grow:1;justify-content:flex-start}:root{--ck-style-panel-button-width:120px;--ck-style-panel-button-height:80px;--ck-style-panel-button-label-background:#f0f0f0;--ck-style-panel-button-hover-label-background:#ebebeb;--ck-style-panel-button-hover-border-color:#b3b3b3}.ck.ck-style-panel .ck-style-grid{column-gap:var(--ck-spacing-large);row-gap:var(--ck-spacing-large)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button{--ck-color-button-default-hover-background:var(--ck-color-base-background);--ck-color-button-default-active-background:var(--ck-color-base-background);height:var(--ck-style-panel-button-height);padding:0;width:var(--ck-style-panel-button-width)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:not(:focus){border:1px solid var(--ck-color-base-border)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-button__label{flex-shrink:0;height:22px;line-height:22px;overflow:hidden;padding:0 var(--ck-spacing-medium);text-overflow:ellipsis;width:100%}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-style-grid__button__preview{background:var(--ck-color-base-background);border:2px solid var(--ck-color-base-background);opacity:.9;overflow:hidden;padding:var(--ck-spacing-medium);width:100%}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled{--ck-color-button-default-disabled-background:var(--ck-color-base-foreground)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled:not(:focus){border-color:var(--ck-style-panel-button-label-background)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled .ck-style-grid__button__preview{border-color:var(--ck-color-base-foreground);filter:saturate(.3);opacity:.4}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on{border-color:var(--ck-color-base-active)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on .ck-button__label{box-shadow:0 -1px 0 var(--ck-color-base-active);z-index:1}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on:hover{border-color:var(--ck-color-base-active-focus)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:not(.ck-on) .ck-button__label{background:var(--ck-style-panel-button-label-background)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:not(.ck-on):hover .ck-button__label{background:var(--ck-style-panel-button-hover-label-background)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:hover:not(.ck-disabled):not(.ck-on){border-color:var(--ck-style-panel-button-hover-border-color)}.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:hover:not(.ck-disabled):not(.ck-on) .ck-style-grid__button__preview{opacity:1}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-style/theme/stylegrid.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-style/stylegrid.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,0BACD,CAEA,kCACC,YAAa,CACb,gEAAiE,CACjE,qBAgBD,CAdC,yDACC,YAAa,CAEb,qBAAsB,CADtB,6BAWD,CARC,yFAEC,oBAAqB,CAErB,kBAAmB,CAHnB,YAAa,CAKb,eAAgB,CADhB,WAAY,CAFZ,0BAID,CCrBF,MACC,mCAAoC,CACpC,mCAAoC,CACpC,gDAA2D,CAC3D,sDAAiE,CACjE,kDACD,CAEA,kCAEC,kCAAmC,CADnC,+BAmFD,CAhFC,yDACC,0EAA2E,CAC3E,2EAA4E,CAI5E,0CAA2C,CAF3C,SAAU,CACV,wCA0ED,CAtEC,qEACC,4CACD,CAEA,2EAOC,aAAc,CANd,WAAY,CACZ,gBAAiB,CAGjB,eAAgB,CADhB,kCAAmC,CAEnC,sBAAuB,CAHvB,UAKD,CAEA,yFAMC,0CAA2C,CAC3C,gDAAiD,CAJjD,UAAW,CADX,eAAgB,CAGhB,gCAAiC,CAJjC,UAOD,CAEA,qEACC,6EAaD,CAVC,iFACC,0DACD,CAEA,qGAGC,4CAA6C,CAC7C,mBAAoB,CAHpB,UAID,CAGD,+DACC,wCAUD,CARC,iFACC,+CAAgD,CAChD,SACD,CAEA,qEACC,8CACD,CAIA,uFACC,wDACD,CAEA,6FACC,8DACD,CAGD,6FACC,4DAKD,CAHC,6HACC,SACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-style-panel-columns: 3;\\n}\\n\\n.ck.ck-style-panel .ck-style-grid {\\n\\tdisplay: grid;\\n\\tgrid-template-columns: repeat(var(--ck-style-panel-columns),auto);\\n\\tjustify-content: start;\\n\\n\\t& .ck-style-grid__button {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: space-between;\\n\\t\\tflex-direction: column;\\n\\n\\t\\t& .ck-style-grid__button__preview {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-content: center;\\n\\t\\t\\tjustify-content: flex-start;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-style-panel-button-width: 120px;\\n\\t--ck-style-panel-button-height: 80px;\\n\\t--ck-style-panel-button-label-background: hsl(0, 0%, 94.1%);\\n\\t--ck-style-panel-button-hover-label-background: hsl(0, 0%, 92.1%);\\n\\t--ck-style-panel-button-hover-border-color: hsl(0, 0%, 70%);\\n}\\n\\n.ck.ck-style-panel .ck-style-grid {\\n\\trow-gap: var(--ck-spacing-large);\\n\\tcolumn-gap: var(--ck-spacing-large);\\n\\n\\t& .ck-style-grid__button {\\n\\t\\t--ck-color-button-default-hover-background: var(--ck-color-base-background);\\n\\t\\t--ck-color-button-default-active-background: var(--ck-color-base-background);\\n\\n\\t\\tpadding: 0;\\n\\t\\twidth: var(--ck-style-panel-button-width);\\n\\t\\theight: var(--ck-style-panel-button-height);\\n\\n\\t\\t/* Let default .ck-button :focus styles apply */\\n\\t\\t&:not(:focus) {\\n\\t\\t\\tborder: 1px solid var(--ck-color-base-border);\\n\\t\\t}\\n\\n\\t\\t& .ck-button__label {\\n\\t\\t\\theight: 22px;\\n\\t\\t\\tline-height: 22px;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tpadding: 0 var(--ck-spacing-medium);\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\tflex-shrink: 0;\\n\\t\\t}\\n\\n\\t\\t& .ck-style-grid__button__preview {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\topacity: .9;\\n\\n\\t\\t\\tpadding: var(--ck-spacing-medium);\\n\\t\\t\\tbackground: var(--ck-color-base-background);\\n\\t\\t\\tborder: 2px solid var(--ck-color-base-background);\\n\\t\\t}\\n\\n\\t\\t&.ck-disabled {\\n\\t\\t\\t--ck-color-button-default-disabled-background: var(--ck-color-base-foreground);\\n\\n\\t\\t\\t/* Let default .ck-button :focus styles apply */\\n\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\tborder-color: var(--ck-style-panel-button-label-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-style-grid__button__preview {\\n\\t\\t\\t\\topacity: .4;\\n\\n\\t\\t\\t\\tborder-color: var(--ck-color-base-foreground);\\n\\t\\t\\t\\tfilter: saturate(.3);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-on {\\n\\t\\t\\tborder-color: var(--ck-color-base-active);\\n\\n\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\tbox-shadow: 0 -1px 0 var(--ck-color-base-active);\\n\\t\\t\\t\\tz-index: 1; /* Stay on top of the preview with the shadow. */\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tborder-color: var(--ck-color-base-active-focus);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:not(.ck-on) {\\n\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\tbackground: var(--ck-style-panel-button-label-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover .ck-button__label {\\n\\t\\t\\t\\tbackground: var(--ck-style-panel-button-hover-label-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:hover:not(.ck-disabled):not(.ck-on) {\\n\\t\\t\\tborder-color: var(--ck-style-panel-button-hover-border-color);\\n\\n\\t\\t\\t& .ck-style-grid__button__preview {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-style-panel .ck-style-panel__style-group>.ck-label{margin:var(--ck-spacing-large) 0}.ck.ck-style-panel .ck-style-panel__style-group:first-child>.ck-label{margin-top:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-style/stylegroup.css\"],\"names\":[],\"mappings\":\"AAMC,0DACC,gCACD,CAGC,sEACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-style-panel .ck-style-panel__style-group {\\n\\t& > .ck-label {\\n\\t\\tmargin: var(--ck-spacing-large) 0;\\n\\t}\\n\\n\\t&:first-child {\\n\\t\\t& > .ck-label {\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-style-panel-max-height:470px}.ck.ck-style-panel{max-height:var(--ck-style-panel-max-height);overflow-y:auto;padding:var(--ck-spacing-large)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-style/stylepanel.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,iCACD,CAEA,mBAGC,2CAA4C,CAD5C,eAAgB,CADhB,+BAGD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-style-panel-max-height: 470px;\\n}\\n\\n.ck.ck-style-panel {\\n\\tpadding: var(--ck-spacing-large);\\n\\toverflow-y: auto;\\n\\tmax-height: var(--ck-style-panel-max-height);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-input-color{display:flex;flex-direction:row-reverse;width:100%}.ck.ck-input-color>input.ck.ck-input-text{flex-grow:1;min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown{min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown>.ck-input-color__button .ck-dropdown__arrow{display:none}.ck.ck-input-color .ck.ck-input-color__button{display:flex}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview{overflow:hidden;position:relative}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{display:block;position:absolute}[dir=ltr] .ck.ck-input-color>.ck.ck-input-text{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-input-text{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-input-color>.ck.ck-input-text:focus{z-index:0}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{padding:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-left-radius:0;border-top-left-radius:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button:not(:focus){border-left:1px solid transparent}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button:not(:focus){border-right:1px solid transparent}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button.ck-disabled{background:var(--ck-color-input-disabled-background)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border-radius:0}.ck-rounded-corners .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview,.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border:1px solid var(--ck-color-input-border);height:20px;width:20px}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{background:red;border-radius:2px;height:150%;left:50%;top:-30%;transform:rotate(45deg);transform-origin:50%;width:8%}.ck.ck-input-color .ck.ck-input-color__remove-color{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard);width:100%}.ck.ck-input-color .ck.ck-input-color__remove-color:not(:focus){border-bottom:1px solid var(--ck-color-input-border)}[dir=ltr] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-right-radius:0}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-left-radius:0}.ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-left:var(--ck-spacing-standard);margin-right:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/colorinput.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/colorinput.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAKA,mBAEC,YAAa,CACb,0BAA2B,CAF3B,UAgCD,CA5BC,0CAEC,WAAY,CADZ,cAED,CAEA,sCACC,cAMD,CAHC,kFACC,YACD,CAGD,8CAEC,YAWD,CATC,kFAEC,eAAgB,CADhB,iBAOD,CAJC,0IAEC,aAAc,CADd,iBAED,CC1BF,+CAGE,4BAA6B,CAD7B,yBAcF,CAhBA,+CAQE,2BAA4B,CAD5B,wBASF,CAHC,2CACC,SACD,CAIA,wEACC,SA0CD,CA3CA,kFAKE,2BAA4B,CAD5B,wBAuCF,CApCE,8FACC,iCACD,CATF,kFAcE,4BAA6B,CAD7B,yBA8BF,CA3BE,8FACC,kCACD,CAGD,oFACC,oDACD,CAEA,4GC1CF,eD2DE,CAjBA,+PCtCD,qCDuDC,CAjBA,4GAKC,6CAA8C,CAD9C,WAAY,CADZ,UAcD,CAVC,oKAKC,cAA6B,CAC7B,iBAAkB,CAHlB,WAAY,CADZ,QAAS,CADT,QAAS,CAMT,uBAAwB,CACxB,oBAAqB,CAJrB,QAKD,CAKH,oDAIC,2BAA4B,CAC5B,4BAA6B,CAH7B,qEAAwE,CADxE,UA0BD,CApBC,gEACC,oDACD,CATD,8DAYE,yBAeF,CA3BA,8DAgBE,wBAWF,CARC,gEACC,uCAMD,CAPA,0EAKE,sCAAuC,CADvC,cAGF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-input-color {\\n\\twidth: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: row-reverse;\\n\\n\\t& > input.ck.ck-input-text {\\n\\t\\tmin-width: auto;\\n\\t\\tflex-grow: 1;\\n\\t}\\n\\n\\t& > div.ck.ck-dropdown {\\n\\t\\tmin-width: auto;\\n\\n\\t\\t/* This dropdown has no arrow but a color preview instead. */\\n\\t\\t& > .ck-input-color__button .ck-dropdown__arrow {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-input-color__button {\\n\\t\\t/* Resolving issue with misaligned buttons on Safari (see #10589) */\\n\\t\\tdisplay: flex;\\n\\n\\t\\t& .ck.ck-input-color__button__preview {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\toverflow: hidden;\\n\\n\\t\\t\\t& > .ck.ck-input-color__button__preview__no-color-indicator {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n@import \\\"../mixins/_rounded.css\\\";\\n\\n.ck.ck-input-color {\\n\\t& > .ck.ck-input-text {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t}\\n\\n\\t\\t/* Make sure the focused input is always on top of the dropdown button so its\\n\\t\\t outline and border are never cropped (also when the input is read-only). */\\n\\t\\t&:focus {\\n\\t\\t\\tz-index: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck.ck-dropdown {\\n\\t\\t& > .ck.ck-button.ck-input-color__button {\\n\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\t\\tborder-bottom-left-radius: 0;\\n\\n\\t\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\t\\tborder-left: 1px solid transparent;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\t\\tborder-bottom-right-radius: 0;\\n\\n\\t\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\t\\tborder-right: 1px solid transparent;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&.ck-disabled {\\n\\t\\t\\t\\tbackground: var(--ck-color-input-disabled-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > .ck.ck-input-color__button__preview {\\n\\t\\t\\t\\t@mixin ck-rounded-corners;\\n\\n\\t\\t\\t\\twidth: 20px;\\n\\t\\t\\t\\theight: 20px;\\n\\t\\t\\t\\tborder: 1px solid var(--ck-color-input-border);\\n\\n\\t\\t\\t\\t& > .ck.ck-input-color__button__preview__no-color-indicator {\\n\\t\\t\\t\\t\\ttop: -30%;\\n\\t\\t\\t\\t\\tleft: 50%;\\n\\t\\t\\t\\t\\theight: 150%;\\n\\t\\t\\t\\t\\twidth: 8%;\\n\\t\\t\\t\\t\\tbackground: hsl(0, 100%, 50%);\\n\\t\\t\\t\\t\\tborder-radius: 2px;\\n\\t\\t\\t\\t\\ttransform: rotate(45deg);\\n\\t\\t\\t\\t\\ttransform-origin: 50%;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-input-color__remove-color {\\n\\t\\twidth: 100%;\\n\\t\\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\\n\\n\\t\\tborder-bottom-left-radius: 0;\\n\\t\\tborder-bottom-right-radius: 0;\\n\\n\\t\\t&:not(:focus) {\\n\\t\\t\\tborder-bottom: 1px solid var(--ck-color-input-border);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t}\\n\\n\\t\\t& .ck.ck-icon {\\n\\t\\t\\tmargin-right: var(--ck-spacing-standard);\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-right: 0;\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-form{padding:0 0 var(--ck-spacing-large)}.ck.ck-form:focus{outline:none}.ck.ck-form .ck.ck-input-text{min-width:100%;width:0}.ck.ck-form .ck.ck-dropdown{min-width:100%}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus){border:1px solid var(--ck-color-base-border)}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label{width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/form.css\"],\"names\":[],\"mappings\":\"AAKA,YACC,mCAyBD,CAvBC,kBAEC,YACD,CAEA,8BACC,cAAe,CACf,OACD,CAEA,4BACC,cAWD,CARE,6DACC,4CACD,CAEA,mEACC,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-form {\\n\\tpadding: 0 0 var(--ck-spacing-large);\\n\\n\\t&:focus {\\n\\t\\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t& .ck.ck-input-text {\\n\\t\\tmin-width: 100%;\\n\\t\\twidth: 0;\\n\\t}\\n\\n\\t& .ck.ck-dropdown {\\n\\t\\tmin-width: 100%;\\n\\n\\t\\t& .ck-dropdown__button {\\n\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\tborder: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-form__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__row>:not(.ck-label){flex-grow:1}.ck.ck-form__row.ck-table-form__action-row .ck-button-cancel,.ck.ck-form__row.ck-table-form__action-row .ck-button-save{justify-content:center}.ck.ck-form__row{padding:var(--ck-spacing-standard) var(--ck-spacing-large) 0}[dir=ltr] .ck.ck-form__row>:not(.ck-label)+*{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-form__row>:not(.ck-label)+*{margin-right:var(--ck-spacing-large)}.ck.ck-form__row>.ck-label{min-width:100%;width:100%}.ck.ck-form__row.ck-table-form__action-row{margin-top:var(--ck-spacing-large)}.ck.ck-form__row.ck-table-form__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/formrow.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/formrow.css\"],\"names\":[],\"mappings\":\"AAKA,iBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAaD,CAVC,iCACC,WACD,CAGC,wHAEC,sBACD,CCbF,iBACC,4DA2BD,CAvBE,6CAEE,mCAMF,CARA,6CAME,oCAEF,CAGD,2BAEC,cAAe,CADf,UAED,CAEA,2CACC,kCAKD,CAHC,wEACC,0BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-form__row {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\tjustify-content: space-between;\\n\\n\\t/* Ignore labels that work as fieldset legends */\\n\\t& > *:not(.ck-label) {\\n\\t\\tflex-grow: 1;\\n\\t}\\n\\n\\t&.ck-table-form__action-row {\\n\\t\\t& .ck-button-save,\\n\\t\\t& .ck-button-cancel {\\n\\t\\t\\tjustify-content: center;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-form__row {\\n\\tpadding: var(--ck-spacing-standard) var(--ck-spacing-large) 0;\\n\\n\\t/* Ignore labels that work as fieldset legends */\\n\\t& > *:not(.ck-label) {\\n\\t\\t& + * {\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-large);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-right: var(--ck-spacing-large);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-label {\\n\\t\\twidth: 100%;\\n\\t\\tmin-width: 100%;\\n\\t}\\n\\n\\t&.ck-table-form__action-row {\\n\\t\\tmargin-top: var(--ck-spacing-large);\\n\\n\\t\\t& .ck-button .ck-button__label {\\n\\t\\t\\tcolor: var(--ck-color-text);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-insert-table-dropdown__grid{display:flex;flex-direction:row;flex-wrap:wrap}:root{--ck-insert-table-dropdown-padding:10px;--ck-insert-table-dropdown-box-height:11px;--ck-insert-table-dropdown-box-width:12px;--ck-insert-table-dropdown-box-margin:1px}.ck .ck-insert-table-dropdown__grid{padding:var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;width:calc(var(--ck-insert-table-dropdown-box-width)*10 + var(--ck-insert-table-dropdown-box-margin)*20 + var(--ck-insert-table-dropdown-padding)*2)}.ck .ck-insert-table-dropdown__label,.ck[dir=rtl] .ck-insert-table-dropdown__label{text-align:center}.ck .ck-insert-table-dropdown-grid-box{border:1px solid var(--ck-color-base-border);border-radius:1px;margin:var(--ck-insert-table-dropdown-box-margin);min-height:var(--ck-insert-table-dropdown-box-height);min-width:var(--ck-insert-table-dropdown-box-width);outline:none;transition:none}.ck .ck-insert-table-dropdown-grid-box:focus{box-shadow:none}.ck .ck-insert-table-dropdown-grid-box.ck-on{background:var(--ck-color-focus-outer-shadow);border-color:var(--ck-color-focus-border)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/inserttable.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/inserttable.css\"],\"names\":[],\"mappings\":\"AAKA,oCACC,YAAa,CACb,kBAAmB,CACnB,cACD,CCJA,MACC,uCAAwC,CACxC,0CAA2C,CAC3C,yCAA0C,CAC1C,yCACD,CAEA,oCAGC,yFAA0F,CAD1F,oJAED,CAEA,mFAEC,iBACD,CAEA,uCAIC,4CAA6C,CAC7C,iBAAkB,CAFlB,iDAAkD,CADlD,qDAAsD,CADtD,mDAAoD,CAKpD,YAAa,CACb,eAUD,CARC,6CACC,eACD,CAEA,6CAEC,6CAA8C,CAD9C,yCAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-insert-table-dropdown__grid {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: wrap;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-insert-table-dropdown-padding: 10px;\\n\\t--ck-insert-table-dropdown-box-height: 11px;\\n\\t--ck-insert-table-dropdown-box-width: 12px;\\n\\t--ck-insert-table-dropdown-box-margin: 1px;\\n}\\n\\n.ck .ck-insert-table-dropdown__grid {\\n\\t/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */\\n\\twidth: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2);\\n\\tpadding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;\\n}\\n\\n.ck .ck-insert-table-dropdown__label,\\n.ck[dir=rtl] .ck-insert-table-dropdown__label {\\n\\ttext-align: center;\\n}\\n\\n.ck .ck-insert-table-dropdown-grid-box {\\n\\tmin-width: var(--ck-insert-table-dropdown-box-width);\\n\\tmin-height: var(--ck-insert-table-dropdown-box-height);\\n\\tmargin: var(--ck-insert-table-dropdown-box-margin);\\n\\tborder: 1px solid var(--ck-color-base-border);\\n\\tborder-radius: 1px;\\n\\toutline: none;\\n\\ttransition: none;\\n\\n\\t&:focus {\\n\\t\\tbox-shadow: none;\\n\\t}\\n\\n\\t&.ck-on {\\n\\t\\tborder-color: var(--ck-color-focus-border);\\n\\t\\tbackground: var(--ck-color-focus-outer-shadow);\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content .table{display:table;margin:.9em auto}.ck-content .table table{border:1px double #b3b3b3;border-collapse:collapse;border-spacing:0;height:100%;width:100%}.ck-content .table table td,.ck-content .table table th{border:1px solid #bfbfbf;min-width:2em;padding:.4em}.ck-content .table table th{background:rgba(0,0,0,.05);font-weight:700}.ck-content[dir=rtl] .table th{text-align:right}.ck-content[dir=ltr] .table th{text-align:left}.ck-editor__editable .ck-table-bogus-paragraph{display:inline-block;width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/table.css\"],\"names\":[],\"mappings\":\"AAKA,mBAKC,aAAc,CADd,gBAiCD,CA9BC,yBAYC,yBAAkC,CAVlC,wBAAyB,CACzB,gBAAiB,CAKjB,WAAY,CADZ,UAsBD,CAfC,wDAQC,wBAAiC,CANjC,aAAc,CACd,YAMD,CAEA,4BAEC,0BAA+B,CAD/B,eAED,CAMF,+BACC,gBACD,CAEA,+BACC,eACD,CAEA,+CAKC,oBAAqB,CAMrB,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content .table {\\n\\t/* Give the table widget some air and center it horizontally */\\n\\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\\n\\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\\n\\tmargin: 0.9em auto;\\n\\tdisplay: table;\\n\\n\\t& table {\\n\\t\\t/* The table cells should have slight borders */\\n\\t\\tborder-collapse: collapse;\\n\\t\\tborder-spacing: 0;\\n\\n\\t\\t/* Table width and height are set on the parent
. Make sure the table inside stretches\\n\\t\\tto the full dimensions of the container (https://github.com/ckeditor/ckeditor5/issues/6186). */\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\n\\t\\t/* The outer border of the table should be slightly darker than the inner lines.\\n\\t\\tAlso see https://github.com/ckeditor/ckeditor5-table/issues/50. */\\n\\t\\tborder: 1px double hsl(0, 0%, 70%);\\n\\n\\t\\t& td,\\n\\t\\t& th {\\n\\t\\t\\tmin-width: 2em;\\n\\t\\t\\tpadding: .4em;\\n\\n\\t\\t\\t/* The border is inherited from .ck-editor__nested-editable styles, so theoretically it's not necessary here.\\n\\t\\t\\tHowever, the border is a content style, so it should use .ck-content (so it works outside the editor).\\n\\t\\t\\tHence, the duplication. See https://github.com/ckeditor/ckeditor5/issues/6314 */\\n\\t\\t\\tborder: 1px solid hsl(0, 0%, 75%);\\n\\t\\t}\\n\\n\\t\\t& th {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tbackground: hsla(0, 0%, 0%, 5%);\\n\\t\\t}\\n\\t}\\n}\\n\\n/* Text alignment of the table header should match the editor settings and override the native browser styling,\\nwhen content is available outside the editor. See https://github.com/ckeditor/ckeditor5/issues/6638 */\\n.ck-content[dir=\\\"rtl\\\"] .table th {\\n\\ttext-align: right;\\n}\\n\\n.ck-content[dir=\\\"ltr\\\"] .table th {\\n\\ttext-align: left;\\n}\\n\\n.ck-editor__editable .ck-table-bogus-paragraph {\\n\\t/*\\n\\t * Use display:inline-block to force Chrome/Safari to limit text mutations to this element.\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/6062.\\n\\t */\\n\\tdisplay: inline-block;\\n\\n\\t/*\\n\\t * Inline HTML elements nested in the span should always be dimensioned in relation to the whole cell width.\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/9117.\\n\\t */\\n\\twidth: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-selector-caption-background:#f7f7f7;--ck-color-selector-caption-text:#333;--ck-color-selector-caption-highlighted-background:#fd0}.ck-content .table>figcaption{background-color:var(--ck-color-selector-caption-background);caption-side:top;color:var(--ck-color-selector-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;text-align:center;word-break:break-word}.ck.ck-editor__editable .table>figcaption.table__caption_highlighted{animation:ck-table-caption-highlight .6s ease-out}.ck.ck-editor__editable .table>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}@keyframes ck-table-caption-highlight{0%{background-color:var(--ck-color-selector-caption-highlighted-background)}to{background-color:var(--ck-color-selector-caption-background)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tablecaption.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,8CAAuD,CACvD,qCAAiD,CACjD,uDACD,CAGA,8BAMC,4DAA6D,CAJ7D,gBAAiB,CAGjB,2CAA4C,CAJ5C,qBAAsB,CAOtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,iBAAkB,CADlB,qBAOD,CAIC,qEACC,iDACD,CAEA,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAGD,sCACC,GACC,wEACD,CAEA,GACC,4DACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-selector-caption-background: hsl(0, 0%, 97%);\\n\\t--ck-color-selector-caption-text: hsl(0, 0%, 20%);\\n\\t--ck-color-selector-caption-highlighted-background: hsl(52deg 100% 50%);\\n}\\n\\n/* Content styles */\\n.ck-content .table > figcaption {\\n\\tdisplay: table-caption;\\n\\tcaption-side: top;\\n\\tword-break: break-word;\\n\\ttext-align: center;\\n\\tcolor: var(--ck-color-selector-caption-text);\\n\\tbackground-color: var(--ck-color-selector-caption-background);\\n\\tpadding: .6em;\\n\\tfont-size: .75em;\\n\\toutline-offset: -1px;\\n}\\n\\n/* Editing styles */\\n.ck.ck-editor__editable .table > figcaption {\\n\\t&.table__caption_highlighted {\\n\\t\\tanimation: ck-table-caption-highlight .6s ease-out;\\n\\t}\\n\\n\\t&.ck-placeholder::before {\\n\\t\\tpadding-left: inherit;\\n\\t\\tpadding-right: inherit;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the table caption placeholder doesn't overflow the placeholder area.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\\n\\t\\t */\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n}\\n\\n@keyframes ck-table-caption-highlight {\\n\\t0% {\\n\\t\\tbackground-color: var(--ck-color-selector-caption-highlighted-background);\\n\\t}\\n\\n\\t100% {\\n\\t\\tbackground-color: var(--ck-color-selector-caption-background);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row{flex-wrap:wrap}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:first-of-type{flex-grow:0.57}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:last-of-type{flex-grow:0.43}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar .ck-button{flex-grow:1}.ck.ck-table-cell-properties-form{width:320px}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__padding-row{align-self:flex-end;padding:0;width:25%}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tablecellproperties.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tablecellproperties.css\"],\"names\":[],\"mappings\":\"AAOE,6FACC,cAiBD,CAdE,0HAEC,cACD,CAEA,yHAEC,cACD,CAEA,uHACC,WACD,CClBJ,kCACC,WAkBD,CAfE,2FACC,mBAAoB,CACpB,SAAU,CACV,SACD,CAGC,4GACC,eAAgB,CAGhB,qCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-table-cell-properties-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-cell-properties-form__alignment-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\n\\t\\t\\t& .ck.ck-toolbar {\\n\\t\\t\\t\\t&:first-of-type {\\n\\t\\t\\t\\t\\t/* 4 buttons out of 7 (h-alignment + v-alignment) = 0.57 */\\n\\t\\t\\t\\t\\tflex-grow: 0.57;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&:last-of-type {\\n\\t\\t\\t\\t\\t/* 3 buttons out of 7 (h-alignment + v-alignment) = 0.43 */\\n\\t\\t\\t\\t\\tflex-grow: 0.43;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t& .ck-button {\\n\\t\\t\\t\\t\\tflex-grow: 1;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-table-cell-properties-form {\\n\\twidth: 320px;\\n\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-cell-properties-form__padding-row {\\n\\t\\t\\talign-self: flex-end;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\twidth: 25%;\\n\\t\\t}\\n\\n\\t\\t&.ck-table-cell-properties-form__alignment-row {\\n\\t\\t\\t& .ck.ck-toolbar {\\n\\t\\t\\t\\tbackground: none;\\n\\n\\t\\t\\t\\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\\n\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-selector-column-resizer-hover:var(--ck-color-base-active);--ck-table-column-resizer-width:7px;--ck-table-column-resizer-position-offset:calc(var(--ck-table-column-resizer-width)*-0.5 - 0.5px)}.ck-content .table .ck-table-resized{table-layout:fixed}.ck-content .table table{overflow:hidden}.ck-content .table td,.ck-content .table th{overflow-wrap:break-word;position:relative}.ck.ck-editor__editable .table .ck-table-column-resizer{bottom:0;cursor:col-resize;position:absolute;right:var(--ck-table-column-resizer-position-offset);top:0;user-select:none;width:var(--ck-table-column-resizer-width);z-index:var(--ck-z-default)}.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer,.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer{display:none}.ck.ck-editor__editable .table .ck-table-column-resizer:hover,.ck.ck-editor__editable .table .ck-table-column-resizer__active{background-color:var(--ck-color-selector-column-resizer-hover);bottom:-999999px;opacity:.25;top:-999999px}.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer{left:var(--ck-table-column-resizer-position-offset);right:unset}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tablecolumnresize.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,oEAAqE,CACrE,mCAAoC,CAIpC,iGACD,CAEA,qCACC,kBACD,CAEA,yBACC,eACD,CAEA,4CAIC,wBAAyB,CACzB,iBACD,CAEA,wDAGC,QAAS,CAGT,iBAAkB,CALlB,iBAAkB,CAGlB,oDAAqD,CAFrD,KAAM,CAKN,gBAAiB,CAFjB,0CAA2C,CAG3C,2BACD,CAQA,qJACC,YACD,CAEA,8HAEC,8DAA+D,CAO/D,gBAAiB,CANjB,WAAa,CAKb,aAED,CAEA,iEACC,mDAAoD,CACpD,WACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-selector-column-resizer-hover: var(--ck-color-base-active);\\n\\t--ck-table-column-resizer-width: 7px;\\n\\n\\t/* The offset used for absolute positioning of the resizer element, so that it is placed exactly above the cell border.\\n\\t The value is: minus half the width of the resizer decreased additionaly by the half the width of the border (0.5px). */\\n\\t--ck-table-column-resizer-position-offset: calc(var(--ck-table-column-resizer-width) * -0.5 - 0.5px);\\n}\\n\\n.ck-content .table .ck-table-resized {\\n\\ttable-layout: fixed;\\n}\\n\\n.ck-content .table table {\\n\\toverflow: hidden;\\n}\\n\\n.ck-content .table td,\\n.ck-content .table th {\\n\\t/* To prevent text overflowing beyond its cell when columns are resized by resize handler\\n\\t(https://github.com/ckeditor/ckeditor5/pull/14379#issuecomment-1589460978). */\\n\\toverflow-wrap: break-word;\\n\\tposition: relative;\\n}\\n\\n.ck.ck-editor__editable .table .ck-table-column-resizer {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tbottom: 0;\\n\\tright: var(--ck-table-column-resizer-position-offset);\\n\\twidth: var(--ck-table-column-resizer-width);\\n\\tcursor: col-resize;\\n\\tuser-select: none;\\n\\tz-index: var(--ck-z-default);\\n}\\n\\n.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer {\\n\\tdisplay: none;\\n}\\n\\n/* The resizer elements, which are extended to an extremely high height, break the drag & drop feature in Chrome. To make it work again,\\n all resizers must be hidden while the table is dragged. */\\n.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer {\\n\\tdisplay: none;\\n}\\n\\n.ck.ck-editor__editable .table .ck-table-column-resizer:hover,\\n.ck.ck-editor__editable .table .ck-table-column-resizer__active {\\n\\tbackground-color: var(--ck-color-selector-column-resizer-hover);\\n\\topacity: 0.25;\\n\\t/* The resizer element resides in each cell so to occupy the entire height of the table, which is unknown from a CSS point of view,\\n\\t it is extended to an extremely high height. Even for screens with a very high pixel density, the resizer will fulfill its role as\\n\\t it should, i.e. for a screen of 476 ppi the total height of the resizer will take over 350 sheets of A4 format, which is totally\\n\\t unrealistic height for a single table. */\\n\\ttop: -999999px;\\n\\tbottom: -999999px;\\n}\\n\\n.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer {\\n\\tleft: var(--ck-table-column-resizer-position-offset);\\n\\tright: unset;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-selector-focused-cell-background:rgba(158,201,250,.3)}.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table td.ck-editor__nested-editable:focus,.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table th.ck-editor__nested-editable:focus{background:var(--ck-color-selector-focused-cell-background);border-style:none;outline:1px solid var(--ck-color-focus-border);outline-offset:-1px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableediting.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,gEACD,CAKE,8QAGC,2DAA4D,CAK5D,iBAAkB,CAClB,8CAA+C,CAC/C,mBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-selector-focused-cell-background: hsla(212, 90%, 80%, .3);\\n}\\n\\n.ck-widget.table {\\n\\t& td,\\n\\t& th {\\n\\t\\t&.ck-editor__nested-editable.ck-editor__nested-editable_focused,\\n\\t\\t&.ck-editor__nested-editable:focus {\\n\\t\\t\\t/* A very slight background to highlight the focused cell */\\n\\t\\t\\tbackground: var(--ck-color-selector-focused-cell-background);\\n\\n\\t\\t\\t/* Fixes the problem where surrounding cells cover the focused cell's border.\\n\\t\\t\\tIt does not fix the problem in all places but the UX is improved.\\n\\t\\t\\tSee https://github.com/ckeditor/ckeditor5-table/issues/29. */\\n\\t\\t\\tborder-style: none;\\n\\t\\t\\toutline: 1px solid var(--ck-color-focus-border);\\n\\t\\t\\toutline-offset: -1px; /* progressive enhancement - no IE support */\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-table-form .ck-form__row.ck-table-form__background-row,.ck.ck-table-form .ck-form__row.ck-table-form__border-row{flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{align-items:center;flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view{align-items:center;display:flex;flex-direction:column-reverse}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view .ck.ck-dropdown,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{flex-grow:0}.ck.ck-table-form .ck.ck-labeled-field-view{position:relative}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{bottom:calc(var(--ck-table-properties-error-arrow-size)*-1);left:50%;position:absolute;transform:translate(-50%,100%);z-index:1}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{content:\\\"\\\";left:50%;position:absolute;top:calc(var(--ck-table-properties-error-arrow-size)*-1);transform:translateX(-50%)}:root{--ck-table-properties-error-arrow-size:6px;--ck-table-properties-min-error-width:150px}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-labeled-field-view>.ck-label{font-size:var(--ck-font-size-tiny);text-align:center}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-style,.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-width{max-width:80px;min-width:80px;width:80px}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{padding:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width{margin:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{align-self:flex-end;display:inline-block;height:var(--ck-ui-component-min-height);line-height:var(--ck-ui-component-min-height);margin:0 var(--ck-spacing-small)}.ck.ck-table-form .ck.ck-labeled-field-view{padding-top:var(--ck-spacing-standard)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{border-radius:0}.ck-rounded-corners .ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status,.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{background:var(--ck-color-base-error);color:var(--ck-color-base-background);min-width:var(--ck-table-properties-min-error-width);padding:var(--ck-spacing-small) var(--ck-spacing-medium);text-align:center}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{border-color:transparent transparent var(--ck-color-base-error) transparent;border-style:solid;border-width:0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{animation:ck-table-form-labeled-view-status-appear .15s ease both}.ck.ck-table-form .ck.ck-labeled-field-view .ck-input.ck-error:not(:focus)+.ck.ck-labeled-field-view__status{display:none}@keyframes ck-table-form-labeled-view-status-appear{0%{opacity:0}to{opacity:1}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tableform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAWE,wHACC,cACD,CAEA,8DAEC,kBAAmB,CADnB,cAgBD,CAbC,qFAGC,kBAAmB,CAFnB,YAAa,CACb,6BAMD,CAEA,sMACC,WACD,CAIF,4CAEC,iBAoBD,CAlBC,8EAGC,2DAAgE,CADhE,QAAS,CADT,iBAAkB,CAGlB,8BAA+B,CAG/B,SAUD,CAPC,oFACC,UAAW,CAGX,QAAS,CAFT,iBAAkB,CAClB,wDAA6D,CAE7D,0BACD,CChDH,MACC,0CAA2C,CAC3C,2CACD,CAMI,2FACC,kCAAmC,CACnC,iBACD,CAGD,8KAIC,cAAe,CADf,cAAe,CADf,UAGD,CAGD,8DACC,SAcD,CAZC,yMAEC,QACD,CAEA,iGACC,mBAAoB,CACpB,oBAAqB,CACrB,wCAAyC,CACzC,6CAA8C,CAC9C,gCACD,CAIF,4CACC,sCAyBD,CAvBC,8ECxCD,eDyDC,CAjBA,mMCpCA,qCDqDA,CAjBA,8EAGC,qCAAsC,CACtC,qCAAsC,CAEtC,oDAAqD,CADrD,wDAAyD,CAEzD,iBAUD,CAPC,oFACC,2EAA4E,CAE5E,kBAAmB,CADnB,kJAED,CAdD,8EAgBC,iEACD,CAGA,6GACC,YACD,CAIF,oDACC,GACC,SACD,CAEA,GACC,SACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-table-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-form__border-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t}\\n\\n\\t\\t&.ck-table-form__background-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t}\\n\\n\\t\\t&.ck-table-form__dimensions-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tflex-direction: column-reverse;\\n\\t\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t\\t& .ck.ck-dropdown {\\n\\t\\t\\t\\t\\tflex-grow: 0;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-table-form__dimension-operator {\\n\\t\\t\\t\\tflex-grow: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-labeled-field-view {\\n\\t\\t/* Allow absolute positioning of the status (error) balloons. */\\n\\t\\tposition: relative;\\n\\n\\t\\t& .ck.ck-labeled-field-view__status {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tbottom: calc( -1 * var(--ck-table-properties-error-arrow-size) );\\n\\t\\t\\ttransform: translate(-50%,100%);\\n\\n\\t\\t\\t/* Make sure the balloon status stays on top of other form elements. */\\n\\t\\t\\tz-index: 1;\\n\\n\\t\\t\\t/* The arrow pointing towards the field. */\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: calc( -1 * var(--ck-table-properties-error-arrow-size) );\\n\\t\\t\\t\\tleft: 50%;\\n\\t\\t\\t\\ttransform: translateX( -50% );\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-table-properties-error-arrow-size: 6px;\\n\\t--ck-table-properties-min-error-width: 150px;\\n}\\n\\n.ck.ck-table-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-form__border-row {\\n\\t\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\t\\t& > .ck-label {\\n\\t\\t\\t\\t\\tfont-size: var(--ck-font-size-tiny);\\n\\t\\t\\t\\t\\ttext-align: center;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-table-form__border-style,\\n\\t\\t\\t& .ck-table-form__border-width {\\n\\t\\t\\t\\twidth: 80px;\\n\\t\\t\\t\\tmin-width: 80px;\\n\\t\\t\\t\\tmax-width: 80px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-table-form__dimensions-row {\\n\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t& .ck-table-form__dimensions-row__width,\\n\\t\\t\\t& .ck-table-form__dimensions-row__height {\\n\\t\\t\\t\\tmargin: 0\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-table-form__dimension-operator {\\n\\t\\t\\t\\talign-self: flex-end;\\n\\t\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\t\\theight: var(--ck-ui-component-min-height);\\n\\t\\t\\t\\tline-height: var(--ck-ui-component-min-height);\\n\\t\\t\\t\\tmargin: 0 var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-labeled-field-view {\\n\\t\\tpadding-top: var(--ck-spacing-standard);\\n\\n\\t\\t& .ck.ck-labeled-field-view__status {\\n\\t\\t\\t@mixin ck-rounded-corners;\\n\\n\\t\\t\\tbackground: var(--ck-color-base-error);\\n\\t\\t\\tcolor: var(--ck-color-base-background);\\n\\t\\t\\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\\n\\t\\t\\tmin-width: var(--ck-table-properties-min-error-width);\\n\\t\\t\\ttext-align: center;\\n\\n\\t\\t\\t/* The arrow pointing towards the field. */\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tborder-color: transparent transparent var(--ck-color-base-error) transparent;\\n\\t\\t\\t\\tborder-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);\\n\\t\\t\\t\\tborder-style: solid;\\n\\t\\t\\t}\\n\\n\\t\\t\\tanimation: ck-table-form-labeled-view-status-appear .15s ease both;\\n\\t\\t}\\n\\n\\t\\t/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */\\n\\t\\t& .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\\n@keyframes ck-table-form-labeled-view-status-appear {\\n\\t0% {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-content:baseline;flex-basis:0;flex-wrap:wrap}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items{flex-wrap:nowrap}.ck.ck-table-properties-form{width:320px}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-self:flex-end;padding:0}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items>*{width:40px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tableproperties.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableproperties.css\"],\"names\":[],\"mappings\":\"AAOE,mFAGC,sBAAuB,CADvB,YAAa,CADb,cAOD,CAHC,qHACC,gBACD,CCTH,6BACC,WAmBD,CAhBE,mFACC,mBAAoB,CACpB,SAYD,CAVC,kGACC,eAAgB,CAGhB,qCAKD,CAHC,uHACC,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-table-properties-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-properties-form__alignment-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t\\tflex-basis: 0;\\n\\t\\t\\talign-content: baseline;\\n\\n\\t\\t\\t& .ck.ck-toolbar .ck-toolbar__items {\\n\\t\\t\\t\\tflex-wrap: nowrap;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-table-properties-form {\\n\\twidth: 320px;\\n\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-properties-form__alignment-row {\\n\\t\\t\\talign-self: flex-end;\\n\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t& .ck.ck-toolbar {\\n\\t\\t\\t\\tbackground: none;\\n\\n\\t\\t\\t\\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\\n\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\n\\t\\t\\t\\t& .ck-toolbar__items > * {\\n\\t\\t\\t\\t\\twidth: 40px;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-table-selected-cell-background:rgba(158,207,250,.3)}.ck.ck-editor__editable .table table td.ck-editor__editable_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected{box-shadow:unset;caret-color:transparent;outline:unset;position:relative}.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:after{background-color:var(--ck-table-selected-cell-background);bottom:0;content:\\\"\\\";left:0;pointer-events:none;position:absolute;right:0;top:0}.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus{background-color:transparent}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget{outline:unset}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle{display:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableselection.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,wDACD,CAGC,0IAKC,gBAAiB,CAFjB,uBAAwB,CACxB,aAAc,CAFd,iBAiCD,CA3BC,sJAGC,yDAA0D,CAK1D,QAAS,CAPT,UAAW,CAKX,MAAO,CAJP,mBAAoB,CAEpB,iBAAkB,CAGlB,OAAQ,CAFR,KAID,CAEA,wTAEC,4BACD,CAMA,gKACC,aAKD,CAHC,0NACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-table-selected-cell-background: hsla(208, 90%, 80%, .3);\\n}\\n\\n.ck.ck-editor__editable .table table {\\n\\t& td.ck-editor__editable_selected,\\n\\t& th.ck-editor__editable_selected {\\n\\t\\tposition: relative;\\n\\t\\tcaret-color: transparent;\\n\\t\\toutline: unset;\\n\\t\\tbox-shadow: unset;\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5/issues/6446 */\\n\\t\\t&:after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tpointer-events: none;\\n\\t\\t\\tbackground-color: var(--ck-table-selected-cell-background);\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tleft: 0;\\n\\t\\t\\tright: 0;\\n\\t\\t\\tbottom: 0;\\n\\t\\t}\\n\\n\\t\\t& ::selection,\\n\\t\\t&:focus {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * To reduce the amount of noise, all widgets in the table selection have no outline and no selection handle.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9491.\\n\\t\\t */\\n\\t\\t& .ck-widget {\\n\\t\\t\\toutline: unset;\\n\\n\\t\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-button,a.ck.ck-button{align-items:center;display:inline-flex;justify-content:left;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{display:none}.ck.ck-button.ck-button_with-text .ck-button__label,a.ck.ck-button.ck-button_with-text .ck-button__label{display:inline-block}.ck.ck-button:not(.ck-button_with-text),a.ck.ck-button:not(.ck-button_with-text){justify-content:center}.ck.ck-button,a.ck.ck-button{background:var(--ck-color-button-default-background)}.ck.ck-button:not(.ck-disabled):hover,a.ck.ck-button:not(.ck-disabled):hover{background:var(--ck-color-button-default-hover-background)}.ck.ck-button:not(.ck-disabled):active,a.ck.ck-button:not(.ck-disabled):active{background:var(--ck-color-button-default-active-background)}.ck.ck-button.ck-disabled,a.ck.ck-button.ck-disabled{background:var(--ck-color-button-default-disabled-background)}.ck.ck-button,a.ck.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-button,.ck-rounded-corners a.ck.ck-button,.ck.ck-button.ck-rounded-corners,a.ck.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-button,a.ck.ck-button{-webkit-appearance:none;border:1px solid transparent;cursor:default;font-size:inherit;line-height:1;min-height:var(--ck-ui-component-min-height);min-width:var(--ck-ui-component-min-height);padding:var(--ck-spacing-tiny);text-align:center;transition:box-shadow .2s ease-in-out,border .2s ease-in-out;vertical-align:middle;white-space:nowrap}.ck.ck-button:active,.ck.ck-button:focus,a.ck.ck-button:active,a.ck.ck-button:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-button .ck-button__icon use,.ck.ck-button .ck-button__icon use *,a.ck.ck-button .ck-button__icon use,a.ck.ck-button .ck-button__icon use *{color:inherit}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;vertical-align:middle}[dir=ltr] .ck.ck-button .ck-button__label,[dir=ltr] a.ck.ck-button .ck-button__label{text-align:left}[dir=rtl] .ck.ck-button .ck-button__label,[dir=rtl] a.ck.ck-button .ck-button__label{text-align:right}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{color:inherit}[dir=ltr] .ck.ck-button .ck-button__keystroke,[dir=ltr] a.ck.ck-button .ck-button__keystroke{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-button .ck-button__keystroke,[dir=rtl] a.ck.ck-button .ck-button__keystroke{margin-right:var(--ck-spacing-large)}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{font-weight:700;opacity:.7}.ck.ck-button.ck-disabled:active,.ck.ck-button.ck-disabled:focus,a.ck.ck-button.ck-disabled:active,a.ck.ck-button.ck-disabled:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-button.ck-disabled .ck-button__icon,.ck.ck-button.ck-disabled .ck-button__label,a.ck.ck-button.ck-disabled .ck-button__icon,a.ck.ck-button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-disabled .ck-button__keystroke,a.ck.ck-button.ck-disabled .ck-button__keystroke{opacity:.3}.ck.ck-button.ck-button_with-text,a.ck.ck-button.ck-button_with-text{padding:var(--ck-spacing-tiny) var(--ck-spacing-standard)}[dir=ltr] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=ltr] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}[dir=rtl] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=rtl] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:var(--ck-spacing-small);margin-right:calc(var(--ck-spacing-small)*-1)}.ck.ck-button.ck-button_with-keystroke .ck-button__label,a.ck.ck-button.ck-button_with-keystroke .ck-button__label{flex-grow:1}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{background:var(--ck-color-button-on-background)}.ck.ck-button.ck-on:not(.ck-disabled):hover,a.ck.ck-button.ck-on:not(.ck-disabled):hover{background:var(--ck-color-button-on-hover-background)}.ck.ck-button.ck-on:not(.ck-disabled):active,a.ck.ck-button.ck-on:not(.ck-disabled):active{background:var(--ck-color-button-on-active-background)}.ck.ck-button.ck-on.ck-disabled,a.ck.ck-button.ck-on.ck-disabled{background:var(--ck-color-button-on-disabled-background)}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{color:var(--ck-color-button-on-color)}.ck.ck-button.ck-button-save,a.ck.ck-button.ck-button-save{color:var(--ck-color-button-save)}.ck.ck-button.ck-button-cancel,a.ck.ck-button.ck-button-cancel{color:var(--ck-color-button-cancel)}.ck.ck-button-action,a.ck.ck-button-action{background:var(--ck-color-button-action-background)}.ck.ck-button-action:not(.ck-disabled):hover,a.ck.ck-button-action:not(.ck-disabled):hover{background:var(--ck-color-button-action-hover-background)}.ck.ck-button-action:not(.ck-disabled):active,a.ck.ck-button-action:not(.ck-disabled):active{background:var(--ck-color-button-action-active-background)}.ck.ck-button-action.ck-disabled,a.ck.ck-button-action.ck-disabled{background:var(--ck-color-button-action-disabled-background)}.ck.ck-button-action,a.ck.ck-button-action{color:var(--ck-color-button-action-text)}.ck.ck-button-bold,a.ck.ck-button-bold{font-weight:700}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/button.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/button.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/mixins/_button.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css\"],\"names\":[],\"mappings\":\"AAOA,6BAMC,kBAAmB,CADnB,mBAAoB,CAEpB,oBAAqB,CAHrB,iBAAkB,CCFlB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBDkBD,CAdC,iEACC,YACD,CAGC,yGACC,oBACD,CAID,iFACC,sBACD,CEjBD,6BCAC,oDD4ID,CCzIE,6EACC,0DACD,CAEA,+EACC,2DACD,CAID,qDACC,6DACD,CDfD,6BEDC,eF6ID,CA5IA,wIEGE,qCFyIF,CA5IA,6BA6BC,uBAAwB,CANxB,4BAA6B,CAjB7B,cAAe,CAcf,iBAAkB,CAHlB,aAAc,CAJd,4CAA6C,CAD7C,2CAA4C,CAJ5C,8BAA+B,CAC/B,iBAAkB,CAiBlB,4DAA8D,CAnB9D,qBAAsB,CAFtB,kBAuID,CA7GC,oFGhCA,2BAA2B,CCF3B,2CAA8B,CDC9B,YHqCA,CAIC,kJAEC,aACD,CAGD,iEAIC,aAAc,CACd,cAAe,CAHf,iBAAkB,CAClB,mBAAoB,CAMpB,qBASD,CAlBA,qFAYE,eAMF,CAlBA,qFAgBE,gBAEF,CAEA,yEACC,aAYD,CAbA,6FAIE,mCASF,CAbA,6FAQE,oCAKF,CAbA,yEAWC,eAAiB,CACjB,UACD,CAIC,oIIrFD,oDJyFC,CAOA,gLKhGD,kCLkGC,CAEA,iGACC,UACD,CAGD,qEACC,yDAcD,CAXC,2HAEE,4CAA+C,CAC/C,oCAOF,CAVA,2HAQE,mCAAoC,CADpC,6CAGF,CAKA,mHACC,WACD,CAID,yCC/HA,+CDmIA,CChIC,yFACC,qDACD,CAEA,2FACC,sDACD,CAID,iEACC,wDACD,CDgHA,yCAGC,qCACD,CAEA,2DACC,iCACD,CAEA,+DACC,mCACD,CAID,2CC/IC,mDDoJD,CCjJE,2FACC,yDACD,CAEA,6FACC,0DACD,CAID,mEACC,4DACD,CDgID,2CAIC,wCACD,CAEA,uCAEC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../mixins/_unselectable.css\\\";\\n\\n.ck.ck-button,\\na.ck.ck-button {\\n\\t@mixin ck-unselectable;\\n\\n\\tposition: relative;\\n\\tdisplay: inline-flex;\\n\\talign-items: center;\\n\\tjustify-content: left;\\n\\n\\t& .ck-button__label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t&.ck-button_with-text {\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Center the icon horizontally in a button without text. */\\n\\t&:not(.ck-button_with-text) {\\n\\t\\tjustify-content: center;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Makes element unselectable.\\n */\\n@define-mixin ck-unselectable {\\n\\t-moz-user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_focus.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../mixins/_button.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-button,\\na.ck.ck-button {\\n\\t@mixin ck-button-colors --ck-color-button-default;\\n\\t@mixin ck-rounded-corners;\\n\\n\\twhite-space: nowrap;\\n\\tcursor: default;\\n\\tvertical-align: middle;\\n\\tpadding: var(--ck-spacing-tiny);\\n\\ttext-align: center;\\n\\n\\t/* A very important piece of styling. Go to variable declaration to learn more. */\\n\\tmin-width: var(--ck-ui-component-min-height);\\n\\tmin-height: var(--ck-ui-component-min-height);\\n\\n\\t/* Normalize the height of the line. Removing this will break consistent height\\n\\tamong text and text-less buttons (with icons). */\\n\\tline-height: 1;\\n\\n\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\tfont-size: inherit;\\n\\n\\t/* Avoid flickering when the foucs border shows up. */\\n\\tborder: 1px solid transparent;\\n\\n\\t/* Apply some smooth transition to the box-shadow and border. */\\n\\ttransition: box-shadow .2s ease-in-out, border .2s ease-in-out;\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */\\n\\t-webkit-appearance: none;\\n\\n\\t&:active,\\n\\t&:focus {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t}\\n\\n\\t/* Allow icon coloring using the text \\\"color\\\" property. */\\n\\t& .ck-button__icon {\\n\\t\\t& use,\\n\\t\\t& use * {\\n\\t\\t\\tcolor: inherit;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-button__label {\\n\\t\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\t\\tfont-size: inherit;\\n\\t\\tfont-weight: inherit;\\n\\t\\tcolor: inherit;\\n\\t\\tcursor: inherit;\\n\\n\\t\\t/* Must be consistent with .ck-icon's vertical align. Otherwise, buttons with and\\n\\t\\twithout labels (but with icons) have different sizes in Chrome */\\n\\t\\tvertical-align: middle;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\ttext-align: right;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-button__keystroke {\\n\\t\\tcolor: inherit;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tmargin-left: var(--ck-spacing-large);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tmargin-right: var(--ck-spacing-large);\\n\\t\\t}\\n\\n\\t\\tfont-weight: bold;\\n\\t\\topacity: .7;\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\\n\\t&.ck-disabled {\\n\\t\\t&:active,\\n\\t\\t&:focus {\\n\\t\\t\\t/* The disabled button should have a slightly less visible shadow when focused. */\\n\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\\n\\t\\t}\\n\\n\\t\\t& .ck-button__icon {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\\n\\t\\t& .ck-button__label {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t& .ck-button__keystroke {\\n\\t\\t\\topacity: .3;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-button_with-text {\\n\\t\\tpadding: var(--ck-spacing-tiny) var(--ck-spacing-standard);\\n\\n\\t\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t\\t& .ck-button__icon {\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tmargin-left: calc(-1 * var(--ck-spacing-small));\\n\\t\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-right: calc(-1 * var(--ck-spacing-small));\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-button_with-keystroke {\\n\\t\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t/* A style of the button which is currently on, e.g. its feature is active. */\\n\\t&.ck-on {\\n\\t\\t@mixin ck-button-colors --ck-color-button-on;\\n\\n\\t\\tcolor: var(--ck-color-button-on-color);\\n\\t}\\n\\n\\t&.ck-button-save {\\n\\t\\tcolor: var(--ck-color-button-save);\\n\\t}\\n\\n\\t&.ck-button-cancel {\\n\\t\\tcolor: var(--ck-color-button-cancel);\\n\\t}\\n}\\n\\n/* A style of the button which handles the primary action. */\\n.ck.ck-button-action,\\na.ck.ck-button-action {\\n\\t@mixin ck-button-colors --ck-color-button-action;\\n\\n\\tcolor: var(--ck-color-button-action-text);\\n}\\n\\n.ck.ck-button-bold,\\na.ck.ck-button-bold {\\n\\tfont-weight: bold;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements a button of given background color.\\n *\\n * @param {String} $background - Background color of the button.\\n * @param {String} $border - Border color of the button.\\n */\\n@define-mixin ck-button-colors $prefix {\\n\\tbackground: var($(prefix)-background);\\n\\n\\t&:not(.ck-disabled) {\\n\\t\\t&:hover {\\n\\t\\t\\tbackground: var($(prefix)-hover-background);\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tbackground: var($(prefix)-active-background);\\n\\t\\t}\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\\n\\t&.ck-disabled {\\n\\t\\tbackground: var($(prefix)-disabled-background);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{display:block}:root{--ck-switch-button-toggle-width:2.6153846154em;--ck-switch-button-toggle-inner-size:calc(1.07692em + 1px);--ck-switch-button-translation:calc(var(--ck-switch-button-toggle-width) - var(--ck-switch-button-toggle-inner-size) - 2px);--ck-switch-button-inner-hover-shadow:0 0 0 5px var(--ck-color-switch-button-inner-shadow)}.ck.ck-button.ck-switchbutton,.ck.ck-button.ck-switchbutton.ck-on:active,.ck.ck-button.ck-switchbutton.ck-on:focus,.ck.ck-button.ck-switchbutton.ck-on:hover,.ck.ck-button.ck-switchbutton:active,.ck.ck-button.ck-switchbutton:focus,.ck.ck-button.ck-switchbutton:hover{background:transparent;color:inherit}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__label{margin-right:calc(var(--ck-spacing-large)*2)}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__label{margin-left:calc(var(--ck-spacing-large)*2)}.ck.ck-button.ck-switchbutton .ck-button__toggle{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners{border-radius:var(--ck-border-radius)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-left:auto}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-right:auto}.ck.ck-button.ck-switchbutton .ck-button__toggle{background:var(--ck-color-switch-button-off-background);border:1px solid transparent;transition:background .4s ease,box-shadow .2s ease-in-out,outline .2s ease-in-out;width:var(--ck-switch-button-toggle-width)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:calc(var(--ck-border-radius)*.5)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{background:var(--ck-color-switch-button-inner-background);height:var(--ck-switch-button-toggle-inner-size);transition:all .3s ease;width:var(--ck-switch-button-toggle-inner-size)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover{background:var(--ck-color-switch-button-off-hover-background)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner{box-shadow:var(--ck-switch-button-inner-hover-shadow)}.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-switchbutton:focus{border-color:transparent;box-shadow:none;outline:none}.ck.ck-button.ck-switchbutton:focus .ck-button__toggle{box-shadow:0 0 0 1px var(--ck-color-base-background),0 0 0 5px var(--ck-color-focus-outer-shadow);outline:var(--ck-focus-ring);outline-offset:1px}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle{background:var(--ck-color-switch-button-on-background)}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover{background:var(--ck-color-switch-button-on-hover-background)}[dir=ltr] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(var( --ck-switch-button-translation ))}[dir=rtl] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(calc(var( --ck-switch-button-translation )*-1))}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/switchbutton.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/switchbutton.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css\"],\"names\":[],\"mappings\":\"AASE,4HACC,aACD,CCCF,MAEC,8CAA+C,CAE/C,0DAAgE,CAChE,2HAIC,CACD,0FACD,CAOC,0QAEC,sBAAuB,CADvB,aAED,CAEA,0DAGE,4CAOF,CAVA,0DAQE,2CAEF,CAEA,iDCpCA,eD4EA,CAxCA,yIChCC,qCDwED,CAxCA,2DAKE,gBAmCF,CAxCA,2DAUE,iBA8BF,CAxCA,iDAkBC,uDAAwD,CAFxD,4BAA6B,CAD7B,iFAAsF,CAEtF,0CAuBD,CApBC,2ECxDD,eDmEC,CAXA,6LCpDA,qCAAsC,CDsDpC,8CASF,CAXA,2EAOC,yDAA0D,CAD1D,gDAAiD,CAIjD,uBAA0B,CAL1B,+CAMD,CAEA,uDACC,6DAKD,CAHC,iFACC,qDACD,CAIF,6DEhFA,kCFkFA,CAGA,oCACC,wBAAyB,CAEzB,eAAgB,CADhB,YAQD,CALC,uDACC,iGAAmG,CAEnG,4BAA6B,CAD7B,kBAED,CAKA,uDACC,sDAkBD,CAhBC,6DACC,4DACD,CAEA,2FAKE,2DAMF,CAXA,2FASE,oEAEF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-button.ck-switchbutton {\\n\\t& .ck-button__toggle {\\n\\t\\tdisplay: block;\\n\\n\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n/* Note: To avoid rendering issues (aliasing) but to preserve the responsive nature\\nof the component, floating–point numbers have been used which, for the default font size\\n(see: --ck-font-size-base), will generate simple integers. */\\n:root {\\n\\t/* 34px at 13px font-size */\\n\\t--ck-switch-button-toggle-width: 2.6153846154em;\\n\\t/* 14px at 13px font-size */\\n\\t--ck-switch-button-toggle-inner-size: calc(1.0769230769em + 1px);\\n\\t--ck-switch-button-translation: calc(\\n\\t\\tvar(--ck-switch-button-toggle-width) -\\n\\t\\tvar(--ck-switch-button-toggle-inner-size) -\\n\\t\\t2px /* Border */\\n\\t);\\n\\t--ck-switch-button-inner-hover-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow);\\n}\\n\\n.ck.ck-button.ck-switchbutton {\\n\\t/* Unlike a regular button, the switch button text color and background should never change.\\n\\t * Changing toggle switch (background, outline) is enough to carry the information about the\\n\\t * state of the entire component (https://github.com/ckeditor/ckeditor5/issues/12519)\\n\\t */\\n\\t&, &:hover, &:focus, &:active, &.ck-on:hover, &.ck-on:focus, &.ck-on:active {\\n\\t\\tcolor: inherit;\\n\\t\\tbackground: transparent;\\n\\t}\\n\\n\\t& .ck-button__label {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t/* Separate the label from the switch */\\n\\t\\t\\tmargin-right: calc(2 * var(--ck-spacing-large));\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t/* Separate the label from the switch */\\n\\t\\t\\tmargin-left: calc(2 * var(--ck-spacing-large));\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-button__toggle {\\n\\t\\t@mixin ck-rounded-corners;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t/* Make sure the toggle is always to the right as far as possible. */\\n\\t\\t\\tmargin-left: auto;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t/* Make sure the toggle is always to the left as far as possible. */\\n\\t\\t\\tmargin-right: auto;\\n\\t\\t}\\n\\n\\t\\t/* Apply some smooth transition to the box-shadow and border. */\\n\\t\\t/* Gently animate the background color of the toggle switch */\\n\\t\\ttransition: background 400ms ease, box-shadow .2s ease-in-out, outline .2s ease-in-out;\\n\\t\\tborder: 1px solid transparent;\\n\\t\\twidth: var(--ck-switch-button-toggle-width);\\n\\t\\tbackground: var(--ck-color-switch-button-off-background);\\n\\n\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t\\tborder-radius: calc(.5 * var(--ck-border-radius));\\n\\t\\t\\t}\\n\\n\\t\\t\\twidth: var(--ck-switch-button-toggle-inner-size);\\n\\t\\t\\theight: var(--ck-switch-button-toggle-inner-size);\\n\\t\\t\\tbackground: var(--ck-color-switch-button-inner-background);\\n\\n\\t\\t\\t/* Gently animate the inner part of the toggle switch */\\n\\t\\t\\ttransition: all 300ms ease;\\n\\t\\t}\\n\\n\\t\\t&:hover {\\n\\t\\t\\tbackground: var(--ck-color-switch-button-off-hover-background);\\n\\n\\t\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\t\\tbox-shadow: var(--ck-switch-button-inner-hover-shadow);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-disabled .ck-button__toggle {\\n\\t\\t@mixin ck-disabled;\\n\\t}\\n\\n\\t/* Overriding default .ck-button:focus styles + an outline around the toogle */\\n\\t&:focus {\\n\\t\\tborder-color: transparent;\\n\\t\\toutline: none;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\t& .ck-button__toggle {\\n\\t\\t\\tbox-shadow: 0 0 0 1px var(--ck-color-base-background), 0 0 0 5px var(--ck-color-focus-outer-shadow);\\n\\t\\t\\toutline-offset: 1px;\\n\\t\\t\\toutline: var(--ck-focus-ring);\\n\\t\\t}\\n\\t}\\n\\n\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t&.ck-on {\\n\\t\\t& .ck-button__toggle {\\n\\t\\t\\tbackground: var(--ck-color-switch-button-on-background);\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tbackground: var(--ck-color-switch-button-on-hover-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\t\\t/*\\n\\t\\t\\t\\t* Move the toggle switch to the right. It will be animated.\\n\\t\\t\\t\\t*/\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\ttransform: translateX( var( --ck-switch-button-translation ) );\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\ttransform: translateX( calc( -1 * var( --ck-switch-button-translation ) ) );\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-color-grid{display:grid}:root{--ck-color-grid-tile-size:24px;--ck-color-color-grid-check-icon:#166fd4}.ck.ck-color-grid{grid-gap:5px;padding:8px}.ck.ck-color-grid__tile{border:0;height:var(--ck-color-grid-tile-size);min-height:var(--ck-color-grid-tile-size);min-width:var(--ck-color-grid-tile-size);padding:0;transition:box-shadow .2s ease;width:var(--ck-color-grid-tile-size)}.ck.ck-color-grid__tile.ck-disabled{cursor:unset;transition:unset}.ck.ck-color-grid__tile.ck-color-selector__color-tile_bordered{box-shadow:0 0 0 1px var(--ck-color-base-border)}.ck.ck-color-grid__tile .ck.ck-icon{color:var(--ck-color-color-grid-check-icon);display:none}.ck.ck-color-grid__tile.ck-on{box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-base-text)}.ck.ck-color-grid__tile.ck-on .ck.ck-icon{display:block}.ck.ck-color-grid__tile.ck-on,.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){border:0}.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}.ck.ck-color-grid__label{padding:0 var(--ck-spacing-standard)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorgrid/colorgrid.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorgrid/colorgrid.css\"],\"names\":[],\"mappings\":\"AAKA,kBACC,YACD,CCAA,MACC,8BAA+B,CAK/B,wCACD,CAEA,kBACC,YAAa,CACb,WACD,CAEA,wBAOC,QAAS,CALT,qCAAsC,CAEtC,yCAA0C,CAD1C,wCAAyC,CAEzC,SAAU,CACV,8BAA+B,CAL/B,oCAyCD,CAjCC,oCACC,YAAa,CACb,gBACD,CAEA,+DACC,gDACD,CAEA,oCAEC,2CAA4C,CAD5C,YAED,CAEA,8BACC,8FAKD,CAHC,0CACC,aACD,CAGD,8HAIC,QACD,CAEA,gGAEC,iGACD,CAGD,yBACC,oCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-color-grid {\\n\\tdisplay: grid;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-color-grid-tile-size: 24px;\\n\\n\\t/* Not using global colors here because these may change but some colors in a pallette\\n\\t * require special treatment. For instance, this ensures no matter what the UI text color is,\\n\\t * the check icon will look good on the black color tile. */\\n\\t--ck-color-color-grid-check-icon: hsl(212, 81%, 46%);\\n}\\n\\n.ck.ck-color-grid {\\n\\tgrid-gap: 5px;\\n\\tpadding: 8px;\\n}\\n\\n.ck.ck-color-grid__tile {\\n\\twidth: var(--ck-color-grid-tile-size);\\n\\theight: var(--ck-color-grid-tile-size);\\n\\tmin-width: var(--ck-color-grid-tile-size);\\n\\tmin-height: var(--ck-color-grid-tile-size);\\n\\tpadding: 0;\\n\\ttransition: .2s ease box-shadow;\\n\\tborder: 0;\\n\\n\\t&.ck-disabled {\\n\\t\\tcursor: unset;\\n\\t\\ttransition: unset;\\n\\t}\\n\\n\\t&.ck-color-selector__color-tile_bordered {\\n\\t\\tbox-shadow: 0 0 0 1px var(--ck-color-base-border);\\n\\t}\\n\\n\\t& .ck.ck-icon {\\n\\t\\tdisplay: none;\\n\\t\\tcolor: var(--ck-color-color-grid-check-icon);\\n\\t}\\n\\n\\t&.ck-on {\\n\\t\\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text);\\n\\n\\t\\t& .ck.ck-icon {\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-on,\\n\\t&:focus:not( .ck-disabled ),\\n\\t&:hover:not( .ck-disabled ) {\\n\\t\\t/* Disable the default .ck-button's border ring. */\\n\\t\\tborder: 0;\\n\\t}\\n\\n\\t&:focus:not( .ck-disabled ),\\n\\t&:hover:not( .ck-disabled ) {\\n\\t\\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\\n\\t}\\n}\\n\\n.ck.ck-color-grid__label {\\n\\tpadding: 0 var(--ck-spacing-standard);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".color-picker-hex-input{width:max-content}.color-picker-hex-input .ck.ck-input{min-width:unset}.ck.ck-color-picker__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;margin:var(--ck-spacing-large) 0 0;width:unset}.ck.ck-color-picker__row .ck.ck-labeled-field-view{padding-top:unset}.ck.ck-color-picker__row .ck.ck-input-text{width:unset}.ck.ck-color-picker__row .ck-color-picker__hash-view{padding-right:var(--ck-spacing-medium);padding-top:var(--ck-spacing-tiny)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorpicker/colorpicker.css\"],\"names\":[],\"mappings\":\"AAKA,wBACC,iBAKD,CAHC,qCACC,eACD,CAGD,yBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAA8B,CAC9B,kCAAmC,CACnC,WAcD,CAZC,mDACC,iBACD,CAEA,2CACC,WACD,CAEA,qDAEC,sCAAuC,CADvC,kCAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.color-picker-hex-input {\\n\\twidth: max-content;\\n\\n\\t& .ck.ck-input {\\n\\t\\tmin-width: unset;\\n\\t}\\n}\\n\\n.ck.ck-color-picker__row {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\tjustify-content: space-between;\\n\\tmargin: var(--ck-spacing-large) 0 0;\\n\\twidth: unset;\\n\\n\\t& .ck.ck-labeled-field-view {\\n\\t\\tpadding-top: unset;\\n\\t}\\n\\n\\t& .ck.ck-input-text {\\n\\t\\twidth: unset;\\n\\t}\\n\\n\\t& .ck-color-picker__hash-view {\\n\\t\\tpadding-top: var(--ck-spacing-tiny);\\n\\t\\tpadding-right: var(--ck-spacing-medium);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{align-items:center;display:flex}[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{justify-content:flex-start}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar{display:flex;flex-direction:row;justify-content:space-around}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-cancel,.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-save{flex:1}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{width:100%}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard)}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker:not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon{margin-left:var(--ck-spacing-standard)}.ck.ck-color-selector .ck-color-grids-fragment label.ck.ck-color-grid__label{font-weight:unset}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker{padding:8px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker{height:100px;min-width:180px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation){border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue){border-radius:0 0 var(--ck-border-radius) var(--ck-border-radius)}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue-pointer),.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation-pointer){height:15px;width:15px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar{padding:0 8px 8px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorselector/colorselector.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorselector/colorselector.css\"],\"names\":[],\"mappings\":\"AAUE,oLAGC,kBAAmB,CADnB,YAMD,CARA,wMAME,0BAEF,CAKA,iFACC,YAAa,CACb,kBAAmB,CACnB,4BAMD,CAJC,oMAEC,MACD,CCrBD,oLAEC,UACD,CAEA,0FAEC,2BAA4B,CAC5B,4BAA6B,CAF7B,qEAiBD,CAbC,sGACC,gDACD,CAEA,gHAEE,uCAMF,CARA,gHAME,sCAEF,CAGD,6EACC,iBACD,CAKA,oEACC,WAoBD,CAlBC,sFACC,YAAa,CACb,eAeD,CAbC,wGACC,iEACD,CAEA,iGACC,iEACD,CAEA,yNAGC,WAAY,CADZ,UAED,CAIF,iFACC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-color-selector {\\n\\t/* View fragment with color grids. */\\n\\t& .ck-color-grids-fragment {\\n\\t\\t& .ck-button.ck-color-selector__remove-color,\\n\\t\\t& .ck-button.ck-color-selector__color-picker {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tjustify-content: flex-start;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* View fragment with a color picker. */\\n\\t& .ck-color-picker-fragment {\\n\\t\\t& .ck.ck-color-selector_action-bar {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\tjustify-content: space-around;\\n\\n\\t\\t\\t& .ck-button-save,\\n\\t\\t\\t& .ck-button-cancel {\\n\\t\\t\\t\\tflex: 1\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-color-selector {\\n\\t/* View fragment with color grids. */\\n\\t& .ck-color-grids-fragment {\\n\\t\\t& .ck-button.ck-color-selector__remove-color,\\n\\t\\t& .ck-button.ck-color-selector__color-picker {\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button.ck-color-selector__color-picker {\\n\\t\\t\\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\n\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck.ck-icon {\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\tmargin-right: var(--ck-spacing-standard);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& label.ck.ck-color-grid__label {\\n\\t\\t\\tfont-weight: unset;\\n\\t\\t}\\n\\t}\\n\\n\\t/* View fragment with a color picker. */\\n\\t& .ck-color-picker-fragment {\\n\\t\\t& .ck.ck-color-picker {\\n\\t\\t\\tpadding: 8px;\\n\\n\\t\\t\\t& .hex-color-picker {\\n\\t\\t\\t\\theight: 100px;\\n\\t\\t\\t\\tmin-width: 180px;\\n\\n\\t\\t\\t\\t&::part(saturation) {\\n\\t\\t\\t\\t\\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&::part(hue) {\\n\\t\\t\\t\\t\\tborder-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&::part(saturation-pointer),\\n\\t\\t\\t\\t&::part(hue-pointer) {\\n\\t\\t\\t\\t\\twidth: 15px;\\n\\t\\t\\t\\t\\theight: 15px;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& .ck.ck-color-selector_action-bar {\\n\\t\\t\\tpadding: 0 8px 8px;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-dropdown-max-width:75vw}.ck.ck-dropdown{display:inline-block;position:relative}.ck.ck-dropdown .ck-dropdown__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-dropdown .ck-button.ck-dropdown__button{width:100%}.ck.ck-dropdown .ck-dropdown__panel{display:none;max-width:var(--ck-dropdown-max-width);position:absolute;z-index:var(--ck-z-modal)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible{display:inline-block}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw{bottom:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{bottom:auto;top:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se{left:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{right:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s{left:50%;transform:translateX(-50%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw{left:75%;transform:translateX(-75%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme{left:25%;transform:translateX(-25%)}.ck.ck-toolbar .ck-dropdown__panel{z-index:calc(var(--ck-z-modal) + 1)}:root{--ck-dropdown-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-dropdown{font-size:inherit}.ck.ck-dropdown .ck-dropdown__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-dropdown .ck-dropdown__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-dropdown .ck-dropdown__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{overflow:hidden;text-overflow:ellipsis;width:7em}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label{width:auto}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active{box-shadow:none}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus{box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-dropdown__panel{border-radius:0}.ck-rounded-corners .ck.ck-dropdown__panel,.ck.ck-dropdown__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dropdown__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;box-shadow:var(--ck-drop-shadow),0 0;min-width:100%}.ck.ck-dropdown__panel.ck-dropdown__panel_se{border-top-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_sw{border-top-right-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_ne{border-bottom-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_nw{border-bottom-right-radius:0}.ck.ck-dropdown__panel:focus{outline:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/dropdown.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/dropdown.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,4BACD,CAEA,gBACC,oBAAqB,CACrB,iBA2ED,CAzEC,oCACC,mBAAoB,CACpB,2BACD,CAGA,+CACC,UACD,CAEA,oCACC,YAAa,CAEb,sCAAuC,CAEvC,iBAAkB,CAHlB,yBA4DD,CAvDC,+DACC,oBACD,CAEA,mSAKC,WACD,CAEA,mSAUC,WAAY,CADZ,QAED,CAEA,oHAEC,MACD,CAEA,oHAEC,OACD,CAEA,kHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAQF,mCACC,mCACD,CCpFA,MACC,sDACD,CAEA,gBAEC,iBA2ED,CAzEC,oCACC,mCACD,CAGC,8CAIC,sCAAuC,CAHvC,gCAID,CAIA,8CACC,+BAAgC,CAGhC,oCACD,CAGD,gDC/BA,kCDiCA,CAIE,mFAEC,oCACD,CAIA,mFAEC,qCACD,CAID,iEAEC,eAAgB,CAChB,sBAAuB,CAFvB,SAGD,CAGA,6EC1DD,kCD4DC,CAGA,qDACC,2BAA4B,CAC5B,4BACD,CAEA,sGACC,UACD,CAGA,yHAEC,eAKD,CAHC,qIE7EF,2CF+EE,CAKH,uBGlFC,eHkHD,CAhCA,qFG9EE,qCH8GF,CAhCA,uBAIC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CE1FT,oCAA8B,CF6F9B,cAuBD,CAnBC,6CACC,wBACD,CAEA,6CACC,yBACD,CAEA,6CACC,2BACD,CAEA,6CACC,4BACD,CAEA,6BACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-dropdown-max-width: 75vw;\\n}\\n\\n.ck.ck-dropdown {\\n\\tdisplay: inline-block;\\n\\tposition: relative;\\n\\n\\t& .ck-dropdown__arrow {\\n\\t\\tpointer-events: none;\\n\\t\\tz-index: var(--ck-z-default);\\n\\t}\\n\\n\\t/* Dropdown button should span horizontally, e.g. in vertical toolbars */\\n\\t& .ck-button.ck-dropdown__button {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t& .ck-dropdown__panel {\\n\\t\\tdisplay: none;\\n\\t\\tz-index: var(--ck-z-modal);\\n\\t\\tmax-width: var(--ck-dropdown-max-width);\\n\\n\\t\\tposition: absolute;\\n\\n\\t\\t&.ck-dropdown__panel-visible {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_ne,\\n\\t\\t&.ck-dropdown__panel_nw,\\n\\t\\t&.ck-dropdown__panel_n,\\n\\t\\t&.ck-dropdown__panel_nmw,\\n\\t\\t&.ck-dropdown__panel_nme {\\n\\t\\t\\tbottom: 100%;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_se,\\n\\t\\t&.ck-dropdown__panel_sw,\\n\\t\\t&.ck-dropdown__panel_smw,\\n\\t\\t&.ck-dropdown__panel_sme,\\n\\t\\t&.ck-dropdown__panel_s {\\n\\t\\t\\t/*\\n\\t\\t\\t * Using transform: translate3d( 0, 100%, 0 ) causes blurry dropdown on Chrome 67-78+ on non-retina displays.\\n\\t\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/1053.\\n\\t\\t\\t */\\n\\t\\t\\ttop: 100%;\\n\\t\\t\\tbottom: auto;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_ne,\\n\\t\\t&.ck-dropdown__panel_se {\\n\\t\\t\\tleft: 0px;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_nw,\\n\\t\\t&.ck-dropdown__panel_sw {\\n\\t\\t\\tright: 0px;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_s,\\n\\t\\t&.ck-dropdown__panel_n {\\n\\t\\t\\t/* Positioning panels relative to the center of the button */\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\ttransform: translateX(-50%);\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_nmw,\\n\\t\\t&.ck-dropdown__panel_smw {\\n\\t\\t\\t/* Positioning panels relative to the middle-west of the button */\\n\\t\\t\\tleft: 75%;\\n\\t\\t\\ttransform: translateX(-75%);\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_nme,\\n\\t\\t&.ck-dropdown__panel_sme {\\n\\t\\t\\t/* Positioning panels relative to the middle-east of the button */\\n\\t\\t\\tleft: 25%;\\n\\t\\t\\ttransform: translateX(-25%);\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * Toolbar dropdown panels should be always above the UI (eg. other dropdown panels) from the editor's content.\\n * See https://github.com/ckeditor/ckeditor5/issues/7874\\n */\\n.ck.ck-toolbar .ck-dropdown__panel {\\n\\tz-index: calc( var(--ck-z-modal) + 1 );\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-dropdown-arrow-size: calc(0.5 * var(--ck-icon-size));\\n}\\n\\n.ck.ck-dropdown {\\n\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\tfont-size: inherit;\\n\\n\\t& .ck-dropdown__arrow {\\n\\t\\twidth: var(--ck-dropdown-arrow-size);\\n\\t}\\n\\n\\t@mixin ck-dir ltr {\\n\\t\\t& .ck-dropdown__arrow {\\n\\t\\t\\tright: var(--ck-spacing-standard);\\n\\n\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-dir rtl {\\n\\t\\t& .ck-dropdown__arrow {\\n\\t\\t\\tleft: var(--ck-spacing-standard);\\n\\n\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-disabled .ck-dropdown__arrow {\\n\\t\\t@mixin ck-disabled;\\n\\t}\\n\\n\\t& .ck-button.ck-dropdown__button {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\t\\t/* Make sure dropdowns with just an icon have the right inner spacing */\\n\\t\\t\\t\\tpadding-left: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\t\\t/* Make sure dropdowns with just an icon have the right inner spacing */\\n\\t\\t\\t\\tpadding-right: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* #23 */\\n\\t\\t& .ck-button__label {\\n\\t\\t\\twidth: 7em;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\\n\\t\\t&.ck-disabled .ck-button__label {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t\\t&.ck-on {\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__button_label-width_auto .ck-button__label {\\n\\t\\t\\twidth: auto;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5/issues/8699 */\\n\\t\\t&.ck-off:active,\\n\\t\\t&.ck-on:active {\\n\\t\\t\\tbox-shadow: none;\\n\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-dropdown__panel {\\n\\t@mixin ck-rounded-corners;\\n\\t@mixin ck-drop-shadow;\\n\\n\\tbackground: var(--ck-color-dropdown-panel-background);\\n\\tborder: 1px solid var(--ck-color-dropdown-panel-border);\\n\\tbottom: 0;\\n\\n\\t/* Make sure the panel is at least as wide as the drop-down's button. */\\n\\tmin-width: 100%;\\n\\n\\t/* Disabled corner border radius to be consistent with the .dropdown__button\\n\\thttps://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t&.ck-dropdown__panel_se {\\n\\t\\tborder-top-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-dropdown__panel_sw {\\n\\t\\tborder-top-right-radius: 0;\\n\\t}\\n\\n\\t&.ck-dropdown__panel_ne {\\n\\t\\tborder-bottom-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-dropdown__panel_nw {\\n\\t\\tborder-bottom-right-radius: 0;\\n\\t}\\n\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-dropdown .ck-dropdown__panel .ck-list{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list,.ck.ck-dropdown .ck-dropdown__panel .ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/listdropdown.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAOA,6CCIC,eDqBD,CAzBA,iICQE,qCAAsC,CDJtC,wBAqBF,CAfE,mFCND,eDYC,CANA,6MCFA,qCAAsC,CDKpC,2BAA4B,CAC5B,4BAA6B,CAF7B,wBAIF,CAEA,kFCdD,eDmBC,CALA,2MCVA,qCAAsC,CDYpC,wBAAyB,CACzB,yBAEF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n.ck.ck-dropdown .ck-dropdown__panel .ck-list {\\n\\t/* Disabled radius of top-left border to be consistent with .dropdown__button\\n\\thttps://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t@mixin ck-rounded-corners {\\n\\t\\tborder-top-left-radius: 0;\\n\\t}\\n\\n\\t/* Make sure the button belonging to the first/last child of the list goes well with the\\n\\tborder radius of the entire panel. */\\n\\t& .ck-list__item {\\n\\t\\t&:first-child .ck-button {\\n\\t\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:last-child .ck-button {\\n\\t\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-splitbutton{font-size:inherit}.ck.ck-splitbutton .ck-splitbutton__action:focus{z-index:calc(var(--ck-z-default) + 1)}:root{--ck-color-split-button-hover-background:#ebebeb;--ck-color-split-button-hover-border:#b3b3b3}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-right-radius:unset;border-top-right-radius:unset}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-left-radius:unset;border-top-left-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow{min-width:unset}[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-left-radius:unset;border-top-left-radius:unset}[dir=rtl] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-right-radius:unset;border-top-right-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow svg{width:var(--ck-dropdown-arrow-size)}.ck.ck-splitbutton>.ck-splitbutton__arrow:not(:focus){border-bottom-width:0;border-top-width:0}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover),.ck.ck-splitbutton:hover>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover){background:var(--ck-color-split-button-hover-background)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{background-color:var(--ck-color-split-button-hover-border);content:\\\"\\\";height:100%;position:absolute;width:1px}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:focus:after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:focus:after{--ck-color-split-button-hover-border:var(--ck-color-focus-border)}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{left:-1px}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{right:-1px}.ck.ck-splitbutton.ck-splitbutton_open{border-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__action{border-bottom-left-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__arrow{border-bottom-right-radius:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/splitbutton.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/splitbutton.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAKA,mBAEC,iBAKD,CAHC,iDACC,qCACD,CCJD,MACC,gDAAyD,CACzD,4CACD,CAMC,oIAKE,gCAAiC,CADjC,6BASF,CAbA,oIAWE,+BAAgC,CADhC,4BAGF,CAEA,0CAGC,eAiBD,CApBA,oDAQE,+BAAgC,CADhC,4BAaF,CApBA,oDAcE,gCAAiC,CADjC,6BAOF,CAHC,8CACC,mCACD,CAKD,sDAEC,qBAAwB,CADxB,kBAED,CAQC,0KACC,wDACD,CAIA,8JAKC,0DAA2D,CAJ3D,UAAW,CAGX,WAAY,CAFZ,iBAAkB,CAClB,SAGD,CAGA,sIACC,iEACD,CAGC,kLACC,SACD,CAIA,kLACC,UACD,CAMF,uCCzFA,eDmGA,CAVA,qHCrFC,qCD+FD,CARE,qKACC,2BACD,CAEA,mKACC,4BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-splitbutton {\\n\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\tfont-size: inherit;\\n\\n\\t& .ck-splitbutton__action:focus {\\n\\t\\tz-index: calc(var(--ck-z-default) + 1);\\n\\t}\\n}\\n\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-color-split-button-hover-background: hsl(0, 0%, 92%);\\n\\t--ck-color-split-button-hover-border: hsl(0, 0%, 70%);\\n}\\n\\n.ck.ck-splitbutton {\\n\\t/*\\n\\t * Note: ck-rounded and ck-dir mixins don't go together (because they both use @nest).\\n\\t */\\n\\t&:hover > .ck-splitbutton__action,\\n\\t&.ck-splitbutton_open > .ck-splitbutton__action {\\n\\t\\t@nest [dir=\\\"ltr\\\"] & {\\n\\t\\t\\t/* Don't round the action button on the right side */\\n\\t\\t\\tborder-top-right-radius: unset;\\n\\t\\t\\tborder-bottom-right-radius: unset;\\n\\t\\t}\\n\\n\\t\\t@nest [dir=\\\"rtl\\\"] & {\\n\\t\\t\\t/* Don't round the action button on the left side */\\n\\t\\t\\tborder-top-left-radius: unset;\\n\\t\\t\\tborder-bottom-left-radius: unset;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-splitbutton__arrow {\\n\\t\\t/* It's a text-less button and since the icon is positioned absolutely in such situation,\\n\\t\\tit must get some arbitrary min-width. */\\n\\t\\tmin-width: unset;\\n\\n\\t\\t@nest [dir=\\\"ltr\\\"] & {\\n\\t\\t\\t/* Don't round the arrow button on the left side */\\n\\t\\t\\tborder-top-left-radius: unset;\\n\\t\\t\\tborder-bottom-left-radius: unset;\\n\\t\\t}\\n\\n\\t\\t@nest [dir=\\\"rtl\\\"] & {\\n\\t\\t\\t/* Don't round the arrow button on the right side */\\n\\t\\t\\tborder-top-right-radius: unset;\\n\\t\\t\\tborder-bottom-right-radius: unset;\\n\\t\\t}\\n\\n\\t\\t& svg {\\n\\t\\t\\twidth: var(--ck-dropdown-arrow-size);\\n\\t\\t}\\n\\t}\\n\\n\\t/* Make sure the divider stretches 100% height of the button\\n\\thttps://github.com/ckeditor/ckeditor5/issues/10936 */\\n\\t& > .ck-splitbutton__arrow:not(:focus) {\\n\\t\\tborder-top-width: 0px;\\n\\t\\tborder-bottom-width: 0px;\\n\\t}\\n\\n\\t/* When the split button is \\\"open\\\" (the arrow is on) or being hovered, it should get some styling\\n\\tas a whole. The background of both buttons should stand out and there should be a visual\\n\\tseparation between both buttons. */\\n\\t&.ck-splitbutton_open,\\n\\t&:hover {\\n\\t\\t/* When the split button hovered as a whole, not as individual buttons. */\\n\\t\\t& > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) {\\n\\t\\t\\tbackground: var(--ck-color-split-button-hover-background);\\n\\t\\t}\\n\\n\\t\\t/* Splitbutton separator needs to be set with the ::after pseudoselector\\n\\t\\tto display properly the borders on focus */\\n\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\twidth: 1px;\\n\\t\\t\\theight: 100%;\\n\\t\\t\\tbackground-color: var(--ck-color-split-button-hover-border);\\n\\t\\t}\\n\\n\\t\\t/* Make sure the divider between the buttons looks fine when the button is focused */\\n\\t\\t& > .ck-splitbutton__arrow:focus::after {\\n\\t\\t\\t--ck-color-split-button-hover-border: var(--ck-color-focus-border);\\n\\t\\t}\\n\\n\\t\\t@nest [dir=\\\"ltr\\\"] & {\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\\n\\t\\t\\t\\tleft: -1px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@nest [dir=\\\"rtl\\\"] & {\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\\n\\t\\t\\t\\tright: -1px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* Don't round the bottom left and right corners of the buttons when \\\"open\\\"\\n\\thttps://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t&.ck-splitbutton_open {\\n\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t& > .ck-splitbutton__action {\\n\\t\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > .ck-splitbutton__arrow {\\n\\t\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-toolbar-dropdown-max-width:60vw}.ck.ck-toolbar-dropdown>.ck-dropdown__panel{max-width:var(--ck-toolbar-dropdown-max-width);width:max-content}.ck.ck-toolbar-dropdown>.ck-dropdown__panel .ck-button:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-toolbar-dropdown .ck-toolbar{border:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/toolbardropdown.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/toolbardropdown.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,oCACD,CAEA,4CAGC,8CAA+C,CAD/C,iBAQD,CAJE,6DACC,qCACD,CCZF,oCACC,QACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-toolbar-dropdown-max-width: 60vw;\\n}\\n\\n.ck.ck-toolbar-dropdown > .ck-dropdown__panel {\\n\\t/* https://github.com/ckeditor/ckeditor5/issues/5586 */\\n\\twidth: max-content;\\n\\tmax-width: var(--ck-toolbar-dropdown-max-width);\\n\\n\\t& .ck-button {\\n\\t\\t&:focus {\\n\\t\\t\\tz-index: calc(var(--ck-z-default) + 1);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-toolbar-dropdown .ck-toolbar {\\n\\tborder: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-editable-blur-selection:#d9d9d9}.ck.ck-editor__editable:not(.ck-editor__nested-editable){border-radius:0}.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),.ck.ck-editor__editable.ck-rounded-corners:not(.ck-editor__nested-editable){border-radius:var(--ck-border-radius)}.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable){border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck.ck-editor__editable_inline{border:1px solid transparent;overflow:auto;padding:0 var(--ck-spacing-standard)}.ck.ck-editor__editable_inline[dir=ltr]{text-align:left}.ck.ck-editor__editable_inline[dir=rtl]{text-align:right}.ck.ck-editor__editable_inline>:first-child{margin-top:var(--ck-spacing-large)}.ck.ck-editor__editable_inline>:last-child{margin-bottom:var(--ck-spacing-large)}.ck.ck-editor__editable_inline.ck-blurred ::selection{background:var(--ck-color-editable-blur-selection)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_n]:after{border-bottom-color:var(--ck-color-panel-background)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_s]:after{border-top-color:var(--ck-color-panel-background)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/editorui.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAWA,MACC,0CACD,CAEA,yDCJC,eDWD,CAPA,yJCAE,qCDOF,CAJC,oEEPA,2BAA2B,CCF3B,qCAA8B,CDC9B,YFWA,CAGD,+BAGC,4BAA6B,CAF7B,aAAc,CACd,oCA6BD,CA1BC,wCACC,eACD,CAEA,wCACC,gBACD,CAGA,4CACC,kCACD,CAGA,2CAKC,qCACD,CAGA,sDACC,kDACD,CAKA,gEACC,oDACD,CAIA,gEACC,iDACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"../../../mixins/_focus.css\\\";\\n@import \\\"../../mixins/_button.css\\\";\\n\\n:root {\\n\\t--ck-color-editable-blur-selection: hsl(0, 0%, 85%);\\n}\\n\\n.ck.ck-editor__editable:not(.ck-editor__nested-editable) {\\n\\t@mixin ck-rounded-corners;\\n\\n\\t&.ck-focused {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-inner-shadow);\\n\\t}\\n}\\n\\n.ck.ck-editor__editable_inline {\\n\\toverflow: auto;\\n\\tpadding: 0 var(--ck-spacing-standard);\\n\\tborder: 1px solid transparent;\\n\\n\\t&[dir=\\\"ltr\\\"] {\\n\\t\\ttext-align: left;\\n\\t}\\n\\n\\t&[dir=\\\"rtl\\\"] {\\n\\t\\ttext-align: right;\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */\\n\\t& > *:first-child {\\n\\t\\tmargin-top: var(--ck-spacing-large);\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5/issues/847 */\\n\\t& > *:last-child {\\n\\t\\t/*\\n\\t\\t * This value should match with the default margins of the block elements (like .media or .image)\\n\\t\\t * to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).\\n\\t\\t */\\n\\t\\tmargin-bottom: var(--ck-spacing-large);\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5/issues/6517 */\\n\\t&.ck-blurred ::selection {\\n\\t\\tbackground: var(--ck-color-editable-blur-selection);\\n\\t}\\n}\\n\\n/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */\\n.ck.ck-balloon-panel.ck-toolbar-container[class*=\\\"arrow_n\\\"] {\\n\\t&::after {\\n\\t\\tborder-bottom-color: var(--ck-color-panel-background);\\n\\t}\\n}\\n\\n.ck.ck-balloon-panel.ck-toolbar-container[class*=\\\"arrow_s\\\"] {\\n\\t&::after {\\n\\t\\tborder-top-color: var(--ck-color-panel-background);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-form__header{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}:root{--ck-form-header-height:38px}.ck.ck-form__header{border-bottom:1px solid var(--ck-color-base-border);height:var(--ck-form-header-height);line-height:var(--ck-form-header-height);padding:var(--ck-spacing-small) var(--ck-spacing-large)}.ck.ck-form__header .ck-form__header__label{font-weight:700}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/formheader/formheader.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/formheader/formheader.css\"],\"names\":[],\"mappings\":\"AAKA,oBAIC,kBAAmB,CAHnB,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CAEjB,6BACD,CCNA,MACC,4BACD,CAEA,oBAIC,mDAAoD,CAFpD,mCAAoC,CACpC,wCAAyC,CAFzC,uDAQD,CAHC,4CACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-form__header {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\talign-items: center;\\n\\tjustify-content: space-between;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-form-header-height: 38px;\\n}\\n\\n.ck.ck-form__header {\\n\\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\\n\\theight: var(--ck-form-header-height);\\n\\tline-height: var(--ck-form-header-height);\\n\\tborder-bottom: 1px solid var(--ck-color-base-border);\\n\\n\\t& .ck-form__header__label {\\n\\t\\tfont-weight: bold;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-icon{vertical-align:middle}:root{--ck-icon-size:calc(var(--ck-line-height-base)*var(--ck-font-size-normal))}.ck.ck-icon{font-size:.8333350694em;height:var(--ck-icon-size);width:var(--ck-icon-size);will-change:transform}.ck.ck-icon,.ck.ck-icon *{cursor:inherit}.ck.ck-icon.ck-icon_inherit-color,.ck.ck-icon.ck-icon_inherit-color *{color:inherit}.ck.ck-icon.ck-icon_inherit-color :not([fill]){fill:currentColor}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/icon/icon.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/icon/icon.css\"],\"names\":[],\"mappings\":\"AAKA,YACC,qBACD,CCFA,MACC,0EACD,CAEA,YAKC,uBAAwB,CAHxB,0BAA2B,CAD3B,yBAA0B,CAU1B,qBAoBD,CAlBC,0BALA,cAQA,CAMC,sEACC,aAMD,CAJC,+CAEC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-icon {\\n\\tvertical-align: middle;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));\\n}\\n\\n.ck.ck-icon {\\n\\twidth: var(--ck-icon-size);\\n\\theight: var(--ck-icon-size);\\n\\n\\t/* Multiplied by the height of the line in \\\"px\\\" should give SVG \\\"viewport\\\" dimensions */\\n\\tfont-size: .8333350694em;\\n\\n\\t/* Inherit cursor style (#5). */\\n\\tcursor: inherit;\\n\\n\\t/* This will prevent blurry icons on Firefox. See #340. */\\n\\twill-change: transform;\\n\\n\\t& * {\\n\\t\\t/* Inherit cursor style (#5). */\\n\\t\\tcursor: inherit;\\n\\t}\\n\\n\\t/* Allows dynamic coloring of an icon by inheriting its color from the parent. */\\n\\t&.ck-icon_inherit-color {\\n\\t\\tcolor: inherit;\\n\\n\\t\\t& * {\\n\\t\\t\\tcolor: inherit;\\n\\n\\t\\t\\t&:not([fill]) {\\n\\t\\t\\t\\t/* Needed by FF. */\\n\\t\\t\\t\\tfill: currentColor;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-input-width:18em;--ck-input-text-width:var(--ck-input-width)}.ck.ck-input{border-radius:0}.ck-rounded-corners .ck.ck-input,.ck.ck-input.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input{background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);min-height:var(--ck-ui-component-min-height);min-width:var(--ck-input-width);padding:var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);transition:box-shadow .1s ease-in-out,border .1s ease-in-out}.ck.ck-input:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-input[readonly]{background:var(--ck-color-input-disabled-background);border:1px solid var(--ck-color-input-disabled-border);color:var(--ck-color-input-disabled-text)}.ck.ck-input[readonly]:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-input.ck-error{animation:ck-input-shake .3s ease both;border-color:var(--ck-color-input-error-border)}.ck.ck-input.ck-error:focus{box-shadow:var(--ck-focus-error-outer-shadow),0 0}@keyframes ck-input-shake{20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/input/input.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AASA,MACC,qBAAsB,CAGtB,2CACD,CAEA,aCLC,eD2CD,CAtCA,iECDE,qCDuCF,CAtCA,aAGC,2CAA4C,CAC5C,6CAA8C,CAK9C,4CAA6C,CAH7C,+BAAgC,CADhC,6DAA8D,CAO9D,4DA0BD,CAxBC,mBEnBA,2BAA2B,CCF3B,2CAA8B,CDC9B,YFuBA,CAEA,uBAEC,oDAAqD,CADrD,sDAAuD,CAEvD,yCAMD,CAJC,6BG/BD,oDHkCC,CAGD,sBAEC,sCAAuC,CADvC,+CAMD,CAHC,4BGzCD,iDH2CC,CAIF,0BACC,IACC,0BACD,CAEA,IACC,yBACD,CAEA,IACC,0BACD,CAEA,IACC,yBACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_focus.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-input-width: 18em;\\n\\n\\t/* Backward compatibility. */\\n\\t--ck-input-text-width: var(--ck-input-width);\\n}\\n\\n.ck.ck-input {\\n\\t@mixin ck-rounded-corners;\\n\\n\\tbackground: var(--ck-color-input-background);\\n\\tborder: 1px solid var(--ck-color-input-border);\\n\\tpadding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);\\n\\tmin-width: var(--ck-input-width);\\n\\n\\t/* This is important to stay of the same height as surrounding buttons */\\n\\tmin-height: var(--ck-ui-component-min-height);\\n\\n\\t/* Apply some smooth transition to the box-shadow and border. */\\n\\ttransition: box-shadow .1s ease-in-out, border .1s ease-in-out;\\n\\n\\t&:focus {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t}\\n\\n\\t&[readonly] {\\n\\t\\tborder: 1px solid var(--ck-color-input-disabled-border);\\n\\t\\tbackground: var(--ck-color-input-disabled-background);\\n\\t\\tcolor: var(--ck-color-input-disabled-text);\\n\\n\\t\\t&:focus {\\n\\t\\t\\t/* The read-only input should have a slightly less visible shadow when focused. */\\n\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-error {\\n\\t\\tborder-color: var(--ck-color-input-error-border);\\n\\t\\tanimation: ck-input-shake .3s ease both;\\n\\n\\t\\t&:focus {\\n\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-error-outer-shadow);\\n\\t\\t}\\n\\t}\\n}\\n\\n@keyframes ck-input-shake {\\n\\t20% {\\n\\t\\ttransform: translateX(-2px);\\n\\t}\\n\\n\\t40% {\\n\\t\\ttransform: translateX(2px);\\n\\t}\\n\\n\\t60% {\\n\\t\\ttransform: translateX(-1px);\\n\\t}\\n\\n\\t80% {\\n\\t\\ttransform: translateX(1px);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-label{display:block}.ck.ck-voice-label{display:none}.ck.ck-label{font-weight:700}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/label/label.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/label/label.css\"],\"names\":[],\"mappings\":\"AAKA,aACC,aACD,CAEA,mBACC,YACD,CCNA,aACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-label {\\n\\tdisplay: block;\\n}\\n\\n.ck.ck-voice-label {\\n\\tdisplay: none;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-label {\\n\\tfont-weight: bold;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{display:flex;position:relative}.ck.ck-labeled-field-view .ck.ck-label{display:block;position:absolute}:root{--ck-labeled-field-view-transition:.1s cubic-bezier(0,0,0.24,0.95);--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-spacing-medium);--ck-labeled-field-label-default-position-x:var(--ck-spacing-medium);--ck-labeled-field-label-default-position-y:calc(var(--ck-font-size-base)*0.6);--ck-color-labeled-field-label-background:var(--ck-color-base-background)}.ck.ck-labeled-field-view{border-radius:0}.ck-rounded-corners .ck.ck-labeled-field-view,.ck.ck-labeled-field-view.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{width:100%}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{top:0}[dir=ltr] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{left:0}[dir=rtl] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{right:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:var(--ck-color-labeled-field-label-background);font-weight:400;line-height:normal;max-width:100%;overflow:hidden;padding:0 calc(var(--ck-font-size-tiny)*.5);pointer-events:none;text-overflow:ellipsis;transform:translate(var(--ck-spacing-medium),-6px) scale(.75);transform-origin:0 0;transition:transform var(--ck-labeled-field-view-transition),padding var(--ck-labeled-field-view-transition),background var(--ck-labeled-field-view-transition)}.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly])+.ck.ck-label,.ck.ck-labeled-field-view.ck-error>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view .ck-labeled-field-view__status{font-size:var(--ck-font-size-small);margin-top:var(--ck-spacing-small);white-space:normal}.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-input-disabled-text)}[dir=ltr] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=ltr] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(var(--ck-labeled-field-label-default-position-x),var(--ck-labeled-field-label-default-position-y)) scale(1)}[dir=rtl] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=rtl] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(calc(var(--ck-labeled-field-label-default-position-x)*-1),var(--ck-labeled-field-label-default-position-y)) scale(1)}.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:transparent;max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width));padding:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck.ck-button{background:transparent}.ck.ck-labeled-field-view.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck-button>.ck-button__label{opacity:0}.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown+.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard))}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/labeledfield/labeledfieldview.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAMC,mEACC,YAAa,CACb,iBACD,CAEA,uCACC,aAAc,CACd,iBACD,CCND,MACC,kEAAsE,CACtE,gFAAiF,CACjF,oEAAqE,CACrE,8EAAiF,CACjF,yEACD,CAEA,0BCLC,eD8GD,CAzGA,2FCDE,qCD0GF,CAtGC,mEACC,UAmCD,CAjCC,gFACC,KA+BD,CAhCA,0FAIE,MA4BF,CAhCA,0FAQE,OAwBF,CAhCA,gFAiBC,yDAA0D,CAG1D,eAAmB,CADnB,kBAAoB,CAOpB,cAAe,CAFf,eAAgB,CANhB,2CAA8C,CAP9C,mBAAoB,CAYpB,sBAAuB,CARvB,6DAA+D,CAH/D,oBAAqB,CAgBrB,+JAID,CAQA,mKACC,gCACD,CAGD,yDACC,mCAAoC,CACpC,kCAAmC,CAInC,kBAKD,CAHC,6FACC,gCACD,CAID,4OAEC,yCACD,CAIA,oUAGE,+HAYF,CAfA,oUAOE,wIAQF,CAfA,gTAaC,sBAAuB,CAFvB,iEAAkE,CAGlE,SACD,CAKA,8FACC,sBACD,CAGA,yIACC,SACD,CAGA,kMACC,8HACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-labeled-field-view {\\n\\t& > .ck.ck-labeled-field-view__input-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t& .ck.ck-label {\\n\\t\\tdisplay: block;\\n\\t\\tposition: absolute;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, 0.24, 0.95);\\n\\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium);\\n\\t--ck-labeled-field-label-default-position-x: var(--ck-spacing-medium);\\n\\t--ck-labeled-field-label-default-position-y: calc(0.6 * var(--ck-font-size-base));\\n\\t--ck-color-labeled-field-label-background: var(--ck-color-base-background);\\n}\\n\\n.ck.ck-labeled-field-view {\\n\\t@mixin ck-rounded-corners;\\n\\n\\t& > .ck.ck-labeled-field-view__input-wrapper {\\n\\t\\twidth: 100%;\\n\\n\\t\\t& > .ck.ck-label {\\n\\t\\t\\ttop: 0px;\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tleft: 0px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tright: 0px;\\n\\t\\t\\t}\\n\\n\\t\\t\\tpointer-events: none;\\n\\t\\t\\ttransform-origin: 0 0;\\n\\n\\t\\t\\t/* By default, display the label scaled down above the field. */\\n\\t\\t\\ttransform: translate(var(--ck-spacing-medium), -6px) scale(.75);\\n\\n\\t\\t\\tbackground: var(--ck-color-labeled-field-label-background);\\n\\t\\t\\tpadding: 0 calc(.5 * var(--ck-font-size-tiny));\\n\\t\\t\\tline-height: initial;\\n\\t\\t\\tfont-weight: normal;\\n\\n\\t\\t\\t/* Prevent overflow when the label is longer than the input */\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\n\\t\\t\\tmax-width: 100%;\\n\\n\\t\\t\\ttransition:\\n\\t\\t\\t\\ttransform var(--ck-labeled-field-view-transition),\\n\\t\\t\\t\\tpadding var(--ck-labeled-field-view-transition),\\n\\t\\t\\t\\tbackground var(--ck-labeled-field-view-transition);\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-error {\\n\\t\\t& > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\\n\\t\\t\\tcolor: var(--ck-color-base-error);\\n\\t\\t}\\n\\n\\t\\t& .ck-input:not([readonly]) + .ck.ck-label {\\n\\t\\t\\tcolor: var(--ck-color-base-error);\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-labeled-field-view__status {\\n\\t\\tfont-size: var(--ck-font-size-small);\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\n\\t\\t/* Let the info wrap to the next line to avoid stretching the layout horizontally.\\n\\t\\tThe status could be very long. */\\n\\t\\twhite-space: normal;\\n\\n\\t\\t&.ck-labeled-field-view__status_error {\\n\\t\\t\\tcolor: var(--ck-color-base-error);\\n\\t\\t}\\n\\t}\\n\\n\\t/* Disabled fields and fields that have no focus should fade out. */\\n\\t&.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\\n\\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\\n\\t\\tcolor: var(--ck-color-input-disabled-text);\\n\\t}\\n\\n\\t/* Fields that are disabled or not focused and without a placeholder should have full-sized labels. */\\n\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t&.ck-disabled.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\\n\\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\ttransform: translate(var(--ck-labeled-field-label-default-position-x), var(--ck-labeled-field-label-default-position-y)) scale(1);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\ttransform: translate(calc(-1 * var(--ck-labeled-field-label-default-position-x)), var(--ck-labeled-field-label-default-position-y)) scale(1);\\n\\t\\t}\\n\\n\\t\\t/* Compensate for the default translate position. */\\n\\t\\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width));\\n\\n\\t\\tbackground: transparent;\\n\\t\\tpadding: 0;\\n\\t}\\n\\n\\t/*------ DropdownView integration ----------------------------------------------------------------------------------- */\\n\\n\\t/* Make sure dropdown' background color in any of dropdown's state does not collide with labeled field. */\\n\\t& > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button {\\n\\t\\tbackground: transparent;\\n\\t}\\n\\n\\t/* When the dropdown is \\\"empty\\\", the labeled field label replaces its label. */\\n\\t&.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t/* Make sure the label of the empty, unfocused input does not cover the dropdown arrow. */\\n\\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label {\\n\\t\\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard));\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-list{display:flex;flex-direction:column;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-list .ck-list__item,.ck.ck-list .ck-list__separator{display:block}.ck.ck-list .ck-list__item>:focus{position:relative;z-index:var(--ck-z-default)}.ck.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-list,.ck.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-list{background:var(--ck-color-list-background);list-style-type:none}.ck.ck-list__item{cursor:default;min-width:12em}.ck.ck-list__item .ck-button{border-radius:0;min-height:unset;padding:calc(var(--ck-line-height-base)*.2*var(--ck-font-size-base)) calc(var(--ck-line-height-base)*.4*var(--ck-font-size-base));text-align:left;width:100%}.ck.ck-list__item .ck-button .ck-button__label{line-height:calc(var(--ck-line-height-base)*1.2*var(--ck-font-size-base))}.ck.ck-list__item .ck-button:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on{background:var(--ck-color-list-button-on-background);color:var(--ck-color-list-button-on-text)}.ck.ck-list__item .ck-button.ck-on:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-on-background-focus)}.ck.ck-list__item .ck-button.ck-on:focus:not(.ck-switchbutton):not(.ck-disabled){border-color:var(--ck-color-base-background)}.ck.ck-list__item .ck-button:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-list__item .ck-switchbutton.ck-on{background:var(--ck-color-list-background);color:inherit}.ck.ck-list__item .ck-switchbutton.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background);color:inherit}.ck.ck-list__separator{background:var(--ck-color-base-border);height:1px;width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/list/list.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/list/list.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAOA,YAGC,YAAa,CACb,qBAAsB,CCFtB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBDaD,CAZC,2DAEC,aACD,CAKA,kCACC,iBAAkB,CAClB,2BACD,CEfD,YCEC,eDGD,CALA,+DCME,qCDDF,CALA,YAIC,0CAA2C,CAD3C,oBAED,CAEA,kBACC,cAAe,CACf,cA2DD,CAzDC,6BAIC,eAAgB,CAHhB,gBAAiB,CAQjB,iIAEiE,CARjE,eAAgB,CADhB,UAwCD,CA7BC,+CAEC,yEACD,CAEA,oCACC,eACD,CAEA,mCACC,oDAAqD,CACrD,yCAaD,CAXC,0CACC,eACD,CAEA,2DACC,0DACD,CAEA,iFACC,4CACD,CAGD,qDACC,uDACD,CAMA,yCACC,0CAA2C,CAC3C,aAMD,CAJC,iEACC,uDAAwD,CACxD,aACD,CAKH,uBAGC,sCAAuC,CAFvC,UAAW,CACX,UAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../mixins/_unselectable.css\\\";\\n\\n.ck.ck-list {\\n\\t@mixin ck-unselectable;\\n\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t& .ck-list__item,\\n\\t& .ck-list__separator {\\n\\t\\tdisplay: block;\\n\\t}\\n\\n\\t/* Make sure that whatever child of the list item gets focus, it remains on the\\n\\ttop. Thanks to that, styles like box-shadow, outline, etc. are not masked by\\n\\tadjacent list items. */\\n\\t& .ck-list__item > *:focus {\\n\\t\\tposition: relative;\\n\\t\\tz-index: var(--ck-z-default);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Makes element unselectable.\\n */\\n@define-mixin ck-unselectable {\\n\\t-moz-user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n.ck.ck-list {\\n\\t@mixin ck-rounded-corners;\\n\\n\\tlist-style-type: none;\\n\\tbackground: var(--ck-color-list-background);\\n}\\n\\n.ck.ck-list__item {\\n\\tcursor: default;\\n\\tmin-width: 12em;\\n\\n\\t& .ck-button {\\n\\t\\tmin-height: unset;\\n\\t\\twidth: 100%;\\n\\t\\ttext-align: left;\\n\\t\\tborder-radius: 0;\\n\\n\\t\\t/* List items should have the same height. Use absolute units to make sure it is so\\n\\t\\t because e.g. different heading styles may have different height\\n\\t\\t https://github.com/ckeditor/ckeditor5-heading/issues/63 */\\n\\t\\tpadding:\\n\\t\\t\\tcalc(.2 * var(--ck-line-height-base) * var(--ck-font-size-base))\\n\\t\\t\\tcalc(.4 * var(--ck-line-height-base) * var(--ck-font-size-base));\\n\\n\\t\\t& .ck-button__label {\\n\\t\\t\\t/* https://github.com/ckeditor/ckeditor5-heading/issues/63 */\\n\\t\\t\\tline-height: calc(1.2 * var(--ck-line-height-base) * var(--ck-font-size-base));\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t}\\n\\n\\t\\t&.ck-on {\\n\\t\\t\\tbackground: var(--ck-color-list-button-on-background);\\n\\t\\t\\tcolor: var(--ck-color-list-button-on-text);\\n\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tbox-shadow: none;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover:not(.ck-disabled) {\\n\\t\\t\\t\\tbackground: var(--ck-color-list-button-on-background-focus);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:focus:not(.ck-switchbutton):not(.ck-disabled) {\\n\\t\\t\\t\\tborder-color: var(--ck-color-base-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:hover:not(.ck-disabled) {\\n\\t\\t\\tbackground: var(--ck-color-list-button-hover-background);\\n\\t\\t}\\n\\t}\\n\\n\\t/* It's unnecessary to change the background/text of a switch toggle; it has different ways\\n\\tof conveying its state (like the switcher) */\\n\\t& .ck-switchbutton {\\n\\t\\t&.ck-on {\\n\\t\\t\\tbackground: var(--ck-color-list-background);\\n\\t\\t\\tcolor: inherit;\\n\\n\\t\\t\\t&:hover:not(.ck-disabled) {\\n\\t\\t\\t\\tbackground: var(--ck-color-list-button-hover-background);\\n\\t\\t\\t\\tcolor: inherit;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-list__separator {\\n\\theight: 1px;\\n\\twidth: 100%;\\n\\tbackground: var(--ck-color-base-border);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-balloon-panel-arrow-z-index:calc(var(--ck-z-default) - 3)}.ck.ck-balloon-panel{display:none;position:absolute;z-index:var(--ck-z-modal)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{content:\\\"\\\";position:absolute}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_n]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_n]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_s]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_s]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel.ck-balloon-panel_visible{display:block}:root{--ck-balloon-border-width:1px;--ck-balloon-arrow-offset:2px;--ck-balloon-arrow-height:10px;--ck-balloon-arrow-half-width:8px;--ck-balloon-arrow-drop-shadow:0 2px 2px var(--ck-color-shadow-drop)}.ck.ck-balloon-panel{border-radius:0}.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-balloon-panel{background:var(--ck-color-panel-background);border:var(--ck-balloon-border-width) solid var(--ck-color-panel-border);box-shadow:var(--ck-drop-shadow),0 0;min-height:15px}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{border-style:solid;height:0;width:0}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-width:0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_n]:before{border-color:transparent transparent var(--ck-color-panel-border) transparent;margin-top:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_n]:after{border-color:transparent transparent var(--ck-color-panel-background) transparent;margin-top:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-width:var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_s]:before{border-color:var(--ck-color-panel-border) transparent transparent;filter:drop-shadow(var(--ck-balloon-arrow-drop-shadow));margin-bottom:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_s]:after{border-color:var(--ck-color-panel-background) transparent transparent transparent;margin-bottom:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_e]:after,.ck.ck-balloon-panel[class*=arrow_e]:before{border-width:var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height)}.ck.ck-balloon-panel[class*=arrow_e]:before{border-color:transparent transparent transparent var(--ck-color-panel-border);margin-right:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_e]:after{border-color:transparent transparent transparent var(--ck-color-panel-background);margin-right:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_w]:after,.ck.ck-balloon-panel[class*=arrow_w]:before{border-width:var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0}.ck.ck-balloon-panel[class*=arrow_w]:before{border-color:transparent var(--ck-color-panel-border) transparent transparent;margin-left:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_w]:after{border-color:transparent var(--ck-color-panel-background) transparent transparent;margin-left:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);right:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:before{margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%;top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:before{margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);right:calc(var(--ck-balloon-arrow-height)*-1);top:50%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:before{left:calc(var(--ck-balloon-arrow-height)*-1);margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);top:50%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonpanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonpanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,MAEC,8DACD,CAEA,qBACC,YAAa,CACb,iBAAkB,CAElB,yBAyCD,CAtCE,+GAEC,UAAW,CACX,iBACD,CAEA,wDACC,6CACD,CAEA,uDACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAGD,8CACC,aACD,CC9CD,MACC,6BAA8B,CAC9B,6BAA8B,CAC9B,8BAA+B,CAC/B,iCAAkC,CAClC,oEACD,CAEA,qBCLC,eDmMD,CA9LA,iFCDE,qCD+LF,CA9LA,qBAMC,2CAA4C,CAC5C,wEAAyE,CEdzE,oCAA8B,CFW9B,eA0LD,CApLE,+GAIC,kBAAmB,CADnB,QAAS,CADT,OAGD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,kDACD,CAEA,2CACC,iFAAkF,CAClF,gFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,iEAAkE,CAClE,uDAAwD,CACxD,qDACD,CAEA,2CACC,iFAAkF,CAClF,mFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,oDACD,CAEA,2CACC,iFAAkF,CAClF,kFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,mDACD,CAEA,2CACC,iFAAkF,CAClF,iFACD,CAIA,yGAEC,QAAS,CACT,uDAA0D,CAC1D,2CACD,CAIA,2GAEC,+CAAkD,CAClD,2CACD,CAIA,2GAEC,gDAAmD,CACnD,2CACD,CAIA,yGAIC,8CAAiD,CAFjD,QAAS,CACT,uDAED,CAIA,2GAGC,8CAAiD,CADjD,+CAED,CAIA,2GAGC,8CAAiD,CADjD,gDAED,CAIA,6GAIC,8CAAiD,CADjD,uDAA0D,CAD1D,SAGD,CAIA,6GAIC,8CAAiD,CAFjD,QAAS,CACT,sDAED,CAIA,6GAGC,uDAA0D,CAD1D,SAAU,CAEV,2CACD,CAIA,6GAEC,QAAS,CACT,sDAAyD,CACzD,2CACD,CAIA,yGAGC,sDAAyD,CADzD,6CAAgD,CAEhD,OACD,CAIA,yGAEC,4CAA+C,CAC/C,sDAAyD,CACzD,OACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/* Make sure the balloon arrow does not float over its children. */\\n\\t--ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3);\\n}\\n\\n.ck.ck-balloon-panel {\\n\\tdisplay: none;\\n\\tposition: absolute;\\n\\n\\tz-index: var(--ck-z-modal);\\n\\n\\t&.ck-balloon-panel_with-arrow {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\tposition: absolute;\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tz-index: var(--ck-balloon-panel-arrow-z-index);\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_n\\\"] {\\n\\t\\t&::before {\\n\\t\\t\\tz-index: var(--ck-balloon-panel-arrow-z-index);\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_s\\\"] {\\n\\t\\t&::before {\\n\\t\\t\\tz-index: var(--ck-balloon-panel-arrow-z-index);\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_visible {\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-balloon-border-width: 1px;\\n\\t--ck-balloon-arrow-offset: 2px;\\n\\t--ck-balloon-arrow-height: 10px;\\n\\t--ck-balloon-arrow-half-width: 8px;\\n\\t--ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop);\\n}\\n\\n.ck.ck-balloon-panel {\\n\\t@mixin ck-rounded-corners;\\n\\t@mixin ck-drop-shadow;\\n\\n\\tmin-height: 15px;\\n\\n\\tbackground: var(--ck-color-panel-background);\\n\\tborder: var(--ck-balloon-border-width) solid var(--ck-color-panel-border);\\n\\n\\t&.ck-balloon-panel_with-arrow {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\twidth: 0;\\n\\t\\t\\theight: 0;\\n\\t\\t\\tborder-style: solid;\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_n\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width);\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: transparent transparent var(--ck-color-panel-border) transparent;\\n\\t\\t\\tmargin-top: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: transparent transparent var(--ck-color-panel-background) transparent;\\n\\t\\t\\tmargin-top: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_s\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width);\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: var(--ck-color-panel-border) transparent transparent;\\n\\t\\t\\tfilter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));\\n\\t\\t\\tmargin-bottom: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: var(--ck-color-panel-background) transparent transparent transparent;\\n\\t\\t\\tmargin-bottom: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_e\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height);\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: transparent transparent transparent var(--ck-color-panel-border);\\n\\t\\t\\tmargin-right: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: transparent transparent transparent var(--ck-color-panel-background);\\n\\t\\t\\tmargin-right: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_w\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0;\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: transparent var(--ck-color-panel-border) transparent transparent;\\n\\t\\t\\tmargin-left: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: transparent var(--ck-color-panel-background) transparent transparent;\\n\\t\\t\\tmargin-left: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_n {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_nw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_ne {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_s {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_sw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_se {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_sme {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: 25%;\\n\\t\\t\\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_smw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 25%;\\n\\t\\t\\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_nme {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: 25%;\\n\\t\\t\\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_nmw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 25%;\\n\\t\\t\\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_e {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t\\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: 50%;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_w {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t\\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-balloon-rotator__navigation{align-items:center;display:flex;justify-content:center}.ck .ck-balloon-rotator__content .ck-toolbar{justify-content:center}.ck .ck-balloon-rotator__navigation{background:var(--ck-color-toolbar-background);border-bottom:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation>*{margin-bottom:var(--ck-spacing-small);margin-right:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter{margin-left:var(--ck-spacing-small);margin-right:var(--ck-spacing-standard)}.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper{box-shadow:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonrotator.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonrotator.css\"],\"names\":[],\"mappings\":\"AAKA,oCAEC,kBAAmB,CADnB,YAAa,CAEb,sBACD,CAKA,6CACC,sBACD,CCXA,oCACC,6CAA8C,CAC9C,sDAAuD,CACvD,iCAgBD,CAbC,sCAGC,qCAAsC,CAFtC,oCAAqC,CACrC,kCAED,CAGA,iEAIC,mCAAoC,CAHpC,uCAID,CAMA,2DACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-balloon-rotator__navigation {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n/* Buttons inside a toolbar should be centered when rotator bar is wider.\\n * See: https://github.com/ckeditor/ckeditor5-ui/issues/495\\n */\\n.ck .ck-balloon-rotator__content .ck-toolbar {\\n\\tjustify-content: center;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-balloon-rotator__navigation {\\n\\tbackground: var(--ck-color-toolbar-background);\\n\\tborder-bottom: 1px solid var(--ck-color-toolbar-border);\\n\\tpadding: 0 var(--ck-spacing-small);\\n\\n\\t/* Let's keep similar appearance to `ck-toolbar`. */\\n\\t& > * {\\n\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\t\\tmargin-bottom: var(--ck-spacing-small);\\n\\t}\\n\\n\\t/* Gives counter more breath than buttons. */\\n\\t& .ck-balloon-rotator__counter {\\n\\t\\tmargin-right: var(--ck-spacing-standard);\\n\\n\\t\\t/* We need to use smaller margin because of previous button's right margin. */\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n}\\n\\n.ck .ck-balloon-rotator__content {\\n\\n\\t/* Disable default annotation shadow inside rotator with fake panels. */\\n\\t& .ck.ck-annotation-wrapper {\\n\\t\\tbox-shadow: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-fake-panel{position:absolute;z-index:calc(var(--ck-z-modal) - 1)}.ck .ck-fake-panel div{position:absolute}.ck .ck-fake-panel div:first-child{z-index:2}.ck .ck-fake-panel div:nth-child(2){z-index:1}:root{--ck-balloon-fake-panel-offset-horizontal:6px;--ck-balloon-fake-panel-offset-vertical:6px}.ck .ck-fake-panel div{background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);border-radius:var(--ck-border-radius);box-shadow:var(--ck-drop-shadow),0 0;height:100%;min-height:15px;width:100%}.ck .ck-fake-panel div:first-child{margin-left:var(--ck-balloon-fake-panel-offset-horizontal);margin-top:var(--ck-balloon-fake-panel-offset-vertical)}.ck .ck-fake-panel div:nth-child(2){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*2);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*2)}.ck .ck-fake-panel div:nth-child(3){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*3);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*3)}.ck .ck-balloon-panel_arrow_s+.ck-fake-panel,.ck .ck-balloon-panel_arrow_se+.ck-fake-panel,.ck .ck-balloon-panel_arrow_sw+.ck-fake-panel{--ck-balloon-fake-panel-offset-vertical:-6px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/fakepanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/fakepanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,mBACC,iBAAkB,CAGlB,mCACD,CAEA,uBACC,iBACD,CAEA,mCACC,SACD,CAEA,oCACC,SACD,CCfA,MACC,6CAA8C,CAC9C,2CACD,CAGA,uBAKC,2CAA4C,CAC5C,6CAA8C,CAC9C,qCAAsC,CCXtC,oCAA8B,CDc9B,WAAY,CAPZ,eAAgB,CAMhB,UAED,CAEA,mCACC,0DAA2D,CAC3D,uDACD,CAEA,oCACC,kEAAqE,CACrE,+DACD,CACA,oCACC,kEAAqE,CACrE,+DACD,CAGA,yIAGC,4CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-fake-panel {\\n\\tposition: absolute;\\n\\n\\t/* Fake panels should be placed under main balloon content. */\\n\\tz-index: calc(var(--ck-z-modal) - 1);\\n}\\n\\n.ck .ck-fake-panel div {\\n\\tposition: absolute;\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 1 ) {\\n\\tz-index: 2;\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 2 ) {\\n\\tz-index: 1;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-balloon-fake-panel-offset-horizontal: 6px;\\n\\t--ck-balloon-fake-panel-offset-vertical: 6px;\\n}\\n\\n/* Let's use `.ck-balloon-panel` appearance. See: balloonpanel.css. */\\n.ck .ck-fake-panel div {\\n\\t@mixin ck-drop-shadow;\\n\\n\\tmin-height: 15px;\\n\\n\\tbackground: var(--ck-color-panel-background);\\n\\tborder: 1px solid var(--ck-color-panel-border);\\n\\tborder-radius: var(--ck-border-radius);\\n\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 1 ) {\\n\\tmargin-left: var(--ck-balloon-fake-panel-offset-horizontal);\\n\\tmargin-top: var(--ck-balloon-fake-panel-offset-vertical);\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 2 ) {\\n\\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);\\n\\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);\\n}\\n.ck .ck-fake-panel div:nth-child( 3 ) {\\n\\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);\\n\\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3);\\n}\\n\\n/* If balloon is positioned above element, we need to move fake panel to the top. */\\n.ck .ck-balloon-panel_arrow_s + .ck-fake-panel,\\n.ck .ck-balloon-panel_arrow_se + .ck-fake-panel,\\n.ck .ck-balloon-panel_arrow_sw + .ck-fake-panel {\\n\\t--ck-balloon-fake-panel-offset-vertical: -6px;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-sticky-panel .ck-sticky-panel__content_sticky{position:fixed;top:0;z-index:var(--ck-z-modal)}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{position:absolute;top:auto}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky{border-top-left-radius:0;border-top-right-radius:0;border-width:0 1px 1px;box-shadow:var(--ck-drop-shadow),0 0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/stickypanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/stickypanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAMC,qDAEC,cAAe,CACf,KAAM,CAFN,yBAGD,CAEA,kEAEC,iBAAkB,CADlB,QAED,CCPA,qDAIC,wBAAyB,CACzB,yBAA0B,CAF1B,sBAAuB,CCFxB,oCDKA\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-sticky-panel {\\n\\t& .ck-sticky-panel__content_sticky {\\n\\t\\tz-index: var(--ck-z-modal); /* #315 */\\n\\t\\tposition: fixed;\\n\\t\\ttop: 0;\\n\\t}\\n\\n\\t& .ck-sticky-panel__content_sticky_bottom-limit {\\n\\t\\ttop: auto;\\n\\t\\tposition: absolute;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n.ck.ck-sticky-panel {\\n\\t& .ck-sticky-panel__content_sticky {\\n\\t\\t@mixin ck-drop-shadow;\\n\\n\\t\\tborder-width: 0 1px 1px;\\n\\t\\tborder-top-left-radius: 0;\\n\\t\\tborder-top-right-radius: 0;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-vertical-form .ck-button:after{bottom:-1px;content:\\\"\\\";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck-vertical-form .ck-button:focus:after{display:none}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{bottom:-1px;content:\\\"\\\";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck.ck-responsive-form .ck-button:focus:after{display:none}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-width)*.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){border-radius:0;margin-top:var(--ck-spacing-large);padding:var(--ck-spacing-standard)}.ck.ck-responsive-form>.ck-button:last-child:not(:focus),.ck.ck-responsive-form>.ck-button:nth-last-child(2):not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/responsive-form/responsiveform.css\"],\"names\":[],\"mappings\":\"AAQC,mCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,yCACC,YACD,CCdA,oCDoBE,wCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,8CACC,YACD,CC9BF,CCAD,qDACC,kDACD,CAEA,uBACC,+BAmED,CAjEC,6BAEC,YACD,CASC,uGACC,sCACD,CDvBD,oCCMD,uBAqBE,SAAU,CACV,oCA8CF,CA5CE,8CACC,wDAWD,CATC,6DACC,WAAY,CACZ,UACD,CAGA,4EACC,kBACD,CAKA,0DACC,kDACD,CAGD,iGAIC,eAAgB,CADhB,kCAAmC,CADnC,kCAmBD,CAfC,yHACC,gDACD,CARD,0OAeE,aAMF,CAJE,+IACC,kDACD,CDpEH\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck-vertical-form .ck-button {\\n\\t&::after {\\n\\t\\tcontent: \\\"\\\";\\n\\t\\twidth: 0;\\n\\t\\tposition: absolute;\\n\\t\\tright: -1px;\\n\\t\\ttop: -1px;\\n\\t\\tbottom: -1px;\\n\\t\\tz-index: 1;\\n\\t}\\n\\n\\t&:focus::after {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\\n.ck.ck-responsive-form {\\n\\t@mixin ck-media-phone {\\n\\t\\t& .ck-button {\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\t\\twidth: 0;\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tright: -1px;\\n\\t\\t\\t\\ttop: -1px;\\n\\t\\t\\t\\tbottom: -1px;\\n\\t\\t\\t\\tz-index: 1;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:focus::after {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck-vertical-form > .ck-button:nth-last-child(2)::after {\\n\\tborder-right: 1px solid var(--ck-color-base-border);\\n}\\n\\n.ck.ck-responsive-form {\\n\\tpadding: var(--ck-spacing-large);\\n\\n\\t&:focus {\\n\\t\\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t@mixin ck-dir ltr {\\n\\t\\t& > :not(:first-child) {\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-dir rtl {\\n\\t\\t& > :not(:last-child) {\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tpadding: 0;\\n\\t\\twidth: calc(.8 * var(--ck-input-width));\\n\\n\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) 0;\\n\\n\\t\\t\\t& .ck-input-text {\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\n\\t\\t\\t/* Let the long error messages wrap in the narrow form. */\\n\\t\\t\\t& .ck-labeled-field-view__error {\\n\\t\\t\\t\\twhite-space: normal;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Styles for two last buttons in the form (save&cancel, edit&unlink, etc.). */\\n\\t\\t& > .ck-button:nth-last-child(2) {\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tborder-right: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& > .ck-button:nth-last-child(1),\\n\\t\\t& > .ck-button:nth-last-child(2) {\\n\\t\\t\\tpadding: var(--ck-spacing-standard);\\n\\t\\t\\tmargin-top: var(--ck-spacing-large);\\n\\t\\t\\tborder-radius: 0;\\n\\n\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tmargin-left: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-left: 0;\\n\\n\\t\\t\\t\\t&:last-of-type {\\n\\t\\t\\t\\t\\tborder-right: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-block-toolbar-button{position:absolute;z-index:var(--ck-z-default)}:root{--ck-color-block-toolbar-button:var(--ck-color-text);--ck-block-toolbar-button-size:var(--ck-font-size-normal)}.ck.ck-block-toolbar-button{color:var(--ck-color-block-toolbar-button);font-size:var(--ck-block-toolbar-size)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/blocktoolbar.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/blocktoolbar.css\"],\"names\":[],\"mappings\":\"AAKA,4BACC,iBAAkB,CAClB,2BACD,CCHA,MACC,oDAAqD,CACrD,yDACD,CAEA,4BACC,0CAA2C,CAC3C,sCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-block-toolbar-button {\\n\\tposition: absolute;\\n\\tz-index: var(--ck-z-default);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-block-toolbar-button: var(--ck-color-text);\\n\\t--ck-block-toolbar-button-size: var(--ck-font-size-normal);\\n}\\n\\n.ck.ck-block-toolbar-button {\\n\\tcolor: var(--ck-color-block-toolbar-button);\\n\\tfont-size: var(--ck-block-toolbar-size);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-toolbar{align-items:center;display:flex;flex-flow:row nowrap;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-toolbar>.ck-toolbar__items{align-items:center;display:flex;flex-flow:row wrap;flex-grow:1}.ck.ck-toolbar .ck.ck-toolbar__separator{display:inline-block}.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,.ck.ck-toolbar .ck.ck-toolbar__separator:last-child{display:none}.ck.ck-toolbar .ck-toolbar__line-break{flex-basis:100%}.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items{flex-direction:column}.ck.ck-toolbar.ck-toolbar_floating>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck-dropdown__button .ck-dropdown__arrow{display:none}.ck.ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-toolbar,.ck.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-toolbar{background:var(--ck-color-toolbar-background);border:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck.ck-toolbar .ck.ck-toolbar__separator{align-self:stretch;background:var(--ck-color-toolbar-border);margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small);min-width:1px;width:1px}.ck.ck-toolbar .ck-toolbar__line-break{height:0}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break){margin-right:var(--ck-spacing-small)}.ck.ck-toolbar>.ck-toolbar__items:empty+.ck.ck-toolbar__separator{display:none}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break),.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown{margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck.ck-toolbar.ck-toolbar_vertical{padding:0}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items>.ck{border-radius:0;margin:0;width:100%}.ck.ck-toolbar.ck-toolbar_compact{padding:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>*{margin:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>:not(:first-child):not(:last-child){border-radius:0}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck.ck-button.ck-dropdown__button{padding-left:var(--ck-spacing-tiny)}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-dropdown__panel{min-width:auto}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-button>.ck-button__label{max-width:7em;width:auto}.ck.ck-toolbar:focus{outline:none}.ck-toolbar-container .ck.ck-toolbar{border:0}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck{margin-right:0}.ck.ck-toolbar[dir=rtl]:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-left:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:first-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=rtl]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=rtl]>.ck.ck-toolbar__separator,[dir=rtl] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=rtl] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-right:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:first-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=ltr]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=ltr]>.ck.ck-toolbar__separator,[dir=ltr] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=ltr] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-right:var(--ck-spacing-small)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/toolbar.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/toolbar.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAOA,eAKC,kBAAmB,CAFnB,YAAa,CACb,oBAAqB,CCFrB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD6CD,CA3CC,kCAGC,kBAAmB,CAFnB,YAAa,CACb,kBAAmB,CAEnB,WAED,CAEA,yCACC,oBAWD,CAJC,yGAEC,YACD,CAGD,uCACC,eACD,CAEA,sDACC,gBACD,CAEA,sDACC,qBACD,CAEA,sDACC,gBACD,CAGC,yFACC,YACD,CE/CF,eCGC,eDwGD,CA3GA,qECOE,qCDoGF,CA3GA,eAGC,6CAA8C,CAE9C,+CAAgD,CADhD,iCAuGD,CApGC,yCACC,kBAAmB,CAGnB,yCAA0C,CAO1C,qCAAsC,CADtC,kCAAmC,CAPnC,aAAc,CADd,SAUD,CAEA,uCACC,QACD,CAGC,gEAEC,oCACD,CAIA,kEACC,YACD,CAGD,gHAIC,qCAAsC,CADtC,kCAED,CAEA,mCAEC,SAaD,CAVC,0DAQC,eAAgB,CAHhB,QAAS,CAHT,UAOD,CAGD,kCAEC,SAWD,CATC,uDAEC,QAMD,CAHC,yFACC,eACD,CASD,kFACC,mCACD,CAMA,wEACC,cACD,CAEA,iFACC,aAAc,CACd,UACD,CAGD,qBACC,YACD,CAtGD,qCAyGE,QAEF,CAYC,+FACC,cACD,CAEA,iJAEC,mCACD,CAEA,qHACC,aACD,CAIC,6JAEC,2BAA4B,CAD5B,wBAED,CAGA,2JAEC,4BAA6B,CAD7B,yBAED,CASD,8RACC,mCACD,CAWA,qHACC,cACD,CAIC,6JAEC,4BAA6B,CAD7B,yBAED,CAGA,2JAEC,2BAA4B,CAD5B,wBAED,CASD,8RACC,oCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../mixins/_unselectable.css\\\";\\n\\n.ck.ck-toolbar {\\n\\t@mixin ck-unselectable;\\n\\n\\tdisplay: flex;\\n\\tflex-flow: row nowrap;\\n\\talign-items: center;\\n\\n\\t& > .ck-toolbar__items {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-flow: row wrap;\\n\\t\\talign-items: center;\\n\\t\\tflex-grow: 1;\\n\\n\\t}\\n\\n\\t& .ck.ck-toolbar__separator {\\n\\t\\tdisplay: inline-block;\\n\\n\\t\\t/*\\n\\t\\t * A leading or trailing separator makes no sense (separates from nothing on one side).\\n\\t\\t * For instance, it can happen when toolbar items (also separators) are getting grouped one by one and\\n\\t\\t * moved to another toolbar in the dropdown.\\n\\t\\t */\\n\\t\\t&:first-child,\\n\\t\\t&:last-child {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-toolbar__line-break {\\n\\t\\tflex-basis: 100%;\\n\\t}\\n\\n\\t&.ck-toolbar_grouping > .ck-toolbar__items {\\n\\t\\tflex-wrap: nowrap;\\n\\t}\\n\\n\\t&.ck-toolbar_vertical > .ck-toolbar__items {\\n\\t\\tflex-direction: column;\\n\\t}\\n\\n\\t&.ck-toolbar_floating > .ck-toolbar__items {\\n\\t\\tflex-wrap: nowrap;\\n\\t}\\n\\n\\t& > .ck.ck-toolbar__grouped-dropdown {\\n\\t\\t& > .ck-dropdown__button .ck-dropdown__arrow {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Makes element unselectable.\\n */\\n@define-mixin ck-unselectable {\\n\\t-moz-user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-toolbar {\\n\\t@mixin ck-rounded-corners;\\n\\n\\tbackground: var(--ck-color-toolbar-background);\\n\\tpadding: 0 var(--ck-spacing-small);\\n\\tborder: 1px solid var(--ck-color-toolbar-border);\\n\\n\\t& .ck.ck-toolbar__separator {\\n\\t\\talign-self: stretch;\\n\\t\\twidth: 1px;\\n\\t\\tmin-width: 1px;\\n\\t\\tbackground: var(--ck-color-toolbar-border);\\n\\n\\t\\t/*\\n\\t\\t * These margins make the separators look better in balloon toolbars (when aligned with the \\\"tip\\\").\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/7493.\\n\\t\\t */\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\t\\tmargin-bottom: var(--ck-spacing-small);\\n\\t}\\n\\n\\t& .ck-toolbar__line-break {\\n\\t\\theight: 0;\\n\\t}\\n\\n\\t& > .ck-toolbar__items {\\n\\t\\t& > *:not(.ck-toolbar__line-break) {\\n\\t\\t\\t/* (#11) Separate toolbar items. */\\n\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t}\\n\\n\\t\\t/* Don't display a separator after an empty items container, for instance,\\n\\t\\twhen all items were grouped */\\n\\t\\t&:empty + .ck.ck-toolbar__separator {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-toolbar__items > *:not(.ck-toolbar__line-break),\\n\\t& > .ck.ck-toolbar__grouped-dropdown {\\n\\t\\t/* Make sure items wrapped to the next line have v-spacing */\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\t\\tmargin-bottom: var(--ck-spacing-small);\\n\\t}\\n\\n\\t&.ck-toolbar_vertical {\\n\\t\\t/* Items in a vertical toolbar span the entire width. */\\n\\t\\tpadding: 0;\\n\\n\\t\\t/* Specificity matters here. See https://github.com/ckeditor/ckeditor5-theme-lark/issues/168. */\\n\\t\\t& > .ck-toolbar__items > .ck {\\n\\t\\t\\t/* Items in a vertical toolbar should span the horizontal space. */\\n\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t/* Items in a vertical toolbar should have no margin. */\\n\\t\\t\\tmargin: 0;\\n\\n\\t\\t\\t/* Items in a vertical toolbar span the entire width so rounded corners are pointless. */\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-toolbar_compact {\\n\\t\\t/* No spacing around items. */\\n\\t\\tpadding: 0;\\n\\n\\t\\t& > .ck-toolbar__items > * {\\n\\t\\t\\t/* Compact toolbar items have no spacing between them. */\\n\\t\\t\\tmargin: 0;\\n\\n\\t\\t\\t/* \\\"Middle\\\" children should have no rounded corners. */\\n\\t\\t\\t&:not(:first-child):not(:last-child) {\\n\\t\\t\\t\\tborder-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck.ck-toolbar__grouped-dropdown {\\n\\t\\t/*\\n\\t\\t * Dropdown button has asymmetric padding to fit the arrow.\\n\\t\\t * This button has no arrow so let's revert that padding back to normal.\\n\\t\\t */\\n\\t\\t& > .ck.ck-button.ck-dropdown__button {\\n\\t\\t\\tpadding-left: var(--ck-spacing-tiny);\\n\\t\\t}\\n\\t}\\n\\n\\t/* A drop-down containing the nested toolbar with configured items. */\\n\\t& .ck-toolbar__nested-toolbar-dropdown {\\n\\t\\t/* Prevent empty space in the panel when the dropdown label is visible and long but the toolbar has few items. */\\n\\t\\t& > .ck-dropdown__panel {\\n\\t\\t\\tmin-width: auto;\\n\\t\\t}\\n\\n\\t\\t& > .ck-button > .ck-button__label {\\n\\t\\t\\tmax-width: 7em;\\n\\t\\t\\twidth: auto;\\n\\t\\t}\\n\\t}\\n\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t@nest .ck-toolbar-container & {\\n\\t\\tborder: 0;\\n\\t}\\n}\\n\\n/* stylelint-disable */\\n\\n/*\\n * Styles for RTL toolbars.\\n *\\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own \\\"dir\\\"\\n * because its parent is not controlled by the editor framework.\\n */\\n[dir=\\\"rtl\\\"] .ck.ck-toolbar,\\n.ck.ck-toolbar[dir=\\\"rtl\\\"] {\\n\\t& > .ck-toolbar__items > .ck {\\n\\t\\tmargin-right: 0;\\n\\t}\\n\\n\\t&:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck {\\n\\t\\t/* (#11) Separate toolbar items. */\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n\\n\\t& > .ck-toolbar__items > .ck:last-child {\\n\\t\\tmargin-left: 0;\\n\\t}\\n\\n\\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\\n\\t\\t/* No rounded corners on the right side of the first child. */\\n\\t\\t&:first-child {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t}\\n\\n\\t\\t/* No rounded corners on the left side of the last child. */\\n\\t\\t&:last-child {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\\n\\t& > .ck.ck-toolbar__separator {\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n\\n\\t/* Some spacing between the items and the separator before the grouped items dropdown. */\\n\\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n}\\n\\n/*\\n * Styles for LTR toolbars.\\n *\\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own \\\"dir\\\"\\n * because its parent is not controlled by the editor framework.\\n */\\n[dir=\\\"ltr\\\"] .ck.ck-toolbar,\\n.ck.ck-toolbar[dir=\\\"ltr\\\"] {\\n\\t& > .ck-toolbar__items > .ck:last-child {\\n\\t\\tmargin-right: 0;\\n\\t}\\n\\n\\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\\n\\t\\t/* No rounded corners on the right side of the first child. */\\n\\t\\t&:first-child {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t/* No rounded corners on the left side of the last child. */\\n\\t\\t&:last-child {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\\n\\t& > .ck.ck-toolbar__separator {\\n\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t}\\n\\n\\t/* Some spacing between the items and the separator before the grouped items dropdown. */\\n\\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\\n\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t}\\n}\\n\\n/* stylelint-enable */\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-balloon-panel.ck-tooltip{--ck-balloon-border-width:0px;--ck-balloon-arrow-offset:0px;--ck-balloon-arrow-half-width:4px;--ck-balloon-arrow-height:4px;--ck-color-panel-background:var(--ck-color-tooltip-background);padding:0 var(--ck-spacing-medium);pointer-events:none;z-index:calc(var(--ck-z-modal) + 100)}.ck.ck-balloon-panel.ck-tooltip .ck-tooltip__text{color:var(--ck-color-tooltip-text);font-size:.9em;line-height:1.5}.ck.ck-balloon-panel.ck-tooltip{box-shadow:none}.ck.ck-balloon-panel.ck-tooltip:before{display:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/tooltip.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/tooltip/tooltip.css\"],\"names\":[],\"mappings\":\"AAKA,gCCGC,6BAA8B,CAC9B,6BAA8B,CAC9B,iCAAkC,CAClC,6BAA8B,CAC9B,8DAA+D,CAE/D,kCAAmC,CDPnC,mBAAoB,CAEpB,qCACD,CCMC,kDAGC,kCAAmC,CAFnC,cAAe,CACf,eAED,CAbD,gCAgBC,eAMD,CAHC,uCACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-balloon-panel.ck-tooltip {\\n\\t/* Keep tooltips transparent for any interactions. */\\n\\tpointer-events: none;\\n\\n\\tz-index: calc( var(--ck-z-modal) + 100 );\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n.ck.ck-balloon-panel.ck-tooltip {\\n\\t--ck-balloon-border-width: 0px;\\n\\t--ck-balloon-arrow-offset: 0px;\\n\\t--ck-balloon-arrow-half-width: 4px;\\n\\t--ck-balloon-arrow-height: 4px;\\n\\t--ck-color-panel-background: var(--ck-color-tooltip-background);\\n\\n\\tpadding: 0 var(--ck-spacing-medium);\\n\\n\\t& .ck-tooltip__text {\\n\\t\\tfont-size: .9em;\\n\\t\\tline-height: 1.5;\\n\\t\\tcolor: var(--ck-color-tooltip-text);\\n\\t}\\n\\n\\t/* Reset balloon panel styles */\\n\\tbox-shadow: none;\\n\\n\\t/* Hide the default shadow of the .ck-balloon-panel tip */\\n\\t&::before {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-hidden{display:none!important}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{box-sizing:border-box;height:auto;position:static;width:auto}:root{--ck-z-default:1;--ck-z-modal:calc(var(--ck-z-default) + 999)}.ck-transitions-disabled,.ck-transitions-disabled *{transition:none!important}:root{--ck-powered-by-line-height:10px;--ck-powered-by-padding-vertical:2px;--ck-powered-by-padding-horizontal:4px;--ck-powered-by-text-color:#4f4f4f;--ck-powered-by-border-radius:var(--ck-border-radius);--ck-powered-by-background:#fff;--ck-powered-by-border-color:var(--ck-color-focus-border)}.ck.ck-balloon-panel.ck-powered-by-balloon{--ck-border-radius:var(--ck-powered-by-border-radius);background:var(--ck-powered-by-background);box-shadow:none;min-height:unset;z-index:calc(var(--ck-z-modal) - 1)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by{line-height:var(--ck-powered-by-line-height)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by a{align-items:center;cursor:pointer;display:flex;filter:grayscale(80%);line-height:var(--ck-powered-by-line-height);opacity:.66;padding:var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-powered-by__label{color:var(--ck-powered-by-text-color);cursor:pointer;font-size:7.5px;font-weight:700;letter-spacing:-.2px;line-height:normal;margin-right:4px;padding-left:2px;text-transform:uppercase}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-icon{cursor:pointer;display:block}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by:hover a{filter:grayscale(0);opacity:1}.ck.ck-balloon-panel.ck-powered-by-balloon[class*=position_inside]{border-color:transparent}.ck.ck-balloon-panel.ck-powered-by-balloon[class*=position_border]{border:var(--ck-focus-ring);border-color:var(--ck-powered-by-border-color)}:root{--ck-color-base-foreground:#fafafa;--ck-color-base-background:#fff;--ck-color-base-border:#ccced1;--ck-color-base-action:#53a336;--ck-color-base-focus:#6cb5f9;--ck-color-base-text:#333;--ck-color-base-active:#2977ff;--ck-color-base-active-focus:#0d65ff;--ck-color-base-error:#db3700;--ck-color-focus-border-coordinates:218,81.8%,56.9%;--ck-color-focus-border:hsl(var(--ck-color-focus-border-coordinates));--ck-color-focus-outer-shadow:#cae1fc;--ck-color-focus-disabled-shadow:rgba(119,186,248,.3);--ck-color-focus-error-shadow:rgba(255,64,31,.3);--ck-color-text:var(--ck-color-base-text);--ck-color-shadow-drop:rgba(0,0,0,.15);--ck-color-shadow-drop-active:rgba(0,0,0,.2);--ck-color-shadow-inner:rgba(0,0,0,.1);--ck-color-button-default-background:transparent;--ck-color-button-default-hover-background:#f0f0f0;--ck-color-button-default-active-background:#f0f0f0;--ck-color-button-default-disabled-background:transparent;--ck-color-button-on-background:#f0f7ff;--ck-color-button-on-hover-background:#dbecff;--ck-color-button-on-active-background:#dbecff;--ck-color-button-on-disabled-background:#f0f2f4;--ck-color-button-on-color:#2977ff;--ck-color-button-action-background:var(--ck-color-base-action);--ck-color-button-action-hover-background:#4d9d30;--ck-color-button-action-active-background:#4d9d30;--ck-color-button-action-disabled-background:#7ec365;--ck-color-button-action-text:var(--ck-color-base-background);--ck-color-button-save:#008a00;--ck-color-button-cancel:#db3700;--ck-color-switch-button-off-background:#939393;--ck-color-switch-button-off-hover-background:#7d7d7d;--ck-color-switch-button-on-background:var(--ck-color-button-action-background);--ck-color-switch-button-on-hover-background:#4d9d30;--ck-color-switch-button-inner-background:var(--ck-color-base-background);--ck-color-switch-button-inner-shadow:rgba(0,0,0,.1);--ck-color-dropdown-panel-background:var(--ck-color-base-background);--ck-color-dropdown-panel-border:var(--ck-color-base-border);--ck-color-input-background:var(--ck-color-base-background);--ck-color-input-border:var(--ck-color-base-border);--ck-color-input-error-border:var(--ck-color-base-error);--ck-color-input-text:var(--ck-color-base-text);--ck-color-input-disabled-background:#f2f2f2;--ck-color-input-disabled-border:var(--ck-color-base-border);--ck-color-input-disabled-text:#757575;--ck-color-list-background:var(--ck-color-base-background);--ck-color-list-button-hover-background:var(--ck-color-button-default-hover-background);--ck-color-list-button-on-background:var(--ck-color-button-on-color);--ck-color-list-button-on-background-focus:var(--ck-color-button-on-color);--ck-color-list-button-on-text:var(--ck-color-base-background);--ck-color-panel-background:var(--ck-color-base-background);--ck-color-panel-border:var(--ck-color-base-border);--ck-color-toolbar-background:var(--ck-color-base-background);--ck-color-toolbar-border:var(--ck-color-base-border);--ck-color-tooltip-background:var(--ck-color-base-text);--ck-color-tooltip-text:var(--ck-color-base-background);--ck-color-engine-placeholder-text:#707070;--ck-color-upload-bar-background:#6cb5f9;--ck-color-link-default:#0000f0;--ck-color-link-selected-background:rgba(31,176,255,.1);--ck-color-link-fake-selection:rgba(31,176,255,.3);--ck-color-highlight-background:#ff0;--ck-disabled-opacity:.5;--ck-focus-outer-shadow-geometry:0 0 0 3px;--ck-focus-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);--ck-focus-disabled-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);--ck-focus-error-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);--ck-focus-ring:1px solid var(--ck-color-focus-border);--ck-font-size-base:13px;--ck-line-height-base:1.84615;--ck-font-face:Helvetica,Arial,Tahoma,Verdana,Sans-Serif;--ck-font-size-tiny:0.7em;--ck-font-size-small:0.75em;--ck-font-size-normal:1em;--ck-font-size-big:1.4em;--ck-font-size-large:1.8em;--ck-ui-component-min-height:2.3em}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{word-wrap:break-word;background:transparent;border:0;margin:0;padding:0;text-decoration:none;transition:none;vertical-align:middle}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset_all{border-collapse:collapse;color:var(--ck-color-text);cursor:auto;float:none;font:normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);text-align:left;white-space:nowrap}.ck-reset_all .ck-rtl :not(.ck-reset_all-excluded *){text-align:right}.ck-reset_all iframe:not(.ck-reset_all-excluded *){vertical-align:inherit}.ck-reset_all textarea:not(.ck-reset_all-excluded *){white-space:pre-wrap}.ck-reset_all input[type=password]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text]:not(.ck-reset_all-excluded *),.ck-reset_all textarea:not(.ck-reset_all-excluded *){cursor:text}.ck-reset_all input[type=password][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all textarea[disabled]:not(.ck-reset_all-excluded *){cursor:default}.ck-reset_all fieldset:not(.ck-reset_all-excluded *){border:2px groove #dfdee3;padding:10px}.ck-reset_all button:not(.ck-reset_all-excluded *)::-moz-focus-inner{border:0;padding:0}.ck[dir=rtl],.ck[dir=rtl] .ck{text-align:right}:root{--ck-border-radius:2px;--ck-inner-shadow:2px 2px 3px var(--ck-color-shadow-inner) inset;--ck-drop-shadow:0 1px 2px 1px var(--ck-color-shadow-drop);--ck-drop-shadow-active:0 3px 6px 1px var(--ck-color-shadow-drop-active);--ck-spacing-unit:0.6em;--ck-spacing-large:calc(var(--ck-spacing-unit)*1.5);--ck-spacing-standard:var(--ck-spacing-unit);--ck-spacing-medium:calc(var(--ck-spacing-unit)*0.8);--ck-spacing-small:calc(var(--ck-spacing-unit)*0.5);--ck-spacing-tiny:calc(var(--ck-spacing-unit)*0.3);--ck-spacing-extra-tiny:calc(var(--ck-spacing-unit)*0.16)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_hidden.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_reset.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_zindex.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_transition.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_poweredby.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_colors.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_disabled.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_focus.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_fonts.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_reset.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_shadow.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_spacing.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class which hides an element in DOM.\\n */\\n.ck-hidden {\\n\\t/* Override selector specificity. Otherwise, all elements with some display\\n\\tstyle defined will override this one, which is not a desired result. */\\n\\tdisplay: none !important;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-reset,\\n.ck.ck-reset_all,\\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\\n\\tbox-sizing: border-box;\\n\\twidth: auto;\\n\\theight: auto;\\n\\tposition: static;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-z-default: 1;\\n\\t--ck-z-modal: calc( var(--ck-z-default) + 999 );\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class that disables all transitions of the element and its children.\\n */\\n.ck-transitions-disabled,\\n.ck-transitions-disabled * {\\n\\ttransition: none !important;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-powered-by-line-height: 10px;\\n\\t--ck-powered-by-padding-vertical: 2px;\\n\\t--ck-powered-by-padding-horizontal: 4px;\\n\\t--ck-powered-by-text-color: hsl(0, 0%, 31%);\\n\\t--ck-powered-by-border-radius: var(--ck-border-radius);\\n\\t--ck-powered-by-background: hsl(0, 0%, 100%);\\n\\t--ck-powered-by-border-color: var(--ck-color-focus-border);\\n}\\n\\n.ck.ck-balloon-panel.ck-powered-by-balloon {\\n\\t--ck-border-radius: var(--ck-powered-by-border-radius);\\n\\n\\tbox-shadow: none;\\n\\tbackground: var(--ck-powered-by-background);\\n\\tmin-height: unset;\\n\\tz-index: calc( var(--ck-z-modal) - 1 );\\n\\n\\t& .ck.ck-powered-by {\\n\\t\\tline-height: var(--ck-powered-by-line-height);\\n\\n\\t\\t& a {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\topacity: .66;\\n\\t\\t\\tfilter: grayscale(80%);\\n\\t\\t\\tline-height: var(--ck-powered-by-line-height);\\n\\t\\t\\tpadding: var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal);\\n\\t\\t}\\n\\n\\t\\t& .ck-powered-by__label {\\n\\t\\t\\tfont-size: 7.5px;\\n\\t\\t\\tletter-spacing: -.2px;\\n\\t\\t\\tpadding-left: 2px;\\n\\t\\t\\ttext-transform: uppercase;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin-right: 4px;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tline-height: normal;\\n\\t\\t\\tcolor: var(--ck-powered-by-text-color);\\n\\n\\t\\t}\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\n\\t\\t&:hover {\\n\\t\\t\\t& a {\\n\\t\\t\\t\\tfilter: grayscale(0%);\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"position_inside\\\"] {\\n\\t\\tborder-color: transparent;\\n\\t}\\n\\n\\t&[class*=\\\"position_border\\\"] {\\n\\t\\tborder: var(--ck-focus-ring);\\n\\t\\tborder-color: var(--ck-powered-by-border-color);\\n\\t}\\n}\\n\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-base-foreground: \\t\\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 98%);\\n\\t--ck-color-base-background: \\t\\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 100%);\\n\\t--ck-color-base-border: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(220, 6%, 81%);\\n\\t--ck-color-base-action: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(104, 50.2%, 42.5%);\\n\\t--ck-color-base-focus: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(209, 92%, 70%);\\n\\t--ck-color-base-text: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 20%);\\n\\t--ck-color-base-active: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(218.1, 100%, 58%);\\n\\t--ck-color-base-active-focus:\\t\\t\\t\\t\\t\\t\\t\\thsl(218.2, 100%, 52.5%);\\n\\t--ck-color-base-error:\\t\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(15, 100%, 43%);\\n\\n\\t/* -- Generic colors ------------------------------------------------------------------------ */\\n\\n\\t--ck-color-focus-border-coordinates: \\t\\t\\t\\t\\t\\t218, 81.8%, 56.9%;\\n\\t--ck-color-focus-border: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(var(--ck-color-focus-border-coordinates));\\n\\t--ck-color-focus-outer-shadow:\\t\\t\\t\\t\\t\\t\\t\\thsl(212.4, 89.3%, 89%);\\n\\t--ck-color-focus-disabled-shadow:\\t\\t\\t\\t\\t\\t\\thsla(209, 90%, 72%,.3);\\n\\t--ck-color-focus-error-shadow:\\t\\t\\t\\t\\t\\t\\t\\thsla(9,100%,56%,.3);\\n\\t--ck-color-text: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-text);\\n\\t--ck-color-shadow-drop: \\t\\t\\t\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.15);\\n\\t--ck-color-shadow-drop-active:\\t\\t\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.2);\\n\\t--ck-color-shadow-inner: \\t\\t\\t\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.1);\\n\\n\\t/* -- Buttons ------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-button-default-background: \\t\\t\\t\\t\\t\\ttransparent;\\n\\t--ck-color-button-default-hover-background: \\t\\t\\t\\thsl(0, 0%, 94.1%);\\n\\t--ck-color-button-default-active-background: \\t\\t\\t\\thsl(0, 0%, 94.1%);\\n\\t--ck-color-button-default-disabled-background: \\t\\t\\t\\ttransparent;\\n\\n\\t--ck-color-button-on-background: \\t\\t\\t\\t\\t\\t\\thsl(212, 100%, 97.1%);\\n\\t--ck-color-button-on-hover-background: \\t\\t\\t\\t\\t\\thsl(211.7, 100%, 92.9%);\\n\\t--ck-color-button-on-active-background: \\t\\t\\t\\t\\thsl(211.7, 100%, 92.9%);\\n\\t--ck-color-button-on-disabled-background: \\t\\t\\t\\t\\thsl(211, 15%, 95%);\\n\\t--ck-color-button-on-color:\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(218.1, 100%, 58%);\\n\\n\\n\\t--ck-color-button-action-background: \\t\\t\\t\\t\\t\\tvar(--ck-color-base-action);\\n\\t--ck-color-button-action-hover-background: \\t\\t\\t\\t\\thsl(104, 53.2%, 40.2%);\\n\\t--ck-color-button-action-active-background: \\t\\t\\t\\thsl(104, 53.2%, 40.2%);\\n\\t--ck-color-button-action-disabled-background: \\t\\t\\t\\thsl(104, 44%, 58%);\\n\\t--ck-color-button-action-text: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\n\\t--ck-color-button-save: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(120, 100%, 27%);\\n\\t--ck-color-button-cancel: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(15, 100%, 43%);\\n\\n\\t--ck-color-switch-button-off-background:\\t\\t\\t\\t\\thsl(0, 0%, 57.6%);\\n\\t--ck-color-switch-button-off-hover-background:\\t\\t\\t\\thsl(0, 0%, 49%);\\n\\t--ck-color-switch-button-on-background:\\t\\t\\t\\t\\t\\tvar(--ck-color-button-action-background);\\n\\t--ck-color-switch-button-on-hover-background:\\t\\t\\t\\thsl(104, 53.2%, 40.2%);\\n\\t--ck-color-switch-button-inner-background:\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-switch-button-inner-shadow:\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.1);\\n\\n\\t/* -- Dropdown ------------------------------------------------------------------------------ */\\n\\n\\t--ck-color-dropdown-panel-background: \\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-dropdown-panel-border: \\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\n\\t/* -- Input --------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-input-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-input-border: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\t--ck-color-input-error-border:\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-error);\\n\\t--ck-color-input-text: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-text);\\n\\t--ck-color-input-disabled-background: \\t\\t\\t\\t\\t\\thsl(0, 0%, 95%);\\n\\t--ck-color-input-disabled-border: \\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\t--ck-color-input-disabled-text: \\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 46%);\\n\\n\\t/* -- List ---------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-list-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-list-button-hover-background: \\t\\t\\t\\t\\tvar(--ck-color-button-default-hover-background);\\n\\t--ck-color-list-button-on-background: \\t\\t\\t\\t\\t\\tvar(--ck-color-button-on-color);\\n\\t--ck-color-list-button-on-background-focus: \\t\\t\\t\\tvar(--ck-color-button-on-color);\\n\\t--ck-color-list-button-on-text:\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\n\\t/* -- Panel --------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-panel-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-panel-border: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\n\\t/* -- Toolbar ------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-toolbar-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-toolbar-border: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\n\\t/* -- Tooltip ------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-tooltip-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-text);\\n\\t--ck-color-tooltip-text: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\n\\t/* -- Engine -------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-engine-placeholder-text: \\t\\t\\t\\t\\t\\thsl(0, 0%, 44%);\\n\\n\\t/* -- Upload -------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-upload-bar-background:\\t\\t \\t\\t\\t\\t\\thsl(209, 92%, 70%);\\n\\n\\t/* -- Link -------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-link-default:\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(240, 100%, 47%);\\n\\t--ck-color-link-selected-background:\\t\\t\\t\\t\\t\\thsla(201, 100%, 56%, 0.1);\\n\\t--ck-color-link-fake-selection:\\t\\t\\t\\t\\t\\t\\t\\thsla(201, 100%, 56%, 0.3);\\n\\n\\t/* -- Search result highlight ---------------------------------------------------------------- */\\n\\n\\t--ck-color-highlight-background:\\t\\t\\t\\t\\t\\t\\thsl(60, 100%, 50%)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/**\\n\\t * An opacity value of disabled UI item.\\n\\t */\\n\\t--ck-disabled-opacity: .5;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/**\\n\\t * The geometry of the of focused element's outer shadow.\\n\\t */\\n\\t--ck-focus-outer-shadow-geometry: 0 0 0 3px;\\n\\n\\t/**\\n\\t * A visual style of focused element's outer shadow.\\n\\t */\\n\\t--ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);\\n\\n\\t/**\\n\\t * A visual style of focused element's outer shadow (when disabled).\\n\\t */\\n\\t--ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);\\n\\n\\t/**\\n\\t * A visual style of focused element's outer shadow (when has errors).\\n\\t */\\n\\t--ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);\\n\\n\\t/**\\n\\t * A visual style of focused element's border or outline.\\n\\t */\\n\\t--ck-focus-ring: 1px solid var(--ck-color-focus-border);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-font-size-base: 13px;\\n\\t--ck-line-height-base: 1.84615;\\n\\t--ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;\\n\\n\\t--ck-font-size-tiny: 0.7em;\\n\\t--ck-font-size-small: 0.75em;\\n\\t--ck-font-size-normal: 1em;\\n\\t--ck-font-size-big: 1.4em;\\n\\t--ck-font-size-large: 1.8em;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/* This is super-important. This is **manually** adjusted so a button without an icon\\n\\tis never smaller than a button with icon, additionally making sure that text-less buttons\\n\\tare perfect squares. The value is also shared by other components which should stay \\\"in-line\\\"\\n\\twith buttons. */\\n\\t--ck-ui-component-min-height: 2.3em;\\n}\\n\\n/**\\n * Resets an element, ignoring its children.\\n */\\n.ck.ck-reset,\\n.ck.ck-reset_all,\\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\\n\\t/* Do not include inheritable rules here. */\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\tborder: 0;\\n\\tbackground: transparent;\\n\\ttext-decoration: none;\\n\\tvertical-align: middle;\\n\\ttransition: none;\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/105 */\\n\\tword-wrap: break-word;\\n}\\n\\n/**\\n * Resets an element AND its children.\\n */\\n.ck.ck-reset_all,\\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\\n\\t/* These are rule inherited by all children elements. */\\n\\tborder-collapse: collapse;\\n\\tfont: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);\\n\\tcolor: var(--ck-color-text);\\n\\ttext-align: left;\\n\\twhite-space: nowrap;\\n\\tcursor: auto;\\n\\tfloat: none;\\n}\\n\\n.ck-reset_all {\\n\\t& .ck-rtl *:not(.ck-reset_all-excluded *) {\\n\\t\\ttext-align: right;\\n\\t}\\n\\n\\t& iframe:not(.ck-reset_all-excluded *) {\\n\\t\\t/* For IE */\\n\\t\\tvertical-align: inherit;\\n\\t}\\n\\n\\t& textarea:not(.ck-reset_all-excluded *) {\\n\\t\\twhite-space: pre-wrap;\\n\\t}\\n\\n\\t& textarea:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"text\\\"]:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"password\\\"]:not(.ck-reset_all-excluded *) {\\n\\t\\tcursor: text;\\n\\t}\\n\\n\\t& textarea[disabled]:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"text\\\"][disabled]:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"password\\\"][disabled]:not(.ck-reset_all-excluded *) {\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\t& fieldset:not(.ck-reset_all-excluded *) {\\n\\t\\tpadding: 10px;\\n\\t\\tborder: 2px groove hsl(255, 7%, 88%);\\n\\t}\\n\\n\\t& button:not(.ck-reset_all-excluded *)::-moz-focus-inner {\\n\\t\\t/* See http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox */\\n\\t\\tpadding: 0;\\n\\t\\tborder: 0\\n\\t}\\n}\\n\\n/**\\n * Default UI rules for RTL languages.\\n */\\n.ck[dir=\\\"rtl\\\"],\\n.ck[dir=\\\"rtl\\\"] .ck {\\n\\ttext-align: right;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Default border-radius value.\\n */\\n:root{\\n\\t--ck-border-radius: 2px;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/**\\n\\t * A visual style of element's inner shadow (i.e. input).\\n\\t */\\n\\t--ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset;\\n\\n\\t/**\\n\\t * A visual style of element's drop shadow (i.e. panel).\\n\\t */\\n\\t--ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop);\\n\\n\\t/**\\n\\t * A visual style of element's active shadow (i.e. comment or suggestion).\\n\\t */\\n\\t--ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-spacing-unit: \\t\\t\\t\\t\\t\\t0.6em;\\n\\t--ck-spacing-large: \\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 1.5);\\n\\t--ck-spacing-standard: \\t\\t\\t\\t\\tvar(--ck-spacing-unit);\\n\\t--ck-spacing-medium: \\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.8);\\n\\t--ck-spacing-small: \\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.5);\\n\\t--ck-spacing-tiny: \\t\\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.3);\\n\\t--ck-spacing-extra-tiny: \\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.16);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-resizer:var(--ck-color-focus-border);--ck-color-resizer-tooltip-background:#262626;--ck-color-resizer-tooltip-text:#f2f2f2;--ck-resizer-border-radius:var(--ck-border-radius);--ck-resizer-tooltip-offset:10px;--ck-resizer-tooltip-height:calc(var(--ck-spacing-small)*2 + 10px)}.ck .ck-widget,.ck .ck-widget.ck-widget_with-selection-handle{position:relative}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{position:absolute}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{display:block}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{visibility:visible}.ck .ck-size-view{background:var(--ck-color-resizer-tooltip-background);border:1px solid var(--ck-color-resizer-tooltip-text);border-radius:var(--ck-resizer-border-radius);color:var(--ck-color-resizer-tooltip-text);display:block;font-size:var(--ck-font-size-tiny);height:var(--ck-resizer-tooltip-height);line-height:var(--ck-resizer-tooltip-height);padding:0 var(--ck-spacing-small)}.ck .ck-size-view.ck-orientation-above-center,.ck .ck-size-view.ck-orientation-bottom-left,.ck .ck-size-view.ck-orientation-bottom-right,.ck .ck-size-view.ck-orientation-top-left,.ck .ck-size-view.ck-orientation-top-right{position:absolute}.ck .ck-size-view.ck-orientation-top-left{left:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-top-right{right:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-right{bottom:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-left{bottom:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-above-center{left:50%;top:calc(var(--ck-resizer-tooltip-height)*-1);transform:translate(-50%)}:root{--ck-widget-outline-thickness:3px;--ck-widget-handler-icon-size:16px;--ck-widget-handler-animation-duration:200ms;--ck-widget-handler-animation-curve:ease;--ck-color-widget-blurred-border:#dedede;--ck-color-widget-hover-border:#ffc83d;--ck-color-widget-editable-focus-background:var(--ck-color-base-background);--ck-color-widget-drag-handler-icon-color:var(--ck-color-base-background)}.ck .ck-widget{outline-color:transparent;outline-style:solid;outline-width:var(--ck-widget-outline-thickness);transition:outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_selected,.ck .ck-widget.ck-widget_selected:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border)}.ck .ck-widget:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-editor__nested-editable{border:1px solid transparent}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{background-color:var(--ck-color-widget-editable-focus-background);border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{background-color:transparent;border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0;box-sizing:border-box;left:calc(0px - var(--ck-widget-outline-thickness));opacity:0;padding:4px;top:0;transform:translateY(-100%);transition:background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{color:var(--ck-color-widget-drag-handler-icon-color);height:var(--ck-widget-handler-icon-size);width:var(--ck-widget-handler-icon-size)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:0;transition:opacity .3s var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator{opacity:1}.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{background-color:var(--ck-color-widget-hover-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{background-color:var(--ck-color-focus-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:1}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{left:auto;right:calc(0px - var(--ck-widget-outline-thickness))}.ck.ck-editor__editable.ck-read-only .ck-widget{transition:none}.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected){--ck-widget-outline-thickness:0px}.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover{outline-color:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle:hover,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable blockquote>.ck-widget.ck-widget_with-selection-handle:first-child,.ck.ck-editor__editable>.ck-widget.ck-widget_with-selection-handle:first-child{margin-top:calc(1em + var(--ck-widget-handler-icon-size))}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-widget/theme/widget.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-widget/widget.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,+CAAgD,CAChD,6CAAsD,CACtD,uCAAgD,CAEhD,kDAAmD,CACnD,gCAAiC,CACjC,kEACD,CAOA,8DAEC,iBAqBD,CAnBC,4EACC,iBAOD,CALC,qFAGC,aACD,CASD,iLACC,kBACD,CAGD,kBACC,qDAAsD,CAEtD,qDAAsD,CACtD,6CAA8C,CAF9C,0CAA2C,CAI3C,aAAc,CADd,kCAAmC,CAGnC,uCAAwC,CACxC,4CAA6C,CAF7C,iCAsCD,CAlCC,8NAKC,iBACD,CAEA,0CAEC,qCAAsC,CADtC,oCAED,CAEA,2CAEC,sCAAuC,CADvC,oCAED,CAEA,8CACC,uCAAwC,CACxC,sCACD,CAEA,6CACC,uCAAwC,CACxC,qCACD,CAGA,8CAEC,QAAS,CADT,6CAAgD,CAEhD,yBACD,CCjFD,MACC,iCAAkC,CAClC,kCAAmC,CACnC,4CAA6C,CAC7C,wCAAyC,CAEzC,wCAAiD,CACjD,sCAAkD,CAClD,2EAA4E,CAC5E,yEACD,CAEA,eAGC,yBAA0B,CAD1B,mBAAoB,CADpB,gDAAiD,CAGjD,6GAUD,CARC,0EAEC,6EACD,CAEA,qBACC,iDACD,CAGD,gCACC,4BAWD,CAPC,yGAKC,iEAAkE,CCnCnE,2BAA2B,CCF3B,qCAA8B,CDC9B,YDqCA,CAIA,4EAKC,4BAA6B,CAa7B,iEAAkE,CAhBlE,qBAAsB,CAoBtB,mDAAoD,CAhBpD,SAAU,CALV,WAAY,CAsBZ,KAAM,CAFN,2BAA4B,CAT5B,6SAgCD,CAnBC,qFAIC,oDAAqD,CADrD,yCAA0C,CAD1C,wCAWD,CANC,kHACC,SAAU,CAGV,+DACD,CAID,wHACC,SACD,CAID,kFAEC,oDAAqD,CADrD,SAED,CAKC,oMAEC,6CAA8C,CAD9C,SAOD,CAHC,gRACC,SACD,CAOH,qFACC,SAAU,CACV,oDACD,CAGA,gDAEC,eAkBD,CAhBC,yEAOC,iCACD,CAGC,gOAEC,gDACD,CAOD,wIAEC,mDAQD,CALE,ghBAEC,gDACD,CAKH,yKAOC,yDACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-resizer: var(--ck-color-focus-border);\\n\\t--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);\\n\\t--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);\\n\\n\\t--ck-resizer-border-radius: var(--ck-border-radius);\\n\\t--ck-resizer-tooltip-offset: 10px;\\n\\t--ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);\\n}\\n\\n.ck .ck-widget {\\n\\t/* This is neccessary for type around UI to be positioned properly. */\\n\\tposition: relative;\\n}\\n\\n.ck .ck-widget.ck-widget_with-selection-handle {\\n\\t/* Make the widget wrapper a relative positioning container for the drag handle. */\\n\\tposition: relative;\\n\\n\\t& .ck-widget__selection-handle {\\n\\t\\tposition: absolute;\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\t/* Make sure the icon in not a subject to font-size or line-height to avoid\\n\\t\\t\\tunnecessary spacing around it. */\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Show the selection handle on mouse hover over the widget, but not for nested widgets. */\\n\\t&:hover > .ck-widget__selection-handle {\\n\\t\\tvisibility: visible;\\n\\t}\\n\\n\\t/* Show the selection handle when the widget is selected, but not for nested widgets. */\\n\\t&.ck-widget_selected > .ck-widget__selection-handle {\\n\\t\\tvisibility: visible;\\n\\t}\\n}\\n\\n.ck .ck-size-view {\\n\\tbackground: var(--ck-color-resizer-tooltip-background);\\n\\tcolor: var(--ck-color-resizer-tooltip-text);\\n\\tborder: 1px solid var(--ck-color-resizer-tooltip-text);\\n\\tborder-radius: var(--ck-resizer-border-radius);\\n\\tfont-size: var(--ck-font-size-tiny);\\n\\tdisplay: block;\\n\\tpadding: 0 var(--ck-spacing-small);\\n\\theight: var(--ck-resizer-tooltip-height);\\n\\tline-height: var(--ck-resizer-tooltip-height);\\n\\n\\t&.ck-orientation-top-left,\\n\\t&.ck-orientation-top-right,\\n\\t&.ck-orientation-bottom-right,\\n\\t&.ck-orientation-bottom-left,\\n\\t&.ck-orientation-above-center {\\n\\t\\tposition: absolute;\\n\\t}\\n\\n\\t&.ck-orientation-top-left {\\n\\t\\ttop: var(--ck-resizer-tooltip-offset);\\n\\t\\tleft: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t&.ck-orientation-top-right {\\n\\t\\ttop: var(--ck-resizer-tooltip-offset);\\n\\t\\tright: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t&.ck-orientation-bottom-right {\\n\\t\\tbottom: var(--ck-resizer-tooltip-offset);\\n\\t\\tright: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t&.ck-orientation-bottom-left {\\n\\t\\tbottom: var(--ck-resizer-tooltip-offset);\\n\\t\\tleft: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t/* Class applied if the widget is too small to contain the size label */\\n\\t&.ck-orientation-above-center {\\n\\t\\ttop: calc(var(--ck-resizer-tooltip-height) * -1);\\n\\t\\tleft: 50%;\\n\\t\\ttransform: translate(-50%);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../mixins/_focus.css\\\";\\n@import \\\"../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-widget-outline-thickness: 3px;\\n\\t--ck-widget-handler-icon-size: 16px;\\n\\t--ck-widget-handler-animation-duration: 200ms;\\n\\t--ck-widget-handler-animation-curve: ease;\\n\\n\\t--ck-color-widget-blurred-border: hsl(0, 0%, 87%);\\n\\t--ck-color-widget-hover-border: hsl(43, 100%, 62%);\\n\\t--ck-color-widget-editable-focus-background: var(--ck-color-base-background);\\n\\t--ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);\\n}\\n\\n.ck .ck-widget {\\n\\toutline-width: var(--ck-widget-outline-thickness);\\n\\toutline-style: solid;\\n\\toutline-color: transparent;\\n\\ttransition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\\n\\n\\t&.ck-widget_selected,\\n\\t&.ck-widget_selected:hover {\\n\\t\\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);\\n\\t}\\n\\n\\t&:hover {\\n\\t\\toutline-color: var(--ck-color-widget-hover-border);\\n\\t}\\n}\\n\\n.ck .ck-editor__nested-editable {\\n\\tborder: 1px solid transparent;\\n\\n\\t/* The :focus style is applied before .ck-editor__nested-editable_focused class is rendered in the view.\\n\\tThese styles show a different border for a blink of an eye, so `:focus` need to have same styles applied. */\\n\\t&.ck-editor__nested-editable_focused,\\n\\t&:focus {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-inner-shadow);\\n\\n\\t\\tbackground-color: var(--ck-color-widget-editable-focus-background);\\n\\t}\\n}\\n\\n.ck .ck-widget.ck-widget_with-selection-handle {\\n\\t& .ck-widget__selection-handle {\\n\\t\\tpadding: 4px;\\n\\t\\tbox-sizing: border-box;\\n\\n\\t\\t/* Background and opacity will be animated as the handler shows up or the widget gets selected. */\\n\\t\\tbackground-color: transparent;\\n\\t\\topacity: 0;\\n\\n\\t\\t/* Transition:\\n\\t\\t * background-color for the .ck-widget_selected state change,\\n\\t\\t * visibility for hiding the handler,\\n\\t\\t * opacity for the proper look of the icon when the handler disappears. */\\n\\t\\ttransition:\\n\\t\\t\\tbackground-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\\n\\t\\t\\tvisibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\\n\\t\\t\\topacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\\n\\n\\t\\t/* Make only top corners round. */\\n\\t\\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\\n\\n\\t\\t/* Place the drag handler outside the widget wrapper. */\\n\\t\\ttransform: translateY(-100%);\\n\\t\\tleft: calc(0px - var(--ck-widget-outline-thickness));\\n\\t\\ttop: 0;\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\t/* Make sure the dimensions of the icon are independent of the fon-size of the content. */\\n\\t\\t\\twidth: var(--ck-widget-handler-icon-size);\\n\\t\\t\\theight: var(--ck-widget-handler-icon-size);\\n\\t\\t\\tcolor: var(--ck-color-widget-drag-handler-icon-color);\\n\\n\\t\\t\\t/* The \\\"selected\\\" part of the icon is invisible by default */\\n\\t\\t\\t& .ck-icon__selected-indicator {\\n\\t\\t\\t\\topacity: 0;\\n\\n\\t\\t\\t\\t/* Note: The animation is longer on purpose. Simply feels better. */\\n\\t\\t\\t\\ttransition: opacity 300ms var(--ck-widget-handler-animation-curve);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */\\n\\t\\t&:hover .ck-icon .ck-icon__selected-indicator {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Show the selection handler on mouse hover over the widget, but not for nested widgets. */\\n\\t&:hover > .ck-widget__selection-handle {\\n\\t\\topacity: 1;\\n\\t\\tbackground-color: var(--ck-color-widget-hover-border);\\n\\t}\\n\\n\\t/* Show the selection handler when the widget is selected, but not for nested widgets. */\\n\\t&.ck-widget_selected,\\n\\t&.ck-widget_selected:hover {\\n\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\topacity: 1;\\n\\t\\t\\tbackground-color: var(--ck-color-focus-border);\\n\\n\\t\\t\\t/* When the widget is selected, notify the user using the proper look of the icon. */\\n\\t\\t\\t& .ck-icon .ck-icon__selected-indicator {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n/* In a RTL environment, align the selection handler to the right side of the widget */\\n/* stylelint-disable-next-line no-descending-specificity */\\n.ck[dir=\\\"rtl\\\"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {\\n\\tleft: auto;\\n\\tright: calc(0px - var(--ck-widget-outline-thickness));\\n}\\n\\n/* https://github.com/ckeditor/ckeditor5/issues/6415 */\\n.ck.ck-editor__editable.ck-read-only .ck-widget {\\n\\t/* Prevent the :hover outline from showing up because of the used outline-color transition. */\\n\\ttransition: none;\\n\\n\\t&:not(.ck-widget_selected) {\\n\\t\\t/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.\\n\\t\\t * See: https://github.com/ckeditor/ckeditor5/issues/1261\\n\\t\\t *\\n\\t\\t * Leave the unit because this custom property is used in calc() by other features.\\n\\t\\t * See: https://github.com/ckeditor/ckeditor5/issues/6775\\n\\t\\t */\\n\\t\\t--ck-widget-outline-thickness: 0px;\\n\\t}\\n\\n\\t&.ck-widget_with-selection-handle {\\n\\t\\t& .ck-widget__selection-handle,\\n\\t\\t& .ck-widget__selection-handle:hover {\\n\\t\\t\\tbackground: var(--ck-color-widget-blurred-border);\\n\\t\\t}\\n\\t}\\n}\\n\\n/* Style the widget when it's selected but the editable it belongs to lost focus. */\\n/* stylelint-disable-next-line no-descending-specificity */\\n.ck.ck-editor__editable.ck-blurred .ck-widget {\\n\\t&.ck-widget_selected,\\n\\t&.ck-widget_selected:hover {\\n\\t\\toutline-color: var(--ck-color-widget-blurred-border);\\n\\n\\t\\t&.ck-widget_with-selection-handle {\\n\\t\\t\\t& > .ck-widget__selection-handle,\\n\\t\\t\\t& > .ck-widget__selection-handle:hover {\\n\\t\\t\\t\\tbackground: var(--ck-color-widget-blurred-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-editor__editable > .ck-widget.ck-widget_with-selection-handle:first-child,\\n.ck.ck-editor__editable blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {\\n\\t/* Do not crop selection handler if a widget is a first-child in the blockquote or in the root editable.\\n\\tIn fact, anything with overflow: hidden.\\n\\thttps://github.com/ckeditor/ckeditor5-block-quote/issues/28\\n\\thttps://github.com/ckeditor/ckeditor5-widget/issues/44\\n\\thttps://github.com/ckeditor/ckeditor5-widget/issues/66 */\\n\\tmargin-top: calc(1em + var(--ck-widget-handler-icon-size));\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-widget_with-resizer{position:relative}.ck .ck-widget__resizer{display:none;left:0;pointer-events:none;position:absolute;top:0}.ck-focused .ck-widget_with-resizer.ck-widget_selected>.ck-widget__resizer{display:block}.ck .ck-widget__resizer__handle{pointer-events:all;position:absolute}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{cursor:nwse-resize}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{cursor:nesw-resize}:root{--ck-resizer-size:10px;--ck-resizer-offset:calc(var(--ck-resizer-size)/-2 - 2px);--ck-resizer-border-width:1px}.ck .ck-widget__resizer{outline:1px solid var(--ck-color-resizer)}.ck .ck-widget__resizer__handle{background:var(--ck-color-focus-border);border:var(--ck-resizer-border-width) solid #fff;border-radius:var(--ck-resizer-border-radius);height:var(--ck-resizer-size);width:var(--ck-resizer-size)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{left:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{right:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right{bottom:var(--ck-resizer-offset);right:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left{bottom:var(--ck-resizer-offset);left:var(--ck-resizer-offset)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-widget/theme/widgetresize.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-widget/widgetresize.css\"],\"names\":[],\"mappings\":\"AAKA,4BAEC,iBACD,CAEA,wBACC,YAAa,CAMb,MAAO,CAFP,mBAAoB,CAHpB,iBAAkB,CAMlB,KACD,CAGC,2EACC,aACD,CAGD,gCAIC,kBAAmB,CAHnB,iBAcD,CATC,4IAEC,kBACD,CAEA,4IAEC,kBACD,CCpCD,MACC,sBAAuB,CAGvB,yDAAiE,CACjE,6BACD,CAEA,wBACC,yCACD,CAEA,gCAGC,uCAAwC,CACxC,gDAA6D,CAC7D,6CAA8C,CAH9C,6BAA8B,CAD9B,4BAyBD,CAnBC,oEAEC,6BAA8B,CAD9B,4BAED,CAEA,qEAEC,8BAA+B,CAD/B,4BAED,CAEA,wEACC,+BAAgC,CAChC,8BACD,CAEA,uEACC,+BAAgC,CAChC,6BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-widget_with-resizer {\\n\\t/* Make the widget wrapper a relative positioning container for the drag handle. */\\n\\tposition: relative;\\n}\\n\\n.ck .ck-widget__resizer {\\n\\tdisplay: none;\\n\\tposition: absolute;\\n\\n\\t/* The wrapper itself should not interfere with the pointer device, only the handles should. */\\n\\tpointer-events: none;\\n\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\\n.ck-focused .ck-widget_with-resizer.ck-widget_selected {\\n\\t& > .ck-widget__resizer {\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\\n.ck .ck-widget__resizer__handle {\\n\\tposition: absolute;\\n\\n\\t/* Resizers are the only UI elements that should interfere with a pointer device. */\\n\\tpointer-events: all;\\n\\n\\t&.ck-widget__resizer__handle-top-left,\\n\\t&.ck-widget__resizer__handle-bottom-right {\\n\\t\\tcursor: nwse-resize;\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-top-right,\\n\\t&.ck-widget__resizer__handle-bottom-left {\\n\\t\\tcursor: nesw-resize;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-resizer-size: 10px;\\n\\n\\t/* Set the resizer with a 50% offset. */\\n\\t--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);\\n\\t--ck-resizer-border-width: 1px;\\n}\\n\\n.ck .ck-widget__resizer {\\n\\toutline: 1px solid var(--ck-color-resizer);\\n}\\n\\n.ck .ck-widget__resizer__handle {\\n\\twidth: var(--ck-resizer-size);\\n\\theight: var(--ck-resizer-size);\\n\\tbackground: var(--ck-color-focus-border);\\n\\tborder: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);\\n\\tborder-radius: var(--ck-resizer-border-radius);\\n\\n\\t&.ck-widget__resizer__handle-top-left {\\n\\t\\ttop: var(--ck-resizer-offset);\\n\\t\\tleft: var(--ck-resizer-offset);\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-top-right {\\n\\t\\ttop: var(--ck-resizer-offset);\\n\\t\\tright: var(--ck-resizer-offset);\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-bottom-right {\\n\\t\\tbottom: var(--ck-resizer-offset);\\n\\t\\tright: var(--ck-resizer-offset);\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-bottom-left {\\n\\t\\tbottom: var(--ck-resizer-offset);\\n\\t\\tleft: var(--ck-resizer-offset);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-widget .ck-widget__type-around__button{display:block;overflow:hidden;position:absolute;z-index:var(--ck-z-default)}.ck .ck-widget .ck-widget__type-around__button svg{left:50%;position:absolute;top:50%;z-index:calc(var(--ck-z-default) + 2)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before{left:min(10%,30px);top:calc(var(--ck-widget-outline-thickness)*-.5);transform:translateY(-50%)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after{bottom:calc(var(--ck-widget-outline-thickness)*-.5);right:min(10%,30px);transform:translateY(50%)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{content:\\\"\\\";display:block;left:1px;position:absolute;top:1px;z-index:calc(var(--ck-z-default) + 1)}.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:none;left:0;position:absolute;right:0}.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__fake-caret{left:calc(var(--ck-widget-outline-thickness)*-1);right:calc(var(--ck-widget-outline-thickness)*-1)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:block;top:calc(var(--ck-widget-outline-thickness)*-1 - 1px)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__fake-caret{bottom:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck.ck-editor__editable.ck-read-only .ck-widget__type-around,.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around,.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around{display:none}:root{--ck-widget-type-around-button-size:20px;--ck-color-widget-type-around-button-active:var(--ck-color-focus-border);--ck-color-widget-type-around-button-hover:var(--ck-color-widget-hover-border);--ck-color-widget-type-around-button-blurred-editable:var(--ck-color-widget-blurred-border);--ck-color-widget-type-around-button-radar-start-alpha:0;--ck-color-widget-type-around-button-radar-end-alpha:.3;--ck-color-widget-type-around-button-icon:var(--ck-color-base-background)}.ck .ck-widget .ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button);border-radius:100px;height:var(--ck-widget-type-around-button-size);opacity:0;pointer-events:none;transition:opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);width:var(--ck-widget-type-around-button-size)}.ck .ck-widget .ck-widget__type-around__button svg{height:8px;margin-top:1px;transform:translate(-50%,-50%);transition:transform .5s ease;width:10px}.ck .ck-widget .ck-widget__type-around__button svg *{stroke-dasharray:10;stroke-dashoffset:0;fill:none;stroke:var(--ck-color-widget-type-around-button-icon);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ck .ck-widget .ck-widget__type-around__button svg line{stroke-dasharray:7}.ck .ck-widget .ck-widget__type-around__button:hover{animation:ck-widget-type-around-button-sonar 1s ease infinite}.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:ck-widget-type-around-arrow-dash 2s linear}.ck .ck-widget .ck-widget__type-around__button:hover svg line{animation:ck-widget-type-around-arrow-tip-dash 2s linear}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:1;pointer-events:auto}.ck .ck-widget:not(.ck-widget_selected)>.ck-widget__type-around>.ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button-hover)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover{background:var(--ck-color-widget-type-around-button-active)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{background:linear-gradient(135deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3));border-radius:100px;height:calc(var(--ck-widget-type-around-button-size) - 2px);width:calc(var(--ck-widget-type-around-button-size) - 2px)}.ck .ck-widget.ck-widget_with-selection-handle>.ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:20px}.ck .ck-widget .ck-widget__type-around__fake-caret{animation:ck-widget-type-around-fake-caret-pulse 1s linear infinite normal forwards;background:var(--ck-color-base-text);height:1px;outline:1px solid hsla(0,0%,100%,.5);pointer-events:none}.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after,.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before{outline-color:transparent}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:0}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:0;margin-right:20px}.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover){background:var(--ck-color-widget-type-around-button-blurred-editable)}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover) svg *{stroke:#999}@keyframes ck-widget-type-around-arrow-dash{0%{stroke-dashoffset:10}20%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-arrow-tip-dash{0%,20%{stroke-dashoffset:7}40%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-button-sonar{0%{box-shadow:0 0 0 0 hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}50%{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-end-alpha))}to{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}}@keyframes ck-widget-type-around-fake-caret-pulse{0%{opacity:1}49%{opacity:1}50%{opacity:0}99%{opacity:0}to{opacity:1}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-widget/theme/widgettypearound.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-widget/widgettypearound.css\"],\"names\":[],\"mappings\":\"AASC,+CACC,aAAc,CAEd,eAAgB,CADhB,iBAAkB,CAElB,2BAwBD,CAtBC,mDAGC,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAEA,qFAGC,kBAAoB,CADpB,gDAAoD,CAGpD,0BACD,CAEA,oFAEC,mDAAuD,CACvD,mBAAqB,CAErB,yBACD,CAUA,mLACC,UAAW,CACX,aAAc,CAGd,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAMD,2EACC,YAAa,CAEb,MAAO,CADP,iBAAkB,CAElB,OACD,CAOA,iFACC,gDAAqD,CACrD,iDACD,CAKA,wHAEC,aAAc,CADd,qDAED,CAKA,uHACC,wDAA6D,CAC7D,aACD,CAoBD,mOACC,YACD,CC3GA,MACC,wCAAyC,CACzC,wEAAyE,CACzE,8EAA+E,CAC/E,2FAA4F,CAC5F,wDAAyD,CACzD,uDAAwD,CACxD,yEACD,CAgBC,+CAGC,oDAAqD,CACrD,mBAAoB,CAFpB,+CAAgD,CAVjD,SAAU,CACV,mBAAoB,CAYnB,uMAAyM,CAJzM,8CAkDD,CA1CC,mDAEC,UAAW,CAGX,cAAe,CAFf,8BAA+B,CAC/B,6BAA8B,CAH9B,UAoBD,CAdC,qDACC,mBAAoB,CACpB,mBAAoB,CAEpB,SAAU,CACV,qDAAsD,CACtD,kBAAmB,CACnB,oBAAqB,CACrB,qBACD,CAEA,wDACC,kBACD,CAGD,qDAIC,6DAcD,CARE,kEACC,oDACD,CAEA,8DACC,wDACD,CAUF,uKAvED,SAAU,CACV,mBAwEC,CAOD,gGACC,0DACD,CAOA,uKAEC,2DAQD,CANC,mLAIC,uEAAkF,CADlF,mBAAoB,CADpB,2DAA4D,CAD5D,0DAID,CAOD,8GACC,gBACD,CAKA,mDAGC,mFAAoF,CAOpF,oCAAqC,CARrC,UAAW,CAOX,oCAAwC,CARxC,mBAUD,CAOC,6JAEC,yBACD,CAUA,yKACC,iDACD,CAMA,uOAlJD,SAAU,CACV,mBAmJC,CAoBA,6yBACC,SACD,CASF,uHACC,aAAc,CACd,iBACD,CAYG,iRAlMF,SAAU,CACV,mBAmME,CAQH,kIACC,qEAKD,CAHC,wIACC,WACD,CAGD,4CACC,GACC,oBACD,CACA,OACC,mBACD,CACD,CAEA,gDACC,OACC,mBACD,CACA,OACC,mBACD,CACD,CAEA,8CACC,GACC,6HACD,CACA,IACC,6HACD,CACA,GACC,+HACD,CACD,CAEA,kDACC,GACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,GACC,SACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-widget {\\n\\t/*\\n\\t * Styles of the type around buttons\\n\\t */\\n\\t& .ck-widget__type-around__button {\\n\\t\\tdisplay: block;\\n\\t\\tposition: absolute;\\n\\t\\toverflow: hidden;\\n\\t\\tz-index: var(--ck-z-default);\\n\\n\\t\\t& svg {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 50%;\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tz-index: calc(var(--ck-z-default) + 2);\\n\\t\\t}\\n\\n\\t\\t&.ck-widget__type-around__button_before {\\n\\t\\t\\t/* Place it in the middle of the outline */\\n\\t\\t\\ttop: calc(-0.5 * var(--ck-widget-outline-thickness));\\n\\t\\t\\tleft: min(10%, 30px);\\n\\n\\t\\t\\ttransform: translateY(-50%);\\n\\t\\t}\\n\\n\\t\\t&.ck-widget__type-around__button_after {\\n\\t\\t\\t/* Place it in the middle of the outline */\\n\\t\\t\\tbottom: calc(-0.5 * var(--ck-widget-outline-thickness));\\n\\t\\t\\tright: min(10%, 30px);\\n\\n\\t\\t\\ttransform: translateY(50%);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the buttons when:\\n\\t * - the widget is selected,\\n\\t * - or the button is being hovered (regardless of the widget state).\\n\\t */\\n\\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\\n\\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\\n\\t\\t&::after {\\n\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 1px;\\n\\t\\t\\tleft: 1px;\\n\\t\\t\\tz-index: calc(var(--ck-z-default) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" which is displayed when the user navigates using the keyboard.\\n\\t */\\n\\t& > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\tdisplay: none;\\n\\t\\tposition: absolute;\\n\\t\\tleft: 0;\\n\\t\\tright: 0;\\n\\t}\\n\\n\\t/*\\n\\t * When the widget is hovered the \\\"fake caret\\\" would normally be narrower than the\\n\\t * extra outline displayed around the widget. Let's extend the \\\"fake caret\\\" to match\\n\\t * the full width of the widget.\\n\\t */\\n\\t&:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\tleft: calc( -1 * var(--ck-widget-outline-thickness) );\\n\\t\\tright: calc( -1 * var(--ck-widget-outline-thickness) );\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" when it should be displayed before the widget (backward keyboard navigation).\\n\\t */\\n\\t&.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\ttop: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\\n\\t\\tdisplay: block;\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" when it should be displayed after the widget (forward keyboard navigation).\\n\\t */\\n\\t&.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\tbottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\\n/*\\n * Integration with the read-only mode of the editor.\\n */\\n.ck.ck-editor__editable.ck-read-only .ck-widget__type-around {\\n\\tdisplay: none;\\n}\\n\\n/*\\n * Integration with the restricted editing mode (feature) of the editor.\\n */\\n.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {\\n\\tdisplay: none;\\n}\\n\\n/*\\n * Integration with the #isEnabled property of the WidgetTypeAround plugin.\\n */\\n.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {\\n\\tdisplay: none;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-widget-type-around-button-size: 20px;\\n\\t--ck-color-widget-type-around-button-active: var(--ck-color-focus-border);\\n\\t--ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);\\n\\t--ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);\\n\\t--ck-color-widget-type-around-button-radar-start-alpha: 0;\\n\\t--ck-color-widget-type-around-button-radar-end-alpha: .3;\\n\\t--ck-color-widget-type-around-button-icon: var(--ck-color-base-background);\\n}\\n\\n@define-mixin ck-widget-type-around-button-visible {\\n\\topacity: 1;\\n\\tpointer-events: auto;\\n}\\n\\n@define-mixin ck-widget-type-around-button-hidden {\\n\\topacity: 0;\\n\\tpointer-events: none;\\n}\\n\\n.ck .ck-widget {\\n\\t/*\\n\\t * Styles of the type around buttons\\n\\t */\\n\\t& .ck-widget__type-around__button {\\n\\t\\twidth: var(--ck-widget-type-around-button-size);\\n\\t\\theight: var(--ck-widget-type-around-button-size);\\n\\t\\tbackground: var(--ck-color-widget-type-around-button);\\n\\t\\tborder-radius: 100px;\\n\\t\\ttransition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\\n\\n\\t\\t@mixin ck-widget-type-around-button-hidden;\\n\\n\\t\\t& svg {\\n\\t\\t\\twidth: 10px;\\n\\t\\t\\theight: 8px;\\n\\t\\t\\ttransform: translate(-50%,-50%);\\n\\t\\t\\ttransition: transform .5s ease;\\n\\t\\t\\tmargin-top: 1px;\\n\\n\\t\\t\\t& * {\\n\\t\\t\\t\\tstroke-dasharray: 10;\\n\\t\\t\\t\\tstroke-dashoffset: 0;\\n\\n\\t\\t\\t\\tfill: none;\\n\\t\\t\\t\\tstroke: var(--ck-color-widget-type-around-button-icon);\\n\\t\\t\\t\\tstroke-width: 1.5px;\\n\\t\\t\\t\\tstroke-linecap: round;\\n\\t\\t\\t\\tstroke-linejoin: round;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& line {\\n\\t\\t\\t\\tstroke-dasharray: 7;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:hover {\\n\\t\\t\\t/*\\n\\t\\t\\t * Display the \\\"sonar\\\" around the button when hovered.\\n\\t\\t\\t */\\n\\t\\t\\tanimation: ck-widget-type-around-button-sonar 1s ease infinite;\\n\\n\\t\\t\\t/*\\n\\t\\t\\t * Animate active button's icon.\\n\\t\\t\\t */\\n\\t\\t\\t& svg {\\n\\t\\t\\t\\t& polyline {\\n\\t\\t\\t\\t\\tanimation: ck-widget-type-around-arrow-dash 2s linear;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t& line {\\n\\t\\t\\t\\t\\tanimation: ck-widget-type-around-arrow-tip-dash 2s linear;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Show type around buttons when the widget gets selected or being hovered.\\n\\t */\\n\\t&.ck-widget_selected,\\n\\t&:hover {\\n\\t\\t& > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\t\\t@mixin ck-widget-type-around-button-visible;\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the buttons when the widget is NOT selected (but the buttons are visible\\n\\t * and still can be hovered).\\n\\t */\\n\\t&:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\tbackground: var(--ck-color-widget-type-around-button-hover);\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the buttons when:\\n\\t * - the widget is selected,\\n\\t * - or the button is being hovered (regardless of the widget state).\\n\\t */\\n\\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\\n\\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\\n\\t\\tbackground: var(--ck-color-widget-type-around-button-active);\\n\\n\\t\\t&::after {\\n\\t\\t\\twidth: calc(var(--ck-widget-type-around-button-size) - 2px);\\n\\t\\t\\theight: calc(var(--ck-widget-type-around-button-size) - 2px);\\n\\t\\t\\tborder-radius: 100px;\\n\\t\\t\\tbackground: linear-gradient(135deg, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,.3) 100%);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the \\\"before\\\" button when the widget has a selection handle. Because some space\\n\\t * is consumed by the handle, the button must be moved slightly to the right to let it breathe.\\n\\t */\\n\\t&.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {\\n\\t\\tmargin-left: 20px;\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" which is displayed when the user navigates using the keyboard.\\n\\t */\\n\\t& .ck-widget__type-around__fake-caret {\\n\\t\\tpointer-events: none;\\n\\t\\theight: 1px;\\n\\t\\tanimation: ck-widget-type-around-fake-caret-pulse linear 1s infinite normal forwards;\\n\\n\\t\\t/*\\n\\t\\t * The semi-transparent-outline+background combo improves the contrast\\n\\t\\t * when the background underneath the fake caret is dark.\\n\\t\\t */\\n\\t\\toutline: solid 1px hsla(0, 0%, 100%, .5);\\n\\t\\tbackground: var(--ck-color-base-text);\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget when the \\\"fake caret\\\" is blinking (e.g. upon keyboard navigation).\\n\\t * Despite the widget being physically selected in the model, its outline should disappear.\\n\\t */\\n\\t&.ck-widget_selected {\\n\\t\\t&.ck-widget_type-around_show-fake-caret_before,\\n\\t\\t&.ck-widget_type-around_show-fake-caret_after {\\n\\t\\t\\toutline-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-widget_type-around_show-fake-caret_before,\\n\\t&.ck-widget_type-around_show-fake-caret_after {\\n\\t\\t/*\\n\\t\\t * When the \\\"fake caret\\\" is visible we simulate that the widget is not selected\\n\\t\\t * (despite being physically selected), so the outline color should be for the\\n\\t\\t * unselected widget.\\n\\t\\t */\\n\\t\\t&.ck-widget_selected:hover {\\n\\t\\t\\toutline-color: var(--ck-color-widget-hover-border);\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * Styles of the type around buttons when the \\\"fake caret\\\" is blinking (e.g. upon keyboard navigation).\\n\\t\\t * In this state, the type around buttons would collide with the fake carets so they should disappear.\\n\\t\\t */\\n\\t\\t& > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\t\\t@mixin ck-widget-type-around-button-hidden;\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * Fake horizontal caret integration with the selection handle. When the caret is visible, simply\\n\\t\\t * hide the handle because it intersects with the caret (and does not make much sense anyway).\\n\\t\\t */\\n\\t\\t&.ck-widget_with-selection-handle {\\n\\t\\t\\t&.ck-widget_selected,\\n\\t\\t\\t&.ck-widget_selected:hover {\\n\\t\\t\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\t\\t\\topacity: 0\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * Fake horizontal caret integration with the resize UI. When the caret is visible, simply\\n\\t\\t * hide the resize UI because it creates too much noise. It can be visible when the user\\n\\t\\t * hovers the widget, though.\\n\\t\\t */\\n\\t\\t&.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {\\n\\t\\t\\topacity: 0\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * Styles for the \\\"before\\\" button when the widget has a selection handle in an RTL environment.\\n * The selection handler is aligned to the right side of the widget so there is no need to create\\n * additional space for it next to the \\\"before\\\" button.\\n */\\n.ck[dir=\\\"rtl\\\"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {\\n\\tmargin-left: 0;\\n\\tmargin-right: 20px;\\n}\\n\\n/*\\n * Hide type around buttons when the widget is selected as a child of a selected\\n * nested editable (e.g. mulit-cell table selection).\\n *\\n * See https://github.com/ckeditor/ckeditor5/issues/7263.\\n */\\n.ck-editor__nested-editable.ck-editor__editable_selected {\\n\\t& .ck-widget {\\n\\t\\t&.ck-widget_selected,\\n\\t\\t&:hover {\\n\\t\\t\\t& > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\t\\t\\t@mixin ck-widget-type-around-button-hidden;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * Styles for the buttons when the widget is selected but the user clicked outside of the editor (blurred the editor).\\n */\\n.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {\\n\\tbackground: var(--ck-color-widget-type-around-button-blurred-editable);\\n\\n\\t& svg * {\\n\\t\\tstroke: hsl(0,0%,60%);\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-arrow-dash {\\n\\t0% {\\n\\t\\tstroke-dashoffset: 10;\\n\\t}\\n\\t20%, 100% {\\n\\t\\tstroke-dashoffset: 0;\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-arrow-tip-dash {\\n\\t0%, 20% {\\n\\t\\tstroke-dashoffset: 7;\\n\\t}\\n\\t40%, 100% {\\n\\t\\tstroke-dashoffset: 0;\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-button-sonar {\\n\\t0% {\\n\\t\\tbox-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\\n\\t}\\n\\t50% {\\n\\t\\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));\\n\\t}\\n\\t100% {\\n\\t\\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-fake-caret-pulse {\\n\\t0% {\\n\\t\\topacity: 1;\\n\\t}\\n\\t49% {\\n\\t\\topacity: 1;\\n\\t}\\n\\t50% {\\n\\t\\topacity: 0;\\n\\t}\\n\\t99% {\\n\\t\\topacity: 0;\\n\\t}\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of `);\n const root = this.attachShadow({ mode: 'open' });\n root.appendChild(template.content.cloneNode(true));\n root.addEventListener('move', this);\n this[$parts] = this[$sliders].map((slider) => new slider(root));\n }\n connectedCallback() {\n // A user may set a property on an _instance_ of an element,\n // before its prototype has been connected to this class.\n // If so, we need to run it through the proper class setter.\n if (this.hasOwnProperty('color')) {\n const value = this.color;\n delete this['color'];\n this.color = value;\n }\n else if (!this.color) {\n this.color = this.colorModel.defaultColor;\n }\n }\n attributeChangedCallback(_attr, _oldVal, newVal) {\n const color = this.colorModel.fromAttr(newVal);\n if (!this[$isSame](color)) {\n this.color = color;\n }\n }\n handleEvent(event) {\n // Merge the current HSV color object with updated params.\n const oldHsva = this[$hsva];\n const newHsva = { ...oldHsva, ...event.detail };\n this[$update](newHsva);\n let newColor;\n if (!equalColorObjects(newHsva, oldHsva) &&\n !this[$isSame]((newColor = this.colorModel.fromHsva(newHsva)))) {\n this[$color] = newColor;\n fire(this, 'color-changed', { value: newColor });\n }\n }\n [$isSame](color) {\n return this.color && this.colorModel.equal(color, this.color);\n }\n [$update](hsva) {\n this[$hsva] = hsva;\n this[$parts].forEach((part) => part.update(hsva));\n }\n}\n//# sourceMappingURL=color-picker.js.map","export default `[part=hue]{flex:0 0 24px;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}[part=hue-pointer]{top:50%;z-index:2}`;\n//# sourceMappingURL=hue.js.map","export default `[part=saturation]{flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,rgba(255,255,255,0));box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part=saturation-pointer]{z-index:3}`;\n//# sourceMappingURL=saturation.js.map","import { ColorPicker } from '../components/color-picker.js';\nimport { hexToHsva, hsvaToHex } from '../utils/convert.js';\nimport { equalHex } from '../utils/compare.js';\nconst colorModel = {\n defaultColor: '#000',\n toHsva: hexToHsva,\n fromHsva: ({ h, s, v }) => hsvaToHex({ h, s, v, a: 1 }),\n equal: equalHex,\n fromAttr: (color) => color\n};\nexport class HexBase extends ColorPicker {\n get colorModel() {\n return colorModel;\n }\n}\n//# sourceMappingURL=hex.js.map","import { HexBase } from './lib/entrypoints/hex.js';\n/**\n * A color picker custom element that uses HEX format.\n *\n * @element hex-color-picker\n *\n * @prop {string} color - Selected color in HEX format.\n * @attr {string} color - Selected color in HEX format.\n *\n * @fires color-changed - Event fired when color property changes.\n *\n * @csspart hue - A hue selector container.\n * @csspart saturation - A saturation selector container\n * @csspart hue-pointer - A hue pointer element.\n * @csspart saturation-pointer - A saturation pointer element.\n */\nexport class HexColorPicker extends HexBase {\n}\ncustomElements.define('hex-color-picker', HexColorPicker);\n//# sourceMappingURL=hex-color-picker.js.map","import api from \"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../css-loader/dist/cjs.js!../../../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./colorpicker.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/colorpicker/colorpickerview\n */\nimport { convertColor, convertToHex } from './utils';\nimport { global, env } from '@ckeditor/ckeditor5-utils';\nimport { debounce } from 'lodash-es';\nimport View from '../view';\nimport LabeledFieldView from '../labeledfield/labeledfieldview';\nimport { createLabeledInputText } from '../labeledfield/utils';\nimport 'vanilla-colorful/hex-color-picker.js';\nimport '../../theme/components/colorpicker/colorpicker.css';\nconst waitingTime = 150;\n/**\n * A class which represents a color picker with an input field for defining custom colors.\n */\nexport default class ColorPickerView extends View {\n /**\n * Creates a view of color picker.\n *\n * @param locale\n * @param config\n */\n constructor(locale, config = {}) {\n super(locale);\n this.set({\n color: '',\n _hexColor: ''\n });\n this.hexInputRow = this._createInputRow();\n const children = this.createCollection();\n if (!config.hideInput) {\n children.add(this.hexInputRow);\n }\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: ['ck', 'ck-color-picker'],\n tabindex: -1\n },\n children\n });\n this._config = config;\n this._debounceColorPickerEvent = debounce((color) => {\n // At first, set the color internally in the component. It's converted to the configured output format.\n this.set('color', color);\n // Then let the outside world know that the user changed the color.\n this.fire('colorSelected', { color: this.color });\n }, waitingTime, {\n leading: true\n });\n // The `color` property holds the color in the configured output format.\n // Ensure it before actually setting the value.\n this.on('set:color', (evt, propertyName, newValue) => {\n evt.return = convertColor(newValue, this._config.format || 'hsl');\n });\n // The `_hexColor` property is bound to the `color` one, but requires conversion.\n this.on('change:color', () => {\n this._hexColor = convertColorToCommonHexFormat(this.color);\n });\n this.on('change:_hexColor', () => {\n // Update the selected color in the color picker palette when it's not focused.\n // It means the user typed the color in the input.\n if (document.activeElement !== this.picker) {\n this.picker.setAttribute('color', this._hexColor);\n }\n // There has to be two way binding between properties.\n // Extra precaution has to be taken to trigger change back only when the color really changes.\n if (convertColorToCommonHexFormat(this.color) != convertColorToCommonHexFormat(this._hexColor)) {\n this.color = this._hexColor;\n }\n });\n }\n /**\n * Renders color picker in the view.\n */\n render() {\n super.render();\n this.picker = global.document.createElement('hex-color-picker');\n this.picker.setAttribute('class', 'hex-color-picker');\n this.picker.setAttribute('tabindex', '-1');\n this._createSlidersView();\n if (this.element) {\n if (this.hexInputRow.element) {\n this.element.insertBefore(this.picker, this.hexInputRow.element);\n }\n else {\n this.element.appendChild(this.picker);\n }\n // Create custom stylesheet with a look of focused pointer in color picker and append it into the color picker shadowDom\n const styleSheetForFocusedColorPicker = document.createElement('style');\n styleSheetForFocusedColorPicker.textContent = '[role=\"slider\"]:focus [part$=\"pointer\"] {' +\n 'border: 1px solid #fff;' +\n 'outline: 1px solid var(--ck-color-focus-border);' +\n 'box-shadow: 0 0 0 2px #fff;' +\n '}';\n this.picker.shadowRoot.appendChild(styleSheetForFocusedColorPicker);\n }\n this.picker.addEventListener('color-changed', event => {\n const customEvent = event;\n const color = customEvent.detail.value;\n this._debounceColorPickerEvent(color);\n });\n }\n /**\n * Focuses the first pointer in color picker.\n *\n */\n focus() {\n // In some browsers we need to move the focus to the input first.\n // Otherwise, the color picker doesn't behave as expected.\n // In FF, after selecting the color via slider, it instantly moves back to the previous color.\n // In all iOS browsers and desktop Safari, once the saturation slider is moved for the first time,\n // editor collapses the selection and doesn't apply the color change.\n // See: https://github.com/cksource/ckeditor5-internal/issues/3245, https://github.com/ckeditor/ckeditor5/issues/14119,\n // https://github.com/cksource/ckeditor5-internal/issues/3268.\n /* istanbul ignore next -- @preserve */\n if (!this._config.hideInput && (env.isGecko || env.isiOS || env.isSafari)) {\n const input = this.hexInputRow.children.get(1);\n input.focus();\n }\n const firstSlider = this.slidersView.first;\n firstSlider.focus();\n }\n /**\n * Creates collection of sliders in color picker.\n *\n * @private\n */\n _createSlidersView() {\n const colorPickersChildren = [...this.picker.shadowRoot.children];\n const sliders = colorPickersChildren.filter(item => item.getAttribute('role') === 'slider');\n const slidersView = sliders.map(slider => {\n const view = new SliderView(slider);\n return view;\n });\n this.slidersView = this.createCollection();\n slidersView.forEach(item => {\n this.slidersView.add(item);\n });\n }\n /**\n * Creates input row for defining custom colors in color picker.\n *\n * @private\n */\n _createInputRow() {\n const hashView = new HashView();\n const colorInput = this._createColorInput();\n return new ColorPickerInputRowView(this.locale, [hashView, colorInput]);\n }\n /**\n * Creates the input where user can type or paste the color in hex format.\n *\n * @private\n */\n _createColorInput() {\n const labeledInput = new LabeledFieldView(this.locale, createLabeledInputText);\n const { t } = this.locale;\n labeledInput.set({\n label: t('HEX'),\n class: 'color-picker-hex-input'\n });\n labeledInput.fieldView.bind('value').to(this, '_hexColor', pickerColor => {\n if (labeledInput.isFocused) {\n // Text field shouldn't be updated with color change if the text field is focused.\n // Imagine user typing hex code and getting the value of field changed.\n return labeledInput.fieldView.value;\n }\n else {\n return pickerColor.startsWith('#') ? pickerColor.substring(1) : pickerColor;\n }\n });\n // Only accept valid hex colors as input.\n labeledInput.fieldView.on('input', () => {\n const inputValue = labeledInput.fieldView.element.value;\n if (inputValue) {\n // Trim the whitespace.\n const trimmedValue = inputValue.trim();\n // Drop the `#` from the beginning if present.\n const hashlessInput = trimmedValue.startsWith('#') ? trimmedValue.substring(1) : trimmedValue;\n // Check if it's a hex color (3,4,6 or 8 chars long and with proper characters).\n const isValidHexColor = [3, 4, 6, 8].includes(hashlessInput.length) &&\n /(([0-9a-fA-F]{2}){3,4}|([0-9a-fA-F]){3,4})/.test(hashlessInput);\n if (isValidHexColor) {\n // If so, set the color.\n // Otherwise, do nothing.\n this._debounceColorPickerEvent('#' + hashlessInput);\n }\n }\n });\n return labeledInput;\n }\n}\n// Converts any color format to a unified hex format.\n//\n// @param inputColor\n// @returns An unified hex string.\nfunction convertColorToCommonHexFormat(inputColor) {\n let ret = convertToHex(inputColor);\n if (!ret) {\n ret = '#000';\n }\n if (ret.length === 4) {\n // Unfold shortcut format.\n ret = '#' + [ret[1], ret[1], ret[2], ret[2], ret[3], ret[3]].join('');\n }\n return ret.toLowerCase();\n}\n// View abstraction over pointer in color picker.\nclass SliderView extends View {\n /**\n * @param element HTML elemnt of slider in color picker.\n */\n constructor(element) {\n super();\n this.element = element;\n }\n /**\n * Focuses element.\n */\n focus() {\n this.element.focus();\n }\n}\n// View abstraction over the `#` character before color input.\nclass HashView extends View {\n constructor(locale) {\n super(locale);\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-color-picker__hash-view'\n ]\n },\n children: '#'\n });\n }\n}\n// The class representing a row containing hex color input field.\n// **Note**: For now this class is private. When more use cases appear (beyond `ckeditor5-table` and `ckeditor5-image`),\n// it will become a component in `ckeditor5-ui`.\n//\n// @private\nclass ColorPickerInputRowView extends View {\n /**\n * Creates an instance of the form row class.\n *\n * @param locale The locale instance.\n */\n constructor(locale, children) {\n super(locale);\n this.children = this.createCollection(children);\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-color-picker__row'\n ]\n },\n children: this.children\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Collection, ObservableMixin } from '@ckeditor/ckeditor5-utils';\n/**\n * A collection to store document colors. It enforces colors to be unique.\n */\nexport default class DocumentColorCollection extends ObservableMixin((Collection)) {\n constructor(options) {\n super(options);\n this.set('isEmpty', true);\n this.on('change', () => {\n this.set('isEmpty', this.length === 0);\n });\n }\n /**\n * Adds a color to the document color collection.\n *\n * This method ensures that no color duplicates are inserted (compared using\n * the color value of the {@link module:ui/colorgrid/colorgridview~ColorDefinition}).\n *\n * If the item does not have an ID, it will be automatically generated and set on the item.\n *\n * @param index The position of the item in the collection. The item is pushed to the collection when `index` is not specified.\n * @fires add\n * @fires change\n */\n add(item, index) {\n if (this.find(element => element.color === item.color)) {\n // No duplicates are allowed.\n return this;\n }\n return super.add(item, index);\n }\n /**\n * Checks if an object with given colors is present in the document color collection.\n */\n hasColor(color) {\n return !!this.find(item => item.color === color);\n }\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/colorselector/colorgridsfragmentview\n */\nimport View from '../view';\nimport ButtonView from '../button/buttonview';\nimport ColorGridView from '../colorgrid/colorgridview';\nimport ColorTileView from '../colorgrid/colortileview';\nimport LabelView from '../label/labelview';\nimport Template from '../template';\nimport DocumentColorCollection from './documentcolorcollection';\nimport removeButtonIcon from '@ckeditor/ckeditor5-core/theme/icons/eraser.svg';\nimport colorPaletteIcon from '../../theme/icons/color-palette.svg';\n/**\n * One of the fragments of {@link module:ui/colorselector/colorselectorview~ColorSelectorView}.\n *\n * It provides a UI that allows users to select colors from the a predefined set and from existing document colors.\n *\n * It consists of the following sub–components:\n *\n * * A \"Remove color\" button,\n * * A static {@link module:ui/colorgrid/colorgridview~ColorGridView} of colors defined in the configuration,\n * * A dynamic {@link module:ui/colorgrid/colorgridview~ColorGridView} of colors used in the document.\n * * If color picker is configured, the \"Color Picker\" button is visible too.\n */\nexport default class ColorGridsFragmentView extends View {\n /**\n * Creates an instance of the view.\n *\n * @param locale The localization services instance.\n * @param colors An array with definitions of colors to be displayed in the table.\n * @param columns The number of columns in the color grid.\n * @param removeButtonLabel The label of the button responsible for removing the color.\n * @param colorPickerLabel The label of the button responsible for color picker appearing.\n * @param documentColorsLabel The label for the section with the document colors.\n * @param documentColorsCount The number of colors in the document colors section inside the color dropdown.\n * @param focusTracker Tracks information about the DOM focus in the list.\n * @param focusables A collection of views that can be focused in the view.\n */\n constructor(locale, { colors, columns, removeButtonLabel, documentColorsLabel, documentColorsCount, colorPickerLabel, focusTracker, focusables }) {\n super(locale);\n const bind = this.bindTemplate;\n this.set('isVisible', true);\n this.focusTracker = focusTracker;\n this.items = this.createCollection();\n this.colorDefinitions = colors;\n this.columns = columns;\n this.documentColors = new DocumentColorCollection();\n this.documentColorsCount = documentColorsCount;\n this._focusables = focusables;\n this._removeButtonLabel = removeButtonLabel;\n this._colorPickerLabel = colorPickerLabel;\n this._documentColorsLabel = documentColorsLabel;\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck-color-grids-fragment',\n bind.if('isVisible', 'ck-hidden', value => !value)\n ]\n },\n children: this.items\n });\n this.removeColorButtonView = this._createRemoveColorButton();\n this.items.add(this.removeColorButtonView);\n }\n /**\n * Scans through the editor model and searches for text node attributes with the given attribute name.\n * Found entries are set as document colors.\n *\n * All the previously stored document colors will be lost in the process.\n *\n * @param model The model used as a source to obtain the document colors.\n * @param attributeName Determines the name of the related model's attribute for a given dropdown.\n */\n updateDocumentColors(model, attributeName) {\n const document = model.document;\n const maxCount = this.documentColorsCount;\n this.documentColors.clear();\n for (const root of document.getRoots()) {\n const range = model.createRangeIn(root);\n for (const node of range.getItems()) {\n if (node.is('$textProxy') && node.hasAttribute(attributeName)) {\n this._addColorToDocumentColors(node.getAttribute(attributeName));\n if (this.documentColors.length >= maxCount) {\n return;\n }\n }\n }\n }\n }\n /**\n * Refreshes the state of the selected color in one or both {@link module:ui/colorgrid/colorgridview~ColorGridView}s\n * available in the {@link module:ui/colorselector/colorselectorview~ColorSelectorView}. It guarantees that the selection will\n * occur only in one of them.\n */\n updateSelectedColors() {\n const documentColorsGrid = this.documentColorsGrid;\n const staticColorsGrid = this.staticColorsGrid;\n const selectedColor = this.selectedColor;\n staticColorsGrid.selectedColor = selectedColor;\n if (documentColorsGrid) {\n documentColorsGrid.selectedColor = selectedColor;\n }\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n this.staticColorsGrid = this._createStaticColorsGrid();\n this.items.add(this.staticColorsGrid);\n if (this.documentColorsCount) {\n // Create a label for document colors.\n const bind = Template.bind(this.documentColors, this.documentColors);\n const label = new LabelView(this.locale);\n label.text = this._documentColorsLabel;\n label.extendTemplate({\n attributes: {\n class: [\n 'ck',\n 'ck-color-grid__label',\n bind.if('isEmpty', 'ck-hidden')\n ]\n }\n });\n this.items.add(label);\n this.documentColorsGrid = this._createDocumentColorsGrid();\n this.items.add(this.documentColorsGrid);\n }\n this._createColorPickerButton();\n this._addColorSelectorElementsToFocusTracker();\n this.focus();\n }\n /**\n * Focuses the component.\n */\n focus() {\n this.removeColorButtonView.focus();\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n }\n /**\n * Handles displaying the color picker button (if it was previously created) and making it focusable.\n */\n addColorPickerButton() {\n if (this.colorPickerButtonView) {\n this.items.add(this.colorPickerButtonView);\n this.focusTracker.add(this.colorPickerButtonView.element);\n this._focusables.add(this.colorPickerButtonView);\n }\n }\n /**\n * Adds color selector elements to focus tracker.\n */\n _addColorSelectorElementsToFocusTracker() {\n this.focusTracker.add(this.removeColorButtonView.element);\n this._focusables.add(this.removeColorButtonView);\n if (this.staticColorsGrid) {\n this.focusTracker.add(this.staticColorsGrid.element);\n this._focusables.add(this.staticColorsGrid);\n }\n if (this.documentColorsGrid) {\n this.focusTracker.add(this.documentColorsGrid.element);\n this._focusables.add(this.documentColorsGrid);\n }\n }\n /**\n * Creates the button responsible for displaying the color picker component.\n */\n _createColorPickerButton() {\n this.colorPickerButtonView = new ButtonView();\n this.colorPickerButtonView.set({\n label: this._colorPickerLabel,\n withText: true,\n icon: colorPaletteIcon,\n class: 'ck-color-selector__color-picker'\n });\n this.colorPickerButtonView.on('execute', () => {\n this.fire('colorPicker:show');\n });\n }\n /**\n * Adds the remove color button as a child of the current view.\n */\n _createRemoveColorButton() {\n const buttonView = new ButtonView();\n buttonView.set({\n withText: true,\n icon: removeButtonIcon,\n label: this._removeButtonLabel\n });\n buttonView.class = 'ck-color-selector__remove-color';\n buttonView.on('execute', () => {\n this.fire('execute', {\n value: null,\n source: 'removeColorButton'\n });\n });\n buttonView.render();\n return buttonView;\n }\n /**\n * Creates a static color grid based on the editor configuration.\n */\n _createStaticColorsGrid() {\n const colorGrid = new ColorGridView(this.locale, {\n colorDefinitions: this.colorDefinitions,\n columns: this.columns\n });\n colorGrid.on('execute', (evt, data) => {\n this.fire('execute', {\n value: data.value,\n source: 'staticColorsGrid'\n });\n });\n return colorGrid;\n }\n /**\n * Creates the document colors section view and binds it to {@link #documentColors}.\n */\n _createDocumentColorsGrid() {\n const bind = Template.bind(this.documentColors, this.documentColors);\n const documentColorsGrid = new ColorGridView(this.locale, {\n columns: this.columns\n });\n documentColorsGrid.extendTemplate({\n attributes: {\n class: bind.if('isEmpty', 'ck-hidden')\n }\n });\n documentColorsGrid.items.bindTo(this.documentColors).using(colorObj => {\n const colorTile = new ColorTileView();\n colorTile.set({\n color: colorObj.color,\n hasBorder: colorObj.options && colorObj.options.hasBorder\n });\n if (colorObj.label) {\n colorTile.set({\n label: colorObj.label,\n tooltip: true\n });\n }\n colorTile.on('execute', () => {\n this.fire('execute', {\n value: colorObj.color,\n source: 'documentColorsGrid'\n });\n });\n return colorTile;\n });\n // Selected color should be cleared when document colors became empty.\n this.documentColors.on('change:isEmpty', (evt, name, val) => {\n if (val) {\n documentColorsGrid.selectedColor = null;\n }\n });\n return documentColorsGrid;\n }\n /**\n * Adds a given color to the document colors list. If possible, the method will attempt to use\n * data from the {@link #colorDefinitions} (label, color options).\n *\n * @param color A string that stores the value of the recently applied color.\n */\n _addColorToDocumentColors(color) {\n const predefinedColor = this.colorDefinitions\n .find(definition => definition.color === color);\n if (!predefinedColor) {\n this.documentColors.add({\n color,\n label: color,\n options: {\n hasBorder: false\n }\n });\n }\n else {\n this.documentColors.add(Object.assign({}, predefinedColor));\n }\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/colorselector/colorpickerfragmentview\n */\nimport View from '../view';\nimport ButtonView from '../button/buttonview';\nimport { default as ColorPickerView } from '../colorpicker/colorpickerview';\nimport checkButtonIcon from '@ckeditor/ckeditor5-core/theme/icons/check.svg';\nimport cancelButtonIcon from '@ckeditor/ckeditor5-core/theme/icons/cancel.svg';\n/**\n * One of the fragments of {@link module:ui/colorselector/colorselectorview~ColorSelectorView}.\n *\n * It allows users to select a color from a color picker.\n *\n * It consists of the following sub–components:\n *\n * * A color picker saturation and hue sliders,\n * * A text input accepting colors in HEX format,\n * * \"Save\" and \"Cancel\" action buttons.\n */\nexport default class ColorPickerFragmentView extends View {\n /**\n * Creates an instance of the view.\n *\n * @param locale The localization services instance.\n * @param focusTracker Tracks information about the DOM focus in the list.\n * @param focusables A collection of views that can be focused in the view..\n * @param keystrokes An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n * @param colorPickerViewConfig The configuration of color picker feature. If set to `false`, the color picker\n * will not be rendered.\n */\n constructor(locale, { focusTracker, focusables, keystrokes, colorPickerViewConfig }) {\n super(locale);\n this.items = this.createCollection();\n this.focusTracker = focusTracker;\n this.keystrokes = keystrokes;\n this.set('isVisible', false);\n this.set('selectedColor', undefined);\n this._focusables = focusables;\n this._colorPickerViewConfig = colorPickerViewConfig;\n const bind = this.bindTemplate;\n const { saveButtonView, cancelButtonView } = this._createActionButtons();\n this.saveButtonView = saveButtonView;\n this.cancelButtonView = cancelButtonView;\n this.actionBarView = this._createActionBarView({ saveButtonView, cancelButtonView });\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck-color-picker-fragment',\n bind.if('isVisible', 'ck-hidden', value => !value)\n ]\n },\n children: this.items\n });\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n const colorPickerView = new ColorPickerView(this.locale, {\n ...this._colorPickerViewConfig\n });\n this.colorPickerView = colorPickerView;\n this.colorPickerView.render();\n if (this.selectedColor) {\n colorPickerView.color = this.selectedColor;\n }\n this.listenTo(this, 'change:selectedColor', (evt, name, value) => {\n colorPickerView.color = value;\n });\n this.items.add(this.colorPickerView);\n this.items.add(this.actionBarView);\n this._addColorPickersElementsToFocusTracker();\n this._stopPropagationOnArrowsKeys();\n this._executeOnEnterPress();\n this._executeUponColorChange();\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n }\n /**\n * Focuses the color picker.\n */\n focus() {\n this.colorPickerView.focus();\n }\n /**\n * When color picker is focused and \"enter\" is pressed it executes command.\n */\n _executeOnEnterPress() {\n this.keystrokes.set('enter', evt => {\n if (this.isVisible && this.focusTracker.focusedElement !== this.cancelButtonView.element) {\n this.fire('execute', {\n value: this.selectedColor\n });\n evt.stopPropagation();\n evt.preventDefault();\n }\n });\n }\n /**\n * Removes default behavior of arrow keys in dropdown.\n */\n _stopPropagationOnArrowsKeys() {\n const stopPropagation = (data) => data.stopPropagation();\n this.keystrokes.set('arrowright', stopPropagation);\n this.keystrokes.set('arrowleft', stopPropagation);\n this.keystrokes.set('arrowup', stopPropagation);\n this.keystrokes.set('arrowdown', stopPropagation);\n }\n /**\n * Adds color picker elements to focus tracker.\n */\n _addColorPickersElementsToFocusTracker() {\n for (const slider of this.colorPickerView.slidersView) {\n this.focusTracker.add(slider.element);\n this._focusables.add(slider);\n }\n const input = this.colorPickerView.hexInputRow.children.get(1);\n if (input.element) {\n this.focusTracker.add(input.element);\n this._focusables.add(input);\n }\n this.focusTracker.add(this.saveButtonView.element);\n this._focusables.add(this.saveButtonView);\n this.focusTracker.add(this.cancelButtonView.element);\n this._focusables.add(this.cancelButtonView);\n }\n /**\n * Creates bar containing \"Save\" and \"Cancel\" buttons.\n */\n _createActionBarView({ saveButtonView, cancelButtonView }) {\n const actionBarRow = new View();\n const children = this.createCollection();\n children.add(saveButtonView);\n children.add(cancelButtonView);\n actionBarRow.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-color-selector_action-bar'\n ]\n },\n children\n });\n return actionBarRow;\n }\n /**\n * Creates \"Save\" and \"Cancel\" buttons.\n */\n _createActionButtons() {\n const locale = this.locale;\n const t = locale.t;\n const saveButtonView = new ButtonView(locale);\n const cancelButtonView = new ButtonView(locale);\n saveButtonView.set({\n icon: checkButtonIcon,\n class: 'ck-button-save',\n type: 'button',\n withText: false,\n label: t('Accept')\n });\n cancelButtonView.set({\n icon: cancelButtonIcon,\n class: 'ck-button-cancel',\n type: 'button',\n withText: false,\n label: t('Cancel')\n });\n saveButtonView.on('execute', () => {\n this.fire('execute', {\n source: 'colorPickerSaveButton',\n value: this.selectedColor\n });\n });\n cancelButtonView.on('execute', () => {\n this.fire('colorPicker:cancel');\n });\n return {\n saveButtonView, cancelButtonView\n };\n }\n /**\n * Fires the `execute` event if color in color picker has been changed\n * by the user.\n */\n _executeUponColorChange() {\n this.colorPickerView.on('colorSelected', (evt, data) => {\n this.fire('execute', {\n value: data.color,\n source: 'colorPicker'\n });\n this.set('selectedColor', data.color);\n });\n }\n}\n","import api from \"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../css-loader/dist/cjs.js!../../../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./colorselector.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/colorselector/colorselectorview\n */\nimport FocusCycler from '../focuscycler';\nimport View from '../view';\nimport ViewCollection from '../viewcollection';\nimport { FocusTracker, KeystrokeHandler } from '@ckeditor/ckeditor5-utils';\nimport ColorGridsFragmentView from './colorgridsfragmentview';\nimport ColorPickerFragmentView from './colorpickerfragmentview';\nimport '../../theme/components/colorselector/colorselector.css';\n/**\n * The configurable color selector view class. It allows users to select colors from a predefined set of colors as well as from\n * a color picker.\n *\n * This meta-view is is made of two components (fragments):\n *\n * * {@link module:ui/colorselector/colorselectorview~ColorSelectorView#colorGridsFragmentView},\n * * {@link module:ui/colorselector/colorselectorview~ColorSelectorView#colorPickerFragmentView}.\n *\n * ```ts\n * const colorDefinitions = [\n * \t{ color: '#000', label: 'Black', options: { hasBorder: false } },\n * \t{ color: 'rgb(255, 255, 255)', label: 'White', options: { hasBorder: true } },\n * \t{ color: 'red', label: 'Red', options: { hasBorder: false } }\n * ];\n *\n * const selectorView = new ColorSelectorView( locale, {\n * \tcolors: colorDefinitions,\n * \tcolumns: 5,\n * \tremoveButtonLabel: 'Remove color',\n * \tdocumentColorsLabel: 'Document colors',\n * \tdocumentColorsCount: 4,\n * \tcolorPickerViewConfig: {\n * \t\tformat: 'hsl'\n * \t}\n * } );\n *\n * selectorView.appendUI();\n * selectorView.selectedColor = 'red';\n * selectorView.updateSelectedColors();\n *\n * selectorView.on( 'execute', ( evt, data ) => {\n * \tconsole.log( 'Color changed', data.value, data.source );\n * } );\n *\n * selectorView.on( 'colorPicker:show', ( evt ) => {\n * \tconsole.log( 'Color picker showed up', evt );\n * } );\n *\n * selectorView.on( 'colorPicker:cancel', ( evt ) => {\n * \tconsole.log( 'Color picker cancel', evt );\n * } );\n *\n * selectorView.render();\n *\n * document.body.appendChild( selectorView.element );\n * ```\n */\nexport default class ColorSelectorView extends View {\n /**\n * Creates a view to be inserted as a child of {@link module:ui/dropdown/dropdownview~DropdownView}.\n *\n * @param locale The localization services instance.\n * @param colors An array with definitions of colors to be displayed in the table.\n * @param columns The number of columns in the color grid.\n * @param removeButtonLabel The label of the button responsible for removing the color.\n * @param colorPickerLabel The label of the button responsible for color picker appearing.\n * @param documentColorsLabel The label for the section with the document colors.\n * @param documentColorsCount The number of colors in the document colors section inside the color dropdown.\n * @param colorPickerViewConfig The configuration of color picker feature. If set to `false`, the color picker will be hidden.\n */\n constructor(locale, { colors, columns, removeButtonLabel, documentColorsLabel, documentColorsCount, colorPickerLabel, colorPickerViewConfig }) {\n super(locale);\n this.items = this.createCollection();\n this.focusTracker = new FocusTracker();\n this.keystrokes = new KeystrokeHandler();\n this._focusables = new ViewCollection();\n this._colorPickerViewConfig = colorPickerViewConfig;\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate list items backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate list items forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n this.colorGridsFragmentView = new ColorGridsFragmentView(locale, {\n colors, columns, removeButtonLabel, documentColorsLabel, documentColorsCount, colorPickerLabel,\n focusTracker: this.focusTracker,\n focusables: this._focusables\n });\n this.colorPickerFragmentView = new ColorPickerFragmentView(locale, {\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokes: this.keystrokes,\n colorPickerViewConfig\n });\n this.set('_isColorGridsFragmentVisible', true);\n this.set('_isColorPickerFragmentVisible', false);\n this.set('selectedColor', undefined);\n this.colorGridsFragmentView.bind('isVisible').to(this, '_isColorGridsFragmentVisible');\n this.colorPickerFragmentView.bind('isVisible').to(this, '_isColorPickerFragmentVisible');\n /**\n * This is kind of bindings. Unfortunately we could not use this.bind() method because the same property\n * can not be bound twice. So this is work around how to bind 'selectedColor' property between components.\n */\n this.on('change:selectedColor', (evt, evtName, data) => {\n this.colorGridsFragmentView.set('selectedColor', data);\n this.colorPickerFragmentView.set('selectedColor', data);\n });\n this.colorGridsFragmentView.on('change:selectedColor', (evt, evtName, data) => {\n this.set('selectedColor', data);\n });\n this.colorPickerFragmentView.on('change:selectedColor', (evt, evtName, data) => {\n this.set('selectedColor', data);\n });\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-color-selector'\n ]\n },\n children: this.items\n });\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n * Renders the internals of the component on demand:\n * * {@link #colorPickerFragmentView},\n * * {@link #colorGridsFragmentView}.\n *\n * It allows for deferring component initialization to improve the performance.\n *\n * See {@link #showColorPickerFragment}, {@link #showColorGridsFragment}.\n */\n appendUI() {\n this._appendColorGridsFragment();\n if (this._colorPickerViewConfig) {\n this._appendColorPickerFragment();\n }\n }\n /**\n * Shows the {@link #colorPickerFragmentView} and hides the {@link #colorGridsFragmentView}.\n *\n * **Note**: It requires {@link #appendUI} to be called first.\n *\n * See {@link #showColorGridsFragment}, {@link ~ColorSelectorView#event:colorPicker:show}.\n */\n showColorPickerFragment() {\n if (!this.colorPickerFragmentView.colorPickerView || this._isColorPickerFragmentVisible) {\n return;\n }\n this._isColorPickerFragmentVisible = true;\n this.colorPickerFragmentView.focus();\n this._isColorGridsFragmentVisible = false;\n }\n /**\n * Shows the {@link #colorGridsFragmentView} and hides the {@link #colorPickerFragmentView}.\n *\n * See {@link #showColorPickerFragment}.\n *\n * **Note**: It requires {@link #appendUI} to be called first.\n */\n showColorGridsFragment() {\n if (this._isColorGridsFragmentVisible) {\n return;\n }\n this._isColorGridsFragmentVisible = true;\n this.colorGridsFragmentView.focus();\n this._isColorPickerFragmentVisible = false;\n }\n /**\n * Focuses the first focusable element in {@link #items}.\n */\n focus() {\n this._focusCycler.focusFirst();\n }\n /**\n * Focuses the last focusable element in {@link #items}.\n */\n focusLast() {\n this._focusCycler.focusLast();\n }\n /**\n * Scans through the editor model and searches for text node attributes with the given `attributeName`.\n * Found entries are set as document colors in {@link #colorGridsFragmentView}.\n *\n * All the previously stored document colors will be lost in the process.\n *\n * @param model The model used as a source to obtain the document colors.\n * @param attributeName Determines the name of the related model's attribute for a given dropdown.\n */\n updateDocumentColors(model, attributeName) {\n this.colorGridsFragmentView.updateDocumentColors(model, attributeName);\n }\n /**\n * Refreshes the state of the selected color in one or both grids located in {@link #colorGridsFragmentView}.\n *\n * It guarantees that the selection will occur only in one of them.\n */\n updateSelectedColors() {\n this.colorGridsFragmentView.updateSelectedColors();\n }\n /**\n * Appends the view containing static and document color grid views.\n */\n _appendColorGridsFragment() {\n if (this.items.length) {\n return;\n }\n this.items.add(this.colorGridsFragmentView);\n this.colorGridsFragmentView.delegate('execute').to(this);\n this.colorGridsFragmentView.delegate('colorPicker:show').to(this);\n }\n /**\n * Appends the view with the color picker.\n */\n _appendColorPickerFragment() {\n if (this.items.length === 2) {\n return;\n }\n this.items.add(this.colorPickerFragmentView);\n if (this.colorGridsFragmentView.colorPickerButtonView) {\n this.colorGridsFragmentView.colorPickerButtonView.on('execute', () => {\n this.showColorPickerFragment();\n });\n }\n this.colorGridsFragmentView.addColorPickerButton();\n this.colorPickerFragmentView.delegate('execute').to(this);\n this.colorPickerFragmentView.delegate('colorPicker:cancel').to(this);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/componentfactory\n */\nimport { CKEditorError } from '@ckeditor/ckeditor5-utils';\n/**\n * A helper class implementing the UI component ({@link module:ui/view~View view}) factory.\n *\n * It allows functions producing specific UI components to be registered under their unique names\n * in the factory. A registered component can be then instantiated by providing its name.\n * Note that the names are case insensitive.\n *\n * ```ts\n * // The editor provides localization tools for the factory.\n * const factory = new ComponentFactory( editor );\n *\n * factory.add( 'foo', locale => new FooView( locale ) );\n * factory.add( 'bar', locale => new BarView( locale ) );\n *\n * // An instance of FooView.\n * const fooInstance = factory.create( 'foo' );\n *\n * // Names are case insensitive so this is also allowed:\n * const barInstance = factory.create( 'Bar' );\n * ```\n *\n * The {@link module:core/editor/editor~Editor#locale editor locale} is passed to the factory\n * function when {@link module:ui/componentfactory~ComponentFactory#create} is called.\n */\nexport default class ComponentFactory {\n /**\n * Creates an instance of the factory.\n *\n * @param editor The editor instance.\n */\n constructor(editor) {\n /**\n * Registered component factories.\n */\n this._components = new Map();\n this.editor = editor;\n }\n /**\n * Returns an iterator of registered component names. Names are returned in lower case.\n */\n *names() {\n for (const value of this._components.values()) {\n yield value.originalName;\n }\n }\n /**\n * Registers a component factory function that will be used by the\n * {@link #create create} method and called with the\n * {@link module:core/editor/editor~Editor#locale editor locale} as an argument,\n * allowing localization of the {@link module:ui/view~View view}.\n *\n * @param name The name of the component.\n * @param callback The callback that returns the component.\n */\n add(name, callback) {\n this._components.set(getNormalized(name), { callback, originalName: name });\n }\n /**\n * Creates an instance of a component registered in the factory under a specific name.\n *\n * When called, the {@link module:core/editor/editor~Editor#locale editor locale} is passed to\n * the previously {@link #add added} factory function, allowing localization of the\n * {@link module:ui/view~View view}.\n *\n * @param name The name of the component.\n * @returns The instantiated component view.\n */\n create(name) {\n if (!this.has(name)) {\n /**\n * The required component is not registered in the component factory. Please make sure\n * the provided name is correct and the component has been correctly\n * {@link module:ui/componentfactory~ComponentFactory#add added} to the factory.\n *\n * @error componentfactory-item-missing\n * @param name The name of the missing component.\n */\n throw new CKEditorError('componentfactory-item-missing', this, { name });\n }\n return this._components.get(getNormalized(name)).callback(this.editor.locale);\n }\n /**\n * Checks if a component of a given name is registered in the factory.\n *\n * @param name The name of the component.\n */\n has(name) {\n return this._components.has(getNormalized(name));\n }\n}\n/**\n * Ensures that the component name used as the key in the internal map is in lower case.\n */\nfunction getNormalized(name) {\n return String(name).toLowerCase();\n}\n","import api from \"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../css-loader/dist/cjs.js!../../../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./balloonpanel.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/panel/balloon/balloonpanelview\n */\nimport View from '../../view';\nimport { getOptimalPosition, global, isRange, toUnit } from '@ckeditor/ckeditor5-utils';\nimport { isElement } from 'lodash-es';\nimport '../../../theme/components/panel/balloonpanel.css';\nconst toPx = toUnit('px');\nconst defaultLimiterElement = global.document.body;\n/**\n * The balloon panel view class.\n *\n * A floating container which can\n * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#pin pin} to any\n * {@link module:utils/dom/position~Options#target target} in the DOM and remain in that position\n * e.g. when the web page is scrolled.\n *\n * The balloon panel can be used to display contextual, non-blocking UI like forms, toolbars and\n * the like in its {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#content} view\n * collection.\n *\n * There is a number of {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}\n * that the balloon can use, automatically switching from one to another when the viewport space becomes\n * scarce to keep the balloon visible to the user as long as it is possible. The balloon will also\n * accept any custom position set provided by the user compatible with the\n * {@link module:utils/dom/position~Options options}.\n *\n * ```ts\n * const panel = new BalloonPanelView( locale );\n * const childView = new ChildView();\n * const positions = BalloonPanelView.defaultPositions;\n *\n * panel.render();\n *\n * // Add a child view to the panel's content collection.\n * panel.content.add( childView );\n *\n * // Start pinning the panel to an element with the \"target\" id DOM.\n * // The balloon will remain pinned until unpin() is called.\n * panel.pin( {\n * \ttarget: document.querySelector( '#target' ),\n * \tpositions: [\n * \t\tpositions.northArrowSouth,\n * \t\tpositions.southArrowNorth\n * \t]\n * } );\n * ```\n */\nexport default class BalloonPanelView extends View {\n /**\n * @inheritDoc\n */\n constructor(locale) {\n super(locale);\n const bind = this.bindTemplate;\n this.set('top', 0);\n this.set('left', 0);\n this.set('position', 'arrow_nw');\n this.set('isVisible', false);\n this.set('withArrow', true);\n this.set('class', undefined);\n this._pinWhenIsVisibleCallback = null;\n this.content = this.createCollection();\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-balloon-panel',\n bind.to('position', value => `ck-balloon-panel_${value}`),\n bind.if('isVisible', 'ck-balloon-panel_visible'),\n bind.if('withArrow', 'ck-balloon-panel_with-arrow'),\n bind.to('class')\n ],\n style: {\n top: bind.to('top', toPx),\n left: bind.to('left', toPx)\n }\n },\n children: this.content\n });\n }\n /**\n * Shows the panel.\n *\n * See {@link #isVisible}.\n */\n show() {\n this.isVisible = true;\n }\n /**\n * Hides the panel.\n *\n * See {@link #isVisible}.\n */\n hide() {\n this.isVisible = false;\n }\n /**\n * Attaches the panel to a specified {@link module:utils/dom/position~Options#target} with a\n * smart positioning heuristics that chooses from available positions to make sure the panel\n * is visible to the user i.e. within the limits of the viewport.\n *\n * This method accepts configuration {@link module:utils/dom/position~Options options}\n * to set the `target`, optional `limiter` and `positions` the balloon should choose from.\n *\n * ```ts\n * const panel = new BalloonPanelView( locale );\n * const positions = BalloonPanelView.defaultPositions;\n *\n * panel.render();\n *\n * // Attach the panel to an element with the \"target\" id DOM.\n * panel.attachTo( {\n * \ttarget: document.querySelector( '#target' ),\n * \tpositions: [\n * \t\tpositions.northArrowSouth,\n * \t\tpositions.southArrowNorth\n * \t]\n * } );\n * ```\n *\n * **Note**: Attaching the panel will also automatically {@link #show} it.\n *\n * **Note**: An attached panel will not follow its target when the window is scrolled or resized.\n * See the {@link #pin} method for a more permanent positioning strategy.\n *\n * @param options Positioning options compatible with {@link module:utils/dom/position~getOptimalPosition}.\n * Default `positions` array is {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.\n */\n attachTo(options) {\n this.show();\n const defaultPositions = BalloonPanelView.defaultPositions;\n const positionOptions = Object.assign({}, {\n element: this.element,\n positions: [\n defaultPositions.southArrowNorth,\n defaultPositions.southArrowNorthMiddleWest,\n defaultPositions.southArrowNorthMiddleEast,\n defaultPositions.southArrowNorthWest,\n defaultPositions.southArrowNorthEast,\n defaultPositions.northArrowSouth,\n defaultPositions.northArrowSouthMiddleWest,\n defaultPositions.northArrowSouthMiddleEast,\n defaultPositions.northArrowSouthWest,\n defaultPositions.northArrowSouthEast,\n defaultPositions.viewportStickyNorth\n ],\n limiter: defaultLimiterElement,\n fitInViewport: true\n }, options);\n const optimalPosition = BalloonPanelView._getOptimalPosition(positionOptions);\n // Usually browsers make some problems with super accurate values like 104.345px\n // so it is better to use int values.\n const left = parseInt(optimalPosition.left);\n const top = parseInt(optimalPosition.top);\n const position = optimalPosition.name;\n const config = optimalPosition.config || {};\n const { withArrow = true } = config;\n this.top = top;\n this.left = left;\n this.position = position;\n this.withArrow = withArrow;\n }\n /**\n * Works the same way as the {@link #attachTo} method except that the position of the panel is\n * continuously updated when:\n *\n * * any ancestor of the {@link module:utils/dom/position~Options#target}\n * or {@link module:utils/dom/position~Options#limiter} is scrolled,\n * * the browser window gets resized or scrolled.\n *\n * Thanks to that, the panel always sticks to the {@link module:utils/dom/position~Options#target}\n * and is immune to the changing environment.\n *\n * ```ts\n * const panel = new BalloonPanelView( locale );\n * const positions = BalloonPanelView.defaultPositions;\n *\n * panel.render();\n *\n * // Pin the panel to an element with the \"target\" id DOM.\n * panel.pin( {\n * \ttarget: document.querySelector( '#target' ),\n * \tpositions: [\n * \t\tpositions.northArrowSouth,\n * \t\tpositions.southArrowNorth\n * \t]\n * } );\n * ```\n *\n * To leave the pinned state, use the {@link #unpin} method.\n *\n * **Note**: Pinning the panel will also automatically {@link #show} it.\n *\n * @param options Positioning options compatible with {@link module:utils/dom/position~getOptimalPosition}.\n * Default `positions` array is {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.\n */\n pin(options) {\n this.unpin();\n this._pinWhenIsVisibleCallback = () => {\n if (this.isVisible) {\n this._startPinning(options);\n }\n else {\n this._stopPinning();\n }\n };\n this._startPinning(options);\n // Control the state of the listeners depending on whether the panel is visible\n // or not.\n // TODO: Use on() (https://github.com/ckeditor/ckeditor5-utils/issues/144).\n this.listenTo(this, 'change:isVisible', this._pinWhenIsVisibleCallback);\n }\n /**\n * Stops pinning the panel, as set up by {@link #pin}.\n */\n unpin() {\n if (this._pinWhenIsVisibleCallback) {\n // Deactivate listeners attached by pin().\n this._stopPinning();\n // Deactivate the panel pin() control logic.\n // TODO: Use off() (https://github.com/ckeditor/ckeditor5-utils/issues/144).\n this.stopListening(this, 'change:isVisible', this._pinWhenIsVisibleCallback);\n this._pinWhenIsVisibleCallback = null;\n this.hide();\n }\n }\n /**\n * Starts managing the pinned state of the panel. See {@link #pin}.\n *\n * @param options Positioning options compatible with {@link module:utils/dom/position~getOptimalPosition}.\n */\n _startPinning(options) {\n this.attachTo(options);\n const targetElement = getDomElement(options.target);\n const limiterElement = options.limiter ? getDomElement(options.limiter) : defaultLimiterElement;\n // Then we need to listen on scroll event of eny element in the document.\n this.listenTo(global.document, 'scroll', (evt, domEvt) => {\n const scrollTarget = domEvt.target;\n // The position needs to be updated if the positioning target is within the scrolled element.\n const isWithinScrollTarget = targetElement && scrollTarget.contains(targetElement);\n // The position needs to be updated if the positioning limiter is within the scrolled element.\n const isLimiterWithinScrollTarget = limiterElement && scrollTarget.contains(limiterElement);\n // The positioning target and/or limiter can be a Rect, object etc..\n // There's no way to optimize the listener then.\n if (isWithinScrollTarget || isLimiterWithinScrollTarget || !targetElement || !limiterElement) {\n this.attachTo(options);\n }\n }, { useCapture: true });\n // We need to listen on window resize event and update position.\n this.listenTo(global.window, 'resize', () => {\n this.attachTo(options);\n });\n }\n /**\n * Stops managing the pinned state of the panel. See {@link #pin}.\n */\n _stopPinning() {\n this.stopListening(global.document, 'scroll');\n this.stopListening(global.window, 'resize');\n }\n}\n/**\n * A side offset of the arrow tip from the edge of the balloon. Controlled by CSS.\n *\n * ```\n *\t\t ┌───────────────────────┐\n *\t\t │ │\n *\t\t │ Balloon │\n *\t\t │ Content │\n *\t\t │ │\n *\t\t └──+ +───────────────┘\n *\t\t | \\ /\n *\t\t | \\/\n *\t\t>┼─────┼< ─────────────────────── side offset\n *\n * ```\n *\n * @default 25\n */\nBalloonPanelView.arrowSideOffset = 25;\n/**\n * A height offset of the arrow from the edge of the balloon. Controlled by CSS.\n *\n * ```\n *\t\t ┌───────────────────────┐\n *\t\t │ │\n *\t\t │ Balloon │\n *\t\t │ Content │ ╱-- arrow height offset\n *\t\t │ │ V\n *\t\t └──+ +───────────────┘ --- ─┼───────\n *\t\t \\ / │\n *\t\t \\/ │\n *\t\t────────────────────────────────┼───────\n *\t\t ^\n *\n *\n *\t\t>┼────┼< arrow height offset\n *\t\t │ │\n *\t\t │ ┌────────────────────────┐\n *\t\t │ │ │\n *\t\t │ ╱ │\n *\t\t │ ╱ Balloon │\n *\t\t │ ╲ Content │\n *\t\t │ ╲ │\n *\t\t │ │ │\n *\t\t │ └────────────────────────┘\n * ```\n *\n * @default 10\n*/\nBalloonPanelView.arrowHeightOffset = 10;\n/**\n * A vertical offset of the balloon panel from the edge of the viewport if sticky.\n * It helps in accessing toolbar buttons underneath the balloon panel.\n *\n * ```\n *\t\t ┌───────────────────────────────────────────────────┐\n *\t\t │ Target │\n *\t\t │ │\n *\t\t │ /── vertical offset │\n *\t\t┌─────────────────────────────V─────────────────────────┐\n *\t\t│ Toolbar ┌─────────────┐ │\n *\t\t├────────────────────│ Balloon │────────────────────┤\n *\t\t│ │ └─────────────┘ │ │\n *\t\t│ │ │ │\n *\t\t│ │ │ │\n *\t\t│ │ │ │\n *\t\t│ └───────────────────────────────────────────────────┘ │\n *\t\t│ Viewport │\n *\t\t└───────────────────────────────────────────────────────┘\n * ```\n *\n * @default 20\n */\nBalloonPanelView.stickyVerticalOffset = 20;\n/**\n * Function used to calculate the optimal position for the balloon.\n */\nBalloonPanelView._getOptimalPosition = getOptimalPosition;\n/**\n * A default set of positioning functions used by the balloon panel view\n * when attaching using the {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#attachTo} method.\n *\n * The available positioning functions are as follows:\n *\n * **North west**\n *\n * * `northWestArrowSouthWest`\n *\n * ```\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n *\t\t V\n *\t\t [ Target ]\n * ```\n *\n * * `northWestArrowSouthMiddleWest`\n *\n * ```\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n *\t\t V\n *\t\t [ Target ]\n * ```\n *\n * * `northWestArrowSouth`\n *\n * ```\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n *\t\t V\n *\t\t [ Target ]\n * ```\n *\n * * `northWestArrowSouthMiddleEast`\n *\n * ```\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n *\t\t V\n *\t\t [ Target ]\n * ```\n *\n * * `northWestArrowSouthEast`\n *\n * ```\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n *\t\t V\n *\t\t [ Target ]\n * ```\n *\n * **North**\n *\n * * `northArrowSouthWest`\n *\n * ```\n *\t\t +-----------------+\n *\t\t | Balloon |\n *\t\t +-----------------+\n *\t\t V\n *\t\t[ Target ]\n * ```\n *\n * * `northArrowSouthMiddleWest`\n *\n * ```\n *\t\t +-----------------+\n *\t\t | Balloon |\n *\t\t +-----------------+\n *\t\t V\n *\t\t[ Target ]\n * ```\n * * `northArrowSouth`\n *\n * ```\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n *\t\t V\n *\t\t [ Target ]\n * ```\n *\n * * `northArrowSouthMiddleEast`\n *\n * ```\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n *\t\t V\n *\t\t [ Target ]\n * ```\n *\n * * `northArrowSouthEast`\n *\n * ```\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n *\t\t V\n *\t\t [ Target ]\n * ```\n *\n * **North east**\n *\n * * `northEastArrowSouthWest`\n *\n * ```\n *\t\t +-----------------+\n *\t\t | Balloon |\n *\t\t +-----------------+\n *\t\t V\n *\t\t[ Target ]\n * ```\n *\n * * `northEastArrowSouthMiddleWest`\n *\n * ```\n *\t\t +-----------------+\n *\t\t | Balloon |\n *\t\t +-----------------+\n *\t\t V\n *\t\t[ Target ]\n * ```\n *\n * * `northEastArrowSouth`\n *\n * ```\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n *\t\t V\n *\t\t[ Target ]\n * ```\n *\n * * `northEastArrowSouthMiddleEast`\n *\n * ```\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n *\t\t V\n *\t\t [ Target ]\n * ```\n *\n * * `northEastArrowSouthEast`\n *\n * ```\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n *\t\t V\n *\t\t [ Target ]\n * ```\n *\n * **South**\n *\n * * `southArrowNorthWest`\n *\n * ```\n *\t\t[ Target ]\n *\t\t ^\n *\t\t +-----------------+\n *\t\t | Balloon |\n *\t\t +-----------------+\n * ```\n *\n * * `southArrowNorthMiddleWest`\n *\n * ```\n *\t\t [ Target ]\n *\t\t ^\n *\t\t +-----------------+\n *\t\t | Balloon |\n *\t\t +-----------------+\n * ```\n *\n * * `southArrowNorth`\n *\n * ```\n *\t\t [ Target ]\n *\t\t ^\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n * ```\n *\n * * `southArrowNorthMiddleEast`\n *\n * ```\n *\t\t [ Target ]\n *\t\t ^\n *\t\t +-----------------+\n *\t\t | Balloon |\n *\t\t +-----------------+\n * ```\n *\n * * `southArrowNorthEast`\n *\n * ```\n *\t\t [ Target ]\n *\t\t ^\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n * ```\n *\n * **South west**\n *\n * * `southWestArrowNorthWest`\n *\n *\n * ```\n *\t\t [ Target ]\n *\t\t ^\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n * ```\n *\n * * `southWestArrowNorthMiddleWest`\n *\n * ```\n *\t\t [ Target ]\n *\t\t ^\n *\t\t +-----------------+\n *\t\t | Balloon |\n *\t\t +-----------------+\n * ```\n *\n * * `southWestArrowNorth`\n *\n * ```\n *\t\t [ Target ]\n *\t\t ^\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n * ```\n *\n * * `southWestArrowNorthMiddleEast`\n *\n * ```\n *\t\t [ Target ]\n *\t\t ^\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n * ```\n *\n * * `southWestArrowNorthEast`\n *\n * ```\n *\t\t [ Target ]\n *\t\t ^\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n * ```\n *\n * **South east**\n *\n * * `southEastArrowNorthWest`\n *\n * ```\n *\t\t[ Target ]\n *\t\t ^\n *\t\t +-----------------+\n *\t\t | Balloon |\n *\t\t +-----------------+\n * ```\n *\n * * `southEastArrowNorthMiddleWest`\n *\n * ```\n *\t\t [ Target ]\n *\t\t ^\n *\t\t +-----------------+\n *\t\t | Balloon |\n *\t\t +-----------------+\n * ```\n *\n * * `southEastArrowNorth`\n *\n * ```\n *\t\t[ Target ]\n *\t\t ^\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n * ```\n *\n * * `southEastArrowNorthMiddleEast`\n *\n * ```\n *\t\t [ Target ]\n *\t\t ^\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n * ```\n *\n * * `southEastArrowNorthEast`\n *\n * ```\n *\t\t [ Target ]\n *\t\t ^\n *\t\t+-----------------+\n *\t\t| Balloon |\n *\t\t+-----------------+\n * ```\n *\n * **West**\n *\n * * `westArrowEast`\n *\n * ```\n *\t\t+-----------------+\n *\t\t| Balloon |>[ Target ]\n *\t\t+-----------------+\n * ```\n *\n * **East**\n *\n * * `eastArrowWest`\n *\n * ```\n *\t\t +-----------------+\n *\t\t[ Target ]<| Balloon |\n *\t\t +-----------------+\n * ```\n *\n * **Sticky**\n *\n * * `viewportStickyNorth`\n *\n * ```\n *\t\t +---------------------------+\n *\t\t | [ Target ] |\n *\t\t | |\n *\t\t+-----------------------------------+\n *\t\t| | +-----------------+ | |\n *\t\t| | | Balloon | | |\n *\t\t| | +-----------------+ | |\n *\t\t| | | |\n *\t\t| | | |\n *\t\t| | | |\n *\t\t| | | |\n *\t\t| +---------------------------+ |\n *\t\t| Viewport |\n *\t\t+-----------------------------------+\n * ```\n *\n * See {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#attachTo}.\n *\n * Positioning functions must be compatible with {@link module:utils/dom/position~Position}.\n *\n * Default positioning functions with customized offsets can be generated using\n * {@link module:ui/panel/balloon/balloonpanelview~generatePositions}.\n *\n * The name that the position function returns will be reflected in the balloon panel's class that\n * controls the placement of the \"arrow\". See {@link #position} to learn more.\n */\nBalloonPanelView.defaultPositions = generatePositions();\n/**\n * Returns the DOM element for given object or null, if there is none,\n * e.g. when the passed object is a Rect instance or so.\n */\nfunction getDomElement(object) {\n if (isElement(object)) {\n return object;\n }\n if (isRange(object)) {\n return object.commonAncestorContainer;\n }\n if (typeof object == 'function') {\n return getDomElement(object());\n }\n return null;\n}\n/**\n * Returns available {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView}\n * {@link module:utils/dom/position~PositioningFunction positioning functions} adjusted by the specific offsets.\n *\n * @internal\n * @param options Options to generate positions. If not specified, this helper will simply return\n * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.\n * @param options.sideOffset A custom side offset (in pixels) of each position. If\n * not specified, {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.arrowSideOffset the default value}\n * will be used.\n * @param options.heightOffset A custom height offset (in pixels) of each position. If\n * not specified, {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.arrowHeightOffset the default value}\n * will be used.\n * @param options.stickyVerticalOffset A custom offset (in pixels) of the `viewportStickyNorth` positioning function.\n * If not specified, {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.stickyVerticalOffset the default value}\n * will be used.\n * @param options.config Additional configuration of the balloon balloon panel view.\n * Currently only {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#withArrow} is supported. Learn more\n * about {@link module:utils/dom/position~PositioningFunction positioning functions}.\n */\nexport function generatePositions(options = {}) {\n const { sideOffset = BalloonPanelView.arrowSideOffset, heightOffset = BalloonPanelView.arrowHeightOffset, stickyVerticalOffset = BalloonPanelView.stickyVerticalOffset, config } = options;\n return {\n // ------- North west\n northWestArrowSouthWest: (targetRect, balloonRect) => ({\n top: getNorthTop(targetRect, balloonRect),\n left: targetRect.left - sideOffset,\n name: 'arrow_sw',\n ...(config && { config })\n }),\n northWestArrowSouthMiddleWest: (targetRect, balloonRect) => ({\n top: getNorthTop(targetRect, balloonRect),\n left: targetRect.left - (balloonRect.width * .25) - sideOffset,\n name: 'arrow_smw',\n ...(config && { config })\n }),\n northWestArrowSouth: (targetRect, balloonRect) => ({\n top: getNorthTop(targetRect, balloonRect),\n left: targetRect.left - balloonRect.width / 2,\n name: 'arrow_s',\n ...(config && { config })\n }),\n northWestArrowSouthMiddleEast: (targetRect, balloonRect) => ({\n top: getNorthTop(targetRect, balloonRect),\n left: targetRect.left - (balloonRect.width * .75) + sideOffset,\n name: 'arrow_sme',\n ...(config && { config })\n }),\n northWestArrowSouthEast: (targetRect, balloonRect) => ({\n top: getNorthTop(targetRect, balloonRect),\n left: targetRect.left - balloonRect.width + sideOffset,\n name: 'arrow_se',\n ...(config && { config })\n }),\n // ------- North\n northArrowSouthWest: (targetRect, balloonRect) => ({\n top: getNorthTop(targetRect, balloonRect),\n left: targetRect.left + targetRect.width / 2 - sideOffset,\n name: 'arrow_sw',\n ...(config && { config })\n }),\n northArrowSouthMiddleWest: (targetRect, balloonRect) => ({\n top: getNorthTop(targetRect, balloonRect),\n left: targetRect.left + targetRect.width / 2 - (balloonRect.width * .25) - sideOffset,\n name: 'arrow_smw',\n ...(config && { config })\n }),\n northArrowSouth: (targetRect, balloonRect) => ({\n top: getNorthTop(targetRect, balloonRect),\n left: targetRect.left + targetRect.width / 2 - balloonRect.width / 2,\n name: 'arrow_s',\n ...(config && { config })\n }),\n northArrowSouthMiddleEast: (targetRect, balloonRect) => ({\n top: getNorthTop(targetRect, balloonRect),\n left: targetRect.left + targetRect.width / 2 - (balloonRect.width * .75) + sideOffset,\n name: 'arrow_sme',\n ...(config && { config })\n }),\n northArrowSouthEast: (targetRect, balloonRect) => ({\n top: getNorthTop(targetRect, balloonRect),\n left: targetRect.left + targetRect.width / 2 - balloonRect.width + sideOffset,\n name: 'arrow_se',\n ...(config && { config })\n }),\n // ------- North east\n northEastArrowSouthWest: (targetRect, balloonRect) => ({\n top: getNorthTop(targetRect, balloonRect),\n left: targetRect.right - sideOffset,\n name: 'arrow_sw',\n ...(config && { config })\n }),\n northEastArrowSouthMiddleWest: (targetRect, balloonRect) => ({\n top: getNorthTop(targetRect, balloonRect),\n left: targetRect.right - (balloonRect.width * .25) - sideOffset,\n name: 'arrow_smw',\n ...(config && { config })\n }),\n northEastArrowSouth: (targetRect, balloonRect) => ({\n top: getNorthTop(targetRect, balloonRect),\n left: targetRect.right - balloonRect.width / 2,\n name: 'arrow_s',\n ...(config && { config })\n }),\n northEastArrowSouthMiddleEast: (targetRect, balloonRect) => ({\n top: getNorthTop(targetRect, balloonRect),\n left: targetRect.right - (balloonRect.width * .75) + sideOffset,\n name: 'arrow_sme',\n ...(config && { config })\n }),\n northEastArrowSouthEast: (targetRect, balloonRect) => ({\n top: getNorthTop(targetRect, balloonRect),\n left: targetRect.right - balloonRect.width + sideOffset,\n name: 'arrow_se',\n ...(config && { config })\n }),\n // ------- South west\n southWestArrowNorthWest: targetRect => ({\n top: getSouthTop(targetRect),\n left: targetRect.left - sideOffset,\n name: 'arrow_nw',\n ...(config && { config })\n }),\n southWestArrowNorthMiddleWest: (targetRect, balloonRect) => ({\n top: getSouthTop(targetRect),\n left: targetRect.left - (balloonRect.width * .25) - sideOffset,\n name: 'arrow_nmw',\n ...(config && { config })\n }),\n southWestArrowNorth: (targetRect, balloonRect) => ({\n top: getSouthTop(targetRect),\n left: targetRect.left - balloonRect.width / 2,\n name: 'arrow_n',\n ...(config && { config })\n }),\n southWestArrowNorthMiddleEast: (targetRect, balloonRect) => ({\n top: getSouthTop(targetRect),\n left: targetRect.left - (balloonRect.width * .75) + sideOffset,\n name: 'arrow_nme',\n ...(config && { config })\n }),\n southWestArrowNorthEast: (targetRect, balloonRect) => ({\n top: getSouthTop(targetRect),\n left: targetRect.left - balloonRect.width + sideOffset,\n name: 'arrow_ne',\n ...(config && { config })\n }),\n // ------- South\n southArrowNorthWest: targetRect => ({\n top: getSouthTop(targetRect),\n left: targetRect.left + targetRect.width / 2 - sideOffset,\n name: 'arrow_nw',\n ...(config && { config })\n }),\n southArrowNorthMiddleWest: (targetRect, balloonRect) => ({\n top: getSouthTop(targetRect),\n left: targetRect.left + targetRect.width / 2 - (balloonRect.width * 0.25) - sideOffset,\n name: 'arrow_nmw',\n ...(config && { config })\n }),\n southArrowNorth: (targetRect, balloonRect) => ({\n top: getSouthTop(targetRect),\n left: targetRect.left + targetRect.width / 2 - balloonRect.width / 2,\n name: 'arrow_n',\n ...(config && { config })\n }),\n southArrowNorthMiddleEast: (targetRect, balloonRect) => ({\n top: getSouthTop(targetRect),\n left: targetRect.left + targetRect.width / 2 - (balloonRect.width * 0.75) + sideOffset,\n name: 'arrow_nme',\n ...(config && { config })\n }),\n southArrowNorthEast: (targetRect, balloonRect) => ({\n top: getSouthTop(targetRect),\n left: targetRect.left + targetRect.width / 2 - balloonRect.width + sideOffset,\n name: 'arrow_ne',\n ...(config && { config })\n }),\n // ------- South east\n southEastArrowNorthWest: targetRect => ({\n top: getSouthTop(targetRect),\n left: targetRect.right - sideOffset,\n name: 'arrow_nw',\n ...(config && { config })\n }),\n southEastArrowNorthMiddleWest: (targetRect, balloonRect) => ({\n top: getSouthTop(targetRect),\n left: targetRect.right - (balloonRect.width * .25) - sideOffset,\n name: 'arrow_nmw',\n ...(config && { config })\n }),\n southEastArrowNorth: (targetRect, balloonRect) => ({\n top: getSouthTop(targetRect),\n left: targetRect.right - balloonRect.width / 2,\n name: 'arrow_n',\n ...(config && { config })\n }),\n southEastArrowNorthMiddleEast: (targetRect, balloonRect) => ({\n top: getSouthTop(targetRect),\n left: targetRect.right - (balloonRect.width * .75) + sideOffset,\n name: 'arrow_nme',\n ...(config && { config })\n }),\n southEastArrowNorthEast: (targetRect, balloonRect) => ({\n top: getSouthTop(targetRect),\n left: targetRect.right - balloonRect.width + sideOffset,\n name: 'arrow_ne',\n ...(config && { config })\n }),\n // ------- West\n westArrowEast: (targetRect, balloonRect) => ({\n top: targetRect.top + targetRect.height / 2 - balloonRect.height / 2,\n left: targetRect.left - balloonRect.width - heightOffset,\n name: 'arrow_e',\n ...(config && { config })\n }),\n // ------- East\n eastArrowWest: (targetRect, balloonRect) => ({\n top: targetRect.top + targetRect.height / 2 - balloonRect.height / 2,\n left: targetRect.right + heightOffset,\n name: 'arrow_w',\n ...(config && { config })\n }),\n // ------- Sticky\n viewportStickyNorth: (targetRect, balloonRect, viewportRect) => {\n if (!targetRect.getIntersection(viewportRect)) {\n return null;\n }\n return {\n top: viewportRect.top + stickyVerticalOffset,\n left: targetRect.left + targetRect.width / 2 - balloonRect.width / 2,\n name: 'arrowless',\n config: {\n withArrow: false,\n ...config\n }\n };\n }\n };\n /**\n * Returns the top coordinate for positions starting with `north*`.\n *\n * @param targetRect A rect of the target.\n * @param balloonRect A rect of the balloon.\n */\n function getNorthTop(targetRect, balloonRect) {\n return targetRect.top - balloonRect.height - heightOffset;\n }\n /**\n * Returns the top coordinate for positions starting with `south*`.\n *\n * @param targetRect A rect of the target.\n */\n function getSouthTop(targetRect) {\n return targetRect.bottom + heightOffset;\n }\n}\n","import api from \"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../css-loader/dist/cjs.js!../../../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./tooltip.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/tooltipmanager\n */\nimport View from './view';\nimport BalloonPanelView, { generatePositions } from './panel/balloon/balloonpanelview';\nimport { DomEmitterMixin, ResizeObserver, first, global, isVisible } from '@ckeditor/ckeditor5-utils';\nimport { isElement, debounce } from 'lodash-es';\nimport '../theme/components/tooltip/tooltip.css';\nconst BALLOON_CLASS = 'ck-tooltip';\n/**\n * A tooltip manager class for the UI of the editor.\n *\n * **Note**: Most likely you do not have to use the `TooltipManager` API listed below in order to display tooltips. Popular\n * {@glink framework/architecture/ui-library UI components} support tooltips out-of-the-box via observable properties\n * (see {@link module:ui/button/buttonview~ButtonView#tooltip} and {@link module:ui/button/buttonview~ButtonView#tooltipPosition}).\n *\n * # Displaying tooltips\n *\n * To display a tooltip, set `data-cke-tooltip-text` attribute on any DOM element:\n *\n * ```ts\n * domElement.dataset.ckeTooltipText = 'My tooltip';\n * ```\n *\n * The tooltip will show up whenever the user moves the mouse over the element or the element gets focus in DOM.\n *\n * # Positioning tooltips\n *\n * To change the position of the tooltip, use the `data-cke-tooltip-position` attribute (`s`, `se`, `sw`, `n`, `e`, or `w`):\n *\n * ```ts\n * domElement.dataset.ckeTooltipText = 'Tooltip to the north';\n * domElement.dataset.ckeTooltipPosition = 'n';\n * ```\n *\n * # Disabling tooltips\n *\n * In order to disable the tooltip temporarily, use the `data-cke-tooltip-disabled` attribute:\n *\n * ```ts\n * domElement.dataset.ckeTooltipText = 'Disabled. For now.';\n * domElement.dataset.ckeTooltipDisabled = 'true';\n * ```\n *\n * # Styling tooltips\n *\n * By default, the tooltip has `.ck-tooltip` class and its text inner `.ck-tooltip__text`.\n *\n * If your tooltip requires custom styling, using `data-cke-tooltip-class` attribute will add additional class to the balloon\n * displaying the tooltip:\n *\n * ```ts\n * domElement.dataset.ckeTooltipText = 'Tooltip with a red text';\n * domElement.dataset.ckeTooltipClass = 'my-class';\n * ```\n *\n * ```css\n * .ck.ck-tooltip.my-class { color: red }\n * ```\n *\n * **Note**: This class is a singleton. All editor instances re-use the same instance loaded by\n * {@link module:ui/editorui/editorui~EditorUI} of the first editor.\n */\nexport default class TooltipManager extends DomEmitterMixin() {\n /**\n * Creates an instance of the tooltip manager.\n */\n constructor(editor) {\n super();\n /**\n * Stores the reference to the DOM element the tooltip is attached to. `null` when there's no tooltip\n * in the UI.\n */\n this._currentElementWithTooltip = null;\n /**\n * Stores the current tooltip position. `null` when there's no tooltip in the UI.\n */\n this._currentTooltipPosition = null;\n /**\n * An instance of the resize observer that keeps track on target element visibility,\n * when it hides the tooltip should also disappear.\n *\n * {@link module:core/editor/editorconfig~EditorConfig#balloonToolbar configuration}.\n */\n this._resizeObserver = null;\n TooltipManager._editors.add(editor);\n // TooltipManager must be a singleton. Multiple instances would mean multiple tooltips attached\n // to the same DOM element with data-cke-tooltip-* attributes.\n if (TooltipManager._instance) {\n return TooltipManager._instance;\n }\n TooltipManager._instance = this;\n this.tooltipTextView = new View(editor.locale);\n this.tooltipTextView.set('text', '');\n this.tooltipTextView.setTemplate({\n tag: 'span',\n attributes: {\n class: [\n 'ck',\n 'ck-tooltip__text'\n ]\n },\n children: [\n {\n text: this.tooltipTextView.bindTemplate.to('text')\n }\n ]\n });\n this.balloonPanelView = new BalloonPanelView(editor.locale);\n this.balloonPanelView.class = BALLOON_CLASS;\n this.balloonPanelView.content.add(this.tooltipTextView);\n this._pinTooltipDebounced = debounce(this._pinTooltip, 600);\n this.listenTo(global.document, 'mouseenter', this._onEnterOrFocus.bind(this), { useCapture: true });\n this.listenTo(global.document, 'mouseleave', this._onLeaveOrBlur.bind(this), { useCapture: true });\n this.listenTo(global.document, 'focus', this._onEnterOrFocus.bind(this), { useCapture: true });\n this.listenTo(global.document, 'blur', this._onLeaveOrBlur.bind(this), { useCapture: true });\n this.listenTo(global.document, 'scroll', this._onScroll.bind(this), { useCapture: true });\n // Because this class is a singleton, its only instance is shared across all editors and connects them through the reference.\n // This causes issues with the ContextWatchdog. When an error is thrown in one editor, the watchdog traverses the references\n // and (because of shared tooltip manager) figures that the error affects all editors and restarts them all.\n // This flag, excludes tooltip manager instance from the traversal and brings ContextWatchdog back to normal.\n // More in https://github.com/ckeditor/ckeditor5/issues/12292.\n this._watchdogExcluded = true;\n }\n /**\n * Destroys the tooltip manager.\n *\n * **Note**: The manager singleton cannot be destroyed until all editors that use it are destroyed.\n *\n * @param editor The editor the manager was created for.\n */\n destroy(editor) {\n const editorBodyViewCollection = editor.ui.view && editor.ui.view.body;\n TooltipManager._editors.delete(editor);\n this.stopListening(editor.ui);\n // Prevent the balloon panel from being destroyed in the EditorUI#destroy() cascade. It should be destroyed along\n // with the last editor only (https://github.com/ckeditor/ckeditor5/issues/12602).\n if (editorBodyViewCollection && editorBodyViewCollection.has(this.balloonPanelView)) {\n editorBodyViewCollection.remove(this.balloonPanelView);\n }\n if (!TooltipManager._editors.size) {\n this._unpinTooltip();\n this.balloonPanelView.destroy();\n this.stopListening();\n TooltipManager._instance = null;\n }\n }\n /**\n * Returns {@link #balloonPanelView} {@link module:utils/dom/position~PositioningFunction positioning functions} for a given position\n * name.\n *\n * @param position Name of the position (`s`, `se`, `sw`, `n`, `e`, or `w`).\n * @returns Positioning functions to be used by the {@link #balloonPanelView}.\n */\n static getPositioningFunctions(position) {\n const defaultPositions = TooltipManager.defaultBalloonPositions;\n return {\n // South is most popular. We can use positioning heuristics to avoid clipping by the viewport with the sane fallback.\n s: [\n defaultPositions.southArrowNorth,\n defaultPositions.southArrowNorthEast,\n defaultPositions.southArrowNorthWest\n ],\n n: [defaultPositions.northArrowSouth],\n e: [defaultPositions.eastArrowWest],\n w: [defaultPositions.westArrowEast],\n sw: [defaultPositions.southArrowNorthEast],\n se: [defaultPositions.southArrowNorthWest]\n }[position];\n }\n /**\n * Handles displaying tooltips on `mouseenter` and `focus` in DOM.\n *\n * @param evt An object containing information about the fired event.\n * @param domEvent The DOM event.\n */\n _onEnterOrFocus(evt, { target }) {\n const elementWithTooltipAttribute = getDescendantWithTooltip(target);\n // Abort when there's no descendant needing tooltip.\n if (!elementWithTooltipAttribute) {\n return;\n }\n // Abort to avoid flashing when, for instance:\n // * a tooltip is displayed for a focused element, then the same element gets mouseentered,\n // * a tooltip is displayed for an element via mouseenter, then the focus moves to the same element.\n if (elementWithTooltipAttribute === this._currentElementWithTooltip) {\n return;\n }\n this._unpinTooltip();\n this._pinTooltipDebounced(elementWithTooltipAttribute, getTooltipData(elementWithTooltipAttribute));\n }\n /**\n * Handles hiding tooltips on `mouseleave` and `blur` in DOM.\n *\n * @param evt An object containing information about the fired event.\n * @param domEvent The DOM event.\n */\n _onLeaveOrBlur(evt, { target, relatedTarget }) {\n if (evt.name === 'mouseleave') {\n // Don't act when the event does not concern a DOM element (e.g. a mouseleave out of an entire document),\n if (!isElement(target)) {\n return;\n }\n // If a tooltip is currently visible, don't act for a targets other than the one it is attached to.\n // For instance, a random mouseleave far away in the page should not unpin the tooltip that was pinned because\n // of a previous focus. Only leaving the same element should hide the tooltip.\n if (this._currentElementWithTooltip && target !== this._currentElementWithTooltip) {\n return;\n }\n const descendantWithTooltip = getDescendantWithTooltip(target);\n const relatedDescendantWithTooltip = getDescendantWithTooltip(relatedTarget);\n // Unpin when the mouse was leaving element with a tooltip to a place which does not have or has a different tooltip.\n // Note that this should happen whether the tooltip is already visible or not, for instance, it could be invisible but queued\n // (debounced): it should get canceled.\n if (descendantWithTooltip && descendantWithTooltip !== relatedDescendantWithTooltip) {\n this._unpinTooltip();\n }\n }\n else {\n // If a tooltip is currently visible, don't act for a targets other than the one it is attached to.\n // For instance, a random blur in the web page should not unpin the tooltip that was pinned because of a previous mouseenter.\n if (this._currentElementWithTooltip && target !== this._currentElementWithTooltip) {\n return;\n }\n // Note that unpinning should happen whether the tooltip is already visible or not, for instance, it could be invisible but\n // queued (debounced): it should get canceled (e.g. quick focus then quick blur using the keyboard).\n this._unpinTooltip();\n }\n }\n /**\n * Handles hiding tooltips on `scroll` in DOM.\n *\n * @param evt An object containing information about the fired event.\n * @param domEvent The DOM event.\n */\n _onScroll(evt, { target }) {\n // No tooltip, no reason to react on scroll.\n if (!this._currentElementWithTooltip) {\n return;\n }\n // When scrolling a container that has both the balloon and the current element (common ancestor), the balloon can remain\n // visible (e.g. scrolling ≤body>). Otherwise, to avoid glitches (clipping, lagging) better just hide the tooltip.\n // Also, don't do anything when scrolling an unrelated DOM element that has nothing to do with the current element and the balloon.\n if (target.contains(this.balloonPanelView.element) && target.contains(this._currentElementWithTooltip)) {\n return;\n }\n this._unpinTooltip();\n }\n /**\n * Pins the tooltip to a specific DOM element.\n *\n * @param options.text Text of the tooltip to display.\n * @param options.position The position of the tooltip.\n * @param options.cssClass Additional CSS class of the balloon with the tooltip.\n */\n _pinTooltip(targetDomElement, { text, position, cssClass }) {\n // Use the body collection of the first editor.\n const bodyViewCollection = first(TooltipManager._editors.values()).ui.view.body;\n if (!bodyViewCollection.has(this.balloonPanelView)) {\n bodyViewCollection.add(this.balloonPanelView);\n }\n this.tooltipTextView.text = text;\n this.balloonPanelView.pin({\n target: targetDomElement,\n positions: TooltipManager.getPositioningFunctions(position)\n });\n this._resizeObserver = new ResizeObserver(targetDomElement, () => {\n // The ResizeObserver will call its callback when the target element hides and the tooltip\n // should also disappear (https://github.com/ckeditor/ckeditor5/issues/12492).\n if (!isVisible(targetDomElement)) {\n this._unpinTooltip();\n }\n });\n this.balloonPanelView.class = [BALLOON_CLASS, cssClass]\n .filter(className => className)\n .join(' ');\n // Start responding to changes in editor UI or content layout. For instance, when collaborators change content\n // and a contextual toolbar attached to a content starts to move (and so should move the tooltip).\n // Note: Using low priority to let other listeners that position contextual toolbars etc. to react first.\n for (const editor of TooltipManager._editors) {\n this.listenTo(editor.ui, 'update', this._updateTooltipPosition.bind(this), { priority: 'low' });\n }\n this._currentElementWithTooltip = targetDomElement;\n this._currentTooltipPosition = position;\n }\n /**\n * Unpins the tooltip and cancels all queued pinning.\n */\n _unpinTooltip() {\n this._pinTooltipDebounced.cancel();\n this.balloonPanelView.unpin();\n for (const editor of TooltipManager._editors) {\n this.stopListening(editor.ui, 'update');\n }\n this._currentElementWithTooltip = null;\n this._currentTooltipPosition = null;\n if (this._resizeObserver) {\n this._resizeObserver.destroy();\n }\n }\n /**\n * Updates the position of the tooltip so it stays in sync with the element it is pinned to.\n *\n * Hides the tooltip when the element is no longer visible in DOM.\n */\n _updateTooltipPosition() {\n // This could happen if the tooltip was attached somewhere in a contextual content toolbar and the toolbar\n // disappeared (e.g. removed an image).\n if (!isVisible(this._currentElementWithTooltip)) {\n this._unpinTooltip();\n return;\n }\n this.balloonPanelView.pin({\n target: this._currentElementWithTooltip,\n positions: TooltipManager.getPositioningFunctions(this._currentTooltipPosition)\n });\n }\n}\n/**\n * A set of default {@link module:utils/dom/position~PositioningFunction positioning functions} used by the `TooltipManager`\n * to pin tooltips in different positions.\n */\nTooltipManager.defaultBalloonPositions = generatePositions({\n heightOffset: 5,\n sideOffset: 13\n});\n/**\n * A set of editors the single tooltip manager instance must listen to.\n * This is mostly to handle `EditorUI#update` listeners from individual editors.\n */\nTooltipManager._editors = new Set();\n/**\n * A reference to the `TooltipManager` instance. The class is a singleton and as such,\n * successive attempts at creating instances should return this instance.\n */\nTooltipManager._instance = null;\nfunction getDescendantWithTooltip(element) {\n if (!isElement(element)) {\n return null;\n }\n return element.closest('[data-cke-tooltip-text]:not([data-cke-tooltip-disabled])');\n}\nfunction getTooltipData(element) {\n return {\n text: element.dataset.ckeTooltipText,\n position: (element.dataset.ckeTooltipPosition || 's'),\n cssClass: element.dataset.ckeTooltipClass || ''\n };\n}\n","export default \"\\n\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Rect, DomEmitterMixin, findClosestScrollableAncestor, verifyLicense } from '@ckeditor/ckeditor5-utils';\nimport BalloonPanelView from '../panel/balloon/balloonpanelview';\nimport IconView from '../icon/iconview';\nimport View from '../view';\nimport { throttle } from 'lodash-es';\nimport poweredByIcon from '../../theme/icons/project-logo.svg';\nconst ICON_WIDTH = 53;\nconst ICON_HEIGHT = 10;\n// ⚠ Note, whenever changing the threshold, make sure to update the docs/support/managing-ckeditor-logo.md docs\n// as this information is also mentioned there ⚠.\nconst NARROW_ROOT_HEIGHT_THRESHOLD = 50;\nconst NARROW_ROOT_WIDTH_THRESHOLD = 350;\nconst DEFAULT_LABEL = 'Powered by';\nconst OFF_THE_SCREEN_POSITION = {\n top: -99999,\n left: -99999,\n name: 'invalid',\n config: {\n withArrow: false\n }\n};\n/**\n * A helper that enables the \"powered by\" feature in the editor and renders a link to the project's\n * webpage next to the bottom of the editable element (editor root, source editing area, etc.) when the editor is focused.\n *\n * @private\n */\nexport default class PoweredBy extends DomEmitterMixin() {\n /**\n * Creates a \"powered by\" helper for a given editor. The feature is initialized on Editor#ready\n * event.\n *\n * @param editor\n */\n constructor(editor) {\n super();\n this.editor = editor;\n this._balloonView = null;\n this._lastFocusedEditableElement = null;\n this._showBalloonThrottled = throttle(this._showBalloon.bind(this), 50, { leading: true });\n editor.on('ready', this._handleEditorReady.bind(this));\n }\n /**\n * Destroys the \"powered by\" helper along with its view.\n */\n destroy() {\n const balloon = this._balloonView;\n if (balloon) {\n // Balloon gets destroyed by the body collection.\n // The powered by view gets destroyed by the balloon.\n balloon.unpin();\n this._balloonView = null;\n }\n this._showBalloonThrottled.cancel();\n this.stopListening();\n }\n /**\n * Enables \"powered by\" label once the editor (ui) is ready.\n */\n _handleEditorReady() {\n const editor = this.editor;\n const forceVisible = !!editor.config.get('ui.poweredBy.forceVisible');\n /* istanbul ignore next -- @preserve */\n if (!forceVisible && verifyLicense(editor.config.get('licenseKey')) === 'VALID') {\n return;\n }\n // No view means no body collection to append the powered by balloon to.\n if (!editor.ui.view) {\n return;\n }\n editor.ui.focusTracker.on('change:isFocused', (evt, data, isFocused) => {\n this._updateLastFocusedEditableElement();\n if (isFocused) {\n this._showBalloon();\n }\n else {\n this._hideBalloon();\n }\n });\n editor.ui.focusTracker.on('change:focusedElement', (evt, data, focusedElement) => {\n this._updateLastFocusedEditableElement();\n if (focusedElement) {\n this._showBalloon();\n }\n });\n editor.ui.on('update', () => {\n this._showBalloonThrottled();\n });\n }\n /**\n * Creates an instance of the {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView balloon panel}\n * with the \"powered by\" view inside ready for positioning.\n */\n _createBalloonView() {\n const editor = this.editor;\n const balloon = this._balloonView = new BalloonPanelView();\n const poweredByConfig = getNormalizedConfig(editor);\n const view = new PoweredByView(editor.locale, poweredByConfig.label);\n balloon.content.add(view);\n balloon.set({\n class: 'ck-powered-by-balloon'\n });\n editor.ui.view.body.add(balloon);\n editor.ui.focusTracker.add(balloon.element);\n this._balloonView = balloon;\n }\n /**\n * Attempts to display the balloon with the \"powered by\" view.\n */\n _showBalloon() {\n if (!this._lastFocusedEditableElement) {\n return;\n }\n const attachOptions = getBalloonAttachOptions(this.editor, this._lastFocusedEditableElement);\n if (attachOptions) {\n if (!this._balloonView) {\n this._createBalloonView();\n }\n this._balloonView.pin(attachOptions);\n }\n }\n /**\n * Hides the \"powered by\" balloon if already visible.\n */\n _hideBalloon() {\n if (this._balloonView) {\n this._balloonView.unpin();\n }\n }\n /**\n * Updates the {@link #_lastFocusedEditableElement} based on the state of the global focus tracker.\n */\n _updateLastFocusedEditableElement() {\n const editor = this.editor;\n const isFocused = editor.ui.focusTracker.isFocused;\n const focusedElement = editor.ui.focusTracker.focusedElement;\n if (!isFocused || !focusedElement) {\n this._lastFocusedEditableElement = null;\n return;\n }\n const editableEditorElements = Array.from(editor.ui.getEditableElementsNames()).map(name => {\n return editor.ui.getEditableElement(name);\n });\n if (editableEditorElements.includes(focusedElement)) {\n this._lastFocusedEditableElement = focusedElement;\n }\n else {\n // If it's none of the editable element, then the focus is somewhere in the UI. Let's display powered by\n // over the first element then.\n this._lastFocusedEditableElement = editableEditorElements[0];\n }\n }\n}\n/**\n * A view displaying a \"powered by\" label and project logo wrapped in a link.\n */\nclass PoweredByView extends View {\n /**\n * Created an instance of the \"powered by\" view.\n *\n * @param locale The localization services instance.\n * @param label The label text.\n */\n constructor(locale, label) {\n super(locale);\n const iconView = new IconView();\n const bind = this.bindTemplate;\n iconView.set({\n content: poweredByIcon,\n isColorInherited: false\n });\n iconView.extendTemplate({\n attributes: {\n style: {\n width: ICON_WIDTH + 'px',\n height: ICON_HEIGHT + 'px'\n }\n }\n });\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: ['ck', 'ck-powered-by'],\n 'aria-hidden': true\n },\n children: [\n {\n tag: 'a',\n attributes: {\n href: 'https://ckeditor.com/?utm_source=ckeditor&' +\n 'utm_medium=referral&utm_campaign=701Dn000000hVgmIAE_powered_by_ckeditor_logo',\n target: '_blank',\n tabindex: '-1'\n },\n children: [\n ...label ? [\n {\n tag: 'span',\n attributes: {\n class: ['ck', 'ck-powered-by__label']\n },\n children: [label]\n }\n ] : [],\n iconView\n ],\n on: {\n dragstart: bind.to(evt => evt.preventDefault())\n }\n }\n ]\n });\n }\n}\nfunction getBalloonAttachOptions(editor, focusedEditableElement) {\n const poweredByConfig = getNormalizedConfig(editor);\n const positioningFunction = poweredByConfig.side === 'right' ?\n getLowerRightCornerPosition(focusedEditableElement, poweredByConfig) :\n getLowerLeftCornerPosition(focusedEditableElement, poweredByConfig);\n return {\n target: focusedEditableElement,\n positions: [positioningFunction]\n };\n}\nfunction getLowerRightCornerPosition(focusedEditableElement, config) {\n return getLowerCornerPosition(focusedEditableElement, config, (rootRect, balloonRect) => {\n return rootRect.left + rootRect.width - balloonRect.width - config.horizontalOffset;\n });\n}\nfunction getLowerLeftCornerPosition(focusedEditableElement, config) {\n return getLowerCornerPosition(focusedEditableElement, config, rootRect => rootRect.left + config.horizontalOffset);\n}\nfunction getLowerCornerPosition(focusedEditableElement, config, getBalloonLeft) {\n return (editableElementRect, balloonRect) => {\n const visibleEditableElementRect = editableElementRect.getVisible();\n // Root cropped by ancestors.\n if (!visibleEditableElementRect) {\n return OFF_THE_SCREEN_POSITION;\n }\n if (editableElementRect.width < NARROW_ROOT_WIDTH_THRESHOLD || editableElementRect.height < NARROW_ROOT_HEIGHT_THRESHOLD) {\n return OFF_THE_SCREEN_POSITION;\n }\n let balloonTop;\n if (config.position === 'inside') {\n balloonTop = editableElementRect.bottom - balloonRect.height;\n }\n else {\n balloonTop = editableElementRect.bottom - balloonRect.height / 2;\n }\n balloonTop -= config.verticalOffset;\n const balloonLeft = getBalloonLeft(editableElementRect, balloonRect);\n if (config.position === 'inside') {\n const newBalloonRect = balloonRect.clone().moveTo(balloonLeft, balloonTop);\n // The watermark cannot be positioned in this corner because the corner is not quite visible.\n if (newBalloonRect.getIntersectionArea(visibleEditableElementRect) < newBalloonRect.getArea()) {\n return OFF_THE_SCREEN_POSITION;\n }\n }\n else {\n const firstScrollableEditableElementAncestor = findClosestScrollableAncestor(focusedEditableElement);\n if (firstScrollableEditableElementAncestor) {\n const firstScrollableEditableElementAncestorRect = new Rect(firstScrollableEditableElementAncestor);\n const notVisibleVertically = visibleEditableElementRect.bottom + balloonRect.height / 2 >\n firstScrollableEditableElementAncestorRect.bottom;\n const notVisibleHorizontally = config.side === 'left' ?\n editableElementRect.left < firstScrollableEditableElementAncestorRect.left :\n editableElementRect.right > firstScrollableEditableElementAncestorRect.right;\n // The watermark cannot be positioned in this corner because the corner is \"not visible enough\".\n if (notVisibleVertically || notVisibleHorizontally) {\n return OFF_THE_SCREEN_POSITION;\n }\n }\n }\n return {\n top: balloonTop,\n left: balloonLeft,\n name: `position_${config.position}-side_${config.side}`,\n config: {\n withArrow: false\n }\n };\n };\n}\nfunction getNormalizedConfig(editor) {\n const userConfig = editor.config.get('ui.poweredBy');\n const position = userConfig && userConfig.position || 'border';\n return {\n position,\n label: DEFAULT_LABEL,\n verticalOffset: position === 'inside' ? 5 : 0,\n horizontalOffset: 5,\n side: editor.locale.contentLanguageDirection === 'ltr' ? 'right' : 'left',\n ...userConfig\n };\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module utils/verifylicense\n */\nimport { releaseDate } from './version';\n/**\n * Checks whether the given string contains information that allows you to verify the license status.\n *\n * @param token The string to check.\n * @returns String that represents the state of given `token` parameter.\n */\nexport default function verifyLicense(token) {\n // This function implements naive and partial license key check mechanism,\n // used only to decide whether to show or hide the \"Powered by CKEditor\" logo.\n //\n // You can read the reasoning behind showing the logo to unlicensed (GPL) users\n // in this thread: https://github.com/ckeditor/ckeditor5/issues/14082.\n //\n // We firmly believe in the values behind creating open-source software, even when that\n // means keeping the license verification logic open for everyone to see.\n //\n // Please keep this code intact. Thank you for your understanding.\n function oldTokenCheck(token) {\n if (token.length >= 40 && token.length <= 255) {\n return 'VALID';\n }\n else {\n return 'INVALID';\n }\n }\n // TODO: issue ci#3175\n if (!token) {\n return 'INVALID';\n }\n let decryptedData = '';\n try {\n decryptedData = atob(token);\n }\n catch (e) {\n return 'INVALID';\n }\n const splittedDecryptedData = decryptedData.split('-');\n const firstElement = splittedDecryptedData[0];\n const secondElement = splittedDecryptedData[1];\n if (!secondElement) {\n return oldTokenCheck(token);\n }\n try {\n atob(secondElement);\n }\n catch (e) {\n try {\n atob(firstElement);\n if (!atob(firstElement).length) {\n return oldTokenCheck(token);\n }\n }\n catch (e) {\n return oldTokenCheck(token);\n }\n }\n if (firstElement.length < 40 || firstElement.length > 255) {\n return 'INVALID';\n }\n let decryptedSecondElement = '';\n try {\n atob(firstElement);\n decryptedSecondElement = atob(secondElement);\n }\n catch (e) {\n return 'INVALID';\n }\n if (decryptedSecondElement.length !== 8) {\n return 'INVALID';\n }\n const year = Number(decryptedSecondElement.substring(0, 4));\n const monthIndex = Number(decryptedSecondElement.substring(4, 6)) - 1;\n const day = Number(decryptedSecondElement.substring(6, 8));\n const date = new Date(year, monthIndex, day);\n if (date < releaseDate || isNaN(Number(date))) {\n return 'INVALID';\n }\n return 'VALID';\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module utils/dom/findclosestscrollableancestor\n */\nimport global from './global';\n/**\n * Returns the closest scrollable ancestor of a DOM element.\n *\n * @param domElement DOM element.\n * @returns First ancestor of `domElement` that is scrollable or null if such ancestor doesn't exist.\n */\nexport default function findClosestScrollableAncestor(domElement) {\n let element = domElement.parentElement;\n if (!element) {\n return null;\n }\n while (element.tagName != 'BODY') {\n const overflow = element.style.overflowY || global.window.getComputedStyle(element).overflowY;\n if (overflow === 'auto' || overflow === 'scroll') {\n break;\n }\n element = element.parentElement;\n if (!element) {\n return null;\n }\n }\n return element;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/editorui/editorui\n */\n/* globals console */\nimport ComponentFactory from '../componentfactory';\nimport TooltipManager from '../tooltipmanager';\nimport PoweredBy from './poweredby';\nimport { ObservableMixin, isVisible, FocusTracker } from '@ckeditor/ckeditor5-utils';\n/**\n * A class providing the minimal interface that is required to successfully bootstrap any editor UI.\n */\nexport default class EditorUI extends ObservableMixin() {\n /**\n * Creates an instance of the editor UI class.\n *\n * @param editor The editor instance.\n */\n constructor(editor) {\n super();\n /**\n * Indicates the UI is ready. Set `true` after {@link #event:ready} event is fired.\n *\n * @readonly\n * @default false\n */\n this.isReady = false;\n /**\n * Stores all editable elements used by the editor instance.\n */\n this._editableElementsMap = new Map();\n /**\n * All available & focusable toolbars.\n */\n this._focusableToolbarDefinitions = [];\n const editingView = editor.editing.view;\n this.editor = editor;\n this.componentFactory = new ComponentFactory(editor);\n this.focusTracker = new FocusTracker();\n this.tooltipManager = new TooltipManager(editor);\n this.poweredBy = new PoweredBy(editor);\n this.set('viewportOffset', this._readViewportOffsetFromConfig());\n this.once('ready', () => {\n this.isReady = true;\n });\n // Informs UI components that should be refreshed after layout change.\n this.listenTo(editingView.document, 'layoutChanged', this.update.bind(this));\n this.listenTo(editingView, 'scrollToTheSelection', this._handleScrollToTheSelection.bind(this));\n this._initFocusTracking();\n }\n /**\n * The main (outermost) DOM element of the editor UI.\n *\n * For example, in {@link module:editor-classic/classiceditor~ClassicEditor} it is a `
` which\n * wraps the editable element and the toolbar. In {@link module:editor-inline/inlineeditor~InlineEditor}\n * it is the editable element itself (as there is no other wrapper). However, in\n * {@link module:editor-decoupled/decouplededitor~DecoupledEditor} it is set to `null` because this editor does not\n * come with a single \"main\" HTML element (its editable element and toolbar are separate).\n *\n * This property can be understood as a shorthand for retrieving the element that a specific editor integration\n * considers to be its main DOM element.\n */\n get element() {\n return null;\n }\n /**\n * Fires the {@link module:ui/editorui/editorui~EditorUI#event:update `update`} event.\n *\n * This method should be called when the editor UI (e.g. positions of its balloons) needs to be updated due to\n * some environmental change which CKEditor 5 is not aware of (e.g. resize of a container in which it is used).\n */\n update() {\n this.fire('update');\n }\n /**\n * Destroys the UI.\n */\n destroy() {\n this.stopListening();\n this.focusTracker.destroy();\n this.tooltipManager.destroy(this.editor);\n this.poweredBy.destroy();\n // Clean–up the references to the CKEditor instance stored in the native editable DOM elements.\n for (const domElement of this._editableElementsMap.values()) {\n domElement.ckeditorInstance = null;\n this.editor.keystrokes.stopListening(domElement);\n }\n this._editableElementsMap = new Map();\n this._focusableToolbarDefinitions = [];\n }\n /**\n * Stores the native DOM editable element used by the editor under a unique name.\n *\n * Also, registers the element in the editor to maintain the accessibility of the UI. When the user is editing text in a focusable\n * editable area, they can use the Alt + F10 keystroke to navigate over editor toolbars. See {@link #addToolbar}.\n *\n * @param rootName The unique name of the editable element.\n * @param domElement The native DOM editable element.\n */\n setEditableElement(rootName, domElement) {\n this._editableElementsMap.set(rootName, domElement);\n // Put a reference to the CKEditor instance in the editable native DOM element.\n // It helps 3rd–party software (browser extensions, other libraries) access and recognize\n // CKEditor 5 instances (editing roots) and use their API (there is no global editor\n // instance registry).\n if (!domElement.ckeditorInstance) {\n domElement.ckeditorInstance = this.editor;\n }\n // Register the element, so it becomes available for Alt+F10 and Esc navigation.\n this.focusTracker.add(domElement);\n const setUpKeystrokeHandler = () => {\n // The editing view of the editor is already listening to keystrokes from DOM roots (see: KeyObserver).\n // Do not duplicate listeners.\n if (this.editor.editing.view.getDomRoot(rootName)) {\n return;\n }\n this.editor.keystrokes.listenTo(domElement);\n };\n // For editable elements set by features after EditorUI is ready (e.g. source editing).\n if (this.isReady) {\n setUpKeystrokeHandler();\n }\n // For editable elements set while the editor is being created (e.g. DOM roots).\n else {\n this.once('ready', setUpKeystrokeHandler);\n }\n }\n /**\n * Removes the editable from the editor UI. Removes all handlers added by {@link #setEditableElement}.\n *\n * @param rootName The name of the editable element to remove.\n */\n removeEditableElement(rootName) {\n const domElement = this._editableElementsMap.get(rootName);\n if (!domElement) {\n return;\n }\n this._editableElementsMap.delete(rootName);\n this.editor.keystrokes.stopListening(domElement);\n this.focusTracker.remove(domElement);\n domElement.ckeditorInstance = null;\n }\n /**\n * Returns the editable editor element with the given name or null if editable does not exist.\n *\n * @param rootName The editable name.\n */\n getEditableElement(rootName = 'main') {\n return this._editableElementsMap.get(rootName);\n }\n /**\n * Returns array of names of all editor editable elements.\n */\n getEditableElementsNames() {\n return this._editableElementsMap.keys();\n }\n /**\n * Adds a toolbar to the editor UI. Used primarily to maintain the accessibility of the UI.\n *\n * Focusable toolbars can be accessed (focused) by users by pressing the Alt + F10 keystroke.\n * Successive keystroke presses navigate over available toolbars.\n *\n * @param toolbarView A instance of the toolbar to be registered.\n */\n addToolbar(toolbarView, options = {}) {\n if (toolbarView.isRendered) {\n this.focusTracker.add(toolbarView.element);\n this.editor.keystrokes.listenTo(toolbarView.element);\n }\n else {\n toolbarView.once('render', () => {\n this.focusTracker.add(toolbarView.element);\n this.editor.keystrokes.listenTo(toolbarView.element);\n });\n }\n this._focusableToolbarDefinitions.push({ toolbarView, options });\n }\n /**\n * Stores all editable elements used by the editor instance.\n *\n * @deprecated\n */\n get _editableElements() {\n /**\n * The {@link module:ui/editorui/editorui~EditorUI#_editableElements `EditorUI#_editableElements`} property has been\n * deprecated and will be removed in the near future. Please use\n * {@link module:ui/editorui/editorui~EditorUI#setEditableElement `setEditableElement()`} and\n * {@link module:ui/editorui/editorui~EditorUI#getEditableElement `getEditableElement()`} methods instead.\n *\n * @error editor-ui-deprecated-editable-elements\n * @param editorUI Editor UI instance the deprecated property belongs to.\n */\n console.warn('editor-ui-deprecated-editable-elements: ' +\n 'The EditorUI#_editableElements property has been deprecated and will be removed in the near future.', { editorUI: this });\n return this._editableElementsMap;\n }\n /**\n * Returns viewport offsets object:\n *\n * ```js\n * {\n * \ttop: Number,\n * \tright: Number,\n * \tbottom: Number,\n * \tleft: Number\n * }\n * ```\n *\n * Only top property is currently supported.\n */\n _readViewportOffsetFromConfig() {\n const editor = this.editor;\n const viewportOffsetConfig = editor.config.get('ui.viewportOffset');\n if (viewportOffsetConfig) {\n return viewportOffsetConfig;\n }\n // Not present in EditorConfig type, because it's legacy. Hence the `as` expression.\n const legacyOffsetConfig = editor.config.get('toolbar.viewportTopOffset');\n // Fall back to deprecated toolbar config.\n if (legacyOffsetConfig) {\n /**\n * The {@link module:core/editor/editorconfig~EditorConfig#toolbar `EditorConfig#toolbar.viewportTopOffset`}\n * property has been deprecated and will be removed in the near future. Please use\n * {@link module:core/editor/editorconfig~EditorConfig#ui `EditorConfig#ui.viewportOffset`} instead.\n *\n * @error editor-ui-deprecated-viewport-offset-config\n */\n console.warn('editor-ui-deprecated-viewport-offset-config: ' +\n 'The `toolbar.vieportTopOffset` configuration option is deprecated. ' +\n 'It will be removed from future CKEditor versions. Use `ui.viewportOffset.top` instead.');\n return { top: legacyOffsetConfig };\n }\n // More keys to come in the future.\n return { top: 0 };\n }\n /**\n * Starts listening for Alt + F10 and Esc keystrokes in the context of focusable\n * {@link #setEditableElement editable elements} and {@link #addToolbar toolbars}\n * to allow users navigate across the UI.\n */\n _initFocusTracking() {\n const editor = this.editor;\n const editingView = editor.editing.view;\n let lastFocusedForeignElement;\n let candidateDefinitions;\n // Focus the next focusable toolbar on Alt + F10.\n editor.keystrokes.set('Alt+F10', (data, cancel) => {\n const focusedElement = this.focusTracker.focusedElement;\n // Focus moved out of a DOM element that\n // * is not a toolbar,\n // * does not belong to the editing view (e.g. source editing).\n if (Array.from(this._editableElementsMap.values()).includes(focusedElement) &&\n !Array.from(editingView.domRoots.values()).includes(focusedElement)) {\n lastFocusedForeignElement = focusedElement;\n }\n const currentFocusedToolbarDefinition = this._getCurrentFocusedToolbarDefinition();\n // * When focusing a toolbar for the first time, set the array of definitions for successive presses of Alt+F10.\n // This ensures, the navigation works always the same and no pair of toolbars takes over\n // (e.g. image and table toolbars when a selected image is inside a cell).\n // * It could be that the focus went to the toolbar by clicking a toolbar item (e.g. a dropdown). In this case,\n // there were no candidates so they must be obtained (#12339).\n if (!currentFocusedToolbarDefinition || !candidateDefinitions) {\n candidateDefinitions = this._getFocusableCandidateToolbarDefinitions();\n }\n // In a single Alt+F10 press, check all candidates but if none were focused, don't go any further.\n // This prevents an infinite loop.\n for (let i = 0; i < candidateDefinitions.length; i++) {\n const candidateDefinition = candidateDefinitions.shift();\n // Put the first definition to the back of the array. This allows circular navigation over all toolbars\n // on successive presses of Alt+F10.\n candidateDefinitions.push(candidateDefinition);\n // Don't focus the same toolbar again. If you did, this would move focus from the nth focused toolbar item back to the\n // first item as per ToolbarView#focus() if the user navigated inside the toolbar.\n if (candidateDefinition !== currentFocusedToolbarDefinition &&\n this._focusFocusableCandidateToolbar(candidateDefinition)) {\n // Clean up after a current visible toolbar when switching to the next one.\n if (currentFocusedToolbarDefinition && currentFocusedToolbarDefinition.options.afterBlur) {\n currentFocusedToolbarDefinition.options.afterBlur();\n }\n break;\n }\n }\n cancel();\n });\n // Blur the focused toolbar on Esc and bring the focus back to its origin.\n editor.keystrokes.set('Esc', (data, cancel) => {\n const focusedToolbarDef = this._getCurrentFocusedToolbarDefinition();\n if (!focusedToolbarDef) {\n return;\n }\n // Bring focus back to where it came from before focusing the toolbar:\n // 1. If it came from outside the engine view (e.g. source editing), move it there.\n if (lastFocusedForeignElement) {\n lastFocusedForeignElement.focus();\n lastFocusedForeignElement = null;\n }\n // 2. There are two possibilities left:\n // 2.1. It could be that the focus went from an editable element in the view (root or nested).\n // 2.2. It could be the focus went straight to the toolbar before even focusing the editing area.\n // In either case, just focus the view editing. The focus will land where it belongs.\n else {\n editor.editing.view.focus();\n }\n // Clean up after the toolbar if there is anything to do there.\n if (focusedToolbarDef.options.afterBlur) {\n focusedToolbarDef.options.afterBlur();\n }\n cancel();\n });\n }\n /**\n * Returns definitions of toolbars that could potentially be focused, sorted by their importance for the user.\n *\n * Focusable toolbars candidates are either:\n * * already visible,\n * * have `beforeFocus()` set in their {@link module:ui/editorui/editorui~FocusableToolbarDefinition definition} that suggests that\n * they might show up when called. Keep in mind that determining whether a toolbar will show up (and become focusable) is impossible\n * at this stage because it depends on its implementation, that in turn depends on the editing context (selection).\n *\n * **Note**: Contextual toolbars take precedence over regular toolbars.\n */\n _getFocusableCandidateToolbarDefinitions() {\n const definitions = [];\n for (const toolbarDef of this._focusableToolbarDefinitions) {\n const { toolbarView, options } = toolbarDef;\n if (isVisible(toolbarView.element) || options.beforeFocus) {\n definitions.push(toolbarDef);\n }\n }\n // Contextual and already visible toolbars have higher priority. If both are true, the toolbar will always focus first.\n // For instance, a selected widget toolbar vs inline editor toolbar: both are visible but the widget toolbar is contextual.\n definitions.sort((defA, defB) => getToolbarDefinitionWeight(defA) - getToolbarDefinitionWeight(defB));\n return definitions;\n }\n /**\n * Returns a definition of the toolbar that is currently visible and focused (one of its children has focus).\n *\n * `null` is returned when no toolbar is currently focused.\n */\n _getCurrentFocusedToolbarDefinition() {\n for (const definition of this._focusableToolbarDefinitions) {\n if (definition.toolbarView.element && definition.toolbarView.element.contains(this.focusTracker.focusedElement)) {\n return definition;\n }\n }\n return null;\n }\n /**\n * Focuses a focusable toolbar candidate using its definition.\n *\n * @param candidateToolbarDefinition A definition of the toolbar to focus.\n * @returns `true` when the toolbar candidate was focused. `false` otherwise.\n */\n _focusFocusableCandidateToolbar(candidateToolbarDefinition) {\n const { toolbarView, options: { beforeFocus } } = candidateToolbarDefinition;\n if (beforeFocus) {\n beforeFocus();\n }\n // If it didn't show up after beforeFocus(), it's not focusable at all.\n if (!isVisible(toolbarView.element)) {\n return false;\n }\n toolbarView.focus();\n return true;\n }\n /**\n * Provides an integration between {@link #viewportOffset} and {@link module:utils/dom/scroll~scrollViewportToShowTarget}.\n * It allows the UI-agnostic engine method to consider user-configured viewport offsets specific for the integration.\n *\n * @param evt The `scrollToTheSelection` event info.\n * @param data The payload carried by the `scrollToTheSelection` event.\n */\n _handleScrollToTheSelection(evt, data) {\n const configuredViewportOffset = {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n ...this.viewportOffset\n };\n data.viewportOffset.top += configuredViewportOffset.top;\n data.viewportOffset.bottom += configuredViewportOffset.bottom;\n data.viewportOffset.left += configuredViewportOffset.left;\n data.viewportOffset.right += configuredViewportOffset.right;\n }\n}\n/**\n * Returns a number (weight) for a toolbar definition. Visible toolbars have a higher priority and so do\n * contextual toolbars (displayed in the context of a content, for instance, an image toolbar).\n *\n * A standard invisible toolbar is the heaviest. A visible contextual toolbar is the lightest.\n *\n * @param toolbarDef A toolbar definition to be weighted.\n */\nfunction getToolbarDefinitionWeight(toolbarDef) {\n const { toolbarView, options } = toolbarDef;\n let weight = 10;\n // Prioritize already visible toolbars. They should get focused first.\n if (isVisible(toolbarView.element)) {\n weight--;\n }\n // Prioritize contextual toolbars. They are displayed at the selection.\n if (options.isContextual) {\n weight--;\n }\n return weight;\n}\n","import api from \"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../css-loader/dist/cjs.js!../../../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./editorui.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/editorui/editoruiview\n */\nimport View from '../view';\nimport BodyCollection from './bodycollection';\nimport '../../theme/components/editorui/editorui.css';\n/**\n * The editor UI view class. Base class for the editor main views.\n */\nexport default class EditorUIView extends View {\n /**\n * Creates an instance of the editor UI view class.\n *\n * @param locale The locale instance.\n */\n constructor(locale) {\n super(locale);\n this.body = new BodyCollection(locale);\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n this.body.attachToDom();\n }\n /**\n * @inheritDoc\n */\n destroy() {\n this.body.detachFromDom();\n return super.destroy();\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/editableui/editableuiview\n */\nimport View from '../view';\n/**\n * The editable UI view class.\n */\nexport default class EditableUIView extends View {\n /**\n * Creates an instance of EditableUIView class.\n *\n * @param locale The locale instance.\n * @param editingView The editing view instance the editable is related to.\n * @param editableElement The editable element. If not specified, this view\n * should create it. Otherwise, the existing element should be used.\n */\n constructor(locale, editingView, editableElement) {\n super(locale);\n /**\n * The name of the editable UI view.\n */\n this.name = null;\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-content',\n 'ck-editor__editable',\n 'ck-rounded-corners'\n ],\n lang: locale.contentLanguage,\n dir: locale.contentLanguageDirection\n }\n });\n this.set('isFocused', false);\n this._editableElement = editableElement;\n this._hasExternalElement = !!this._editableElement;\n this._editingView = editingView;\n }\n /**\n * Renders the view by either applying the {@link #template} to the existing\n * {@link module:ui/editableui/editableuiview~EditableUIView#_editableElement} or assigning {@link #element}\n * as {@link module:ui/editableui/editableuiview~EditableUIView#_editableElement}.\n */\n render() {\n super.render();\n if (this._hasExternalElement) {\n this.template.apply(this.element = this._editableElement);\n }\n else {\n this._editableElement = this.element;\n }\n this.on('change:isFocused', () => this._updateIsFocusedClasses());\n this._updateIsFocusedClasses();\n }\n /**\n * @inheritDoc\n */\n destroy() {\n if (this._hasExternalElement) {\n this.template.revert(this._editableElement);\n }\n super.destroy();\n }\n /**\n * Whether an external {@link #_editableElement} was passed into the constructor, which also means\n * the view will not render its {@link #template}.\n */\n get hasExternalElement() {\n return this._hasExternalElement;\n }\n /**\n * Updates the `ck-focused` and `ck-blurred` CSS classes on the {@link #element} according to\n * the {@link #isFocused} property value using the {@link #_editingView editing view} API.\n */\n _updateIsFocusedClasses() {\n const editingView = this._editingView;\n if (editingView.isRenderingInProgress) {\n updateAfterRender(this);\n }\n else {\n update(this);\n }\n function update(view) {\n editingView.change(writer => {\n const viewRoot = editingView.document.getRoot(view.name);\n writer.addClass(view.isFocused ? 'ck-focused' : 'ck-blurred', viewRoot);\n writer.removeClass(view.isFocused ? 'ck-blurred' : 'ck-focused', viewRoot);\n });\n }\n // In a case of a multi-root editor, a callback will be attached more than once (one callback for each root).\n // While executing one callback the `isRenderingInProgress` observable is changing what causes executing another\n // callback and render is called inside the already pending render.\n // We need to be sure that callback is executed only when the value has changed from `true` to `false`.\n // See https://github.com/ckeditor/ckeditor5/issues/1676.\n function updateAfterRender(view) {\n editingView.once('change:isRenderingInProgress', (evt, name, value) => {\n if (!value) {\n update(view);\n }\n else {\n updateAfterRender(view);\n }\n });\n }\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/editableui/inline/inlineeditableuiview\n */\nimport EditableUIView from '../editableuiview';\n/**\n * The inline editable UI class implementing an inline {@link module:ui/editableui/editableuiview~EditableUIView}.\n */\nexport default class InlineEditableUIView extends EditableUIView {\n /**\n * Creates an instance of the InlineEditableUIView class.\n *\n * @param locale The locale instance.\n * @param editingView The editing view instance the editable is related to.\n * @param editableElement The editable element. If not specified, the\n * {@link module:ui/editableui/editableuiview~EditableUIView}\n * will create it. Otherwise, the existing element will be used.\n * @param options Additional configuration of the view.\n * @param options.label A function that gets called with the instance of this view as an argument\n * and should return a string that represents the label of the editable for assistive technologies. If not provided,\n * a default label generator is used.\n */\n constructor(locale, editingView, editableElement, options = {}) {\n super(locale, editingView, editableElement);\n const t = locale.t;\n this.extendTemplate({\n attributes: {\n role: 'textbox',\n class: 'ck-editor__editable_inline'\n }\n });\n this._generateLabel = options.label || (() => t('Editor editing area: %0', this.name));\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n const editingView = this._editingView;\n editingView.change(writer => {\n const viewRoot = editingView.document.getRoot(this.name);\n writer.setAttribute('aria-label', this._generateLabel(this), viewRoot);\n });\n }\n}\n","import api from \"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../css-loader/dist/cjs.js!../../../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./formheader.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/formheader/formheaderview\n */\nimport View from '../view';\nimport '../../theme/components/formheader/formheader.css';\n/**\n * The class component representing a form header view. It should be used in more advanced forms to\n * describe the main purpose of the form.\n *\n * By default the component contains a bolded label view that has to be set. The label is usually a short (at most 3-word) string.\n * The component can also be extended by any other elements, like: icons, dropdowns, etc.\n *\n * It is used i.a.\n * by {@link module:table/tablecellproperties/ui/tablecellpropertiesview~TableCellPropertiesView}\n * and {@link module:special-characters/ui/specialcharactersnavigationview~SpecialCharactersNavigationView}.\n *\n * The latter is an example, where the component has been extended by {@link module:ui/dropdown/dropdownview~DropdownView} view.\n */\nexport default class FormHeaderView extends View {\n /**\n * Creates an instance of the form header class.\n *\n * @param locale The locale instance.\n * @param options.label A label.\n * @param options.class An additional class.\n */\n constructor(locale, options = {}) {\n super(locale);\n const bind = this.bindTemplate;\n this.set('label', options.label || '');\n this.set('class', options.class || null);\n this.children = this.createCollection();\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-form__header',\n bind.to('class')\n ]\n },\n children: this.children\n });\n const label = new View(locale);\n label.setTemplate({\n tag: 'h2',\n attributes: {\n class: [\n 'ck',\n 'ck-form__header__label'\n ]\n },\n children: [\n { text: bind.to('label') }\n ]\n });\n this.children.add(label);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/notification/notification\n */\n/* globals window */\nimport { ContextPlugin } from '@ckeditor/ckeditor5-core';\n/**\n * The Notification plugin.\n *\n * This plugin sends a few types of notifications: `success`, `info` and `warning`. The notifications need to be\n * handled and displayed by a plugin responsible for showing the UI of the notifications. Using this plugin for dispatching\n * notifications makes it possible to switch the notifications UI.\n *\n * Note that every unhandled and not stopped `warning` notification will be displayed as a system alert.\n * See {@link module:ui/notification/notification~Notification#showWarning}.\n */\nexport default class Notification extends ContextPlugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'Notification';\n }\n /**\n * @inheritDoc\n */\n init() {\n // Each unhandled and not stopped `show:warning` event is displayed as a system alert.\n this.on('show:warning', (evt, data) => {\n window.alert(data.message); // eslint-disable-line no-alert\n }, { priority: 'lowest' });\n }\n /**\n * Shows a success notification.\n *\n * By default, it fires the {@link #event:show:success `show:success` event} with the given `data`. The event namespace can be extended\n * using the `data.namespace` option. For example:\n *\n * ```ts\n * showSuccess( 'Image is uploaded.', {\n * \tnamespace: 'upload:image'\n * } );\n * ```\n *\n * will fire the `show:success:upload:image` event.\n *\n * You can provide the title of the notification:\n *\n * ```ts\n * showSuccess( 'Image is uploaded.', {\n * \ttitle: 'Image upload success'\n * } );\n * ```\n *\n * @param message The content of the notification.\n * @param data Additional data.\n * @param data.namespace Additional event namespace.\n * @param data.title The title of the notification.\n */\n showSuccess(message, data = {}) {\n this._showNotification({\n message,\n type: 'success',\n namespace: data.namespace,\n title: data.title\n });\n }\n /**\n * Shows an information notification.\n *\n * By default, it fires the {@link #event:show:info `show:info` event} with the given `data`. The event namespace can be extended\n * using the `data.namespace` option. For example:\n *\n * ```ts\n * showInfo( 'Editor is offline.', {\n * \tnamespace: 'editor:status'\n * } );\n * ```\n *\n * will fire the `show:info:editor:status` event.\n *\n * You can provide the title of the notification:\n *\n * ```ts\n * showInfo( 'Editor is offline.', {\n * \ttitle: 'Network information'\n * } );\n * ```\n *\n * @param message The content of the notification.\n * @param data Additional data.\n * @param data.namespace Additional event namespace.\n * @param data.title The title of the notification.\n */\n showInfo(message, data = {}) {\n this._showNotification({\n message,\n type: 'info',\n namespace: data.namespace,\n title: data.title\n });\n }\n /**\n * Shows a warning notification.\n *\n * By default, it fires the {@link #event:show:warning `show:warning` event}\n * with the given `data`. The event namespace can be extended using the `data.namespace` option. For example:\n *\n * ```ts\n * showWarning( 'Image upload error.', {\n * \tnamespace: 'upload:image'\n * } );\n * ```\n *\n * will fire the `show:warning:upload:image` event.\n *\n * You can provide the title of the notification:\n *\n * ```ts\n * showWarning( 'Image upload error.', {\n * \ttitle: 'Upload failed'\n * } );\n * ```\n *\n * Note that each unhandled and not stopped `warning` notification will be displayed as a system alert.\n * The plugin responsible for displaying warnings should `stop()` the event to prevent displaying it as an alert:\n *\n * ```ts\n * notifications.on( 'show:warning', ( evt, data ) => {\n * \t// Do something with the data.\n *\n * \t// Stop this event to prevent displaying it as an alert.\n * \tevt.stop();\n * } );\n * ```\n *\n * You can attach many listeners to the same event and `stop()` this event in a listener with a low priority:\n *\n * ```ts\n * notifications.on( 'show:warning', ( evt, data ) => {\n * \t// Show the warning in the UI, but do not stop it.\n * } );\n *\n * notifications.on( 'show:warning', ( evt, data ) => {\n * \t// Log the warning to some error tracker.\n *\n * \t// Stop this event to prevent displaying it as an alert.\n * \tevt.stop();\n * }, { priority: 'low' } );\n * ```\n *\n * @param message The content of the notification.\n * @param data Additional data.\n * @param data.namespace Additional event namespace.\n * @param data.title The title of the notification.\n */\n showWarning(message, data = {}) {\n this._showNotification({\n message,\n type: 'warning',\n namespace: data.namespace,\n title: data.title\n });\n }\n /**\n * Fires the `show` event with the specified type, namespace and message.\n *\n * @param data The message data.\n * @param data.message The content of the notification.\n * @param data.type The type of the message.\n * @param data.namespace Additional event namespace.\n * @param data.title The title of the notification.\n */\n _showNotification(data) {\n const event = data.namespace ?\n `show:${data.type}:${data.namespace}` :\n `show:${data.type}`;\n this.fire(event, {\n message: data.message,\n type: data.type,\n title: data.title || ''\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/model\n */\nimport { ObservableMixin } from '@ckeditor/ckeditor5-utils';\nimport { extend } from 'lodash-es';\n/**\n * The base MVC model class.\n */\nexport default class Model extends ObservableMixin() {\n /**\n * Creates a new Model instance.\n *\n * @param attributes The model state attributes to be defined during the instance creation.\n * @param properties The (out of state) properties to be appended to the instance during creation.\n */\n constructor(attributes, properties) {\n super();\n // Extend this instance with the additional (out of state) properties.\n if (properties) {\n extend(this, properties);\n }\n // Initialize the attributes.\n if (attributes) {\n this.set(attributes);\n }\n }\n}\n","export default \"\";","import api from \"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../css-loader/dist/cjs.js!../../../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./balloonrotator.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../css-loader/dist/cjs.js!../../../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./fakepanel.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/panel/balloon/contextualballoon\n */\nimport BalloonPanelView from './balloonpanelview';\nimport View from '../../view';\nimport ButtonView from '../../button/buttonview';\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { CKEditorError, FocusTracker, Rect, toUnit } from '@ckeditor/ckeditor5-utils';\nimport prevIcon from '../../../theme/icons/previous-arrow.svg';\nimport nextIcon from '../../../theme/icons/next-arrow.svg';\nimport '../../../theme/components/panel/balloonrotator.css';\nimport '../../../theme/components/panel/fakepanel.css';\nconst toPx = toUnit('px');\n/**\n * Provides the common contextual balloon for the editor.\n *\n * The role of this plugin is to unify the contextual balloons logic, simplify views management and help\n * avoid the unnecessary complexity of handling multiple {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView}\n * instances in the editor.\n *\n * This plugin allows for creating single or multiple panel stacks.\n *\n * Each stack may have multiple views, with the one on the top being visible. When the visible view is removed from the stack,\n * the previous view becomes visible.\n *\n * It might be useful to implement nested navigation in a balloon. For instance, a toolbar view may contain a link button.\n * When you click it, a link view (which lets you set the URL) is created and put on top of the toolbar view, so the link panel\n * is displayed. When you finish editing the link and close (remove) the link view, the toolbar view is visible again.\n *\n * However, there are cases when there are multiple independent balloons to be displayed, for instance, if the selection\n * is inside two inline comments at the same time. For such cases, you can create two independent panel stacks.\n * The contextual balloon plugin will create a navigation bar to let the users switch between these panel stacks using the \"Next\"\n * and \"Previous\" buttons.\n *\n * If there are no views in the current stack, the balloon panel will try to switch to the next stack. If there are no\n * panels in any stack, the balloon panel will be hidden.\n *\n * **Note**: To force the balloon panel to show only one view, even if there are other stacks, use the `singleViewMode=true` option\n * when {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon#add adding} a view to a panel.\n *\n * From the implementation point of view, the contextual ballon plugin is reusing a single\n * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView} instance to display multiple contextual balloon\n * panels in the editor. It also creates a special {@link module:ui/panel/balloon/contextualballoon~RotatorView rotator view},\n * used to manage multiple panel stacks. Rotator view is a child of the balloon panel view and the parent of the specific\n * view you want to display. If there is more than one panel stack to be displayed, the rotator view will add a\n * navigation bar. If there is only one stack, the rotator view is transparent (it does not add any UI elements).\n */\nexport default class ContextualBalloon extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ContextualBalloon';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n /**\n * The map of views and their stacks.\n */\n this._viewToStack = new Map();\n /**\n * The map of IDs and stacks.\n */\n this._idToStack = new Map();\n /**\n * The common balloon panel view.\n */\n this._view = null;\n /**\n * Rotator view embedded in the contextual balloon.\n * Displays the currently visible view in the balloon and provides navigation for switching stacks.\n */\n this._rotatorView = null;\n /**\n * Displays fake panels under the balloon panel view when multiple stacks are added to the balloon.\n */\n this._fakePanelsView = null;\n this.positionLimiter = () => {\n const view = this.editor.editing.view;\n const viewDocument = view.document;\n const editableElement = viewDocument.selection.editableElement;\n if (editableElement) {\n return view.domConverter.mapViewToDom(editableElement.root);\n }\n return null;\n };\n this.set('visibleView', null);\n this.set('_numberOfStacks', 0);\n this.set('_singleViewMode', false);\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n if (this._view) {\n this._view.destroy();\n }\n if (this._rotatorView) {\n this._rotatorView.destroy();\n }\n if (this._fakePanelsView) {\n this._fakePanelsView.destroy();\n }\n }\n /**\n * The common balloon panel view.\n */\n get view() {\n if (!this._view) {\n this._createPanelView();\n }\n return this._view;\n }\n /**\n * Returns `true` when the given view is in one of the stacks. Otherwise returns `false`.\n */\n hasView(view) {\n return Array.from(this._viewToStack.keys()).includes(view);\n }\n /**\n * Adds a new view to the stack and makes it visible if the current stack is visible\n * or it is the first view in the balloon.\n *\n * @param data The configuration of the view.\n * @param data.stackId The ID of the stack that the view is added to. Defaults to `'main'`.\n * @param data.view The content of the balloon.\n * @param data.position Positioning options.\n * @param data.balloonClassName An additional CSS class added to the {@link #view balloon} when visible.\n * @param data.withArrow Whether the {@link #view balloon} should be rendered with an arrow. Defaults to `true`.\n * @param data.singleViewMode Whether the view should be the only visible view even if other stacks were added. Defaults to `false`.\n */\n add(data) {\n if (!this._view) {\n this._createPanelView();\n }\n if (this.hasView(data.view)) {\n /**\n * Trying to add configuration of the same view more than once.\n *\n * @error contextualballoon-add-view-exist\n */\n throw new CKEditorError('contextualballoon-add-view-exist', [this, data]);\n }\n const stackId = data.stackId || 'main';\n // If new stack is added, creates it and show view from this stack.\n if (!this._idToStack.has(stackId)) {\n this._idToStack.set(stackId, new Map([[data.view, data]]));\n this._viewToStack.set(data.view, this._idToStack.get(stackId));\n this._numberOfStacks = this._idToStack.size;\n if (!this._visibleStack || data.singleViewMode) {\n this.showStack(stackId);\n }\n return;\n }\n const stack = this._idToStack.get(stackId);\n if (data.singleViewMode) {\n this.showStack(stackId);\n }\n // Add new view to the stack.\n stack.set(data.view, data);\n this._viewToStack.set(data.view, stack);\n // And display it if is added to the currently visible stack.\n if (stack === this._visibleStack) {\n this._showView(data);\n }\n }\n /**\n * Removes the given view from the stack. If the removed view was visible,\n * the view preceding it in the stack will become visible instead.\n * When there is no view in the stack, the next stack will be displayed.\n * When there are no more stacks, the balloon will hide.\n *\n * @param view A view to be removed from the balloon.\n */\n remove(view) {\n if (!this.hasView(view)) {\n /**\n * Trying to remove the configuration of the view not defined in the stack.\n *\n * @error contextualballoon-remove-view-not-exist\n */\n throw new CKEditorError('contextualballoon-remove-view-not-exist', [this, view]);\n }\n const stack = this._viewToStack.get(view);\n if (this._singleViewMode && this.visibleView === view) {\n this._singleViewMode = false;\n }\n // When visible view will be removed we need to show a preceding view or next stack\n // if a view is the only view in the stack.\n if (this.visibleView === view) {\n if (stack.size === 1) {\n if (this._idToStack.size > 1) {\n this._showNextStack();\n }\n else {\n this.view.hide();\n this.visibleView = null;\n this._rotatorView.hideView();\n }\n }\n else {\n this._showView(Array.from(stack.values())[stack.size - 2]);\n }\n }\n if (stack.size === 1) {\n this._idToStack.delete(this._getStackId(stack));\n this._numberOfStacks = this._idToStack.size;\n }\n else {\n stack.delete(view);\n }\n this._viewToStack.delete(view);\n }\n /**\n * Updates the position of the balloon using the position data of the first visible view in the stack.\n * When new position data is given, the position data of the currently visible view will be updated.\n *\n * @param position Position options.\n */\n updatePosition(position) {\n if (position) {\n this._visibleStack.get(this.visibleView).position = position;\n }\n this.view.pin(this._getBalloonPosition());\n this._fakePanelsView.updatePosition();\n }\n /**\n * Shows the last view from the stack of a given ID.\n */\n showStack(id) {\n this.visibleStack = id;\n const stack = this._idToStack.get(id);\n if (!stack) {\n /**\n * Trying to show a stack that does not exist.\n *\n * @error contextualballoon-showstack-stack-not-exist\n */\n throw new CKEditorError('contextualballoon-showstack-stack-not-exist', this);\n }\n if (this._visibleStack === stack) {\n return;\n }\n this._showView(Array.from(stack.values()).pop());\n }\n /**\n * Initializes view instances.\n */\n _createPanelView() {\n this._view = new BalloonPanelView(this.editor.locale);\n this.editor.ui.view.body.add(this._view);\n this.editor.ui.focusTracker.add(this._view.element);\n this._rotatorView = this._createRotatorView();\n this._fakePanelsView = this._createFakePanelsView();\n }\n /**\n * Returns the stack of the currently visible view.\n */\n get _visibleStack() {\n return this._viewToStack.get(this.visibleView);\n }\n /**\n * Returns the ID of the given stack.\n */\n _getStackId(stack) {\n const entry = Array.from(this._idToStack.entries()).find(entry => entry[1] === stack);\n return entry[0];\n }\n /**\n * Shows the last view from the next stack.\n */\n _showNextStack() {\n const stacks = Array.from(this._idToStack.values());\n let nextIndex = stacks.indexOf(this._visibleStack) + 1;\n if (!stacks[nextIndex]) {\n nextIndex = 0;\n }\n this.showStack(this._getStackId(stacks[nextIndex]));\n }\n /**\n * Shows the last view from the previous stack.\n */\n _showPrevStack() {\n const stacks = Array.from(this._idToStack.values());\n let nextIndex = stacks.indexOf(this._visibleStack) - 1;\n if (!stacks[nextIndex]) {\n nextIndex = stacks.length - 1;\n }\n this.showStack(this._getStackId(stacks[nextIndex]));\n }\n /**\n * Creates a rotator view.\n */\n _createRotatorView() {\n const view = new RotatorView(this.editor.locale);\n const t = this.editor.locale.t;\n this.view.content.add(view);\n // Hide navigation when there is only a one stack & not in single view mode.\n view.bind('isNavigationVisible').to(this, '_numberOfStacks', this, '_singleViewMode', (value, isSingleViewMode) => {\n return !isSingleViewMode && value > 1;\n });\n // Update balloon position after toggling navigation.\n view.on('change:isNavigationVisible', () => (this.updatePosition()), { priority: 'low' });\n // Update stacks counter value.\n view.bind('counter').to(this, 'visibleView', this, '_numberOfStacks', (visibleView, numberOfStacks) => {\n if (numberOfStacks < 2) {\n return '';\n }\n const current = Array.from(this._idToStack.values()).indexOf(this._visibleStack) + 1;\n return t('%0 of %1', [current, numberOfStacks]);\n });\n view.buttonNextView.on('execute', () => {\n // When current view has a focus then move focus to the editable before removing it,\n // otherwise editor will lost focus.\n if (view.focusTracker.isFocused) {\n this.editor.editing.view.focus();\n }\n this._showNextStack();\n });\n view.buttonPrevView.on('execute', () => {\n // When current view has a focus then move focus to the editable before removing it,\n // otherwise editor will lost focus.\n if (view.focusTracker.isFocused) {\n this.editor.editing.view.focus();\n }\n this._showPrevStack();\n });\n return view;\n }\n /**\n * Creates a fake panels view.\n */\n _createFakePanelsView() {\n const view = new FakePanelsView(this.editor.locale, this.view);\n view.bind('numberOfPanels').to(this, '_numberOfStacks', this, '_singleViewMode', (number, isSingleViewMode) => {\n const showPanels = !isSingleViewMode && number >= 2;\n return showPanels ? Math.min(number - 1, 2) : 0;\n });\n view.listenTo(this.view, 'change:top', () => view.updatePosition());\n view.listenTo(this.view, 'change:left', () => view.updatePosition());\n this.editor.ui.view.body.add(view);\n return view;\n }\n /**\n * Sets the view as the content of the balloon and attaches the balloon using position\n * options of the first view.\n *\n * @param data Configuration.\n * @param data.view The view to show in the balloon.\n * @param data.balloonClassName Additional class name which will be added to the {@link #view balloon}.\n * @param data.withArrow Whether the {@link #view balloon} should be rendered with an arrow.\n */\n _showView({ view, balloonClassName = '', withArrow = true, singleViewMode = false }) {\n this.view.class = balloonClassName;\n this.view.withArrow = withArrow;\n this._rotatorView.showView(view);\n this.visibleView = view;\n this.view.pin(this._getBalloonPosition());\n this._fakePanelsView.updatePosition();\n if (singleViewMode) {\n this._singleViewMode = true;\n }\n }\n /**\n * Returns position options of the last view in the stack.\n * This keeps the balloon in the same position when the view is changed.\n */\n _getBalloonPosition() {\n let position = Array.from(this._visibleStack.values()).pop().position;\n if (position) {\n // Use the default limiter if none has been specified.\n if (!position.limiter) {\n // Don't modify the original options object.\n position = Object.assign({}, position, {\n limiter: this.positionLimiter\n });\n }\n // Don't modify the original options object.\n position = Object.assign({}, position, {\n viewportOffsetConfig: this.editor.ui.viewportOffset\n });\n }\n return position;\n }\n}\n/**\n * Rotator view is a helper class for the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon ContextualBalloon}.\n * It is used for displaying the last view from the current stack and providing navigation buttons for switching stacks.\n * See the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon ContextualBalloon} documentation to learn more.\n */\nexport class RotatorView extends View {\n /**\n * @inheritDoc\n */\n constructor(locale) {\n super(locale);\n const t = locale.t;\n const bind = this.bindTemplate;\n this.set('isNavigationVisible', true);\n this.focusTracker = new FocusTracker();\n this.buttonPrevView = this._createButtonView(t('Previous'), prevIcon);\n this.buttonNextView = this._createButtonView(t('Next'), nextIcon);\n this.content = this.createCollection();\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-balloon-rotator'\n ],\n 'z-index': '-1'\n },\n children: [\n {\n tag: 'div',\n attributes: {\n class: [\n 'ck-balloon-rotator__navigation',\n bind.to('isNavigationVisible', value => value ? '' : 'ck-hidden')\n ]\n },\n children: [\n this.buttonPrevView,\n {\n tag: 'span',\n attributes: {\n class: [\n 'ck-balloon-rotator__counter'\n ]\n },\n children: [\n {\n text: bind.to('counter')\n }\n ]\n },\n this.buttonNextView\n ]\n },\n {\n tag: 'div',\n attributes: {\n class: 'ck-balloon-rotator__content'\n },\n children: this.content\n }\n ]\n });\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n this.focusTracker.add(this.element);\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n this.focusTracker.destroy();\n }\n /**\n * Shows a given view.\n *\n * @param view The view to show.\n */\n showView(view) {\n this.hideView();\n this.content.add(view);\n }\n /**\n * Hides the currently displayed view.\n */\n hideView() {\n this.content.clear();\n }\n /**\n * Creates a navigation button view.\n *\n * @param label The button label.\n * @param icon The button icon.\n */\n _createButtonView(label, icon) {\n const view = new ButtonView(this.locale);\n view.set({\n label,\n icon,\n tooltip: true\n });\n return view;\n }\n}\n/**\n * Displays additional layers under the balloon when multiple stacks are added to the balloon.\n */\nclass FakePanelsView extends View {\n /**\n * @inheritDoc\n */\n constructor(locale, balloonPanelView) {\n super(locale);\n const bind = this.bindTemplate;\n this.set('top', 0);\n this.set('left', 0);\n this.set('height', 0);\n this.set('width', 0);\n this.set('numberOfPanels', 0);\n this.content = this.createCollection();\n this._balloonPanelView = balloonPanelView;\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck-fake-panel',\n bind.to('numberOfPanels', number => number ? '' : 'ck-hidden')\n ],\n style: {\n top: bind.to('top', toPx),\n left: bind.to('left', toPx),\n width: bind.to('width', toPx),\n height: bind.to('height', toPx)\n }\n },\n children: this.content\n });\n this.on('change:numberOfPanels', (evt, name, next, prev) => {\n if (next > prev) {\n this._addPanels(next - prev);\n }\n else {\n this._removePanels(prev - next);\n }\n this.updatePosition();\n });\n }\n _addPanels(number) {\n while (number--) {\n const view = new View();\n view.setTemplate({ tag: 'div' });\n this.content.add(view);\n this.registerChild(view);\n }\n }\n _removePanels(number) {\n while (number--) {\n const view = this.content.last;\n this.content.remove(view);\n this.deregisterChild(view);\n view.destroy();\n }\n }\n /**\n * Updates coordinates of fake panels.\n */\n updatePosition() {\n if (this.numberOfPanels) {\n const { top, left } = this._balloonPanelView;\n const { width, height } = new Rect(this._balloonPanelView.element);\n Object.assign(this, { top, left, width, height });\n }\n }\n}\n","export default \"\";","import api from \"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../css-loader/dist/cjs.js!../../../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./stickypanel.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/panel/sticky/stickypanelview\n */\nimport View from '../../view';\nimport Template from '../../template';\nimport { getElementsIntersectionRect, getScrollableAncestors, global, toUnit, Rect } from '@ckeditor/ckeditor5-utils';\n// @if CK_DEBUG_STICKYPANEL // const RectDrawer = require( '@ckeditor/ckeditor5-utils/tests/_utils/rectdrawer' ).default\nimport '../../../theme/components/panel/stickypanel.css';\nconst toPx = toUnit('px');\n/**\n * The sticky panel view class.\n */\nexport default class StickyPanelView extends View {\n /**\n * @inheritDoc\n */\n constructor(locale) {\n super(locale);\n const bind = this.bindTemplate;\n this.set('isActive', false);\n this.set('isSticky', false);\n this.set('limiterElement', null);\n this.set('limiterBottomOffset', 50);\n this.set('viewportTopOffset', 0);\n this.set('_marginLeft', null);\n this.set('_isStickyToTheBottomOfLimiter', false);\n this.set('_stickyTopOffset', null);\n this.set('_stickyBottomOffset', null);\n this.content = this.createCollection();\n this._contentPanelPlaceholder = new Template({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-sticky-panel__placeholder'\n ],\n style: {\n display: bind.to('isSticky', isSticky => isSticky ? 'block' : 'none'),\n height: bind.to('isSticky', isSticky => {\n return isSticky ? toPx(this._contentPanelRect.height) : null;\n })\n }\n }\n }).render();\n this._contentPanel = new Template({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-sticky-panel__content',\n // Toggle class of the panel when \"sticky\" state changes in the view.\n bind.if('isSticky', 'ck-sticky-panel__content_sticky'),\n bind.if('_isStickyToTheBottomOfLimiter', 'ck-sticky-panel__content_sticky_bottom-limit')\n ],\n style: {\n width: bind.to('isSticky', isSticky => {\n return isSticky ? toPx(this._contentPanelPlaceholder.getBoundingClientRect().width) : null;\n }),\n top: bind.to('_stickyTopOffset', value => value ? toPx(value) : value),\n bottom: bind.to('_stickyBottomOffset', value => value ? toPx(value) : value),\n marginLeft: bind.to('_marginLeft')\n }\n },\n children: this.content\n }).render();\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-sticky-panel'\n ]\n },\n children: [\n this._contentPanelPlaceholder,\n this._contentPanel\n ]\n });\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n // Check if the panel should go into the sticky state immediately.\n this.checkIfShouldBeSticky();\n // Update sticky state of the panel as the window and ancestors are being scrolled.\n this.listenTo(global.document, 'scroll', (evt, data) => {\n this.checkIfShouldBeSticky(data.target);\n }, { useCapture: true });\n // Synchronize with `model.isActive` because sticking an inactive panel is pointless.\n this.listenTo(this, 'change:isActive', () => {\n this.checkIfShouldBeSticky();\n });\n }\n /**\n * Analyzes the environment to decide whether the panel should be sticky or not.\n * Then handles the positioning of the panel.\n *\n * @param [scrollTarget] The element which is being scrolled.\n */\n checkIfShouldBeSticky(scrollTarget) {\n // @if CK_DEBUG_STICKYPANEL // RectDrawer.clear();\n if (!this.limiterElement || !this.isActive) {\n this._unstick();\n return;\n }\n const scrollableAncestors = getScrollableAncestors(this.limiterElement);\n if (scrollTarget && !scrollableAncestors.includes(scrollTarget)) {\n return;\n }\n const visibleAncestorsRect = getElementsIntersectionRect(scrollableAncestors, this.viewportTopOffset);\n const limiterRect = new Rect(this.limiterElement);\n // @if CK_DEBUG_STICKYPANEL // if ( visibleAncestorsRect ) {\n // @if CK_DEBUG_STICKYPANEL // \tRectDrawer.draw( visibleAncestorsRect,\n // @if CK_DEBUG_STICKYPANEL // \t\t{ outlineWidth: '3px', opacity: '.8', outlineColor: 'red', outlineOffset: '-3px' },\n // @if CK_DEBUG_STICKYPANEL // \t\t'Visible anc'\n // @if CK_DEBUG_STICKYPANEL // \t);\n // @if CK_DEBUG_STICKYPANEL // }\n // @if CK_DEBUG_STICKYPANEL //\n // @if CK_DEBUG_STICKYPANEL // RectDrawer.draw( limiterRect,\n // @if CK_DEBUG_STICKYPANEL // \t{ outlineWidth: '3px', opacity: '.8', outlineColor: 'green', outlineOffset: '-3px' },\n // @if CK_DEBUG_STICKYPANEL // \t'Limiter'\n // @if CK_DEBUG_STICKYPANEL // );\n // Stick the panel only if\n // * the limiter's ancestors are intersecting with each other so that some of their rects are visible,\n // * and the limiter's top edge is above the visible ancestors' top edge.\n if (visibleAncestorsRect && limiterRect.top < visibleAncestorsRect.top) {\n const visibleLimiterRect = limiterRect.getIntersection(visibleAncestorsRect);\n // Sticky the panel only if the limiter's visible rect is at least partially visible in the\n // visible ancestors' rects intersection.\n if (visibleLimiterRect) {\n // @if CK_DEBUG_STICKYPANEL // RectDrawer.draw( visibleLimiterRect,\n // @if CK_DEBUG_STICKYPANEL // \t{ outlineWidth: '3px', opacity: '.8', outlineColor: 'fuchsia', outlineOffset: '-3px',\n // @if CK_DEBUG_STICKYPANEL // \t\tbackgroundColor: 'rgba(255, 0, 255, .3)' },\n // @if CK_DEBUG_STICKYPANEL // \t'Visible limiter'\n // @if CK_DEBUG_STICKYPANEL // );\n const visibleAncestorsTop = visibleAncestorsRect.top;\n // Check if there's a change the panel can be sticky to the bottom of the limiter.\n if (visibleAncestorsTop + this._contentPanelRect.height + this.limiterBottomOffset > visibleLimiterRect.bottom) {\n const stickyBottomOffset = Math.max(limiterRect.bottom - visibleAncestorsRect.bottom, 0) + this.limiterBottomOffset;\n // @if CK_DEBUG_STICKYPANEL // const stickyBottomOffsetRect = new Rect( {\n // @if CK_DEBUG_STICKYPANEL // \ttop: limiterRect.bottom - stickyBottomOffset, left: 0, right: 2000,\n // @if CK_DEBUG_STICKYPANEL // \tbottom: limiterRect.bottom - stickyBottomOffset, width: 2000, height: 1\n // @if CK_DEBUG_STICKYPANEL // } );\n // @if CK_DEBUG_STICKYPANEL // RectDrawer.draw( stickyBottomOffsetRect,\n // @if CK_DEBUG_STICKYPANEL // \t{ outlineWidth: '1px', opacity: '.8', outlineColor: 'black' },\n // @if CK_DEBUG_STICKYPANEL // \t'Sticky bottom offset'\n // @if CK_DEBUG_STICKYPANEL // );\n // Check if sticking the panel to the bottom of the limiter does not cause it to suddenly\n // move upwards if there's not enough space for it.\n if (limiterRect.bottom - stickyBottomOffset > limiterRect.top + this._contentPanelRect.height) {\n this._stickToBottomOfLimiter(stickyBottomOffset);\n }\n else {\n this._unstick();\n }\n }\n else {\n if (this._contentPanelRect.height + this.limiterBottomOffset < limiterRect.height) {\n this._stickToTopOfAncestors(visibleAncestorsTop);\n }\n else {\n this._unstick();\n }\n }\n }\n else {\n this._unstick();\n }\n }\n else {\n this._unstick();\n }\n // @if CK_DEBUG_STICKYPANEL // console.clear();\n // @if CK_DEBUG_STICKYPANEL // console.log( 'isSticky', this.isSticky );\n // @if CK_DEBUG_STICKYPANEL // console.log( '_isStickyToTheBottomOfLimiter', this._isStickyToTheBottomOfLimiter );\n // @if CK_DEBUG_STICKYPANEL // console.log( '_stickyTopOffset', this._stickyTopOffset );\n // @if CK_DEBUG_STICKYPANEL // console.log( '_stickyBottomOffset', this._stickyBottomOffset );\n }\n /**\n * Sticks the panel at the given CSS `top` offset.\n *\n * @private\n * @param topOffset\n */\n _stickToTopOfAncestors(topOffset) {\n this.isSticky = true;\n this._isStickyToTheBottomOfLimiter = false;\n this._stickyTopOffset = topOffset;\n this._stickyBottomOffset = null;\n this._marginLeft = toPx(-global.window.scrollX);\n }\n /**\n * Sticks the panel at the bottom of the limiter with a given CSS `bottom` offset.\n *\n * @private\n * @param stickyBottomOffset\n */\n _stickToBottomOfLimiter(stickyBottomOffset) {\n this.isSticky = true;\n this._isStickyToTheBottomOfLimiter = true;\n this._stickyTopOffset = null;\n this._stickyBottomOffset = stickyBottomOffset;\n this._marginLeft = toPx(-global.window.scrollX);\n }\n /**\n * Unsticks the panel putting it back to its original position.\n *\n * @private\n */\n _unstick() {\n this.isSticky = false;\n this._isStickyToTheBottomOfLimiter = false;\n this._stickyTopOffset = null;\n this._stickyBottomOffset = null;\n this._marginLeft = null;\n }\n /**\n * Returns the bounding rect of the {@link #_contentPanel}.\n *\n * @private\n */\n get _contentPanelRect() {\n return new Rect(this._contentPanel);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/toolbar/balloon/balloontoolbar\n */\nimport ContextualBalloon from '../../panel/balloon/contextualballoon';\nimport ToolbarView from '../toolbarview';\nimport BalloonPanelView, { generatePositions } from '../../panel/balloon/balloonpanelview';\nimport normalizeToolbarConfig from '../normalizetoolbarconfig';\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { FocusTracker, Rect, ResizeObserver, env, global, toUnit } from '@ckeditor/ckeditor5-utils';\nimport { debounce } from 'lodash-es';\nconst toPx = toUnit('px');\n/**\n * The contextual toolbar.\n *\n * It uses the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon plugin}.\n */\nexport default class BalloonToolbar extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'BalloonToolbar';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ContextualBalloon];\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n /**\n * An instance of the resize observer that allows to respond to changes in editable's geometry\n * so the toolbar can stay within its boundaries (and group toolbar items that do not fit).\n *\n * **Note**: Used only when `shouldNotGroupWhenFull` was **not** set in the\n * {@link module:core/editor/editorconfig~EditorConfig#balloonToolbar configuration}.\n *\n * **Note:** Created in {@link #init}.\n */\n this._resizeObserver = null;\n this._balloonConfig = normalizeToolbarConfig(editor.config.get('balloonToolbar'));\n this.toolbarView = this._createToolbarView();\n this.focusTracker = new FocusTracker();\n // Wait for the EditorUI#init. EditableElement is not available before.\n editor.ui.once('ready', () => {\n this.focusTracker.add(editor.ui.getEditableElement());\n this.focusTracker.add(this.toolbarView.element);\n });\n // Register the toolbar so it becomes available for Alt+F10 and Esc navigation.\n editor.ui.addToolbar(this.toolbarView, {\n beforeFocus: () => this.show(true),\n afterBlur: () => this.hide(),\n isContextual: true\n });\n this._balloon = editor.plugins.get(ContextualBalloon);\n this._fireSelectionChangeDebounced = debounce(() => this.fire('_selectionChangeDebounced'), 200);\n // The appearance of the BalloonToolbar method is event–driven.\n // It is possible to stop the #show event and this prevent the toolbar from showing up.\n this.decorate('show');\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const selection = editor.model.document.selection;\n // Show/hide the toolbar on editable focus/blur.\n this.listenTo(this.focusTracker, 'change:isFocused', (evt, name, isFocused) => {\n const isToolbarVisible = this._balloon.visibleView === this.toolbarView;\n if (!isFocused && isToolbarVisible) {\n this.hide();\n }\n else if (isFocused) {\n this.show();\n }\n });\n // Hide the toolbar when the selection is changed by a direct change or has changed to collapsed.\n this.listenTo(selection, 'change:range', (evt, data) => {\n if (data.directChange || selection.isCollapsed) {\n this.hide();\n }\n // Fire internal `_selectionChangeDebounced` event to use it for showing\n // the toolbar after the selection stops changing.\n this._fireSelectionChangeDebounced();\n });\n // Show the toolbar when the selection stops changing.\n this.listenTo(this, '_selectionChangeDebounced', () => {\n if (this.editor.editing.view.document.isFocused) {\n this.show();\n }\n });\n if (!this._balloonConfig.shouldNotGroupWhenFull) {\n this.listenTo(editor, 'ready', () => {\n const editableElement = editor.ui.view.editable.element;\n // Set #toolbarView's max-width on the initialization and update it on the editable resize.\n this._resizeObserver = new ResizeObserver(editableElement, entry => {\n // The max-width equals 90% of the editable's width for the best user experience.\n // The value keeps the balloon very close to the boundaries of the editable and limits the cases\n // when the balloon juts out from the editable element it belongs to.\n this.toolbarView.maxWidth = toPx(entry.contentRect.width * .9);\n });\n });\n }\n // Listen to the toolbar view and whenever it changes its geometry due to some items being\n // grouped or ungrouped, update the position of the balloon because a shorter/longer toolbar\n // means the balloon could be pointing at the wrong place. Once updated, the balloon will point\n // at the right selection in the content again.\n // https://github.com/ckeditor/ckeditor5/issues/6444\n this.listenTo(this.toolbarView, 'groupedItemsUpdate', () => {\n this._updatePosition();\n });\n }\n /**\n * Creates toolbar components based on given configuration.\n * This needs to be done when all plugins are ready.\n */\n afterInit() {\n const factory = this.editor.ui.componentFactory;\n this.toolbarView.fillFromConfig(this._balloonConfig, factory);\n }\n /**\n * Creates the toolbar view instance.\n */\n _createToolbarView() {\n const t = this.editor.locale.t;\n const shouldGroupWhenFull = !this._balloonConfig.shouldNotGroupWhenFull;\n const toolbarView = new ToolbarView(this.editor.locale, {\n shouldGroupWhenFull,\n isFloating: true\n });\n toolbarView.ariaLabel = t('Editor contextual toolbar');\n toolbarView.render();\n return toolbarView;\n }\n /**\n * Shows the toolbar and attaches it to the selection.\n *\n * Fires {@link #event:show} event which can be stopped to prevent the toolbar from showing up.\n *\n * @param showForCollapsedSelection When set `true`, the toolbar will show despite collapsed selection in the\n * editing view.\n */\n show(showForCollapsedSelection = false) {\n const editor = this.editor;\n const selection = editor.model.document.selection;\n const schema = editor.model.schema;\n // Do not add the toolbar to the balloon stack twice.\n if (this._balloon.hasView(this.toolbarView)) {\n return;\n }\n // Do not show the toolbar when the selection is collapsed.\n if (selection.isCollapsed && !showForCollapsedSelection) {\n return;\n }\n // Do not show the toolbar when there is more than one range in the selection and they fully contain selectable elements.\n // See https://github.com/ckeditor/ckeditor5/issues/6443.\n if (selectionContainsOnlyMultipleSelectables(selection, schema)) {\n return;\n }\n // Don not show the toolbar when all components inside are disabled\n // see https://github.com/ckeditor/ckeditor5-ui/issues/269.\n if (Array.from(this.toolbarView.items).every((item) => item.isEnabled !== undefined && !item.isEnabled)) {\n return;\n }\n // Update the toolbar position when the editor ui should be refreshed.\n this.listenTo(this.editor.ui, 'update', () => {\n this._updatePosition();\n });\n // Add the toolbar to the common editor contextual balloon.\n this._balloon.add({\n view: this.toolbarView,\n position: this._getBalloonPositionData(),\n balloonClassName: 'ck-toolbar-container'\n });\n }\n /**\n * Hides the toolbar.\n */\n hide() {\n if (this._balloon.hasView(this.toolbarView)) {\n this.stopListening(this.editor.ui, 'update');\n this._balloon.remove(this.toolbarView);\n }\n }\n /**\n * Returns positioning options for the {@link #_balloon}. They control the way balloon is attached\n * to the selection.\n */\n _getBalloonPositionData() {\n const editor = this.editor;\n const view = editor.editing.view;\n const viewDocument = view.document;\n const viewSelection = viewDocument.selection;\n // Get direction of the selection.\n const isBackward = viewDocument.selection.isBackward;\n return {\n // Because the target for BalloonPanelView is a Rect (not DOMRange), it's geometry will stay fixed\n // as the window scrolls. To let the BalloonPanelView follow such Rect, is must be continuously\n // computed and hence, the target is defined as a function instead of a static value.\n // https://github.com/ckeditor/ckeditor5-ui/issues/195\n target: () => {\n const range = isBackward ? viewSelection.getFirstRange() : viewSelection.getLastRange();\n const rangeRects = Rect.getDomRangeRects(view.domConverter.viewRangeToDom(range));\n // Select the proper range rect depending on the direction of the selection.\n if (isBackward) {\n return rangeRects[0];\n }\n else {\n // Ditch the zero-width \"orphan\" rect in the next line for the forward selection if there's\n // another one preceding it. It is not rendered as a selection by the web browser anyway.\n // https://github.com/ckeditor/ckeditor5-ui/issues/308\n if (rangeRects.length > 1 && rangeRects[rangeRects.length - 1].width === 0) {\n rangeRects.pop();\n }\n return rangeRects[rangeRects.length - 1];\n }\n },\n positions: this._getBalloonPositions(isBackward)\n };\n }\n /**\n * Updates the position of the {@link #_balloon} to make up for changes:\n *\n * * in the geometry of the selection it is attached to (e.g. the selection moved in the viewport or expanded or shrunk),\n * * or the geometry of the balloon toolbar itself (e.g. the toolbar has grouped or ungrouped some items and it is shorter or longer).\n */\n _updatePosition() {\n this._balloon.updatePosition(this._getBalloonPositionData());\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n this.stopListening();\n this._fireSelectionChangeDebounced.cancel();\n this.toolbarView.destroy();\n this.focusTracker.destroy();\n if (this._resizeObserver) {\n this._resizeObserver.destroy();\n }\n }\n /**\n * Returns toolbar positions for the given direction of the selection.\n */\n _getBalloonPositions(isBackward) {\n const isSafariIniOS = env.isSafari && env.isiOS;\n // https://github.com/ckeditor/ckeditor5/issues/7707\n const positions = isSafariIniOS ? generatePositions({\n // 20px when zoomed out. Less then 20px when zoomed in; the \"radius\" of the native selection handle gets\n // smaller as the user zooms in. No less than the default v-offset, though.\n heightOffset: Math.max(BalloonPanelView.arrowHeightOffset, Math.round(20 / global.window.visualViewport.scale))\n }) : BalloonPanelView.defaultPositions;\n return isBackward ? [\n positions.northWestArrowSouth,\n positions.northWestArrowSouthWest,\n positions.northWestArrowSouthEast,\n positions.northWestArrowSouthMiddleEast,\n positions.northWestArrowSouthMiddleWest,\n positions.southWestArrowNorth,\n positions.southWestArrowNorthWest,\n positions.southWestArrowNorthEast,\n positions.southWestArrowNorthMiddleWest,\n positions.southWestArrowNorthMiddleEast\n ] : [\n positions.southEastArrowNorth,\n positions.southEastArrowNorthEast,\n positions.southEastArrowNorthWest,\n positions.southEastArrowNorthMiddleEast,\n positions.southEastArrowNorthMiddleWest,\n positions.northEastArrowSouth,\n positions.northEastArrowSouthEast,\n positions.northEastArrowSouthWest,\n positions.northEastArrowSouthMiddleEast,\n positions.northEastArrowSouthMiddleWest\n ];\n }\n}\n/**\n * Returns \"true\" when the selection has multiple ranges and each range contains a selectable element\n * and nothing else.\n */\nfunction selectionContainsOnlyMultipleSelectables(selection, schema) {\n // It doesn't contain multiple objects if there is only one range.\n if (selection.rangeCount === 1) {\n return false;\n }\n return [...selection.getRanges()].every(range => {\n const element = range.getContainedElement();\n return element && schema.isSelectable(element);\n });\n}\n","import api from \"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../css-loader/dist/cjs.js!../../../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./blocktoolbar.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/toolbar/block/blockbuttonview\n */\nimport ButtonView from '../../button/buttonview';\nimport { toUnit } from '@ckeditor/ckeditor5-utils';\nimport '../../../theme/components/toolbar/blocktoolbar.css';\nconst toPx = toUnit('px');\n/**\n * The block button view class.\n *\n * This view represents a button attached next to block element where the selection is anchored.\n *\n * See {@link module:ui/toolbar/block/blocktoolbar~BlockToolbar}.\n */\nexport default class BlockButtonView extends ButtonView {\n /**\n * @inheritDoc\n */\n constructor(locale) {\n super(locale);\n const bind = this.bindTemplate;\n // Hide button on init.\n this.isVisible = false;\n this.isToggleable = true;\n this.set('top', 0);\n this.set('left', 0);\n this.extendTemplate({\n attributes: {\n class: 'ck-block-toolbar-button',\n style: {\n top: bind.to('top', val => toPx(val)),\n left: bind.to('left', val => toPx(val))\n }\n }\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/toolbar/block/blocktoolbar\n */\n/* global window */\nimport { Plugin, icons } from '@ckeditor/ckeditor5-core';\nimport { Rect, ResizeObserver, getOptimalPosition, toUnit } from '@ckeditor/ckeditor5-utils';\nimport BlockButtonView from './blockbuttonview';\nimport BalloonPanelView from '../../panel/balloon/balloonpanelview';\nimport ToolbarView from '../toolbarview';\nimport clickOutsideHandler from '../../bindings/clickoutsidehandler';\nimport normalizeToolbarConfig from '../normalizetoolbarconfig';\nconst toPx = toUnit('px');\nconst { pilcrow } = icons;\n/**\n * The block toolbar plugin.\n *\n * This plugin provides a button positioned next to the block of content where the selection is anchored.\n * Upon clicking the button, a dropdown providing access to editor features shows up, as configured in\n * {@link module:core/editor/editorconfig~EditorConfig#blockToolbar}.\n *\n * By default, the button is displayed next to all elements marked in {@link module:engine/model/schema~Schema}\n * as `$block` for which the toolbar provides at least one option.\n *\n * By default, the button is attached so its right boundary is touching the\n * {@link module:engine/view/editableelement~EditableElement}:\n *\n * ```\n * __ |\n * | || This is a block of content that the\n * ¯¯ | button is attached to. This is a\n * | block of content that the button is\n * | attached to.\n * ```\n *\n * The position of the button can be adjusted using the CSS `transform` property:\n *\n * ```css\n * .ck-block-toolbar-button {\n * \ttransform: translateX( -10px );\n * }\n * ```\n *\n * ```\n * __ |\n * | | | This is a block of content that the\n * ¯¯ | button is attached to. This is a\n * | block of content that the button is\n * | attached to.\n * ```\n *\n * **Note**: If you plan to run the editor in a right–to–left (RTL) language, keep in mind the button\n * will be attached to the **right** boundary of the editable area. In that case, make sure the\n * CSS position adjustment works properly by adding the following styles:\n *\n * ```css\n * .ck[dir=\"rtl\"] .ck-block-toolbar-button {\n * \ttransform: translateX( 10px );\n * }\n * ```\n */\nexport default class BlockToolbar extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'BlockToolbar';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n /**\n * An instance of the resize observer that allows to respond to changes in editable's geometry\n * so the toolbar can stay within its boundaries (and group toolbar items that do not fit).\n *\n * **Note**: Used only when `shouldNotGroupWhenFull` was **not** set in the\n * {@link module:core/editor/editorconfig~EditorConfig#blockToolbar configuration}.\n *\n * **Note:** Created in {@link #afterInit}.\n */\n this._resizeObserver = null;\n this._blockToolbarConfig = normalizeToolbarConfig(this.editor.config.get('blockToolbar'));\n this.toolbarView = this._createToolbarView();\n this.panelView = this._createPanelView();\n this.buttonView = this._createButtonView();\n // Close the #panelView upon clicking outside of the plugin UI.\n clickOutsideHandler({\n emitter: this.panelView,\n contextElements: [this.panelView.element, this.buttonView.element],\n activator: () => this.panelView.isVisible,\n callback: () => this._hidePanel()\n });\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Hides panel on a direct selection change.\n this.listenTo(editor.model.document.selection, 'change:range', (evt, data) => {\n if (data.directChange) {\n this._hidePanel();\n }\n });\n this.listenTo(editor.ui, 'update', () => this._updateButton());\n // `low` priority is used because of https://github.com/ckeditor/ckeditor5-core/issues/133.\n this.listenTo(editor, 'change:isReadOnly', () => this._updateButton(), { priority: 'low' });\n this.listenTo(editor.ui.focusTracker, 'change:isFocused', () => this._updateButton());\n // Reposition button on resize.\n this.listenTo(this.buttonView, 'change:isVisible', (evt, name, isVisible) => {\n if (isVisible) {\n // Keep correct position of button and panel on window#resize.\n this.buttonView.listenTo(window, 'resize', () => this._updateButton());\n }\n else {\n // Stop repositioning button when is hidden.\n this.buttonView.stopListening(window, 'resize');\n // Hide the panel when the button disappears.\n this._hidePanel();\n }\n });\n // Register the toolbar so it becomes available for Alt+F10 and Esc navigation.\n editor.ui.addToolbar(this.toolbarView, {\n beforeFocus: () => this._showPanel(),\n afterBlur: () => this._hidePanel()\n });\n }\n /**\n * Fills the toolbar with its items based on the configuration.\n *\n * **Note:** This needs to be done after all plugins are ready.\n */\n afterInit() {\n this.toolbarView.fillFromConfig(this._blockToolbarConfig, this.editor.ui.componentFactory);\n // Hide panel before executing each button in the panel.\n for (const item of this.toolbarView.items) {\n item.on('execute', () => this._hidePanel(true), { priority: 'high' });\n }\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n this.panelView.destroy();\n this.buttonView.destroy();\n this.toolbarView.destroy();\n if (this._resizeObserver) {\n this._resizeObserver.destroy();\n }\n }\n /**\n * Creates the {@link #toolbarView}.\n */\n _createToolbarView() {\n const t = this.editor.locale.t;\n const shouldGroupWhenFull = !this._blockToolbarConfig.shouldNotGroupWhenFull;\n const toolbarView = new ToolbarView(this.editor.locale, {\n shouldGroupWhenFull,\n isFloating: true\n });\n toolbarView.ariaLabel = t('Editor block content toolbar');\n return toolbarView;\n }\n /**\n * Creates the {@link #panelView}.\n */\n _createPanelView() {\n const editor = this.editor;\n const panelView = new BalloonPanelView(editor.locale);\n panelView.content.add(this.toolbarView);\n panelView.class = 'ck-toolbar-container';\n editor.ui.view.body.add(panelView);\n editor.ui.focusTracker.add(panelView.element);\n // Close #panelView on `Esc` press.\n this.toolbarView.keystrokes.set('Esc', (evt, cancel) => {\n this._hidePanel(true);\n cancel();\n });\n return panelView;\n }\n /**\n * Creates the {@link #buttonView}.\n */\n _createButtonView() {\n const editor = this.editor;\n const t = editor.t;\n const buttonView = new BlockButtonView(editor.locale);\n buttonView.set({\n label: t('Edit block'),\n icon: pilcrow,\n withText: false\n });\n // Bind the panelView observable properties to the buttonView.\n buttonView.bind('isOn').to(this.panelView, 'isVisible');\n buttonView.bind('tooltip').to(this.panelView, 'isVisible', isVisible => !isVisible);\n // Toggle the panelView upon buttonView#execute.\n this.listenTo(buttonView, 'execute', () => {\n if (!this.panelView.isVisible) {\n this._showPanel();\n }\n else {\n this._hidePanel(true);\n }\n });\n editor.ui.view.body.add(buttonView);\n editor.ui.focusTracker.add(buttonView.element);\n return buttonView;\n }\n /**\n * Shows or hides the button.\n * When all the conditions for displaying the button are matched, it shows the button. Hides otherwise.\n */\n _updateButton() {\n const editor = this.editor;\n const model = editor.model;\n const view = editor.editing.view;\n // Hides the button when the editor is not focused.\n if (!editor.ui.focusTracker.isFocused) {\n this._hideButton();\n return;\n }\n // Hides the button when the selection is in non-editable place.\n if (!editor.model.canEditAt(editor.model.document.selection)) {\n this._hideButton();\n return;\n }\n // Get the first selected block, button will be attached to this element.\n const modelTarget = Array.from(model.document.selection.getSelectedBlocks())[0];\n // Hides the button when there is no enabled item in toolbar for the current block element.\n if (!modelTarget || Array.from(this.toolbarView.items).every((item) => !item.isEnabled)) {\n this._hideButton();\n return;\n }\n // Get DOM target element.\n const domTarget = view.domConverter.mapViewToDom(editor.editing.mapper.toViewElement(modelTarget));\n // Show block button.\n this.buttonView.isVisible = true;\n // Make sure that the block toolbar panel is resized properly.\n this._setupToolbarResize();\n // Attach block button to target DOM element.\n this._attachButtonToElement(domTarget);\n // When panel is opened then refresh it position to be properly aligned with block button.\n if (this.panelView.isVisible) {\n this._showPanel();\n }\n }\n /**\n * Hides the button.\n */\n _hideButton() {\n this.buttonView.isVisible = false;\n }\n /**\n * Shows the {@link #toolbarView} attached to the {@link #buttonView}.\n * If the toolbar is already visible, then it simply repositions it.\n */\n _showPanel() {\n // Usually, the only way to show the toolbar is by pressing the block button. It makes it impossible for\n // the toolbar to show up when the button is invisible (feature does not make sense for the selection then).\n // The toolbar navigation using Alt+F10 does not access the button but shows the panel directly using this method.\n // So we need to check whether this is possible first.\n if (!this.buttonView.isVisible) {\n return;\n }\n const wasVisible = this.panelView.isVisible;\n // So here's the thing: If there was no initial panelView#show() or these two were in different order, the toolbar\n // positioning will break in RTL editors. Weird, right? What you show know is that the toolbar\n // grouping works thanks to:\n //\n // * the ResizeObserver, which kicks in as soon as the toolbar shows up in DOM (becomes visible again).\n // * the observable ToolbarView#maxWidth, which triggers re-grouping when changed.\n //\n // Here are the possible scenarios:\n //\n // 1. (WRONG ❌) If the #maxWidth is set when the toolbar is invisible, it won't affect item grouping (no DOMRects, no grouping).\n // Then, when panelView.pin() is called, the position of the toolbar will be calculated for the old\n // items grouping state, and when finally ResizeObserver kicks in (hey, the toolbar is visible now, right?)\n // it will group/ungroup some items and the length of the toolbar will change. But since in RTL the toolbar\n // is attached on the right side and the positioning uses CSS \"left\", it will result in the toolbar shifting\n // to the left and being displayed in the wrong place.\n // 2. (WRONG ❌) If the panelView.pin() is called first and #maxWidth set next, then basically the story repeats. The balloon\n // calculates the position for the old toolbar grouping state, then the toolbar re-groups items and because\n // it is positioned using CSS \"left\" it will move.\n // 3. (RIGHT ✅) We show the panel first (the toolbar does re-grouping but it does not matter), then the #maxWidth\n // is set allowing the toolbar to re-group again and finally panelView.pin() does the positioning when the\n // items grouping state is stable and final.\n //\n // https://github.com/ckeditor/ckeditor5/issues/6449, https://github.com/ckeditor/ckeditor5/issues/6575\n this.panelView.show();\n const editableElement = this._getSelectedEditableElement();\n this.toolbarView.maxWidth = this._getToolbarMaxWidth(editableElement);\n this.panelView.pin({\n target: this.buttonView.element,\n limiter: editableElement\n });\n if (!wasVisible) {\n this.toolbarView.items.get(0).focus();\n }\n }\n /**\n * Returns currently selected editable, based on the model selection.\n */\n _getSelectedEditableElement() {\n const selectedModelRootName = this.editor.model.document.selection.getFirstRange().root.rootName;\n return this.editor.ui.getEditableElement(selectedModelRootName);\n }\n /**\n * Hides the {@link #toolbarView}.\n *\n * @param focusEditable When `true`, the editable will be focused after hiding the panel.\n */\n _hidePanel(focusEditable) {\n this.panelView.isVisible = false;\n if (focusEditable) {\n this.editor.editing.view.focus();\n }\n }\n /**\n * Attaches the {@link #buttonView} to the target block of content.\n *\n * @param targetElement Target element.\n */\n _attachButtonToElement(targetElement) {\n const contentStyles = window.getComputedStyle(targetElement);\n const editableRect = new Rect(this._getSelectedEditableElement());\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n // When line height is not an integer then treat it as \"normal\".\n // MDN says that 'normal' == ~1.2 on desktop browsers.\n const contentLineHeight = parseInt(contentStyles.lineHeight, 10) || parseInt(contentStyles.fontSize, 10) * 1.2;\n const position = getOptimalPosition({\n element: this.buttonView.element,\n target: targetElement,\n positions: [\n (contentRect, buttonRect) => {\n let left;\n if (this.editor.locale.uiLanguageDirection === 'ltr') {\n left = editableRect.left - buttonRect.width;\n }\n else {\n left = editableRect.right;\n }\n return {\n top: contentRect.top + contentPaddingTop + (contentLineHeight - buttonRect.height) / 2,\n left\n };\n }\n ]\n });\n this.buttonView.top = position.top;\n this.buttonView.left = position.left;\n }\n /**\n * Creates a resize observer that observes selected editable and resizes the toolbar panel accordingly.\n */\n _setupToolbarResize() {\n const editableElement = this._getSelectedEditableElement();\n // Do this only if the automatic grouping is turned on.\n if (!this._blockToolbarConfig.shouldNotGroupWhenFull) {\n // If resize observer is attached to a different editable than currently selected editable, re-attach it.\n if (this._resizeObserver && this._resizeObserver.element !== editableElement) {\n this._resizeObserver.destroy();\n this._resizeObserver = null;\n }\n if (!this._resizeObserver) {\n this._resizeObserver = new ResizeObserver(editableElement, () => {\n this.toolbarView.maxWidth = this._getToolbarMaxWidth(editableElement);\n });\n }\n }\n }\n /**\n * Gets the {@link #toolbarView} max-width, based on given `editableElement` width plus the distance between the farthest\n * edge of the {@link #buttonView} and the editable.\n *\n * @returns A maximum width that toolbar can have, in pixels.\n */\n _getToolbarMaxWidth(editableElement) {\n const editableRect = new Rect(editableElement);\n const buttonRect = new Rect(this.buttonView.element);\n const isRTL = this.editor.locale.uiLanguageDirection === 'rtl';\n const offset = isRTL ? (buttonRect.left - editableRect.right) + buttonRect.width : editableRect.left - buttonRect.left;\n return toPx(editableRect.width + offset);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { EditorUI } from 'ckeditor5/src/ui';\nimport { enablePlaceholder } from 'ckeditor5/src/engine';\n/**\n * The decoupled editor UI class.\n */\nexport default class DecoupledEditorUI extends EditorUI {\n /**\n * Creates an instance of the decoupled editor UI class.\n *\n * @param editor The editor instance.\n * @param view The view of the UI.\n */\n constructor(editor, view) {\n super(editor);\n this.view = view;\n }\n /**\n * Initializes the UI.\n */\n init() {\n const editor = this.editor;\n const view = this.view;\n const editingView = editor.editing.view;\n const editable = view.editable;\n const editingRoot = editingView.document.getRoot();\n // The editable UI and editing root should share the same name. Then name is used\n // to recognize the particular editable, for instance in ARIA attributes.\n editable.name = editingRoot.rootName;\n view.render();\n // The editable UI element in DOM is available for sure only after the editor UI view has been rendered.\n // But it can be available earlier if a DOM element has been passed to DecoupledEditor.create().\n const editableElement = editable.element;\n // Register the editable UI view in the editor. A single editor instance can aggregate multiple\n // editable areas (roots) but the decoupled editor has only one.\n this.setEditableElement(editable.name, editableElement);\n // Let the editable UI element respond to the changes in the global editor focus\n // tracker. It has been added to the same tracker a few lines above but, in reality, there are\n // many focusable areas in the editor, like balloons, toolbars or dropdowns and as long\n // as they have focus, the editable should act like it is focused too (although technically\n // it isn't), e.g. by setting the proper CSS class, visually announcing focus to the user.\n // Doing otherwise will result in editable focus styles disappearing, once e.g. the\n // toolbar gets focused.\n view.editable.bind('isFocused').to(this.focusTracker);\n // Bind the editable UI element to the editing view, making it an end– and entry–point\n // of the editor's engine. This is where the engine meets the UI.\n editingView.attachDomRoot(editableElement);\n this._initPlaceholder();\n this._initToolbar();\n this.fire('ready');\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n const view = this.view;\n const editingView = this.editor.editing.view;\n editingView.detachDomRoot(view.editable.name);\n view.destroy();\n }\n /**\n * Initializes the inline editor toolbar and its panel.\n */\n _initToolbar() {\n const editor = this.editor;\n const view = this.view;\n const toolbar = view.toolbar;\n toolbar.fillFromConfig(editor.config.get('toolbar'), this.componentFactory);\n // Register the toolbar so it becomes available for Alt+F10 and Esc navigation.\n this.addToolbar(view.toolbar);\n }\n /**\n * Enable the placeholder text on the editing root.\n */\n _initPlaceholder() {\n const editor = this.editor;\n const editingView = editor.editing.view;\n const editingRoot = editingView.document.getRoot();\n const placeholder = editor.config.get('placeholder');\n if (placeholder) {\n const placeholderText = typeof placeholder === 'string' ? placeholder : placeholder[editingRoot.rootName];\n if (placeholderText) {\n editingRoot.placeholder = placeholderText;\n }\n }\n enablePlaceholder({\n view: editingView,\n element: editingRoot,\n isDirectHost: false,\n keepOnFocus: true\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module editor-decoupled/decouplededitoruiview\n */\nimport { EditorUIView, InlineEditableUIView, ToolbarView } from 'ckeditor5/src/ui';\n/**\n * The decoupled editor UI view. It is a virtual view providing an inline\n * {@link module:editor-decoupled/decouplededitoruiview~DecoupledEditorUIView#editable} and a\n * {@link module:editor-decoupled/decouplededitoruiview~DecoupledEditorUIView#toolbar}, but without any\n * specific arrangement of the components in the DOM.\n *\n * See {@link module:editor-decoupled/decouplededitor~DecoupledEditor.create `DecoupledEditor.create()`}\n * to learn more about this view.\n */\nexport default class DecoupledEditorUIView extends EditorUIView {\n /**\n * Creates an instance of the decoupled editor UI view.\n *\n * @param locale The {@link module:core/editor/editor~Editor#locale} instance.\n * @param editingView The editing view instance this view is related to.\n * @param options Configuration options for the view instance.\n * @param options.editableElement The editable element. If not specified, it will be automatically created by\n * {@link module:ui/editableui/editableuiview~EditableUIView}. Otherwise, the given element will be used.\n * @param options.shouldToolbarGroupWhenFull When set `true` enables automatic items grouping\n * in the main {@link module:editor-decoupled/decouplededitoruiview~DecoupledEditorUIView#toolbar toolbar}.\n * See {@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull} to learn more.\n */\n constructor(locale, editingView, options = {}) {\n super(locale);\n const t = locale.t;\n this.toolbar = new ToolbarView(locale, {\n shouldGroupWhenFull: options.shouldToolbarGroupWhenFull\n });\n this.editable = new InlineEditableUIView(locale, editingView, options.editableElement, {\n label: editableView => {\n return t('Rich Text Editor. Editing area: %0', editableView.name);\n }\n });\n // This toolbar may be placed anywhere in the page so things like font size need to be reset in it.\n // Because of the above, make sure the toolbar supports rounded corners.\n // Also, make sure the toolbar has the proper dir attribute because its ancestor may not have one\n // and some toolbar item styles depend on this attribute.\n this.toolbar.extendTemplate({\n attributes: {\n class: [\n 'ck-reset_all',\n 'ck-rounded-corners'\n ],\n dir: locale.uiLanguageDirection\n }\n });\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n this.registerChild([this.toolbar, this.editable]);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module editor-decoupled/decouplededitor\n */\nimport { Editor, Context, ElementApiMixin, DataApiMixin, secureSourceElement } from 'ckeditor5/src/core';\nimport { CKEditorError, getDataFromElement } from 'ckeditor5/src/utils';\nimport { ContextWatchdog, EditorWatchdog } from 'ckeditor5/src/watchdog';\nimport DecoupledEditorUI from './decouplededitorui';\nimport DecoupledEditorUIView from './decouplededitoruiview';\nimport { isElement as _isElement } from 'lodash-es';\n/**\n * The {@glink installation/getting-started/predefined-builds#document-editor decoupled editor} implementation.\n * It provides an inline editable and a toolbar. However, unlike other editors,\n * it does not render these components anywhere in the DOM unless configured.\n *\n * This type of an editor is dedicated to integrations which require a customized UI with an open\n * structure, allowing developers to specify the exact location of the interface.\n *\n * See the document editor {@glink examples/builds/document-editor demo} to learn about possible use cases\n * for the decoupled editor.\n *\n * In order to create a decoupled editor instance, use the static\n * {@link module:editor-decoupled/decouplededitor~DecoupledEditor.create `DecoupledEditor.create()`} method.\n *\n * Note that you will need to attach the editor toolbar to your web page manually, in a desired place, after the editor is initialized.\n *\n * # Decoupled editor and document editor build\n *\n * The decoupled editor can be used directly from source (if you installed the\n * [`@ckeditor/ckeditor5-editor-decoupled`](https://www.npmjs.com/package/@ckeditor/ckeditor5-editor-decoupled) package)\n * but it is also available in the\n * {@glink installation/getting-started/predefined-builds#document-editor document editor build}.\n *\n * {@glink installation/getting-started/predefined-builds Builds}\n * are ready-to-use editors with plugins bundled in. When using the editor from\n * source you need to take care of loading all plugins by yourself\n * (through the {@link module:core/editor/editorconfig~EditorConfig#plugins `config.plugins`} option).\n * Using the editor from source gives much better flexibility and allows for easier customization.\n *\n * Read more about initializing the editor from source or as a build in\n * {@link module:editor-decoupled/decouplededitor~DecoupledEditor.create `DecoupledEditor.create()`}.\n */\nexport default class DecoupledEditor extends DataApiMixin(ElementApiMixin(Editor)) {\n /**\n * Creates an instance of the decoupled editor.\n *\n * **Note:** Do not use the constructor to create editor instances. Use the static\n * {@link module:editor-decoupled/decouplededitor~DecoupledEditor.create `DecoupledEditor.create()`} method instead.\n *\n * @param sourceElementOrData The DOM element that will be the source for the created editor\n * (on which the editor will be initialized) or initial data for the editor. For more information see\n * {@link module:editor-balloon/ballooneditor~BalloonEditor.create `BalloonEditor.create()`}.\n * @param config The editor configuration.\n */\n constructor(sourceElementOrData, config = {}) {\n // If both `config.initialData` is set and initial data is passed as the constructor parameter, then throw.\n if (!isElement(sourceElementOrData) && config.initialData !== undefined) {\n // Documented in core/editor/editorconfig.jsdoc.\n // eslint-disable-next-line ckeditor5-rules/ckeditor-error-message\n throw new CKEditorError('editor-create-initial-data', null);\n }\n super(config);\n if (this.config.get('initialData') === undefined) {\n this.config.set('initialData', getInitialData(sourceElementOrData));\n }\n if (isElement(sourceElementOrData)) {\n this.sourceElement = sourceElementOrData;\n secureSourceElement(this, sourceElementOrData);\n }\n this.model.document.createRoot();\n const shouldToolbarGroupWhenFull = !this.config.get('toolbar.shouldNotGroupWhenFull');\n const view = new DecoupledEditorUIView(this.locale, this.editing.view, {\n editableElement: this.sourceElement,\n shouldToolbarGroupWhenFull\n });\n this.ui = new DecoupledEditorUI(this, view);\n }\n /**\n * Destroys the editor instance, releasing all resources used by it.\n *\n * Updates the original editor element with the data if the\n * {@link module:core/editor/editorconfig~EditorConfig#updateSourceElementOnDestroy `updateSourceElementOnDestroy`}\n * configuration option is set to `true`.\n *\n * **Note**: The decoupled editor does not remove the toolbar and editable when destroyed. You can\n * do that yourself in the destruction chain:\n *\n * ```ts\n * editor.destroy()\n * \t.then( () => {\n * \t\t// Remove the toolbar from DOM.\n * \t\teditor.ui.view.toolbar.element.remove();\n *\n * \t\t// Remove the editable from DOM.\n * \t\teditor.ui.view.editable.element.remove();\n *\n * \t\tconsole.log( 'Editor was destroyed' );\n * \t} );\n * ```\n */\n destroy() {\n // Cache the data, then destroy.\n // It's safe to assume that the model->view conversion will not work after super.destroy().\n const data = this.getData();\n this.ui.destroy();\n return super.destroy()\n .then(() => {\n if (this.sourceElement) {\n this.updateSourceElement(data);\n }\n });\n }\n /**\n * Creates a new decoupled editor instance.\n *\n * **Note:** remember that `DecoupledEditor` does not append the toolbar element to your web page, so you have to do it manually\n * after the editor has been initialized.\n *\n * There are two ways how the editor can be initialized.\n *\n * # Using an existing DOM element (and loading data from it)\n *\n * You can initialize the editor using an existing DOM element:\n *\n * ```ts\n * DecoupledEditor\n * \t.create( document.querySelector( '#editor' ) )\n * \t.then( editor => {\n * \t\tconsole.log( 'Editor was initialized', editor );\n *\n * \t\t// Append the toolbar to the element.\n * \t\tdocument.body.appendChild( editor.ui.view.toolbar.element );\n * \t} )\n * \t.catch( err => {\n * \t\tconsole.error( err.stack );\n * \t} );\n * ```\n *\n * The element's content will be used as the editor data and the element will become the editable element.\n *\n * # Creating a detached editor\n *\n * Alternatively, you can initialize the editor by passing the initial data directly as a string.\n * In this case, you will have to manually append both the toolbar element and the editable element to your web page.\n *\n * ```ts\n * DecoupledEditor\n * \t.create( '

Hello world!

' )\n * \t.then( editor => {\n * \t\tconsole.log( 'Editor was initialized', editor );\n *\n * \t\t// Append the toolbar to the element.\n * \t\tdocument.body.appendChild( editor.ui.view.toolbar.element );\n *\n * \t\t// Initial data was provided so the editor UI element needs to be added manually to the DOM.\n * \t\tdocument.body.appendChild( editor.ui.getEditableElement() );\n * \t} )\n * \t.catch( err => {\n * \t\tconsole.error( err.stack );\n * \t} );\n * ```\n *\n * This lets you dynamically append the editor to your web page whenever it is convenient for you. You may use this method if your\n * web page content is generated on the client side and the DOM structure is not ready at the moment when you initialize the editor.\n *\n * # Using an existing DOM element (and data provided in `config.initialData`)\n *\n * You can also mix these two ways by providing a DOM element to be used and passing the initial data through the configuration:\n *\n * ```ts\n * DecoupledEditor\n * \t.create( document.querySelector( '#editor' ), {\n * \t\tinitialData: '

Initial data

Foo bar.

'\n * \t} )\n * \t.then( editor => {\n * \t\tconsole.log( 'Editor was initialized', editor );\n *\n * \t\t// Append the toolbar to the element.\n * \t\tdocument.body.appendChild( editor.ui.view.toolbar.element );\n * \t} )\n * \t.catch( err => {\n * \t\tconsole.error( err.stack );\n * \t} );\n * ```\n *\n * This method can be used to initialize the editor on an existing element with the specified content in case if your integration\n * makes it difficult to set the content of the source element.\n *\n * Note that an error will be thrown if you pass the initial data both as the first parameter and also in the configuration.\n *\n * # Configuring the editor\n *\n * See the {@link module:core/editor/editorconfig~EditorConfig editor configuration documentation} to learn more about\n * customizing plugins, toolbar and more.\n *\n * # Using the editor from source\n *\n * The code samples listed in the previous sections of this documentation assume that you are using an\n * {@glink installation/getting-started/predefined-builds editor build}\n * (for example – `@ckeditor/ckeditor5-build-decoupled`).\n *\n * If you want to use the decoupled editor from source (`@ckeditor/ckeditor5-editor-decoupled/src/decouplededitor`),\n * you need to define the list of\n * {@link module:core/editor/editorconfig~EditorConfig#plugins plugins to be initialized} and\n * {@link module:core/editor/editorconfig~EditorConfig#toolbar toolbar items}. Read more about using the editor from\n * source in the {@glink installation/advanced/alternative-setups/integrating-from-source-webpack dedicated guide}.\n *\n * @param sourceElementOrData The DOM element that will be the source for the created editor\n * or the editor's initial data.\n *\n * If a DOM element is passed, its content will be automatically loaded to the editor upon initialization.\n * The editor data will be set back to the original element once the editor is destroyed only if the\n * {@link module:core/editor/editorconfig~EditorConfig#updateSourceElementOnDestroy updateSourceElementOnDestroy}\n * option is set to `true`.\n *\n * If the initial data is passed, a detached editor will be created. In this case you need to insert it into the DOM manually.\n * It is available via\n * {@link module:editor-decoupled/decouplededitorui~DecoupledEditorUI#getEditableElement `editor.ui.getEditableElement()`}.\n *\n * @param config The editor configuration.\n * @returns A promise resolved once the editor is ready. The promise resolves with the created editor instance.\n */\n static create(sourceElementOrData, config = {}) {\n return new Promise(resolve => {\n if (isElement(sourceElementOrData) && sourceElementOrData.tagName === 'TEXTAREA') {\n // Documented in core/editor/editor.js\n // eslint-disable-next-line ckeditor5-rules/ckeditor-error-message\n throw new CKEditorError('editor-wrong-element', null);\n }\n const editor = new this(sourceElementOrData, config);\n resolve(editor.initPlugins()\n .then(() => editor.ui.init())\n .then(() => editor.data.init(editor.config.get('initialData')))\n .then(() => editor.fire('ready'))\n .then(() => editor));\n });\n }\n}\n/**\n * The {@link module:core/context~Context} class.\n *\n * Exposed as static editor field for easier access in editor builds.\n */\nDecoupledEditor.Context = Context;\n/**\n * The {@link module:watchdog/editorwatchdog~EditorWatchdog} class.\n *\n * Exposed as static editor field for easier access in editor builds.\n */\nDecoupledEditor.EditorWatchdog = EditorWatchdog;\n/**\n * The {@link module:watchdog/contextwatchdog~ContextWatchdog} class.\n *\n * Exposed as static editor field for easier access in editor builds.\n */\nDecoupledEditor.ContextWatchdog = ContextWatchdog;\nfunction getInitialData(sourceElementOrData) {\n return isElement(sourceElementOrData) ? getDataFromElement(sourceElementOrData) : sourceElementOrData;\n}\nfunction isElement(value) {\n return _isElement(value);\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/* globals HTMLTextAreaElement */\n/**\n * @module utils/dom/getdatafromelement\n */\n/**\n * Gets data from a given source element.\n *\n * @param el The element from which the data will be retrieved.\n * @returns The data string.\n */\nexport default function getDataFromElement(el) {\n if (el instanceof HTMLTextAreaElement) {\n return el.value;\n }\n return el.innerHTML;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module core/editor/utils/securesourceelement\n */\nimport { CKEditorError } from '@ckeditor/ckeditor5-utils';\n/**\n * Marks the source element on which the editor was initialized. This prevents other editor instances from using this element.\n *\n * Running multiple editor instances on the same source element causes various issues and it is\n * crucial this helper is called as soon as the source element is known to prevent collisions.\n *\n * @param editor Editor instance.\n * @param sourceElement Element to bind with the editor instance.\n */\nexport default function secureSourceElement(editor, sourceElement) {\n if (sourceElement.ckeditorInstance) {\n /**\n * A DOM element used to create the editor (e.g.\n * {@link module:editor-inline/inlineeditor~InlineEditor.create `InlineEditor.create()`})\n * has already been used to create another editor instance. Make sure each editor is\n * created with an unique DOM element.\n *\n * @error editor-source-element-already-used\n * @param element DOM element that caused the collision.\n */\n throw new CKEditorError('editor-source-element-already-used', editor);\n }\n sourceElement.ckeditorInstance = editor;\n editor.once('destroy', () => {\n delete sourceElement.ckeditorInstance;\n });\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { CKEditorError, logWarning } from 'ckeditor5/src/utils';\n/**\n * @module alignment/utils\n */\n/**\n * The list of supported alignment options:\n *\n * * `'left'`,\n * * `'right'`,\n * * `'center'`,\n * * `'justify'`\n */\nexport const supportedOptions = ['left', 'right', 'center', 'justify'];\n/**\n * Checks whether the passed option is supported by {@link module:alignment/alignmentediting~AlignmentEditing}.\n *\n * @param option The option value to check.\n */\nexport function isSupported(option) {\n return supportedOptions.includes(option);\n}\n/**\n * Checks whether alignment is the default one considering the direction\n * of the editor content.\n *\n * @param alignment The name of the alignment to check.\n * @param locale The {@link module:core/editor/editor~Editor#locale} instance.\n */\nexport function isDefault(alignment, locale) {\n // Right now only LTR is supported so the 'left' value is always the default one.\n if (locale.contentLanguageDirection == 'rtl') {\n return alignment === 'right';\n }\n else {\n return alignment === 'left';\n }\n}\n/**\n * Brings the configuration to the common form, an array of objects.\n *\n * @param configuredOptions Alignment plugin configuration.\n * @returns Normalized object holding the configuration.\n */\nexport function normalizeAlignmentOptions(configuredOptions) {\n const normalizedOptions = configuredOptions\n .map(option => {\n let result;\n if (typeof option == 'string') {\n result = { name: option };\n }\n else {\n result = option;\n }\n return result;\n })\n // Remove all unknown options.\n .filter(option => {\n const isNameValid = supportedOptions.includes(option.name);\n if (!isNameValid) {\n /**\n * The `name` in one of the `alignment.options` is not recognized.\n * The available options are: `'left'`, `'right'`, `'center'` and `'justify'`.\n *\n * @error alignment-config-name-not-recognized\n * @param option Options with unknown value of the `name` property.\n */\n logWarning('alignment-config-name-not-recognized', { option });\n }\n return isNameValid;\n });\n const classNameCount = normalizedOptions.filter(option => Boolean(option.className)).length;\n // We either use classes for all styling options or for none.\n if (classNameCount && classNameCount < normalizedOptions.length) {\n /**\n * The `className` property has to be defined for all options once at least one option declares `className`.\n *\n * @error alignment-config-classnames-are-missing\n * @param configuredOptions Contents of `alignment.options`.\n */\n throw new CKEditorError('alignment-config-classnames-are-missing', { configuredOptions });\n }\n // Validate resulting config.\n normalizedOptions.forEach((option, index, allOptions) => {\n const succeedingOptions = allOptions.slice(index + 1);\n const nameAlreadyExists = succeedingOptions.some(item => item.name == option.name);\n if (nameAlreadyExists) {\n /**\n * The same `name` in one of the `alignment.options` was already declared.\n * Each `name` representing one alignment option can be set exactly once.\n *\n * @error alignment-config-name-already-defined\n * @param option First option that declares given `name`.\n * @param configuredOptions Contents of `alignment.options`.\n */\n throw new CKEditorError('alignment-config-name-already-defined', { option, configuredOptions });\n }\n // The `className` property is present. Check for duplicates then.\n if (option.className) {\n const classNameAlreadyExists = succeedingOptions.some(item => item.className == option.className);\n if (classNameAlreadyExists) {\n /**\n * The same `className` in one of the `alignment.options` was already declared.\n *\n * @error alignment-config-classname-already-defined\n * @param option First option that declares given `className`.\n * @param configuredOptions\n * Contents of `alignment.options`.\n */\n throw new CKEditorError('alignment-config-classname-already-defined', { option, configuredOptions });\n }\n }\n });\n return normalizedOptions;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module alignment/alignmentcommand\n */\nimport { Command } from 'ckeditor5/src/core';\nimport { first } from 'ckeditor5/src/utils';\nimport { isDefault } from './utils';\nconst ALIGNMENT = 'alignment';\n/**\n * The alignment command plugin.\n */\nexport default class AlignmentCommand extends Command {\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const locale = editor.locale;\n const firstBlock = first(this.editor.model.document.selection.getSelectedBlocks());\n // As first check whether to enable or disable the command as the value will always be false if the command cannot be enabled.\n this.isEnabled = Boolean(firstBlock) && this._canBeAligned(firstBlock);\n if (this.isEnabled && firstBlock.hasAttribute('alignment')) {\n this.value = firstBlock.getAttribute('alignment');\n }\n else {\n this.value = locale.contentLanguageDirection === 'rtl' ? 'right' : 'left';\n }\n }\n /**\n * Executes the command. Applies the alignment `value` to the selected blocks.\n * If no `value` is passed, the `value` is the default one or it is equal to the currently selected block's alignment attribute,\n * the command will remove the attribute from the selected blocks.\n *\n * @param options Options for the executed command.\n * @param options.value The value to apply.\n * @fires execute\n */\n execute(options = {}) {\n const editor = this.editor;\n const locale = editor.locale;\n const model = editor.model;\n const doc = model.document;\n const value = options.value;\n model.change(writer => {\n // Get only those blocks from selected that can have alignment set\n const blocks = Array.from(doc.selection.getSelectedBlocks()).filter(block => this._canBeAligned(block));\n const currentAlignment = blocks[0].getAttribute('alignment');\n // Remove alignment attribute if current alignment is:\n // - default (should not be stored in model as it will bloat model data)\n // - equal to currently set\n // - or no value is passed - denotes default alignment.\n const removeAlignment = isDefault(value, locale) || currentAlignment === value || !value;\n if (removeAlignment) {\n removeAlignmentFromSelection(blocks, writer);\n }\n else {\n setAlignmentOnSelection(blocks, writer, value);\n }\n });\n }\n /**\n * Checks whether a block can have alignment set.\n *\n * @param block The block to be checked.\n */\n _canBeAligned(block) {\n return this.editor.model.schema.checkAttribute(block, ALIGNMENT);\n }\n}\n/**\n * Removes the alignment attribute from blocks.\n */\nfunction removeAlignmentFromSelection(blocks, writer) {\n for (const block of blocks) {\n writer.removeAttribute(ALIGNMENT, block);\n }\n}\n/**\n * Sets the alignment attribute on blocks.\n */\nfunction setAlignmentOnSelection(blocks, writer, alignment) {\n for (const block of blocks) {\n writer.setAttribute(ALIGNMENT, alignment, block);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module alignment/alignmentediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport AlignmentCommand from './alignmentcommand';\nimport { isDefault, isSupported, normalizeAlignmentOptions, supportedOptions } from './utils';\n/**\n * The alignment editing feature. It introduces the {@link module:alignment/alignmentcommand~AlignmentCommand command} and adds\n * the `alignment` attribute for block elements in the {@link module:engine/model/model~Model model}.\n */\nexport default class AlignmentEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'AlignmentEditing';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n editor.config.define('alignment', {\n options: supportedOptions.map(option => ({ name: option }))\n });\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const locale = editor.locale;\n const schema = editor.model.schema;\n const options = normalizeAlignmentOptions(editor.config.get('alignment.options'));\n // Filter out unsupported options and those that are redundant, e.g. `left` in LTR / `right` in RTL mode.\n const optionsToConvert = options.filter(option => isSupported(option.name) && !isDefault(option.name, locale));\n // Once there is at least one `className` defined, we switch to alignment with classes.\n const shouldUseClasses = optionsToConvert.some(option => !!option.className);\n // Allow alignment attribute on all blocks.\n schema.extend('$block', { allowAttributes: 'alignment' });\n editor.model.schema.setAttributeProperties('alignment', { isFormatting: true });\n if (shouldUseClasses) {\n editor.conversion.attributeToAttribute(buildClassDefinition(optionsToConvert));\n }\n else {\n // Downcast inline styles.\n editor.conversion.for('downcast').attributeToAttribute(buildDowncastInlineDefinition(optionsToConvert));\n }\n const upcastInlineDefinitions = buildUpcastInlineDefinitions(optionsToConvert);\n // Always upcast from inline styles.\n for (const definition of upcastInlineDefinitions) {\n editor.conversion.for('upcast').attributeToAttribute(definition);\n }\n const upcastCompatibilityDefinitions = buildUpcastCompatibilityDefinitions(optionsToConvert);\n // Always upcast from deprecated `align` attribute.\n for (const definition of upcastCompatibilityDefinitions) {\n editor.conversion.for('upcast').attributeToAttribute(definition);\n }\n editor.commands.add('alignment', new AlignmentCommand(editor));\n }\n}\n/**\n * Prepare downcast conversion definition for inline alignment styling.\n */\nfunction buildDowncastInlineDefinition(options) {\n const view = {};\n for (const { name } of options) {\n view[name] = {\n key: 'style',\n value: {\n 'text-align': name\n }\n };\n }\n const definition = {\n model: {\n key: 'alignment',\n values: options.map(option => option.name)\n },\n view\n };\n return definition;\n}\n/**\n * Prepare upcast definitions for inline alignment styles.\n */\nfunction buildUpcastInlineDefinitions(options) {\n const definitions = [];\n for (const { name } of options) {\n definitions.push({\n view: {\n key: 'style',\n value: {\n 'text-align': name\n }\n },\n model: {\n key: 'alignment',\n value: name\n }\n });\n }\n return definitions;\n}\n/**\n * Prepare upcast definitions for deprecated `align` attribute.\n */\nfunction buildUpcastCompatibilityDefinitions(options) {\n const definitions = [];\n for (const { name } of options) {\n definitions.push({\n view: {\n key: 'align',\n value: name\n },\n model: {\n key: 'alignment',\n value: name\n }\n });\n }\n return definitions;\n}\n/**\n * Prepare conversion definitions for upcast and downcast alignment with classes.\n */\nfunction buildClassDefinition(options) {\n const view = {};\n for (const option of options) {\n view[option.name] = {\n key: 'class',\n value: option.className\n };\n }\n const definition = {\n model: {\n key: 'alignment',\n values: options.map(option => option.name)\n },\n view\n };\n return definition;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module alignment/alignmentui\n */\nimport { Plugin, icons } from 'ckeditor5/src/core';\nimport { ButtonView, createDropdown, addToolbarToDropdown } from 'ckeditor5/src/ui';\nimport { isSupported, normalizeAlignmentOptions } from './utils';\nconst iconsMap = new Map([\n ['left', icons.alignLeft],\n ['right', icons.alignRight],\n ['center', icons.alignCenter],\n ['justify', icons.alignJustify]\n]);\n/**\n * The default alignment UI plugin.\n *\n * It introduces the `'alignment:left'`, `'alignment:right'`, `'alignment:center'` and `'alignment:justify'` buttons\n * and the `'alignment'` dropdown.\n */\nexport default class AlignmentUI extends Plugin {\n /**\n * Returns the localized option titles provided by the plugin.\n *\n * The following localized titles corresponding with\n * {@link module:alignment/alignmentconfig~AlignmentConfig#options} are available:\n *\n * * `'left'`,\n * * `'right'`,\n * * `'center'`,\n * * `'justify'`.\n *\n * @readonly\n */\n get localizedOptionTitles() {\n const t = this.editor.t;\n return {\n 'left': t('Align left'),\n 'right': t('Align right'),\n 'center': t('Align center'),\n 'justify': t('Justify')\n };\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'AlignmentUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const componentFactory = editor.ui.componentFactory;\n const t = editor.t;\n const options = normalizeAlignmentOptions(editor.config.get('alignment.options'));\n options\n .map(option => option.name)\n .filter(isSupported)\n .forEach(option => this._addButton(option));\n componentFactory.add('alignment', locale => {\n const dropdownView = createDropdown(locale);\n // Add existing alignment buttons to dropdown's toolbar.\n addToolbarToDropdown(dropdownView, () => options.map(option => componentFactory.create(`alignment:${option.name}`)), {\n enableActiveItemFocusOnDropdownOpen: true,\n isVertical: true,\n ariaLabel: t('Text alignment toolbar')\n });\n // Configure dropdown properties an behavior.\n dropdownView.buttonView.set({\n label: t('Text alignment'),\n tooltip: true\n });\n dropdownView.extendTemplate({\n attributes: {\n class: 'ck-alignment-dropdown'\n }\n });\n // The default icon depends on the direction of the content.\n const defaultIcon = locale.contentLanguageDirection === 'rtl' ? iconsMap.get('right') : iconsMap.get('left');\n const command = editor.commands.get('alignment');\n // Change icon to reflect current selection's alignment.\n dropdownView.buttonView.bind('icon').to(command, 'value', value => iconsMap.get(value) || defaultIcon);\n // Enable button if any of the buttons is enabled.\n dropdownView.bind('isEnabled').to(command, 'isEnabled');\n // Focus the editable after executing the command.\n // Overrides a default behaviour where the focus is moved to the dropdown button (#12125).\n this.listenTo(dropdownView, 'execute', () => {\n editor.editing.view.focus();\n });\n return dropdownView;\n });\n }\n /**\n * Helper method for initializing the button and linking it with an appropriate command.\n *\n * @param option The name of the alignment option for which the button is added.\n */\n _addButton(option) {\n const editor = this.editor;\n editor.ui.componentFactory.add(`alignment:${option}`, locale => {\n const command = editor.commands.get('alignment');\n const buttonView = new ButtonView(locale);\n buttonView.set({\n label: this.localizedOptionTitles[option],\n icon: iconsMap.get(option),\n tooltip: true,\n isToggleable: true\n });\n // Bind button model to command.\n buttonView.bind('isEnabled').to(command);\n buttonView.bind('isOn').to(command, 'value', value => value === option);\n // Execute command.\n this.listenTo(buttonView, 'execute', () => {\n editor.execute('alignment', { value: option });\n editor.editing.view.focus();\n });\n return buttonView;\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * Change buffer allows to group atomic changes (like characters that have been typed) into\n * {@link module:engine/model/batch~Batch batches}.\n *\n * Batches represent single undo steps, hence changes added to one single batch are undone together.\n *\n * The buffer has a configurable limit of atomic changes that it can accommodate. After the limit was\n * exceeded (see {@link ~ChangeBuffer#input}), a new batch is created in {@link ~ChangeBuffer#batch}.\n *\n * To use the change buffer you need to let it know about the number of changes that were added to the batch:\n *\n * ```ts\n * const buffer = new ChangeBuffer( model, LIMIT );\n *\n * // Later on in your feature:\n * buffer.batch.insert( pos, insertedCharacters );\n * buffer.input( insertedCharacters.length );\n * ```\n */\nexport default class ChangeBuffer {\n /**\n * Creates a new instance of the change buffer.\n *\n * @param limit The maximum number of atomic changes which can be contained in one batch.\n */\n constructor(model, limit = 20) {\n /**\n * The current batch instance.\n */\n this._batch = null;\n this.model = model;\n this._size = 0;\n this.limit = limit;\n this._isLocked = false;\n // The function to be called in order to notify the buffer about batches which appeared in the document.\n // The callback will check whether it is a new batch and in that case the buffer will be flushed.\n //\n // The reason why the buffer needs to be flushed whenever a new batch appears is that the changes added afterwards\n // should be added to a new batch. For instance, when the user types, then inserts an image, and then types again,\n // the characters typed after inserting the image should be added to a different batch than the characters typed before.\n this._changeCallback = (evt, batch) => {\n if (batch.isLocal && batch.isUndoable && batch !== this._batch) {\n this._reset(true);\n }\n };\n this._selectionChangeCallback = () => {\n this._reset();\n };\n this.model.document.on('change', this._changeCallback);\n this.model.document.selection.on('change:range', this._selectionChangeCallback);\n this.model.document.selection.on('change:attribute', this._selectionChangeCallback);\n }\n /**\n * The current batch to which a feature should add its operations. Once the {@link #size}\n * is reached or exceeds the {@link #limit}, the batch is set to a new instance and the size is reset.\n */\n get batch() {\n if (!this._batch) {\n this._batch = this.model.createBatch({ isTyping: true });\n }\n return this._batch;\n }\n /**\n * The number of atomic changes in the buffer. Once it exceeds the {@link #limit},\n * the {@link #batch batch} is set to a new one.\n */\n get size() {\n return this._size;\n }\n /**\n * The input number of changes into the buffer. Once the {@link #size} is\n * reached or exceeds the {@link #limit}, the batch is set to a new instance and the size is reset.\n *\n * @param changeCount The number of atomic changes to input.\n */\n input(changeCount) {\n this._size += changeCount;\n if (this._size >= this.limit) {\n this._reset(true);\n }\n }\n /**\n * Whether the buffer is locked. A locked buffer cannot be reset unless it gets unlocked.\n */\n get isLocked() {\n return this._isLocked;\n }\n /**\n * Locks the buffer.\n */\n lock() {\n this._isLocked = true;\n }\n /**\n * Unlocks the buffer.\n */\n unlock() {\n this._isLocked = false;\n }\n /**\n * Destroys the buffer.\n */\n destroy() {\n this.model.document.off('change', this._changeCallback);\n this.model.document.selection.off('change:range', this._selectionChangeCallback);\n this.model.document.selection.off('change:attribute', this._selectionChangeCallback);\n }\n /**\n * Resets the change buffer.\n *\n * @param ignoreLock Whether internal lock {@link #isLocked} should be ignored.\n */\n _reset(ignoreLock = false) {\n if (!this.isLocked || ignoreLock) {\n this._batch = null;\n this._size = 0;\n }\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module typing/inserttextcommand\n */\nimport { Command } from '@ckeditor/ckeditor5-core';\nimport ChangeBuffer from './utils/changebuffer';\n/**\n * The insert text command. Used by the {@link module:typing/input~Input input feature} to handle typing.\n */\nexport default class InsertTextCommand extends Command {\n /**\n * Creates an instance of the command.\n *\n * @param undoStepSize The maximum number of atomic changes\n * which can be contained in one batch in the command buffer.\n */\n constructor(editor, undoStepSize) {\n super(editor);\n this._buffer = new ChangeBuffer(editor.model, undoStepSize);\n // Since this command may execute on different selectable than selection, it should be checked directly in execute block.\n this._isEnabledBasedOnSelection = false;\n }\n /**\n * The current change buffer.\n */\n get buffer() {\n return this._buffer;\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n this._buffer.destroy();\n }\n /**\n * Executes the input command. It replaces the content within the given range with the given text.\n * Replacing is a two step process, first the content within the range is removed and then the new text is inserted\n * at the beginning of the range (which after the removal is a collapsed range).\n *\n * @fires execute\n * @param options The command options.\n */\n execute(options = {}) {\n const model = this.editor.model;\n const doc = model.document;\n const text = options.text || '';\n const textInsertions = text.length;\n let selection = doc.selection;\n if (options.selection) {\n selection = options.selection;\n }\n else if (options.range) {\n selection = model.createSelection(options.range);\n }\n // Stop executing if selectable is in non-editable place.\n if (!model.canEditAt(selection)) {\n return;\n }\n const resultRange = options.resultRange;\n model.enqueueChange(this._buffer.batch, writer => {\n this._buffer.lock();\n model.deleteContent(selection);\n if (text) {\n model.insertContent(writer.createText(text, doc.selection.getAttributes()), selection);\n }\n if (resultRange) {\n writer.setSelection(resultRange);\n }\n else if (!selection.is('documentSelection')) {\n writer.setSelection(selection);\n }\n this._buffer.unlock();\n this._buffer.input(textInsertions);\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module typing/inserttextobserver\n */\nimport { env, EventInfo } from '@ckeditor/ckeditor5-utils';\nimport { DomEventData, Observer, FocusObserver } from '@ckeditor/ckeditor5-engine';\nconst TYPING_INPUT_TYPES = [\n // For collapsed range:\n //\t- This one is a regular typing (all browsers, all systems).\n //\t- This one is used by Chrome when typing accented letter – 2nd step when the user selects the accent (Mac).\n // For non-collapsed range:\n //\t- This one is used by Chrome when typing accented letter – when the selection box first appears (Mac).\n //\t- This one is used by Safari when accepting spell check suggestions from the context menu (Mac).\n 'insertText',\n // This one is used by Safari when typing accented letter (Mac).\n // This one is used by Safari when accepting spell check suggestions from the autocorrection pop-up (Mac).\n 'insertReplacementText'\n];\n/**\n * Text insertion observer introduces the {@link module:engine/view/document~Document#event:insertText} event.\n */\nexport default class InsertTextObserver extends Observer {\n /**\n * @inheritDoc\n */\n constructor(view) {\n super(view);\n this.focusObserver = view.getObserver(FocusObserver);\n // On Android composition events should immediately be applied to the model. Rendering is not disabled.\n // On non-Android the model is updated only on composition end.\n // On Android we can't rely on composition start/end to update model.\n if (env.isAndroid) {\n TYPING_INPUT_TYPES.push('insertCompositionText');\n }\n const viewDocument = view.document;\n viewDocument.on('beforeinput', (evt, data) => {\n if (!this.isEnabled) {\n return;\n }\n const { data: text, targetRanges, inputType, domEvent } = data;\n if (!TYPING_INPUT_TYPES.includes(inputType)) {\n return;\n }\n // Mark the latest focus change as complete (we are typing in editable after the focus\n // so the selection is in the focused element).\n this.focusObserver.flush();\n const eventInfo = new EventInfo(viewDocument, 'insertText');\n viewDocument.fire(eventInfo, new DomEventData(view, domEvent, {\n text,\n selection: view.createSelection(targetRanges)\n }));\n // Stop the beforeinput event if `delete` event was stopped.\n // https://github.com/ckeditor/ckeditor5/issues/753\n if (eventInfo.stop.called) {\n evt.stop();\n }\n });\n // Note: The priority must be lower than the CompositionObserver handler to call it after the renderer is unblocked.\n viewDocument.on('compositionend', (evt, { data, domEvent }) => {\n // On Android composition events are immediately applied to the model.\n // On non-Android the model is updated only on composition end.\n // On Android we can't rely on composition start/end to update model.\n if (!this.isEnabled || env.isAndroid) {\n return;\n }\n // In case of aborted composition.\n if (!data) {\n return;\n }\n // @if CK_DEBUG_TYPING // if ( ( window as any ).logCKETyping ) {\n // @if CK_DEBUG_TYPING // \tconsole.log( `%c[InsertTextObserver]%c Fire insertText event, text: ${ JSON.stringify( data ) }`,\n // @if CK_DEBUG_TYPING // \t\t'font-weight: bold; color: green;', ''\n // @if CK_DEBUG_TYPING // \t);\n // @if CK_DEBUG_TYPING // }\n // How do we know where to insert the composed text?\n // The selection observer is blocked and the view is not updated with the composition changes.\n // There were three options:\n // - Store the selection on `compositionstart` and use it now. This wouldn't work in RTC\n // where the view would change and the stored selection might get incorrect.\n // We'd need to fallback to the current view selection anyway.\n // - Use the current view selection. This is a bit weird and non-intuitive because\n // this isn't necessarily the selection on which the user started composing.\n // We cannot even know whether it's still collapsed (there might be some weird\n // editor feature that changed it in unpredictable ways for us). But it's by far\n // the simplest solution and should be stable (the selection is definitely correct)\n // and probably mostly predictable (features usually don't modify the selection\n // unless called explicitly by the user).\n // - Try to follow it from the `beforeinput` events. This would be really complex as each\n // `beforeinput` would come with just the range it's changing and we'd need to calculate that.\n // We decided to go with the 2nd option for its simplicity and stability.\n viewDocument.fire('insertText', new DomEventData(view, domEvent, {\n text: data,\n selection: viewDocument.selection\n }));\n }, { priority: 'lowest' });\n }\n /**\n * @inheritDoc\n */\n observe() { }\n /**\n * @inheritDoc\n */\n stopObserving() { }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module typing/input\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { env } from '@ckeditor/ckeditor5-utils';\nimport InsertTextCommand from './inserttextcommand';\nimport InsertTextObserver from './inserttextobserver';\n/**\n * Handles text input coming from the keyboard or other input methods.\n */\nexport default class Input extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'Input';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const model = editor.model;\n const view = editor.editing.view;\n const modelSelection = model.document.selection;\n view.addObserver(InsertTextObserver);\n // TODO The above default configuration value should be defined using editor.config.define() once it's fixed.\n const insertTextCommand = new InsertTextCommand(editor, editor.config.get('typing.undoStep') || 20);\n // Register `insertText` command and add `input` command as an alias for backward compatibility.\n editor.commands.add('insertText', insertTextCommand);\n editor.commands.add('input', insertTextCommand);\n this.listenTo(view.document, 'insertText', (evt, data) => {\n // Rendering is disabled while composing so prevent events that will be rendered by the engine\n // and should not be applied by the browser.\n if (!view.document.isComposing) {\n data.preventDefault();\n }\n const { text, selection: viewSelection, resultRange: viewResultRange } = data;\n // If view selection was specified, translate it to model selection.\n const modelRanges = Array.from(viewSelection.getRanges()).map(viewRange => {\n return editor.editing.mapper.toModelRange(viewRange);\n });\n let insertText = text;\n // Typing in English on Android is firing composition events for the whole typed word.\n // We need to check the target range text to only apply the difference.\n if (env.isAndroid) {\n const selectedText = Array.from(modelRanges[0].getItems()).reduce((rangeText, node) => {\n return rangeText + (node.is('$textProxy') ? node.data : '');\n }, '');\n if (selectedText) {\n if (selectedText.length <= insertText.length) {\n if (insertText.startsWith(selectedText)) {\n insertText = insertText.substring(selectedText.length);\n modelRanges[0].start = modelRanges[0].start.getShiftedBy(selectedText.length);\n }\n }\n else {\n if (selectedText.startsWith(insertText)) {\n // TODO this should be mapped as delete?\n modelRanges[0].start = modelRanges[0].start.getShiftedBy(insertText.length);\n insertText = '';\n }\n }\n }\n }\n const insertTextCommandData = {\n text: insertText,\n selection: model.createSelection(modelRanges)\n };\n // @if CK_DEBUG_TYPING // if ( ( window as any ).logCKETyping ) {\n // @if CK_DEBUG_TYPING // \tconsole.log( '%c[Input]%c Execute insertText:',\n // @if CK_DEBUG_TYPING // \t\t'font-weight: bold; color: green;', '',\n // @if CK_DEBUG_TYPING // \t\tinsertText,\n // @if CK_DEBUG_TYPING // \t\t`[${ modelRanges[ 0 ].start.path }]-[${ modelRanges[ 0 ].end.path }]`\n // @if CK_DEBUG_TYPING // \t);\n // @if CK_DEBUG_TYPING // }\n if (viewResultRange) {\n insertTextCommandData.resultRange = editor.editing.mapper.toModelRange(viewResultRange);\n }\n editor.execute('insertText', insertTextCommandData);\n view.scrollToTheSelection();\n });\n if (env.isAndroid) {\n // On Android with English keyboard, the composition starts just by putting caret\n // at the word end or by selecting a table column. This is not a real composition started.\n // Trigger delete content on first composition key pressed.\n this.listenTo(view.document, 'keydown', (evt, data) => {\n if (modelSelection.isCollapsed || data.keyCode != 229 || !view.document.isComposing) {\n return;\n }\n // @if CK_DEBUG_TYPING // if ( ( window as any ).logCKETyping ) {\n // @if CK_DEBUG_TYPING // \tconst firstPositionPath = modelSelection.getFirstPosition()!.path;\n // @if CK_DEBUG_TYPING // \tconst lastPositionPath = modelSelection.getLastPosition()!.path;\n // @if CK_DEBUG_TYPING // \tconsole.log( '%c[Input]%c KeyDown 229 -> model.deleteContent()',\n // @if CK_DEBUG_TYPING // \t\t'font-weight: bold; color: green;', '',\n // @if CK_DEBUG_TYPING // \t\t`[${ firstPositionPath }]-[${ lastPositionPath }]`\n // @if CK_DEBUG_TYPING // \t);\n // @if CK_DEBUG_TYPING // }\n deleteSelectionContent(model, insertTextCommand);\n });\n }\n else {\n // Note: The priority must precede the CompositionObserver handler to call it before\n // the renderer is blocked, because we want to render this change.\n this.listenTo(view.document, 'compositionstart', () => {\n if (modelSelection.isCollapsed) {\n return;\n }\n // @if CK_DEBUG_TYPING // if ( ( window as any ).logCKETyping ) {\n // @if CK_DEBUG_TYPING // \tconst firstPositionPath = modelSelection.getFirstPosition()!.path;\n // @if CK_DEBUG_TYPING // \tconst lastPositionPath = modelSelection.getLastPosition()!.path;\n // @if CK_DEBUG_TYPING // \tconsole.log( '%c[Input]%c Composition start -> model.deleteContent()',\n // @if CK_DEBUG_TYPING // \t\t'font-weight: bold; color: green;', '',\n // @if CK_DEBUG_TYPING // \t\t`[${ firstPositionPath }]-[${ lastPositionPath }]`\n // @if CK_DEBUG_TYPING // \t);\n // @if CK_DEBUG_TYPING // }\n deleteSelectionContent(model, insertTextCommand);\n });\n }\n }\n}\nfunction deleteSelectionContent(model, insertTextCommand) {\n // By relying on the state of the input command we allow disabling the entire input easily\n // by just disabling the input command. We could’ve used here the delete command but that\n // would mean requiring the delete feature which would block loading one without the other.\n // We could also check the editor.isReadOnly property, but that wouldn't allow to block\n // the input without blocking other features.\n if (!insertTextCommand.isEnabled) {\n return;\n }\n const buffer = insertTextCommand.buffer;\n buffer.lock();\n model.enqueueChange(buffer.batch, () => {\n model.deleteContent(model.document.selection);\n });\n buffer.unlock();\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module typing/deletecommand\n */\nimport { Command } from '@ckeditor/ckeditor5-core';\nimport { count } from '@ckeditor/ckeditor5-utils';\nimport ChangeBuffer from './utils/changebuffer';\n/**\n * The delete command. Used by the {@link module:typing/delete~Delete delete feature} to handle the Delete and\n * Backspace keys.\n */\nexport default class DeleteCommand extends Command {\n /**\n * Creates an instance of the command.\n *\n * @param direction The directionality of the delete describing in what direction it\n * should consume the content when the selection is collapsed.\n */\n constructor(editor, direction) {\n super(editor);\n this.direction = direction;\n this._buffer = new ChangeBuffer(editor.model, editor.config.get('typing.undoStep'));\n // Since this command may execute on different selectable than selection, it should be checked directly in execute block.\n this._isEnabledBasedOnSelection = false;\n }\n /**\n * The current change buffer.\n */\n get buffer() {\n return this._buffer;\n }\n /**\n * Executes the delete command. Depending on whether the selection is collapsed or not, deletes its content\n * or a piece of content in the {@link #direction defined direction}.\n *\n * @fires execute\n * @param options The command options.\n * @param options.unit See {@link module:engine/model/utils/modifyselection~modifySelection}'s options.\n * @param options.sequence A number describing which subsequent delete event it is without the key being released.\n * See the {@link module:engine/view/document~Document#event:delete} event data.\n * @param options.selection Selection to remove. If not set, current model selection will be used.\n */\n execute(options = {}) {\n const model = this.editor.model;\n const doc = model.document;\n model.enqueueChange(this._buffer.batch, writer => {\n this._buffer.lock();\n const selection = writer.createSelection(options.selection || doc.selection);\n // Don't execute command when selection is in non-editable place.\n if (!model.canEditAt(selection)) {\n return;\n }\n const sequence = options.sequence || 1;\n // Do not replace the whole selected content if selection was collapsed.\n // This prevents such situation:\n //\n //

[]

\t-->

[

]

\t\t-->

\n // starting content\t\t--> after `modifySelection`\t--> after `deleteContent`.\n const doNotResetEntireContent = selection.isCollapsed;\n // Try to extend the selection in the specified direction.\n if (selection.isCollapsed) {\n model.modifySelection(selection, {\n direction: this.direction,\n unit: options.unit,\n treatEmojiAsSingleUnit: true\n });\n }\n // Check if deleting in an empty editor. See #61.\n if (this._shouldEntireContentBeReplacedWithParagraph(sequence)) {\n this._replaceEntireContentWithParagraph(writer);\n return;\n }\n // Check if deleting in the first empty block.\n // See https://github.com/ckeditor/ckeditor5/issues/8137.\n if (this._shouldReplaceFirstBlockWithParagraph(selection, sequence)) {\n this.editor.execute('paragraph', { selection });\n return;\n }\n // If selection is still collapsed, then there's nothing to delete.\n if (selection.isCollapsed) {\n return;\n }\n let changeCount = 0;\n selection.getFirstRange().getMinimalFlatRanges().forEach(range => {\n changeCount += count(range.getWalker({ singleCharacters: true, ignoreElementEnd: true, shallow: true }));\n });\n // @if CK_DEBUG_TYPING // if ( ( window as any ).logCKETyping ) {\n // @if CK_DEBUG_TYPING // \tconsole.log( '%c[DeleteCommand]%c Delete content',\n // @if CK_DEBUG_TYPING // \t\t'font-weight: bold; color: green;', '',\n // @if CK_DEBUG_TYPING // \t\t`[${ selection.getFirstPosition()!.path }]-[${ selection.getLastPosition()!.path }]`, options\n // @if CK_DEBUG_TYPING // \t);\n // @if CK_DEBUG_TYPING // }\n model.deleteContent(selection, {\n doNotResetEntireContent,\n direction: this.direction\n });\n this._buffer.input(changeCount);\n writer.setSelection(selection);\n this._buffer.unlock();\n });\n }\n /**\n * If the user keeps Backspace or Delete key pressed, the content of the current\n * editable will be cleared. However, this will not yet lead to resetting the remaining block to a paragraph\n * (which happens e.g. when the user does Ctrl + A, Backspace).\n *\n * But, if the user pressed the key in an empty editable for the first time,\n * we want to replace the entire content with a paragraph if:\n *\n * * the current limit element is empty,\n * * the paragraph is allowed in the limit element,\n * * the limit doesn't already have a paragraph inside.\n *\n * See https://github.com/ckeditor/ckeditor5-typing/issues/61.\n *\n * @param sequence A number describing which subsequent delete event it is without the key being released.\n */\n _shouldEntireContentBeReplacedWithParagraph(sequence) {\n // Does nothing if user pressed and held the \"Backspace\" or \"Delete\" key.\n if (sequence > 1) {\n return false;\n }\n const model = this.editor.model;\n const doc = model.document;\n const selection = doc.selection;\n const limitElement = model.schema.getLimitElement(selection);\n // If a collapsed selection contains the whole content it means that the content is empty\n // (from the user perspective).\n const limitElementIsEmpty = selection.isCollapsed && selection.containsEntireContent(limitElement);\n if (!limitElementIsEmpty) {\n return false;\n }\n if (!model.schema.checkChild(limitElement, 'paragraph')) {\n return false;\n }\n const limitElementFirstChild = limitElement.getChild(0);\n // Does nothing if the limit element already contains only a paragraph.\n // We ignore the case when paragraph might have some inline elements (

[]

)\n // because we don't support such cases yet and it's unclear whether inlineWidget shouldn't be a limit itself.\n if (limitElementFirstChild && limitElementFirstChild.is('element', 'paragraph')) {\n return false;\n }\n return true;\n }\n /**\n * The entire content is replaced with the paragraph. Selection is moved inside the paragraph.\n *\n * @param writer The model writer.\n */\n _replaceEntireContentWithParagraph(writer) {\n const model = this.editor.model;\n const doc = model.document;\n const selection = doc.selection;\n const limitElement = model.schema.getLimitElement(selection);\n const paragraph = writer.createElement('paragraph');\n writer.remove(writer.createRangeIn(limitElement));\n writer.insert(paragraph, limitElement);\n writer.setSelection(paragraph, 0);\n }\n /**\n * Checks if the selection is inside an empty element that is the first child of the limit element\n * and should be replaced with a paragraph.\n *\n * @param selection The selection.\n * @param sequence A number describing which subsequent delete event it is without the key being released.\n */\n _shouldReplaceFirstBlockWithParagraph(selection, sequence) {\n const model = this.editor.model;\n // Does nothing if user pressed and held the \"Backspace\" key or it was a \"Delete\" button.\n if (sequence > 1 || this.direction != 'backward') {\n return false;\n }\n if (!selection.isCollapsed) {\n return false;\n }\n const position = selection.getFirstPosition();\n const limitElement = model.schema.getLimitElement(position);\n const limitElementFirstChild = limitElement.getChild(0);\n // Only elements that are direct children of the limit element can be replaced.\n // Unwrapping from a block quote should be handled in a dedicated feature.\n if (position.parent != limitElementFirstChild) {\n return false;\n }\n // A block should be replaced only if it was empty.\n if (!selection.containsEntireContent(limitElementFirstChild)) {\n return false;\n }\n // Replace with a paragraph only if it's allowed there.\n if (!model.schema.checkChild(limitElement, 'paragraph')) {\n return false;\n }\n // Does nothing if the limit element already contains only a paragraph.\n if (limitElementFirstChild.name == 'paragraph') {\n return false;\n }\n return true;\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module typing/deleteobserver\n */\nimport { env, keyCodes, isInsideCombinedSymbol, isInsideEmojiSequence, isInsideSurrogatePair } from '@ckeditor/ckeditor5-utils';\nimport { BubblingEventInfo, DomEventData, Observer } from '@ckeditor/ckeditor5-engine';\nconst DELETE_CHARACTER = 'character';\nconst DELETE_WORD = 'word';\nconst DELETE_CODE_POINT = 'codePoint';\nconst DELETE_SELECTION = 'selection';\nconst DELETE_BACKWARD = 'backward';\nconst DELETE_FORWARD = 'forward';\nconst DELETE_EVENT_TYPES = {\n // --------------------------------------- Backward delete types -----------------------------------------------------\n // This happens in Safari on Mac when some content is selected and Ctrl + K is pressed.\n deleteContent: {\n unit: DELETE_SELECTION,\n // According to the Input Events Level 2 spec, this delete type has no direction\n // but to keep things simple, let's default to backward.\n direction: DELETE_BACKWARD\n },\n // Chrome and Safari on Mac: Backspace or Ctrl + H\n deleteContentBackward: {\n // This kind of deletions must be done on the code point-level instead of target range provided by the DOM beforeinput event.\n // Take for instance \"👨‍👩‍👧‍👧\", it equals:\n //\n //\t* [ \"👨\", \"ZERO WIDTH JOINER\", \"👩\", \"ZERO WIDTH JOINER\", \"👧\", \"ZERO WIDTH JOINER\", \"👧\" ]\n //\t* or simply \"\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}\"\n //\n // The range provided by the browser would cause the entire multi-byte grapheme to disappear while the user\n // intention when deleting backwards (\"👨‍👩‍👧‍👧[]\", then backspace) is gradual \"decomposition\" (first to \"👨‍👩‍👧‍[]\",\n // then to \"👨‍👩‍[]\", etc.).\n //\n //\t* \"👨‍👩‍👧‍👧[]\" + backward delete (by code point) -> results in \"👨‍👩‍👧[]\", removed the last \"👧\" 👍\n //\t* \"👨‍👩‍👧‍👧[]\" + backward delete (by character) -> results in \"[]\", removed the whole grapheme 👎\n //\n // Deleting by code-point is simply a better UX. See \"deleteContentForward\" to learn more.\n unit: DELETE_CODE_POINT,\n direction: DELETE_BACKWARD\n },\n // On Mac: Option + Backspace.\n // On iOS: Hold the backspace for a while and the whole words will start to disappear.\n deleteWordBackward: {\n unit: DELETE_WORD,\n direction: DELETE_BACKWARD\n },\n // Safari on Mac: Cmd + Backspace\n deleteHardLineBackward: {\n unit: DELETE_SELECTION,\n direction: DELETE_BACKWARD\n },\n // Chrome on Mac: Cmd + Backspace.\n deleteSoftLineBackward: {\n unit: DELETE_SELECTION,\n direction: DELETE_BACKWARD\n },\n // --------------------------------------- Forward delete types -----------------------------------------------------\n // Chrome on Mac: Fn + Backspace or Ctrl + D\n // Safari on Mac: Ctrl + K or Ctrl + D\n deleteContentForward: {\n // Unlike backward delete, this delete must be performed by character instead of by code point, which\n // provides the best UX for working with accented letters.\n // Take, for example \"b̂\" (\"\\u0062\\u0302\", or [ \"LATIN SMALL LETTER B\", \"COMBINING CIRCUMFLEX ACCENT\" ]):\n //\n //\t* \"b̂[]\" + backward delete (by code point) -> results in \"b[]\", removed the combining mark 👍\n //\t* \"[]b̂\" + forward delete (by code point) -> results in \"[]^\", a bare combining mark does that not make sense when alone 👎\n //\t* \"[]b̂\" + forward delete (by character) -> results in \"[]\", removed both \"b\" and the combining mark 👍\n //\n // See: \"deleteContentBackward\" to learn more.\n unit: DELETE_CHARACTER,\n direction: DELETE_FORWARD\n },\n // On Mac: Fn + Option + Backspace.\n deleteWordForward: {\n unit: DELETE_WORD,\n direction: DELETE_FORWARD\n },\n // Chrome on Mac: Ctrl + K (you have to disable the Link plugin first, though, because it uses the same keystroke)\n // This is weird that it does not work in Safari on Mac despite being listed in the official shortcuts listing\n // on Apple's webpage.\n deleteHardLineForward: {\n unit: DELETE_SELECTION,\n direction: DELETE_FORWARD\n },\n // At this moment there is no known way to trigger this event type but let's keep it for the symmetry with\n // deleteSoftLineBackward.\n deleteSoftLineForward: {\n unit: DELETE_SELECTION,\n direction: DELETE_FORWARD\n }\n};\n/**\n * Delete observer introduces the {@link module:engine/view/document~Document#event:delete} event.\n */\nexport default class DeleteObserver extends Observer {\n /**\n * @inheritDoc\n */\n constructor(view) {\n super(view);\n const document = view.document;\n // It matters how many subsequent deletions were made, e.g. when the backspace key was pressed and held\n // by the user for some time. For instance, if such scenario ocurred and the heading the selection was\n // anchored to was the only content of the editor, it will not be converted into a paragraph (the user\n // wanted to clean it up, not remove it, it's about UX). Check out the DeleteCommand implementation to learn more.\n //\n // Fun fact: Safari on Mac won't fire beforeinput for backspace in an empty heading (only content).\n let sequence = 0;\n document.on('keydown', () => {\n sequence++;\n });\n document.on('keyup', () => {\n sequence = 0;\n });\n document.on('beforeinput', (evt, data) => {\n if (!this.isEnabled) {\n return;\n }\n const { targetRanges, domEvent, inputType } = data;\n const deleteEventSpec = DELETE_EVENT_TYPES[inputType];\n if (!deleteEventSpec) {\n return;\n }\n const deleteData = {\n direction: deleteEventSpec.direction,\n unit: deleteEventSpec.unit,\n sequence\n };\n if (deleteData.unit == DELETE_SELECTION) {\n deleteData.selectionToRemove = view.createSelection(targetRanges[0]);\n }\n // The default deletion unit for deleteContentBackward is a single code point\n // but if the browser provides a wider target range then we should use it.\n if (inputType === 'deleteContentBackward') {\n // On Android, deleteContentBackward has sequence 1 by default.\n if (env.isAndroid) {\n deleteData.sequence = 1;\n }\n // The beforeInput event wants more than a single character to be removed.\n if (shouldUseTargetRanges(targetRanges)) {\n deleteData.unit = DELETE_SELECTION;\n deleteData.selectionToRemove = view.createSelection(targetRanges);\n }\n }\n const eventInfo = new BubblingEventInfo(document, 'delete', targetRanges[0]);\n document.fire(eventInfo, new DomEventData(view, domEvent, deleteData));\n // Stop the beforeinput event if `delete` event was stopped.\n // https://github.com/ckeditor/ckeditor5/issues/753\n if (eventInfo.stop.called) {\n evt.stop();\n }\n });\n // TODO: to be removed when https://bugs.chromium.org/p/chromium/issues/detail?id=1365311 is solved.\n if (env.isBlink) {\n enableChromeWorkaround(this);\n }\n }\n /**\n * @inheritDoc\n */\n observe() { }\n /**\n * @inheritDoc\n */\n stopObserving() { }\n}\n/**\n * Enables workaround for the issue https://github.com/ckeditor/ckeditor5/issues/11904.\n */\nfunction enableChromeWorkaround(observer) {\n const view = observer.view;\n const document = view.document;\n let pressedKeyCode = null;\n let beforeInputReceived = false;\n document.on('keydown', (evt, { keyCode }) => {\n pressedKeyCode = keyCode;\n beforeInputReceived = false;\n });\n document.on('keyup', (evt, { keyCode, domEvent }) => {\n const selection = document.selection;\n const shouldFireDeleteEvent = observer.isEnabled &&\n keyCode == pressedKeyCode &&\n isDeleteKeyCode(keyCode) &&\n !selection.isCollapsed &&\n !beforeInputReceived;\n pressedKeyCode = null;\n if (shouldFireDeleteEvent) {\n const targetRange = selection.getFirstRange();\n const eventInfo = new BubblingEventInfo(document, 'delete', targetRange);\n const deleteData = {\n unit: DELETE_SELECTION,\n direction: getDeleteDirection(keyCode),\n selectionToRemove: selection\n };\n document.fire(eventInfo, new DomEventData(view, domEvent, deleteData));\n }\n });\n document.on('beforeinput', (evt, { inputType }) => {\n const deleteEventSpec = DELETE_EVENT_TYPES[inputType];\n const isMatchingBeforeInput = isDeleteKeyCode(pressedKeyCode) &&\n deleteEventSpec &&\n deleteEventSpec.direction == getDeleteDirection(pressedKeyCode);\n if (isMatchingBeforeInput) {\n beforeInputReceived = true;\n }\n }, { priority: 'high' });\n document.on('beforeinput', (evt, { inputType, data }) => {\n const shouldIgnoreBeforeInput = pressedKeyCode == keyCodes.delete &&\n inputType == 'insertText' &&\n data == '\\x7f'; // Delete character :P\n if (shouldIgnoreBeforeInput) {\n evt.stop();\n }\n }, { priority: 'high' });\n function isDeleteKeyCode(keyCode) {\n return keyCode == keyCodes.backspace || keyCode == keyCodes.delete;\n }\n function getDeleteDirection(keyCode) {\n return keyCode == keyCodes.backspace ? DELETE_BACKWARD : DELETE_FORWARD;\n }\n}\n/**\n * Verifies whether the given target ranges cover more than a single character and should be used instead of a single code-point deletion.\n */\nfunction shouldUseTargetRanges(targetRanges) {\n // The collapsed target range could happen for example while deleting inside an inline filler\n // (it's mapped to collapsed position before an inline filler).\n if (targetRanges.length != 1 || targetRanges[0].isCollapsed) {\n return false;\n }\n const walker = targetRanges[0].getWalker({\n direction: 'backward',\n singleCharacters: true,\n ignoreElementEnd: true\n });\n let count = 0;\n for (const { nextPosition } of walker) {\n // There is some element in the range so count it as a single character.\n if (!nextPosition.parent.is('$text')) {\n count++;\n }\n else {\n const data = nextPosition.parent.data;\n const offset = nextPosition.offset;\n // Count combined symbols and emoji sequences as a single character.\n if (isInsideSurrogatePair(data, offset) ||\n isInsideCombinedSymbol(data, offset) ||\n isInsideEmojiSequence(data, offset)) {\n continue;\n }\n count++;\n }\n if (count > 1) {\n return true;\n }\n }\n return false;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module typing/delete\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport DeleteCommand from './deletecommand';\nimport DeleteObserver from './deleteobserver';\n/**\n * The delete and backspace feature. Handles keys such as Delete and Backspace, other\n * keystrokes and user actions that result in deleting content in the editor.\n */\nexport default class Delete extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'Delete';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const view = editor.editing.view;\n const viewDocument = view.document;\n const modelDocument = editor.model.document;\n view.addObserver(DeleteObserver);\n this._undoOnBackspace = false;\n const deleteForwardCommand = new DeleteCommand(editor, 'forward');\n // Register `deleteForward` command and add `forwardDelete` command as an alias for backward compatibility.\n editor.commands.add('deleteForward', deleteForwardCommand);\n editor.commands.add('forwardDelete', deleteForwardCommand);\n editor.commands.add('delete', new DeleteCommand(editor, 'backward'));\n this.listenTo(viewDocument, 'delete', (evt, data) => {\n // When not in composition, we handle the action, so prevent the default one.\n // When in composition, it's the browser who modify the DOM (renderer is disabled).\n if (!viewDocument.isComposing) {\n data.preventDefault();\n }\n const { direction, sequence, selectionToRemove, unit } = data;\n const commandName = direction === 'forward' ? 'deleteForward' : 'delete';\n const commandData = { sequence };\n if (unit == 'selection') {\n const modelRanges = Array.from(selectionToRemove.getRanges()).map(viewRange => {\n return editor.editing.mapper.toModelRange(viewRange);\n });\n commandData.selection = editor.model.createSelection(modelRanges);\n }\n else {\n commandData.unit = unit;\n }\n editor.execute(commandName, commandData);\n view.scrollToTheSelection();\n }, { priority: 'low' });\n if (this.editor.plugins.has('UndoEditing')) {\n this.listenTo(viewDocument, 'delete', (evt, data) => {\n if (this._undoOnBackspace && data.direction == 'backward' && data.sequence == 1 && data.unit == 'codePoint') {\n this._undoOnBackspace = false;\n editor.execute('undo');\n data.preventDefault();\n evt.stop();\n }\n }, { context: '$capture' });\n this.listenTo(modelDocument, 'change', () => {\n this._undoOnBackspace = false;\n });\n }\n }\n /**\n * If the next user action after calling this method is pressing backspace, it would undo the last change.\n *\n * Requires {@link module:undo/undoediting~UndoEditing} plugin. If not loaded, does nothing.\n */\n requestUndoOnBackspace() {\n if (this.editor.plugins.has('UndoEditing')) {\n this._undoOnBackspace = true;\n }\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module typing/typing\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport Input from './input';\nimport Delete from './delete';\n/**\n * The typing feature. It handles typing.\n *\n * This is a \"glue\" plugin which loads the {@link module:typing/input~Input} and {@link module:typing/delete~Delete}\n * plugins.\n */\nexport default class Typing extends Plugin {\n static get requires() {\n return [Input, Delete];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'Typing';\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * Returns the last text line from the given range.\n *\n * \"The last text line\" is understood as text (from one or more text nodes) which is limited either by a parent block\n * or by inline elements (e.g. ``).\n *\n * ```ts\n * const rangeToCheck = model.createRange(\n * \tmodel.createPositionAt( paragraph, 0 ),\n * \tmodel.createPositionAt( paragraph, 'end' )\n * );\n *\n * const { text, range } = getLastTextLine( rangeToCheck, model );\n * ```\n *\n * For model below, the returned `text` will be \"Foo bar baz\" and `range` will be set on whole `` content:\n *\n * ```xml\n * Foo bar baz\n * ```\n *\n * However, in below case, `text` will be set to \"baz\" and `range` will be set only on \"baz\".\n *\n * ```xml\n * Foobarbaz\n * ```\n */\nexport default function getLastTextLine(range, model) {\n let start = range.start;\n const text = Array.from(range.getWalker({ ignoreElementEnd: false })).reduce((rangeText, { item }) => {\n // Trim text to a last occurrence of an inline element and update range start.\n if (!(item.is('$text') || item.is('$textProxy'))) {\n start = model.createPositionAfter(item);\n return '';\n }\n return rangeText + item.data;\n }, '');\n return { text, range: model.createRange(start, range.end) };\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module typing/textwatcher\n */\nimport { ObservableMixin } from '@ckeditor/ckeditor5-utils';\nimport getLastTextLine from './utils/getlasttextline';\n/**\n * The text watcher feature.\n *\n * Fires the {@link module:typing/textwatcher~TextWatcher#event:matched:data `matched:data`},\n * {@link module:typing/textwatcher~TextWatcher#event:matched:selection `matched:selection`} and\n * {@link module:typing/textwatcher~TextWatcher#event:unmatched `unmatched`} events on typing or selection changes.\n */\nexport default class TextWatcher extends ObservableMixin() {\n /**\n * Creates a text watcher instance.\n *\n * @param testCallback See {@link module:typing/textwatcher~TextWatcher#testCallback}.\n */\n constructor(model, testCallback) {\n super();\n this.model = model;\n this.testCallback = testCallback;\n this._hasMatch = false;\n this.set('isEnabled', true);\n // Toggle text watching on isEnabled state change.\n this.on('change:isEnabled', () => {\n if (this.isEnabled) {\n this._startListening();\n }\n else {\n this.stopListening(model.document.selection);\n this.stopListening(model.document);\n }\n });\n this._startListening();\n }\n /**\n * Flag indicating whether there is a match currently.\n */\n get hasMatch() {\n return this._hasMatch;\n }\n /**\n * Starts listening to the editor for typing and selection events.\n */\n _startListening() {\n const model = this.model;\n const document = model.document;\n this.listenTo(document.selection, 'change:range', (evt, { directChange }) => {\n // Indirect changes (i.e. when the user types or external changes are applied) are handled in the document's change event.\n if (!directChange) {\n return;\n }\n // Act only on collapsed selection.\n if (!document.selection.isCollapsed) {\n if (this.hasMatch) {\n this.fire('unmatched');\n this._hasMatch = false;\n }\n return;\n }\n this._evaluateTextBeforeSelection('selection');\n });\n this.listenTo(document, 'change:data', (evt, batch) => {\n if (batch.isUndo || !batch.isLocal) {\n return;\n }\n this._evaluateTextBeforeSelection('data', { batch });\n });\n }\n /**\n * Checks the editor content for matched text.\n *\n * @fires matched:data\n * @fires matched:selection\n * @fires unmatched\n *\n * @param suffix A suffix used for generating the event name.\n * @param data Data object for event.\n */\n _evaluateTextBeforeSelection(suffix, data = {}) {\n const model = this.model;\n const document = model.document;\n const selection = document.selection;\n const rangeBeforeSelection = model.createRange(model.createPositionAt(selection.focus.parent, 0), selection.focus);\n const { text, range } = getLastTextLine(rangeBeforeSelection, model);\n const testResult = this.testCallback(text);\n if (!testResult && this.hasMatch) {\n this.fire('unmatched');\n }\n this._hasMatch = !!testResult;\n if (testResult) {\n const eventData = Object.assign(data, { text, range });\n // If the test callback returns an object with additional data, assign the data as well.\n if (typeof testResult == 'object') {\n Object.assign(eventData, testResult);\n }\n this.fire(`matched:${suffix}`, eventData);\n }\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module typing/twostepcaretmovement\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { keyCodes } from '@ckeditor/ckeditor5-utils';\n/**\n * This plugin enables the two-step caret (phantom) movement behavior for\n * {@link module:typing/twostepcaretmovement~TwoStepCaretMovement#registerAttribute registered attributes}\n * on arrow right () and left () key press.\n *\n * Thanks to this (phantom) caret movement the user is able to type before/after as well as at the\n * beginning/end of an attribute.\n *\n * **Note:** This plugin support right–to–left (Arabic, Hebrew, etc.) content by mirroring its behavior\n * but for the sake of simplicity examples showcase only left–to–right use–cases.\n *\n * # Forward movement\n *\n * ## \"Entering\" an attribute:\n *\n * When this plugin is enabled and registered for the `a` attribute and the selection is right before it\n * (at the attribute boundary), pressing the right arrow key will not move the selection but update its\n * attributes accordingly:\n *\n * * When enabled:\n *\n * ```xml\n * foo{}<$text a=\"true\">bar\n * ```\n *\n * \t\n *\n * ```xml\n * foo<$text a=\"true\">{}bar\n * ```\n *\n * * When disabled:\n *\n * ```xml\n * foo{}<$text a=\"true\">bar\n * ```\n *\n * \t\n *\n * ```xml\n * foo<$text a=\"true\">b{}ar\n * ```\n *\n *\n * ## \"Leaving\" an attribute:\n *\n * * When enabled:\n *\n * ```xml\n * <$text a=\"true\">bar{}baz\n * ```\n *\n * \t\n *\n * ```xml\n * <$text a=\"true\">bar{}baz\n * ```\n *\n * * When disabled:\n *\n * ```xml\n * <$text a=\"true\">bar{}baz\n * ```\n *\n * \t\n *\n * ```xml\n * <$text a=\"true\">barb{}az\n * ```\n *\n * # Backward movement\n *\n * * When enabled:\n *\n * ```xml\n * <$text a=\"true\">bar{}baz\n * ```\n *\n * \t\n *\n * ```xml\n * <$text a=\"true\">bar{}baz\n * ```\n *\n * * When disabled:\n *\n * ```xml\n * <$text a=\"true\">bar{}baz\n * ```\n *\n * \t\n *\n * ```xml\n * <$text a=\"true\">ba{}rb{}az\n * ```\n *\n * # Multiple attributes\n *\n * * When enabled and many attributes starts or ends at the same position:\n *\n * ```xml\n * <$text a=\"true\" b=\"true\">bar{}baz\n * ```\n *\n * \t\n *\n * ```xml\n * <$text a=\"true\" b=\"true\">bar{}baz\n * ```\n *\n * * When enabled and one procedes another:\n *\n * ```xml\n * <$text a=\"true\">bar<$text b=\"true\">{}bar\n * ```\n *\n * \t\n *\n * ```xml\n * <$text a=\"true\">bar{}<$text b=\"true\">bar\n * ```\n *\n */\nexport default class TwoStepCaretMovement extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'TwoStepCaretMovement';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n this.attributes = new Set();\n this._overrideUid = null;\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const model = editor.model;\n const view = editor.editing.view;\n const locale = editor.locale;\n const modelSelection = model.document.selection;\n // Listen to keyboard events and handle the caret movement according to the 2-step caret logic.\n this.listenTo(view.document, 'arrowKey', (evt, data) => {\n // This implementation works only for collapsed selection.\n if (!modelSelection.isCollapsed) {\n return;\n }\n // When user tries to expand the selection or jump over the whole word or to the beginning/end then\n // two-steps movement is not necessary.\n if (data.shiftKey || data.altKey || data.ctrlKey) {\n return;\n }\n const arrowRightPressed = data.keyCode == keyCodes.arrowright;\n const arrowLeftPressed = data.keyCode == keyCodes.arrowleft;\n // When neither left or right arrow has been pressed then do noting.\n if (!arrowRightPressed && !arrowLeftPressed) {\n return;\n }\n const contentDirection = locale.contentLanguageDirection;\n let isMovementHandled = false;\n if ((contentDirection === 'ltr' && arrowRightPressed) || (contentDirection === 'rtl' && arrowLeftPressed)) {\n isMovementHandled = this._handleForwardMovement(data);\n }\n else {\n isMovementHandled = this._handleBackwardMovement(data);\n }\n // Stop the keydown event if the two-step caret movement handled it. Avoid collisions\n // with other features which may also take over the caret movement (e.g. Widget).\n if (isMovementHandled === true) {\n evt.stop();\n }\n }, { context: '$text', priority: 'highest' });\n this._isNextGravityRestorationSkipped = false;\n // The automatic gravity restoration logic.\n this.listenTo(modelSelection, 'change:range', (evt, data) => {\n // Skipping the automatic restoration is needed if the selection should change\n // but the gravity must remain overridden afterwards. See the #handleBackwardMovement\n // to learn more.\n if (this._isNextGravityRestorationSkipped) {\n this._isNextGravityRestorationSkipped = false;\n return;\n }\n // Skip automatic restore when the gravity is not overridden — simply, there's nothing to restore\n // at this moment.\n if (!this._isGravityOverridden) {\n return;\n }\n // Skip automatic restore when the change is indirect AND the selection is at the attribute boundary.\n // It means that e.g. if the change was external (collaboration) and the user had their\n // selection around the link, its gravity should remain intact in this change:range event.\n if (!data.directChange && isBetweenDifferentAttributes(modelSelection.getFirstPosition(), this.attributes)) {\n return;\n }\n this._restoreGravity();\n });\n }\n /**\n * Registers a given attribute for the two-step caret movement.\n *\n * @param attribute Name of the attribute to handle.\n */\n registerAttribute(attribute) {\n this.attributes.add(attribute);\n }\n /**\n * Updates the document selection and the view according to the two–step caret movement state\n * when moving **forwards**. Executed upon `keypress` in the {@link module:engine/view/view~View}.\n *\n * @param data Data of the key press.\n * @returns `true` when the handler prevented caret movement.\n */\n _handleForwardMovement(data) {\n const attributes = this.attributes;\n const model = this.editor.model;\n const selection = model.document.selection;\n const position = selection.getFirstPosition();\n // DON'T ENGAGE 2-SCM if gravity is already overridden. It means that we just entered\n //\n // \t\tfoo<$text attribute>{}barbaz\n //\n // or left the attribute\n //\n // \t\tfoo<$text attribute>bar{}baz\n //\n // and the gravity will be restored automatically.\n if (this._isGravityOverridden) {\n return false;\n }\n // DON'T ENGAGE 2-SCM when the selection is at the beginning of the block AND already has the\n // attribute:\n // * when the selection was initially set there using the mouse,\n // * when the editor has just started\n //\n //\t\t<$text attribute>{}barbaz\n //\n if (position.isAtStart && hasAnyAttribute(selection, attributes)) {\n return false;\n }\n // ENGAGE 2-SCM When at least one of the observed attributes changes its value (incl. starts, ends).\n //\n //\t\tfoo<$text attribute>bar{}baz\n //\t\tfoo<$text attribute>bar{}<$text otherAttribute>baz\n //\t\tfoo<$text attribute=1>bar{}<$text attribute=2>baz\n //\t\tfoo{}<$text attribute>barbaz\n //\n if (isBetweenDifferentAttributes(position, attributes)) {\n preventCaretMovement(data);\n this._overrideGravity();\n return true;\n }\n return false;\n }\n /**\n * Updates the document selection and the view according to the two–step caret movement state\n * when moving **backwards**. Executed upon `keypress` in the {@link module:engine/view/view~View}.\n *\n * @param data Data of the key press.\n * @returns `true` when the handler prevented caret movement\n */\n _handleBackwardMovement(data) {\n const attributes = this.attributes;\n const model = this.editor.model;\n const selection = model.document.selection;\n const position = selection.getFirstPosition();\n // When the gravity is already overridden (by this plugin), it means we are on the two-step position.\n // Prevent the movement, restore the gravity and update selection attributes.\n //\n //\t\tfoo<$text attribute=1>bar<$text attribute=2>{}baz\n //\t\tfoo<$text attribute>bar<$text otherAttribute>{}baz\n //\t\tfoo<$text attribute>{}barbaz\n //\t\tfoo<$text attribute>bar{}baz\n //\n if (this._isGravityOverridden) {\n preventCaretMovement(data);\n this._restoreGravity();\n setSelectionAttributesFromTheNodeBefore(model, attributes, position);\n return true;\n }\n else {\n // REMOVE SELECTION ATTRIBUTE when restoring gravity towards a non-existent content at the\n // beginning of the block.\n //\n // \t\t{}<$text attribute>bar\n //\n if (position.isAtStart) {\n if (hasAnyAttribute(selection, attributes)) {\n preventCaretMovement(data);\n setSelectionAttributesFromTheNodeBefore(model, attributes, position);\n return true;\n }\n return false;\n }\n // When we are moving from natural gravity, to the position of the 2SCM, we need to override the gravity,\n // and make sure it won't be restored. Unless it's at the end of the block and an observed attribute.\n // We need to check if the caret is a one position before the attribute boundary:\n //\n //\t\tfoo<$text attribute=1>bar<$text attribute=2>b{}az\n //\t\tfoo<$text attribute>bar<$text otherAttribute>b{}az\n //\t\tfoo<$text attribute>b{}arbaz\n //\t\tfoo<$text attribute>barb{}az\n //\n if (isStepAfterAnyAttributeBoundary(position, attributes)) {\n // ENGAGE 2-SCM if the selection has no attribute. This may happen when the user\n // left the attribute using a FORWARD 2-SCM.\n //\n // \t\t<$text attribute>bar{}\n //\n if (position.isAtEnd &&\n !hasAnyAttribute(selection, attributes) &&\n isBetweenDifferentAttributes(position, attributes)) {\n preventCaretMovement(data);\n setSelectionAttributesFromTheNodeBefore(model, attributes, position);\n return true;\n }\n // Skip the automatic gravity restore upon the next selection#change:range event.\n // If not skipped, it would automatically restore the gravity, which should remain\n // overridden.\n this._isNextGravityRestorationSkipped = true;\n this._overrideGravity();\n // Don't return \"true\" here because we didn't call _preventCaretMovement.\n // Returning here will destabilize the filler logic, which also listens to\n // keydown (and the event would be stopped).\n return false;\n }\n }\n return false;\n }\n /**\n * `true` when the gravity is overridden for the plugin.\n */\n get _isGravityOverridden() {\n return !!this._overrideUid;\n }\n /**\n * Overrides the gravity using the {@link module:engine/model/writer~Writer model writer}\n * and stores the information about this fact in the {@link #_overrideUid}.\n *\n * A shorthand for {@link module:engine/model/writer~Writer#overrideSelectionGravity}.\n */\n _overrideGravity() {\n this._overrideUid = this.editor.model.change(writer => {\n return writer.overrideSelectionGravity();\n });\n }\n /**\n * Restores the gravity using the {@link module:engine/model/writer~Writer model writer}.\n *\n * A shorthand for {@link module:engine/model/writer~Writer#restoreSelectionGravity}.\n */\n _restoreGravity() {\n this.editor.model.change(writer => {\n writer.restoreSelectionGravity(this._overrideUid);\n this._overrideUid = null;\n });\n }\n}\n/**\n * Checks whether the selection has any of given attributes.\n */\nfunction hasAnyAttribute(selection, attributes) {\n for (const observedAttribute of attributes) {\n if (selection.hasAttribute(observedAttribute)) {\n return true;\n }\n }\n return false;\n}\n/**\n * Applies the given attributes to the current selection using using the\n * values from the node before the current position. Uses\n * the {@link module:engine/model/writer~Writer model writer}.\n */\nfunction setSelectionAttributesFromTheNodeBefore(model, attributes, position) {\n const nodeBefore = position.nodeBefore;\n model.change(writer => {\n if (nodeBefore) {\n const attributes = [];\n const isInlineObject = model.schema.isObject(nodeBefore) && model.schema.isInline(nodeBefore);\n for (const [key, value] of nodeBefore.getAttributes()) {\n if (model.schema.checkAttribute('$text', key) &&\n (!isInlineObject || model.schema.getAttributeProperties(key).copyFromObject !== false)) {\n attributes.push([key, value]);\n }\n }\n writer.setSelectionAttribute(attributes);\n }\n else {\n writer.removeSelectionAttribute(attributes);\n }\n });\n}\n/**\n * Prevents the caret movement in the view by calling `preventDefault` on the event data.\n *\n * @alias data.preventDefault\n */\nfunction preventCaretMovement(data) {\n data.preventDefault();\n}\n/**\n * Checks whether the step before `isBetweenDifferentAttributes()`.\n */\nfunction isStepAfterAnyAttributeBoundary(position, attributes) {\n const positionBefore = position.getShiftedBy(-1);\n return isBetweenDifferentAttributes(positionBefore, attributes);\n}\n/**\n * Checks whether the given position is between different values of given attributes.\n */\nfunction isBetweenDifferentAttributes(position, attributes) {\n const { nodeBefore, nodeAfter } = position;\n for (const observedAttribute of attributes) {\n const attrBefore = nodeBefore ? nodeBefore.getAttribute(observedAttribute) : undefined;\n const attrAfter = nodeAfter ? nodeAfter.getAttribute(observedAttribute) : undefined;\n if (attrAfter !== attrBefore) {\n return true;\n }\n }\n return false;\n}\n","import toString from './toString.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nexport default escapeRegExp;\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module typing/texttransformation\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport TextWatcher from './textwatcher';\nimport { escapeRegExp } from 'lodash-es';\n// All named transformations.\nconst TRANSFORMATIONS = {\n // Common symbols:\n copyright: { from: '(c)', to: '©' },\n registeredTrademark: { from: '(r)', to: '®' },\n trademark: { from: '(tm)', to: '™' },\n // Mathematical:\n oneHalf: { from: /(^|[^/a-z0-9])(1\\/2)([^/a-z0-9])$/i, to: [null, '½', null] },\n oneThird: { from: /(^|[^/a-z0-9])(1\\/3)([^/a-z0-9])$/i, to: [null, '⅓', null] },\n twoThirds: { from: /(^|[^/a-z0-9])(2\\/3)([^/a-z0-9])$/i, to: [null, '⅔', null] },\n oneForth: { from: /(^|[^/a-z0-9])(1\\/4)([^/a-z0-9])$/i, to: [null, '¼', null] },\n threeQuarters: { from: /(^|[^/a-z0-9])(3\\/4)([^/a-z0-9])$/i, to: [null, '¾', null] },\n lessThanOrEqual: { from: '<=', to: '≤' },\n greaterThanOrEqual: { from: '>=', to: '≥' },\n notEqual: { from: '!=', to: '≠' },\n arrowLeft: { from: '<-', to: '←' },\n arrowRight: { from: '->', to: '→' },\n // Typography:\n horizontalEllipsis: { from: '...', to: '…' },\n enDash: { from: /(^| )(--)( )$/, to: [null, '–', null] },\n emDash: { from: /(^| )(---)( )$/, to: [null, '—', null] },\n // Quotations:\n // English, US\n quotesPrimary: { from: buildQuotesRegExp('\"'), to: [null, '“', null, '”'] },\n quotesSecondary: { from: buildQuotesRegExp('\\''), to: [null, '‘', null, '’'] },\n // English, UK\n quotesPrimaryEnGb: { from: buildQuotesRegExp('\\''), to: [null, '‘', null, '’'] },\n quotesSecondaryEnGb: { from: buildQuotesRegExp('\"'), to: [null, '“', null, '”'] },\n // Polish\n quotesPrimaryPl: { from: buildQuotesRegExp('\"'), to: [null, '„', null, '”'] },\n quotesSecondaryPl: { from: buildQuotesRegExp('\\''), to: [null, '‚', null, '’'] }\n};\n// Transformation groups.\nconst TRANSFORMATION_GROUPS = {\n symbols: ['copyright', 'registeredTrademark', 'trademark'],\n mathematical: [\n 'oneHalf', 'oneThird', 'twoThirds', 'oneForth', 'threeQuarters',\n 'lessThanOrEqual', 'greaterThanOrEqual', 'notEqual',\n 'arrowLeft', 'arrowRight'\n ],\n typography: ['horizontalEllipsis', 'enDash', 'emDash'],\n quotes: ['quotesPrimary', 'quotesSecondary']\n};\n// A set of default transformations provided by the feature.\nconst DEFAULT_TRANSFORMATIONS = [\n 'symbols',\n 'mathematical',\n 'typography',\n 'quotes'\n];\n/**\n * The text transformation plugin.\n */\nexport default class TextTransformation extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return ['Delete', 'Input'];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'TextTransformation';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n editor.config.define('typing', {\n transformations: {\n include: DEFAULT_TRANSFORMATIONS\n }\n });\n }\n /**\n * @inheritDoc\n */\n init() {\n const model = this.editor.model;\n const modelSelection = model.document.selection;\n modelSelection.on('change:range', () => {\n // Disable plugin when selection is inside a code block.\n this.isEnabled = !modelSelection.anchor.parent.is('element', 'codeBlock');\n });\n this._enableTransformationWatchers();\n }\n /**\n * Create new TextWatcher listening to the editor for typing and selection events.\n */\n _enableTransformationWatchers() {\n const editor = this.editor;\n const model = editor.model;\n const deletePlugin = editor.plugins.get('Delete');\n const normalizedTransformations = normalizeTransformations(editor.config.get('typing.transformations'));\n const testCallback = (text) => {\n for (const normalizedTransformation of normalizedTransformations) {\n const from = normalizedTransformation.from;\n const match = from.test(text);\n if (match) {\n return { normalizedTransformation };\n }\n }\n };\n const watcher = new TextWatcher(editor.model, testCallback);\n watcher.on('matched:data', (evt, data) => {\n if (!data.batch.isTyping) {\n return;\n }\n const { from, to } = data.normalizedTransformation;\n const matches = from.exec(data.text);\n const replaces = to(matches.slice(1));\n const matchedRange = data.range;\n let changeIndex = matches.index;\n model.enqueueChange(writer => {\n for (let i = 1; i < matches.length; i++) {\n const match = matches[i];\n const replaceWith = replaces[i - 1];\n if (replaceWith == null) {\n changeIndex += match.length;\n continue;\n }\n const replacePosition = matchedRange.start.getShiftedBy(changeIndex);\n const replaceRange = model.createRange(replacePosition, replacePosition.getShiftedBy(match.length));\n const attributes = getTextAttributesAfterPosition(replacePosition);\n model.insertContent(writer.createText(replaceWith, attributes), replaceRange);\n changeIndex += replaceWith.length;\n }\n model.enqueueChange(() => {\n deletePlugin.requestUndoOnBackspace();\n });\n });\n });\n watcher.bind('isEnabled').to(this);\n }\n}\n/**\n * Normalizes the configuration `from` parameter value.\n * The normalized value for the `from` parameter is a RegExp instance. If the passed `from` is already a RegExp instance,\n * it is returned unchanged.\n */\nfunction normalizeFrom(from) {\n if (typeof from == 'string') {\n return new RegExp(`(${escapeRegExp(from)})$`);\n }\n // `from` is already a regular expression.\n return from;\n}\n/**\n * Normalizes the configuration `to` parameter value.\n * The normalized value for the `to` parameter is a function that takes an array and returns an array. See more in the\n * configuration description. If the passed `to` is already a function, it is returned unchanged.\n */\nfunction normalizeTo(to) {\n if (typeof to == 'string') {\n return () => [to];\n }\n else if (to instanceof Array) {\n return () => to;\n }\n // `to` is already a function.\n return to;\n}\n/**\n * For given `position` returns attributes for the text that is after that position.\n * The text can be in the same text node as the position (`foo[]bar`) or in the next text node (`foo[]<$text bold=\"true\">bar`).\n */\nfunction getTextAttributesAfterPosition(position) {\n const textNode = position.textNode ? position.textNode : position.nodeAfter;\n return textNode.getAttributes();\n}\n/**\n * Returns a RegExp pattern string that detects a sentence inside a quote.\n *\n * @param quoteCharacter The character to create a pattern for.\n */\nfunction buildQuotesRegExp(quoteCharacter) {\n return new RegExp(`(^|\\\\s)(${quoteCharacter})([^${quoteCharacter}]*)(${quoteCharacter})$`);\n}\n/**\n * Reads text transformation config and returns normalized array of transformations objects.\n */\nfunction normalizeTransformations(config) {\n const extra = config.extra || [];\n const remove = config.remove || [];\n const isNotRemoved = (transformation) => !remove.includes(transformation);\n const configured = config.include.concat(extra).filter(isNotRemoved);\n return expandGroupsAndRemoveDuplicates(configured)\n .filter(isNotRemoved) // Filter out 'remove' transformations as they might be set in group.\n .map(transformation => (typeof transformation == 'string' && TRANSFORMATIONS[transformation] ? TRANSFORMATIONS[transformation] : transformation))\n // Filter out transformations set as string that has not been found.\n .filter((transformation) => typeof transformation === 'object')\n .map(transformation => ({\n from: normalizeFrom(transformation.from),\n to: normalizeTo(transformation.to)\n }));\n}\n/**\n * Reads definitions and expands named groups if needed to transformation names.\n * This method also removes duplicated named transformations if any.\n */\nfunction expandGroupsAndRemoveDuplicates(definitions) {\n // Set is using to make sure that transformation names are not duplicated.\n const definedTransformations = new Set();\n for (const transformationOrGroup of definitions) {\n if (typeof transformationOrGroup == 'string' && TRANSFORMATION_GROUPS[transformationOrGroup]) {\n for (const transformation of TRANSFORMATION_GROUPS[transformationOrGroup]) {\n definedTransformations.add(transformation);\n }\n }\n else {\n definedTransformations.add(transformationOrGroup);\n }\n }\n return Array.from(definedTransformations);\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * Returns a model range that covers all consecutive nodes with the same `attributeName` and its `value`\n * that intersect the given `position`.\n *\n * It can be used e.g. to get the entire range on which the `linkHref` attribute needs to be changed when having a\n * selection inside a link.\n *\n * @param position The start position.\n * @param attributeName The attribute name.\n * @param value The attribute value.\n * @param model The model instance.\n * @returns The link range.\n */\nexport default function findAttributeRange(position, attributeName, value, model) {\n return model.createRange(findAttributeRangeBound(position, attributeName, value, true, model), findAttributeRangeBound(position, attributeName, value, false, model));\n}\n/**\n * Walks forward or backward (depends on the `lookBack` flag), node by node, as long as they have the same attribute value\n * and returns a position just before or after (depends on the `lookBack` flag) the last matched node.\n *\n * @param position The start position.\n * @param attributeName The attribute name.\n * @param value The attribute value.\n * @param lookBack Whether the walk direction is forward (`false`) or backward (`true`).\n * @returns The position just before the last matched node.\n */\nexport function findAttributeRangeBound(position, attributeName, value, lookBack, model) {\n // Get node before or after position (depends on `lookBack` flag).\n // When position is inside text node then start searching from text node.\n let node = position.textNode || (lookBack ? position.nodeBefore : position.nodeAfter);\n let lastNode = null;\n while (node && node.getAttribute(attributeName) == value) {\n lastNode = node;\n node = lookBack ? node.previousSibling : node.nextSibling;\n }\n return lastNode ? model.createPositionAt(lastNode, lookBack ? 'before' : 'after') : position;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module typing/utils/inlinehighlight\n */\nimport findAttributeRange from './findattributerange';\n/**\n * Adds a visual highlight style to an attribute element in which the selection is anchored.\n * Together with two-step caret movement, they indicate that the user is typing inside the element.\n *\n * Highlight is turned on by adding the given class to the attribute element in the view:\n *\n * * The class is removed before the conversion has started, as callbacks added with the `'highest'` priority\n * to {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher} events.\n * * The class is added in the view post fixer, after other changes in the model tree were converted to the view.\n *\n * This way, adding and removing the highlight does not interfere with conversion.\n *\n * Usage:\n *\n * ```ts\n * import inlineHighlight from '@ckeditor/ckeditor5-typing/src/utils/inlinehighlight';\n *\n * // Make `ck-link_selected` class be applied on an `a` element\n * // whenever the corresponding `linkHref` attribute element is selected.\n * inlineHighlight( editor, 'linkHref', 'a', 'ck-link_selected' );\n * ```\n *\n * @param editor The editor instance.\n * @param attributeName The attribute name to check.\n * @param tagName The tagName of a view item.\n * @param className The class name to apply in the view.\n */\nexport default function inlineHighlight(editor, attributeName, tagName, className) {\n const view = editor.editing.view;\n const highlightedElements = new Set();\n // Adding the class.\n view.document.registerPostFixer(writer => {\n const selection = editor.model.document.selection;\n let changed = false;\n if (selection.hasAttribute(attributeName)) {\n const modelRange = findAttributeRange(selection.getFirstPosition(), attributeName, selection.getAttribute(attributeName), editor.model);\n const viewRange = editor.editing.mapper.toViewRange(modelRange);\n // There might be multiple view elements in the `viewRange`, for example, when the `a` element is\n // broken by a UIElement.\n for (const item of viewRange.getItems()) {\n if (item.is('element', tagName) && !item.hasClass(className)) {\n writer.addClass(className, item);\n highlightedElements.add(item);\n changed = true;\n }\n }\n }\n return changed;\n });\n // Removing the class.\n editor.conversion.for('editingDowncast').add(dispatcher => {\n // Make sure the highlight is removed on every possible event, before conversion is started.\n dispatcher.on('insert', removeHighlight, { priority: 'highest' });\n dispatcher.on('remove', removeHighlight, { priority: 'highest' });\n dispatcher.on('attribute', removeHighlight, { priority: 'highest' });\n dispatcher.on('selection', removeHighlight, { priority: 'highest' });\n function removeHighlight() {\n view.change(writer => {\n for (const item of highlightedElements.values()) {\n writer.removeClass(className, item);\n highlightedElements.delete(item);\n }\n });\n }\n });\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { LiveRange } from 'ckeditor5/src/engine';\nimport { first } from 'ckeditor5/src/utils';\n/**\n * The block autoformatting engine. It allows to format various block patterns. For example,\n * it can be configured to turn a paragraph starting with `*` and followed by a space into a list item.\n *\n * The autoformatting operation is integrated with the undo manager,\n * so the autoformatting step can be undone if the user's intention was not to format the text.\n *\n * See the {@link module:autoformat/blockautoformatediting~blockAutoformatEditing `blockAutoformatEditing`} documentation\n * to learn how to create custom block autoformatters. You can also use\n * the {@link module:autoformat/autoformat~Autoformat} feature which enables a set of default autoformatters\n * (lists, headings, bold and italic).\n *\n * @module autoformat/blockautoformatediting\n */\n/**\n * Creates a listener triggered on {@link module:engine/model/document~Document#event:change:data `change:data`} event in the document.\n * Calls the callback when inserted text matches the regular expression or the command name\n * if provided instead of the callback.\n *\n * Examples of usage:\n *\n * To convert a paragraph into heading 1 when `- ` is typed, using just the command name:\n *\n * ```ts\n * blockAutoformatEditing( editor, plugin, /^\\- $/, 'heading1' );\n * ```\n *\n * To convert a paragraph into heading 1 when `- ` is typed, using just the callback:\n *\n * ```ts\n * blockAutoformatEditing( editor, plugin, /^\\- $/, ( context ) => {\n * \tconst { match } = context;\n * \tconst headingLevel = match[ 1 ].length;\n *\n * \teditor.execute( 'heading', {\n * \t\tformatId: `heading${ headingLevel }`\n * \t} );\n * } );\n * ```\n *\n * @param editor The editor instance.\n * @param plugin The autoformat plugin instance.\n * @param pattern The regular expression to execute on just inserted text. The regular expression is tested against the text\n * from the beginning until the caret position.\n * @param callbackOrCommand The callback to execute or the command to run when the text is matched.\n * In case of providing the callback, it receives the following parameter:\n * * match RegExp.exec() result of matching the pattern to inserted text.\n */\nexport default function blockAutoformatEditing(editor, plugin, pattern, callbackOrCommand) {\n let callback;\n let command = null;\n if (typeof callbackOrCommand == 'function') {\n callback = callbackOrCommand;\n }\n else {\n // We assume that the actual command name was provided.\n command = editor.commands.get(callbackOrCommand);\n callback = () => {\n editor.execute(callbackOrCommand);\n };\n }\n editor.model.document.on('change:data', (evt, batch) => {\n if (command && !command.isEnabled || !plugin.isEnabled) {\n return;\n }\n const range = first(editor.model.document.selection.getRanges());\n if (!range.isCollapsed) {\n return;\n }\n if (batch.isUndo || !batch.isLocal) {\n return;\n }\n const changes = Array.from(editor.model.document.differ.getChanges());\n const entry = changes[0];\n // Typing is represented by only a single change.\n if (changes.length != 1 || entry.type !== 'insert' || entry.name != '$text' || entry.length != 1) {\n return;\n }\n const blockToFormat = entry.position.parent;\n // Block formatting should be disabled in codeBlocks (#5800).\n if (blockToFormat.is('element', 'codeBlock')) {\n return;\n }\n // Only list commands and custom callbacks can be applied inside a list.\n if (blockToFormat.is('element', 'listItem') &&\n typeof callbackOrCommand !== 'function' &&\n !['numberedList', 'bulletedList', 'todoList'].includes(callbackOrCommand)) {\n return;\n }\n // In case a command is bound, do not re-execute it over an existing block style which would result in a style removal.\n // Instead, just drop processing so that autoformat trigger text is not lost. E.g. writing \"# \" in a level 1 heading.\n if (command && command.value === true) {\n return;\n }\n const firstNode = blockToFormat.getChild(0);\n const firstNodeRange = editor.model.createRangeOn(firstNode);\n // Range is only expected to be within or at the very end of the first text node.\n if (!firstNodeRange.containsRange(range) && !range.end.isEqual(firstNodeRange.end)) {\n return;\n }\n const match = pattern.exec(firstNode.data.substr(0, range.end.offset));\n // ...and this text node's data match the pattern.\n if (!match) {\n return;\n }\n // Use enqueueChange to create new batch to separate typing batch from the auto-format changes.\n editor.model.enqueueChange(writer => {\n // Matched range.\n const start = writer.createPositionAt(blockToFormat, 0);\n const end = writer.createPositionAt(blockToFormat, match[0].length);\n const range = new LiveRange(start, end);\n const wasChanged = callback({ match });\n // Remove matched text.\n if (wasChanged !== false) {\n writer.remove(range);\n const selectionRange = editor.model.document.selection.getFirstRange();\n const blockRange = writer.createRangeIn(blockToFormat);\n // If the block is empty and the document selection has been moved when\n // applying formatting (e.g. is now in newly created block).\n if (blockToFormat.isEmpty && !blockRange.isEqual(selectionRange) && !blockRange.containsRange(selectionRange, true)) {\n writer.remove(blockToFormat);\n }\n }\n range.detach();\n editor.model.enqueueChange(() => {\n const deletePlugin = editor.plugins.get('Delete');\n deletePlugin.requestUndoOnBackspace();\n });\n });\n });\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * Enables autoformatting mechanism for a given {@link module:core/editor/editor~Editor}.\n *\n * It formats the matched text by applying the given model attribute or by running the provided formatting callback.\n * On every {@link module:engine/model/document~Document#event:change:data data change} in the model document\n * the autoformatting engine checks the text on the left of the selection\n * and executes the provided action if the text matches given criteria (regular expression or callback).\n *\n * @param editor The editor instance.\n * @param plugin The autoformat plugin instance.\n * @param testRegexpOrCallback The regular expression or callback to execute on text.\n * Provided regular expression *must* have three capture groups. The first and the third capture group\n * should match opening and closing delimiters. The second capture group should match the text to format.\n *\n * ```ts\n * // Matches the `**bold text**` pattern.\n * // There are three capturing groups:\n * // - The first to match the starting `**` delimiter.\n * // - The second to match the text to format.\n * // - The third to match the ending `**` delimiter.\n * inlineAutoformatEditing( editor, plugin, /(\\*\\*)([^\\*]+?)(\\*\\*)$/g, formatCallback );\n * ```\n *\n * When a function is provided instead of the regular expression, it will be executed with the text to match as a parameter.\n * The function should return proper \"ranges\" to delete and format.\n *\n * ```ts\n * {\n * \tremove: [\n * \t\t[ 0, 1 ],\t// Remove the first letter from the given text.\n * \t\t[ 5, 6 ]\t// Remove the 6th letter from the given text.\n * \t],\n * \tformat: [\n * \t\t[ 1, 5 ]\t// Format all letters from 2nd to 5th.\n * \t]\n * }\n * ```\n *\n * @param formatCallback A callback to apply actual formatting.\n * It should return `false` if changes should not be applied (e.g. if a command is disabled).\n *\n * ```ts\n * inlineAutoformatEditing( editor, plugin, /(\\*\\*)([^\\*]+?)(\\*\\*)$/g, ( writer, rangesToFormat ) => {\n * \tconst command = editor.commands.get( 'bold' );\n *\n * \tif ( !command.isEnabled ) {\n * \t\treturn false;\n * \t}\n *\n * \tconst validRanges = editor.model.schema.getValidRanges( rangesToFormat, 'bold' );\n *\n * \tfor ( let range of validRanges ) {\n * \t\twriter.setAttribute( 'bold', true, range );\n * \t}\n * } );\n * ```\n */\nexport default function inlineAutoformatEditing(editor, plugin, testRegexpOrCallback, formatCallback) {\n let regExp;\n let testCallback;\n if (testRegexpOrCallback instanceof RegExp) {\n regExp = testRegexpOrCallback;\n }\n else {\n testCallback = testRegexpOrCallback;\n }\n // A test callback run on changed text.\n testCallback = testCallback || (text => {\n let result;\n const remove = [];\n const format = [];\n while ((result = regExp.exec(text)) !== null) {\n // There should be full match and 3 capture groups.\n if (result && result.length < 4) {\n break;\n }\n let { index, '1': leftDel, '2': content, '3': rightDel } = result;\n // Real matched string - there might be some non-capturing groups so we need to recalculate starting index.\n const found = leftDel + content + rightDel;\n index += result[0].length - found.length;\n // Start and End offsets of delimiters to remove.\n const delStart = [\n index,\n index + leftDel.length\n ];\n const delEnd = [\n index + leftDel.length + content.length,\n index + leftDel.length + content.length + rightDel.length\n ];\n remove.push(delStart);\n remove.push(delEnd);\n format.push([index + leftDel.length, index + leftDel.length + content.length]);\n }\n return {\n remove,\n format\n };\n });\n editor.model.document.on('change:data', (evt, batch) => {\n if (batch.isUndo || !batch.isLocal || !plugin.isEnabled) {\n return;\n }\n const model = editor.model;\n const selection = model.document.selection;\n // Do nothing if selection is not collapsed.\n if (!selection.isCollapsed) {\n return;\n }\n const changes = Array.from(model.document.differ.getChanges());\n const entry = changes[0];\n // Typing is represented by only a single change.\n if (changes.length != 1 || entry.type !== 'insert' || entry.name != '$text' || entry.length != 1) {\n return;\n }\n const focus = selection.focus;\n const block = focus.parent;\n const { text, range } = getTextAfterCode(model.createRange(model.createPositionAt(block, 0), focus), model);\n const testOutput = testCallback(text);\n const rangesToFormat = testOutputToRanges(range.start, testOutput.format, model);\n const rangesToRemove = testOutputToRanges(range.start, testOutput.remove, model);\n if (!(rangesToFormat.length && rangesToRemove.length)) {\n return;\n }\n // Use enqueueChange to create new batch to separate typing batch from the auto-format changes.\n model.enqueueChange(writer => {\n // Apply format.\n const hasChanged = formatCallback(writer, rangesToFormat);\n // Strict check on `false` to have backward compatibility (when callbacks were returning `undefined`).\n if (hasChanged === false) {\n return;\n }\n // Remove delimiters - use reversed order to not mix the offsets while removing.\n for (const range of rangesToRemove.reverse()) {\n writer.remove(range);\n }\n model.enqueueChange(() => {\n const deletePlugin = editor.plugins.get('Delete');\n deletePlugin.requestUndoOnBackspace();\n });\n });\n });\n}\n/**\n * Converts output of the test function provided to the inlineAutoformatEditing and converts it to the model ranges\n * inside provided block.\n */\nfunction testOutputToRanges(start, arrays, model) {\n return arrays\n .filter(array => (array[0] !== undefined && array[1] !== undefined))\n .map(array => {\n return model.createRange(start.getShiftedBy(array[0]), start.getShiftedBy(array[1]));\n });\n}\n/**\n * Returns the last text line after the last code element from the given range.\n * It is similar to {@link module:typing/utils/getlasttextline.getLastTextLine `getLastTextLine()`},\n * but it ignores any text before the last `code`.\n */\nfunction getTextAfterCode(range, model) {\n let start = range.start;\n const text = Array.from(range.getItems()).reduce((rangeText, node) => {\n // Trim text to a last occurrence of an inline element and update range start.\n if (!(node.is('$text') || node.is('$textProxy')) || node.getAttribute('code')) {\n start = model.createPositionAfter(node);\n return '';\n }\n return rangeText + node.data;\n }, '');\n return { text, range: model.createRange(start, range.end) };\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Delete } from 'ckeditor5/src/typing';\nimport blockAutoformatEditing from './blockautoformatediting';\nimport inlineAutoformatEditing from './inlineautoformatediting';\n/**\n * Enables a set of predefined autoformatting actions.\n *\n * For a detailed overview, check the {@glink features/autoformat Autoformatting} feature guide\n * and the {@glink api/autoformat package page}.\n */\nexport default class Autoformat extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [Delete];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'Autoformat';\n }\n /**\n * @inheritDoc\n */\n afterInit() {\n this._addListAutoformats();\n this._addBasicStylesAutoformats();\n this._addHeadingAutoformats();\n this._addBlockQuoteAutoformats();\n this._addCodeBlockAutoformats();\n this._addHorizontalLineAutoformats();\n }\n /**\n * Adds autoformatting related to the {@link module:list/list~List}.\n *\n * When typed:\n * - `* ` or `- ` – A paragraph will be changed into a bulleted list.\n * - `1. ` or `1) ` – A paragraph will be changed into a numbered list (\"1\" can be any digit or a list of digits).\n * - `[] ` or `[ ] ` – A paragraph will be changed into a to-do list.\n * - `[x] ` or `[ x ] ` – A paragraph will be changed into a checked to-do list.\n */\n _addListAutoformats() {\n const commands = this.editor.commands;\n if (commands.get('bulletedList')) {\n blockAutoformatEditing(this.editor, this, /^[*-]\\s$/, 'bulletedList');\n }\n if (commands.get('numberedList')) {\n blockAutoformatEditing(this.editor, this, /^1[.|)]\\s$/, 'numberedList');\n }\n if (commands.get('todoList')) {\n blockAutoformatEditing(this.editor, this, /^\\[\\s?\\]\\s$/, 'todoList');\n }\n if (commands.get('checkTodoList')) {\n blockAutoformatEditing(this.editor, this, /^\\[\\s?x\\s?\\]\\s$/, () => {\n this.editor.execute('todoList');\n this.editor.execute('checkTodoList');\n });\n }\n }\n /**\n * Adds autoformatting related to the {@link module:basic-styles/bold~Bold},\n * {@link module:basic-styles/italic~Italic}, {@link module:basic-styles/code~Code}\n * and {@link module:basic-styles/strikethrough~Strikethrough}\n *\n * When typed:\n * - `**foobar**` – `**` characters are removed and `foobar` is set to bold,\n * - `__foobar__` – `__` characters are removed and `foobar` is set to bold,\n * - `*foobar*` – `*` characters are removed and `foobar` is set to italic,\n * - `_foobar_` – `_` characters are removed and `foobar` is set to italic,\n * - ``` `foobar` – ``` ` ``` characters are removed and `foobar` is set to code,\n * - `~~foobar~~` – `~~` characters are removed and `foobar` is set to strikethrough.\n */\n _addBasicStylesAutoformats() {\n const commands = this.editor.commands;\n if (commands.get('bold')) {\n const boldCallback = getCallbackFunctionForInlineAutoformat(this.editor, 'bold');\n inlineAutoformatEditing(this.editor, this, /(?:^|\\s)(\\*\\*)([^*]+)(\\*\\*)$/g, boldCallback);\n inlineAutoformatEditing(this.editor, this, /(?:^|\\s)(__)([^_]+)(__)$/g, boldCallback);\n }\n if (commands.get('italic')) {\n const italicCallback = getCallbackFunctionForInlineAutoformat(this.editor, 'italic');\n // The italic autoformatter cannot be triggered by the bold markers, so we need to check the\n // text before the pattern (e.g. `(?:^|[^\\*])`).\n inlineAutoformatEditing(this.editor, this, /(?:^|\\s)(\\*)([^*_]+)(\\*)$/g, italicCallback);\n inlineAutoformatEditing(this.editor, this, /(?:^|\\s)(_)([^_]+)(_)$/g, italicCallback);\n }\n if (commands.get('code')) {\n const codeCallback = getCallbackFunctionForInlineAutoformat(this.editor, 'code');\n inlineAutoformatEditing(this.editor, this, /(`)([^`]+)(`)$/g, codeCallback);\n }\n if (commands.get('strikethrough')) {\n const strikethroughCallback = getCallbackFunctionForInlineAutoformat(this.editor, 'strikethrough');\n inlineAutoformatEditing(this.editor, this, /(~~)([^~]+)(~~)$/g, strikethroughCallback);\n }\n }\n /**\n * Adds autoformatting related to {@link module:heading/heading~Heading}.\n *\n * It is using a number at the end of the command name to associate it with the proper trigger:\n *\n * * `heading` with a `heading1` value will be executed when typing `#`,\n * * `heading` with a `heading2` value will be executed when typing `##`,\n * * ... up to `heading6` for `######`.\n */\n _addHeadingAutoformats() {\n const command = this.editor.commands.get('heading');\n if (command) {\n command.modelElements\n .filter(name => name.match(/^heading[1-6]$/))\n .forEach(modelName => {\n const level = modelName[7];\n const pattern = new RegExp(`^(#{${level}})\\\\s$`);\n blockAutoformatEditing(this.editor, this, pattern, () => {\n // Should only be active if command is enabled and heading style associated with pattern is inactive.\n if (!command.isEnabled || command.value === modelName) {\n return false;\n }\n this.editor.execute('heading', { value: modelName });\n });\n });\n }\n }\n /**\n * Adds autoformatting related to {@link module:block-quote/blockquote~BlockQuote}.\n *\n * When typed:\n * * `> ` – A paragraph will be changed to a block quote.\n */\n _addBlockQuoteAutoformats() {\n if (this.editor.commands.get('blockQuote')) {\n blockAutoformatEditing(this.editor, this, /^>\\s$/, 'blockQuote');\n }\n }\n /**\n * Adds autoformatting related to {@link module:code-block/codeblock~CodeBlock}.\n *\n * When typed:\n * - `` ``` `` – A paragraph will be changed to a code block.\n */\n _addCodeBlockAutoformats() {\n const editor = this.editor;\n const selection = editor.model.document.selection;\n if (editor.commands.get('codeBlock')) {\n blockAutoformatEditing(editor, this, /^```$/, () => {\n if (selection.getFirstPosition().parent.is('element', 'listItem')) {\n return false;\n }\n this.editor.execute('codeBlock', {\n usePreviousLanguageChoice: true\n });\n });\n }\n }\n /**\n * Adds autoformatting related to {@link module:horizontal-line/horizontalline~HorizontalLine}.\n *\n * When typed:\n * - `` --- `` – Will be replaced with a horizontal line.\n */\n _addHorizontalLineAutoformats() {\n if (this.editor.commands.get('horizontalLine')) {\n blockAutoformatEditing(this.editor, this, /^---$/, 'horizontalLine');\n }\n }\n}\n/**\n * Helper function for getting `inlineAutoformatEditing` callbacks that checks if command is enabled.\n */\nfunction getCallbackFunctionForInlineAutoformat(editor, attributeKey) {\n return (writer, rangesToFormat) => {\n const command = editor.commands.get(attributeKey);\n if (!command.isEnabled) {\n return false;\n }\n const validRanges = editor.model.schema.getValidRanges(rangesToFormat, attributeKey);\n for (const range of validRanges) {\n writer.setAttribute(attributeKey, true, range);\n }\n // After applying attribute to the text, remove given attribute from the selection.\n // This way user is able to type a text without attribute used by auto formatter.\n writer.removeSelectionAttribute(attributeKey);\n };\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/attributecommand\n */\nimport { Command } from 'ckeditor5/src/core';\n/**\n * An extension of the base {@link module:core/command~Command} class, which provides utilities for a command\n * that toggles a single attribute on a text or an element.\n *\n * `AttributeCommand` uses {@link module:engine/model/document~Document#selection}\n * to decide which nodes (if any) should be changed, and applies or removes the attribute from them.\n *\n * The command checks the {@link module:engine/model/model~Model#schema} to decide if it can be enabled\n * for the current selection and to which nodes the attribute can be applied.\n */\nexport default class AttributeCommand extends Command {\n /**\n * @param attributeKey Attribute that will be set by the command.\n */\n constructor(editor, attributeKey) {\n super(editor);\n this.attributeKey = attributeKey;\n }\n /**\n * Updates the command's {@link #value} and {@link #isEnabled} based on the current selection.\n */\n refresh() {\n const model = this.editor.model;\n const doc = model.document;\n this.value = this._getValueFromFirstAllowedNode();\n this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, this.attributeKey);\n }\n /**\n * Executes the command — applies the attribute to the selection or removes it from the selection.\n *\n * If the command is active (`value == true`), it will remove attributes. Otherwise, it will set attributes.\n *\n * The execution result differs, depending on the {@link module:engine/model/document~Document#selection}:\n *\n * * If the selection is on a range, the command applies the attribute to all nodes in that range\n * (if they are allowed to have this attribute by the {@link module:engine/model/schema~Schema schema}).\n * * If the selection is collapsed in a non-empty node, the command applies the attribute to the\n * {@link module:engine/model/document~Document#selection} itself (note that typed characters copy attributes from the selection).\n * * If the selection is collapsed in an empty node, the command applies the attribute to the parent node of the selection (note\n * that the selection inherits all attributes from a node if it is in an empty node).\n *\n * @fires execute\n * @param options Command options.\n * @param options.forceValue If set, it will force the command behavior. If `true`,\n * the command will apply the attribute, otherwise the command will remove the attribute.\n * If not set, the command will look for its current value to decide what it should do.\n */\n execute(options = {}) {\n const model = this.editor.model;\n const doc = model.document;\n const selection = doc.selection;\n const value = (options.forceValue === undefined) ? !this.value : options.forceValue;\n model.change(writer => {\n if (selection.isCollapsed) {\n if (value) {\n writer.setSelectionAttribute(this.attributeKey, true);\n }\n else {\n writer.removeSelectionAttribute(this.attributeKey);\n }\n }\n else {\n const ranges = model.schema.getValidRanges(selection.getRanges(), this.attributeKey);\n for (const range of ranges) {\n if (value) {\n writer.setAttribute(this.attributeKey, value, range);\n }\n else {\n writer.removeAttribute(this.attributeKey, range);\n }\n }\n }\n });\n }\n /**\n * Checks the attribute value of the first node in the selection that allows the attribute.\n * For the collapsed selection returns the selection attribute.\n *\n * @returns The attribute value.\n */\n _getValueFromFirstAllowedNode() {\n const model = this.editor.model;\n const schema = model.schema;\n const selection = model.document.selection;\n if (selection.isCollapsed) {\n return selection.hasAttribute(this.attributeKey);\n }\n for (const range of selection.getRanges()) {\n for (const item of range.getItems()) {\n if (schema.checkAttribute(item, this.attributeKey)) {\n return item.hasAttribute(this.attributeKey);\n }\n }\n }\n return false;\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/bold/boldediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport AttributeCommand from '../attributecommand';\nconst BOLD = 'bold';\n/**\n * The bold editing feature.\n *\n * It registers the `'bold'` command and introduces the `bold` attribute in the model which renders to the view\n * as a `` element.\n */\nexport default class BoldEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'BoldEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Allow bold attribute on text nodes.\n editor.model.schema.extend('$text', { allowAttributes: BOLD });\n editor.model.schema.setAttributeProperties(BOLD, {\n isFormatting: true,\n copyOnEnter: true\n });\n // Build converter from model to view for data and editing pipelines.\n editor.conversion.attributeToElement({\n model: BOLD,\n view: 'strong',\n upcastAlso: [\n 'b',\n viewElement => {\n const fontWeight = viewElement.getStyle('font-weight');\n if (!fontWeight) {\n return null;\n }\n // Value of the `font-weight` attribute can be defined as a string or a number.\n if (fontWeight == 'bold' || Number(fontWeight) >= 600) {\n return {\n name: true,\n styles: ['font-weight']\n };\n }\n return null;\n }\n ]\n });\n // Create bold command.\n editor.commands.add(BOLD, new AttributeCommand(editor, BOLD));\n // Set the Ctrl+B keystroke.\n editor.keystrokes.set('CTRL+B', BOLD);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/bold/boldui\n */\nimport { Plugin, icons } from 'ckeditor5/src/core';\nimport { ButtonView } from 'ckeditor5/src/ui';\nconst BOLD = 'bold';\n/**\n * The bold UI feature. It introduces the Bold button.\n */\nexport default class BoldUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'BoldUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const t = editor.t;\n // Add bold button to feature components.\n editor.ui.componentFactory.add(BOLD, locale => {\n const command = editor.commands.get(BOLD);\n const view = new ButtonView(locale);\n view.set({\n label: t('Bold'),\n icon: icons.bold,\n keystroke: 'CTRL+B',\n tooltip: true,\n isToggleable: true\n });\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n // Execute command.\n this.listenTo(view, 'execute', () => {\n editor.execute(BOLD);\n editor.editing.view.focus();\n });\n return view;\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/code/codeediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { TwoStepCaretMovement, inlineHighlight } from 'ckeditor5/src/typing';\nimport AttributeCommand from '../attributecommand';\nconst CODE = 'code';\nconst HIGHLIGHT_CLASS = 'ck-code_selected';\n/**\n * The code editing feature.\n *\n * It registers the `'code'` command and introduces the `code` attribute in the model which renders to the view\n * as a `` element.\n */\nexport default class CodeEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'CodeEditing';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [TwoStepCaretMovement];\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Allow code attribute on text nodes.\n editor.model.schema.extend('$text', { allowAttributes: CODE });\n editor.model.schema.setAttributeProperties(CODE, {\n isFormatting: true,\n copyOnEnter: false\n });\n editor.conversion.attributeToElement({\n model: CODE,\n view: 'code',\n upcastAlso: {\n styles: {\n 'word-wrap': 'break-word'\n }\n }\n });\n // Create code command.\n editor.commands.add(CODE, new AttributeCommand(editor, CODE));\n // Enable two-step caret movement for `code` attribute.\n editor.plugins.get(TwoStepCaretMovement).registerAttribute(CODE);\n // Setup highlight over selected element.\n inlineHighlight(editor, CODE, 'code', HIGHLIGHT_CLASS);\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./code.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/code/codeui\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { ButtonView } from 'ckeditor5/src/ui';\nimport codeIcon from '../../theme/icons/code.svg';\nimport '../../theme/code.css';\nconst CODE = 'code';\n/**\n * The code UI feature. It introduces the Code button.\n */\nexport default class CodeUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'CodeUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const t = editor.t;\n // Add code button to feature components.\n editor.ui.componentFactory.add(CODE, locale => {\n const command = editor.commands.get(CODE);\n const view = new ButtonView(locale);\n view.set({\n label: t('Code'),\n icon: codeIcon,\n tooltip: true,\n isToggleable: true\n });\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n // Execute command.\n this.listenTo(view, 'execute', () => {\n editor.execute(CODE);\n editor.editing.view.focus();\n });\n return view;\n });\n }\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/italic/italicediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport AttributeCommand from '../attributecommand';\nconst ITALIC = 'italic';\n/**\n * The italic editing feature.\n *\n * It registers the `'italic'` command, the Ctrl+I keystroke and introduces the `italic` attribute in the model\n * which renders to the view as an `` element.\n */\nexport default class ItalicEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ItalicEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Allow italic attribute on text nodes.\n editor.model.schema.extend('$text', { allowAttributes: ITALIC });\n editor.model.schema.setAttributeProperties(ITALIC, {\n isFormatting: true,\n copyOnEnter: true\n });\n editor.conversion.attributeToElement({\n model: ITALIC,\n view: 'i',\n upcastAlso: [\n 'em',\n {\n styles: {\n 'font-style': 'italic'\n }\n }\n ]\n });\n // Create italic command.\n editor.commands.add(ITALIC, new AttributeCommand(editor, ITALIC));\n // Set the Ctrl+I keystroke.\n editor.keystrokes.set('CTRL+I', ITALIC);\n }\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/italic/italicui\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { ButtonView } from 'ckeditor5/src/ui';\nimport italicIcon from '../../theme/icons/italic.svg';\nconst ITALIC = 'italic';\n/**\n * The italic UI feature. It introduces the Italic button.\n */\nexport default class ItalicUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ItalicUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const t = editor.t;\n // Add bold button to feature components.\n editor.ui.componentFactory.add(ITALIC, locale => {\n const command = editor.commands.get(ITALIC);\n const view = new ButtonView(locale);\n view.set({\n label: t('Italic'),\n icon: italicIcon,\n keystroke: 'CTRL+I',\n tooltip: true,\n isToggleable: true\n });\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n // Execute command.\n this.listenTo(view, 'execute', () => {\n editor.execute(ITALIC);\n editor.editing.view.focus();\n });\n return view;\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/strikethrough/strikethroughediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport AttributeCommand from '../attributecommand';\nconst STRIKETHROUGH = 'strikethrough';\n/**\n * The strikethrough editing feature.\n *\n * It registers the `'strikethrough'` command, the Ctrl+Shift+X keystroke and introduces the\n * `strikethroughsthrough` attribute in the model which renders to the view\n * as a `` element.\n */\nexport default class StrikethroughEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'StrikethroughEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Allow strikethrough attribute on text nodes.\n editor.model.schema.extend('$text', { allowAttributes: STRIKETHROUGH });\n editor.model.schema.setAttributeProperties(STRIKETHROUGH, {\n isFormatting: true,\n copyOnEnter: true\n });\n editor.conversion.attributeToElement({\n model: STRIKETHROUGH,\n view: 's',\n upcastAlso: [\n 'del',\n 'strike',\n {\n styles: {\n 'text-decoration': 'line-through'\n }\n }\n ]\n });\n // Create strikethrough command.\n editor.commands.add(STRIKETHROUGH, new AttributeCommand(editor, STRIKETHROUGH));\n // Set the Ctrl+Shift+X keystroke.\n editor.keystrokes.set('CTRL+SHIFT+X', 'strikethrough');\n }\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/strikethrough/strikethroughui\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { ButtonView } from 'ckeditor5/src/ui';\nimport strikethroughIcon from '../../theme/icons/strikethrough.svg';\nconst STRIKETHROUGH = 'strikethrough';\n/**\n * The strikethrough UI feature. It introduces the Strikethrough button.\n */\nexport default class StrikethroughUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'StrikethroughUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const t = editor.t;\n // Add strikethrough button to feature components.\n editor.ui.componentFactory.add(STRIKETHROUGH, locale => {\n const command = editor.commands.get(STRIKETHROUGH);\n const view = new ButtonView(locale);\n view.set({\n label: t('Strikethrough'),\n icon: strikethroughIcon,\n keystroke: 'CTRL+SHIFT+X',\n tooltip: true,\n isToggleable: true\n });\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n // Execute command.\n this.listenTo(view, 'execute', () => {\n editor.execute(STRIKETHROUGH);\n editor.editing.view.focus();\n });\n return view;\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/subscript/subscriptediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport AttributeCommand from '../attributecommand';\nconst SUBSCRIPT = 'subscript';\n/**\n * The subscript editing feature.\n *\n * It registers the `sub` command and introduces the `sub` attribute in the model which renders to the view\n * as a `` element.\n */\nexport default class SubscriptEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'SubscriptEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Allow sub attribute on text nodes.\n editor.model.schema.extend('$text', { allowAttributes: SUBSCRIPT });\n editor.model.schema.setAttributeProperties(SUBSCRIPT, {\n isFormatting: true,\n copyOnEnter: true\n });\n // Build converter from model to view for data and editing pipelines.\n editor.conversion.attributeToElement({\n model: SUBSCRIPT,\n view: 'sub',\n upcastAlso: [\n {\n styles: {\n 'vertical-align': 'sub'\n }\n }\n ]\n });\n // Create sub command.\n editor.commands.add(SUBSCRIPT, new AttributeCommand(editor, SUBSCRIPT));\n }\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/subscript/subscriptui\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { ButtonView } from 'ckeditor5/src/ui';\nimport subscriptIcon from '../../theme/icons/subscript.svg';\nconst SUBSCRIPT = 'subscript';\n/**\n * The subscript UI feature. It introduces the Subscript button.\n */\nexport default class SubscriptUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'SubscriptUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const t = editor.t;\n // Add subscript button to feature components.\n editor.ui.componentFactory.add(SUBSCRIPT, locale => {\n const command = editor.commands.get(SUBSCRIPT);\n const view = new ButtonView(locale);\n view.set({\n label: t('Subscript'),\n icon: subscriptIcon,\n tooltip: true,\n isToggleable: true\n });\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n // Execute command.\n this.listenTo(view, 'execute', () => {\n editor.execute(SUBSCRIPT);\n editor.editing.view.focus();\n });\n return view;\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/superscript/superscriptediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport AttributeCommand from '../attributecommand';\nconst SUPERSCRIPT = 'superscript';\n/**\n * The superscript editing feature.\n *\n * It registers the `super` command and introduces the `super` attribute in the model which renders to the view\n * as a `` element.\n */\nexport default class SuperscriptEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'SuperscriptEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Allow super attribute on text nodes.\n editor.model.schema.extend('$text', { allowAttributes: SUPERSCRIPT });\n editor.model.schema.setAttributeProperties(SUPERSCRIPT, {\n isFormatting: true,\n copyOnEnter: true\n });\n // Build converter from model to view for data and editing pipelines.\n editor.conversion.attributeToElement({\n model: SUPERSCRIPT,\n view: 'sup',\n upcastAlso: [\n {\n styles: {\n 'vertical-align': 'super'\n }\n }\n ]\n });\n // Create super command.\n editor.commands.add(SUPERSCRIPT, new AttributeCommand(editor, SUPERSCRIPT));\n }\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/superscript/superscriptui\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { ButtonView } from 'ckeditor5/src/ui';\nimport superscriptIcon from '../../theme/icons/superscript.svg';\nconst SUPERSCRIPT = 'superscript';\n/**\n * The superscript UI feature. It introduces the Superscript button.\n */\nexport default class SuperscriptUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'SuperscriptUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const t = editor.t;\n // Add superscript button to feature components.\n editor.ui.componentFactory.add(SUPERSCRIPT, locale => {\n const command = editor.commands.get(SUPERSCRIPT);\n const view = new ButtonView(locale);\n view.set({\n label: t('Superscript'),\n icon: superscriptIcon,\n tooltip: true,\n isToggleable: true\n });\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n // Execute command.\n this.listenTo(view, 'execute', () => {\n editor.execute(SUPERSCRIPT);\n editor.editing.view.focus();\n });\n return view;\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/underline/underlineediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport AttributeCommand from '../attributecommand';\nconst UNDERLINE = 'underline';\n/**\n * The underline editing feature.\n *\n * It registers the `'underline'` command, the Ctrl+U keystroke\n * and introduces the `underline` attribute in the model which renders to the view as an `` element.\n */\nexport default class UnderlineEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'UnderlineEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Allow strikethrough attribute on text nodes.\n editor.model.schema.extend('$text', { allowAttributes: UNDERLINE });\n editor.model.schema.setAttributeProperties(UNDERLINE, {\n isFormatting: true,\n copyOnEnter: true\n });\n editor.conversion.attributeToElement({\n model: UNDERLINE,\n view: 'u',\n upcastAlso: {\n styles: {\n 'text-decoration': 'underline'\n }\n }\n });\n // Create underline command.\n editor.commands.add(UNDERLINE, new AttributeCommand(editor, UNDERLINE));\n // Set the Ctrl+U keystroke.\n editor.keystrokes.set('CTRL+U', 'underline');\n }\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/underline/underlineui\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { ButtonView } from 'ckeditor5/src/ui';\nimport underlineIcon from '../../theme/icons/underline.svg';\nconst UNDERLINE = 'underline';\n/**\n * The underline UI feature. It introduces the Underline button.\n */\nexport default class UnderlineUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'UnderlineUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const t = editor.t;\n // Add bold button to feature components.\n editor.ui.componentFactory.add(UNDERLINE, locale => {\n const command = editor.commands.get(UNDERLINE);\n const view = new ButtonView(locale);\n view.set({\n label: t('Underline'),\n icon: underlineIcon,\n keystroke: 'CTRL+U',\n tooltip: true,\n isToggleable: true\n });\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n // Execute command.\n this.listenTo(view, 'execute', () => {\n editor.execute(UNDERLINE);\n editor.editing.view.focus();\n });\n return view;\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * Returns attributes that should be preserved on the enter keystroke.\n *\n * Filtering is realized based on `copyOnEnter` attribute property. Read more about attribute properties\n * {@link module:engine/model/schema~Schema#setAttributeProperties here}.\n *\n * @param schema Model's schema.\n * @param allAttributes Attributes to filter.\n */\nexport function* getCopyOnEnterAttributes(schema, allAttributes) {\n for (const attribute of allAttributes) {\n if (attribute && schema.getAttributeProperties(attribute[0]).copyOnEnter) {\n yield attribute;\n }\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module enter/entercommand\n */\nimport { Command } from '@ckeditor/ckeditor5-core';\nimport { getCopyOnEnterAttributes } from './utils';\n/**\n * Enter command used by the {@link module:enter/enter~Enter Enter feature} to handle the Enter keystroke.\n */\nexport default class EnterCommand extends Command {\n /**\n * @inheritDoc\n */\n execute() {\n this.editor.model.change(writer => {\n this.enterBlock(writer);\n this.fire('afterExecute', { writer });\n });\n }\n /**\n * Splits a block where the document selection is placed, in the way how the Enter key is expected to work:\n *\n * ```\n *

Foo[]bar

->

Foo

[]bar

\n *

Foobar[]

->

Foobar

[]

\n *

Fo[ob]ar

->

Fo

[]ar

\n * ```\n *\n * In some cases, the split will not happen:\n *\n * ```\n * // The selection parent is a limit element:\n *
A[bc]d
->
A[]d
\n *\n * // The selection spans over multiple elements:\n * x[x

y]y

-> x

[]y

\n * ```\n *\n * @param writer Writer to use when performing the enter action.\n * @returns Boolean indicating if the block was split.\n */\n enterBlock(writer) {\n const model = this.editor.model;\n const selection = model.document.selection;\n const schema = model.schema;\n const isSelectionEmpty = selection.isCollapsed;\n const range = selection.getFirstRange();\n const startElement = range.start.parent;\n const endElement = range.end.parent;\n // Don't touch the roots and other limit elements.\n if (schema.isLimit(startElement) || schema.isLimit(endElement)) {\n // Delete the selected content but only if inside a single limit element.\n // Abort, when crossing limit elements boundary (e.g. x[xdonttouchmey]y).\n // This is an edge case and it's hard to tell what should actually happen because such a selection\n // is not entirely valid.\n if (!isSelectionEmpty && startElement == endElement) {\n model.deleteContent(selection);\n }\n return false;\n }\n if (isSelectionEmpty) {\n const attributesToCopy = getCopyOnEnterAttributes(writer.model.schema, selection.getAttributes());\n splitBlock(writer, range.start);\n writer.setSelectionAttribute(attributesToCopy);\n return true;\n }\n else {\n const leaveUnmerged = !(range.start.isAtStart && range.end.isAtEnd);\n const isContainedWithinOneElement = (startElement == endElement);\n model.deleteContent(selection, { leaveUnmerged });\n if (leaveUnmerged) {\n // Partially selected elements.\n //\n // x[xx]x\t\t-> x^x\t\t\t-> x^x\n if (isContainedWithinOneElement) {\n splitBlock(writer, selection.focus);\n return true;\n }\n // Selection over multiple elements.\n //\n // x[x

y]y

\t-> x^

y

\t-> x

^y

\n else {\n writer.setSelection(endElement, 0);\n }\n }\n }\n return false;\n }\n}\nfunction splitBlock(writer, splitPos) {\n writer.split(splitPos);\n writer.setSelection(splitPos.parent.nextSibling, 0);\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module enter/enterobserver\n */\nimport { Observer, DomEventData, BubblingEventInfo } from '@ckeditor/ckeditor5-engine';\nimport { env } from '@ckeditor/ckeditor5-utils';\nconst ENTER_EVENT_TYPES = {\n insertParagraph: { isSoft: false },\n insertLineBreak: { isSoft: true }\n};\n/**\n * Enter observer introduces the {@link module:engine/view/document~Document#event:enter `Document#enter`} event.\n */\nexport default class EnterObserver extends Observer {\n /**\n * @inheritDoc\n */\n constructor(view) {\n super(view);\n const doc = this.document;\n let shiftPressed = false;\n doc.on('keydown', (evt, data) => {\n shiftPressed = data.shiftKey;\n });\n doc.on('beforeinput', (evt, data) => {\n if (!this.isEnabled) {\n return;\n }\n let inputType = data.inputType;\n // See https://github.com/ckeditor/ckeditor5/issues/13321.\n if (env.isSafari && shiftPressed && inputType == 'insertParagraph') {\n inputType = 'insertLineBreak';\n }\n const domEvent = data.domEvent;\n const enterEventSpec = ENTER_EVENT_TYPES[inputType];\n if (!enterEventSpec) {\n return;\n }\n const event = new BubblingEventInfo(doc, 'enter', data.targetRanges[0]);\n doc.fire(event, new DomEventData(view, domEvent, {\n isSoft: enterEventSpec.isSoft\n }));\n // Stop `beforeinput` event if `enter` event was stopped.\n // https://github.com/ckeditor/ckeditor5/issues/753\n if (event.stop.called) {\n evt.stop();\n }\n });\n }\n /**\n * @inheritDoc\n */\n observe() { }\n /**\n * @inheritDoc\n */\n stopObserving() { }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module enter/enter\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport EnterCommand from './entercommand';\nimport EnterObserver from './enterobserver';\n/**\n * This plugin handles the Enter keystroke (hard line break) in the editor.\n *\n * See also the {@link module:enter/shiftenter~ShiftEnter} plugin.\n *\n * For more information about this feature see the {@glink api/enter package page}.\n */\nexport default class Enter extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'Enter';\n }\n init() {\n const editor = this.editor;\n const view = editor.editing.view;\n const viewDocument = view.document;\n view.addObserver(EnterObserver);\n editor.commands.add('enter', new EnterCommand(editor));\n this.listenTo(viewDocument, 'enter', (evt, data) => {\n // When not in composition, we handle the action, so prevent the default one.\n // When in composition, it's the browser who modify the DOM (renderer is disabled).\n if (!viewDocument.isComposing) {\n data.preventDefault();\n }\n // The soft enter key is handled by the ShiftEnter plugin.\n if (data.isSoft) {\n return;\n }\n editor.execute('enter');\n view.scrollToTheSelection();\n }, { priority: 'low' });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module enter/shiftentercommand\n */\nimport { Command } from '@ckeditor/ckeditor5-core';\nimport { getCopyOnEnterAttributes } from './utils';\n/**\n * ShiftEnter command. It is used by the {@link module:enter/shiftenter~ShiftEnter ShiftEnter feature} to handle\n * the Shift+Enter keystroke.\n */\nexport default class ShiftEnterCommand extends Command {\n /**\n * @inheritDoc\n */\n execute() {\n const model = this.editor.model;\n const doc = model.document;\n model.change(writer => {\n softBreakAction(model, writer, doc.selection);\n this.fire('afterExecute', { writer });\n });\n }\n /**\n * @inheritDoc\n */\n refresh() {\n const model = this.editor.model;\n const doc = model.document;\n this.isEnabled = isEnabled(model.schema, doc.selection);\n }\n}\n/**\n * Checks whether the ShiftEnter command should be enabled in the specified selection.\n */\nfunction isEnabled(schema, selection) {\n // At this moment it is okay to support single range selections only.\n // But in the future we may need to change that.\n if (selection.rangeCount > 1) {\n return false;\n }\n const anchorPos = selection.anchor;\n // Check whether the break element can be inserted in the current selection anchor.\n if (!anchorPos || !schema.checkChild(anchorPos, 'softBreak')) {\n return false;\n }\n const range = selection.getFirstRange();\n const startElement = range.start.parent;\n const endElement = range.end.parent;\n // Do not modify the content if selection is cross-limit elements.\n if ((isInsideLimitElement(startElement, schema) || isInsideLimitElement(endElement, schema)) && startElement !== endElement) {\n return false;\n }\n return true;\n}\n/**\n * Creates a break in the way that the Shift+Enter keystroke is expected to work.\n */\nfunction softBreakAction(model, writer, selection) {\n const isSelectionEmpty = selection.isCollapsed;\n const range = selection.getFirstRange();\n const startElement = range.start.parent;\n const endElement = range.end.parent;\n const isContainedWithinOneElement = (startElement == endElement);\n if (isSelectionEmpty) {\n const attributesToCopy = getCopyOnEnterAttributes(model.schema, selection.getAttributes());\n insertBreak(model, writer, range.end);\n writer.removeSelectionAttribute(selection.getAttributeKeys());\n writer.setSelectionAttribute(attributesToCopy);\n }\n else {\n const leaveUnmerged = !(range.start.isAtStart && range.end.isAtEnd);\n model.deleteContent(selection, { leaveUnmerged });\n // Selection within one element:\n //\n // x[xx]x\t\t-> x^x\t\t\t-> x
^x
\n if (isContainedWithinOneElement) {\n insertBreak(model, writer, selection.focus);\n }\n // Selection over multiple elements.\n //\n // x[x

y]y

\t-> x^

y

\t-> x

^y

\n //\n // We chose not to insert a line break in this case because:\n //\n // * it's not a very common scenario,\n // * it actually surprised me when I saw the \"expected behavior\" in real life.\n //\n // It's ok if the user will need to be more specific where they want the
to be inserted.\n else {\n // Move the selection to the 2nd element (last step of the example above).\n if (leaveUnmerged) {\n writer.setSelection(endElement, 0);\n }\n }\n }\n}\nfunction insertBreak(model, writer, position) {\n const breakLineElement = writer.createElement('softBreak');\n model.insertContent(breakLineElement, position);\n writer.setSelection(breakLineElement, 'after');\n}\n/**\n * Checks whether the specified `element` is a child of the limit element.\n *\n * Checking whether the `

` element is inside a limit element:\n * - `<$root>

Text.

=> false`\n * - `<$root>

Text

=> true`\n */\nfunction isInsideLimitElement(element, schema) {\n // `$root` is a limit element but in this case is an invalid element.\n if (element.is('rootElement')) {\n return false;\n }\n return schema.isLimit(element) || isInsideLimitElement(element.parent, schema);\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module enter/shiftenter\n */\nimport ShiftEnterCommand from './shiftentercommand';\nimport EnterObserver from './enterobserver';\nimport { Plugin } from '@ckeditor/ckeditor5-core';\n/**\n * This plugin handles the Shift+Enter keystroke (soft line break) in the editor.\n *\n * See also the {@link module:enter/enter~Enter} plugin.\n *\n * For more information about this feature see the {@glink api/enter package page}.\n */\nexport default class ShiftEnter extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ShiftEnter';\n }\n init() {\n const editor = this.editor;\n const schema = editor.model.schema;\n const conversion = editor.conversion;\n const view = editor.editing.view;\n const viewDocument = view.document;\n // Configure the schema.\n schema.register('softBreak', {\n allowWhere: '$text',\n isInline: true\n });\n // Configure converters.\n conversion.for('upcast')\n .elementToElement({\n model: 'softBreak',\n view: 'br'\n });\n conversion.for('downcast')\n .elementToElement({\n model: 'softBreak',\n view: (modelElement, { writer }) => writer.createEmptyElement('br')\n });\n view.addObserver(EnterObserver);\n editor.commands.add('shiftEnter', new ShiftEnterCommand(editor));\n this.listenTo(viewDocument, 'enter', (evt, data) => {\n // When not in composition, we handle the action, so prevent the default one.\n // When in composition, it's the browser who modify the DOM (renderer is disabled).\n if (!viewDocument.isComposing) {\n data.preventDefault();\n }\n // The hard enter key is handled by the Enter plugin.\n if (!data.isSoft) {\n return;\n }\n editor.execute('shiftEnter');\n view.scrollToTheSelection();\n }, { priority: 'low' });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module block-quote/blockquotecommand\n */\nimport { Command } from 'ckeditor5/src/core';\nimport { first } from 'ckeditor5/src/utils';\n/**\n * The block quote command plugin.\n *\n * @extends module:core/command~Command\n */\nexport default class BlockQuoteCommand extends Command {\n /**\n * @inheritDoc\n */\n refresh() {\n this.value = this._getValue();\n this.isEnabled = this._checkEnabled();\n }\n /**\n * Executes the command. When the command {@link #value is on}, all top-most block quotes within\n * the selection will be removed. If it is off, all selected blocks will be wrapped with\n * a block quote.\n *\n * @fires execute\n * @param options Command options.\n * @param options.forceValue If set, it will force the command behavior. If `true`, the command will apply a block quote,\n * otherwise the command will remove the block quote. If not set, the command will act basing on its current value.\n */\n execute(options = {}) {\n const model = this.editor.model;\n const schema = model.schema;\n const selection = model.document.selection;\n const blocks = Array.from(selection.getSelectedBlocks());\n const value = (options.forceValue === undefined) ? !this.value : options.forceValue;\n model.change(writer => {\n if (!value) {\n this._removeQuote(writer, blocks.filter(findQuote));\n }\n else {\n const blocksToQuote = blocks.filter(block => {\n // Already quoted blocks needs to be considered while quoting too\n // in order to reuse their elements.\n return findQuote(block) || checkCanBeQuoted(schema, block);\n });\n this._applyQuote(writer, blocksToQuote);\n }\n });\n }\n /**\n * Checks the command's {@link #value}.\n */\n _getValue() {\n const selection = this.editor.model.document.selection;\n const firstBlock = first(selection.getSelectedBlocks());\n // In the current implementation, the block quote must be an immediate parent of a block element.\n return !!(firstBlock && findQuote(firstBlock));\n }\n /**\n * Checks whether the command can be enabled in the current context.\n *\n * @returns Whether the command should be enabled.\n */\n _checkEnabled() {\n if (this.value) {\n return true;\n }\n const selection = this.editor.model.document.selection;\n const schema = this.editor.model.schema;\n const firstBlock = first(selection.getSelectedBlocks());\n if (!firstBlock) {\n return false;\n }\n return checkCanBeQuoted(schema, firstBlock);\n }\n /**\n * Removes the quote from given blocks.\n *\n * If blocks which are supposed to be \"unquoted\" are in the middle of a quote,\n * start it or end it, then the quote will be split (if needed) and the blocks\n * will be moved out of it, so other quoted blocks remained quoted.\n */\n _removeQuote(writer, blocks) {\n // Unquote all groups of block. Iterate in the reverse order to not break following ranges.\n getRangesOfBlockGroups(writer, blocks).reverse().forEach(groupRange => {\n if (groupRange.start.isAtStart && groupRange.end.isAtEnd) {\n writer.unwrap(groupRange.start.parent);\n return;\n }\n // The group of blocks are at the beginning of an so let's move them left (out of the ).\n if (groupRange.start.isAtStart) {\n const positionBefore = writer.createPositionBefore(groupRange.start.parent);\n writer.move(groupRange, positionBefore);\n return;\n }\n // The blocks are in the middle of an so we need to split the after the last block\n // so we move the items there.\n if (!groupRange.end.isAtEnd) {\n writer.split(groupRange.end);\n }\n // Now we are sure that groupRange.end.isAtEnd is true, so let's move the blocks right.\n const positionAfter = writer.createPositionAfter(groupRange.end.parent);\n writer.move(groupRange, positionAfter);\n });\n }\n /**\n * Applies the quote to given blocks.\n */\n _applyQuote(writer, blocks) {\n const quotesToMerge = [];\n // Quote all groups of block. Iterate in the reverse order to not break following ranges.\n getRangesOfBlockGroups(writer, blocks).reverse().forEach(groupRange => {\n let quote = findQuote(groupRange.start);\n if (!quote) {\n quote = writer.createElement('blockQuote');\n writer.wrap(groupRange, quote);\n }\n quotesToMerge.push(quote);\n });\n // Merge subsequent elements. Reverse the order again because this time we want to go through\n // the elements in the source order (due to how merge works – it moves the right element's content\n // to the first element and removes the right one. Since we may need to merge a couple of subsequent `` elements\n // we want to keep the reference to the first (furthest left) one.\n quotesToMerge.reverse().reduce((currentQuote, nextQuote) => {\n if (currentQuote.nextSibling == nextQuote) {\n writer.merge(writer.createPositionAfter(currentQuote));\n return currentQuote;\n }\n return nextQuote;\n });\n }\n}\nfunction findQuote(elementOrPosition) {\n return elementOrPosition.parent.name == 'blockQuote' ? elementOrPosition.parent : null;\n}\n/**\n * Returns a minimal array of ranges containing groups of subsequent blocks.\n *\n * content: abcdefgh\n * blocks: [ a, b, d, f, g, h ]\n * output ranges: [ab]c[d]e[fgh]\n */\nfunction getRangesOfBlockGroups(writer, blocks) {\n let startPosition;\n let i = 0;\n const ranges = [];\n while (i < blocks.length) {\n const block = blocks[i];\n const nextBlock = blocks[i + 1];\n if (!startPosition) {\n startPosition = writer.createPositionBefore(block);\n }\n if (!nextBlock || block.nextSibling != nextBlock) {\n ranges.push(writer.createRange(startPosition, writer.createPositionAfter(block)));\n startPosition = null;\n }\n i++;\n }\n return ranges;\n}\n/**\n * Checks whether can wrap the block.\n */\nfunction checkCanBeQuoted(schema, block) {\n // TMP will be replaced with schema.checkWrap().\n const isBQAllowed = schema.checkChild(block.parent, 'blockQuote');\n const isBlockAllowedInBQ = schema.checkChild(['$root', 'blockQuote'], block);\n return isBQAllowed && isBlockAllowedInBQ;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module block-quote/blockquoteediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Enter } from 'ckeditor5/src/enter';\nimport { Delete } from 'ckeditor5/src/typing';\nimport BlockQuoteCommand from './blockquotecommand';\n/**\n * The block quote editing.\n *\n * Introduces the `'blockQuote'` command and the `'blockQuote'` model element.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class BlockQuoteEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'BlockQuoteEditing';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [Enter, Delete];\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const schema = editor.model.schema;\n editor.commands.add('blockQuote', new BlockQuoteCommand(editor));\n schema.register('blockQuote', {\n inheritAllFrom: '$container'\n });\n editor.conversion.elementToElement({ model: 'blockQuote', view: 'blockquote' });\n // Postfixer which cleans incorrect model states connected with block quotes.\n editor.model.document.registerPostFixer(writer => {\n const changes = editor.model.document.differ.getChanges();\n for (const entry of changes) {\n if (entry.type == 'insert') {\n const element = entry.position.nodeAfter;\n if (!element) {\n // We are inside a text node.\n continue;\n }\n if (element.is('element', 'blockQuote') && element.isEmpty) {\n // Added an empty blockQuote - remove it.\n writer.remove(element);\n return true;\n }\n else if (element.is('element', 'blockQuote') && !schema.checkChild(entry.position, element)) {\n // Added a blockQuote in incorrect place. Unwrap it so the content inside is not lost.\n writer.unwrap(element);\n return true;\n }\n else if (element.is('element')) {\n // Just added an element. Check that all children meet the scheme rules.\n const range = writer.createRangeIn(element);\n for (const child of range.getItems()) {\n if (child.is('element', 'blockQuote') &&\n !schema.checkChild(writer.createPositionBefore(child), child)) {\n writer.unwrap(child);\n return true;\n }\n }\n }\n }\n else if (entry.type == 'remove') {\n const parent = entry.position.parent;\n if (parent.is('element', 'blockQuote') && parent.isEmpty) {\n // Something got removed and now blockQuote is empty. Remove the blockQuote as well.\n writer.remove(parent);\n return true;\n }\n }\n }\n return false;\n });\n const viewDocument = this.editor.editing.view.document;\n const selection = editor.model.document.selection;\n const blockQuoteCommand = editor.commands.get('blockQuote');\n // Overwrite default Enter key behavior.\n // If Enter key is pressed with selection collapsed in empty block inside a quote, break the quote.\n this.listenTo(viewDocument, 'enter', (evt, data) => {\n if (!selection.isCollapsed || !blockQuoteCommand.value) {\n return;\n }\n const positionParent = selection.getLastPosition().parent;\n if (positionParent.isEmpty) {\n editor.execute('blockQuote');\n editor.editing.view.scrollToTheSelection();\n data.preventDefault();\n evt.stop();\n }\n }, { context: 'blockquote' });\n // Overwrite default Backspace key behavior.\n // If Backspace key is pressed with selection collapsed in first empty block inside a quote, break the quote.\n this.listenTo(viewDocument, 'delete', (evt, data) => {\n if (data.direction != 'backward' || !selection.isCollapsed || !blockQuoteCommand.value) {\n return;\n }\n const positionParent = selection.getLastPosition().parent;\n if (positionParent.isEmpty && !positionParent.previousSibling) {\n editor.execute('blockQuote');\n editor.editing.view.scrollToTheSelection();\n data.preventDefault();\n evt.stop();\n }\n }, { context: 'blockquote' });\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./blockquote.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module block-quote/blockquoteui\n */\nimport { Plugin, icons } from 'ckeditor5/src/core';\nimport { ButtonView } from 'ckeditor5/src/ui';\nimport '../theme/blockquote.css';\n/**\n * The block quote UI plugin.\n *\n * It introduces the `'blockQuote'` button.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class BlockQuoteUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'BlockQuoteUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const t = editor.t;\n editor.ui.componentFactory.add('blockQuote', locale => {\n const command = editor.commands.get('blockQuote');\n const buttonView = new ButtonView(locale);\n buttonView.set({\n label: t('Block quote'),\n icon: icons.quote,\n tooltip: true,\n isToggleable: true\n });\n // Bind button model to command.\n buttonView.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n // Execute command.\n this.listenTo(buttonView, 'execute', () => {\n editor.execute('blockQuote');\n editor.editing.view.focus();\n });\n return buttonView;\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module cloud-services/token/token\n */\n/* globals XMLHttpRequest, setTimeout, clearTimeout, atob */\nimport { ObservableMixin, CKEditorError } from 'ckeditor5/src/utils';\nconst DEFAULT_OPTIONS = { autoRefresh: true };\nconst DEFAULT_TOKEN_REFRESH_TIMEOUT_TIME = 3600000;\n/**\n * Class representing the token used for communication with CKEditor Cloud Services.\n * Value of the token is retrieving from the specified URL and is refreshed every 1 hour by default.\n */\nexport default class Token extends ObservableMixin() {\n /**\n * Creates `Token` instance.\n * Method `init` should be called after using the constructor or use `create` method instead.\n *\n * @param tokenUrlOrRefreshToken Endpoint address to download the token or a callback that provides the token. If the\n * value is a function it has to match the {@link module:cloud-services/token/token~Token#refreshToken} interface.\n */\n constructor(tokenUrlOrRefreshToken, options = {}) {\n super();\n if (!tokenUrlOrRefreshToken) {\n /**\n * A `tokenUrl` must be provided as the first constructor argument.\n *\n * @error token-missing-token-url\n */\n throw new CKEditorError('token-missing-token-url', this);\n }\n if (options.initValue) {\n this._validateTokenValue(options.initValue);\n }\n this.set('value', options.initValue);\n if (typeof tokenUrlOrRefreshToken === 'function') {\n this._refresh = tokenUrlOrRefreshToken;\n }\n else {\n this._refresh = () => defaultRefreshToken(tokenUrlOrRefreshToken);\n }\n this._options = { ...DEFAULT_OPTIONS, ...options };\n }\n /**\n * Initializes the token.\n */\n init() {\n return new Promise((resolve, reject) => {\n if (!this.value) {\n this.refreshToken()\n .then(resolve)\n .catch(reject);\n return;\n }\n if (this._options.autoRefresh) {\n this._registerRefreshTokenTimeout();\n }\n resolve(this);\n });\n }\n /**\n * Refresh token method. Useful in a method form as it can be override in tests.\n */\n refreshToken() {\n return this._refresh()\n .then(value => {\n this._validateTokenValue(value);\n this.set('value', value);\n if (this._options.autoRefresh) {\n this._registerRefreshTokenTimeout();\n }\n return this;\n });\n }\n /**\n * Destroys token instance. Stops refreshing.\n */\n destroy() {\n clearTimeout(this._tokenRefreshTimeout);\n }\n /**\n * Checks whether the provided token follows the JSON Web Tokens (JWT) format.\n *\n * @param tokenValue The token to validate.\n */\n _validateTokenValue(tokenValue) {\n // The token must be a string.\n const isString = typeof tokenValue === 'string';\n // The token must be a plain string without quotes (\"\").\n const isPlainString = !/^\".*\"$/.test(tokenValue);\n // JWT token contains 3 parts: header, payload, and signature.\n // Each part is separated by a dot.\n const isJWTFormat = isString && tokenValue.split('.').length === 3;\n if (!(isPlainString && isJWTFormat)) {\n /**\n * The provided token must follow the [JSON Web Tokens](https://jwt.io/introduction/) format.\n *\n * @error token-not-in-jwt-format\n */\n throw new CKEditorError('token-not-in-jwt-format', this);\n }\n }\n /**\n * Registers a refresh token timeout for the time taken from token.\n */\n _registerRefreshTokenTimeout() {\n const tokenRefreshTimeoutTime = this._getTokenRefreshTimeoutTime();\n clearTimeout(this._tokenRefreshTimeout);\n this._tokenRefreshTimeout = setTimeout(() => {\n this.refreshToken();\n }, tokenRefreshTimeoutTime);\n }\n /**\n * Returns token refresh timeout time calculated from expire time in the token payload.\n *\n * If the token parse fails or the token payload doesn't contain, the default DEFAULT_TOKEN_REFRESH_TIMEOUT_TIME is returned.\n */\n _getTokenRefreshTimeoutTime() {\n try {\n const [, binaryTokenPayload] = this.value.split('.');\n const { exp: tokenExpireTime } = JSON.parse(atob(binaryTokenPayload));\n if (!tokenExpireTime) {\n return DEFAULT_TOKEN_REFRESH_TIMEOUT_TIME;\n }\n const tokenRefreshTimeoutTime = Math.floor(((tokenExpireTime * 1000) - Date.now()) / 2);\n return tokenRefreshTimeoutTime;\n }\n catch (err) {\n return DEFAULT_TOKEN_REFRESH_TIMEOUT_TIME;\n }\n }\n /**\n * Creates a initialized {@link module:cloud-services/token/token~Token} instance.\n *\n * @param tokenUrlOrRefreshToken Endpoint address to download the token or a callback that provides the token. If the\n * value is a function it has to match the {@link module:cloud-services/token/token~Token#refreshToken} interface.\n */\n static create(tokenUrlOrRefreshToken, options = {}) {\n const token = new Token(tokenUrlOrRefreshToken, options);\n return token.init();\n }\n}\n/**\n * This function is called in a defined interval by the {@link ~Token} class. It also can be invoked manually.\n * It should return a promise, which resolves with the new token value.\n * If any error occurs it should return a rejected promise with an error message.\n */\nfunction defaultRefreshToken(tokenUrl) {\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', tokenUrl);\n xhr.addEventListener('load', () => {\n const statusCode = xhr.status;\n const xhrResponse = xhr.response;\n if (statusCode < 200 || statusCode > 299) {\n /**\n * Cannot download new token from the provided url.\n *\n * @error token-cannot-download-new-token\n */\n return reject(new CKEditorError('token-cannot-download-new-token', null));\n }\n return resolve(xhrResponse);\n });\n xhr.addEventListener('error', () => reject(new Error('Network Error')));\n xhr.addEventListener('abort', () => reject(new Error('Abort')));\n xhr.send();\n });\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { EmitterMixin, CKEditorError } from 'ckeditor5/src/utils';\nconst BASE64_HEADER_REG_EXP = /^data:(\\S*?);base64,/;\n/**\n * FileUploader class used to upload single file.\n */\nexport default class FileUploader extends EmitterMixin() {\n /**\n * Creates `FileUploader` instance.\n *\n * @param fileOrData A blob object or a data string encoded with Base64.\n * @param token Token used for authentication.\n * @param apiAddress API address.\n */\n constructor(fileOrData, token, apiAddress) {\n super();\n if (!fileOrData) {\n /**\n * File must be provided as the first argument.\n *\n * @error fileuploader-missing-file\n */\n throw new CKEditorError('fileuploader-missing-file', null);\n }\n if (!token) {\n /**\n * Token must be provided as the second argument.\n *\n * @error fileuploader-missing-token\n */\n throw new CKEditorError('fileuploader-missing-token', null);\n }\n if (!apiAddress) {\n /**\n * Api address must be provided as the third argument.\n *\n * @error fileuploader-missing-api-address\n */\n throw new CKEditorError('fileuploader-missing-api-address', null);\n }\n this.file = _isBase64(fileOrData) ? _base64ToBlob(fileOrData) : fileOrData;\n this._token = token;\n this._apiAddress = apiAddress;\n }\n /**\n * Registers callback on `progress` event.\n */\n onProgress(callback) {\n this.on('progress', (event, data) => callback(data));\n return this;\n }\n /**\n * Registers callback on `error` event. Event is called once when error occurs.\n */\n onError(callback) {\n this.once('error', (event, data) => callback(data));\n return this;\n }\n /**\n * Aborts upload process.\n */\n abort() {\n this.xhr.abort();\n }\n /**\n * Sends XHR request to API.\n */\n send() {\n this._prepareRequest();\n this._attachXHRListeners();\n return this._sendRequest();\n }\n /**\n * Prepares XHR request.\n */\n _prepareRequest() {\n const xhr = new XMLHttpRequest();\n xhr.open('POST', this._apiAddress);\n xhr.setRequestHeader('Authorization', this._token.value);\n xhr.responseType = 'json';\n this.xhr = xhr;\n }\n /**\n * Attaches listeners to the XHR.\n */\n _attachXHRListeners() {\n const xhr = this.xhr;\n const onError = (message) => {\n return () => this.fire('error', message);\n };\n xhr.addEventListener('error', onError('Network Error'));\n xhr.addEventListener('abort', onError('Abort'));\n /* istanbul ignore else -- @preserve */\n if (xhr.upload) {\n xhr.upload.addEventListener('progress', event => {\n if (event.lengthComputable) {\n this.fire('progress', {\n total: event.total,\n uploaded: event.loaded\n });\n }\n });\n }\n xhr.addEventListener('load', () => {\n const statusCode = xhr.status;\n const xhrResponse = xhr.response;\n if (statusCode < 200 || statusCode > 299) {\n return this.fire('error', xhrResponse.message || xhrResponse.error);\n }\n });\n }\n /**\n * Sends XHR request.\n */\n _sendRequest() {\n const formData = new FormData();\n const xhr = this.xhr;\n formData.append('file', this.file);\n return new Promise((resolve, reject) => {\n xhr.addEventListener('load', () => {\n const statusCode = xhr.status;\n const xhrResponse = xhr.response;\n if (statusCode < 200 || statusCode > 299) {\n if (xhrResponse.message) {\n /**\n * Uploading file failed.\n *\n * @error fileuploader-uploading-data-failed\n */\n return reject(new CKEditorError('fileuploader-uploading-data-failed', this, { message: xhrResponse.message }));\n }\n return reject(xhrResponse.error);\n }\n return resolve(xhrResponse);\n });\n xhr.addEventListener('error', () => reject(new Error('Network Error')));\n xhr.addEventListener('abort', () => reject(new Error('Abort')));\n xhr.send(formData);\n });\n }\n}\n/**\n * Transforms Base64 string data into file.\n *\n * @param base64 String data.\n */\nfunction _base64ToBlob(base64, sliceSize = 512) {\n try {\n const contentType = base64.match(BASE64_HEADER_REG_EXP)[1];\n const base64Data = atob(base64.replace(BASE64_HEADER_REG_EXP, ''));\n const byteArrays = [];\n for (let offset = 0; offset < base64Data.length; offset += sliceSize) {\n const slice = base64Data.slice(offset, offset + sliceSize);\n const byteNumbers = new Array(slice.length);\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i);\n }\n byteArrays.push(new Uint8Array(byteNumbers));\n }\n return new Blob(byteArrays, { type: contentType });\n }\n catch (error) {\n /**\n * Problem with decoding Base64 image data.\n *\n * @error fileuploader-decoding-image-data-error\n */\n throw new CKEditorError('fileuploader-decoding-image-data-error', null);\n }\n}\n/**\n * Checks that string is Base64.\n */\nfunction _isBase64(string) {\n if (typeof string !== 'string') {\n return false;\n }\n const match = string.match(BASE64_HEADER_REG_EXP);\n return !!(match && match.length);\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module cloud-services/uploadgateway/uploadgateway\n */\nimport FileUploader from './fileuploader';\nimport { CKEditorError } from 'ckeditor5/src/utils';\n/**\n * UploadGateway abstracts file uploads to CKEditor Cloud Services.\n */\nexport default class UploadGateway {\n /**\n * Creates `UploadGateway` instance.\n *\n * @param token Token used for authentication.\n * @param apiAddress API address.\n */\n constructor(token, apiAddress) {\n if (!token) {\n /**\n * Token must be provided.\n *\n * @error uploadgateway-missing-token\n */\n throw new CKEditorError('uploadgateway-missing-token', null);\n }\n if (!apiAddress) {\n /**\n * Api address must be provided.\n *\n * @error uploadgateway-missing-api-address\n */\n throw new CKEditorError('uploadgateway-missing-api-address', null);\n }\n this._token = token;\n this._apiAddress = apiAddress;\n }\n /**\n * Creates a {@link module:cloud-services/uploadgateway/fileuploader~FileUploader} instance that wraps\n * file upload process. The file is being sent at a time when the\n * {@link module:cloud-services/uploadgateway/fileuploader~FileUploader#send} method is called.\n *\n * ```ts\n * const token = await Token.create( 'https://token-endpoint' );\n * new UploadGateway( token, 'https://example.org' )\n * \t.upload( 'FILE' )\n * \t.onProgress( ( data ) => console.log( data ) )\n * \t.send()\n * \t.then( ( response ) => console.log( response ) );\n * ```\n *\n * @param {Blob|String} fileOrData A blob object or a data string encoded with Base64.\n * @returns {module:cloud-services/uploadgateway/fileuploader~FileUploader} Returns `FileUploader` instance.\n */\n upload(fileOrData) {\n return new FileUploader(fileOrData, this._token, this._apiAddress);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module cloud-services/cloudservicescore\n */\nimport { ContextPlugin } from 'ckeditor5/src/core';\nimport Token from './token/token';\nimport UploadGateway from './uploadgateway/uploadgateway';\n/**\n * The `CloudServicesCore` plugin exposes the base API for communication with CKEditor Cloud Services.\n */\nexport default class CloudServicesCore extends ContextPlugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'CloudServicesCore';\n }\n /**\n * Creates the {@link module:cloud-services/token/token~Token} instance.\n *\n * @param tokenUrlOrRefreshToken Endpoint address to download the token or a callback that provides the token. If the\n * value is a function it has to match the {@link module:cloud-services/token/token~Token#refreshToken} interface.\n * @param options.initValue Initial value of the token.\n * @param options.autoRefresh Specifies whether to start the refresh automatically.\n */\n createToken(tokenUrlOrRefreshToken, options) {\n return new Token(tokenUrlOrRefreshToken, options);\n }\n /**\n * Creates the {@link module:cloud-services/uploadgateway/uploadgateway~UploadGateway} instance.\n *\n * @param token Token used for authentication.\n * @param apiAddress API address.\n */\n createUploadGateway(token, apiAddress) {\n return new UploadGateway(token, apiAddress);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module clipboard/clipboardobserver\n */\nimport { EventInfo } from '@ckeditor/ckeditor5-utils';\nimport { DataTransfer, DomEventObserver } from '@ckeditor/ckeditor5-engine';\n/**\n * Clipboard events observer.\n *\n * Fires the following events:\n *\n * * {@link module:engine/view/document~Document#event:clipboardInput},\n * * {@link module:engine/view/document~Document#event:paste},\n * * {@link module:engine/view/document~Document#event:copy},\n * * {@link module:engine/view/document~Document#event:cut},\n * * {@link module:engine/view/document~Document#event:drop},\n * * {@link module:engine/view/document~Document#event:dragover},\n * * {@link module:engine/view/document~Document#event:dragging},\n * * {@link module:engine/view/document~Document#event:dragstart},\n * * {@link module:engine/view/document~Document#event:dragend},\n * * {@link module:engine/view/document~Document#event:dragenter},\n * * {@link module:engine/view/document~Document#event:dragleave}.\n *\n * **Note**: This observer is not available by default (ckeditor5-engine does not add it on its own).\n * To make it available, it needs to be added to {@link module:engine/view/document~Document} by using\n * the {@link module:engine/view/view~View#addObserver `View#addObserver()`} method. Alternatively, you can load the\n * {@link module:clipboard/clipboard~Clipboard} plugin which adds this observer automatically (because it uses it).\n */\nexport default class ClipboardObserver extends DomEventObserver {\n constructor(view) {\n super(view);\n this.domEventType = [\n 'paste', 'copy', 'cut', 'drop', 'dragover', 'dragstart', 'dragend', 'dragenter', 'dragleave'\n ];\n const viewDocument = this.document;\n this.listenTo(viewDocument, 'paste', handleInput('clipboardInput'), { priority: 'low' });\n this.listenTo(viewDocument, 'drop', handleInput('clipboardInput'), { priority: 'low' });\n this.listenTo(viewDocument, 'dragover', handleInput('dragging'), { priority: 'low' });\n function handleInput(type) {\n return (evt, data) => {\n data.preventDefault();\n const targetRanges = data.dropRange ? [data.dropRange] : null;\n const eventInfo = new EventInfo(viewDocument, type);\n viewDocument.fire(eventInfo, {\n dataTransfer: data.dataTransfer,\n method: evt.name,\n targetRanges,\n target: data.target,\n domEvent: data.domEvent\n });\n // If CKEditor handled the input, do not bubble the original event any further.\n // This helps external integrations recognize that fact and act accordingly.\n // https://github.com/ckeditor/ckeditor5-upload/issues/92\n if (eventInfo.stop.called) {\n data.stopPropagation();\n }\n };\n }\n }\n onDomEvent(domEvent) {\n const nativeDataTransfer = 'clipboardData' in domEvent ? domEvent.clipboardData : domEvent.dataTransfer;\n const cacheFiles = domEvent.type == 'drop' || domEvent.type == 'paste';\n const evtData = {\n dataTransfer: new DataTransfer(nativeDataTransfer, { cacheFiles })\n };\n if (domEvent.type == 'drop' || domEvent.type == 'dragover') {\n evtData.dropRange = getDropViewRange(this.view, domEvent);\n }\n this.fire(domEvent.type, domEvent, evtData);\n }\n}\nfunction getDropViewRange(view, domEvent) {\n const domDoc = domEvent.target.ownerDocument;\n const x = domEvent.clientX;\n const y = domEvent.clientY;\n let domRange;\n // Webkit & Blink.\n if (domDoc.caretRangeFromPoint && domDoc.caretRangeFromPoint(x, y)) {\n domRange = domDoc.caretRangeFromPoint(x, y);\n }\n // FF.\n else if (domEvent.rangeParent) {\n domRange = domDoc.createRange();\n domRange.setStart(domEvent.rangeParent, domEvent.rangeOffset);\n domRange.collapse(true);\n }\n if (domRange) {\n return view.domConverter.domRangeToView(domRange);\n }\n return null;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n// Elements which should not have empty-line padding.\n// Most `view.ContainerElement` want to be separate by new-line, but some are creating one structure\n// together (like `
  • `) so it is better to separate them by only one \"\\n\".\nconst smallPaddingElements = ['figcaption', 'li'];\n/**\n * Converts {@link module:engine/view/item~Item view item} and all of its children to plain text.\n *\n * @param viewItem View item to convert.\n * @returns Plain text representation of `viewItem`.\n */\nexport default function viewToPlainText(viewItem) {\n let text = '';\n if (viewItem.is('$text') || viewItem.is('$textProxy')) {\n // If item is `Text` or `TextProxy` simple take its text data.\n text = viewItem.data;\n }\n else if (viewItem.is('element', 'img') && viewItem.hasAttribute('alt')) {\n // Special case for images - use alt attribute if it is provided.\n text = viewItem.getAttribute('alt');\n }\n else if (viewItem.is('element', 'br')) {\n // A soft break should be converted into a single line break (#8045).\n text = '\\n';\n }\n else {\n // Other elements are document fragments, attribute elements or container elements.\n // They don't have their own text value, so convert their children.\n let prev = null;\n for (const child of viewItem.getChildren()) {\n const childText = viewToPlainText(child);\n // Separate container element children with one or more new-line characters.\n if (prev && (prev.is('containerElement') || child.is('containerElement'))) {\n if (smallPaddingElements.includes(prev.name) ||\n smallPaddingElements.includes(child.name)) {\n text += '\\n';\n }\n else {\n text += '\\n\\n';\n }\n }\n text += childText;\n prev = child;\n }\n }\n return text;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module clipboard/clipboardpipeline\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { EventInfo } from '@ckeditor/ckeditor5-utils';\nimport ClipboardObserver from './clipboardobserver';\nimport plainTextToHtml from './utils/plaintexttohtml';\nimport normalizeClipboardHtml from './utils/normalizeclipboarddata';\nimport viewToPlainText from './utils/viewtoplaintext';\n// Input pipeline events overview:\n//\n// ┌──────────────────────┐ ┌──────────────────────┐\n// │ view.Document │ │ view.Document │\n// │ paste │ │ drop │\n// └───────────┬──────────┘ └───────────┬──────────┘\n// │ │\n// └────────────────┌────────────────┘\n// │\n// ┌─────────V────────┐\n// │ view.Document │ Retrieves text/html or text/plain from data.dataTransfer\n// │ clipboardInput │ and processes it to view.DocumentFragment.\n// └─────────┬────────┘\n// │\n// ┌───────────V───────────┐\n// │ ClipboardPipeline │ Converts view.DocumentFragment to model.DocumentFragment.\n// │ inputTransformation │\n// └───────────┬───────────┘\n// │\n// ┌──────────V──────────┐\n// │ ClipboardPipeline │ Calls model.insertContent().\n// │ contentInsertion │\n// └─────────────────────┘\n//\n//\n// Output pipeline events overview:\n//\n// ┌──────────────────────┐ ┌──────────────────────┐\n// │ view.Document │ │ view.Document │ Retrieves the selected model.DocumentFragment\n// │ copy │ │ cut │ and converts it to view.DocumentFragment.\n// └───────────┬──────────┘ └───────────┬──────────┘\n// │ │\n// └────────────────┌────────────────┘\n// │\n// ┌─────────V────────┐\n// │ view.Document │ Processes view.DocumentFragment to text/html and text/plain\n// │ clipboardOutput │ and stores the results in data.dataTransfer.\n// └──────────────────┘\n//\n/**\n * The clipboard pipeline feature. It is responsible for intercepting the `paste` and `drop` events and\n * passing the pasted content through a series of events in order to insert it into the editor's content.\n * It also handles the `cut` and `copy` events to fill the native clipboard with the serialized editor's data.\n *\n * # Input pipeline\n *\n * The behavior of the default handlers (all at a `low` priority):\n *\n * ## Event: `paste` or `drop`\n *\n * 1. Translates the event data.\n * 2. Fires the {@link module:engine/view/document~Document#event:clipboardInput `view.Document#clipboardInput`} event.\n *\n * ## Event: `view.Document#clipboardInput`\n *\n * 1. If the `data.content` event field is already set (by some listener on a higher priority), it takes this content and fires the event\n * from the last point.\n * 2. Otherwise, it retrieves `text/html` or `text/plain` from `data.dataTransfer`.\n * 3. Normalizes the raw data by applying simple filters on string data.\n * 4. Processes the raw data to {@link module:engine/view/documentfragment~DocumentFragment `view.DocumentFragment`} with the\n * {@link module:engine/controller/datacontroller~DataController#htmlProcessor `DataController#htmlProcessor`}.\n * 5. Fires the {@link module:clipboard/clipboardpipeline~ClipboardPipeline#event:inputTransformation\n * `ClipboardPipeline#inputTransformation`} event with the view document fragment in the `data.content` event field.\n *\n * ## Event: `ClipboardPipeline#inputTransformation`\n *\n * 1. Converts {@link module:engine/view/documentfragment~DocumentFragment `view.DocumentFragment`} from the `data.content` field to\n * {@link module:engine/model/documentfragment~DocumentFragment `model.DocumentFragment`}.\n * 2. Fires the {@link module:clipboard/clipboardpipeline~ClipboardPipeline#event:contentInsertion `ClipboardPipeline#contentInsertion`}\n * event with the model document fragment in the `data.content` event field.\n * **Note**: The `ClipboardPipeline#contentInsertion` event is fired within a model change block to allow other handlers\n * to run in the same block without post-fixers called in between (i.e., the selection post-fixer).\n *\n * ## Event: `ClipboardPipeline#contentInsertion`\n *\n * 1. Calls {@link module:engine/model/model~Model#insertContent `model.insertContent()`} to insert `data.content`\n * at the current selection position.\n *\n * # Output pipeline\n *\n * The behavior of the default handlers (all at a `low` priority):\n *\n * ## Event: `copy`, `cut` or `dragstart`\n *\n * 1. Retrieves the selected {@link module:engine/model/documentfragment~DocumentFragment `model.DocumentFragment`} by calling\n * {@link module:engine/model/model~Model#getSelectedContent `model#getSelectedContent()`}.\n * 2. Converts the model document fragment to {@link module:engine/view/documentfragment~DocumentFragment `view.DocumentFragment`}.\n * 3. Fires the {@link module:engine/view/document~Document#event:clipboardOutput `view.Document#clipboardOutput`} event\n * with the view document fragment in the `data.content` event field.\n *\n * ## Event: `view.Document#clipboardOutput`\n *\n * 1. Processes `data.content` to HTML and plain text with the\n * {@link module:engine/controller/datacontroller~DataController#htmlProcessor `DataController#htmlProcessor`}.\n * 2. Updates the `data.dataTransfer` data for `text/html` and `text/plain` with the processed data.\n * 3. For the `cut` method, calls {@link module:engine/model/model~Model#deleteContent `model.deleteContent()`}\n * on the current selection.\n *\n * Read more about the clipboard integration in the {@glink framework/deep-dive/clipboard clipboard deep-dive} guide.\n */\nexport default class ClipboardPipeline extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ClipboardPipeline';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const view = editor.editing.view;\n view.addObserver(ClipboardObserver);\n this._setupPasteDrop();\n this._setupCopyCut();\n }\n /**\n * The clipboard paste pipeline.\n */\n _setupPasteDrop() {\n const editor = this.editor;\n const model = editor.model;\n const view = editor.editing.view;\n const viewDocument = view.document;\n // Pasting is disabled when selection is in non-editable place.\n // Dropping is disabled in drag and drop handler.\n this.listenTo(viewDocument, 'clipboardInput', (evt, data) => {\n if (data.method == 'paste' && !editor.model.canEditAt(editor.model.document.selection)) {\n evt.stop();\n }\n }, { priority: 'highest' });\n this.listenTo(viewDocument, 'clipboardInput', (evt, data) => {\n const dataTransfer = data.dataTransfer;\n let content;\n // Some feature could already inject content in the higher priority event handler (i.e., codeBlock).\n if (data.content) {\n content = data.content;\n }\n else {\n let contentData = '';\n if (dataTransfer.getData('text/html')) {\n contentData = normalizeClipboardHtml(dataTransfer.getData('text/html'));\n }\n else if (dataTransfer.getData('text/plain')) {\n contentData = plainTextToHtml(dataTransfer.getData('text/plain'));\n }\n content = this.editor.data.htmlProcessor.toView(contentData);\n }\n const eventInfo = new EventInfo(this, 'inputTransformation');\n this.fire(eventInfo, {\n content,\n dataTransfer,\n targetRanges: data.targetRanges,\n method: data.method\n });\n // If CKEditor handled the input, do not bubble the original event any further.\n // This helps external integrations recognize this fact and act accordingly.\n // https://github.com/ckeditor/ckeditor5-upload/issues/92\n if (eventInfo.stop.called) {\n evt.stop();\n }\n view.scrollToTheSelection();\n }, { priority: 'low' });\n this.listenTo(this, 'inputTransformation', (evt, data) => {\n if (data.content.isEmpty) {\n return;\n }\n const dataController = this.editor.data;\n // Convert the pasted content into a model document fragment.\n // The conversion is contextual, but in this case an \"all allowed\" context is needed\n // and for that we use the $clipboardHolder item.\n const modelFragment = dataController.toModel(data.content, '$clipboardHolder');\n if (modelFragment.childCount == 0) {\n return;\n }\n evt.stop();\n // Fire content insertion event in a single change block to allow other handlers to run in the same block\n // without post-fixers called in between (i.e., the selection post-fixer).\n model.change(() => {\n this.fire('contentInsertion', {\n content: modelFragment,\n method: data.method,\n dataTransfer: data.dataTransfer,\n targetRanges: data.targetRanges\n });\n });\n }, { priority: 'low' });\n this.listenTo(this, 'contentInsertion', (evt, data) => {\n data.resultRange = model.insertContent(data.content);\n }, { priority: 'low' });\n }\n /**\n * The clipboard copy/cut pipeline.\n */\n _setupCopyCut() {\n const editor = this.editor;\n const modelDocument = editor.model.document;\n const view = editor.editing.view;\n const viewDocument = view.document;\n const onCopyCut = (evt, data) => {\n const dataTransfer = data.dataTransfer;\n data.preventDefault();\n const content = editor.data.toView(editor.model.getSelectedContent(modelDocument.selection));\n viewDocument.fire('clipboardOutput', {\n dataTransfer,\n content,\n method: evt.name\n });\n };\n this.listenTo(viewDocument, 'copy', onCopyCut, { priority: 'low' });\n this.listenTo(viewDocument, 'cut', (evt, data) => {\n // Cutting is disabled when selection is in non-editable place.\n // See: https://github.com/ckeditor/ckeditor5-clipboard/issues/26.\n if (!editor.model.canEditAt(editor.model.document.selection)) {\n data.preventDefault();\n }\n else {\n onCopyCut(evt, data);\n }\n }, { priority: 'low' });\n this.listenTo(viewDocument, 'clipboardOutput', (evt, data) => {\n if (!data.content.isEmpty) {\n data.dataTransfer.setData('text/html', this.editor.data.htmlProcessor.toData(data.content));\n data.dataTransfer.setData('text/plain', viewToPlainText(data.content));\n }\n if (data.method == 'cut') {\n editor.model.deleteContent(modelDocument.selection);\n }\n }, { priority: 'low' });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module clipboard/utils/normalizeclipboarddata\n */\n/**\n * Removes some popular browser quirks out of the clipboard data (HTML).\n * Removes all HTML comments. These are considered an internal thing and it makes little sense if they leak into the editor data.\n *\n * @param data The HTML data to normalize.\n * @returns Normalized HTML.\n */\nexport default function normalizeClipboardData(data) {\n return data\n .replace(/(\\s+)<\\/span>/g, (fullMatch, spaces) => {\n // Handle the most popular and problematic case when even a single space becomes an nbsp;.\n // Decode those to normal spaces. Read more in https://github.com/ckeditor/ckeditor5-clipboard/issues/2.\n if (spaces.length == 1) {\n return ' ';\n }\n return spaces;\n })\n // Remove all HTML comments.\n .replace(//g, '');\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module clipboard/utils/plaintexttohtml\n */\n/**\n * Converts plain text to its HTML-ized version.\n *\n * @param text The plain text to convert.\n * @returns HTML generated from the plain text.\n */\nexport default function plainTextToHtml(text) {\n text = text\n // Encode <>.\n .replace(//g, '>')\n // Creates a paragraph for each double line break.\n .replace(/\\r?\\n\\r?\\n/g, '

    ')\n // Creates a line break for each single line break.\n .replace(/\\r?\\n/g, '
    ')\n // Replace tabs with four spaces.\n .replace(/\\t/g, '    ')\n // Preserve trailing spaces (only the first and last one – the rest is handled below).\n .replace(/^\\s/, ' ')\n .replace(/\\s$/, ' ')\n // Preserve other subsequent spaces now.\n .replace(/\\s\\s/g, '  ');\n if (text.includes('

    ') || text.includes('
    ')) {\n // If we created paragraphs above, add the trailing ones.\n text = `

    ${text}

    `;\n }\n // TODO:\n // * What about '\\nfoo' vs ' foo'?\n return text;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module widget/highlightstack\n */\nimport { EmitterMixin } from '@ckeditor/ckeditor5-utils';\n/**\n * Class used to handle the correct order of highlights on elements.\n *\n * When different highlights are applied to same element the correct order should be preserved:\n *\n * * highlight with highest priority should be applied,\n * * if two highlights have same priority - sort by CSS class provided in\n * {@link module:engine/conversion/downcasthelpers~HighlightDescriptor}.\n *\n * This way, highlight will be applied with the same rules it is applied on texts.\n */\nexport default class HighlightStack extends EmitterMixin() {\n constructor() {\n super(...arguments);\n this._stack = [];\n }\n /**\n * Adds highlight descriptor to the stack.\n *\n * @fires change:top\n */\n add(descriptor, writer) {\n const stack = this._stack;\n // Save top descriptor and insert new one. If top is changed - fire event.\n const oldTop = stack[0];\n this._insertDescriptor(descriptor);\n const newTop = stack[0];\n // When new object is at the top and stores different information.\n if (oldTop !== newTop && !compareDescriptors(oldTop, newTop)) {\n this.fire('change:top', {\n oldDescriptor: oldTop,\n newDescriptor: newTop,\n writer\n });\n }\n }\n /**\n * Removes highlight descriptor from the stack.\n *\n * @fires change:top\n * @param id Id of the descriptor to remove.\n */\n remove(id, writer) {\n const stack = this._stack;\n const oldTop = stack[0];\n this._removeDescriptor(id);\n const newTop = stack[0];\n // When new object is at the top and stores different information.\n if (oldTop !== newTop && !compareDescriptors(oldTop, newTop)) {\n this.fire('change:top', {\n oldDescriptor: oldTop,\n newDescriptor: newTop,\n writer\n });\n }\n }\n /**\n * Inserts a given descriptor in correct place in the stack. It also takes care about updating information\n * when descriptor with same id is already present.\n */\n _insertDescriptor(descriptor) {\n const stack = this._stack;\n const index = stack.findIndex(item => item.id === descriptor.id);\n // Inserting exact same descriptor - do nothing.\n if (compareDescriptors(descriptor, stack[index])) {\n return;\n }\n // If descriptor with same id but with different information is on the stack - remove it.\n if (index > -1) {\n stack.splice(index, 1);\n }\n // Find correct place to insert descriptor in the stack.\n // It has different information (for example priority) so it must be re-inserted in correct place.\n let i = 0;\n while (stack[i] && shouldABeBeforeB(stack[i], descriptor)) {\n i++;\n }\n stack.splice(i, 0, descriptor);\n }\n /**\n * Removes descriptor with given id from the stack.\n *\n * @param id Descriptor's id.\n */\n _removeDescriptor(id) {\n const stack = this._stack;\n const index = stack.findIndex(item => item.id === id);\n // If descriptor with same id is on the list - remove it.\n if (index > -1) {\n stack.splice(index, 1);\n }\n }\n}\n/**\n * Compares two descriptors by checking their priority and class list.\n *\n * @returns Returns true if both descriptors are defined and have same priority and classes.\n */\nfunction compareDescriptors(a, b) {\n return a && b && a.priority == b.priority && classesToString(a.classes) == classesToString(b.classes);\n}\n/**\n * Checks whenever first descriptor should be placed in the stack before second one.\n */\nfunction shouldABeBeforeB(a, b) {\n if (a.priority > b.priority) {\n return true;\n }\n else if (a.priority < b.priority) {\n return false;\n }\n // When priorities are equal and names are different - use classes to compare.\n return classesToString(a.classes) > classesToString(b.classes);\n}\n/**\n * Converts CSS classes passed with {@link module:engine/conversion/downcasthelpers~HighlightDescriptor} to\n * sorted string.\n */\nfunction classesToString(classes) {\n return Array.isArray(classes) ? classes.sort().join(',') : classes;\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module widget/utils\n */\nimport { CKEditorError, toArray } from '@ckeditor/ckeditor5-utils';\nimport { findOptimalInsertionRange as engineFindOptimalInsertionRange } from '@ckeditor/ckeditor5-engine';\nimport { IconView } from '@ckeditor/ckeditor5-ui';\nimport HighlightStack from './highlightstack';\nimport { getTypeAroundFakeCaretPosition } from './widgettypearound/utils';\nimport dragHandleIcon from '../theme/icons/drag-handle.svg';\n/**\n * CSS class added to each widget element.\n */\nexport const WIDGET_CLASS_NAME = 'ck-widget';\n/**\n * CSS class added to currently selected widget element.\n */\nexport const WIDGET_SELECTED_CLASS_NAME = 'ck-widget_selected';\n/**\n * Returns `true` if given {@link module:engine/view/node~Node} is an {@link module:engine/view/element~Element} and a widget.\n */\nexport function isWidget(node) {\n if (!node.is('element')) {\n return false;\n }\n return !!node.getCustomProperty('widget');\n}\n/**\n * Converts the given {@link module:engine/view/element~Element} to a widget in the following way:\n *\n * * sets the `contenteditable` attribute to `\"false\"`,\n * * adds the `ck-widget` CSS class,\n * * adds a custom {@link module:engine/view/element~Element#getFillerOffset `getFillerOffset()`} method returning `null`,\n * * adds a custom property allowing to recognize widget elements by using {@link ~isWidget `isWidget()`},\n * * implements the {@link ~setHighlightHandling view highlight on widgets}.\n *\n * This function needs to be used in conjunction with\n * {@link module:engine/conversion/downcasthelpers~DowncastHelpers downcast conversion helpers}\n * like {@link module:engine/conversion/downcasthelpers~DowncastHelpers#elementToElement `elementToElement()`}.\n * Moreover, typically you will want to use `toWidget()` only for `editingDowncast`, while keeping the `dataDowncast` clean.\n *\n * For example, in order to convert a `` model element to `
    ` in the view, you can define\n * such converters:\n *\n * ```ts\n * editor.conversion.for( 'editingDowncast' )\n * \t.elementToElement( {\n * \t\tmodel: 'widget',\n * \t\tview: ( modelItem, { writer } ) => {\n * \t\t\tconst div = writer.createContainerElement( 'div', { class: 'widget' } );\n *\n * \t\t\treturn toWidget( div, writer, { label: 'some widget' } );\n * \t\t}\n * \t} );\n *\n * editor.conversion.for( 'dataDowncast' )\n * \t.elementToElement( {\n * \t\tmodel: 'widget',\n * \t\tview: ( modelItem, { writer } ) => {\n * \t\t\treturn writer.createContainerElement( 'div', { class: 'widget' } );\n * \t\t}\n * \t} );\n * ```\n *\n * See the full source code of the widget (with a nested editable) schema definition and converters in\n * [this sample](https://github.com/ckeditor/ckeditor5-widget/blob/master/tests/manual/widget-with-nestededitable.js).\n *\n * @param options Additional options.\n * @param options.label Element's label provided to the {@link ~setLabel} function. It can be passed as\n * a plain string or a function returning a string. It represents the widget for assistive technologies (like screen readers).\n * @param options.hasSelectionHandle If `true`, the widget will have a selection handle added.\n * @returns Returns the same element.\n */\nexport function toWidget(element, writer, options = {}) {\n if (!element.is('containerElement')) {\n /**\n * The element passed to `toWidget()` must be a {@link module:engine/view/containerelement~ContainerElement}\n * instance.\n *\n * @error widget-to-widget-wrong-element-type\n * @param element The view element passed to `toWidget()`.\n */\n throw new CKEditorError('widget-to-widget-wrong-element-type', null, { element });\n }\n writer.setAttribute('contenteditable', 'false', element);\n writer.addClass(WIDGET_CLASS_NAME, element);\n writer.setCustomProperty('widget', true, element);\n element.getFillerOffset = getFillerOffset;\n writer.setCustomProperty('widgetLabel', [], element);\n if (options.label) {\n setLabel(element, options.label);\n }\n if (options.hasSelectionHandle) {\n addSelectionHandle(element, writer);\n }\n setHighlightHandling(element, writer);\n return element;\n}\n/**\n * Default handler for adding a highlight on a widget.\n * It adds CSS class and attributes basing on the given highlight descriptor.\n */\nfunction addHighlight(element, descriptor, writer) {\n if (descriptor.classes) {\n writer.addClass(toArray(descriptor.classes), element);\n }\n if (descriptor.attributes) {\n for (const key in descriptor.attributes) {\n writer.setAttribute(key, descriptor.attributes[key], element);\n }\n }\n}\n/**\n * Default handler for removing a highlight from a widget.\n * It removes CSS class and attributes basing on the given highlight descriptor.\n */\nfunction removeHighlight(element, descriptor, writer) {\n if (descriptor.classes) {\n writer.removeClass(toArray(descriptor.classes), element);\n }\n if (descriptor.attributes) {\n for (const key in descriptor.attributes) {\n writer.removeAttribute(key, element);\n }\n }\n}\n/**\n * Sets highlight handling methods. Uses {@link module:widget/highlightstack~HighlightStack} to\n * properly determine which highlight descriptor should be used at given time.\n */\nexport function setHighlightHandling(element, writer, add = addHighlight, remove = removeHighlight) {\n const stack = new HighlightStack();\n stack.on('change:top', (evt, data) => {\n if (data.oldDescriptor) {\n remove(element, data.oldDescriptor, data.writer);\n }\n if (data.newDescriptor) {\n add(element, data.newDescriptor, data.writer);\n }\n });\n const addHighlightCallback = (element, descriptor, writer) => stack.add(descriptor, writer);\n const removeHighlightCallback = (element, id, writer) => stack.remove(id, writer);\n writer.setCustomProperty('addHighlight', addHighlightCallback, element);\n writer.setCustomProperty('removeHighlight', removeHighlightCallback, element);\n}\n/**\n * Sets label for given element.\n * It can be passed as a plain string or a function returning a string. Function will be called each time label is retrieved by\n * {@link ~getLabel `getLabel()`}.\n */\nexport function setLabel(element, labelOrCreator) {\n const widgetLabel = element.getCustomProperty('widgetLabel');\n widgetLabel.push(labelOrCreator);\n}\n/**\n * Returns the label of the provided element.\n */\nexport function getLabel(element) {\n const widgetLabel = element.getCustomProperty('widgetLabel');\n return widgetLabel.reduce((prev, current) => {\n if (typeof current === 'function') {\n return prev ? prev + '. ' + current() : current();\n }\n else {\n return prev ? prev + '. ' + current : current;\n }\n }, '');\n}\n/**\n * Adds functionality to the provided {@link module:engine/view/editableelement~EditableElement} to act as a widget's editable:\n *\n * * sets the `contenteditable` attribute to `true` when {@link module:engine/view/editableelement~EditableElement#isReadOnly} is `false`,\n * otherwise sets it to `false`,\n * * adds the `ck-editor__editable` and `ck-editor__nested-editable` CSS classes,\n * * adds the `ck-editor__nested-editable_focused` CSS class when the editable is focused and removes it when it is blurred.\n * * implements the {@link ~setHighlightHandling view highlight on widget's editable}.\n *\n * Similarly to {@link ~toWidget `toWidget()`} this function should be used in `editingDowncast` only and it is usually\n * used together with {@link module:engine/conversion/downcasthelpers~DowncastHelpers#elementToElement `elementToElement()`}.\n *\n * For example, in order to convert a `` model element to `
    ` in the view, you can define\n * such converters:\n *\n * ```ts\n * editor.conversion.for( 'editingDowncast' )\n * \t.elementToElement( {\n * \t\tmodel: 'nested',\n * \t\tview: ( modelItem, { writer } ) => {\n * \t\t\tconst div = writer.createEditableElement( 'div', { class: 'nested' } );\n *\n * \t\t\treturn toWidgetEditable( nested, writer, { label: 'label for editable' } );\n * \t\t}\n * \t} );\n *\n * editor.conversion.for( 'dataDowncast' )\n * \t.elementToElement( {\n * \t\tmodel: 'nested',\n * \t\tview: ( modelItem, { writer } ) => {\n * \t\t\treturn writer.createContainerElement( 'div', { class: 'nested' } );\n * \t\t}\n * \t} );\n * ```\n *\n * See the full source code of the widget (with nested editable) schema definition and converters in\n * [this sample](https://github.com/ckeditor/ckeditor5-widget/blob/master/tests/manual/widget-with-nestededitable.js).\n *\n * @param options Additional options.\n * @param options.label Editable's label used by assistive technologies (e.g. screen readers).\n * @returns Returns the same element that was provided in the `editable` parameter\n */\nexport function toWidgetEditable(editable, writer, options = {}) {\n writer.addClass(['ck-editor__editable', 'ck-editor__nested-editable'], editable);\n writer.setAttribute('role', 'textbox', editable);\n if (options.label) {\n writer.setAttribute('aria-label', options.label, editable);\n }\n // Set initial contenteditable value.\n writer.setAttribute('contenteditable', editable.isReadOnly ? 'false' : 'true', editable);\n // Bind the contenteditable property to element#isReadOnly.\n editable.on('change:isReadOnly', (evt, property, is) => {\n writer.setAttribute('contenteditable', is ? 'false' : 'true', editable);\n });\n editable.on('change:isFocused', (evt, property, is) => {\n if (is) {\n writer.addClass('ck-editor__nested-editable_focused', editable);\n }\n else {\n writer.removeClass('ck-editor__nested-editable_focused', editable);\n }\n });\n setHighlightHandling(editable, writer);\n return editable;\n}\n/**\n * Returns a model range which is optimal (in terms of UX) for inserting a widget block.\n *\n * For instance, if a selection is in the middle of a paragraph, the collapsed range before this paragraph\n * will be returned so that it is not split. If the selection is at the end of a paragraph,\n * the collapsed range after this paragraph will be returned.\n *\n * Note: If the selection is placed in an empty block, the range in that block will be returned. If that range\n * is then passed to {@link module:engine/model/model~Model#insertContent}, the block will be fully replaced\n * by the inserted widget block.\n *\n * @param selection The selection based on which the insertion position should be calculated.\n * @param model Model instance.\n * @returns The optimal range.\n */\nexport function findOptimalInsertionRange(selection, model) {\n const selectedElement = selection.getSelectedElement();\n if (selectedElement) {\n const typeAroundFakeCaretPosition = getTypeAroundFakeCaretPosition(selection);\n // If the WidgetTypeAround \"fake caret\" is displayed, use its position for the insertion\n // to provide the most predictable UX (https://github.com/ckeditor/ckeditor5/issues/7438).\n if (typeAroundFakeCaretPosition) {\n return model.createRange(model.createPositionAt(selectedElement, typeAroundFakeCaretPosition));\n }\n }\n return engineFindOptimalInsertionRange(selection, model);\n}\n/**\n * A util to be used in order to map view positions to correct model positions when implementing a widget\n * which renders non-empty view element for an empty model element.\n *\n * For example:\n *\n * ```\n * // Model:\n * \n *\n * // View:\n * name\n * ```\n *\n * In such case, view positions inside `` cannot be correctly mapped to the model (because the model element is empty).\n * To handle mapping positions inside `` to the model use this util as follows:\n *\n * ```ts\n * editor.editing.mapper.on(\n * \t'viewToModelPosition',\n * \tviewToModelPositionOutsideModelElement( model, viewElement => viewElement.hasClass( 'placeholder' ) )\n * );\n * ```\n *\n * The callback will try to map the view offset of selection to an expected model position.\n *\n * 1. When the position is at the end (or in the middle) of the inline widget:\n *\n * ```\n * // View:\n *

    foo name| bar

    \n *\n * // Model:\n * foo | bar\n * ```\n *\n * 2. When the position is at the beginning of the inline widget:\n *\n * ```\n * // View:\n *

    foo |name bar

    \n *\n * // Model:\n * foo | bar\n * ```\n *\n * @param model Model instance on which the callback operates.\n * @param viewElementMatcher Function that is passed a view element and should return `true` if the custom mapping\n * should be applied to the given view element.\n */\nexport function viewToModelPositionOutsideModelElement(model, viewElementMatcher) {\n return (evt, data) => {\n const { mapper, viewPosition } = data;\n const viewParent = mapper.findMappedViewAncestor(viewPosition);\n if (!viewElementMatcher(viewParent)) {\n return;\n }\n const modelParent = mapper.toModelElement(viewParent);\n data.modelPosition = model.createPositionAt(modelParent, viewPosition.isAtStart ? 'before' : 'after');\n };\n}\n/**\n * Default filler offset function applied to all widget elements.\n */\nfunction getFillerOffset() {\n return null;\n}\n/**\n * Adds a drag handle to the widget.\n */\nfunction addSelectionHandle(widgetElement, writer) {\n const selectionHandle = writer.createUIElement('div', { class: 'ck ck-widget__selection-handle' }, function (domDocument) {\n const domElement = this.toDomElement(domDocument);\n // Use the IconView from the ui library.\n const icon = new IconView();\n icon.set('content', dragHandleIcon);\n // Render the icon view right away to append its #element to the selectionHandle DOM element.\n icon.render();\n domElement.appendChild(icon.element);\n return domElement;\n });\n // Append the selection handle into the widget wrapper.\n writer.insert(writer.createPositionAt(widgetElement, 0), selectionHandle);\n writer.addClass(['ck-widget_with-selection-handle'], widgetElement);\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module widget/widgettypearound/utils\n */\nimport { isWidget } from '../utils';\n/**\n * The name of the type around model selection attribute responsible for\n * displaying a fake caret next to a selected widget.\n */\nexport const TYPE_AROUND_SELECTION_ATTRIBUTE = 'widget-type-around';\n/**\n * Checks if an element is a widget that qualifies to get the widget type around UI.\n */\nexport function isTypeAroundWidget(viewElement, modelElement, schema) {\n return !!viewElement && isWidget(viewElement) && !schema.isInline(modelElement);\n}\n/**\n * For the passed HTML element, this helper finds the closest widget type around button ancestor.\n */\nexport function getClosestTypeAroundDomButton(domElement) {\n return domElement.closest('.ck-widget__type-around__button');\n}\n/**\n * For the passed widget type around button element, this helper determines at which position\n * the paragraph would be inserted into the content if, for instance, the button was\n * clicked by the user.\n *\n * @returns The position of the button.\n */\nexport function getTypeAroundButtonPosition(domElement) {\n return domElement.classList.contains('ck-widget__type-around__button_before') ? 'before' : 'after';\n}\n/**\n * For the passed HTML element, this helper returns the closest view widget ancestor.\n */\nexport function getClosestWidgetViewElement(domElement, domConverter) {\n const widgetDomElement = domElement.closest('.ck-widget');\n return domConverter.mapDomToView(widgetDomElement);\n}\n/**\n * For the passed selection instance, it returns the position of the fake caret displayed next to a widget.\n *\n * **Note**: If the fake caret is not currently displayed, `null` is returned.\n *\n * @returns The position of the fake caret or `null` when none is present.\n */\nexport function getTypeAroundFakeCaretPosition(selection) {\n return selection.getAttribute(TYPE_AROUND_SELECTION_ATTRIBUTE);\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./widgettypearound.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/* global DOMParser */\n/**\n * @module widget/widgettypearound/widgettypearound\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { Template } from '@ckeditor/ckeditor5-ui';\nimport { Enter } from '@ckeditor/ckeditor5-enter';\nimport { Delete } from '@ckeditor/ckeditor5-typing';\nimport { env, isForwardArrowKeyCode } from '@ckeditor/ckeditor5-utils';\nimport { isTypeAroundWidget, getClosestTypeAroundDomButton, getTypeAroundButtonPosition, getClosestWidgetViewElement, getTypeAroundFakeCaretPosition, TYPE_AROUND_SELECTION_ATTRIBUTE } from './utils';\nimport { isWidget } from '../utils';\nimport returnIcon from '../../theme/icons/return-arrow.svg';\nimport '../../theme/widgettypearound.css';\nconst POSSIBLE_INSERTION_POSITIONS = ['before', 'after'];\n// Do the SVG parsing once and then clone the result DOM element for each new button.\nconst RETURN_ARROW_ICON_ELEMENT = new DOMParser().parseFromString(returnIcon, 'image/svg+xml').firstChild;\nconst PLUGIN_DISABLED_EDITING_ROOT_CLASS = 'ck-widget__type-around_disabled';\n/**\n * A plugin that allows users to type around widgets where normally it is impossible to place the caret due\n * to limitations of web browsers. These \"tight spots\" occur, for instance, before (or after) a widget being\n * the first (or last) child of its parent or between two block widgets.\n *\n * This plugin extends the {@link module:widget/widget~Widget `Widget`} plugin and injects the user interface\n * with two buttons into each widget instance in the editor. Each of the buttons can be clicked by the\n * user if the widget is next to the \"tight spot\". Once clicked, a paragraph is created with the selection anchored\n * in it so that users can type (or insert content, paste, etc.) straight away.\n */\nexport default class WidgetTypeAround extends Plugin {\n constructor() {\n super(...arguments);\n /**\n * A reference to the model widget element that has the fake caret active\n * on either side of it. It is later used to remove CSS classes associated with the fake caret\n * when the widget no longer needs it.\n */\n this._currentFakeCaretModelElement = null;\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'WidgetTypeAround';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [Enter, Delete];\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const editingView = editor.editing.view;\n // Set a CSS class on the view editing root when the plugin is disabled so all the buttons\n // and lines visually disappear. All the interactions are disabled in individual plugin methods.\n this.on('change:isEnabled', (evt, data, isEnabled) => {\n editingView.change(writer => {\n for (const root of editingView.document.roots) {\n if (isEnabled) {\n writer.removeClass(PLUGIN_DISABLED_EDITING_ROOT_CLASS, root);\n }\n else {\n writer.addClass(PLUGIN_DISABLED_EDITING_ROOT_CLASS, root);\n }\n }\n });\n if (!isEnabled) {\n editor.model.change(writer => {\n writer.removeSelectionAttribute(TYPE_AROUND_SELECTION_ATTRIBUTE);\n });\n }\n });\n this._enableTypeAroundUIInjection();\n this._enableInsertingParagraphsOnButtonClick();\n this._enableInsertingParagraphsOnEnterKeypress();\n this._enableInsertingParagraphsOnTypingKeystroke();\n this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows();\n this._enableDeleteIntegration();\n this._enableInsertContentIntegration();\n this._enableInsertObjectIntegration();\n this._enableDeleteContentIntegration();\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n this._currentFakeCaretModelElement = null;\n }\n /**\n * Inserts a new paragraph next to a widget element with the selection anchored in it.\n *\n * **Note**: This method is heavily user-oriented and will both focus the editing view and scroll\n * the viewport to the selection in the inserted paragraph.\n *\n * @param widgetModelElement The model widget element next to which a paragraph is inserted.\n * @param position The position where the paragraph is inserted. Either `'before'` or `'after'` the widget.\n */\n _insertParagraph(widgetModelElement, position) {\n const editor = this.editor;\n const editingView = editor.editing.view;\n const attributesToCopy = editor.model.schema.getAttributesWithProperty(widgetModelElement, 'copyOnReplace', true);\n editor.execute('insertParagraph', {\n position: editor.model.createPositionAt(widgetModelElement, position),\n attributes: attributesToCopy\n });\n editingView.focus();\n editingView.scrollToTheSelection();\n }\n /**\n * A wrapper for the {@link module:utils/emittermixin~Emitter#listenTo} method that executes the callbacks only\n * when the plugin {@link #isEnabled is enabled}.\n *\n * @param emitter The object that fires the event.\n * @param event The name of the event.\n * @param callback The function to be called on event.\n * @param options Additional options.\n * @param options.priority The priority of this event callback. The higher the priority value the sooner\n * the callback will be fired. Events having the same priority are called in the order they were added.\n */\n _listenToIfEnabled(emitter, event, callback, options) {\n this.listenTo(emitter, event, (...args) => {\n // Do not respond if the plugin is disabled.\n if (this.isEnabled) {\n callback(...args);\n }\n }, options);\n }\n /**\n * Similar to {@link #_insertParagraph}, this method inserts a paragraph except that it\n * does not expect a position. Instead, it performs the insertion next to a selected widget\n * according to the `widget-type-around` model selection attribute value (fake caret position).\n *\n * Because this method requires the `widget-type-around` attribute to be set,\n * the insertion can only happen when the widget's fake caret is active (e.g. activated\n * using the keyboard).\n *\n * @returns Returns `true` when the paragraph was inserted (the attribute was present) and `false` otherwise.\n */\n _insertParagraphAccordingToFakeCaretPosition() {\n const editor = this.editor;\n const model = editor.model;\n const modelSelection = model.document.selection;\n const typeAroundFakeCaretPosition = getTypeAroundFakeCaretPosition(modelSelection);\n if (!typeAroundFakeCaretPosition) {\n return false;\n }\n // @if CK_DEBUG_TYPING // if ( ( window as any ).logCKETyping ) {\n // @if CK_DEBUG_TYPING // \tconsole.info( '%c[WidgetTypeAround]%c Fake caret -> insert paragraph',\n // @if CK_DEBUG_TYPING // \t\t'font-weight: bold; color: green', ''\n // @if CK_DEBUG_TYPING // \t);\n // @if CK_DEBUG_TYPING // }\n const selectedModelElement = modelSelection.getSelectedElement();\n this._insertParagraph(selectedModelElement, typeAroundFakeCaretPosition);\n return true;\n }\n /**\n * Creates a listener in the editing conversion pipeline that injects the widget type around\n * UI into every single widget instance created in the editor.\n *\n * The UI is delivered as a {@link module:engine/view/uielement~UIElement}\n * wrapper which renders DOM buttons that users can use to insert paragraphs.\n */\n _enableTypeAroundUIInjection() {\n const editor = this.editor;\n const schema = editor.model.schema;\n const t = editor.locale.t;\n const buttonTitles = {\n before: t('Insert paragraph before block'),\n after: t('Insert paragraph after block')\n };\n editor.editing.downcastDispatcher.on('insert', (evt, data, conversionApi) => {\n const viewElement = conversionApi.mapper.toViewElement(data.item);\n if (!viewElement) {\n return;\n }\n // Filter out non-widgets and inline widgets.\n if (isTypeAroundWidget(viewElement, data.item, schema)) {\n injectUIIntoWidget(conversionApi.writer, buttonTitles, viewElement);\n const widgetLabel = viewElement.getCustomProperty('widgetLabel');\n widgetLabel.push(() => {\n return this.isEnabled ? t('Press Enter to type after or press Shift + Enter to type before the widget') : '';\n });\n }\n }, { priority: 'low' });\n }\n /**\n * Brings support for the fake caret that appears when either:\n *\n * * the selection moves to a widget from a position next to it using arrow keys,\n * * the arrow key is pressed when the widget is already selected.\n *\n * The fake caret lets the user know that they can start typing or just press\n * Enter to insert a paragraph at the position next to a widget as suggested by the fake caret.\n *\n * The fake caret disappears when the user changes the selection or the editor\n * gets blurred.\n *\n * The whole idea is as follows:\n *\n * 1. A user does one of the 2 scenarios described at the beginning.\n * 2. The \"keydown\" listener is executed and the decision is made whether to show or hide the fake caret.\n * 3. If it should show up, the `widget-type-around` model selection attribute is set indicating\n * on which side of the widget it should appear.\n * 4. The selection dispatcher reacts to the selection attribute and sets CSS classes responsible for the\n * fake caret on the view widget.\n * 5. If the fake caret should disappear, the selection attribute is removed and the dispatcher\n * does the CSS class clean-up in the view.\n * 6. Additionally, `change:range` and `FocusTracker#isFocused` listeners also remove the selection\n * attribute (the former also removes widget CSS classes).\n */\n _enableTypeAroundFakeCaretActivationUsingKeyboardArrows() {\n const editor = this.editor;\n const model = editor.model;\n const modelSelection = model.document.selection;\n const schema = model.schema;\n const editingView = editor.editing.view;\n // This is the main listener responsible for the fake caret.\n // Note: The priority must precede the default Widget class keydown handler (\"high\").\n this._listenToIfEnabled(editingView.document, 'arrowKey', (evt, domEventData) => {\n this._handleArrowKeyPress(evt, domEventData);\n }, { context: [isWidget, '$text'], priority: 'high' });\n // This listener makes sure the widget type around selection attribute will be gone from the model\n // selection as soon as the model range changes. This attribute only makes sense when a widget is selected\n // (and the \"fake horizontal caret\" is visible) so whenever the range changes (e.g. selection moved somewhere else),\n // let's get rid of the attribute so that the selection downcast dispatcher isn't even bothered.\n this._listenToIfEnabled(modelSelection, 'change:range', (evt, data) => {\n // Do not reset the selection attribute when the change was indirect.\n if (!data.directChange) {\n return;\n }\n // Get rid of the widget type around attribute of the selection on every change:range.\n // If the range changes, it means for sure, the user is no longer in the active (\"fake horizontal caret\") mode.\n editor.model.change(writer => {\n writer.removeSelectionAttribute(TYPE_AROUND_SELECTION_ATTRIBUTE);\n });\n });\n // Get rid of the widget type around attribute of the selection on every document change\n // that makes widget not selected any more (i.e. widget was removed).\n this._listenToIfEnabled(model.document, 'change:data', () => {\n const selectedModelElement = modelSelection.getSelectedElement();\n if (selectedModelElement) {\n const selectedViewElement = editor.editing.mapper.toViewElement(selectedModelElement);\n if (isTypeAroundWidget(selectedViewElement, selectedModelElement, schema)) {\n return;\n }\n }\n editor.model.change(writer => {\n writer.removeSelectionAttribute(TYPE_AROUND_SELECTION_ATTRIBUTE);\n });\n });\n // React to changes of the model selection attribute made by the arrow keys listener.\n // If the block widget is selected and the attribute changes, downcast the attribute to special\n // CSS classes associated with the active (\"fake horizontal caret\") mode of the widget.\n this._listenToIfEnabled(editor.editing.downcastDispatcher, 'selection', (evt, data, conversionApi) => {\n const writer = conversionApi.writer;\n if (this._currentFakeCaretModelElement) {\n const selectedViewElement = conversionApi.mapper.toViewElement(this._currentFakeCaretModelElement);\n if (selectedViewElement) {\n // Get rid of CSS classes associated with the active (\"fake horizontal caret\") mode from the view widget.\n writer.removeClass(POSSIBLE_INSERTION_POSITIONS.map(positionToWidgetCssClass), selectedViewElement);\n this._currentFakeCaretModelElement = null;\n }\n }\n const selectedModelElement = data.selection.getSelectedElement();\n if (!selectedModelElement) {\n return;\n }\n const selectedViewElement = conversionApi.mapper.toViewElement(selectedModelElement);\n if (!isTypeAroundWidget(selectedViewElement, selectedModelElement, schema)) {\n return;\n }\n const typeAroundFakeCaretPosition = getTypeAroundFakeCaretPosition(data.selection);\n if (!typeAroundFakeCaretPosition) {\n return;\n }\n writer.addClass(positionToWidgetCssClass(typeAroundFakeCaretPosition), selectedViewElement);\n // Remember the view widget that got the \"fake-caret\" CSS class. This class should be removed ASAP when the\n // selection changes\n this._currentFakeCaretModelElement = selectedModelElement;\n });\n this._listenToIfEnabled(editor.ui.focusTracker, 'change:isFocused', (evt, name, isFocused) => {\n if (!isFocused) {\n editor.model.change(writer => {\n writer.removeSelectionAttribute(TYPE_AROUND_SELECTION_ATTRIBUTE);\n });\n }\n });\n function positionToWidgetCssClass(position) {\n return `ck-widget_type-around_show-fake-caret_${position}`;\n }\n }\n /**\n * A listener executed on each \"keydown\" in the view document, a part of\n * {@link #_enableTypeAroundFakeCaretActivationUsingKeyboardArrows}.\n *\n * It decides whether the arrow keypress should activate the fake caret or not (also whether it should\n * be deactivated).\n *\n * The fake caret activation is done by setting the `widget-type-around` model selection attribute\n * in this listener, and stopping and preventing the event that would normally be handled by the widget\n * plugin that is responsible for the regular keyboard navigation near/across all widgets (that\n * includes inline widgets, which are ignored by the widget type around plugin).\n */\n _handleArrowKeyPress(evt, domEventData) {\n const editor = this.editor;\n const model = editor.model;\n const modelSelection = model.document.selection;\n const schema = model.schema;\n const editingView = editor.editing.view;\n const keyCode = domEventData.keyCode;\n const isForward = isForwardArrowKeyCode(keyCode, editor.locale.contentLanguageDirection);\n const selectedViewElement = editingView.document.selection.getSelectedElement();\n const selectedModelElement = editor.editing.mapper.toModelElement(selectedViewElement);\n let shouldStopAndPreventDefault;\n // Handle keyboard navigation when a type-around-compatible widget is currently selected.\n if (isTypeAroundWidget(selectedViewElement, selectedModelElement, schema)) {\n shouldStopAndPreventDefault = this._handleArrowKeyPressOnSelectedWidget(isForward);\n }\n // Handle keyboard arrow navigation when the selection is next to a type-around-compatible widget\n // and the widget is about to be selected.\n else if (modelSelection.isCollapsed) {\n shouldStopAndPreventDefault = this._handleArrowKeyPressWhenSelectionNextToAWidget(isForward);\n }\n // Handle collapsing a non-collapsed selection that is wider than on a single widget.\n else if (!domEventData.shiftKey) {\n shouldStopAndPreventDefault = this._handleArrowKeyPressWhenNonCollapsedSelection(isForward);\n }\n if (shouldStopAndPreventDefault) {\n domEventData.preventDefault();\n evt.stop();\n }\n }\n /**\n * Handles the keyboard navigation on \"keydown\" when a widget is currently selected and activates or deactivates\n * the fake caret for that widget, depending on the current value of the `widget-type-around` model\n * selection attribute and the direction of the pressed arrow key.\n *\n * @param isForward `true` when the pressed arrow key was responsible for the forward model selection movement\n * as in {@link module:utils/keyboard~isForwardArrowKeyCode}.\n * @returns Returns `true` when the keypress was handled and no other keydown listener of the editor should\n * process the event any further. Returns `false` otherwise.\n */\n _handleArrowKeyPressOnSelectedWidget(isForward) {\n const editor = this.editor;\n const model = editor.model;\n const modelSelection = model.document.selection;\n const typeAroundFakeCaretPosition = getTypeAroundFakeCaretPosition(modelSelection);\n return model.change(writer => {\n // If the fake caret is displayed...\n if (typeAroundFakeCaretPosition) {\n const isLeavingWidget = typeAroundFakeCaretPosition === (isForward ? 'after' : 'before');\n // If the keyboard arrow works against the value of the selection attribute...\n // then remove the selection attribute but prevent default DOM actions\n // and do not let the Widget plugin listener move the selection. This brings\n // the widget back to the state, for instance, like if was selected using the mouse.\n //\n // **Note**: If leaving the widget when the fake caret is active, then the default\n // Widget handler will change the selection and, in turn, this will automatically discard\n // the selection attribute.\n if (!isLeavingWidget) {\n writer.removeSelectionAttribute(TYPE_AROUND_SELECTION_ATTRIBUTE);\n return true;\n }\n }\n // If the fake caret wasn't displayed, let's set it now according to the direction of the arrow\n // key press. This also means we cannot let the Widget plugin listener move the selection.\n else {\n writer.setSelectionAttribute(TYPE_AROUND_SELECTION_ATTRIBUTE, isForward ? 'after' : 'before');\n return true;\n }\n return false;\n });\n }\n /**\n * Handles the keyboard navigation on \"keydown\" when **no** widget is selected but the selection is **directly** next\n * to one and upon the fake caret should become active for this widget upon arrow keypress\n * (AKA entering/selecting the widget).\n *\n * **Note**: This code mirrors the implementation from the widget plugin but also adds the selection attribute.\n * Unfortunately, there is no safe way to let the widget plugin do the selection part first and then just set the\n * selection attribute here in the widget type around plugin. This is why this code must duplicate some from the widget plugin.\n *\n * @param isForward `true` when the pressed arrow key was responsible for the forward model selection movement\n * as in {@link module:utils/keyboard~isForwardArrowKeyCode}.\n * @returns Returns `true` when the keypress was handled and no other keydown listener of the editor should\n * process the event any further. Returns `false` otherwise.\n */\n _handleArrowKeyPressWhenSelectionNextToAWidget(isForward) {\n const editor = this.editor;\n const model = editor.model;\n const schema = model.schema;\n const widgetPlugin = editor.plugins.get('Widget');\n // This is the widget the selection is about to be set on.\n const modelElementNextToSelection = widgetPlugin._getObjectElementNextToSelection(isForward);\n const viewElementNextToSelection = editor.editing.mapper.toViewElement(modelElementNextToSelection);\n if (isTypeAroundWidget(viewElementNextToSelection, modelElementNextToSelection, schema)) {\n model.change(writer => {\n widgetPlugin._setSelectionOverElement(modelElementNextToSelection);\n writer.setSelectionAttribute(TYPE_AROUND_SELECTION_ATTRIBUTE, isForward ? 'before' : 'after');\n });\n // The change() block above does the same job as the Widget plugin. The event can\n // be safely canceled.\n return true;\n }\n return false;\n }\n /**\n * Handles the keyboard navigation on \"keydown\" when a widget is currently selected (together with some other content)\n * and the widget is the first or last element in the selection. It activates or deactivates the fake caret for that widget.\n *\n * @param isForward `true` when the pressed arrow key was responsible for the forward model selection movement\n * as in {@link module:utils/keyboard~isForwardArrowKeyCode}.\n * @returns Returns `true` when the keypress was handled and no other keydown listener of the editor should\n * process the event any further. Returns `false` otherwise.\n */\n _handleArrowKeyPressWhenNonCollapsedSelection(isForward) {\n const editor = this.editor;\n const model = editor.model;\n const schema = model.schema;\n const mapper = editor.editing.mapper;\n const modelSelection = model.document.selection;\n const selectedModelNode = isForward ?\n modelSelection.getLastPosition().nodeBefore :\n modelSelection.getFirstPosition().nodeAfter;\n const selectedViewNode = mapper.toViewElement(selectedModelNode);\n // There is a widget at the collapse position so collapse the selection to the fake caret on it.\n if (isTypeAroundWidget(selectedViewNode, selectedModelNode, schema)) {\n model.change(writer => {\n writer.setSelection(selectedModelNode, 'on');\n writer.setSelectionAttribute(TYPE_AROUND_SELECTION_ATTRIBUTE, isForward ? 'after' : 'before');\n });\n return true;\n }\n return false;\n }\n /**\n * Registers a `mousedown` listener for the view document which intercepts events\n * coming from the widget type around UI, which happens when a user clicks one of the buttons\n * that insert a paragraph next to a widget.\n */\n _enableInsertingParagraphsOnButtonClick() {\n const editor = this.editor;\n const editingView = editor.editing.view;\n this._listenToIfEnabled(editingView.document, 'mousedown', (evt, domEventData) => {\n const button = getClosestTypeAroundDomButton(domEventData.domTarget);\n if (!button) {\n return;\n }\n const buttonPosition = getTypeAroundButtonPosition(button);\n const widgetViewElement = getClosestWidgetViewElement(button, editingView.domConverter);\n const widgetModelElement = editor.editing.mapper.toModelElement(widgetViewElement);\n this._insertParagraph(widgetModelElement, buttonPosition);\n domEventData.preventDefault();\n evt.stop();\n });\n }\n /**\n * Creates the Enter key listener on the view document that allows the user to insert a paragraph\n * near the widget when either:\n *\n * * The fake caret was first activated using the arrow keys,\n * * The entire widget is selected in the model.\n *\n * In the first case, the new paragraph is inserted according to the `widget-type-around` selection\n * attribute (see {@link #_handleArrowKeyPress}).\n *\n * In the second case, the new paragraph is inserted based on whether a soft (Shift+Enter) keystroke\n * was pressed or not.\n */\n _enableInsertingParagraphsOnEnterKeypress() {\n const editor = this.editor;\n const selection = editor.model.document.selection;\n const editingView = editor.editing.view;\n this._listenToIfEnabled(editingView.document, 'enter', (evt, domEventData) => {\n // This event could be triggered from inside the widget but we are interested\n // only when the widget is selected itself.\n if (evt.eventPhase != 'atTarget') {\n return;\n }\n const selectedModelElement = selection.getSelectedElement();\n const selectedViewElement = editor.editing.mapper.toViewElement(selectedModelElement);\n const schema = editor.model.schema;\n let wasHandled;\n // First check if the widget is selected and there's a type around selection attribute associated\n // with the fake caret that would tell where to insert a new paragraph.\n if (this._insertParagraphAccordingToFakeCaretPosition()) {\n wasHandled = true;\n }\n // Then, if there is no selection attribute associated with the fake caret, check if the widget\n // simply is selected and create a new paragraph according to the keystroke (Shift+)Enter.\n else if (isTypeAroundWidget(selectedViewElement, selectedModelElement, schema)) {\n this._insertParagraph(selectedModelElement, domEventData.isSoft ? 'before' : 'after');\n wasHandled = true;\n }\n if (wasHandled) {\n domEventData.preventDefault();\n evt.stop();\n }\n }, { context: isWidget });\n }\n /**\n * Similar to the {@link #_enableInsertingParagraphsOnEnterKeypress}, it allows the user\n * to insert a paragraph next to a widget when the fake caret was activated using arrow\n * keys but it responds to typing instead of Enter.\n *\n * Listener enabled by this method will insert a new paragraph according to the `widget-type-around`\n * model selection attribute as the user simply starts typing, which creates the impression that the fake caret\n * behaves like a real one rendered by the browser (AKA your text appears where the caret was).\n *\n * **Note**: At the moment this listener creates 2 undo steps: one for the `insertParagraph` command\n * and another one for actual typing. It is not a disaster but this may need to be fixed\n * sooner or later.\n */\n _enableInsertingParagraphsOnTypingKeystroke() {\n const editor = this.editor;\n const viewDocument = editor.editing.view.document;\n // Note: The priority must precede the default Input plugin insertText handler.\n this._listenToIfEnabled(viewDocument, 'insertText', (evt, data) => {\n if (this._insertParagraphAccordingToFakeCaretPosition()) {\n // The view selection in the event data contains the widget. If the new paragraph\n // was inserted, modify the view selection passed along with the insertText event\n // so the default event handler in the Input plugin starts typing inside the paragraph.\n // Otherwise, the typing would be over the widget.\n data.selection = viewDocument.selection;\n }\n }, { priority: 'high' });\n if (env.isAndroid) {\n // On Android with English keyboard, the composition starts just by putting caret\n // at the word end or by selecting a table column. This is not a real composition started.\n // Trigger delete content on first composition key pressed.\n this._listenToIfEnabled(viewDocument, 'keydown', (evt, data) => {\n if (data.keyCode == 229) {\n this._insertParagraphAccordingToFakeCaretPosition();\n }\n });\n }\n else {\n // Note: The priority must precede the default Input plugin compositionstart handler (to call it before delete content).\n this._listenToIfEnabled(viewDocument, 'compositionstart', () => {\n this._insertParagraphAccordingToFakeCaretPosition();\n }, { priority: 'high' });\n }\n }\n /**\n * It creates a \"delete\" event listener on the view document to handle cases when the Delete or Backspace\n * is pressed and the fake caret is currently active.\n *\n * The fake caret should create an illusion of a real browser caret so that when it appears before or after\n * a widget, pressing Delete or Backspace should remove a widget or delete the content\n * before or after a widget (depending on the content surrounding the widget).\n */\n _enableDeleteIntegration() {\n const editor = this.editor;\n const editingView = editor.editing.view;\n const model = editor.model;\n const schema = model.schema;\n this._listenToIfEnabled(editingView.document, 'delete', (evt, domEventData) => {\n // This event could be triggered from inside the widget but we are interested\n // only when the widget is selected itself.\n if (evt.eventPhase != 'atTarget') {\n return;\n }\n const typeAroundFakeCaretPosition = getTypeAroundFakeCaretPosition(model.document.selection);\n // This listener handles only these cases when the fake caret is active.\n if (!typeAroundFakeCaretPosition) {\n return;\n }\n const direction = domEventData.direction;\n const selectedModelWidget = model.document.selection.getSelectedElement();\n const isFakeCaretBefore = typeAroundFakeCaretPosition === 'before';\n const isDeleteForward = direction == 'forward';\n const shouldDeleteEntireWidget = isFakeCaretBefore === isDeleteForward;\n if (shouldDeleteEntireWidget) {\n editor.execute('delete', {\n selection: model.createSelection(selectedModelWidget, 'on')\n });\n }\n else {\n const range = schema.getNearestSelectionRange(model.createPositionAt(selectedModelWidget, typeAroundFakeCaretPosition), direction);\n // If there is somewhere to move selection to, then there will be something to delete.\n if (range) {\n // If the range is NOT collapsed, then we know that the range contains an object (see getNearestSelectionRange() docs).\n if (!range.isCollapsed) {\n model.change(writer => {\n writer.setSelection(range);\n editor.execute(isDeleteForward ? 'deleteForward' : 'delete');\n });\n }\n else {\n const probe = model.createSelection(range.start);\n model.modifySelection(probe, { direction });\n // If the range is collapsed, let's see if a non-collapsed range exists that can could be deleted.\n // If such range exists, use the editor command because it it safe for collaboration (it merges where it can).\n if (!probe.focus.isEqual(range.start)) {\n model.change(writer => {\n writer.setSelection(range);\n editor.execute(isDeleteForward ? 'deleteForward' : 'delete');\n });\n }\n // If there is no non-collapsed range to be deleted then we are sure that there is an empty element\n // next to a widget that should be removed. \"delete\" and \"deleteForward\" commands cannot get rid of it\n // so calling Model#deleteContent here manually.\n else {\n const deepestEmptyRangeAncestor = getDeepestEmptyElementAncestor(schema, range.start.parent);\n model.deleteContent(model.createSelection(deepestEmptyRangeAncestor, 'on'), {\n doNotAutoparagraph: true\n });\n }\n }\n }\n }\n // If some content was deleted, don't let the handler from the Widget plugin kick in.\n // If nothing was deleted, then the default handler will have nothing to do anyway.\n domEventData.preventDefault();\n evt.stop();\n }, { context: isWidget });\n }\n /**\n * Attaches the {@link module:engine/model/model~Model#event:insertContent} event listener that, for instance, allows the user to paste\n * content near a widget when the fake caret is first activated using the arrow keys.\n *\n * The content is inserted according to the `widget-type-around` selection attribute (see {@link #_handleArrowKeyPress}).\n */\n _enableInsertContentIntegration() {\n const editor = this.editor;\n const model = this.editor.model;\n const documentSelection = model.document.selection;\n this._listenToIfEnabled(editor.model, 'insertContent', (evt, [content, selectable]) => {\n if (selectable && !selectable.is('documentSelection')) {\n return;\n }\n const typeAroundFakeCaretPosition = getTypeAroundFakeCaretPosition(documentSelection);\n if (!typeAroundFakeCaretPosition) {\n return;\n }\n evt.stop();\n return model.change(writer => {\n const selectedElement = documentSelection.getSelectedElement();\n const position = model.createPositionAt(selectedElement, typeAroundFakeCaretPosition);\n const selection = writer.createSelection(position);\n const result = model.insertContent(content, selection);\n writer.setSelection(selection);\n return result;\n });\n }, { priority: 'high' });\n }\n /**\n * Attaches the {@link module:engine/model/model~Model#event:insertObject} event listener that modifies the\n * `options.findOptimalPosition`parameter to position of fake caret in relation to selected element\n * to reflect user's intent of desired insertion position.\n *\n * The object is inserted according to the `widget-type-around` selection attribute (see {@link #_handleArrowKeyPress}).\n */\n _enableInsertObjectIntegration() {\n const editor = this.editor;\n const model = this.editor.model;\n const documentSelection = model.document.selection;\n this._listenToIfEnabled(editor.model, 'insertObject', (evt, args) => {\n const [, selectable, options = {}] = args;\n if (selectable && !selectable.is('documentSelection')) {\n return;\n }\n const typeAroundFakeCaretPosition = getTypeAroundFakeCaretPosition(documentSelection);\n if (!typeAroundFakeCaretPosition) {\n return;\n }\n options.findOptimalPosition = typeAroundFakeCaretPosition;\n args[3] = options;\n }, { priority: 'high' });\n }\n /**\n * Attaches the {@link module:engine/model/model~Model#event:deleteContent} event listener to block the event when the fake\n * caret is active.\n *\n * This is required for cases that trigger {@link module:engine/model/model~Model#deleteContent `model.deleteContent()`}\n * before calling {@link module:engine/model/model~Model#insertContent `model.insertContent()`} like, for instance,\n * plain text pasting.\n */\n _enableDeleteContentIntegration() {\n const editor = this.editor;\n const model = this.editor.model;\n const documentSelection = model.document.selection;\n this._listenToIfEnabled(editor.model, 'deleteContent', (evt, [selection]) => {\n if (selection && !selection.is('documentSelection')) {\n return;\n }\n const typeAroundFakeCaretPosition = getTypeAroundFakeCaretPosition(documentSelection);\n // Disable removing the selection content while pasting plain text.\n if (typeAroundFakeCaretPosition) {\n evt.stop();\n }\n }, { priority: 'high' });\n }\n}\n/**\n * Injects the type around UI into a view widget instance.\n */\nfunction injectUIIntoWidget(viewWriter, buttonTitles, widgetViewElement) {\n const typeAroundWrapper = viewWriter.createUIElement('div', {\n class: 'ck ck-reset_all ck-widget__type-around'\n }, function (domDocument) {\n const wrapperDomElement = this.toDomElement(domDocument);\n injectButtons(wrapperDomElement, buttonTitles);\n injectFakeCaret(wrapperDomElement);\n return wrapperDomElement;\n });\n // Inject the type around wrapper into the widget's wrapper.\n viewWriter.insert(viewWriter.createPositionAt(widgetViewElement, 'end'), typeAroundWrapper);\n}\n/**\n * FYI: Not using the IconView class because each instance would need to be destroyed to avoid memory leaks\n * and it's pretty hard to figure out when a view (widget) is gone for good so it's cheaper to use raw\n * here.\n */\nfunction injectButtons(wrapperDomElement, buttonTitles) {\n for (const position of POSSIBLE_INSERTION_POSITIONS) {\n const buttonTemplate = new Template({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-widget__type-around__button',\n `ck-widget__type-around__button_${position}`\n ],\n title: buttonTitles[position],\n 'aria-hidden': 'true'\n },\n children: [\n wrapperDomElement.ownerDocument.importNode(RETURN_ARROW_ICON_ELEMENT, true)\n ]\n });\n wrapperDomElement.appendChild(buttonTemplate.render());\n }\n}\nfunction injectFakeCaret(wrapperDomElement) {\n const caretTemplate = new Template({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-widget__type-around__fake-caret'\n ]\n }\n });\n wrapperDomElement.appendChild(caretTemplate.render());\n}\n/**\n * Returns the ancestor of an element closest to the root which is empty. For instance,\n * for ``:\n *\n * ```\n * abc\n * ```\n *\n * it returns ``.\n */\nfunction getDeepestEmptyElementAncestor(schema, element) {\n let deepestEmptyAncestor = element;\n for (const ancestor of element.getAncestors({ parentFirst: true })) {\n if (ancestor.childCount > 1 || schema.isLimit(ancestor)) {\n break;\n }\n deepestEmptyAncestor = ancestor;\n }\n return deepestEmptyAncestor;\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module widget/verticalnavigation\n */\nimport { keyCodes, Rect } from '@ckeditor/ckeditor5-utils';\n/**\n * Returns 'keydown' handler for up/down arrow keys that modifies the caret movement if it's in a text line next to an object.\n *\n * @param editing The editing controller.\n */\nexport default function verticalNavigationHandler(editing) {\n const model = editing.model;\n return (evt, data) => {\n const arrowUpPressed = data.keyCode == keyCodes.arrowup;\n const arrowDownPressed = data.keyCode == keyCodes.arrowdown;\n const expandSelection = data.shiftKey;\n const selection = model.document.selection;\n if (!arrowUpPressed && !arrowDownPressed) {\n return;\n }\n const isForward = arrowDownPressed;\n // Navigation is in the opposite direction than the selection direction so this is shrinking of the selection.\n // Selection for sure will not approach any object.\n if (expandSelection && selectionWillShrink(selection, isForward)) {\n return;\n }\n // Find a range between selection and closest limit element.\n const range = findTextRangeFromSelection(editing, selection, isForward);\n // There is no selection position inside the limit element.\n if (!range) {\n return;\n }\n // If already at the edge of a limit element.\n if (range.isCollapsed) {\n // A collapsed selection at limit edge - nothing more to do.\n if (selection.isCollapsed) {\n return;\n }\n // A non collapsed selection is at the limit edge while expanding the selection - let others do their stuff.\n else if (expandSelection) {\n return;\n }\n }\n // If the range is a single line (there is no word wrapping) then move the selection to the position closest to the limit element.\n //\n // We can't move the selection directly to the isObject element (eg. table cell) because of dual position at the end/beginning\n // of wrapped line (it's at the same time at the end of one line and at the start of the next line).\n if (range.isCollapsed || isSingleLineRange(editing, range, isForward)) {\n model.change(writer => {\n const newPosition = isForward ? range.end : range.start;\n if (expandSelection) {\n const newSelection = model.createSelection(selection.anchor);\n newSelection.setFocus(newPosition);\n writer.setSelection(newSelection);\n }\n else {\n writer.setSelection(newPosition);\n }\n });\n evt.stop();\n data.preventDefault();\n data.stopPropagation();\n }\n };\n}\n/**\n * Finds the range between selection and closest limit element (in the direction of navigation).\n * The position next to limit element is adjusted to the closest allowed `$text` position.\n *\n * Returns `null` if, according to the schema, the resulting range cannot contain a `$text` element.\n *\n * @param editing The editing controller.\n * @param selection The current selection.\n * @param isForward The expected navigation direction.\n */\nfunction findTextRangeFromSelection(editing, selection, isForward) {\n const model = editing.model;\n if (isForward) {\n const startPosition = selection.isCollapsed ? selection.focus : selection.getLastPosition();\n const endPosition = getNearestNonInlineLimit(model, startPosition, 'forward');\n // There is no limit element, browser should handle this.\n if (!endPosition) {\n return null;\n }\n const range = model.createRange(startPosition, endPosition);\n const lastRangePosition = getNearestTextPosition(model.schema, range, 'backward');\n if (lastRangePosition) {\n return model.createRange(startPosition, lastRangePosition);\n }\n return null;\n }\n else {\n const endPosition = selection.isCollapsed ? selection.focus : selection.getFirstPosition();\n const startPosition = getNearestNonInlineLimit(model, endPosition, 'backward');\n // There is no limit element, browser should handle this.\n if (!startPosition) {\n return null;\n }\n const range = model.createRange(startPosition, endPosition);\n const firstRangePosition = getNearestTextPosition(model.schema, range, 'forward');\n if (firstRangePosition) {\n return model.createRange(firstRangePosition, endPosition);\n }\n return null;\n }\n}\n/**\n * Finds the limit element position that is closest to startPosition.\n *\n * @param direction Search direction.\n */\nfunction getNearestNonInlineLimit(model, startPosition, direction) {\n const schema = model.schema;\n const range = model.createRangeIn(startPosition.root);\n const walkerValueType = direction == 'forward' ? 'elementStart' : 'elementEnd';\n for (const { previousPosition, item, type } of range.getWalker({ startPosition, direction })) {\n if (schema.isLimit(item) && !schema.isInline(item)) {\n return previousPosition;\n }\n // Stop looking for isLimit element if the next element is a block element (it is for sure not single line).\n if (type == walkerValueType && schema.isBlock(item)) {\n return null;\n }\n }\n return null;\n}\n/**\n * Basing on the provided range, finds the first or last (depending on `direction`) position inside the range\n * that can contain `$text` (according to schema).\n *\n * @param schema The schema.\n * @param range The range to find the position in.\n * @param direction Search direction.\n * @returns The nearest selection position.\n *\n */\nfunction getNearestTextPosition(schema, range, direction) {\n const position = direction == 'backward' ? range.end : range.start;\n if (schema.checkChild(position, '$text')) {\n return position;\n }\n for (const { nextPosition } of range.getWalker({ direction })) {\n if (schema.checkChild(nextPosition, '$text')) {\n return nextPosition;\n }\n }\n return null;\n}\n/**\n * Checks if the DOM range corresponding to the provided model range renders as a single line by analyzing DOMRects\n * (verifying if they visually wrap content to the next line).\n *\n * @param editing The editing controller.\n * @param modelRange The current table cell content range.\n * @param isForward The expected navigation direction.\n */\nfunction isSingleLineRange(editing, modelRange, isForward) {\n const model = editing.model;\n const domConverter = editing.view.domConverter;\n // Wrapped lines contain exactly the same position at the end of current line\n // and at the beginning of next line. That position's client rect is at the end\n // of current line. In case of caret at first position of the last line that 'dual'\n // position would be detected as it's not the last line.\n if (isForward) {\n const probe = model.createSelection(modelRange.start);\n model.modifySelection(probe);\n // If the new position is at the end of the container then we can't use this position\n // because it would provide incorrect result for eg caption of image and selection\n // just before end of it. Also in this case there is no \"dual\" position.\n if (!probe.focus.isAtEnd && !modelRange.start.isEqual(probe.focus)) {\n modelRange = model.createRange(probe.focus, modelRange.end);\n }\n }\n const viewRange = editing.mapper.toViewRange(modelRange);\n const domRange = domConverter.viewRangeToDom(viewRange);\n const rects = Rect.getDomRangeRects(domRange);\n let boundaryVerticalPosition;\n for (const rect of rects) {\n if (boundaryVerticalPosition === undefined) {\n boundaryVerticalPosition = Math.round(rect.bottom);\n continue;\n }\n // Let's check if this rect is in new line.\n if (Math.round(rect.top) >= boundaryVerticalPosition) {\n return false;\n }\n boundaryVerticalPosition = Math.max(boundaryVerticalPosition, Math.round(rect.bottom));\n }\n return true;\n}\nfunction selectionWillShrink(selection, isForward) {\n return !selection.isCollapsed && selection.isBackward == isForward;\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./widget.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module widget/widget\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { MouseObserver } from '@ckeditor/ckeditor5-engine';\nimport { Delete } from '@ckeditor/ckeditor5-typing';\nimport { env, getLocalizedArrowKeyCodeDirection } from '@ckeditor/ckeditor5-utils';\nimport WidgetTypeAround from './widgettypearound/widgettypearound';\nimport verticalNavigationHandler from './verticalnavigation';\nimport { getLabel, isWidget, WIDGET_SELECTED_CLASS_NAME } from './utils';\nimport '../theme/widget.css';\n/**\n * The widget plugin. It enables base support for widgets.\n *\n * See {@glink api/widget package page} for more details and documentation.\n *\n * This plugin enables multiple behaviors required by widgets:\n *\n * * The model to view selection converter for the editing pipeline (it handles widget custom selection rendering).\n * If a converted selection wraps around a widget element, that selection is marked as\n * {@link module:engine/view/selection~Selection#isFake fake}. Additionally, the `ck-widget_selected` CSS class\n * is added to indicate that widget has been selected.\n * * The mouse and keyboard events handling on and around widget elements.\n */\nexport default class Widget extends Plugin {\n constructor() {\n super(...arguments);\n /**\n * Holds previously selected widgets.\n */\n this._previouslySelected = new Set();\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'Widget';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [WidgetTypeAround, Delete];\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const view = editor.editing.view;\n const viewDocument = view.document;\n // Model to view selection converter.\n // Converts selection placed over widget element to fake selection.\n //\n // By default, the selection is downcasted by the engine to surround the attribute element, even though its only\n // child is an inline widget. A similar thing also happens when a collapsed marker is rendered as a UI element\n // next to an inline widget: the view selection contains both the widget and the marker.\n //\n // This prevents creating a correct fake selection when this inline widget is selected. Normalize the selection\n // in these cases based on the model:\n //\n //\t\t[] -> []\n //\t\t[] -> []\n //\n // Thanks to this:\n //\n // * fake selection can be set correctly,\n // * any logic depending on (View)Selection#getSelectedElement() also works OK.\n //\n // See https://github.com/ckeditor/ckeditor5/issues/9524.\n this.editor.editing.downcastDispatcher.on('selection', (evt, data, conversionApi) => {\n const viewWriter = conversionApi.writer;\n const modelSelection = data.selection;\n // The collapsed selection can't contain any widget.\n if (modelSelection.isCollapsed) {\n return;\n }\n const selectedModelElement = modelSelection.getSelectedElement();\n if (!selectedModelElement) {\n return;\n }\n const selectedViewElement = editor.editing.mapper.toViewElement(selectedModelElement);\n if (!isWidget(selectedViewElement)) {\n return;\n }\n if (!conversionApi.consumable.consume(modelSelection, 'selection')) {\n return;\n }\n viewWriter.setSelection(viewWriter.createRangeOn(selectedViewElement), {\n fake: true,\n label: getLabel(selectedViewElement)\n });\n });\n // Mark all widgets inside the selection with the css class.\n // This handler is registered at the 'low' priority so it's triggered after the real selection conversion.\n this.editor.editing.downcastDispatcher.on('selection', (evt, data, conversionApi) => {\n // Remove selected class from previously selected widgets.\n this._clearPreviouslySelectedWidgets(conversionApi.writer);\n const viewWriter = conversionApi.writer;\n const viewSelection = viewWriter.document.selection;\n let lastMarked = null;\n for (const range of viewSelection.getRanges()) {\n // Note: There could be multiple selected widgets in a range but no fake selection.\n // All of them must be marked as selected, for instance []\n for (const value of range) {\n const node = value.item;\n // Do not mark nested widgets in selected one. See: #4594\n if (isWidget(node) && !isChild(node, lastMarked)) {\n viewWriter.addClass(WIDGET_SELECTED_CLASS_NAME, node);\n this._previouslySelected.add(node);\n lastMarked = node;\n }\n }\n }\n }, { priority: 'low' });\n // If mouse down is pressed on widget - create selection over whole widget.\n view.addObserver(MouseObserver);\n this.listenTo(viewDocument, 'mousedown', (...args) => this._onMousedown(...args));\n // There are two keydown listeners working on different priorities. This allows other\n // features such as WidgetTypeAround or TableKeyboard to attach their listeners in between\n // and customize the behavior even further in different content/selection scenarios.\n //\n // * The first listener handles changing the selection on arrow key press\n // if the widget is selected or if the selection is next to a widget and the widget\n // should become selected upon the arrow key press.\n //\n // * The second (late) listener makes sure the default browser action on arrow key press is\n // prevented when a widget is selected. This prevents the selection from being moved\n // from a fake selection container.\n this.listenTo(viewDocument, 'arrowKey', (...args) => {\n this._handleSelectionChangeOnArrowKeyPress(...args);\n }, { context: [isWidget, '$text'] });\n this.listenTo(viewDocument, 'arrowKey', (...args) => {\n this._preventDefaultOnArrowKeyPress(...args);\n }, { context: '$root' });\n this.listenTo(viewDocument, 'arrowKey', verticalNavigationHandler(this.editor.editing), { context: '$text' });\n // Handle custom delete behaviour.\n this.listenTo(viewDocument, 'delete', (evt, data) => {\n if (this._handleDelete(data.direction == 'forward')) {\n data.preventDefault();\n evt.stop();\n }\n }, { context: '$root' });\n }\n /**\n * Handles {@link module:engine/view/document~Document#event:mousedown mousedown} events on widget elements.\n */\n _onMousedown(eventInfo, domEventData) {\n const editor = this.editor;\n const view = editor.editing.view;\n const viewDocument = view.document;\n let element = domEventData.target;\n // Do nothing for single or double click inside nested editable.\n if (isInsideNestedEditable(element)) {\n // But at least triple click inside nested editable causes broken selection in Safari.\n // For such event, we select the entire nested editable element.\n // See: https://github.com/ckeditor/ckeditor5/issues/1463.\n if ((env.isSafari || env.isGecko) && domEventData.domEvent.detail >= 3) {\n const mapper = editor.editing.mapper;\n const viewElement = element.is('attributeElement') ?\n element.findAncestor(element => !element.is('attributeElement')) : element;\n const modelElement = mapper.toModelElement(viewElement);\n domEventData.preventDefault();\n this.editor.model.change(writer => {\n writer.setSelection(modelElement, 'in');\n });\n }\n return;\n }\n // If target is not a widget element - check if one of the ancestors is.\n if (!isWidget(element)) {\n element = element.findAncestor(isWidget);\n if (!element) {\n return;\n }\n }\n // On Android selection would jump to the first table cell, on other devices\n // we can't block it (and don't need to) because of drag and drop support.\n if (env.isAndroid) {\n domEventData.preventDefault();\n }\n // Focus editor if is not focused already.\n if (!viewDocument.isFocused) {\n view.focus();\n }\n // Create model selection over widget.\n const modelElement = editor.editing.mapper.toModelElement(element);\n this._setSelectionOverElement(modelElement);\n }\n /**\n * Handles {@link module:engine/view/document~Document#event:keydown keydown} events and changes\n * the model selection when:\n *\n * * arrow key is pressed when the widget is selected,\n * * the selection is next to a widget and the widget should become selected upon the arrow key press.\n *\n * See {@link #_preventDefaultOnArrowKeyPress}.\n */\n _handleSelectionChangeOnArrowKeyPress(eventInfo, domEventData) {\n const keyCode = domEventData.keyCode;\n const model = this.editor.model;\n const schema = model.schema;\n const modelSelection = model.document.selection;\n const objectElement = modelSelection.getSelectedElement();\n const direction = getLocalizedArrowKeyCodeDirection(keyCode, this.editor.locale.contentLanguageDirection);\n const isForward = direction == 'down' || direction == 'right';\n const isVerticalNavigation = direction == 'up' || direction == 'down';\n // If object element is selected.\n if (objectElement && schema.isObject(objectElement)) {\n const position = isForward ? modelSelection.getLastPosition() : modelSelection.getFirstPosition();\n const newRange = schema.getNearestSelectionRange(position, isForward ? 'forward' : 'backward');\n if (newRange) {\n model.change(writer => {\n writer.setSelection(newRange);\n });\n domEventData.preventDefault();\n eventInfo.stop();\n }\n return;\n }\n // Handle collapsing of the selection when there is any widget on the edge of selection.\n // This is needed because browsers have problems with collapsing such selection.\n if (!modelSelection.isCollapsed && !domEventData.shiftKey) {\n const firstPosition = modelSelection.getFirstPosition();\n const lastPosition = modelSelection.getLastPosition();\n const firstSelectedNode = firstPosition.nodeAfter;\n const lastSelectedNode = lastPosition.nodeBefore;\n if (firstSelectedNode && schema.isObject(firstSelectedNode) || lastSelectedNode && schema.isObject(lastSelectedNode)) {\n model.change(writer => {\n writer.setSelection(isForward ? lastPosition : firstPosition);\n });\n domEventData.preventDefault();\n eventInfo.stop();\n }\n return;\n }\n // Return if not collapsed.\n if (!modelSelection.isCollapsed) {\n return;\n }\n // If selection is next to object element.\n const objectElementNextToSelection = this._getObjectElementNextToSelection(isForward);\n if (objectElementNextToSelection && schema.isObject(objectElementNextToSelection)) {\n // Do not select an inline widget while handling up/down arrow.\n if (schema.isInline(objectElementNextToSelection) && isVerticalNavigation) {\n return;\n }\n this._setSelectionOverElement(objectElementNextToSelection);\n domEventData.preventDefault();\n eventInfo.stop();\n }\n }\n /**\n * Handles {@link module:engine/view/document~Document#event:keydown keydown} events and prevents\n * the default browser behavior to make sure the fake selection is not being moved from a fake selection\n * container.\n *\n * See {@link #_handleSelectionChangeOnArrowKeyPress}.\n */\n _preventDefaultOnArrowKeyPress(eventInfo, domEventData) {\n const model = this.editor.model;\n const schema = model.schema;\n const objectElement = model.document.selection.getSelectedElement();\n // If object element is selected.\n if (objectElement && schema.isObject(objectElement)) {\n domEventData.preventDefault();\n eventInfo.stop();\n }\n }\n /**\n * Handles delete keys: backspace and delete.\n *\n * @param isForward Set to true if delete was performed in forward direction.\n * @returns Returns `true` if keys were handled correctly.\n */\n _handleDelete(isForward) {\n const modelDocument = this.editor.model.document;\n const modelSelection = modelDocument.selection;\n // Do nothing when the read only mode is enabled.\n if (!this.editor.model.canEditAt(modelSelection)) {\n return;\n }\n // Do nothing on non-collapsed selection.\n if (!modelSelection.isCollapsed) {\n return;\n }\n const objectElement = this._getObjectElementNextToSelection(isForward);\n if (objectElement) {\n this.editor.model.change(writer => {\n let previousNode = modelSelection.anchor.parent;\n // Remove previous element if empty.\n while (previousNode.isEmpty) {\n const nodeToRemove = previousNode;\n previousNode = nodeToRemove.parent;\n writer.remove(nodeToRemove);\n }\n this._setSelectionOverElement(objectElement);\n });\n return true;\n }\n }\n /**\n * Sets {@link module:engine/model/selection~Selection document's selection} over given element.\n *\n * @internal\n */\n _setSelectionOverElement(element) {\n this.editor.model.change(writer => {\n writer.setSelection(writer.createRangeOn(element));\n });\n }\n /**\n * Checks if {@link module:engine/model/element~Element element} placed next to the current\n * {@link module:engine/model/selection~Selection model selection} exists and is marked in\n * {@link module:engine/model/schema~Schema schema} as `object`.\n *\n * @internal\n * @param forward Direction of checking.\n */\n _getObjectElementNextToSelection(forward) {\n const model = this.editor.model;\n const schema = model.schema;\n const modelSelection = model.document.selection;\n // Clone current selection to use it as a probe. We must leave default selection as it is so it can return\n // to its current state after undo.\n const probe = model.createSelection(modelSelection);\n model.modifySelection(probe, { direction: forward ? 'forward' : 'backward' });\n // The selection didn't change so there is nothing there.\n if (probe.isEqual(modelSelection)) {\n return null;\n }\n const objectElement = forward ? probe.focus.nodeBefore : probe.focus.nodeAfter;\n if (!!objectElement && schema.isObject(objectElement)) {\n return objectElement;\n }\n return null;\n }\n /**\n * Removes CSS class from previously selected widgets.\n */\n _clearPreviouslySelectedWidgets(writer) {\n for (const widget of this._previouslySelected) {\n writer.removeClass(WIDGET_SELECTED_CLASS_NAME, widget);\n }\n this._previouslySelected.clear();\n }\n}\n/**\n * Returns `true` when element is a nested editable or is placed inside one.\n */\nfunction isInsideNestedEditable(element) {\n let currentElement = element;\n while (currentElement) {\n if (currentElement.is('editableElement') && !currentElement.is('rootElement')) {\n return true;\n }\n // Click on nested widget should select it.\n if (isWidget(currentElement)) {\n return false;\n }\n currentElement = currentElement.parent;\n }\n return false;\n}\n/**\n * Checks whether the specified `element` is a child of the `parent` element.\n *\n * @param element An element to check.\n * @param parent A parent for the element.\n */\nfunction isChild(element, parent) {\n if (!parent) {\n return false;\n }\n return Array.from(element.getAncestors()).includes(parent);\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module widget/widgettoolbarrepository\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { BalloonPanelView, ContextualBalloon, ToolbarView } from '@ckeditor/ckeditor5-ui';\nimport { CKEditorError, logWarning } from '@ckeditor/ckeditor5-utils';\nimport { isWidget } from './utils';\n/**\n * Widget toolbar repository plugin. A central point for registering widget toolbars. This plugin handles the whole\n * toolbar rendering process and exposes a concise API.\n *\n * To add a toolbar for your widget use the {@link ~WidgetToolbarRepository#register `WidgetToolbarRepository#register()`} method.\n *\n * The following example comes from the {@link module:image/imagetoolbar~ImageToolbar} plugin:\n *\n * ```ts\n * class ImageToolbar extends Plugin {\n * \tstatic get requires() {\n * \t\treturn [ WidgetToolbarRepository ];\n * \t}\n *\n * \tafterInit() {\n * \t\tconst editor = this.editor;\n * \t\tconst widgetToolbarRepository = editor.plugins.get( WidgetToolbarRepository );\n *\n * \t\twidgetToolbarRepository.register( 'image', {\n * \t\t\titems: editor.config.get( 'image.toolbar' ),\n * \t\t\tgetRelatedElement: getClosestSelectedImageWidget\n * \t\t} );\n * \t}\n * }\n * ```\n */\nexport default class WidgetToolbarRepository extends Plugin {\n constructor() {\n super(...arguments);\n /**\n * A map of toolbar definitions.\n */\n this._toolbarDefinitions = new Map();\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ContextualBalloon];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'WidgetToolbarRepository';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Disables the default balloon toolbar for all widgets.\n if (editor.plugins.has('BalloonToolbar')) {\n const balloonToolbar = editor.plugins.get('BalloonToolbar');\n this.listenTo(balloonToolbar, 'show', evt => {\n if (isWidgetSelected(editor.editing.view.document.selection)) {\n evt.stop();\n }\n }, { priority: 'high' });\n }\n this._balloon = this.editor.plugins.get('ContextualBalloon');\n this.on('change:isEnabled', () => {\n this._updateToolbarsVisibility();\n });\n this.listenTo(editor.ui, 'update', () => {\n this._updateToolbarsVisibility();\n });\n // UI#update is not fired after focus is back in editor, we need to check if balloon panel should be visible.\n this.listenTo(editor.ui.focusTracker, 'change:isFocused', () => {\n this._updateToolbarsVisibility();\n }, { priority: 'low' });\n }\n destroy() {\n super.destroy();\n for (const toolbarConfig of this._toolbarDefinitions.values()) {\n toolbarConfig.view.destroy();\n }\n }\n /**\n * Registers toolbar in the WidgetToolbarRepository. It renders it in the `ContextualBalloon` based on the value of the invoked\n * `getRelatedElement` function. Toolbar items are gathered from `items` array.\n * The balloon's CSS class is by default `ck-toolbar-container` and may be override with the `balloonClassName` option.\n *\n * Note: This method should be called in the {@link module:core/plugin~PluginInterface#afterInit `Plugin#afterInit()`}\n * callback (or later) to make sure that the given toolbar items were already registered by other plugins.\n *\n * @param toolbarId An id for the toolbar. Used to\n * @param options.ariaLabel Label used by assistive technologies to describe this toolbar element.\n * @param options.items Array of toolbar items.\n * @param options.getRelatedElement Callback which returns an element the toolbar should be attached to.\n * @param options.balloonClassName CSS class for the widget balloon.\n */\n register(toolbarId, { ariaLabel, items, getRelatedElement, balloonClassName = 'ck-toolbar-container' }) {\n // Trying to register a toolbar without any item.\n if (!items.length) {\n /**\n * When {@link module:widget/widgettoolbarrepository~WidgetToolbarRepository#register registering} a new widget toolbar, you\n * need to provide a non-empty array with the items that will be inserted into the toolbar.\n *\n * If you see this error when integrating the editor, you likely forgot to configure one of the widget toolbars.\n *\n * See for instance:\n *\n * * {@link module:table/tableconfig~TableConfig#contentToolbar `config.table.contentToolbar`}\n * * {@link module:image/imageconfig~ImageConfig#toolbar `config.image.toolbar`}\n *\n * @error widget-toolbar-no-items\n * @param toolbarId The id of the toolbar that has not been configured correctly.\n */\n logWarning('widget-toolbar-no-items', { toolbarId });\n return;\n }\n const editor = this.editor;\n const t = editor.t;\n const toolbarView = new ToolbarView(editor.locale);\n toolbarView.ariaLabel = ariaLabel || t('Widget toolbar');\n if (this._toolbarDefinitions.has(toolbarId)) {\n /**\n * Toolbar with the given id was already added.\n *\n * @error widget-toolbar-duplicated\n * @param toolbarId Toolbar id.\n */\n throw new CKEditorError('widget-toolbar-duplicated', this, { toolbarId });\n }\n const toolbarDefinition = {\n view: toolbarView,\n getRelatedElement,\n balloonClassName,\n itemsConfig: items,\n initialized: false\n };\n // Register the toolbar so it becomes available for Alt+F10 and Esc navigation.\n editor.ui.addToolbar(toolbarView, {\n isContextual: true,\n beforeFocus: () => {\n const relatedElement = getRelatedElement(editor.editing.view.document.selection);\n if (relatedElement) {\n this._showToolbar(toolbarDefinition, relatedElement);\n }\n },\n afterBlur: () => {\n this._hideToolbar(toolbarDefinition);\n }\n });\n this._toolbarDefinitions.set(toolbarId, toolbarDefinition);\n }\n /**\n * Iterates over stored toolbars and makes them visible or hidden.\n */\n _updateToolbarsVisibility() {\n let maxRelatedElementDepth = 0;\n let deepestRelatedElement = null;\n let deepestToolbarDefinition = null;\n for (const definition of this._toolbarDefinitions.values()) {\n const relatedElement = definition.getRelatedElement(this.editor.editing.view.document.selection);\n if (!this.isEnabled || !relatedElement) {\n if (this._isToolbarInBalloon(definition)) {\n this._hideToolbar(definition);\n }\n }\n else if (!this.editor.ui.focusTracker.isFocused) {\n if (this._isToolbarVisible(definition)) {\n this._hideToolbar(definition);\n }\n }\n else {\n const relatedElementDepth = relatedElement.getAncestors().length;\n // Many toolbars can express willingness to be displayed but they do not know about\n // each other. Figure out which toolbar is deepest in the view tree to decide which\n // should be displayed. For instance, if a selected image is inside a table cell, display\n // the ImageToolbar rather than the TableToolbar (#60).\n if (relatedElementDepth > maxRelatedElementDepth) {\n maxRelatedElementDepth = relatedElementDepth;\n deepestRelatedElement = relatedElement;\n deepestToolbarDefinition = definition;\n }\n }\n }\n if (deepestToolbarDefinition) {\n this._showToolbar(deepestToolbarDefinition, deepestRelatedElement);\n }\n }\n /**\n * Hides the given toolbar.\n */\n _hideToolbar(toolbarDefinition) {\n this._balloon.remove(toolbarDefinition.view);\n this.stopListening(this._balloon, 'change:visibleView');\n }\n /**\n * Shows up the toolbar if the toolbar is not visible.\n * Otherwise, repositions the toolbar's balloon when toolbar's view is the most top view in balloon stack.\n *\n * It might happen here that the toolbar's view is under another view. Then do nothing as the other toolbar view\n * should be still visible after the {@link module:ui/editorui/editorui~EditorUI#event:update}.\n */\n _showToolbar(toolbarDefinition, relatedElement) {\n if (this._isToolbarVisible(toolbarDefinition)) {\n repositionContextualBalloon(this.editor, relatedElement);\n }\n else if (!this._isToolbarInBalloon(toolbarDefinition)) {\n if (!toolbarDefinition.initialized) {\n toolbarDefinition.initialized = true;\n toolbarDefinition.view.fillFromConfig(toolbarDefinition.itemsConfig, this.editor.ui.componentFactory);\n }\n this._balloon.add({\n view: toolbarDefinition.view,\n position: getBalloonPositionData(this.editor, relatedElement),\n balloonClassName: toolbarDefinition.balloonClassName\n });\n // Update toolbar position each time stack with toolbar view is switched to visible.\n // This is in a case target element has changed when toolbar was in invisible stack\n // e.g. target image was wrapped by a block quote.\n // See https://github.com/ckeditor/ckeditor5-widget/issues/92.\n this.listenTo(this._balloon, 'change:visibleView', () => {\n for (const definition of this._toolbarDefinitions.values()) {\n if (this._isToolbarVisible(definition)) {\n const relatedElement = definition.getRelatedElement(this.editor.editing.view.document.selection);\n repositionContextualBalloon(this.editor, relatedElement);\n }\n }\n });\n }\n }\n _isToolbarVisible(toolbar) {\n return this._balloon.visibleView === toolbar.view;\n }\n _isToolbarInBalloon(toolbar) {\n return this._balloon.hasView(toolbar.view);\n }\n}\nfunction repositionContextualBalloon(editor, relatedElement) {\n const balloon = editor.plugins.get('ContextualBalloon');\n const position = getBalloonPositionData(editor, relatedElement);\n balloon.updatePosition(position);\n}\nfunction getBalloonPositionData(editor, relatedElement) {\n const editingView = editor.editing.view;\n const defaultPositions = BalloonPanelView.defaultPositions;\n return {\n target: editingView.domConverter.mapViewToDom(relatedElement),\n positions: [\n defaultPositions.northArrowSouth,\n defaultPositions.northArrowSouthWest,\n defaultPositions.northArrowSouthEast,\n defaultPositions.southArrowNorth,\n defaultPositions.southArrowNorthWest,\n defaultPositions.southArrowNorthEast,\n defaultPositions.viewportStickyNorth\n ]\n };\n}\nfunction isWidgetSelected(selection) {\n const viewElement = selection.getSelectedElement();\n return !!(viewElement && isWidget(viewElement));\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module widget/widgetresize/resizerstate\n */\nimport { ObservableMixin, Rect } from '@ckeditor/ckeditor5-utils';\n/**\n * Stores the internal state of a single resizable object.\n */\nexport default class ResizeState extends ObservableMixin() {\n /**\n * @param options Resizer options.\n */\n constructor(options) {\n super();\n this.set('activeHandlePosition', null);\n this.set('proposedWidthPercents', null);\n this.set('proposedWidth', null);\n this.set('proposedHeight', null);\n this.set('proposedHandleHostWidth', null);\n this.set('proposedHandleHostHeight', null);\n this._options = options;\n this._referenceCoordinates = null;\n }\n /**\n * The original width (pixels) of the resized object when the resize process was started.\n */\n get originalWidth() {\n return this._originalWidth;\n }\n /**\n * The original height (pixels) of the resized object when the resize process was started.\n */\n get originalHeight() {\n return this._originalHeight;\n }\n /**\n * The original width (percents) of the resized object when the resize process was started.\n */\n get originalWidthPercents() {\n return this._originalWidthPercents;\n }\n /**\n * A width to height ratio of the resized image.\n */\n get aspectRatio() {\n return this._aspectRatio;\n }\n /**\n *\n * @param domResizeHandle The handle used to calculate the reference point.\n */\n begin(domResizeHandle, domHandleHost, domResizeHost) {\n const clientRect = new Rect(domHandleHost);\n this.activeHandlePosition = getHandlePosition(domResizeHandle);\n this._referenceCoordinates = getAbsoluteBoundaryPoint(domHandleHost, getOppositePosition(this.activeHandlePosition));\n this._originalWidth = clientRect.width;\n this._originalHeight = clientRect.height;\n this._aspectRatio = clientRect.width / clientRect.height;\n const widthStyle = domResizeHost.style.width;\n if (widthStyle && widthStyle.match(/^\\d+(\\.\\d*)?%$/)) {\n this._originalWidthPercents = parseFloat(widthStyle);\n }\n else {\n this._originalWidthPercents = calculateHostPercentageWidth(domResizeHost, clientRect);\n }\n }\n update(newSize) {\n this.proposedWidth = newSize.width;\n this.proposedHeight = newSize.height;\n this.proposedWidthPercents = newSize.widthPercents;\n this.proposedHandleHostWidth = newSize.handleHostWidth;\n this.proposedHandleHostHeight = newSize.handleHostHeight;\n }\n}\n/**\n * Calculates a relative width of a `domResizeHost` compared to its ancestor in percents.\n */\nfunction calculateHostPercentageWidth(domResizeHost, resizeHostRect) {\n const domResizeHostParent = domResizeHost.parentElement;\n // Need to use computed style as it properly excludes parent's paddings from the returned value.\n let parentWidth = parseFloat(domResizeHostParent.ownerDocument.defaultView.getComputedStyle(domResizeHostParent).width);\n // Sometimes parent width cannot be accessed. If that happens we should go up in the elements tree\n // and try to get width from next ancestor.\n // https://github.com/ckeditor/ckeditor5/issues/10776\n const ancestorLevelLimit = 5;\n let currentLevel = 0;\n let checkedElement = domResizeHostParent;\n while (isNaN(parentWidth)) {\n checkedElement = checkedElement.parentElement;\n if (++currentLevel > ancestorLevelLimit) {\n return 0;\n }\n parentWidth = parseFloat(domResizeHostParent.ownerDocument.defaultView.getComputedStyle(checkedElement).width);\n }\n return resizeHostRect.width / parentWidth * 100;\n}\n/**\n * Returns coordinates of the top-left corner of an element, relative to the document's top-left corner.\n *\n * @param resizerPosition The position of the resize handle, e.g. `\"top-left\"`, `\"bottom-right\"`.\n */\nfunction getAbsoluteBoundaryPoint(element, resizerPosition) {\n const elementRect = new Rect(element);\n const positionParts = resizerPosition.split('-');\n const ret = {\n x: positionParts[1] == 'right' ? elementRect.right : elementRect.left,\n y: positionParts[0] == 'bottom' ? elementRect.bottom : elementRect.top\n };\n ret.x += element.ownerDocument.defaultView.scrollX;\n ret.y += element.ownerDocument.defaultView.scrollY;\n return ret;\n}\n/**\n * @param resizerPosition The expected resizer position, like `\"top-left\"`, `\"bottom-right\"`.\n * @returns A prefixed HTML class name for the resizer element.\n */\nfunction getResizerHandleClass(resizerPosition) {\n return `ck-widget__resizer__handle-${resizerPosition}`;\n}\n/**\n * Determines the position of a given resize handle.\n *\n * @param domHandle Handle used to calculate the reference point.\n * @returns Returns a string like `\"top-left\"` or `undefined` if not matched.\n */\nfunction getHandlePosition(domHandle) {\n const resizerPositions = ['top-left', 'top-right', 'bottom-right', 'bottom-left'];\n for (const position of resizerPositions) {\n if (domHandle.classList.contains(getResizerHandleClass(position))) {\n return position;\n }\n }\n}\n/**\n * @param position Like `\"top-left\"`.\n * @returns Inverted `position`, e.g. it returns `\"bottom-right\"` if `\"top-left\"` was given as `position`.\n */\nfunction getOppositePosition(position) {\n const parts = position.split('-');\n const replacements = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n };\n return `${replacements[parts[0]]}-${replacements[parts[1]]}`;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module widget/widgetresize/sizeview\n */\nimport { View } from '@ckeditor/ckeditor5-ui';\n/**\n * A view displaying the proposed new element size during the resizing.\n */\nexport default class SizeView extends View {\n constructor() {\n super();\n const bind = this.bindTemplate;\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-size-view',\n bind.to('_viewPosition', value => value ? `ck-orientation-${value}` : '')\n ],\n style: {\n display: bind.if('_isVisible', 'none', visible => !visible)\n }\n },\n children: [{\n text: bind.to('_label')\n }]\n });\n }\n /**\n * A method used for binding the `SizeView` instance properties to the `ResizeState` instance observable properties.\n *\n * @internal\n * @param options An object defining the resizer options, used for setting the proper size label.\n * @param resizeState The `ResizeState` class instance, used for keeping the `SizeView` state up to date.\n */\n _bindToState(options, resizeState) {\n this.bind('_isVisible').to(resizeState, 'proposedWidth', resizeState, 'proposedHeight', (width, height) => width !== null && height !== null);\n this.bind('_label').to(resizeState, 'proposedHandleHostWidth', resizeState, 'proposedHandleHostHeight', resizeState, 'proposedWidthPercents', (width, height, widthPercents) => {\n if (options.unit === 'px') {\n return `${width}×${height}`;\n }\n else {\n return `${widthPercents}%`;\n }\n });\n this.bind('_viewPosition').to(resizeState, 'activeHandlePosition', resizeState, 'proposedHandleHostWidth', resizeState, 'proposedHandleHostHeight', \n // If the widget is too small to contain the size label, display the label above.\n (position, width, height) => width < 50 || height < 50 ? 'above-center' : position);\n }\n /**\n * A method used for cleaning up. It removes the bindings and hides the view.\n *\n * @internal\n */\n _dismiss() {\n this.unbind();\n this._isVisible = false;\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module widget/widgetresize/resizer\n */\nimport { Template } from '@ckeditor/ckeditor5-ui';\nimport { Rect, ObservableMixin, compareArrays } from '@ckeditor/ckeditor5-utils';\nimport ResizeState from './resizerstate';\nimport SizeView from './sizeview';\n/**\n * Represents a resizer for a single resizable object.\n */\nexport default class Resizer extends ObservableMixin() {\n /**\n * @param options Resizer options.\n */\n constructor(options) {\n super();\n /**\n * A wrapper that is controlled by the resizer. This is usually a widget element.\n */\n this._viewResizerWrapper = null;\n this._options = options;\n this.set('isEnabled', true);\n this.set('isSelected', false);\n this.bind('isVisible').to(this, 'isEnabled', this, 'isSelected', (isEnabled, isSelected) => isEnabled && isSelected);\n this.decorate('begin');\n this.decorate('cancel');\n this.decorate('commit');\n this.decorate('updateSize');\n this.on('commit', event => {\n // State might not be initialized yet. In this case, prevent further handling and make sure that the resizer is\n // cleaned up (#5195).\n if (!this.state.proposedWidth && !this.state.proposedWidthPercents) {\n this._cleanup();\n event.stop();\n }\n }, { priority: 'high' });\n }\n /**\n * Stores the state of the resizable host geometry, such as the original width, the currently proposed height, etc.\n *\n * Note that a new state is created for each resize transaction.\n */\n get state() {\n return this._state;\n }\n /**\n * Makes resizer visible in the UI.\n */\n show() {\n const editingView = this._options.editor.editing.view;\n editingView.change(writer => {\n writer.removeClass('ck-hidden', this._viewResizerWrapper);\n });\n }\n /**\n * Hides resizer in the UI.\n */\n hide() {\n const editingView = this._options.editor.editing.view;\n editingView.change(writer => {\n writer.addClass('ck-hidden', this._viewResizerWrapper);\n });\n }\n /**\n * Attaches the resizer to the DOM.\n */\n attach() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n const widgetElement = this._options.viewElement;\n const editingView = this._options.editor.editing.view;\n editingView.change(writer => {\n const viewResizerWrapper = writer.createUIElement('div', {\n class: 'ck ck-reset_all ck-widget__resizer'\n }, function (domDocument) {\n const domElement = this.toDomElement(domDocument);\n that._appendHandles(domElement);\n that._appendSizeUI(domElement);\n return domElement;\n });\n // Append the resizer wrapper to the widget's wrapper.\n writer.insert(writer.createPositionAt(widgetElement, 'end'), viewResizerWrapper);\n writer.addClass('ck-widget_with-resizer', widgetElement);\n this._viewResizerWrapper = viewResizerWrapper;\n if (!this.isVisible) {\n this.hide();\n }\n });\n this.on('change:isVisible', () => {\n if (this.isVisible) {\n this.show();\n this.redraw();\n }\n else {\n this.hide();\n }\n });\n }\n /**\n * Starts the resizing process.\n *\n * Creates a new {@link #state} for the current process.\n *\n * @fires begin\n * @param domResizeHandle Clicked handle.\n */\n begin(domResizeHandle) {\n this._state = new ResizeState(this._options);\n this._sizeView._bindToState(this._options, this.state);\n this._initialViewWidth = this._options.viewElement.getStyle('width');\n this.state.begin(domResizeHandle, this._getHandleHost(), this._getResizeHost());\n }\n /**\n * Updates the proposed size based on `domEventData`.\n *\n * @fires updateSize\n */\n updateSize(domEventData) {\n const newSize = this._proposeNewSize(domEventData);\n const editingView = this._options.editor.editing.view;\n editingView.change(writer => {\n const unit = this._options.unit || '%';\n const newWidth = (unit === '%' ? newSize.widthPercents : newSize.width) + unit;\n writer.setStyle('width', newWidth, this._options.viewElement);\n });\n // Get an actual image width, and:\n // * reflect this size to the resize wrapper\n // * apply this **real** size to the state\n const domHandleHost = this._getHandleHost();\n const domHandleHostRect = new Rect(domHandleHost);\n const handleHostWidth = Math.round(domHandleHostRect.width);\n const handleHostHeight = Math.round(domHandleHostRect.height);\n // Handle max-width limitation.\n const domResizeHostRect = new Rect(domHandleHost);\n newSize.width = Math.round(domResizeHostRect.width);\n newSize.height = Math.round(domResizeHostRect.height);\n this.redraw(domHandleHostRect);\n this.state.update({\n ...newSize,\n handleHostWidth,\n handleHostHeight\n });\n }\n /**\n * Applies the geometry proposed with the resizer.\n *\n * @fires commit\n */\n commit() {\n const unit = this._options.unit || '%';\n const newValue = (unit === '%' ? this.state.proposedWidthPercents : this.state.proposedWidth) + unit;\n // Both cleanup and onCommit callback are very likely to make view changes. Ensure that it is made in a single step.\n this._options.editor.editing.view.change(() => {\n this._cleanup();\n this._options.onCommit(newValue);\n });\n }\n /**\n * Cancels and rejects the proposed resize dimensions, hiding the UI.\n *\n * @fires cancel\n */\n cancel() {\n this._cleanup();\n }\n /**\n * Destroys the resizer.\n */\n destroy() {\n this.cancel();\n }\n /**\n * Redraws the resizer.\n *\n * @param handleHostRect Handle host rectangle might be given to improve performance.\n */\n redraw(handleHostRect) {\n const domWrapper = this._domResizerWrapper;\n // Refresh only if resizer exists in the DOM.\n if (!existsInDom(domWrapper)) {\n return;\n }\n const widgetWrapper = domWrapper.parentElement;\n const handleHost = this._getHandleHost();\n const resizerWrapper = this._viewResizerWrapper;\n const currentDimensions = [\n resizerWrapper.getStyle('width'),\n resizerWrapper.getStyle('height'),\n resizerWrapper.getStyle('left'),\n resizerWrapper.getStyle('top')\n ];\n let newDimensions;\n if (widgetWrapper.isSameNode(handleHost)) {\n const clientRect = handleHostRect || new Rect(handleHost);\n newDimensions = [\n clientRect.width + 'px',\n clientRect.height + 'px',\n undefined,\n undefined\n ];\n }\n // In case a resizing host is not a widget wrapper, we need to compensate\n // for any additional offsets the resize host might have. E.g. wrapper padding\n // or simply another editable. By doing that the border and resizers are shown\n // only around the resize host.\n else {\n newDimensions = [\n handleHost.offsetWidth + 'px',\n handleHost.offsetHeight + 'px',\n handleHost.offsetLeft + 'px',\n handleHost.offsetTop + 'px'\n ];\n }\n // Make changes to the view only if the resizer should actually get new dimensions.\n // Otherwise, if View#change() was always called, this would cause EditorUI#update\n // loops because the WidgetResize plugin listens to EditorUI#update and updates\n // the resizer.\n // https://github.com/ckeditor/ckeditor5/issues/7633\n if (compareArrays(currentDimensions, newDimensions) !== 'same') {\n this._options.editor.editing.view.change(writer => {\n writer.setStyle({\n width: newDimensions[0],\n height: newDimensions[1],\n left: newDimensions[2],\n top: newDimensions[3]\n }, resizerWrapper);\n });\n }\n }\n containsHandle(domElement) {\n return this._domResizerWrapper.contains(domElement);\n }\n static isResizeHandle(domElement) {\n return domElement.classList.contains('ck-widget__resizer__handle');\n }\n /**\n * Cleans up the context state.\n */\n _cleanup() {\n this._sizeView._dismiss();\n const editingView = this._options.editor.editing.view;\n editingView.change(writer => {\n writer.setStyle('width', this._initialViewWidth, this._options.viewElement);\n });\n }\n /**\n * Calculates the proposed size as the resize handles are dragged.\n *\n * @param domEventData Event data that caused the size update request. It should be used to calculate the proposed size.\n */\n _proposeNewSize(domEventData) {\n const state = this.state;\n const currentCoordinates = extractCoordinates(domEventData);\n const isCentered = this._options.isCentered ? this._options.isCentered(this) : true;\n // Enlargement defines how much the resize host has changed in a given axis. Naturally it could be a negative number\n // meaning that it has been shrunk.\n //\n // +----------------+--+\n // | | |\n // | img | |\n // | /handle host | |\n // +----------------+ | ^\n // | | | - enlarge y\n // +-------------------+ v\n // \t\t\t\t\t<-->\n // \t\t\t\t\t enlarge x\n const enlargement = {\n x: state._referenceCoordinates.x - (currentCoordinates.x + state.originalWidth),\n y: (currentCoordinates.y - state.originalHeight) - state._referenceCoordinates.y\n };\n if (isCentered && state.activeHandlePosition.endsWith('-right')) {\n enlargement.x = currentCoordinates.x - (state._referenceCoordinates.x + state.originalWidth);\n }\n // Objects needs to be resized twice as much in horizontal axis if centered, since enlargement is counted from\n // one resized corner to your cursor. It needs to be duplicated to compensate for the other side too.\n if (isCentered) {\n enlargement.x *= 2;\n }\n // const resizeHost = this._getResizeHost();\n // The size proposed by the user. It does not consider the aspect ratio.\n let width = Math.abs(state.originalWidth + enlargement.x);\n let height = Math.abs(state.originalHeight + enlargement.y);\n // Dominant determination must take the ratio into account.\n const dominant = width / state.aspectRatio > height ? 'width' : 'height';\n if (dominant == 'width') {\n height = width / state.aspectRatio;\n }\n else {\n width = height * state.aspectRatio;\n }\n return {\n width: Math.round(width),\n height: Math.round(height),\n widthPercents: Math.min(Math.round(state.originalWidthPercents / state.originalWidth * width * 100) / 100, 100)\n };\n }\n /**\n * Obtains the resize host.\n *\n * Resize host is an object that receives dimensions which are the result of resizing.\n */\n _getResizeHost() {\n const widgetWrapper = this._domResizerWrapper.parentElement;\n return this._options.getResizeHost(widgetWrapper);\n }\n /**\n * Obtains the handle host.\n *\n * Handle host is an object that the handles are aligned to.\n *\n * Handle host will not always be an entire widget itself. Take an image as an example. The image widget\n * contains an image and a caption. Only the image should be surrounded with handles.\n */\n _getHandleHost() {\n const widgetWrapper = this._domResizerWrapper.parentElement;\n return this._options.getHandleHost(widgetWrapper);\n }\n /**\n * DOM container of the entire resize UI.\n *\n * Note that this property will have a value only after the element bound with the resizer is rendered\n * (otherwise `null`).\n */\n get _domResizerWrapper() {\n return this._options.editor.editing.view.domConverter.mapViewToDom(this._viewResizerWrapper);\n }\n /**\n * Renders the resize handles in the DOM.\n *\n * @param domElement The resizer wrapper.\n */\n _appendHandles(domElement) {\n const resizerPositions = ['top-left', 'top-right', 'bottom-right', 'bottom-left'];\n for (const currentPosition of resizerPositions) {\n domElement.appendChild((new Template({\n tag: 'div',\n attributes: {\n class: `ck-widget__resizer__handle ${getResizerClass(currentPosition)}`\n }\n }).render()));\n }\n }\n /**\n * Sets up the {@link #_sizeView} property and adds it to the passed `domElement`.\n */\n _appendSizeUI(domElement) {\n this._sizeView = new SizeView();\n // Make sure icon#element is rendered before passing to appendChild().\n this._sizeView.render();\n domElement.appendChild(this._sizeView.element);\n }\n}\n/**\n * @param resizerPosition Expected resizer position like `\"top-left\"`, `\"bottom-right\"`.\n * @returns A prefixed HTML class name for the resizer element\n */\nfunction getResizerClass(resizerPosition) {\n return `ck-widget__resizer__handle-${resizerPosition}`;\n}\nfunction extractCoordinates(event) {\n return {\n x: event.pageX,\n y: event.pageY\n };\n}\nfunction existsInDom(element) {\n return element && element.ownerDocument && element.ownerDocument.contains(element);\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./widgetresize.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module widget/widgetresize\n */\nimport Resizer from './widgetresize/resizer';\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { MouseObserver } from '@ckeditor/ckeditor5-engine';\nimport { DomEmitterMixin, global } from '@ckeditor/ckeditor5-utils';\nimport { throttle } from 'lodash-es';\nimport '../theme/widgetresize.css';\n/**\n * The widget resize feature plugin.\n *\n * Use the {@link module:widget/widgetresize~WidgetResize#attachTo} method to create a resizer for the specified widget.\n */\nexport default class WidgetResize extends Plugin {\n constructor() {\n super(...arguments);\n /**\n * A map of resizers created using this plugin instance.\n */\n this._resizers = new Map();\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'WidgetResize';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editing = this.editor.editing;\n const domDocument = global.window.document;\n this.set('selectedResizer', null);\n this.set('_activeResizer', null);\n editing.view.addObserver(MouseObserver);\n this._observer = new (DomEmitterMixin())();\n this.listenTo(editing.view.document, 'mousedown', this._mouseDownListener.bind(this), { priority: 'high' });\n this._observer.listenTo(domDocument, 'mousemove', this._mouseMoveListener.bind(this));\n this._observer.listenTo(domDocument, 'mouseup', this._mouseUpListener.bind(this));\n this._redrawSelectedResizerThrottled = throttle(() => this.redrawSelectedResizer(), 200);\n // Redrawing on any change of the UI of the editor (including content changes).\n this.editor.ui.on('update', this._redrawSelectedResizerThrottled);\n // Remove view widget-resizer mappings for widgets that have been removed from the document.\n // https://github.com/ckeditor/ckeditor5/issues/10156\n // https://github.com/ckeditor/ckeditor5/issues/10266\n this.editor.model.document.on('change', () => {\n for (const [viewElement, resizer] of this._resizers) {\n if (!viewElement.isAttached()) {\n this._resizers.delete(viewElement);\n resizer.destroy();\n }\n }\n }, { priority: 'lowest' });\n // Resizers need to be redrawn upon window resize, because new window might shrink resize host.\n this._observer.listenTo(global.window, 'resize', this._redrawSelectedResizerThrottled);\n const viewSelection = this.editor.editing.view.document.selection;\n viewSelection.on('change', () => {\n const selectedElement = viewSelection.getSelectedElement();\n const resizer = this.getResizerByViewElement(selectedElement) || null;\n if (resizer) {\n this.select(resizer);\n }\n else {\n this.deselect();\n }\n });\n }\n /**\n * Redraws the selected resizer if there is any selected resizer and if it is visible.\n */\n redrawSelectedResizer() {\n if (this.selectedResizer && this.selectedResizer.isVisible) {\n this.selectedResizer.redraw();\n }\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n this._observer.stopListening();\n for (const resizer of this._resizers.values()) {\n resizer.destroy();\n }\n this._redrawSelectedResizerThrottled.cancel();\n }\n /**\n * Marks resizer as selected.\n */\n select(resizer) {\n this.deselect();\n this.selectedResizer = resizer;\n this.selectedResizer.isSelected = true;\n }\n /**\n * Deselects currently set resizer.\n */\n deselect() {\n if (this.selectedResizer) {\n this.selectedResizer.isSelected = false;\n }\n this.selectedResizer = null;\n }\n /**\n * @param options Resizer options.\n */\n attachTo(options) {\n const resizer = new Resizer(options);\n const plugins = this.editor.plugins;\n resizer.attach();\n if (plugins.has('WidgetToolbarRepository')) {\n // Hiding widget toolbar to improve the performance\n // (https://github.com/ckeditor/ckeditor5-widget/pull/112#issuecomment-564528765).\n const widgetToolbarRepository = plugins.get('WidgetToolbarRepository');\n resizer.on('begin', () => {\n widgetToolbarRepository.forceDisabled('resize');\n }, { priority: 'lowest' });\n resizer.on('cancel', () => {\n widgetToolbarRepository.clearForceDisabled('resize');\n }, { priority: 'highest' });\n resizer.on('commit', () => {\n widgetToolbarRepository.clearForceDisabled('resize');\n }, { priority: 'highest' });\n }\n this._resizers.set(options.viewElement, resizer);\n const viewSelection = this.editor.editing.view.document.selection;\n const selectedElement = viewSelection.getSelectedElement();\n // If the element the resizer is created for is currently focused, it should become visible.\n if (this.getResizerByViewElement(selectedElement) == resizer) {\n this.select(resizer);\n }\n return resizer;\n }\n /**\n * Returns a resizer created for a given view element (widget element).\n *\n * @param viewElement View element associated with the resizer.\n */\n getResizerByViewElement(viewElement) {\n return this._resizers.get(viewElement);\n }\n /**\n * Returns a resizer that contains a given resize handle.\n */\n _getResizerByHandle(domResizeHandle) {\n for (const resizer of this._resizers.values()) {\n if (resizer.containsHandle(domResizeHandle)) {\n return resizer;\n }\n }\n }\n /**\n * @param domEventData Native DOM event.\n */\n _mouseDownListener(event, domEventData) {\n const resizeHandle = domEventData.domTarget;\n if (!Resizer.isResizeHandle(resizeHandle)) {\n return;\n }\n this._activeResizer = this._getResizerByHandle(resizeHandle) || null;\n if (this._activeResizer) {\n this._activeResizer.begin(resizeHandle);\n // Do not call other events when resizing. See: #6755.\n event.stop();\n domEventData.preventDefault();\n }\n }\n /**\n * @param domEventData Native DOM event.\n */\n _mouseMoveListener(event, domEventData) {\n if (this._activeResizer) {\n this._activeResizer.updateSize(domEventData);\n }\n }\n _mouseUpListener() {\n if (this._activeResizer) {\n this._activeResizer.commit();\n this._activeResizer = null;\n }\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./clipboard.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module clipboard/dragdrop\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { LiveRange, MouseObserver } from '@ckeditor/ckeditor5-engine';\nimport { Widget, isWidget } from '@ckeditor/ckeditor5-widget';\nimport { env, uid, delay } from '@ckeditor/ckeditor5-utils';\nimport ClipboardPipeline from './clipboardpipeline';\nimport ClipboardObserver from './clipboardobserver';\nimport { throttle } from 'lodash-es';\nimport '../theme/clipboard.css';\n// Drag and drop events overview:\n//\n// ┌──────────────────┐\n// │ mousedown │ Sets the draggable attribute.\n// └─────────┬────────┘\n// │\n// └─────────────────────┐\n// │ │\n// │ ┌─────────V────────┐\n// │ │ mouseup │ Dragging did not start, removes the draggable attribute.\n// │ └──────────────────┘\n// │\n// ┌─────────V────────┐ Retrieves the selected model.DocumentFragment\n// │ dragstart │ and converts it to view.DocumentFragment.\n// └─────────┬────────┘\n// │\n// ┌─────────V────────┐ Processes view.DocumentFragment to text/html and text/plain\n// │ clipboardOutput │ and stores the results in data.dataTransfer.\n// └─────────┬────────┘\n// │\n// │ DOM dragover\n// ┌────────────┐\n// │ │\n// ┌─────────V────────┐ │\n// │ dragging │ │ Updates the drop target marker.\n// └─────────┬────────┘ │\n// │ │\n// ┌─────────────└────────────┘\n// │ │ │\n// │ ┌─────────V────────┐ │\n// │ │ dragleave │ │ Removes the drop target marker.\n// │ └─────────┬────────┘ │\n// │ │ │\n// ┌───│─────────────┘ │\n// │ │ │ │\n// │ │ ┌─────────V────────┐ │\n// │ │ │ dragenter │ │ Focuses the editor view.\n// │ │ └─────────┬────────┘ │\n// │ │ │ │\n// │ │ └────────────┘\n// │ │\n// │ └─────────────┐\n// │ │ │\n// │ │ ┌─────────V────────┐\n// └───┐ │ drop │ (The default handler of the clipboard pipeline).\n// │ └─────────┬────────┘\n// │ │\n// │ ┌─────────V────────┐ Resolves the final data.targetRanges.\n// │ │ clipboardInput │ Aborts if dropping on dragged content.\n// │ └─────────┬────────┘\n// │ │\n// │ ┌─────────V────────┐\n// │ │ clipboardInput │ (The default handler of the clipboard pipeline).\n// │ └─────────┬────────┘\n// │ │\n// │ ┌───────────V───────────┐\n// │ │ inputTransformation │ (The default handler of the clipboard pipeline).\n// │ └───────────┬───────────┘\n// │ │\n// │ ┌──────────V──────────┐\n// │ │ contentInsertion │ Updates the document selection to drop range.\n// │ └──────────┬──────────┘\n// │ │\n// │ ┌──────────V──────────┐\n// │ │ contentInsertion │ (The default handler of the clipboard pipeline).\n// │ └──────────┬──────────┘\n// │ │\n// │ ┌──────────V──────────┐\n// │ │ contentInsertion │ Removes the content from the original range if the insertion was successful.\n// │ └──────────┬──────────┘\n// │ │\n// └─────────────┐\n// │\n// ┌─────────V────────┐\n// │ dragend │ Removes the drop marker and cleans the state.\n// └──────────────────┘\n//\n/**\n * The drag and drop feature. It works on top of the {@link module:clipboard/clipboardpipeline~ClipboardPipeline}.\n *\n * Read more about the clipboard integration in the {@glink framework/deep-dive/clipboard clipboard deep-dive} guide.\n */\nexport default class DragDrop extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'DragDrop';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ClipboardPipeline, Widget];\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const view = editor.editing.view;\n this._draggedRange = null;\n this._draggingUid = '';\n this._draggableElement = null;\n this._updateDropMarkerThrottled = throttle(targetRange => this._updateDropMarker(targetRange), 40);\n this._removeDropMarkerDelayed = delay(() => this._removeDropMarker(), 40);\n this._clearDraggableAttributesDelayed = delay(() => this._clearDraggableAttributes(), 40);\n if (editor.plugins.has('DragDropExperimental')) {\n this.forceDisabled('DragDropExperimental');\n return;\n }\n view.addObserver(ClipboardObserver);\n view.addObserver(MouseObserver);\n this._setupDragging();\n this._setupContentInsertionIntegration();\n this._setupClipboardInputIntegration();\n this._setupDropMarker();\n this._setupDraggableAttributeHandling();\n this.listenTo(editor, 'change:isReadOnly', (evt, name, isReadOnly) => {\n if (isReadOnly) {\n this.forceDisabled('readOnlyMode');\n }\n else {\n this.clearForceDisabled('readOnlyMode');\n }\n });\n this.on('change:isEnabled', (evt, name, isEnabled) => {\n if (!isEnabled) {\n this._finalizeDragging(false);\n }\n });\n if (env.isAndroid) {\n this.forceDisabled('noAndroidSupport');\n }\n }\n /**\n * @inheritDoc\n */\n destroy() {\n if (this._draggedRange) {\n this._draggedRange.detach();\n this._draggedRange = null;\n }\n this._updateDropMarkerThrottled.cancel();\n this._removeDropMarkerDelayed.cancel();\n this._clearDraggableAttributesDelayed.cancel();\n return super.destroy();\n }\n /**\n * Drag and drop events handling.\n */\n _setupDragging() {\n const editor = this.editor;\n const model = editor.model;\n const modelDocument = model.document;\n const view = editor.editing.view;\n const viewDocument = view.document;\n // The handler for the drag start; it is responsible for setting data transfer object.\n this.listenTo(viewDocument, 'dragstart', (evt, data) => {\n const selection = modelDocument.selection;\n // Don't drag the editable element itself.\n if (data.target && data.target.is('editableElement')) {\n data.preventDefault();\n return;\n }\n // TODO we could clone this node somewhere and style it to match editing view but without handles,\n // selection outline, WTA buttons, etc.\n // data.dataTransfer._native.setDragImage( data.domTarget, 0, 0 );\n // Check if this is dragstart over the widget (but not a nested editable).\n const draggableWidget = data.target ? findDraggableWidget(data.target) : null;\n if (draggableWidget) {\n const modelElement = editor.editing.mapper.toModelElement(draggableWidget);\n this._draggedRange = LiveRange.fromRange(model.createRangeOn(modelElement));\n // Disable toolbars so they won't obscure the drop area.\n if (editor.plugins.has('WidgetToolbarRepository')) {\n const widgetToolbarRepository = editor.plugins.get('WidgetToolbarRepository');\n widgetToolbarRepository.forceDisabled('dragDrop');\n }\n }\n // If this was not a widget we should check if we need to drag some text content.\n else if (!viewDocument.selection.isCollapsed) {\n const selectedElement = viewDocument.selection.getSelectedElement();\n if (!selectedElement || !isWidget(selectedElement)) {\n this._draggedRange = LiveRange.fromRange(selection.getFirstRange());\n }\n }\n if (!this._draggedRange) {\n data.preventDefault();\n return;\n }\n this._draggingUid = uid();\n const canEditAtDraggedRange = this.isEnabled && editor.model.canEditAt(this._draggedRange);\n data.dataTransfer.effectAllowed = canEditAtDraggedRange ? 'copyMove' : 'copy';\n data.dataTransfer.setData('application/ckeditor5-dragging-uid', this._draggingUid);\n const draggedSelection = model.createSelection(this._draggedRange.toRange());\n const content = editor.data.toView(model.getSelectedContent(draggedSelection));\n viewDocument.fire('clipboardOutput', {\n dataTransfer: data.dataTransfer,\n content,\n method: 'dragstart'\n });\n if (!canEditAtDraggedRange) {\n this._draggedRange.detach();\n this._draggedRange = null;\n this._draggingUid = '';\n }\n }, { priority: 'low' });\n // The handler for finalizing drag and drop. It should always be triggered after dragging completes\n // even if it was completed in a different application.\n // Note: This is not fired if source text node got removed while downcasting a marker.\n this.listenTo(viewDocument, 'dragend', (evt, data) => {\n this._finalizeDragging(!data.dataTransfer.isCanceled && data.dataTransfer.dropEffect == 'move');\n }, { priority: 'low' });\n // Dragging over the editable.\n this.listenTo(viewDocument, 'dragenter', () => {\n if (!this.isEnabled) {\n return;\n }\n view.focus();\n });\n // Dragging out of the editable.\n this.listenTo(viewDocument, 'dragleave', () => {\n // We do not know if the mouse left the editor or just some element in it, so let us wait a few milliseconds\n // to check if 'dragover' is not fired.\n this._removeDropMarkerDelayed();\n });\n // Handler for moving dragged content over the target area.\n this.listenTo(viewDocument, 'dragging', (evt, data) => {\n if (!this.isEnabled) {\n data.dataTransfer.dropEffect = 'none';\n return;\n }\n this._removeDropMarkerDelayed.cancel();\n const targetRange = findDropTargetRange(editor, data.targetRanges, data.target);\n // Do not drop if target place is not editable.\n if (!editor.model.canEditAt(targetRange)) {\n data.dataTransfer.dropEffect = 'none';\n return;\n }\n // If this is content being dragged from another editor, moving out of current editor instance\n // is not possible until 'dragend' event case will be fixed.\n if (!this._draggedRange) {\n data.dataTransfer.dropEffect = 'copy';\n }\n // In Firefox it is already set and effect allowed remains the same as originally set.\n if (!env.isGecko) {\n if (data.dataTransfer.effectAllowed == 'copy') {\n data.dataTransfer.dropEffect = 'copy';\n }\n else if (['all', 'copyMove'].includes(data.dataTransfer.effectAllowed)) {\n data.dataTransfer.dropEffect = 'move';\n }\n }\n /* istanbul ignore else -- @preserve */\n if (targetRange) {\n this._updateDropMarkerThrottled(targetRange);\n }\n }, { priority: 'low' });\n }\n /**\n * Integration with the `clipboardInput` event.\n */\n _setupClipboardInputIntegration() {\n const editor = this.editor;\n const view = editor.editing.view;\n const viewDocument = view.document;\n // Update the event target ranges and abort dropping if dropping over itself.\n this.listenTo(viewDocument, 'clipboardInput', (evt, data) => {\n if (data.method != 'drop') {\n return;\n }\n const targetRange = findDropTargetRange(editor, data.targetRanges, data.target);\n // The dragging markers must be removed after searching for the target range because sometimes\n // the target lands on the marker itself.\n this._removeDropMarker();\n /* istanbul ignore if -- @preserve */\n if (!targetRange || !editor.model.canEditAt(targetRange)) {\n this._finalizeDragging(false);\n evt.stop();\n return;\n }\n // Since we cannot rely on the drag end event, we must check if the local drag range is from the current drag and drop\n // or it is from some previous not cleared one.\n if (this._draggedRange && this._draggingUid != data.dataTransfer.getData('application/ckeditor5-dragging-uid')) {\n this._draggedRange.detach();\n this._draggedRange = null;\n this._draggingUid = '';\n }\n // Do not do anything if some content was dragged within the same document to the same position.\n const isMove = getFinalDropEffect(data.dataTransfer) == 'move';\n if (isMove && this._draggedRange && this._draggedRange.containsRange(targetRange, true)) {\n this._finalizeDragging(false);\n evt.stop();\n return;\n }\n // Override the target ranges with the one adjusted to the best one for a drop.\n data.targetRanges = [editor.editing.mapper.toViewRange(targetRange)];\n }, { priority: 'high' });\n }\n /**\n * Integration with the `contentInsertion` event of the clipboard pipeline.\n */\n _setupContentInsertionIntegration() {\n const clipboardPipeline = this.editor.plugins.get(ClipboardPipeline);\n clipboardPipeline.on('contentInsertion', (evt, data) => {\n if (!this.isEnabled || data.method !== 'drop') {\n return;\n }\n // Update the selection to the target range in the same change block to avoid selection post-fixing\n // and to be able to clone text attributes for plain text dropping.\n const ranges = data.targetRanges.map(viewRange => this.editor.editing.mapper.toModelRange(viewRange));\n this.editor.model.change(writer => writer.setSelection(ranges));\n }, { priority: 'high' });\n clipboardPipeline.on('contentInsertion', (evt, data) => {\n if (!this.isEnabled || data.method !== 'drop') {\n return;\n }\n // Remove dragged range content, remove markers, clean after dragging.\n const isMove = getFinalDropEffect(data.dataTransfer) == 'move';\n // Whether any content was inserted (insertion might fail if the schema is disallowing some elements\n // (for example an image caption allows only the content of a block but not blocks themselves.\n // Some integrations might not return valid range (i.e., table pasting).\n const isSuccess = !data.resultRange || !data.resultRange.isCollapsed;\n this._finalizeDragging(isSuccess && isMove);\n }, { priority: 'lowest' });\n }\n /**\n * Adds listeners that add the `draggable` attribute to the elements while the mouse button is down so the dragging could start.\n */\n _setupDraggableAttributeHandling() {\n const editor = this.editor;\n const view = editor.editing.view;\n const viewDocument = view.document;\n // Add the 'draggable' attribute to the widget while pressing the selection handle.\n // This is required for widgets to be draggable. In Chrome it will enable dragging text nodes.\n this.listenTo(viewDocument, 'mousedown', (evt, data) => {\n // The lack of data can be caused by editor tests firing fake mouse events. This should not occur\n // in real-life scenarios but this greatly simplifies editor tests that would otherwise fail a lot.\n if (env.isAndroid || !data) {\n return;\n }\n this._clearDraggableAttributesDelayed.cancel();\n // Check if this is a mousedown over the widget (but not a nested editable).\n let draggableElement = findDraggableWidget(data.target);\n // Note: There is a limitation that if more than a widget is selected (a widget and some text)\n // and dragging starts on the widget, then only the widget is dragged.\n // If this was not a widget then we should check if we need to drag some text content.\n // In Chrome set a 'draggable' attribute on closest editable to allow immediate dragging of the selected text range.\n // In Firefox this is not needed. In Safari it makes the whole editable draggable (not just textual content).\n // Disabled in read-only mode because draggable=\"true\" + contenteditable=\"false\" results\n // in not firing selectionchange event ever, which makes the selection stuck in read-only mode.\n if (env.isBlink && !draggableElement && !viewDocument.selection.isCollapsed) {\n const selectedElement = viewDocument.selection.getSelectedElement();\n if (!selectedElement || !isWidget(selectedElement)) {\n const editableElement = viewDocument.selection.editableElement;\n if (editableElement && !editableElement.isReadOnly) {\n draggableElement = editableElement;\n }\n }\n }\n if (draggableElement) {\n view.change(writer => {\n writer.setAttribute('draggable', 'true', draggableElement);\n });\n // Keep the reference to the model element in case the view element gets removed while dragging.\n this._draggableElement = editor.editing.mapper.toModelElement(draggableElement);\n }\n });\n // Remove the draggable attribute in case no dragging started (only mousedown + mouseup).\n this.listenTo(viewDocument, 'mouseup', () => {\n if (!env.isAndroid) {\n this._clearDraggableAttributesDelayed();\n }\n });\n }\n /**\n * Removes the `draggable` attribute from the element that was used for dragging.\n */\n _clearDraggableAttributes() {\n const editing = this.editor.editing;\n editing.view.change(writer => {\n // Remove 'draggable' attribute.\n if (this._draggableElement && this._draggableElement.root.rootName != '$graveyard') {\n writer.removeAttribute('draggable', editing.mapper.toViewElement(this._draggableElement));\n }\n this._draggableElement = null;\n });\n }\n /**\n * Creates downcast conversion for the drop target marker.\n */\n _setupDropMarker() {\n const editor = this.editor;\n // Drop marker conversion for hovering over widgets.\n editor.conversion.for('editingDowncast').markerToHighlight({\n model: 'drop-target',\n view: {\n classes: ['ck-clipboard-drop-target-range']\n }\n });\n // Drop marker conversion for in text drop target.\n editor.conversion.for('editingDowncast').markerToElement({\n model: 'drop-target',\n view: (data, { writer }) => {\n const inText = editor.model.schema.checkChild(data.markerRange.start, '$text');\n if (!inText) {\n return;\n }\n return writer.createUIElement('span', { class: 'ck ck-clipboard-drop-target-position' }, function (domDocument) {\n const domElement = this.toDomElement(domDocument);\n // Using word joiner to make this marker as high as text and also making text not break on marker.\n domElement.append('\\u2060', domDocument.createElement('span'), '\\u2060');\n return domElement;\n });\n }\n });\n }\n /**\n * Updates the drop target marker to the provided range.\n *\n * @param targetRange The range to set the marker to.\n */\n _updateDropMarker(targetRange) {\n const editor = this.editor;\n const markers = editor.model.markers;\n editor.model.change(writer => {\n if (markers.has('drop-target')) {\n if (!markers.get('drop-target').getRange().isEqual(targetRange)) {\n writer.updateMarker('drop-target', { range: targetRange });\n }\n }\n else {\n writer.addMarker('drop-target', {\n range: targetRange,\n usingOperation: false,\n affectsData: false\n });\n }\n });\n }\n /**\n * Removes the drop target marker.\n */\n _removeDropMarker() {\n const model = this.editor.model;\n this._removeDropMarkerDelayed.cancel();\n this._updateDropMarkerThrottled.cancel();\n if (model.markers.has('drop-target')) {\n model.change(writer => {\n writer.removeMarker('drop-target');\n });\n }\n }\n /**\n * Deletes the dragged content from its original range and clears the dragging state.\n *\n * @param moved Whether the move succeeded.\n */\n _finalizeDragging(moved) {\n const editor = this.editor;\n const model = editor.model;\n this._removeDropMarker();\n this._clearDraggableAttributes();\n if (editor.plugins.has('WidgetToolbarRepository')) {\n const widgetToolbarRepository = editor.plugins.get('WidgetToolbarRepository');\n widgetToolbarRepository.clearForceDisabled('dragDrop');\n }\n this._draggingUid = '';\n if (!this._draggedRange) {\n return;\n }\n // Delete moved content.\n if (moved && this.isEnabled) {\n model.deleteContent(model.createSelection(this._draggedRange), { doNotAutoparagraph: true });\n }\n this._draggedRange.detach();\n this._draggedRange = null;\n }\n}\n/**\n * Returns fixed selection range for given position and target element.\n */\nfunction findDropTargetRange(editor, targetViewRanges, targetViewElement) {\n const model = editor.model;\n const mapper = editor.editing.mapper;\n let range = null;\n const targetViewPosition = targetViewRanges ? targetViewRanges[0].start : null;\n // A UIElement is not a valid drop element, use parent (this could be a drop marker or any other UIElement).\n if (targetViewElement.is('uiElement')) {\n targetViewElement = targetViewElement.parent;\n }\n // Quick win if the target is a widget (but not a nested editable).\n range = findDropTargetRangeOnWidget(editor, targetViewElement);\n if (range) {\n return range;\n }\n // The easiest part is over, now we need to move to the model space.\n // Find target model element and position.\n const targetModelElement = getClosestMappedModelElement(editor, targetViewElement);\n const targetModelPosition = targetViewPosition ? mapper.toModelPosition(targetViewPosition) : null;\n // There is no target position while hovering over an empty table cell.\n // In Safari, target position can be empty while hovering over a widget (e.g., a page-break).\n // Find the drop position inside the element.\n if (!targetModelPosition) {\n return findDropTargetRangeInElement(editor, targetModelElement);\n }\n // Check if target position is between blocks and adjust drop position to the next object.\n // This is because while hovering over a root element next to a widget the target position can jump in crazy places.\n range = findDropTargetRangeBetweenBlocks(editor, targetModelPosition, targetModelElement);\n if (range) {\n return range;\n }\n // Try fixing selection position.\n // In Firefox, the target position lands before widgets but in other browsers it tends to land after a widget.\n range = model.schema.getNearestSelectionRange(targetModelPosition, env.isGecko ? 'forward' : 'backward');\n if (range) {\n return range;\n }\n // There is no valid selection position inside the current limit element so find a closest object ancestor.\n // This happens if the model position lands directly in the element itself (view target element was a `
    `\n // so a nested editable, but view target position was directly in the `
    ` element).\n return findDropTargetRangeOnAncestorObject(editor, targetModelPosition.parent);\n}\n/**\n * Returns fixed selection range for a given position and a target element if it is over the widget but not over its nested editable.\n */\nfunction findDropTargetRangeOnWidget(editor, targetViewElement) {\n const model = editor.model;\n const mapper = editor.editing.mapper;\n // Quick win if the target is a widget.\n if (isWidget(targetViewElement)) {\n return model.createRangeOn(mapper.toModelElement(targetViewElement));\n }\n // Check if we are deeper over a widget (but not over a nested editable).\n if (!targetViewElement.is('editableElement')) {\n // Find a closest ancestor that is either a widget or an editable element...\n const ancestor = targetViewElement.findAncestor(node => isWidget(node) || node.is('editableElement'));\n // ...and if the widget was closer then it is a drop target.\n if (isWidget(ancestor)) {\n return model.createRangeOn(mapper.toModelElement(ancestor));\n }\n }\n return null;\n}\n/**\n * Returns fixed selection range inside a model element.\n */\nfunction findDropTargetRangeInElement(editor, targetModelElement) {\n const model = editor.model;\n const schema = model.schema;\n const positionAtElementStart = model.createPositionAt(targetModelElement, 0);\n return schema.getNearestSelectionRange(positionAtElementStart, 'forward');\n}\n/**\n * Returns fixed selection range for a given position and a target element if the drop is between blocks.\n */\nfunction findDropTargetRangeBetweenBlocks(editor, targetModelPosition, targetModelElement) {\n const model = editor.model;\n // Check if target is between blocks.\n if (!model.schema.checkChild(targetModelElement, '$block')) {\n return null;\n }\n // Find position between blocks.\n const positionAtElementStart = model.createPositionAt(targetModelElement, 0);\n // Get the common part of the path (inside the target element and the target position).\n const commonPath = targetModelPosition.path.slice(0, positionAtElementStart.path.length);\n // Position between the blocks.\n const betweenBlocksPosition = model.createPositionFromPath(targetModelPosition.root, commonPath);\n const nodeAfter = betweenBlocksPosition.nodeAfter;\n // Adjust drop position to the next object.\n // This is because while hovering over a root element next to a widget the target position can jump in crazy places.\n if (nodeAfter && model.schema.isObject(nodeAfter)) {\n return model.createRangeOn(nodeAfter);\n }\n return null;\n}\n/**\n * Returns a selection range on the ancestor object.\n */\nfunction findDropTargetRangeOnAncestorObject(editor, element) {\n const model = editor.model;\n let currentElement = element;\n while (currentElement) {\n if (model.schema.isObject(currentElement)) {\n return model.createRangeOn(currentElement);\n }\n currentElement = currentElement.parent;\n }\n /* istanbul ignore next -- @preserve */\n return null;\n}\n/**\n * Returns the closest model element for the specified view element.\n */\nfunction getClosestMappedModelElement(editor, element) {\n const mapper = editor.editing.mapper;\n const view = editor.editing.view;\n const targetModelElement = mapper.toModelElement(element);\n if (targetModelElement) {\n return targetModelElement;\n }\n // Find mapped ancestor if the target is inside not mapped element (for example inline code element).\n const viewPosition = view.createPositionBefore(element);\n const viewElement = mapper.findMappedViewAncestor(viewPosition);\n return mapper.toModelElement(viewElement);\n}\n/**\n * Returns the drop effect that should be a result of dragging the content.\n * This function is handling a quirk when checking the effect in the 'drop' DOM event.\n */\nfunction getFinalDropEffect(dataTransfer) {\n if (env.isGecko) {\n return dataTransfer.dropEffect;\n }\n return ['all', 'copyMove'].includes(dataTransfer.effectAllowed) ? 'move' : 'copy';\n}\n/**\n * Returns a widget element that should be dragged.\n */\nfunction findDraggableWidget(target) {\n // This is directly an editable so not a widget for sure.\n if (target.is('editableElement')) {\n return null;\n }\n // TODO: Let's have a isWidgetSelectionHandleDomElement() helper in ckeditor5-widget utils.\n if (target.hasClass('ck-widget__selection-handle')) {\n return target.findAncestor(isWidget);\n }\n // Direct hit on a widget.\n if (isWidget(target)) {\n return target;\n }\n // Find closest ancestor that is either a widget or an editable element...\n const ancestor = target.findAncestor(node => isWidget(node) || node.is('editableElement'));\n // ...and if closer was the widget then enable dragging it.\n if (isWidget(ancestor)) {\n return ancestor;\n }\n return null;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module clipboard/pasteplaintext\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport ClipboardObserver from './clipboardobserver';\nimport ClipboardPipeline from './clipboardpipeline';\n/**\n * The plugin detects the user's intention to paste plain text.\n *\n * For example, it detects the Ctrl/Cmd + Shift + V keystroke.\n */\nexport default class PastePlainText extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'PastePlainText';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ClipboardPipeline];\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const model = editor.model;\n const view = editor.editing.view;\n const viewDocument = view.document;\n const selection = model.document.selection;\n let shiftPressed = false;\n view.addObserver(ClipboardObserver);\n this.listenTo(viewDocument, 'keydown', (evt, data) => {\n shiftPressed = data.shiftKey;\n });\n editor.plugins.get(ClipboardPipeline).on('contentInsertion', (evt, data) => {\n // Plain text can be determined based on the event flag (#7799) or auto-detection (#1006). If detected,\n // preserve selection attributes on pasted items.\n if (!shiftPressed && !isPlainTextFragment(data.content, model.schema)) {\n return;\n }\n model.change(writer => {\n // Formatting attributes should be preserved.\n const textAttributes = Array.from(selection.getAttributes())\n .filter(([key]) => model.schema.getAttributeProperties(key).isFormatting);\n if (!selection.isCollapsed) {\n model.deleteContent(selection, { doNotAutoparagraph: true });\n }\n // Also preserve other attributes if they survived the content deletion (because they were not fully selected).\n // For example linkHref is not a formatting attribute but it should be preserved if pasted text was in the middle\n // of a link.\n textAttributes.push(...selection.getAttributes());\n const range = writer.createRangeIn(data.content);\n for (const item of range.getItems()) {\n if (item.is('$textProxy')) {\n writer.setAttributes(textAttributes, item);\n }\n }\n });\n });\n }\n}\n/**\n * Returns true if specified `documentFragment` represents a plain text.\n */\nfunction isPlainTextFragment(documentFragment, schema) {\n if (documentFragment.childCount > 1) {\n return false;\n }\n const child = documentFragment.getChild(0);\n if (schema.isObject(child)) {\n return false;\n }\n return Array.from(child.getAttributeKeys()).length == 0;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module clipboard/clipboard\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport ClipboardPipeline from './clipboardpipeline';\nimport DragDrop from './dragdrop';\nimport PastePlainText from './pasteplaintext';\n/**\n * The clipboard feature.\n *\n * Read more about the clipboard integration in the {@glink framework/deep-dive/clipboard clipboard deep-dive} guide.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n * * {@link module:clipboard/clipboardpipeline~ClipboardPipeline}\n * * {@link module:clipboard/dragdrop~DragDrop}\n * * {@link module:clipboard/pasteplaintext~PastePlainText}\n */\nexport default class Clipboard extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'Clipboard';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ClipboardPipeline, DragDrop, PastePlainText];\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module clipboard/lineview\n */\n/* istanbul ignore file -- @preserve */\nimport { View } from '@ckeditor/ckeditor5-ui';\nimport { toUnit } from '@ckeditor/ckeditor5-utils';\nconst toPx = toUnit('px');\n/**\n * The horizontal drop target line view.\n */\nexport default class LineView extends View {\n /**\n * @inheritDoc\n */\n constructor() {\n super();\n const bind = this.bindTemplate;\n this.set({\n isVisible: false,\n left: null,\n top: null,\n width: null\n });\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-clipboard-drop-target-line',\n bind.if('isVisible', 'ck-hidden', value => !value)\n ],\n style: {\n left: bind.to('left', left => toPx(left)),\n top: bind.to('top', top => toPx(top)),\n width: bind.to('width', width => toPx(width))\n }\n }\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module select-all/selectallcommand\n */\nimport { Command } from '@ckeditor/ckeditor5-core';\n/**\n * The select all command.\n *\n * It is used by the {@link module:select-all/selectallediting~SelectAllEditing select all editing feature} to handle\n * the Ctrl/⌘+A keystroke.\n *\n * Executing this command changes the {@glink framework/architecture/editing-engine#model model}\n * selection so it contains the entire content of the editable root of the editor the selection is\n * {@link module:engine/model/selection~Selection#anchor anchored} in.\n *\n * If the selection was anchored in a {@glink tutorials/widgets/implementing-a-block-widget nested editable}\n * (e.g. a caption of an image), the new selection will contain its entire content. Successive executions of this command\n * will expand the selection to encompass more and more content up to the entire editable root of the editor.\n */\nexport default class SelectAllCommand extends Command {\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n // It does not affect data so should be enabled in read-only mode.\n this.affectsData = false;\n }\n /**\n * @inheritDoc\n */\n execute() {\n const model = this.editor.model;\n const selection = model.document.selection;\n let scopeElement = model.schema.getLimitElement(selection);\n // If an entire scope is selected, or the selection's ancestor is not a scope yet,\n // browse through ancestors to find the enclosing parent scope.\n if (selection.containsEntireContent(scopeElement) || !isSelectAllScope(model.schema, scopeElement)) {\n do {\n scopeElement = scopeElement.parent;\n // Do nothing, if the entire `root` is already selected.\n if (!scopeElement) {\n return;\n }\n } while (!isSelectAllScope(model.schema, scopeElement));\n }\n model.change(writer => {\n writer.setSelection(scopeElement, 'in');\n });\n }\n}\n/**\n * Checks whether the element is a valid select-all scope. Returns true, if the element is a\n * {@link module:engine/model/schema~Schema#isLimit limit}, and can contain any text or paragraph.\n *\n * @param schema Schema to check against.\n * @param element Model element.\n */\nfunction isSelectAllScope(schema, element) {\n return schema.isLimit(element) && (schema.checkChild(element, '$text') || schema.checkChild(element, 'paragraph'));\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module select-all/selectallediting\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { getCode, parseKeystroke } from '@ckeditor/ckeditor5-utils';\nimport SelectAllCommand from './selectallcommand';\nconst SELECT_ALL_KEYSTROKE = parseKeystroke('Ctrl+A');\n/**\n * The select all editing feature.\n *\n * It registers the `'selectAll'` {@link module:select-all/selectallcommand~SelectAllCommand command}\n * and the Ctrl/⌘+A keystroke listener which executes it.\n */\nexport default class SelectAllEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'SelectAllEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const view = editor.editing.view;\n const viewDocument = view.document;\n editor.commands.add('selectAll', new SelectAllCommand(editor));\n this.listenTo(viewDocument, 'keydown', (eventInfo, domEventData) => {\n if (getCode(domEventData) === SELECT_ALL_KEYSTROKE) {\n editor.execute('selectAll');\n domEventData.preventDefault();\n }\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module select-all/selectallui\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { ButtonView } from '@ckeditor/ckeditor5-ui';\nimport selectAllIcon from '../theme/icons/select-all.svg';\n/**\n * The select all UI feature.\n *\n * It registers the `'selectAll'` UI button in the editor's\n * {@link module:ui/componentfactory~ComponentFactory component factory}. When clicked, the button\n * executes the {@link module:select-all/selectallcommand~SelectAllCommand select all command}.\n */\nexport default class SelectAllUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'SelectAllUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n editor.ui.componentFactory.add('selectAll', locale => {\n const command = editor.commands.get('selectAll');\n const view = new ButtonView(locale);\n const t = locale.t;\n view.set({\n label: t('Select all'),\n icon: selectAllIcon,\n keystroke: 'Ctrl+A',\n tooltip: true\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n // Execute the command.\n this.listenTo(view, 'execute', () => {\n editor.execute('selectAll');\n editor.editing.view.focus();\n });\n return view;\n });\n }\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module select-all/selectall\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport SelectAllEditing from './selectallediting';\nimport SelectAllUI from './selectallui';\n/**\n * The select all feature.\n *\n * This is a \"glue\" plugin which loads the {@link module:select-all/selectallediting~SelectAllEditing select all editing feature}\n * and the {@link module:select-all/selectallui~SelectAllUI select all UI feature}.\n *\n * Please refer to the documentation of individual features to learn more.\n */\nexport default class SelectAll extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [SelectAllEditing, SelectAllUI];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'SelectAll';\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module undo/basecommand\n */\nimport { Command } from '@ckeditor/ckeditor5-core';\nimport { transformSets, NoOperation } from '@ckeditor/ckeditor5-engine';\n/**\n * Base class for the undo feature commands: {@link module:undo/undocommand~UndoCommand} and {@link module:undo/redocommand~RedoCommand}.\n */\nexport default class BaseCommand extends Command {\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n /**\n * Stack of items stored by the command. These are pairs of:\n *\n * * {@link module:engine/model/batch~Batch batch} saved by the command,\n * * {@link module:engine/model/selection~Selection selection} state at the moment of saving the batch.\n */\n this._stack = [];\n /**\n * Stores all batches that were created by this command.\n *\n * @internal\n */\n this._createdBatches = new WeakSet();\n // Refresh state, so the command is inactive right after initialization.\n this.refresh();\n // This command should not depend on selection change.\n this._isEnabledBasedOnSelection = false;\n // Set the transparent batch for the `editor.data.set()` call if the\n // batch type is not set already.\n this.listenTo(editor.data, 'set', (evt, data) => {\n // Create a shallow copy of the options to not change the original args.\n // And make sure that an object is assigned to data[ 1 ].\n data[1] = { ...data[1] };\n const options = data[1];\n // If batch type is not set, default to non-undoable batch.\n if (!options.batchType) {\n options.batchType = { isUndoable: false };\n }\n }, { priority: 'high' });\n // Clear the stack for the `transparent` batches.\n this.listenTo(editor.data, 'set', (evt, data) => {\n // We can assume that the object exists and it has a `batchType` property.\n // It was ensured with a higher priority listener before.\n const options = data[1];\n if (!options.batchType.isUndoable) {\n this.clearStack();\n }\n });\n }\n /**\n * @inheritDoc\n */\n refresh() {\n this.isEnabled = this._stack.length > 0;\n }\n /**\n * Returns all batches created by this command.\n */\n get createdBatches() {\n return this._createdBatches;\n }\n /**\n * Stores a batch in the command, together with the selection state of the {@link module:engine/model/document~Document document}\n * created by the editor which this command is registered to.\n *\n * @param batch The batch to add.\n */\n addBatch(batch) {\n const docSelection = this.editor.model.document.selection;\n const selection = {\n ranges: docSelection.hasOwnRange ? Array.from(docSelection.getRanges()) : [],\n isBackward: docSelection.isBackward\n };\n this._stack.push({ batch, selection });\n this.refresh();\n }\n /**\n * Removes all items from the stack.\n */\n clearStack() {\n this._stack = [];\n this.refresh();\n }\n /**\n * Restores the {@link module:engine/model/document~Document#selection document selection} state after a batch was undone.\n *\n * @param ranges Ranges to be restored.\n * @param isBackward A flag describing whether the restored range was selected forward or backward.\n * @param operations Operations which has been applied since selection has been stored.\n */\n _restoreSelection(ranges, isBackward, operations) {\n const model = this.editor.model;\n const document = model.document;\n // This will keep the transformed selection ranges.\n const selectionRanges = [];\n // Transform all ranges from the restored selection.\n const transformedRangeGroups = ranges.map(range => range.getTransformedByOperations(operations));\n const allRanges = transformedRangeGroups.flat();\n for (const rangeGroup of transformedRangeGroups) {\n // While transforming there could appear ranges that are contained by other ranges, we shall ignore them.\n const transformed = rangeGroup\n .filter(range => range.root != document.graveyard)\n .filter(range => !isRangeContainedByAnyOtherRange(range, allRanges));\n // All the transformed ranges ended up in graveyard.\n if (!transformed.length) {\n continue;\n }\n // After the range got transformed, we have an array of ranges. Some of those\n // ranges may be \"touching\" -- they can be next to each other and could be merged.\n normalizeRanges(transformed);\n // For each `range` from `ranges`, we take only one transformed range.\n // This is because we want to prevent situation where single-range selection\n // got transformed to multi-range selection.\n selectionRanges.push(transformed[0]);\n }\n // @if CK_DEBUG_ENGINE // console.log( `Restored selection by undo: ${ selectionRanges.join( ', ' ) }` );\n // `selectionRanges` may be empty if all ranges ended up in graveyard. If that is the case, do not restore selection.\n if (selectionRanges.length) {\n model.change(writer => {\n writer.setSelection(selectionRanges, { backward: isBackward });\n });\n }\n }\n /**\n * Undoes a batch by reversing that batch, transforming reversed batch and finally applying it.\n * This is a helper method for {@link #execute}.\n *\n * @param batchToUndo The batch to be undone.\n * @param undoingBatch The batch that will contain undoing changes.\n */\n _undo(batchToUndo, undoingBatch) {\n const model = this.editor.model;\n const document = model.document;\n // All changes done by the command execution will be saved as one batch.\n this._createdBatches.add(undoingBatch);\n const operationsToUndo = batchToUndo.operations.slice().filter(operation => operation.isDocumentOperation);\n operationsToUndo.reverse();\n // We will process each operation from `batchToUndo`, in reverse order. If there were operations A, B and C in undone batch,\n // we need to revert them in reverse order, so first C' (reversed C), then B', then A'.\n for (const operationToUndo of operationsToUndo) {\n const nextBaseVersion = operationToUndo.baseVersion + 1;\n const historyOperations = Array.from(document.history.getOperations(nextBaseVersion));\n const transformedSets = transformSets([operationToUndo.getReversed()], historyOperations, {\n useRelations: true,\n document: this.editor.model.document,\n padWithNoOps: false,\n forceWeakRemove: true\n });\n const reversedOperations = transformedSets.operationsA;\n // After reversed operation has been transformed by all history operations, apply it.\n for (let operation of reversedOperations) {\n // Do not apply any operation on non-editable space.\n const affectedSelectable = operation.affectedSelectable;\n if (affectedSelectable && !model.canEditAt(affectedSelectable)) {\n operation = new NoOperation(operation.baseVersion);\n }\n // Before applying, add the operation to the `undoingBatch`.\n undoingBatch.addOperation(operation);\n model.applyOperation(operation);\n document.history.setOperationAsUndone(operationToUndo, operation);\n }\n }\n }\n}\n/**\n * Normalizes list of ranges by joining intersecting or \"touching\" ranges.\n *\n * @param ranges Ranges to be normalized.\n */\nfunction normalizeRanges(ranges) {\n ranges.sort((a, b) => a.start.isBefore(b.start) ? -1 : 1);\n for (let i = 1; i < ranges.length; i++) {\n const previousRange = ranges[i - 1];\n const joinedRange = previousRange.getJoined(ranges[i], true);\n if (joinedRange) {\n // Replace the ranges on the list with the new joined range.\n i--;\n ranges.splice(i, 2, joinedRange);\n }\n }\n}\nfunction isRangeContainedByAnyOtherRange(range, ranges) {\n return ranges.some(otherRange => otherRange !== range && otherRange.containsRange(range, true));\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module undo/undocommand\n */\nimport BaseCommand from './basecommand';\n/**\n * The undo command stores {@link module:engine/model/batch~Batch batches} applied to the\n * {@link module:engine/model/document~Document document} and is able to undo a batch by reversing it and transforming by\n * batches from {@link module:engine/model/document~Document#history history} that happened after the reversed batch.\n *\n * The undo command also takes care of restoring the {@link module:engine/model/document~Document#selection document selection}.\n */\nexport default class UndoCommand extends BaseCommand {\n /**\n * Executes the command. This method reverts a {@link module:engine/model/batch~Batch batch} added to the command's stack, transforms\n * and applies the reverted version on the {@link module:engine/model/document~Document document} and removes the batch from the stack.\n * Then, it restores the {@link module:engine/model/document~Document#selection document selection}.\n *\n * @fires execute\n * @fires revert\n * @param batch A batch that should be undone. If not set, the last added batch will be undone.\n */\n execute(batch = null) {\n // If batch is not given, set `batchIndex` to the last index in command stack.\n const batchIndex = batch ? this._stack.findIndex(a => a.batch == batch) : this._stack.length - 1;\n const item = this._stack.splice(batchIndex, 1)[0];\n const undoingBatch = this.editor.model.createBatch({ isUndo: true });\n // All changes have to be done in one `enqueueChange` callback so other listeners will not\n // step between consecutive operations, or won't do changes to the document before selection is properly restored.\n this.editor.model.enqueueChange(undoingBatch, () => {\n this._undo(item.batch, undoingBatch);\n const operations = this.editor.model.document.history.getOperations(item.batch.baseVersion);\n this._restoreSelection(item.selection.ranges, item.selection.isBackward, operations);\n });\n // Firing `revert` event after the change block to make sure that it includes all changes from post-fixers\n // and make sure that the selection is \"stabilized\" (the selection range is saved after undo is executed and then\n // restored on redo, so it is important that the selection range is saved after post-fixers are done).\n this.fire('revert', item.batch, undoingBatch);\n this.refresh();\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module undo/redocommand\n */\nimport BaseCommand from './basecommand';\n/**\n * The redo command stores {@link module:engine/model/batch~Batch batches} that were used to undo a batch by\n * {@link module:undo/undocommand~UndoCommand}. It is able to redo a previously undone batch by reversing the undoing\n * batches created by `UndoCommand`. The reversed batch is transformed by all the batches from\n * {@link module:engine/model/document~Document#history history} that happened after the reversed undo batch.\n *\n * The redo command also takes care of restoring the {@link module:engine/model/document~Document#selection document selection}.\n */\nexport default class RedoCommand extends BaseCommand {\n /**\n * Executes the command. This method reverts the last {@link module:engine/model/batch~Batch batch} added to\n * the command's stack, applies the reverted and transformed version on the\n * {@link module:engine/model/document~Document document} and removes the batch from the stack.\n * Then, it restores the {@link module:engine/model/document~Document#selection document selection}.\n *\n * @fires execute\n */\n execute() {\n const item = this._stack.pop();\n const redoingBatch = this.editor.model.createBatch({ isUndo: true });\n // All changes have to be done in one `enqueueChange` callback so other listeners will not step between consecutive\n // operations, or won't do changes to the document before selection is properly restored.\n this.editor.model.enqueueChange(redoingBatch, () => {\n const lastOperation = item.batch.operations[item.batch.operations.length - 1];\n const nextBaseVersion = lastOperation.baseVersion + 1;\n const operations = this.editor.model.document.history.getOperations(nextBaseVersion);\n this._restoreSelection(item.selection.ranges, item.selection.isBackward, operations);\n this._undo(item.batch, redoingBatch);\n });\n this.refresh();\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module undo/undoediting\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport UndoCommand from './undocommand';\nimport RedoCommand from './redocommand';\n/**\n * The undo engine feature.\n *\n * It introduces the `'undo'` and `'redo'` commands to the editor.\n */\nexport default class UndoEditing extends Plugin {\n constructor() {\n super(...arguments);\n /**\n * Keeps track of which batches were registered in undo.\n */\n this._batchRegistry = new WeakSet();\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'UndoEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Create commands.\n this._undoCommand = new UndoCommand(editor);\n this._redoCommand = new RedoCommand(editor);\n // Register command to the editor.\n editor.commands.add('undo', this._undoCommand);\n editor.commands.add('redo', this._redoCommand);\n this.listenTo(editor.model, 'applyOperation', (evt, args) => {\n const operation = args[0];\n // Do not register batch if the operation is not a document operation.\n // This prevents from creating empty undo steps, where all operations where non-document operations.\n // Non-document operations creates and alters content in detached tree fragments (for example, document fragments).\n // Most of time this is preparing data before it is inserted into actual tree (for example during copy & paste).\n // Such operations should not be reversed.\n if (!operation.isDocumentOperation) {\n return;\n }\n const batch = operation.batch;\n const isRedoBatch = this._redoCommand.createdBatches.has(batch);\n const isUndoBatch = this._undoCommand.createdBatches.has(batch);\n const wasProcessed = this._batchRegistry.has(batch);\n // Skip the batch if it was already processed.\n if (wasProcessed) {\n return;\n }\n // Add the batch to the registry so it will not be processed again.\n this._batchRegistry.add(batch);\n if (!batch.isUndoable) {\n return;\n }\n if (isRedoBatch) {\n // If this batch comes from `redoCommand`, add it to the `undoCommand` stack.\n this._undoCommand.addBatch(batch);\n }\n else if (!isUndoBatch) {\n // If the batch comes neither from `redoCommand` nor from `undoCommand` then it is a new, regular batch.\n // Add the batch to the `undoCommand` stack and clear the `redoCommand` stack.\n this._undoCommand.addBatch(batch);\n this._redoCommand.clearStack();\n }\n }, { priority: 'highest' });\n this.listenTo(this._undoCommand, 'revert', (evt, undoneBatch, undoingBatch) => {\n this._redoCommand.addBatch(undoingBatch);\n });\n editor.keystrokes.set('CTRL+Z', 'undo');\n editor.keystrokes.set('CTRL+Y', 'redo');\n editor.keystrokes.set('CTRL+SHIFT+Z', 'redo');\n }\n}\n","export default \"\";","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module undo/undoui\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { ButtonView } from '@ckeditor/ckeditor5-ui';\nimport undoIcon from '../theme/icons/undo.svg';\nimport redoIcon from '../theme/icons/redo.svg';\n/**\n * The undo UI feature. It introduces the `'undo'` and `'redo'` buttons to the editor.\n */\nexport default class UndoUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'UndoUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const locale = editor.locale;\n const t = editor.t;\n const localizedUndoIcon = locale.uiLanguageDirection == 'ltr' ? undoIcon : redoIcon;\n const localizedRedoIcon = locale.uiLanguageDirection == 'ltr' ? redoIcon : undoIcon;\n this._addButton('undo', t('Undo'), 'CTRL+Z', localizedUndoIcon);\n this._addButton('redo', t('Redo'), 'CTRL+Y', localizedRedoIcon);\n }\n /**\n * Creates a button for the specified command.\n *\n * @param name Command name.\n * @param label Button label.\n * @param keystroke Command keystroke.\n * @param Icon Source of the icon.\n */\n _addButton(name, label, keystroke, Icon) {\n const editor = this.editor;\n editor.ui.componentFactory.add(name, locale => {\n const command = editor.commands.get(name);\n const view = new ButtonView(locale);\n view.set({\n label,\n icon: Icon,\n keystroke,\n tooltip: true\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n this.listenTo(view, 'execute', () => {\n editor.execute(name);\n editor.editing.view.focus();\n });\n return view;\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module undo/undo\n */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport UndoEditing from './undoediting';\nimport UndoUI from './undoui';\n/**\n * The undo feature.\n *\n * This is a \"glue\" plugin which loads the {@link module:undo/undoediting~UndoEditing undo editing feature}\n * and the {@link module:undo/undoui~UndoUI undo UI feature}.\n *\n * Below is an explanation of the undo mechanism working together with {@link module:engine/model/history~History History}:\n *\n * Whenever an {@link module:engine/model/operation/operation~Operation operation} is applied to the\n * {@link module:engine/model/document~Document document}, it is saved to `History` as is.\n * The {@link module:engine/model/batch~Batch batch} that owns that operation is also saved, in\n * {@link module:undo/undocommand~UndoCommand}, together with the selection that was present in the document before the\n * operation was applied. A batch is saved instead of the operation because changes are undone batch-by-batch, not operation-by-operation\n * and a batch is seen as one undo step.\n *\n * After changes happen to the document, the `History` and `UndoCommand` stack can be represented as follows:\n *\n * ```\n * History Undo stack\n * ============== ==================================\n * [operation A1] [ batch A ]\n * [operation B1] [ batch B ]\n * [operation B2] [ batch C ]\n * [operation C1]\n * [operation C2]\n * [operation B3]\n * [operation C3]\n * ```\n *\n * Where operations starting with the same letter are from same batch.\n *\n * Undoing a batch means that a set of operations which will reverse the effects of that batch needs to be generated.\n * For example, if a batch added several letters, undoing the batch should remove them. It is important to apply undoing\n * operations in the reversed order, so if a batch has operation `X`, `Y`, `Z`, reversed operations `Zr`, `Yr` and `Xr`\n * need to be applied. Otherwise reversed operation `Xr` would operate on a wrong document state, because operation `X`\n * does not know that operations `Y` and `Z` happened.\n *\n * After operations from an undone batch got {@link module:engine/model/operation/operation~Operation#getReversed reversed},\n * one needs to make sure if they are ready to be applied. In the scenario above, operation `C3` is the last operation and `C3r`\n * bases on up-to-date document state, so it can be applied to the document.\n *\n * ```\n * History Undo stack\n * ================= ==================================\n * [ operation A1 ] [ batch A ]\n * [ operation B1 ] [ batch B ]\n * [ operation B2 ] [ processing undoing batch C ]\n * [ operation C1 ]\n * [ operation C2 ]\n * [ operation B3 ]\n * [ operation C3 ]\n * [ operation C3r ]\n * ```\n *\n * Next is operation `C2`, reversed to `C2r`. `C2r` bases on `C2`, so it bases on the wrong document state. It needs to be\n * transformed by operations from history that happened after it, so it \"knows\" about them. Let us assume that `C2' = C2r * B3 * C3 * C3r`,\n * where `*` means \"transformed by\". Rest of operations from that batch are processed in the same fashion.\n *\n * ```\n * History Undo stack Redo stack\n * ================= ================================== ==================================\n * [ operation A1 ] [ batch A ] [ batch Cr ]\n * [ operation B1 ] [ batch B ]\n * [ operation B2 ]\n * [ operation C1 ]\n * [ operation C2 ]\n * [ operation B3 ]\n * [ operation C3 ]\n * [ operation C3r ]\n * [ operation C2' ]\n * [ operation C1' ]\n * ```\n *\n * Selective undo works on the same basis, however, instead of undoing the last batch in the undo stack, any batch can be undone.\n * The same algorithm applies: operations from a batch (i.e. `A1`) are reversed and then transformed by operations stored in history.\n *\n * Redo also is very similar to undo. It has its own stack that is filled with undoing (reversed batches). Operations from\n * the batch that is re-done are reversed-back, transformed in proper order and applied to the document.\n *\n * ```\n * History Undo stack Redo stack\n * ================= ================================== ==================================\n * [ operation A1 ] [ batch A ]\n * [ operation B1 ] [ batch B ]\n * [ operation B2 ] [ batch Crr ]\n * [ operation C1 ]\n * [ operation C2 ]\n * [ operation B3 ]\n * [ operation C3 ]\n * [ operation C3r ]\n * [ operation C2' ]\n * [ operation C1' ]\n * [ operation C1'r]\n * [ operation C2'r]\n * [ operation C3rr]\n * ```\n */\nexport default class Undo extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [UndoEditing, UndoUI];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'Undo';\n }\n}\n","import api from \"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../css-loader/dist/cjs.js!../../../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./responsiveform.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./findandreplaceform.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module find-and-replace/ui/findandreplaceformview\n */\nimport { View, ButtonView, FormHeaderView, LabeledFieldView, Model, FocusCycler, createLabeledInputText, submitHandler, ViewCollection, createDropdown, addListToDropdown } from 'ckeditor5/src/ui';\nimport { FocusTracker, KeystrokeHandler, Collection, Rect, isVisible } from 'ckeditor5/src/utils';\n// See: #8833.\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\nimport '../../theme/findandreplaceform.css';\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport previousArrow from '@ckeditor/ckeditor5-ui/theme/icons/previous-arrow.svg';\nimport { icons } from 'ckeditor5/src/core';\n/**\n * The find and replace form view class.\n *\n * See {@link module:find-and-replace/ui/findandreplaceformview~FindAndReplaceFormView}.\n */\nexport default class FindAndReplaceFormView extends View {\n /**\n * Creates a view of find and replace form.\n *\n * @param locale The localization services instance.\n */\n constructor(locale) {\n super(locale);\n const t = locale.t;\n this.set('matchCount', 0);\n this.set('highlightOffset', 0);\n this.set('isDirty', false);\n this.set('_areCommandsEnabled', {});\n this.set('_resultsCounterText', '');\n this.set('_matchCase', false);\n this.set('_wholeWordsOnly', false);\n this.bind('_searchResultsFound').to(this, 'matchCount', this, 'isDirty', (matchCount, isDirty) => {\n return matchCount > 0 && !isDirty;\n });\n this._findInputView = this._createInputField(t('Find in text…'));\n this._replaceInputView = this._createInputField(t('Replace with…'));\n this._findButtonView = this._createButton({\n label: t('Find'),\n class: 'ck-button-find ck-button-action',\n withText: true\n });\n this._findPrevButtonView = this._createButton({\n label: t('Previous result'),\n class: 'ck-button-prev',\n icon: previousArrow,\n keystroke: 'Shift+F3',\n tooltip: true\n });\n this._findNextButtonView = this._createButton({\n label: t('Next result'),\n class: 'ck-button-next',\n icon: previousArrow,\n keystroke: 'F3',\n tooltip: true\n });\n this._optionsDropdown = this._createOptionsDropdown();\n this._replaceButtonView = this._createButton({\n label: t('Replace'),\n class: 'ck-button-replace',\n withText: true\n });\n this._replaceAllButtonView = this._createButton({\n label: t('Replace all'),\n class: 'ck-button-replaceall',\n withText: true\n });\n this._findFieldsetView = this._createFindFieldset();\n this._replaceFieldsetView = this._createReplaceFieldset();\n this._focusTracker = new FocusTracker();\n this._keystrokes = new KeystrokeHandler();\n this._focusables = new ViewCollection();\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this._focusTracker,\n keystrokeHandler: this._keystrokes,\n actions: {\n // Navigate form fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate form fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n this.setTemplate({\n tag: 'form',\n attributes: {\n class: [\n 'ck',\n 'ck-find-and-replace-form'\n ],\n tabindex: '-1'\n },\n children: [\n new FormHeaderView(locale, {\n label: t('Find and replace')\n }),\n this._findFieldsetView,\n this._replaceFieldsetView\n ]\n });\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n submitHandler({ view: this });\n this._initFocusCycling();\n this._initKeystrokeHandling();\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n this._focusTracker.destroy();\n this._keystrokes.destroy();\n }\n /**\n * Focuses the fist {@link #_focusables} in the form.\n */\n focus() {\n this._focusCycler.focusFirst();\n }\n /**\n * Resets the form before re-appearing.\n *\n * It clears error messages, hides the match counter and disables the replace feature\n * until the next hit of the \"Find\" button.\n *\n * **Note**: It does not reset inputs and options, though. This way the form works better in editors with\n * disappearing toolbar (e.g. BalloonEditor): hiding the toolbar by accident (together with the find and replace UI)\n * does not require filling the entire form again.\n */\n reset() {\n this._findInputView.errorText = null;\n this.isDirty = true;\n }\n /**\n * Returns the value of the find input.\n */\n get _textToFind() {\n return this._findInputView.fieldView.element.value;\n }\n /**\n * Returns the value of the replace input.\n */\n get _textToReplace() {\n return this._replaceInputView.fieldView.element.value;\n }\n /**\n * Configures and returns the `
    ` aggregating all find controls.\n */\n _createFindFieldset() {\n const locale = this.locale;\n const fieldsetView = new View(locale);\n // Typing in the find field invalidates all previous results (the form is \"dirty\").\n this._findInputView.fieldView.on('input', () => {\n this.isDirty = true;\n });\n this._findButtonView.on('execute', this._onFindButtonExecute.bind(this));\n // Pressing prev/next buttons fires related event on the form.\n this._findPrevButtonView.delegate('execute').to(this, 'findPrevious');\n this._findNextButtonView.delegate('execute').to(this, 'findNext');\n // Prev/next buttons will be disabled when related editor command gets disabled.\n this._findPrevButtonView.bind('isEnabled').to(this, '_areCommandsEnabled', ({ findPrevious }) => findPrevious);\n this._findNextButtonView.bind('isEnabled').to(this, '_areCommandsEnabled', ({ findNext }) => findNext);\n this._injectFindResultsCounter();\n fieldsetView.setTemplate({\n tag: 'fieldset',\n attributes: {\n class: ['ck', 'ck-find-and-replace-form__find']\n },\n children: [\n this._findInputView,\n this._findButtonView,\n this._findPrevButtonView,\n this._findNextButtonView\n ]\n });\n return fieldsetView;\n }\n /**\n * The action performed when the {@link #_findButtonView} is pressed.\n */\n _onFindButtonExecute() {\n // When hitting \"Find\" in an empty input, an error should be displayed.\n // Also, if the form was \"dirty\", it should remain so.\n if (!this._textToFind) {\n const t = this.t;\n this._findInputView.errorText = t('Text to find must not be empty.');\n return;\n }\n // Hitting \"Find\" automatically clears the dirty state.\n this.isDirty = false;\n this.fire('findNext', {\n searchText: this._textToFind,\n matchCase: this._matchCase,\n wholeWords: this._wholeWordsOnly\n });\n }\n /**\n * Configures an injects the find results counter displaying a \"N of M\" label of the {@link #_findInputView}.\n */\n _injectFindResultsCounter() {\n const locale = this.locale;\n const t = locale.t;\n const bind = this.bindTemplate;\n const resultsCounterView = new View(this.locale);\n this.bind('_resultsCounterText').to(this, 'highlightOffset', this, 'matchCount', (highlightOffset, matchCount) => t('%0 of %1', [highlightOffset, matchCount]));\n resultsCounterView.setTemplate({\n tag: 'span',\n attributes: {\n class: [\n 'ck',\n 'ck-results-counter',\n // The counter only makes sense when the field text corresponds to search results in the editing.\n bind.if('isDirty', 'ck-hidden')\n ]\n },\n children: [\n {\n text: bind.to('_resultsCounterText')\n }\n ]\n });\n // The whole idea is that when the text of the counter changes, its width also increases/decreases and\n // it consumes more or less space over the input. The input, on the other hand, should adjust it's right\n // padding so its *entire* text always remains visible and available to the user.\n const updateFindInputPadding = () => {\n const inputElement = this._findInputView.fieldView.element;\n // Don't adjust the padding if the input (also: counter) were not rendered or not inserted into DOM yet.\n if (!inputElement || !isVisible(inputElement)) {\n return;\n }\n const counterWidth = new Rect(resultsCounterView.element).width;\n const paddingPropertyName = locale.uiLanguageDirection === 'ltr' ? 'paddingRight' : 'paddingLeft';\n if (!counterWidth) {\n inputElement.style[paddingPropertyName] = '';\n }\n else {\n inputElement.style[paddingPropertyName] = `calc( 2 * var(--ck-spacing-standard) + ${counterWidth}px )`;\n }\n };\n // Adjust the input padding when the text of the counter changes, for instance \"1 of 200\" is narrower than \"123 of 200\".\n // Using \"low\" priority to let the text be set by the template binding first.\n this.on('change:_resultsCounterText', updateFindInputPadding, { priority: 'low' });\n // Adjust the input padding when the counter shows or hides. When hidden, there should be no padding. When it shows, the\n // padding should be set according to the text of the counter.\n // Using \"low\" priority to let the text be set by the template binding first.\n this.on('change:isDirty', updateFindInputPadding, { priority: 'low' });\n // Put the counter element next to the in the find field.\n this._findInputView.template.children[0].children.push(resultsCounterView);\n }\n /**\n * Configures and returns the `
    ` aggregating all replace controls.\n */\n _createReplaceFieldset() {\n const locale = this.locale;\n const t = locale.t;\n const fieldsetView = new View(this.locale);\n this._replaceButtonView.bind('isEnabled').to(this, '_areCommandsEnabled', this, '_searchResultsFound', ({ replace }, resultsFound) => replace && resultsFound);\n this._replaceAllButtonView.bind('isEnabled').to(this, '_areCommandsEnabled', this, '_searchResultsFound', ({ replaceAll }, resultsFound) => replaceAll && resultsFound);\n this._replaceInputView.bind('isEnabled').to(this, '_areCommandsEnabled', this, '_searchResultsFound', ({ replace }, resultsFound) => replace && resultsFound);\n this._replaceInputView.bind('infoText').to(this._replaceInputView, 'isEnabled', this._replaceInputView, 'isFocused', (isEnabled, isFocused) => {\n if (isEnabled || !isFocused) {\n return '';\n }\n return t('Tip: Find some text first in order to replace it.');\n });\n this._replaceButtonView.on('execute', () => {\n this.fire('replace', {\n searchText: this._textToFind,\n replaceText: this._textToReplace\n });\n });\n this._replaceAllButtonView.on('execute', () => {\n this.fire('replaceAll', {\n searchText: this._textToFind,\n replaceText: this._textToReplace\n });\n this.focus();\n });\n fieldsetView.setTemplate({\n tag: 'fieldset',\n attributes: {\n class: ['ck', 'ck-find-and-replace-form__replace']\n },\n children: [\n this._replaceInputView,\n this._optionsDropdown,\n this._replaceButtonView,\n this._replaceAllButtonView\n ]\n });\n return fieldsetView;\n }\n /**\n * Creates, configures and returns and instance of a dropdown allowing users to narrow\n * the search criteria down. The dropdown has a list with switch buttons for each option.\n */\n _createOptionsDropdown() {\n const locale = this.locale;\n const t = locale.t;\n const dropdownView = createDropdown(this.locale);\n dropdownView.class = 'ck-options-dropdown';\n dropdownView.buttonView.set({\n withText: false,\n label: t('Show options'),\n icon: icons.cog,\n tooltip: true\n });\n const matchCaseModel = new Model({\n withText: true,\n label: t('Match case'),\n // A dummy read-only prop to make it easy to tell which switch was toggled.\n _isMatchCaseSwitch: true\n });\n const wholeWordsOnlyModel = new Model({\n withText: true,\n label: t('Whole words only')\n });\n // Let the switches be controlled by form's observable properties.\n matchCaseModel.bind('isOn').to(this, '_matchCase');\n wholeWordsOnlyModel.bind('isOn').to(this, '_wholeWordsOnly');\n // Update the state of the form when a switch is toggled.\n dropdownView.on('execute', evt => {\n if (evt.source._isMatchCaseSwitch) {\n this._matchCase = !this._matchCase;\n }\n else {\n this._wholeWordsOnly = !this._wholeWordsOnly;\n }\n // Toggling a switch makes the form dirty because this changes search criteria\n // just like typing text of the find input.\n this.isDirty = true;\n });\n addListToDropdown(dropdownView, new Collection([\n { type: 'switchbutton', model: matchCaseModel },\n { type: 'switchbutton', model: wholeWordsOnlyModel }\n ]));\n return dropdownView;\n }\n /**\n * Initializes the {@link #_focusables} and {@link #_focusTracker} to allow navigation\n * using Tab and Shift+Tab keystrokes in the right order.\n */\n _initFocusCycling() {\n const childViews = [\n this._findInputView,\n this._findButtonView,\n this._findPrevButtonView,\n this._findNextButtonView,\n this._replaceInputView,\n this._optionsDropdown,\n this._replaceButtonView,\n this._replaceAllButtonView\n ];\n childViews.forEach(v => {\n // Register the view as focusable.\n this._focusables.add(v);\n // Register the view in the focus tracker.\n this._focusTracker.add(v.element);\n });\n }\n /**\n * Initializes the keystroke handling in the form.\n */\n _initKeystrokeHandling() {\n const stopPropagation = (data) => data.stopPropagation();\n const stopPropagationAndPreventDefault = (data) => {\n data.stopPropagation();\n data.preventDefault();\n };\n // Start listening for the keystrokes coming from #element.\n this._keystrokes.listenTo(this.element);\n // Find the next result upon F3.\n this._keystrokes.set('f3', event => {\n stopPropagationAndPreventDefault(event);\n this._findNextButtonView.fire('execute');\n });\n // Find the previous result upon F3.\n this._keystrokes.set('shift+f3', event => {\n stopPropagationAndPreventDefault(event);\n this._findPrevButtonView.fire('execute');\n });\n // Find or replace upon pressing Enter in the find and replace fields.\n this._keystrokes.set('enter', event => {\n const target = event.target;\n if (target === this._findInputView.fieldView.element) {\n if (this._areCommandsEnabled.findNext) {\n this._findNextButtonView.fire('execute');\n }\n else {\n this._findButtonView.fire('execute');\n }\n stopPropagationAndPreventDefault(event);\n }\n else if (target === this._replaceInputView.fieldView.element && !this.isDirty) {\n this._replaceButtonView.fire('execute');\n stopPropagationAndPreventDefault(event);\n }\n });\n // Find previous upon pressing Shift+Enter in the find field.\n this._keystrokes.set('shift+enter', event => {\n const target = event.target;\n if (target !== this._findInputView.fieldView.element) {\n return;\n }\n if (this._areCommandsEnabled.findPrevious) {\n this._findPrevButtonView.fire('execute');\n }\n else {\n this._findButtonView.fire('execute');\n }\n stopPropagationAndPreventDefault(event);\n });\n // Since the form is in the dropdown panel which is a child of the toolbar, the toolbar's\n // keystroke handler would take over the key management in the URL input.\n // We need to prevent this ASAP. Otherwise, the basic caret movement using the arrow keys will be impossible.\n this._keystrokes.set('arrowright', stopPropagation);\n this._keystrokes.set('arrowleft', stopPropagation);\n this._keystrokes.set('arrowup', stopPropagation);\n this._keystrokes.set('arrowdown', stopPropagation);\n }\n /**\n * Creates a button view.\n *\n * @param options The properties of the `ButtonView`.\n * @returns The button view instance.\n */\n _createButton(options) {\n const button = new ButtonView(this.locale);\n button.set(options);\n return button;\n }\n /**\n * Creates a labeled input view.\n *\n * @param label The input label.\n * @returns The labeled input view instance.\n */\n _createInputField(label) {\n const labeledInput = new LabeledFieldView(this.locale, createLabeledInputText);\n labeledInput.label = label;\n return labeledInput;\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module find-and-replace/findandreplaceui\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { createDropdown, CssTransitionDisablerMixin } from 'ckeditor5/src/ui';\nimport FindAndReplaceFormView from './ui/findandreplaceformview';\nimport loupeIcon from '../theme/icons/find-replace.svg';\n/**\n * The default find and replace UI.\n *\n * It registers the `'findAndReplace'` UI button in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}.\n * that uses the {@link module:find-and-replace/findandreplace~FindAndReplace FindAndReplace} plugin API.\n */\nexport default class FindAndReplaceUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'FindAndReplaceUI';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n this.formView = null;\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Register the toolbar dropdown component.\n editor.ui.componentFactory.add('findAndReplace', locale => {\n const dropdown = createDropdown(locale);\n // Dropdown should be disabled when in source editing mode. See #10001.\n const findCommand = editor.commands.get('find');\n dropdown.bind('isEnabled').to(findCommand);\n dropdown.once('change:isOpen', () => {\n this.formView = new (CssTransitionDisablerMixin(FindAndReplaceFormView))(editor.locale);\n dropdown.panelView.children.add(this.formView);\n this._setupFormView(this.formView);\n });\n // Every time a dropdown is opened, the search text field should get focused and selected for better UX.\n // Note: Using the low priority here to make sure the following listener starts working after\n // the default action of the drop-down is executed (i.e. the panel showed up). Otherwise,\n // the invisible form/input cannot be focused/selected.\n //\n // Each time a dropdown is closed, move the focus back to the find and replace toolbar button\n // and let the find and replace editing feature know that all search results can be invalidated\n // and no longer should be marked in the content.\n dropdown.on('change:isOpen', (event, name, isOpen) => {\n if (isOpen) {\n this.formView.disableCssTransitions();\n this.formView.reset();\n this.formView._findInputView.fieldView.select();\n this.formView.enableCssTransitions();\n }\n else {\n this.fire('searchReseted');\n }\n }, { priority: 'low' });\n this._setupDropdownButton(dropdown);\n return dropdown;\n });\n }\n /**\n * Sets up the find and replace button.\n */\n _setupDropdownButton(dropdown) {\n const editor = this.editor;\n const t = editor.locale.t;\n dropdown.buttonView.set({\n icon: loupeIcon,\n label: t('Find and replace'),\n keystroke: 'CTRL+F',\n tooltip: true\n });\n editor.keystrokes.set('Ctrl+F', (data, cancelEvent) => {\n if (dropdown.isEnabled) {\n dropdown.isOpen = true;\n cancelEvent();\n }\n });\n }\n /**\n * Sets up the form view for the find and replace.\n *\n * @param formView A related form view.\n */\n _setupFormView(formView) {\n const editor = this.editor;\n const commands = editor.commands;\n const findAndReplaceEditing = this.editor.plugins.get('FindAndReplaceEditing');\n const editingState = findAndReplaceEditing.state;\n const sortMapping = { before: -1, same: 0, after: 1, different: 1 };\n // Let the form know which result is being highlighted.\n formView.bind('highlightOffset').to(editingState, 'highlightedResult', highlightedResult => {\n if (!highlightedResult) {\n return 0;\n }\n return Array.from(editingState.results)\n .sort((a, b) => sortMapping[a.marker.getStart().compareWith(b.marker.getStart())])\n .indexOf(highlightedResult) + 1;\n });\n // Let the form know how many results were found in total.\n formView.listenTo(editingState.results, 'change', () => {\n formView.matchCount = editingState.results.length;\n });\n // Command states are used to enable/disable individual form controls.\n // To keep things simple, instead of binding 4 individual observables, there's only one that combines every\n // commands' isEnabled state. Yes, it will change more often but this simplifies the structure of the form.\n const findNextCommand = commands.get('findNext');\n const findPreviousCommand = commands.get('findPrevious');\n const replaceCommand = commands.get('replace');\n const replaceAllCommand = commands.get('replaceAll');\n formView.bind('_areCommandsEnabled').to(findNextCommand, 'isEnabled', findPreviousCommand, 'isEnabled', replaceCommand, 'isEnabled', replaceAllCommand, 'isEnabled', (findNext, findPrevious, replace, replaceAll) => ({ findNext, findPrevious, replace, replaceAll }));\n // The UI plugin works as an interface between the form and the editing part of the feature.\n formView.delegate('findNext', 'findPrevious', 'replace', 'replaceAll').to(this);\n // Let the feature know that search results are no longer relevant because the user changed the searched phrase\n // (or options) but didn't hit the \"Find\" button yet (e.g. still typing).\n formView.on('change:isDirty', (evt, data, isDirty) => {\n if (isDirty) {\n this.fire('searchReseted');\n }\n });\n }\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Command } from 'ckeditor5/src/core';\n/**\n * The find command. It is used by the {@link module:find-and-replace/findandreplace~FindAndReplace find and replace feature}.\n */\nexport default class FindCommand extends Command {\n /**\n * Creates a new `FindCommand` instance.\n *\n * @param editor The editor on which this command will be used.\n * @param state An object to hold plugin state.\n */\n constructor(editor, state) {\n super(editor);\n // The find command is always enabled.\n this.isEnabled = true;\n // It does not affect data so should be enabled in read-only mode.\n this.affectsData = false;\n this._state = state;\n }\n /**\n * Executes the command.\n *\n * @param callbackOrText\n * @param options Options object.\n * @param options.matchCase If set to `true`, the letter case will be matched.\n * @param options.wholeWords If set to `true`, only whole words that match `callbackOrText` will be matched.\n *\n * @fires execute\n */\n execute(callbackOrText, { matchCase, wholeWords } = {}) {\n const { editor } = this;\n const { model } = editor;\n const findAndReplaceUtils = editor.plugins.get('FindAndReplaceUtils');\n let findCallback;\n // Allow to execute `find()` on a plugin with a keyword only.\n if (typeof callbackOrText === 'string') {\n findCallback = findAndReplaceUtils.findByTextCallback(callbackOrText, { matchCase, wholeWords });\n this._state.searchText = callbackOrText;\n }\n else {\n findCallback = callbackOrText;\n }\n // Initial search is done on all nodes in all roots inside the content.\n const results = model.document.getRootNames()\n .reduce(((currentResults, rootName) => findAndReplaceUtils.updateFindResultFromRange(model.createRangeIn(model.document.getRoot(rootName)), model, findCallback, currentResults)), null);\n this._state.clear(model);\n this._state.results.addMany(results);\n this._state.highlightedResult = results.get(0);\n if (typeof callbackOrText === 'string') {\n this._state.searchText = callbackOrText;\n }\n this._state.matchCase = !!matchCase;\n this._state.matchWholeWords = !!wholeWords;\n return {\n results,\n findCallback\n };\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module find-and-replace/replacecommandbase\n*/\nimport { Command } from 'ckeditor5/src/core';\nexport class ReplaceCommandBase extends Command {\n /**\n * Creates a new `ReplaceCommand` instance.\n *\n * @param editor Editor on which this command will be used.\n * @param state An object to hold plugin state.\n */\n constructor(editor, state) {\n super(editor);\n // The replace command is always enabled.\n this.isEnabled = true;\n this._state = state;\n // Since this command executes on particular result independent of selection, it should be checked directly in execute block.\n this._isEnabledBasedOnSelection = false;\n }\n /**\n * Common logic for both `replace` commands.\n * Replace a given find result by a string or a callback.\n *\n * @param result A single result from the find command.\n */\n _replace(replacementText, result) {\n const { model } = this.editor;\n const range = result.marker.getRange();\n // Don't replace a result that is in non-editable place.\n if (!model.canEditAt(range)) {\n return;\n }\n model.change(writer => {\n // Don't replace a result (marker) that found its way into the $graveyard (e.g. removed by collaborators).\n if (range.root.rootName === '$graveyard') {\n this._state.results.remove(result);\n return;\n }\n let textAttributes = {};\n for (const item of range.getItems()) {\n if (item.is('$text') || item.is('$textProxy')) {\n textAttributes = item.getAttributes();\n break;\n }\n }\n model.insertContent(writer.createText(replacementText, textAttributes), range);\n if (this._state.results.has(result)) {\n this._state.results.remove(result);\n }\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { ReplaceCommandBase } from './replacecommandbase';\n/**\n * The replace command. It is used by the {@link module:find-and-replace/findandreplace~FindAndReplace find and replace feature}.\n */\nexport default class ReplaceCommand extends ReplaceCommandBase {\n /**\n * Replace a given find result by a string or a callback.\n *\n * @param result A single result from the find command.\n *\n * @fires execute\n */\n execute(replacementText, result) {\n this._replace(replacementText, result);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module find-and-replace/replaceallcommand\n */\nimport { Collection } from 'ckeditor5/src/utils';\nimport { ReplaceCommandBase } from './replacecommandbase';\n/**\n * The replace all command. It is used by the {@link module:find-and-replace/findandreplace~FindAndReplace find and replace feature}.\n */\nexport default class ReplaceAllCommand extends ReplaceCommandBase {\n /**\n * Replaces all the occurrences of `textToReplace` with a given `newText` string.\n *\n * ```ts\n *\treplaceAllCommand.execute( 'replaceAll', 'new text replacement', 'text to replace' );\n * ```\n *\n * Alternatively you can call it from editor instance:\n *\n * ```ts\n *\teditor.execute( 'replaceAll', 'new text', 'old text' );\n * ```\n *\n * @param newText Text that will be inserted to the editor for each match.\n * @param textToReplace Text to be replaced or a collection of matches\n * as returned by the find command.\n *\n * @fires module:core/command~Command#event:execute\n */\n execute(newText, textToReplace) {\n const { editor } = this;\n const { model } = editor;\n const findAndReplaceUtils = editor.plugins.get('FindAndReplaceUtils');\n const results = textToReplace instanceof Collection ?\n textToReplace : model.document.getRootNames()\n .reduce(((currentResults, rootName) => findAndReplaceUtils.updateFindResultFromRange(model.createRangeIn(model.document.getRoot(rootName)), model, findAndReplaceUtils.findByTextCallback(textToReplace, this._state), currentResults)), null);\n if (results.length) {\n // Wrapped in single change will batch it into one transaction.\n model.change(() => {\n [...results].forEach(searchResult => {\n // Just reuse logic from the replace command to replace a single match.\n this._replace(newText, searchResult);\n });\n });\n }\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module find-and-replace/findnextcommand\n*/\nimport { Command } from 'ckeditor5/src/core';\n/**\n * The find next command. Moves the highlight to the next search result.\n *\n * It is used by the {@link module:find-and-replace/findandreplace~FindAndReplace find and replace feature}.\n */\nexport default class FindNextCommand extends Command {\n /**\n * Creates a new `FindNextCommand` instance.\n *\n * @param editor The editor on which this command will be used.\n * @param state An object to hold plugin state.\n */\n constructor(editor, state) {\n super(editor);\n // It does not affect data so should be enabled in read-only mode.\n this.affectsData = false;\n this._state = state;\n this.isEnabled = false;\n this.listenTo(this._state.results, 'change', () => {\n this.isEnabled = this._state.results.length > 1;\n });\n }\n /**\n * @inheritDoc\n */\n refresh() {\n this.isEnabled = this._state.results.length > 1;\n }\n /**\n * @inheritDoc\n */\n execute() {\n const results = this._state.results;\n const currentIndex = results.getIndex(this._state.highlightedResult);\n const nextIndex = currentIndex + 1 >= results.length ?\n 0 : currentIndex + 1;\n this._state.highlightedResult = this._state.results.get(nextIndex);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module find-and-replace/findpreviouscommand\n*/\nimport FindNextCommand from './findnextcommand';\n/**\n * The find previous command. Moves the highlight to the previous search result.\n *\n * It is used by the {@link module:find-and-replace/findandreplace~FindAndReplace find and replace feature}.\n */\nexport default class FindPreviousCommand extends FindNextCommand {\n /**\n * @inheritDoc\n */\n execute() {\n const results = this._state.results;\n const currentIndex = results.getIndex(this._state.highlightedResult);\n const previousIndex = currentIndex - 1 < 0 ?\n this._state.results.length - 1 : currentIndex - 1;\n this._state.highlightedResult = this._state.results.get(previousIndex);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { ObservableMixin, Collection } from 'ckeditor5/src/utils';\n/**\n * The object storing find and replace plugin state for a given editor instance.\n */\nexport default class FindAndReplaceState extends ObservableMixin() {\n /**\n * Creates an instance of the state.\n */\n constructor(model) {\n super();\n this.set('results', new Collection());\n this.set('highlightedResult', null);\n this.set('searchText', '');\n this.set('replaceText', '');\n this.set('matchCase', false);\n this.set('matchWholeWords', false);\n this.results.on('change', (eventInfo, { removed, index }) => {\n if (Array.from(removed).length) {\n let highlightedResultRemoved = false;\n model.change(writer => {\n for (const removedResult of removed) {\n if (this.highlightedResult === removedResult) {\n highlightedResultRemoved = true;\n }\n if (model.markers.has(removedResult.marker.name)) {\n writer.removeMarker(removedResult.marker);\n }\n }\n });\n if (highlightedResultRemoved) {\n const nextHighlightedIndex = index >= this.results.length ? 0 : index;\n this.highlightedResult = this.results.get(nextHighlightedIndex);\n }\n }\n });\n }\n /**\n * Cleans the state up and removes markers from the model.\n */\n clear(model) {\n this.searchText = '';\n model.change(writer => {\n if (this.highlightedResult) {\n const oldMatchId = this.highlightedResult.marker.name.split(':')[1];\n const oldMarker = model.markers.get(`findResultHighlighted:${oldMatchId}`);\n if (oldMarker) {\n writer.removeMarker(oldMarker);\n }\n }\n [...this.results].forEach(({ marker }) => {\n writer.removeMarker(marker);\n });\n });\n this.results.clear();\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Collection, uid } from 'ckeditor5/src/utils';\nimport { escapeRegExp } from 'lodash-es';\n/**\n * A set of helpers related to find and replace.\n */\nexport default class FindAndReplaceUtils extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'FindAndReplaceUtils';\n }\n /**\n * Executes findCallback and updates search results list.\n *\n * @param range The model range to scan for matches.\n * @param model The model.\n * @param findCallback The callback that should return `true` if provided text matches the search term.\n * @param startResults An optional collection of find matches that the function should\n * start with. This would be a collection returned by a previous `updateFindResultFromRange()` call.\n * @returns A collection of objects describing find match.\n *\n * An example structure:\n *\n * ```js\n * {\n *\tid: resultId,\n *\tlabel: foundItem.label,\n *\tmarker\n *\t}\n * ```\n */\n updateFindResultFromRange(range, model, findCallback, startResults) {\n const results = startResults || new Collection();\n model.change(writer => {\n [...range].forEach(({ type, item }) => {\n if (type === 'elementStart') {\n if (model.schema.checkChild(item, '$text')) {\n const foundItems = findCallback({\n item,\n text: this.rangeToText(model.createRangeIn(item))\n });\n if (!foundItems) {\n return;\n }\n foundItems.forEach(foundItem => {\n const resultId = `findResult:${uid()}`;\n const marker = writer.addMarker(resultId, {\n usingOperation: false,\n affectsData: false,\n range: writer.createRange(writer.createPositionAt(item, foundItem.start), writer.createPositionAt(item, foundItem.end))\n });\n const index = findInsertIndex(results, marker);\n results.add({\n id: resultId,\n label: foundItem.label,\n marker\n }, index);\n });\n }\n }\n });\n });\n return results;\n }\n /**\n * Returns text representation of a range. The returned text length should be the same as range length.\n * In order to achieve this, this function will replace inline elements (text-line) as new line character (\"\\n\").\n *\n * @param range The model range.\n * @returns The text content of the provided range.\n */\n rangeToText(range) {\n return Array.from(range.getItems()).reduce((rangeText, node) => {\n // Trim text to a last occurrence of an inline element and update range start.\n if (!(node.is('$text') || node.is('$textProxy'))) {\n // Editor has only one inline element defined in schema: `` which is treated as new line character in blocks.\n // Special handling might be needed for other inline elements (inline widgets).\n return `${rangeText}\\n`;\n }\n return rangeText + node.data;\n }, '');\n }\n /**\n * Creates a text matching callback for a specified search term and matching options.\n *\n * @param searchTerm The search term.\n * @param options Matching options.\n * \t- options.matchCase=false If set to `true` letter casing will be ignored.\n * \t- options.wholeWords=false If set to `true` only whole words that match `callbackOrText` will be matched.\n */\n findByTextCallback(searchTerm, options) {\n let flags = 'gu';\n if (!options.matchCase) {\n flags += 'i';\n }\n let regExpQuery = `(${escapeRegExp(searchTerm)})`;\n if (options.wholeWords) {\n const nonLetterGroup = '[^a-zA-Z\\u00C0-\\u024F\\u1E00-\\u1EFF]';\n if (!new RegExp('^' + nonLetterGroup).test(searchTerm)) {\n regExpQuery = `(^|${nonLetterGroup}|_)${regExpQuery}`;\n }\n if (!new RegExp(nonLetterGroup + '$').test(searchTerm)) {\n regExpQuery = `${regExpQuery}(?=_|${nonLetterGroup}|$)`;\n }\n }\n const regExp = new RegExp(regExpQuery, flags);\n function findCallback({ text }) {\n const matches = [...text.matchAll(regExp)];\n return matches.map(regexpMatchToFindResult);\n }\n return findCallback;\n }\n}\n// Finds the appropriate index in the resultsList Collection.\nfunction findInsertIndex(resultsList, markerToInsert) {\n const result = resultsList.find(({ marker }) => {\n return markerToInsert.getStart().isBefore(marker.getStart());\n });\n return result ? resultsList.getIndex(result) : resultsList.length;\n}\n/**\n * Maps RegExp match result to find result.\n */\nfunction regexpMatchToFindResult(matchResult) {\n const lastGroupIndex = matchResult.length - 1;\n let startOffset = matchResult.index;\n // Searches with match all flag have an extra matching group with empty string or white space matched before the word.\n // If the search term starts with the space already, there is no extra group even with match all flag on.\n if (matchResult.length === 3) {\n startOffset += matchResult[1].length;\n }\n return {\n label: matchResult[lastGroupIndex],\n start: startOffset,\n end: startOffset + matchResult[lastGroupIndex].length\n };\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./findandreplace.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module find-and-replace/findandreplaceediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { scrollViewportToShowTarget } from 'ckeditor5/src/utils';\nimport FindCommand from './findcommand';\nimport ReplaceCommand from './replacecommand';\nimport ReplaceAllCommand from './replaceallcommand';\nimport FindNextCommand from './findnextcommand';\nimport FindPreviousCommand from './findpreviouscommand';\nimport FindAndReplaceState from './findandreplacestate';\nimport FindAndReplaceUtils from './findandreplaceutils';\nimport { debounce } from 'lodash-es';\nimport '../theme/findandreplace.css';\nconst HIGHLIGHT_CLASS = 'ck-find-result_selected';\n/**\n * Reacts to document changes in order to update search list.\n */\nfunction onDocumentChange(results, editor, searchCallback) {\n const changedNodes = new Set();\n const removedMarkers = new Set();\n const model = editor.model;\n const changes = model.document.differ.getChanges();\n // Get nodes in which changes happened to re-run a search callback on them.\n changes.forEach(change => {\n if (change.name === '$text' || model.schema.isInline(change.position.nodeAfter)) {\n changedNodes.add(change.position.parent);\n [...model.markers.getMarkersAtPosition(change.position)].forEach(markerAtChange => {\n removedMarkers.add(markerAtChange.name);\n });\n }\n else if (change.type === 'insert') {\n changedNodes.add(change.position.nodeAfter);\n }\n });\n // Get markers from removed nodes also.\n model.document.differ.getChangedMarkers().forEach(({ name, data: { newRange } }) => {\n if (newRange && newRange.start.root.rootName === '$graveyard') {\n removedMarkers.add(name);\n }\n });\n // Get markers from the updated nodes and remove all (search will be re-run on these nodes).\n changedNodes.forEach(node => {\n const markersInNode = [...model.markers.getMarkersIntersectingRange(model.createRangeIn(node))];\n markersInNode.forEach(marker => removedMarkers.add(marker.name));\n });\n // Remove results & markers from the changed part of content.\n model.change(writer => {\n removedMarkers.forEach(markerName => {\n // Remove the result first - in order to prevent rendering a removed marker.\n if (results.has(markerName)) {\n results.remove(markerName);\n }\n writer.removeMarker(markerName);\n });\n });\n // Run search callback again on updated nodes.\n changedNodes.forEach(nodeToCheck => {\n const findAndReplaceUtils = editor.plugins.get('FindAndReplaceUtils');\n findAndReplaceUtils.updateFindResultFromRange(model.createRangeOn(nodeToCheck), model, searchCallback, results);\n });\n}\n/**\n * Implements the editing part for find and replace plugin. For example conversion, commands etc.\n */\nexport default class FindAndReplaceEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [FindAndReplaceUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'FindAndReplaceEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n this._activeResults = null;\n this.state = new FindAndReplaceState(this.editor.model);\n this._defineConverters();\n this._defineCommands();\n this.listenTo(this.state, 'change:highlightedResult', (eventInfo, name, newValue, oldValue) => {\n const { model } = this.editor;\n model.change(writer => {\n if (oldValue) {\n const oldMatchId = oldValue.marker.name.split(':')[1];\n const oldMarker = model.markers.get(`findResultHighlighted:${oldMatchId}`);\n if (oldMarker) {\n writer.removeMarker(oldMarker);\n }\n }\n if (newValue) {\n const newMatchId = newValue.marker.name.split(':')[1];\n writer.addMarker(`findResultHighlighted:${newMatchId}`, {\n usingOperation: false,\n affectsData: false,\n range: newValue.marker.getRange()\n });\n }\n });\n });\n /* istanbul ignore next -- @preserve */\n const scrollToHighlightedResult = (eventInfo, name, newValue) => {\n if (newValue) {\n const domConverter = this.editor.editing.view.domConverter;\n const viewRange = this.editor.editing.mapper.toViewRange(newValue.marker.getRange());\n scrollViewportToShowTarget({\n target: domConverter.viewRangeToDom(viewRange),\n viewportOffset: 40\n });\n }\n };\n const debouncedScrollListener = debounce(scrollToHighlightedResult.bind(this), 32);\n // Debounce scroll as highlight might be changed very frequently, e.g. when there's a replace all command.\n this.listenTo(this.state, 'change:highlightedResult', debouncedScrollListener, { priority: 'low' });\n // It's possible that the editor will get destroyed before debounced call kicks in.\n // This would result with accessing a view three that is no longer in DOM.\n this.listenTo(this.editor, 'destroy', debouncedScrollListener.cancel);\n }\n /**\n * Initiate a search.\n */\n find(callbackOrText) {\n const { editor } = this;\n const { model } = editor;\n const { findCallback, results } = editor.execute('find', callbackOrText);\n this._activeResults = results;\n // @todo: handle this listener, another copy is in findcommand.js file.\n this.listenTo(model.document, 'change:data', () => onDocumentChange(this._activeResults, editor, findCallback));\n return this._activeResults;\n }\n /**\n * Stops active results from updating, and clears out the results.\n */\n stop() {\n if (!this._activeResults) {\n return;\n }\n this.stopListening(this.editor.model.document);\n this.state.clear(this.editor.model);\n this._activeResults = null;\n }\n /**\n * Sets up the commands.\n */\n _defineCommands() {\n this.editor.commands.add('find', new FindCommand(this.editor, this.state));\n this.editor.commands.add('findNext', new FindNextCommand(this.editor, this.state));\n this.editor.commands.add('findPrevious', new FindPreviousCommand(this.editor, this.state));\n this.editor.commands.add('replace', new ReplaceCommand(this.editor, this.state));\n this.editor.commands.add('replaceAll', new ReplaceAllCommand(this.editor, this.state));\n }\n /**\n * Sets up the marker downcast converters for search results highlighting.\n */\n _defineConverters() {\n const { editor } = this;\n // Setup the marker highlighting conversion.\n editor.conversion.for('editingDowncast').markerToHighlight({\n model: 'findResult',\n view: ({ markerName }) => {\n const [, id] = markerName.split(':');\n // Marker removal from the view has a bug: https://github.com/ckeditor/ckeditor5/issues/7499\n // A minimal option is to return a new object for each converted marker...\n return {\n name: 'span',\n classes: ['ck-find-result'],\n attributes: {\n // ...however, adding a unique attribute should be future-proof..\n 'data-find-result': id\n }\n };\n }\n });\n editor.conversion.for('editingDowncast').markerToHighlight({\n model: 'findResultHighlighted',\n view: ({ markerName }) => {\n const [, id] = markerName.split(':');\n // Marker removal from the view has a bug: https://github.com/ckeditor/ckeditor5/issues/7499\n // A minimal option is to return a new object for each converted marker...\n return {\n name: 'span',\n classes: [HIGHLIGHT_CLASS],\n attributes: {\n // ...however, adding a unique attribute should be future-proof..\n 'data-find-result': id\n }\n };\n }\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/fontcommand\n */\nimport { Command } from 'ckeditor5/src/core';\n/**\n * The base font command.\n */\nexport default class FontCommand extends Command {\n /**\n * Creates an instance of the command.\n *\n * @param editor Editor instance.\n * @param attributeKey The name of a model attribute on which this command operates.\n */\n constructor(editor, attributeKey) {\n super(editor);\n this.attributeKey = attributeKey;\n }\n /**\n * @inheritDoc\n */\n refresh() {\n const model = this.editor.model;\n const doc = model.document;\n this.value = doc.selection.getAttribute(this.attributeKey);\n this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, this.attributeKey);\n }\n /**\n * Executes the command. Applies the `value` of the {@link #attributeKey} to the selection.\n * If no `value` is passed, it removes the attribute from the selection.\n *\n * @param options Options for the executed command.\n * @param options.value The value to apply.\n * @fires execute\n */\n execute(options = {}) {\n const model = this.editor.model;\n const document = model.document;\n const selection = document.selection;\n const value = options.value;\n const batch = options.batch;\n const updateAttribute = (writer) => {\n if (selection.isCollapsed) {\n if (value) {\n writer.setSelectionAttribute(this.attributeKey, value);\n }\n else {\n writer.removeSelectionAttribute(this.attributeKey);\n }\n }\n else {\n const ranges = model.schema.getValidRanges(selection.getRanges(), this.attributeKey);\n for (const range of ranges) {\n if (value) {\n writer.setAttribute(this.attributeKey, value, range);\n }\n else {\n writer.removeAttribute(this.attributeKey, range);\n }\n }\n }\n };\n // In some scenarios, you may want to use a single undo step for multiple changes (e.g. in color picker).\n if (batch) {\n model.enqueueChange(batch, writer => {\n updateAttribute(writer);\n });\n }\n else {\n model.change(writer => {\n updateAttribute(writer);\n });\n }\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { ColorSelectorView } from 'ckeditor5/src/ui';\n/**\n * The name of the font size plugin.\n */\nexport const FONT_SIZE = 'fontSize';\n/**\n * The name of the font family plugin.\n */\nexport const FONT_FAMILY = 'fontFamily';\n/**\n * The name of the font color plugin.\n */\nexport const FONT_COLOR = 'fontColor';\n/**\n * The name of the font background color plugin.\n */\nexport const FONT_BACKGROUND_COLOR = 'fontBackgroundColor';\n/**\n * Builds a proper converter definition out of input data.\n */\nexport function buildDefinition(modelAttributeKey, options) {\n const definition = {\n model: {\n key: modelAttributeKey,\n values: []\n },\n view: {},\n upcastAlso: {}\n };\n for (const option of options) {\n definition.model.values.push(option.model);\n definition.view[option.model] = option.view;\n if (option.upcastAlso) {\n definition.upcastAlso[option.model] = option.upcastAlso;\n }\n }\n return definition;\n}\n/**\n * A {@link module:font/fontcolor~FontColor font color} and\n * {@link module:font/fontbackgroundcolor~FontBackgroundColor font background color} helper\n * responsible for upcasting data to the model.\n *\n * **Note**: The `styleAttr` parameter should be either `'color'` or `'background-color'`.\n */\nexport function renderUpcastAttribute(styleAttr) {\n return (viewElement) => normalizeColorCode(viewElement.getStyle(styleAttr));\n}\n/**\n * A {@link module:font/fontcolor~FontColor font color} and\n * {@link module:font/fontbackgroundcolor~FontBackgroundColor font background color} helper\n * responsible for downcasting a color attribute to a `` element.\n *\n * **Note**: The `styleAttr` parameter should be either `'color'` or `'background-color'`.\n */\nexport function renderDowncastElement(styleAttr) {\n return (modelAttributeValue, { writer }) => writer.createAttributeElement('span', {\n style: `${styleAttr}:${modelAttributeValue}`\n }, { priority: 7 });\n}\n/**\n * A helper that adds {@link module:ui/colorselector/colorselectorview~ColorSelectorView} to the color dropdown with proper initial values.\n *\n * @param config.dropdownView The dropdown view to which a {@link module:ui/colorselector/colorselectorview~ColorSelectorView}\n * will be added.\n * @param config.colors An array with definitions representing colors to be displayed in the color selector.\n * @param config.removeButtonLabel The label for the button responsible for removing the color.\n * @param config.documentColorsLabel The label for the section with document colors.\n * @param config.documentColorsCount The number of document colors inside the dropdown.\n * @param config.colorPickerViewConfig Configuration of the color picker view.\n * @returns The new color selector view.\n */\nexport function addColorSelectorToDropdown({ dropdownView, colors, columns, removeButtonLabel, colorPickerLabel, documentColorsLabel, documentColorsCount, colorPickerViewConfig }) {\n const locale = dropdownView.locale;\n const colorSelectorView = new ColorSelectorView(locale, {\n colors,\n columns,\n removeButtonLabel,\n colorPickerLabel,\n documentColorsLabel,\n documentColorsCount,\n colorPickerViewConfig\n });\n dropdownView.colorSelectorView = colorSelectorView;\n dropdownView.panelView.children.add(colorSelectorView);\n return colorSelectorView;\n}\n/**\n * Fixes the color value string.\n */\nfunction normalizeColorCode(value) {\n return value.replace(/\\s/g, '');\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport FontCommand from '../fontcommand';\nimport { FONT_FAMILY } from '../utils';\n/**\n * The font family command. It is used by {@link module:font/fontfamily/fontfamilyediting~FontFamilyEditing}\n * to apply the font family.\n *\n * ```ts\n * editor.execute( 'fontFamily', { value: 'Arial' } );\n * ```\n *\n * **Note**: Executing the command without the value removes the attribute from the model.\n */\nexport default class FontFamilyCommand extends FontCommand {\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor, FONT_FAMILY);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/fontfamily/utils\n */\n/**\n * Normalizes the {@link module:font/fontconfig~FontFamilyConfig#options configuration options}\n * to the {@link module:font/fontconfig~FontFamilyOption} format.\n *\n * @param configuredOptions An array of options taken from the configuration.\n */\nexport function normalizeOptions(configuredOptions) {\n // Convert options to objects.\n return configuredOptions\n .map(getOptionDefinition)\n // Filter out undefined values that `getOptionDefinition` might return.\n .filter(option => option !== undefined);\n}\n/**\n * Returns an option definition either created from string shortcut.\n * If object is passed then this method will return it without alternating it. Returns undefined for item than cannot be parsed.\n *\n */\nfunction getOptionDefinition(option) {\n // Treat any object as full item definition provided by user in configuration.\n if (typeof option === 'object') {\n return option;\n }\n // Handle 'default' string as a special case. It will be used to remove the fontFamily attribute.\n if (option === 'default') {\n return {\n title: 'Default',\n model: undefined\n };\n }\n // Ignore values that we cannot parse to a definition.\n if (typeof option !== 'string') {\n return undefined;\n }\n // Return font family definition from font string.\n return generateFontPreset(option);\n}\n/**\n * Creates a predefined preset for pixel size. It deconstructs font-family like string into full configuration option.\n * A font definition is passed as coma delimited set of font family names. Font names might be quoted.\n *\n * @param fontDefinition A font definition form configuration.\n */\nfunction generateFontPreset(fontDefinition) {\n // Remove quotes from font names. They will be normalized later.\n const fontNames = fontDefinition.replace(/\"|'/g, '').split(',');\n // The first matched font name will be used as dropdown list item title and as model value.\n const firstFontName = fontNames[0];\n // CSS-compatible font names.\n const cssFontNames = fontNames.map(normalizeFontNameForCSS).join(', ');\n return {\n title: firstFontName,\n model: cssFontNames,\n view: {\n name: 'span',\n styles: {\n 'font-family': cssFontNames\n },\n priority: 7\n }\n };\n}\n/**\n * Normalizes font name for the style attribute. It adds braces (') if font name contains spaces.\n */\nfunction normalizeFontNameForCSS(fontName) {\n fontName = fontName.trim();\n // Compound font names should be quoted.\n if (fontName.indexOf(' ') > 0) {\n fontName = `'${fontName}'`;\n }\n return fontName;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/fontfamily/fontfamilyediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport FontFamilyCommand from './fontfamilycommand';\nimport { normalizeOptions } from './utils';\nimport { buildDefinition, FONT_FAMILY } from '../utils';\n/**\n * The font family editing feature.\n *\n * It introduces the {@link module:font/fontfamily/fontfamilycommand~FontFamilyCommand command} and\n * the `fontFamily` attribute in the {@link module:engine/model/model~Model model} which renders\n * in the {@link module:engine/view/view view} as an inline `` element (``),\n * depending on the {@link module:font/fontconfig~FontFamilyConfig configuration}.\n */\nexport default class FontFamilyEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'FontFamilyEditing';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n // Define default configuration using font families shortcuts.\n editor.config.define(FONT_FAMILY, {\n options: [\n 'default',\n 'Arial, Helvetica, sans-serif',\n 'Courier New, Courier, monospace',\n 'Georgia, serif',\n 'Lucida Sans Unicode, Lucida Grande, sans-serif',\n 'Tahoma, Geneva, sans-serif',\n 'Times New Roman, Times, serif',\n 'Trebuchet MS, Helvetica, sans-serif',\n 'Verdana, Geneva, sans-serif'\n ],\n supportAllValues: false\n });\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Allow fontFamily attribute on text nodes.\n editor.model.schema.extend('$text', { allowAttributes: FONT_FAMILY });\n editor.model.schema.setAttributeProperties(FONT_FAMILY, {\n isFormatting: true,\n copyOnEnter: true\n });\n // Get configured font family options without \"default\" option.\n const options = normalizeOptions(editor.config.get('fontFamily.options')).filter(item => item.model);\n const definition = buildDefinition(FONT_FAMILY, options);\n // Set-up the two-way conversion.\n if (editor.config.get('fontFamily.supportAllValues')) {\n this._prepareAnyValueConverters();\n this._prepareCompatibilityConverter();\n }\n else {\n editor.conversion.attributeToElement(definition);\n }\n editor.commands.add(FONT_FAMILY, new FontFamilyCommand(editor));\n }\n /**\n * These converters enable keeping any value found as `style=\"font-family: *\"` as a value of an attribute on a text even\n * if it is not defined in the plugin configuration.\n */\n _prepareAnyValueConverters() {\n const editor = this.editor;\n editor.conversion.for('downcast').attributeToElement({\n model: FONT_FAMILY,\n view: (attributeValue, { writer }) => {\n return writer.createAttributeElement('span', { style: 'font-family:' + attributeValue }, { priority: 7 });\n }\n });\n editor.conversion.for('upcast').elementToAttribute({\n model: {\n key: FONT_FAMILY,\n value: (viewElement) => viewElement.getStyle('font-family')\n },\n view: {\n name: 'span',\n styles: {\n 'font-family': /.*/\n }\n }\n });\n }\n /**\n * Adds support for legacy `` formatting.\n */\n _prepareCompatibilityConverter() {\n const editor = this.editor;\n editor.conversion.for('upcast').elementToAttribute({\n view: {\n name: 'font',\n attributes: {\n 'face': /.*/\n }\n },\n model: {\n key: FONT_FAMILY,\n value: (viewElement) => viewElement.getAttribute('face')\n }\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/fontfamily/fontfamilyui\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Collection } from 'ckeditor5/src/utils';\nimport { Model, createDropdown, addListToDropdown } from 'ckeditor5/src/ui';\nimport { normalizeOptions } from './utils';\nimport { FONT_FAMILY } from '../utils';\nimport fontFamilyIcon from '../../theme/icons/font-family.svg';\n/**\n * The font family UI plugin. It introduces the `'fontFamily'` dropdown.\n */\nexport default class FontFamilyUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'FontFamilyUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const t = editor.t;\n const options = this._getLocalizedOptions();\n const command = editor.commands.get(FONT_FAMILY);\n const accessibleLabel = t('Font Family');\n // Register UI component.\n editor.ui.componentFactory.add(FONT_FAMILY, locale => {\n const dropdownView = createDropdown(locale);\n addListToDropdown(dropdownView, () => _prepareListOptions(options, command), {\n role: 'menu',\n ariaLabel: accessibleLabel\n });\n dropdownView.buttonView.set({\n label: accessibleLabel,\n icon: fontFamilyIcon,\n tooltip: true\n });\n dropdownView.extendTemplate({\n attributes: {\n class: 'ck-font-family-dropdown'\n }\n });\n dropdownView.bind('isEnabled').to(command);\n // Execute command when an item from the dropdown is selected.\n this.listenTo(dropdownView, 'execute', evt => {\n editor.execute(evt.source.commandName, { value: evt.source.commandParam });\n editor.editing.view.focus();\n });\n return dropdownView;\n });\n }\n /**\n * Returns options as defined in `config.fontFamily.options` but processed to account for\n * editor localization, i.e. to display {@link module:font/fontconfig~FontFamilyOption}\n * in the correct language.\n *\n * Note: The reason behind this method is that there is no way to use {@link module:utils/locale~Locale#t}\n * when the user configuration is defined because the editor does not exist yet.\n */\n _getLocalizedOptions() {\n const editor = this.editor;\n const t = editor.t;\n const options = normalizeOptions((editor.config.get(FONT_FAMILY)).options);\n return options.map(option => {\n // The only title to localize is \"Default\" others are font names.\n if (option.title === 'Default') {\n option.title = t('Default');\n }\n return option;\n });\n }\n}\n/**\n * Prepares FontFamily dropdown items.\n */\nfunction _prepareListOptions(options, command) {\n const itemDefinitions = new Collection();\n // Create dropdown items.\n for (const option of options) {\n const def = {\n type: 'button',\n model: new Model({\n commandName: FONT_FAMILY,\n commandParam: option.model,\n label: option.title,\n role: 'menuitemradio',\n withText: true\n })\n };\n def.model.bind('isOn').to(command, 'value', value => {\n // \"Default\" or check in strict font-family converters mode.\n if (value === option.model) {\n return true;\n }\n if (!value || !option.model) {\n return false;\n }\n return value.split(',')[0].replace(/'/g, '').toLowerCase() === option.model.toLowerCase();\n });\n // Try to set a dropdown list item style.\n if (option.view && typeof option.view !== 'string' && option.view.styles) {\n def.model.set('labelStyle', `font-family: ${option.view.styles['font-family']}`);\n }\n itemDefinitions.add(def);\n }\n return itemDefinitions;\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport FontCommand from '../fontcommand';\nimport { FONT_SIZE } from '../utils';\n/**\n * The font size command. It is used by {@link module:font/fontsize/fontsizeediting~FontSizeEditing}\n * to apply the font size.\n *\n * ```ts\n * editor.execute( 'fontSize', { value: 'small' } );\n * ```\n *\n * **Note**: Executing the command without the value removes the attribute from the model.\n */\nexport default class FontSizeCommand extends FontCommand {\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor, FONT_SIZE);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/fontsize/utils\n */\nimport { CKEditorError } from 'ckeditor5/src/utils';\n/**\n * Normalizes and translates the {@link module:font/fontconfig~FontSizeConfig#options configuration options}\n * to the {@link module:font/fontconfig~FontSizeOption} format.\n *\n * @param configuredOptions An array of options taken from the configuration.\n */\nexport function normalizeOptions(configuredOptions) {\n // Convert options to objects.\n return configuredOptions\n .map(item => getOptionDefinition(item))\n // Filter out undefined values that `getOptionDefinition` might return.\n .filter((option) => option !== undefined);\n}\n// Default named presets map. Always create a new instance of the preset object in order to avoid modifying references.\nconst namedPresets = {\n get tiny() {\n return {\n title: 'Tiny',\n model: 'tiny',\n view: {\n name: 'span',\n classes: 'text-tiny',\n priority: 7\n }\n };\n },\n get small() {\n return {\n title: 'Small',\n model: 'small',\n view: {\n name: 'span',\n classes: 'text-small',\n priority: 7\n }\n };\n },\n get big() {\n return {\n title: 'Big',\n model: 'big',\n view: {\n name: 'span',\n classes: 'text-big',\n priority: 7\n }\n };\n },\n get huge() {\n return {\n title: 'Huge',\n model: 'huge',\n view: {\n name: 'span',\n classes: 'text-huge',\n priority: 7\n }\n };\n }\n};\n/**\n * Returns an option definition either from preset or creates one from number shortcut.\n * If object is passed then this method will return it without alternating it. Returns undefined for item than cannot be parsed.\n */\nfunction getOptionDefinition(option) {\n if (typeof option === 'number') {\n option = String(option);\n }\n // Check whether passed option is a full item definition provided by user in configuration.\n if (typeof option === 'object' && isFullItemDefinition(option)) {\n return attachPriority(option);\n }\n const preset = findPreset(option);\n // Item is a named preset.\n if (preset) {\n return attachPriority(preset);\n }\n // 'Default' font size. It will be used to remove the fontSize attribute.\n if (option === 'default') {\n return {\n model: undefined,\n title: 'Default'\n };\n }\n // At this stage we probably have numerical value to generate a preset so parse it's value.\n // Discard any faulty values.\n if (isNumericalDefinition(option)) {\n return undefined;\n }\n // Return font size definition from size value.\n return generatePixelPreset(option);\n}\n/**\n * Creates a predefined preset for pixel size.\n * @param definition Font size in pixels.\n * @returns\n */\nfunction generatePixelPreset(definition) {\n // Extend a short (numeric value) definition.\n if (typeof definition === 'string') {\n definition = {\n title: definition,\n model: `${parseFloat(definition)}px`\n };\n }\n definition.view = {\n name: 'span',\n styles: {\n 'font-size': definition.model\n }\n };\n return attachPriority(definition);\n}\n/**\n * Adds the priority to the view element definition if missing. It's required due to ckeditor/ckeditor5#2291\n */\nfunction attachPriority(definition) {\n if (definition.view && typeof definition.view !== 'string' && !definition.view.priority) {\n definition.view.priority = 7;\n }\n return definition;\n}\n/**\n * Returns a prepared preset definition. If passed an object, a name of preset should be defined as `model` value.\n *\n * @param definition.model A preset name.\n */\nfunction findPreset(definition) {\n return typeof definition === 'string' ? namedPresets[definition] : namedPresets[definition.model];\n}\n/**\n * We treat `definition` as completed if it is an object that contains `title`, `model` and `view` values.\n */\nfunction isFullItemDefinition(definition) {\n return definition.title && definition.model && definition.view;\n}\nfunction isNumericalDefinition(definition) {\n let numberValue;\n if (typeof definition === 'object') {\n if (!definition.model) {\n /**\n * Provided value as an option for {@link module:font/fontsize~FontSize} seems to invalid.\n *\n * See valid examples described in the {@link module:font/fontconfig~FontSizeConfig#options plugin configuration}.\n *\n * @error font-size-invalid-definition\n */\n throw new CKEditorError('font-size-invalid-definition', null, definition);\n }\n else {\n numberValue = parseFloat(definition.model);\n }\n }\n else {\n numberValue = parseFloat(definition);\n }\n return isNaN(numberValue);\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/fontsize/fontsizeediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { CKEditorError } from 'ckeditor5/src/utils';\nimport { isLength, isPercentage } from 'ckeditor5/src/engine';\nimport FontSizeCommand from './fontsizecommand';\nimport { normalizeOptions } from './utils';\nimport { buildDefinition, FONT_SIZE } from '../utils';\n// Mapping of `` styling to CSS's `font-size` values.\nconst styleFontSize = [\n 'x-small',\n 'x-small',\n 'small',\n 'medium',\n 'large',\n 'x-large',\n 'xx-large',\n 'xxx-large'\n];\n/**\n * The font size editing feature.\n *\n * It introduces the {@link module:font/fontsize/fontsizecommand~FontSizeCommand command} and the `fontSize`\n * attribute in the {@link module:engine/model/model~Model model} which renders in the {@link module:engine/view/view view}\n * as a `` element with either:\n * * a style attribute (`...`),\n * * or a class attribute (`...`)\n *\n * depending on the {@link module:font/fontconfig~FontSizeConfig configuration}.\n */\nexport default class FontSizeEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'FontSizeEditing';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n // Define default configuration using named presets.\n editor.config.define(FONT_SIZE, {\n options: [\n 'tiny',\n 'small',\n 'default',\n 'big',\n 'huge'\n ],\n supportAllValues: false\n });\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Allow fontSize attribute on text nodes.\n editor.model.schema.extend('$text', { allowAttributes: FONT_SIZE });\n editor.model.schema.setAttributeProperties(FONT_SIZE, {\n isFormatting: true,\n copyOnEnter: true\n });\n const supportAllValues = editor.config.get('fontSize.supportAllValues');\n // Define view to model conversion.\n const options = normalizeOptions(this.editor.config.get('fontSize.options'))\n .filter(item => item.model);\n const definition = buildDefinition(FONT_SIZE, options);\n // Set-up the two-way conversion.\n if (supportAllValues) {\n this._prepareAnyValueConverters(definition);\n this._prepareCompatibilityConverter();\n }\n else {\n editor.conversion.attributeToElement(definition);\n }\n // Add FontSize command.\n editor.commands.add(FONT_SIZE, new FontSizeCommand(editor));\n }\n /**\n * These converters enable keeping any value found as `style=\"font-size: *\"` as a value of an attribute on a text even\n * if it is not defined in the plugin configuration.\n *\n * @param definition Converter definition out of input data.\n */\n _prepareAnyValueConverters(definition) {\n const editor = this.editor;\n // If `fontSize.supportAllValues=true`, we do not allow to use named presets in the plugin's configuration.\n const presets = definition.model.values.filter((value) => {\n return !isLength(String(value)) && !isPercentage(String(value));\n });\n if (presets.length) {\n /**\n * If {@link module:font/fontconfig~FontSizeConfig#supportAllValues `config.fontSize.supportAllValues`} is `true`,\n * you need to use numerical values as font size options.\n *\n * See valid examples described in the {@link module:font/fontconfig~FontSizeConfig#options plugin configuration}.\n *\n * @error font-size-invalid-use-of-named-presets\n * @param {Array.} presets Invalid values.\n */\n throw new CKEditorError('font-size-invalid-use-of-named-presets', null, { presets });\n }\n editor.conversion.for('downcast').attributeToElement({\n model: FONT_SIZE,\n view: (attributeValue, { writer }) => {\n if (!attributeValue) {\n return;\n }\n return writer.createAttributeElement('span', { style: 'font-size:' + attributeValue }, { priority: 7 });\n }\n });\n editor.conversion.for('upcast').elementToAttribute({\n model: {\n key: FONT_SIZE,\n value: (viewElement) => viewElement.getStyle('font-size')\n },\n view: {\n name: 'span',\n styles: {\n 'font-size': /.*/\n }\n }\n });\n }\n /**\n * Adds support for legacy `` formatting.\n */\n _prepareCompatibilityConverter() {\n const editor = this.editor;\n editor.conversion.for('upcast').elementToAttribute({\n view: {\n name: 'font',\n attributes: {\n // Documentation mentions sizes from 1 to 7. To handle old content we support all values\n // up to 999 but clamp it to the valid range. Why 999? It should cover accidental values\n // similar to percentage, e.g. 100%, 200% which could be the usual mistake for font size.\n 'size': /^[+-]?\\d{1,3}$/\n }\n },\n model: {\n key: FONT_SIZE,\n value: (viewElement) => {\n const value = viewElement.getAttribute('size');\n const isRelative = value[0] === '-' || value[0] === '+';\n let size = parseInt(value, 10);\n if (isRelative) {\n // Add relative size (which can be negative) to the default size = 3.\n size = 3 + size;\n }\n const maxSize = styleFontSize.length - 1;\n const clampedSize = Math.min(Math.max(size, 0), maxSize);\n return styleFontSize[clampedSize];\n }\n }\n });\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./fontsize.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/fontsize/fontsizeui\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Model, createDropdown, addListToDropdown } from 'ckeditor5/src/ui';\nimport { Collection } from 'ckeditor5/src/utils';\nimport { normalizeOptions } from './utils';\nimport { FONT_SIZE } from '../utils';\nimport '../../theme/fontsize.css';\nimport fontSizeIcon from '../../theme/icons/font-size.svg';\n/**\n * The font size UI plugin. It introduces the `'fontSize'` dropdown.\n */\nexport default class FontSizeUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'FontSizeUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const t = editor.t;\n const options = this._getLocalizedOptions();\n const command = editor.commands.get(FONT_SIZE);\n const accessibleLabel = t('Font Size');\n // Register UI component.\n editor.ui.componentFactory.add(FONT_SIZE, locale => {\n const dropdownView = createDropdown(locale);\n addListToDropdown(dropdownView, () => _prepareListOptions(options, command), {\n role: 'menu',\n ariaLabel: accessibleLabel\n });\n // Create dropdown model.\n dropdownView.buttonView.set({\n label: accessibleLabel,\n icon: fontSizeIcon,\n tooltip: true\n });\n dropdownView.extendTemplate({\n attributes: {\n class: [\n 'ck-font-size-dropdown'\n ]\n }\n });\n dropdownView.bind('isEnabled').to(command);\n // Execute command when an item from the dropdown is selected.\n this.listenTo(dropdownView, 'execute', evt => {\n editor.execute(evt.source.commandName, { value: evt.source.commandParam });\n editor.editing.view.focus();\n });\n return dropdownView;\n });\n }\n /**\n * Returns options as defined in `config.fontSize.options` but processed to account for\n * editor localization, i.e. to display {@link module:font/fontconfig~FontSizeOption}\n * in the correct language.\n *\n * Note: The reason behind this method is that there is no way to use {@link module:utils/locale~Locale#t}\n * when the user configuration is defined because the editor does not exist yet.\n */\n _getLocalizedOptions() {\n const editor = this.editor;\n const t = editor.t;\n const localizedTitles = {\n Default: t('Default'),\n Tiny: t('Tiny'),\n Small: t('Small'),\n Big: t('Big'),\n Huge: t('Huge')\n };\n const options = normalizeOptions((editor.config.get(FONT_SIZE)).options);\n return options.map(option => {\n const title = localizedTitles[option.title];\n if (title && title != option.title) {\n // Clone the option to avoid altering the original `namedPresets` from `./utils.js`.\n option = Object.assign({}, option, { title });\n }\n return option;\n });\n }\n}\n/**\n * Prepares FontSize dropdown items.\n */\nfunction _prepareListOptions(options, command) {\n const itemDefinitions = new Collection();\n for (const option of options) {\n const def = {\n type: 'button',\n model: new Model({\n commandName: FONT_SIZE,\n commandParam: option.model,\n label: option.title,\n class: 'ck-fontsize-option',\n role: 'menuitemradio',\n withText: true\n })\n };\n if (option.view && typeof option.view !== 'string') {\n if (option.view.styles) {\n def.model.set('labelStyle', `font-size:${option.view.styles['font-size']}`);\n }\n if (option.view.classes) {\n def.model.set('class', `${def.model.class} ${option.view.classes}`);\n }\n }\n def.model.bind('isOn').to(command, 'value', value => value === option.model);\n // Add the option to the collection.\n itemDefinitions.add(def);\n }\n return itemDefinitions;\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport FontCommand from '../fontcommand';\nimport { FONT_COLOR } from '../utils';\n/**\n * The font color command. It is used by {@link module:font/fontcolor/fontcolorediting~FontColorEditing}\n * to apply the font color.\n *\n * ```ts\n * editor.execute( 'fontColor', { value: 'rgb(250, 20, 20)' } );\n * ```\n *\n * **Note**: Executing the command with the `null` value removes the attribute from the model.\n */\nexport default class FontColorCommand extends FontCommand {\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor, FONT_COLOR);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/fontcolor/fontcolorediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport FontColorCommand from './fontcolorcommand';\nimport { FONT_COLOR, renderDowncastElement, renderUpcastAttribute } from '../utils';\n/**\n * The font color editing feature.\n *\n * It introduces the {@link module:font/fontcolor/fontcolorcommand~FontColorCommand command} and\n * the `fontColor` attribute in the {@link module:engine/model/model~Model model} which renders\n * in the {@link module:engine/view/view view} as a `` element (``),\n * depending on the {@link module:font/fontconfig~FontColorConfig configuration}.\n */\nexport default class FontColorEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'FontColorEditing';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n editor.config.define(FONT_COLOR, {\n colors: [\n {\n color: 'hsl(0, 0%, 0%)',\n label: 'Black'\n },\n {\n color: 'hsl(0, 0%, 30%)',\n label: 'Dim grey'\n },\n {\n color: 'hsl(0, 0%, 60%)',\n label: 'Grey'\n },\n {\n color: 'hsl(0, 0%, 90%)',\n label: 'Light grey'\n },\n {\n color: 'hsl(0, 0%, 100%)',\n label: 'White',\n hasBorder: true\n },\n {\n color: 'hsl(0, 75%, 60%)',\n label: 'Red'\n },\n {\n color: 'hsl(30, 75%, 60%)',\n label: 'Orange'\n },\n {\n color: 'hsl(60, 75%, 60%)',\n label: 'Yellow'\n },\n {\n color: 'hsl(90, 75%, 60%)',\n label: 'Light green'\n },\n {\n color: 'hsl(120, 75%, 60%)',\n label: 'Green'\n },\n {\n color: 'hsl(150, 75%, 60%)',\n label: 'Aquamarine'\n },\n {\n color: 'hsl(180, 75%, 60%)',\n label: 'Turquoise'\n },\n {\n color: 'hsl(210, 75%, 60%)',\n label: 'Light blue'\n },\n {\n color: 'hsl(240, 75%, 60%)',\n label: 'Blue'\n },\n {\n color: 'hsl(270, 75%, 60%)',\n label: 'Purple'\n }\n ],\n columns: 5\n });\n editor.conversion.for('upcast').elementToAttribute({\n view: {\n name: 'span',\n styles: {\n 'color': /[\\s\\S]+/\n }\n },\n model: {\n key: FONT_COLOR,\n value: renderUpcastAttribute('color')\n }\n });\n // Support legacy `` formatting.\n editor.conversion.for('upcast').elementToAttribute({\n view: {\n name: 'font',\n attributes: {\n 'color': /^#?\\w+$/\n }\n },\n model: {\n key: FONT_COLOR,\n value: (viewElement) => viewElement.getAttribute('color')\n }\n });\n editor.conversion.for('downcast').attributeToElement({\n model: FONT_COLOR,\n view: renderDowncastElement('color')\n });\n editor.commands.add(FONT_COLOR, new FontColorCommand(editor));\n // Allow the font color attribute on text nodes.\n editor.model.schema.extend('$text', { allowAttributes: FONT_COLOR });\n editor.model.schema.setAttributeProperties(FONT_COLOR, {\n isFormatting: true,\n copyOnEnter: true\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/ui/colorui\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { createDropdown, normalizeColorOptions, getLocalizedColorOptions, focusChildOnDropdownOpen } from 'ckeditor5/src/ui';\nimport { addColorSelectorToDropdown } from '../utils';\n/**\n * The color UI plugin which isolates the common logic responsible for displaying dropdowns with color grids.\n *\n * It is used to create the `'fontBackgroundColor'` and `'fontColor'` dropdowns, each hosting\n * a {@link module:ui/colorselector/colorselectorview~ColorSelectorView}.\n */\nexport default class ColorUI extends Plugin {\n /**\n * Creates a plugin which introduces a dropdown with a pre–configured\n * {@link module:ui/colorselector/colorselectorview~ColorSelectorView}.\n *\n * @param config The configuration object.\n * @param config.commandName The name of the command which will be executed when a color tile is clicked.\n * @param config.componentName The name of the dropdown in the {@link module:ui/componentfactory~ComponentFactory}\n * and the configuration scope name in `editor.config`.\n * @param config.icon The SVG icon used by the dropdown.\n * @param config.dropdownLabel The label used by the dropdown.\n */\n constructor(editor, { commandName, componentName, icon, dropdownLabel }) {\n super(editor);\n this.commandName = commandName;\n this.componentName = componentName;\n this.icon = icon;\n this.dropdownLabel = dropdownLabel;\n this.columns = editor.config.get(`${this.componentName}.columns`);\n this.colorSelectorView = undefined;\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const locale = editor.locale;\n const t = locale.t;\n const command = editor.commands.get(this.commandName);\n const componentConfig = editor.config.get(this.componentName);\n const colorsConfig = normalizeColorOptions(componentConfig.colors);\n const localizedColors = getLocalizedColorOptions(locale, colorsConfig);\n const documentColorsCount = componentConfig.documentColors;\n const hasColorPicker = componentConfig.colorPicker !== false;\n // Register the UI component.\n editor.ui.componentFactory.add(this.componentName, locale => {\n const dropdownView = createDropdown(locale);\n // Font color dropdown rendering is deferred once it gets open to improve performance (#6192).\n let dropdownContentRendered = false;\n this.colorSelectorView = addColorSelectorToDropdown({\n dropdownView,\n colors: localizedColors.map(option => ({\n label: option.label,\n color: option.model,\n options: {\n hasBorder: option.hasBorder\n }\n })),\n columns: this.columns,\n removeButtonLabel: t('Remove color'),\n colorPickerLabel: t('Color picker'),\n documentColorsLabel: documentColorsCount !== 0 ? t('Document colors') : '',\n documentColorsCount: documentColorsCount === undefined ? this.columns : documentColorsCount,\n colorPickerViewConfig: hasColorPicker ? (componentConfig.colorPicker || {}) : false\n });\n this.colorSelectorView.bind('selectedColor').to(command, 'value');\n dropdownView.buttonView.set({\n label: this.dropdownLabel,\n icon: this.icon,\n tooltip: true\n });\n dropdownView.extendTemplate({\n attributes: {\n class: 'ck-color-ui-dropdown'\n }\n });\n dropdownView.bind('isEnabled').to(command);\n this.colorSelectorView.on('execute', (evt, data) => {\n if (dropdownView.isOpen) {\n editor.execute(this.commandName, {\n value: data.value,\n batch: this._undoStepBatch\n });\n }\n if (data.source !== 'colorPicker') {\n editor.editing.view.focus();\n }\n if (data.source === 'colorPickerSaveButton') {\n dropdownView.isOpen = false;\n }\n });\n this.colorSelectorView.on('colorPicker:show', () => {\n this._undoStepBatch = editor.model.createBatch();\n });\n this.colorSelectorView.on('colorPicker:cancel', () => {\n if (this._undoStepBatch.operations.length) {\n // We need to close the dropdown before the undo batch.\n // Otherwise, ColorUI treats undo as a selected color change,\n // propagating the update to the whole selection.\n // That's an issue if spans with various colors were selected.\n dropdownView.isOpen = false;\n editor.execute('undo', this._undoStepBatch);\n }\n editor.editing.view.focus();\n });\n dropdownView.on('change:isOpen', (evt, name, isVisible) => {\n if (!dropdownContentRendered) {\n dropdownContentRendered = true;\n dropdownView.colorSelectorView.appendUI();\n }\n if (isVisible) {\n if (documentColorsCount !== 0) {\n this.colorSelectorView.updateDocumentColors(editor.model, this.componentName);\n }\n this.colorSelectorView.updateSelectedColors();\n this.colorSelectorView.showColorGridsFragment();\n }\n });\n // Accessibility: focus the first active color when opening the dropdown.\n focusChildOnDropdownOpen(dropdownView, () => dropdownView.colorSelectorView.colorGridsFragmentView.staticColorsGrid.items.find((item) => item.isOn));\n return dropdownView;\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/fontcolor/fontcolorui\n */\nimport ColorUI from '../ui/colorui';\nimport { FONT_COLOR } from '../utils';\nimport fontColorIcon from '../../theme/icons/font-color.svg';\n/**\n * The font color UI plugin. It introduces the `'fontColor'` dropdown.\n */\nexport default class FontColorUI extends ColorUI {\n /**\n * @inheritDoc\n */\n constructor(editor) {\n const t = editor.locale.t;\n super(editor, {\n commandName: FONT_COLOR,\n componentName: FONT_COLOR,\n icon: fontColorIcon,\n dropdownLabel: t('Font Color')\n });\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'FontColorUI';\n }\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport FontCommand from '../fontcommand';\nimport { FONT_BACKGROUND_COLOR } from '../utils';\n/**\n * The font background color command. It is used by\n * {@link module:font/fontbackgroundcolor/fontbackgroundcolorediting~FontBackgroundColorEditing}\n * to apply the font background color.\n *\n * ```ts\n * editor.execute( 'fontBackgroundColor', { value: 'rgb(250, 20, 20)' } );\n * ```\n *\n * **Note**: Executing the command with the `null` value removes the attribute from the model.\n */\nexport default class FontBackgroundColorCommand extends FontCommand {\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor, FONT_BACKGROUND_COLOR);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/fontbackgroundcolor/fontbackgroundcolorediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { addBackgroundRules } from 'ckeditor5/src/engine';\nimport FontBackgroundColorCommand from './fontbackgroundcolorcommand';\nimport { FONT_BACKGROUND_COLOR, renderDowncastElement, renderUpcastAttribute } from '../utils';\n/**\n * The font background color editing feature.\n *\n * It introduces the {@link module:font/fontbackgroundcolor/fontbackgroundcolorcommand~FontBackgroundColorCommand command} and\n * the `fontBackgroundColor` attribute in the {@link module:engine/model/model~Model model} which renders\n * in the {@link module:engine/view/view view} as a `` element (``),\n * depending on the {@link module:font/fontconfig~FontColorConfig configuration}.\n */\nexport default class FontBackgroundColorEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'FontBackgroundColorEditing';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n editor.config.define(FONT_BACKGROUND_COLOR, {\n colors: [\n {\n color: 'hsl(0, 0%, 0%)',\n label: 'Black'\n },\n {\n color: 'hsl(0, 0%, 30%)',\n label: 'Dim grey'\n },\n {\n color: 'hsl(0, 0%, 60%)',\n label: 'Grey'\n },\n {\n color: 'hsl(0, 0%, 90%)',\n label: 'Light grey'\n },\n {\n color: 'hsl(0, 0%, 100%)',\n label: 'White',\n hasBorder: true\n },\n {\n color: 'hsl(0, 75%, 60%)',\n label: 'Red'\n },\n {\n color: 'hsl(30, 75%, 60%)',\n label: 'Orange'\n },\n {\n color: 'hsl(60, 75%, 60%)',\n label: 'Yellow'\n },\n {\n color: 'hsl(90, 75%, 60%)',\n label: 'Light green'\n },\n {\n color: 'hsl(120, 75%, 60%)',\n label: 'Green'\n },\n {\n color: 'hsl(150, 75%, 60%)',\n label: 'Aquamarine'\n },\n {\n color: 'hsl(180, 75%, 60%)',\n label: 'Turquoise'\n },\n {\n color: 'hsl(210, 75%, 60%)',\n label: 'Light blue'\n },\n {\n color: 'hsl(240, 75%, 60%)',\n label: 'Blue'\n },\n {\n color: 'hsl(270, 75%, 60%)',\n label: 'Purple'\n }\n ],\n columns: 5\n });\n editor.data.addStyleProcessorRules(addBackgroundRules);\n editor.conversion.for('upcast').elementToAttribute({\n view: {\n name: 'span',\n styles: {\n 'background-color': /[\\s\\S]+/\n }\n },\n model: {\n key: FONT_BACKGROUND_COLOR,\n value: renderUpcastAttribute('background-color')\n }\n });\n editor.conversion.for('downcast').attributeToElement({\n model: FONT_BACKGROUND_COLOR,\n view: renderDowncastElement('background-color')\n });\n editor.commands.add(FONT_BACKGROUND_COLOR, new FontBackgroundColorCommand(editor));\n // Allow the font backgroundColor attribute on text nodes.\n editor.model.schema.extend('$text', { allowAttributes: FONT_BACKGROUND_COLOR });\n editor.model.schema.setAttributeProperties(FONT_BACKGROUND_COLOR, {\n isFormatting: true,\n copyOnEnter: true\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/fontbackgroundcolor/fontbackgroundcolorui\n */\nimport ColorUI from '../ui/colorui';\nimport { FONT_BACKGROUND_COLOR } from '../utils';\nimport fontBackgroundColorIcon from '../../theme/icons/font-background.svg';\n/**\n * The font background color UI plugin. It introduces the `'fontBackgroundColor'` dropdown.\n */\nexport default class FontBackgroundColorUI extends ColorUI {\n /**\n * @inheritDoc\n */\n constructor(editor) {\n const t = editor.locale.t;\n super(editor, {\n commandName: FONT_BACKGROUND_COLOR,\n componentName: FONT_BACKGROUND_COLOR,\n icon: fontBackgroundColorIcon,\n dropdownLabel: t('Font Background Color')\n });\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'FontBackgroundColorUI';\n }\n}\n","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module paragraph/paragraphcommand\n */\nimport { Command } from '@ckeditor/ckeditor5-core';\nimport { first } from '@ckeditor/ckeditor5-utils';\n/**\n * The paragraph command.\n */\nexport default class ParagraphCommand extends Command {\n constructor(editor) {\n super(editor);\n // Since this command may pass selection in execution block, it should be checked directly.\n this._isEnabledBasedOnSelection = false;\n }\n /**\n * @inheritDoc\n */\n refresh() {\n const model = this.editor.model;\n const document = model.document;\n const block = first(document.selection.getSelectedBlocks());\n this.value = !!block && block.is('element', 'paragraph');\n this.isEnabled = !!block && checkCanBecomeParagraph(block, model.schema);\n }\n /**\n * Executes the command. All the blocks (see {@link module:engine/model/schema~Schema}) in the selection\n * will be turned to paragraphs.\n *\n * @fires execute\n * @param options Options for the executed command.\n * @param options.selection The selection that the command should be applied to. By default,\n * if not provided, the command is applied to the {@link module:engine/model/document~Document#selection}.\n */\n execute(options = {}) {\n const model = this.editor.model;\n const document = model.document;\n const selection = options.selection || document.selection;\n // Don't execute command if selection is in non-editable place.\n if (!model.canEditAt(selection)) {\n return;\n }\n model.change(writer => {\n const blocks = selection.getSelectedBlocks();\n for (const block of blocks) {\n if (!block.is('element', 'paragraph') && checkCanBecomeParagraph(block, model.schema)) {\n writer.rename(block, 'paragraph');\n }\n }\n });\n }\n}\n/**\n * Checks whether the given block can be replaced by a paragraph.\n *\n * @param block A block to be tested.\n * @param schema The schema of the document.\n */\nfunction checkCanBecomeParagraph(block, schema) {\n return schema.checkChild(block.parent, 'paragraph') && !schema.isObject(block);\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module paragraph/insertparagraphcommand\n */\nimport { Command } from '@ckeditor/ckeditor5-core';\n/**\n * The insert paragraph command. It inserts a new paragraph at a specific\n * {@link module:engine/model/position~Position document position}.\n *\n * ```ts\n * // Insert a new paragraph before an element in the document.\n * editor.execute( 'insertParagraph', {\n * position: editor.model.createPositionBefore( element )\n * } );\n * ```\n *\n * If a paragraph is disallowed in the context of the specific position, the command\n * will attempt to split position ancestors to find a place where it is possible\n * to insert a paragraph.\n *\n * **Note**: This command moves the selection to the inserted paragraph.\n */\nexport default class InsertParagraphCommand extends Command {\n constructor(editor) {\n super(editor);\n // Since this command passes position in execution block instead of selection, it should be checked directly.\n this._isEnabledBasedOnSelection = false;\n }\n /**\n * Executes the command.\n *\n * @param options Options for the executed command.\n * @param options.position The model position at which the new paragraph will be inserted.\n * @param options.attributes Attributes keys and values to set on a inserted paragraph.\n * @fires execute\n */\n execute(options) {\n const model = this.editor.model;\n const attributes = options.attributes;\n let position = options.position;\n // Don't execute command if position is in non-editable place.\n if (!model.canEditAt(position)) {\n return;\n }\n model.change(writer => {\n position = this._findPositionToInsertParagraph(position, writer);\n if (!position) {\n return;\n }\n const paragraph = writer.createElement('paragraph');\n if (attributes) {\n model.schema.setAllowedAttributes(paragraph, attributes, writer);\n }\n model.insertContent(paragraph, position);\n writer.setSelection(paragraph, 'in');\n });\n }\n /**\n * Returns the best position to insert a new paragraph.\n */\n _findPositionToInsertParagraph(position, writer) {\n const model = this.editor.model;\n if (model.schema.checkChild(position, 'paragraph')) {\n return position;\n }\n const allowedParent = model.schema.findAllowedParent(position, 'paragraph');\n // It could be there's no ancestor limit that would allow paragraph.\n // In theory, \"paragraph\" could be disallowed even in the \"$root\".\n if (!allowedParent) {\n return null;\n }\n const positionParent = position.parent;\n const isTextAllowed = model.schema.checkChild(positionParent, '$text');\n // At empty $block or at the end of $block.\n // [] ---> []\n // foo[] ---> foo[]\n if (positionParent.isEmpty || isTextAllowed && position.isAtEnd) {\n return model.createPositionAfter(positionParent);\n }\n // At the start of $block with text.\n // []foo ---> []foo\n if (!positionParent.isEmpty && isTextAllowed && position.isAtStart) {\n return model.createPositionBefore(positionParent);\n }\n return writer.split(position, allowedParent).position;\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module paragraph/paragraph\n */\nimport ParagraphCommand from './paragraphcommand';\nimport InsertParagraphCommand from './insertparagraphcommand';\nimport { Plugin } from '@ckeditor/ckeditor5-core';\n/**\n * The paragraph feature for the editor.\n *\n * It introduces the `` element in the model which renders as a `

    ` element in the DOM and data.\n *\n * It also brings two editors commands:\n *\n * * The {@link module:paragraph/paragraphcommand~ParagraphCommand `'paragraph'`} command that converts all\n * blocks in the model selection into paragraphs.\n * * The {@link module:paragraph/insertparagraphcommand~InsertParagraphCommand `'insertParagraph'`} command\n * that inserts a new paragraph at a specified location in the model.\n */\nexport default class Paragraph extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'Paragraph';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const model = editor.model;\n editor.commands.add('paragraph', new ParagraphCommand(editor));\n editor.commands.add('insertParagraph', new InsertParagraphCommand(editor));\n // Schema.\n model.schema.register('paragraph', { inheritAllFrom: '$block' });\n editor.conversion.elementToElement({ model: 'paragraph', view: 'p' });\n // Conversion for paragraph-like elements which has not been converted by any plugin.\n editor.conversion.for('upcast').elementToElement({\n model: (viewElement, { writer }) => {\n if (!Paragraph.paragraphLikeElements.has(viewElement.name)) {\n return null;\n }\n // Do not auto-paragraph empty elements.\n if (viewElement.isEmpty) {\n return null;\n }\n return writer.createElement('paragraph');\n },\n view: /.+/,\n converterPriority: 'low'\n });\n }\n}\n/**\n * A list of element names which should be treated by the autoparagraphing algorithms as\n * paragraph-like. This means that e.g. the following content:\n *\n * ```html\n *

    Foo

    \n * \n * \n * \n * \n * \n *
    X\n *
      \n *
    • Y
    • \n *
    • Z
    • \n *
    \n *
    \n * ```\n *\n * contains five paragraph-like elements: `

    `, two `

    `s and two `
  • `s.\n * Hence, if none of the features is going to convert those elements the above content will be automatically handled\n * by the paragraph feature and converted to:\n *\n * ```html\n *

    Foo

    \n *

    X

    \n *

    Y

    \n *

    Z

    \n * ```\n *\n * Note: The `
  • ` containing two `
  • ` elements was ignored as the innermost paragraph-like elements\n * have a priority upon conversion.\n */\nParagraph.paragraphLikeElements = new Set([\n 'blockquote',\n 'dd',\n 'div',\n 'dt',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'li',\n 'p',\n 'td',\n 'th'\n]);\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module heading/headingcommand\n */\nimport { Command } from 'ckeditor5/src/core';\nimport { first } from 'ckeditor5/src/utils';\n/**\n * The heading command. It is used by the {@link module:heading/heading~Heading heading feature} to apply headings.\n */\nexport default class HeadingCommand extends Command {\n /**\n * Creates an instance of the command.\n *\n * @param editor Editor instance.\n * @param modelElements Names of the element which this command can apply in the model.\n */\n constructor(editor, modelElements) {\n super(editor);\n this.modelElements = modelElements;\n }\n /**\n * @inheritDoc\n */\n refresh() {\n const block = first(this.editor.model.document.selection.getSelectedBlocks());\n this.value = !!block && this.modelElements.includes(block.name) && block.name;\n this.isEnabled = !!block && this.modelElements.some(heading => checkCanBecomeHeading(block, heading, this.editor.model.schema));\n }\n /**\n * Executes the command. Applies the heading to the selected blocks or, if the first selected\n * block is a heading already, turns selected headings (of this level only) to paragraphs.\n *\n * @param options.value Name of the element which this command will apply in the model.\n * @fires execute\n */\n execute(options) {\n const model = this.editor.model;\n const document = model.document;\n const modelElement = options.value;\n model.change(writer => {\n const blocks = Array.from(document.selection.getSelectedBlocks())\n .filter(block => {\n return checkCanBecomeHeading(block, modelElement, model.schema);\n });\n for (const block of blocks) {\n if (!block.is('element', modelElement)) {\n writer.rename(block, modelElement);\n }\n }\n });\n }\n}\n/**\n * Checks whether the given block can be replaced by a specific heading.\n *\n * @param block A block to be tested.\n * @param heading Command element name in the model.\n * @param schema The schema of the document.\n */\nfunction checkCanBecomeHeading(block, heading, schema) {\n return schema.checkChild(block.parent, heading) && !schema.isObject(block);\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module heading/headingediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Paragraph } from 'ckeditor5/src/paragraph';\nimport { priorities } from 'ckeditor5/src/utils';\nimport HeadingCommand from './headingcommand';\nconst defaultModelElement = 'paragraph';\n/**\n * The headings engine feature. It handles switching between block formats – headings and paragraph.\n * This class represents the engine part of the heading feature. See also {@link module:heading/heading~Heading}.\n * It introduces `heading1`-`headingN` commands which allow to convert paragraphs into headings.\n */\nexport default class HeadingEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'HeadingEditing';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n editor.config.define('heading', {\n options: [\n { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },\n { model: 'heading1', view: 'h2', title: 'Heading 1', class: 'ck-heading_heading1' },\n { model: 'heading2', view: 'h3', title: 'Heading 2', class: 'ck-heading_heading2' },\n { model: 'heading3', view: 'h4', title: 'Heading 3', class: 'ck-heading_heading3' }\n ]\n });\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [Paragraph];\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const options = editor.config.get('heading.options');\n const modelElements = [];\n for (const option of options) {\n // Skip paragraph - it is defined in required Paragraph feature.\n if (option.model === 'paragraph') {\n continue;\n }\n // Schema.\n editor.model.schema.register(option.model, {\n inheritAllFrom: '$block'\n });\n editor.conversion.elementToElement(option);\n modelElements.push(option.model);\n }\n this._addDefaultH1Conversion(editor);\n // Register the heading command for this option.\n editor.commands.add('heading', new HeadingCommand(editor, modelElements));\n }\n /**\n * @inheritDoc\n */\n afterInit() {\n // If the enter command is added to the editor, alter its behavior.\n // Enter at the end of a heading element should create a paragraph.\n const editor = this.editor;\n const enterCommand = editor.commands.get('enter');\n const options = editor.config.get('heading.options');\n if (enterCommand) {\n this.listenTo(enterCommand, 'afterExecute', (evt, data) => {\n const positionParent = editor.model.document.selection.getFirstPosition().parent;\n const isHeading = options.some(option => positionParent.is('element', option.model));\n if (isHeading && !positionParent.is('element', defaultModelElement) && positionParent.childCount === 0) {\n data.writer.rename(positionParent, defaultModelElement);\n }\n });\n }\n }\n /**\n * Adds default conversion for `h1` -> `heading1` with a low priority.\n *\n * @param editor Editor instance on which to add the `h1` conversion.\n */\n _addDefaultH1Conversion(editor) {\n editor.conversion.for('upcast').elementToElement({\n model: 'heading1',\n view: 'h1',\n // With a `low` priority, `paragraph` plugin autoparagraphing mechanism is executed. Make sure\n // this listener is called before it. If not, `h1` will be transformed into a paragraph.\n converterPriority: priorities.low + 1\n });\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./heading.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module heading/headingui\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Model, createDropdown, addListToDropdown } from 'ckeditor5/src/ui';\nimport { Collection } from 'ckeditor5/src/utils';\nimport { getLocalizedOptions } from './utils';\nimport '../theme/heading.css';\n/**\n * The headings UI feature. It introduces the `headings` dropdown.\n */\nexport default class HeadingUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'HeadingUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const t = editor.t;\n const options = getLocalizedOptions(editor);\n const defaultTitle = t('Choose heading');\n const accessibleLabel = t('Heading');\n // Register UI component.\n editor.ui.componentFactory.add('heading', locale => {\n const titles = {};\n const itemDefinitions = new Collection();\n const headingCommand = editor.commands.get('heading');\n const paragraphCommand = editor.commands.get('paragraph');\n const commands = [headingCommand];\n for (const option of options) {\n const def = {\n type: 'button',\n model: new Model({\n label: option.title,\n class: option.class,\n role: 'menuitemradio',\n withText: true\n })\n };\n if (option.model === 'paragraph') {\n def.model.bind('isOn').to(paragraphCommand, 'value');\n def.model.set('commandName', 'paragraph');\n commands.push(paragraphCommand);\n }\n else {\n def.model.bind('isOn').to(headingCommand, 'value', value => value === option.model);\n def.model.set({\n commandName: 'heading',\n commandValue: option.model\n });\n }\n // Add the option to the collection.\n itemDefinitions.add(def);\n titles[option.model] = option.title;\n }\n const dropdownView = createDropdown(locale);\n addListToDropdown(dropdownView, itemDefinitions, {\n ariaLabel: accessibleLabel,\n role: 'menu'\n });\n dropdownView.buttonView.set({\n ariaLabel: accessibleLabel,\n ariaLabelledBy: undefined,\n isOn: false,\n withText: true,\n tooltip: accessibleLabel\n });\n dropdownView.extendTemplate({\n attributes: {\n class: [\n 'ck-heading-dropdown'\n ]\n }\n });\n dropdownView.bind('isEnabled').toMany(commands, 'isEnabled', (...areEnabled) => {\n return areEnabled.some(isEnabled => isEnabled);\n });\n dropdownView.buttonView.bind('label').to(headingCommand, 'value', paragraphCommand, 'value', (value, para) => {\n const whichModel = value || para && 'paragraph';\n if (typeof whichModel === 'boolean') {\n return defaultTitle;\n }\n // If none of the commands is active, display default title.\n if (!titles[whichModel]) {\n return defaultTitle;\n }\n return titles[whichModel];\n });\n // Execute command when an item from the dropdown is selected.\n this.listenTo(dropdownView, 'execute', evt => {\n const { commandName, commandValue } = evt.source;\n editor.execute(commandName, commandValue ? { value: commandValue } : undefined);\n editor.editing.view.focus();\n });\n return dropdownView;\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * Returns heading options as defined in `config.heading.options` but processed to consider\n * the editor localization, i.e. to display {@link module:heading/headingconfig~HeadingOption}\n * in the correct language.\n *\n * Note: The reason behind this method is that there is no way to use {@link module:utils/locale~Locale#t}\n * when the user configuration is defined because the editor does not exist yet.\n */\nexport function getLocalizedOptions(editor) {\n const t = editor.t;\n const localizedTitles = {\n 'Paragraph': t('Paragraph'),\n 'Heading 1': t('Heading 1'),\n 'Heading 2': t('Heading 2'),\n 'Heading 3': t('Heading 3'),\n 'Heading 4': t('Heading 4'),\n 'Heading 5': t('Heading 5'),\n 'Heading 6': t('Heading 6')\n };\n return editor.config.get('heading.options').map(option => {\n const title = localizedTitles[option.title];\n if (title && title != option.title) {\n option.title = title;\n }\n return option;\n });\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module heading/title\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { first } from 'ckeditor5/src/utils';\nimport { DowncastWriter, enablePlaceholder, hidePlaceholder, needsPlaceholder, showPlaceholder } from 'ckeditor5/src/engine';\n// A list of element names that should be treated by the Title plugin as title-like.\n// This means that an element of a type from this list will be changed to a title element\n// when it is the first element in the root.\nconst titleLikeElements = new Set(['paragraph', 'heading1', 'heading2', 'heading3', 'heading4', 'heading5', 'heading6']);\n/**\n * The Title plugin.\n *\n * It splits the document into `Title` and `Body` sections.\n */\nexport default class Title extends Plugin {\n constructor() {\n super(...arguments);\n /**\n * A reference to an empty paragraph in the body\n * created when there is no element in the body for the placeholder purposes.\n */\n this._bodyPlaceholder = new Map();\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'Title';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return ['Paragraph'];\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const model = editor.model;\n // To use the schema for disabling some features when the selection is inside the title element\n // it is needed to create the following structure:\n //\n // \n // <title-content>The title text</title-content>\n // \n //\n // See: https://github.com/ckeditor/ckeditor5/issues/2005.\n model.schema.register('title', { isBlock: true, allowIn: '$root' });\n model.schema.register('title-content', { isBlock: true, allowIn: 'title', allowAttributes: ['alignment'] });\n model.schema.extend('$text', { allowIn: 'title-content' });\n // Disallow all attributes in `title-content`.\n model.schema.addAttributeCheck(context => {\n if (context.endsWith('title-content $text')) {\n return false;\n }\n });\n // Because `title` is represented by two elements in the model\n // but only one in the view, it is needed to adjust Mapper.\n editor.editing.mapper.on('modelToViewPosition', mapModelPositionToView(editor.editing.view));\n editor.data.mapper.on('modelToViewPosition', mapModelPositionToView(editor.editing.view));\n // Conversion.\n editor.conversion.for('downcast').elementToElement({ model: 'title-content', view: 'h1' });\n editor.conversion.for('downcast').add(dispatcher => dispatcher.on('insert:title', (evt, data, conversionApi) => {\n conversionApi.consumable.consume(data.item, evt.name);\n }));\n // Custom converter is used for data v -> m conversion to avoid calling post-fixer when setting data.\n // See https://github.com/ckeditor/ckeditor5/issues/2036.\n editor.data.upcastDispatcher.on('element:h1', dataViewModelH1Insertion, { priority: 'high' });\n editor.data.upcastDispatcher.on('element:h2', dataViewModelH1Insertion, { priority: 'high' });\n editor.data.upcastDispatcher.on('element:h3', dataViewModelH1Insertion, { priority: 'high' });\n // Take care about correct `title` element structure.\n model.document.registerPostFixer(writer => this._fixTitleContent(writer));\n // Create and take care of correct position of a `title` element.\n model.document.registerPostFixer(writer => this._fixTitleElement(writer));\n // Create element for `Body` placeholder if it is missing.\n model.document.registerPostFixer(writer => this._fixBodyElement(writer));\n // Prevent from adding extra at the end of the document.\n model.document.registerPostFixer(writer => this._fixExtraParagraph(writer));\n // Attach `Title` and `Body` placeholders to the empty title and/or content.\n this._attachPlaceholders();\n // Attach Tab handling.\n this._attachTabPressHandling();\n }\n /**\n * Returns the title of the document. Note that because this plugin does not allow any formatting inside\n * the title element, the output of this method will be a plain text, with no HTML tags.\n *\n * It is not recommended to use this method together with features that insert markers to the\n * data output, like comments or track changes features. If such markers start in the title and end in the\n * body, the result of this method might be incorrect.\n *\n * @param options Additional configuration passed to the conversion process.\n * See {@link module:engine/controller/datacontroller~DataController#get `DataController#get`}.\n * @returns The title of the document.\n */\n getTitle(options = {}) {\n const rootName = options.rootName ? options.rootName : undefined;\n const titleElement = this._getTitleElement(rootName);\n const titleContentElement = titleElement.getChild(0);\n return this.editor.data.stringify(titleContentElement, options);\n }\n /**\n * Returns the body of the document.\n *\n * Note that it is not recommended to use this method together with features that insert markers to the\n * data output, like comments or track changes features. If such markers start in the title and end in the\n * body, the result of this method might be incorrect.\n *\n * @param options Additional configuration passed to the conversion process.\n * See {@link module:engine/controller/datacontroller~DataController#get `DataController#get`}.\n * @returns The body of the document.\n */\n getBody(options = {}) {\n const editor = this.editor;\n const data = editor.data;\n const model = editor.model;\n const rootName = options.rootName ? options.rootName : undefined;\n const root = editor.model.document.getRoot(rootName);\n const view = editor.editing.view;\n const viewWriter = new DowncastWriter(view.document);\n const rootRange = model.createRangeIn(root);\n const viewDocumentFragment = viewWriter.createDocumentFragment();\n // Find all markers that intersects with body.\n const bodyStartPosition = model.createPositionAfter(root.getChild(0));\n const bodyRange = model.createRange(bodyStartPosition, model.createPositionAt(root, 'end'));\n const markers = new Map();\n for (const marker of model.markers) {\n const intersection = bodyRange.getIntersection(marker.getRange());\n if (intersection) {\n markers.set(marker.name, intersection);\n }\n }\n // Convert the entire root to view.\n data.mapper.clearBindings();\n data.mapper.bindElements(root, viewDocumentFragment);\n data.downcastDispatcher.convert(rootRange, markers, viewWriter, options);\n // Remove title element from view.\n viewWriter.remove(viewWriter.createRangeOn(viewDocumentFragment.getChild(0)));\n // view -> data\n return editor.data.processor.toData(viewDocumentFragment);\n }\n /**\n * Returns the `title` element when it is in the document. Returns `undefined` otherwise.\n */\n _getTitleElement(rootName) {\n const root = this.editor.model.document.getRoot(rootName);\n for (const child of root.getChildren()) {\n if (isTitle(child)) {\n return child;\n }\n }\n }\n /**\n * Model post-fixer callback that ensures that `title` has only one `title-content` child.\n * All additional children should be moved after the `title` element and renamed to a paragraph.\n */\n _fixTitleContent(writer) {\n let changed = false;\n for (const rootName of this.editor.model.document.getRootNames()) {\n const title = this._getTitleElement(rootName);\n // If there is no title in the content it will be created by `_fixTitleElement` post-fixer.\n // If the title has just one element, then it is correct. No fixing.\n if (!title || title.maxOffset === 1) {\n continue;\n }\n const titleChildren = Array.from(title.getChildren());\n // Skip first child because it is an allowed element.\n titleChildren.shift();\n for (const titleChild of titleChildren) {\n writer.move(writer.createRangeOn(titleChild), title, 'after');\n writer.rename(titleChild, 'paragraph');\n }\n changed = true;\n }\n return changed;\n }\n /**\n * Model post-fixer callback that creates a title element when it is missing,\n * takes care of the correct position of it and removes additional title elements.\n */\n _fixTitleElement(writer) {\n let changed = false;\n const model = this.editor.model;\n for (const modelRoot of this.editor.model.document.getRoots()) {\n const titleElements = Array.from(modelRoot.getChildren()).filter(isTitle);\n const firstTitleElement = titleElements[0];\n const firstRootChild = modelRoot.getChild(0);\n // When title element is at the beginning of the document then try to fix additional title elements (if there are any).\n if (firstRootChild.is('element', 'title')) {\n if (titleElements.length > 1) {\n fixAdditionalTitleElements(titleElements, writer, model);\n changed = true;\n }\n continue;\n }\n // When there is no title in the document and first element in the document cannot be changed\n // to the title then create an empty title element at the beginning of the document.\n if (!firstTitleElement && !titleLikeElements.has(firstRootChild.name)) {\n const title = writer.createElement('title');\n writer.insert(title, modelRoot);\n writer.insertElement('title-content', title);\n changed = true;\n continue;\n }\n if (titleLikeElements.has(firstRootChild.name)) {\n // Change the first element in the document to the title if it can be changed (is title-like).\n changeElementToTitle(firstRootChild, writer, model);\n }\n else {\n // Otherwise, move the first occurrence of the title element to the beginning of the document.\n writer.move(writer.createRangeOn(firstTitleElement), modelRoot, 0);\n }\n fixAdditionalTitleElements(titleElements, writer, model);\n changed = true;\n }\n return changed;\n }\n /**\n * Model post-fixer callback that adds an empty paragraph at the end of the document\n * when it is needed for the placeholder purposes.\n */\n _fixBodyElement(writer) {\n let changed = false;\n for (const rootName of this.editor.model.document.getRootNames()) {\n const modelRoot = this.editor.model.document.getRoot(rootName);\n if (modelRoot.childCount < 2) {\n const placeholder = writer.createElement('paragraph');\n writer.insert(placeholder, modelRoot, 1);\n this._bodyPlaceholder.set(rootName, placeholder);\n changed = true;\n }\n }\n return changed;\n }\n /**\n * Model post-fixer callback that removes a paragraph from the end of the document\n * if it was created for the placeholder purposes and is not needed anymore.\n */\n _fixExtraParagraph(writer) {\n let changed = false;\n for (const rootName of this.editor.model.document.getRootNames()) {\n const root = this.editor.model.document.getRoot(rootName);\n const placeholder = this._bodyPlaceholder.get(rootName);\n if (shouldRemoveLastParagraph(placeholder, root)) {\n this._bodyPlaceholder.delete(rootName);\n writer.remove(placeholder);\n changed = true;\n }\n }\n return changed;\n }\n /**\n * Attaches the `Title` and `Body` placeholders to the title and/or content.\n */\n _attachPlaceholders() {\n const editor = this.editor;\n const t = editor.t;\n const view = editor.editing.view;\n const sourceElement = editor.sourceElement;\n const titlePlaceholder = editor.config.get('title.placeholder') || t('Type your title');\n const bodyPlaceholder = editor.config.get('placeholder') ||\n sourceElement && sourceElement.tagName.toLowerCase() === 'textarea' && sourceElement.getAttribute('placeholder') ||\n t('Type or paste your content here.');\n // Attach placeholder to the view title element.\n editor.editing.downcastDispatcher.on('insert:title-content', (evt, data, conversionApi) => {\n const element = conversionApi.mapper.toViewElement(data.item);\n element.placeholder = titlePlaceholder;\n enablePlaceholder({\n view,\n element,\n keepOnFocus: true\n });\n });\n // Attach placeholder to first element after a title element and remove it if it's not needed anymore.\n // First element after title can change, so we need to observe all changes keep placeholder in sync.\n const bodyViewElements = new Map();\n // This post-fixer runs after the model post-fixer, so we can assume that the second child in view root will always exist.\n view.document.registerPostFixer(writer => {\n let hasChanged = false;\n for (const viewRoot of view.document.roots) {\n // `viewRoot` can be empty despite the model post-fixers if the model root was detached.\n if (viewRoot.isEmpty) {\n continue;\n }\n // If `viewRoot` is not empty, then we can expect at least two elements in it.\n const body = viewRoot.getChild(1);\n const oldBody = bodyViewElements.get(viewRoot.rootName);\n // If body element has changed we need to disable placeholder on the previous element and enable on the new one.\n if (body !== oldBody) {\n if (oldBody) {\n hidePlaceholder(writer, oldBody);\n writer.removeAttribute('data-placeholder', oldBody);\n }\n writer.setAttribute('data-placeholder', bodyPlaceholder, body);\n bodyViewElements.set(viewRoot.rootName, body);\n hasChanged = true;\n }\n // Then we need to display placeholder if it is needed.\n // See: https://github.com/ckeditor/ckeditor5/issues/8689.\n if (needsPlaceholder(body, true) && viewRoot.childCount === 2 && body.name === 'p') {\n hasChanged = showPlaceholder(writer, body) ? true : hasChanged;\n }\n else {\n // Or hide if it is not needed.\n hasChanged = hidePlaceholder(writer, body) ? true : hasChanged;\n }\n }\n return hasChanged;\n });\n }\n /**\n * Creates navigation between the title and body sections using Tab and Shift+Tab keys.\n */\n _attachTabPressHandling() {\n const editor = this.editor;\n const model = editor.model;\n // Pressing Tab inside the title should move the caret to the body.\n editor.keystrokes.set('TAB', (data, cancel) => {\n model.change(writer => {\n const selection = model.document.selection;\n const selectedElements = Array.from(selection.getSelectedBlocks());\n if (selectedElements.length === 1 && selectedElements[0].is('element', 'title-content')) {\n const root = selection.getFirstPosition().root;\n const firstBodyElement = root.getChild(1);\n writer.setSelection(firstBodyElement, 0);\n cancel();\n }\n });\n });\n // Pressing Shift+Tab at the beginning of the body should move the caret to the title.\n editor.keystrokes.set('SHIFT + TAB', (data, cancel) => {\n model.change(writer => {\n const selection = model.document.selection;\n if (!selection.isCollapsed) {\n return;\n }\n const selectedElement = first(selection.getSelectedBlocks());\n const selectionPosition = selection.getFirstPosition();\n const root = editor.model.document.getRoot(selectionPosition.root.rootName);\n const title = root.getChild(0);\n const body = root.getChild(1);\n if (selectedElement === body && selectionPosition.isAtStart) {\n writer.setSelection(title.getChild(0), 0);\n cancel();\n }\n });\n });\n }\n}\n/**\n * A view-to-model converter for the h1 that appears at the beginning of the document (a title element).\n *\n * @see module:engine/conversion/upcastdispatcher~UpcastDispatcher#event:element\n * @param evt An object containing information about the fired event.\n * @param data An object containing conversion input, a placeholder for conversion output and possibly other values.\n * @param conversionApi Conversion interface to be used by the callback.\n */\nfunction dataViewModelH1Insertion(evt, data, conversionApi) {\n const modelCursor = data.modelCursor;\n const viewItem = data.viewItem;\n if (!modelCursor.isAtStart || !modelCursor.parent.is('element', '$root')) {\n return;\n }\n if (!conversionApi.consumable.consume(viewItem, { name: true })) {\n return;\n }\n const modelWriter = conversionApi.writer;\n const title = modelWriter.createElement('title');\n const titleContent = modelWriter.createElement('title-content');\n modelWriter.append(titleContent, title);\n modelWriter.insert(title, modelCursor);\n conversionApi.convertChildren(viewItem, titleContent);\n conversionApi.updateConversionResult(title, data);\n}\n/**\n * Maps position from the beginning of the model `title` element to the beginning of the view `h1` element.\n *\n * ```html\n * ^<title-content>Foo</title-content> ->

    ^Foo

    \n * ```\n */\nfunction mapModelPositionToView(editingView) {\n return (evt, data) => {\n const positionParent = data.modelPosition.parent;\n if (!positionParent.is('element', 'title')) {\n return;\n }\n const modelTitleElement = positionParent.parent;\n const viewElement = data.mapper.toViewElement(modelTitleElement);\n data.viewPosition = editingView.createPositionAt(viewElement, 0);\n evt.stop();\n };\n}\n/**\n * @returns Returns true when given element is a title. Returns false otherwise.\n */\nfunction isTitle(element) {\n return element.is('element', 'title');\n}\n/**\n * Changes the given element to the title element.\n */\nfunction changeElementToTitle(element, writer, model) {\n const title = writer.createElement('title');\n writer.insert(title, element, 'before');\n writer.insert(element, title, 0);\n writer.rename(element, 'title-content');\n model.schema.removeDisallowedAttributes([element], writer);\n}\n/**\n * Loops over the list of title elements and fixes additional ones.\n *\n * @returns Returns true when there was any change. Returns false otherwise.\n */\nfunction fixAdditionalTitleElements(titleElements, writer, model) {\n let hasChanged = false;\n for (const title of titleElements) {\n if (title.index !== 0) {\n fixTitleElement(title, writer, model);\n hasChanged = true;\n }\n }\n return hasChanged;\n}\n/**\n * Changes given title element to a paragraph or removes it when it is empty.\n */\nfunction fixTitleElement(title, writer, model) {\n const child = title.getChild(0);\n // Empty title should be removed.\n // It is created as a result of pasting to the title element.\n if (child.isEmpty) {\n writer.remove(title);\n return;\n }\n writer.move(writer.createRangeOn(child), title, 'before');\n writer.rename(child, 'paragraph');\n writer.remove(title);\n model.schema.removeDisallowedAttributes([child], writer);\n}\n/**\n * Returns true when the last paragraph in the document was created only for the placeholder\n * purpose and it's not needed anymore. Returns false otherwise.\n */\nfunction shouldRemoveLastParagraph(placeholder, root) {\n if (!placeholder || !placeholder.is('element', 'paragraph') || placeholder.childCount) {\n return false;\n }\n if (root.childCount <= 2 || root.getChild(root.childCount - 1) !== placeholder) {\n return false;\n }\n return true;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module highlight/highlightcommand\n */\nimport { Command } from 'ckeditor5/src/core';\n/**\n * The highlight command. It is used by the {@link module:highlight/highlightediting~HighlightEditing highlight feature}\n * to apply the text highlighting.\n *\n * ```ts\n * editor.execute( 'highlight', { value: 'greenMarker' } );\n * ```\n *\n * **Note**: Executing the command without a value removes the attribute from the model. If the selection is collapsed\n * inside a text with the highlight attribute, the command will remove the attribute from the entire range\n * of that text.\n */\nexport default class HighlightCommand extends Command {\n /**\n * @inheritDoc\n */\n refresh() {\n const model = this.editor.model;\n const doc = model.document;\n this.value = doc.selection.getAttribute('highlight');\n this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, 'highlight');\n }\n /**\n * Executes the command.\n *\n * @param options Options for the executed command.\n * @param options.value The value to apply.\n *\n * @fires execute\n */\n execute(options = {}) {\n const model = this.editor.model;\n const document = model.document;\n const selection = document.selection;\n const highlighter = options.value;\n model.change(writer => {\n if (selection.isCollapsed) {\n const position = selection.getFirstPosition();\n // When selection is inside text with `highlight` attribute.\n if (selection.hasAttribute('highlight')) {\n // Find the full highlighted range.\n const isSameHighlight = (value) => {\n return value.item.hasAttribute('highlight') && value.item.getAttribute('highlight') === this.value;\n };\n const highlightStart = position.getLastMatchingPosition(isSameHighlight, { direction: 'backward' });\n const highlightEnd = position.getLastMatchingPosition(isSameHighlight);\n const highlightRange = writer.createRange(highlightStart, highlightEnd);\n // Then depending on current value...\n if (!highlighter || this.value === highlighter) {\n // ...remove attribute when passing highlighter different then current or executing \"eraser\".\n // If we're at the end of the highlighted range, we don't want to remove highlight of the range.\n if (!position.isEqual(highlightEnd)) {\n writer.removeAttribute('highlight', highlightRange);\n }\n writer.removeSelectionAttribute('highlight');\n }\n else {\n // ...update `highlight` value.\n // If we're at the end of the highlighted range, we don't want to change the highlight of the range.\n if (!position.isEqual(highlightEnd)) {\n writer.setAttribute('highlight', highlighter, highlightRange);\n }\n writer.setSelectionAttribute('highlight', highlighter);\n }\n }\n else if (highlighter) {\n writer.setSelectionAttribute('highlight', highlighter);\n }\n }\n else {\n const ranges = model.schema.getValidRanges(selection.getRanges(), 'highlight');\n for (const range of ranges) {\n if (highlighter) {\n writer.setAttribute('highlight', highlighter, range);\n }\n else {\n writer.removeAttribute('highlight', range);\n }\n }\n }\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module highlight/highlightediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport HighlightCommand from './highlightcommand';\n/**\n * The highlight editing feature. It introduces the {@link module:highlight/highlightcommand~HighlightCommand command} and the `highlight`\n * attribute in the {@link module:engine/model/model~Model model} which renders in the {@link module:engine/view/view view}\n * as a `` element with a `class` attribute (`...`) depending\n * on the {@link module:highlight/highlightconfig~HighlightConfig configuration}.\n */\nexport default class HighlightEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'HighlightEditing';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n editor.config.define('highlight', {\n options: [\n {\n model: 'yellowMarker',\n class: 'marker-yellow',\n title: 'Yellow marker',\n color: 'var(--ck-highlight-marker-yellow)',\n type: 'marker'\n },\n {\n model: 'greenMarker',\n class: 'marker-green',\n title: 'Green marker',\n color: 'var(--ck-highlight-marker-green)',\n type: 'marker'\n },\n {\n model: 'pinkMarker',\n class: 'marker-pink',\n title: 'Pink marker',\n color: 'var(--ck-highlight-marker-pink)',\n type: 'marker'\n },\n {\n model: 'blueMarker',\n class: 'marker-blue',\n title: 'Blue marker',\n color: 'var(--ck-highlight-marker-blue)',\n type: 'marker'\n },\n {\n model: 'redPen',\n class: 'pen-red',\n title: 'Red pen',\n color: 'var(--ck-highlight-pen-red)',\n type: 'pen'\n },\n {\n model: 'greenPen',\n class: 'pen-green',\n title: 'Green pen',\n color: 'var(--ck-highlight-pen-green)',\n type: 'pen'\n }\n ]\n });\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Allow highlight attribute on text nodes.\n editor.model.schema.extend('$text', { allowAttributes: 'highlight' });\n const options = editor.config.get('highlight.options');\n // Set-up the two-way conversion.\n editor.conversion.attributeToElement(_buildDefinition(options));\n editor.commands.add('highlight', new HighlightCommand(editor));\n }\n}\n/**\n * Converts the options array to a converter definition.\n *\n * @param options An array with configured options.\n */\nfunction _buildDefinition(options) {\n const definition = {\n model: {\n key: 'highlight',\n values: []\n },\n view: {}\n };\n for (const option of options) {\n definition.model.values.push(option.model);\n definition.view[option.model] = {\n name: 'mark',\n classes: option.class\n };\n }\n return definition;\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./highlight.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module highlight/highlightui\n */\nimport { Plugin, icons } from 'ckeditor5/src/core';\nimport { ButtonView, SplitButtonView, ToolbarSeparatorView, createDropdown, addToolbarToDropdown } from 'ckeditor5/src/ui';\nimport markerIcon from './../theme/icons/marker.svg';\nimport penIcon from './../theme/icons/pen.svg';\nimport './../theme/highlight.css';\n/**\n * The default highlight UI plugin. It introduces:\n *\n * * The `'highlight'` dropdown,\n * * The `'removeHighlight'` and `'highlight:*'` buttons.\n *\n * The default configuration includes the following buttons:\n *\n * * `'highlight:yellowMarker'`\n * * `'highlight:greenMarker'`\n * * `'highlight:pinkMarker'`\n * * `'highlight:blueMarker'`\n * * `'highlight:redPen'`\n * * `'highlight:greenPen'`\n *\n * See the {@link module:highlight/highlightconfig~HighlightConfig#options configuration} to learn more\n * about the defaults.\n */\nexport default class HighlightUI extends Plugin {\n /**\n * Returns the localized option titles provided by the plugin.\n *\n * The following localized titles corresponding with default\n * {@link module:highlight/highlightconfig~HighlightConfig#options} are available:\n *\n * * `'Yellow marker'`,\n * * `'Green marker'`,\n * * `'Pink marker'`,\n * * `'Blue marker'`,\n * * `'Red pen'`,\n * * `'Green pen'`.\n */\n get localizedOptionTitles() {\n const t = this.editor.t;\n return {\n 'Yellow marker': t('Yellow marker'),\n 'Green marker': t('Green marker'),\n 'Pink marker': t('Pink marker'),\n 'Blue marker': t('Blue marker'),\n 'Red pen': t('Red pen'),\n 'Green pen': t('Green pen')\n };\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'HighlightUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const options = this.editor.config.get('highlight.options');\n for (const option of options) {\n this._addHighlighterButton(option);\n }\n this._addRemoveHighlightButton();\n this._addDropdown(options);\n }\n /**\n * Creates the \"Remove highlight\" button.\n */\n _addRemoveHighlightButton() {\n const t = this.editor.t;\n const command = this.editor.commands.get('highlight');\n this._addButton('removeHighlight', t('Remove highlight'), icons.eraser, null, button => {\n button.bind('isEnabled').to(command, 'isEnabled');\n });\n }\n /**\n * Creates a toolbar button from the provided highlight option.\n */\n _addHighlighterButton(option) {\n const command = this.editor.commands.get('highlight');\n // TODO: change naming\n this._addButton('highlight:' + option.model, option.title, getIconForType(option.type), option.model, decorateHighlightButton);\n function decorateHighlightButton(button) {\n button.bind('isEnabled').to(command, 'isEnabled');\n button.bind('isOn').to(command, 'value', value => value === option.model);\n button.iconView.fillColor = option.color;\n button.isToggleable = true;\n }\n }\n /**\n * Internal method for creating highlight buttons.\n *\n * @param name The name of the button.\n * @param label The label for the button.\n * @param icon The button icon.\n * @param value The `value` property passed to the executed command.\n * @param decorateButton A callback getting ButtonView instance so that it can be further customized.\n */\n _addButton(name, label, icon, value, decorateButton) {\n const editor = this.editor;\n editor.ui.componentFactory.add(name, locale => {\n const buttonView = new ButtonView(locale);\n const localized = this.localizedOptionTitles[label] ? this.localizedOptionTitles[label] : label;\n buttonView.set({\n label: localized,\n icon,\n tooltip: true\n });\n buttonView.on('execute', () => {\n editor.execute('highlight', { value });\n editor.editing.view.focus();\n });\n // Add additional behavior for buttonView.\n decorateButton(buttonView);\n return buttonView;\n });\n }\n /**\n * Creates the split button dropdown UI from the provided highlight options.\n */\n _addDropdown(options) {\n const editor = this.editor;\n const t = editor.t;\n const componentFactory = editor.ui.componentFactory;\n const startingHighlighter = options[0];\n const optionsMap = options.reduce((retVal, option) => {\n retVal[option.model] = option;\n return retVal;\n }, {});\n componentFactory.add('highlight', locale => {\n const command = editor.commands.get('highlight');\n const dropdownView = createDropdown(locale, SplitButtonView);\n const splitButtonView = dropdownView.buttonView;\n splitButtonView.set({\n label: t('Highlight'),\n tooltip: true,\n // Holds last executed highlighter.\n lastExecuted: startingHighlighter.model,\n // Holds current highlighter to execute (might be different then last used).\n commandValue: startingHighlighter.model,\n isToggleable: true\n });\n // Dropdown button changes to selection (command.value):\n // - If selection is in highlight it get active highlight appearance (icon, color) and is activated.\n // - Otherwise it gets appearance (icon, color) of last executed highlight.\n splitButtonView.bind('icon').to(command, 'value', value => getIconForType(getActiveOption(value, 'type')));\n splitButtonView.bind('color').to(command, 'value', value => getActiveOption(value, 'color'));\n splitButtonView.bind('commandValue').to(command, 'value', value => getActiveOption(value, 'model'));\n splitButtonView.bind('isOn').to(command, 'value', value => !!value);\n splitButtonView.delegate('execute').to(dropdownView);\n // Create buttons array.\n const buttonsCreator = () => {\n const buttons = options.map(option => {\n // Get existing highlighter button.\n const buttonView = componentFactory.create('highlight:' + option.model);\n // Update lastExecutedHighlight on execute.\n this.listenTo(buttonView, 'execute', () => {\n dropdownView.buttonView.set({ lastExecuted: option.model });\n });\n return buttonView;\n });\n // Add separator and eraser buttons to dropdown.\n buttons.push(new ToolbarSeparatorView());\n buttons.push(componentFactory.create('removeHighlight'));\n return buttons;\n };\n // Make toolbar button enabled when any button in dropdown is enabled before adding separator and eraser.\n dropdownView.bind('isEnabled').to(command, 'isEnabled');\n addToolbarToDropdown(dropdownView, buttonsCreator, {\n enableActiveItemFocusOnDropdownOpen: true,\n ariaLabel: t('Text highlight toolbar')\n });\n bindToolbarIconStyleToActiveColor(dropdownView);\n // Execute current action from dropdown's split button action button.\n splitButtonView.on('execute', () => {\n editor.execute('highlight', { value: splitButtonView.commandValue });\n });\n // Focus the editable after executing the command.\n // It overrides a default behaviour where the focus is moved to the dropdown button (#12125).\n this.listenTo(dropdownView, 'execute', () => {\n editor.editing.view.focus();\n });\n /**\n * Returns active highlighter option depending on current command value.\n * If current is not set or it is the same as last execute this method will return the option key (like icon or color)\n * of last executed highlighter. Otherwise it will return option key for current one.\n */\n function getActiveOption(current, key) {\n const whichHighlighter = !current ||\n current === splitButtonView.lastExecuted ? splitButtonView.lastExecuted : current;\n return optionsMap[whichHighlighter][key];\n }\n return dropdownView;\n });\n }\n}\n/**\n * Extends split button icon style to reflect last used button style.\n */\nfunction bindToolbarIconStyleToActiveColor(dropdownView) {\n const actionView = dropdownView.buttonView.actionView;\n actionView.iconView.bind('fillColor').to(dropdownView.buttonView, 'color');\n}\n/**\n * Returns icon for given highlighter type.\n */\nfunction getIconForType(type) {\n return type === 'marker' ? markerIcon : penIcon;\n}\n","export default \"\";","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Command } from 'ckeditor5/src/core';\nimport { findOptimalInsertionRange } from 'ckeditor5/src/widget';\n/**\n * The horizontal line command.\n *\n * The command is registered by {@link module:horizontal-line/horizontallineediting~HorizontalLineEditing} as `'horizontalLine'`.\n *\n * To insert a horizontal line at the current selection, execute the command:\n *\n * ```ts\n * editor.execute( 'horizontalLine' );\n * ```\n */\nexport default class HorizontalLineCommand extends Command {\n /**\n * @inheritDoc\n */\n refresh() {\n const model = this.editor.model;\n const schema = model.schema;\n const selection = model.document.selection;\n this.isEnabled = isHorizontalLineAllowedInParent(selection, schema, model);\n }\n /**\n * Executes the command.\n *\n * @fires execute\n */\n execute() {\n const model = this.editor.model;\n model.change(writer => {\n const horizontalElement = writer.createElement('horizontalLine');\n model.insertObject(horizontalElement, null, null, { setSelection: 'after' });\n });\n }\n}\n/**\n * Checks if a horizontal line is allowed by the schema in the optimal insertion parent.\n *\n * @param model Model instance.\n */\nfunction isHorizontalLineAllowedInParent(selection, schema, model) {\n const parent = getInsertHorizontalLineParent(selection, model);\n return schema.checkChild(parent, 'horizontalLine');\n}\n/**\n * Returns a node that will be used to insert a horizontal line with `model.insertContent` to check if the horizontal line can be\n * placed there.\n *\n * @param model Model instance.\n */\nfunction getInsertHorizontalLineParent(selection, model) {\n const insertionRange = findOptimalInsertionRange(selection, model);\n const parent = insertionRange.start.parent;\n if (parent.isEmpty && !parent.is('element', '$root')) {\n return parent.parent;\n }\n return parent;\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./horizontalline.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module horizontal-line/horizontallineediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { toWidget } from 'ckeditor5/src/widget';\nimport HorizontalLineCommand from './horizontallinecommand';\nimport '../theme/horizontalline.css';\n/**\n * The horizontal line editing feature.\n */\nexport default class HorizontalLineEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'HorizontalLineEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const schema = editor.model.schema;\n const t = editor.t;\n const conversion = editor.conversion;\n schema.register('horizontalLine', {\n inheritAllFrom: '$blockObject'\n });\n conversion.for('dataDowncast').elementToElement({\n model: 'horizontalLine',\n view: (modelElement, { writer }) => {\n return writer.createEmptyElement('hr');\n }\n });\n conversion.for('editingDowncast').elementToStructure({\n model: 'horizontalLine',\n view: (modelElement, { writer }) => {\n const label = t('Horizontal line');\n const viewWrapper = writer.createContainerElement('div', null, writer.createEmptyElement('hr'));\n writer.addClass('ck-horizontal-line', viewWrapper);\n writer.setCustomProperty('hr', true, viewWrapper);\n return toHorizontalLineWidget(viewWrapper, writer, label);\n }\n });\n conversion.for('upcast').elementToElement({ view: 'hr', model: 'horizontalLine' });\n editor.commands.add('horizontalLine', new HorizontalLineCommand(editor));\n }\n}\n/**\n * Converts a given {@link module:engine/view/element~Element} to a horizontal line widget:\n * * Adds a {@link module:engine/view/element~Element#_setCustomProperty custom property} allowing to\n * recognize the horizontal line widget element.\n * * Calls the {@link module:widget/utils~toWidget} function with the proper element's label creator.\n *\n * @param writer An instance of the view writer.\n */\nfunction toHorizontalLineWidget(viewElement, writer, label) {\n writer.setCustomProperty('horizontalLine', true, viewElement);\n return toWidget(viewElement, writer, { label });\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module horizontal-line/horizontallineui\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { ButtonView } from 'ckeditor5/src/ui';\nimport horizontalLineIcon from '../theme/icons/horizontalline.svg';\n/**\n * The horizontal line UI plugin.\n */\nexport default class HorizontalLineUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'HorizontalLineUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const t = editor.t;\n // Add the `horizontalLine` button to feature components.\n editor.ui.componentFactory.add('horizontalLine', locale => {\n const command = editor.commands.get('horizontalLine');\n const view = new ButtonView(locale);\n view.set({\n label: t('Horizontal line'),\n icon: horizontalLineIcon,\n tooltip: true\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n // Execute the command.\n this.listenTo(view, 'execute', () => {\n editor.execute('horizontalLine');\n editor.editing.view.focus();\n });\n return view;\n });\n }\n}\n","export default \"\";","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import createCompounder from './_createCompounder.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\nvar startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n});\n\nexport default startCase;\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { startCase, cloneDeep } from 'lodash-es';\n/**\n* Helper function for the downcast converter. Updates attributes on the given view element.\n*\n* @param writer The view writer.\n* @param oldViewAttributes The previous GHS attribute value.\n* @param newViewAttributes The current GHS attribute value.\n* @param viewElement The view element to update.\n*/\nexport function updateViewAttributes(writer, oldViewAttributes, newViewAttributes, viewElement) {\n if (oldViewAttributes) {\n removeViewAttributes(writer, oldViewAttributes, viewElement);\n }\n if (newViewAttributes) {\n setViewAttributes(writer, newViewAttributes, viewElement);\n }\n}\n/**\n * Helper function for the downcast converter. Sets attributes on the given view element.\n *\n * @param writer The view writer.\n * @param viewAttributes The GHS attribute value.\n * @param viewElement The view element to update.\n */\nexport function setViewAttributes(writer, viewAttributes, viewElement) {\n if (viewAttributes.attributes) {\n for (const [key, value] of Object.entries(viewAttributes.attributes)) {\n writer.setAttribute(key, value, viewElement);\n }\n }\n if (viewAttributes.styles) {\n writer.setStyle(viewAttributes.styles, viewElement);\n }\n if (viewAttributes.classes) {\n writer.addClass(viewAttributes.classes, viewElement);\n }\n}\n/**\n * Helper function for the downcast converter. Removes attributes on the given view element.\n *\n * @param writer The view writer.\n * @param viewAttributes The GHS attribute value.\n * @param viewElement The view element to update.\n */\nexport function removeViewAttributes(writer, viewAttributes, viewElement) {\n if (viewAttributes.attributes) {\n for (const [key] of Object.entries(viewAttributes.attributes)) {\n writer.removeAttribute(key, viewElement);\n }\n }\n if (viewAttributes.styles) {\n for (const style of Object.keys(viewAttributes.styles)) {\n writer.removeStyle(style, viewElement);\n }\n }\n if (viewAttributes.classes) {\n writer.removeClass(viewAttributes.classes, viewElement);\n }\n}\n/**\n* Merges view element attribute objects.\n*/\nexport function mergeViewElementAttributes(target, source) {\n const result = cloneDeep(target);\n let key = 'attributes';\n for (key in source) {\n // Merge classes.\n if (key == 'classes') {\n result[key] = Array.from(new Set([...(target[key] || []), ...source[key]]));\n }\n // Merge attributes or styles.\n else {\n result[key] = { ...target[key], ...source[key] };\n }\n }\n return result;\n}\nexport function modifyGhsAttribute(writer, item, ghsAttributeName, subject, callback) {\n const oldValue = item.getAttribute(ghsAttributeName);\n const newValue = {};\n for (const kind of ['attributes', 'styles', 'classes']) {\n // Properties other than `subject` should be assigned from `oldValue`.\n if (kind != subject) {\n if (oldValue && oldValue[kind]) {\n newValue[kind] = oldValue[kind];\n }\n continue;\n }\n // `callback` should be applied on property [`subject`].\n if (subject == 'classes') {\n const values = new Set(oldValue && oldValue.classes || []);\n callback(values);\n if (values.size) {\n newValue[kind] = Array.from(values);\n }\n continue;\n }\n const values = new Map(Object.entries(oldValue && oldValue[kind] || {}));\n callback(values);\n if (values.size) {\n newValue[kind] = Object.fromEntries(values);\n }\n }\n if (Object.keys(newValue).length) {\n if (item.is('documentSelection')) {\n writer.setSelectionAttribute(ghsAttributeName, newValue);\n }\n else {\n writer.setAttribute(ghsAttributeName, newValue, item);\n }\n }\n else if (oldValue) {\n if (item.is('documentSelection')) {\n writer.removeSelectionAttribute(ghsAttributeName);\n }\n else {\n writer.removeAttribute(ghsAttributeName, item);\n }\n }\n}\n/**\n * Transforms passed string to PascalCase format. Examples:\n * * `div` => `Div`\n * * `h1` => `H1`\n * * `table` => `Table`\n */\nexport function toPascalCase(data) {\n return startCase(data).replace(/ /g, '');\n}\n/**\n * Returns the attribute name of the model element that holds raw HTML attributes.\n */\nexport function getHtmlAttributeName(viewElementName) {\n return `html${toPascalCase(viewElementName)}Attributes`;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { toWidget } from 'ckeditor5/src/widget';\nimport { setViewAttributes, mergeViewElementAttributes, updateViewAttributes, getHtmlAttributeName } from './utils';\n/**\n * View-to-model conversion helper for object elements.\n *\n * Preserves object element content in `htmlContent` attribute.\n *\n * @returns Returns a conversion callback.\n*/\nexport function viewToModelObjectConverter({ model: modelName }) {\n return (viewElement, conversionApi) => {\n // Let's keep element HTML and its attributes, so we can rebuild element in downcast conversions.\n return conversionApi.writer.createElement(modelName, {\n htmlContent: viewElement.getCustomProperty('$rawContent')\n });\n };\n}\n/**\n * Conversion helper converting an object element to an HTML object widget.\n *\n * @returns Returns a conversion callback.\n*/\nexport function toObjectWidgetConverter(editor, { view: viewName, isInline }) {\n const t = editor.t;\n return (modelElement, { writer }) => {\n const widgetLabel = t('HTML object');\n const viewElement = createObjectView(viewName, modelElement, writer);\n const viewAttributes = modelElement.getAttribute(getHtmlAttributeName(viewName));\n writer.addClass('html-object-embed__content', viewElement);\n if (viewAttributes) {\n setViewAttributes(writer, viewAttributes, viewElement);\n }\n // Widget cannot be a raw element because the widget system would not be able\n // to add its UI to it. Thus, we need separate view container.\n const viewContainer = writer.createContainerElement(isInline ? 'span' : 'div', {\n class: 'html-object-embed',\n 'data-html-object-embed-label': widgetLabel\n }, viewElement);\n return toWidget(viewContainer, writer, { label: widgetLabel });\n };\n}\n/**\n* Creates object view element from the given model element.\n*/\nexport function createObjectView(viewName, modelElement, writer) {\n return writer.createRawElement(viewName, null, (domElement, domConverter) => {\n domConverter.setContentOf(domElement, modelElement.getAttribute('htmlContent'));\n });\n}\n/**\n * View-to-attribute conversion helper preserving inline element attributes on `$text`.\n *\n * @returns Returns a conversion callback.\n*/\nexport function viewToAttributeInlineConverter({ view: viewName, model: attributeKey, allowEmpty }, dataFilter) {\n return dispatcher => {\n dispatcher.on(`element:${viewName}`, (evt, data, conversionApi) => {\n let viewAttributes = dataFilter.processViewAttributes(data.viewItem, conversionApi);\n // Do not apply the attribute if the element itself is already consumed and there are no view attributes to store.\n if (!viewAttributes && !conversionApi.consumable.test(data.viewItem, { name: true })) {\n return;\n }\n // Otherwise, we might need to convert it to an empty object just to preserve element itself,\n // for example `` => <$text htmlCite=\"{}\">.\n viewAttributes = viewAttributes || {};\n // Consume the element itself if it wasn't consumed by any other converter.\n conversionApi.consumable.consume(data.viewItem, { name: true });\n // Since we are converting to attribute we need a range on which we will set the attribute.\n // If the range is not created yet, we will create it.\n if (!data.modelRange) {\n data = Object.assign(data, conversionApi.convertChildren(data.viewItem, data.modelCursor));\n }\n // Convert empty inline element if allowed and has any attributes.\n if (allowEmpty && data.modelRange.isCollapsed && Object.keys(viewAttributes).length) {\n const modelElement = conversionApi.writer.createElement('htmlEmptyElement');\n if (!conversionApi.safeInsert(modelElement, data.modelCursor)) {\n return;\n }\n const parts = conversionApi.getSplitParts(modelElement);\n data.modelRange = conversionApi.writer.createRange(data.modelRange.start, conversionApi.writer.createPositionAfter(parts[parts.length - 1]));\n conversionApi.updateConversionResult(modelElement, data);\n setAttributeOnItem(modelElement, viewAttributes, conversionApi);\n return;\n }\n // Set attribute on each item in range according to the schema.\n for (const node of data.modelRange.getItems()) {\n setAttributeOnItem(node, viewAttributes, conversionApi);\n }\n }, { priority: 'low' });\n };\n function setAttributeOnItem(node, viewAttributes, conversionApi) {\n if (conversionApi.schema.checkAttribute(node, attributeKey)) {\n // Node's children are converted recursively, so node can already include model attribute.\n // We want to extend it, not replace.\n const nodeAttributes = node.getAttribute(attributeKey);\n const attributesToAdd = mergeViewElementAttributes(viewAttributes, nodeAttributes || {});\n conversionApi.writer.setAttribute(attributeKey, attributesToAdd, node);\n }\n }\n}\n/**\n * Conversion helper converting an empty inline model element to an HTML element or widget.\n */\nexport function emptyInlineModelElementToViewConverter({ model: attributeKey, view: viewName }, asWidget) {\n return (item, { writer, consumable }) => {\n if (!item.hasAttribute(attributeKey)) {\n return null;\n }\n const viewElement = writer.createContainerElement(viewName);\n const attributeValue = item.getAttribute(attributeKey);\n consumable.consume(item, `attribute:${attributeKey}`);\n setViewAttributes(writer, attributeValue, viewElement);\n viewElement.getFillerOffset = () => null;\n return asWidget ? toWidget(viewElement, writer) : viewElement;\n };\n}\n/**\n * Attribute-to-view conversion helper applying attributes to view element preserved on `$text`.\n *\n * @returns Returns a conversion callback.\n*/\nexport function attributeToViewInlineConverter({ priority, view: viewName }) {\n return (attributeValue, conversionApi) => {\n if (!attributeValue) {\n return;\n }\n const { writer } = conversionApi;\n const viewElement = writer.createAttributeElement(viewName, null, { priority });\n setViewAttributes(writer, attributeValue, viewElement);\n return viewElement;\n };\n}\n/**\n * View-to-model conversion helper preserving allowed attributes on block element.\n *\n * All matched attributes will be preserved on `html*Attributes` attribute.\n *\n * @returns Returns a conversion callback.\n*/\nexport function viewToModelBlockAttributeConverter({ view: viewName }, dataFilter) {\n return (dispatcher) => {\n dispatcher.on(`element:${viewName}`, (evt, data, conversionApi) => {\n // Converting an attribute of an element that has not been converted to anything does not make sense\n // because there will be nowhere to set that attribute on. At this stage, the element should've already\n // been converted. A collapsed range can show up in to-do lists () or complex widgets (e.g. table).\n // (https://github.com/ckeditor/ckeditor5/issues/11000).\n if (!data.modelRange || data.modelRange.isCollapsed) {\n return;\n }\n const viewAttributes = dataFilter.processViewAttributes(data.viewItem, conversionApi);\n if (!viewAttributes) {\n return;\n }\n conversionApi.writer.setAttribute(getHtmlAttributeName(data.viewItem.name), viewAttributes, data.modelRange);\n }, { priority: 'low' });\n };\n}\n/**\n * Model-to-view conversion helper applying attributes preserved in `html*Attributes` attribute\n * for block elements.\n *\n * @returns Returns a conversion callback.\n*/\nexport function modelToViewBlockAttributeConverter({ view: viewName, model: modelName }) {\n return (dispatcher) => {\n dispatcher.on(`attribute:${getHtmlAttributeName(viewName)}:${modelName}`, (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const { attributeOldValue, attributeNewValue } = data;\n const viewWriter = conversionApi.writer;\n const viewElement = conversionApi.mapper.toViewElement(data.item);\n updateViewAttributes(viewWriter, attributeOldValue, attributeNewValue, viewElement);\n });\n };\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module html-support/schemadefinitions\n */\n// Skipped elements due to HTML deprecation:\n// * noframes (not sure if we should provide support for this element. CKE4 is not supporting frameset and frame,\n// but it will unpack foobar to foobar, so there\n// may be some content loss. Although using noframes as a standalone element seems invalid)\n// * keygen (this one is also empty)\n// * applet (support is limited mostly to old IE)\n// * basefont (this one is also empty)\n// * isindex (basically no support for modern browsers at all)\n//\n// Skipped elements due to lack empty element support:\n// * hr\n// * area\n// * br\n// * command\n// * map\n// * wbr\n// * colgroup -> col\n//\n// Skipped elements due to complexity:\n// * datalist with option elements used as a data source for input[list] element\n//\n// Skipped elements as they are handled as an object content:\n// * track\n// * source\n// * option\n// * param\n// * optgroup\n//\n// Skipped full page HTML elements:\n// * body\n// * html\n// * title\n// * head\n// * meta\n// * link\n// * etc...\n//\n// Skipped hidden elements:\n// noscript\nexport default {\n block: [\n // Existing features.\n {\n model: 'codeBlock',\n view: 'pre'\n },\n {\n model: 'paragraph',\n view: 'p'\n },\n {\n model: 'blockQuote',\n view: 'blockquote'\n },\n {\n model: 'listItem',\n view: 'li'\n },\n {\n model: 'pageBreak',\n view: 'div'\n },\n {\n model: 'rawHtml',\n view: 'div'\n },\n {\n model: 'table',\n view: 'table'\n },\n {\n model: 'tableRow',\n view: 'tr'\n },\n {\n model: 'tableCell',\n view: 'td'\n },\n {\n model: 'tableCell',\n view: 'th'\n },\n {\n model: 'tableColumnGroup',\n view: 'colgroup'\n },\n {\n model: 'tableColumn',\n view: 'col'\n },\n {\n model: 'caption',\n view: 'caption'\n },\n {\n model: 'caption',\n view: 'figcaption'\n },\n {\n model: 'imageBlock',\n view: 'img'\n },\n {\n model: 'imageInline',\n view: 'img'\n },\n // Compatibility features.\n {\n model: 'htmlP',\n view: 'p',\n modelSchema: {\n inheritAllFrom: '$block'\n }\n },\n {\n model: 'htmlBlockquote',\n view: 'blockquote',\n modelSchema: {\n inheritAllFrom: '$container'\n }\n },\n {\n model: 'htmlTable',\n view: 'table',\n modelSchema: {\n allowWhere: '$block',\n isBlock: true\n }\n },\n {\n model: 'htmlTbody',\n view: 'tbody',\n modelSchema: {\n allowIn: 'htmlTable',\n isBlock: false\n }\n },\n {\n model: 'htmlThead',\n view: 'thead',\n modelSchema: {\n allowIn: 'htmlTable',\n isBlock: false\n }\n },\n {\n model: 'htmlTfoot',\n view: 'tfoot',\n modelSchema: {\n allowIn: 'htmlTable',\n isBlock: false\n }\n },\n {\n model: 'htmlCaption',\n view: 'caption',\n modelSchema: {\n allowIn: 'htmlTable',\n allowChildren: '$text',\n isBlock: false\n }\n },\n {\n model: 'htmlColgroup',\n view: 'colgroup',\n modelSchema: {\n allowIn: 'htmlTable',\n allowChildren: 'col',\n isBlock: false\n }\n },\n {\n model: 'htmlCol',\n view: 'col',\n modelSchema: {\n allowIn: 'htmlColgroup',\n isBlock: false\n }\n },\n {\n model: 'htmlTr',\n view: 'tr',\n modelSchema: {\n allowIn: ['htmlTable', 'htmlThead', 'htmlTbody'],\n isLimit: true\n }\n },\n // TODO can also include text.\n {\n model: 'htmlTd',\n view: 'td',\n modelSchema: {\n allowIn: 'htmlTr',\n allowContentOf: '$container',\n isLimit: true,\n isBlock: false\n }\n },\n // TODO can also include text.\n {\n model: 'htmlTh',\n view: 'th',\n modelSchema: {\n allowIn: 'htmlTr',\n allowContentOf: '$container',\n isLimit: true,\n isBlock: false\n }\n },\n // TODO can also include text.\n {\n model: 'htmlFigure',\n view: 'figure',\n modelSchema: {\n inheritAllFrom: '$container',\n isBlock: false\n }\n },\n // TODO can also include other block elements.\n {\n model: 'htmlFigcaption',\n view: 'figcaption',\n modelSchema: {\n allowIn: 'htmlFigure',\n allowChildren: '$text',\n isBlock: false\n }\n },\n // TODO can also include text.\n {\n model: 'htmlAddress',\n view: 'address',\n modelSchema: {\n inheritAllFrom: '$container',\n isBlock: false\n }\n },\n // TODO can also include text.\n {\n model: 'htmlAside',\n view: 'aside',\n modelSchema: {\n inheritAllFrom: '$container',\n isBlock: false\n }\n },\n // TODO can also include text.\n {\n model: 'htmlMain',\n view: 'main',\n modelSchema: {\n inheritAllFrom: '$container',\n isBlock: false\n }\n },\n // TODO can also include text.\n {\n model: 'htmlDetails',\n view: 'details',\n modelSchema: {\n inheritAllFrom: '$container',\n isBlock: false\n }\n },\n {\n model: 'htmlSummary',\n view: 'summary',\n modelSchema: {\n allowChildren: '$text',\n allowIn: 'htmlDetails',\n isBlock: false\n }\n },\n {\n model: 'htmlDiv',\n view: 'div',\n paragraphLikeModel: 'htmlDivParagraph',\n modelSchema: {\n inheritAllFrom: '$container'\n }\n },\n // TODO can also include text.\n {\n model: 'htmlFieldset',\n view: 'fieldset',\n modelSchema: {\n inheritAllFrom: '$container',\n isBlock: false\n }\n },\n // TODO can also include h1-h6.\n {\n model: 'htmlLegend',\n view: 'legend',\n modelSchema: {\n allowIn: 'htmlFieldset',\n allowChildren: '$text'\n }\n },\n // TODO can also include text.\n {\n model: 'htmlHeader',\n view: 'header',\n modelSchema: {\n inheritAllFrom: '$container',\n isBlock: false\n }\n },\n // TODO can also include text.\n {\n model: 'htmlFooter',\n view: 'footer',\n modelSchema: {\n inheritAllFrom: '$container',\n isBlock: false\n }\n },\n // TODO can also include text.\n {\n model: 'htmlForm',\n view: 'form',\n modelSchema: {\n inheritAllFrom: '$container',\n isBlock: true\n }\n },\n {\n model: 'htmlHgroup',\n view: 'hgroup',\n modelSchema: {\n allowChildren: [\n 'htmlH1',\n 'htmlH2',\n 'htmlH3',\n 'htmlH4',\n 'htmlH5',\n 'htmlH6'\n ],\n isBlock: false\n }\n },\n {\n model: 'htmlH1',\n view: 'h1',\n modelSchema: {\n inheritAllFrom: '$block'\n }\n },\n {\n model: 'htmlH2',\n view: 'h2',\n modelSchema: {\n inheritAllFrom: '$block'\n }\n },\n {\n model: 'htmlH3',\n view: 'h3',\n modelSchema: {\n inheritAllFrom: '$block'\n }\n },\n {\n model: 'htmlH4',\n view: 'h4',\n modelSchema: {\n inheritAllFrom: '$block'\n }\n },\n {\n model: 'htmlH5',\n view: 'h5',\n modelSchema: {\n inheritAllFrom: '$block'\n }\n },\n {\n model: 'htmlH6',\n view: 'h6',\n modelSchema: {\n inheritAllFrom: '$block'\n }\n },\n {\n model: '$htmlList',\n modelSchema: {\n allowWhere: '$container',\n allowChildren: ['$htmlList', 'htmlLi'],\n isBlock: false\n }\n },\n {\n model: 'htmlDir',\n view: 'dir',\n modelSchema: {\n inheritAllFrom: '$htmlList'\n }\n },\n {\n model: 'htmlMenu',\n view: 'menu',\n modelSchema: {\n inheritAllFrom: '$htmlList'\n }\n },\n {\n model: 'htmlUl',\n view: 'ul',\n modelSchema: {\n inheritAllFrom: '$htmlList'\n }\n },\n {\n model: 'htmlOl',\n view: 'ol',\n modelSchema: {\n inheritAllFrom: '$htmlList'\n }\n },\n // TODO can also include other block elements.\n {\n model: 'htmlLi',\n view: 'li',\n modelSchema: {\n allowIn: '$htmlList',\n allowChildren: '$text',\n isBlock: false\n }\n },\n {\n model: 'htmlPre',\n view: 'pre',\n modelSchema: {\n inheritAllFrom: '$block'\n }\n },\n {\n model: 'htmlArticle',\n view: 'article',\n modelSchema: {\n inheritAllFrom: '$container',\n isBlock: false\n }\n },\n {\n model: 'htmlSection',\n view: 'section',\n modelSchema: {\n inheritAllFrom: '$container',\n isBlock: false\n }\n },\n // TODO can also include text.\n {\n model: 'htmlNav',\n view: 'nav',\n modelSchema: {\n inheritAllFrom: '$container',\n isBlock: false\n }\n },\n {\n model: 'htmlDivDl',\n view: 'div',\n modelSchema: {\n allowChildren: ['htmlDt', 'htmlDd'],\n allowIn: 'htmlDl'\n }\n },\n {\n model: 'htmlDl',\n view: 'dl',\n modelSchema: {\n allowWhere: '$container',\n allowChildren: ['htmlDt', 'htmlDd', 'htmlDivDl'],\n isBlock: false\n }\n },\n {\n model: 'htmlDt',\n view: 'dt',\n modelSchema: {\n allowChildren: '$block',\n isBlock: false\n }\n },\n {\n model: 'htmlDd',\n view: 'dd',\n modelSchema: {\n allowChildren: '$block',\n isBlock: false\n }\n },\n {\n model: 'htmlCenter',\n view: 'center',\n modelSchema: {\n inheritAllFrom: '$container',\n isBlock: false\n }\n }\n ],\n inline: [\n // Existing features (attribute set on an existing model element).\n {\n model: 'htmlLiAttributes',\n view: 'li',\n appliesToBlock: true,\n coupledAttribute: 'listItemId'\n },\n {\n model: 'htmlOlAttributes',\n view: 'ol',\n appliesToBlock: true,\n coupledAttribute: 'listItemId'\n },\n {\n model: 'htmlUlAttributes',\n view: 'ul',\n appliesToBlock: true,\n coupledAttribute: 'listItemId'\n },\n {\n model: 'htmlFigureAttributes',\n view: 'figure',\n appliesToBlock: 'table'\n },\n {\n model: 'htmlTheadAttributes',\n view: 'thead',\n appliesToBlock: 'table'\n },\n {\n model: 'htmlTbodyAttributes',\n view: 'tbody',\n appliesToBlock: 'table'\n },\n {\n model: 'htmlFigureAttributes',\n view: 'figure',\n appliesToBlock: 'imageBlock'\n },\n // Compatibility features.\n {\n model: 'htmlAcronym',\n view: 'acronym',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlTt',\n view: 'tt',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlFont',\n view: 'font',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlTime',\n view: 'time',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlVar',\n view: 'var',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlBig',\n view: 'big',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlSmall',\n view: 'small',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlSamp',\n view: 'samp',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlQ',\n view: 'q',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlOutput',\n view: 'output',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlKbd',\n view: 'kbd',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlBdi',\n view: 'bdi',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlBdo',\n view: 'bdo',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlAbbr',\n view: 'abbr',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlA',\n view: 'a',\n priority: 5,\n coupledAttribute: 'linkHref',\n attributeProperties: {\n copyOnEnter: true\n }\n },\n {\n model: 'htmlStrong',\n view: 'strong',\n coupledAttribute: 'bold',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlB',\n view: 'b',\n coupledAttribute: 'bold',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlI',\n view: 'i',\n coupledAttribute: 'italic',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlEm',\n view: 'em',\n coupledAttribute: 'italic',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlS',\n view: 's',\n coupledAttribute: 'strikethrough',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n // TODO According to HTML-spec can behave as div-like element, although CKE4 only handles it as an inline element.\n {\n model: 'htmlDel',\n view: 'del',\n coupledAttribute: 'strikethrough',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n // TODO According to HTML-spec can behave as div-like element, although CKE4 only handles it as an inline element.\n {\n model: 'htmlIns',\n view: 'ins',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlU',\n view: 'u',\n coupledAttribute: 'underline',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlSub',\n view: 'sub',\n coupledAttribute: 'subscript',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlSup',\n view: 'sup',\n coupledAttribute: 'superscript',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlCode',\n view: 'code',\n coupledAttribute: 'code',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlMark',\n view: 'mark',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlSpan',\n view: 'span',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlCite',\n view: 'cite',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlLabel',\n view: 'label',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n {\n model: 'htmlDfn',\n view: 'dfn',\n attributeProperties: {\n copyOnEnter: true,\n isFormatting: true\n }\n },\n // Objects.\n {\n model: 'htmlObject',\n view: 'object',\n isObject: true,\n modelSchema: {\n inheritAllFrom: '$inlineObject'\n }\n },\n {\n model: 'htmlIframe',\n view: 'iframe',\n isObject: true,\n modelSchema: {\n inheritAllFrom: '$inlineObject'\n }\n },\n {\n model: 'htmlInput',\n view: 'input',\n isObject: true,\n modelSchema: {\n inheritAllFrom: '$inlineObject'\n }\n },\n {\n model: 'htmlButton',\n view: 'button',\n isObject: true,\n modelSchema: {\n inheritAllFrom: '$inlineObject'\n }\n },\n {\n model: 'htmlTextarea',\n view: 'textarea',\n isObject: true,\n modelSchema: {\n inheritAllFrom: '$inlineObject'\n }\n },\n {\n model: 'htmlSelect',\n view: 'select',\n isObject: true,\n modelSchema: {\n inheritAllFrom: '$inlineObject'\n }\n },\n {\n model: 'htmlVideo',\n view: 'video',\n isObject: true,\n modelSchema: {\n inheritAllFrom: '$inlineObject'\n }\n },\n {\n model: 'htmlEmbed',\n view: 'embed',\n isObject: true,\n modelSchema: {\n inheritAllFrom: '$inlineObject'\n }\n },\n {\n model: 'htmlOembed',\n view: 'oembed',\n isObject: true,\n modelSchema: {\n inheritAllFrom: '$inlineObject'\n }\n },\n {\n model: 'htmlAudio',\n view: 'audio',\n isObject: true,\n modelSchema: {\n inheritAllFrom: '$inlineObject'\n }\n },\n {\n model: 'htmlImg',\n view: 'img',\n isObject: true,\n modelSchema: {\n inheritAllFrom: '$inlineObject'\n }\n },\n {\n model: 'htmlCanvas',\n view: 'canvas',\n isObject: true,\n modelSchema: {\n inheritAllFrom: '$inlineObject'\n }\n },\n // TODO it could be probably represented as non-object element, although it has graphical representation,\n // so probably makes more sense to keep it as an object.\n {\n model: 'htmlMeter',\n view: 'meter',\n isObject: true,\n modelSchema: {\n inheritAllFrom: '$inlineObject'\n }\n },\n // TODO it could be probably represented as non-object element, although it has graphical representation,\n // so probably makes more sense to keep it as an object.\n {\n model: 'htmlProgress',\n view: 'progress',\n isObject: true,\n modelSchema: {\n inheritAllFrom: '$inlineObject'\n }\n },\n {\n model: 'htmlScript',\n view: 'script',\n modelSchema: {\n allowWhere: ['$text', '$block'],\n isInline: true\n }\n },\n {\n model: 'htmlStyle',\n view: 'style',\n modelSchema: {\n allowWhere: ['$text', '$block'],\n isInline: true\n }\n },\n {\n model: 'htmlCustomElement',\n view: '$customElement',\n modelSchema: {\n allowWhere: ['$text', '$block'],\n allowAttributesOf: '$inlineObject',\n isInline: true\n }\n }\n ]\n};\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nexport default mergeWith;\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module html-support/dataschema\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { toArray } from 'ckeditor5/src/utils';\nimport defaultConfig from './schemadefinitions';\nimport { mergeWith } from 'lodash-es';\n/**\n * Holds representation of the extended HTML document type definitions to be used by the\n * editor in HTML support.\n *\n * Data schema is represented by data schema definitions.\n *\n * To add new definition for block element,\n * use {@link module:html-support/dataschema~DataSchema#registerBlockElement} method:\n *\n * ```ts\n * dataSchema.registerBlockElement( {\n * \tview: 'section',\n * \tmodel: 'my-section',\n * \tmodelSchema: {\n * \t\tinheritAllFrom: '$block'\n * \t}\n * } );\n * ```\n *\n * To add new definition for inline element,\n * use {@link module:html-support/dataschema~DataSchema#registerInlineElement} method:\n *\n * ```\n * dataSchema.registerInlineElement( {\n * \tview: 'span',\n * \tmodel: 'my-span',\n * \tattributeProperties: {\n * \t\tcopyOnEnter: true\n * \t}\n * } );\n * ```\n */\nexport default class DataSchema extends Plugin {\n constructor() {\n super(...arguments);\n /**\n * A map of registered data schema definitions.\n */\n this._definitions = [];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'DataSchema';\n }\n /**\n * @inheritDoc\n */\n init() {\n for (const definition of defaultConfig.block) {\n this.registerBlockElement(definition);\n }\n for (const definition of defaultConfig.inline) {\n this.registerInlineElement(definition);\n }\n }\n /**\n * Add new data schema definition describing block element.\n */\n registerBlockElement(definition) {\n this._definitions.push({ ...definition, isBlock: true });\n }\n /**\n * Add new data schema definition describing inline element.\n */\n registerInlineElement(definition) {\n this._definitions.push({ ...definition, isInline: true });\n }\n /**\n * Updates schema definition describing block element with new properties.\n *\n * Creates new scheme if it doesn't exist.\n * Array properties are concatenated with original values.\n *\n * @param definition Definition update.\n */\n extendBlockElement(definition) {\n this._extendDefinition({ ...definition, isBlock: true });\n }\n /**\n * Updates schema definition describing inline element with new properties.\n *\n * Creates new scheme if it doesn't exist.\n * Array properties are concatenated with original values.\n *\n * @param definition Definition update.\n */\n extendInlineElement(definition) {\n this._extendDefinition({ ...definition, isInline: true });\n }\n /**\n * Returns all definitions matching the given view name.\n *\n * @param includeReferences Indicates if this method should also include definitions of referenced models.\n */\n getDefinitionsForView(viewName, includeReferences = false) {\n const definitions = new Set();\n for (const definition of this._getMatchingViewDefinitions(viewName)) {\n if (includeReferences) {\n for (const reference of this._getReferences(definition.model)) {\n definitions.add(reference);\n }\n }\n definitions.add(definition);\n }\n return definitions;\n }\n /**\n * Returns definitions matching the given model name.\n */\n getDefinitionsForModel(modelName) {\n return this._definitions.filter(definition => definition.model == modelName);\n }\n /**\n * Returns definitions matching the given view name.\n */\n _getMatchingViewDefinitions(viewName) {\n return this._definitions.filter(def => def.view && testViewName(viewName, def.view));\n }\n /**\n * Resolves all definition references registered for the given data schema definition.\n *\n * @param modelName Data schema model name.\n */\n *_getReferences(modelName) {\n const inheritProperties = [\n 'inheritAllFrom',\n 'inheritTypesFrom',\n 'allowWhere',\n 'allowContentOf',\n 'allowAttributesOf'\n ];\n const definitions = this._definitions.filter(definition => definition.model == modelName);\n for (const { modelSchema } of definitions) {\n if (!modelSchema) {\n continue;\n }\n for (const property of inheritProperties) {\n for (const referenceName of toArray(modelSchema[property] || [])) {\n const definitions = this._definitions.filter(definition => definition.model == referenceName);\n for (const definition of definitions) {\n if (referenceName !== modelName) {\n yield* this._getReferences(definition.model);\n yield definition;\n }\n }\n }\n }\n }\n }\n /**\n * Updates schema definition with new properties.\n *\n * Creates new scheme if it doesn't exist.\n * Array properties are concatenated with original values.\n *\n * @param definition Definition update.\n */\n _extendDefinition(definition) {\n const currentDefinitions = Array.from(this._definitions.entries())\n .filter(([, currentDefinition]) => currentDefinition.model == definition.model);\n if (currentDefinitions.length == 0) {\n this._definitions.push(definition);\n return;\n }\n for (const [idx, currentDefinition] of currentDefinitions) {\n this._definitions[idx] = mergeWith({}, currentDefinition, definition, (target, source) => {\n return Array.isArray(target) ? target.concat(source) : undefined;\n });\n }\n }\n}\n/**\n * Test view name against the given pattern.\n */\nfunction testViewName(pattern, viewName) {\n if (typeof pattern === 'string') {\n return pattern === viewName;\n }\n if (pattern instanceof RegExp) {\n return pattern.test(viewName);\n }\n return false;\n}\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","/**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseIndexOfWith;\n","import arrayMap from './_arrayMap.js';\nimport baseIndexOf from './_baseIndexOf.js';\nimport baseIndexOfWith from './_baseIndexOfWith.js';\nimport baseUnary from './_baseUnary.js';\nimport copyArray from './_copyArray.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n}\n\nexport default basePullAll;\n","import baseRest from './_baseRest.js';\nimport pullAll from './pullAll.js';\n\n/**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\nvar pull = baseRest(pullAll);\n\nexport default pull;\n","import basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\nfunction pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n}\n\nexport default pullAll;\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./datafilter.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module html-support/datafilter\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Matcher } from 'ckeditor5/src/engine';\nimport { CKEditorError, priorities, isValidAttributeName } from 'ckeditor5/src/utils';\nimport { Widget } from 'ckeditor5/src/widget';\nimport { viewToModelObjectConverter, toObjectWidgetConverter, createObjectView, viewToAttributeInlineConverter, attributeToViewInlineConverter, emptyInlineModelElementToViewConverter, viewToModelBlockAttributeConverter, modelToViewBlockAttributeConverter } from './converters';\nimport { default as DataSchema } from './dataschema';\nimport { getHtmlAttributeName } from './utils';\nimport { isPlainObject, pull as removeItemFromArray } from 'lodash-es';\nimport '../theme/datafilter.css';\n/**\n * Allows to validate elements and element attributes registered by {@link module:html-support/dataschema~DataSchema}.\n *\n * To enable registered element in the editor, use {@link module:html-support/datafilter~DataFilter#allowElement} method:\n *\n * ```ts\n * dataFilter.allowElement( 'section' );\n * ```\n *\n * You can also allow or disallow specific element attributes:\n *\n * ```ts\n * // Allow `data-foo` attribute on `section` element.\n * dataFilter.allowAttributes( {\n * \tname: 'section',\n * \tattributes: {\n * \t\t'data-foo': true\n * \t}\n * } );\n *\n * // Disallow `color` style attribute on 'section' element.\n * dataFilter.disallowAttributes( {\n * \tname: 'section',\n * \tstyles: {\n * \t\tcolor: /[\\s\\S]+/\n * \t}\n * } );\n * ```\n *\n * To apply the information about allowed and disallowed attributes in custom integration plugin,\n * use the {@link module:html-support/datafilter~DataFilter#processViewAttributes `processViewAttributes()`} method.\n */\nexport default class DataFilter extends Plugin {\n constructor(editor) {\n super(editor);\n this._dataSchema = editor.plugins.get('DataSchema');\n this._allowedAttributes = new Matcher();\n this._disallowedAttributes = new Matcher();\n this._allowedElements = new Set();\n this._disallowedElements = new Set();\n this._dataInitialized = false;\n this._coupledAttributes = null;\n this._registerElementsAfterInit();\n this._registerElementHandlers();\n this._registerCoupledAttributesPostFixer();\n this._registerAssociatedHtmlAttributesPostFixer();\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'DataFilter';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [DataSchema, Widget];\n }\n /**\n * Load a configuration of one or many elements, where their attributes should be allowed.\n *\n * **Note**: Rules will be applied just before next data pipeline data init or set.\n *\n * @param config Configuration of elements that should have their attributes accepted in the editor.\n */\n loadAllowedConfig(config) {\n for (const pattern of config) {\n // MatcherPattern allows omitting `name` to widen the search of elements.\n // Let's keep it consistent and match every element if a `name` has not been provided.\n const elementName = pattern.name || /[\\s\\S]+/;\n const rules = splitRules(pattern);\n this.allowElement(elementName);\n rules.forEach(pattern => this.allowAttributes(pattern));\n }\n }\n /**\n * Load a configuration of one or many elements, where their attributes should be disallowed.\n *\n * **Note**: Rules will be applied just before next data pipeline data init or set.\n *\n * @param config Configuration of elements that should have their attributes rejected from the editor.\n */\n loadDisallowedConfig(config) {\n for (const pattern of config) {\n // MatcherPattern allows omitting `name` to widen the search of elements.\n // Let's keep it consistent and match every element if a `name` has not been provided.\n const elementName = pattern.name || /[\\s\\S]+/;\n const rules = splitRules(pattern);\n // Disallow element itself if there is no other rules.\n if (rules.length == 0) {\n this.disallowElement(elementName);\n }\n else {\n rules.forEach(pattern => this.disallowAttributes(pattern));\n }\n }\n }\n /**\n * Load a configuration of one or many elements, where when empty should be allowed.\n *\n * **Note**: It modifies DataSchema so must be loaded before registering filtering rules.\n *\n * @param config Configuration of elements that should be preserved even if empty.\n */\n loadAllowedEmptyElementsConfig(config) {\n for (const elementName of config) {\n this.allowEmptyElement(elementName);\n }\n }\n /**\n * Allow the given element in the editor context.\n *\n * This method will only allow elements described by the {@link module:html-support/dataschema~DataSchema} used\n * to create data filter.\n *\n * **Note**: Rules will be applied just before next data pipeline data init or set.\n *\n * @param viewName String or regular expression matching view name.\n */\n allowElement(viewName) {\n for (const definition of this._dataSchema.getDefinitionsForView(viewName, true)) {\n this._addAllowedElement(definition);\n // Reset cached map to recalculate it on the next usage.\n this._coupledAttributes = null;\n }\n }\n /**\n * Disallow the given element in the editor context.\n *\n * This method will only disallow elements described by the {@link module:html-support/dataschema~DataSchema} used\n * to create data filter.\n *\n * @param viewName String or regular expression matching view name.\n */\n disallowElement(viewName) {\n for (const definition of this._dataSchema.getDefinitionsForView(viewName, false)) {\n this._disallowedElements.add(definition.view);\n }\n }\n /**\n * Allow the given empty element in the editor context.\n *\n * This method will only allow elements described by the {@link module:html-support/dataschema~DataSchema} used\n * to create data filter.\n *\n * **Note**: It modifies DataSchema so must be called before registering filtering rules.\n *\n * @param viewName String or regular expression matching view name.\n */\n allowEmptyElement(viewName) {\n for (const definition of this._dataSchema.getDefinitionsForView(viewName, true)) {\n if (definition.isInline) {\n this._dataSchema.extendInlineElement({ ...definition, allowEmpty: true });\n }\n }\n }\n /**\n * Allow the given attributes for view element allowed by {@link #allowElement} method.\n *\n * @param config Pattern matching all attributes which should be allowed.\n */\n allowAttributes(config) {\n this._allowedAttributes.add(config);\n }\n /**\n * Disallow the given attributes for view element allowed by {@link #allowElement} method.\n *\n * @param config Pattern matching all attributes which should be disallowed.\n */\n disallowAttributes(config) {\n this._disallowedAttributes.add(config);\n }\n /**\n * Processes all allowed and disallowed attributes on the view element by consuming them and returning the allowed ones.\n *\n * This method applies the configuration set up by {@link #allowAttributes `allowAttributes()`}\n * and {@link #disallowAttributes `disallowAttributes()`} over the given view element by consuming relevant attributes.\n * It returns the allowed attributes that were found on the given view element for further processing by integration code.\n *\n * ```ts\n * dispatcher.on( 'element:myElement', ( evt, data, conversionApi ) => {\n * \t// Get rid of disallowed and extract all allowed attributes from a viewElement.\n * \tconst viewAttributes = dataFilter.processViewAttributes( data.viewItem, conversionApi );\n * \t// Do something with them, i.e. store inside a model as a dictionary.\n * \tif ( viewAttributes ) {\n * \t\tconversionApi.writer.setAttribute( 'htmlAttributesOfMyElement', viewAttributes, data.modelRange );\n * \t}\n * } );\n * ```\n *\n * @see module:engine/conversion/viewconsumable~ViewConsumable#consume\n *\n * @returns Object with following properties:\n * - attributes Set with matched attribute names.\n * - styles Set with matched style names.\n * - classes Set with matched class names.\n */\n processViewAttributes(viewElement, conversionApi) {\n // Make sure that the disabled attributes are handled before the allowed attributes are called.\n // For example, for block images the
    converter triggers conversion for first and then for other elements, i.e. .\n consumeAttributes(viewElement, conversionApi, this._disallowedAttributes);\n return consumeAttributes(viewElement, conversionApi, this._allowedAttributes);\n }\n /**\n * Adds allowed element definition and fires registration event.\n */\n _addAllowedElement(definition) {\n if (this._allowedElements.has(definition)) {\n return;\n }\n this._allowedElements.add(definition);\n // For attribute based integrations (table figure, document lists, etc.) register related element definitions.\n if ('appliesToBlock' in definition && typeof definition.appliesToBlock == 'string') {\n for (const relatedDefinition of this._dataSchema.getDefinitionsForModel(definition.appliesToBlock)) {\n if (relatedDefinition.isBlock) {\n this._addAllowedElement(relatedDefinition);\n }\n }\n }\n // We need to wait for all features to be initialized before we can register\n // element, so we can access existing features model schemas.\n // If the data has not been initialized yet, _registerElementsAfterInit() method will take care of\n // registering elements.\n if (this._dataInitialized) {\n // Defer registration to the next data pipeline data set so any disallow rules could be applied\n // even if added after allow rule (disallowElement).\n this.editor.data.once('set', () => {\n this._fireRegisterEvent(definition);\n }, {\n // With the highest priority listener we are able to register elements right before\n // running data conversion.\n priority: priorities.highest + 1\n });\n }\n }\n /**\n * Registers elements allowed by {@link module:html-support/datafilter~DataFilter#allowElement} method\n * once {@link module:engine/controller/datacontroller~DataController editor's data controller} is initialized.\n */\n _registerElementsAfterInit() {\n this.editor.data.on('init', () => {\n this._dataInitialized = true;\n for (const definition of this._allowedElements) {\n this._fireRegisterEvent(definition);\n }\n }, {\n // With highest priority listener we are able to register elements right before\n // running data conversion. Also:\n // * Make sure that priority is higher than the one used by `RealTimeCollaborationClient`,\n // as RTC is stopping event propagation.\n // * Make sure no other features hook into this event before GHS because otherwise the\n // downcast conversion (for these features) could run before GHS registered its converters\n // (https://github.com/ckeditor/ckeditor5/issues/11356).\n priority: priorities.highest + 1\n });\n }\n /**\n * Registers default element handlers.\n */\n _registerElementHandlers() {\n this.on('register', (evt, definition) => {\n const schema = this.editor.model.schema;\n // Object element should be only registered for new features.\n // If the model schema is already registered, it should be handled by\n // #_registerBlockElement() or #_registerObjectElement() attribute handlers.\n if (definition.isObject && !schema.isRegistered(definition.model)) {\n this._registerObjectElement(definition);\n }\n else if (definition.isBlock) {\n this._registerBlockElement(definition);\n }\n else if (definition.isInline) {\n this._registerInlineElement(definition);\n }\n else {\n /**\n * The definition cannot be handled by the data filter.\n *\n * Make sure that the registered definition is correct.\n *\n * @error data-filter-invalid-definition\n */\n throw new CKEditorError('data-filter-invalid-definition', null, definition);\n }\n evt.stop();\n }, { priority: 'lowest' });\n }\n /**\n * Registers a model post-fixer that is removing coupled GHS attributes of inline elements. Those attributes\n * are removed if a coupled feature attribute is removed.\n *\n * For example, consider following HTML:\n *\n * ```html\n * bar\n * ```\n *\n * Which would be upcasted to following text node in the model:\n *\n * ```html\n * <$text linkHref=\"foo.html\" htmlA=\"{ attributes: { id: 'myId' } }\">bar\n * ```\n *\n * When the user removes the link from that text (using UI), only `linkHref` attribute would be removed:\n *\n * ```html\n * <$text htmlA=\"{ attributes: { id: 'myId' } }\">bar\n * ```\n *\n * The `htmlA` attribute would stay in the model and would cause GHS to generate an `` element.\n * This is incorrect from UX point of view, as the user wanted to remove the whole link (not only `href`).\n */\n _registerCoupledAttributesPostFixer() {\n const model = this.editor.model;\n model.document.registerPostFixer(writer => {\n const changes = model.document.differ.getChanges();\n let changed = false;\n const coupledAttributes = this._getCoupledAttributesMap();\n for (const change of changes) {\n // Handle only attribute removals.\n if (change.type != 'attribute' || change.attributeNewValue !== null) {\n continue;\n }\n // Find a list of coupled GHS attributes.\n const attributeKeys = coupledAttributes.get(change.attributeKey);\n if (!attributeKeys) {\n continue;\n }\n // Remove the coupled GHS attributes on the same range as the feature attribute was removed.\n for (const { item } of change.range.getWalker({ shallow: true })) {\n for (const attributeKey of attributeKeys) {\n if (item.hasAttribute(attributeKey)) {\n writer.removeAttribute(attributeKey, item);\n changed = true;\n }\n }\n }\n }\n return changed;\n });\n }\n /**\n * Removes `html*Attributes` attributes from incompatible elements.\n *\n * For example, consider the following HTML:\n *\n * ```html\n * foobar[]\n * ```\n *\n * Pressing `enter` creates a new `paragraph` element that inherits\n * the `htmlH2Attributes` attribute from `heading2`.\n *\n * ```html\n * foobar\n * []\n * ```\n *\n * This postfixer ensures that this doesn't happen, and that elements can\n * only have `html*Attributes` associated with them,\n * e.g.: `htmlPAttributes` for `

    `, `htmlDivAttributes` for `

    `, etc.\n *\n * With it enabled, pressing `enter` at the end of `` will create\n * a new paragraph without the `htmlH2Attributes` attribute.\n *\n * ```html\n * foobar\n * []\n * ```\n */\n _registerAssociatedHtmlAttributesPostFixer() {\n const model = this.editor.model;\n model.document.registerPostFixer(writer => {\n const changes = model.document.differ.getChanges();\n let changed = false;\n for (const change of changes) {\n if (change.type !== 'insert' || change.name === '$text') {\n continue;\n }\n for (const attr of change.attributes.keys()) {\n if (!attr.startsWith('html') || !attr.endsWith('Attributes')) {\n continue;\n }\n if (!model.schema.checkAttribute(change.name, attr)) {\n writer.removeAttribute(attr, change.position.nodeAfter);\n changed = true;\n }\n }\n }\n return changed;\n });\n }\n /**\n * Collects the map of coupled attributes. The returned map is keyed by the feature attribute name\n * and coupled GHS attribute names are stored in the value array.\n */\n _getCoupledAttributesMap() {\n if (this._coupledAttributes) {\n return this._coupledAttributes;\n }\n this._coupledAttributes = new Map();\n for (const definition of this._allowedElements) {\n if (definition.coupledAttribute && definition.model) {\n const attributeNames = this._coupledAttributes.get(definition.coupledAttribute);\n if (attributeNames) {\n attributeNames.push(definition.model);\n }\n else {\n this._coupledAttributes.set(definition.coupledAttribute, [definition.model]);\n }\n }\n }\n return this._coupledAttributes;\n }\n /**\n * Fires `register` event for the given element definition.\n */\n _fireRegisterEvent(definition) {\n if (definition.view && this._disallowedElements.has(definition.view)) {\n return;\n }\n this.fire(definition.view ? `register:${definition.view}` : 'register', definition);\n }\n /**\n * Registers object element and attribute converters for the given data schema definition.\n */\n _registerObjectElement(definition) {\n const editor = this.editor;\n const schema = editor.model.schema;\n const conversion = editor.conversion;\n const { view: viewName, model: modelName } = definition;\n schema.register(modelName, definition.modelSchema);\n /* istanbul ignore next: paranoid check -- @preserve */\n if (!viewName) {\n return;\n }\n schema.extend(definition.model, {\n allowAttributes: [getHtmlAttributeName(viewName), 'htmlContent']\n });\n // Store element content in special `$rawContent` custom property to\n // avoid editor's data filtering mechanism.\n editor.data.registerRawContentMatcher({\n name: viewName\n });\n conversion.for('upcast').elementToElement({\n view: viewName,\n model: viewToModelObjectConverter(definition),\n // With a `low` priority, `paragraph` plugin auto-paragraphing mechanism is executed. Make sure\n // this listener is called before it. If not, some elements will be transformed into a paragraph.\n // `+ 2` is used to take priority over `_addDefaultH1Conversion` in the Heading plugin.\n converterPriority: priorities.low + 2\n });\n conversion.for('upcast').add(viewToModelBlockAttributeConverter(definition, this));\n conversion.for('editingDowncast').elementToStructure({\n model: {\n name: modelName,\n attributes: [getHtmlAttributeName(viewName)]\n },\n view: toObjectWidgetConverter(editor, definition)\n });\n conversion.for('dataDowncast').elementToElement({\n model: modelName,\n view: (modelElement, { writer }) => {\n return createObjectView(viewName, modelElement, writer);\n }\n });\n conversion.for('dataDowncast').add(modelToViewBlockAttributeConverter(definition));\n }\n /**\n * Registers block element and attribute converters for the given data schema definition.\n */\n _registerBlockElement(definition) {\n const editor = this.editor;\n const schema = editor.model.schema;\n const conversion = editor.conversion;\n const { view: viewName, model: modelName } = definition;\n if (!schema.isRegistered(definition.model)) {\n schema.register(definition.model, definition.modelSchema);\n if (!viewName) {\n return;\n }\n conversion.for('upcast').elementToElement({\n model: modelName,\n view: viewName,\n // With a `low` priority, `paragraph` plugin auto-paragraphing mechanism is executed. Make sure\n // this listener is called before it. If not, some elements will be transformed into a paragraph.\n // `+ 2` is used to take priority over `_addDefaultH1Conversion` in the Heading plugin.\n converterPriority: priorities.low + 2\n });\n conversion.for('downcast').elementToElement({\n model: modelName,\n view: viewName\n });\n }\n if (!viewName) {\n return;\n }\n schema.extend(definition.model, {\n allowAttributes: getHtmlAttributeName(viewName)\n });\n conversion.for('upcast').add(viewToModelBlockAttributeConverter(definition, this));\n conversion.for('downcast').add(modelToViewBlockAttributeConverter(definition));\n }\n /**\n * Registers inline element and attribute converters for the given data schema definition.\n *\n * Extends `$text` model schema to allow the given definition model attribute and its properties.\n */\n _registerInlineElement(definition) {\n const editor = this.editor;\n const schema = editor.model.schema;\n const conversion = editor.conversion;\n const attributeKey = definition.model;\n // This element is stored in the model as an attribute on a block element, for example DocumentLists.\n if (definition.appliesToBlock) {\n return;\n }\n schema.extend('$text', {\n allowAttributes: attributeKey\n });\n if (definition.attributeProperties) {\n schema.setAttributeProperties(attributeKey, definition.attributeProperties);\n }\n conversion.for('upcast').add(viewToAttributeInlineConverter(definition, this));\n conversion.for('downcast').attributeToElement({\n model: attributeKey,\n view: attributeToViewInlineConverter(definition)\n });\n if (!definition.allowEmpty) {\n return;\n }\n schema.setAttributeProperties(attributeKey, { copyFromObject: false });\n if (!schema.isRegistered('htmlEmptyElement')) {\n schema.register('htmlEmptyElement', {\n inheritAllFrom: '$inlineObject'\n });\n }\n editor.data.htmlProcessor.domConverter.registerInlineObjectMatcher(element => {\n // Element must be empty and have any attribute.\n if (element.name == definition.view &&\n element.isEmpty &&\n Array.from(element.getAttributeKeys()).length) {\n return {\n name: true\n };\n }\n return null;\n });\n conversion.for('editingDowncast')\n .elementToElement({\n model: 'htmlEmptyElement',\n view: emptyInlineModelElementToViewConverter(definition, true)\n });\n conversion.for('dataDowncast')\n .elementToElement({\n model: 'htmlEmptyElement',\n view: emptyInlineModelElementToViewConverter(definition)\n });\n }\n}\n/**\n * Matches and consumes the given view attributes.\n */\nfunction consumeAttributes(viewElement, conversionApi, matcher) {\n const matches = consumeAttributeMatches(viewElement, conversionApi, matcher);\n const { attributes, styles, classes } = mergeMatchResults(matches);\n const viewAttributes = {};\n // Remove invalid DOM element attributes.\n if (attributes.size) {\n for (const key of attributes) {\n if (!isValidAttributeName(key)) {\n attributes.delete(key);\n }\n }\n }\n if (attributes.size) {\n viewAttributes.attributes = iterableToObject(attributes, key => viewElement.getAttribute(key));\n }\n if (styles.size) {\n viewAttributes.styles = iterableToObject(styles, key => viewElement.getStyle(key));\n }\n if (classes.size) {\n viewAttributes.classes = Array.from(classes);\n }\n if (!Object.keys(viewAttributes).length) {\n return null;\n }\n return viewAttributes;\n}\n/**\n * Consumes matched attributes.\n *\n * @returns Array with match information about found attributes.\n */\nfunction consumeAttributeMatches(viewElement, { consumable }, matcher) {\n const matches = matcher.matchAll(viewElement) || [];\n const consumedMatches = [];\n for (const match of matches) {\n removeConsumedAttributes(consumable, viewElement, match);\n // We only want to consume attributes, so element can be still processed by other converters.\n delete match.match.name;\n consumable.consume(viewElement, match.match);\n consumedMatches.push(match);\n }\n return consumedMatches;\n}\n/**\n * Removes attributes from the given match that were already consumed by other converters.\n */\nfunction removeConsumedAttributes(consumable, viewElement, match) {\n for (const key of ['attributes', 'classes', 'styles']) {\n const attributes = match.match[key];\n if (!attributes) {\n continue;\n }\n // Iterating over a copy of an array so removing items doesn't influence iteration.\n for (const value of Array.from(attributes)) {\n if (!consumable.test(viewElement, ({ [key]: [value] }))) {\n removeItemFromArray(attributes, value);\n }\n }\n }\n}\n/**\n * Merges the result of {@link module:engine/view/matcher~Matcher#matchAll} method.\n *\n * @param matches\n * @returns Object with following properties:\n * - attributes Set with matched attribute names.\n * - styles Set with matched style names.\n * - classes Set with matched class names.\n */\nfunction mergeMatchResults(matches) {\n const matchResult = {\n attributes: new Set(),\n classes: new Set(),\n styles: new Set()\n };\n for (const match of matches) {\n for (const key in matchResult) {\n const values = match.match[key] || [];\n values.forEach(value => (matchResult[key]).add(value));\n }\n }\n return matchResult;\n}\n/**\n * Converts the given iterable object into an object.\n */\nfunction iterableToObject(iterable, getValue) {\n const attributesObject = {};\n for (const prop of iterable) {\n const value = getValue(prop);\n if (value !== undefined) {\n attributesObject[prop] = getValue(prop);\n }\n }\n return attributesObject;\n}\n/**\n * Matcher by default has to match **all** patterns to count it as an actual match. Splitting the pattern\n * into separate patterns means that any matched pattern will be count as a match.\n *\n * @param pattern Pattern to split.\n * @param attributeName Name of the attribute to split (e.g. 'attributes', 'classes', 'styles').\n */\nfunction splitPattern(pattern, attributeName) {\n const { name } = pattern;\n const attributeValue = pattern[attributeName];\n if (isPlainObject(attributeValue)) {\n return Object.entries(attributeValue).map(([key, value]) => ({\n name,\n [attributeName]: {\n [key]: value\n }\n }));\n }\n if (Array.isArray(attributeValue)) {\n return attributeValue.map(value => ({\n name,\n [attributeName]: [value]\n }));\n }\n return [pattern];\n}\n/**\n * Rules are matched in conjunction (AND operation), but we want to have a match if *any* of the rules is matched (OR operation).\n * By splitting the rules we force the latter effect.\n */\nfunction splitRules(rules) {\n const { name, attributes, classes, styles } = rules;\n const splitRules = [];\n if (attributes) {\n splitRules.push(...splitPattern({ name, attributes }, 'attributes'));\n }\n if (classes) {\n splitRules.push(...splitPattern({ name, classes }, 'classes'));\n }\n if (styles) {\n splitRules.push(...splitPattern({ name, styles }, 'styles'));\n }\n return splitRules;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { updateViewAttributes } from '../utils';\nimport DataFilter from '../datafilter';\n/**\n * Provides the General HTML Support integration with {@link module:code-block/codeblock~CodeBlock Code Block} feature.\n */\nexport default class CodeBlockElementSupport extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [DataFilter];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'CodeBlockElementSupport';\n }\n /**\n * @inheritDoc\n */\n init() {\n if (!this.editor.plugins.has('CodeBlockEditing')) {\n return;\n }\n const dataFilter = this.editor.plugins.get(DataFilter);\n dataFilter.on('register:pre', (evt, definition) => {\n if (definition.model !== 'codeBlock') {\n return;\n }\n const editor = this.editor;\n const schema = editor.model.schema;\n const conversion = editor.conversion;\n // Extend codeBlock to allow attributes required by attribute filtration.\n schema.extend('codeBlock', {\n allowAttributes: ['htmlPreAttributes', 'htmlContentAttributes']\n });\n conversion.for('upcast').add(viewToModelCodeBlockAttributeConverter(dataFilter));\n conversion.for('downcast').add(modelToViewCodeBlockAttributeConverter());\n evt.stop();\n });\n }\n}\n/**\n * View-to-model conversion helper preserving allowed attributes on {@link module:code-block/codeblock~CodeBlock Code Block}\n * feature model element.\n *\n * Attributes are preserved as a value of `html*Attributes` model attribute.\n * @param dataFilter\n * @returns Returns a conversion callback.\n */\nfunction viewToModelCodeBlockAttributeConverter(dataFilter) {\n return (dispatcher) => {\n dispatcher.on('element:code', (evt, data, conversionApi) => {\n const viewCodeElement = data.viewItem;\n const viewPreElement = viewCodeElement.parent;\n if (!viewPreElement || !viewPreElement.is('element', 'pre')) {\n return;\n }\n preserveElementAttributes(viewPreElement, 'htmlPreAttributes');\n preserveElementAttributes(viewCodeElement, 'htmlContentAttributes');\n function preserveElementAttributes(viewElement, attributeName) {\n const viewAttributes = dataFilter.processViewAttributes(viewElement, conversionApi);\n if (viewAttributes) {\n conversionApi.writer.setAttribute(attributeName, viewAttributes, data.modelRange);\n }\n }\n }, { priority: 'low' });\n };\n}\n/**\n * Model-to-view conversion helper applying attributes from {@link module:code-block/codeblock~CodeBlock Code Block}\n * feature model element.\n * @returns Returns a conversion callback.\n */\nfunction modelToViewCodeBlockAttributeConverter() {\n return (dispatcher) => {\n dispatcher.on('attribute:htmlPreAttributes:codeBlock', (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const { attributeOldValue, attributeNewValue } = data;\n const viewCodeElement = conversionApi.mapper.toViewElement(data.item);\n const viewPreElement = viewCodeElement.parent;\n updateViewAttributes(conversionApi.writer, attributeOldValue, attributeNewValue, viewPreElement);\n });\n dispatcher.on('attribute:htmlContentAttributes:codeBlock', (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const { attributeOldValue, attributeNewValue } = data;\n const viewCodeElement = conversionApi.mapper.toViewElement(data.item);\n updateViewAttributes(conversionApi.writer, attributeOldValue, attributeNewValue, viewCodeElement);\n });\n };\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { priorities } from 'ckeditor5/src/utils';\nimport { modelToViewBlockAttributeConverter, viewToModelBlockAttributeConverter } from '../converters';\nimport DataFilter from '../datafilter';\nimport { getHtmlAttributeName } from '../utils';\n/**\n * Provides the General HTML Support integration for elements which can behave like sectioning element (e.g. article) or\n * element accepting only inline content (e.g. paragraph).\n *\n * The distinction between this two content models is important for choosing correct schema model and proper content conversion.\n * As an example, it ensures that:\n *\n * * children elements paragraphing is enabled for sectioning elements only,\n * * element and its content can be correctly handled by editing view (splitting and merging elements),\n * * model element HTML is semantically correct and easier to work with.\n *\n * If element contains any block element, it will be treated as a sectioning element and registered using\n * {@link module:html-support/dataschema~DataSchemaDefinition#model} and\n * {@link module:html-support/dataschema~DataSchemaDefinition#modelSchema} in editor schema.\n * Otherwise, it will be registered under {@link module:html-support/dataschema~DataSchemaBlockElementDefinition#paragraphLikeModel} model\n * name with model schema accepting only inline content (inheriting from `$block`).\n */\nexport default class DualContentModelElementSupport extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [DataFilter];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'DualContentModelElementSupport';\n }\n /**\n * @inheritDoc\n */\n init() {\n const dataFilter = this.editor.plugins.get(DataFilter);\n dataFilter.on('register', (evt, definition) => {\n const blockDefinition = definition;\n const editor = this.editor;\n const schema = editor.model.schema;\n const conversion = editor.conversion;\n if (!blockDefinition.paragraphLikeModel) {\n return;\n }\n // Can only apply to newly registered features.\n if (schema.isRegistered(blockDefinition.model) || schema.isRegistered(blockDefinition.paragraphLikeModel)) {\n return;\n }\n const paragraphLikeModelDefinition = {\n model: blockDefinition.paragraphLikeModel,\n view: blockDefinition.view\n };\n schema.register(blockDefinition.model, blockDefinition.modelSchema);\n schema.register(paragraphLikeModelDefinition.model, {\n inheritAllFrom: '$block'\n });\n conversion.for('upcast').elementToElement({\n view: blockDefinition.view,\n model: (viewElement, { writer }) => {\n if (this._hasBlockContent(viewElement)) {\n return writer.createElement(blockDefinition.model);\n }\n return writer.createElement(paragraphLikeModelDefinition.model);\n },\n // With a `low` priority, `paragraph` plugin auto-paragraphing mechanism is executed. Make sure\n // this listener is called before it. If not, some elements will be transformed into a paragraph.\n converterPriority: priorities.low + 0.5\n });\n conversion.for('downcast').elementToElement({\n view: blockDefinition.view,\n model: blockDefinition.model\n });\n this._addAttributeConversion(blockDefinition);\n conversion.for('downcast').elementToElement({\n view: paragraphLikeModelDefinition.view,\n model: paragraphLikeModelDefinition.model\n });\n this._addAttributeConversion(paragraphLikeModelDefinition);\n evt.stop();\n });\n }\n /**\n * Checks whether the given view element includes any other block element.\n */\n _hasBlockContent(viewElement) {\n const view = this.editor.editing.view;\n const blockElements = view.domConverter.blockElements;\n // Traversing the viewElement subtree looking for block elements.\n // Especially for the cases like .\n // https://github.com/ckeditor/ckeditor5/issues/11513\n for (const viewItem of view.createRangeIn(viewElement).getItems()) {\n if (viewItem.is('element') && blockElements.includes(viewItem.name)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Adds attribute filtering conversion for the given data schema.\n */\n _addAttributeConversion(definition) {\n const editor = this.editor;\n const conversion = editor.conversion;\n const dataFilter = editor.plugins.get(DataFilter);\n editor.model.schema.extend(definition.model, {\n allowAttributes: getHtmlAttributeName(definition.view)\n });\n conversion.for('upcast').add(viewToModelBlockAttributeConverter(definition, dataFilter));\n conversion.for('downcast').add(modelToViewBlockAttributeConverter(definition));\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module html-support/integrations/heading\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Enter } from 'ckeditor5/src/enter';\nimport DataSchema from '../dataschema';\n/**\n * Provides the General HTML Support integration with {@link module:heading/heading~Heading Heading} feature.\n */\nexport default class HeadingElementSupport extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [DataSchema, Enter];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'HeadingElementSupport';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n if (!editor.plugins.has('HeadingEditing')) {\n return;\n }\n const options = editor.config.get('heading.options');\n this.registerHeadingElements(editor, options);\n }\n /**\n * Registers all elements supported by HeadingEditing to enable custom attributes for those elements.\n */\n registerHeadingElements(editor, options) {\n const dataSchema = editor.plugins.get(DataSchema);\n const headerModels = [];\n for (const option of options) {\n if ('model' in option && 'view' in option) {\n dataSchema.registerBlockElement({\n view: option.view,\n model: option.model\n });\n headerModels.push(option.model);\n }\n }\n dataSchema.extendBlockElement({\n model: 'htmlHgroup',\n modelSchema: {\n allowChildren: headerModels\n }\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module html-support/integrations/integrationutils\n */\n/**\n * Returns the first view element descendant matching the given view name.\n * Includes view element itself.\n *\n * @internal\n */\nexport function getDescendantElement(writer, containerElement, elementName) {\n const range = writer.createRangeOn(containerElement);\n for (const { item } of range.getWalker()) {\n if (item.is('element', elementName)) {\n return item;\n }\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module html-support/integrations/image\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport DataFilter from '../datafilter';\nimport { setViewAttributes, updateViewAttributes } from '../utils';\nimport { getDescendantElement } from './integrationutils';\n/**\n * Provides the General HTML Support integration with the {@link module:image/image~Image Image} feature.\n */\nexport default class ImageElementSupport extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [DataFilter];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageElementSupport';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // At least one image plugin should be loaded for the integration to work properly.\n if (!editor.plugins.has('ImageInlineEditing') && !editor.plugins.has('ImageBlockEditing')) {\n return;\n }\n const schema = editor.model.schema;\n const conversion = editor.conversion;\n const dataFilter = editor.plugins.get(DataFilter);\n dataFilter.on('register:figure', () => {\n conversion.for('upcast').add(viewToModelFigureAttributeConverter(dataFilter));\n });\n dataFilter.on('register:img', (evt, definition) => {\n if (definition.model !== 'imageBlock' && definition.model !== 'imageInline') {\n return;\n }\n if (schema.isRegistered('imageBlock')) {\n schema.extend('imageBlock', {\n allowAttributes: [\n 'htmlImgAttributes',\n // Figure and Link don't have model counterpart.\n // We will preserve attributes on image model element using these attribute keys.\n 'htmlFigureAttributes',\n 'htmlLinkAttributes'\n ]\n });\n }\n if (schema.isRegistered('imageInline')) {\n schema.extend('imageInline', {\n allowAttributes: [\n // `htmlA` is needed for standard GHS link integration.\n 'htmlA',\n 'htmlImgAttributes'\n ]\n });\n }\n conversion.for('upcast').add(viewToModelImageAttributeConverter(dataFilter));\n conversion.for('downcast').add(modelToViewImageAttributeConverter());\n if (editor.plugins.has('LinkImage')) {\n conversion.for('upcast').add(viewToModelLinkImageAttributeConverter(dataFilter, editor));\n }\n evt.stop();\n });\n }\n}\n/**\n * View-to-model conversion helper preserving allowed attributes on the {@link module:image/image~Image Image}\n * feature model element.\n *\n * @returns Returns a conversion callback.\n */\nfunction viewToModelImageAttributeConverter(dataFilter) {\n return (dispatcher) => {\n dispatcher.on('element:img', (evt, data, conversionApi) => {\n if (!data.modelRange) {\n return;\n }\n const viewImageElement = data.viewItem;\n const viewAttributes = dataFilter.processViewAttributes(viewImageElement, conversionApi);\n if (viewAttributes) {\n conversionApi.writer.setAttribute('htmlImgAttributes', viewAttributes, data.modelRange);\n }\n }, { priority: 'low' });\n };\n}\n/**\n * View-to-model conversion helper preserving allowed attributes on {@link module:image/image~Image Image}\n * feature model element from link view element.\n *\n * @returns Returns a conversion callback.\n */\nfunction viewToModelLinkImageAttributeConverter(dataFilter, editor) {\n const imageUtils = editor.plugins.get('ImageUtils');\n return (dispatcher) => {\n dispatcher.on('element:a', (evt, data, conversionApi) => {\n const viewLink = data.viewItem;\n const viewImage = imageUtils.findViewImgElement(viewLink);\n if (!viewImage) {\n return;\n }\n const modelImage = data.modelCursor.parent;\n if (!modelImage.is('element', 'imageBlock')) {\n return;\n }\n const viewAttributes = dataFilter.processViewAttributes(viewLink, conversionApi);\n if (viewAttributes) {\n conversionApi.writer.setAttribute('htmlLinkAttributes', viewAttributes, modelImage);\n }\n }, { priority: 'low' });\n };\n}\n/**\n * View-to-model conversion helper preserving allowed attributes on {@link module:image/image~Image Image}\n * feature model element from figure view element.\n *\n * @returns Returns a conversion callback.\n */\nfunction viewToModelFigureAttributeConverter(dataFilter) {\n return (dispatcher) => {\n dispatcher.on('element:figure', (evt, data, conversionApi) => {\n const viewFigureElement = data.viewItem;\n if (!data.modelRange || !viewFigureElement.hasClass('image')) {\n return;\n }\n const viewAttributes = dataFilter.processViewAttributes(viewFigureElement, conversionApi);\n if (viewAttributes) {\n conversionApi.writer.setAttribute('htmlFigureAttributes', viewAttributes, data.modelRange);\n }\n }, { priority: 'low' });\n };\n}\n/**\n * A model-to-view conversion helper applying attributes from the {@link module:image/image~Image Image}\n * feature.\n * @returns Returns a conversion callback.\n */\nfunction modelToViewImageAttributeConverter() {\n return (dispatcher) => {\n addInlineAttributeConversion('htmlImgAttributes');\n addBlockAttributeConversion('img', 'htmlImgAttributes');\n addBlockAttributeConversion('figure', 'htmlFigureAttributes');\n addBlockAttributeConversion('a', 'htmlLinkAttributes');\n function addInlineAttributeConversion(attributeName) {\n dispatcher.on(`attribute:${attributeName}:imageInline`, (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const { attributeOldValue, attributeNewValue } = data;\n const viewElement = conversionApi.mapper.toViewElement(data.item);\n updateViewAttributes(conversionApi.writer, attributeOldValue, attributeNewValue, viewElement);\n }, { priority: 'low' });\n }\n function addBlockAttributeConversion(elementName, attributeName) {\n dispatcher.on(`attribute:${attributeName}:imageBlock`, (evt, data, conversionApi) => {\n if (!conversionApi.consumable.test(data.item, evt.name)) {\n return;\n }\n const { attributeOldValue, attributeNewValue } = data;\n const containerElement = conversionApi.mapper.toViewElement(data.item);\n const viewElement = getDescendantElement(conversionApi.writer, containerElement, elementName);\n if (viewElement) {\n updateViewAttributes(conversionApi.writer, attributeOldValue, attributeNewValue, viewElement);\n conversionApi.consumable.consume(data.item, evt.name);\n }\n }, { priority: 'low' });\n if (elementName === 'a') {\n // To have a link element in the view, we need to attach a converter to the `linkHref` attribute as well.\n dispatcher.on('attribute:linkHref:imageBlock', (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, 'attribute:htmlLinkAttributes:imageBlock')) {\n return;\n }\n const containerElement = conversionApi.mapper.toViewElement(data.item);\n const viewElement = getDescendantElement(conversionApi.writer, containerElement, 'a');\n setViewAttributes(conversionApi.writer, data.item.getAttribute('htmlLinkAttributes'), viewElement);\n }, { priority: 'low' });\n }\n }\n };\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module html-support/integrations/mediaembed\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport DataFilter from '../datafilter';\nimport DataSchema from '../dataschema';\nimport { updateViewAttributes, getHtmlAttributeName } from '../utils';\nimport { getDescendantElement } from './integrationutils';\n/**\n * Provides the General HTML Support integration with {@link module:media-embed/mediaembed~MediaEmbed Media Embed} feature.\n */\nexport default class MediaEmbedElementSupport extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [DataFilter];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'MediaEmbedElementSupport';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Stop here if MediaEmbed plugin is not provided or the integrator wants to output markup with previews as\n // we do not support filtering previews.\n if (!editor.plugins.has('MediaEmbed') || editor.config.get('mediaEmbed.previewsInData')) {\n return;\n }\n const schema = editor.model.schema;\n const conversion = editor.conversion;\n const dataFilter = this.editor.plugins.get(DataFilter);\n const dataSchema = this.editor.plugins.get(DataSchema);\n const mediaElementName = editor.config.get('mediaEmbed.elementName');\n // Overwrite GHS schema definition for a given elementName.\n dataSchema.registerBlockElement({\n model: 'media',\n view: mediaElementName\n });\n dataFilter.on('register:figure', () => {\n conversion.for('upcast').add(viewToModelFigureAttributesConverter(dataFilter));\n });\n dataFilter.on(`register:${mediaElementName}`, (evt, definition) => {\n if (definition.model !== 'media') {\n return;\n }\n schema.extend('media', {\n allowAttributes: [\n getHtmlAttributeName(mediaElementName),\n 'htmlFigureAttributes'\n ]\n });\n conversion.for('upcast').add(viewToModelMediaAttributesConverter(dataFilter, mediaElementName));\n conversion.for('dataDowncast').add(modelToViewMediaAttributeConverter(mediaElementName));\n evt.stop();\n });\n }\n}\nfunction viewToModelMediaAttributesConverter(dataFilter, mediaElementName) {\n const upcastMedia = (evt, data, conversionApi) => {\n const viewMediaElement = data.viewItem;\n preserveElementAttributes(viewMediaElement, getHtmlAttributeName(mediaElementName));\n function preserveElementAttributes(viewElement, attributeName) {\n const viewAttributes = dataFilter.processViewAttributes(viewElement, conversionApi);\n if (viewAttributes) {\n conversionApi.writer.setAttribute(attributeName, viewAttributes, data.modelRange);\n }\n }\n };\n return (dispatcher) => {\n dispatcher.on(`element:${mediaElementName}`, upcastMedia, { priority: 'low' });\n };\n}\n/**\n * View-to-model conversion helper preserving allowed attributes on {@link module:media-embed/mediaembed~MediaEmbed MediaEmbed}\n * feature model element from figure view element.\n *\n * @returns Returns a conversion callback.\n */\nfunction viewToModelFigureAttributesConverter(dataFilter) {\n return (dispatcher) => {\n dispatcher.on('element:figure', (evt, data, conversionApi) => {\n const viewFigureElement = data.viewItem;\n if (!data.modelRange || !viewFigureElement.hasClass('media')) {\n return;\n }\n const viewAttributes = dataFilter.processViewAttributes(viewFigureElement, conversionApi);\n if (viewAttributes) {\n conversionApi.writer.setAttribute('htmlFigureAttributes', viewAttributes, data.modelRange);\n }\n }, { priority: 'low' });\n };\n}\nfunction modelToViewMediaAttributeConverter(mediaElementName) {\n return (dispatcher) => {\n addAttributeConversionDispatcherHandler(mediaElementName, getHtmlAttributeName(mediaElementName));\n addAttributeConversionDispatcherHandler('figure', 'htmlFigureAttributes');\n function addAttributeConversionDispatcherHandler(elementName, attributeName) {\n dispatcher.on(`attribute:${attributeName}:media`, (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const { attributeOldValue, attributeNewValue } = data;\n const containerElement = conversionApi.mapper.toViewElement(data.item);\n const viewElement = getDescendantElement(conversionApi.writer, containerElement, elementName);\n updateViewAttributes(conversionApi.writer, attributeOldValue, attributeNewValue, viewElement);\n });\n }\n };\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module html-support/integrations/script\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { createObjectView, modelToViewBlockAttributeConverter, viewToModelBlockAttributeConverter, viewToModelObjectConverter } from '../converters';\nimport DataFilter from '../datafilter';\n/**\n * Provides the General HTML Support for `script` elements.\n */\nexport default class ScriptElementSupport extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [DataFilter];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ScriptElementSupport';\n }\n /**\n * @inheritDoc\n */\n init() {\n const dataFilter = this.editor.plugins.get(DataFilter);\n dataFilter.on('register:script', (evt, definition) => {\n const editor = this.editor;\n const schema = editor.model.schema;\n const conversion = editor.conversion;\n schema.register('htmlScript', definition.modelSchema);\n schema.extend('htmlScript', {\n allowAttributes: ['htmlScriptAttributes', 'htmlContent'],\n isContent: true\n });\n editor.data.registerRawContentMatcher({\n name: 'script'\n });\n conversion.for('upcast').elementToElement({\n view: 'script',\n model: viewToModelObjectConverter(definition)\n });\n conversion.for('upcast').add(viewToModelBlockAttributeConverter(definition, dataFilter));\n conversion.for('downcast').elementToElement({\n model: 'htmlScript',\n view: (modelElement, { writer }) => {\n return createObjectView('script', modelElement, writer);\n }\n });\n conversion.for('downcast').add(modelToViewBlockAttributeConverter(definition));\n evt.stop();\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { updateViewAttributes } from '../utils';\nimport DataFilter from '../datafilter';\nimport { getDescendantElement } from './integrationutils';\n/**\n * Provides the General HTML Support integration with {@link module:table/table~Table Table} feature.\n */\nexport default class TableElementSupport extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [DataFilter];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'TableElementSupport';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n if (!editor.plugins.has('TableEditing')) {\n return;\n }\n const schema = editor.model.schema;\n const conversion = editor.conversion;\n const dataFilter = editor.plugins.get(DataFilter);\n const tableUtils = editor.plugins.get('TableUtils');\n dataFilter.on('register:figure', () => {\n conversion.for('upcast').add(viewToModelFigureAttributeConverter(dataFilter));\n });\n dataFilter.on('register:table', (evt, definition) => {\n if (definition.model !== 'table') {\n return;\n }\n schema.extend('table', {\n allowAttributes: [\n 'htmlTableAttributes',\n // Figure, thead and tbody elements don't have model counterparts.\n // We will be preserving attributes on table element using these attribute keys.\n 'htmlFigureAttributes', 'htmlTheadAttributes', 'htmlTbodyAttributes'\n ]\n });\n conversion.for('upcast').add(viewToModelTableAttributeConverter(dataFilter));\n conversion.for('downcast').add(modelToViewTableAttributeConverter());\n editor.model.document.registerPostFixer(createHeadingRowsPostFixer(editor.model, tableUtils));\n evt.stop();\n });\n }\n}\n/**\n * Creates a model post-fixer for thead and tbody GHS related attributes.\n */\nfunction createHeadingRowsPostFixer(model, tableUtils) {\n return writer => {\n const changes = model.document.differ.getChanges();\n let wasFixed = false;\n for (const change of changes) {\n if (change.type != 'attribute' || change.attributeKey != 'headingRows') {\n continue;\n }\n const table = change.range.start.nodeAfter;\n const hasTHeadAttributes = table.getAttribute('htmlTheadAttributes');\n const hasTBodyAttributes = table.getAttribute('htmlTbodyAttributes');\n if (hasTHeadAttributes && !change.attributeNewValue) {\n writer.removeAttribute('htmlTheadAttributes', table);\n wasFixed = true;\n }\n else if (hasTBodyAttributes && change.attributeNewValue == tableUtils.getRows(table)) {\n writer.removeAttribute('htmlTbodyAttributes', table);\n wasFixed = true;\n }\n }\n return wasFixed;\n };\n}\n/**\n * View-to-model conversion helper preserving allowed attributes on {@link module:table/table~Table Table}\n * feature model element.\n *\n * @returns Returns a conversion callback.\n */\nfunction viewToModelTableAttributeConverter(dataFilter) {\n return (dispatcher) => {\n dispatcher.on('element:table', (evt, data, conversionApi) => {\n if (!data.modelRange) {\n return;\n }\n const viewTableElement = data.viewItem;\n preserveElementAttributes(viewTableElement, 'htmlTableAttributes');\n for (const childNode of viewTableElement.getChildren()) {\n if (childNode.is('element', 'thead')) {\n preserveElementAttributes(childNode, 'htmlTheadAttributes');\n }\n if (childNode.is('element', 'tbody')) {\n preserveElementAttributes(childNode, 'htmlTbodyAttributes');\n }\n }\n function preserveElementAttributes(viewElement, attributeName) {\n const viewAttributes = dataFilter.processViewAttributes(viewElement, conversionApi);\n if (viewAttributes) {\n conversionApi.writer.setAttribute(attributeName, viewAttributes, data.modelRange);\n }\n }\n }, { priority: 'low' });\n };\n}\n/**\n * View-to-model conversion helper preserving allowed attributes on {@link module:table/table~Table Table}\n * feature model element from figure view element.\n *\n * @returns Returns a conversion callback.\n */\nfunction viewToModelFigureAttributeConverter(dataFilter) {\n return (dispatcher) => {\n dispatcher.on('element:figure', (evt, data, conversionApi) => {\n const viewFigureElement = data.viewItem;\n if (!data.modelRange || !viewFigureElement.hasClass('table')) {\n return;\n }\n const viewAttributes = dataFilter.processViewAttributes(viewFigureElement, conversionApi);\n if (viewAttributes) {\n conversionApi.writer.setAttribute('htmlFigureAttributes', viewAttributes, data.modelRange);\n }\n }, { priority: 'low' });\n };\n}\n/**\n * Model-to-view conversion helper applying attributes from {@link module:table/table~Table Table}\n * feature.\n *\n * @returns Returns a conversion callback.\n */\nfunction modelToViewTableAttributeConverter() {\n return (dispatcher) => {\n addAttributeConversionDispatcherHandler('table', 'htmlTableAttributes');\n addAttributeConversionDispatcherHandler('figure', 'htmlFigureAttributes');\n addAttributeConversionDispatcherHandler('thead', 'htmlTheadAttributes');\n addAttributeConversionDispatcherHandler('tbody', 'htmlTbodyAttributes');\n function addAttributeConversionDispatcherHandler(elementName, attributeName) {\n dispatcher.on(`attribute:${attributeName}:table`, (evt, data, conversionApi) => {\n if (!conversionApi.consumable.test(data.item, evt.name)) {\n return;\n }\n const containerElement = conversionApi.mapper.toViewElement(data.item);\n const viewElement = getDescendantElement(conversionApi.writer, containerElement, elementName);\n if (!viewElement) {\n return;\n }\n conversionApi.consumable.consume(data.item, evt.name);\n updateViewAttributes(conversionApi.writer, data.attributeOldValue, data.attributeNewValue, viewElement);\n });\n }\n };\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module html-support/integrations/style\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { createObjectView, modelToViewBlockAttributeConverter, viewToModelBlockAttributeConverter, viewToModelObjectConverter } from '../converters';\nimport DataFilter from '../datafilter';\n/**\n * Provides the General HTML Support for `style` elements.\n */\nexport default class StyleElementSupport extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [DataFilter];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'StyleElementSupport';\n }\n /**\n * @inheritDoc\n */\n init() {\n const dataFilter = this.editor.plugins.get(DataFilter);\n dataFilter.on('register:style', (evt, definition) => {\n const editor = this.editor;\n const schema = editor.model.schema;\n const conversion = editor.conversion;\n schema.register('htmlStyle', definition.modelSchema);\n schema.extend('htmlStyle', {\n allowAttributes: ['htmlStyleAttributes', 'htmlContent'],\n isContent: true\n });\n editor.data.registerRawContentMatcher({\n name: 'style'\n });\n conversion.for('upcast').elementToElement({\n view: 'style',\n model: viewToModelObjectConverter(definition)\n });\n conversion.for('upcast').add(viewToModelBlockAttributeConverter(definition, dataFilter));\n conversion.for('downcast').elementToElement({\n model: 'htmlStyle',\n view: (modelElement, { writer }) => {\n return createObjectView('style', modelElement, writer);\n }\n });\n conversion.for('downcast').add(modelToViewBlockAttributeConverter(definition));\n evt.stop();\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module html-support/integrations/documentlist\n */\nimport { isEqual } from 'lodash-es';\nimport { Plugin } from 'ckeditor5/src/core';\nimport { getHtmlAttributeName, setViewAttributes } from '../utils';\nimport DataFilter from '../datafilter';\n/**\n * Provides the General HTML Support integration with the {@link module:list/documentlist~DocumentList Document List} feature.\n */\nexport default class DocumentListElementSupport extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [DataFilter];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'DocumentListElementSupport';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n if (!editor.plugins.has('DocumentListEditing')) {\n return;\n }\n const schema = editor.model.schema;\n const conversion = editor.conversion;\n const dataFilter = editor.plugins.get(DataFilter);\n const documentListEditing = editor.plugins.get('DocumentListEditing');\n const viewElements = ['ul', 'ol', 'li'];\n // Register downcast strategy.\n // Note that this must be done before document list editing registers conversion in afterInit.\n documentListEditing.registerDowncastStrategy({\n scope: 'item',\n attributeName: 'htmlLiAttributes',\n setAttributeOnDowncast: setViewAttributes\n });\n documentListEditing.registerDowncastStrategy({\n scope: 'list',\n attributeName: 'htmlUlAttributes',\n setAttributeOnDowncast: setViewAttributes\n });\n documentListEditing.registerDowncastStrategy({\n scope: 'list',\n attributeName: 'htmlOlAttributes',\n setAttributeOnDowncast: setViewAttributes\n });\n dataFilter.on('register', (evt, definition) => {\n if (!viewElements.includes(definition.view)) {\n return;\n }\n evt.stop();\n // Do not register same converters twice.\n if (schema.checkAttribute('$block', 'htmlLiAttributes')) {\n return;\n }\n const allowAttributes = viewElements.map(element => getHtmlAttributeName(element));\n schema.extend('$block', { allowAttributes });\n schema.extend('$blockObject', { allowAttributes });\n schema.extend('$container', { allowAttributes });\n conversion.for('upcast').add(dispatcher => {\n dispatcher.on('element:ul', viewToModelListAttributeConverter('htmlUlAttributes', dataFilter), { priority: 'low' });\n dispatcher.on('element:ol', viewToModelListAttributeConverter('htmlOlAttributes', dataFilter), { priority: 'low' });\n dispatcher.on('element:li', viewToModelListAttributeConverter('htmlLiAttributes', dataFilter), { priority: 'low' });\n });\n });\n // Make sure that all items in a single list (items at the same level & listType) have the same properties.\n // Note: This is almost an exact copy from DocumentListPropertiesEditing.\n documentListEditing.on('postFixer', (evt, { listNodes, writer }) => {\n const previousNodesByIndent = []; // Last seen nodes of lower indented lists.\n for (const { node, previous } of listNodes) {\n // For the first list block there is nothing to compare with.\n if (!previous) {\n continue;\n }\n const nodeIndent = node.getAttribute('listIndent');\n const previousNodeIndent = previous.getAttribute('listIndent');\n let previousNodeInList = null; // It's like `previous` but has the same indent as current node.\n // Let's find previous node for the same indent.\n // We're going to need that when we get back to previous indent.\n if (nodeIndent > previousNodeIndent) {\n previousNodesByIndent[previousNodeIndent] = previous;\n }\n // Restore the one for given indent.\n else if (nodeIndent < previousNodeIndent) {\n previousNodeInList = previousNodesByIndent[nodeIndent];\n previousNodesByIndent.length = nodeIndent;\n }\n // Same indent.\n else {\n previousNodeInList = previous;\n }\n // This is a first item of a nested list.\n if (!previousNodeInList) {\n continue;\n }\n if (previousNodeInList.getAttribute('listType') == node.getAttribute('listType')) {\n const attribute = getAttributeFromListType(previousNodeInList.getAttribute('listType'));\n const value = previousNodeInList.getAttribute(attribute);\n if (!isEqual(node.getAttribute(attribute), value) &&\n writer.model.schema.checkAttribute(node, attribute)) {\n writer.setAttribute(attribute, value, node);\n evt.return = true;\n }\n }\n if (previousNodeInList.getAttribute('listItemId') == node.getAttribute('listItemId')) {\n const value = previousNodeInList.getAttribute('htmlLiAttributes');\n if (!isEqual(node.getAttribute('htmlLiAttributes'), value) &&\n writer.model.schema.checkAttribute(node, 'htmlLiAttributes')) {\n writer.setAttribute('htmlLiAttributes', value, node);\n evt.return = true;\n }\n }\n }\n });\n // Remove `ol` attributes from `ul` elements and vice versa.\n documentListEditing.on('postFixer', (evt, { listNodes, writer }) => {\n for (const { node } of listNodes) {\n const listType = node.getAttribute('listType');\n if (listType === 'bulleted' && node.getAttribute('htmlOlAttributes')) {\n writer.removeAttribute('htmlOlAttributes', node);\n evt.return = true;\n }\n if (listType === 'numbered' && node.getAttribute('htmlUlAttributes')) {\n writer.removeAttribute('htmlUlAttributes', node);\n evt.return = true;\n }\n }\n });\n }\n /**\n * @inheritDoc\n */\n afterInit() {\n const editor = this.editor;\n if (!editor.commands.get('indentList')) {\n return;\n }\n // Reset list attributes after indenting list items.\n const indentList = editor.commands.get('indentList');\n this.listenTo(indentList, 'afterExecute', (evt, changedBlocks) => {\n editor.model.change(writer => {\n for (const node of changedBlocks) {\n const attribute = getAttributeFromListType(node.getAttribute('listType'));\n if (!editor.model.schema.checkAttribute(node, attribute)) {\n continue;\n }\n // Just reset the attribute.\n // If there is a previous indented list that this node should be merged into,\n // the postfixer will unify all the attributes of both sub-lists.\n writer.setAttribute(attribute, {}, node);\n }\n });\n });\n }\n}\n/**\n * View-to-model conversion helper preserving allowed attributes on {@link TODO}\n * feature model element.\n *\n * @returns Returns a conversion callback.\n */\nfunction viewToModelListAttributeConverter(attributeName, dataFilter) {\n return (evt, data, conversionApi) => {\n const viewElement = data.viewItem;\n if (!data.modelRange) {\n Object.assign(data, conversionApi.convertChildren(data.viewItem, data.modelCursor));\n }\n const viewAttributes = dataFilter.processViewAttributes(viewElement, conversionApi);\n for (const item of data.modelRange.getItems({ shallow: true })) {\n // Apply only to list item blocks.\n if (!item.hasAttribute('listItemId')) {\n continue;\n }\n // Set list attributes only on same level items, those nested deeper are already handled\n // by the recursive conversion.\n if (item.hasAttribute(attributeName)) {\n continue;\n }\n if (conversionApi.writer.model.schema.checkAttribute(item, attributeName)) {\n conversionApi.writer.setAttribute(attributeName, viewAttributes || {}, item);\n }\n }\n };\n}\n/**\n * Returns HTML attribute name based on provided list type.\n */\nfunction getAttributeFromListType(listType) {\n return listType === 'bulleted' ?\n 'htmlUlAttributes' :\n 'htmlOlAttributes';\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module html-support/integrations/customelement\n */\n/* globals document */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { UpcastWriter } from 'ckeditor5/src/engine';\nimport DataSchema from '../dataschema';\nimport DataFilter from '../datafilter';\nimport { setViewAttributes } from '../utils';\n/**\n * Provides the General HTML Support for custom elements (not registered in the {@link module:html-support/dataschema~DataSchema}).\n */\nexport default class CustomElementSupport extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [DataFilter, DataSchema];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'CustomElementSupport';\n }\n /**\n * @inheritDoc\n */\n init() {\n const dataFilter = this.editor.plugins.get(DataFilter);\n const dataSchema = this.editor.plugins.get(DataSchema);\n dataFilter.on('register:$customElement', (evt, definition) => {\n evt.stop();\n const editor = this.editor;\n const schema = editor.model.schema;\n const conversion = editor.conversion;\n const unsafeElements = editor.editing.view.domConverter.unsafeElements;\n const preLikeElements = editor.data.htmlProcessor.domConverter.preElements;\n schema.register(definition.model, definition.modelSchema);\n schema.extend(definition.model, {\n allowAttributes: ['htmlElementName', 'htmlCustomElementAttributes', 'htmlContent'],\n isContent: true\n });\n // Being executed on the low priority, it will catch all elements that were not caught by other converters.\n conversion.for('upcast').elementToElement({\n view: /.*/,\n model: (viewElement, conversionApi) => {\n // Do not try to convert $comment fake element.\n if (viewElement.name == '$comment') {\n return null;\n }\n if (!isValidElementName(viewElement.name)) {\n return null;\n }\n // Allow for fallback only if this element is not defined in data schema to make sure\n // that this will handle only custom elements not registered in the data schema.\n if (dataSchema.getDefinitionsForView(viewElement.name).size) {\n return null;\n }\n // Make sure that this element will not render in the editing view.\n if (!unsafeElements.includes(viewElement.name)) {\n unsafeElements.push(viewElement.name);\n }\n // Make sure that whitespaces will not be trimmed or replaced by nbsps while stringify content.\n if (!preLikeElements.includes(viewElement.name)) {\n preLikeElements.push(viewElement.name);\n }\n const modelElement = conversionApi.writer.createElement(definition.model, {\n htmlElementName: viewElement.name\n });\n const htmlAttributes = dataFilter.processViewAttributes(viewElement, conversionApi);\n if (htmlAttributes) {\n conversionApi.writer.setAttribute('htmlCustomElementAttributes', htmlAttributes, modelElement);\n }\n // Store the whole element in the attribute so that DomConverter will be able to use the pre like element context.\n const viewWriter = new UpcastWriter(viewElement.document);\n const documentFragment = viewWriter.createDocumentFragment(viewElement);\n const htmlContent = editor.data.processor.toData(documentFragment);\n conversionApi.writer.setAttribute('htmlContent', htmlContent, modelElement);\n // Consume the content of the element.\n for (const { item } of editor.editing.view.createRangeIn(viewElement)) {\n conversionApi.consumable.consume(item, { name: true });\n }\n return modelElement;\n },\n converterPriority: 'low'\n });\n // Because this element is unsafe (DomConverter#unsafeElements), it will render as a transparent but it must\n // be rendered anyway for the mapping between the model and the view to exist.\n conversion.for('editingDowncast').elementToElement({\n model: {\n name: definition.model,\n attributes: ['htmlElementName', 'htmlCustomElementAttributes', 'htmlContent']\n },\n view: (modelElement, { writer }) => {\n const viewName = modelElement.getAttribute('htmlElementName');\n const viewElement = writer.createRawElement(viewName);\n if (modelElement.hasAttribute('htmlCustomElementAttributes')) {\n setViewAttributes(writer, modelElement.getAttribute('htmlCustomElementAttributes'), viewElement);\n }\n return viewElement;\n }\n });\n conversion.for('dataDowncast').elementToElement({\n model: {\n name: definition.model,\n attributes: ['htmlElementName', 'htmlCustomElementAttributes', 'htmlContent']\n },\n view: (modelElement, { writer }) => {\n const viewName = modelElement.getAttribute('htmlElementName');\n const htmlContent = modelElement.getAttribute('htmlContent');\n const viewElement = writer.createRawElement(viewName, null, (domElement, domConverter) => {\n domConverter.setContentOf(domElement, htmlContent);\n // Unwrap the custom element content (it was stored in the attribute as the whole custom element).\n // See the upcast conversion for the \"htmlContent\" attribute to learn more.\n const customElement = domElement.firstChild;\n customElement.remove();\n while (customElement.firstChild) {\n domElement.appendChild(customElement.firstChild);\n }\n });\n if (modelElement.hasAttribute('htmlCustomElementAttributes')) {\n setViewAttributes(writer, modelElement.getAttribute('htmlCustomElementAttributes'), viewElement);\n }\n return viewElement;\n }\n });\n });\n }\n}\n/**\n * Returns true if name is valid for a DOM element name.\n */\nfunction isValidElementName(name) {\n try {\n document.createElement(name);\n }\n catch (error) {\n return false;\n }\n return true;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module html-support/generalhtmlsupport\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { toArray } from 'ckeditor5/src/utils';\nimport DataFilter from './datafilter';\nimport CodeBlockElementSupport from './integrations/codeblock';\nimport DualContentModelElementSupport from './integrations/dualcontent';\nimport HeadingElementSupport from './integrations/heading';\nimport ImageElementSupport from './integrations/image';\nimport MediaEmbedElementSupport from './integrations/mediaembed';\nimport ScriptElementSupport from './integrations/script';\nimport TableElementSupport from './integrations/table';\nimport StyleElementSupport from './integrations/style';\nimport DocumentListElementSupport from './integrations/documentlist';\nimport CustomElementSupport from './integrations/customelement';\nimport { getHtmlAttributeName, modifyGhsAttribute } from './utils';\n/**\n * The General HTML Support feature.\n *\n * This is a \"glue\" plugin which initializes the {@link module:html-support/datafilter~DataFilter data filter} configuration\n * and features integration with the General HTML Support.\n */\nexport default class GeneralHtmlSupport extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'GeneralHtmlSupport';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [\n DataFilter,\n CodeBlockElementSupport,\n DualContentModelElementSupport,\n HeadingElementSupport,\n ImageElementSupport,\n MediaEmbedElementSupport,\n ScriptElementSupport,\n TableElementSupport,\n StyleElementSupport,\n DocumentListElementSupport,\n CustomElementSupport\n ];\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const dataFilter = editor.plugins.get(DataFilter);\n // Load the allowed empty inline elements' configuration.\n // Note that this modifies DataSchema so must be loaded before registering filtering rules.\n dataFilter.loadAllowedEmptyElementsConfig(editor.config.get('htmlSupport.allowEmpty') || []);\n // Load the filtering configuration.\n dataFilter.loadAllowedConfig(editor.config.get('htmlSupport.allow') || []);\n dataFilter.loadDisallowedConfig(editor.config.get('htmlSupport.disallow') || []);\n }\n /**\n * Returns a GHS model attribute name related to a given view element name.\n *\n * @internal\n * @param viewElementName A view element name.\n */\n getGhsAttributeNameForElement(viewElementName) {\n const dataSchema = this.editor.plugins.get('DataSchema');\n const definitions = Array.from(dataSchema.getDefinitionsForView(viewElementName, false));\n const inlineDefinition = definitions.find(definition => (definition.isInline && !definitions[0].isObject));\n if (inlineDefinition) {\n return inlineDefinition.model;\n }\n return getHtmlAttributeName(viewElementName);\n }\n /**\n * Updates GHS model attribute for a specified view element name, so it includes the given class name.\n *\n * @internal\n * @param viewElementName A view element name.\n * @param className The css class to add.\n * @param selectable The selection or element to update.\n */\n addModelHtmlClass(viewElementName, className, selectable) {\n const model = this.editor.model;\n const ghsAttributeName = this.getGhsAttributeNameForElement(viewElementName);\n model.change(writer => {\n for (const item of getItemsToUpdateGhsAttribute(model, selectable, ghsAttributeName)) {\n modifyGhsAttribute(writer, item, ghsAttributeName, 'classes', classes => {\n for (const value of toArray(className)) {\n classes.add(value);\n }\n });\n }\n });\n }\n /**\n * Updates GHS model attribute for a specified view element name, so it does not include the given class name.\n *\n * @internal\n * @param viewElementName A view element name.\n * @param className The css class to remove.\n * @param selectable The selection or element to update.\n */\n removeModelHtmlClass(viewElementName, className, selectable) {\n const model = this.editor.model;\n const ghsAttributeName = this.getGhsAttributeNameForElement(viewElementName);\n model.change(writer => {\n for (const item of getItemsToUpdateGhsAttribute(model, selectable, ghsAttributeName)) {\n modifyGhsAttribute(writer, item, ghsAttributeName, 'classes', classes => {\n for (const value of toArray(className)) {\n classes.delete(value);\n }\n });\n }\n });\n }\n /**\n * Updates GHS model attribute for a specified view element name, so it includes the given attribute.\n *\n * @param viewElementName A view element name.\n * @param attributes The object with attributes to set.\n * @param selectable The selection or element to update.\n */\n setModelHtmlAttributes(viewElementName, attributes, selectable) {\n const model = this.editor.model;\n const ghsAttributeName = this.getGhsAttributeNameForElement(viewElementName);\n model.change(writer => {\n for (const item of getItemsToUpdateGhsAttribute(model, selectable, ghsAttributeName)) {\n modifyGhsAttribute(writer, item, ghsAttributeName, 'attributes', attributesMap => {\n for (const [key, value] of Object.entries(attributes)) {\n attributesMap.set(key, value);\n }\n });\n }\n });\n }\n /**\n * Updates GHS model attribute for a specified view element name, so it does not include the given attribute.\n *\n * @param viewElementName A view element name.\n * @param attributeName The attribute name (or names) to remove.\n * @param selectable The selection or element to update.\n */\n removeModelHtmlAttributes(viewElementName, attributeName, selectable) {\n const model = this.editor.model;\n const ghsAttributeName = this.getGhsAttributeNameForElement(viewElementName);\n model.change(writer => {\n for (const item of getItemsToUpdateGhsAttribute(model, selectable, ghsAttributeName)) {\n modifyGhsAttribute(writer, item, ghsAttributeName, 'attributes', attributesMap => {\n for (const key of toArray(attributeName)) {\n attributesMap.delete(key);\n }\n });\n }\n });\n }\n /**\n * Updates GHS model attribute for a specified view element name, so it includes a given style.\n *\n * @param viewElementName A view element name.\n * @param styles The object with styles to set.\n * @param selectable The selection or element to update.\n */\n setModelHtmlStyles(viewElementName, styles, selectable) {\n const model = this.editor.model;\n const ghsAttributeName = this.getGhsAttributeNameForElement(viewElementName);\n model.change(writer => {\n for (const item of getItemsToUpdateGhsAttribute(model, selectable, ghsAttributeName)) {\n modifyGhsAttribute(writer, item, ghsAttributeName, 'styles', stylesMap => {\n for (const [key, value] of Object.entries(styles)) {\n stylesMap.set(key, value);\n }\n });\n }\n });\n }\n /**\n * Updates GHS model attribute for a specified view element name, so it does not include a given style.\n *\n * @param viewElementName A view element name.\n * @param properties The style (or styles list) to remove.\n * @param selectable The selection or element to update.\n */\n removeModelHtmlStyles(viewElementName, properties, selectable) {\n const model = this.editor.model;\n const ghsAttributeName = this.getGhsAttributeNameForElement(viewElementName);\n model.change(writer => {\n for (const item of getItemsToUpdateGhsAttribute(model, selectable, ghsAttributeName)) {\n modifyGhsAttribute(writer, item, ghsAttributeName, 'styles', stylesMap => {\n for (const key of toArray(properties)) {\n stylesMap.delete(key);\n }\n });\n }\n });\n }\n}\n/**\n * Returns an iterator over an items in the selectable that accept given GHS attribute.\n */\nfunction* getItemsToUpdateGhsAttribute(model, selectable, ghsAttributeName) {\n if (!selectable) {\n return;\n }\n if (!(Symbol.iterator in selectable) && selectable.is('documentSelection') && selectable.isCollapsed) {\n if (model.schema.checkAttributeInSelection(selectable, ghsAttributeName)) {\n yield selectable;\n }\n }\n else {\n for (const range of getValidRangesForSelectable(model, selectable, ghsAttributeName)) {\n yield* range.getItems({ shallow: true });\n }\n }\n}\n/**\n * Translates a given selectable to an iterable of ranges.\n */\nfunction getValidRangesForSelectable(model, selectable, ghsAttributeName) {\n if (!(Symbol.iterator in selectable) &&\n (selectable.is('node') ||\n selectable.is('$text') ||\n selectable.is('$textProxy'))) {\n if (model.schema.checkAttribute(selectable, ghsAttributeName)) {\n return [model.createRangeOn(selectable)];\n }\n else {\n return [];\n }\n }\n else {\n return model.schema.getValidRanges(model.createSelection(selectable).getRanges(), ghsAttributeName);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { first } from 'ckeditor5/src/utils';\n/**\n * Creates a view element representing the inline image.\n *\n * ```html\n * \n * ```\n *\n * Note that `alt` and `src` attributes are converted separately, so they are not included.\n *\n * @internal\n */\nexport function createInlineImageViewElement(writer) {\n return writer.createContainerElement('span', { class: 'image-inline' }, writer.createEmptyElement('img'));\n}\n/**\n * Creates a view element representing the block image.\n *\n * ```html\n *
    \n * ```\n *\n * Note that `alt` and `src` attributes are converted separately, so they are not included.\n *\n * @internal\n */\nexport function createBlockImageViewElement(writer) {\n return writer.createContainerElement('figure', { class: 'image' }, [\n writer.createEmptyElement('img'),\n writer.createSlot('children')\n ]);\n}\n/**\n * A function returning a `MatcherPattern` for a particular type of View images.\n *\n * @internal\n * @param matchImageType The type of created image.\n */\nexport function getImgViewElementMatcher(editor, matchImageType) {\n const imageUtils = editor.plugins.get('ImageUtils');\n const areBothImagePluginsLoaded = editor.plugins.has('ImageInlineEditing') && editor.plugins.has('ImageBlockEditing');\n return element => {\n // Check if the matched view element is an .\n if (!imageUtils.isInlineImageView(element)) {\n return null;\n }\n // If just one of the plugins is loaded (block or inline), it will match all kinds of images.\n if (!areBothImagePluginsLoaded) {\n return getPositiveMatchPattern(element);\n }\n // The can be standalone, wrapped in
    ...
    (ImageBlock plugin) or\n // wrapped in
    ...
    (LinkImage plugin).\n const imageType = element.getStyle('display') == 'block' || element.findAncestor(imageUtils.isBlockImageView) ?\n 'imageBlock' :\n 'imageInline';\n if (imageType !== matchImageType) {\n return null;\n }\n return getPositiveMatchPattern(element);\n };\n function getPositiveMatchPattern(element) {\n const pattern = {\n name: true\n };\n // This will trigger src consumption (See https://github.com/ckeditor/ckeditor5/issues/11530).\n if (element.hasAttribute('src')) {\n pattern.attributes = ['src'];\n }\n return pattern;\n }\n}\n/**\n * Considering the current model selection, it returns the name of the model image element\n * (`'imageBlock'` or `'imageInline'`) that will make most sense from the UX perspective if a new\n * image was inserted (also: uploaded, dropped, pasted) at that selection.\n *\n * The assumption is that inserting images into empty blocks or on other block widgets should\n * produce block images. Inline images should be inserted in other cases, e.g. in paragraphs\n * that already contain some text.\n *\n * @internal\n */\nexport function determineImageTypeForInsertionAtSelection(schema, selection) {\n const firstBlock = first(selection.getSelectedBlocks());\n // Insert a block image if the selection is not in/on block elements or it's on a block widget.\n if (!firstBlock || schema.isObject(firstBlock)) {\n return 'imageBlock';\n }\n // A block image should also be inserted into an empty block element\n // (that is not an empty list item so the list won't get split).\n if (firstBlock.isEmpty && firstBlock.name != 'listItem') {\n return 'imageBlock';\n }\n // Otherwise insert an inline image.\n return 'imageInline';\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { findOptimalInsertionRange, isWidget, toWidget } from 'ckeditor5/src/widget';\nimport { determineImageTypeForInsertionAtSelection } from './image/utils';\n/**\n * A set of helpers related to images.\n */\nexport default class ImageUtils extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageUtils';\n }\n /**\n * Checks if the provided model element is an `image` or `imageInline`.\n */\n isImage(modelElement) {\n return this.isInlineImage(modelElement) || this.isBlockImage(modelElement);\n }\n /**\n * Checks if the provided view element represents an inline image.\n *\n * Also, see {@link module:image/imageutils~ImageUtils#isImageWidget}.\n */\n isInlineImageView(element) {\n return !!element && element.is('element', 'img');\n }\n /**\n * Checks if the provided view element represents a block image.\n *\n * Also, see {@link module:image/imageutils~ImageUtils#isImageWidget}.\n */\n isBlockImageView(element) {\n return !!element && element.is('element', 'figure') && element.hasClass('image');\n }\n /**\n * Handles inserting single file. This method unifies image insertion using {@link module:widget/utils~findOptimalInsertionRange}\n * method.\n *\n * ```ts\n * const imageUtils = editor.plugins.get( 'ImageUtils' );\n *\n * imageUtils.insertImage( { src: 'path/to/image.jpg' } );\n * ```\n *\n * @param attributes Attributes of the inserted image.\n * This method filters out the attributes which are disallowed by the {@link module:engine/model/schema~Schema}.\n * @param selectable Place to insert the image. If not specified,\n * the {@link module:widget/utils~findOptimalInsertionRange} logic will be applied for the block images\n * and `model.document.selection` for the inline images.\n *\n * **Note**: If `selectable` is passed, this helper will not be able to set selection attributes (such as `linkHref`)\n * and apply them to the new image. In this case, make sure all selection attributes are passed in `attributes`.\n *\n * @param imageType Image type of inserted image. If not specified,\n * it will be determined automatically depending of editor config or place of the insertion.\n * @return The inserted model image element.\n */\n insertImage(attributes = {}, selectable = null, imageType = null) {\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n imageType = determineImageTypeForInsertion(editor, selectable || selection, imageType);\n // Mix declarative attributes with selection attributes because the new image should \"inherit\"\n // the latter for best UX. For instance, inline images inserted into existing links\n // should not split them. To do that, they need to have \"linkHref\" inherited from the selection.\n attributes = {\n ...Object.fromEntries(selection.getAttributes()),\n ...attributes\n };\n for (const attributeName in attributes) {\n if (!model.schema.checkAttribute(imageType, attributeName)) {\n delete attributes[attributeName];\n }\n }\n return model.change(writer => {\n const imageElement = writer.createElement(imageType, attributes);\n model.insertObject(imageElement, selectable, null, {\n setSelection: 'on',\n // If we want to insert a block image (for whatever reason) then we don't want to split text blocks.\n // This applies only when we don't have the selectable specified (i.e., we insert multiple block images at once).\n findOptimalPosition: !selectable && imageType != 'imageInline' ? 'auto' : undefined\n });\n // Inserting an image might've failed due to schema regulations.\n if (imageElement.parent) {\n return imageElement;\n }\n return null;\n });\n }\n /**\n * Returns an image widget editing view element if one is selected or is among the selection's ancestors.\n */\n getClosestSelectedImageWidget(selection) {\n const selectionPosition = selection.getFirstPosition();\n if (!selectionPosition) {\n return null;\n }\n const viewElement = selection.getSelectedElement();\n if (viewElement && this.isImageWidget(viewElement)) {\n return viewElement;\n }\n let parent = selectionPosition.parent;\n while (parent) {\n if (parent.is('element') && this.isImageWidget(parent)) {\n return parent;\n }\n parent = parent.parent;\n }\n return null;\n }\n /**\n * Returns a image model element if one is selected or is among the selection's ancestors.\n */\n getClosestSelectedImageElement(selection) {\n const selectedElement = selection.getSelectedElement();\n return this.isImage(selectedElement) ? selectedElement : selection.getFirstPosition().findAncestor('imageBlock');\n }\n /**\n * Checks if image can be inserted at current model selection.\n *\n * @internal\n */\n isImageAllowed() {\n const model = this.editor.model;\n const selection = model.document.selection;\n return isImageAllowedInParent(this.editor, selection) && isNotInsideImage(selection);\n }\n /**\n * Converts a given {@link module:engine/view/element~Element} to an image widget:\n * * Adds a {@link module:engine/view/element~Element#_setCustomProperty custom property} allowing to recognize the image widget\n * element.\n * * Calls the {@link module:widget/utils~toWidget} function with the proper element's label creator.\n *\n * @param writer An instance of the view writer.\n * @param label The element's label. It will be concatenated with the image `alt` attribute if one is present.\n */\n toImageWidget(viewElement, writer, label) {\n writer.setCustomProperty('image', true, viewElement);\n const labelCreator = () => {\n const imgElement = this.findViewImgElement(viewElement);\n const altText = imgElement.getAttribute('alt');\n return altText ? `${altText} ${label}` : label;\n };\n return toWidget(viewElement, writer, { label: labelCreator });\n }\n /**\n * Checks if a given view element is an image widget.\n */\n isImageWidget(viewElement) {\n return !!viewElement.getCustomProperty('image') && isWidget(viewElement);\n }\n /**\n * Checks if the provided model element is an `image`.\n */\n isBlockImage(modelElement) {\n return !!modelElement && modelElement.is('element', 'imageBlock');\n }\n /**\n * Checks if the provided model element is an `imageInline`.\n */\n isInlineImage(modelElement) {\n return !!modelElement && modelElement.is('element', 'imageInline');\n }\n /**\n * Get the view `` from another view element, e.g. a widget (`
    `), a link (``).\n *\n * The `` can be located deep in other elements, so this helper performs a deep tree search.\n */\n findViewImgElement(figureView) {\n if (this.isInlineImageView(figureView)) {\n return figureView;\n }\n const editingView = this.editor.editing.view;\n for (const { item } of editingView.createRangeIn(figureView)) {\n if (this.isInlineImageView(item)) {\n return item;\n }\n }\n }\n}\n/**\n * Checks if image is allowed by schema in optimal insertion parent.\n */\nfunction isImageAllowedInParent(editor, selection) {\n const imageType = determineImageTypeForInsertion(editor, selection, null);\n if (imageType == 'imageBlock') {\n const parent = getInsertImageParent(selection, editor.model);\n if (editor.model.schema.checkChild(parent, 'imageBlock')) {\n return true;\n }\n }\n else if (editor.model.schema.checkChild(selection.focus, 'imageInline')) {\n return true;\n }\n return false;\n}\n/**\n * Checks if selection is not placed inside an image (e.g. its caption).\n */\nfunction isNotInsideImage(selection) {\n return [...selection.focus.getAncestors()].every(ancestor => !ancestor.is('element', 'imageBlock'));\n}\n/**\n * Returns a node that will be used to insert image with `model.insertContent`.\n */\nfunction getInsertImageParent(selection, model) {\n const insertionRange = findOptimalInsertionRange(selection, model);\n const parent = insertionRange.start.parent;\n if (parent.isEmpty && !parent.is('element', '$root')) {\n return parent.parent;\n }\n return parent;\n}\n/**\n * Determine image element type name depending on editor config or place of insertion.\n *\n * @param imageType Image element type name. Used to force return of provided element name,\n * but only if there is proper plugin enabled.\n */\nfunction determineImageTypeForInsertion(editor, selectable, imageType) {\n const schema = editor.model.schema;\n const configImageInsertType = editor.config.get('image.insert.type');\n if (!editor.plugins.has('ImageBlockEditing')) {\n return 'imageInline';\n }\n if (!editor.plugins.has('ImageInlineEditing')) {\n return 'imageBlock';\n }\n if (imageType) {\n return imageType;\n }\n if (configImageInsertType === 'inline') {\n return 'imageInline';\n }\n if (configImageInsertType === 'block') {\n return 'imageBlock';\n }\n // Try to replace the selected widget (e.g. another image).\n if (selectable.is('selection')) {\n return determineImageTypeForInsertionAtSelection(schema, selectable);\n }\n return schema.checkChild(selectable, 'imageInline') ? 'imageInline' : 'imageBlock';\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/autoimage\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Clipboard } from 'ckeditor5/src/clipboard';\nimport { LivePosition, LiveRange } from 'ckeditor5/src/engine';\nimport { Undo } from 'ckeditor5/src/undo';\nimport { Delete } from 'ckeditor5/src/typing';\nimport { global } from 'ckeditor5/src/utils';\nimport ImageUtils from './imageutils';\n// Implements the pattern: http(s)://(www.)example.com/path/to/resource.ext?query=params&maybe=too.\nconst IMAGE_URL_REGEXP = new RegExp(String(/^(http(s)?:\\/\\/)?[\\w-]+\\.[\\w.~:/[\\]@!$&'()*+,;=%-]+/.source +\n /\\.(jpg|jpeg|png|gif|ico|webp|JPG|JPEG|PNG|GIF|ICO|WEBP)/.source +\n /(\\?[\\w.~:/[\\]@!$&'()*+,;=%-]*)?/.source +\n /(#[\\w.~:/[\\]@!$&'()*+,;=%-]*)?$/.source));\n/**\n * The auto-image plugin. It recognizes image links in the pasted content and embeds\n * them shortly after they are injected into the document.\n */\nexport default class AutoImage extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [Clipboard, ImageUtils, Undo, Delete];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'AutoImage';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n this._timeoutId = null;\n this._positionToInsert = null;\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const modelDocument = editor.model.document;\n const clipboardPipeline = editor.plugins.get('ClipboardPipeline');\n // We need to listen on `Clipboard#inputTransformation` because we need to save positions of selection.\n // After pasting, the content between those positions will be checked for a URL that could be transformed\n // into an image.\n this.listenTo(clipboardPipeline, 'inputTransformation', () => {\n const firstRange = modelDocument.selection.getFirstRange();\n const leftLivePosition = LivePosition.fromPosition(firstRange.start);\n leftLivePosition.stickiness = 'toPrevious';\n const rightLivePosition = LivePosition.fromPosition(firstRange.end);\n rightLivePosition.stickiness = 'toNext';\n modelDocument.once('change:data', () => {\n this._embedImageBetweenPositions(leftLivePosition, rightLivePosition);\n leftLivePosition.detach();\n rightLivePosition.detach();\n }, { priority: 'high' });\n });\n editor.commands.get('undo').on('execute', () => {\n if (this._timeoutId) {\n global.window.clearTimeout(this._timeoutId);\n this._positionToInsert.detach();\n this._timeoutId = null;\n this._positionToInsert = null;\n }\n }, { priority: 'high' });\n }\n /**\n * Analyzes the part of the document between provided positions in search for a URL representing an image.\n * When the URL is found, it is automatically converted into an image.\n *\n * @param leftPosition Left position of the selection.\n * @param rightPosition Right position of the selection.\n */\n _embedImageBetweenPositions(leftPosition, rightPosition) {\n const editor = this.editor;\n // TODO: Use a marker instead of LiveRange & LivePositions.\n const urlRange = new LiveRange(leftPosition, rightPosition);\n const walker = urlRange.getWalker({ ignoreElementEnd: true });\n const selectionAttributes = Object.fromEntries(editor.model.document.selection.getAttributes());\n const imageUtils = this.editor.plugins.get('ImageUtils');\n let src = '';\n for (const node of walker) {\n if (node.item.is('$textProxy')) {\n src += node.item.data;\n }\n }\n src = src.trim();\n // If the URL does not match the image URL regexp, let's skip that.\n if (!src.match(IMAGE_URL_REGEXP)) {\n urlRange.detach();\n return;\n }\n // Position will not be available in the `setTimeout` function so let's clone it.\n this._positionToInsert = LivePosition.fromPosition(leftPosition);\n // This action mustn't be executed if undo was called between pasting and auto-embedding.\n this._timeoutId = setTimeout(() => {\n // Do nothing if image element cannot be inserted at the current position.\n // See https://github.com/ckeditor/ckeditor5/issues/2763.\n // Condition must be checked after timeout - pasting may take place on an element, replacing it. The final position matters.\n const imageCommand = editor.commands.get('insertImage');\n if (!imageCommand.isEnabled) {\n urlRange.detach();\n return;\n }\n editor.model.change(writer => {\n this._timeoutId = null;\n writer.remove(urlRange);\n urlRange.detach();\n let insertionPosition;\n // Check if the position where the element should be inserted is still valid.\n // Otherwise leave it as undefined to use the logic of insertImage().\n if (this._positionToInsert.root.rootName !== '$graveyard') {\n insertionPosition = this._positionToInsert.toPosition();\n }\n imageUtils.insertImage({ ...selectionAttributes, src }, insertionPosition);\n this._positionToInsert.detach();\n this._positionToInsert = null;\n });\n const deletePlugin = editor.plugins.get('Delete');\n deletePlugin.requestUndoOnBackspace();\n }, 100);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetextalternative/imagetextalternativecommand\n */\nimport { Command } from 'ckeditor5/src/core';\n/**\n * The image text alternative command. It is used to change the `alt` attribute of `` and `` model elements.\n */\nexport default class ImageTextAlternativeCommand extends Command {\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const element = imageUtils.getClosestSelectedImageElement(this.editor.model.document.selection);\n this.isEnabled = !!element;\n if (this.isEnabled && element.hasAttribute('alt')) {\n this.value = element.getAttribute('alt');\n }\n else {\n this.value = false;\n }\n }\n /**\n * Executes the command.\n *\n * @fires execute\n * @param options\n * @param options.newValue The new value of the `alt` attribute to set.\n */\n execute(options) {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const model = editor.model;\n const imageElement = imageUtils.getClosestSelectedImageElement(model.document.selection);\n model.change(writer => {\n writer.setAttribute('alt', options.newValue, imageElement);\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetextalternative/imagetextalternativeediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport ImageTextAlternativeCommand from './imagetextalternativecommand';\nimport ImageUtils from '../imageutils';\n/**\n * The image text alternative editing plugin.\n *\n * Registers the `'imageTextAlternative'` command.\n */\nexport default class ImageTextAlternativeEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageTextAlternativeEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n this.editor.commands.add('imageTextAlternative', new ImageTextAlternativeCommand(this.editor));\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./textalternativeform.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetextalternative/ui/textalternativeformview\n */\nimport { ButtonView, FocusCycler, LabeledFieldView, View, ViewCollection, createLabeledInputText, submitHandler } from 'ckeditor5/src/ui';\nimport { FocusTracker, KeystrokeHandler } from 'ckeditor5/src/utils';\nimport { icons } from 'ckeditor5/src/core';\nimport '../../../theme/textalternativeform.css';\n// See: #8833.\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\n/**\n * The TextAlternativeFormView class.\n */\nexport default class TextAlternativeFormView extends View {\n /**\n * @inheritDoc\n */\n constructor(locale) {\n super(locale);\n const t = this.locale.t;\n this.focusTracker = new FocusTracker();\n this.keystrokes = new KeystrokeHandler();\n this.labeledInput = this._createLabeledInputView();\n this.saveButtonView = this._createButton(t('Save'), icons.check, 'ck-button-save');\n this.saveButtonView.type = 'submit';\n this.cancelButtonView = this._createButton(t('Cancel'), icons.cancel, 'ck-button-cancel', 'cancel');\n this._focusables = new ViewCollection();\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate form fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate form fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n this.setTemplate({\n tag: 'form',\n attributes: {\n class: [\n 'ck',\n 'ck-text-alternative-form',\n 'ck-responsive-form'\n ],\n // https://github.com/ckeditor/ckeditor5-image/issues/40\n tabindex: '-1'\n },\n children: [\n this.labeledInput,\n this.saveButtonView,\n this.cancelButtonView\n ]\n });\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n this.keystrokes.listenTo(this.element);\n submitHandler({ view: this });\n [this.labeledInput, this.saveButtonView, this.cancelButtonView]\n .forEach(v => {\n // Register the view as focusable.\n this._focusables.add(v);\n // Register the view in the focus tracker.\n this.focusTracker.add(v.element);\n });\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n * Creates the button view.\n *\n * @param label The button label\n * @param icon The button's icon.\n * @param className The additional button CSS class name.\n * @param eventName The event name that the ButtonView#execute event will be delegated to.\n * @returns The button view instance.\n */\n _createButton(label, icon, className, eventName) {\n const button = new ButtonView(this.locale);\n button.set({\n label,\n icon,\n tooltip: true\n });\n button.extendTemplate({\n attributes: {\n class: className\n }\n });\n if (eventName) {\n button.delegate('execute').to(this, eventName);\n }\n return button;\n }\n /**\n * Creates an input with a label.\n *\n * @returns Labeled field view instance.\n */\n _createLabeledInputView() {\n const t = this.locale.t;\n const labeledInput = new LabeledFieldView(this.locale, createLabeledInputText);\n labeledInput.label = t('Text alternative');\n return labeledInput;\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { BalloonPanelView } from 'ckeditor5/src/ui';\n/**\n * A helper utility that positions the\n * {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon} instance\n * with respect to the image in the editor content, if one is selected.\n *\n * @param editor The editor instance.\n */\nexport function repositionContextualBalloon(editor) {\n const balloon = editor.plugins.get('ContextualBalloon');\n const imageUtils = editor.plugins.get('ImageUtils');\n if (imageUtils.getClosestSelectedImageWidget(editor.editing.view.document.selection)) {\n const position = getBalloonPositionData(editor);\n balloon.updatePosition(position);\n }\n}\n/**\n * Returns the positioning options that control the geometry of the\n * {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon} with respect\n * to the selected element in the editor content.\n *\n * @param editor The editor instance.\n */\nexport function getBalloonPositionData(editor) {\n const editingView = editor.editing.view;\n const defaultPositions = BalloonPanelView.defaultPositions;\n const imageUtils = editor.plugins.get('ImageUtils');\n return {\n target: editingView.domConverter.mapViewToDom(imageUtils.getClosestSelectedImageWidget(editingView.document.selection)),\n positions: [\n defaultPositions.northArrowSouth,\n defaultPositions.northArrowSouthWest,\n defaultPositions.northArrowSouthEast,\n defaultPositions.southArrowNorth,\n defaultPositions.southArrowNorthWest,\n defaultPositions.southArrowNorthEast,\n defaultPositions.viewportStickyNorth\n ]\n };\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetextalternative/imagetextalternativeui\n */\nimport { Plugin, icons } from 'ckeditor5/src/core';\nimport { ButtonView, ContextualBalloon, clickOutsideHandler, CssTransitionDisablerMixin } from 'ckeditor5/src/ui';\nimport TextAlternativeFormView from './ui/textalternativeformview';\nimport { repositionContextualBalloon, getBalloonPositionData } from '../image/ui/utils';\n/**\n * The image text alternative UI plugin.\n *\n * The plugin uses the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon}.\n */\nexport default class ImageTextAlternativeUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ContextualBalloon];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageTextAlternativeUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n this._createButton();\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n if (this._form) {\n this._form.destroy();\n }\n }\n /**\n * Creates a button showing the balloon panel for changing the image text alternative and\n * registers it in the editor {@link module:ui/componentfactory~ComponentFactory ComponentFactory}.\n */\n _createButton() {\n const editor = this.editor;\n const t = editor.t;\n editor.ui.componentFactory.add('imageTextAlternative', locale => {\n const command = editor.commands.get('imageTextAlternative');\n const view = new ButtonView(locale);\n view.set({\n label: t('Change image text alternative'),\n icon: icons.lowVision,\n tooltip: true\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n view.bind('isOn').to(command, 'value', value => !!value);\n this.listenTo(view, 'execute', () => {\n this._showForm();\n });\n return view;\n });\n }\n /**\n * Creates the {@link module:image/imagetextalternative/ui/textalternativeformview~TextAlternativeFormView}\n * form.\n */\n _createForm() {\n const editor = this.editor;\n const view = editor.editing.view;\n const viewDocument = view.document;\n const imageUtils = editor.plugins.get('ImageUtils');\n this._balloon = this.editor.plugins.get('ContextualBalloon');\n this._form = new (CssTransitionDisablerMixin(TextAlternativeFormView))(editor.locale);\n // Render the form so its #element is available for clickOutsideHandler.\n this._form.render();\n this.listenTo(this._form, 'submit', () => {\n editor.execute('imageTextAlternative', {\n newValue: this._form.labeledInput.fieldView.element.value\n });\n this._hideForm(true);\n });\n this.listenTo(this._form, 'cancel', () => {\n this._hideForm(true);\n });\n // Close the form on Esc key press.\n this._form.keystrokes.set('Esc', (data, cancel) => {\n this._hideForm(true);\n cancel();\n });\n // Reposition the balloon or hide the form if an image widget is no longer selected.\n this.listenTo(editor.ui, 'update', () => {\n if (!imageUtils.getClosestSelectedImageWidget(viewDocument.selection)) {\n this._hideForm(true);\n }\n else if (this._isVisible) {\n repositionContextualBalloon(editor);\n }\n });\n // Close on click outside of balloon panel element.\n clickOutsideHandler({\n emitter: this._form,\n activator: () => this._isVisible,\n contextElements: () => [this._balloon.view.element],\n callback: () => this._hideForm()\n });\n }\n /**\n * Shows the {@link #_form} in the {@link #_balloon}.\n */\n _showForm() {\n if (this._isVisible) {\n return;\n }\n if (!this._form) {\n this._createForm();\n }\n const editor = this.editor;\n const command = editor.commands.get('imageTextAlternative');\n const labeledInput = this._form.labeledInput;\n this._form.disableCssTransitions();\n if (!this._isInBalloon) {\n this._balloon.add({\n view: this._form,\n position: getBalloonPositionData(editor)\n });\n }\n // Make sure that each time the panel shows up, the field remains in sync with the value of\n // the command. If the user typed in the input, then canceled the balloon (`labeledInput#value`\n // stays unaltered) and re-opened it without changing the value of the command, they would see the\n // old value instead of the actual value of the command.\n // https://github.com/ckeditor/ckeditor5-image/issues/114\n labeledInput.fieldView.value = labeledInput.fieldView.element.value = command.value || '';\n this._form.labeledInput.fieldView.select();\n this._form.enableCssTransitions();\n }\n /**\n * Removes the {@link #_form} from the {@link #_balloon}.\n *\n * @param focusEditable Controls whether the editing view is focused afterwards.\n */\n _hideForm(focusEditable = false) {\n if (!this._isInBalloon) {\n return;\n }\n // Blur the input element before removing it from DOM to prevent issues in some browsers.\n // See https://github.com/ckeditor/ckeditor5/issues/1501.\n if (this._form.focusTracker.isFocused) {\n this._form.saveButtonView.focus();\n }\n this._balloon.remove(this._form);\n if (focusEditable) {\n this.editor.editing.view.focus();\n }\n }\n /**\n * Returns `true` when the {@link #_form} is the visible view in the {@link #_balloon}.\n */\n get _isVisible() {\n return !!this._balloon && this._balloon.visibleView === this._form;\n }\n /**\n * Returns `true` when the {@link #_form} is in the {@link #_balloon}.\n */\n get _isInBalloon() {\n return !!this._balloon && this._balloon.hasView(this._form);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetextalternative\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport ImageTextAlternativeEditing from './imagetextalternative/imagetextalternativeediting';\nimport ImageTextAlternativeUI from './imagetextalternative/imagetextalternativeui';\n/**\n * The image text alternative plugin.\n *\n * For a detailed overview, check the {@glink features/images/images-styles image styles} documentation.\n *\n * This is a \"glue\" plugin which loads the\n * {@link module:image/imagetextalternative/imagetextalternativeediting~ImageTextAlternativeEditing}\n * and {@link module:image/imagetextalternative/imagetextalternativeui~ImageTextAlternativeUI} plugins.\n */\nexport default class ImageTextAlternative extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageTextAlternativeEditing, ImageTextAlternativeUI];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageTextAlternative';\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { first } from 'ckeditor5/src/utils';\n/**\n * Returns a function that converts the image view representation:\n *\n * ```html\n *
    \"...\"
    \n * ```\n *\n * to the model representation:\n *\n * ```html\n * \n * ```\n *\n * The entire content of the `
    ` element except the first `` is being converted as children\n * of the `` model element.\n *\n * @internal\n */\nexport function upcastImageFigure(imageUtils) {\n const converter = (evt, data, conversionApi) => {\n // Do not convert if this is not an \"image figure\".\n if (!conversionApi.consumable.test(data.viewItem, { name: true, classes: 'image' })) {\n return;\n }\n // Find an image element inside the figure element.\n const viewImage = imageUtils.findViewImgElement(data.viewItem);\n // Do not convert if image element is absent or was already converted.\n if (!viewImage || !conversionApi.consumable.test(viewImage, { name: true })) {\n return;\n }\n // Consume the figure to prevent other converters from processing it again.\n conversionApi.consumable.consume(data.viewItem, { name: true, classes: 'image' });\n // Convert view image to model image.\n const conversionResult = conversionApi.convertItem(viewImage, data.modelCursor);\n // Get image element from conversion result.\n const modelImage = first(conversionResult.modelRange.getItems());\n // When image wasn't successfully converted then finish conversion.\n if (!modelImage) {\n // Revert consumed figure so other features can convert it.\n conversionApi.consumable.revert(data.viewItem, { name: true, classes: 'image' });\n return;\n }\n // Convert rest of the figure element's children as an image children.\n conversionApi.convertChildren(data.viewItem, modelImage);\n conversionApi.updateConversionResult(modelImage, data);\n };\n return dispatcher => {\n dispatcher.on('element:figure', converter);\n };\n}\n/**\n * Returns a function that converts the image view representation:\n *\n * ```html\n * ...\n * ```\n *\n * to the model representation as the `sources` attribute:\n *\n * ```html\n * \n * ```\n *\n * @internal\n */\nexport function upcastPicture(imageUtils) {\n const sourceAttributeNames = ['srcset', 'media', 'type', 'sizes'];\n const converter = (evt, data, conversionApi) => {\n const pictureViewElement = data.viewItem;\n // Do not convert if already consumed.\n if (!conversionApi.consumable.test(pictureViewElement, { name: true })) {\n return;\n }\n const sources = new Map();\n // Collect all elements attribute values.\n for (const childSourceElement of pictureViewElement.getChildren()) {\n if (childSourceElement.is('element', 'source')) {\n const attributes = {};\n for (const name of sourceAttributeNames) {\n if (childSourceElement.hasAttribute(name)) {\n // Don't collect attribute if already consumed somewhere else.\n if (conversionApi.consumable.test(childSourceElement, { attributes: name })) {\n attributes[name] = childSourceElement.getAttribute(name);\n }\n }\n }\n if (Object.keys(attributes).length) {\n sources.set(childSourceElement, attributes);\n }\n }\n }\n const imgViewElement = imageUtils.findViewImgElement(pictureViewElement);\n // Don't convert when a picture has no inside (it is broken).\n if (!imgViewElement) {\n return;\n }\n let modelImage = data.modelCursor.parent;\n // - In case of an inline image (cursor parent in a ), the must be converted right away\n // because no converter handled it yet and otherwise there would be no model element to set the sources attribute on.\n // - In case of a block image, the
    converter (in ImageBlockEditing) converts the\n // right away on its own and the modelCursor is already inside an imageBlock and there's nothing special\n // to do here.\n if (!modelImage.is('element', 'imageBlock')) {\n const conversionResult = conversionApi.convertItem(imgViewElement, data.modelCursor);\n // Set image range as conversion result.\n data.modelRange = conversionResult.modelRange;\n // Continue conversion where image conversion ends.\n data.modelCursor = conversionResult.modelCursor;\n modelImage = first(conversionResult.modelRange.getItems());\n }\n conversionApi.consumable.consume(pictureViewElement, { name: true });\n // Consume only these attributes that were actually collected and will be passed on\n // to the image model element.\n for (const [sourceElement, attributes] of sources) {\n conversionApi.consumable.consume(sourceElement, { attributes: Object.keys(attributes) });\n }\n if (sources.size) {\n conversionApi.writer.setAttribute('sources', Array.from(sources.values()), modelImage);\n }\n // Convert rest of the children as an image children. Other converters may want to consume them.\n conversionApi.convertChildren(pictureViewElement, modelImage);\n };\n return dispatcher => {\n dispatcher.on('element:picture', converter);\n };\n}\n/**\n * Converter used to convert the `srcset` model image attribute to the `srcset`, `sizes` and `width` attributes in the view.\n *\n * @internal\n * @param imageType The type of the image.\n */\nexport function downcastSrcsetAttribute(imageUtils, imageType) {\n const converter = (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const writer = conversionApi.writer;\n const element = conversionApi.mapper.toViewElement(data.item);\n const img = imageUtils.findViewImgElement(element);\n if (data.attributeNewValue === null) {\n const srcset = data.attributeOldValue;\n if (srcset && srcset.data) {\n writer.removeAttribute('srcset', img);\n writer.removeAttribute('sizes', img);\n if (srcset.width) {\n writer.removeAttribute('width', img);\n }\n }\n }\n else {\n const srcset = data.attributeNewValue;\n if (srcset && srcset.data) {\n writer.setAttribute('srcset', srcset.data, img);\n // Always outputting `100vw`. See https://github.com/ckeditor/ckeditor5-image/issues/2.\n writer.setAttribute('sizes', '100vw', img);\n if (srcset.width) {\n writer.setAttribute('width', srcset.width, img);\n }\n }\n }\n };\n return dispatcher => {\n dispatcher.on(`attribute:srcset:${imageType}`, converter);\n };\n}\n/**\n * Converts the `source` model attribute to the `...`\n * view structure.\n *\n * @internal\n */\nexport function downcastSourcesAttribute(imageUtils) {\n const converter = (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const viewWriter = conversionApi.writer;\n const element = conversionApi.mapper.toViewElement(data.item);\n const imgElement = imageUtils.findViewImgElement(element);\n const attributeNewValue = data.attributeNewValue;\n if (attributeNewValue && attributeNewValue.length) {\n // Make sure does not break attribute elements, for instance in linked images.\n const pictureElement = viewWriter.createContainerElement('picture', null, attributeNewValue.map(sourceAttributes => {\n return viewWriter.createEmptyElement('source', sourceAttributes);\n }));\n // Collect all wrapping attribute elements.\n const attributeElements = [];\n let viewElement = imgElement.parent;\n while (viewElement && viewElement.is('attributeElement')) {\n const parentElement = viewElement.parent;\n viewWriter.unwrap(viewWriter.createRangeOn(imgElement), viewElement);\n attributeElements.unshift(viewElement);\n viewElement = parentElement;\n }\n // Insert the picture and move img into it.\n viewWriter.insert(viewWriter.createPositionBefore(imgElement), pictureElement);\n viewWriter.move(viewWriter.createRangeOn(imgElement), viewWriter.createPositionAt(pictureElement, 'end'));\n // Apply collected attribute elements over the new picture element.\n for (const attributeElement of attributeElements) {\n viewWriter.wrap(viewWriter.createRangeOn(pictureElement), attributeElement);\n }\n }\n // Both setting \"sources\" to an empty array and removing the attribute should unwrap the .\n // Unwrap once if the latter followed the former, though.\n else if (imgElement.parent.is('element', 'picture')) {\n const pictureElement = imgElement.parent;\n viewWriter.move(viewWriter.createRangeOn(imgElement), viewWriter.createPositionBefore(pictureElement));\n viewWriter.remove(pictureElement);\n }\n };\n return dispatcher => {\n dispatcher.on('attribute:sources:imageBlock', converter);\n dispatcher.on('attribute:sources:imageInline', converter);\n };\n}\n/**\n * Converter used to convert a given image attribute from the model to the view.\n *\n * @internal\n * @param imageType The type of the image.\n * @param attributeKey The name of the attribute to convert.\n */\nexport function downcastImageAttribute(imageUtils, imageType, attributeKey) {\n const converter = (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const viewWriter = conversionApi.writer;\n const element = conversionApi.mapper.toViewElement(data.item);\n const img = imageUtils.findViewImgElement(element);\n viewWriter.setAttribute(data.attributeKey, data.attributeNewValue || '', img);\n };\n return dispatcher => {\n dispatcher.on(`attribute:${attributeKey}:${imageType}`, converter);\n };\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/image/imageloadobserver\n */\nimport { Observer } from 'ckeditor5/src/engine';\n/**\n * Observes all new images added to the {@link module:engine/view/document~Document},\n * fires {@link module:engine/view/document~Document#event:imageLoaded} and\n * {@link module:engine/view/document~Document#event:layoutChanged} event every time when the new image\n * has been loaded.\n *\n * **Note:** This event is not fired for images that has been added to the document and rendered as `complete` (already loaded).\n */\nexport default class ImageLoadObserver extends Observer {\n /**\n * @inheritDoc\n */\n observe(domRoot) {\n this.listenTo(domRoot, 'load', (event, domEvent) => {\n const domElement = domEvent.target;\n if (this.checkShouldIgnoreEventFromTarget(domElement)) {\n return;\n }\n if (domElement.tagName == 'IMG') {\n this._fireEvents(domEvent);\n }\n // Use capture phase for better performance (#4504).\n }, { useCapture: true });\n }\n /**\n * @inheritDoc\n */\n stopObserving(domRoot) {\n this.stopListening(domRoot);\n }\n /**\n * Fires {@link module:engine/view/document~Document#event:layoutChanged} and\n * {@link module:engine/view/document~Document#event:imageLoaded}\n * if observer {@link #isEnabled is enabled}.\n *\n * @param domEvent The DOM event.\n */\n _fireEvents(domEvent) {\n if (this.isEnabled) {\n this.document.fire('layoutChanged');\n this.document.fire('imageLoaded', domEvent);\n }\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/image/insertimagecommand\n */\nimport { Command } from 'ckeditor5/src/core';\nimport { logWarning, toArray } from 'ckeditor5/src/utils';\n/**\n * Insert image command.\n *\n * The command is registered by the {@link module:image/image/imageediting~ImageEditing} plugin as `insertImage`\n * and it is also available via aliased `imageInsert` name.\n *\n * In order to insert an image at the current selection position\n * (according to the {@link module:widget/utils~findOptimalInsertionRange} algorithm),\n * execute the command and specify the image source:\n *\n * ```ts\n * editor.execute( 'insertImage', { source: 'http://url.to.the/image' } );\n * ```\n *\n * It is also possible to insert multiple images at once:\n *\n * ```ts\n * editor.execute( 'insertImage', {\n * \tsource: [\n * \t\t'path/to/image.jpg',\n * \t\t'path/to/other-image.jpg'\n * \t]\n * } );\n * ```\n *\n * If you want to take the full control over the process, you can specify individual model attributes:\n *\n * ```ts\n * editor.execute( 'insertImage', {\n * \tsource: [\n * \t\t{ src: 'path/to/image.jpg', alt: 'First alt text' },\n * \t\t{ src: 'path/to/other-image.jpg', alt: 'Second alt text', customAttribute: 'My attribute value' }\n * \t]\n * } );\n * ```\n */\nexport default class InsertImageCommand extends Command {\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n const configImageInsertType = editor.config.get('image.insert.type');\n if (!editor.plugins.has('ImageBlockEditing')) {\n if (configImageInsertType === 'block') {\n /**\n * The {@link module:image/imageblock~ImageBlock} plugin must be enabled to allow inserting block images. See\n * {@link module:image/imageconfig~ImageInsertConfig#type} to learn more.\n *\n * @error image-block-plugin-required\n */\n logWarning('image-block-plugin-required');\n }\n }\n if (!editor.plugins.has('ImageInlineEditing')) {\n if (configImageInsertType === 'inline') {\n /**\n * The {@link module:image/imageinline~ImageInline} plugin must be enabled to allow inserting inline images. See\n * {@link module:image/imageconfig~ImageInsertConfig#type} to learn more.\n *\n * @error image-inline-plugin-required\n */\n logWarning('image-inline-plugin-required');\n }\n }\n }\n /**\n * @inheritDoc\n */\n refresh() {\n const imageUtils = this.editor.plugins.get('ImageUtils');\n this.isEnabled = imageUtils.isImageAllowed();\n }\n /**\n * Executes the command.\n *\n * @fires execute\n * @param options Options for the executed command.\n * @param options.source The image source or an array of image sources to insert.\n * See the documentation of the command to learn more about accepted formats.\n */\n execute(options) {\n const sourceDefinitions = toArray(options.source);\n const selection = this.editor.model.document.selection;\n const imageUtils = this.editor.plugins.get('ImageUtils');\n // In case of multiple images, each image (starting from the 2nd) will be inserted at a position that\n // follows the previous one. That will move the selection and, to stay on the safe side and make sure\n // all images inherit the same selection attributes, they are collected beforehand.\n //\n // Applying these attributes ensures, for instance, that inserting an (inline) image into a link does\n // not split that link but preserves its continuity.\n //\n // Note: Selection attributes that do not make sense for images will be filtered out by insertImage() anyway.\n const selectionAttributes = Object.fromEntries(selection.getAttributes());\n sourceDefinitions.forEach((sourceDefinition, index) => {\n const selectedElement = selection.getSelectedElement();\n if (typeof sourceDefinition === 'string') {\n sourceDefinition = { src: sourceDefinition };\n }\n // Inserting of an inline image replace the selected element and make a selection on the inserted image.\n // Therefore inserting multiple inline images requires creating position after each element.\n if (index && selectedElement && imageUtils.isImage(selectedElement)) {\n const position = this.editor.model.createPositionAfter(selectedElement);\n imageUtils.insertImage({ ...sourceDefinition, ...selectionAttributes }, position);\n }\n else {\n imageUtils.insertImage({ ...sourceDefinition, ...selectionAttributes });\n }\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Command } from 'ckeditor5/src/core';\n/**\n * @module image/image/replaceimagesourcecommand\n */\n/**\n * Replace image source command.\n *\n * Changes image source to the one provided. Can be executed as follows:\n *\n * ```ts\n * editor.execute( 'replaceImageSource', { source: 'http://url.to.the/image' } );\n * ```\n */\nexport default class ReplaceImageSourceCommand extends Command {\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const element = this.editor.model.document.selection.getSelectedElement();\n this.isEnabled = imageUtils.isImage(element);\n this.value = this.isEnabled ? element.getAttribute('src') : null;\n }\n /**\n * Executes the command.\n *\n * @fires execute\n * @param options Options for the executed command.\n * @param options.source The image source to replace.\n */\n execute(options) {\n const image = this.editor.model.document.selection.getSelectedElement();\n this.editor.model.change(writer => {\n writer.setAttribute('src', options.source, image);\n writer.removeAttribute('srcset', image);\n writer.removeAttribute('sizes', image);\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/image/imageediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport ImageLoadObserver from './imageloadobserver';\nimport InsertImageCommand from './insertimagecommand';\nimport ReplaceImageSourceCommand from './replaceimagesourcecommand';\nimport ImageUtils from '../imageutils';\n/**\n * The image engine plugin. This module loads common code shared between\n * {@link module:image/image/imageinlineediting~ImageInlineEditing} and\n * {@link module:image/image/imageblockediting~ImageBlockEditing} plugins.\n *\n * This plugin registers the {@link module:image/image/insertimagecommand~InsertImageCommand 'insertImage'} command.\n */\nexport default class ImageEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const conversion = editor.conversion;\n // See https://github.com/ckeditor/ckeditor5-image/issues/142.\n editor.editing.view.addObserver(ImageLoadObserver);\n conversion.for('upcast')\n .attributeToAttribute({\n view: {\n name: 'img',\n key: 'alt'\n },\n model: 'alt'\n })\n .attributeToAttribute({\n view: {\n name: 'img',\n key: 'srcset'\n },\n model: {\n key: 'srcset',\n value: (viewImage) => {\n const value = {\n data: viewImage.getAttribute('srcset')\n };\n if (viewImage.hasAttribute('width')) {\n value.width = viewImage.getAttribute('width');\n }\n return value;\n }\n }\n });\n const insertImageCommand = new InsertImageCommand(editor);\n const replaceImageSourceCommand = new ReplaceImageSourceCommand(editor);\n editor.commands.add('insertImage', insertImageCommand);\n editor.commands.add('replaceImageSource', replaceImageSourceCommand);\n // `imageInsert` is an alias for backward compatibility.\n editor.commands.add('imageInsert', insertImageCommand);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Command } from 'ckeditor5/src/core';\n/**\n * The image type command. It changes the type of a selected image, depending on the configuration.\n */\nexport default class ImageTypeCommand extends Command {\n /**\n * @inheritDoc\n *\n * @param modelElementName Model element name the command converts to.\n */\n constructor(editor, modelElementName) {\n super(editor);\n this._modelElementName = modelElementName;\n }\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const element = imageUtils.getClosestSelectedImageElement(this.editor.model.document.selection);\n if (this._modelElementName === 'imageBlock') {\n this.isEnabled = imageUtils.isInlineImage(element);\n }\n else {\n this.isEnabled = imageUtils.isBlockImage(element);\n }\n }\n /**\n * Executes the command and changes the type of a selected image.\n *\n * @fires execute\n * @returns An object containing references to old and new model image elements\n * (for before and after the change) so external integrations can hook into the decorated\n * `execute` event and handle this change. `null` if the type change failed.\n */\n execute() {\n const editor = this.editor;\n const model = this.editor.model;\n const imageUtils = editor.plugins.get('ImageUtils');\n const oldElement = imageUtils.getClosestSelectedImageElement(model.document.selection);\n const attributes = Object.fromEntries(oldElement.getAttributes());\n // Don't change image type if \"src\" is missing (a broken image), unless there's \"uploadId\" set.\n // This state may happen during image upload (before it finishes) and it should be possible to change type\n // of the image in the meantime.\n if (!attributes.src && !attributes.uploadId) {\n return null;\n }\n return model.change(writer => {\n // Get all markers that contain the old image element.\n const markers = Array.from(model.markers)\n .filter(marker => marker.getRange().containsItem(oldElement));\n const newElement = imageUtils.insertImage(attributes, model.createSelection(oldElement, 'on'), this._modelElementName);\n if (!newElement) {\n return null;\n }\n const newElementRange = writer.createRangeOn(newElement);\n // Expand the previously intersecting markers' ranges to include the new image element.\n for (const marker of markers) {\n const markerRange = marker.getRange();\n // Join the survived part of the old marker range with the new element range\n // (loosely because there could be some new paragraph or the existing one might got split).\n const range = markerRange.root.rootName != '$graveyard' ?\n markerRange.getJoined(newElementRange, true) : newElementRange;\n writer.updateMarker(marker, { range });\n }\n return {\n oldElement,\n newElement\n };\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/image/imageblockediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { ClipboardPipeline } from 'ckeditor5/src/clipboard';\nimport { UpcastWriter } from 'ckeditor5/src/engine';\nimport { downcastImageAttribute, downcastSrcsetAttribute, upcastImageFigure } from './converters';\nimport ImageEditing from './imageediting';\nimport ImageTypeCommand from './imagetypecommand';\nimport ImageUtils from '../imageutils';\nimport { getImgViewElementMatcher, createBlockImageViewElement, determineImageTypeForInsertionAtSelection } from '../image/utils';\n/**\n * The image block plugin.\n *\n * It registers:\n *\n * * `` as a block element in the document schema, and allows `alt`, `src` and `srcset` attributes.\n * * converters for editing and data pipelines.,\n * * {@link module:image/image/imagetypecommand~ImageTypeCommand `'imageTypeBlock'`} command that converts inline images into\n * block images.\n */\nexport default class ImageBlockEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageEditing, ImageUtils, ClipboardPipeline];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageBlockEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const schema = editor.model.schema;\n // Converters 'alt' and 'srcset' are added in 'ImageEditing' plugin.\n schema.register('imageBlock', {\n inheritAllFrom: '$blockObject',\n allowAttributes: ['alt', 'src', 'srcset']\n });\n this._setupConversion();\n if (editor.plugins.has('ImageInlineEditing')) {\n editor.commands.add('imageTypeBlock', new ImageTypeCommand(this.editor, 'imageBlock'));\n this._setupClipboardIntegration();\n }\n }\n /**\n * Configures conversion pipelines to support upcasting and downcasting\n * block images (block image widgets) and their attributes.\n */\n _setupConversion() {\n const editor = this.editor;\n const t = editor.t;\n const conversion = editor.conversion;\n const imageUtils = editor.plugins.get('ImageUtils');\n conversion.for('dataDowncast')\n .elementToStructure({\n model: 'imageBlock',\n view: (modelElement, { writer }) => createBlockImageViewElement(writer)\n });\n conversion.for('editingDowncast')\n .elementToStructure({\n model: 'imageBlock',\n view: (modelElement, { writer }) => imageUtils.toImageWidget(createBlockImageViewElement(writer), writer, t('image widget'))\n });\n conversion.for('downcast')\n .add(downcastImageAttribute(imageUtils, 'imageBlock', 'src'))\n .add(downcastImageAttribute(imageUtils, 'imageBlock', 'alt'))\n .add(downcastSrcsetAttribute(imageUtils, 'imageBlock'));\n // More image related upcasts are in 'ImageEditing' plugin.\n conversion.for('upcast')\n .elementToElement({\n view: getImgViewElementMatcher(editor, 'imageBlock'),\n model: (viewImage, { writer }) => writer.createElement('imageBlock', viewImage.hasAttribute('src') ? { src: viewImage.getAttribute('src') } : undefined)\n })\n .add(upcastImageFigure(imageUtils));\n }\n /**\n * Integrates the plugin with the clipboard pipeline.\n *\n * Idea is that the feature should recognize the user's intent when an **inline** image is\n * pasted or dropped. If such an image is pasted/dropped:\n *\n * * into an empty block (e.g. an empty paragraph),\n * * on another object (e.g. some block widget).\n *\n * it gets converted into a block image on the fly. We assume this is the user's intent\n * if they decided to put their image there.\n *\n * See the `ImageInlineEditing` for the similar integration that works in the opposite direction.\n */\n _setupClipboardIntegration() {\n const editor = this.editor;\n const model = editor.model;\n const editingView = editor.editing.view;\n const imageUtils = editor.plugins.get('ImageUtils');\n const clipboardPipeline = editor.plugins.get('ClipboardPipeline');\n this.listenTo(clipboardPipeline, 'inputTransformation', (evt, data) => {\n const docFragmentChildren = Array.from(data.content.getChildren());\n let modelRange;\n // Make sure only elements are dropped or pasted. Otherwise, if there some other HTML\n // mixed up, this should be handled as a regular paste.\n if (!docFragmentChildren.every(imageUtils.isInlineImageView)) {\n return;\n }\n // When drag and dropping, data.targetRanges specifies where to drop because\n // this is usually a different place than the current model selection (the user\n // uses a drop marker to specify the drop location).\n if (data.targetRanges) {\n modelRange = editor.editing.mapper.toModelRange(data.targetRanges[0]);\n }\n // Pasting, however, always occurs at the current model selection.\n else {\n modelRange = model.document.selection.getFirstRange();\n }\n const selection = model.createSelection(modelRange);\n // Convert inline images into block images only when the currently selected block is empty\n // (e.g. an empty paragraph) or some object is selected (to replace it).\n if (determineImageTypeForInsertionAtSelection(model.schema, selection) === 'imageBlock') {\n const writer = new UpcastWriter(editingView.document);\n // Wrap ->
    \n const blockViewImages = docFragmentChildren.map(inlineViewImage => writer.createElement('figure', { class: 'image' }, inlineViewImage));\n data.content = writer.createDocumentFragment(blockViewImages);\n }\n });\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./image.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageblock\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Widget } from 'ckeditor5/src/widget';\nimport ImageTextAlternative from './imagetextalternative';\nimport ImageBlockEditing from './image/imageblockediting';\nimport '../theme/image.css';\n/**\n * The image block plugin.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * {@link module:image/image/imageblockediting~ImageBlockEditing},\n * * {@link module:image/imagetextalternative~ImageTextAlternative}.\n *\n * Usually, it is used in conjunction with other plugins from this package. See the {@glink api/image package page}\n * for more information.\n */\nexport default class ImageBlock extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageBlockEditing, Widget, ImageTextAlternative];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageBlock';\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/image/imageinlineediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { ClipboardPipeline } from 'ckeditor5/src/clipboard';\nimport { UpcastWriter } from 'ckeditor5/src/engine';\nimport { downcastImageAttribute, downcastSrcsetAttribute } from './converters';\nimport ImageEditing from './imageediting';\nimport ImageTypeCommand from './imagetypecommand';\nimport ImageUtils from '../imageutils';\nimport { getImgViewElementMatcher, createInlineImageViewElement, determineImageTypeForInsertionAtSelection } from '../image/utils';\n/**\n * The image inline plugin.\n *\n * It registers:\n *\n * * `` as an inline element in the document schema, and allows `alt`, `src` and `srcset` attributes.\n * * converters for editing and data pipelines.\n * * {@link module:image/image/imagetypecommand~ImageTypeCommand `'imageTypeInline'`} command that converts block images into\n * inline images.\n */\nexport default class ImageInlineEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageEditing, ImageUtils, ClipboardPipeline];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageInlineEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const schema = editor.model.schema;\n // Converters 'alt' and 'srcset' are added in 'ImageEditing' plugin.\n schema.register('imageInline', {\n inheritAllFrom: '$inlineObject',\n allowAttributes: ['alt', 'src', 'srcset']\n });\n // Disallow inline images in captions (for now). This is the best spot to do that because\n // independent packages can introduce captions (ImageCaption, TableCaption, etc.) so better this\n // be future-proof.\n schema.addChildCheck((context, childDefinition) => {\n if (context.endsWith('caption') && childDefinition.name === 'imageInline') {\n return false;\n }\n });\n this._setupConversion();\n if (editor.plugins.has('ImageBlockEditing')) {\n editor.commands.add('imageTypeInline', new ImageTypeCommand(this.editor, 'imageInline'));\n this._setupClipboardIntegration();\n }\n }\n /**\n * Configures conversion pipelines to support upcasting and downcasting\n * inline images (inline image widgets) and their attributes.\n */\n _setupConversion() {\n const editor = this.editor;\n const t = editor.t;\n const conversion = editor.conversion;\n const imageUtils = editor.plugins.get('ImageUtils');\n conversion.for('dataDowncast')\n .elementToElement({\n model: 'imageInline',\n view: (modelElement, { writer }) => writer.createEmptyElement('img')\n });\n conversion.for('editingDowncast')\n .elementToStructure({\n model: 'imageInline',\n view: (modelElement, { writer }) => imageUtils.toImageWidget(createInlineImageViewElement(writer), writer, t('image widget'))\n });\n conversion.for('downcast')\n .add(downcastImageAttribute(imageUtils, 'imageInline', 'src'))\n .add(downcastImageAttribute(imageUtils, 'imageInline', 'alt'))\n .add(downcastSrcsetAttribute(imageUtils, 'imageInline'));\n // More image related upcasts are in 'ImageEditing' plugin.\n conversion.for('upcast')\n .elementToElement({\n view: getImgViewElementMatcher(editor, 'imageInline'),\n model: (viewImage, { writer }) => writer.createElement('imageInline', viewImage.hasAttribute('src') ? { src: viewImage.getAttribute('src') } : undefined)\n });\n }\n /**\n * Integrates the plugin with the clipboard pipeline.\n *\n * Idea is that the feature should recognize the user's intent when an **block** image is\n * pasted or dropped. If such an image is pasted/dropped into a non-empty block\n * (e.g. a paragraph with some text) it gets converted into an inline image on the fly.\n *\n * We assume this is the user's intent if they decided to put their image there.\n *\n * **Note**: If a block image has a caption, it will not be converted to an inline image\n * to avoid the confusion. Captions are added on purpose and they should never be lost\n * in the clipboard pipeline.\n *\n * See the `ImageBlockEditing` for the similar integration that works in the opposite direction.\n */\n _setupClipboardIntegration() {\n const editor = this.editor;\n const model = editor.model;\n const editingView = editor.editing.view;\n const imageUtils = editor.plugins.get('ImageUtils');\n const clipboardPipeline = editor.plugins.get('ClipboardPipeline');\n this.listenTo(clipboardPipeline, 'inputTransformation', (evt, data) => {\n const docFragmentChildren = Array.from(data.content.getChildren());\n let modelRange;\n // Make sure only
    elements are dropped or pasted. Otherwise, if there some other HTML\n // mixed up, this should be handled as a regular paste.\n if (!docFragmentChildren.every(imageUtils.isBlockImageView)) {\n return;\n }\n // When drag and dropping, data.targetRanges specifies where to drop because\n // this is usually a different place than the current model selection (the user\n // uses a drop marker to specify the drop location).\n if (data.targetRanges) {\n modelRange = editor.editing.mapper.toModelRange(data.targetRanges[0]);\n }\n // Pasting, however, always occurs at the current model selection.\n else {\n modelRange = model.document.selection.getFirstRange();\n }\n const selection = model.createSelection(modelRange);\n // Convert block images into inline images only when pasting or dropping into non-empty blocks\n // and when the block is not an object (e.g. pasting to replace another widget).\n if (determineImageTypeForInsertionAtSelection(model.schema, selection) === 'imageInline') {\n const writer = new UpcastWriter(editingView.document);\n // Unwrap
    -> \n // but
    ...
    -> stays the same\n const inlineViewImages = docFragmentChildren.map(blockViewImage => {\n // If there's just one child, it can be either or
    .\n // If there are other children than , this means that the block image\n // has a caption or some other features and this kind of image should be\n // pasted/dropped without modifications.\n if (blockViewImage.childCount === 1) {\n // Pass the attributes which are present only in the
    to the \n // (e.g. the style=\"width:10%\" attribute applied by the ImageResize plugin).\n Array.from(blockViewImage.getAttributes())\n .forEach(attribute => writer.setAttribute(...attribute, imageUtils.findViewImgElement(blockViewImage)));\n return blockViewImage.getChild(0);\n }\n else {\n return blockViewImage;\n }\n });\n data.content = writer.createDocumentFragment(inlineViewImages);\n }\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageinline\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Widget } from 'ckeditor5/src/widget';\nimport ImageTextAlternative from './imagetextalternative';\nimport ImageInlineEditing from './image/imageinlineediting';\nimport '../theme/image.css';\n/**\n * The image inline plugin.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * {@link module:image/image/imageinlineediting~ImageInlineEditing},\n * * {@link module:image/imagetextalternative~ImageTextAlternative}.\n *\n * Usually, it is used in conjunction with other plugins from this package. See the {@glink api/image package page}\n * for more information.\n */\nexport default class ImageInline extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageInlineEditing, Widget, ImageTextAlternative];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageInline';\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport ImageUtils from '../imageutils';\n/**\n * The image caption utilities plugin.\n */\nexport default class ImageCaptionUtils extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageCaptionUtils';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUtils];\n }\n /**\n * Returns the caption model element from a given image element. Returns `null` if no caption is found.\n */\n getCaptionFromImageModelElement(imageModelElement) {\n for (const node of imageModelElement.getChildren()) {\n if (!!node && node.is('element', 'caption')) {\n return node;\n }\n }\n return null;\n }\n /**\n * Returns the caption model element for a model selection. Returns `null` if the selection has no caption element ancestor.\n */\n getCaptionFromModelSelection(selection) {\n const imageUtils = this.editor.plugins.get('ImageUtils');\n const captionElement = selection.getFirstPosition().findAncestor('caption');\n if (!captionElement) {\n return null;\n }\n if (imageUtils.isBlockImage(captionElement.parent)) {\n return captionElement;\n }\n return null;\n }\n /**\n * {@link module:engine/view/matcher~Matcher} pattern. Checks if a given element is a `
    ` element that is placed\n * inside the image `
    ` element.\n * @returns Returns the object accepted by {@link module:engine/view/matcher~Matcher} or `null` if the element\n * cannot be matched.\n */\n matchImageCaptionViewElement(element) {\n const imageUtils = this.editor.plugins.get('ImageUtils');\n // Convert only captions for images.\n if (element.name == 'figcaption' && imageUtils.isBlockImageView(element.parent)) {\n return { name: true };\n }\n return null;\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Command } from 'ckeditor5/src/core';\nimport ImageBlockEditing from '../image/imageblockediting';\n/**\n * The toggle image caption command.\n *\n * This command is registered by {@link module:image/imagecaption/imagecaptionediting~ImageCaptionEditing} as the\n * `'toggleImageCaption'` editor command.\n *\n * Executing this command:\n *\n * * either adds or removes the image caption of a selected image (depending on whether the caption is present or not),\n * * removes the image caption if the selection is anchored in one.\n *\n * ```ts\n * // Toggle the presence of the caption.\n * editor.execute( 'toggleImageCaption' );\n * ```\n *\n * **Note**: Upon executing this command, the selection will be set on the image if previously anchored in the caption element.\n *\n * **Note**: You can move the selection to the caption right away as it shows up upon executing this command by using\n * the `focusCaptionOnShow` option:\n *\n * ```ts\n * editor.execute( 'toggleImageCaption', { focusCaptionOnShow: true } );\n * ```\n */\nexport default class ToggleImageCaptionCommand extends Command {\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const imageCaptionUtils = editor.plugins.get('ImageCaptionUtils');\n const imageUtils = editor.plugins.get('ImageUtils');\n // Only block images can get captions.\n if (!editor.plugins.has(ImageBlockEditing)) {\n this.isEnabled = false;\n this.value = false;\n return;\n }\n const selection = editor.model.document.selection;\n const selectedElement = selection.getSelectedElement();\n if (!selectedElement) {\n const ancestorCaptionElement = imageCaptionUtils.getCaptionFromModelSelection(selection);\n this.isEnabled = !!ancestorCaptionElement;\n this.value = !!ancestorCaptionElement;\n return;\n }\n // Block images support captions by default but the command should also be enabled for inline\n // images because toggling the caption when one is selected should convert it into a block image.\n this.isEnabled = imageUtils.isImage(selectedElement);\n if (!this.isEnabled) {\n this.value = false;\n }\n else {\n this.value = !!imageCaptionUtils.getCaptionFromImageModelElement(selectedElement);\n }\n }\n /**\n * Executes the command.\n *\n * ```ts\n * editor.execute( 'toggleImageCaption' );\n * ```\n *\n * @param options Options for the executed command.\n * @param options.focusCaptionOnShow When true and the caption shows up, the selection will be moved into it straight away.\n * @fires execute\n */\n execute(options = {}) {\n const { focusCaptionOnShow } = options;\n this.editor.model.change(writer => {\n if (this.value) {\n this._hideImageCaption(writer);\n }\n else {\n this._showImageCaption(writer, focusCaptionOnShow);\n }\n });\n }\n /**\n * Shows the caption of the `` or ``. Also:\n *\n * * it converts `` to `` to show the caption,\n * * it attempts to restore the caption content from the `ImageCaptionEditing` caption registry,\n * * it moves the selection to the caption right away, it the `focusCaptionOnShow` option was set.\n */\n _showImageCaption(writer, focusCaptionOnShow) {\n const model = this.editor.model;\n const selection = model.document.selection;\n const imageCaptionEditing = this.editor.plugins.get('ImageCaptionEditing');\n const imageUtils = this.editor.plugins.get('ImageUtils');\n let selectedImage = selection.getSelectedElement();\n const savedCaption = imageCaptionEditing._getSavedCaption(selectedImage);\n // Convert imageInline -> image first.\n if (imageUtils.isInlineImage(selectedImage)) {\n this.editor.execute('imageTypeBlock');\n // Executing the command created a new model element. Let's pick it again.\n selectedImage = selection.getSelectedElement();\n }\n // Try restoring the caption from the ImageCaptionEditing plugin storage.\n const newCaptionElement = savedCaption || writer.createElement('caption');\n writer.append(newCaptionElement, selectedImage);\n if (focusCaptionOnShow) {\n writer.setSelection(newCaptionElement, 'in');\n }\n }\n /**\n * Hides the caption of a selected image (or an image caption the selection is anchored to).\n *\n * The content of the caption is stored in the `ImageCaptionEditing` caption registry to make this\n * a reversible action.\n */\n _hideImageCaption(writer) {\n const editor = this.editor;\n const selection = editor.model.document.selection;\n const imageCaptionEditing = editor.plugins.get('ImageCaptionEditing');\n const imageCaptionUtils = editor.plugins.get('ImageCaptionUtils');\n let selectedImage = selection.getSelectedElement();\n let captionElement;\n if (selectedImage) {\n captionElement = imageCaptionUtils.getCaptionFromImageModelElement(selectedImage);\n }\n else {\n captionElement = imageCaptionUtils.getCaptionFromModelSelection(selection);\n selectedImage = captionElement.parent;\n }\n // Store the caption content so it can be restored quickly if the user changes their mind even if they toggle image<->imageInline.\n imageCaptionEditing._saveCaption(selectedImage, captionElement);\n writer.setSelection(selectedImage, 'on');\n writer.remove(captionElement);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagecaption/imagecaptionediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Element, enablePlaceholder } from 'ckeditor5/src/engine';\nimport { toWidgetEditable } from 'ckeditor5/src/widget';\nimport ToggleImageCaptionCommand from './toggleimagecaptioncommand';\nimport ImageUtils from '../imageutils';\nimport ImageCaptionUtils from './imagecaptionutils';\n/**\n * The image caption engine plugin. It is responsible for:\n *\n * * registering converters for the caption element,\n * * registering converters for the caption model attribute,\n * * registering the {@link module:image/imagecaption/toggleimagecaptioncommand~ToggleImageCaptionCommand `toggleImageCaption`} command.\n */\nexport default class ImageCaptionEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUtils, ImageCaptionUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageCaptionEditing';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n this._savedCaptionsMap = new WeakMap();\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const schema = editor.model.schema;\n // Schema configuration.\n if (!schema.isRegistered('caption')) {\n schema.register('caption', {\n allowIn: 'imageBlock',\n allowContentOf: '$block',\n isLimit: true\n });\n }\n else {\n schema.extend('caption', {\n allowIn: 'imageBlock'\n });\n }\n editor.commands.add('toggleImageCaption', new ToggleImageCaptionCommand(this.editor));\n this._setupConversion();\n this._setupImageTypeCommandsIntegration();\n this._registerCaptionReconversion();\n }\n /**\n * Configures conversion pipelines to support upcasting and downcasting\n * image captions.\n */\n _setupConversion() {\n const editor = this.editor;\n const view = editor.editing.view;\n const imageUtils = editor.plugins.get('ImageUtils');\n const imageCaptionUtils = editor.plugins.get('ImageCaptionUtils');\n const t = editor.t;\n // View -> model converter for the data pipeline.\n editor.conversion.for('upcast').elementToElement({\n view: element => imageCaptionUtils.matchImageCaptionViewElement(element),\n model: 'caption'\n });\n // Model -> view converter for the data pipeline.\n editor.conversion.for('dataDowncast').elementToElement({\n model: 'caption',\n view: (modelElement, { writer }) => {\n if (!imageUtils.isBlockImage(modelElement.parent)) {\n return null;\n }\n return writer.createContainerElement('figcaption');\n }\n });\n // Model -> view converter for the editing pipeline.\n editor.conversion.for('editingDowncast').elementToElement({\n model: 'caption',\n view: (modelElement, { writer }) => {\n if (!imageUtils.isBlockImage(modelElement.parent)) {\n return null;\n }\n const figcaptionElement = writer.createEditableElement('figcaption');\n writer.setCustomProperty('imageCaption', true, figcaptionElement);\n figcaptionElement.placeholder = t('Enter image caption');\n enablePlaceholder({\n view,\n element: figcaptionElement,\n keepOnFocus: true\n });\n const imageAlt = modelElement.parent.getAttribute('alt');\n const label = imageAlt ? t('Caption for image: %0', [imageAlt]) : t('Caption for the image');\n return toWidgetEditable(figcaptionElement, writer, { label });\n }\n });\n }\n /**\n * Integrates with {@link module:image/image/imagetypecommand~ImageTypeCommand image type commands}\n * to make sure the caption is preserved when the type of an image changes so it can be restored\n * in the future if the user decides they want their caption back.\n */\n _setupImageTypeCommandsIntegration() {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const imageCaptionUtils = editor.plugins.get('ImageCaptionUtils');\n const imageTypeInlineCommand = editor.commands.get('imageTypeInline');\n const imageTypeBlockCommand = editor.commands.get('imageTypeBlock');\n const handleImageTypeChange = evt => {\n // The image type command execution can be unsuccessful.\n if (!evt.return) {\n return;\n }\n const { oldElement, newElement } = evt.return;\n /* istanbul ignore if: paranoid check -- @preserve */\n if (!oldElement) {\n return;\n }\n if (imageUtils.isBlockImage(oldElement)) {\n const oldCaptionElement = imageCaptionUtils.getCaptionFromImageModelElement(oldElement);\n // If the old element was a captioned block image (the caption was visible),\n // simply save it so it can be restored.\n if (oldCaptionElement) {\n this._saveCaption(newElement, oldCaptionElement);\n return;\n }\n }\n const savedOldElementCaption = this._getSavedCaption(oldElement);\n // If either:\n //\n // * the block image didn't have a visible caption,\n // * the block image caption was hidden (and already saved),\n // * the inline image was passed\n //\n // just try to \"pass\" the saved caption from the old image to the new image\n // so it can be retrieved in the future if the user wants it back.\n if (savedOldElementCaption) {\n // Note: Since we're writing to a WeakMap, we don't bother with removing the\n // [ oldElement, savedOldElementCaption ] pair from it.\n this._saveCaption(newElement, savedOldElementCaption);\n }\n };\n // Presence of the commands depends on the Image(Inline|Block)Editing plugins loaded in the editor.\n if (imageTypeInlineCommand) {\n this.listenTo(imageTypeInlineCommand, 'execute', handleImageTypeChange, { priority: 'low' });\n }\n if (imageTypeBlockCommand) {\n this.listenTo(imageTypeBlockCommand, 'execute', handleImageTypeChange, { priority: 'low' });\n }\n }\n /**\n * Returns the saved {@link module:engine/model/element~Element#toJSON JSONified} caption\n * of an image model element.\n *\n * See {@link #_saveCaption}.\n *\n * @internal\n * @param imageModelElement The model element the caption should be returned for.\n * @returns The model caption element or `null` if there is none.\n */\n _getSavedCaption(imageModelElement) {\n const jsonObject = this._savedCaptionsMap.get(imageModelElement);\n return jsonObject ? Element.fromJSON(jsonObject) : null;\n }\n /**\n * Saves a {@link module:engine/model/element~Element#toJSON JSONified} caption for\n * an image element to allow restoring it in the future.\n *\n * A caption is saved every time it gets hidden and/or the type of an image changes. The\n * user should be able to restore it on demand.\n *\n * **Note**: The caption cannot be stored in the image model element attribute because,\n * for instance, when the model state propagates to collaborators, the attribute would get\n * lost (mainly because it does not convert to anything when the caption is hidden) and\n * the states of collaborators' models would de-synchronize causing numerous issues.\n *\n * See {@link #_getSavedCaption}.\n *\n * @internal\n * @param imageModelElement The model element the caption is saved for.\n * @param caption The caption model element to be saved.\n */\n _saveCaption(imageModelElement, caption) {\n this._savedCaptionsMap.set(imageModelElement, caption.toJSON());\n }\n /**\n * Reconverts image caption when image alt attribute changes.\n * The change of alt attribute is reflected in caption's aria-label attribute.\n */\n _registerCaptionReconversion() {\n const editor = this.editor;\n const model = editor.model;\n const imageUtils = editor.plugins.get('ImageUtils');\n const imageCaptionUtils = editor.plugins.get('ImageCaptionUtils');\n model.document.on('change:data', () => {\n const changes = model.document.differ.getChanges();\n for (const change of changes) {\n if (change.attributeKey !== 'alt') {\n continue;\n }\n const image = change.range.start.nodeAfter;\n if (imageUtils.isBlockImage(image)) {\n const caption = imageCaptionUtils.getCaptionFromImageModelElement(image);\n if (!caption) {\n return;\n }\n editor.editing.reconvertItem(caption);\n }\n }\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagecaption/imagecaptionui\n */\nimport { Plugin, icons } from 'ckeditor5/src/core';\nimport { ButtonView } from 'ckeditor5/src/ui';\nimport ImageCaptionUtils from './imagecaptionutils';\n/**\n * The image caption UI plugin. It introduces the `'toggleImageCaption'` UI button.\n */\nexport default class ImageCaptionUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageCaptionUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageCaptionUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const editingView = editor.editing.view;\n const imageCaptionUtils = editor.plugins.get('ImageCaptionUtils');\n const t = editor.t;\n editor.ui.componentFactory.add('toggleImageCaption', locale => {\n const command = editor.commands.get('toggleImageCaption');\n const view = new ButtonView(locale);\n view.set({\n icon: icons.caption,\n tooltip: true,\n isToggleable: true\n });\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n view.bind('label').to(command, 'value', value => value ? t('Toggle caption off') : t('Toggle caption on'));\n this.listenTo(view, 'execute', () => {\n editor.execute('toggleImageCaption', { focusCaptionOnShow: true });\n // Scroll to the selection and highlight the caption if the caption showed up.\n const modelCaptionElement = imageCaptionUtils.getCaptionFromModelSelection(editor.model.document.selection);\n if (modelCaptionElement) {\n const figcaptionElement = editor.editing.mapper.toViewElement(modelCaptionElement);\n editingView.scrollToTheSelection();\n editingView.change(writer => {\n writer.addClass('image__caption_highlighted', figcaptionElement);\n });\n }\n editor.editing.view.focus();\n });\n return view;\n });\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./imagecaption.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module upload/filereader\n */\n/* globals window */\nimport { ObservableMixin } from '@ckeditor/ckeditor5-utils';\n/**\n * Wrapper over the native `FileReader`.\n */\nexport default class FileReader extends ObservableMixin() {\n /**\n * Creates an instance of the FileReader.\n */\n constructor() {\n super();\n const reader = new window.FileReader();\n this._reader = reader;\n this._data = undefined;\n this.set('loaded', 0);\n reader.onprogress = evt => {\n this.loaded = evt.loaded;\n };\n }\n /**\n * Returns error that occurred during file reading.\n */\n get error() {\n return this._reader.error;\n }\n /**\n * Holds the data of an already loaded file. The file must be first loaded\n * by using {@link module:upload/filereader~FileReader#read `read()`}.\n */\n get data() {\n return this._data;\n }\n /**\n * Reads the provided file.\n *\n * @param file Native File object.\n * @returns Returns a promise that will be resolved with file's content.\n * The promise will be rejected in case of an error or when the reading process is aborted.\n */\n read(file) {\n const reader = this._reader;\n this.total = file.size;\n return new Promise((resolve, reject) => {\n reader.onload = () => {\n const result = reader.result;\n this._data = result;\n resolve(result);\n };\n reader.onerror = () => {\n reject('error');\n };\n reader.onabort = () => {\n reject('aborted');\n };\n this._reader.readAsDataURL(file);\n });\n }\n /**\n * Aborts file reader.\n */\n abort() {\n this._reader.abort();\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module upload/filerepository\n */\nimport { Plugin, PendingActions } from '@ckeditor/ckeditor5-core';\nimport { CKEditorError, Collection, ObservableMixin, logWarning, uid } from '@ckeditor/ckeditor5-utils';\nimport FileReader from './filereader';\n/**\n * File repository plugin. A central point for managing file upload.\n *\n * To use it, first you need an upload adapter. Upload adapter's job is to handle communication with the server\n * (sending the file and handling server's response). You can use one of the existing plugins introducing upload adapters\n * (e.g. {@link module:easy-image/cloudservicesuploadadapter~CloudServicesUploadAdapter} or\n * {@link module:adapter-ckfinder/uploadadapter~CKFinderUploadAdapter}) or write your own one – see\n * the {@glink framework/deep-dive/upload-adapter Custom image upload adapter deep-dive} guide.\n *\n * Then, you can use {@link module:upload/filerepository~FileRepository#createLoader `createLoader()`} and the returned\n * {@link module:upload/filerepository~FileLoader} instance to load and upload files.\n */\nexport default class FileRepository extends Plugin {\n constructor() {\n super(...arguments);\n /**\n * Collection of loaders associated with this repository.\n */\n this.loaders = new Collection();\n /**\n * Loaders mappings used to retrieve loaders references.\n */\n this._loadersMap = new Map();\n /**\n * Reference to a pending action registered in a {@link module:core/pendingactions~PendingActions} plugin\n * while upload is in progress. When there is no upload then value is `null`.\n */\n this._pendingAction = null;\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'FileRepository';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [PendingActions];\n }\n /**\n * @inheritDoc\n */\n init() {\n // Keeps upload in a sync with pending actions.\n this.loaders.on('change', () => this._updatePendingAction());\n this.set('uploaded', 0);\n this.set('uploadTotal', null);\n this.bind('uploadedPercent').to(this, 'uploaded', this, 'uploadTotal', (uploaded, total) => {\n return total ? (uploaded / total * 100) : 0;\n });\n }\n /**\n * Returns the loader associated with specified file or promise.\n *\n * To get loader by id use `fileRepository.loaders.get( id )`.\n *\n * @param fileOrPromise Native file or promise handle.\n */\n getLoader(fileOrPromise) {\n return this._loadersMap.get(fileOrPromise) || null;\n }\n /**\n * Creates a loader instance for the given file.\n *\n * Requires {@link #createUploadAdapter} factory to be defined.\n *\n * @param fileOrPromise Native File object or native Promise object which resolves to a File.\n */\n createLoader(fileOrPromise) {\n if (!this.createUploadAdapter) {\n /**\n * You need to enable an upload adapter in order to be able to upload files.\n *\n * This warning shows up when {@link module:upload/filerepository~FileRepository} is being used\n * without {@link module:upload/filerepository~FileRepository#createUploadAdapter defining an upload adapter}.\n *\n * **If you see this warning when using one of the {@glink installation/getting-started/predefined-builds\n * CKEditor 5 Builds}**\n * it means that you did not configure any of the upload adapters available by default in those builds.\n *\n * See the {@glink features/images/image-upload/image-upload comprehensive \"Image upload overview\"} to learn which upload\n * adapters are available in the builds and how to configure them.\n *\n * **If you see this warning when using a custom build** there is a chance that you enabled\n * a feature like {@link module:image/imageupload~ImageUpload},\n * or {@link module:image/imageupload/imageuploadui~ImageUploadUI} but you did not enable any upload adapter.\n * You can choose one of the existing upload adapters listed in the\n * {@glink features/images/image-upload/image-upload \"Image upload overview\"}.\n *\n * You can also implement your {@glink framework/deep-dive/upload-adapter own image upload adapter}.\n *\n * @error filerepository-no-upload-adapter\n */\n logWarning('filerepository-no-upload-adapter');\n return null;\n }\n const loader = new FileLoader(Promise.resolve(fileOrPromise), this.createUploadAdapter);\n this.loaders.add(loader);\n this._loadersMap.set(fileOrPromise, loader);\n // Store also file => loader mapping so loader can be retrieved by file instance returned upon Promise resolution.\n if (fileOrPromise instanceof Promise) {\n loader.file\n .then(file => {\n this._loadersMap.set(file, loader);\n })\n // Every then() must have a catch().\n // File loader state (and rejections) are handled in read() and upload().\n // Also, see the \"does not swallow the file promise rejection\" test.\n .catch(() => { });\n }\n loader.on('change:uploaded', () => {\n let aggregatedUploaded = 0;\n for (const loader of this.loaders) {\n aggregatedUploaded += loader.uploaded;\n }\n this.uploaded = aggregatedUploaded;\n });\n loader.on('change:uploadTotal', () => {\n let aggregatedTotal = 0;\n for (const loader of this.loaders) {\n if (loader.uploadTotal) {\n aggregatedTotal += loader.uploadTotal;\n }\n }\n this.uploadTotal = aggregatedTotal;\n });\n return loader;\n }\n /**\n * Destroys the given loader.\n *\n * @param fileOrPromiseOrLoader File or Promise associated with that loader or loader itself.\n */\n destroyLoader(fileOrPromiseOrLoader) {\n const loader = fileOrPromiseOrLoader instanceof FileLoader ? fileOrPromiseOrLoader : this.getLoader(fileOrPromiseOrLoader);\n loader._destroy();\n this.loaders.remove(loader);\n this._loadersMap.forEach((value, key) => {\n if (value === loader) {\n this._loadersMap.delete(key);\n }\n });\n }\n /**\n * Registers or deregisters pending action bound with upload progress.\n */\n _updatePendingAction() {\n const pendingActions = this.editor.plugins.get(PendingActions);\n if (this.loaders.length) {\n if (!this._pendingAction) {\n const t = this.editor.t;\n const getMessage = (value) => `${t('Upload in progress')} ${parseInt(value)}%.`;\n this._pendingAction = pendingActions.add(getMessage(this.uploadedPercent));\n this._pendingAction.bind('message').to(this, 'uploadedPercent', getMessage);\n }\n }\n else {\n pendingActions.remove(this._pendingAction);\n this._pendingAction = null;\n }\n }\n}\n/**\n * File loader class.\n *\n * It is used to control the process of reading the file and uploading it using the specified upload adapter.\n */\nclass FileLoader extends ObservableMixin() {\n /**\n * Creates a new instance of `FileLoader`.\n *\n * @param filePromise A promise which resolves to a file instance.\n * @param uploadAdapterCreator The function which returns {@link module:upload/filerepository~UploadAdapter} instance.\n */\n constructor(filePromise, uploadAdapterCreator) {\n super();\n this.id = uid();\n this._filePromiseWrapper = this._createFilePromiseWrapper(filePromise);\n this._adapter = uploadAdapterCreator(this);\n this._reader = new FileReader();\n this.set('status', 'idle');\n this.set('uploaded', 0);\n this.set('uploadTotal', null);\n this.bind('uploadedPercent').to(this, 'uploaded', this, 'uploadTotal', (uploaded, total) => {\n return total ? (uploaded / total * 100) : 0;\n });\n this.set('uploadResponse', null);\n }\n /**\n * A `Promise` which resolves to a `File` instance associated with this file loader.\n */\n get file() {\n if (!this._filePromiseWrapper) {\n // Loader was destroyed, return promise which resolves to null.\n return Promise.resolve(null);\n }\n else {\n // The `this._filePromiseWrapper.promise` is chained and not simply returned to handle a case when:\n //\n //\t\t* The `loader.file.then( ... )` is called by external code (returned promise is pending).\n //\t\t* Then `loader._destroy()` is called (call is synchronous) which destroys the `loader`.\n //\t\t* Promise returned by the first `loader.file.then( ... )` call is resolved.\n //\n // Returning `this._filePromiseWrapper.promise` will still resolve to a `File` instance so there\n // is an additional check needed in the chain to see if `loader` was destroyed in the meantime.\n return this._filePromiseWrapper.promise.then(file => this._filePromiseWrapper ? file : null);\n }\n }\n /**\n * Returns the file data. To read its data, you need for first load the file\n * by using the {@link module:upload/filerepository~FileLoader#read `read()`} method.\n */\n get data() {\n return this._reader.data;\n }\n /**\n * Reads file using {@link module:upload/filereader~FileReader}.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `filerepository-read-wrong-status` when status\n * is different than `idle`.\n *\n * Example usage:\n *\n * ```ts\n * fileLoader.read()\n * \t.then( data => { ... } )\n * \t.catch( err => {\n * \t\tif ( err === 'aborted' ) {\n * \t\t\tconsole.log( 'Reading aborted.' );\n * \t\t} else {\n * \t\t\tconsole.log( 'Reading error.', err );\n * \t\t}\n * \t} );\n * ```\n *\n * @returns Returns promise that will be resolved with read data. Promise will be rejected if error\n * occurs or if read process is aborted.\n */\n read() {\n if (this.status != 'idle') {\n /**\n * You cannot call read if the status is different than idle.\n *\n * @error filerepository-read-wrong-status\n */\n throw new CKEditorError('filerepository-read-wrong-status', this);\n }\n this.status = 'reading';\n return this.file\n .then(file => this._reader.read(file))\n .then(data => {\n // Edge case: reader was aborted after file was read - double check for proper status.\n // It can happen when image was deleted during its upload.\n if (this.status !== 'reading') {\n throw this.status;\n }\n this.status = 'idle';\n return data;\n })\n .catch(err => {\n if (err === 'aborted') {\n this.status = 'aborted';\n throw 'aborted';\n }\n this.status = 'error';\n throw this._reader.error ? this._reader.error : err;\n });\n }\n /**\n * Reads file using the provided {@link module:upload/filerepository~UploadAdapter}.\n *\n * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `filerepository-upload-wrong-status` when status\n * is different than `idle`.\n * Example usage:\n *\n * ```ts\n * fileLoader.upload()\n * \t.then( data => { ... } )\n * \t.catch( e => {\n * \t\tif ( e === 'aborted' ) {\n * \t\t\tconsole.log( 'Uploading aborted.' );\n * \t\t} else {\n * \t\t\tconsole.log( 'Uploading error.', e );\n * \t\t}\n * \t} );\n * ```\n *\n * @returns Returns promise that will be resolved with response data. Promise will be rejected if error\n * occurs or if read process is aborted.\n */\n upload() {\n if (this.status != 'idle') {\n /**\n * You cannot call upload if the status is different than idle.\n *\n * @error filerepository-upload-wrong-status\n */\n throw new CKEditorError('filerepository-upload-wrong-status', this);\n }\n this.status = 'uploading';\n return this.file\n .then(() => this._adapter.upload())\n .then(data => {\n this.uploadResponse = data;\n this.status = 'idle';\n return data;\n })\n .catch(err => {\n if (this.status === 'aborted') {\n throw 'aborted';\n }\n this.status = 'error';\n throw err;\n });\n }\n /**\n * Aborts loading process.\n */\n abort() {\n const status = this.status;\n this.status = 'aborted';\n if (!this._filePromiseWrapper.isFulfilled) {\n // Edge case: file loader is aborted before read() is called\n // so it might happen that no one handled the rejection of this promise.\n // See https://github.com/ckeditor/ckeditor5-upload/pull/100\n this._filePromiseWrapper.promise.catch(() => { });\n this._filePromiseWrapper.rejecter('aborted');\n }\n else if (status == 'reading') {\n this._reader.abort();\n }\n else if (status == 'uploading' && this._adapter.abort) {\n this._adapter.abort();\n }\n this._destroy();\n }\n /**\n * Performs cleanup.\n *\n * @internal\n */\n _destroy() {\n this._filePromiseWrapper = undefined;\n this._reader = undefined;\n this._adapter = undefined;\n this.uploadResponse = undefined;\n }\n /**\n * Wraps a given file promise into another promise giving additional\n * control (resolving, rejecting, checking if fulfilled) over it.\n *\n * @param filePromise The initial file promise to be wrapped.\n */\n _createFilePromiseWrapper(filePromise) {\n const wrapper = {};\n wrapper.promise = new Promise((resolve, reject) => {\n wrapper.rejecter = reject;\n wrapper.isFulfilled = false;\n filePromise\n .then(file => {\n wrapper.isFulfilled = true;\n resolve(file);\n })\n .catch(err => {\n wrapper.isFulfilled = true;\n reject(err);\n });\n });\n return wrapper;\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module upload/ui/filedialogbuttonview\n */\nimport { ButtonView, View } from '@ckeditor/ckeditor5-ui';\n/**\n * The file dialog button view.\n *\n * This component provides a button that opens the native file selection dialog.\n * It can be used to implement the UI of a file upload feature.\n *\n * ```ts\n * const view = new FileDialogButtonView( locale );\n *\n * view.set( {\n * \tacceptedType: 'image/*',\n * \tallowMultipleFiles: true\n * } );\n *\n * view.buttonView.set( {\n * \tlabel: t( 'Insert image' ),\n * \ticon: imageIcon,\n * \ttooltip: true\n * } );\n *\n * view.on( 'done', ( evt, files ) => {\n * \tfor ( const file of Array.from( files ) ) {\n * \t\tconsole.log( 'Selected file', file );\n * \t}\n * } );\n * ```\n */\nexport default class FileDialogButtonView extends View {\n /**\n * @inheritDoc\n */\n constructor(locale) {\n super(locale);\n this.buttonView = new ButtonView(locale);\n this._fileInputView = new FileInputView(locale);\n this._fileInputView.bind('acceptedType').to(this);\n this._fileInputView.bind('allowMultipleFiles').to(this);\n this._fileInputView.delegate('done').to(this);\n this.setTemplate({\n tag: 'span',\n attributes: {\n class: 'ck-file-dialog-button'\n },\n children: [\n this.buttonView,\n this._fileInputView\n ]\n });\n this.buttonView.on('execute', () => {\n this._fileInputView.open();\n });\n }\n /**\n * Focuses the {@link #buttonView}.\n */\n focus() {\n this.buttonView.focus();\n }\n}\n/**\n * The hidden file input view class.\n */\nclass FileInputView extends View {\n /**\n * @inheritDoc\n */\n constructor(locale) {\n super(locale);\n this.set('acceptedType', undefined);\n this.set('allowMultipleFiles', false);\n const bind = this.bindTemplate;\n this.setTemplate({\n tag: 'input',\n attributes: {\n class: [\n 'ck-hidden'\n ],\n type: 'file',\n tabindex: '-1',\n accept: bind.to('acceptedType'),\n multiple: bind.to('allowMultipleFiles')\n },\n on: {\n // Removing from code coverage since we cannot programmatically set input element files.\n change: bind.to(/* istanbul ignore next -- @preserve */ () => {\n if (this.element && this.element.files && this.element.files.length) {\n this.fire('done', this.element.files);\n }\n this.element.value = '';\n })\n }\n });\n }\n /**\n * Opens file dialog.\n */\n open() {\n this.element.click();\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module upload/adapters/base64uploadadapter\n */\n/* globals window */\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport FileRepository from '../filerepository';\n/**\n * A plugin that converts images inserted into the editor into [Base64 strings](https://en.wikipedia.org/wiki/Base64)\n * in the {@glink installation/getting-started/getting-and-setting-data editor output}.\n *\n * This kind of image upload does not require server processing – images are stored with the rest of the text and\n * displayed by the web browser without additional requests.\n *\n * Check out the {@glink features/images/image-upload/image-upload comprehensive \"Image upload overview\"} to learn about\n * other ways to upload images into CKEditor 5.\n */\nexport default class Base64UploadAdapter extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [FileRepository];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'Base64UploadAdapter';\n }\n /**\n * @inheritDoc\n */\n init() {\n this.editor.plugins.get(FileRepository).createUploadAdapter = loader => new Adapter(loader);\n }\n}\n/**\n * The upload adapter that converts images inserted into the editor into Base64 strings.\n */\nclass Adapter {\n /**\n * Creates a new adapter instance.\n */\n constructor(loader) {\n this.loader = loader;\n }\n /**\n * Starts the upload process.\n *\n * @see module:upload/filerepository~UploadAdapter#upload\n */\n upload() {\n return new Promise((resolve, reject) => {\n const reader = this.reader = new window.FileReader();\n reader.addEventListener('load', () => {\n resolve({ default: reader.result });\n });\n reader.addEventListener('error', err => {\n reject(err);\n });\n reader.addEventListener('abort', () => {\n reject();\n });\n this.loader.file.then(file => {\n reader.readAsDataURL(file);\n });\n });\n }\n /**\n * Aborts the upload process.\n *\n * @see module:upload/filerepository~UploadAdapter#abort\n */\n abort() {\n this.reader.abort();\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { global } from 'ckeditor5/src/utils';\n/**\n * Creates a regular expression used to test for image files.\n *\n * ```ts\n * const imageType = createImageTypeRegExp( [ 'png', 'jpeg', 'svg+xml', 'vnd.microsoft.icon' ] );\n *\n * console.log( 'is supported image', imageType.test( file.type ) );\n * ```\n */\nexport function createImageTypeRegExp(types) {\n // Sanitize the MIME type name which may include: \"+\", \"-\" or \".\".\n const regExpSafeNames = types.map(type => type.replace('+', '\\\\+'));\n return new RegExp(`^image\\\\/(${regExpSafeNames.join('|')})$`);\n}\n/**\n * Creates a promise that fetches the image local source (Base64 or blob) and resolves with a `File` object.\n *\n * @param image Image whose source to fetch.\n * @returns A promise which resolves when an image source is fetched and converted to a `File` instance.\n * It resolves with a `File` object. If there were any errors during file processing, the promise will be rejected.\n */\nexport function fetchLocalImage(image) {\n return new Promise((resolve, reject) => {\n const imageSrc = image.getAttribute('src');\n // Fetch works asynchronously and so does not block browser UI when processing data.\n fetch(imageSrc)\n .then(resource => resource.blob())\n .then(blob => {\n const mimeType = getImageMimeType(blob, imageSrc);\n const ext = mimeType.replace('image/', '');\n const filename = `image.${ext}`;\n const file = new File([blob], filename, { type: mimeType });\n resolve(file);\n })\n .catch(err => {\n // Fetch fails only, if it can't make a request due to a network failure or if anything prevented the request\n // from completing, i.e. the Content Security Policy rules. It is not possible to detect the exact cause of failure,\n // so we are just trying the fallback solution, if general TypeError is thrown.\n return err && err.name === 'TypeError' ?\n convertLocalImageOnCanvas(imageSrc).then(resolve).catch(reject) :\n reject(err);\n });\n });\n}\n/**\n * Checks whether a given node is an image element with a local source (Base64 or blob).\n *\n * @param node The node to check.\n */\nexport function isLocalImage(imageUtils, node) {\n if (!imageUtils.isInlineImageView(node) || !node.getAttribute('src')) {\n return false;\n }\n return !!node.getAttribute('src').match(/^data:image\\/\\w+;base64,/g) ||\n !!node.getAttribute('src').match(/^blob:/g);\n}\n/**\n * Extracts an image type based on its blob representation or its source.\n * @param blob Image blob representation.\n * @param src Image `src` attribute value.\n */\nfunction getImageMimeType(blob, src) {\n if (blob.type) {\n return blob.type;\n }\n else if (src.match(/data:(image\\/\\w+);base64/)) {\n return src.match(/data:(image\\/\\w+);base64/)[1].toLowerCase();\n }\n else {\n // Fallback to 'jpeg' as common extension.\n return 'image/jpeg';\n }\n}\n/**\n * Creates a promise that converts the image local source (Base64 or blob) to a blob using canvas and resolves\n * with a `File` object.\n * @param imageSrc Image `src` attribute value.\n * @returns A promise which resolves when an image source is converted to a `File` instance.\n * It resolves with a `File` object. If there were any errors during file processing, the promise will be rejected.\n */\nfunction convertLocalImageOnCanvas(imageSrc) {\n return getBlobFromCanvas(imageSrc).then(blob => {\n const mimeType = getImageMimeType(blob, imageSrc);\n const ext = mimeType.replace('image/', '');\n const filename = `image.${ext}`;\n return new File([blob], filename, { type: mimeType });\n });\n}\n/**\n * Creates a promise that resolves with a `Blob` object converted from the image source (Base64 or blob).\n * @param imageSrc Image `src` attribute value.\n */\nfunction getBlobFromCanvas(imageSrc) {\n return new Promise((resolve, reject) => {\n const image = global.document.createElement('img');\n image.addEventListener('load', () => {\n const canvas = global.document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(image, 0, 0);\n canvas.toBlob(blob => blob ? resolve(blob) : reject());\n });\n image.addEventListener('error', () => reject());\n image.src = imageSrc;\n });\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Plugin, icons } from 'ckeditor5/src/core';\nimport { FileDialogButtonView } from 'ckeditor5/src/upload';\nimport { createImageTypeRegExp } from './utils';\n/**\n * The image upload button plugin.\n *\n * For a detailed overview, check the {@glink features/images/image-upload/image-upload Image upload feature} documentation.\n *\n * Adds the `'uploadImage'` button to the {@link module:ui/componentfactory~ComponentFactory UI component factory}\n * and also the `imageUpload` button as an alias for backward compatibility.\n */\nexport default class ImageUploadUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageUploadUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const t = editor.t;\n const componentCreator = (locale) => {\n const view = new FileDialogButtonView(locale);\n const command = editor.commands.get('uploadImage');\n const imageTypes = editor.config.get('image.upload.types');\n const imageTypesRegExp = createImageTypeRegExp(imageTypes);\n view.set({\n acceptedType: imageTypes.map(type => `image/${type}`).join(','),\n allowMultipleFiles: true\n });\n view.buttonView.set({\n label: t('Insert image'),\n icon: icons.image,\n tooltip: true\n });\n view.buttonView.bind('isEnabled').to(command);\n view.on('done', (evt, files) => {\n const imagesToUpload = Array.from(files).filter(file => imageTypesRegExp.test(file.type));\n if (imagesToUpload.length) {\n editor.execute('uploadImage', { file: imagesToUpload });\n editor.editing.view.focus();\n }\n });\n return view;\n };\n // Setup `uploadImage` button and add `imageUpload` button as an alias for backward compatibility.\n editor.ui.componentFactory.add('uploadImage', componentCreator);\n editor.ui.componentFactory.add('imageUpload', componentCreator);\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./imageuploadprogress.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./imageuploadicon.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./imageuploadloader.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageupload/imageuploadprogress\n */\n/* globals setTimeout */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { FileRepository } from 'ckeditor5/src/upload';\nimport '../../theme/imageuploadprogress.css';\nimport '../../theme/imageuploadicon.css';\nimport '../../theme/imageuploadloader.css';\n/**\n * The image upload progress plugin.\n * It shows a placeholder when the image is read from the disk and a progress bar while the image is uploading.\n */\nexport default class ImageUploadProgress extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageUploadProgress';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n /**\n * This method is called each time the image `uploadStatus` attribute is changed.\n *\n * @param evt An object containing information about the fired event.\n * @param data Additional information about the change.\n */\n this.uploadStatusChange = (evt, data, conversionApi) => {\n const editor = this.editor;\n const modelImage = data.item;\n const uploadId = modelImage.getAttribute('uploadId');\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const imageUtils = editor.plugins.get('ImageUtils');\n const fileRepository = editor.plugins.get(FileRepository);\n const status = uploadId ? data.attributeNewValue : null;\n const placeholder = this.placeholder;\n const viewFigure = editor.editing.mapper.toViewElement(modelImage);\n const viewWriter = conversionApi.writer;\n if (status == 'reading') {\n // Start \"appearing\" effect and show placeholder with infinite progress bar on the top\n // while image is read from disk.\n _startAppearEffect(viewFigure, viewWriter);\n _showPlaceholder(imageUtils, placeholder, viewFigure, viewWriter);\n return;\n }\n // Show progress bar on the top of the image when image is uploading.\n if (status == 'uploading') {\n const loader = fileRepository.loaders.get(uploadId);\n // Start appear effect if needed - see https://github.com/ckeditor/ckeditor5-image/issues/191.\n _startAppearEffect(viewFigure, viewWriter);\n if (!loader) {\n // There is no loader associated with uploadId - this means that image came from external changes.\n // In such cases we still want to show the placeholder until image is fully uploaded.\n // Show placeholder if needed - see https://github.com/ckeditor/ckeditor5-image/issues/191.\n _showPlaceholder(imageUtils, placeholder, viewFigure, viewWriter);\n }\n else {\n // Hide placeholder and initialize progress bar showing upload progress.\n _hidePlaceholder(viewFigure, viewWriter);\n _showProgressBar(viewFigure, viewWriter, loader, editor.editing.view);\n _displayLocalImage(imageUtils, viewFigure, viewWriter, loader);\n }\n return;\n }\n if (status == 'complete' && fileRepository.loaders.get(uploadId)) {\n _showCompleteIcon(viewFigure, viewWriter, editor.editing.view);\n }\n // Clean up.\n _hideProgressBar(viewFigure, viewWriter);\n _hidePlaceholder(viewFigure, viewWriter);\n _stopAppearEffect(viewFigure, viewWriter);\n };\n this.placeholder = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Upload status change - update image's view according to that status.\n if (editor.plugins.has('ImageBlockEditing')) {\n editor.editing.downcastDispatcher.on('attribute:uploadStatus:imageBlock', this.uploadStatusChange);\n }\n if (editor.plugins.has('ImageInlineEditing')) {\n editor.editing.downcastDispatcher.on('attribute:uploadStatus:imageInline', this.uploadStatusChange);\n }\n }\n}\n/**\n * Adds ck-appear class to the image figure if one is not already applied.\n */\nfunction _startAppearEffect(viewFigure, writer) {\n if (!viewFigure.hasClass('ck-appear')) {\n writer.addClass('ck-appear', viewFigure);\n }\n}\n/**\n * Removes ck-appear class to the image figure if one is not already removed.\n */\nfunction _stopAppearEffect(viewFigure, writer) {\n writer.removeClass('ck-appear', viewFigure);\n}\n/**\n * Shows placeholder together with infinite progress bar on given image figure.\n */\nfunction _showPlaceholder(imageUtils, placeholder, viewFigure, writer) {\n if (!viewFigure.hasClass('ck-image-upload-placeholder')) {\n writer.addClass('ck-image-upload-placeholder', viewFigure);\n }\n const viewImg = imageUtils.findViewImgElement(viewFigure);\n if (viewImg.getAttribute('src') !== placeholder) {\n writer.setAttribute('src', placeholder, viewImg);\n }\n if (!_getUIElement(viewFigure, 'placeholder')) {\n writer.insert(writer.createPositionAfter(viewImg), _createPlaceholder(writer));\n }\n}\n/**\n * Removes placeholder together with infinite progress bar on given image figure.\n */\nfunction _hidePlaceholder(viewFigure, writer) {\n if (viewFigure.hasClass('ck-image-upload-placeholder')) {\n writer.removeClass('ck-image-upload-placeholder', viewFigure);\n }\n _removeUIElement(viewFigure, writer, 'placeholder');\n}\n/**\n * Shows progress bar displaying upload progress.\n * Attaches it to the file loader to update when upload percentace is changed.\n */\nfunction _showProgressBar(viewFigure, writer, loader, view) {\n const progressBar = _createProgressBar(writer);\n writer.insert(writer.createPositionAt(viewFigure, 'end'), progressBar);\n // Update progress bar width when uploadedPercent is changed.\n loader.on('change:uploadedPercent', (evt, name, value) => {\n view.change(writer => {\n writer.setStyle('width', value + '%', progressBar);\n });\n });\n}\n/**\n * Hides upload progress bar.\n */\nfunction _hideProgressBar(viewFigure, writer) {\n _removeUIElement(viewFigure, writer, 'progressBar');\n}\n/**\n * Shows complete icon and hides after a certain amount of time.\n */\nfunction _showCompleteIcon(viewFigure, writer, view) {\n const completeIcon = writer.createUIElement('div', { class: 'ck-image-upload-complete-icon' });\n writer.insert(writer.createPositionAt(viewFigure, 'end'), completeIcon);\n setTimeout(() => {\n view.change(writer => writer.remove(writer.createRangeOn(completeIcon)));\n }, 3000);\n}\n/**\n * Create progress bar element using {@link module:engine/view/uielement~UIElement}.\n */\nfunction _createProgressBar(writer) {\n const progressBar = writer.createUIElement('div', { class: 'ck-progress-bar' });\n writer.setCustomProperty('progressBar', true, progressBar);\n return progressBar;\n}\n/**\n * Create placeholder element using {@link module:engine/view/uielement~UIElement}.\n */\nfunction _createPlaceholder(writer) {\n const placeholder = writer.createUIElement('div', { class: 'ck-upload-placeholder-loader' });\n writer.setCustomProperty('placeholder', true, placeholder);\n return placeholder;\n}\n/**\n * Returns {@link module:engine/view/uielement~UIElement} of given unique property from image figure element.\n * Returns `undefined` if element is not found.\n */\nfunction _getUIElement(imageFigure, uniqueProperty) {\n for (const child of imageFigure.getChildren()) {\n if (child.getCustomProperty(uniqueProperty)) {\n return child;\n }\n }\n}\n/**\n * Removes {@link module:engine/view/uielement~UIElement} of given unique property from image figure element.\n */\nfunction _removeUIElement(viewFigure, writer, uniqueProperty) {\n const element = _getUIElement(viewFigure, uniqueProperty);\n if (element) {\n writer.remove(writer.createRangeOn(element));\n }\n}\n/**\n * Displays local data from file loader.\n */\nfunction _displayLocalImage(imageUtils, viewFigure, writer, loader) {\n if (loader.data) {\n const viewImg = imageUtils.findViewImgElement(viewFigure);\n writer.setAttribute('src', loader.data, viewImg);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { FileRepository } from 'ckeditor5/src/upload';\nimport { Command } from 'ckeditor5/src/core';\nimport { toArray } from 'ckeditor5/src/utils';\n/**\n * @module image/imageupload/uploadimagecommand\n */\n/**\n * The upload image command.\n *\n * The command is registered by the {@link module:image/imageupload/imageuploadediting~ImageUploadEditing} plugin as `uploadImage`\n * and it is also available via aliased `imageUpload` name.\n *\n * In order to upload an image at the current selection position\n * (according to the {@link module:widget/utils~findOptimalInsertionRange} algorithm),\n * execute the command and pass the native image file instance:\n *\n * ```ts\n * this.listenTo( editor.editing.view.document, 'clipboardInput', ( evt, data ) => {\n * \t// Assuming that only images were pasted:\n * \tconst images = Array.from( data.dataTransfer.files );\n *\n * \t// Upload the first image:\n * \teditor.execute( 'uploadImage', { file: images[ 0 ] } );\n * } );\n * ```\n *\n * It is also possible to insert multiple images at once:\n *\n * ```ts\n * editor.execute( 'uploadImage', {\n * \tfile: [\n * \t\tfile1,\n * \t\tfile2\n * \t]\n * } );\n * ```\n */\nexport default class UploadImageCommand extends Command {\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const selectedElement = editor.model.document.selection.getSelectedElement();\n // TODO: This needs refactoring.\n this.isEnabled = imageUtils.isImageAllowed() || imageUtils.isImage(selectedElement);\n }\n /**\n * Executes the command.\n *\n * @fires execute\n * @param options Options for the executed command.\n * @param options.file The image file or an array of image files to upload.\n */\n execute(options) {\n const files = toArray(options.file);\n const selection = this.editor.model.document.selection;\n const imageUtils = this.editor.plugins.get('ImageUtils');\n // In case of multiple files, each file (starting from the 2nd) will be inserted at a position that\n // follows the previous one. That will move the selection and, to stay on the safe side and make sure\n // all images inherit the same selection attributes, they are collected beforehand.\n //\n // Applying these attributes ensures, for instance, that inserting an (inline) image into a link does\n // not split that link but preserves its continuity.\n //\n // Note: Selection attributes that do not make sense for images will be filtered out by insertImage() anyway.\n const selectionAttributes = Object.fromEntries(selection.getAttributes());\n files.forEach((file, index) => {\n const selectedElement = selection.getSelectedElement();\n // Inserting of an inline image replace the selected element and make a selection on the inserted image.\n // Therefore inserting multiple inline images requires creating position after each element.\n if (index && selectedElement && imageUtils.isImage(selectedElement)) {\n const position = this.editor.model.createPositionAfter(selectedElement);\n this._uploadImage(file, selectionAttributes, position);\n }\n else {\n this._uploadImage(file, selectionAttributes);\n }\n });\n }\n /**\n * Handles uploading single file.\n */\n _uploadImage(file, attributes, position) {\n const editor = this.editor;\n const fileRepository = editor.plugins.get(FileRepository);\n const loader = fileRepository.createLoader(file);\n const imageUtils = editor.plugins.get('ImageUtils');\n // Do not throw when upload adapter is not set. FileRepository will log an error anyway.\n if (!loader) {\n return;\n }\n imageUtils.insertImage({ ...attributes, uploadId: loader.id }, position);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageupload/imageuploadediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { UpcastWriter } from 'ckeditor5/src/engine';\nimport { Notification } from 'ckeditor5/src/ui';\nimport { ClipboardPipeline } from 'ckeditor5/src/clipboard';\nimport { FileRepository } from 'ckeditor5/src/upload';\nimport { env } from 'ckeditor5/src/utils';\nimport ImageUtils from '../imageutils';\nimport UploadImageCommand from './uploadimagecommand';\nimport { fetchLocalImage, isLocalImage } from '../../src/imageupload/utils';\nimport { createImageTypeRegExp } from './utils';\n/**\n * The editing part of the image upload feature. It registers the `'uploadImage'` command\n * and the `imageUpload` command as an aliased name.\n *\n * When an image is uploaded, it fires the {@link ~ImageUploadEditing#event:uploadComplete `uploadComplete`} event\n * that allows adding custom attributes to the {@link module:engine/model/element~Element image element}.\n */\nexport default class ImageUploadEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [FileRepository, Notification, ClipboardPipeline, ImageUtils];\n }\n static get pluginName() {\n return 'ImageUploadEditing';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n editor.config.define('image', {\n upload: {\n types: ['jpeg', 'png', 'gif', 'bmp', 'webp', 'tiff']\n }\n });\n this._uploadImageElements = new Map();\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const doc = editor.model.document;\n const conversion = editor.conversion;\n const fileRepository = editor.plugins.get(FileRepository);\n const imageUtils = editor.plugins.get('ImageUtils');\n const clipboardPipeline = editor.plugins.get('ClipboardPipeline');\n const imageTypes = createImageTypeRegExp(editor.config.get('image.upload.types'));\n const uploadImageCommand = new UploadImageCommand(editor);\n // Register `uploadImage` command and add `imageUpload` command as an alias for backward compatibility.\n editor.commands.add('uploadImage', uploadImageCommand);\n editor.commands.add('imageUpload', uploadImageCommand);\n // Register upcast converter for uploadId.\n conversion.for('upcast')\n .attributeToAttribute({\n view: {\n name: 'img',\n key: 'uploadId'\n },\n model: 'uploadId'\n });\n // Handle pasted images.\n // For every image file, a new file loader is created and a placeholder image is\n // inserted into the content. Then, those images are uploaded once they appear in the model\n // (see Document#change listener below).\n this.listenTo(editor.editing.view.document, 'clipboardInput', (evt, data) => {\n // Skip if non empty HTML data is included.\n // https://github.com/ckeditor/ckeditor5-upload/issues/68\n if (isHtmlIncluded(data.dataTransfer)) {\n return;\n }\n const images = Array.from(data.dataTransfer.files).filter(file => {\n // See https://github.com/ckeditor/ckeditor5-image/pull/254.\n if (!file) {\n return false;\n }\n return imageTypes.test(file.type);\n });\n if (!images.length) {\n return;\n }\n evt.stop();\n editor.model.change(writer => {\n // Set selection to paste target.\n if (data.targetRanges) {\n writer.setSelection(data.targetRanges.map(viewRange => editor.editing.mapper.toModelRange(viewRange)));\n }\n // Upload images after the selection has changed in order to ensure the command's state is refreshed.\n editor.model.enqueueChange(() => {\n editor.execute('uploadImage', { file: images });\n });\n });\n });\n // Handle HTML pasted with images with base64 or blob sources.\n // For every image file, a new file loader is created and a placeholder image is\n // inserted into the content. Then, those images are uploaded once they appear in the model\n // (see Document#change listener below).\n this.listenTo(clipboardPipeline, 'inputTransformation', (evt, data) => {\n const fetchableImages = Array.from(editor.editing.view.createRangeIn(data.content))\n .map(value => value.item)\n .filter(viewElement => isLocalImage(imageUtils, viewElement) &&\n !viewElement.getAttribute('uploadProcessed'))\n .map(viewElement => { return { promise: fetchLocalImage(viewElement), imageElement: viewElement }; });\n if (!fetchableImages.length) {\n return;\n }\n const writer = new UpcastWriter(editor.editing.view.document);\n for (const fetchableImage of fetchableImages) {\n // Set attribute marking that the image was processed already.\n writer.setAttribute('uploadProcessed', true, fetchableImage.imageElement);\n const loader = fileRepository.createLoader(fetchableImage.promise);\n if (loader) {\n writer.setAttribute('src', '', fetchableImage.imageElement);\n writer.setAttribute('uploadId', loader.id, fetchableImage.imageElement);\n }\n }\n });\n // Prevents from the browser redirecting to the dropped image.\n editor.editing.view.document.on('dragover', (evt, data) => {\n data.preventDefault();\n });\n // Upload placeholder images that appeared in the model.\n doc.on('change', () => {\n // Note: Reversing changes to start with insertions and only then handle removals. If it was the other way around,\n // loaders for **all** images that land in the $graveyard would abort while in fact only those that were **not** replaced\n // by other images should be aborted.\n const changes = doc.differ.getChanges({ includeChangesInGraveyard: true }).reverse();\n const insertedImagesIds = new Set();\n for (const entry of changes) {\n if (entry.type == 'insert' && entry.name != '$text') {\n const item = entry.position.nodeAfter;\n const isInsertedInGraveyard = entry.position.root.rootName == '$graveyard';\n for (const imageElement of getImagesFromChangeItem(editor, item)) {\n // Check if the image element still has upload id.\n const uploadId = imageElement.getAttribute('uploadId');\n if (!uploadId) {\n continue;\n }\n // Check if the image is loaded on this client.\n const loader = fileRepository.loaders.get(uploadId);\n if (!loader) {\n continue;\n }\n if (isInsertedInGraveyard) {\n // If the image was inserted to the graveyard for good (**not** replaced by another image),\n // only then abort the loading process.\n if (!insertedImagesIds.has(uploadId)) {\n loader.abort();\n }\n }\n else {\n // Remember the upload id of the inserted image. If it acted as a replacement for another\n // image (which landed in the $graveyard), the related loader will not be aborted because\n // this is still the same image upload.\n insertedImagesIds.add(uploadId);\n // Keep the mapping between the upload ID and the image model element so the upload\n // can later resolve in the context of the correct model element. The model element could\n // change for the same upload if one image was replaced by another (e.g. image type was changed),\n // so this may also replace an existing mapping.\n this._uploadImageElements.set(uploadId, imageElement);\n if (loader.status == 'idle') {\n // If the image was inserted into content and has not been loaded yet, start loading it.\n this._readAndUpload(loader);\n }\n }\n }\n }\n }\n });\n // Set the default handler for feeding the image element with `src` and `srcset` attributes.\n this.on('uploadComplete', (evt, { imageElement, data }) => {\n const urls = data.urls ? data.urls : data;\n this.editor.model.change(writer => {\n writer.setAttribute('src', urls.default, imageElement);\n this._parseAndSetSrcsetAttributeOnImage(urls, imageElement, writer);\n });\n }, { priority: 'low' });\n }\n /**\n * @inheritDoc\n */\n afterInit() {\n const schema = this.editor.model.schema;\n // Setup schema to allow uploadId and uploadStatus for images.\n // Wait for ImageBlockEditing or ImageInlineEditing to register their elements first,\n // that's why doing this in afterInit() instead of init().\n if (this.editor.plugins.has('ImageBlockEditing')) {\n schema.extend('imageBlock', {\n allowAttributes: ['uploadId', 'uploadStatus']\n });\n }\n if (this.editor.plugins.has('ImageInlineEditing')) {\n schema.extend('imageInline', {\n allowAttributes: ['uploadId', 'uploadStatus']\n });\n }\n }\n /**\n * Reads and uploads an image.\n *\n * The image is read from the disk and as a Base64-encoded string it is set temporarily to\n * `image[src]`. When the image is successfully uploaded, the temporary data is replaced with the target\n * image's URL (the URL to the uploaded image on the server).\n */\n _readAndUpload(loader) {\n const editor = this.editor;\n const model = editor.model;\n const t = editor.locale.t;\n const fileRepository = editor.plugins.get(FileRepository);\n const notification = editor.plugins.get(Notification);\n const imageUtils = editor.plugins.get('ImageUtils');\n const imageUploadElements = this._uploadImageElements;\n model.enqueueChange({ isUndoable: false }, writer => {\n writer.setAttribute('uploadStatus', 'reading', imageUploadElements.get(loader.id));\n });\n return loader.read()\n .then(() => {\n const promise = loader.upload();\n const imageElement = imageUploadElements.get(loader.id);\n // Force re–paint in Safari. Without it, the image will display with a wrong size.\n // https://github.com/ckeditor/ckeditor5/issues/1975\n /* istanbul ignore next -- @preserve */\n if (env.isSafari) {\n const viewFigure = editor.editing.mapper.toViewElement(imageElement);\n const viewImg = imageUtils.findViewImgElement(viewFigure);\n editor.editing.view.once('render', () => {\n // Early returns just to be safe. There might be some code ran\n // in between the outer scope and this callback.\n if (!viewImg.parent) {\n return;\n }\n const domFigure = editor.editing.view.domConverter.mapViewToDom(viewImg.parent);\n if (!domFigure) {\n return;\n }\n const originalDisplay = domFigure.style.display;\n domFigure.style.display = 'none';\n // Make sure this line will never be removed during minification for having \"no effect\".\n domFigure._ckHack = domFigure.offsetHeight;\n domFigure.style.display = originalDisplay;\n });\n }\n model.enqueueChange({ isUndoable: false }, writer => {\n writer.setAttribute('uploadStatus', 'uploading', imageElement);\n });\n return promise;\n })\n .then(data => {\n model.enqueueChange({ isUndoable: false }, writer => {\n const imageElement = imageUploadElements.get(loader.id);\n writer.setAttribute('uploadStatus', 'complete', imageElement);\n this.fire('uploadComplete', { data, imageElement });\n });\n clean();\n })\n .catch(error => {\n // If status is not 'error' nor 'aborted' - throw error because it means that something else went wrong,\n // it might be generic error and it would be real pain to find what is going on.\n if (loader.status !== 'error' && loader.status !== 'aborted') {\n throw error;\n }\n // Might be 'aborted'.\n if (loader.status == 'error' && error) {\n notification.showWarning(error, {\n title: t('Upload failed'),\n namespace: 'upload'\n });\n }\n // Permanently remove image from insertion batch.\n model.enqueueChange({ isUndoable: false }, writer => {\n writer.remove(imageUploadElements.get(loader.id));\n });\n clean();\n });\n function clean() {\n model.enqueueChange({ isUndoable: false }, writer => {\n const imageElement = imageUploadElements.get(loader.id);\n writer.removeAttribute('uploadId', imageElement);\n writer.removeAttribute('uploadStatus', imageElement);\n imageUploadElements.delete(loader.id);\n });\n fileRepository.destroyLoader(loader);\n }\n }\n /**\n * Creates the `srcset` attribute based on a given file upload response and sets it as an attribute to a specific image element.\n *\n * @param data Data object from which `srcset` will be created.\n * @param image The image element on which the `srcset` attribute will be set.\n */\n _parseAndSetSrcsetAttributeOnImage(data, image, writer) {\n // Srcset attribute for responsive images support.\n let maxWidth = 0;\n const srcsetAttribute = Object.keys(data)\n // Filter out keys that are not integers.\n .filter(key => {\n const width = parseInt(key, 10);\n if (!isNaN(width)) {\n maxWidth = Math.max(maxWidth, width);\n return true;\n }\n })\n // Convert each key to srcset entry.\n .map(key => `${data[key]} ${key}w`)\n // Join all entries.\n .join(', ');\n if (srcsetAttribute != '') {\n writer.setAttribute('srcset', {\n data: srcsetAttribute,\n width: maxWidth\n }, image);\n }\n }\n}\n/**\n * Returns `true` if non-empty `text/html` is included in the data transfer.\n */\nexport function isHtmlIncluded(dataTransfer) {\n return Array.from(dataTransfer.types).includes('text/html') && dataTransfer.getData('text/html') !== '';\n}\nfunction getImagesFromChangeItem(editor, item) {\n const imageUtils = editor.plugins.get('ImageUtils');\n return Array.from(editor.model.createRangeOn(item))\n .filter(value => imageUtils.isImage(value.item))\n .map(value => value.item);\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageupload\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport ImageUploadUI from './imageupload/imageuploadui';\nimport ImageUploadProgress from './imageupload/imageuploadprogress';\nimport ImageUploadEditing from './imageupload/imageuploadediting';\n/**\n * The image upload plugin.\n *\n * For a detailed overview, check the {@glink features/images/image-upload/image-upload image upload feature} documentation.\n *\n * This plugin does not do anything directly, but it loads a set of specific plugins to enable image uploading:\n *\n * * {@link module:image/imageupload/imageuploadediting~ImageUploadEditing},\n * * {@link module:image/imageupload/imageuploadui~ImageUploadUI},\n * * {@link module:image/imageupload/imageuploadprogress~ImageUploadProgress}.\n */\nexport default class ImageUpload extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageUpload';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUploadEditing, ImageUploadUI, ImageUploadProgress];\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./imageinsertformrowview.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { View } from 'ckeditor5/src/ui';\nimport '../../../theme/imageinsertformrowview.css';\n/**\n * The class representing a single row in a complex form,\n * used by {@link module:image/imageinsert/ui/imageinsertpanelview~ImageInsertPanelView}.\n *\n * **Note**: For now this class is private. When more use cases appear (beyond `ckeditor5-table` and `ckeditor5-image`),\n * it will become a component in `ckeditor5-ui`.\n *\n * @private\n */\nexport default class ImageUploadFormRowView extends View {\n /**\n * Creates an instance of the form row class.\n *\n * @param locale The locale instance.\n * @param options.labelView When passed, the row gets the `group` and `aria-labelledby`\n * DOM attributes and gets described by the label.\n */\n constructor(locale, options = {}) {\n super(locale);\n const bind = this.bindTemplate;\n this.set('class', options.class || null);\n this.children = this.createCollection();\n if (options.children) {\n options.children.forEach(child => this.children.add(child));\n }\n this.set('_role', null);\n this.set('_ariaLabelledBy', null);\n if (options.labelView) {\n this.set({\n _role: 'group',\n _ariaLabelledBy: options.labelView.id\n });\n }\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-form__row',\n bind.to('class')\n ],\n role: bind.to('_role'),\n 'aria-labelledby': bind.to('_ariaLabelledBy')\n },\n children: this.children\n });\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./imageinsert.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageinsert/ui/imageinsertpanelview\n */\nimport { icons } from 'ckeditor5/src/core';\nimport { ButtonView, View, ViewCollection, submitHandler, FocusCycler } from 'ckeditor5/src/ui';\nimport { Collection, FocusTracker, KeystrokeHandler } from 'ckeditor5/src/utils';\nimport ImageInsertFormRowView from './imageinsertformrowview';\nimport '../../../theme/imageinsert.css';\n/**\n * The insert an image via URL view controller class.\n *\n * See {@link module:image/imageinsert/ui/imageinsertpanelview~ImageInsertPanelView}.\n */\nexport default class ImageInsertPanelView extends View {\n /**\n * Creates a view for the dropdown panel of {@link module:image/imageinsert/imageinsertui~ImageInsertUI}.\n *\n * @param locale The localization services instance.\n * @param integrations An integrations object that contains components (or tokens for components) to be shown in the panel view.\n */\n constructor(locale, integrations = {}) {\n super(locale);\n const { insertButtonView, cancelButtonView } = this._createActionButtons(locale);\n this.insertButtonView = insertButtonView;\n this.cancelButtonView = cancelButtonView;\n this.set('imageURLInputValue', '');\n this.focusTracker = new FocusTracker();\n this.keystrokes = new KeystrokeHandler();\n this._focusables = new ViewCollection();\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate form fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate form fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n this.set('_integrations', new Collection());\n for (const [integration, integrationView] of Object.entries(integrations)) {\n if (integration === 'insertImageViaUrl') {\n integrationView.fieldView\n .bind('value').to(this, 'imageURLInputValue', (value) => value || '');\n integrationView.fieldView.on('input', () => {\n this.imageURLInputValue = integrationView.fieldView.element.value.trim();\n });\n }\n integrationView.name = integration;\n this._integrations.add(integrationView);\n }\n this.setTemplate({\n tag: 'form',\n attributes: {\n class: [\n 'ck',\n 'ck-image-insert-form'\n ],\n tabindex: '-1'\n },\n children: [\n ...this._integrations,\n new ImageInsertFormRowView(locale, {\n children: [\n this.insertButtonView,\n this.cancelButtonView\n ],\n class: 'ck-image-insert-form__action-row'\n })\n ]\n });\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n submitHandler({\n view: this\n });\n const childViews = [\n ...this._integrations,\n this.insertButtonView,\n this.cancelButtonView\n ];\n childViews.forEach(v => {\n // Register the view as focusable.\n this._focusables.add(v);\n // Register the view in the focus tracker.\n this.focusTracker.add(v.element);\n });\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n const stopPropagation = (data) => data.stopPropagation();\n // Since the form is in the dropdown panel which is a child of the toolbar, the toolbar's\n // keystroke handler would take over the key management in the URL input. We need to prevent\n // this ASAP. Otherwise, the basic caret movement using the arrow keys will be impossible.\n this.keystrokes.set('arrowright', stopPropagation);\n this.keystrokes.set('arrowleft', stopPropagation);\n this.keystrokes.set('arrowup', stopPropagation);\n this.keystrokes.set('arrowdown', stopPropagation);\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n * Returns a view of the integration.\n *\n * @param name The name of the integration.\n */\n getIntegration(name) {\n return this._integrations.find(integration => integration.name === name);\n }\n /**\n * Creates the following form controls:\n *\n * * {@link #insertButtonView},\n * * {@link #cancelButtonView}.\n *\n * @param locale The localization services instance.\n */\n _createActionButtons(locale) {\n const t = locale.t;\n const insertButtonView = new ButtonView(locale);\n const cancelButtonView = new ButtonView(locale);\n insertButtonView.set({\n label: t('Insert'),\n icon: icons.check,\n class: 'ck-button-save',\n type: 'submit',\n withText: true,\n isEnabled: this.imageURLInputValue\n });\n cancelButtonView.set({\n label: t('Cancel'),\n icon: icons.cancel,\n class: 'ck-button-cancel',\n withText: true\n });\n insertButtonView.bind('isEnabled').to(this, 'imageURLInputValue', value => !!value);\n insertButtonView.delegate('execute').to(this, 'submit');\n cancelButtonView.delegate('execute').to(this, 'cancel');\n return { insertButtonView, cancelButtonView };\n }\n /**\n * Focuses the first {@link #_focusables focusable} in the form.\n */\n focus() {\n this._focusCycler.focusFirst();\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { LabeledFieldView, createLabeledInputText } from 'ckeditor5/src/ui';\n/**\n * Creates integrations object that will be passed to the\n * {@link module:image/imageinsert/ui/imageinsertpanelview~ImageInsertPanelView}.\n *\n * @param editor Editor instance.\n *\n * @returns Integrations object.\n */\nexport function prepareIntegrations(editor) {\n const panelItems = editor.config.get('image.insert.integrations');\n const imageInsertUIPlugin = editor.plugins.get('ImageInsertUI');\n const PREDEFINED_INTEGRATIONS = {\n 'insertImageViaUrl': createLabeledInputView(editor.locale)\n };\n if (!panelItems) {\n return PREDEFINED_INTEGRATIONS;\n }\n // Prepares ckfinder component for the `openCKFinder` integration token.\n if (panelItems.find(item => item === 'openCKFinder') && editor.ui.componentFactory.has('ckfinder')) {\n const ckFinderButton = editor.ui.componentFactory.create('ckfinder');\n ckFinderButton.set({\n withText: true,\n class: 'ck-image-insert__ck-finder-button'\n });\n // We want to close the dropdown panel view when user clicks the ckFinderButton.\n ckFinderButton.delegate('execute').to(imageInsertUIPlugin, 'cancel');\n PREDEFINED_INTEGRATIONS.openCKFinder = ckFinderButton;\n }\n // Creates integrations object of valid views to pass it to the ImageInsertPanelView.\n return panelItems.reduce((object, key) => {\n if (PREDEFINED_INTEGRATIONS[key]) {\n object[key] = PREDEFINED_INTEGRATIONS[key];\n }\n else if (editor.ui.componentFactory.has(key)) {\n object[key] = editor.ui.componentFactory.create(key);\n }\n return object;\n }, {});\n}\n/**\n * Creates labeled field view.\n *\n * @param locale The localization services instance.\n */\nexport function createLabeledInputView(locale) {\n const t = locale.t;\n const labeledInputView = new LabeledFieldView(locale, createLabeledInputText);\n labeledInputView.set({\n label: t('Insert image via URL')\n });\n labeledInputView.fieldView.placeholder = 'https://example.com/image.png';\n return labeledInputView;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageinsert/imageinsertui\n */\nimport { Plugin, icons } from 'ckeditor5/src/core';\nimport { SplitButtonView, createDropdown } from 'ckeditor5/src/ui';\nimport ImageInsertPanelView from './ui/imageinsertpanelview';\nimport { prepareIntegrations } from './utils';\n/**\n * The image insert dropdown plugin.\n *\n * For a detailed overview, check the {@glink features/images/image-upload/image-upload Image upload feature}\n * and {@glink features/images/images-inserting Insert images via source URL} documentation.\n *\n * Adds the `'insertImage'` dropdown to the {@link module:ui/componentfactory~ComponentFactory UI component factory}\n * and also the `imageInsert` dropdown as an alias for backward compatibility.\n */\nexport default class ImageInsertUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageInsertUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const componentCreator = (locale) => {\n return this._createDropdownView(locale);\n };\n // Register `insertImage` dropdown and add `imageInsert` dropdown as an alias for backward compatibility.\n editor.ui.componentFactory.add('insertImage', componentCreator);\n editor.ui.componentFactory.add('imageInsert', componentCreator);\n }\n /**\n * Creates the dropdown view.\n *\n * @param locale The localization services instance.\n */\n _createDropdownView(locale) {\n const editor = this.editor;\n const t = locale.t;\n const uploadImageCommand = editor.commands.get('uploadImage');\n const insertImageCommand = editor.commands.get('insertImage');\n this.dropdownView = createDropdown(locale, uploadImageCommand ? SplitButtonView : undefined);\n const buttonView = this.dropdownView.buttonView;\n const panelView = this.dropdownView.panelView;\n buttonView.set({\n label: t('Insert image'),\n icon: icons.image,\n tooltip: true\n });\n panelView.extendTemplate({\n attributes: {\n class: 'ck-image-insert__panel'\n }\n });\n if (uploadImageCommand) {\n const splitButtonView = this.dropdownView.buttonView;\n // We are injecting custom button replacement to readonly field.\n splitButtonView.actionView = editor.ui.componentFactory.create('uploadImage');\n // After we replaced action button with `uploadImage` component,\n // we have lost a proper styling and some minor visual quirks have appeared.\n // Brining back original split button classes helps fix the button styling\n // See https://github.com/ckeditor/ckeditor5/issues/7986.\n splitButtonView.actionView.extendTemplate({\n attributes: {\n class: 'ck ck-button ck-splitbutton__action'\n }\n });\n }\n return this._setUpDropdown(uploadImageCommand || insertImageCommand);\n }\n /**\n * Sets up the dropdown view.\n *\n * @param command An uploadImage or insertImage command.\n */\n _setUpDropdown(command) {\n const editor = this.editor;\n const t = editor.t;\n const dropdownView = this.dropdownView;\n const panelView = dropdownView.panelView;\n const imageUtils = this.editor.plugins.get('ImageUtils');\n const replaceImageSourceCommand = editor.commands.get('replaceImageSource');\n let imageInsertView;\n dropdownView.bind('isEnabled').to(command);\n dropdownView.once('change:isOpen', () => {\n imageInsertView = new ImageInsertPanelView(editor.locale, prepareIntegrations(editor));\n imageInsertView.delegate('submit', 'cancel').to(dropdownView);\n panelView.children.add(imageInsertView);\n });\n dropdownView.on('change:isOpen', () => {\n const selectedElement = editor.model.document.selection.getSelectedElement();\n const insertButtonView = imageInsertView.insertButtonView;\n const insertImageViaUrlForm = imageInsertView.getIntegration('insertImageViaUrl');\n if (dropdownView.isOpen) {\n if (imageUtils.isImage(selectedElement)) {\n imageInsertView.imageURLInputValue = replaceImageSourceCommand.value;\n insertButtonView.label = t('Update');\n insertImageViaUrlForm.label = t('Update image URL');\n }\n else {\n imageInsertView.imageURLInputValue = '';\n insertButtonView.label = t('Insert');\n insertImageViaUrlForm.label = t('Insert image via URL');\n }\n }\n // Note: Use the low priority to make sure the following listener starts working after the\n // default action of the drop-down is executed (i.e. the panel showed up). Otherwise, the\n // invisible form/input cannot be focused/selected.\n }, { priority: 'low' });\n this.delegate('cancel').to(dropdownView);\n dropdownView.on('submit', () => {\n closePanel();\n onSubmit();\n });\n dropdownView.on('cancel', () => {\n closePanel();\n });\n function onSubmit() {\n const selectedElement = editor.model.document.selection.getSelectedElement();\n if (imageUtils.isImage(selectedElement)) {\n editor.execute('replaceImageSource', { source: imageInsertView.imageURLInputValue });\n }\n else {\n editor.execute('insertImage', { source: imageInsertView.imageURLInputValue });\n }\n }\n function closePanel() {\n editor.editing.view.focus();\n dropdownView.isOpen = false;\n }\n return dropdownView;\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageinsertviaurl\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport ImageInsertUI from './imageinsert/imageinsertui';\n/**\n * The image insert via URL plugin.\n *\n * For a detailed overview, check the {@glink features/images/images-inserting\n * Insert images via source URL} documentation.\n *\n * This plugin does not do anything directly, but it loads a set of specific plugins\n * to enable image inserting via implemented integrations:\n *\n * * {@link module:image/imageinsert/imageinsertui~ImageInsertUI},\n */\nexport default class ImageInsertViaUrl extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageInsertViaUrl';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageInsertUI];\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageresize/resizeimagecommand\n */\nimport { Command } from 'ckeditor5/src/core';\n/**\n * The resize image command. Currently, it only supports the width attribute.\n */\nexport default class ResizeImageCommand extends Command {\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const element = imageUtils.getClosestSelectedImageElement(editor.model.document.selection);\n this.isEnabled = !!element;\n if (!element || !element.hasAttribute('width')) {\n this.value = null;\n }\n else {\n this.value = {\n width: element.getAttribute('width'),\n height: null\n };\n }\n }\n /**\n * Executes the command.\n *\n * ```ts\n * // Sets the width to 50%:\n * editor.execute( 'resizeImage', { width: '50%' } );\n *\n * // Removes the width attribute:\n * editor.execute( 'resizeImage', { width: null } );\n * ```\n *\n * @param options\n * @param options.width The new width of the image.\n * @fires execute\n */\n execute(options) {\n const editor = this.editor;\n const model = editor.model;\n const imageUtils = editor.plugins.get('ImageUtils');\n const imageElement = imageUtils.getClosestSelectedImageElement(model.document.selection);\n this.value = {\n width: options.width,\n height: null\n };\n if (imageElement) {\n model.change(writer => {\n writer.setAttribute('width', options.width, imageElement);\n });\n }\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport ImageUtils from '../imageutils';\nimport ResizeImageCommand from './resizeimagecommand';\n/**\n * The image resize editing feature.\n *\n * It adds the ability to resize each image using handles or manually by\n * {@link module:image/imageresize/imageresizebuttons~ImageResizeButtons} buttons.\n */\nexport default class ImageResizeEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUtils];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageResizeEditing';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n editor.config.define('image', {\n resizeUnit: '%',\n resizeOptions: [{\n name: 'resizeImage:original',\n value: null,\n icon: 'original'\n },\n {\n name: 'resizeImage:25',\n value: '25',\n icon: 'small'\n },\n {\n name: 'resizeImage:50',\n value: '50',\n icon: 'medium'\n },\n {\n name: 'resizeImage:75',\n value: '75',\n icon: 'large'\n }]\n });\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const resizeImageCommand = new ResizeImageCommand(editor);\n this._registerSchema();\n this._registerConverters('imageBlock');\n this._registerConverters('imageInline');\n // Register `resizeImage` command and add `imageResize` command as an alias for backward compatibility.\n editor.commands.add('resizeImage', resizeImageCommand);\n editor.commands.add('imageResize', resizeImageCommand);\n }\n _registerSchema() {\n if (this.editor.plugins.has('ImageBlockEditing')) {\n this.editor.model.schema.extend('imageBlock', { allowAttributes: 'width' });\n }\n if (this.editor.plugins.has('ImageInlineEditing')) {\n this.editor.model.schema.extend('imageInline', { allowAttributes: 'width' });\n }\n }\n /**\n * Registers image resize converters.\n *\n * @param imageType The type of the image.\n */\n _registerConverters(imageType) {\n const editor = this.editor;\n // Dedicated converter to propagate image's attribute to the img tag.\n editor.conversion.for('downcast').add(dispatcher => dispatcher.on(`attribute:width:${imageType}`, (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n const viewWriter = conversionApi.writer;\n const figure = conversionApi.mapper.toViewElement(data.item);\n if (data.attributeNewValue !== null) {\n viewWriter.setStyle('width', data.attributeNewValue, figure);\n viewWriter.addClass('image_resized', figure);\n }\n else {\n viewWriter.removeStyle('width', figure);\n viewWriter.removeClass('image_resized', figure);\n }\n }));\n editor.conversion.for('upcast')\n .attributeToAttribute({\n view: {\n name: imageType === 'imageBlock' ? 'figure' : 'img',\n styles: {\n width: /.+/\n }\n },\n model: {\n key: 'width',\n value: (viewElement) => viewElement.getStyle('width')\n }\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageresize/imageresizebuttons\n */\nimport { Plugin, icons } from 'ckeditor5/src/core';\nimport { ButtonView, DropdownButtonView, Model, createDropdown, addListToDropdown } from 'ckeditor5/src/ui';\nimport { CKEditorError, Collection } from 'ckeditor5/src/utils';\nimport ImageResizeEditing from './imageresizeediting';\nconst RESIZE_ICONS = {\n small: icons.objectSizeSmall,\n medium: icons.objectSizeMedium,\n large: icons.objectSizeLarge,\n original: icons.objectSizeFull\n};\n/**\n * The image resize buttons plugin.\n *\n * It adds a possibility to resize images using the toolbar dropdown or individual buttons, depending on the plugin configuration.\n */\nexport default class ImageResizeButtons extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageResizeEditing];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageResizeButtons';\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n this._resizeUnit = editor.config.get('image.resizeUnit');\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const options = editor.config.get('image.resizeOptions');\n const command = editor.commands.get('resizeImage');\n this.bind('isEnabled').to(command);\n for (const option of options) {\n this._registerImageResizeButton(option);\n }\n this._registerImageResizeDropdown(options);\n }\n /**\n * A helper function that creates a standalone button component for the plugin.\n *\n * @param resizeOption A model of the resize option.\n */\n _registerImageResizeButton(option) {\n const editor = this.editor;\n const { name, value, icon } = option;\n const optionValueWithUnit = value ? value + this._resizeUnit : null;\n editor.ui.componentFactory.add(name, locale => {\n const button = new ButtonView(locale);\n const command = editor.commands.get('resizeImage');\n const labelText = this._getOptionLabelValue(option, true);\n if (!RESIZE_ICONS[icon]) {\n /**\n * When configuring {@link module:image/imageconfig~ImageConfig#resizeOptions `config.image.resizeOptions`} for standalone\n * buttons, a valid `icon` token must be set for each option.\n *\n * See all valid options described in the\n * {@link module:image/imageconfig~ImageResizeOption plugin configuration}.\n *\n * @error imageresizebuttons-missing-icon\n * @param option Invalid image resize option.\n */\n throw new CKEditorError('imageresizebuttons-missing-icon', editor, option);\n }\n button.set({\n // Use the `label` property for a verbose description (because of ARIA).\n label: labelText,\n icon: RESIZE_ICONS[icon],\n tooltip: labelText,\n isToggleable: true\n });\n // Bind button to the command.\n button.bind('isEnabled').to(this);\n button.bind('isOn').to(command, 'value', getIsOnButtonCallback(optionValueWithUnit));\n this.listenTo(button, 'execute', () => {\n editor.execute('resizeImage', { width: optionValueWithUnit });\n });\n return button;\n });\n }\n /**\n * A helper function that creates a dropdown component for the plugin containing all the resize options defined in\n * the editor configuration.\n *\n * @param options An array of configured options.\n */\n _registerImageResizeDropdown(options) {\n const editor = this.editor;\n const t = editor.t;\n const originalSizeOption = options.find(option => !option.value);\n const componentCreator = (locale) => {\n const command = editor.commands.get('resizeImage');\n const dropdownView = createDropdown(locale, DropdownButtonView);\n const dropdownButton = dropdownView.buttonView;\n const accessibleLabel = t('Resize image');\n dropdownButton.set({\n tooltip: accessibleLabel,\n commandValue: originalSizeOption.value,\n icon: RESIZE_ICONS.medium,\n isToggleable: true,\n label: this._getOptionLabelValue(originalSizeOption),\n withText: true,\n class: 'ck-resize-image-button',\n ariaLabel: accessibleLabel,\n ariaLabelledBy: undefined\n });\n dropdownButton.bind('label').to(command, 'value', commandValue => {\n if (commandValue && commandValue.width) {\n return commandValue.width;\n }\n else {\n return this._getOptionLabelValue(originalSizeOption);\n }\n });\n dropdownView.bind('isEnabled').to(this);\n addListToDropdown(dropdownView, () => this._getResizeDropdownListItemDefinitions(options, command), {\n ariaLabel: t('Image resize list'),\n role: 'menu'\n });\n // Execute command when an item from the dropdown is selected.\n this.listenTo(dropdownView, 'execute', evt => {\n editor.execute(evt.source.commandName, { width: evt.source.commandValue });\n editor.editing.view.focus();\n });\n return dropdownView;\n };\n // Register `resizeImage` dropdown and add `imageResize` dropdown as an alias for backward compatibility.\n editor.ui.componentFactory.add('resizeImage', componentCreator);\n editor.ui.componentFactory.add('imageResize', componentCreator);\n }\n /**\n * A helper function for creating an option label value string.\n *\n * @param option A resize option object.\n * @param forTooltip An optional flag for creating a tooltip label.\n * @returns A user-defined label combined from the numeric value and the resize unit or the default label\n * for reset options (`Original`).\n */\n _getOptionLabelValue(option, forTooltip = false) {\n const t = this.editor.t;\n if (option.label) {\n return option.label;\n }\n else if (forTooltip) {\n if (option.value) {\n return t('Resize image to %0', option.value + this._resizeUnit);\n }\n else {\n return t('Resize image to the original size');\n }\n }\n else {\n if (option.value) {\n return option.value + this._resizeUnit;\n }\n else {\n return t('Original');\n }\n }\n }\n /**\n * A helper function that parses the resize options and returns list item definitions ready for use in the dropdown.\n *\n * @param options The resize options.\n * @param command The resize image command.\n * @returns Dropdown item definitions.\n */\n _getResizeDropdownListItemDefinitions(options, command) {\n const itemDefinitions = new Collection();\n options.map(option => {\n const optionValueWithUnit = option.value ? option.value + this._resizeUnit : null;\n const definition = {\n type: 'button',\n model: new Model({\n commandName: 'resizeImage',\n commandValue: optionValueWithUnit,\n label: this._getOptionLabelValue(option),\n role: 'menuitemradio',\n withText: true,\n icon: null\n })\n };\n definition.model.bind('isOn').to(command, 'value', getIsOnButtonCallback(optionValueWithUnit));\n itemDefinitions.add(definition);\n });\n return itemDefinitions;\n }\n}\n/**\n * A helper function for setting the `isOn` state of buttons in value bindings.\n */\nfunction getIsOnButtonCallback(value) {\n return (commandValue) => {\n const objectCommandValue = commandValue;\n if (value === null && objectCommandValue === value) {\n return true;\n }\n return objectCommandValue !== null && objectCommandValue.width === value;\n };\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { WidgetResize } from 'ckeditor5/src/widget';\nimport ImageLoadObserver from '../image/imageloadobserver';\nconst RESIZABLE_IMAGES_CSS_SELECTOR = 'figure.image.ck-widget > img,' +\n 'figure.image.ck-widget > picture > img,' +\n 'figure.image.ck-widget > a > img,' +\n 'figure.image.ck-widget > a > picture > img,' +\n 'span.image-inline.ck-widget > img,' +\n 'span.image-inline.ck-widget > picture > img';\nconst IMAGE_WIDGETS_CLASSES_MATCH_REGEXP = /(image|image-inline)/;\nconst RESIZED_IMAGE_CLASS = 'image_resized';\n/**\n * The image resize by handles feature.\n *\n * It adds the ability to resize each image using handles or manually by\n * {@link module:image/imageresize/imageresizebuttons~ImageResizeButtons} buttons.\n */\nexport default class ImageResizeHandles extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [WidgetResize];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageResizeHandles';\n }\n /**\n * @inheritDoc\n */\n init() {\n const command = this.editor.commands.get('resizeImage');\n this.bind('isEnabled').to(command);\n this._setupResizerCreator();\n }\n /**\n * Attaches the listeners responsible for creating a resizer for each image, except for images inside the HTML embed preview.\n */\n _setupResizerCreator() {\n const editor = this.editor;\n const editingView = editor.editing.view;\n editingView.addObserver(ImageLoadObserver);\n this.listenTo(editingView.document, 'imageLoaded', (evt, domEvent) => {\n // The resizer must be attached only to images loaded by the `ImageInsert`, `ImageUpload` or `LinkImage` plugins.\n if (!domEvent.target.matches(RESIZABLE_IMAGES_CSS_SELECTOR)) {\n return;\n }\n const domConverter = editor.editing.view.domConverter;\n const imageView = domConverter.domToView(domEvent.target);\n const widgetView = imageView.findAncestor({ classes: IMAGE_WIDGETS_CLASSES_MATCH_REGEXP });\n let resizer = this.editor.plugins.get(WidgetResize).getResizerByViewElement(widgetView);\n if (resizer) {\n // There are rare cases when the image will be triggered multiple times for the same widget, e.g. when\n // the image's source was changed after upload (https://github.com/ckeditor/ckeditor5/pull/8108#issuecomment-708302992).\n resizer.redraw();\n return;\n }\n const mapper = editor.editing.mapper;\n const imageModel = mapper.toModelElement(widgetView);\n resizer = editor.plugins\n .get(WidgetResize)\n .attachTo({\n unit: editor.config.get('image.resizeUnit'),\n modelElement: imageModel,\n viewElement: widgetView,\n editor,\n getHandleHost(domWidgetElement) {\n return domWidgetElement.querySelector('img');\n },\n getResizeHost() {\n // Return the model image element parent to avoid setting an inline element (/) as a resize host.\n return domConverter.mapViewToDom(mapper.toViewElement(imageModel.parent));\n },\n // TODO consider other positions.\n isCentered() {\n const imageStyle = imageModel.getAttribute('imageStyle');\n return !imageStyle || imageStyle == 'block' || imageStyle == 'alignCenter';\n },\n onCommit(newValue) {\n // Get rid of the CSS class in case the command execution that follows is unsuccessful\n // (e.g. Track Changes can override it and the new dimensions will not apply). Otherwise,\n // the presence of the class and the absence of the width style will cause it to take 100%\n // of the horizontal space.\n editingView.change(writer => {\n writer.removeClass(RESIZED_IMAGE_CLASS, widgetView);\n });\n editor.execute('resizeImage', { width: newValue });\n }\n });\n resizer.on('updateSize', () => {\n if (!widgetView.hasClass(RESIZED_IMAGE_CLASS)) {\n editingView.change(writer => {\n writer.addClass(RESIZED_IMAGE_CLASS, widgetView);\n });\n }\n });\n resizer.bind('isEnabled').to(this);\n });\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./imageresize.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { Command } from 'ckeditor5/src/core';\n/**\n * The image style command. It is used to apply {@link module:image/imageconfig~ImageStyleConfig#options image style option}\n * to a selected image.\n *\n * **Note**: Executing this command may change the image model element if the desired style requires an image of a different\n * type. See {@link module:image/imagestyle/imagestylecommand~ImageStyleCommand#execute} to learn more.\n */\nexport default class ImageStyleCommand extends Command {\n /**\n * Creates an instance of the image style command. When executed, the command applies one of\n * {@link module:image/imageconfig~ImageStyleConfig#options style options} to the currently selected image.\n *\n * @param editor The editor instance.\n * @param styles The style options that this command supports.\n */\n constructor(editor, styles) {\n super(editor);\n this._defaultStyles = {\n imageBlock: false,\n imageInline: false\n };\n this._styles = new Map(styles.map(style => {\n if (style.isDefault) {\n for (const modelElementName of style.modelElements) {\n this._defaultStyles[modelElementName] = style.name;\n }\n }\n return [style.name, style];\n }));\n }\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const imageUtils = editor.plugins.get('ImageUtils');\n const element = imageUtils.getClosestSelectedImageElement(this.editor.model.document.selection);\n this.isEnabled = !!element;\n if (!this.isEnabled) {\n this.value = false;\n }\n else if (element.hasAttribute('imageStyle')) {\n this.value = element.getAttribute('imageStyle');\n }\n else {\n this.value = this._defaultStyles[element.name];\n }\n }\n /**\n * Executes the command and applies the style to the currently selected image:\n *\n * ```ts\n * editor.execute( 'imageStyle', { value: 'side' } );\n * ```\n *\n * **Note**: Executing this command may change the image model element if the desired style requires an image\n * of a different type. Learn more about {@link module:image/imageconfig~ImageStyleOptionDefinition#modelElements model element}\n * configuration for the style option.\n *\n * @param options.value The name of the style (as configured in {@link module:image/imageconfig~ImageStyleConfig#options}).\n * @fires execute\n */\n execute(options = {}) {\n const editor = this.editor;\n const model = editor.model;\n const imageUtils = editor.plugins.get('ImageUtils');\n model.change(writer => {\n const requestedStyle = options.value;\n let imageElement = imageUtils.getClosestSelectedImageElement(model.document.selection);\n // Change the image type if a style requires it.\n if (requestedStyle && this.shouldConvertImageType(requestedStyle, imageElement)) {\n this.editor.execute(imageUtils.isBlockImage(imageElement) ? 'imageTypeInline' : 'imageTypeBlock');\n // Update the imageElement to the newly created image.\n imageElement = imageUtils.getClosestSelectedImageElement(model.document.selection);\n }\n // Default style means that there is no `imageStyle` attribute in the model.\n // https://github.com/ckeditor/ckeditor5-image/issues/147\n if (!requestedStyle || this._styles.get(requestedStyle).isDefault) {\n writer.removeAttribute('imageStyle', imageElement);\n }\n else {\n writer.setAttribute('imageStyle', requestedStyle, imageElement);\n }\n });\n }\n /**\n * Returns `true` if requested style change would trigger the image type change.\n *\n * @param requestedStyle The name of the style (as configured in {@link module:image/imageconfig~ImageStyleConfig#options}).\n * @param imageElement The image model element.\n */\n shouldConvertImageType(requestedStyle, imageElement) {\n const supportedTypes = this._styles.get(requestedStyle).modelElements;\n return !supportedTypes.includes(imageElement.name);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagestyle/utils\n */\nimport { icons } from 'ckeditor5/src/core';\nimport { logWarning } from 'ckeditor5/src/utils';\nconst { objectFullWidth, objectInline, objectLeft, objectRight, objectCenter, objectBlockLeft, objectBlockRight } = icons;\n/**\n * Default image style options provided by the plugin that can be referred in the {@link module:image/imageconfig~ImageConfig#styles}\n * configuration.\n *\n * There are available 5 styles focused on formatting:\n *\n * * **`'alignLeft'`** aligns the inline or block image to the left and wraps it with the text using the `image-style-align-left` class,\n * * **`'alignRight'`** aligns the inline or block image to the right and wraps it with the text using the `image-style-align-right` class,\n * * **`'alignCenter'`** centers the block image using the `image-style-align-center` class,\n * * **`'alignBlockLeft'`** aligns the block image to the left using the `image-style-block-align-left` class,\n * * **`'alignBlockRight'`** aligns the block image to the right using the `image-style-block-align-right` class,\n *\n * and 3 semantic styles:\n *\n * * **`'inline'`** is an inline image without any CSS class,\n * * **`'block'`** is a block image without any CSS class,\n * * **`'side'`** is a block image styled with the `image-style-side` CSS class.\n */\nexport const DEFAULT_OPTIONS = {\n // This style represents an image placed in the line of text.\n get inline() {\n return {\n name: 'inline',\n title: 'In line',\n icon: objectInline,\n modelElements: ['imageInline'],\n isDefault: true\n };\n },\n // This style represents an image aligned to the left and wrapped with text.\n get alignLeft() {\n return {\n name: 'alignLeft',\n title: 'Left aligned image',\n icon: objectLeft,\n modelElements: ['imageBlock', 'imageInline'],\n className: 'image-style-align-left'\n };\n },\n // This style represents an image aligned to the left.\n get alignBlockLeft() {\n return {\n name: 'alignBlockLeft',\n title: 'Left aligned image',\n icon: objectBlockLeft,\n modelElements: ['imageBlock'],\n className: 'image-style-block-align-left'\n };\n },\n // This style represents a centered image.\n get alignCenter() {\n return {\n name: 'alignCenter',\n title: 'Centered image',\n icon: objectCenter,\n modelElements: ['imageBlock'],\n className: 'image-style-align-center'\n };\n },\n // This style represents an image aligned to the right and wrapped with text.\n get alignRight() {\n return {\n name: 'alignRight',\n title: 'Right aligned image',\n icon: objectRight,\n modelElements: ['imageBlock', 'imageInline'],\n className: 'image-style-align-right'\n };\n },\n // This style represents an image aligned to the right.\n get alignBlockRight() {\n return {\n name: 'alignBlockRight',\n title: 'Right aligned image',\n icon: objectBlockRight,\n modelElements: ['imageBlock'],\n className: 'image-style-block-align-right'\n };\n },\n // This option is equal to the situation when no style is applied.\n get block() {\n return {\n name: 'block',\n title: 'Centered image',\n icon: objectCenter,\n modelElements: ['imageBlock'],\n isDefault: true\n };\n },\n // This represents a side image.\n get side() {\n return {\n name: 'side',\n title: 'Side image',\n icon: objectRight,\n modelElements: ['imageBlock'],\n className: 'image-style-side'\n };\n }\n};\n/**\n * Default image style icons provided by the plugin that can be referred in the {@link module:image/imageconfig~ImageConfig#styles}\n * configuration.\n *\n * See {@link module:image/imageconfig~ImageStyleOptionDefinition#icon} to learn more.\n *\n * There are 7 default icons available: `'full'`, `'left'`, `'inlineLeft'`, `'center'`, `'right'`, `'inlineRight'`, and `'inline'`.\n */\nexport const DEFAULT_ICONS = {\n full: objectFullWidth,\n left: objectBlockLeft,\n right: objectBlockRight,\n center: objectCenter,\n inlineLeft: objectLeft,\n inlineRight: objectRight,\n inline: objectInline\n};\n/**\n * Default drop-downs provided by the plugin that can be referred in the {@link module:image/imageconfig~ImageConfig#toolbar}\n * configuration. The drop-downs are containers for the {@link module:image/imageconfig~ImageStyleConfig#options image style options}.\n *\n * If both of the `ImageEditing` plugins are loaded, there are 2 predefined drop-downs available:\n *\n * * **`'imageStyle:wrapText'`**, which contains the `alignLeft` and `alignRight` options, that is,\n * those that wraps the text around the image,\n * * **`'imageStyle:breakText'`**, which contains the `alignBlockLeft`, `alignCenter` and `alignBlockRight` options, that is,\n * those that breaks the text around the image.\n */\nexport const DEFAULT_DROPDOWN_DEFINITIONS = [{\n name: 'imageStyle:wrapText',\n title: 'Wrap text',\n defaultItem: 'imageStyle:alignLeft',\n items: ['imageStyle:alignLeft', 'imageStyle:alignRight']\n }, {\n name: 'imageStyle:breakText',\n title: 'Break text',\n defaultItem: 'imageStyle:block',\n items: ['imageStyle:alignBlockLeft', 'imageStyle:block', 'imageStyle:alignBlockRight']\n }];\n/**\n * Returns a list of the normalized and validated image style options.\n *\n * @param config\n * @param config.isInlinePluginLoaded\n * Determines whether the {@link module:image/image/imageblockediting~ImageBlockEditing `ImageBlockEditing`} plugin has been loaded.\n * @param config.isBlockPluginLoaded\n * Determines whether the {@link module:image/image/imageinlineediting~ImageInlineEditing `ImageInlineEditing`} plugin has been loaded.\n * @param config.configuredStyles\n * The image styles configuration provided in the image styles {@link module:image/imageconfig~ImageConfig#styles configuration}\n * as a default or custom value.\n * @returns\n * * Each of options contains a complete icon markup.\n * * The image style options not supported by any of the loaded plugins are filtered out.\n */\nfunction normalizeStyles(config) {\n const configuredStyles = config.configuredStyles.options || [];\n const styles = configuredStyles\n .map(arrangement => normalizeDefinition(arrangement))\n .filter(arrangement => isValidOption(arrangement, config));\n return styles;\n}\n/**\n * Returns the default image styles configuration depending on the loaded image editing plugins.\n *\n * @param isInlinePluginLoaded\n * Determines whether the {@link module:image/image/imageblockediting~ImageBlockEditing `ImageBlockEditing`} plugin has been loaded.\n *\n * @param isBlockPluginLoaded\n * Determines whether the {@link module:image/image/imageinlineediting~ImageInlineEditing `ImageInlineEditing`} plugin has been loaded.\n *\n * @returns\n * It returns an object with the lists of the image style options and groups defined as strings related to the\n * {@link module:image/imagestyle/utils#DEFAULT_OPTIONS default options}\n */\nfunction getDefaultStylesConfiguration(isBlockPluginLoaded, isInlinePluginLoaded) {\n if (isBlockPluginLoaded && isInlinePluginLoaded) {\n return {\n options: [\n 'inline', 'alignLeft', 'alignRight',\n 'alignCenter', 'alignBlockLeft', 'alignBlockRight',\n 'block', 'side'\n ]\n };\n }\n else if (isBlockPluginLoaded) {\n return {\n options: ['block', 'side']\n };\n }\n else if (isInlinePluginLoaded) {\n return {\n options: ['inline', 'alignLeft', 'alignRight']\n };\n }\n return {};\n}\n/**\n * Returns a list of the available predefined drop-downs' definitions depending on the loaded image editing plugins.\n */\nfunction getDefaultDropdownDefinitions(pluginCollection) {\n if (pluginCollection.has('ImageBlockEditing') && pluginCollection.has('ImageInlineEditing')) {\n return [...DEFAULT_DROPDOWN_DEFINITIONS];\n }\n else {\n return [];\n }\n}\n/**\n * Normalizes an image style option or group provided in the {@link module:image/imageconfig~ImageConfig#styles}\n * and returns it in a {@link module:image/imageconfig~ImageStyleOptionDefinition}/\n */\nfunction normalizeDefinition(definition) {\n if (typeof definition === 'string') {\n // Just the name of the style has been passed, but none of the defaults.\n if (!DEFAULT_OPTIONS[definition]) {\n // Normalize the style anyway to prevent errors.\n definition = { name: definition };\n }\n // Just the name of the style has been passed and it's one of the defaults, just use it.\n // Clone the style to avoid overriding defaults.\n else {\n definition = { ...DEFAULT_OPTIONS[definition] };\n }\n }\n else {\n // If an object style has been passed and if the name matches one of the defaults,\n // extend it with defaults – the user wants to customize a default style.\n // Note: Don't override the user–defined style object, clone it instead.\n definition = extendStyle(DEFAULT_OPTIONS[definition.name], definition);\n }\n // If an icon is defined as a string and correspond with a name\n // in default icons, use the default icon provided by the plugin.\n if (typeof definition.icon === 'string') {\n definition.icon = DEFAULT_ICONS[definition.icon] || definition.icon;\n }\n return definition;\n}\n/**\n * Checks if the image style option is valid:\n * * if it has the modelElements fields defined and filled,\n * * if the defined modelElements are supported by any of the loaded image editing plugins.\n * It also displays a console warning these conditions are not met.\n *\n * @param option image style option\n */\nfunction isValidOption(option, { isBlockPluginLoaded, isInlinePluginLoaded }) {\n const { modelElements, name } = option;\n if (!modelElements || !modelElements.length || !name) {\n warnInvalidStyle({ style: option });\n return false;\n }\n else {\n const supportedElements = [isBlockPluginLoaded ? 'imageBlock' : null, isInlinePluginLoaded ? 'imageInline' : null];\n // Check if the option is supported by any of the loaded plugins.\n if (!modelElements.some(elementName => supportedElements.includes(elementName))) {\n /**\n * In order to work correctly, each image style {@link module:image/imageconfig~ImageStyleOptionDefinition option}\n * requires specific model elements (also: types of images) to be supported by the editor.\n *\n * Model element names to which the image style option can be applied are defined in the\n * {@link module:image/imageconfig~ImageStyleOptionDefinition#modelElements} property of the style option\n * definition.\n *\n * Explore the warning in the console to find out precisely which option is not supported and which editor plugins\n * are missing. Make sure these plugins are loaded in your editor to get this image style option working.\n *\n * @error image-style-missing-dependency\n * @param {String} [option] The name of the unsupported option.\n * @param {String} [missingPlugins] The names of the plugins one of which has to be loaded for the particular option.\n */\n logWarning('image-style-missing-dependency', {\n style: option,\n missingPlugins: modelElements.map(name => name === 'imageBlock' ? 'ImageBlockEditing' : 'ImageInlineEditing')\n });\n return false;\n }\n }\n return true;\n}\n/**\n * Extends the default style with a style provided by the developer.\n * Note: Don't override the custom–defined style object, clone it instead.\n */\nfunction extendStyle(source, style) {\n const extendedStyle = { ...style };\n for (const prop in source) {\n if (!Object.prototype.hasOwnProperty.call(style, prop)) {\n extendedStyle[prop] = source[prop];\n }\n }\n return extendedStyle;\n}\n/**\n * Displays a console warning with the 'image-style-configuration-definition-invalid' error.\n */\nfunction warnInvalidStyle(info) {\n /**\n * The image style definition provided in the configuration is invalid.\n *\n * Please make sure the definition implements properly one of the following:\n *\n * * {@link module:image/imageconfig~ImageStyleOptionDefinition image style option definition},\n * * {@link module:image/imageconfig~ImageStyleDropdownDefinition image style dropdown definition}\n *\n * @error image-style-configuration-definition-invalid\n * @param {String} [dropdown] The name of the invalid drop-down\n * @param {String} [style] The name of the invalid image style option\n */\n logWarning('image-style-configuration-definition-invalid', info);\n}\nexport default {\n normalizeStyles,\n getDefaultStylesConfiguration,\n getDefaultDropdownDefinitions,\n warnInvalidStyle,\n DEFAULT_OPTIONS,\n DEFAULT_ICONS,\n DEFAULT_DROPDOWN_DEFINITIONS\n};\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { first } from 'ckeditor5/src/utils';\n/**\n * @module image/imagestyle/converters\n */\n/**\n * Returns a converter for the `imageStyle` attribute. It can be used for adding, changing and removing the attribute.\n *\n * @param styles An array containing available image style options.\n * @returns A model-to-view attribute converter.\n */\nexport function modelToViewStyleAttribute(styles) {\n return (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n // Check if there is class name associated with given value.\n const newStyle = getStyleDefinitionByName(data.attributeNewValue, styles);\n const oldStyle = getStyleDefinitionByName(data.attributeOldValue, styles);\n const viewElement = conversionApi.mapper.toViewElement(data.item);\n const viewWriter = conversionApi.writer;\n if (oldStyle) {\n viewWriter.removeClass(oldStyle.className, viewElement);\n }\n if (newStyle) {\n viewWriter.addClass(newStyle.className, viewElement);\n }\n };\n}\n/**\n * Returns a view-to-model converter converting image CSS classes to a proper value in the model.\n *\n * @param styles Image style options for which the converter is created.\n * @returns A view-to-model converter.\n */\nexport function viewToModelStyleAttribute(styles) {\n // Convert only non–default styles.\n const nonDefaultStyles = {\n imageInline: styles.filter(style => !style.isDefault && style.modelElements.includes('imageInline')),\n imageBlock: styles.filter(style => !style.isDefault && style.modelElements.includes('imageBlock'))\n };\n return (evt, data, conversionApi) => {\n if (!data.modelRange) {\n return;\n }\n const viewElement = data.viewItem;\n const modelImageElement = first(data.modelRange.getItems());\n // Run this converter only if an image has been found in the model.\n // In some cases it may not be found (for example if we run this on a figure with different type than image).\n if (!modelImageElement) {\n return;\n }\n // ...and the `imageStyle` attribute is allowed for that element, otherwise stop conversion early.\n if (!conversionApi.schema.checkAttribute(modelImageElement, 'imageStyle')) {\n return;\n }\n // Convert styles one by one.\n for (const style of nonDefaultStyles[modelImageElement.name]) {\n // Try to consume class corresponding with the style.\n if (conversionApi.consumable.consume(viewElement, { classes: style.className })) {\n // And convert this style to model attribute.\n conversionApi.writer.setAttribute('imageStyle', style.name, modelImageElement);\n }\n }\n };\n}\n/**\n * Returns the style with a given `name` from an array of styles.\n */\nfunction getStyleDefinitionByName(name, styles) {\n for (const style of styles) {\n if (style.name === name) {\n return style;\n }\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagestyle/imagestyleediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport ImageStyleCommand from './imagestylecommand';\nimport ImageUtils from '../imageutils';\nimport utils from './utils';\nimport { viewToModelStyleAttribute, modelToViewStyleAttribute } from './converters';\n/**\n * The image style engine plugin. It sets the default configuration, creates converters and registers\n * {@link module:image/imagestyle/imagestylecommand~ImageStyleCommand ImageStyleCommand}.\n */\nexport default class ImageStyleEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageStyleEditing';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageUtils];\n }\n /**\n * @inheritDoc\n */\n init() {\n const { normalizeStyles, getDefaultStylesConfiguration } = utils;\n const editor = this.editor;\n const isBlockPluginLoaded = editor.plugins.has('ImageBlockEditing');\n const isInlinePluginLoaded = editor.plugins.has('ImageInlineEditing');\n editor.config.define('image.styles', getDefaultStylesConfiguration(isBlockPluginLoaded, isInlinePluginLoaded));\n this.normalizedStyles = normalizeStyles({\n configuredStyles: editor.config.get('image.styles'),\n isBlockPluginLoaded,\n isInlinePluginLoaded\n });\n this._setupConversion(isBlockPluginLoaded, isInlinePluginLoaded);\n this._setupPostFixer();\n // Register imageStyle command.\n editor.commands.add('imageStyle', new ImageStyleCommand(editor, this.normalizedStyles));\n }\n /**\n * Sets the editor conversion taking the presence of\n * {@link module:image/image/imageinlineediting~ImageInlineEditing `ImageInlineEditing`}\n * and {@link module:image/image/imageblockediting~ImageBlockEditing `ImageBlockEditing`} plugins into consideration.\n */\n _setupConversion(isBlockPluginLoaded, isInlinePluginLoaded) {\n const editor = this.editor;\n const schema = editor.model.schema;\n const modelToViewConverter = modelToViewStyleAttribute(this.normalizedStyles);\n const viewToModelConverter = viewToModelStyleAttribute(this.normalizedStyles);\n editor.editing.downcastDispatcher.on('attribute:imageStyle', modelToViewConverter);\n editor.data.downcastDispatcher.on('attribute:imageStyle', modelToViewConverter);\n // Allow imageStyle attribute in image and imageInline.\n // We could call it 'style' but https://github.com/ckeditor/ckeditor5-engine/issues/559.\n if (isBlockPluginLoaded) {\n schema.extend('imageBlock', { allowAttributes: 'imageStyle' });\n // Converter for figure element from view to model.\n editor.data.upcastDispatcher.on('element:figure', viewToModelConverter, { priority: 'low' });\n }\n if (isInlinePluginLoaded) {\n schema.extend('imageInline', { allowAttributes: 'imageStyle' });\n // Converter for the img element from view to model.\n editor.data.upcastDispatcher.on('element:img', viewToModelConverter, { priority: 'low' });\n }\n }\n /**\n * Registers a post-fixer that will make sure that the style attribute value is correct for a specific image type (block vs inline).\n */\n _setupPostFixer() {\n const editor = this.editor;\n const document = editor.model.document;\n const imageUtils = editor.plugins.get(ImageUtils);\n const stylesMap = new Map(this.normalizedStyles.map(style => [style.name, style]));\n // Make sure that style attribute is valid for the image type.\n document.registerPostFixer(writer => {\n let changed = false;\n for (const change of document.differ.getChanges()) {\n if (change.type == 'insert' || change.type == 'attribute' && change.attributeKey == 'imageStyle') {\n let element = change.type == 'insert' ? change.position.nodeAfter : change.range.start.nodeAfter;\n if (element && element.is('element', 'paragraph') && element.childCount > 0) {\n element = element.getChild(0);\n }\n if (!imageUtils.isImage(element)) {\n continue;\n }\n const imageStyle = element.getAttribute('imageStyle');\n if (!imageStyle) {\n continue;\n }\n const imageStyleDefinition = stylesMap.get(imageStyle);\n if (!imageStyleDefinition || !imageStyleDefinition.modelElements.includes(element.name)) {\n writer.removeAttribute('imageStyle', element);\n changed = true;\n }\n }\n }\n return changed;\n });\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./imagestyle.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagestyle/imagestyleui\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { ButtonView, createDropdown, addToolbarToDropdown, SplitButtonView } from 'ckeditor5/src/ui';\nimport { isObject, identity } from 'lodash-es';\nimport ImageStyleEditing from './imagestyleediting';\nimport utils from './utils';\nimport '../../theme/imagestyle.css';\n/**\n * The image style UI plugin.\n *\n * It registers buttons corresponding to the {@link module:image/imageconfig~ImageConfig#styles} configuration.\n * It also registers the {@link module:image/imagestyle/utils#DEFAULT_DROPDOWN_DEFINITIONS default drop-downs} and the\n * custom drop-downs defined by the developer in the {@link module:image/imageconfig~ImageConfig#toolbar} configuration.\n */\nexport default class ImageStyleUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ImageStyleEditing];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'ImageStyleUI';\n }\n /**\n * Returns the default localized style titles provided by the plugin.\n *\n * The following localized titles corresponding with\n * {@link module:image/imagestyle/utils#DEFAULT_OPTIONS} are available:\n *\n * * `'Wrap text'`,\n * * `'Break text'`,\n * * `'In line'`,\n * * `'Full size image'`,\n * * `'Side image'`,\n * * `'Left aligned image'`,\n * * `'Centered image'`,\n * * `'Right aligned image'`\n */\n get localizedDefaultStylesTitles() {\n const t = this.editor.t;\n return {\n 'Wrap text': t('Wrap text'),\n 'Break text': t('Break text'),\n 'In line': t('In line'),\n 'Full size image': t('Full size image'),\n 'Side image': t('Side image'),\n 'Left aligned image': t('Left aligned image'),\n 'Centered image': t('Centered image'),\n 'Right aligned image': t('Right aligned image')\n };\n }\n /**\n * @inheritDoc\n */\n init() {\n const plugins = this.editor.plugins;\n const toolbarConfig = this.editor.config.get('image.toolbar') || [];\n const imageStyleEditing = plugins.get('ImageStyleEditing');\n const definedStyles = translateStyles(imageStyleEditing.normalizedStyles, this.localizedDefaultStylesTitles);\n for (const styleConfig of definedStyles) {\n this._createButton(styleConfig);\n }\n const definedDropdowns = translateStyles([\n ...toolbarConfig.filter(isObject),\n ...utils.getDefaultDropdownDefinitions(plugins)\n ], this.localizedDefaultStylesTitles);\n for (const dropdownConfig of definedDropdowns) {\n this._createDropdown(dropdownConfig, definedStyles);\n }\n }\n /**\n * Creates a dropdown and stores it in the editor {@link module:ui/componentfactory~ComponentFactory}.\n */\n _createDropdown(dropdownConfig, definedStyles) {\n const factory = this.editor.ui.componentFactory;\n factory.add(dropdownConfig.name, locale => {\n let defaultButton;\n const { defaultItem, items, title } = dropdownConfig;\n const buttonViews = items\n .filter(itemName => definedStyles.find(({ name }) => getUIComponentName(name) === itemName))\n .map(buttonName => {\n const button = factory.create(buttonName);\n if (buttonName === defaultItem) {\n defaultButton = button;\n }\n return button;\n });\n if (items.length !== buttonViews.length) {\n utils.warnInvalidStyle({ dropdown: dropdownConfig });\n }\n const dropdownView = createDropdown(locale, SplitButtonView);\n const splitButtonView = dropdownView.buttonView;\n const splitButtonViewArrow = splitButtonView.arrowView;\n addToolbarToDropdown(dropdownView, buttonViews, { enableActiveItemFocusOnDropdownOpen: true });\n splitButtonView.set({\n label: getDropdownButtonTitle(title, defaultButton.label),\n class: null,\n tooltip: true\n });\n splitButtonViewArrow.unbind('label');\n splitButtonViewArrow.set({\n label: title\n });\n splitButtonView.bind('icon').toMany(buttonViews, 'isOn', (...areOn) => {\n const index = areOn.findIndex(identity);\n return (index < 0) ? defaultButton.icon : buttonViews[index].icon;\n });\n splitButtonView.bind('label').toMany(buttonViews, 'isOn', (...areOn) => {\n const index = areOn.findIndex(identity);\n return getDropdownButtonTitle(title, (index < 0) ? defaultButton.label : buttonViews[index].label);\n });\n splitButtonView.bind('isOn').toMany(buttonViews, 'isOn', (...areOn) => areOn.some(identity));\n splitButtonView.bind('class')\n .toMany(buttonViews, 'isOn', (...areOn) => areOn.some(identity) ? 'ck-splitbutton_flatten' : undefined);\n splitButtonView.on('execute', () => {\n if (!buttonViews.some(({ isOn }) => isOn)) {\n defaultButton.fire('execute');\n }\n else {\n dropdownView.isOpen = !dropdownView.isOpen;\n }\n });\n dropdownView.bind('isEnabled')\n .toMany(buttonViews, 'isEnabled', (...areEnabled) => areEnabled.some(identity));\n // Focus the editable after executing the command.\n // Overrides a default behaviour where the focus is moved to the dropdown button (#12125).\n this.listenTo(dropdownView, 'execute', () => {\n this.editor.editing.view.focus();\n });\n return dropdownView;\n });\n }\n /**\n * Creates a button and stores it in the editor {@link module:ui/componentfactory~ComponentFactory}.\n */\n _createButton(buttonConfig) {\n const buttonName = buttonConfig.name;\n this.editor.ui.componentFactory.add(getUIComponentName(buttonName), locale => {\n const command = this.editor.commands.get('imageStyle');\n const view = new ButtonView(locale);\n view.set({\n label: buttonConfig.title,\n icon: buttonConfig.icon,\n tooltip: true,\n isToggleable: true\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n view.bind('isOn').to(command, 'value', value => value === buttonName);\n view.on('execute', this._executeCommand.bind(this, buttonName));\n return view;\n });\n }\n _executeCommand(name) {\n this.editor.execute('imageStyle', { value: name });\n this.editor.editing.view.focus();\n }\n}\n/**\n * Returns the translated `title` from the passed styles array.\n */\nfunction translateStyles(styles, titles) {\n for (const style of styles) {\n // Localize the titles of the styles, if a title corresponds with\n // a localized default provided by the plugin.\n if (titles[style.title]) {\n style.title = titles[style.title];\n }\n }\n return styles;\n}\n/**\n * Returns the image style component name with the \"imageStyle:\" prefix.\n */\nfunction getUIComponentName(name) {\n return `imageStyle:${name}`;\n}\n/**\n * Returns title for the splitbutton containing the dropdown title and default action item title.\n */\nfunction getDropdownButtonTitle(dropdownTitle, buttonTitle) {\n return (dropdownTitle ? dropdownTitle + ': ' : '') + buttonTitle;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module indent/indentediting\n */\nimport { Plugin, MultiCommand } from 'ckeditor5/src/core';\n/**\n * The indent editing feature.\n *\n * This plugin registers the `'indent'` and `'outdent'` commands.\n *\n * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in the\n * {@link module:indent/indent~Indent indent feature} API documentation.\n */\nexport default class IndentEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'IndentEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n editor.commands.add('indent', new MultiCommand(editor));\n editor.commands.add('outdent', new MultiCommand(editor));\n }\n}\n","export default \"\";","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module indent/indentui\n */\nimport { ButtonView } from 'ckeditor5/src/ui';\nimport { Plugin } from 'ckeditor5/src/core';\nimport indentIcon from '../theme/icons/indent.svg';\nimport outdentIcon from '../theme/icons/outdent.svg';\n/**\n * The indent UI feature.\n *\n * This plugin registers the `'indent'` and `'outdent'` buttons.\n *\n * **Note**: In order for the commands to work, at least one of the compatible features is required. Read more in\n * the {@link module:indent/indent~Indent indent feature} API documentation.\n */\nexport default class IndentUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'IndentUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const locale = editor.locale;\n const t = editor.t;\n const localizedIndentIcon = locale.uiLanguageDirection == 'ltr' ? indentIcon : outdentIcon;\n const localizedOutdentIcon = locale.uiLanguageDirection == 'ltr' ? outdentIcon : indentIcon;\n this._defineButton('indent', t('Increase indent'), localizedIndentIcon);\n this._defineButton('outdent', t('Decrease indent'), localizedOutdentIcon);\n }\n /**\n * Defines a UI button.\n */\n _defineButton(commandName, label, icon) {\n const editor = this.editor;\n editor.ui.componentFactory.add(commandName, locale => {\n const command = editor.commands.get(commandName);\n const view = new ButtonView(locale);\n view.set({\n label,\n icon,\n tooltip: true\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n this.listenTo(view, 'execute', () => {\n editor.execute(commandName);\n editor.editing.view.focus();\n });\n return view;\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module indent/indentblockcommand\n */\nimport { Command } from 'ckeditor5/src/core';\nimport { first } from 'ckeditor5/src/utils';\n/**\n * The indent block command.\n *\n * The command is registered by the {@link module:indent/indentblock~IndentBlock} as `'indentBlock'` for indenting blocks and\n * `'outdentBlock'` for outdenting blocks.\n *\n * To increase block indentation at the current selection, execute the command:\n *\n * ```ts\n * editor.execute( 'indentBlock' );\n * ```\n *\n * To decrease block indentation at the current selection, execute the command:\n *\n * ```ts\n * editor.execute( 'outdentBlock' );\n * ```\n */\nexport default class IndentBlockCommand extends Command {\n /**\n * Creates an instance of the command.\n */\n constructor(editor, indentBehavior) {\n super(editor);\n this._indentBehavior = indentBehavior;\n }\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n const model = editor.model;\n const block = first(model.document.selection.getSelectedBlocks());\n if (!block || !this._isIndentationChangeAllowed(block)) {\n this.isEnabled = false;\n return;\n }\n this.isEnabled = this._indentBehavior.checkEnabled(block.getAttribute('blockIndent'));\n }\n /**\n * @inheritDoc\n */\n execute() {\n const model = this.editor.model;\n const blocksToChange = this._getBlocksToChange();\n model.change(writer => {\n for (const block of blocksToChange) {\n const currentIndent = block.getAttribute('blockIndent');\n const nextIndent = this._indentBehavior.getNextIndent(currentIndent);\n if (nextIndent) {\n writer.setAttribute('blockIndent', nextIndent, block);\n }\n else {\n writer.removeAttribute('blockIndent', block);\n }\n }\n });\n }\n /**\n * Returns blocks from selection that should have blockIndent selection set.\n */\n _getBlocksToChange() {\n const model = this.editor.model;\n const selection = model.document.selection;\n const blocksInSelection = Array.from(selection.getSelectedBlocks());\n return blocksInSelection.filter(block => this._isIndentationChangeAllowed(block));\n }\n /**\n * Returns false if indentation cannot be applied, i.e.:\n * - for blocks disallowed by schema declaration\n * - for blocks in Document Lists (disallowed forward indentation only). See https://github.com/ckeditor/ckeditor5/issues/14155.\n * Otherwise returns true.\n */\n _isIndentationChangeAllowed(element) {\n const editor = this.editor;\n if (!editor.model.schema.checkAttribute(element, 'blockIndent')) {\n return false;\n }\n if (!editor.plugins.has('DocumentListUtils')) {\n return true;\n }\n // Only forward indentation is disallowed in list items. This allows the user to outdent blocks that are already indented.\n if (!this._indentBehavior.isForward) {\n return true;\n }\n const documentListUtils = editor.plugins.get('DocumentListUtils');\n return !documentListUtils.isListItemBlock(element);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * The block indentation behavior that uses offsets to set indentation.\n */\nexport default class IndentUsingOffset {\n /**\n * Creates an instance of the indentation behavior.\n *\n * @param config.direction The direction of indentation.\n * @param config.offset The offset of the next indentation step.\n * @param config.unit Indentation unit.\n */\n constructor(config) {\n this.isForward = config.direction === 'forward';\n this.offset = config.offset;\n this.unit = config.unit;\n }\n /**\n * @inheritDoc\n */\n checkEnabled(indentAttributeValue) {\n const currentOffset = parseFloat(indentAttributeValue || '0');\n // The command is always enabled for forward indentation.\n return this.isForward || currentOffset > 0;\n }\n /**\n * @inheritDoc\n */\n getNextIndent(indentAttributeValue) {\n const currentOffset = parseFloat(indentAttributeValue || '0');\n const isSameUnit = !indentAttributeValue || indentAttributeValue.endsWith(this.unit);\n if (!isSameUnit) {\n return this.isForward ? this.offset + this.unit : undefined;\n }\n const nextOffset = this.isForward ? this.offset : -this.offset;\n const offsetToSet = currentOffset + nextOffset;\n return offsetToSet > 0 ? offsetToSet + this.unit : undefined;\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * The block indentation behavior that uses classes to set indentation.\n */\nexport default class IndentUsingClasses {\n /**\n * Creates an instance of the indentation behavior.\n *\n * @param config.direction The direction of indentation.\n * @param config.classes A list of classes used for indentation.\n */\n constructor(config) {\n this.isForward = config.direction === 'forward';\n this.classes = config.classes;\n }\n /**\n * @inheritDoc\n */\n checkEnabled(indentAttributeValue) {\n const currentIndex = this.classes.indexOf(indentAttributeValue);\n if (this.isForward) {\n return currentIndex < this.classes.length - 1;\n }\n else {\n return currentIndex >= 0;\n }\n }\n /**\n * @inheritDoc\n */\n getNextIndent(indentAttributeValue) {\n const currentIndex = this.classes.indexOf(indentAttributeValue);\n const indexStep = this.isForward ? 1 : -1;\n return this.classes[currentIndex + indexStep];\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module indent/indentblock\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { addMarginRules } from 'ckeditor5/src/engine';\nimport IndentBlockCommand from './indentblockcommand';\nimport IndentUsingOffset from './indentcommandbehavior/indentusingoffset';\nimport IndentUsingClasses from './indentcommandbehavior/indentusingclasses';\nconst DEFAULT_ELEMENTS = ['paragraph', 'heading1', 'heading2', 'heading3', 'heading4', 'heading5', 'heading6'];\n/**\n * The block indentation feature.\n *\n * It registers the `'indentBlock'` and `'outdentBlock'` commands.\n *\n * If the plugin {@link module:indent/indent~Indent} is defined, it also attaches the `'indentBlock'` and `'outdentBlock'` commands to\n * the `'indent'` and `'outdent'` commands.\n */\nexport default class IndentBlock extends Plugin {\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n editor.config.define('indentBlock', {\n offset: 40,\n unit: 'px'\n });\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'IndentBlock';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const configuration = editor.config.get('indentBlock');\n if (configuration.classes && configuration.classes.length) {\n this._setupConversionUsingClasses(configuration.classes);\n editor.commands.add('indentBlock', new IndentBlockCommand(editor, new IndentUsingClasses({\n direction: 'forward',\n classes: configuration.classes\n })));\n editor.commands.add('outdentBlock', new IndentBlockCommand(editor, new IndentUsingClasses({\n direction: 'backward',\n classes: configuration.classes\n })));\n }\n else {\n editor.data.addStyleProcessorRules(addMarginRules);\n this._setupConversionUsingOffset();\n editor.commands.add('indentBlock', new IndentBlockCommand(editor, new IndentUsingOffset({\n direction: 'forward',\n offset: configuration.offset,\n unit: configuration.unit\n })));\n editor.commands.add('outdentBlock', new IndentBlockCommand(editor, new IndentUsingOffset({\n direction: 'backward',\n offset: configuration.offset,\n unit: configuration.unit\n })));\n }\n }\n /**\n * @inheritDoc\n */\n afterInit() {\n const editor = this.editor;\n const schema = editor.model.schema;\n const indentCommand = editor.commands.get('indent');\n const outdentCommand = editor.commands.get('outdent');\n // Enable block indentation to heading configuration options. If it is not defined enable in paragraph and default headings.\n const options = editor.config.get('heading.options');\n const configuredElements = options && options.map(option => option.model);\n const knownElements = configuredElements || DEFAULT_ELEMENTS;\n knownElements.forEach(elementName => {\n if (schema.isRegistered(elementName)) {\n schema.extend(elementName, { allowAttributes: 'blockIndent' });\n }\n });\n schema.setAttributeProperties('blockIndent', { isFormatting: true });\n indentCommand.registerChildCommand(editor.commands.get('indentBlock'));\n outdentCommand.registerChildCommand(editor.commands.get('outdentBlock'));\n }\n /**\n * Setups conversion for using offset indents.\n */\n _setupConversionUsingOffset() {\n const conversion = this.editor.conversion;\n const locale = this.editor.locale;\n const marginProperty = locale.contentLanguageDirection === 'rtl' ? 'margin-right' : 'margin-left';\n conversion.for('upcast').attributeToAttribute({\n view: {\n styles: {\n [marginProperty]: /[\\s\\S]+/\n }\n },\n model: {\n key: 'blockIndent',\n value: (viewElement) => {\n // Do not indent block elements in Document Lists. See https://github.com/ckeditor/ckeditor5/issues/12466.\n if (!viewElement.is('element', 'li')) {\n return viewElement.getStyle(marginProperty);\n }\n }\n }\n });\n conversion.for('downcast').attributeToAttribute({\n model: 'blockIndent',\n view: modelAttributeValue => {\n return {\n key: 'style',\n value: {\n [marginProperty]: modelAttributeValue\n }\n };\n }\n });\n }\n /**\n * Setups conversion for using classes.\n */\n _setupConversionUsingClasses(classes) {\n const definition = {\n model: {\n key: 'blockIndent',\n values: []\n },\n view: {}\n };\n for (const className of classes) {\n definition.model.values.push(className);\n definition.view[className] = {\n key: 'class',\n value: [className]\n };\n }\n this.editor.conversion.attributeToAttribute(definition);\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module link/utils/automaticdecorators\n */\nimport { toMap } from 'ckeditor5/src/utils';\n/**\n * Helper class that ties together all {@link module:link/linkconfig~LinkDecoratorAutomaticDefinition} and provides\n * the {@link module:engine/conversion/downcasthelpers~DowncastHelpers#attributeToElement downcast dispatchers} for them.\n */\nexport default class AutomaticDecorators {\n constructor() {\n /**\n * Stores the definition of {@link module:link/linkconfig~LinkDecoratorAutomaticDefinition automatic decorators}.\n * This data is used as a source for a downcast dispatcher to create a proper conversion to output data.\n */\n this._definitions = new Set();\n }\n /**\n * Gives information about the number of decorators stored in the {@link module:link/utils/automaticdecorators~AutomaticDecorators}\n * instance.\n */\n get length() {\n return this._definitions.size;\n }\n /**\n * Adds automatic decorator objects or an array with them to be used during downcasting.\n *\n * @param item A configuration object of automatic rules for decorating links. It might also be an array of such objects.\n */\n add(item) {\n if (Array.isArray(item)) {\n item.forEach(item => this._definitions.add(item));\n }\n else {\n this._definitions.add(item);\n }\n }\n /**\n * Provides the conversion helper used in the {@link module:engine/conversion/downcasthelpers~DowncastHelpers#add} method.\n *\n * @returns A dispatcher function used as conversion helper in {@link module:engine/conversion/downcasthelpers~DowncastHelpers#add}.\n */\n getDispatcher() {\n return dispatcher => {\n dispatcher.on('attribute:linkHref', (evt, data, conversionApi) => {\n // There is only test as this behavior decorates links and\n // it is run before dispatcher which actually consumes this node.\n // This allows on writing own dispatcher with highest priority,\n // which blocks both native converter and this additional decoration.\n if (!conversionApi.consumable.test(data.item, 'attribute:linkHref')) {\n return;\n }\n // Automatic decorators for block links are handled e.g. in LinkImageEditing.\n if (!(data.item.is('selection') || conversionApi.schema.isInline(data.item))) {\n return;\n }\n const viewWriter = conversionApi.writer;\n const viewSelection = viewWriter.document.selection;\n for (const item of this._definitions) {\n const viewElement = viewWriter.createAttributeElement('a', item.attributes, {\n priority: 5\n });\n if (item.classes) {\n viewWriter.addClass(item.classes, viewElement);\n }\n for (const key in item.styles) {\n viewWriter.setStyle(key, item.styles[key], viewElement);\n }\n viewWriter.setCustomProperty('link', true, viewElement);\n if (item.callback(data.attributeNewValue)) {\n if (data.item.is('selection')) {\n viewWriter.wrap(viewSelection.getFirstRange(), viewElement);\n }\n else {\n viewWriter.wrap(conversionApi.mapper.toViewRange(data.range), viewElement);\n }\n }\n else {\n viewWriter.unwrap(conversionApi.mapper.toViewRange(data.range), viewElement);\n }\n }\n }, { priority: 'high' });\n };\n }\n /**\n * Provides the conversion helper used in the {@link module:engine/conversion/downcasthelpers~DowncastHelpers#add} method\n * when linking images.\n *\n * @returns A dispatcher function used as conversion helper in {@link module:engine/conversion/downcasthelpers~DowncastHelpers#add}.\n */\n getDispatcherForLinkedImage() {\n return dispatcher => {\n dispatcher.on('attribute:linkHref:imageBlock', (evt, data, { writer, mapper }) => {\n const viewFigure = mapper.toViewElement(data.item);\n const linkInImage = Array.from(viewFigure.getChildren())\n .find((child) => child.is('element', 'a'));\n for (const item of this._definitions) {\n const attributes = toMap(item.attributes);\n if (item.callback(data.attributeNewValue)) {\n for (const [key, val] of attributes) {\n // Left for backward compatibility. Since v30 decorator should\n // accept `classes` and `styles` separately from `attributes`.\n if (key === 'class') {\n writer.addClass(val, linkInImage);\n }\n else {\n writer.setAttribute(key, val, linkInImage);\n }\n }\n if (item.classes) {\n writer.addClass(item.classes, linkInImage);\n }\n for (const key in item.styles) {\n writer.setStyle(key, item.styles[key], linkInImage);\n }\n }\n else {\n for (const [key, val] of attributes) {\n if (key === 'class') {\n writer.removeClass(val, linkInImage);\n }\n else {\n writer.removeAttribute(key, linkInImage);\n }\n }\n if (item.classes) {\n writer.removeClass(item.classes, linkInImage);\n }\n for (const key in item.styles) {\n writer.removeStyle(key, linkInImage);\n }\n }\n }\n });\n };\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { upperFirst } from 'lodash-es';\nconst ATTRIBUTE_WHITESPACES = /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205f\\u3000]/g; // eslint-disable-line no-control-regex\nconst SAFE_URL = /^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i;\n// Simplified email test - should be run over previously found URL.\nconst EMAIL_REG_EXP = /^[\\S]+@((?![-_])(?:[-\\w\\u00a1-\\uffff]{0,63}[^-_]\\.))+(?:[a-z\\u00a1-\\uffff]{2,})$/i;\n// The regex checks for the protocol syntax ('xxxx://' or 'xxxx:')\n// or non-word characters at the beginning of the link ('/', '#' etc.).\nconst PROTOCOL_REG_EXP = /^((\\w+:(\\/{2,})?)|(\\W))/i;\n/**\n * A keystroke used by the {@link module:link/linkui~LinkUI link UI feature}.\n */\nexport const LINK_KEYSTROKE = 'Ctrl+K';\n/**\n * Returns `true` if a given view node is the link element.\n */\nexport function isLinkElement(node) {\n return node.is('attributeElement') && !!node.getCustomProperty('link');\n}\n/**\n * Creates a link {@link module:engine/view/attributeelement~AttributeElement} with the provided `href` attribute.\n */\nexport function createLinkElement(href, { writer }) {\n // Priority 5 - https://github.com/ckeditor/ckeditor5-link/issues/121.\n const linkElement = writer.createAttributeElement('a', { href }, { priority: 5 });\n writer.setCustomProperty('link', true, linkElement);\n return linkElement;\n}\n/**\n * Returns a safe URL based on a given value.\n *\n * A URL is considered safe if it is safe for the user (does not contain any malicious code).\n *\n * If a URL is considered unsafe, a simple `\"#\"` is returned.\n *\n * @internal\n */\nexport function ensureSafeUrl(url) {\n const urlString = String(url);\n return isSafeUrl(urlString) ? urlString : '#';\n}\n/**\n * Checks whether the given URL is safe for the user (does not contain any malicious code).\n */\nfunction isSafeUrl(url) {\n const normalizedUrl = url.replace(ATTRIBUTE_WHITESPACES, '');\n return !!normalizedUrl.match(SAFE_URL);\n}\n/**\n * Returns the {@link module:link/linkconfig~LinkConfig#decorators `config.link.decorators`} configuration processed\n * to respect the locale of the editor, i.e. to display the {@link module:link/linkconfig~LinkDecoratorManualDefinition label}\n * in the correct language.\n *\n * **Note**: Only the few most commonly used labels are translated automatically. Other labels should be manually\n * translated in the {@link module:link/linkconfig~LinkConfig#decorators `config.link.decorators`} configuration.\n *\n * @param t Shorthand for {@link module:utils/locale~Locale#t Locale#t}.\n * @param decorators The decorator reference where the label values should be localized.\n */\nexport function getLocalizedDecorators(t, decorators) {\n const localizedDecoratorsLabels = {\n 'Open in a new tab': t('Open in a new tab'),\n 'Downloadable': t('Downloadable')\n };\n decorators.forEach(decorator => {\n if ('label' in decorator && localizedDecoratorsLabels[decorator.label]) {\n decorator.label = localizedDecoratorsLabels[decorator.label];\n }\n return decorator;\n });\n return decorators;\n}\n/**\n * Converts an object with defined decorators to a normalized array of decorators. The `id` key is added for each decorator and\n * is used as the attribute's name in the model.\n */\nexport function normalizeDecorators(decorators) {\n const retArray = [];\n if (decorators) {\n for (const [key, value] of Object.entries(decorators)) {\n const decorator = Object.assign({}, value, { id: `link${upperFirst(key)}` });\n retArray.push(decorator);\n }\n }\n return retArray;\n}\n/**\n * Returns `true` if the specified `element` can be linked (the element allows the `linkHref` attribute).\n */\nexport function isLinkableElement(element, schema) {\n if (!element) {\n return false;\n }\n return schema.checkAttribute(element.name, 'linkHref');\n}\n/**\n * Returns `true` if the specified `value` is an email.\n */\nexport function isEmail(value) {\n return EMAIL_REG_EXP.test(value);\n}\n/**\n * Adds the protocol prefix to the specified `link` when:\n *\n * * it does not contain it already, and there is a {@link module:link/linkconfig~LinkConfig#defaultProtocol `defaultProtocol` }\n * configuration value provided,\n * * or the link is an email address.\n */\nexport function addLinkProtocolIfApplicable(link, defaultProtocol) {\n const protocol = isEmail(link) ? 'mailto:' : defaultProtocol;\n const isProtocolNeeded = !!protocol && !linkHasProtocol(link);\n return link && isProtocolNeeded ? protocol + link : link;\n}\n/**\n * Checks if protocol is already included in the link.\n */\nexport function linkHasProtocol(link) {\n return PROTOCOL_REG_EXP.test(link);\n}\n/**\n * Opens the link in a new browser tab.\n */\nexport function openLink(link) {\n window.open(link, '_blank', 'noopener');\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module link/linkcommand\n */\nimport { Command } from 'ckeditor5/src/core';\nimport { findAttributeRange } from 'ckeditor5/src/typing';\nimport { Collection, first, toMap } from 'ckeditor5/src/utils';\nimport AutomaticDecorators from './utils/automaticdecorators';\nimport { isLinkableElement } from './utils';\n/**\n * The link command. It is used by the {@link module:link/link~Link link feature}.\n */\nexport default class LinkCommand extends Command {\n constructor() {\n super(...arguments);\n /**\n * A collection of {@link module:link/utils/manualdecorator~ManualDecorator manual decorators}\n * corresponding to the {@link module:link/linkconfig~LinkConfig#decorators decorator configuration}.\n *\n * You can consider it a model with states of manual decorators added to the currently selected link.\n */\n this.manualDecorators = new Collection();\n /**\n * An instance of the helper that ties together all {@link module:link/linkconfig~LinkDecoratorAutomaticDefinition}\n * that are used by the {@glink features/link link} and the {@glink features/images/images-linking linking images} features.\n */\n this.automaticDecorators = new AutomaticDecorators();\n }\n /**\n * Synchronizes the state of {@link #manualDecorators} with the currently present elements in the model.\n */\n restoreManualDecoratorStates() {\n for (const manualDecorator of this.manualDecorators) {\n manualDecorator.value = this._getDecoratorStateFromModel(manualDecorator.id);\n }\n }\n /**\n * @inheritDoc\n */\n refresh() {\n const model = this.editor.model;\n const selection = model.document.selection;\n const selectedElement = selection.getSelectedElement() || first(selection.getSelectedBlocks());\n // A check for any integration that allows linking elements (e.g. `LinkImage`).\n // Currently the selection reads attributes from text nodes only. See #7429 and #7465.\n if (isLinkableElement(selectedElement, model.schema)) {\n this.value = selectedElement.getAttribute('linkHref');\n this.isEnabled = model.schema.checkAttribute(selectedElement, 'linkHref');\n }\n else {\n this.value = selection.getAttribute('linkHref');\n this.isEnabled = model.schema.checkAttributeInSelection(selection, 'linkHref');\n }\n for (const manualDecorator of this.manualDecorators) {\n manualDecorator.value = this._getDecoratorStateFromModel(manualDecorator.id);\n }\n }\n /**\n * Executes the command.\n *\n * When the selection is non-collapsed, the `linkHref` attribute will be applied to nodes inside the selection, but only to\n * those nodes where the `linkHref` attribute is allowed (disallowed nodes will be omitted).\n *\n * When the selection is collapsed and is not inside the text with the `linkHref` attribute, a\n * new {@link module:engine/model/text~Text text node} with the `linkHref` attribute will be inserted in place of the caret, but\n * only if such element is allowed in this place. The `_data` of the inserted text will equal the `href` parameter.\n * The selection will be updated to wrap the just inserted text node.\n *\n * When the selection is collapsed and inside the text with the `linkHref` attribute, the attribute value will be updated.\n *\n * # Decorators and model attribute management\n *\n * There is an optional argument to this command that applies or removes model\n * {@glink framework/architecture/editing-engine#text-attributes text attributes} brought by\n * {@link module:link/utils/manualdecorator~ManualDecorator manual link decorators}.\n *\n * Text attribute names in the model correspond to the entries in the {@link module:link/linkconfig~LinkConfig#decorators\n * configuration}.\n * For every decorator configured, a model text attribute exists with the \"link\" prefix. For example, a `'linkMyDecorator'` attribute\n * corresponds to `'myDecorator'` in the configuration.\n *\n * To learn more about link decorators, check out the {@link module:link/linkconfig~LinkConfig#decorators `config.link.decorators`}\n * documentation.\n *\n * Here is how to manage decorator attributes with the link command:\n *\n * ```ts\n * const linkCommand = editor.commands.get( 'link' );\n *\n * // Adding a new decorator attribute.\n * linkCommand.execute( 'http://example.com', {\n * \tlinkIsExternal: true\n * } );\n *\n * // Removing a decorator attribute from the selection.\n * linkCommand.execute( 'http://example.com', {\n * \tlinkIsExternal: false\n * } );\n *\n * // Adding multiple decorator attributes at the same time.\n * linkCommand.execute( 'http://example.com', {\n * \tlinkIsExternal: true,\n * \tlinkIsDownloadable: true,\n * } );\n *\n * // Removing and adding decorator attributes at the same time.\n * linkCommand.execute( 'http://example.com', {\n * \tlinkIsExternal: false,\n * \tlinkFoo: true,\n * \tlinkIsDownloadable: false,\n * } );\n * ```\n *\n * **Note**: If the decorator attribute name is not specified, its state remains untouched.\n *\n * **Note**: {@link module:link/unlinkcommand~UnlinkCommand#execute `UnlinkCommand#execute()`} removes all\n * decorator attributes.\n *\n * @fires execute\n * @param href Link destination.\n * @param manualDecoratorIds The information about manual decorator attributes to be applied or removed upon execution.\n */\n execute(href, manualDecoratorIds = {}) {\n const model = this.editor.model;\n const selection = model.document.selection;\n // Stores information about manual decorators to turn them on/off when command is applied.\n const truthyManualDecorators = [];\n const falsyManualDecorators = [];\n for (const name in manualDecoratorIds) {\n if (manualDecoratorIds[name]) {\n truthyManualDecorators.push(name);\n }\n else {\n falsyManualDecorators.push(name);\n }\n }\n model.change(writer => {\n // If selection is collapsed then update selected link or insert new one at the place of caret.\n if (selection.isCollapsed) {\n const position = selection.getFirstPosition();\n // When selection is inside text with `linkHref` attribute.\n if (selection.hasAttribute('linkHref')) {\n const linkText = extractTextFromSelection(selection);\n // Then update `linkHref` value.\n let linkRange = findAttributeRange(position, 'linkHref', selection.getAttribute('linkHref'), model);\n if (selection.getAttribute('linkHref') === linkText) {\n linkRange = this._updateLinkContent(model, writer, linkRange, href);\n }\n writer.setAttribute('linkHref', href, linkRange);\n truthyManualDecorators.forEach(item => {\n writer.setAttribute(item, true, linkRange);\n });\n falsyManualDecorators.forEach(item => {\n writer.removeAttribute(item, linkRange);\n });\n // Put the selection at the end of the updated link.\n writer.setSelection(writer.createPositionAfter(linkRange.end.nodeBefore));\n }\n // If not then insert text node with `linkHref` attribute in place of caret.\n // However, since selection is collapsed, attribute value will be used as data for text node.\n // So, if `href` is empty, do not create text node.\n else if (href !== '') {\n const attributes = toMap(selection.getAttributes());\n attributes.set('linkHref', href);\n truthyManualDecorators.forEach(item => {\n attributes.set(item, true);\n });\n const { end: positionAfter } = model.insertContent(writer.createText(href, attributes), position);\n // Put the selection at the end of the inserted link.\n // Using end of range returned from insertContent in case nodes with the same attributes got merged.\n writer.setSelection(positionAfter);\n }\n // Remove the `linkHref` attribute and all link decorators from the selection.\n // It stops adding a new content into the link element.\n ['linkHref', ...truthyManualDecorators, ...falsyManualDecorators].forEach(item => {\n writer.removeSelectionAttribute(item);\n });\n }\n else {\n // If selection has non-collapsed ranges, we change attribute on nodes inside those ranges\n // omitting nodes where the `linkHref` attribute is disallowed.\n const ranges = model.schema.getValidRanges(selection.getRanges(), 'linkHref');\n // But for the first, check whether the `linkHref` attribute is allowed on selected blocks (e.g. the \"image\" element).\n const allowedRanges = [];\n for (const element of selection.getSelectedBlocks()) {\n if (model.schema.checkAttribute(element, 'linkHref')) {\n allowedRanges.push(writer.createRangeOn(element));\n }\n }\n // Ranges that accept the `linkHref` attribute. Since we will iterate over `allowedRanges`, let's clone it.\n const rangesToUpdate = allowedRanges.slice();\n // For all selection ranges we want to check whether given range is inside an element that accepts the `linkHref` attribute.\n // If so, we don't want to propagate applying the attribute to its children.\n for (const range of ranges) {\n if (this._isRangeToUpdate(range, allowedRanges)) {\n rangesToUpdate.push(range);\n }\n }\n for (const range of rangesToUpdate) {\n let linkRange = range;\n if (rangesToUpdate.length === 1) {\n // Current text of the link in the document.\n const linkText = extractTextFromSelection(selection);\n if (selection.getAttribute('linkHref') === linkText) {\n linkRange = this._updateLinkContent(model, writer, range, href);\n writer.setSelection(writer.createSelection(linkRange));\n }\n }\n writer.setAttribute('linkHref', href, linkRange);\n truthyManualDecorators.forEach(item => {\n writer.setAttribute(item, true, linkRange);\n });\n falsyManualDecorators.forEach(item => {\n writer.removeAttribute(item, linkRange);\n });\n }\n }\n });\n }\n /**\n * Provides information whether a decorator with a given name is present in the currently processed selection.\n *\n * @param decoratorName The name of the manual decorator used in the model\n * @returns The information whether a given decorator is currently present in the selection.\n */\n _getDecoratorStateFromModel(decoratorName) {\n const model = this.editor.model;\n const selection = model.document.selection;\n const selectedElement = selection.getSelectedElement();\n // A check for the `LinkImage` plugin. If the selection contains an element, get values from the element.\n // Currently the selection reads attributes from text nodes only. See #7429 and #7465.\n if (isLinkableElement(selectedElement, model.schema)) {\n return selectedElement.getAttribute(decoratorName);\n }\n return selection.getAttribute(decoratorName);\n }\n /**\n * Checks whether specified `range` is inside an element that accepts the `linkHref` attribute.\n *\n * @param range A range to check.\n * @param allowedRanges An array of ranges created on elements where the attribute is accepted.\n */\n _isRangeToUpdate(range, allowedRanges) {\n for (const allowedRange of allowedRanges) {\n // A range is inside an element that will have the `linkHref` attribute. Do not modify its nodes.\n if (allowedRange.containsRange(range)) {\n return false;\n }\n }\n return true;\n }\n /**\n * Updates selected link with a new value as its content and as its href attribute.\n *\n * @param model Model is need to insert content.\n * @param writer Writer is need to create text element in model.\n * @param range A range where should be inserted content.\n * @param href A link value which should be in the href attribute and in the content.\n */\n _updateLinkContent(model, writer, range, href) {\n const text = writer.createText(href, { linkHref: href });\n return model.insertContent(text, range);\n }\n}\n// Returns a text of a link under the collapsed selection or a selection that contains the entire link.\nfunction extractTextFromSelection(selection) {\n if (selection.isCollapsed) {\n const firstPosition = selection.getFirstPosition();\n return firstPosition.textNode && firstPosition.textNode.data;\n }\n else {\n const rangeItems = Array.from(selection.getFirstRange().getItems());\n if (rangeItems.length > 1) {\n return null;\n }\n const firstNode = rangeItems[0];\n if (firstNode.is('$text') || firstNode.is('$textProxy')) {\n return firstNode.data;\n }\n return null;\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module link/unlinkcommand\n */\nimport { Command } from 'ckeditor5/src/core';\nimport { findAttributeRange } from 'ckeditor5/src/typing';\nimport { isLinkableElement } from './utils';\n/**\n * The unlink command. It is used by the {@link module:link/link~Link link plugin}.\n */\nexport default class UnlinkCommand extends Command {\n /**\n * @inheritDoc\n */\n refresh() {\n const model = this.editor.model;\n const selection = model.document.selection;\n const selectedElement = selection.getSelectedElement();\n // A check for any integration that allows linking elements (e.g. `LinkImage`).\n // Currently the selection reads attributes from text nodes only. See #7429 and #7465.\n if (isLinkableElement(selectedElement, model.schema)) {\n this.isEnabled = model.schema.checkAttribute(selectedElement, 'linkHref');\n }\n else {\n this.isEnabled = model.schema.checkAttributeInSelection(selection, 'linkHref');\n }\n }\n /**\n * Executes the command.\n *\n * When the selection is collapsed, it removes the `linkHref` attribute from each node with the same `linkHref` attribute value.\n * When the selection is non-collapsed, it removes the `linkHref` attribute from each node in selected ranges.\n *\n * # Decorators\n *\n * If {@link module:link/linkconfig~LinkConfig#decorators `config.link.decorators`} is specified,\n * all configured decorators are removed together with the `linkHref` attribute.\n *\n * @fires execute\n */\n execute() {\n const editor = this.editor;\n const model = this.editor.model;\n const selection = model.document.selection;\n const linkCommand = editor.commands.get('link');\n model.change(writer => {\n // Get ranges to unlink.\n const rangesToUnlink = selection.isCollapsed ?\n [findAttributeRange(selection.getFirstPosition(), 'linkHref', selection.getAttribute('linkHref'), model)] :\n model.schema.getValidRanges(selection.getRanges(), 'linkHref');\n // Remove `linkHref` attribute from specified ranges.\n for (const range of rangesToUnlink) {\n writer.removeAttribute('linkHref', range);\n // If there are registered custom attributes, then remove them during unlink.\n if (linkCommand) {\n for (const manualDecorator of linkCommand.manualDecorators) {\n writer.removeAttribute(manualDecorator.id, range);\n }\n }\n }\n });\n }\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module link/utils/manualdecorator\n */\nimport { ObservableMixin } from 'ckeditor5/src/utils';\n/**\n * Helper class that stores manual decorators with observable {@link module:link/utils/manualdecorator~ManualDecorator#value}\n * to support integration with the UI state. An instance of this class is a model with the state of individual manual decorators.\n * These decorators are kept as collections in {@link module:link/linkcommand~LinkCommand#manualDecorators}.\n */\nexport default class ManualDecorator extends ObservableMixin() {\n /**\n * Creates a new instance of {@link module:link/utils/manualdecorator~ManualDecorator}.\n *\n * @param config.id The name of the attribute used in the model that represents a given manual decorator.\n * For example: `'linkIsExternal'`.\n * @param config.label The label used in the user interface to toggle the manual decorator.\n * @param config.attributes A set of attributes added to output data when the decorator is active for a specific link.\n * Attributes should keep the format of attributes defined in {@link module:engine/view/elementdefinition~ElementDefinition}.\n * @param [config.defaultValue] Controls whether the decorator is \"on\" by default.\n */\n constructor({ id, label, attributes, classes, styles, defaultValue }) {\n super();\n this.id = id;\n this.set('value', undefined);\n this.defaultValue = defaultValue;\n this.label = label;\n this.attributes = attributes;\n this.classes = classes;\n this.styles = styles;\n }\n /**\n * Returns {@link module:engine/view/matcher~MatcherPattern} with decorator attributes.\n *\n * @internal\n */\n _createPattern() {\n return {\n attributes: this.attributes,\n classes: this.classes,\n styles: this.styles\n };\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./link.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module link/linkediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { MouseObserver } from 'ckeditor5/src/engine';\nimport { Input, TwoStepCaretMovement, inlineHighlight, findAttributeRange } from 'ckeditor5/src/typing';\nimport { ClipboardPipeline } from 'ckeditor5/src/clipboard';\nimport { keyCodes, env } from 'ckeditor5/src/utils';\nimport LinkCommand from './linkcommand';\nimport UnlinkCommand from './unlinkcommand';\nimport ManualDecorator from './utils/manualdecorator';\nimport { createLinkElement, ensureSafeUrl, getLocalizedDecorators, normalizeDecorators, openLink, addLinkProtocolIfApplicable } from './utils';\nimport '../theme/link.css';\nconst HIGHLIGHT_CLASS = 'ck-link_selected';\nconst DECORATOR_AUTOMATIC = 'automatic';\nconst DECORATOR_MANUAL = 'manual';\nconst EXTERNAL_LINKS_REGEXP = /^(https?:)?\\/\\//;\n/**\n * The link engine feature.\n *\n * It introduces the `linkHref=\"url\"` attribute in the model which renders to the view as a `` element\n * as well as `'link'` and `'unlink'` commands.\n */\nexport default class LinkEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'LinkEditing';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n // Clipboard is required for handling cut and paste events while typing over the link.\n return [TwoStepCaretMovement, Input, ClipboardPipeline];\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n editor.config.define('link', {\n addTargetToExternalLinks: false\n });\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n // Allow link attribute on all inline nodes.\n editor.model.schema.extend('$text', { allowAttributes: 'linkHref' });\n editor.conversion.for('dataDowncast')\n .attributeToElement({ model: 'linkHref', view: createLinkElement });\n editor.conversion.for('editingDowncast')\n .attributeToElement({ model: 'linkHref', view: (href, conversionApi) => {\n return createLinkElement(ensureSafeUrl(href), conversionApi);\n } });\n editor.conversion.for('upcast')\n .elementToAttribute({\n view: {\n name: 'a',\n attributes: {\n href: true\n }\n },\n model: {\n key: 'linkHref',\n value: (viewElement) => viewElement.getAttribute('href')\n }\n });\n // Create linking commands.\n editor.commands.add('link', new LinkCommand(editor));\n editor.commands.add('unlink', new UnlinkCommand(editor));\n const linkDecorators = getLocalizedDecorators(editor.t, normalizeDecorators(editor.config.get('link.decorators')));\n this._enableAutomaticDecorators(linkDecorators\n .filter((item) => item.mode === DECORATOR_AUTOMATIC));\n this._enableManualDecorators(linkDecorators\n .filter((item) => item.mode === DECORATOR_MANUAL));\n // Enable two-step caret movement for `linkHref` attribute.\n const twoStepCaretMovementPlugin = editor.plugins.get(TwoStepCaretMovement);\n twoStepCaretMovementPlugin.registerAttribute('linkHref');\n // Setup highlight over selected link.\n inlineHighlight(editor, 'linkHref', 'a', HIGHLIGHT_CLASS);\n // Handle link following by CTRL+click or ALT+ENTER\n this._enableLinkOpen();\n // Change the attributes of the selection in certain situations after the link was inserted into the document.\n this._enableInsertContentSelectionAttributesFixer();\n // Handle a click at the beginning/end of a link element.\n this._enableClickingAfterLink();\n // Handle typing over the link.\n this._enableTypingOverLink();\n // Handle removing the content after the link element.\n this._handleDeleteContentAfterLink();\n // Handle adding default protocol to pasted links.\n this._enableClipboardIntegration();\n }\n /**\n * Processes an array of configured {@link module:link/linkconfig~LinkDecoratorAutomaticDefinition automatic decorators}\n * and registers a {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher downcast dispatcher}\n * for each one of them. Downcast dispatchers are obtained using the\n * {@link module:link/utils/automaticdecorators~AutomaticDecorators#getDispatcher} method.\n *\n * **Note**: This method also activates the automatic external link decorator if enabled with\n * {@link module:link/linkconfig~LinkConfig#addTargetToExternalLinks `config.link.addTargetToExternalLinks`}.\n */\n _enableAutomaticDecorators(automaticDecoratorDefinitions) {\n const editor = this.editor;\n // Store automatic decorators in the command instance as we do the same with manual decorators.\n // Thanks to that, `LinkImageEditing` plugin can re-use the same definitions.\n const command = editor.commands.get('link');\n const automaticDecorators = command.automaticDecorators;\n // Adds a default decorator for external links.\n if (editor.config.get('link.addTargetToExternalLinks')) {\n automaticDecorators.add({\n id: 'linkIsExternal',\n mode: DECORATOR_AUTOMATIC,\n callback: url => !!url && EXTERNAL_LINKS_REGEXP.test(url),\n attributes: {\n target: '_blank',\n rel: 'noopener noreferrer'\n }\n });\n }\n automaticDecorators.add(automaticDecoratorDefinitions);\n if (automaticDecorators.length) {\n editor.conversion.for('downcast').add(automaticDecorators.getDispatcher());\n }\n }\n /**\n * Processes an array of configured {@link module:link/linkconfig~LinkDecoratorManualDefinition manual decorators},\n * transforms them into {@link module:link/utils/manualdecorator~ManualDecorator} instances and stores them in the\n * {@link module:link/linkcommand~LinkCommand#manualDecorators} collection (a model for manual decorators state).\n *\n * Also registers an {@link module:engine/conversion/downcasthelpers~DowncastHelpers#attributeToElement attribute-to-element}\n * converter for each manual decorator and extends the {@link module:engine/model/schema~Schema model's schema}\n * with adequate model attributes.\n */\n _enableManualDecorators(manualDecoratorDefinitions) {\n if (!manualDecoratorDefinitions.length) {\n return;\n }\n const editor = this.editor;\n const command = editor.commands.get('link');\n const manualDecorators = command.manualDecorators;\n manualDecoratorDefinitions.forEach(decoratorDefinition => {\n editor.model.schema.extend('$text', { allowAttributes: decoratorDefinition.id });\n // Keeps reference to manual decorator to decode its name to attributes during downcast.\n const decorator = new ManualDecorator(decoratorDefinition);\n manualDecorators.add(decorator);\n editor.conversion.for('downcast').attributeToElement({\n model: decorator.id,\n view: (manualDecoratorValue, { writer, schema }, { item }) => {\n // Manual decorators for block links are handled e.g. in LinkImageEditing.\n if (!(item.is('selection') || schema.isInline(item))) {\n return;\n }\n if (manualDecoratorValue) {\n const element = writer.createAttributeElement('a', decorator.attributes, { priority: 5 });\n if (decorator.classes) {\n writer.addClass(decorator.classes, element);\n }\n for (const key in decorator.styles) {\n writer.setStyle(key, decorator.styles[key], element);\n }\n writer.setCustomProperty('link', true, element);\n return element;\n }\n }\n });\n editor.conversion.for('upcast').elementToAttribute({\n view: {\n name: 'a',\n ...decorator._createPattern()\n },\n model: {\n key: decorator.id\n }\n });\n });\n }\n /**\n * Attaches handlers for {@link module:engine/view/document~Document#event:enter} and\n * {@link module:engine/view/document~Document#event:click} to enable link following.\n */\n _enableLinkOpen() {\n const editor = this.editor;\n const view = editor.editing.view;\n const viewDocument = view.document;\n this.listenTo(viewDocument, 'click', (evt, data) => {\n const shouldOpen = env.isMac ? data.domEvent.metaKey : data.domEvent.ctrlKey;\n if (!shouldOpen) {\n return;\n }\n let clickedElement = data.domTarget;\n if (clickedElement.tagName.toLowerCase() != 'a') {\n clickedElement = clickedElement.closest('a');\n }\n if (!clickedElement) {\n return;\n }\n const url = clickedElement.getAttribute('href');\n if (!url) {\n return;\n }\n evt.stop();\n data.preventDefault();\n openLink(url);\n }, { context: '$capture' });\n // Open link on Alt+Enter.\n this.listenTo(viewDocument, 'keydown', (evt, data) => {\n const linkCommand = editor.commands.get('link');\n const url = linkCommand.value;\n const shouldOpen = !!url && data.keyCode === keyCodes.enter && data.altKey;\n if (!shouldOpen) {\n return;\n }\n evt.stop();\n openLink(url);\n });\n }\n /**\n * Starts listening to {@link module:engine/model/model~Model#event:insertContent} and corrects the model\n * selection attributes if the selection is at the end of a link after inserting the content.\n *\n * The purpose of this action is to improve the overall UX because the user is no longer \"trapped\" by the\n * `linkHref` attribute of the selection and they can type a \"clean\" (`linkHref`–less) text right away.\n *\n * See https://github.com/ckeditor/ckeditor5/issues/6053.\n */\n _enableInsertContentSelectionAttributesFixer() {\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n this.listenTo(model, 'insertContent', () => {\n const nodeBefore = selection.anchor.nodeBefore;\n const nodeAfter = selection.anchor.nodeAfter;\n // NOTE: ↰ and ↱ represent the gravity of the selection.\n // The only truly valid case is:\n //\n //\t\t ↰\n //\t\t...<$text linkHref=\"foo\">INSERTED[]\n //\n // If the selection is not \"trapped\" by the `linkHref` attribute after inserting, there's nothing\n // to fix there.\n if (!selection.hasAttribute('linkHref')) {\n return;\n }\n // Filter out the following case where a link with the same href (e.g. INSERTED) is inserted\n // in the middle of an existing link:\n //\n // Before insertion:\n //\t\t ↰\n //\t\t<$text linkHref=\"foo\">l[]ink\n //\n // Expected after insertion:\n //\t\t ↰\n //\t\t<$text linkHref=\"foo\">lINSERTED[]ink\n //\n if (!nodeBefore) {\n return;\n }\n // Filter out the following case where the selection has the \"linkHref\" attribute because the\n // gravity is overridden and some text with another attribute (e.g. INSERTED) is inserted:\n //\n // Before insertion:\n //\n //\t\t ↱\n //\t\t<$text linkHref=\"foo\">[]link\n //\n // Expected after insertion:\n //\n //\t\t ↱\n //\t\t<$text bold=\"true\">INSERTED<$text linkHref=\"foo\">[]link\n //\n if (!nodeBefore.hasAttribute('linkHref')) {\n return;\n }\n // Filter out the following case where a link is a inserted in the middle (or before) another link\n // (different URLs, so they will not merge). In this (let's say weird) case, we can leave the selection\n // attributes as they are because the user will end up writing in one link or another anyway.\n //\n // Before insertion:\n //\n //\t\t ↰\n //\t\t<$text linkHref=\"foo\">l[]ink\n //\n // Expected after insertion:\n //\n //\t\t ↰\n //\t\t<$text linkHref=\"foo\">l<$text linkHref=\"bar\">INSERTED[]<$text linkHref=\"foo\">ink\n //\n if (nodeAfter && nodeAfter.hasAttribute('linkHref')) {\n return;\n }\n model.change(writer => {\n removeLinkAttributesFromSelection(writer, getLinkAttributesAllowedOnText(model.schema));\n });\n }, { priority: 'low' });\n }\n /**\n * Starts listening to {@link module:engine/view/document~Document#event:mousedown} and\n * {@link module:engine/view/document~Document#event:selectionChange} and puts the selection before/after a link node\n * if clicked at the beginning/ending of the link.\n *\n * The purpose of this action is to allow typing around the link node directly after a click.\n *\n * See https://github.com/ckeditor/ckeditor5/issues/1016.\n */\n _enableClickingAfterLink() {\n const editor = this.editor;\n const model = editor.model;\n editor.editing.view.addObserver(MouseObserver);\n let clicked = false;\n // Detect the click.\n this.listenTo(editor.editing.view.document, 'mousedown', () => {\n clicked = true;\n });\n // When the selection has changed...\n this.listenTo(editor.editing.view.document, 'selectionChange', () => {\n if (!clicked) {\n return;\n }\n // ...and it was caused by the click...\n clicked = false;\n const selection = model.document.selection;\n // ...and no text is selected...\n if (!selection.isCollapsed) {\n return;\n }\n // ...and clicked text is the link...\n if (!selection.hasAttribute('linkHref')) {\n return;\n }\n const position = selection.getFirstPosition();\n const linkRange = findAttributeRange(position, 'linkHref', selection.getAttribute('linkHref'), model);\n // ...check whether clicked start/end boundary of the link.\n // If so, remove the `linkHref` attribute.\n if (position.isTouching(linkRange.start) || position.isTouching(linkRange.end)) {\n model.change(writer => {\n removeLinkAttributesFromSelection(writer, getLinkAttributesAllowedOnText(model.schema));\n });\n }\n });\n }\n /**\n * Starts listening to {@link module:engine/model/model~Model#deleteContent} and {@link module:engine/model/model~Model#insertContent}\n * and checks whether typing over the link. If so, attributes of removed text are preserved and applied to the inserted text.\n *\n * The purpose of this action is to allow modifying a text without loosing the `linkHref` attribute (and other).\n *\n * See https://github.com/ckeditor/ckeditor5/issues/4762.\n */\n _enableTypingOverLink() {\n const editor = this.editor;\n const view = editor.editing.view;\n // Selection attributes when started typing over the link.\n let selectionAttributes = null;\n // Whether pressed `Backspace` or `Delete`. If so, attributes should not be preserved.\n let deletedContent = false;\n // Detect pressing `Backspace` / `Delete`.\n this.listenTo(view.document, 'delete', () => {\n deletedContent = true;\n }, { priority: 'high' });\n // Listening to `model#deleteContent` allows detecting whether selected content was a link.\n // If so, before removing the element, we will copy its attributes.\n this.listenTo(editor.model, 'deleteContent', () => {\n const selection = editor.model.document.selection;\n // Copy attributes only if anything is selected.\n if (selection.isCollapsed) {\n return;\n }\n // When the content was deleted, do not preserve attributes.\n if (deletedContent) {\n deletedContent = false;\n return;\n }\n // Enabled only when typing.\n if (!isTyping(editor)) {\n return;\n }\n if (shouldCopyAttributes(editor.model)) {\n selectionAttributes = selection.getAttributes();\n }\n }, { priority: 'high' });\n // Listening to `model#insertContent` allows detecting the content insertion.\n // We want to apply attributes that were removed while typing over the link.\n this.listenTo(editor.model, 'insertContent', (evt, [element]) => {\n deletedContent = false;\n // Enabled only when typing.\n if (!isTyping(editor)) {\n return;\n }\n if (!selectionAttributes) {\n return;\n }\n editor.model.change(writer => {\n for (const [attribute, value] of selectionAttributes) {\n writer.setAttribute(attribute, value, element);\n }\n });\n selectionAttributes = null;\n }, { priority: 'high' });\n }\n /**\n * Starts listening to {@link module:engine/model/model~Model#deleteContent} and checks whether\n * removing a content right after the \"linkHref\" attribute.\n *\n * If so, the selection should not preserve the `linkHref` attribute. However, if\n * the {@link module:typing/twostepcaretmovement~TwoStepCaretMovement} plugin is active and\n * the selection has the \"linkHref\" attribute due to overriden gravity (at the end), the `linkHref` attribute should stay untouched.\n *\n * The purpose of this action is to allow removing the link text and keep the selection outside the link.\n *\n * See https://github.com/ckeditor/ckeditor5/issues/7521.\n */\n _handleDeleteContentAfterLink() {\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n const view = editor.editing.view;\n // A flag whether attributes `linkHref` attribute should be preserved.\n let shouldPreserveAttributes = false;\n // A flag whether the `Backspace` key was pressed.\n let hasBackspacePressed = false;\n // Detect pressing `Backspace`.\n this.listenTo(view.document, 'delete', (evt, data) => {\n hasBackspacePressed = data.direction === 'backward';\n }, { priority: 'high' });\n // Before removing the content, check whether the selection is inside a link or at the end of link but with 2-SCM enabled.\n // If so, we want to preserve link attributes.\n this.listenTo(model, 'deleteContent', () => {\n // Reset the state.\n shouldPreserveAttributes = false;\n const position = selection.getFirstPosition();\n const linkHref = selection.getAttribute('linkHref');\n if (!linkHref) {\n return;\n }\n const linkRange = findAttributeRange(position, 'linkHref', linkHref, model);\n // Preserve `linkHref` attribute if the selection is in the middle of the link or\n // the selection is at the end of the link and 2-SCM is activated.\n shouldPreserveAttributes = linkRange.containsPosition(position) || linkRange.end.isEqual(position);\n }, { priority: 'high' });\n // After removing the content, check whether the current selection should preserve the `linkHref` attribute.\n this.listenTo(model, 'deleteContent', () => {\n // If didn't press `Backspace`.\n if (!hasBackspacePressed) {\n return;\n }\n hasBackspacePressed = false;\n // Disable the mechanism if inside a link (`<$text url=\"foo\">F[]oo` or <$text url=\"foo\">Foo[]`).\n if (shouldPreserveAttributes) {\n return;\n }\n // Use `model.enqueueChange()` in order to execute the callback at the end of the changes process.\n editor.model.enqueueChange(writer => {\n removeLinkAttributesFromSelection(writer, getLinkAttributesAllowedOnText(model.schema));\n });\n }, { priority: 'low' });\n }\n /**\n * Enables URL fixing on pasting.\n */\n _enableClipboardIntegration() {\n const editor = this.editor;\n const model = editor.model;\n const defaultProtocol = this.editor.config.get('link.defaultProtocol');\n if (!defaultProtocol) {\n return;\n }\n this.listenTo(editor.plugins.get('ClipboardPipeline'), 'contentInsertion', (evt, data) => {\n model.change(writer => {\n const range = writer.createRangeIn(data.content);\n for (const item of range.getItems()) {\n if (item.hasAttribute('linkHref')) {\n const newLink = addLinkProtocolIfApplicable(item.getAttribute('linkHref'), defaultProtocol);\n writer.setAttribute('linkHref', newLink, item);\n }\n }\n });\n });\n }\n}\n/**\n * Make the selection free of link-related model attributes.\n * All link-related model attributes start with \"link\". That includes not only \"linkHref\"\n * but also all decorator attributes (they have dynamic names), or even custom plugins.\n */\nfunction removeLinkAttributesFromSelection(writer, linkAttributes) {\n writer.removeSelectionAttribute('linkHref');\n for (const attribute of linkAttributes) {\n writer.removeSelectionAttribute(attribute);\n }\n}\n/**\n * Checks whether selection's attributes should be copied to the new inserted text.\n */\nfunction shouldCopyAttributes(model) {\n const selection = model.document.selection;\n const firstPosition = selection.getFirstPosition();\n const lastPosition = selection.getLastPosition();\n const nodeAtFirstPosition = firstPosition.nodeAfter;\n // The text link node does not exist...\n if (!nodeAtFirstPosition) {\n return false;\n }\n // ...or it isn't the text node...\n if (!nodeAtFirstPosition.is('$text')) {\n return false;\n }\n // ...or isn't the link.\n if (!nodeAtFirstPosition.hasAttribute('linkHref')) {\n return false;\n }\n // `textNode` = the position is inside the link element.\n // `nodeBefore` = the position is at the end of the link element.\n const nodeAtLastPosition = lastPosition.textNode || lastPosition.nodeBefore;\n // If both references the same node selection contains a single text node.\n if (nodeAtFirstPosition === nodeAtLastPosition) {\n return true;\n }\n // If nodes are not equal, maybe the link nodes has defined additional attributes inside.\n // First, we need to find the entire link range.\n const linkRange = findAttributeRange(firstPosition, 'linkHref', nodeAtFirstPosition.getAttribute('linkHref'), model);\n // Then we can check whether selected range is inside the found link range. If so, attributes should be preserved.\n return linkRange.containsRange(model.createRange(firstPosition, lastPosition), true);\n}\n/**\n * Checks whether provided changes were caused by typing.\n */\nfunction isTyping(editor) {\n const currentBatch = editor.model.change(writer => writer.batch);\n return currentBatch.isTyping;\n}\n/**\n * Returns an array containing names of the attributes allowed on `$text` that describes the link item.\n */\nfunction getLinkAttributesAllowedOnText(schema) {\n const textAttributes = schema.getDefinition('$text').allowAttributes;\n return textAttributes.filter(attribute => attribute.startsWith('link'));\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./linkform.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module link/ui/linkformview\n */\nimport { ButtonView, FocusCycler, LabeledFieldView, SwitchButtonView, View, ViewCollection, createLabeledInputText, submitHandler } from 'ckeditor5/src/ui';\nimport { FocusTracker, KeystrokeHandler } from 'ckeditor5/src/utils';\nimport { icons } from 'ckeditor5/src/core';\n// See: #8833.\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\nimport '../../theme/linkform.css';\n/**\n * The link form view controller class.\n *\n * See {@link module:link/ui/linkformview~LinkFormView}.\n */\nexport default class LinkFormView extends View {\n /**\n * Creates an instance of the {@link module:link/ui/linkformview~LinkFormView} class.\n *\n * Also see {@link #render}.\n *\n * @param locale The localization services instance.\n * @param linkCommand Reference to {@link module:link/linkcommand~LinkCommand}.\n */\n constructor(locale, linkCommand) {\n super(locale);\n /**\n * Tracks information about DOM focus in the form.\n */\n this.focusTracker = new FocusTracker();\n /**\n * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n */\n this.keystrokes = new KeystrokeHandler();\n /**\n * A collection of views that can be focused in the form.\n */\n this._focusables = new ViewCollection();\n const t = locale.t;\n this.urlInputView = this._createUrlInput();\n this.saveButtonView = this._createButton(t('Save'), icons.check, 'ck-button-save');\n this.saveButtonView.type = 'submit';\n this.cancelButtonView = this._createButton(t('Cancel'), icons.cancel, 'ck-button-cancel', 'cancel');\n this._manualDecoratorSwitches = this._createManualDecoratorSwitches(linkCommand);\n this.children = this._createFormChildren(linkCommand.manualDecorators);\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate form fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate form fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n const classList = ['ck', 'ck-link-form', 'ck-responsive-form'];\n if (linkCommand.manualDecorators.length) {\n classList.push('ck-link-form_layout-vertical', 'ck-vertical-form');\n }\n this.setTemplate({\n tag: 'form',\n attributes: {\n class: classList,\n // https://github.com/ckeditor/ckeditor5-link/issues/90\n tabindex: '-1'\n },\n children: this.children\n });\n }\n /**\n * Obtains the state of the {@link module:ui/button/switchbuttonview~SwitchButtonView switch buttons} representing\n * {@link module:link/linkcommand~LinkCommand#manualDecorators manual link decorators}\n * in the {@link module:link/ui/linkformview~LinkFormView}.\n *\n * @returns Key-value pairs, where the key is the name of the decorator and the value is its state.\n */\n getDecoratorSwitchesState() {\n return Array\n .from(this._manualDecoratorSwitches)\n .reduce((accumulator, switchButton) => {\n accumulator[switchButton.name] = switchButton.isOn;\n return accumulator;\n }, {});\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n submitHandler({\n view: this\n });\n const childViews = [\n this.urlInputView,\n ...this._manualDecoratorSwitches,\n this.saveButtonView,\n this.cancelButtonView\n ];\n childViews.forEach(v => {\n // Register the view as focusable.\n this._focusables.add(v);\n // Register the view in the focus tracker.\n this.focusTracker.add(v.element);\n });\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n * Focuses the fist {@link #_focusables} in the form.\n */\n focus() {\n this._focusCycler.focusFirst();\n }\n /**\n * Creates a labeled input view.\n *\n * @returns Labeled field view instance.\n */\n _createUrlInput() {\n const t = this.locale.t;\n const labeledInput = new LabeledFieldView(this.locale, createLabeledInputText);\n labeledInput.label = t('Link URL');\n return labeledInput;\n }\n /**\n * Creates a button view.\n *\n * @param label The button label.\n * @param icon The button icon.\n * @param className The additional button CSS class name.\n * @param eventName An event name that the `ButtonView#execute` event will be delegated to.\n * @returns The button view instance.\n */\n _createButton(label, icon, className, eventName) {\n const button = new ButtonView(this.locale);\n button.set({\n label,\n icon,\n tooltip: true\n });\n button.extendTemplate({\n attributes: {\n class: className\n }\n });\n if (eventName) {\n button.delegate('execute').to(this, eventName);\n }\n return button;\n }\n /**\n * Populates {@link module:ui/viewcollection~ViewCollection} of {@link module:ui/button/switchbuttonview~SwitchButtonView}\n * made based on {@link module:link/linkcommand~LinkCommand#manualDecorators}.\n *\n * @param linkCommand A reference to the link command.\n * @returns ViewCollection of switch buttons.\n */\n _createManualDecoratorSwitches(linkCommand) {\n const switches = this.createCollection();\n for (const manualDecorator of linkCommand.manualDecorators) {\n const switchButton = new SwitchButtonView(this.locale);\n switchButton.set({\n name: manualDecorator.id,\n label: manualDecorator.label,\n withText: true\n });\n switchButton.bind('isOn').toMany([manualDecorator, linkCommand], 'value', (decoratorValue, commandValue) => {\n return commandValue === undefined && decoratorValue === undefined ? !!manualDecorator.defaultValue : !!decoratorValue;\n });\n switchButton.on('execute', () => {\n manualDecorator.set('value', !switchButton.isOn);\n });\n switches.add(switchButton);\n }\n return switches;\n }\n /**\n * Populates the {@link #children} collection of the form.\n *\n * If {@link module:link/linkcommand~LinkCommand#manualDecorators manual decorators} are configured in the editor, it creates an\n * additional `View` wrapping all {@link #_manualDecoratorSwitches} switch buttons corresponding\n * to these decorators.\n *\n * @param manualDecorators A reference to\n * the collection of manual decorators stored in the link command.\n * @returns The children of link form view.\n */\n _createFormChildren(manualDecorators) {\n const children = this.createCollection();\n children.add(this.urlInputView);\n if (manualDecorators.length) {\n const additionalButtonsView = new View();\n additionalButtonsView.setTemplate({\n tag: 'ul',\n children: this._manualDecoratorSwitches.map(switchButton => ({\n tag: 'li',\n children: [switchButton],\n attributes: {\n class: [\n 'ck',\n 'ck-list__item'\n ]\n }\n })),\n attributes: {\n class: [\n 'ck',\n 'ck-reset',\n 'ck-list'\n ]\n }\n });\n children.add(additionalButtonsView);\n }\n children.add(this.saveButtonView);\n children.add(this.cancelButtonView);\n return children;\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./linkactions.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module link/ui/linkactionsview\n */\nimport { ButtonView, View, ViewCollection, FocusCycler } from 'ckeditor5/src/ui';\nimport { FocusTracker, KeystrokeHandler } from 'ckeditor5/src/utils';\nimport { icons } from 'ckeditor5/src/core';\nimport { ensureSafeUrl } from '../utils';\n// See: #8833.\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\nimport '../../theme/linkactions.css';\nimport unlinkIcon from '../../theme/icons/unlink.svg';\n/**\n * The link actions view class. This view displays the link preview, allows\n * unlinking or editing the link.\n */\nexport default class LinkActionsView extends View {\n /**\n * @inheritDoc\n */\n constructor(locale) {\n super(locale);\n /**\n * Tracks information about DOM focus in the actions.\n */\n this.focusTracker = new FocusTracker();\n /**\n * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n */\n this.keystrokes = new KeystrokeHandler();\n /**\n * A collection of views that can be focused in the view.\n */\n this._focusables = new ViewCollection();\n const t = locale.t;\n this.previewButtonView = this._createPreviewButton();\n this.unlinkButtonView = this._createButton(t('Unlink'), unlinkIcon, 'unlink');\n this.editButtonView = this._createButton(t('Edit link'), icons.pencil, 'edit');\n this.set('href', undefined);\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-link-actions',\n 'ck-responsive-form'\n ],\n // https://github.com/ckeditor/ckeditor5-link/issues/90\n tabindex: '-1'\n },\n children: [\n this.previewButtonView,\n this.editButtonView,\n this.unlinkButtonView\n ]\n });\n }\n /**\n * @inheritDoc\n */\n render() {\n super.render();\n const childViews = [\n this.previewButtonView,\n this.editButtonView,\n this.unlinkButtonView\n ];\n childViews.forEach(v => {\n // Register the view as focusable.\n this._focusables.add(v);\n // Register the view in the focus tracker.\n this.focusTracker.add(v.element);\n });\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n * Focuses the fist {@link #_focusables} in the actions.\n */\n focus() {\n this._focusCycler.focusFirst();\n }\n /**\n * Creates a button view.\n *\n * @param label The button label.\n * @param icon The button icon.\n * @param eventName An event name that the `ButtonView#execute` event will be delegated to.\n * @returns The button view instance.\n */\n _createButton(label, icon, eventName) {\n const button = new ButtonView(this.locale);\n button.set({\n label,\n icon,\n tooltip: true\n });\n button.delegate('execute').to(this, eventName);\n return button;\n }\n /**\n * Creates a link href preview button.\n *\n * @returns The button view instance.\n */\n _createPreviewButton() {\n const button = new ButtonView(this.locale);\n const bind = this.bindTemplate;\n const t = this.t;\n button.set({\n withText: true,\n tooltip: t('Open link in new tab')\n });\n button.extendTemplate({\n attributes: {\n class: [\n 'ck',\n 'ck-link-actions__preview'\n ],\n href: bind.to('href', href => href && ensureSafeUrl(href)),\n target: '_blank',\n rel: 'noopener noreferrer'\n }\n });\n button.bind('label').to(this, 'href', href => {\n return href || t('This link has no URL');\n });\n button.bind('isEnabled').to(this, 'href', href => !!href);\n button.template.tag = 'a';\n button.template.eventListeners = {};\n return button;\n }\n}\n","export default \"\";","export default \"\";","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module link/linkui\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { ClickObserver } from 'ckeditor5/src/engine';\nimport { ButtonView, ContextualBalloon, clickOutsideHandler, CssTransitionDisablerMixin } from 'ckeditor5/src/ui';\nimport { isWidget } from 'ckeditor5/src/widget';\nimport LinkFormView from './ui/linkformview';\nimport LinkActionsView from './ui/linkactionsview';\nimport { addLinkProtocolIfApplicable, isLinkElement, LINK_KEYSTROKE } from './utils';\nimport linkIcon from '../theme/icons/link.svg';\nconst VISUAL_SELECTION_MARKER_NAME = 'link-ui';\n/**\n * The link UI plugin. It introduces the `'link'` and `'unlink'` buttons and support for the Ctrl+K keystroke.\n *\n * It uses the\n * {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon plugin}.\n */\nexport default class LinkUI extends Plugin {\n constructor() {\n super(...arguments);\n /**\n * The actions view displayed inside of the balloon.\n */\n this.actionsView = null;\n /**\n * The form view displayed inside the balloon.\n */\n this.formView = null;\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [ContextualBalloon];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'LinkUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n editor.editing.view.addObserver(ClickObserver);\n this._balloon = editor.plugins.get(ContextualBalloon);\n // Create toolbar buttons.\n this._createToolbarLinkButton();\n this._enableBalloonActivators();\n // Renders a fake visual selection marker on an expanded selection.\n editor.conversion.for('editingDowncast').markerToHighlight({\n model: VISUAL_SELECTION_MARKER_NAME,\n view: {\n classes: ['ck-fake-link-selection']\n }\n });\n // Renders a fake visual selection marker on a collapsed selection.\n editor.conversion.for('editingDowncast').markerToElement({\n model: VISUAL_SELECTION_MARKER_NAME,\n view: {\n name: 'span',\n classes: ['ck-fake-link-selection', 'ck-fake-link-selection_collapsed']\n }\n });\n }\n /**\n * @inheritDoc\n */\n destroy() {\n super.destroy();\n // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n if (this.formView) {\n this.formView.destroy();\n }\n if (this.actionsView) {\n this.actionsView.destroy();\n }\n }\n /**\n * Creates views.\n */\n _createViews() {\n this.actionsView = this._createActionsView();\n this.formView = this._createFormView();\n // Attach lifecycle actions to the the balloon.\n this._enableUserBalloonInteractions();\n }\n /**\n * Creates the {@link module:link/ui/linkactionsview~LinkActionsView} instance.\n */\n _createActionsView() {\n const editor = this.editor;\n const actionsView = new LinkActionsView(editor.locale);\n const linkCommand = editor.commands.get('link');\n const unlinkCommand = editor.commands.get('unlink');\n actionsView.bind('href').to(linkCommand, 'value');\n actionsView.editButtonView.bind('isEnabled').to(linkCommand);\n actionsView.unlinkButtonView.bind('isEnabled').to(unlinkCommand);\n // Execute unlink command after clicking on the \"Edit\" button.\n this.listenTo(actionsView, 'edit', () => {\n this._addFormView();\n });\n // Execute unlink command after clicking on the \"Unlink\" button.\n this.listenTo(actionsView, 'unlink', () => {\n editor.execute('unlink');\n this._hideUI();\n });\n // Close the panel on esc key press when the **actions have focus**.\n actionsView.keystrokes.set('Esc', (data, cancel) => {\n this._hideUI();\n cancel();\n });\n // Open the form view on Ctrl+K when the **actions have focus**..\n actionsView.keystrokes.set(LINK_KEYSTROKE, (data, cancel) => {\n this._addFormView();\n cancel();\n });\n return actionsView;\n }\n /**\n * Creates the {@link module:link/ui/linkformview~LinkFormView} instance.\n */\n _createFormView() {\n const editor = this.editor;\n const linkCommand = editor.commands.get('link');\n const defaultProtocol = editor.config.get('link.defaultProtocol');\n const formView = new (CssTransitionDisablerMixin(LinkFormView))(editor.locale, linkCommand);\n formView.urlInputView.fieldView.bind('value').to(linkCommand, 'value');\n // Form elements should be read-only when corresponding commands are disabled.\n formView.urlInputView.bind('isEnabled').to(linkCommand, 'isEnabled');\n formView.saveButtonView.bind('isEnabled').to(linkCommand);\n // Execute link command after clicking the \"Save\" button.\n this.listenTo(formView, 'submit', () => {\n const { value } = formView.urlInputView.fieldView.element;\n const parsedUrl = addLinkProtocolIfApplicable(value, defaultProtocol);\n editor.execute('link', parsedUrl, formView.getDecoratorSwitchesState());\n this._closeFormView();\n });\n // Hide the panel after clicking the \"Cancel\" button.\n this.listenTo(formView, 'cancel', () => {\n this._closeFormView();\n });\n // Close the panel on esc key press when the **form has focus**.\n formView.keystrokes.set('Esc', (data, cancel) => {\n this._closeFormView();\n cancel();\n });\n return formView;\n }\n /**\n * Creates a toolbar Link button. Clicking this button will show\n * a {@link #_balloon} attached to the selection.\n */\n _createToolbarLinkButton() {\n const editor = this.editor;\n const linkCommand = editor.commands.get('link');\n const t = editor.t;\n editor.ui.componentFactory.add('link', locale => {\n const button = new ButtonView(locale);\n button.isEnabled = true;\n button.label = t('Link');\n button.icon = linkIcon;\n button.keystroke = LINK_KEYSTROKE;\n button.tooltip = true;\n button.isToggleable = true;\n // Bind button to the command.\n button.bind('isEnabled').to(linkCommand, 'isEnabled');\n button.bind('isOn').to(linkCommand, 'value', value => !!value);\n // Show the panel on button click.\n this.listenTo(button, 'execute', () => this._showUI(true));\n return button;\n });\n }\n /**\n * Attaches actions that control whether the balloon panel containing the\n * {@link #formView} should be displayed.\n */\n _enableBalloonActivators() {\n const editor = this.editor;\n const viewDocument = editor.editing.view.document;\n // Handle click on view document and show panel when selection is placed inside the link element.\n // Keep panel open until selection will be inside the same link element.\n this.listenTo(viewDocument, 'click', () => {\n const parentLink = this._getSelectedLinkElement();\n if (parentLink) {\n // Then show panel but keep focus inside editor editable.\n this._showUI();\n }\n });\n // Handle the `Ctrl+K` keystroke and show the panel.\n editor.keystrokes.set(LINK_KEYSTROKE, (keyEvtData, cancel) => {\n // Prevent focusing the search bar in FF, Chrome and Edge. See https://github.com/ckeditor/ckeditor5/issues/4811.\n cancel();\n if (editor.commands.get('link').isEnabled) {\n this._showUI(true);\n }\n });\n }\n /**\n * Attaches actions that control whether the balloon panel containing the\n * {@link #formView} is visible or not.\n */\n _enableUserBalloonInteractions() {\n // Focus the form if the balloon is visible and the Tab key has been pressed.\n this.editor.keystrokes.set('Tab', (data, cancel) => {\n if (this._areActionsVisible && !this.actionsView.focusTracker.isFocused) {\n this.actionsView.focus();\n cancel();\n }\n }, {\n // Use the high priority because the link UI navigation is more important\n // than other feature's actions, e.g. list indentation.\n // https://github.com/ckeditor/ckeditor5-link/issues/146\n priority: 'high'\n });\n // Close the panel on the Esc key press when the editable has focus and the balloon is visible.\n this.editor.keystrokes.set('Esc', (data, cancel) => {\n if (this._isUIVisible) {\n this._hideUI();\n cancel();\n }\n });\n // Close on click outside of balloon panel element.\n clickOutsideHandler({\n emitter: this.formView,\n activator: () => this._isUIInPanel,\n contextElements: () => [this._balloon.view.element],\n callback: () => this._hideUI()\n });\n }\n /**\n * Adds the {@link #actionsView} to the {@link #_balloon}.\n *\n * @internal\n */\n _addActionsView() {\n if (!this.actionsView) {\n this._createViews();\n }\n if (this._areActionsInPanel) {\n return;\n }\n this._balloon.add({\n view: this.actionsView,\n position: this._getBalloonPositionData()\n });\n }\n /**\n * Adds the {@link #formView} to the {@link #_balloon}.\n */\n _addFormView() {\n if (!this.formView) {\n this._createViews();\n }\n if (this._isFormInPanel) {\n return;\n }\n const editor = this.editor;\n const linkCommand = editor.commands.get('link');\n this.formView.disableCssTransitions();\n this._balloon.add({\n view: this.formView,\n position: this._getBalloonPositionData()\n });\n // Select input when form view is currently visible.\n if (this._balloon.visibleView === this.formView) {\n this.formView.urlInputView.fieldView.select();\n }\n this.formView.enableCssTransitions();\n // Make sure that each time the panel shows up, the URL field remains in sync with the value of\n // the command. If the user typed in the input, then canceled the balloon (`urlInputView.fieldView#value` stays\n // unaltered) and re-opened it without changing the value of the link command (e.g. because they\n // clicked the same link), they would see the old value instead of the actual value of the command.\n // https://github.com/ckeditor/ckeditor5-link/issues/78\n // https://github.com/ckeditor/ckeditor5-link/issues/123\n this.formView.urlInputView.fieldView.element.value = linkCommand.value || '';\n }\n /**\n * Closes the form view. Decides whether the balloon should be hidden completely or if the action view should be shown. This is\n * decided upon the link command value (which has a value if the document selection is in the link).\n *\n * Additionally, if any {@link module:link/linkconfig~LinkConfig#decorators} are defined in the editor configuration, the state of\n * switch buttons responsible for manual decorator handling is restored.\n */\n _closeFormView() {\n const linkCommand = this.editor.commands.get('link');\n // Restore manual decorator states to represent the current model state. This case is important to reset the switch buttons\n // when the user cancels the editing form.\n linkCommand.restoreManualDecoratorStates();\n if (linkCommand.value !== undefined) {\n this._removeFormView();\n }\n else {\n this._hideUI();\n }\n }\n /**\n * Removes the {@link #formView} from the {@link #_balloon}.\n */\n _removeFormView() {\n if (this._isFormInPanel) {\n // Blur the input element before removing it from DOM to prevent issues in some browsers.\n // See https://github.com/ckeditor/ckeditor5/issues/1501.\n this.formView.saveButtonView.focus();\n this._balloon.remove(this.formView);\n // Because the form has an input which has focus, the focus must be brought back\n // to the editor. Otherwise, it would be lost.\n this.editor.editing.view.focus();\n this._hideFakeVisualSelection();\n }\n }\n /**\n * Shows the correct UI type. It is either {@link #formView} or {@link #actionsView}.\n *\n * @internal\n */\n _showUI(forceVisible = false) {\n if (!this.formView) {\n this._createViews();\n }\n // When there's no link under the selection, go straight to the editing UI.\n if (!this._getSelectedLinkElement()) {\n // Show visual selection on a text without a link when the contextual balloon is displayed.\n // See https://github.com/ckeditor/ckeditor5/issues/4721.\n this._showFakeVisualSelection();\n this._addActionsView();\n // Be sure panel with link is visible.\n if (forceVisible) {\n this._balloon.showStack('main');\n }\n this._addFormView();\n }\n // If there's a link under the selection...\n else {\n // Go to the editing UI if actions are already visible.\n if (this._areActionsVisible) {\n this._addFormView();\n }\n // Otherwise display just the actions UI.\n else {\n this._addActionsView();\n }\n // Be sure panel with link is visible.\n if (forceVisible) {\n this._balloon.showStack('main');\n }\n }\n // Begin responding to ui#update once the UI is added.\n this._startUpdatingUI();\n }\n /**\n * Removes the {@link #formView} from the {@link #_balloon}.\n *\n * See {@link #_addFormView}, {@link #_addActionsView}.\n */\n _hideUI() {\n if (!this._isUIInPanel) {\n return;\n }\n const editor = this.editor;\n this.stopListening(editor.ui, 'update');\n this.stopListening(this._balloon, 'change:visibleView');\n // Make sure the focus always gets back to the editable _before_ removing the focused form view.\n // Doing otherwise causes issues in some browsers. See https://github.com/ckeditor/ckeditor5-link/issues/193.\n editor.editing.view.focus();\n // Remove form first because it's on top of the stack.\n this._removeFormView();\n // Then remove the actions view because it's beneath the form.\n this._balloon.remove(this.actionsView);\n this._hideFakeVisualSelection();\n }\n /**\n * Makes the UI react to the {@link module:ui/editorui/editorui~EditorUI#event:update} event to\n * reposition itself when the editor UI should be refreshed.\n *\n * See: {@link #_hideUI} to learn when the UI stops reacting to the `update` event.\n */\n _startUpdatingUI() {\n const editor = this.editor;\n const viewDocument = editor.editing.view.document;\n let prevSelectedLink = this._getSelectedLinkElement();\n let prevSelectionParent = getSelectionParent();\n const update = () => {\n const selectedLink = this._getSelectedLinkElement();\n const selectionParent = getSelectionParent();\n // Hide the panel if:\n //\n // * the selection went out of the EXISTING link element. E.g. user moved the caret out\n // of the link,\n // * the selection went to a different parent when creating a NEW link. E.g. someone\n // else modified the document.\n // * the selection has expanded (e.g. displaying link actions then pressing SHIFT+Right arrow).\n //\n // Note: #_getSelectedLinkElement will return a link for a non-collapsed selection only\n // when fully selected.\n if ((prevSelectedLink && !selectedLink) ||\n (!prevSelectedLink && selectionParent !== prevSelectionParent)) {\n this._hideUI();\n }\n // Update the position of the panel when:\n // * link panel is in the visible stack\n // * the selection remains in the original link element,\n // * there was no link element in the first place, i.e. creating a new link\n else if (this._isUIVisible) {\n // If still in a link element, simply update the position of the balloon.\n // If there was no link (e.g. inserting one), the balloon must be moved\n // to the new position in the editing view (a new native DOM range).\n this._balloon.updatePosition(this._getBalloonPositionData());\n }\n prevSelectedLink = selectedLink;\n prevSelectionParent = selectionParent;\n };\n function getSelectionParent() {\n return viewDocument.selection.focus.getAncestors()\n .reverse()\n .find((node) => node.is('element'));\n }\n this.listenTo(editor.ui, 'update', update);\n this.listenTo(this._balloon, 'change:visibleView', update);\n }\n /**\n * Returns `true` when {@link #formView} is in the {@link #_balloon}.\n */\n get _isFormInPanel() {\n return !!this.formView && this._balloon.hasView(this.formView);\n }\n /**\n * Returns `true` when {@link #actionsView} is in the {@link #_balloon}.\n */\n get _areActionsInPanel() {\n return !!this.actionsView && this._balloon.hasView(this.actionsView);\n }\n /**\n * Returns `true` when {@link #actionsView} is in the {@link #_balloon} and it is\n * currently visible.\n */\n get _areActionsVisible() {\n return !!this.actionsView && this._balloon.visibleView === this.actionsView;\n }\n /**\n * Returns `true` when {@link #actionsView} or {@link #formView} is in the {@link #_balloon}.\n */\n get _isUIInPanel() {\n return this._isFormInPanel || this._areActionsInPanel;\n }\n /**\n * Returns `true` when {@link #actionsView} or {@link #formView} is in the {@link #_balloon} and it is\n * currently visible.\n */\n get _isUIVisible() {\n const visibleView = this._balloon.visibleView;\n return !!this.formView && visibleView == this.formView || this._areActionsVisible;\n }\n /**\n * Returns positioning options for the {@link #_balloon}. They control the way the balloon is attached\n * to the target element or selection.\n *\n * If the selection is collapsed and inside a link element, the panel will be attached to the\n * entire link element. Otherwise, it will be attached to the selection.\n */\n _getBalloonPositionData() {\n const view = this.editor.editing.view;\n const model = this.editor.model;\n const viewDocument = view.document;\n let target;\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n // There are cases when we highlight selection using a marker (#7705, #4721).\n const markerViewElements = Array.from(this.editor.editing.mapper.markerNameToElements(VISUAL_SELECTION_MARKER_NAME));\n const newRange = view.createRange(view.createPositionBefore(markerViewElements[0]), view.createPositionAfter(markerViewElements[markerViewElements.length - 1]));\n target = view.domConverter.viewRangeToDom(newRange);\n }\n else {\n // Make sure the target is calculated on demand at the last moment because a cached DOM range\n // (which is very fragile) can desynchronize with the state of the editing view if there was\n // any rendering done in the meantime. This can happen, for instance, when an inline widget\n // gets unlinked.\n target = () => {\n const targetLink = this._getSelectedLinkElement();\n return targetLink ?\n // When selection is inside link element, then attach panel to this element.\n view.domConverter.mapViewToDom(targetLink) :\n // Otherwise attach panel to the selection.\n view.domConverter.viewRangeToDom(viewDocument.selection.getFirstRange());\n };\n }\n return { target };\n }\n /**\n * Returns the link {@link module:engine/view/attributeelement~AttributeElement} under\n * the {@link module:engine/view/document~Document editing view's} selection or `null`\n * if there is none.\n *\n * **Note**: For a non–collapsed selection, the link element is returned when **fully**\n * selected and the **only** element within the selection boundaries, or when\n * a linked widget is selected.\n */\n _getSelectedLinkElement() {\n const view = this.editor.editing.view;\n const selection = view.document.selection;\n const selectedElement = selection.getSelectedElement();\n // The selection is collapsed or some widget is selected (especially inline widget).\n if (selection.isCollapsed || selectedElement && isWidget(selectedElement)) {\n return findLinkElementAncestor(selection.getFirstPosition());\n }\n else {\n // The range for fully selected link is usually anchored in adjacent text nodes.\n // Trim it to get closer to the actual link element.\n const range = selection.getFirstRange().getTrimmed();\n const startLink = findLinkElementAncestor(range.start);\n const endLink = findLinkElementAncestor(range.end);\n if (!startLink || startLink != endLink) {\n return null;\n }\n // Check if the link element is fully selected.\n if (view.createRangeIn(startLink).getTrimmed().isEqual(range)) {\n return startLink;\n }\n else {\n return null;\n }\n }\n }\n /**\n * Displays a fake visual selection when the contextual balloon is displayed.\n *\n * This adds a 'link-ui' marker into the document that is rendered as a highlight on selected text fragment.\n */\n _showFakeVisualSelection() {\n const model = this.editor.model;\n model.change(writer => {\n const range = model.document.selection.getFirstRange();\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n writer.updateMarker(VISUAL_SELECTION_MARKER_NAME, { range });\n }\n else {\n if (range.start.isAtEnd) {\n const startPosition = range.start.getLastMatchingPosition(({ item }) => !model.schema.isContent(item), { boundaries: range });\n writer.addMarker(VISUAL_SELECTION_MARKER_NAME, {\n usingOperation: false,\n affectsData: false,\n range: writer.createRange(startPosition, range.end)\n });\n }\n else {\n writer.addMarker(VISUAL_SELECTION_MARKER_NAME, {\n usingOperation: false,\n affectsData: false,\n range\n });\n }\n }\n });\n }\n /**\n * Hides the fake visual selection created in {@link #_showFakeVisualSelection}.\n */\n _hideFakeVisualSelection() {\n const model = this.editor.model;\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n model.change(writer => {\n writer.removeMarker(VISUAL_SELECTION_MARKER_NAME);\n });\n }\n }\n}\n/**\n * Returns a link element if there's one among the ancestors of the provided `Position`.\n *\n * @param View position to analyze.\n * @returns Link element at the position or null.\n */\nfunction findLinkElementAncestor(position) {\n return position.getAncestors().find((ancestor) => isLinkElement(ancestor)) || null;\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module link/autolink\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Delete, TextWatcher, getLastTextLine } from 'ckeditor5/src/typing';\nimport { addLinkProtocolIfApplicable, linkHasProtocol } from './utils';\nconst MIN_LINK_LENGTH_WITH_SPACE_AT_END = 4; // Ie: \"t.co \" (length 5).\n// This was a tweak from https://gist.github.com/dperini/729294.\nconst URL_REG_EXP = new RegExp(\n// Group 1: Line start or after a space.\n'(^|\\\\s)' +\n // Group 2: Detected URL (or e-mail).\n '(' +\n // Protocol identifier or short syntax \"//\"\n // a. Full form http://user@foo.bar.baz:8080/foo/bar.html#baz?foo=bar\n '(' +\n '(?:(?:(?:https?|ftp):)?\\\\/\\\\/)' +\n // BasicAuth using user:pass (optional)\n '(?:\\\\S+(?::\\\\S*)?@)?' +\n '(?:' +\n // IP address dotted notation octets\n // excludes loopback network 0.0.0.0\n // excludes reserved space >= 224.0.0.0\n // excludes network & broadcast addresses\n // (first & last IP address of each class)\n '(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])' +\n '(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}' +\n '(?:\\\\.(?:[1-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))' +\n '|' +\n '(' +\n // Do not allow `www.foo` - see https://github.com/ckeditor/ckeditor5/issues/8050.\n '((?!www\\\\.)|(www\\\\.))' +\n // Host & domain names.\n '(?![-_])(?:[-_a-z0-9\\\\u00a1-\\\\uffff]{1,63}\\\\.)+' +\n // TLD identifier name.\n '(?:[a-z\\\\u00a1-\\\\uffff]{2,63})' +\n ')' +\n ')' +\n // port number (optional)\n '(?::\\\\d{2,5})?' +\n // resource path (optional)\n '(?:[/?#]\\\\S*)?' +\n ')' +\n '|' +\n // b. Short form (either www.example.com or example@example.com)\n '(' +\n '(www.|(\\\\S+@))' +\n // Host & domain names.\n '((?![-_])(?:[-_a-z0-9\\\\u00a1-\\\\uffff]{1,63}\\\\.))+' +\n // TLD identifier name.\n '(?:[a-z\\\\u00a1-\\\\uffff]{2,63})' +\n ')' +\n ')$', 'i');\nconst URL_GROUP_IN_MATCH = 2;\n/**\n * The autolink plugin.\n */\nexport default class AutoLink extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [Delete];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'AutoLink';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const selection = editor.model.document.selection;\n selection.on('change:range', () => {\n // Disable plugin when selection is inside a code block.\n this.isEnabled = !selection.anchor.parent.is('element', 'codeBlock');\n });\n this._enableTypingHandling();\n }\n /**\n * @inheritDoc\n */\n afterInit() {\n this._enableEnterHandling();\n this._enableShiftEnterHandling();\n }\n /**\n * Enables autolinking on typing.\n */\n _enableTypingHandling() {\n const editor = this.editor;\n const watcher = new TextWatcher(editor.model, text => {\n // 1. Detect Space after a text with a potential link.\n if (!isSingleSpaceAtTheEnd(text)) {\n return;\n }\n // 2. Check text before last typed Space.\n const url = getUrlAtTextEnd(text.substr(0, text.length - 1));\n if (url) {\n return { url };\n }\n });\n watcher.on('matched:data', (evt, data) => {\n const { batch, range, url } = data;\n if (!batch.isTyping) {\n return;\n }\n const linkEnd = range.end.getShiftedBy(-1); // Executed after a space character.\n const linkStart = linkEnd.getShiftedBy(-url.length);\n const linkRange = editor.model.createRange(linkStart, linkEnd);\n this._applyAutoLink(url, linkRange);\n });\n watcher.bind('isEnabled').to(this);\n }\n /**\n * Enables autolinking on the Enter key.\n */\n _enableEnterHandling() {\n const editor = this.editor;\n const model = editor.model;\n const enterCommand = editor.commands.get('enter');\n if (!enterCommand) {\n return;\n }\n enterCommand.on('execute', () => {\n const position = model.document.selection.getFirstPosition();\n if (!position.parent.previousSibling) {\n return;\n }\n const rangeToCheck = model.createRangeIn(position.parent.previousSibling);\n this._checkAndApplyAutoLinkOnRange(rangeToCheck);\n });\n }\n /**\n * Enables autolinking on the Shift+Enter keyboard shortcut.\n */\n _enableShiftEnterHandling() {\n const editor = this.editor;\n const model = editor.model;\n const shiftEnterCommand = editor.commands.get('shiftEnter');\n if (!shiftEnterCommand) {\n return;\n }\n shiftEnterCommand.on('execute', () => {\n const position = model.document.selection.getFirstPosition();\n const rangeToCheck = model.createRange(model.createPositionAt(position.parent, 0), position.getShiftedBy(-1));\n this._checkAndApplyAutoLinkOnRange(rangeToCheck);\n });\n }\n /**\n * Checks if the passed range contains a linkable text.\n */\n _checkAndApplyAutoLinkOnRange(rangeToCheck) {\n const model = this.editor.model;\n const { text, range } = getLastTextLine(rangeToCheck, model);\n const url = getUrlAtTextEnd(text);\n if (url) {\n const linkRange = model.createRange(range.end.getShiftedBy(-url.length), range.end);\n this._applyAutoLink(url, linkRange);\n }\n }\n /**\n * Applies a link on a given range if the link should be applied.\n *\n * @param url The URL to link.\n * @param range The text range to apply the link attribute to.\n */\n _applyAutoLink(url, range) {\n const model = this.editor.model;\n const defaultProtocol = this.editor.config.get('link.defaultProtocol');\n const fullUrl = addLinkProtocolIfApplicable(url, defaultProtocol);\n if (!this.isEnabled || !isLinkAllowedOnRange(range, model) || !linkHasProtocol(fullUrl) || linkIsAlreadySet(range)) {\n return;\n }\n this._persistAutoLink(fullUrl, range);\n }\n /**\n * Enqueues autolink changes in the model.\n *\n * @param url The URL to link.\n * @param range The text range to apply the link attribute to.\n */\n _persistAutoLink(url, range) {\n const model = this.editor.model;\n const deletePlugin = this.editor.plugins.get('Delete');\n // Enqueue change to make undo step.\n model.enqueueChange(writer => {\n writer.setAttribute('linkHref', url, range);\n model.enqueueChange(() => {\n deletePlugin.requestUndoOnBackspace();\n });\n });\n }\n}\n// Check if text should be evaluated by the plugin in order to reduce number of RegExp checks on whole text.\nfunction isSingleSpaceAtTheEnd(text) {\n return text.length > MIN_LINK_LENGTH_WITH_SPACE_AT_END && text[text.length - 1] === ' ' && text[text.length - 2] !== ' ';\n}\nfunction getUrlAtTextEnd(text) {\n const match = URL_REG_EXP.exec(text);\n return match ? match[URL_GROUP_IN_MATCH] : null;\n}\nfunction isLinkAllowedOnRange(range, model) {\n return model.schema.checkAttributeInSelection(model.createSelection(range), 'linkHref');\n}\nfunction linkIsAlreadySet(range) {\n const item = range.start.nodeAfter;\n return !!item && item.hasAttribute('linkHref');\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module link/linkimageediting\n */\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Matcher } from 'ckeditor5/src/engine';\nimport { toMap } from 'ckeditor5/src/utils';\nimport LinkEditing from './linkediting';\n/**\n * The link image engine feature.\n *\n * It accepts the `linkHref=\"url\"` attribute in the model for the {@link module:image/image~Image ``} element\n * which allows linking images.\n */\nexport default class LinkImageEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return ['ImageEditing', 'ImageUtils', LinkEditing];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'LinkImageEditing';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const schema = editor.model.schema;\n if (editor.plugins.has('ImageBlockEditing')) {\n schema.extend('imageBlock', { allowAttributes: ['linkHref'] });\n }\n editor.conversion.for('upcast').add(upcastLink(editor));\n editor.conversion.for('downcast').add(downcastImageLink(editor));\n // Definitions for decorators are provided by the `link` command and the `LinkEditing` plugin.\n this._enableAutomaticDecorators();\n this._enableManualDecorators();\n }\n /**\n * Processes {@link module:link/linkconfig~LinkDecoratorAutomaticDefinition automatic decorators} definitions and\n * attaches proper converters that will work when linking an image.`\n */\n _enableAutomaticDecorators() {\n const editor = this.editor;\n const command = editor.commands.get('link');\n const automaticDecorators = command.automaticDecorators;\n if (automaticDecorators.length) {\n editor.conversion.for('downcast').add(automaticDecorators.getDispatcherForLinkedImage());\n }\n }\n /**\n * Processes transformed {@link module:link/utils/manualdecorator~ManualDecorator} instances and attaches proper converters\n * that will work when linking an image.\n */\n _enableManualDecorators() {\n const editor = this.editor;\n const command = editor.commands.get('link');\n for (const decorator of command.manualDecorators) {\n if (editor.plugins.has('ImageBlockEditing')) {\n editor.model.schema.extend('imageBlock', { allowAttributes: decorator.id });\n }\n if (editor.plugins.has('ImageInlineEditing')) {\n editor.model.schema.extend('imageInline', { allowAttributes: decorator.id });\n }\n editor.conversion.for('downcast').add(downcastImageLinkManualDecorator(decorator));\n editor.conversion.for('upcast').add(upcastImageLinkManualDecorator(editor, decorator));\n }\n }\n}\n/**\n * Returns a converter for linked block images that consumes the \"href\" attribute\n * if a link contains an image.\n *\n * @param editor The editor instance.\n */\nfunction upcastLink(editor) {\n const isImageInlinePluginLoaded = editor.plugins.has('ImageInlineEditing');\n const imageUtils = editor.plugins.get('ImageUtils');\n return dispatcher => {\n dispatcher.on('element:a', (evt, data, conversionApi) => {\n const viewLink = data.viewItem;\n const imageInLink = imageUtils.findViewImgElement(viewLink);\n if (!imageInLink) {\n return;\n }\n const blockImageView = imageInLink.findAncestor(element => imageUtils.isBlockImageView(element));\n // There are four possible cases to consider here\n //\n // 1. A \"root > ... > figure.image > a > img\" structure.\n // 2. A \"root > ... > figure.image > a > picture > img\" structure.\n // 3. A \"root > ... > block > a > img\" structure.\n // 4. A \"root > ... > block > a > picture > img\" structure.\n //\n // but the last 2 cases should only be considered by this converter when the inline image plugin\n // is NOT loaded in the editor (because otherwise, that would be a plain, linked inline image).\n if (isImageInlinePluginLoaded && !blockImageView) {\n return;\n }\n // There's an image inside an element - we consume it so it won't be picked up by the Link plugin.\n const consumableAttributes = { attributes: ['href'] };\n // Consume the `href` attribute so the default one will not convert it to $text attribute.\n if (!conversionApi.consumable.consume(viewLink, consumableAttributes)) {\n // Might be consumed by something else - i.e. other converter with priority=highest - a standard check.\n return;\n }\n const linkHref = viewLink.getAttribute('href');\n // Missing the 'href' attribute.\n if (!linkHref) {\n return;\n }\n // A full definition of the image feature.\n // figure > a > img: parent of the view link element is an image element (figure).\n let modelElement = data.modelCursor.parent;\n if (!modelElement.is('element', 'imageBlock')) {\n // a > img: parent of the view link is not the image (figure) element. We need to convert it manually.\n const conversionResult = conversionApi.convertItem(imageInLink, data.modelCursor);\n // Set image range as conversion result.\n data.modelRange = conversionResult.modelRange;\n // Continue conversion where image conversion ends.\n data.modelCursor = conversionResult.modelCursor;\n modelElement = data.modelCursor.nodeBefore;\n }\n if (modelElement && modelElement.is('element', 'imageBlock')) {\n // Set the linkHref attribute from link element on model image element.\n conversionApi.writer.setAttribute('linkHref', linkHref, modelElement);\n }\n }, { priority: 'high' });\n // Using the same priority that `upcastImageLinkManualDecorator()` converter guarantees\n // that manual decorators will decorate the proper element.\n };\n}\n/**\n * Creates a converter that adds `` to linked block image view elements.\n */\nfunction downcastImageLink(editor) {\n const imageUtils = editor.plugins.get('ImageUtils');\n return dispatcher => {\n dispatcher.on('attribute:linkHref:imageBlock', (evt, data, conversionApi) => {\n if (!conversionApi.consumable.consume(data.item, evt.name)) {\n return;\n }\n // The image will be already converted - so it will be present in the view.\n const viewFigure = conversionApi.mapper.toViewElement(data.item);\n const writer = conversionApi.writer;\n // But we need to check whether the link element exists.\n const linkInImage = Array.from(viewFigure.getChildren())\n .find((child) => child.is('element', 'a'));\n const viewImage = imageUtils.findViewImgElement(viewFigure);\n // ... or \n const viewImgOrPicture = viewImage.parent.is('element', 'picture') ? viewImage.parent : viewImage;\n // If so, update the attribute if it's defined or remove the entire link if the attribute is empty.\n if (linkInImage) {\n if (data.attributeNewValue) {\n writer.setAttribute('href', data.attributeNewValue, linkInImage);\n }\n else {\n writer.move(writer.createRangeOn(viewImgOrPicture), writer.createPositionAt(viewFigure, 0));\n writer.remove(linkInImage);\n }\n }\n else {\n // But if it does not exist. Let's wrap already converted image by newly created link element.\n // 1. Create an empty link element.\n const linkElement = writer.createContainerElement('a', { href: data.attributeNewValue });\n // 2. Insert link inside the associated image.\n writer.insert(writer.createPositionAt(viewFigure, 0), linkElement);\n // 3. Move the image to the link.\n writer.move(writer.createRangeOn(viewImgOrPicture), writer.createPositionAt(linkElement, 0));\n }\n }, { priority: 'high' });\n };\n}\n/**\n * Returns a converter that decorates the `` element when the image is the link label.\n */\nfunction downcastImageLinkManualDecorator(decorator) {\n return dispatcher => {\n dispatcher.on(`attribute:${decorator.id}:imageBlock`, (evt, data, conversionApi) => {\n const viewFigure = conversionApi.mapper.toViewElement(data.item);\n const linkInImage = Array.from(viewFigure.getChildren())\n .find((child) => child.is('element', 'a'));\n // The element was removed by the time this converter is executed.\n // It may happen when the base `linkHref` and decorator attributes are removed\n // at the same time (see #8401).\n if (!linkInImage) {\n return;\n }\n for (const [key, val] of toMap(decorator.attributes)) {\n conversionApi.writer.setAttribute(key, val, linkInImage);\n }\n if (decorator.classes) {\n conversionApi.writer.addClass(decorator.classes, linkInImage);\n }\n for (const key in decorator.styles) {\n conversionApi.writer.setStyle(key, decorator.styles[key], linkInImage);\n }\n });\n };\n}\n/**\n * Returns a converter that checks whether manual decorators should be applied to the link.\n */\nfunction upcastImageLinkManualDecorator(editor, decorator) {\n const isImageInlinePluginLoaded = editor.plugins.has('ImageInlineEditing');\n const imageUtils = editor.plugins.get('ImageUtils');\n return dispatcher => {\n dispatcher.on('element:a', (evt, data, conversionApi) => {\n const viewLink = data.viewItem;\n const imageInLink = imageUtils.findViewImgElement(viewLink);\n // We need to check whether an image is inside a link because the converter handles\n // only manual decorators for linked images. See #7975.\n if (!imageInLink) {\n return;\n }\n const blockImageView = imageInLink.findAncestor(element => imageUtils.isBlockImageView(element));\n if (isImageInlinePluginLoaded && !blockImageView) {\n return;\n }\n const matcher = new Matcher(decorator._createPattern());\n const result = matcher.match(viewLink);\n // The link element does not have required attributes or/and proper values.\n if (!result) {\n return;\n }\n // Check whether we can consume those attributes.\n if (!conversionApi.consumable.consume(viewLink, result.match)) {\n return;\n }\n // At this stage we can assume that we have the `` element.\n // `nodeBefore` comes after conversion: ``.\n // `parent` comes with full image definition: `
    .\n // See the body of the `upcastLink()` function.\n const modelElement = data.modelCursor.nodeBefore || data.modelCursor.parent;\n conversionApi.writer.setAttribute(decorator.id, true, modelElement);\n }, { priority: 'high' });\n // Using the same priority that `upcastLink()` converter guarantees that the linked image was properly converted.\n };\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module link/linkimageui\n */\nimport { ButtonView } from 'ckeditor5/src/ui';\nimport { Plugin } from 'ckeditor5/src/core';\nimport LinkUI from './linkui';\nimport LinkEditing from './linkediting';\nimport { LINK_KEYSTROKE } from './utils';\nimport linkIcon from '../theme/icons/link.svg';\n/**\n * The link image UI plugin.\n *\n * This plugin provides the `'linkImage'` button that can be displayed in the {@link module:image/imagetoolbar~ImageToolbar}.\n * It can be used to wrap images in links.\n */\nexport default class LinkImageUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return [LinkEditing, LinkUI, 'ImageBlockEditing'];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'LinkImageUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n const viewDocument = editor.editing.view.document;\n this.listenTo(viewDocument, 'click', (evt, data) => {\n if (this._isSelectedLinkedImage(editor.model.document.selection)) {\n // Prevent browser navigation when clicking a linked image.\n data.preventDefault();\n // Block the `LinkUI` plugin when an image was clicked.\n // In such a case, we'd like to display the image toolbar.\n evt.stop();\n }\n }, { priority: 'high' });\n this._createToolbarLinkImageButton();\n }\n /**\n * Creates a `LinkImageUI` button view.\n *\n * Clicking this button shows a {@link module:link/linkui~LinkUI#_balloon} attached to the selection.\n * When an image is already linked, the view shows {@link module:link/linkui~LinkUI#actionsView} or\n * {@link module:link/linkui~LinkUI#formView} if it is not.\n */\n _createToolbarLinkImageButton() {\n const editor = this.editor;\n const t = editor.t;\n editor.ui.componentFactory.add('linkImage', locale => {\n const button = new ButtonView(locale);\n const plugin = editor.plugins.get('LinkUI');\n const linkCommand = editor.commands.get('link');\n button.set({\n isEnabled: true,\n label: t('Link image'),\n icon: linkIcon,\n keystroke: LINK_KEYSTROKE,\n tooltip: true,\n isToggleable: true\n });\n // Bind button to the command.\n button.bind('isEnabled').to(linkCommand, 'isEnabled');\n button.bind('isOn').to(linkCommand, 'value', value => !!value);\n // Show the actionsView or formView (both from LinkUI) on button click depending on whether the image is linked already.\n this.listenTo(button, 'execute', () => {\n if (this._isSelectedLinkedImage(editor.model.document.selection)) {\n plugin._addActionsView();\n }\n else {\n plugin._showUI(true);\n }\n });\n return button;\n });\n }\n /**\n * Returns true if a linked image (either block or inline) is the only selected element\n * in the model document.\n */\n _isSelectedLinkedImage(selection) {\n const selectedModelElement = selection.getSelectedElement();\n const imageUtils = this.editor.plugins.get('ImageUtils');\n return imageUtils.isImage(selectedModelElement) && selectedModelElement.hasAttribute('linkHref');\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./linkimage.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module list/documentlist/utils/listwalker\n */\nimport { first, toArray } from 'ckeditor5/src/utils';\nimport { isListItemBlock } from './model';\n/**\n * Document list blocks iterator.\n */\nexport default class ListWalker {\n /**\n * Creates a document list iterator.\n *\n * @param startElement The start list item block element.\n * @param options.direction The iterating direction.\n * @param options.includeSelf Whether start block should be included in the result (if it's matching other criteria).\n * @param options.sameAttributes Additional attributes that must be the same for each block.\n * @param options.sameIndent Whether blocks with the same indent level as the start block should be included\n * in the result.\n * @param options.lowerIndent Whether blocks with a lower indent level than the start block should be included\n * in the result.\n * @param options.higherIndent Whether blocks with a higher indent level than the start block should be included\n * in the result.\n */\n constructor(startElement, options) {\n this._startElement = startElement;\n this._referenceIndent = startElement.getAttribute('listIndent');\n this._isForward = options.direction == 'forward';\n this._includeSelf = !!options.includeSelf;\n this._sameAttributes = toArray(options.sameAttributes || []);\n this._sameIndent = !!options.sameIndent;\n this._lowerIndent = !!options.lowerIndent;\n this._higherIndent = !!options.higherIndent;\n }\n /**\n * Performs only first step of iteration and returns the result.\n *\n * @param startElement The start list item block element.\n * @param options.direction The iterating direction.\n * @param options.includeSelf Whether start block should be included in the result (if it's matching other criteria).\n * @param options.sameAttributes Additional attributes that must be the same for each block.\n * @param options.sameIndent Whether blocks with the same indent level as the start block should be included\n * in the result.\n * @param options.lowerIndent Whether blocks with a lower indent level than the start block should be included\n * in the result.\n * @param options.higherIndent Whether blocks with a higher indent level than the start block should be included\n * in the result.\n */\n static first(startElement, options) {\n const walker = new this(startElement, options);\n const iterator = walker[Symbol.iterator]();\n return first(iterator);\n }\n /**\n * Iterable interface.\n */\n *[Symbol.iterator]() {\n const nestedItems = [];\n for (const { node } of iterateSiblingListBlocks(this._getStartNode(), this._isForward ? 'forward' : 'backward')) {\n const indent = node.getAttribute('listIndent');\n // Leaving a nested list.\n if (indent < this._referenceIndent) {\n // Abort searching blocks.\n if (!this._lowerIndent) {\n break;\n }\n // While searching for lower indents, update the reference indent to find another parent in the next step.\n this._referenceIndent = indent;\n }\n // Entering a nested list.\n else if (indent > this._referenceIndent) {\n // Ignore nested blocks.\n if (!this._higherIndent) {\n continue;\n }\n // Collect nested blocks to verify if they are really nested, or it's a different item.\n if (!this._isForward) {\n nestedItems.push(node);\n continue;\n }\n }\n // Same indent level block.\n else {\n // Ignore same indent block.\n if (!this._sameIndent) {\n // While looking for nested blocks, stop iterating while encountering first same indent block.\n if (this._higherIndent) {\n // No more nested blocks so yield nested items.\n if (nestedItems.length) {\n yield* nestedItems;\n nestedItems.length = 0;\n }\n break;\n }\n continue;\n }\n // Abort if item has any additionally specified attribute different.\n if (this._sameAttributes.some(attr => node.getAttribute(attr) !== this._startElement.getAttribute(attr))) {\n break;\n }\n }\n // There is another block for the same list item so the nested items were in the same list item.\n if (nestedItems.length) {\n yield* nestedItems;\n nestedItems.length = 0;\n }\n yield node;\n }\n }\n /**\n * Returns the model element to start iterating.\n */\n _getStartNode() {\n if (this._includeSelf) {\n return this._startElement;\n }\n return this._isForward ?\n this._startElement.nextSibling :\n this._startElement.previousSibling;\n }\n}\n/**\n * Iterates sibling list blocks starting from the given node.\n *\n * @internal\n * @param node The model node.\n * @param direction Iteration direction.\n * @returns The object with `node` and `previous` {@link module:engine/model/element~Element blocks}.\n */\nexport function* iterateSiblingListBlocks(node, direction = 'forward') {\n const isForward = direction == 'forward';\n let previous = null;\n while (isListItemBlock(node)) {\n yield { node, previous };\n previous = node;\n node = isForward ? node.nextSibling : node.previousSibling;\n }\n}\n/**\n * The iterable protocol over the list elements.\n *\n * @internal\n */\nexport class ListBlocksIterable {\n /**\n * @param listHead The head element of a list.\n */\n constructor(listHead) {\n this._listHead = listHead;\n }\n /**\n * List blocks iterator.\n *\n * Iterates over all blocks of a list.\n */\n [Symbol.iterator]() {\n return iterateSiblingListBlocks(this._listHead, 'forward');\n }\n}\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./documentlist.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!../../../postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./list.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { TreeWalker, getFillerOffset } from 'ckeditor5/src/engine';\nimport { ButtonView } from 'ckeditor5/src/ui';\n/**\n * Creates a list item {@link module:engine/view/containerelement~ContainerElement}.\n *\n * @param writer The writer instance.\n */\nexport function createViewListItemElement(writer) {\n const viewItem = writer.createContainerElement('li');\n viewItem.getFillerOffset = getListItemFillerOffset;\n return viewItem;\n}\n/**\n * Helper function that creates a `
    ` or (`
      `) structure out of the given `modelItem` model `listItem` element.\n * Then, it binds the created view list item (`
    1. `) with the model `listItem` element.\n * The function then returns the created view list item (`
    2. `).\n *\n * @param modelItem Model list item.\n * @param conversionApi Conversion interface.\n * @returns View list element.\n */\nexport function generateLiInUl(modelItem, conversionApi) {\n const mapper = conversionApi.mapper;\n const viewWriter = conversionApi.writer;\n const listType = modelItem.getAttribute('listType') == 'numbered' ? 'ol' : 'ul';\n const viewItem = createViewListItemElement(viewWriter);\n const viewList = viewWriter.createContainerElement(listType, null);\n viewWriter.insert(viewWriter.createPositionAt(viewList, 0), viewItem);\n mapper.bindElements(modelItem, viewItem);\n return viewItem;\n}\n/**\n * Helper function that inserts a view list at a correct place and merges it with its siblings.\n * It takes a model list item element (`modelItem`) and a corresponding view list item element (`injectedItem`). The view list item\n * should be in a view list element (`